@aws-amplify/graphql-api-construct 1.6.0-secrets-manager.0 → 1.7.0-cors-rule.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +280 -219
- package/API.md +13 -5
- package/CHANGELOG.md +18 -2
- package/lib/amplify-dynamodb-table-wrapper.d.ts +6 -1
- package/lib/amplify-dynamodb-table-wrapper.js +9 -2
- package/lib/amplify-graphql-api.d.ts +2 -2
- package/lib/amplify-graphql-api.js +10 -7
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/internal/codegen-assets.js +14 -1
- package/lib/internal/construct-exports.js +13 -3
- package/lib/sql-model-datasource-strategy.js +1 -1
- package/lib/types.d.ts +17 -5
- package/lib/types.js +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +17 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +34 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js +0 -3
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/validations.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js +3 -2
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/vtl-generator/rds/resolvers/query.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +20 -14
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +15 -1
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +15 -9
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +9 -1
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +14 -8
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +9 -1
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +14 -8
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +13 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +15 -9
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +13 -1
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +16 -14
- package/node_modules/@aws-amplify/graphql-model-transformer/API.md +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +18 -3
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +12 -9
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/common.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/common.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.js +9 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-types/mutation.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +17 -11
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +9 -1
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +14 -8
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +15 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js +34 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-ddb-fields-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js +27 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-sql-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts +5 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js +16 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/belongs-to/belongs-to-directive-transformer-factory.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.d.ts +11 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.js +3 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/data-source-based-directive-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js +9 -40
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-belongs-to-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js +12 -35
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-many-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js +8 -27
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/graphql-has-one-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.js +32 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-ddb-fields-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js +27 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-sql-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts +5 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js +16 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-many/has-many-directive-transformer-factory.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.js +31 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-ddb-fields-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js +27 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-sql-transformer.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts +5 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js +16 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/has-one/has-one-directive-transformer-factory.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js +13 -3
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/schema.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +17 -11
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +15 -1
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +15 -9
- package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +13 -1
- package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +16 -10
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +14 -2
- package/node_modules/@aws-amplify/graphql-transformer/package.json +22 -16
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +15 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +11 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +7 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js +14 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/output.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +5 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js +8 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js +18 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-util.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +14 -8
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +8 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-output-provider.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-output-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +8 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-output-provider.ts +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/graphql-mapping-template/CHANGELOG.md +4 -0
- package/node_modules/graphql-mapping-template/package.json +10 -4
- package/node_modules/graphql-transformer-common/API.md +14 -0
- package/node_modules/graphql-transformer-common/CHANGELOG.md +10 -0
- package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.d.ts +13 -0
- package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.d.ts.map +1 -0
- package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.js +16 -0
- package/node_modules/graphql-transformer-common/lib/TypescriptSchemaConstants.js.map +1 -0
- package/node_modules/graphql-transformer-common/lib/index.d.ts +1 -0
- package/node_modules/graphql-transformer-common/lib/index.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/index.js +1 -0
- package/node_modules/graphql-transformer-common/lib/index.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +11 -5
- package/package.json +27 -21
- package/src/amplify-dynamodb-table-wrapper.ts +9 -1
- package/src/amplify-graphql-api.ts +15 -7
- package/src/index.ts +1 -0
- package/src/internal/codegen-assets.ts +15 -2
- package/src/internal/construct-exports.ts +14 -4
- package/src/types.ts +19 -6
@@ -9,6 +9,16 @@ const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-cor
|
|
9
9
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
10
10
|
const amplify_dynamodb_table_wrapper_1 = require("../amplify-dynamodb-table-wrapper");
|
11
11
|
const construct_tree_1 = require("./construct-tree");
|
12
|
+
/**
|
13
|
+
* Check if a resource is implementing table interface
|
14
|
+
* The required properties need to be present in the input
|
15
|
+
* https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.ITable.html#properties
|
16
|
+
* @param table table resource
|
17
|
+
* @returns whether the resource is a ITable or not
|
18
|
+
*/
|
19
|
+
function isITable(table) {
|
20
|
+
return 'env' in table && 'node' in table && 'stack' in table && 'tableArn' in table && 'tableName' in table;
|
21
|
+
}
|
12
22
|
/**
|
13
23
|
* Everything below here is intended to help us gather the
|
14
24
|
* output values and render out the L1 resources for access.
|
@@ -62,7 +72,7 @@ const getGeneratedResources = (scope) => {
|
|
62
72
|
cfnFunctionConfigurations[resourceName] = currentScope;
|
63
73
|
return;
|
64
74
|
}
|
65
|
-
if (currentScope instanceof aws_dynamodb_1.Table) {
|
75
|
+
if (currentScope instanceof aws_dynamodb_1.Table || isITable(currentScope)) {
|
66
76
|
tables[resourceName] = currentScope;
|
67
77
|
return;
|
68
78
|
}
|
@@ -106,7 +116,6 @@ const getGeneratedResources = (scope) => {
|
|
106
116
|
return {
|
107
117
|
graphqlApi: aws_appsync_1.GraphqlApi.fromGraphqlApiAttributes(scope, 'L2GraphqlApi', { graphqlApiId: cfnGraphqlApi.attrApiId }),
|
108
118
|
tables,
|
109
|
-
amplifyDynamoDbTables,
|
110
119
|
roles,
|
111
120
|
functions,
|
112
121
|
nestedStacks,
|
@@ -118,6 +127,7 @@ const getGeneratedResources = (scope) => {
|
|
118
127
|
cfnFunctionConfigurations,
|
119
128
|
cfnDataSources,
|
120
129
|
cfnTables,
|
130
|
+
amplifyDynamoDbTables,
|
121
131
|
cfnRoles,
|
122
132
|
cfnFunctions,
|
123
133
|
additionalCfnResources,
|
@@ -147,4 +157,4 @@ const getGeneratedFunctionSlots = (generatedResolvers) => Object.entries(generat
|
|
147
157
|
};
|
148
158
|
});
|
149
159
|
exports.getGeneratedFunctionSlots = getGeneratedFunctionSlots;
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBUWlDO0FBQ2pDLDJEQUEyRDtBQUMzRCxpREFBb0Q7QUFDcEQsNkNBQXVEO0FBQ3ZELG9GQUF3RTtBQUN4RSx1REFBaUY7QUFFakYsc0ZBQWdGO0FBQ2hGLHFEQUF1RDtBQUV2RDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQixFQUE4QixFQUFFO0lBQ3BGLElBQUksYUFBd0MsQ0FBQztJQUM3QyxJQUFJLGdCQUE4QyxDQUFDO0lBQ25ELElBQUksU0FBZ0MsQ0FBQztJQUNyQyxNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO0lBQ3JELE1BQU0seUJBQXlCLEdBQTZDLEVBQUUsQ0FBQztJQUMvRSxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUEwQixFQUFFLENBQUM7SUFDekMsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLHFCQUFxQixHQUFnRCxFQUFFLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQXlCLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFtQyxFQUFFLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQWdDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLHNCQUFzQixHQUFnQyxFQUFFLENBQUM7SUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFlBQXVCLEVBQVEsRUFBRTtRQUMxRCxJQUFJLFlBQVksWUFBWSwyQkFBYSxFQUFFO1lBQ3pDLGFBQWEsR0FBRyxZQUFZLENBQUM7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxZQUFZLFlBQVksOEJBQWdCLEVBQUU7WUFDNUMsZ0JBQWdCLEdBQUcsWUFB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QyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzdFO0tBQ2MsQ0FBQztBQUNwQixDQUFDLENBQUMsQ0FBQztBQWhCTSxRQUFBLHlCQUF5Qiw2QkFnQi9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBDZm5HcmFwaFFMQXBpLFxuICBDZm5HcmFwaFFMU2NoZW1hLFxuICBDZm5BcGlLZXksXG4gIENmblJlc29sdmVyLFxuICBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG4gIENmbkRhdGFTb3VyY2UsXG4gIEdyYXBocWxBcGksXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IENmblRhYmxlLCBUYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBDZm5Sb2xlLCBSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZSwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU5hbWUgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IENmbkZ1bmN0aW9uLCBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMsIEZ1bmN0aW9uU2xvdCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB9IGZyb20gJy4uL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlcic7XG5pbXBvcnQgeyB3YWxrQW5kUHJvY2Vzc05vZGVzIH0gZnJvbSAnLi9jb25zdHJ1Y3QtdHJlZSc7XG5cbi8qKlxuICogRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIGludGVuZGVkIHRvIGhlbHAgdXMgZ2F0aGVyIHRoZVxuICogb3V0cHV0IHZhbHVlcyBhbmQgcmVuZGVyIG91dCB0aGUgTDEgcmVzb3VyY2VzIGZvciBhY2Nlc3MuXG4gKlxuICogVGhpcyBpcyBkb25lIGJ5IHJlY3Vyc2luZyBhbG9uZyB0aGUgY29uc3RydWN0IHRyZWUsIGFuZCBjbGFzc2lmeWluZyB0aGUgZ2VuZXJhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgcm9vdCB0byBzZWFyY2ggZm9yIGdlbmVyYXRlZCByZXNvdXJjZSBhZ2FpbnN0XG4gKiBAcmV0dXJucyBhIG1hcHBpbmcgb2YgTDEgYW5kIEwyIGNvbnN0cnVjdHMgZ2VuZXJhdGVkIGJ5IHRoZSBHcmFwaHFsIFRyYW5zZm9ybWVyLlxuICovXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVkUmVzb3VyY2VzID0gKHNjb3BlOiBDb25zdHJ1Y3QpOiBBbXBsaWZ5R3JhcGhxbEFwaVJlc291cmNlcyA9PiB7XG4gIGxldCBjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpIHwgdW5kZWZpbmVkO1xuICBsZXQgY2ZuR3JhcGhxbFNjaGVtYTogQ2ZuR3JhcGhRTFNjaGVtYSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNmbkFwaUtleTogQ2ZuQXBpS2V5IHwgdW5kZWZpbmVkO1xuICBjb25zdCBjZm5SZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIENmblJlc29sdmVyPiA9IHt9O1xuICBjb25zdCBjZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24+ID0ge307XG4gIGNvbnN0IGNmbkRhdGFTb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5EYXRhU291cmNlPiA9IHt9O1xuICBjb25zdCB0YWJsZXM6IFJlY29yZDxzdHJpbmcsIFRhYmxlPiA9IHt9O1xuICBjb25zdCBjZm5UYWJsZXM6IFJlY29yZDxzdHJpbmcsIENmblRhYmxlPiA9IHt9O1xuICBjb25zdCBhbXBsaWZ5RHluYW1vRGJUYWJsZXM6IFJlY29yZDxzdHJpbmcsIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlcj4gPSB7fTtcbiAgY29uc3Qgcm9sZXM6IFJlY29yZDxzdHJpbmcsIFJvbGU+ID0ge307XG4gIGNvbnN0IGNmblJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5Sb2xlPiA9IHt9O1xuICBjb25zdCBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIExhbWJkYUZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5GdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIENmbkZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT4gPSB7fTtcblxuICBjb25zdCBjbGFzc2lmeUNvbnN0cnVjdCA9IChjdXJyZW50U2NvcGU6IENvbnN0cnVjdCk6IHZvaWQgPT4ge1xuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5HcmFwaFFMQXBpKSB7XG4gICAgICBjZm5HcmFwaHFsQXBpID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuR3JhcGhRTFNjaGVtYSkge1xuICAgICAgY2ZuR3JhcGhxbFNjaGVtYSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkFwaUtleSkge1xuICAgICAgY2ZuQXBpS2V5ID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHJlZmVyZW5jZSBuYW1lIGZvciBpbmRleGVkIHJlc291cmNlcywgYW5kIGJhaWwgaWYgbm9uZSBpcyBmb3VuZC5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBnZXRSZXNvdXJjZU5hbWUoY3VycmVudFNjb3BlKTtcbiAgICBpZiAoIXJlc291cmNlTmFtZSkgcmV0dXJuO1xuXG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkRhdGFTb3VyY2UpIHtcbiAgICAgIGNmbkRhdGFTb3VyY2VzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvbHZlcikge1xuICAgICAgY2ZuUmVzb2x2ZXJzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIGNmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIFRhYmxlKSB7XG4gICAgICB0YWJsZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblRhYmxlKSB7XG4gICAgICBjZm5UYWJsZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlci5pc0FtcGxpZnlEeW5hbW9EYlRhYmxlUmVzb3VyY2UoY3VycmVudFNjb3BlKSkge1xuICAgICAgYW1wbGlmeUR5bmFtb0RiVGFibGVzW3Jlc291cmNlTmFtZV0gPSBuZXcgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyKGN1cnJlbnRTY29wZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBSb2xlKSB7XG4gICAgICByb2xlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuUm9sZSkge1xuICAgICAgY2ZuUm9sZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIExhbWJkYUZ1bmN0aW9uKSB7XG4gICAgICBmdW5jdGlvbnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkZ1bmN0aW9uKSB7XG4gICAgICBjZm5GdW5jdGlvbnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJlc291cmNlKSB7XG4gICAgICBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIHNjb3BlLm5vZGUuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHdhbGtBbmRQcm9jZXNzTm9kZXMoY2hpbGQsIGNsYXNzaWZ5Q29uc3RydWN0KSk7XG5cbiAgaWYgKCFjZm5HcmFwaHFsQXBpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0byBmaW5kIEFXUzo6QXBwU3luYzo6R3JhcGhRTEFwaSBpbiB0aGUgZ2VuZXJhdGVkIHJlc291cmNlIHNjb3BlLicpO1xuICB9XG5cbiAgaWYgKCFjZm5HcmFwaHFsU2NoZW1hKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0byBmaW5kIEFXUzo6QXBwU3luYzo6R3JhcGhRTFNjaGVtYSBpbiB0aGUgZ2VuZXJhdGVkIHJlc291cmNlIHNjb3BlLicpO1xuICB9XG5cbiAgY29uc3QgbmVzdGVkU3RhY2tzOiBSZWNvcmQ8c3RyaW5nLCBOZXN0ZWRTdGFjaz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgc2NvcGUubm9kZS5jaGlsZHJlbi5maWx0ZXIoTmVzdGVkU3RhY2suaXNOZXN0ZWRTdGFjaykubWFwKChuZXN0ZWRTdGFjazogTmVzdGVkU3RhY2spID0+IFtuZXN0ZWRTdGFjay5ub2RlLmlkLCBuZXN0ZWRTdGFja10pLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgZ3JhcGhxbEFwaTogR3JhcGhxbEFwaS5mcm9tR3JhcGhxbEFwaUF0dHJpYnV0ZXMoc2NvcGUsICdMMkdyYXBocWxBcGknLCB7IGdyYXBocWxBcGlJZDogY2ZuR3JhcGhxbEFwaS5hdHRyQXBpSWQgfSksXG4gICAgdGFibGVzLFxuICAgIGFtcGxpZnlEeW5hbW9EYlRhYmxlcyxcbiAgICByb2xlcyxcbiAgICBmdW5jdGlvbnMsXG4gICAgbmVzdGVkU3RhY2tzLFxuICAgIGNmblJlc291cmNlczoge1xuICAgICAgY2ZuR3JhcGhxbEFwaSxcbiAgICAgIGNmbkdyYXBocWxTY2hlbWEsXG4gICAgICBjZm5BcGlLZXksXG4gICAgICBjZm5SZXNvbHZlcnMsXG4gICAgICBjZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb25zLFxuICAgICAgY2ZuRGF0YVNvdXJjZXMsXG4gICAgICBjZm5UYWJsZXMsXG4gICAgICBjZm5Sb2xlcyxcbiAgICAgIGNmbkZ1bmN0aW9ucyxcbiAgICAgIGFkZGl0aW9uYWxDZm5SZXNvdXJjZXMsXG4gICAgfSxcbiAgfTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdW5jdGlvbiBzbG90cyBnZW5lcmF0ZWQgYnkgdGhlIEdyYXBocWwgdHJhbnNmb3JtIG9wZXJhdGlvbiwgYWRoZXJpbmcgdG8gdGhlIEZ1bmN0aW9uU2xvdCBpbnRlcmZhY2UuXG4gKiBAcGFyYW0gZ2VuZXJhdGVkUmVzb2x2ZXJzIHRoZSByZXNvbHZlcnMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciB0byBzcGl0IGJhY2sgb3V0LlxuICogQHJldHVybnMgdGhlIGxpc3Qgb2YgZ2VuZXJhdGVkIGZ1bmN0aW9uIHNsb3RzIGluIHRoZSB0cmFuc2Zvcm1lciwgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBvdmVycmlkZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzID0gKGdlbmVyYXRlZFJlc29sdmVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IEZ1bmN0aW9uU2xvdFtdID0+XG4gIE9iamVjdC5lbnRyaWVzKGdlbmVyYXRlZFJlc29sdmVycylcbiAgICAuZmlsdGVyKChbbmFtZV0pID0+IG5hbWUuc3BsaXQoJy4nKS5sZW5ndGggPT09IDYpXG4gICAgLm1hcCgoW25hbWUsIHJlc29sdmVyQ29kZV0pID0+IHtcbiAgICAgIGNvbnN0IFt0eXBlTmFtZSwgZmllbGROYW1lLCBzbG90TmFtZSwgc2xvdEluZGV4LCB0ZW1wbGF0ZVR5cGVdID0gbmFtZS5zcGxpdCgnLicpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZU5hbWUsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgc2xvdE5hbWUsXG4gICAgICAgIHNsb3RJbmRleDogTnVtYmVyLnBhcnNlSW50KHNsb3RJbmRleCwgMTApLFxuICAgICAgICBmdW5jdGlvbjoge1xuICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGNvbnNvbGlkYXRlIHJlcS9yZXEgdmFsdWVzIGJhY2sgdG9nZXRoZXJcbiAgICAgICAgICAuLi4odGVtcGxhdGVUeXBlID09PSAncmVxJyA/IHsgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZTogcmVzb2x2ZXJDb2RlIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHRlbXBsYXRlVHlwZSA9PT0gJ3JlcycgPyB7IHJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlOiByZXNvbHZlckNvZGUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgRnVuY3Rpb25TbG90O1xuICAgIH0pO1xuIl19
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBUWlDO0FBQ2pDLDJEQUFtRTtBQUNuRSxpREFBb0Q7QUFDcEQsNkNBQXVEO0FBQ3ZELG9GQUF3RTtBQUN4RSx1REFBaUY7QUFFakYsc0ZBQWdGO0FBQ2hGLHFEQUF1RDtBQUV2RDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFFBQVEsQ0FBQyxLQUFVO0lBQzFCLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDO0FBQzlHLENBQUM7QUFDRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQixFQUE4QixFQUFFO0lBQ3BGLElBQUksYUFBd0MsQ0FBQztJQUM3QyxJQUFJLGdCQUE4QyxDQUFDO0lBQ25ELElBQUksU0FBZ0MsQ0FBQztJQUNyQyxNQUFNLFlBQVksR0FBZ0MsRUFBRSxDQUFDO0lBQ3JELE1BQU0seUJBQXlCLEdBQTZDLEVBQUUsQ0FBQztJQUMvRSxNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLHFCQUFxQixHQUFnRCxFQUFFLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQXlCLEVBQUUsQ0FBQztJQUN2QyxNQUFNLFFBQVEsR0FBNEIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFtQyxFQUFFLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQWdDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLHNCQUFzQixHQUFnQyxFQUFFLENBQUM7SUFFL0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFlBQXVCLEVBQVEsRUFBRTtRQUMxRCxJQUFJLFlBQVksWUFBWSwyQkFBYSxFQUFFO1lBQ3pDLGFBQWEsR0FBRyxZQUFZLENBQUM7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxZQUFZLFlBQVksOEJBQWdCLEVBQUU7WUFDNUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO1lBQ2hDLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxZQUFZLHVCQUFTLEVBQUU7WUFDckMsU0FBUyxHQUFHLFlBQVksQ0FBQztZQUN6QixPQUFPO1NBQ1I7UUFFRCw0RUFBNEU7UUFDNUUsTUFBTSxZQUFZLEdBQUcsSUFBQSwwQ0FBZSxFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUUxQixJQUFJLFlBQVksWUFBWSwyQkFBYSxFQUFFO1lBQ3pDLGNBQWMsQ0FBQyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDNUMsT0FBTztTQUNSO1FBQ0QsSUFBSSxZQUFZLFlBQVkseUJBQVcsRUFBRTtZQUN2QyxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQzFDLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxZQUFZLHNDQUF3QixFQUFFO1lBQ3BELHlCQUF5QixDQUFDLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUN2RCxPQUFPO1NBQ1I7UUFDRCxJQUFJLFlBQVksWUFBWSxvQkFBSyxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMzRCxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxZQUFZLHVCQUFRLEVBQUU7WUFDcEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUN2QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLDREQUEyQixDQUFDLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzVFLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksNERBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEYsT0FBTztTQUNSO1FBQ0QsSUFBSSxZQUFZLFlBQVksY0FBSSxFQUFFO1lBQ2hDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDbkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxZQUFZLFlBQVksaUJBQU8sRUFBRTtZQUNuQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3RDLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxZQUFZLHFCQUFjLEVBQUU7WUFDMUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUN2QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLFlBQVksWUFBWSx3QkFBVyxFQUFFO1lBQ3ZDLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDMUMsT0FBTztTQUNSO1FBQ0QsSUFBSSxZQUFZLFlBQVkseUJBQVcsRUFBRTtZQUN2QyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDcEQsT0FBTztTQUNSO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLG9DQUFtQixFQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFFdEYsSUFBSSxDQUFDLGFBQWEsRUFBRTtRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDRFQUE0RSxDQUFDLENBQUM7S0FDL0Y7SUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO0tBQ2xHO0lBRUQsTUFBTSxZQUFZLEdBQWdDLE1BQU0sQ0FBQyxXQUFXLENBQ2xFLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FDNUgsQ0FBQztJQUVGLE9BQU87UUFDTCxVQUFVLEVBQUUsd0JBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqSCxNQUFNO1FBQ04sS0FBSztRQUNMLFNBQVM7UUFDVCxZQUFZO1FBQ1osWUFBWSxFQUFFO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixTQUFTO1lBQ1QsWUFBWTtZQUNaLHlCQUF5QjtZQUN6QixjQUFjO1lBQ2QsU0FBUztZQUNULHFCQUFxQjtZQUNyQixRQUFRO1lBQ1IsWUFBWTtZQUNaLHNCQUFzQjtTQUN2QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFsSFcsUUFBQSxxQkFBcUIseUJBa0hoQztBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLHlCQUF5QixHQUFHLENBQUMsa0JBQTBDLEVBQWtCLEVBQUUsQ0FDdEcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztLQUMvQixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDaEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtJQUM1QixNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakYsT0FBTztRQUNMLFFBQVE7UUFDUixTQUFTO1FBQ1QsUUFBUTtRQUNSLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDekMsUUFBUSxFQUFFO1lBQ1IsNkRBQTZEO1lBQzdELEdBQUcsQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0UsR0FBRyxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM3RTtLQUNjLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFoQk0sUUFBQSx5QkFBeUIsNkJBZ0IvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgQ2ZuR3JhcGhRTEFwaSxcbiAgQ2ZuR3JhcGhRTFNjaGVtYSxcbiAgQ2ZuQXBpS2V5LFxuICBDZm5SZXNvbHZlcixcbiAgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuICBDZm5EYXRhU291cmNlLFxuICBHcmFwaHFsQXBpLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBDZm5UYWJsZSwgVGFibGUsIElUYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBDZm5Sb2xlLCBSb2xlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5SZXNvdXJjZSwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU5hbWUgfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IENmbkZ1bmN0aW9uLCBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMsIEZ1bmN0aW9uU2xvdCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB9IGZyb20gJy4uL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlcic7XG5pbXBvcnQgeyB3YWxrQW5kUHJvY2Vzc05vZGVzIH0gZnJvbSAnLi9jb25zdHJ1Y3QtdHJlZSc7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSByZXNvdXJjZSBpcyBpbXBsZW1lbnRpbmcgdGFibGUgaW50ZXJmYWNlXG4gKiBUaGUgcmVxdWlyZWQgcHJvcGVydGllcyBuZWVkIHRvIGJlIHByZXNlbnQgaW4gdGhlIGlucHV0XG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi9kb2NzL2F3cy1jZGstbGliLmF3c19keW5hbW9kYi5JVGFibGUuaHRtbCNwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gdGFibGUgdGFibGUgcmVzb3VyY2VcbiAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHJlc291cmNlIGlzIGEgSVRhYmxlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBpc0lUYWJsZSh0YWJsZTogYW55KTogdGFibGUgaXMgSVRhYmxlIHtcbiAgcmV0dXJuICdlbnYnIGluIHRhYmxlICYmICdub2RlJyBpbiB0YWJsZSAmJiAnc3RhY2snIGluIHRhYmxlICYmICd0YWJsZUFybicgaW4gdGFibGUgJiYgJ3RhYmxlTmFtZScgaW4gdGFibGU7XG59XG4vKipcbiAqIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBpbnRlbmRlZCB0byBoZWxwIHVzIGdhdGhlciB0aGVcbiAqIG91dHB1dCB2YWx1ZXMgYW5kIHJlbmRlciBvdXQgdGhlIEwxIHJlc291cmNlcyBmb3IgYWNjZXNzLlxuICpcbiAqIFRoaXMgaXMgZG9uZSBieSByZWN1cnNpbmcgYWxvbmcgdGhlIGNvbnN0cnVjdCB0cmVlLCBhbmQgY2xhc3NpZnlpbmcgdGhlIGdlbmVyYXRlZCByZXNvdXJjZXMuXG4gKlxuICogQHBhcmFtIHNjb3BlIHJvb3QgdG8gc2VhcmNoIGZvciBnZW5lcmF0ZWQgcmVzb3VyY2UgYWdhaW5zdFxuICogQHJldHVybnMgYSBtYXBwaW5nIG9mIEwxIGFuZCBMMiBjb25zdHJ1Y3RzIGdlbmVyYXRlZCBieSB0aGUgR3JhcGhxbCBUcmFuc2Zvcm1lci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEdlbmVyYXRlZFJlc291cmNlcyA9IChzY29wZTogQ29uc3RydWN0KTogQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMgPT4ge1xuICBsZXQgY2ZuR3JhcGhxbEFwaTogQ2ZuR3JhcGhRTEFwaSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNmbkdyYXBocWxTY2hlbWE6IENmbkdyYXBoUUxTY2hlbWEgfCB1bmRlZmluZWQ7XG4gIGxldCBjZm5BcGlLZXk6IENmbkFwaUtleSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgY2ZuUmVzb2x2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvbHZlcj4gPSB7fTtcbiAgY29uc3QgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5EYXRhU291cmNlczogUmVjb3JkPHN0cmluZywgQ2ZuRGF0YVNvdXJjZT4gPSB7fTtcbiAgY29uc3QgdGFibGVzOiBSZWNvcmQ8c3RyaW5nLCBJVGFibGU+ID0ge307XG4gIGNvbnN0IGNmblRhYmxlczogUmVjb3JkPHN0cmluZywgQ2ZuVGFibGU+ID0ge307XG4gIGNvbnN0IGFtcGxpZnlEeW5hbW9EYlRhYmxlczogUmVjb3JkPHN0cmluZywgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyPiA9IHt9O1xuICBjb25zdCByb2xlczogUmVjb3JkPHN0cmluZywgUm9sZT4gPSB7fTtcbiAgY29uc3QgY2ZuUm9sZXM6IFJlY29yZDxzdHJpbmcsIENmblJvbGU+ID0ge307XG4gIGNvbnN0IGZ1bmN0aW9uczogUmVjb3JkPHN0cmluZywgTGFtYmRhRnVuY3Rpb24+ID0ge307XG4gIGNvbnN0IGNmbkZ1bmN0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb24+ID0ge307XG4gIGNvbnN0IGFkZGl0aW9uYWxDZm5SZXNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIENmblJlc291cmNlPiA9IHt9O1xuXG4gIGNvbnN0IGNsYXNzaWZ5Q29uc3RydWN0ID0gKGN1cnJlbnRTY29wZTogQ29uc3RydWN0KTogdm9pZCA9PiB7XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkdyYXBoUUxBcGkpIHtcbiAgICAgIGNmbkdyYXBocWxBcGkgPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5HcmFwaFFMU2NoZW1hKSB7XG4gICAgICBjZm5HcmFwaHFsU2NoZW1hID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuQXBpS2V5KSB7XG4gICAgICBjZm5BcGlLZXkgPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmV0cmlldmUgcmVmZXJlbmNlIG5hbWUgZm9yIGluZGV4ZWQgcmVzb3VyY2VzLCBhbmQgYmFpbCBpZiBub25lIGlzIGZvdW5kLlxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGdldFJlc291cmNlTmFtZShjdXJyZW50U2NvcGUpO1xuICAgIGlmICghcmVzb3VyY2VOYW1lKSByZXR1cm47XG5cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuRGF0YVNvdXJjZSkge1xuICAgICAgY2ZuRGF0YVNvdXJjZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJlc29sdmVyKSB7XG4gICAgICBjZm5SZXNvbHZlcnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbikge1xuICAgICAgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgVGFibGUgfHwgaXNJVGFibGUoY3VycmVudFNjb3BlKSkge1xuICAgICAgdGFibGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5UYWJsZSkge1xuICAgICAgY2ZuVGFibGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChBbXBsaWZ5RHluYW1vRGJUYWJsZVdyYXBwZXIuaXNBbXBsaWZ5RHluYW1vRGJUYWJsZVJlc291cmNlKGN1cnJlbnRTY29wZSkpIHtcbiAgICAgIGFtcGxpZnlEeW5hbW9EYlRhYmxlc1tyZXNvdXJjZU5hbWVdID0gbmV3IEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlcihjdXJyZW50U2NvcGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgUm9sZSkge1xuICAgICAgcm9sZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJvbGUpIHtcbiAgICAgIGNmblJvbGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBMYW1iZGFGdW5jdGlvbikge1xuICAgICAgZnVuY3Rpb25zW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbikge1xuICAgICAgY2ZuRnVuY3Rpb25zW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvdXJjZSkge1xuICAgICAgYWRkaXRpb25hbENmblJlc291cmNlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcblxuICBzY29wZS5ub2RlLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB3YWxrQW5kUHJvY2Vzc05vZGVzKGNoaWxkLCBjbGFzc2lmeUNvbnN0cnVjdCkpO1xuXG4gIGlmICghY2ZuR3JhcGhxbEFwaSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCBBV1M6OkFwcFN5bmM6OkdyYXBoUUxBcGkgaW4gdGhlIGdlbmVyYXRlZCByZXNvdXJjZSBzY29wZS4nKTtcbiAgfVxuXG4gIGlmICghY2ZuR3JhcGhxbFNjaGVtYSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCBBV1M6OkFwcFN5bmM6OkdyYXBoUUxTY2hlbWEgaW4gdGhlIGdlbmVyYXRlZCByZXNvdXJjZSBzY29wZS4nKTtcbiAgfVxuXG4gIGNvbnN0IG5lc3RlZFN0YWNrczogUmVjb3JkPHN0cmluZywgTmVzdGVkU3RhY2s+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHNjb3BlLm5vZGUuY2hpbGRyZW4uZmlsdGVyKE5lc3RlZFN0YWNrLmlzTmVzdGVkU3RhY2spLm1hcCgobmVzdGVkU3RhY2s6IE5lc3RlZFN0YWNrKSA9PiBbbmVzdGVkU3RhY2subm9kZS5pZCwgbmVzdGVkU3RhY2tdKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGdyYXBocWxBcGk6IEdyYXBocWxBcGkuZnJvbUdyYXBocWxBcGlBdHRyaWJ1dGVzKHNjb3BlLCAnTDJHcmFwaHFsQXBpJywgeyBncmFwaHFsQXBpSWQ6IGNmbkdyYXBocWxBcGkuYXR0ckFwaUlkIH0pLFxuICAgIHRhYmxlcyxcbiAgICByb2xlcyxcbiAgICBmdW5jdGlvbnMsXG4gICAgbmVzdGVkU3RhY2tzLFxuICAgIGNmblJlc291cmNlczoge1xuICAgICAgY2ZuR3JhcGhxbEFwaSxcbiAgICAgIGNmbkdyYXBocWxTY2hlbWEsXG4gICAgICBjZm5BcGlLZXksXG4gICAgICBjZm5SZXNvbHZlcnMsXG4gICAgICBjZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb25zLFxuICAgICAgY2ZuRGF0YVNvdXJjZXMsXG4gICAgICBjZm5UYWJsZXMsXG4gICAgICBhbXBsaWZ5RHluYW1vRGJUYWJsZXMsXG4gICAgICBjZm5Sb2xlcyxcbiAgICAgIGNmbkZ1bmN0aW9ucyxcbiAgICAgIGFkZGl0aW9uYWxDZm5SZXNvdXJjZXMsXG4gICAgfSxcbiAgfTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdW5jdGlvbiBzbG90cyBnZW5lcmF0ZWQgYnkgdGhlIEdyYXBocWwgdHJhbnNmb3JtIG9wZXJhdGlvbiwgYWRoZXJpbmcgdG8gdGhlIEZ1bmN0aW9uU2xvdCBpbnRlcmZhY2UuXG4gKiBAcGFyYW0gZ2VuZXJhdGVkUmVzb2x2ZXJzIHRoZSByZXNvbHZlcnMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciB0byBzcGl0IGJhY2sgb3V0LlxuICogQHJldHVybnMgdGhlIGxpc3Qgb2YgZ2VuZXJhdGVkIGZ1bmN0aW9uIHNsb3RzIGluIHRoZSB0cmFuc2Zvcm1lciwgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBvdmVycmlkZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzID0gKGdlbmVyYXRlZFJlc29sdmVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IEZ1bmN0aW9uU2xvdFtdID0+XG4gIE9iamVjdC5lbnRyaWVzKGdlbmVyYXRlZFJlc29sdmVycylcbiAgICAuZmlsdGVyKChbbmFtZV0pID0+IG5hbWUuc3BsaXQoJy4nKS5sZW5ndGggPT09IDYpXG4gICAgLm1hcCgoW25hbWUsIHJlc29sdmVyQ29kZV0pID0+IHtcbiAgICAgIGNvbnN0IFt0eXBlTmFtZSwgZmllbGROYW1lLCBzbG90TmFtZSwgc2xvdEluZGV4LCB0ZW1wbGF0ZVR5cGVdID0gbmFtZS5zcGxpdCgnLicpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZU5hbWUsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgc2xvdE5hbWUsXG4gICAgICAgIHNsb3RJbmRleDogTnVtYmVyLnBhcnNlSW50KHNsb3RJbmRleCwgMTApLFxuICAgICAgICBmdW5jdGlvbjoge1xuICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGNvbnNvbGlkYXRlIHJlcS9yZXEgdmFsdWVzIGJhY2sgdG9nZXRoZXJcbiAgICAgICAgICAuLi4odGVtcGxhdGVUeXBlID09PSAncmVxJyA/IHsgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZTogcmVzb2x2ZXJDb2RlIH0gOiB7fSksXG4gICAgICAgICAgLi4uKHRlbXBsYXRlVHlwZSA9PT0gJ3JlcycgPyB7IHJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlOiByZXNvbHZlckNvZGUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgRnVuY3Rpb25TbG90O1xuICAgIH0pO1xuIl19
|
@@ -79,5 +79,5 @@ class SQLLambdaModelDataSourceStrategyFactory {
|
|
79
79
|
}
|
80
80
|
exports.SQLLambdaModelDataSourceStrategyFactory = SQLLambdaModelDataSourceStrategyFactory;
|
81
81
|
_a = JSII_RTTI_SYMBOL_1;
|
82
|
-
SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.
|
82
|
+
SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.7.0-cors-rule.0" };
|
83
83
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG9GQUFvRTtBQVFwRTs7OztHQUlHO0FBQ0ksTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLEdBQVEsRUFBMkMsRUFBRTtJQUN0RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQzVCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQzlCLElBQUEsc0NBQVcsRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLElBQUEsOENBQXNDLEVBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQy9ELENBQUM7QUFDSixDQUFDLENBQUM7QUFSVyxRQUFBLGtDQUFrQyxzQ0FRN0M7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEdBQVEsRUFBK0MsRUFBRTtJQUM5RyxPQUFPLElBQUEsaURBQXlDLEVBQUMsR0FBRyxDQUFDLElBQUksSUFBQSw0REFBb0QsRUFBQyxHQUFHLENBQUMsQ0FBQztBQUNySCxDQUFDLENBQUM7QUFGVyxRQUFBLHNDQUFzQywwQ0FFakQ7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSx5Q0FBeUMsR0FBRyxDQUFDLEdBQVEsRUFBa0QsRUFBRTtJQUNwSCxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQ25DLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixLQUFLLFFBQVEsQ0FDNUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVRXLFFBQUEseUNBQXlDLDZDQVNwRDtBQUVGOzs7O0dBSUc7QUFDSSxNQUFNLG9EQUFvRCxHQUFHLENBQ2xFLEdBQVEsRUFDbUQsRUFBRTtJQUM3RCxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLFNBQVMsS0FBSyxRQUFRO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRO1FBQzVCLE9BQU8sR0FBRyxDQUFDLFlBQVksS0FBSyxRQUFRO1FBQ3BDLE9BQU8sR0FBRyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQ2hDLENBQUM7QUFDSixDQUFDLENBQUM7QUFWVyxRQUFBLG9EQUFvRCx3REFVL0Q7QUFFRjs7R0FFRztBQUNILE1BQWEsdUNBQXVDO0lBQ2xEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQixDQUN2QixRQUFrQixFQUNsQixPQUF5RTtRQUV6RSxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUEwQixFQUFFO1lBQ3BGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7UUFFakMsT0FBTztZQUNMLG1CQUFtQjtZQUNuQixHQUFHLE9BQU87U0FDWCxDQUFDO0lBQ0osQ0FBQzs7QUFyQkgsMEZBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGlzU3FsRGJUeXBlIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItY29yZSc7XG5pbXBvcnQge1xuICBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSxcbiAgU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnLFxuICBTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25Db25maWcsXG4gIFNxbE1vZGVsRGF0YVNvdXJjZVNlY3JldHNNYW5hZ2VyRGJDb25uZWN0aW9uQ29uZmlnLFxufSBmcm9tICcuL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3ktdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneS5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICovXG5leHBvcnQgY29uc3QgaXNTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9IChvYmo6IGFueSk6IG9iaiBpcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5uYW1lID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmouZGJUeXBlID09PSAnc3RyaW5nJyAmJlxuICAgIGlzU3FsRGJUeXBlKG9iai5kYlR5cGUpICYmXG4gICAgaXNTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcob2JqLmRiQ29ubmVjdGlvbkNvbmZpZylcbiAgKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiBpc1NxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZyhvYmopIHx8IGlzU3FsTW9kZWxEYXRhU291cmNlU2VjcmV0c01hbmFnZXJEYkNvbm5lY3Rpb25Db25maWcob2JqKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VTc21EYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlU3NtRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZVNzbURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5ob3N0bmFtZVNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5wb3J0U3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnVzZXJuYW1lU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnBhc3N3b3JkU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZVNzbVBhdGggPT09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIFR5cGUgcHJlZGljYXRlIHRoYXQgcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgYSBTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZ1xuICovXG5leHBvcnQgY29uc3QgaXNTcWxNb2RlbERhdGFTb3VyY2VTZWNyZXRzTWFuYWdlckRiQ29ubmVjdGlvbkNvbmZpZyA9IChcbiAgb2JqOiBhbnksXG4pOiBvYmogaXMgU3FsTW9kZWxEYXRhU291cmNlU2VjcmV0c01hbmFnZXJEYkNvbm5lY3Rpb25Db25maWcgPT4ge1xuICByZXR1cm4gKFxuICAgICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSAmJlxuICAgIHR5cGVvZiBvYmouc2VjcmV0QXJuID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvYmoucG9ydCA9PT0gJ251bWJlcicgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZSA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmhvc3RuYW1lID09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9iamVjdHMgZ2l2ZW4gdmFyaW91cyBpbnB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneUZhY3Rvcnkge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHdoZXJlIHRoZSBiaW5kaW5nJ3MgYGN1c3RvbVNxbFN0YXRlbWVudHNgIGFyZSBwb3B1bGF0ZWQgZnJvbSBgc3FsRmlsZXNgLiBUaGUga2V5XG4gICAqIG9mIHRoZSBgY3VzdG9tU3FsU3RhdGVtZW50c2AgcmVjb3JkIGlzIHRoZSBmaWxlJ3MgYmFzZSBuYW1lICh0aGF0IGlzLCB0aGUgbmFtZSBvZiB0aGUgZmlsZSBtaW51cyB0aGUgZGlyZWN0b3J5IGFuZCBleHRlbnNpb24pLlxuICAgKiBAcGFyYW0gc3FsRmlsZXMgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gbG9hZCBTUUwgc3RhdGVtZW50cyBmcm9tLlxuICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgcmVtYWluaW5nIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUN1c3RvbVNxbEZpbGVzKFxuICAgIHNxbEZpbGVzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiBFeGNsdWRlPFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LCAnY3VzdG9tU3FsU3RhdGVtZW50cyc+LFxuICApOiBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB7XG4gICAgY29uc3QgY3VzdG9tU3FsU3RhdGVtZW50cyA9IHNxbEZpbGVzLnJlZHVjZSgoYWNjLCBmaWxlUGF0aCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKS5uYW1lO1xuICAgICAgYWNjW2Jhc2VuYW1lXSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tU3FsU3RhdGVtZW50cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
package/lib/types.d.ts
CHANGED
@@ -190,8 +190,14 @@ export interface CustomConflictResolutionStrategy extends ConflictResolutionStra
|
|
190
190
|
export type ConflictResolutionStrategy = AutomergeConflictResolutionStrategy | OptimisticConflictResolutionStrategy | CustomConflictResolutionStrategy;
|
191
191
|
/**
|
192
192
|
* Project level configuration for conflict resolution.
|
193
|
+
* @deprecated use DataStoreConfiguration instead.
|
193
194
|
*/
|
194
|
-
export interface ConflictResolution {
|
195
|
+
export interface ConflictResolution extends DataStoreConfiguration {
|
196
|
+
}
|
197
|
+
/**
|
198
|
+
* Project level configuration for DataStore
|
199
|
+
*/
|
200
|
+
export interface DataStoreConfiguration {
|
195
201
|
/**
|
196
202
|
* Project-wide config for conflict resolution. Applies to all non-overridden models.
|
197
203
|
*/
|
@@ -539,6 +545,7 @@ export interface AmplifyGraphqlApiProps {
|
|
539
545
|
/**
|
540
546
|
* Configure conflict resolution on the Api, which is required to enable DataStore Api functionality.
|
541
547
|
* For more information, refer to https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js/
|
548
|
+
* @deprecated use dataStoreConfiguration instead.
|
542
549
|
*/
|
543
550
|
readonly conflictResolution?: ConflictResolution;
|
544
551
|
/**
|
@@ -573,6 +580,11 @@ export interface AmplifyGraphqlApiProps {
|
|
573
580
|
* Strategy to store construct outputs. If no outputStorageStrategey is provided a default strategy will be used.
|
574
581
|
*/
|
575
582
|
readonly outputStorageStrategy?: IBackendOutputStorageStrategy;
|
583
|
+
/**
|
584
|
+
* Configure DataStore conflict resolution on the Api. Conflict resolution is required to enable DataStore Api functionality.
|
585
|
+
* For more information, refer to https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js/
|
586
|
+
*/
|
587
|
+
readonly dataStoreConfiguration?: DataStoreConfiguration;
|
576
588
|
}
|
577
589
|
/**
|
578
590
|
* L1 CDK resources from the Api which were generated as part of the transform.
|
@@ -607,6 +619,10 @@ export interface AmplifyGraphqlApiCfnResources {
|
|
607
619
|
* The Generated DynamoDB Table L1 Resources, keyed by logicalId.
|
608
620
|
*/
|
609
621
|
readonly cfnTables: Record<string, CfnTable>;
|
622
|
+
/**
|
623
|
+
* The Generated Amplify DynamoDb Table L1 resource wrapper, keyed by model type name.
|
624
|
+
*/
|
625
|
+
readonly amplifyDynamoDbTables: Record<string, AmplifyDynamoDbTableWrapper>;
|
610
626
|
/**
|
611
627
|
* The Generated IAM Role L1 Resources, keyed by logicalId.
|
612
628
|
*/
|
@@ -633,10 +649,6 @@ export interface AmplifyGraphqlApiResources {
|
|
633
649
|
* The Generated DynamoDB Table L2 Resources, keyed by logicalId.
|
634
650
|
*/
|
635
651
|
readonly tables: Record<string, ITable>;
|
636
|
-
/**
|
637
|
-
* The Generated Amplify DynamoDb Table wrapped if produced, keyed by name.
|
638
|
-
*/
|
639
|
-
readonly amplifyDynamoDbTables: Record<string, AmplifyDynamoDbTableWrapper>;
|
640
652
|
/**
|
641
653
|
* The Generated IAM Role L2 Resources, keyed by logicalId.
|
642
654
|
*/
|
package/lib/types.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBDZm5SZXNvdXJjZSwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBDZm5HcmFwaFFMQXBpLFxuICBDZm5HcmFwaFFMU2NoZW1hLFxuICBDZm5BcGlLZXksXG4gIENmblJlc29sdmVyLFxuICBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG4gIENmbkRhdGFTb3VyY2UsXG4gIElHcmFwaHFsQXBpLFxuICBNYXBwaW5nVGVtcGxhdGUsXG4gIEJhc2VEYXRhU291cmNlLFxuICBDb2RlLFxuICBGdW5jdGlvblJ1bnRpbWUsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IENmblRhYmxlLCBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSVJvbGUsIENmblJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElVc2VyUG9vbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IElGdW5jdGlvbiwgQ2ZuRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyIH0gZnJvbSAnLi9hbXBsaWZ5LWR5bmFtb2RiLXRhYmxlLXdyYXBwZXInO1xuaW1wb3J0IHsgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5LCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB9IGZyb20gJy4vbW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS10eXBlcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgSUFNIEF1dGhvcml6YXRpb24gb24gdGhlIEdyYXBocWwgQXBpLlxuICogQHN0cnVjdCAtIHJlcXVpcmVkIHNpbmNlIHRoaXMgaW50ZXJmYWNlIGJlZ2lucyB3aXRoIGFuICdJJ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElBTUF1dGhvcml6YXRpb25Db25maWcge1xuICAvKipcbiAgICogSUQgZm9yIHRoZSBDb2duaXRvIElkZW50aXR5IFBvb2wgdmVuZGluZyBhdXRoIGFuZCB1bmF1dGggcm9sZXMuXG4gICAqIEZvcm1hdDogYDxyZWdpb24+OjxpZCBzdHJpbmc+YFxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQXV0aGVudGljYXRlZCB1c2VyIHJvbGUsIGFwcGxpZXMgdG8geyBwcm92aWRlcjogaWFtLCBhbGxvdzogcHJpdmF0ZSB9IGFjY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWRVc2VyUm9sZTogSVJvbGU7XG5cbiAgLyoqXG4gICAqIFVuYXV0aGVudGljYXRlZCB1c2VyIHJvbGUsIGFwcGxpZXMgdG8geyBwcm92aWRlcjogaWFtLCBhbGxvdzogcHVibGljIH0gYWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgdW5hdXRoZW50aWNhdGVkVXNlclJvbGU6IElSb2xlO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgSUFNIHJvbGVzIHdoaWNoIHdpbGwgYmUgZ3JhbnRlZCBmdWxsIHJlYWQvd3JpdGUgYWNjZXNzIHRvIHRoZSBnZW5lcmF0ZWQgbW9kZWwgaWYgSUFNIGF1dGggaXMgZW5hYmxlZC5cbiAgICogSWYgYW4gSVJvbGUgaXMgcHJvdmlkZWQsIHRoZSByb2xlIGBuYW1lYCB3aWxsIGJlIHVzZWQgZm9yIG1hdGNoaW5nLlxuICAgKiBJZiBhIHN0cmluZyBpcyBwcm92aWRlZCwgdGhlIHJhdyB2YWx1ZSB3aWxsIGJlIHVzZWQgZm9yIG1hdGNoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dMaXN0ZWRSb2xlcz86IChJUm9sZSB8IHN0cmluZylbXTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBDb2duaXRvIFVzZXJQb29sIEF1dGhvcml6YXRpb24gb24gdGhlIEdyYXBocWwgQXBpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb29sQXV0aG9yaXphdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBVc2VyIFBvb2wgd2hpY2ggaXMgdXNlZCB0byBhdXRoZW50aWNhdGVkIEpXVCB0b2tlbnMsIGFuZCB2ZW5kcyBncm91cCBhbmQgdXNlciBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2w7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgT3BlbklkIENvbm5lY3QgQXV0aG9yaXphdGlvbiBvbiB0aGUgR3JhcGhxbCBBcGkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0lEQ0F1dGhvcml6YXRpb25Db25maWcge1xuICAvKipcbiAgICogVGhlIGlzc3VlciBmb3IgdGhlIE9JREMgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNQcm92aWRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXJsIGZvciB0aGUgT0lEQyB0b2tlbiBpc3N1ZXIuXG4gICAqL1xuICByZWFkb25seSBvaWRjSXNzdWVyVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjbGllbnQgaWRlbnRpZmllciBvZiB0aGUgUmVseWluZyBwYXJ0eSBhdCB0aGUgT3BlbklEIGlkZW50aXR5IHByb3ZpZGVyLlxuICAgKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBjYW4gYmUgc3BlY2lmaWVkIHNvIEFwcFN5bmMgY2FuIHZhbGlkYXRlIGFnYWluc3QgbXVsdGlwbGUgY2xpZW50IGlkZW50aWZpZXJzIGF0IGEgdGltZS4gRXhhbXBsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBhbiBPSURDIHRva2VuIGlzIHZhbGlkIGFmdGVyIGJlaW5nIGF1dGhlbnRpY2F0ZWQgYnkgT0lEQyBwcm92aWRlci5cbiAgICogYXV0aF90aW1lIGNsYWltIGluIE9JREMgdG9rZW4gaXMgcmVxdWlyZWQgZm9yIHRoaXMgdmFsaWRhdGlvbiB0byB3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW5FeHBpcnlGcm9tQXV0aDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBhbiBPSURDIHRva2VuIGlzIHZhbGlkIGFmdGVyIGJlaW5nIGlzc3VlZCB0byBhIHVzZXIuXG4gICAqIFRoaXMgdmFsaWRhdGlvbiB1c2VzIGlhdCBjbGFpbSBvZiBPSURDIHRva2VuLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW5FeHBpcnlGcm9tSXNzdWU6IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIEFwaSBLZXlzIG9uIHRoZSBHcmFwaHFsIEFwaS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgQXBpIEtleSB0byBhdHRhY2ggdG8gdGhlIEFwaS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGR1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBmcm9tIENsb3VkZm9ybWF0aW9uIGRlcGxveSB1bnRpbCBleHBpcnkuXG4gICAqL1xuICByZWFkb25seSBleHBpcmVzOiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBDdXN0b20gTGFtYmRhIGF1dGhvcml6YXRpb24gb24gdGhlIEdyYXBocWwgQXBpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUF1dGhvcml6YXRpb25Db25maWcge1xuICAvKipcbiAgICogVGhlIGF1dGhvcml6ZXIgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogSG93IGxvbmcgdGhlIHJlc3VsdHMgYXJlIGNhY2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IHR0bDogRHVyYXRpb247XG59XG5cbi8qKlxuICogQXV0aG9yaXphdGlvbiBNb2RlcyB0byBhcHBseSB0byB0aGUgQXBpLlxuICogQXQgbGVhc3Qgb25lIG1vZGVzIG11c3QgYmUgcHJvdmlkZWQsIGFuZCBpZiBtb3JlIHRoYW4gb25lIGFyZSBwcm92aWRlZCBhIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBtdXN0IGJlIHNwZWNpZmllZC5cbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIEFtcGxpZnkgQXBpIGF1dGgsIHJlZmVyIHRvIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9hdXRob3JpemF0aW9uLXJ1bGVzLyNhdXRob3JpemF0aW9uLXN0cmF0ZWdpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uTW9kZXMge1xuICAvKipcbiAgICogRGVmYXVsdCBhdXRoIG1vZGUgdG8gcHJvdmlkZSB0byB0aGUgQXBpLCByZXF1aXJlZCBpZiBtb3JlIHRoYW4gb25lIGNvbmZpZyB0eXBlIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZT86ICdBV1NfSUFNJyB8ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJyB8ICdPUEVOSURfQ09OTkVDVCcgfCAnQVBJX0tFWScgfCAnQVdTX0xBTUJEQSc7XG5cbiAgLyoqXG4gICAqIElBTSBBdXRoIGNvbmZpZywgcmVxdWlyZWQgaWYgYW4gJ2lhbScgYXV0aCBwcm92aWRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIEFwaS5cbiAgICogQXBwbGllcyB0byAncHVibGljJyBhbmQgJ3ByaXZhdGUnIGF1dGggc3RyYXRlZ2llcy5cbiAgICovXG4gIHJlYWRvbmx5IGlhbUNvbmZpZz86IElBTUF1dGhvcml6YXRpb25Db25maWc7XG5cbiAgLyoqXG4gICAqIENvZ25pdG8gVXNlclBvb2wgY29uZmlnLCByZXF1aXJlZCBpZiBhICd1c2VyUG9vbHMnIGF1dGggcHJvdmlkZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBBcGkuXG4gICAqIEFwcGxpZXMgdG8gJ293bmVyJywgJ3ByaXZhdGUnLCBhbmQgJ2dyb3VwJyBhdXRoIHN0cmF0ZWdpZXMuXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbENvbmZpZz86IFVzZXJQb29sQXV0aG9yaXphdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogQ29nbml0byBPSURDIGNvbmZpZywgcmVxdWlyZWQgaWYgYSAnb2lkYycgYXV0aCBwcm92aWRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIEFwaS5cbiAgICogQXBwbGllcyB0byAnb3duZXInLCAncHJpdmF0ZScsIGFuZCAnZ3JvdXAnIGF1dGggc3RyYXRlZ2llcy5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNDb25maWc/OiBPSURDQXV0aG9yaXphdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogQXBwU3luYyBBcGkgS2V5IGNvbmZpZywgcmVxdWlyZWQgaWYgYSAnYXBpS2V5JyBhdXRoIHByb3ZpZGVyIGlzIHNwZWNpZmllZCBpbiB0aGUgQXBpLlxuICAgKiBBcHBsaWVzIHRvICdwdWJsaWMnIGF1dGggc3RyYXRlZ3kuXG4gICAqL1xuICByZWFkb25seSBhcGlLZXlDb25maWc/OiBBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBMYW1iZGEgY29uZmlnLCByZXF1aXJlZCBpZiBhICdmdW5jdGlvbicgYXV0aCBwcm92aWRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIEFwaS5cbiAgICogQXBwbGllcyB0byAnY3VzdG9tJyBhdXRoIHN0cmF0ZWd5LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhQ29uZmlnPzogTGFtYmRhQXV0aG9yaXphdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHJvbGVzIGdyYW50ZWQgZnVsbCBSL1cgYWNjZXNzIHRvIHRoZSBBcGkuXG4gICAqIEBkZXByZWNhdGVkLCB1c2UgaWFtQ29uZmlnLmFsbG93TGlzdGVkUm9sZXMgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUm9sZXM/OiBJUm9sZVtdO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBhIHZlcnNpb24gZmllbGQgdG8gdHJhY2sgY29uZmxpY3QgZGV0ZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDb25mbGljdERldGVjdGlvblR5cGUgPSAnVkVSU0lPTicgfCAnTk9ORSc7XG5cbi8qKlxuICogQ29tbW9uIHBhcmFtZXRlcnMgZm9yIGNvbmZsaWN0IHJlc29sdXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBjb25mbGljdCBkZXRlY3Rpb24gdHlwZSB1c2VkIGZvciByZXNvbHV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV0ZWN0aW9uVHlwZTogQ29uZmxpY3REZXRlY3Rpb25UeXBlO1xufVxuXG4vKipcbiAqIEVuYWJsZSBvcHRpbWlzdGljIGNvbmN1cnJlbmN5IG9uIHRoZSBwcm9qZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tZXJnZUNvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5IGV4dGVuZHMgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqXG4gICAqIFRoaXMgY29uZmxpY3QgcmVzb2x1dGlvbiBzdHJhdGVneSBleGVjdXRlcyBhbiBhdXRvLW1lcmdlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN5bmMvbGF0ZXN0L2Rldmd1aWRlL2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtc3luYy5odG1sI2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtcmVzb2x1dGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlclR5cGU6ICdBVVRPTUVSR0UnO1xufVxuXG4vKipcbiAqIEVuYWJsZSBhdXRvbWVyZ2Ugb24gdGhlIHByb2plY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pc3RpY0NvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5IGV4dGVuZHMgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqXG4gICAqIFRoaXMgY29uZmxpY3QgcmVzb2x1dGlvbiBzdHJhdGVneSB0aGUgX3ZlcnNpb24gdG8gcGVyZm9ybSBvcHRpbWlzdGljIGNvbmN1cnJlbmN5LlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN5bmMvbGF0ZXN0L2Rldmd1aWRlL2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtc3luYy5odG1sI2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtcmVzb2x1dGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlclR5cGU6ICdPUFRJTUlTVElDX0NPTkNVUlJFTkNZJztcbn1cblxuLyoqXG4gKiBFbmFibGUgY3VzdG9tIHN5bmMgb24gdGhlIHByb2plY3QsIHBvd2VyZWQgYnkgYSBsYW1iZGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneUJhc2Uge1xuICAvKipcbiAgICogVGhpcyBjb25mbGljdCByZXNvbHV0aW9uIHN0cmF0ZWd5IHVzZXMgYSBsYW1iZGEgaGFuZGxlciB0eXBlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN5bmMvbGF0ZXN0L2Rldmd1aWRlL2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtc3luYy5odG1sI2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtcmVzb2x1dGlvblxuXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyVHlwZTogJ0xBTUJEQSc7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGludm9rZWQgZm9yIGNvbmZsaWN0IHJlc29sdXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb25mbGljdEhhbmRsZXI6IElGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBDb25mbGljdCBSZXNvbHV0aW9uIFN0cmF0ZWd5IHRvIGFwcGx5IHRvIHRoZSBwcm9qZWN0IG9yIGEgcGFydGljdWxhciBtb2RlbC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3kgPVxuICB8IEF1dG9tZXJnZUNvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5XG4gIHwgT3B0aW1pc3RpY0NvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5XG4gIHwgQ3VzdG9tQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3k7XG5cbi8qKlxuICogUHJvamVjdCBsZXZlbCBjb25maWd1cmF0aW9uIGZvciBjb25mbGljdCByZXNvbHV0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZsaWN0UmVzb2x1dGlvbiB7XG4gIC8qKlxuICAgKiBQcm9qZWN0LXdpZGUgY29uZmlnIGZvciBjb25mbGljdCByZXNvbHV0aW9uLiBBcHBsaWVzIHRvIGFsbCBub24tb3ZlcnJpZGRlbiBtb2RlbHMuXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0PzogQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIE1vZGVsLXNwZWNpZmljIGNvbmZsaWN0IHJlc29sdXRpb24gb3ZlcnJpZGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxzPzogUmVjb3JkPHN0cmluZywgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3k+O1xufVxuXG4vKipcbiAqIFBhcmFtcyBleHBvc2VkIHRvIHN1cHBvcnQgY29uZmlndXJpbmcgYW5kIG92ZXJyaWRpbmcgcGlwZWxpbmVkIHNsb3RzLiBUaGlzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uLFxuICogaW5jbHVkaW5nIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBtYXBwaW5nIHRlbXBsYXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNsb3RPdmVycmlkZSB7XG4gIC8qKlxuICAgKiBPdmVycmlkZSByZXF1ZXN0IG1hcHBpbmcgdGVtcGxhdGUgZm9yIHRoZSBmdW5jdGlvbiBzbG90LiBFeGVjdXRlZCBiZWZvcmUgdGhlIGRhdGFzb3VyY2UgaXMgaW52b2tlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNYXBwaW5nVGVtcGxhdGU/OiBNYXBwaW5nVGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHJlc3BvbnNlIG1hcHBpbmcgdGVtcGxhdGUgZm9yIHRoZSBmdW5jdGlvbiBzbG90LiBFeGVjdXRlZCBhZnRlciB0aGUgZGF0YXNvdXJjZSBpcyBpbnZva2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzcG9uc2VNYXBwaW5nVGVtcGxhdGU/OiBNYXBwaW5nVGVtcGxhdGU7XG59XG5cbi8qKlxuICogQ29tbW9uIHNsb3QgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNsb3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBhdHRhY2ggdGhpcyBmdW5jdGlvbiB0byBvbiB0aGUgQXBpIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBmaWVsZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNsb3QgaW5kZXggdG8gdXNlIHRvIGluamVjdCB0aGlzIGludG8gdGhlIGV4ZWN1dGlvbiBwaXBlbGluZS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gc2xvdHRpbmcsIHJlZmVyIHRvIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jdXN0b20tYnVzaW5lc3MtbG9naWMvI2V4dGVuZC1hbXBsaWZ5LWdlbmVyYXRlZC1yZXNvbHZlcnNcbiAgICovXG4gIHJlYWRvbmx5IHNsb3RJbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgb3ZlcnJpZGRlbiBiZWhhdmlvciBmb3IgdGhpcyBzbG90LlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IEZ1bmN0aW9uU2xvdE92ZXJyaWRlO1xufVxuXG4vKipcbiAqIFNsb3QgdHlwZXMgZm9yIE11dGF0aW9uIFJlc29sdmVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdXRhdGlvbkZ1bmN0aW9uU2xvdCBleHRlbmRzIEZ1bmN0aW9uU2xvdEJhc2Uge1xuICAvKipcbiAgICogVGhpcyBzbG90IHR5cGUgYXBwbGllcyB0byB0aGUgTXV0YXRpb24gdHlwZSBvbiB0aGUgQXBpIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSB0eXBlTmFtZTogJ011dGF0aW9uJztcblxuICAvKipcbiAgICogVGhlIHNsb3QgbmFtZSB0byBpbmplY3QgdGhpcyBiZWhhdmlvciBpbnRvLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzbG90dGluZywgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9ncmFwaHFsL2N1c3RvbS1idXNpbmVzcy1sb2dpYy8jZXh0ZW5kLWFtcGxpZnktZ2VuZXJhdGVkLXJlc29sdmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgc2xvdE5hbWU6ICdpbml0JyB8ICdwcmVBdXRoJyB8ICdhdXRoJyB8ICdwb3N0QXV0aCcgfCAncHJlVXBkYXRlJyB8ICdwb3N0VXBkYXRlJyB8ICdmaW5pc2gnO1xufVxuXG4vKipcbiAqIFNsb3QgdHlwZXMgZm9yIFF1ZXJ5IFJlc29sdmVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWVyeUZ1bmN0aW9uU2xvdCBleHRlbmRzIEZ1bmN0aW9uU2xvdEJhc2Uge1xuICAvKipcbiAgICogVGhpcyBzbG90IHR5cGUgYXBwbGllcyB0byB0aGUgUXVlcnkgdHlwZSBvbiB0aGUgQXBpIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSB0eXBlTmFtZTogJ1F1ZXJ5JztcblxuICAvKipcbiAgICogVGhlIHNsb3QgbmFtZSB0byBpbmplY3QgdGhpcyBiZWhhdmlvciBpbnRvLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzbG90dGluZywgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9ncmFwaHFsL2N1c3RvbS1idXNpbmVzcy1sb2dpYy8jZXh0ZW5kLWFtcGxpZnktZ2VuZXJhdGVkLXJlc29sdmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgc2xvdE5hbWU6ICdpbml0JyB8ICdwcmVBdXRoJyB8ICdhdXRoJyB8ICdwb3N0QXV0aCcgfCAncHJlRGF0YUxvYWQnIHwgJ3Bvc3REYXRhTG9hZCcgfCAnZmluaXNoJztcbn1cblxuLyoqXG4gKiBTbG90IHR5cGVzIGZvciBTdWJzY3JpcHRpb24gUmVzb2x2ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbkZ1bmN0aW9uU2xvdCBleHRlbmRzIEZ1bmN0aW9uU2xvdEJhc2Uge1xuICAvKipcbiAgICogVGhpcyBzbG90IHR5cGUgYXBwbGllcyB0byB0aGUgU3Vic2NyaXB0aW9uIHR5cGUgb24gdGhlIEFwaSBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZU5hbWU6ICdTdWJzY3JpcHRpb24nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2xvdCBuYW1lIHRvIGluamVjdCB0aGlzIGJlaGF2aW9yIGludG8uXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHNsb3R0aW5nLCByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY3VzdG9tLWJ1c2luZXNzLWxvZ2ljLyNleHRlbmQtYW1wbGlmeS1nZW5lcmF0ZWQtcmVzb2x2ZXJzXG4gICAqL1xuICByZWFkb25seSBzbG90TmFtZTogJ2luaXQnIHwgJ3ByZUF1dGgnIHwgJ2F1dGgnIHwgJ3Bvc3RBdXRoJyB8ICdwcmVTdWJzY3JpYmUnO1xufVxuXG4vKipcbiAqIElucHV0IHBhcmFtcyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGUgc2xvdCB3aGljaCBpcyBiZWluZyBvdmVycmlkZGVuLlxuICovXG5leHBvcnQgdHlwZSBGdW5jdGlvblNsb3QgPSBNdXRhdGlvbkZ1bmN0aW9uU2xvdCB8IFF1ZXJ5RnVuY3Rpb25TbG90IHwgU3Vic2NyaXB0aW9uRnVuY3Rpb25TbG90O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIHNldCBvZiBzaGFyZWQgcGFyYW1ldGVycyBmb3IgYWxsIHRyYW5zZm9ybWVycywgYW5kIGNvcmUgbGF5ZXIuXG4gKiBUaGlzIGlzIGludGVuZGVkIHRvIHJlcGxhY2UgZmVhdHVyZSBmbGFncywgdG8gZW5zdXJlIHBhcmFtIGNvZXJjaW9uIGhhcHBlbnMgaW5cbiAqIGEgc2luZ2xlIGxvY2F0aW9uLCBhbmQgaXNuJ3Qgc3ByZWFkIGFyb3VuZCB0aGUgdHJhbnNmb3JtZXJzLCB3aGVyZSB0aGV5IGNhblxuICogaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdCBiZWhhdmlvcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25CZWhhdmlvciB7XG4gIC8qKlxuICAgKiBSZXN0b3JlIHBhcml0eSB3LyBHUUx2MSBAbW9kZWwgcGFyYW1ldGVyIGJlaGF2aW9yLCB3aGVyZSBzZXR0aW5nIGEgc2luZ2xlIGZpZWxkIGRvZXNuJ3QgaW1wbGljaXRseSBzZXQgdGhlIG90aGVyIGZpZWxkcyB0byBudWxsLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzaG91bGREZWVwTWVyZ2VEaXJlY3RpdmVDb25maWdEZWZhdWx0czogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzYWJsZSByZXNvbHZlciBkZWR1cGluZywgdGhpcyBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zIGJlY2F1c2UgZGVkdXBlIG9yZGVyaW5nIGlzbid0IHN0YWJsZSB0b2RheSwgd2hpY2ggY2FuXG4gICAqIGxlYWQgdG8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGFjcm9zcyBzdGFja3MgaWYgbW9kZWxzIGFyZSByZW9yZGVyZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVSZXNvbHZlckRlZHVwaW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGluZyBzYW5kYm94IG1vZGUgd2lsbCBlbmFibGUgYXBpIGtleSBhdXRoIG9uIGFsbCBtb2RlbHMgaW4gdGhlIHRyYW5zZm9ybWVkIHNjaGVtYS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNhbmRib3hNb2RlRW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5zdXJlIHRoYXQgb2lkYyBhbmQgdXNlclBvb2wgYXV0aCB1c2UgdGhlIGBzdWJgIGZpZWxkIGluIHRoZSBmb3IgdGhlIHVzZXJuYW1lIGZpZWxkLCB3aGljaCBkaXNhbGxvd3MgbmV3IHVzZXJzIHdpdGggdGhlIHNhbWVcbiAgICogaWQgdG8gYWNjZXNzIGRhdGEgZnJvbSBhIGRlbGV0ZWQgdXNlciBpbiB0aGUgcG9vbC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlU3ViVXNlcm5hbWVGb3JEZWZhdWx0SWRlbnRpdHlDbGFpbTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5zdXJlIHRoYXQgdGhlIG93bmVyIGZpZWxkIGlzIHN0aWxsIHBvcHVsYXRlZCBldmVuIGlmIGEgc3RhdGljIGlhbSBvciBncm91cCBhdXRob3JpemF0aW9uIGFwcGxpZXMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBvcHVsYXRlT3duZXJGaWVsZEZvclN0YXRpY0dyb3VwQXV0aDogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgZW5hYmxlZCwgZGlzYWJsZSBhcGkga2V5IHJlc291cmNlIGdlbmVyYXRpb24gZXZlbiBpZiBzcGVjaWZpZWQgYXMgYW4gYXV0aCBydWxlIG9uIHRoZSBjb25zdHJ1Y3QuXG4gICAqIFRoaXMgaXMgYSBsZWdhY3kgcGFyYW1ldGVyIGZyb20gdGhlIEdyYXBocWwgVHJhbnNmb3JtZXIgZXhpc3RpbmcgaW4gQW1wbGlmeSBDTEksIG5vdCByZWNvbW1lbmRlZCB0byBjaGFuZ2UuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc0FwaUtleUdlbmVyYXRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGRpc2FibGVkLCBnZW5lcmF0ZWQgQGluZGV4IGFzIGFuIExTSSBpbnN0ZWFkIG9mIGEgR1NJLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzZWNvbmRhcnlLZXlBc0dTSTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0b21hdGUgZ2VuZXJhdGlvbiBvZiBxdWVyeSBuYW1lcywgYW5kIGFzIGEgcmVzdWx0IGF0dGFjaGluZyBhbGwgaW5kZXhlcyBhcyBxdWVyaWVzIHRvIHRoZSBnZW5lcmF0ZWQgQXBpLlxuICAgKiBJZiBlbmFibGVkLCBAaW5kZXggY2FuIGJlIHByb3ZpZGVkIGEgbnVsbCBuYW1lIGZpZWxkIHRvIGRpc2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHF1ZXJ5IG9uIHRoZSBBcGkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUF1dG9JbmRleFF1ZXJ5TmFtZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjdXN0b20gcHJpbWFyeSBrZXkgc3VwcG9ydCwgdGhlcmUncyBubyBnb29kIHJlYXNvbiB0byBkaXNhYmxlIHRoaXMgdW5sZXNzIHRyeWluZyBub3QgdG8gdXBkYXRlIGEgbGVnYWN5IGFwcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzcGVjdFByaW1hcnlLZXlBdHRyaWJ1dGVzT25Db25uZWN0aW9uRmllbGQ6IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgZW5hYmxlU2VhcmNoTm9kZVRvTm9kZUVuY3J5cHRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gZW5hYmxlZCwgaW50ZXJuYWwgY2ZuIG91dHB1dHMgd2hpY2ggZXhpc3RlZCBpbiBBbXBsaWZ5LWdlbmVyYXRlZCBhcHBzIHdpbGwgY29udGludWUgdG8gYmUgZW1pdHRlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVRyYW5zZm9ybWVyQ2ZuT3V0cHV0czogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGZvbGxvd2luZyBzY2hlbWEgdXBkYXRlcyByZXF1aXJlIHJlcGxhY2VtZW50IG9mIHRoZSB1bmRlcmx5aW5nIER5bmFtb0RCIHRhYmxlOlxuICAgKlxuICAgKiAgLSBSZW1vdmluZyBvciByZW5hbWluZyBhIG1vZGVsXG4gICAqICAtIE1vZGlmeWluZyB0aGUgcHJpbWFyeSBrZXkgb2YgYSBtb2RlbFxuICAgKiAgLSBNb2RpZnlpbmcgYSBMb2NhbCBTZWNvbmRhcnkgSW5kZXggb2YgYSBtb2RlbCAob25seSBhcHBsaWVzIHRvIHByb2plY3RzIHdpdGggc2Vjb25kYXJ5S2V5QXNHU0kgdHVybmVkIG9mZilcbiAgICpcbiAgICogQUxMIERBVEEgV0lMTCBCRSBMT1NUIHdoZW4gdGhlIHRhYmxlIHJlcGxhY2VtZW50IGhhcHBlbnMuIFdoZW4gZW5hYmxlZCwgZGVzdHJ1Y3RpdmUgdXBkYXRlcyBhcmUgYWxsb3dlZC5cbiAgICogVGhpcyB3aWxsIG9ubHkgYWZmZWN0IER5bmFtb0RCIHRhYmxlcyB3aXRoIHByb3Zpc2lvbiBzdHJhdGVneSBcIkFNUExJRllfVEFCTEVcIi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dEZXN0cnVjdGl2ZUdyYXBocWxTY2hlbWFVcGRhdGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGlzIGJlaGF2aW9yIHdpbGwgb25seSBjb21lIGludG8gZWZmZWN0IHdoZW4gYm90aCBcImFsbG93RGVzdHJ1Y3RpdmVHcmFwaHFsU2NoZW1hVXBkYXRlc1wiIGFuZCB0aGlzIHZhbHVlIGFyZSBzZXQgdG8gdHJ1ZVxuICAgKlxuICAgKiBXaGVuIGVuYWJsZWQsIGFueSBHU0kgdXBkYXRlIG9wZXJhdGlvbiB3aWxsIHJlcGxhY2UgdGhlIHRhYmxlIGluc3RlYWQgb2YgaXRlcmF0aXZlIGRlcGxveW1lbnQsIHdoaWNoIHdpbGwgV0lQRSBBTEwgRVhJU1RJTkcgREFUQSBidXRcbiAgICogY29zdCBtdWNoIGxlc3MgdGltZSBmb3IgZGVwbG95bWVudCBUaGlzIHdpbGwgb25seSBhZmZlY3QgRHluYW1vREIgdGFibGVzIHdpdGggcHJvdmlzaW9uIHN0cmF0ZWd5IFwiQU1QTElGWV9UQUJMRVwiLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZXBsYWNlVGFibGVVcG9uR3NpVXBkYXRlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgdXRpbGl0eSBpbnRlcmZhY2UgZXF1aXZhbGVudCB0byBQYXJ0aWFsPFRyYW5zbGF0aW9uQmVoYXZpb3I+LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxUcmFuc2xhdGlvbkJlaGF2aW9yIHtcbiAgLyoqXG4gICAqIFJlc3RvcmUgcGFyaXR5IHcvIEdRTHYxIEBtb2RlbCBwYXJhbWV0ZXIgYmVoYXZpb3IsIHdoZXJlIHNldHRpbmcgYSBzaW5nbGUgZmllbGQgZG9lc24ndCBpbXBsaWNpdGx5IHNldCB0aGUgb3RoZXIgZmllbGRzIHRvIG51bGwuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZERlZXBNZXJnZURpcmVjdGl2ZUNvbmZpZ0RlZmF1bHRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGlzYWJsZSByZXNvbHZlciBkZWR1cGluZywgdGhpcyBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zIGJlY2F1c2UgZGVkdXBlIG9yZGVyaW5nIGlzbid0IHN0YWJsZSB0b2RheSwgd2hpY2ggY2FuXG4gICAqIGxlYWQgdG8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGFjcm9zcyBzdGFja3MgaWYgbW9kZWxzIGFyZSByZW9yZGVyZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVSZXNvbHZlckRlZHVwaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxpbmcgc2FuZGJveCBtb2RlIHdpbGwgZW5hYmxlIGFwaSBrZXkgYXV0aCBvbiBhbGwgbW9kZWxzIGluIHRoZSB0cmFuc2Zvcm1lZCBzY2hlbWEuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzYW5kYm94TW9kZUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCBvaWRjIGFuZCB1c2VyUG9vbCBhdXRoIHVzZSB0aGUgYHN1YmAgZmllbGQgaW4gdGhlIGZvciB0aGUgdXNlcm5hbWUgZmllbGQsIHdoaWNoIGRpc2FsbG93cyBuZXcgdXNlcnMgd2l0aCB0aGUgc2FtZVxuICAgKiBpZCB0byBhY2Nlc3MgZGF0YSBmcm9tIGEgZGVsZXRlZCB1c2VyIGluIHRoZSBwb29sLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VTdWJVc2VybmFtZUZvckRlZmF1bHRJZGVudGl0eUNsYWltPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5zdXJlIHRoYXQgdGhlIG93bmVyIGZpZWxkIGlzIHN0aWxsIHBvcHVsYXRlZCBldmVuIGlmIGEgc3RhdGljIGlhbSBvciBncm91cCBhdXRob3JpemF0aW9uIGFwcGxpZXMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBvcHVsYXRlT3duZXJGaWVsZEZvclN0YXRpY0dyb3VwQXV0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGVuYWJsZWQsIGRpc2FibGUgYXBpIGtleSByZXNvdXJjZSBnZW5lcmF0aW9uIGV2ZW4gaWYgc3BlY2lmaWVkIGFzIGFuIGF1dGggcnVsZSBvbiB0aGUgY29uc3RydWN0LlxuICAgKiBUaGlzIGlzIGEgbGVnYWN5IHBhcmFtZXRlciBmcm9tIHRoZSBHcmFwaHFsIFRyYW5zZm9ybWVyIGV4aXN0aW5nIGluIEFtcGxpZnkgQ0xJLCBub3QgcmVjb21tZW5kZWQgdG8gY2hhbmdlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NBcGlLZXlHZW5lcmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgZGlzYWJsZWQsIGdlbmVyYXRlZCBAaW5kZXggYXMgYW4gTFNJIGluc3RlYWQgb2YgYSBHU0kuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeUtleUFzR1NJPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0b21hdGUgZ2VuZXJhdGlvbiBvZiBxdWVyeSBuYW1lcywgYW5kIGFzIGEgcmVzdWx0IGF0dGFjaGluZyBhbGwgaW5kZXhlcyBhcyBxdWVyaWVzIHRvIHRoZSBnZW5lcmF0ZWQgQXBpLlxuICAgKiBJZiBlbmFibGVkLCBAaW5kZXggY2FuIGJlIHByb3ZpZGVkIGEgbnVsbCBuYW1lIGZpZWxkIHRvIGRpc2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHF1ZXJ5IG9uIHRoZSBBcGkuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUF1dG9JbmRleFF1ZXJ5TmFtZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgY3VzdG9tIHByaW1hcnkga2V5IHN1cHBvcnQsIHRoZXJlJ3Mgbm8gZ29vZCByZWFzb24gdG8gZGlzYWJsZSB0aGlzIHVubGVzcyB0cnlpbmcgbm90IHRvIHVwZGF0ZSBhIGxlZ2FjeSBhcHAuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlc3BlY3RQcmltYXJ5S2V5QXR0cmlidXRlc09uQ29ubmVjdGlvbkZpZWxkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgZW5hYmxlZCwgc2V0IG5vZGVUb05vZGVFbmNyeXB0aW9uIG9uIHRoZSBzZWFyY2hhYmxlIGRvbWFpbiAoaWYgb25lIGV4aXN0cykuIE5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLCBwcmVmZXJcbiAgICogdG8gdXNlIGBPYmplY3QudmFsdWVzKHJlc291cmNlcy5hZGRpdGlvbmFsUmVzb3VyY2VzWydBV1M6OkVsYXN0aWNzZWFyY2g6OkRvbWFpbiddKS5mb3JFYWNoKChkb21haW46IENmbkRvbWFpbikgPT4ge1xuICAgKiAgIGRvbWFpbi5Ob2RlVG9Ob2RlRW5jcnlwdGlvbk9wdGlvbnMgPSB7IEVuYWJsZWQ6IFRydWUgfTtcbiAgICogfSk7XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTZWFyY2hOb2RlVG9Ob2RlRW5jcnlwdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gZW5hYmxlZCwgaW50ZXJuYWwgY2ZuIG91dHB1dHMgd2hpY2ggZXhpc3RlZCBpbiBBbXBsaWZ5LWdlbmVyYXRlZCBhcHBzIHdpbGwgY29udGludWUgdG8gYmUgZW1pdHRlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVRyYW5zZm9ybWVyQ2ZuT3V0cHV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xsb3dpbmcgc2NoZW1hIHVwZGF0ZXMgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGUgdW5kZXJseWluZyBEeW5hbW9EQiB0YWJsZTpcbiAgICpcbiAgICogIC0gUmVtb3Zpbmcgb3IgcmVuYW1pbmcgYSBtb2RlbFxuICAgKiAgLSBNb2RpZnlpbmcgdGhlIHByaW1hcnkga2V5IG9mIGEgbW9kZWxcbiAgICogIC0gTW9kaWZ5aW5nIGEgTG9jYWwgU2Vjb25kYXJ5IEluZGV4IG9mIGEgbW9kZWwgKG9ubHkgYXBwbGllcyB0byBwcm9qZWN0cyB3aXRoIHNlY29uZGFyeUtleUFzR1NJIHR1cm5lZCBvZmYpXG4gICAqXG4gICAqIEFMTCBEQVRBIFdJTEwgQkUgTE9TVCB3aGVuIHRoZSB0YWJsZSByZXBsYWNlbWVudCBoYXBwZW5zLiBXaGVuIGVuYWJsZWQsIGRlc3RydWN0aXZlIHVwZGF0ZXMgYXJlIGFsbG93ZWQuXG4gICAqIFRoaXMgd2lsbCBvbmx5IGFmZmVjdCBEeW5hbW9EQiB0YWJsZXMgd2l0aCBwcm92aXNpb24gc3RyYXRlZ3kgXCJBTVBMSUZZX1RBQkxFXCIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93RGVzdHJ1Y3RpdmVHcmFwaHFsU2NoZW1hVXBkYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgYmVoYXZpb3Igd2lsbCBvbmx5IGNvbWUgaW50byBlZmZlY3Qgd2hlbiBib3RoIFwiYWxsb3dEZXN0cnVjdGl2ZUdyYXBocWxTY2hlbWFVcGRhdGVzXCIgYW5kIHRoaXMgdmFsdWUgYXJlIHNldCB0byB0cnVlXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgYW55IGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggdXBkYXRlIG9wZXJhdGlvbiB3aWxsIHJlcGxhY2UgdGhlIHRhYmxlIGluc3RlYWQgb2YgaXRlcmF0aXZlIGRlcGxveW1lbnQsIHdoaWNoIHdpbGwgV0lQRSBBTExcbiAgICogRVhJU1RJTkcgREFUQSBidXQgY29zdCBtdWNoIGxlc3MgdGltZSBmb3IgZGVwbG95bWVudCBUaGlzIHdpbGwgb25seSBhZmZlY3QgRHluYW1vREIgdGFibGVzIHdpdGggcHJvdmlzaW9uIHN0cmF0ZWd5IFwiQU1QTElGWV9UQUJMRVwiLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSByZXBsYWNlVGFibGVVcG9uR3NpVXBkYXRlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHcmFwaHFsIEFwaSBkZWZpbml0aW9uLCB3aGljaCBjYW4gYmUgaW1wbGVtZW50ZWQgaW4gbXVsdGlwbGUgd2F5cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2NoZW1hIGRlZmluaXRpb24gYXMgYSBncmFwaHFsIHN0cmluZywgd2l0aCBhbXBsaWZ5IGRpcmVjdGl2ZXMgYWxsb3dlZC5cbiAgICogQHJldHVybnMgdGhlIHJlbmRlcmVkIHNjaGVtYS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbnkgZnVuY3Rpb24gc2xvdHMgZGVmaW5lZCBleHBsaWNpdGx5IGluIHRoZSBBcGkgZGVmaW5pdGlvbi5cbiAgICogQHJldHVybnMgZ2VuZXJhdGVkIGZ1bmN0aW9uIHNsb3RzXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvblNsb3RzOiBGdW5jdGlvblNsb3RbXTtcblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHJlZmVyZW5jZXMgdG8gYW55IGxhbWJkYSBmdW5jdGlvbnMgdXNlZCBpbiB0aGUgZGVmaW5pdGlvbi5cbiAgICogVXNlZnVsIGZvciB3aXJpbmcgdGhyb3VnaCBhd3NfbGFtYmRhLkZ1bmN0aW9uIGNvbnN0cnVjdHMgaW50byB0aGUgZGVmaW5pdGlvbiBkaXJlY3RseSxcbiAgICogYW5kIGdlbmVyYXRlZCByZWZlcmVuY2VzIHRvIGludm9rZSB0aGVtLlxuICAgKiBAcmV0dXJucyBhbnkgbGFtYmRhIGZ1bmN0aW9ucywga2V5ZWQgYnkgdGhlaXIgcmVmZXJlbmNlZCAnbmFtZScgaW4gdGhlIGdlbmVyYXRlZCBzY2hlbWEuXG4gICAqL1xuICByZWFkb25seSByZWZlcmVuY2VkTGFtYmRhRnVuY3Rpb25zPzogUmVjb3JkPHN0cmluZywgSUZ1bmN0aW9uPjtcblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIGRhdGFzb3VyY2Ugc3RyYXRlZ3kgbWFwcGluZy4gVGhlIGRlZmF1bHQgc3RyYXRlZ3kgaXMgdG8gdXNlIER5bmFtb0RCIGZyb20gQ2xvdWRGb3JtYXRpb24uXG4gICAqIEByZXR1cm5zIGRhdGFzb3VyY2Ugc3RyYXRlZ3kgbWFwcGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVNvdXJjZVN0cmF0ZWdpZXM6IFJlY29yZDxzdHJpbmcsIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5PjtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgY3VzdG9tIFF1ZXJ5IG9yIE11dGF0aW9uIFNRTCBjb21tYW5kcyB0byB0aGUgZGF0YSBzb3VyY2VzIHRoYXQgcmVzb2x2ZXMgdGhlbS5cbiAgICogQHJldHVybnMgYSBsaXN0IG9mIG1hcHBpbmdzIGZyb20gY3VzdG9tIFNRTCBjb21tYW5kcyB0byBkYXRhIHNvdXJjZXNcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzPzogQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W107XG59XG5cbi8qKlxuICogRW50cnkgcmVwcmVzZW50aW5nIHRoZSByZXF1aXJlZCBvdXRwdXQgZnJvbSB0aGUgYmFja2VuZCBmb3IgY29kZWdlbiBnZW5lcmF0ZSBjb21tYW5kcyB0byB3b3JrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCYWNrZW5kT3V0cHV0RW50cnkge1xuICAvKipcbiAgICogVGhlIHByb3RvY29sIHZlcnNpb24gZm9yIHRoaXMgYmFja2VuZCBvdXRwdXQuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdHJpbmctbWFwIHBheWxvYWQgb2YgZ2VuZXJhdGVkIGNvbmZpZyB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIEJhY2tlbmQgb3V0cHV0IHN0cmF0ZWd5IHVzZWQgdG8gd3JpdGUgY29uZmlnIHJlcXVpcmVkIGZvciBjb2RlZ2VuIHRhc2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIEFkZCBhbiBlbnRyeSB0byBiYWNrZW5kIG91dHB1dC5cbiAgICogQHBhcmFtIGtleU5hbWUgdGhlIGtleVxuICAgKiBAcGFyYW0gYmFja2VuZE91dHB1dEVudHJ5IHRoZSByZWNvcmQgdG8gc3RvcmUgaW4gdGhlIGJhY2tlbmQgb3V0cHV0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21ldGhvZC1zaWduYXR1cmUtc3R5bGVcbiAgYWRkQmFja2VuZE91dHB1dEVudHJ5KGtleU5hbWU6IHN0cmluZywgYmFja2VuZE91dHB1dEVudHJ5OiBJQmFja2VuZE91dHB1dEVudHJ5KTogdm9pZDtcbn1cblxuLyoqXG4gKiBJbnB1dCBwcm9wcyBmb3IgdGhlIEFtcGxpZnlHcmFwaHFsQXBpIGNvbnN0cnVjdC4gU3BlY2lmaWVzIHdoYXQgdGhlIGlucHV0IHRvIHRyYW5zZm9ybSBpbnRvIGFuIEFwaSwgYW5kIGNvbmZpZ3VyYXRpb25zIGZvclxuICogdGhlIHRyYW5zZm9ybWF0aW9uIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1wbGlmeUdyYXBocWxBcGlQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVmaW5pdGlvbiB0byB0cmFuc2Zvcm0gaW4gYSBmdWxsIEFwaS5cbiAgICogQ2FuIGJlIGNvbnN0cnVjdGVkIHZpYSB0aGUgQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIGNsYXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5pdGlvbjogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogTmFtZSB0byBiZSB1c2VkIGZvciB0aGUgQXBwU3luYyBBcGkuXG4gICAqIERlZmF1bHQ6IGNvbnN0cnVjdCBpZC5cbiAgICovXG4gIHJlYWRvbmx5IGFwaU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcXVpcmVkIGF1dGggbW9kZXMgZm9yIHRoZSBBcGkuIFRoaXMgb2JqZWN0IG11c3QgYmUgYSBzdXBlcnNldCBvZiB0aGUgY29uZmlndXJlZCBhdXRoIHByb3ZpZGVycyBpbiB0aGUgQXBpIGRlZmluaXRpb24uXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvYXV0aG9yaXphdGlvbi1ydWxlcy9cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6YXRpb25Nb2RlczogQXV0aG9yaXphdGlvbk1vZGVzO1xuXG4gIC8qKlxuICAgKiBMYW1iZGEgZnVuY3Rpb25zIHJlZmVyZW5jZWQgaW4gdGhlIGRlZmluaXRpb25zJ3MgQGZ1bmN0aW9uIGRpcmVjdGl2ZXMuIFRoZSBrZXlzIG9mIHRoaXMgb2JqZWN0IGFyZSBleHBlY3RlZCB0byBiZSB0aGVcbiAgICogZnVuY3Rpb24gbmFtZSBwcm92aWRlZCBpbiB0aGUgZGVmaW5pdGlvbiwgYW5kIHZhbHVlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IG5hbWUgcmVmZXJzIHRvLiBJZiBhIG5hbWUgaXMgbm90IGZvdW5kIGluIHRoaXNcbiAgICogbWFwLCB0aGVuIGl0IGlzIGludGVycHJldGVkIGFzIHRoZSBgZnVuY3Rpb25OYW1lYCwgYW5kIGFuIGFybiB3aWxsIGJlIGNvbnN0cnVjdGVkIHVzaW5nIHRoZSBjdXJyZW50IGF3cyBhY2NvdW50IGFuZCByZWdpb25cbiAgICogKG9yIG92ZXJyaWRkZW4gdmFsdWVzLCBpZiBzZXQgaW4gdGhlIGRpcmVjdGl2ZSkuXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbk5hbWVNYXA/OiBSZWNvcmQ8c3RyaW5nLCBJRnVuY3Rpb24+O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgY29uZmxpY3QgcmVzb2x1dGlvbiBvbiB0aGUgQXBpLCB3aGljaCBpcyByZXF1aXJlZCB0byBlbmFibGUgRGF0YVN0b3JlIEFwaSBmdW5jdGlvbmFsaXR5LlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2xpYi9kYXRhc3RvcmUvZ2V0dGluZy1zdGFydGVkL3EvcGxhdGZvcm0vanMvXG4gICAqL1xuICByZWFkb25seSBjb25mbGljdFJlc29sdXRpb24/OiBDb25mbGljdFJlc29sdXRpb247XG5cbiAgLyoqXG4gICAqIFN0YWNrTWFwcGluZ3Mgb3ZlcnJpZGUgdGhlIGFzc2lnbmVkIG5lc3RlZCBzdGFjayBvbiBhIHBlci1yZXNvdXJjZSBiYXNpcy4gT25seSBhcHBsaWVzIHRvIHJlc29sdmVycywgYW5kIHRha2VzIHRoZSBmb3JtXG4gICAqIHsgPGxvZ2ljYWxJZD46IDxzdGFja05hbWU+IH1cbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSB0aGlzIHBhcmFtZXRlciB1bmxlc3MgeW91IGFyZSBlbmNvdW50ZXJpbmcgc3RhY2sgcmVzb3VyY2UgY291bnQgbGltaXRzLCBhbmQgd29ydGggbm90aW5nIHRoYXRcbiAgICogYWZ0ZXIgaW5pdGlhbCBkZXBsb3ltZW50IEFwcFN5bmMgcmVzb2x2ZXJzIGNhbm5vdCBiZSBtb3ZlZCBiZXR3ZWVuIG5lc3RlZCBzdGFja3MsIHRoZXkgd2lsbCBuZWVkIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgYXBwLFxuICAgKiB0aGVuIHJlLWFkZGVkIGZyb20gYSBuZXcgc3RhY2suXG4gICAqL1xuICByZWFkb25seSBzdGFja01hcHBpbmdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciBhIGdpdmVuIHNsb3QgaW4gdGhlIGdlbmVyYXRlZCByZXNvbHZlciBwaXBlbGluZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgc2xvdHMgYXJlIGF2YWlsYWJsZSxcbiAgICogcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9ncmFwaHFsL2N1c3RvbS1idXNpbmVzcy1sb2dpYy8jb3ZlcnJpZGUtYW1wbGlmeS1nZW5lcmF0ZWQtcmVzb2x2ZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25TbG90cz86IEZ1bmN0aW9uU2xvdFtdO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgbGlzdCBvZiBhZGRpdGlvbmFsIGN1c3RvbSB0cmFuc2Zvcm1lcnMgd2hpY2ggYXJlIGluamVjdGVkIGludG8gdGhlIHRyYW5zZm9ybSBwcm9jZXNzLlxuICAgKiBUaGVzZSBjdXN0b20gdHJhbnNmb3JtZXJzIG11c3QgYmUgaW1wbGVtZW50ZWQgd2l0aCBhd3MtY2RrLWxpYiA+PTIuODAuMCwgYW5kIEBhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUgPj0gMi4xLjFcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtZXJQbHVnaW5zPzogYW55W107XG5cbiAgLyoqXG4gICAqIElmIHVzaW5nIHByZWRpY3Rpb25zLCBhIGJ1Y2tldCBtdXN0IGJlIHByb3ZpZGVkIHdoaWNoIHdpbGwgYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFzc2V0cy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWRpY3Rpb25zQnVja2V0PzogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhpcyByZXBsYWNlcyBmZWF0dXJlIGZsYWdzIGZyb20gdGhlIEFwaSBjb25zdHJ1Y3QsIGZvciBnZW5lcmFsIGluZm9ybWF0aW9uIG9uIHdoYXQgdGhlc2UgcGFyYW1ldGVycyBkbyxcbiAgICogcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9yZWZlcmVuY2UvZmVhdHVyZS1mbGFncy8jZ3JhcGhRTFRyYW5zZm9ybWVyXG4gICAqL1xuICByZWFkb25seSB0cmFuc2xhdGlvbkJlaGF2aW9yPzogUGFydGlhbFRyYW5zbGF0aW9uQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIFN0cmF0ZWd5IHRvIHN0b3JlIGNvbnN0cnVjdCBvdXRwdXRzLiBJZiBubyBvdXRwdXRTdG9yYWdlU3RyYXRlZ2V5IGlzIHByb3ZpZGVkIGEgZGVmYXVsdCBzdHJhdGVneSB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRTdG9yYWdlU3RyYXRlZ3k/OiBJQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneTtcbn1cblxuLyoqXG4gKiBMMSBDREsgcmVzb3VyY2VzIGZyb20gdGhlIEFwaSB3aGljaCB3ZXJlIGdlbmVyYXRlZCBhcyBwYXJ0IG9mIHRoZSB0cmFuc2Zvcm0uXG4gKiBUaGVzZSBhcmUgcG90ZW50aWFsbHkgc3RvcmVkIHVuZGVyIG5lc3RlZCBzdGFja3MsIGJ1dCBwcmVzZW50ZWQgb3JnYW5pemVkIGJ5IHR5cGUgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbXBsaWZ5R3JhcGhxbEFwaUNmblJlc291cmNlcyB7XG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgQXBpIEwxIFJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgU2NoZW1hIEwxIFJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBjZm5HcmFwaHFsU2NoZW1hOiBDZm5HcmFwaFFMU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgQXBpIEtleSBMMSBSZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuQXBpS2V5PzogQ2ZuQXBpS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgUmVzb2x2ZXIgTDEgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBjZm5SZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIENmblJlc29sdmVyPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBBcHBTeW5jIEZ1bmN0aW9uIEwxIFJlc291cmNlcywga2V5ZWQgYnkgbG9naWNhbElkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBBcHBTeW5jIERhdGFTb3VyY2UgTDEgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBjZm5EYXRhU291cmNlczogUmVjb3JkPHN0cmluZywgQ2ZuRGF0YVNvdXJjZT47XG5cbiAgLyoqXG4gICAqIFRoZSBHZW5lcmF0ZWQgRHluYW1vREIgVGFibGUgTDEgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBjZm5UYWJsZXM6IFJlY29yZDxzdHJpbmcsIENmblRhYmxlPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBJQU0gUm9sZSBMMSBSZXNvdXJjZXMsIGtleWVkIGJ5IGxvZ2ljYWxJZC5cbiAgICovXG4gIHJlYWRvbmx5IGNmblJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5Sb2xlPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBMYW1iZGEgRnVuY3Rpb24gTDEgUmVzb3VyY2VzLCBrZXllZCBieSBmdW5jdGlvbiBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuRnVuY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDZm5GdW5jdGlvbj47XG5cbiAgLyoqXG4gICAqIFJlbWFpbmluZyBMMSByZXNvdXJjZXMgZ2VuZXJhdGVkLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT47XG59XG5cbi8qKlxuICogQWNjZXNzaWJsZSByZXNvdXJjZXMgZnJvbSB0aGUgQXBpIHdoaWNoIHdlcmUgZ2VuZXJhdGVkIGFzIHBhcnQgb2YgdGhlIHRyYW5zZm9ybS5cbiAqIFRoZXNlIGFyZSBwb3RlbnRpYWxseSBzdG9yZWQgdW5kZXIgbmVzdGVkIHN0YWNrcywgYnV0IHByZXNlbnRlZCBvcmdhbml6ZWQgYnkgdHlwZSBpbnN0ZWFkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzIHtcbiAgLyoqXG4gICAqIFRoZSBHZW5lcmF0ZWQgQXBwU3luYyBBcGkgTDIgUmVzb3VyY2UsIGluY2x1ZGVzIHRoZSBTY2hlbWEuXG4gICAqL1xuICByZWFkb25seSBncmFwaHFsQXBpOiBJR3JhcGhxbEFwaTtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBEeW5hbW9EQiBUYWJsZSBMMiBSZXNvdXJjZXMsIGtleWVkIGJ5IGxvZ2ljYWxJZC5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlczogUmVjb3JkPHN0cmluZywgSVRhYmxlPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBBbXBsaWZ5IER5bmFtb0RiIFRhYmxlIHdyYXBwZWQgaWYgcHJvZHVjZWQsIGtleWVkIGJ5IG5hbWUuXG4gICAqL1xuICByZWFkb25seSBhbXBsaWZ5RHluYW1vRGJUYWJsZXM6IFJlY29yZDxzdHJpbmcsIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlcj47XG5cbiAgLyoqXG4gICAqIFRoZSBHZW5lcmF0ZWQgSUFNIFJvbGUgTDIgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSByb2xlczogUmVjb3JkPHN0cmluZywgSVJvbGU+O1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIExhbWJkYSBGdW5jdGlvbiBMMSBSZXNvdXJjZXMsIGtleWVkIGJ5IGZ1bmN0aW9uIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIElGdW5jdGlvbj47XG5cbiAgLyoqXG4gICAqIEwxIENmbiBSZXNvdXJjZXMsIGZvciB3aGVuIGRpcHBpbmcgZG93biBhIGxldmVsIG9mIGFic3RyYWN0aW9uIGlzIGRlc2lyYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNmblJlc291cmNlczogQW1wbGlmeUdyYXBocWxBcGlDZm5SZXNvdXJjZXM7XG5cbiAgLyoqXG4gICAqIE5lc3RlZCBTdGFja3MgZ2VuZXJhdGVkIGJ5IHRoZSBBcGkgQ29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmVzdGVkU3RhY2tzOiBSZWNvcmQ8c3RyaW5nLCBOZXN0ZWRTdGFjaz47XG59XG5cbi8qKlxuICogSW5wdXQgdHlwZSBwcm9wZXJ0aWVzIHdoZW4gYWRkaW5nIGEgbmV3IGFwcHN5bmMuQXBwc3luY0Z1bmN0aW9uIHRvIHRoZSBnZW5lcmF0ZWQgQVBJLlxuICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBPbWl0PGFwcHN5bmMuQXBwc3luY0Z1bmN0aW9uUHJvcHMsICdhcGknPi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBkYXRhIHNvdXJjZSBsaW5rZWQgdG8gdGhpcyBBcHBTeW5jIEZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlOiBCYXNlRGF0YVNvdXJjZTtcblxuICAvKipcbiAgICogdGhlIG5hbWUgb2YgdGhlIEFwcFN5bmMgRnVuY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogdGhlIGRlc2NyaXB0aW9uIGZvciB0aGlzIEFwcFN5bmMgRnVuY3Rpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRoZSByZXF1ZXN0IG1hcHBpbmcgdGVtcGxhdGUgZm9yIHRoZSBBcHBTeW5jIEZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcmVxdWVzdCBtYXBwaW5nIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0TWFwcGluZ1RlbXBsYXRlPzogTWFwcGluZ1RlbXBsYXRlO1xuXG4gIC8qKlxuICAgKiB0aGUgcmVzcG9uc2UgbWFwcGluZyB0ZW1wbGF0ZSBmb3IgdGhlIEFwcFN5bmMgRnVuY3Rpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyByZXNwb25zZSBtYXBwaW5nIHRlbXBsYXRlXG4gICAqL1xuICByZWFkb25seSByZXNwb25zZU1hcHBpbmdUZW1wbGF0ZT86IE1hcHBpbmdUZW1wbGF0ZTtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9ucyBydW50aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZnVuY3Rpb24gcnVudGltZSwgVlRMIG1hcHBpbmcgdGVtcGxhdGVzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBGdW5jdGlvblJ1bnRpbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBjb2RlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29kZSBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBjb2RlPzogQ29kZTtcbn1cbiJdfQ==
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBDZm5SZXNvdXJjZSwgTmVzdGVkU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBDZm5HcmFwaFFMQXBpLFxuICBDZm5HcmFwaFFMU2NoZW1hLFxuICBDZm5BcGlLZXksXG4gIENmblJlc29sdmVyLFxuICBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24sXG4gIENmbkRhdGFTb3VyY2UsXG4gIElHcmFwaHFsQXBpLFxuICBNYXBwaW5nVGVtcGxhdGUsXG4gIEJhc2VEYXRhU291cmNlLFxuICBDb2RlLFxuICBGdW5jdGlvblJ1bnRpbWUsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IENmblRhYmxlLCBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSVJvbGUsIENmblJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IElVc2VyUG9vbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IElGdW5jdGlvbiwgQ2ZuRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyIH0gZnJvbSAnLi9hbXBsaWZ5LWR5bmFtb2RiLXRhYmxlLXdyYXBwZXInO1xuaW1wb3J0IHsgQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5LCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB9IGZyb20gJy4vbW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS10eXBlcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgSUFNIEF1dGhvcml6YXRpb24gb24gdGhlIEdyYXBocWwgQXBpLlxuICogQHN0cnVjdCAtIHJlcXVpcmVkIHNpbmNlIHRoaXMgaW50ZXJmYWNlIGJlZ2lucyB3aXRoIGFuICdJJ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElBTUF1dGhvcml6YXRpb25Db25maWcge1xuICAvKipcbiAgICogSUQgZm9yIHRoZSBDb2duaXRvIElkZW50aXR5IFBvb2wgdmVuZGluZyBhdXRoIGFuZCB1bmF1dGggcm9sZXMuXG4gICAqIEZvcm1hdDogYDxyZWdpb24+OjxpZCBzdHJpbmc+YFxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQXV0aGVudGljYXRlZCB1c2VyIHJvbGUsIGFwcGxpZXMgdG8geyBwcm92aWRlcjogaWFtLCBhbGxvdzogcHJpdmF0ZSB9IGFjY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWRVc2VyUm9sZTogSVJvbGU7XG5cbiAgLyoqXG4gICAqIFVuYXV0aGVudGljYXRlZCB1c2VyIHJvbGUsIGFwcGxpZXMgdG8geyBwcm92aWRlcjogaWFtLCBhbGxvdzogcHVibGljIH0gYWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgdW5hdXRoZW50aWNhdGVkVXNlclJvbGU6IElSb2xlO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgSUFNIHJvbGVzIHdoaWNoIHdpbGwgYmUgZ3JhbnRlZCBmdWxsIHJlYWQvd3JpdGUgYWNjZXNzIHRvIHRoZSBnZW5lcmF0ZWQgbW9kZWwgaWYgSUFNIGF1dGggaXMgZW5hYmxlZC5cbiAgICogSWYgYW4gSVJvbGUgaXMgcHJvdmlkZWQsIHRoZSByb2xlIGBuYW1lYCB3aWxsIGJlIHVzZWQgZm9yIG1hdGNoaW5nLlxuICAgKiBJZiBhIHN0cmluZyBpcyBwcm92aWRlZCwgdGhlIHJhdyB2YWx1ZSB3aWxsIGJlIHVzZWQgZm9yIG1hdGNoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dMaXN0ZWRSb2xlcz86IChJUm9sZSB8IHN0cmluZylbXTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBDb2duaXRvIFVzZXJQb29sIEF1dGhvcml6YXRpb24gb24gdGhlIEdyYXBocWwgQXBpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb29sQXV0aG9yaXphdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBVc2VyIFBvb2wgd2hpY2ggaXMgdXNlZCB0byBhdXRoZW50aWNhdGVkIEpXVCB0b2tlbnMsIGFuZCB2ZW5kcyBncm91cCBhbmQgdXNlciBpbmZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2w7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgT3BlbklkIENvbm5lY3QgQXV0aG9yaXphdGlvbiBvbiB0aGUgR3JhcGhxbCBBcGkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0lEQ0F1dGhvcml6YXRpb25Db25maWcge1xuICAvKipcbiAgICogVGhlIGlzc3VlciBmb3IgdGhlIE9JREMgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNQcm92aWRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXJsIGZvciB0aGUgT0lEQyB0b2tlbiBpc3N1ZXIuXG4gICAqL1xuICByZWFkb25seSBvaWRjSXNzdWVyVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjbGllbnQgaWRlbnRpZmllciBvZiB0aGUgUmVseWluZyBwYXJ0eSBhdCB0aGUgT3BlbklEIGlkZW50aXR5IHByb3ZpZGVyLlxuICAgKiBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBjYW4gYmUgc3BlY2lmaWVkIHNvIEFwcFN5bmMgY2FuIHZhbGlkYXRlIGFnYWluc3QgbXVsdGlwbGUgY2xpZW50IGlkZW50aWZpZXJzIGF0IGEgdGltZS4gRXhhbXBsZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBhbiBPSURDIHRva2VuIGlzIHZhbGlkIGFmdGVyIGJlaW5nIGF1dGhlbnRpY2F0ZWQgYnkgT0lEQyBwcm92aWRlci5cbiAgICogYXV0aF90aW1lIGNsYWltIGluIE9JREMgdG9rZW4gaXMgcmVxdWlyZWQgZm9yIHRoaXMgdmFsaWRhdGlvbiB0byB3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW5FeHBpcnlGcm9tQXV0aDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiBhbiBPSURDIHRva2VuIGlzIHZhbGlkIGFmdGVyIGJlaW5nIGlzc3VlZCB0byBhIHVzZXIuXG4gICAqIFRoaXMgdmFsaWRhdGlvbiB1c2VzIGlhdCBjbGFpbSBvZiBPSURDIHRva2VuLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW5FeHBpcnlGcm9tSXNzdWU6IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIEFwaSBLZXlzIG9uIHRoZSBHcmFwaHFsIEFwaS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgQXBpIEtleSB0byBhdHRhY2ggdG8gdGhlIEFwaS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGR1cmF0aW9uIHJlcHJlc2VudGluZyB0aGUgdGltZSBmcm9tIENsb3VkZm9ybWF0aW9uIGRlcGxveSB1bnRpbCBleHBpcnkuXG4gICAqL1xuICByZWFkb25seSBleHBpcmVzOiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBDdXN0b20gTGFtYmRhIGF1dGhvcml6YXRpb24gb24gdGhlIEdyYXBocWwgQXBpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUF1dGhvcml6YXRpb25Db25maWcge1xuICAvKipcbiAgICogVGhlIGF1dGhvcml6ZXIgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogSG93IGxvbmcgdGhlIHJlc3VsdHMgYXJlIGNhY2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IHR0bDogRHVyYXRpb247XG59XG5cbi8qKlxuICogQXV0aG9yaXphdGlvbiBNb2RlcyB0byBhcHBseSB0byB0aGUgQXBpLlxuICogQXQgbGVhc3Qgb25lIG1vZGVzIG11c3QgYmUgcHJvdmlkZWQsIGFuZCBpZiBtb3JlIHRoYW4gb25lIGFyZSBwcm92aWRlZCBhIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBtdXN0IGJlIHNwZWNpZmllZC5cbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIEFtcGxpZnkgQXBpIGF1dGgsIHJlZmVyIHRvIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9hdXRob3JpemF0aW9uLXJ1bGVzLyNhdXRob3JpemF0aW9uLXN0cmF0ZWdpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uTW9kZXMge1xuICAvKipcbiAgICogRGVmYXVsdCBhdXRoIG1vZGUgdG8gcHJvdmlkZSB0byB0aGUgQXBpLCByZXF1aXJlZCBpZiBtb3JlIHRoYW4gb25lIGNvbmZpZyB0eXBlIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZT86ICdBV1NfSUFNJyB8ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJyB8ICdPUEVOSURfQ09OTkVDVCcgfCAnQVBJX0tFWScgfCAnQVdTX0xBTUJEQSc7XG5cbiAgLyoqXG4gICAqIElBTSBBdXRoIGNvbmZpZywgcmVxdWlyZWQgaWYgYW4gJ2lhbScgYXV0aCBwcm92aWRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIEFwaS5cbiAgICogQXBwbGllcyB0byAncHVibGljJyBhbmQgJ3ByaXZhdGUnIGF1dGggc3RyYXRlZ2llcy5cbiAgICovXG4gIHJlYWRvbmx5IGlhbUNvbmZpZz86IElBTUF1dGhvcml6YXRpb25Db25maWc7XG5cbiAgLyoqXG4gICAqIENvZ25pdG8gVXNlclBvb2wgY29uZmlnLCByZXF1aXJlZCBpZiBhICd1c2VyUG9vbHMnIGF1dGggcHJvdmlkZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBBcGkuXG4gICAqIEFwcGxpZXMgdG8gJ293bmVyJywgJ3ByaXZhdGUnLCBhbmQgJ2dyb3VwJyBhdXRoIHN0cmF0ZWdpZXMuXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbENvbmZpZz86IFVzZXJQb29sQXV0aG9yaXphdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogQ29nbml0byBPSURDIGNvbmZpZywgcmVxdWlyZWQgaWYgYSAnb2lkYycgYXV0aCBwcm92aWRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIEFwaS5cbiAgICogQXBwbGllcyB0byAnb3duZXInLCAncHJpdmF0ZScsIGFuZCAnZ3JvdXAnIGF1dGggc3RyYXRlZ2llcy5cbiAgICovXG4gIHJlYWRvbmx5IG9pZGNDb25maWc/OiBPSURDQXV0aG9yaXphdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogQXBwU3luYyBBcGkgS2V5IGNvbmZpZywgcmVxdWlyZWQgaWYgYSAnYXBpS2V5JyBhdXRoIHByb3ZpZGVyIGlzIHNwZWNpZmllZCBpbiB0aGUgQXBpLlxuICAgKiBBcHBsaWVzIHRvICdwdWJsaWMnIGF1dGggc3RyYXRlZ3kuXG4gICAqL1xuICByZWFkb25seSBhcGlLZXlDb25maWc/OiBBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBMYW1iZGEgY29uZmlnLCByZXF1aXJlZCBpZiBhICdmdW5jdGlvbicgYXV0aCBwcm92aWRlciBpcyBzcGVjaWZpZWQgaW4gdGhlIEFwaS5cbiAgICogQXBwbGllcyB0byAnY3VzdG9tJyBhdXRoIHN0cmF0ZWd5LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhQ29uZmlnPzogTGFtYmRhQXV0aG9yaXphdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHJvbGVzIGdyYW50ZWQgZnVsbCBSL1cgYWNjZXNzIHRvIHRoZSBBcGkuXG4gICAqIEBkZXByZWNhdGVkLCB1c2UgaWFtQ29uZmlnLmFsbG93TGlzdGVkUm9sZXMgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUm9sZXM/OiBJUm9sZVtdO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBhIHZlcnNpb24gZmllbGQgdG8gdHJhY2sgY29uZmxpY3QgZGV0ZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDb25mbGljdERldGVjdGlvblR5cGUgPSAnVkVSU0lPTicgfCAnTk9ORSc7XG5cbi8qKlxuICogQ29tbW9uIHBhcmFtZXRlcnMgZm9yIGNvbmZsaWN0IHJlc29sdXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBjb25mbGljdCBkZXRlY3Rpb24gdHlwZSB1c2VkIGZvciByZXNvbHV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV0ZWN0aW9uVHlwZTogQ29uZmxpY3REZXRlY3Rpb25UeXBlO1xufVxuXG4vKipcbiAqIEVuYWJsZSBvcHRpbWlzdGljIGNvbmN1cnJlbmN5IG9uIHRoZSBwcm9qZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tZXJnZUNvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5IGV4dGVuZHMgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqXG4gICAqIFRoaXMgY29uZmxpY3QgcmVzb2x1dGlvbiBzdHJhdGVneSBleGVjdXRlcyBhbiBhdXRvLW1lcmdlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN5bmMvbGF0ZXN0L2Rldmd1aWRlL2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtc3luYy5odG1sI2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtcmVzb2x1dGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlclR5cGU6ICdBVVRPTUVSR0UnO1xufVxuXG4vKipcbiAqIEVuYWJsZSBhdXRvbWVyZ2Ugb24gdGhlIHByb2plY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pc3RpY0NvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5IGV4dGVuZHMgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3lCYXNlIHtcbiAgLyoqXG4gICAqIFRoaXMgY29uZmxpY3QgcmVzb2x1dGlvbiBzdHJhdGVneSB0aGUgX3ZlcnNpb24gdG8gcGVyZm9ybSBvcHRpbWlzdGljIGNvbmN1cnJlbmN5LlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN5bmMvbGF0ZXN0L2Rldmd1aWRlL2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtc3luYy5odG1sI2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtcmVzb2x1dGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlclR5cGU6ICdPUFRJTUlTVElDX0NPTkNVUlJFTkNZJztcbn1cblxuLyoqXG4gKiBFbmFibGUgY3VzdG9tIHN5bmMgb24gdGhlIHByb2plY3QsIHBvd2VyZWQgYnkgYSBsYW1iZGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneUJhc2Uge1xuICAvKipcbiAgICogVGhpcyBjb25mbGljdCByZXNvbHV0aW9uIHN0cmF0ZWd5IHVzZXMgYSBsYW1iZGEgaGFuZGxlciB0eXBlLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN5bmMvbGF0ZXN0L2Rldmd1aWRlL2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtc3luYy5odG1sI2NvbmZsaWN0LWRldGVjdGlvbi1hbmQtcmVzb2x1dGlvblxuXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyVHlwZTogJ0xBTUJEQSc7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGludm9rZWQgZm9yIGNvbmZsaWN0IHJlc29sdXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb25mbGljdEhhbmRsZXI6IElGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBDb25mbGljdCBSZXNvbHV0aW9uIFN0cmF0ZWd5IHRvIGFwcGx5IHRvIHRoZSBwcm9qZWN0IG9yIGEgcGFydGljdWxhciBtb2RlbC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3kgPVxuICB8IEF1dG9tZXJnZUNvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5XG4gIHwgT3B0aW1pc3RpY0NvbmZsaWN0UmVzb2x1dGlvblN0cmF0ZWd5XG4gIHwgQ3VzdG9tQ29uZmxpY3RSZXNvbHV0aW9uU3RyYXRlZ3k7XG5cbi8qKlxuICogUHJvamVjdCBsZXZlbCBjb25maWd1cmF0aW9uIGZvciBjb25mbGljdCByZXNvbHV0aW9uLlxuICogQGRlcHJlY2F0ZWQgdXNlIERhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25mbGljdFJlc29sdXRpb24gZXh0ZW5kcyBEYXRhU3RvcmVDb25maWd1cmF0aW9uIHt9XG5cbi8qKlxuICogUHJvamVjdCBsZXZlbCBjb25maWd1cmF0aW9uIGZvciBEYXRhU3RvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFByb2plY3Qtd2lkZSBjb25maWcgZm9yIGNvbmZsaWN0IHJlc29sdXRpb24uIEFwcGxpZXMgdG8gYWxsIG5vbi1vdmVycmlkZGVuIG1vZGVscy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneTtcblxuICAvKipcbiAgICogTW9kZWwtc3BlY2lmaWMgY29uZmxpY3QgcmVzb2x1dGlvbiBvdmVycmlkZXMuXG4gICAqL1xuICByZWFkb25seSBtb2RlbHM/OiBSZWNvcmQ8c3RyaW5nLCBDb25mbGljdFJlc29sdXRpb25TdHJhdGVneT47XG59XG5cbi8qKlxuICogUGFyYW1zIGV4cG9zZWQgdG8gc3VwcG9ydCBjb25maWd1cmluZyBhbmQgb3ZlcnJpZGluZyBwaXBlbGluZWQgc2xvdHMuIFRoaXMgYWxsb3dzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb24sXG4gKiBpbmNsdWRpbmcgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbnNlIG1hcHBpbmcgdGVtcGxhdGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU2xvdE92ZXJyaWRlIHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHJlcXVlc3QgbWFwcGluZyB0ZW1wbGF0ZSBmb3IgdGhlIGZ1bmN0aW9uIHNsb3QuIEV4ZWN1dGVkIGJlZm9yZSB0aGUgZGF0YXNvdXJjZSBpcyBpbnZva2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1hcHBpbmdUZW1wbGF0ZT86IE1hcHBpbmdUZW1wbGF0ZTtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgcmVzcG9uc2UgbWFwcGluZyB0ZW1wbGF0ZSBmb3IgdGhlIGZ1bmN0aW9uIHNsb3QuIEV4ZWN1dGVkIGFmdGVyIHRoZSBkYXRhc291cmNlIGlzIGludm9rZWQuXG4gICAqL1xuICByZWFkb25seSByZXNwb25zZU1hcHBpbmdUZW1wbGF0ZT86IE1hcHBpbmdUZW1wbGF0ZTtcbn1cblxuLyoqXG4gKiBDb21tb24gc2xvdCBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU2xvdEJhc2Uge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIGF0dGFjaCB0aGlzIGZ1bmN0aW9uIHRvIG9uIHRoZSBBcGkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2xvdCBpbmRleCB0byB1c2UgdG8gaW5qZWN0IHRoaXMgaW50byB0aGUgZXhlY3V0aW9uIHBpcGVsaW5lLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBzbG90dGluZywgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2NsaS9ncmFwaHFsL2N1c3RvbS1idXNpbmVzcy1sb2dpYy8jZXh0ZW5kLWFtcGxpZnktZ2VuZXJhdGVkLXJlc29sdmVyc1xuICAgKi9cbiAgcmVhZG9ubHkgc2xvdEluZGV4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVycmlkZGVuIGJlaGF2aW9yIGZvciB0aGlzIHNsb3QuXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbjogRnVuY3Rpb25TbG90T3ZlcnJpZGU7XG59XG5cbi8qKlxuICogU2xvdCB0eXBlcyBmb3IgTXV0YXRpb24gUmVzb2x2ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE11dGF0aW9uRnVuY3Rpb25TbG90IGV4dGVuZHMgRnVuY3Rpb25TbG90QmFzZSB7XG4gIC8qKlxuICAgKiBUaGlzIHNsb3QgdHlwZSBhcHBsaWVzIHRvIHRoZSBNdXRhdGlvbiB0eXBlIG9uIHRoZSBBcGkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGVOYW1lOiAnTXV0YXRpb24nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2xvdCBuYW1lIHRvIGluamVjdCB0aGlzIGJlaGF2aW9yIGludG8uXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHNsb3R0aW5nLCByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY3VzdG9tLWJ1c2luZXNzLWxvZ2ljLyNleHRlbmQtYW1wbGlmeS1nZW5lcmF0ZWQtcmVzb2x2ZXJzXG4gICAqL1xuICByZWFkb25seSBzbG90TmFtZTogJ2luaXQnIHwgJ3ByZUF1dGgnIHwgJ2F1dGgnIHwgJ3Bvc3RBdXRoJyB8ICdwcmVVcGRhdGUnIHwgJ3Bvc3RVcGRhdGUnIHwgJ2ZpbmlzaCc7XG59XG5cbi8qKlxuICogU2xvdCB0eXBlcyBmb3IgUXVlcnkgUmVzb2x2ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RnVuY3Rpb25TbG90IGV4dGVuZHMgRnVuY3Rpb25TbG90QmFzZSB7XG4gIC8qKlxuICAgKiBUaGlzIHNsb3QgdHlwZSBhcHBsaWVzIHRvIHRoZSBRdWVyeSB0eXBlIG9uIHRoZSBBcGkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGVOYW1lOiAnUXVlcnknO1xuXG4gIC8qKlxuICAgKiBUaGUgc2xvdCBuYW1lIHRvIGluamVjdCB0aGlzIGJlaGF2aW9yIGludG8uXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHNsb3R0aW5nLCByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY3VzdG9tLWJ1c2luZXNzLWxvZ2ljLyNleHRlbmQtYW1wbGlmeS1nZW5lcmF0ZWQtcmVzb2x2ZXJzXG4gICAqL1xuICByZWFkb25seSBzbG90TmFtZTogJ2luaXQnIHwgJ3ByZUF1dGgnIHwgJ2F1dGgnIHwgJ3Bvc3RBdXRoJyB8ICdwcmVEYXRhTG9hZCcgfCAncG9zdERhdGFMb2FkJyB8ICdmaW5pc2gnO1xufVxuXG4vKipcbiAqIFNsb3QgdHlwZXMgZm9yIFN1YnNjcmlwdGlvbiBSZXNvbHZlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uRnVuY3Rpb25TbG90IGV4dGVuZHMgRnVuY3Rpb25TbG90QmFzZSB7XG4gIC8qKlxuICAgKiBUaGlzIHNsb3QgdHlwZSBhcHBsaWVzIHRvIHRoZSBTdWJzY3JpcHRpb24gdHlwZSBvbiB0aGUgQXBpIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSB0eXBlTmFtZTogJ1N1YnNjcmlwdGlvbic7XG5cbiAgLyoqXG4gICAqIFRoZSBzbG90IG5hbWUgdG8gaW5qZWN0IHRoaXMgYmVoYXZpb3IgaW50by5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gc2xvdHRpbmcsIHJlZmVyIHRvIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jdXN0b20tYnVzaW5lc3MtbG9naWMvI2V4dGVuZC1hbXBsaWZ5LWdlbmVyYXRlZC1yZXNvbHZlcnNcbiAgICovXG4gIHJlYWRvbmx5IHNsb3ROYW1lOiAnaW5pdCcgfCAncHJlQXV0aCcgfCAnYXV0aCcgfCAncG9zdEF1dGgnIHwgJ3ByZVN1YnNjcmliZSc7XG59XG5cbi8qKlxuICogSW5wdXQgcGFyYW1zIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBzbG90IHdoaWNoIGlzIGJlaW5nIG92ZXJyaWRkZW4uXG4gKi9cbmV4cG9ydCB0eXBlIEZ1bmN0aW9uU2xvdCA9IE11dGF0aW9uRnVuY3Rpb25TbG90IHwgUXVlcnlGdW5jdGlvblNsb3QgfCBTdWJzY3JpcHRpb25GdW5jdGlvblNsb3Q7XG5cbi8qKlxuICogU3Ryb25nbHkgdHlwZWQgc2V0IG9mIHNoYXJlZCBwYXJhbWV0ZXJzIGZvciBhbGwgdHJhbnNmb3JtZXJzLCBhbmQgY29yZSBsYXllci5cbiAqIFRoaXMgaXMgaW50ZW5kZWQgdG8gcmVwbGFjZSBmZWF0dXJlIGZsYWdzLCB0byBlbnN1cmUgcGFyYW0gY29lcmNpb24gaGFwcGVucyBpblxuICogYSBzaW5nbGUgbG9jYXRpb24sIGFuZCBpc24ndCBzcHJlYWQgYXJvdW5kIHRoZSB0cmFuc2Zvcm1lcnMsIHdoZXJlIHRoZXkgY2FuXG4gKiBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IGJlaGF2aW9ycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGlvbkJlaGF2aW9yIHtcbiAgLyoqXG4gICAqIFJlc3RvcmUgcGFyaXR5IHcvIEdRTHYxIEBtb2RlbCBwYXJhbWV0ZXIgYmVoYXZpb3IsIHdoZXJlIHNldHRpbmcgYSBzaW5nbGUgZmllbGQgZG9lc24ndCBpbXBsaWNpdGx5IHNldCB0aGUgb3RoZXIgZmllbGRzIHRvIG51bGwuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZERlZXBNZXJnZURpcmVjdGl2ZUNvbmZpZ0RlZmF1bHRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHJlc29sdmVyIGRlZHVwaW5nLCB0aGlzIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMgYmVjYXVzZSBkZWR1cGUgb3JkZXJpbmcgaXNuJ3Qgc3RhYmxlIHRvZGF5LCB3aGljaCBjYW5cbiAgICogbGVhZCB0byBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYWNyb3NzIHN0YWNrcyBpZiBtb2RlbHMgYXJlIHJlb3JkZXJlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVJlc29sdmVyRGVkdXBpbmc6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsaW5nIHNhbmRib3ggbW9kZSB3aWxsIGVuYWJsZSBhcGkga2V5IGF1dGggb24gYWxsIG1vZGVscyBpbiB0aGUgdHJhbnNmb3JtZWQgc2NoZW1hLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2FuZGJveE1vZGVFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCBvaWRjIGFuZCB1c2VyUG9vbCBhdXRoIHVzZSB0aGUgYHN1YmAgZmllbGQgaW4gdGhlIGZvciB0aGUgdXNlcm5hbWUgZmllbGQsIHdoaWNoIGRpc2FsbG93cyBuZXcgdXNlcnMgd2l0aCB0aGUgc2FtZVxuICAgKiBpZCB0byBhY2Nlc3MgZGF0YSBmcm9tIGEgZGVsZXRlZCB1c2VyIGluIHRoZSBwb29sLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VTdWJVc2VybmFtZUZvckRlZmF1bHRJZGVudGl0eUNsYWltOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCB0aGUgb3duZXIgZmllbGQgaXMgc3RpbGwgcG9wdWxhdGVkIGV2ZW4gaWYgYSBzdGF0aWMgaWFtIG9yIGdyb3VwIGF1dGhvcml6YXRpb24gYXBwbGllcy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9wdWxhdGVPd25lckZpZWxkRm9yU3RhdGljR3JvdXBBdXRoOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBkaXNhYmxlIGFwaSBrZXkgcmVzb3VyY2UgZ2VuZXJhdGlvbiBldmVuIGlmIHNwZWNpZmllZCBhcyBhbiBhdXRoIHJ1bGUgb24gdGhlIGNvbnN0cnVjdC5cbiAgICogVGhpcyBpcyBhIGxlZ2FjeSBwYXJhbWV0ZXIgZnJvbSB0aGUgR3JhcGhxbCBUcmFuc2Zvcm1lciBleGlzdGluZyBpbiBBbXBsaWZ5IENMSSwgbm90IHJlY29tbWVuZGVkIHRvIGNoYW5nZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHN1cHByZXNzQXBpS2V5R2VuZXJhdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgZGlzYWJsZWQsIGdlbmVyYXRlZCBAaW5kZXggYXMgYW4gTFNJIGluc3RlYWQgb2YgYSBHU0kuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNlY29uZGFyeUtleUFzR1NJOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0ZSBnZW5lcmF0aW9uIG9mIHF1ZXJ5IG5hbWVzLCBhbmQgYXMgYSByZXN1bHQgYXR0YWNoaW5nIGFsbCBpbmRleGVzIGFzIHF1ZXJpZXMgdG8gdGhlIGdlbmVyYXRlZCBBcGkuXG4gICAqIElmIGVuYWJsZWQsIEBpbmRleCBjYW4gYmUgcHJvdmlkZWQgYSBudWxsIG5hbWUgZmllbGQgdG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgcXVlcnkgb24gdGhlIEFwaS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXV0b0luZGV4UXVlcnlOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGN1c3RvbSBwcmltYXJ5IGtleSBzdXBwb3J0LCB0aGVyZSdzIG5vIGdvb2QgcmVhc29uIHRvIGRpc2FibGUgdGhpcyB1bmxlc3MgdHJ5aW5nIG5vdCB0byB1cGRhdGUgYSBsZWdhY3kgYXBwLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXNwZWN0UHJpbWFyeUtleUF0dHJpYnV0ZXNPbkNvbm5lY3Rpb25GaWVsZDogYm9vbGVhbjtcblxuICByZWFkb25seSBlbmFibGVTZWFyY2hOb2RlVG9Ob2RlRW5jcnlwdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiBlbmFibGVkLCBpbnRlcm5hbCBjZm4gb3V0cHV0cyB3aGljaCBleGlzdGVkIGluIEFtcGxpZnktZ2VuZXJhdGVkIGFwcHMgd2lsbCBjb250aW51ZSB0byBiZSBlbWl0dGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlVHJhbnNmb3JtZXJDZm5PdXRwdXRzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sbG93aW5nIHNjaGVtYSB1cGRhdGVzIHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhlIHVuZGVybHlpbmcgRHluYW1vREIgdGFibGU6XG4gICAqXG4gICAqICAtIFJlbW92aW5nIG9yIHJlbmFtaW5nIGEgbW9kZWxcbiAgICogIC0gTW9kaWZ5aW5nIHRoZSBwcmltYXJ5IGtleSBvZiBhIG1vZGVsXG4gICAqICAtIE1vZGlmeWluZyBhIExvY2FsIFNlY29uZGFyeSBJbmRleCBvZiBhIG1vZGVsIChvbmx5IGFwcGxpZXMgdG8gcHJvamVjdHMgd2l0aCBzZWNvbmRhcnlLZXlBc0dTSSB0dXJuZWQgb2ZmKVxuICAgKlxuICAgKiBBTEwgREFUQSBXSUxMIEJFIExPU1Qgd2hlbiB0aGUgdGFibGUgcmVwbGFjZW1lbnQgaGFwcGVucy4gV2hlbiBlbmFibGVkLCBkZXN0cnVjdGl2ZSB1cGRhdGVzIGFyZSBhbGxvd2VkLlxuICAgKiBUaGlzIHdpbGwgb25seSBhZmZlY3QgRHluYW1vREIgdGFibGVzIHdpdGggcHJvdmlzaW9uIHN0cmF0ZWd5IFwiQU1QTElGWV9UQUJMRVwiLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBhbGxvd0Rlc3RydWN0aXZlR3JhcGhxbFNjaGVtYVVwZGF0ZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgYmVoYXZpb3Igd2lsbCBvbmx5IGNvbWUgaW50byBlZmZlY3Qgd2hlbiBib3RoIFwiYWxsb3dEZXN0cnVjdGl2ZUdyYXBocWxTY2hlbWFVcGRhdGVzXCIgYW5kIHRoaXMgdmFsdWUgYXJlIHNldCB0byB0cnVlXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgYW55IEdTSSB1cGRhdGUgb3BlcmF0aW9uIHdpbGwgcmVwbGFjZSB0aGUgdGFibGUgaW5zdGVhZCBvZiBpdGVyYXRpdmUgZGVwbG95bWVudCwgd2hpY2ggd2lsbCBXSVBFIEFMTCBFWElTVElORyBEQVRBIGJ1dFxuICAgKiBjb3N0IG11Y2ggbGVzcyB0aW1lIGZvciBkZXBsb3ltZW50IFRoaXMgd2lsbCBvbmx5IGFmZmVjdCBEeW5hbW9EQiB0YWJsZXMgd2l0aCBwcm92aXNpb24gc3RyYXRlZ3kgXCJBTVBMSUZZX1RBQkxFXCIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxhY2VUYWJsZVVwb25Hc2lVcGRhdGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSB1dGlsaXR5IGludGVyZmFjZSBlcXVpdmFsZW50IHRvIFBhcnRpYWw8VHJhbnNsYXRpb25CZWhhdmlvcj4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFRyYW5zbGF0aW9uQmVoYXZpb3Ige1xuICAvKipcbiAgICogUmVzdG9yZSBwYXJpdHkgdy8gR1FMdjEgQG1vZGVsIHBhcmFtZXRlciBiZWhhdmlvciwgd2hlcmUgc2V0dGluZyBhIHNpbmdsZSBmaWVsZCBkb2Vzbid0IGltcGxpY2l0bHkgc2V0IHRoZSBvdGhlciBmaWVsZHMgdG8gbnVsbC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkRGVlcE1lcmdlRGlyZWN0aXZlQ29uZmlnRGVmYXVsdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHJlc29sdmVyIGRlZHVwaW5nLCB0aGlzIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMgYmVjYXVzZSBkZWR1cGUgb3JkZXJpbmcgaXNuJ3Qgc3RhYmxlIHRvZGF5LCB3aGljaCBjYW5cbiAgICogbGVhZCB0byBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYWNyb3NzIHN0YWNrcyBpZiBtb2RlbHMgYXJlIHJlb3JkZXJlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVJlc29sdmVyRGVkdXBpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGluZyBzYW5kYm94IG1vZGUgd2lsbCBlbmFibGUgYXBpIGtleSBhdXRoIG9uIGFsbCBtb2RlbHMgaW4gdGhlIHRyYW5zZm9ybWVkIHNjaGVtYS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNhbmRib3hNb2RlRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuc3VyZSB0aGF0IG9pZGMgYW5kIHVzZXJQb29sIGF1dGggdXNlIHRoZSBgc3ViYCBmaWVsZCBpbiB0aGUgZm9yIHRoZSB1c2VybmFtZSBmaWVsZCwgd2hpY2ggZGlzYWxsb3dzIG5ldyB1c2VycyB3aXRoIHRoZSBzYW1lXG4gICAqIGlkIHRvIGFjY2VzcyBkYXRhIGZyb20gYSBkZWxldGVkIHVzZXIgaW4gdGhlIHBvb2wuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHVzZVN1YlVzZXJuYW1lRm9yRGVmYXVsdElkZW50aXR5Q2xhaW0/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCB0aGUgb3duZXIgZmllbGQgaXMgc3RpbGwgcG9wdWxhdGVkIGV2ZW4gaWYgYSBzdGF0aWMgaWFtIG9yIGdyb3VwIGF1dGhvcml6YXRpb24gYXBwbGllcy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9wdWxhdGVPd25lckZpZWxkRm9yU3RhdGljR3JvdXBBdXRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgZW5hYmxlZCwgZGlzYWJsZSBhcGkga2V5IHJlc291cmNlIGdlbmVyYXRpb24gZXZlbiBpZiBzcGVjaWZpZWQgYXMgYW4gYXV0aCBydWxlIG9uIHRoZSBjb25zdHJ1Y3QuXG4gICAqIFRoaXMgaXMgYSBsZWdhY3kgcGFyYW1ldGVyIGZyb20gdGhlIEdyYXBocWwgVHJhbnNmb3JtZXIgZXhpc3RpbmcgaW4gQW1wbGlmeSBDTEksIG5vdCByZWNvbW1lbmRlZCB0byBjaGFuZ2UuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc0FwaUtleUdlbmVyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBkaXNhYmxlZCwgZ2VuZXJhdGVkIEBpbmRleCBhcyBhbiBMU0kgaW5zdGVhZCBvZiBhIEdTSS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2Vjb25kYXJ5S2V5QXNHU0k/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0ZSBnZW5lcmF0aW9uIG9mIHF1ZXJ5IG5hbWVzLCBhbmQgYXMgYSByZXN1bHQgYXR0YWNoaW5nIGFsbCBpbmRleGVzIGFzIHF1ZXJpZXMgdG8gdGhlIGdlbmVyYXRlZCBBcGkuXG4gICAqIElmIGVuYWJsZWQsIEBpbmRleCBjYW4gYmUgcHJvdmlkZWQgYSBudWxsIG5hbWUgZmllbGQgdG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgcXVlcnkgb24gdGhlIEFwaS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXV0b0luZGV4UXVlcnlOYW1lcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjdXN0b20gcHJpbWFyeSBrZXkgc3VwcG9ydCwgdGhlcmUncyBubyBnb29kIHJlYXNvbiB0byBkaXNhYmxlIHRoaXMgdW5sZXNzIHRyeWluZyBub3QgdG8gdXBkYXRlIGEgbGVnYWN5IGFwcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzcGVjdFByaW1hcnlLZXlBdHRyaWJ1dGVzT25Db25uZWN0aW9uRmllbGQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBzZXQgbm9kZVRvTm9kZUVuY3J5cHRpb24gb24gdGhlIHNlYXJjaGFibGUgZG9tYWluIChpZiBvbmUgZXhpc3RzKS4gTm90IHJlY29tbWVuZGVkIGZvciB1c2UsIHByZWZlclxuICAgKiB0byB1c2UgYE9iamVjdC52YWx1ZXMocmVzb3VyY2VzLmFkZGl0aW9uYWxSZXNvdXJjZXNbJ0FXUzo6RWxhc3RpY3NlYXJjaDo6RG9tYWluJ10pLmZvckVhY2goKGRvbWFpbjogQ2ZuRG9tYWluKSA9PiB7XG4gICAqICAgZG9tYWluLk5vZGVUb05vZGVFbmNyeXB0aW9uT3B0aW9ucyA9IHsgRW5hYmxlZDogVHJ1ZSB9O1xuICAgKiB9KTtcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNlYXJjaE5vZGVUb05vZGVFbmNyeXB0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiBlbmFibGVkLCBpbnRlcm5hbCBjZm4gb3V0cHV0cyB3aGljaCBleGlzdGVkIGluIEFtcGxpZnktZ2VuZXJhdGVkIGFwcHMgd2lsbCBjb250aW51ZSB0byBiZSBlbWl0dGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlVHJhbnNmb3JtZXJDZm5PdXRwdXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGZvbGxvd2luZyBzY2hlbWEgdXBkYXRlcyByZXF1aXJlIHJlcGxhY2VtZW50IG9mIHRoZSB1bmRlcmx5aW5nIER5bmFtb0RCIHRhYmxlOlxuICAgKlxuICAgKiAgLSBSZW1vdmluZyBvciByZW5hbWluZyBhIG1vZGVsXG4gICAqICAtIE1vZGlmeWluZyB0aGUgcHJpbWFyeSBrZXkgb2YgYSBtb2RlbFxuICAgKiAgLSBNb2RpZnlpbmcgYSBMb2NhbCBTZWNvbmRhcnkgSW5kZXggb2YgYSBtb2RlbCAob25seSBhcHBsaWVzIHRvIHByb2plY3RzIHdpdGggc2Vjb25kYXJ5S2V5QXNHU0kgdHVybmVkIG9mZilcbiAgICpcbiAgICogQUxMIERBVEEgV0lMTCBCRSBMT1NUIHdoZW4gdGhlIHRhYmxlIHJlcGxhY2VtZW50IGhhcHBlbnMuIFdoZW4gZW5hYmxlZCwgZGVzdHJ1Y3RpdmUgdXBkYXRlcyBhcmUgYWxsb3dlZC5cbiAgICogVGhpcyB3aWxsIG9ubHkgYWZmZWN0IER5bmFtb0RCIHRhYmxlcyB3aXRoIHByb3Zpc2lvbiBzdHJhdGVneSBcIkFNUExJRllfVEFCTEVcIi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dEZXN0cnVjdGl2ZUdyYXBocWxTY2hlbWFVcGRhdGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBiZWhhdmlvciB3aWxsIG9ubHkgY29tZSBpbnRvIGVmZmVjdCB3aGVuIGJvdGggXCJhbGxvd0Rlc3RydWN0aXZlR3JhcGhxbFNjaGVtYVVwZGF0ZXNcIiBhbmQgdGhpcyB2YWx1ZSBhcmUgc2V0IHRvIHRydWVcbiAgICpcbiAgICogV2hlbiBlbmFibGVkLCBhbnkgZ2xvYmFsIHNlY29uZGFyeSBpbmRleCB1cGRhdGUgb3BlcmF0aW9uIHdpbGwgcmVwbGFjZSB0aGUgdGFibGUgaW5zdGVhZCBvZiBpdGVyYXRpdmUgZGVwbG95bWVudCwgd2hpY2ggd2lsbCBXSVBFIEFMTFxuICAgKiBFWElTVElORyBEQVRBIGJ1dCBjb3N0IG11Y2ggbGVzcyB0aW1lIGZvciBkZXBsb3ltZW50IFRoaXMgd2lsbCBvbmx5IGFmZmVjdCBEeW5hbW9EQiB0YWJsZXMgd2l0aCBwcm92aXNpb24gc3RyYXRlZ3kgXCJBTVBMSUZZX1RBQkxFXCIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxhY2VUYWJsZVVwb25Hc2lVcGRhdGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEdyYXBocWwgQXBpIGRlZmluaXRpb24sIHdoaWNoIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBtdWx0aXBsZSB3YXlzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSBzY2hlbWEgZGVmaW5pdGlvbiBhcyBhIGdyYXBocWwgc3RyaW5nLCB3aXRoIGFtcGxpZnkgZGlyZWN0aXZlcyBhbGxvd2VkLlxuICAgKiBAcmV0dXJucyB0aGUgcmVuZGVyZWQgc2NoZW1hLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGFueSBmdW5jdGlvbiBzbG90cyBkZWZpbmVkIGV4cGxpY2l0bHkgaW4gdGhlIEFwaSBkZWZpbml0aW9uLlxuICAgKiBAcmV0dXJucyBnZW5lcmF0ZWQgZnVuY3Rpb24gc2xvdHNcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uU2xvdHM6IEZ1bmN0aW9uU2xvdFtdO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgcmVmZXJlbmNlcyB0byBhbnkgbGFtYmRhIGZ1bmN0aW9ucyB1c2VkIGluIHRoZSBkZWZpbml0aW9uLlxuICAgKiBVc2VmdWwgZm9yIHdpcmluZyB0aHJvdWdoIGF3c19sYW1iZGEuRnVuY3Rpb24gY29uc3RydWN0cyBpbnRvIHRoZSBkZWZpbml0aW9uIGRpcmVjdGx5LFxuICAgKiBhbmQgZ2VuZXJhdGVkIHJlZmVyZW5jZXMgdG8gaW52b2tlIHRoZW0uXG4gICAqIEByZXR1cm5zIGFueSBsYW1iZGEgZnVuY3Rpb25zLCBrZXllZCBieSB0aGVpciByZWZlcmVuY2VkICduYW1lJyBpbiB0aGUgZ2VuZXJhdGVkIHNjaGVtYS5cbiAgICovXG4gIHJlYWRvbmx5IHJlZmVyZW5jZWRMYW1iZGFGdW5jdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBJRnVuY3Rpb24+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgZGF0YXNvdXJjZSBzdHJhdGVneSBtYXBwaW5nLiBUaGUgZGVmYXVsdCBzdHJhdGVneSBpcyB0byB1c2UgRHluYW1vREIgZnJvbSBDbG91ZEZvcm1hdGlvbi5cbiAgICogQHJldHVybnMgZGF0YXNvdXJjZSBzdHJhdGVneSBtYXBwaW5nXG4gICAqL1xuICByZWFkb25seSBkYXRhU291cmNlU3RyYXRlZ2llczogUmVjb3JkPHN0cmluZywgTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k+O1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBjdXN0b20gUXVlcnkgb3IgTXV0YXRpb24gU1FMIGNvbW1hbmRzIHRvIHRoZSBkYXRhIHNvdXJjZXMgdGhhdCByZXNvbHZlcyB0aGVtLlxuICAgKiBAcmV0dXJucyBhIGxpc3Qgb2YgbWFwcGluZ3MgZnJvbSBjdXN0b20gU1FMIGNvbW1hbmRzIHRvIGRhdGEgc291cmNlc1xuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXM/OiBDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3lbXTtcbn1cblxuLyoqXG4gKiBFbnRyeSByZXByZXNlbnRpbmcgdGhlIHJlcXVpcmVkIG91dHB1dCBmcm9tIHRoZSBiYWNrZW5kIGZvciBjb2RlZ2VuIGdlbmVyYXRlIGNvbW1hbmRzIHRvIHdvcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJhY2tlbmRPdXRwdXRFbnRyeSB7XG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdmVyc2lvbiBmb3IgdGhpcyBiYWNrZW5kIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0cmluZy1tYXAgcGF5bG9hZCBvZiBnZW5lcmF0ZWQgY29uZmlnIHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogQmFja2VuZCBvdXRwdXQgc3RyYXRlZ3kgdXNlZCB0byB3cml0ZSBjb25maWcgcmVxdWlyZWQgZm9yIGNvZGVnZW4gdGFza3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kge1xuICAvKipcbiAgICogQWRkIGFuIGVudHJ5IHRvIGJhY2tlbmQgb3V0cHV0LlxuICAgKiBAcGFyYW0ga2V5TmFtZSB0aGUga2V5XG4gICAqIEBwYXJhbSBiYWNrZW5kT3V0cHV0RW50cnkgdGhlIHJlY29yZCB0byBzdG9yZSBpbiB0aGUgYmFja2VuZCBvdXRwdXRcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZVxuICBhZGRCYWNrZW5kT3V0cHV0RW50cnkoa2V5TmFtZTogc3RyaW5nLCBiYWNrZW5kT3V0cHV0RW50cnk6IElCYWNrZW5kT3V0cHV0RW50cnkpOiB2b2lkO1xufVxuXG4vKipcbiAqIElucHV0IHByb3BzIGZvciB0aGUgQW1wbGlmeUdyYXBocWxBcGkgY29uc3RydWN0LiBTcGVjaWZpZXMgd2hhdCB0aGUgaW5wdXQgdG8gdHJhbnNmb3JtIGludG8gYW4gQXBpLCBhbmQgY29uZmlndXJhdGlvbnMgZm9yXG4gKiB0aGUgdHJhbnNmb3JtYXRpb24gcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbXBsaWZ5R3JhcGhxbEFwaVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBkZWZpbml0aW9uIHRvIHRyYW5zZm9ybSBpbiBhIGZ1bGwgQXBpLlxuICAgKiBDYW4gYmUgY29uc3RydWN0ZWQgdmlhIHRoZSBBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24gY2xhc3MuXG4gICAqL1xuICByZWFkb25seSBkZWZpbml0aW9uOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBOYW1lIHRvIGJlIHVzZWQgZm9yIHRoZSBBcHBTeW5jIEFwaS5cbiAgICogRGVmYXVsdDogY29uc3RydWN0IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUmVxdWlyZWQgYXV0aCBtb2RlcyBmb3IgdGhlIEFwaS4gVGhpcyBvYmplY3QgbXVzdCBiZSBhIHN1cGVyc2V0IG9mIHRoZSBjb25maWd1cmVkIGF1dGggcHJvdmlkZXJzIGluIHRoZSBBcGkgZGVmaW5pdGlvbi5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlZmVyIHRvIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9hdXRob3JpemF0aW9uLXJ1bGVzL1xuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbk1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXM7XG5cbiAgLyoqXG4gICAqIExhbWJkYSBmdW5jdGlvbnMgcmVmZXJlbmNlZCBpbiB0aGUgZGVmaW5pdGlvbnMncyBAZnVuY3Rpb24gZGlyZWN0aXZlcy4gVGhlIGtleXMgb2YgdGhpcyBvYmplY3QgYXJlIGV4cGVjdGVkIHRvIGJlIHRoZVxuICAgKiBmdW5jdGlvbiBuYW1lIHByb3ZpZGVkIGluIHRoZSBkZWZpbml0aW9uLCBhbmQgdmFsdWUgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgbmFtZSByZWZlcnMgdG8uIElmIGEgbmFtZSBpcyBub3QgZm91bmQgaW4gdGhpc1xuICAgKiBtYXAsIHRoZW4gaXQgaXMgaW50ZXJwcmV0ZWQgYXMgdGhlIGBmdW5jdGlvbk5hbWVgLCBhbmQgYW4gYXJuIHdpbGwgYmUgY29uc3RydWN0ZWQgdXNpbmcgdGhlIGN1cnJlbnQgYXdzIGFjY291bnQgYW5kIHJlZ2lvblxuICAgKiAob3Igb3ZlcnJpZGRlbiB2YWx1ZXMsIGlmIHNldCBpbiB0aGUgZGlyZWN0aXZlKS5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZU1hcD86IFJlY29yZDxzdHJpbmcsIElGdW5jdGlvbj47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBjb25mbGljdCByZXNvbHV0aW9uIG9uIHRoZSBBcGksIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBEYXRhU3RvcmUgQXBpIGZ1bmN0aW9uYWxpdHkuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvbGliL2RhdGFzdG9yZS9nZXR0aW5nLXN0YXJ0ZWQvcS9wbGF0Zm9ybS9qcy9cbiAgICogQGRlcHJlY2F0ZWQgdXNlIGRhdGFTdG9yZUNvbmZpZ3VyYXRpb24gaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZsaWN0UmVzb2x1dGlvbj86IENvbmZsaWN0UmVzb2x1dGlvbjtcblxuICAvKipcbiAgICogU3RhY2tNYXBwaW5ncyBvdmVycmlkZSB0aGUgYXNzaWduZWQgbmVzdGVkIHN0YWNrIG9uIGEgcGVyLXJlc291cmNlIGJhc2lzLiBPbmx5IGFwcGxpZXMgdG8gcmVzb2x2ZXJzLCBhbmQgdGFrZXMgdGhlIGZvcm1cbiAgICogeyA8bG9naWNhbElkPjogPHN0YWNrTmFtZT4gfVxuICAgKiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gdXNlIHRoaXMgcGFyYW1ldGVyIHVubGVzcyB5b3UgYXJlIGVuY291bnRlcmluZyBzdGFjayByZXNvdXJjZSBjb3VudCBsaW1pdHMsIGFuZCB3b3J0aCBub3RpbmcgdGhhdFxuICAgKiBhZnRlciBpbml0aWFsIGRlcGxveW1lbnQgQXBwU3luYyByZXNvbHZlcnMgY2Fubm90IGJlIG1vdmVkIGJldHdlZW4gbmVzdGVkIHN0YWNrcywgdGhleSB3aWxsIG5lZWQgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBhcHAsXG4gICAqIHRoZW4gcmUtYWRkZWQgZnJvbSBhIG5ldyBzdGFjay5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTWFwcGluZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgZm9yIGEgZ2l2ZW4gc2xvdCBpbiB0aGUgZ2VuZXJhdGVkIHJlc29sdmVyIHBpcGVsaW5lcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBzbG90cyBhcmUgYXZhaWxhYmxlLFxuICAgKiByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY3VzdG9tLWJ1c2luZXNzLWxvZ2ljLyNvdmVycmlkZS1hbXBsaWZ5LWdlbmVyYXRlZC1yZXNvbHZlcnMuXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvblNsb3RzPzogRnVuY3Rpb25TbG90W107XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgYSBsaXN0IG9mIGFkZGl0aW9uYWwgY3VzdG9tIHRyYW5zZm9ybWVycyB3aGljaCBhcmUgaW5qZWN0ZWQgaW50byB0aGUgdHJhbnNmb3JtIHByb2Nlc3MuXG4gICAqIFRoZXNlIGN1c3RvbSB0cmFuc2Zvcm1lcnMgbXVzdCBiZSBpbXBsZW1lbnRlZCB3aXRoIGF3cy1jZGstbGliID49Mi44MC4wLCBhbmQgQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItY29yZSA+PSAyLjEuMVxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm1lclBsdWdpbnM/OiBhbnlbXTtcblxuICAvKipcbiAgICogSWYgdXNpbmcgcHJlZGljdGlvbnMsIGEgYnVja2V0IG11c3QgYmUgcHJvdmlkZWQgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYXNzZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZGljdGlvbnNCdWNrZXQ/OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGlzIHJlcGxhY2VzIGZlYXR1cmUgZmxhZ3MgZnJvbSB0aGUgQXBpIGNvbnN0cnVjdCwgZm9yIGdlbmVyYWwgaW5mb3JtYXRpb24gb24gd2hhdCB0aGVzZSBwYXJhbWV0ZXJzIGRvLFxuICAgKiByZWZlciB0byBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL3JlZmVyZW5jZS9mZWF0dXJlLWZsYWdzLyNncmFwaFFMVHJhbnNmb3JtZXJcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zbGF0aW9uQmVoYXZpb3I/OiBQYXJ0aWFsVHJhbnNsYXRpb25CZWhhdmlvcjtcblxuICAvKipcbiAgICogU3RyYXRlZ3kgdG8gc3RvcmUgY29uc3RydWN0IG91dHB1dHMuIElmIG5vIG91dHB1dFN0b3JhZ2VTdHJhdGVnZXkgaXMgcHJvdmlkZWQgYSBkZWZhdWx0IHN0cmF0ZWd5IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dFN0b3JhZ2VTdHJhdGVneT86IElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgRGF0YVN0b3JlIGNvbmZsaWN0IHJlc29sdXRpb24gb24gdGhlIEFwaS4gQ29uZmxpY3QgcmVzb2x1dGlvbiBpcyByZXF1aXJlZCB0byBlbmFibGUgRGF0YVN0b3JlIEFwaSBmdW5jdGlvbmFsaXR5LlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmFtcGxpZnkuYXdzL2xpYi9kYXRhc3RvcmUvZ2V0dGluZy1zdGFydGVkL3EvcGxhdGZvcm0vanMvXG4gICAqL1xuICByZWFkb25seSBkYXRhU3RvcmVDb25maWd1cmF0aW9uPzogRGF0YVN0b3JlQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBMMSBDREsgcmVzb3VyY2VzIGZyb20gdGhlIEFwaSB3aGljaCB3ZXJlIGdlbmVyYXRlZCBhcyBwYXJ0IG9mIHRoZSB0cmFuc2Zvcm0uXG4gKiBUaGVzZSBhcmUgcG90ZW50aWFsbHkgc3RvcmVkIHVuZGVyIG5lc3RlZCBzdGFja3MsIGJ1dCBwcmVzZW50ZWQgb3JnYW5pemVkIGJ5IHR5cGUgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbXBsaWZ5R3JhcGhxbEFwaUNmblJlc291cmNlcyB7XG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgQXBpIEwxIFJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgU2NoZW1hIEwxIFJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBjZm5HcmFwaHFsU2NoZW1hOiBDZm5HcmFwaFFMU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgQXBpIEtleSBMMSBSZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuQXBpS2V5PzogQ2ZuQXBpS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgR2VuZXJhdGVkIEFwcFN5bmMgUmVzb2x2ZXIgTDEgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBjZm5SZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIENmblJlc29sdmVyPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBBcHBTeW5jIEZ1bmN0aW9uIEwxIFJlc291cmNlcywga2V5ZWQgYnkgbG9naWNhbElkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBBcHBTeW5jIERhdGFTb3VyY2UgTDEgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBjZm5EYXRhU291cmNlczogUmVjb3JkPHN0cmluZywgQ2ZuRGF0YVNvdXJjZT47XG5cbiAgLyoqXG4gICAqIFRoZSBHZW5lcmF0ZWQgRHluYW1vREIgVGFibGUgTDEgUmVzb3VyY2VzLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBjZm5UYWJsZXM6IFJlY29yZDxzdHJpbmcsIENmblRhYmxlPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBBbXBsaWZ5IER5bmFtb0RiIFRhYmxlIEwxIHJlc291cmNlIHdyYXBwZXIsIGtleWVkIGJ5IG1vZGVsIHR5cGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGFtcGxpZnlEeW5hbW9EYlRhYmxlczogUmVjb3JkPHN0cmluZywgQW1wbGlmeUR5bmFtb0RiVGFibGVXcmFwcGVyPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBJQU0gUm9sZSBMMSBSZXNvdXJjZXMsIGtleWVkIGJ5IGxvZ2ljYWxJZC5cbiAgICovXG4gIHJlYWRvbmx5IGNmblJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5Sb2xlPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBMYW1iZGEgRnVuY3Rpb24gTDEgUmVzb3VyY2VzLCBrZXllZCBieSBmdW5jdGlvbiBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuRnVuY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDZm5GdW5jdGlvbj47XG5cbiAgLyoqXG4gICAqIFJlbWFpbmluZyBMMSByZXNvdXJjZXMgZ2VuZXJhdGVkLCBrZXllZCBieSBsb2dpY2FsSWQuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT47XG59XG5cbi8qKlxuICogQWNjZXNzaWJsZSByZXNvdXJjZXMgZnJvbSB0aGUgQXBpIHdoaWNoIHdlcmUgZ2VuZXJhdGVkIGFzIHBhcnQgb2YgdGhlIHRyYW5zZm9ybS5cbiAqIFRoZXNlIGFyZSBwb3RlbnRpYWxseSBzdG9yZWQgdW5kZXIgbmVzdGVkIHN0YWNrcywgYnV0IHByZXNlbnRlZCBvcmdhbml6ZWQgYnkgdHlwZSBpbnN0ZWFkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzIHtcbiAgLyoqXG4gICAqIFRoZSBHZW5lcmF0ZWQgQXBwU3luYyBBcGkgTDIgUmVzb3VyY2UsIGluY2x1ZGVzIHRoZSBTY2hlbWEuXG4gICAqL1xuICByZWFkb25seSBncmFwaHFsQXBpOiBJR3JhcGhxbEFwaTtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBEeW5hbW9EQiBUYWJsZSBMMiBSZXNvdXJjZXMsIGtleWVkIGJ5IGxvZ2ljYWxJZC5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlczogUmVjb3JkPHN0cmluZywgSVRhYmxlPjtcblxuICAvKipcbiAgICogVGhlIEdlbmVyYXRlZCBJQU0gUm9sZSBMMiBSZXNvdXJjZXMsIGtleWVkIGJ5IGxvZ2ljYWxJZC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBJUm9sZT47XG5cbiAgLyoqXG4gICAqIFRoZSBHZW5lcmF0ZWQgTGFtYmRhIEZ1bmN0aW9uIEwxIFJlc291cmNlcywga2V5ZWQgYnkgZnVuY3Rpb24gbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uczogUmVjb3JkPHN0cmluZywgSUZ1bmN0aW9uPjtcblxuICAvKipcbiAgICogTDEgQ2ZuIFJlc291cmNlcywgZm9yIHdoZW4gZGlwcGluZyBkb3duIGEgbGV2ZWwgb2YgYWJzdHJhY3Rpb24gaXMgZGVzaXJhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2ZuUmVzb3VyY2VzOiBBbXBsaWZ5R3JhcGhxbEFwaUNmblJlc291cmNlcztcblxuICAvKipcbiAgICogTmVzdGVkIFN0YWNrcyBnZW5lcmF0ZWQgYnkgdGhlIEFwaSBDb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBuZXN0ZWRTdGFja3M6IFJlY29yZDxzdHJpbmcsIE5lc3RlZFN0YWNrPjtcbn1cblxuLyoqXG4gKiBJbnB1dCB0eXBlIHByb3BlcnRpZXMgd2hlbiBhZGRpbmcgYSBuZXcgYXBwc3luYy5BcHBzeW5jRnVuY3Rpb24gdG8gdGhlIGdlbmVyYXRlZCBBUEkuXG4gKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhlIE9taXQ8YXBwc3luYy5BcHBzeW5jRnVuY3Rpb25Qcm9wcywgJ2FwaSc+LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZEZ1bmN0aW9uUHJvcHMge1xuICAvKipcbiAgICogdGhlIGRhdGEgc291cmNlIGxpbmtlZCB0byB0aGlzIEFwcFN5bmMgRnVuY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTb3VyY2U6IEJhc2VEYXRhU291cmNlO1xuXG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgQXBwU3luYyBGdW5jdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiB0aGUgZGVzY3JpcHRpb24gZm9yIHRoaXMgQXBwU3luYyBGdW5jdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogdGhlIHJlcXVlc3QgbWFwcGluZyB0ZW1wbGF0ZSBmb3IgdGhlIEFwcFN5bmMgRnVuY3Rpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyByZXF1ZXN0IG1hcHBpbmcgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNYXBwaW5nVGVtcGxhdGU/OiBNYXBwaW5nVGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIHRoZSByZXNwb25zZSBtYXBwaW5nIHRlbXBsYXRlIGZvciB0aGUgQXBwU3luYyBGdW5jdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHJlc3BvbnNlIG1hcHBpbmcgdGVtcGxhdGVcbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlTWFwcGluZ1RlbXBsYXRlPzogTWFwcGluZ1RlbXBsYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb25zIHJ1bnRpbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBmdW5jdGlvbiBydW50aW1lLCBWVEwgbWFwcGluZyB0ZW1wbGF0ZXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZT86IEZ1bmN0aW9uUnVudGltZTtcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIGNvZGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb2RlIGlzIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvZGU/OiBDb2RlO1xufVxuIl19
|
@@ -3,7 +3,23 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
-
## [3.
|
6
|
+
## [3.4.2-cors-rule.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-auth-transformer@3.4.1...@aws-amplify/graphql-auth-transformer@3.4.2-cors-rule.0) (2024-03-20)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @aws-amplify/graphql-auth-transformer
|
9
|
+
|
10
|
+
## [3.4.1](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-auth-transformer@3.4.0...@aws-amplify/graphql-auth-transformer@3.4.1) (2024-03-13)
|
11
|
+
|
12
|
+
### Bug Fixes
|
13
|
+
|
14
|
+
- field auth resolver to use "validateUsingSource" auth util method ([#2170](https://github.com/aws-amplify/amplify-category-api/issues/2170)) ([b344d0d](https://github.com/aws-amplify/amplify-category-api/commit/b344d0d3b4b0ad430dd3572954b2e93ea887b28d))
|
15
|
+
|
16
|
+
# [3.4.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-auth-transformer@3.3.6...@aws-amplify/graphql-auth-transformer@3.4.0) (2024-02-28)
|
17
|
+
|
18
|
+
### Features
|
19
|
+
|
20
|
+
- add implicit fields to filter input ([#2236](https://github.com/aws-amplify/amplify-category-api/issues/2236)) ([f7ec601](https://github.com/aws-amplify/amplify-category-api/commit/f7ec6014d4eecfede186129a6ea19041780bafb3))
|
21
|
+
|
22
|
+
## [3.3.6](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-auth-transformer@3.3.5...@aws-amplify/graphql-auth-transformer@3.3.6) (2024-02-05)
|
7
23
|
|
8
24
|
**Note:** Version bump only for package @aws-amplify/graphql-auth-transformer
|
9
25
|
|
package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"graphql-auth-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-auth-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,
|
1
|
+
{"version":3,"file":"graphql-auth-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-auth-transformer.ts"],"names":[],"mappings":"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"}
|
@@ -169,7 +169,40 @@ class AuthTransformer extends graphql_transformer_core_1.TransformerAuthBase {
|
|
169
169
|
this.authModelConfig.forEach((acm, modelName) => {
|
170
170
|
const def = context.output.getObject(modelName);
|
171
171
|
const modelHasSearchable = def.directives.some((dir) => dir.name.value === 'searchable');
|
172
|
-
|
172
|
+
const ownerFields = getOwnerFields(acm);
|
173
|
+
if ((0, graphql_transformer_core_1.isDynamoDbModel)(context, modelName)) {
|
174
|
+
const filterInput = context.output.getInput((0, graphql_transformer_core_1.getFilterInputName)(modelName));
|
175
|
+
if (filterInput) {
|
176
|
+
const updatedFilterInput = { ...filterInput, fields: [...filterInput.fields] };
|
177
|
+
ownerFields.forEach((ownerField) => {
|
178
|
+
if (!filterInput.fields.some((field) => field.name.value === ownerField)) {
|
179
|
+
updatedFilterInput.fields.push((0, graphql_transformer_common_1.makeInputValueDefinition)(ownerField, (0, graphql_transformer_common_1.makeNamedType)('ModelStringInput')));
|
180
|
+
}
|
181
|
+
});
|
182
|
+
context.output.updateInput(updatedFilterInput);
|
183
|
+
}
|
184
|
+
const conditionInput = context.output.getInput((0, graphql_transformer_core_1.getConditionInputName)(modelName));
|
185
|
+
if (conditionInput) {
|
186
|
+
const updatedConditionInput = { ...conditionInput, fields: [...conditionInput.fields] };
|
187
|
+
ownerFields.forEach((ownerField) => {
|
188
|
+
if (!conditionInput.fields.some((field) => field.name.value === ownerField)) {
|
189
|
+
updatedConditionInput.fields.push((0, graphql_transformer_common_1.makeInputValueDefinition)(ownerField, (0, graphql_transformer_common_1.makeNamedType)('ModelStringInput')));
|
190
|
+
}
|
191
|
+
});
|
192
|
+
context.output.updateInput(updatedConditionInput);
|
193
|
+
}
|
194
|
+
const subscriptionFilterInput = context.output.getInput((0, graphql_transformer_core_1.getSubscriptionFilterInputName)(modelName));
|
195
|
+
if (subscriptionFilterInput) {
|
196
|
+
const updatedSubscriptionFilterInput = { ...subscriptionFilterInput, fields: [...subscriptionFilterInput.fields] };
|
197
|
+
ownerFields.forEach((ownerField) => {
|
198
|
+
if (!subscriptionFilterInput.fields.some((field) => field.name.value === ownerField)) {
|
199
|
+
updatedSubscriptionFilterInput.fields.push((0, graphql_transformer_common_1.makeInputValueDefinition)(ownerField, (0, graphql_transformer_common_1.makeNamedType)('ModelStringInput')));
|
200
|
+
}
|
201
|
+
});
|
202
|
+
context.output.updateInput(updatedSubscriptionFilterInput);
|
203
|
+
}
|
204
|
+
}
|
205
|
+
this.addFieldsToObject(context, modelName, ownerFields);
|
173
206
|
const providers = this.getAuthProviders(acm.getRoles());
|
174
207
|
const addDefaultIfNeeded = providers.length === 0 ? this.configuredAuthProviders.shouldAddDefaultServiceDirective : false;
|
175
208
|
const directives = this.getServiceDirectives(providers, addDefaultIfNeeded);
|