@cumulus/async-operations 19.2.0-alpha.1 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nycrc.json +1 -1
- package/dist/async_operations.d.ts +18 -14
- package/dist/async_operations.d.ts.map +1 -1
- package/dist/async_operations.js +19 -16
- package/dist/async_operations.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/async_operations.ts +21 -14
- package/tests/test-async_operations.js +16 -13
package/.nycrc.json
CHANGED
|
@@ -27,7 +27,7 @@ export declare const getLambdaEnvironmentVariables: (configuration: FunctionConf
|
|
|
27
27
|
* @returns {Promise<Object>}
|
|
28
28
|
* @see https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ECS.html#runTask-property
|
|
29
29
|
*/
|
|
30
|
-
export declare const startECSTask: ({ asyncOperationTaskDefinition, cluster, callerLambdaName, lambdaName, id, payloadBucket, payloadKey, useLambdaEnvironmentVariables, }: {
|
|
30
|
+
export declare const startECSTask: ({ asyncOperationTaskDefinition, cluster, callerLambdaName, lambdaName, id, payloadBucket, payloadKey, useLambdaEnvironmentVariables, containerName, }: {
|
|
31
31
|
asyncOperationTaskDefinition: string;
|
|
32
32
|
cluster: string;
|
|
33
33
|
callerLambdaName: string;
|
|
@@ -36,6 +36,7 @@ export declare const startECSTask: ({ asyncOperationTaskDefinition, cluster, cal
|
|
|
36
36
|
payloadBucket: string;
|
|
37
37
|
payloadKey: string;
|
|
38
38
|
useLambdaEnvironmentVariables?: boolean | undefined;
|
|
39
|
+
containerName?: string | undefined;
|
|
39
40
|
}) => StartEcsTaskReturnType;
|
|
40
41
|
export declare const createAsyncOperation: (params: {
|
|
41
42
|
createObject: ApiAsyncOperation;
|
|
@@ -47,24 +48,26 @@ export declare const createAsyncOperation: (params: {
|
|
|
47
48
|
/**
|
|
48
49
|
* Start an AsyncOperation in ECS and store its associate record to DynamoDB
|
|
49
50
|
*
|
|
50
|
-
* @param
|
|
51
|
-
* @param
|
|
51
|
+
* @param params - params
|
|
52
|
+
* @param params.asyncOperationId - the ID of the async operation
|
|
53
|
+
* @param params.asyncOperationTaskDefinition - the name or ARN of the
|
|
52
54
|
* async-operation ECS task definition
|
|
53
|
-
* @param
|
|
54
|
-
* @param
|
|
55
|
-
* @param
|
|
56
|
-
* @param
|
|
57
|
-
* @param
|
|
58
|
-
* @param
|
|
59
|
-
* @param
|
|
55
|
+
* @param params.cluster - the name of the ECS cluster
|
|
56
|
+
* @param params.description - the ECS task description
|
|
57
|
+
* @param params.knexConfig - Object with Knex configuration keys
|
|
58
|
+
* @param params.callerLambdaName - the name of the Lambda initiating the ECS task
|
|
59
|
+
* @param params.lambdaName - the name of the Lambda task to be run
|
|
60
|
+
* @param params.operationType - the type of async operation to run
|
|
61
|
+
* @param params.payload - the event to be passed to the lambda task.
|
|
60
62
|
* Must be a simple Object or Array which can be converted to JSON.
|
|
61
|
-
* @param
|
|
62
|
-
* @param
|
|
63
|
+
* @param params.stackName - the Cumulus stack name
|
|
64
|
+
* @param params.systemBucket - Cumulus system bucket to use for writing
|
|
63
65
|
* async payload objects
|
|
64
|
-
* @param
|
|
66
|
+
* @param params.useLambdaEnvironmentVariables -
|
|
65
67
|
* useLambdaEnvironmentVariables, set 'true' if async task
|
|
66
68
|
* should import environment variables from the deployed lambda
|
|
67
|
-
* @param
|
|
69
|
+
* @param params.startEcsTaskFunc - used for testing
|
|
70
|
+
* @param params.containerName - the name of the container to run
|
|
68
71
|
* @returns {Promise<Object>} - an AsyncOperation record
|
|
69
72
|
* @memberof AsyncOperation
|
|
70
73
|
*/
|
|
@@ -81,6 +84,7 @@ export declare const startAsyncOperation: (params: {
|
|
|
81
84
|
stackName: string;
|
|
82
85
|
systemBucket: string;
|
|
83
86
|
useLambdaEnvironmentVariables?: boolean;
|
|
87
|
+
containerName?: string;
|
|
84
88
|
startEcsTaskFunc?: () => StartEcsTaskReturnType;
|
|
85
89
|
}) => Promise<Partial<ApiAsyncOperation>>;
|
|
86
90
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async_operations.d.ts","sourceRoot":"","sources":["../src/async_operations.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAmC,MAAM,wBAAwB,CAAC;AAUhG,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAG5F,OAAO,KAAK,EACV,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAKjB,aAAK,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB,iBACnB,MAAM,KACnB,QAAQ,qBAAqB,CAE7B,CAAC;AAEJ,eAAO,MAAM,6BAA6B,kBACzB,qBAAqB,KACnC,OAAO,MAAM,EAAE,MAAM,CAAC,EAKxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"async_operations.d.ts","sourceRoot":"","sources":["../src/async_operations.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAmC,MAAM,wBAAwB,CAAC;AAUhG,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAG5F,OAAO,KAAK,EACV,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAKjB,aAAK,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB,iBACnB,MAAM,KACnB,QAAQ,qBAAqB,CAE7B,CAAC;AAEJ,eAAO,MAAM,6BAA6B,kBACzB,qBAAqB,KACnC,OAAO,MAAM,EAAE,MAAM,CAAC,EAKxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY;kCAWO,MAAM;aAC3B,MAAM;sBACG,MAAM;gBACZ,MAAM;QACd,MAAM;mBACK,MAAM;gBACT,MAAM;;;4BAuCnB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB;IACN,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,qBAAqB,CAAC,EAAE,2BAA2B,CAAA;CACpD,KACA,QAAQ,QAAQ,iBAAiB,CAAC,CAgBpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,mBAAmB,WACtB;IACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B,EAAE,MAAM,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,kBAAkB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,sBAAsB,CAAA;CAChD,KACA,QAAQ,QAAQ,iBAAiB,CAAC,CAuFpC,CAAC"}
|
package/dist/async_operations.js
CHANGED
|
@@ -40,7 +40,7 @@ exports.getLambdaEnvironmentVariables = getLambdaEnvironmentVariables;
|
|
|
40
40
|
* @returns {Promise<Object>}
|
|
41
41
|
* @see https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ECS.html#runTask-property
|
|
42
42
|
*/
|
|
43
|
-
const startECSTask = async ({ asyncOperationTaskDefinition, cluster, callerLambdaName, lambdaName, id, payloadBucket, payloadKey, useLambdaEnvironmentVariables, }) => {
|
|
43
|
+
const startECSTask = async ({ asyncOperationTaskDefinition, cluster, callerLambdaName, lambdaName, id, payloadBucket, payloadKey, useLambdaEnvironmentVariables, containerName = 'AsyncOperation', }) => {
|
|
44
44
|
const envVars = [
|
|
45
45
|
{ name: 'asyncOperationId', value: id },
|
|
46
46
|
{ name: 'lambdaName', value: lambdaName },
|
|
@@ -67,7 +67,7 @@ const startECSTask = async ({ asyncOperationTaskDefinition, cluster, callerLambd
|
|
|
67
67
|
overrides: {
|
|
68
68
|
containerOverrides: [
|
|
69
69
|
{
|
|
70
|
-
name:
|
|
70
|
+
name: containerName,
|
|
71
71
|
environment: taskVars,
|
|
72
72
|
},
|
|
73
73
|
],
|
|
@@ -90,29 +90,31 @@ exports.createAsyncOperation = createAsyncOperation;
|
|
|
90
90
|
/**
|
|
91
91
|
* Start an AsyncOperation in ECS and store its associate record to DynamoDB
|
|
92
92
|
*
|
|
93
|
-
* @param
|
|
94
|
-
* @param
|
|
93
|
+
* @param params - params
|
|
94
|
+
* @param params.asyncOperationId - the ID of the async operation
|
|
95
|
+
* @param params.asyncOperationTaskDefinition - the name or ARN of the
|
|
95
96
|
* async-operation ECS task definition
|
|
96
|
-
* @param
|
|
97
|
-
* @param
|
|
98
|
-
* @param
|
|
99
|
-
* @param
|
|
100
|
-
* @param
|
|
101
|
-
* @param
|
|
102
|
-
* @param
|
|
97
|
+
* @param params.cluster - the name of the ECS cluster
|
|
98
|
+
* @param params.description - the ECS task description
|
|
99
|
+
* @param params.knexConfig - Object with Knex configuration keys
|
|
100
|
+
* @param params.callerLambdaName - the name of the Lambda initiating the ECS task
|
|
101
|
+
* @param params.lambdaName - the name of the Lambda task to be run
|
|
102
|
+
* @param params.operationType - the type of async operation to run
|
|
103
|
+
* @param params.payload - the event to be passed to the lambda task.
|
|
103
104
|
* Must be a simple Object or Array which can be converted to JSON.
|
|
104
|
-
* @param
|
|
105
|
-
* @param
|
|
105
|
+
* @param params.stackName - the Cumulus stack name
|
|
106
|
+
* @param params.systemBucket - Cumulus system bucket to use for writing
|
|
106
107
|
* async payload objects
|
|
107
|
-
* @param
|
|
108
|
+
* @param params.useLambdaEnvironmentVariables -
|
|
108
109
|
* useLambdaEnvironmentVariables, set 'true' if async task
|
|
109
110
|
* should import environment variables from the deployed lambda
|
|
110
|
-
* @param
|
|
111
|
+
* @param params.startEcsTaskFunc - used for testing
|
|
112
|
+
* @param params.containerName - the name of the container to run
|
|
111
113
|
* @returns {Promise<Object>} - an AsyncOperation record
|
|
112
114
|
* @memberof AsyncOperation
|
|
113
115
|
*/
|
|
114
116
|
const startAsyncOperation = async (params) => {
|
|
115
|
-
const { description, operationType, payload, systemBucket, stackName, callerLambdaName, knexConfig = process.env, startEcsTaskFunc = exports.startECSTask, } = params;
|
|
117
|
+
const { description, operationType, payload, systemBucket, stackName, callerLambdaName, knexConfig = process.env, startEcsTaskFunc = exports.startECSTask, containerName = 'AsyncOperation', } = params;
|
|
116
118
|
if (!callerLambdaName) {
|
|
117
119
|
throw new MissingRequiredArgument(`callerLambdaName must be specified to start new async operation, received: ${callerLambdaName}`);
|
|
118
120
|
}
|
|
@@ -133,6 +135,7 @@ const startAsyncOperation = async (params) => {
|
|
|
133
135
|
id,
|
|
134
136
|
payloadBucket,
|
|
135
137
|
payloadKey,
|
|
138
|
+
containerName,
|
|
136
139
|
});
|
|
137
140
|
if (runTaskResponse?.failures && runTaskResponse.failures.length > 0) {
|
|
138
141
|
throw new EcsStartTaskError(`Failed to start AsyncOperation: ${runTaskResponse.failures[0].reason}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async_operations.js","sourceRoot":"","sources":["../src/async_operations.ts"],"names":[],"mappings":";;;;;;AACA,0DAAgG;AAChG,2DAA+D;AAE/D,oCAKqB;AACrB,6DAAqC;AAErC,+BAAoC;AAMpC,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAClF,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAI3D,MAAM,sBAAsB,GAAG,KAAK,EACzC,YAAoB,EACY,EAAE,CAAC,IAAA,iBAAM,GAAE,CAAC,IAAI,CAAC,IAAI,+CAA+B,CAAC;IACrF,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAC,CAAC;AAJS,QAAA,sBAAsB,0BAI/B;AAEG,MAAM,6BAA6B,GAAG,CAC3C,aAAoC,EACV,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAC5F,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;CACd,CAAC,CACH,CAAC;AAPW,QAAA,6BAA6B,iCAOxC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,4BAA4B,EAC5B,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,EAAE,EACF,aAAa,EACb,UAAU,EACV,6BAA6B,
|
|
1
|
+
{"version":3,"file":"async_operations.js","sourceRoot":"","sources":["../src/async_operations.ts"],"names":[],"mappings":";;;;;;AACA,0DAAgG;AAChG,2DAA+D;AAE/D,oCAKqB;AACrB,6DAAqC;AAErC,+BAAoC;AAMpC,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAClF,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAI3D,MAAM,sBAAsB,GAAG,KAAK,EACzC,YAAoB,EACY,EAAE,CAAC,IAAA,iBAAM,GAAE,CAAC,IAAI,CAAC,IAAI,+CAA+B,CAAC;IACrF,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAC,CAAC;AAJS,QAAA,sBAAsB,0BAI/B;AAEG,MAAM,6BAA6B,GAAG,CAC3C,aAAoC,EACV,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAC5F,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;CACd,CAAC,CACH,CAAC;AAPW,QAAA,6BAA6B,iCAOxC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,4BAA4B,EAC5B,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,EAAE,EACF,aAAa,EACb,UAAU,EACV,6BAA6B,EAC7B,aAAa,GAAG,gBAAgB,GAWjC,EAA0B,EAAE;IAC3B,MAAM,OAAO,GAAG;QACd,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE;QACvC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;QACzC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,aAAa,IAAI,UAAU,EAAE,EAAE;KACzC,CAAC;IAC9B,IAAI,QAAQ,GAAG,OAAO,CAAC;IAEvB,MAAM,kBAAkB,GAAG,MAAM,IAAA,8BAAsB,EAAC,gBAAgB,CAAC,CAAC;IAE1E,IAAI,6BAA6B,EAAE;QACjC,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAsB,EAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAA,qCAA6B,EAAC,YAAY,CAAC,CAAC;QAC/D,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACvC;IAED,OAAO,IAAA,cAAG,GAAE,CAAC,OAAO,CAAC;QACnB,OAAO;QACP,cAAc,EAAE,4BAA4B;QAC5C,UAAU,EAAE,SAAS;QACrB,oBAAoB,EAAE;YACpB,mBAAmB,EAAE;gBACnB,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE;gBACvD,cAAc,EAAE,UAAU;gBAC1B,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,IAAI,EAAE;aACtE;SACF;QACD,SAAS,EAAE;YACT,kBAAkB,EAAE;gBAClB;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,QAAQ;iBACtB;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAxDW,QAAA,YAAY,gBAwDvB;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,MAMC,EACoC,EAAE;IACvC,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,GAAG,OAAO,CAAC,GAAG,EACxB,qBAAqB,GAAG,IAAI,0BAAqB,EAAE,GACpD,GAAG,MAAM,CAAC;IAEX,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC7D,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAEnE,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAa,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,IAAA,uDAAkD,EAAC,YAAY,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,IAAA,uDAAkD,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAeC,EACoC,EAAE;IACvC,MAAM,EACJ,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,UAAU,GAAG,OAAO,CAAC,GAAG,EACxB,gBAAgB,GAAG,oBAAY,EAC/B,aAAa,GAAG,gBAAgB,GACjC,GAAG,MAAM,CAAC;IAEX,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,uBAAuB,CAAC,8EAA8E,gBAAgB,EAAE,CAAC,CAAC;KACrI;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAA,SAAM,GAAE,CAAC;IAC/C,0BAA0B;IAC1B,MAAM,aAAa,GAAG,YAAY,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,SAAS,6BAA6B,EAAE,OAAO,CAAC;IAEtE,MAAM,IAAA,aAAE,GAAE,CAAC,SAAS,CAAC;QACnB,MAAM,EAAE,aAAa;QACrB,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,eAAe,CAAC;IACpB,IAAI;QACF,eAAe,GAAG,MAAM,gBAAgB,CAAC;YACvC,GAAG,MAAM;YACT,EAAE;YACF,aAAa;YACb,UAAU;YACV,aAAa;SACd,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACpE,MAAM,IAAI,iBAAiB,CACzB,mCAAmC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACxE,CAAC;SACH;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;QACF,MAAM,IAAA,4BAAoB,EACxB;YACE,YAAY,EAAE;gBACZ,EAAE;gBACF,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC9B,WAAW;gBACX,aAAa;gBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB;YACD,SAAS;YACT,YAAY;YACZ,UAAU;SACX,CACF,CAAC;QACF,MAAM,KAAK,CAAC;KACb;IAED,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,IAAA,4BAAoB,EACzB;QACE,YAAY,EAAE;YACZ,EAAE;YACF,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;YAC5C,WAAW;YACX,aAAa;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB;QACD,SAAS;QACT,YAAY;QACZ,UAAU;KACX,CACF,CAAC;AACJ,CAAC,CAAC;AAxGW,QAAA,mBAAmB,uBAwG9B"}
|