@jjrawlins/cdk-ami-builder 0.0.171 → 0.0.172

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.
Files changed (38) hide show
  1. package/.jsii +11 -11
  2. package/cdkamibuilder/go.mod +1 -1
  3. package/cdkamibuilder/jsii/jsii.go +2 -2
  4. package/cdkamibuilder/version +1 -1
  5. package/lib/ImagePipeline/ImagePipeline.js +1 -1
  6. package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
  7. package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
  8. package/node_modules/@aws-sdk/client-ec2/package.json +3 -3
  9. package/node_modules/@aws-sdk/client-ecs/package.json +2 -2
  10. package/node_modules/@aws-sdk/client-kms/package.json +1 -1
  11. package/node_modules/@aws-sdk/client-s3/package.json +4 -4
  12. package/node_modules/@aws-sdk/client-secrets-manager/package.json +2 -2
  13. package/node_modules/@aws-sdk/client-sfn/package.json +1 -1
  14. package/node_modules/@aws-sdk/client-sns/package.json +1 -1
  15. package/node_modules/@aws-sdk/client-sqs/package.json +2 -2
  16. package/node_modules/@aws-sdk/client-ssm/package.json +2 -2
  17. package/node_modules/@smithy/util-waiter/dist-cjs/index.js +1 -1
  18. package/node_modules/@smithy/util-waiter/dist-es/poller.js +1 -1
  19. package/node_modules/@smithy/util-waiter/package.json +1 -1
  20. package/node_modules/fast-xml-builder/README.md +1 -1
  21. package/node_modules/fast-xml-builder/lib/fxb.cjs +1 -0
  22. package/node_modules/fast-xml-builder/lib/fxb.d.cts +6 -1
  23. package/node_modules/fast-xml-builder/lib/fxb.min.js +2 -0
  24. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +1 -0
  25. package/node_modules/fast-xml-builder/package.json +7 -5
  26. package/node_modules/fast-xml-builder/src/fxb.d.ts +8 -2
  27. package/node_modules/fast-xml-builder/src/fxb.js +262 -21
  28. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +161 -18
  29. package/node_modules/path-expression-matcher/LICENSE +21 -0
  30. package/node_modules/path-expression-matcher/README.md +635 -0
  31. package/node_modules/path-expression-matcher/package.json +52 -0
  32. package/node_modules/path-expression-matcher/src/Expression.js +232 -0
  33. package/node_modules/path-expression-matcher/src/Matcher.js +414 -0
  34. package/node_modules/path-expression-matcher/src/index.js +28 -0
  35. package/package.json +11 -11
  36. package/node_modules/fast-xml-builder/lib/builder.cjs +0 -1
  37. package/node_modules/fast-xml-builder/lib/builder.min.js +0 -2
  38. package/node_modules/fast-xml-builder/lib/builder.min.js.map +0 -1
package/.jsii CHANGED
@@ -7,15 +7,15 @@
7
7
  ]
8
8
  },
9
9
  "bundled": {
10
- "@aws-sdk/client-ec2": "^3.1005.0",
11
- "@aws-sdk/client-ecs": "^3.1005.0",
12
- "@aws-sdk/client-kms": "^3.1005.0",
13
- "@aws-sdk/client-s3": "^3.1005.0",
14
- "@aws-sdk/client-secrets-manager": "^3.1005.0",
15
- "@aws-sdk/client-sfn": "^3.1005.0",
16
- "@aws-sdk/client-sns": "^3.1005.0",
17
- "@aws-sdk/client-sqs": "^3.1005.0",
18
- "@aws-sdk/client-ssm": "^3.1005.0",
10
+ "@aws-sdk/client-ec2": "^3.1006.0",
11
+ "@aws-sdk/client-ecs": "^3.1006.0",
12
+ "@aws-sdk/client-kms": "^3.1006.0",
13
+ "@aws-sdk/client-s3": "^3.1006.0",
14
+ "@aws-sdk/client-secrets-manager": "^3.1006.0",
15
+ "@aws-sdk/client-sfn": "^3.1006.0",
16
+ "@aws-sdk/client-sns": "^3.1006.0",
17
+ "@aws-sdk/client-sqs": "^3.1006.0",
18
+ "@aws-sdk/client-ssm": "^3.1006.0",
19
19
  "@types/aws-lambda": "^8.10.161",
20
20
  "@types/crypto-js": "^4.2.2",
21
21
  "@types/js-yaml": "^4.0.9",
@@ -4750,6 +4750,6 @@
4750
4750
  "symbolId": "src/ImagePipeline/ImagePipeline:VolumeProps"
4751
4751
  }
4752
4752
  },
4753
- "version": "0.0.171",
4754
- "fingerprint": "6iKlee2Fqo7xBCB8dig629oUeuFmMAchfMPn23s/C5o="
4753
+ "version": "0.0.172",
4754
+ "fingerprint": "FRdcqtQq5D9oZaq0G9mUhxc8gnoVNOxfZd/ZNc/mzaY="
4755
4755
  }
@@ -6,7 +6,7 @@ require (
6
6
  github.com/aws/jsii-runtime-go v1.127.0
7
7
  github.com/aws/aws-cdk-go/awscdk/v2 v2.85.0
8
8
  github.com/aws/constructs-go/constructs/v10 v10.0.5
9
- github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.268 // indirect
9
+ github.com/cdklabs/awscdk-asset-awscli-go/awscliv1/v2 v2.2.269 // indirect
10
10
  github.com/cdklabs/awscdk-asset-kubectl-go/kubectlv20/v2 v2.1.4 // indirect
11
11
  github.com/cdklabs/awscdk-asset-node-proxy-agent-go/nodeproxyagentv5/v2 v2.0.166 // indirect
12
12
  )
@@ -13,7 +13,7 @@ import (
13
13
  constructs "github.com/aws/constructs-go/constructs/v10/jsii"
14
14
  )
15
15
 
16
- //go:embed jjrawlins-cdk-ami-builder-0.0.170.tgz
16
+ //go:embed jjrawlins-cdk-ami-builder-0.0.171.tgz
17
17
  var tarball []byte
18
18
 
19
19
  // Initialize loads the necessary packages in the @jsii/kernel to support the enclosing module.
@@ -24,5 +24,5 @@ func Initialize() {
24
24
  constructs.Initialize()
25
25
 
26
26
  // Load this library into the kernel
27
- _jsii_.Load("@jjrawlins/cdk-ami-builder", "0.0.170", tarball)
27
+ _jsii_.Load("@jjrawlins/cdk-ami-builder", "0.0.171", tarball)
28
28
  }
@@ -1 +1 @@
1
- 0.0.170
1
+ 0.0.171
@@ -413,5 +413,5 @@ class ImagePipeline extends constructs_1.Construct {
413
413
  }
414
414
  exports.ImagePipeline = ImagePipeline;
415
415
  _a = JSII_RTTI_SYMBOL_1;
416
- ImagePipeline[_a] = { fqn: "@jjrawlins/cdk-ami-builder.ImagePipeline", version: "0.0.171" };
416
+ ImagePipeline[_a] = { fqn: "@jjrawlins/cdk-ami-builder.ImagePipeline", version: "0.0.172" };
417
417
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VQaXBlbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbWFnZVBpcGVsaW5lL0ltYWdlUGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsa0NBQWtDO0FBRWxDLDZDQVVxQjtBQUNyQiwyQ0FBMkM7QUFFM0MsaURBQTJDO0FBQzNDLGlEQUEwQztBQUUxQyxtREFBK0Q7QUFDL0QsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2QyxzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLHNFQUFvRDtBQUNwRCwwSEFBc0g7QUFDdEgsd0dBQW9HO0FBQ3BHLGtEQUErQztBQTZNL0MsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFLMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksb0JBQWlFLENBQUM7UUFDdEUsSUFBSSxXQUF3QyxDQUFDO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGFBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQy9DLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsS0FBSyxFQUFFLGdCQUFnQixT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Q0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sYUFBYSxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQzdEO1lBQ0UsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO2dCQUM1QyxlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWU7Z0JBQzdDLE9BQU8sRUFBRSxLQUFLLENBQUMsa0JBQWtCLElBQUksT0FBTztnQkFDNUMsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGtCQUFrQixFQUFFLEdBQUcsU0FBUyxrQkFBa0Isa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDMUYsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDbEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQ3pFO1lBQ0QsYUFBYSxFQUFFLHNCQUFzQjtTQUN0QyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxXQUFtQjtRQUNyQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7QUE5YUgsc0NBZ2JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQge1xuICBBcm4sXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfaW1hZ2VidWlsZGVyIGFzIGltYWdlYnVpbGRlcixcbiAgYXdzX3NucyBhcyBzbnMsXG4gIGF3c19zbnNfc3Vic2NyaXB0aW9ucyBhcyBzdWJzY3JpcHRpb25zLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIFJlbW92YWxQb2xpY3ksXG4gIFN0YWNrLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBWcGMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IFJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEtleSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICdqcy15YW1sJztcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICcuLi9JYW1Qb2xpY3lCdWlsZGVySGVscGVyJztcbmltcG9ydCB7IENoZWNrU3RhdGVNYWNoaW5lU3RhdHVzRnVuY3Rpb24gfSBmcm9tICcuLi9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLWZ1bmN0aW9uJztcbmltcG9ydCB7IFN0YXJ0U3RhdGVNYWNoaW5lRnVuY3Rpb24gfSBmcm9tICcuLi9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLWZ1bmN0aW9uJztcbmltcG9ydCB7IFN0YXRlTWFjaGluZSB9IGZyb20gJy4uL1N0YXRlTWFjaGluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVic1BhcmFtZXRlcnMge1xuICAvKipcbiAgICAgKiBTaXplIG9mIHRoZSB2b2x1bWUgaW4gR2lCXG4gICAgICovXG4gIHZvbHVtZVNpemU6IG51bWJlcjtcbiAgLyoqXG4gICAgICogVHlwZSBvZiB0aGUgdm9sdW1lXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBncDJcbiAgICAgKi9cbiAgdm9sdW1lVHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAgICogS01TIEtleSBBbGlhcyBmb3IgdGhlIHZvbHVtZVxuICAgICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleSBhbGlhcyB3aWxsIGJlIHVzZWRcbiAgICAgKiBDdXN0b20gS01TIEtleXMgQWxpYXMgbmVlZCB0byBleGlzdCBpbiB0aGUgb3RoZXIgYWNjb3VudHMgZm9yIGRpc3RyaWJ1dGlvbiB0byB3b3JrIGNvcnJlY3RseS5cbiAgICAgKiBAZGVmYXVsdCBhbGlhcy9hd3MvZWJzXG4gICAgICovXG4gIGttc0tleUlkPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB2b2x1bWUgaXMgZW5jcnlwdGVkXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gIGVuY3J5cHRlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHZvbHVtZSBpcyBkZWxldGVkIHdoZW4gdGhlIGluc3RhbmNlIGlzIHRlcm1pbmF0ZWRcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgZGVsZXRlT25UZXJtaW5hdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVm9sdW1lUHJvcHMge1xuICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSB2b2x1bWVcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICAgKiBFQlMgQmxvY2sgU3RvcmUgUGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCwgdGhlICdrbXNLZXlJZCcgb2YgRUJTIHZvbHVtZSBpcyBzZXQgdG8gJ2FtaUVuY3J5cHRpb25LZXkua2V5SWQnLFxuICAgICAqIGFuZCAnZW5jcnlwdGVkJyBpcyBzZXQgdG8gJ3RydWUnLiBJZiB5b3Ugd2lzaCB0byB1c2UgYSBkaWZmZXJlbnQgS01TIEtleSxcbiAgICAgKiB5b3UgbWF5IGRvIHNvLiBIb3dldmVyLCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhlIG5lY2Vzc2FyeSBwZXJtaXNzaW9uc1xuICAgICAqIGFuZCBjb21wbGlhbmNlIHJlcXVpcmVtZW50cyBmb3IgdGhlIEtNUyBLZXkgYXJlIGFscmVhZHkgc2V0IHVwLlxuICAgICAqL1xuICByZWFkb25seSBlYnM6IElFYnNQYXJhbWV0ZXJzO1xufVxuXG4vKipcbiAqIEJ1aWxkIGNvbW1hbmRzIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFjdGlvbkNvbW1hbmRzIHtcbiAgY29tbWFuZHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGVwQ29tbWFuZHMge1xuICBuYW1lOiBzdHJpbmc7IC8vIF5bLV9BLVphLXotMC05XVstX0EtWmEtejAtOSBdezEsMTI2fVstX0EtWmEtei0wLTldJC9cbiAgYWN0aW9uOiAnRXhlY3V0ZUJhc2gnIHwgJ0V4ZWN1dGVQb3dlclNoZWxsJyB8ICdVcGRhdGVPUyc7XG4gIGlucHV0cz86IElBY3Rpb25Db21tYW5kcztcbn1cblxuLyoqXG4gKiBQaGFzZXMgZm9yIHRoZSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGhhc2VzIHtcbiAgbmFtZTogJ2J1aWxkJyB8ICd2YWxpZGF0ZScgfCAndGVzdCc7XG4gIHN0ZXBzOiBJU3RlcENvbW1hbmRzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUlucHV0UGFyYW1ldGVyIHtcbiAgdHlwZTogc3RyaW5nO1xuICBkZWZhdWx0OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElQYXJhbWV0ZXJzID0gUmVjb3JkPHN0cmluZywgSUlucHV0UGFyYW1ldGVyPjtcblxuLyoqXG4gKiBDb21wb25lbnQgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb21wb25lbnREb2N1bWVudCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nO1xuICBwaGFzZXM6IElQaGFzZXNbXTtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgcHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tcG9uZW50UHJvcHMge1xuICBuYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29tcG9uZW50VmVyc2lvbj86IHN0cmluZztcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZztcbiAgcGFyYW1ldGVycz86IElQYXJhbWV0ZXJzO1xuICBwbGF0Zm9ybT86ICdMaW51eCcgfCAnV2luZG93cyc7XG4gIGNvbXBvbmVudERvY3VtZW50OiBJQ29tcG9uZW50RG9jdW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQaXBlbGluZVByb3BzIHtcbiAgcmVhZG9ubHkgc3VibmV0SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvblJlZ2lvbnM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAgICogVnBjIHRvIHVzZSBmb3IgdGhlIEltYWdlIEJ1aWxkZXIgUGlwZWxpbmVcbiAgICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBWcGM7XG4gIC8qKlxuICAgICAqIExpc3Qgb2YgY29tcG9uZW50IHByb3BzXG4gICAgICovXG4gIHJlYWRvbmx5IGNvbXBvbmVudHM6IElDb21wb25lbnRQcm9wc1tdO1xuICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBpbnN0YW5jZSBwcm9maWxlIHRoYXQgd2lsbCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEluc3RhbmNlIENvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGVOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIHBvbGljaWVzIHRvIGFkZCB0byB0aGUgaW5zdGFuY2UgcHJvZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIEluc3RhbmNlIENvbmZpZ3VyYXRpb25zXG4gICAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxQb2xpY2llcz86IGlhbS5NYW5hZ2VkUG9saWN5W107XG5cbiAgLyoqXG4gICAgICogVXNlckRhdGEgc2NyaXB0IHRoYXQgd2lsbCBvdmVycmlkZSBkZWZhdWx0IG9uZSAoaWYgc3BlY2lmaWVkKVxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBub25lXG4gICAgICovXG4gIHJlYWRvbmx5IHVzZXJEYXRhU2NyaXB0Pzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBJbWFnZSByZWNpcGUgdmVyc2lvbiAoRGVmYXVsdDogMC4wLjEpXG4gICAgICovXG4gIHJlYWRvbmx5IGltYWdlUmVjaXBlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgc291cmNlIChwYXJlbnQpIGltYWdlIHRoYXQgdGhlIGltYWdlIHJlY2lwZSB1c2VzIGFzIGl0cyBiYXNlIGVudmlyb25tZW50LiBUaGUgdmFsdWUgY2FuIGJlIHRoZSBwYXJlbnQgaW1hZ2UgQVJOIG9yIGFuIEltYWdlIEJ1aWxkZXIgQU1JIElEXG4gICAgICovXG4gIHJlYWRvbmx5IHBhcmVudEltYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogTGlzdCBvZiBpbnN0YW5jZSB0eXBlcyB1c2VkIGluIHRoZSBJbnN0YW5jZSBDb25maWd1cmF0aW9uIChEZWZhdWx0OiBbICd0My5tZWRpdW0nLCAnbTUubGFyZ2UnLCAnbTUueGxhcmdlJyBdKVxuICAgICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGVzPzogc3RyaW5nW107XG4gIC8qKlxuICAgICAqIFBsYXRmb3JtIHR5cGUgTGludXggb3IgV2luZG93cyAoRGVmYXVsdDogTGludXgpXG4gICAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtPzogJ0xpbnV4JyB8ICdXaW5kb3dzJztcbiAgLyoqXG4gICAgICogRW1haWwgdXNlZCB0byByZWNlaXZlIEltYWdlIEJ1aWxkZXIgUGlwZWxpbmUgTm90aWZpY2F0aW9ucyB2aWEgU05TXG4gICAgICovXG4gIHJlYWRvbmx5IGVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBMaXN0IG9mIHNlY3VyaXR5IGdyb3VwIElEcyBmb3IgdGhlIEluZnJhc3RydWN0dXJlIENvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICAgKiBTdWJuZXQgSUQgZm9yIHRoZSBJbmZyYXN0cnVjdHVyZSBDb25maWd1cmF0aW9uXG4gICAgICovXG4gIHJlYWRvbmx5IGVic1ZvbHVtZUNvbmZpZ3VyYXRpb25zPzogVm9sdW1lUHJvcHNbXTtcbiAgLyoqXG4gICAgICogU2V0IHRvIHRydWUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGNvbnRpbnVvdXMgdnVsbmVyYWJpbGl0eSBzY2FucyB0aHJvdWdoIEFXUyBJbnBlY3RvclxuICAgICAqL1xuICByZWFkb25seSBlbmFibGVWdWxuU2NhbnM/OiBib29sZWFuO1xuICAvKipcbiAgICAgKiBTdG9yZSB2dWxuZXJhYmlsaXR5IHNjYW5zIHRocm91Z2ggQVdTIEluc3BlY3RvciBpbiBFQ1IgdXNpbmcgdGhpcyByZXBvIG5hbWUgKGlmIG9wdGlvbiBpcyBlbmFibGVkKVxuICAgICAqL1xuICByZWFkb25seSB2dWxuU2NhbnNSZXBvTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAgICogU3RvcmUgdnVsbmVyYWJpbGl0eSBzY2FucyB0aHJvdWdoIEFXUyBJbnNwZWN0b3IgaW4gRUNSIHVzaW5nIHRoZXNlIGltYWdlIHRhZ3MgKGlmIG9wdGlvbiBpcyBlbmFibGVkKVxuICAgICAqL1xuICByZWFkb25seSB2dWxuU2NhbnNSZXBvVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgICAqIFRoaXMgdmFyaWFibGUgcmVwcmVzZW50cyBhbiBhcnJheSBvZiBzaGFyZWQgYWNjb3VudCBJRHMuXG4gICAgICogSXQgaXMgb3B0aW9uYWwgYW5kIHJlYWRvbmx5LlxuICAgICAqIElmIGl0IGlzIHByb3ZpZGVkLCB0aGlzIEFNSSB3aWxsIGJlIHZpc2libGUgdG8gdGhlIGFjY291bnRzIGluIHRoZSBhcnJheS5cbiAgICAgKiAgSW4gb3JkZXIgdG8gc2hhcmUgdGhlIEFNSSB3aXRoIG90aGVyIGFjY291bnRzLCB5b3UgbXVzdCBzcGVjaWZ5IGEgS01TIGtleSBJRCBmb3IgdGhlIEVCUyB2b2x1bWUgY29uZmlndXJhdGlvbiBhcyBBV1MgZG9lcyBub3QgYWxsb3cgc2hhcmluZyBBTUlzIGVuY3J5cHRlZCB3aXRoIHRoZSBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleS5cbiAgICAgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uQWNjb3VudElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkZWJ1ZyBpbWFnZSBwaXBlbGluZSBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICAgKiBUaGlzIHZhcmlhYmxlIGlzIG9wdGlvbmFsLiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgICAqICBGdW5jdGlvbmFsbHksIHRoaXMgd2lsbCBmbGFnIHRvIHJldHVybiBhcyBmaW5pc2hlZCBpbW1lZGlhdGVseSBhZnRlciBmaXJzdCBjaGVjayB0byBzZWUgaWYgdGhlIGltYWdlIHBpcGVsaW5lIGhhcyBmaW5pc2hlZC5cbiAgICAgKiAgVGhpcyBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZyB0aGUgaW1hZ2UgcGlwZWxpbmUuICBIb3dldmVyLCB0aGVyZSB3aWxsIGJlIG5vIEFNSSB2YWx1ZSByZXR1cm5lZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqIEByZWFkb25seVxuICAgICAqL1xuICByZWFkb25seSBkZWJ1Z0ltYWdlUGlwZWxpbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgICAqIFRoZSBhbGlhcyBvZiB0aGUgS01TIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9mIGNvbnRlbnQgaW4gdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIG9wdGlvbmFsIGFuZCByZWFkb25seS5cbiAgICAgKiBUaGUgZGVmYXVsdCBlbmNyeXB0aW9uIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGNyb3NzLWFjY291bnQgQU1JIHNoYXJpbmcuXG4gICAgICogSWYgeW91IHNwZWNpZnkgZGlzdHJpYnV0aW9uQWNjb3VudElkcywgeW91IG11c3Qgc3BlY2lmeSBhIG5vbi1kZWZhdWx0IGVuY3J5cHRpb24ga2V5IHVzaW5nIHRoaXMgcHJvcGVydHkuIE90aGVyd2lzZSwgSW1hZ2UgQnVpbGRlciB3aWxsIHRocm93IGFuIGVycm9yLlxuICAgICAqIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBLTVMga2V5IGluIHRoZSBkaXN0cmlidXRpb24gYWNjb3VudCBtdXN0IGFsbG93IHRoZSBFQzJJbWFnZUJ1aWxkZXJEaXN0cmlidXRpb25Dcm9zc0FjY291bnRSb2xlIHJvbGUgdG8gdXNlIHRoZSBrZXkuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKi9cbiAgcmVhZG9ubHkgZGlzdHJpYnV0aW9uS21zS2V5QWxpYXM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZVBpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgaW1hZ2VSZWNpcGVDb21wb25lbnRzOiBpbWFnZWJ1aWxkZXIuQ2ZuSW1hZ2VSZWNpcGUuQ29tcG9uZW50Q29uZmlndXJhdGlvblByb3BlcnR5W107XG4gIGltYWdlUGlwZWxpbmVBcm46IHN0cmluZztcbiAgaW1hZ2VJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbWFnZVBpcGVsaW5lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGxldCBpbmZyYXN0cnVjdHVyZUNvbmZpZzogaW1hZ2VidWlsZGVyLkNmbkluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbjtcbiAgICBsZXQgaW1hZ2VSZWNpcGU6IGltYWdlYnVpbGRlci5DZm5JbWFnZVJlY2lwZTtcbiAgICB0aGlzLmltYWdlUmVjaXBlQ29tcG9uZW50cyA9IFtdO1xuICAgIHRoaXMuaW1hZ2VJZCA9ICcnO1xuICAgIHRoaXMuaW1hZ2VQaXBlbGluZUFybiA9ICcnO1xuICAgIGNvbnN0IGFjY291bnQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IHJlZ2lvbiA9IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbjtcbiAgICBjb25zdCBzdGFja05hbWUgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWU7XG4gICAgY29uc3QgdG9waWNLbXNLZXkgPSBuZXcgS2V5KHRoaXMsICdUb3BpY0ttc0tleScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnS01TIEtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIFNOUyB0b3BpYycsXG4gICAgICBhbGlhczogYC9hbWktYnVpbGRlci8ke3N0YWNrTmFtZX0tVG9waWNLbXNLZXlgLFxuICAgIH0pO1xuICAgIC8vIENvbnN0cnVjdCBjb2RlIGJlbG93XG4gICAgY29uc3QgdG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsICdJbWFnZUJ1aWxkZXJUb3BpYycsIHtcbiAgICAgIGRpc3BsYXlOYW1lOiAnSW1hZ2UgQnVpbGRlciBOb3RpZnknLFxuICAgICAgbWFzdGVyS2V5OiB0b3BpY0ttc0tleSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5lbWFpbCAhPSBudWxsKSB7XG4gICAgICB0b3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IHN1YnNjcmlwdGlvbnMuRW1haWxTdWJzY3JpcHRpb24ocHJvcHMuZW1haWwpKTtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2VjMi5hbWF6b25hd3MuY29tJyksXG4gICAgICBkZXNjcmlwdGlvbjogJ0lBTSByb2xlIHVzZWQgYXMgcGFydCBvZiBhbiBJbWFnZSBCdWlsZGVyIHBpcGVsaW5lJyxcbiAgICB9KTtcblxuICAgIHJvbGUuYWRkTWFuYWdlZFBvbGljeShpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0VDMkluc3RhbmNlUHJvZmlsZUZvckltYWdlQnVpbGRlcicpKTtcbiAgICByb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdFQzJJbnN0YW5jZVByb2ZpbGVGb3JJbWFnZUJ1aWxkZXJFQ1JDb250YWluZXJCdWlsZHMnKSk7XG4gICAgcm9sZS5hZGRNYW5hZ2VkUG9saWN5KGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZScpKTtcbiAgICBpZiAodHlwZW9mIHByb3BzLmFkZGl0aW9uYWxQb2xpY2llcyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvcHMuYWRkaXRpb25hbFBvbGljaWVzLmxlbmd0aCA+PSAxKSB7XG4gICAgICBmb3IgKGNvbnN0IHBvbGljeSBvZiBwcm9wcy5hZGRpdGlvbmFsUG9saWNpZXMpIHtcbiAgICAgICAgcm9sZS5hZGRNYW5hZ2VkUG9saWN5KHBvbGljeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VQcm9maWxlTmFtZSA9IHByb3BzLnByb2ZpbGVOYW1lID8/IGAke3N0YWNrTmFtZX0tSW5zdGFuY2VQcm9maWxlYDtcbiAgICBjb25zdCBpbmZyYUNvbmZpZ05hbWUgPSBgJHtzdGFja05hbWV9LUluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbmA7XG4gICAgY29uc3QgaW1hZ2VSZWNpcGVOYW1lID0gYCR7c3RhY2tOYW1lfS1JbWFnZVJlY2lwZWA7XG4gICAgY29uc3QgaW1hZ2VSZWNpcGVWZXJzaW9uID0gcHJvcHMuaW1hZ2VSZWNpcGVWZXJzaW9uID8/ICcwLjAuMSc7XG4gICAgY29uc3QgcGlwZWxpbmVCYXNlTmFtZSA9IGAke3N0YWNrTmFtZX0tSW1hZ2VQaXBlbGluZWA7XG4gICAgY29uc3QgcGlwZWxpbmVOYW1lID0gYCR7cGlwZWxpbmVCYXNlTmFtZX0tJHtpbWFnZVJlY2lwZVZlcnNpb24ucmVwbGFjZSgvXFwuL2csICctJyl9YDtcblxuICAgIC8vIFVzZSB0aGUgZmlyc3Qgdm9sdW1lIGNvbmZpZ3VyYXRpb24ncyBLTVMga2V5IElEIGFzIHRoZSBlZmZlY3RpdmUgS01TIGtleSBJRFxuICAgIC8vIElmIHRoZSBmaXJzdCB2b2x1bWUgY29uZmlndXJhdGlvbiBkb2VzIG5vdCBoYXZlIGEgS01TIGtleSBJRCwgdXNlIHRoZSBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleVxuICAgIC8vIEtlZXAgaW4gbWluZCB0aG91Z2ggdGhhdCBkZWZhdWx0IEFNSSBlbmNyeXB0aW9uIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGNyb3NzLWFjY291bnQgQU1JIHNoYXJpbmdcbiAgICBjb25zdCBkaXN0cmlidXRpb25LZXlBbGlhcyA9IHByb3BzLmRpc3RyaWJ1dGlvbkttc0tleUFsaWFzID8/ICdhbGlhcy9hd3MvZWJzJztcbiAgICBjb25zdCBlYnNWb2x1bWVFZmZlY3RpdmVLbXNBbGlhcyA9IHByb3BzLmVic1ZvbHVtZUNvbmZpZ3VyYXRpb25zPy5bMF0/LmVicz8ua21zS2V5SWRcbiAgICAgID8gcHJvcHMuZWJzVm9sdW1lQ29uZmlndXJhdGlvbnMhWzBdLmVicy5rbXNLZXlJZFxuICAgICAgOiAocHJvcHMuZGlzdHJpYnV0aW9uS21zS2V5QWxpYXMgPz8gJ2FsaWFzL2F3cy9lYnMnKTtcbiAgICBjb25zdCBkaXN0cmlidXRpb25BY2NvdW50SWRzID0gcHJvcHMuZGlzdHJpYnV0aW9uQWNjb3VudElkcyA/PyBbXTtcbiAgICBjb25zdCBkaXN0cmlidXRpb25SZWdpb25zID0gcHJvcHMuZGlzdHJpYnV0aW9uUmVnaW9ucyA/PyBbXTtcblxuICAgIGlmICgocHJvcHMuZGlzdHJpYnV0aW9uUmVnaW9ucz8ubGVuZ3RoID09PSAwICYmIHByb3BzLmRpc3RyaWJ1dGlvbkFjY291bnRJZHM/Lmxlbmd0aCkgfHxcbiAgICAgIChwcm9wcy5kaXN0cmlidXRpb25SZWdpb25zPy5sZW5ndGggJiYgcHJvcHMuZGlzdHJpYnV0aW9uQWNjb3VudElkcz8ubGVuZ3RoID09PSAwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkaXN0cmlidXRpb25SZWdpb25zIG11c3QgYmUgc3BlY2lmaWVkIGlmIGRpc3RyaWJ1dGlvbkFjY291bnRJZHMgaXMgc3BlY2lmaWVkJyk7XG4gICAgfVxuXG4gICAgaWYgKChwcm9wcy5kaXN0cmlidXRpb25SZWdpb25zPy5sZW5ndGggJiYgcHJvcHMuZGlzdHJpYnV0aW9uQWNjb3VudElkcz8ubGVuZ3RoKSAmJiBwcm9wcy5kaXN0cmlidXRpb25LbXNLZXlBbGlhcyA9PT0gJ2FsaWFzL2F3cy9lYnMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lmIGRpc3RyaWJ1dGlvblJlZ2lvbnMgYW5kIGRpc3RyaWJ1dGlvbkFjY291bnRJZHMgYXJlIHNwZWNpZmllZCwgZGlzdHJpYnV0aW9uS21zS2V5QWxpYXMgbXVzdCBiZSBzcGVjaWZpZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9maWxlID0gbmV3IGlhbS5DZm5JbnN0YW5jZVByb2ZpbGUodGhpcywgJ0luc3RhbmNlUHJvZmlsZScsIHtcbiAgICAgIHJvbGVzOiBbcm9sZS5yb2xlTmFtZV0sXG4gICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdEdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsICdTZWN1cml0eUdyb3VwJywge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnNlY3VyaXR5R3JvdXBzID09IG51bGwgfHwgcHJvcHMuc3VibmV0SWQgPT0gbnVsbCkge1xuICAgICAgaW5mcmFzdHJ1Y3R1cmVDb25maWcgPSBuZXcgaW1hZ2VidWlsZGVyLkNmbkluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbih0aGlzLCAnSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uJywge1xuICAgICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgICAgICBuYW1lOiBpbmZyYUNvbmZpZ05hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSW5mcmFzdHJ1Y3R1cmUgQ29uZmlndXJhdGlvbiBmb3IgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIGluc3RhbmNlVHlwZXM6IHByb3BzLmluc3RhbmNlVHlwZXMgPz8gWyd0My5tZWRpdW0nLCAnbTUubGFyZ2UnLCAnbTUueGxhcmdlJ10sXG4gICAgICAgIHNuc1RvcGljQXJuOiB0b3BpYy50b3BpY0FybixcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogW2RlZmF1bHRHcm91cC5zZWN1cml0eUdyb3VwSWRdLFxuICAgICAgICBzdWJuZXRJZDogcHJvcHMudnBjLnB1YmxpY1N1Ym5ldHNbMF0uc3VibmV0SWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5mcmFzdHJ1Y3R1cmVDb25maWcgPSBuZXcgaW1hZ2VidWlsZGVyLkNmbkluZnJhc3RydWN0dXJlQ29uZmlndXJhdGlvbih0aGlzLCAnSW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uJywge1xuICAgICAgICBpbnN0YW5jZVByb2ZpbGVOYW1lOiBpbnN0YW5jZVByb2ZpbGVOYW1lLFxuICAgICAgICBuYW1lOiBpbmZyYUNvbmZpZ05hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSW5mcmFzdHJ1Y3R1cmUgQ29uZmlndXJhdGlvbiBmb3IgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIGluc3RhbmNlVHlwZXM6IHByb3BzLmluc3RhbmNlVHlwZXMgPz8gWyd0My5tZWRpdW0nLCAnbTUubGFyZ2UnLCAnbTUueGxhcmdlJ10sXG4gICAgICAgIHNuc1RvcGljQXJuOiB0b3BpYy50b3BpY0FybixcbiAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cHMsXG4gICAgICAgIHN1Ym5ldElkOiBwcm9wcy5zdWJuZXRJZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpbmZyYXN0cnVjdHVyZUNvbmZpZy5hZGREZXBlbmRlbmN5KHByb2ZpbGUpO1xuXG4gICAgLyoqXG4gICAgICAgICAqIEltYWdlIHJlY2lwZSBjb25maWd1cmF0aW9uXG4gICAgICAgICAqL1xuICAgIGxldCBpbWFnZVJlY2lwZVByb3BzOiBpbWFnZWJ1aWxkZXIuQ2ZuSW1hZ2VSZWNpcGVQcm9wcztcbiAgICBpbWFnZVJlY2lwZVByb3BzID0ge1xuICAgICAgY29tcG9uZW50czogW10sXG4gICAgICBuYW1lOiBpbWFnZVJlY2lwZU5hbWUsXG4gICAgICBwYXJlbnRJbWFnZTogcHJvcHMucGFyZW50SW1hZ2UsXG4gICAgICB2ZXJzaW9uOiBpbWFnZVJlY2lwZVZlcnNpb24gPz8gJzAuMC4xJyxcbiAgICB9O1xuICAgIGlmIChwcm9wcy51c2VyRGF0YVNjcmlwdCkge1xuICAgICAgaW1hZ2VSZWNpcGVQcm9wcyA9IHtcbiAgICAgICAgLi4uaW1hZ2VSZWNpcGVQcm9wcyxcbiAgICAgICAgYWRkaXRpb25hbEluc3RhbmNlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHVzZXJEYXRhT3ZlcnJpZGU6IHByb3BzLnVzZXJEYXRhU2NyaXB0LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZWJzVm9sdW1lQ29uZmlndXJhdGlvbnM/LlswXS5lYnMpIHtcbiAgICAgIC8vIEdvIG92ZXIgZWFjaCBjb25maWd1cmF0aW9uIGFuZCBzZXQgdGhlIGRlZmF1bHRcbiAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIHByb3BzLmVic1ZvbHVtZUNvbmZpZ3VyYXRpb25zISkge1xuICAgICAgICAvLyBJZiBlbmNyeXB0aW9uIGlzIG5vdCBzZXQsIGVuYWJsZSBpdFxuICAgICAgICBpZiAoY29uZmlnLmVicy5lbmNyeXB0ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbmZpZy5lYnMuZW5jcnlwdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIEtNUyBLZXkgSUQgaXMgbm90IHNldCwgdXNlIHRoZSBkZWZhdWx0XG4gICAgICAgIGlmICghY29uZmlnLmVicy5rbXNLZXlJZCkge1xuICAgICAgICAgIGNvbmZpZy5lYnMua21zS2V5SWQgPSBlYnNWb2x1bWVFZmZlY3RpdmVLbXNBbGlhcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGRlbGV0ZU9uVGVybWluYXRpb24gaXMgbm90IHNldCwgZW5hYmxlIGl0XG4gICAgICAgIGlmICghY29uZmlnLmVicy5kZWxldGVPblRlcm1pbmF0aW9uKSB7XG4gICAgICAgICAgY29uZmlnLmVicy5kZWxldGVPblRlcm1pbmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW1hZ2VSZWNpcGVQcm9wcyA9IHtcbiAgICAgICAgLi4uaW1hZ2VSZWNpcGVQcm9wcyxcbiAgICAgICAgYmxvY2tEZXZpY2VNYXBwaW5nczogcHJvcHMuZWJzVm9sdW1lQ29uZmlndXJhdGlvbnMsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBpbWFnZVJlY2lwZVByb3BzID0ge1xuICAgICAgICAuLi5pbWFnZVJlY2lwZVByb3BzLFxuICAgICAgICBibG9ja0RldmljZU1hcHBpbmdzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGV2aWNlTmFtZTogJy9kZXYvc2RhMScsXG4gICAgICAgICAgICBlYnM6IHtcbiAgICAgICAgICAgICAga21zS2V5SWQ6ICdhbGlhcy9hd3MvZWJzJyxcbiAgICAgICAgICAgICAgZW5jcnlwdGVkOiB0cnVlLFxuICAgICAgICAgICAgICB2b2x1bWVTaXplOiAzMCxcbiAgICAgICAgICAgICAgdm9sdW1lVHlwZTogJ2dwMycsXG4gICAgICAgICAgICAgIGRlbGV0ZU9uVGVybWluYXRpb246IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpbWFnZVJlY2lwZSA9IG5ldyBpbWFnZWJ1aWxkZXIuQ2ZuSW1hZ2VSZWNpcGUodGhpcywgJ0ltYWdlUmVjaXBlJywgaW1hZ2VSZWNpcGVQcm9wcyk7XG5cbiAgICBwcm9wcy5jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogSUNvbXBvbmVudFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnROYW1lID0gY29tcG9uZW50Lm5hbWU/LnJlcGxhY2UoLyAvZywgJy0nKTtcbiAgICAgIGNvbXBvbmVudC5uYW1lID0gY29tcG9uZW50TmFtZTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEhhc2ggPSB0aGlzLnN0cmluZ1RvTUQ1KEpTT04uc3RyaW5naWZ5KGNvbXBvbmVudCkpO1xuICAgICAgY29uc3QgY29tcG9uZW50RG9jdW1lbnRIYXNoID0gdGhpcy5zdHJpbmdUb01ENShKU09OLnN0cmluZ2lmeShjb21wb25lbnQuY29tcG9uZW50RG9jdW1lbnQpKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudERvY3VtZW50OiBJQ29tcG9uZW50RG9jdW1lbnQgPSB7XG4gICAgICAgIG5hbWU6IGNvbXBvbmVudE5hbWUgPz8gYCR7c3RhY2tOYW1lfS0ke2NvbXBvbmVudERvY3VtZW50SGFzaH0tJHtpbmRleH1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogY29tcG9uZW50LmRlc2NyaXB0aW9uLFxuICAgICAgICBzY2hlbWFWZXJzaW9uOiBjb21wb25lbnQuc2NoZW1hVmVyc2lvbiA/PyAnMS4wJyxcbiAgICAgICAgcGhhc2VzOiBjb21wb25lbnQuY29tcG9uZW50RG9jdW1lbnQucGhhc2VzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGRhdGEgPSB5YW1sLmR1bXAoY29tcG9uZW50RG9jdW1lbnQpO1xuICAgICAgbGV0IG5ld0NvbXBvbmVudCA9IG5ldyBpbWFnZWJ1aWxkZXIuQ2ZuQ29tcG9uZW50KHRoaXMsIGNvbXBvbmVudC5uYW1lID8/IGBDb21wb25lbnQtJHtpbmRleH1gLCB7XG4gICAgICAgIG5hbWU6IGNvbXBvbmVudC5uYW1lID8/IGAke3N0YWNrTmFtZS50b0xvd2VyQ2FzZSgpfS0ke2NvbXBvbmVudEhhc2h9LSR7aW5kZXh9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbXBvbmVudC5kZXNjcmlwdGlvbixcbiAgICAgICAgcGxhdGZvcm06IGNvbXBvbmVudC5wbGF0Zm9ybSA/PyAnTGludXgnLFxuICAgICAgICB2ZXJzaW9uOiBjb21wb25lbnQuY29tcG9uZW50VmVyc2lvbiA/PyBwcm9wcy5pbWFnZVJlY2lwZVZlcnNpb24gPz8gJzAuMC4xJyxcbiAgICAgICAgZGF0YTogZGF0YSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBhZGQgdGhlIGNvbXBvbmVudCB0byB0aGUgSW1hZ2UgUmVjaXBlXG4gICAgICB0aGlzLmltYWdlUmVjaXBlQ29tcG9uZW50cy5wdXNoKHsgY29tcG9uZW50QXJuOiBuZXdDb21wb25lbnQuYXR0ckFybiB9KTtcbiAgICAgIGltYWdlUmVjaXBlLmNvbXBvbmVudHMgPSB0aGlzLmltYWdlUmVjaXBlQ29tcG9uZW50cztcbiAgICB9KTtcblxuICAgIGNvbnN0IGltYWdlUmVjaXBlSGFzaCA9IHRoaXMuc3RyaW5nVG9NRDUoSlNPTi5zdHJpbmdpZnkodGhpcy5pbWFnZVJlY2lwZUNvbXBvbmVudHMpKTtcbiAgICBpbWFnZVJlY2lwZS5uYW1lID0gYCR7aW1hZ2VSZWNpcGVOYW1lfS0ke2ltYWdlUmVjaXBlSGFzaH0tJHtpbWFnZVJlY2lwZVZlcnNpb24ucmVwbGFjZSgvXFwuL2csICctJyl9YDtcblxuICAgIGxldCBpbWFnZVBpcGVsaW5lUHJvcHM6IGltYWdlYnVpbGRlci5DZm5JbWFnZVBpcGVsaW5lUHJvcHM7XG4gICAgaW1hZ2VQaXBlbGluZVByb3BzID0ge1xuICAgICAgaW5mcmFzdHJ1Y3R1cmVDb25maWd1cmF0aW9uQXJuOiBpbmZyYXN0cnVjdHVyZUNvbmZpZy5hdHRyQXJuLFxuICAgICAgbmFtZTogcGlwZWxpbmVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246ICdJbWFnZSBwaXBlbGluZScsXG4gICAgICBpbWFnZVJlY2lwZUFybjogaW1hZ2VSZWNpcGUuYXR0ckFybixcbiAgICB9O1xuICAgIGlmIChwcm9wcy5lbmFibGVWdWxuU2NhbnMpIHtcbiAgICAgIGltYWdlUGlwZWxpbmVQcm9wcyA9IHtcbiAgICAgICAgLi4uaW1hZ2VQaXBlbGluZVByb3BzLFxuICAgICAgICBpbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIGltYWdlU2Nhbm5pbmdFbmFibGVkOiBwcm9wcy5lbmFibGVWdWxuU2NhbnMsXG4gICAgICAgICAgZWNyQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHByb3BzLnZ1bG5TY2Fuc1JlcG9OYW1lLFxuICAgICAgICAgICAgY29udGFpbmVyVGFnczogcHJvcHMudnVsblNjYW5zUmVwb1RhZ3MsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChkaXN0cmlidXRpb25BY2NvdW50SWRzLmxlbmd0aCA+IDAgJiYgZGlzdHJpYnV0aW9uUmVnaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkaXN0cmlidXRpb25zTGlzdDogaW1hZ2VidWlsZGVyLkNmbkRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24uRGlzdHJpYnV0aW9uUHJvcGVydHlbXSA9IFtdO1xuICAgICAgZGlzdHJpYnV0aW9uUmVnaW9ucy5mb3JFYWNoKGRpc3RyaWJ1dGlvblJlZ2lvbiA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RyaWJ1dGlvbkNvbmZpZzogYW55ID0ge1xuICAgICAgICAgIHJlZ2lvbjogZGlzdHJpYnV0aW9uUmVnaW9uLFxuICAgICAgICAgIGFtaURpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIC8vQ2FwaXRhbCBjYXNlIGhlcmUgYmVjYXVzZSBpdCdzIGFuIG9iamVjdCBvZiB0eXBlIGFueSwgYnV0IGNhcGl0YWwgY2FzZSBpcyB3aGF0IGlzIGV4cGVjdGVkIGluIENsb3VkRm9ybWF0aW9uXG4gICAgICAgICAgICAvL2h0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWltYWdlYnVpbGRlci1kaXN0cmlidXRpb25jb25maWd1cmF0aW9uLWFtaWRpc3RyaWJ1dGlvbmNvbmZpZ3VyYXRpb24uaHRtbFxuICAgICAgICAgICAgTmFtZTogYCR7aW1hZ2VSZWNpcGVOYW1lfS0ke2Rpc3RyaWJ1dGlvblJlZ2lvbn0te3tpbWFnZWJ1aWxkZXI6YnVpbGREYXRlfX1gLFxuICAgICAgICAgICAgRGVzY3JpcHRpb246IGBjb3B5IEFNSSAke2ltYWdlUmVjaXBlTmFtZX0gdG8gJHtkaXN0cmlidXRpb25SZWdpb259YCxcbiAgICAgICAgICAgIFRhcmdldEFjY291bnRJZHM6IGRpc3RyaWJ1dGlvbkFjY291bnRJZHMsXG4gICAgICAgICAgICBMYXVuY2hQZXJtaXNzaW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICBVc2VySWRzOiBkaXN0cmlidXRpb25BY2NvdW50SWRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEttc0tleUlkOiBkaXN0cmlidXRpb25LZXlBbGlhcywgLy91c2luZyBkZWZhdWx0IEFXUy1tYW5hZ2VkIGtleSBpZiBvbmUgaXNuJ3QgZ2l2ZW4gaXMgcHJvaGliaXRlZFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGRpc3RyaWJ1dGlvbnNMaXN0LnB1c2goZGlzdHJpYnV0aW9uQ29uZmlnKTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgYW1pRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbiA9IG5ldyBpbWFnZWJ1aWxkZXIuQ2ZuRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbih0aGlzLCAnYW1pRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbicsIHtcbiAgICAgICAgbmFtZTogYCR7aW1hZ2VSZWNpcGVOYW1lfS1kaXN0cmlidXRpb24tY29uZmlnLSR7aW1hZ2VSZWNpcGVWZXJzaW9uLnJlcGxhY2UoL1xcLi9nLCAnLScpfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQ3Jvc3MgYWNjb3VudCBkaXN0cmlidXRpb24gc2V0dGluZ3MgZm9yICR7aW1hZ2VSZWNpcGVOYW1lfWAsXG4gICAgICAgIGRpc3RyaWJ1dGlvbnM6IGRpc3RyaWJ1dGlvbnNMaXN0LFxuICAgICAgfSk7XG4gICAgICBpbWFnZVBpcGVsaW5lUHJvcHMgPSB7XG4gICAgICAgIC4uLmltYWdlUGlwZWxpbmVQcm9wcyxcbiAgICAgICAgZGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbkFybjogYW1pRGlzdHJpYnV0aW9uQ29uZmlndXJhdGlvbi5hdHRyQXJuLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZUJ1aWxkUGlwZWxpbmUgPSBuZXcgaW1hZ2VidWlsZGVyLkNmbkltYWdlUGlwZWxpbmUodGhpcywgJ0ltYWdlUGlwZWxpbmUnLCBpbWFnZVBpcGVsaW5lUHJvcHMpO1xuICAgIHRoaXMuaW1hZ2VQaXBlbGluZUFybiA9IGltYWdlQnVpbGRQaXBlbGluZS5hdHRyQXJuO1xuXG4gICAgY29uc3Qgc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbiA9IG5ldyBTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uKHRoaXMsICdTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uJyxcbiAgICAgIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uJyxcbiAgICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDEyKSxcbiAgICAgICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgQWN0aW9ucy5zdGF0ZXMuU3RhcnRFeGVjdXRpb24sXG4gICAgICAgICAgICAgIEFjdGlvbnMuc3RhdGVzLkdldEV4ZWN1dGlvbkhpc3RvcnksXG4gICAgICAgICAgICAgIEFjdGlvbnMuc3RhdGVzLkxpc3RFeGVjdXRpb25zLFxuICAgICAgICAgICAgICBBY3Rpb25zLnN0YXRlcy5EZXNjcmliZUV4ZWN1dGlvbixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuTGlzdEltYWdlUGlwZWxpbmVzLFxuICAgICAgICAgICAgICBBY3Rpb25zLmltYWdlYnVpbGRlci5TdGFydEltYWdlUGlwZWxpbmVFeGVjdXRpb24sXG4gICAgICAgICAgICAgIEFjdGlvbnMuaW1hZ2VidWlsZGVyLkdldEltYWdlLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAna21zOionLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8vIGFybjp7cGFydGl0aW9ufTp7c2VydmljZX06e3JlZ2lvbn06e2FjY291bnR9OntyZXNvdXJjZX17c2VwfXtyZXNvdXJjZS1uYW1lfS9cbiAgICAgICAgICAgIHJlc291cmNlczogW0Fybi5mb3JtYXQoe1xuICAgICAgICAgICAgICBzZXJ2aWNlOiAna21zJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICdhbGlhcy9hd3MvZWJzJyxcbiAgICAgICAgICAgICAgYWNjb3VudDogJyonLFxuICAgICAgICAgICAgICByZWdpb246ICcqJyxcbiAgICAgICAgICAgICAgcGFydGl0aW9uOiAnYXdzJyxcbiAgICAgICAgICAgIH0pXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbkxvZ0dyb3VwID0gbmV3IExvZ0dyb3VwKHRoaXMsICdTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uTG9nR3JvdXAnLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke3N0YWNrTmFtZX0tU3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbmAsXG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX0RBWSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNmblN0YXJ0U3RhdGVNYWNoaW5lRnVuY3Rpb24gPSBzdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uLm5vZGUuZGVmYXVsdENoaWxkIGFzIGxhbWJkYS5DZm5GdW5jdGlvbjtcbiAgICBjZm5TdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ0xvZ2dpbmdDb25maWcnLCB7XG4gICAgICBMb2dHcm91cDogc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbkxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSxcbiAgICAgIExvZ0Zvcm1hdDogJ1RleHQnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbiA9IG5ldyBDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uKHRoaXMsICdDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uJywge1xuICAgICAgZGVzY3JpcHRpb246ICdDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uJyxcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTIpLFxuICAgICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIEFjdGlvbnMuc3RhdGVzLkRlc2NyaWJlRXhlY3V0aW9uLFxuICAgICAgICAgICAgQWN0aW9ucy5zdGF0ZXMuTGlzdEV4ZWN1dGlvbnMsXG4gICAgICAgICAgICBBY3Rpb25zLnN0YXRlcy5HZXRFeGVjdXRpb25IaXN0b3J5LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuTGlzdEltYWdlUGlwZWxpbmVzLFxuICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuU3RhcnRJbWFnZVBpcGVsaW5lRXhlY3V0aW9uLFxuICAgICAgICAgICAgQWN0aW9ucy5pbWFnZWJ1aWxkZXIuR2V0SW1hZ2UsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBBY3Rpb25zLmVjMi5Nb2RpZnlJbWFnZUF0dHJpYnV0ZSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdrbXM6KicsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtBcm4uZm9ybWF0KHtcbiAgICAgICAgICAgIHNlcnZpY2U6ICdrbXMnLFxuICAgICAgICAgICAgcmVzb3VyY2U6ICdhbGlhcy9hd3MvZWJzJyxcbiAgICAgICAgICAgIGFjY291bnQ6ICcqJyxcbiAgICAgICAgICAgIHJlZ2lvbjogJyonLFxuICAgICAgICAgICAgcGFydGl0aW9uOiAnYXdzJyxcbiAgICAgICAgICB9KV0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNoZWNrU3RhdGVNYWNoaW5lRnVuY3Rpb25Mb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCAnQ2hlY2tTdGF0ZU1hY2hpbmVGdW5jdGlvbkxvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHtzdGFja05hbWV9LUNoZWNrU3RhdGVNYWNoaW5lU3RhdHVzRnVuY3Rpb25gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBjb25zdCBjZm5DaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uID0gY2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbi5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb247XG4gICAgY2ZuQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbi5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdMb2dnaW5nQ29uZmlnJywge1xuICAgICAgTG9nR3JvdXA6IGNoZWNrU3RhdGVNYWNoaW5lRnVuY3Rpb25Mb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgICBMb2dGb3JtYXQ6ICdUZXh0JyxcbiAgICB9KTtcblxuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgJ1Jlc291cmNlUHJvdmlkZXInLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogc3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbixcbiAgICAgIGlzQ29tcGxldGVIYW5kbGVyOiBjaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uLFxuICAgICAgdG90YWxUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDYwKSxcbiAgICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGF0ZU1hY2hpbmVSb2xlID0gbmV3IFJvbGUodGhpcywgJ1N0YXRlTWFjaGluZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnc3RhdGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFSb2xlJyksXG4gICAgICBdLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgU3RhdGVNYWNoaW5lUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5QdXRUcmFjZVNlZ21lbnRzLFxuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5QdXRUZWxlbWV0cnlSZWNvcmRzLFxuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5HZXRTYW1wbGluZ1J1bGVzLFxuICAgICAgICAgICAgICAgIEFjdGlvbnMueHJheS5HZXRTYW1wbGluZ1RhcmdldHMsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ2ltYWdlYnVpbGRlcjoqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6aW1hZ2VidWlsZGVyOiR7cmVnaW9uID8/ICcqJ306JHthY2NvdW50ID8/ICcqJ306aW1hZ2UtcGlwZWxpbmUvJHtwaXBlbGluZUJhc2VOYW1lLnRvTG93ZXJDYXNlKCl9LSpgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICBBY3Rpb25zLmltYWdlYnVpbGRlci5HZXRJbWFnZSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBTdGF0ZU1hY2hpbmUodGhpcywgJ1N0YXRlTWFjaGluZScsIHtcbiAgICAgIGRlZmluaXRpb246IEpTT04ucGFyc2UoXG4gICAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oXG4gICAgICAgICAgX19kaXJuYW1lLCAnLi4nLCAnU3RhdGVNYWNoaW5lRmlsZXMnLCAnSW1hZ2VCdWlsZGluZ1N0YXRlTWFjaGluZS5qc29uJyksICd1dGY4JykudG9TdHJpbmcoKSksXG4gICAgICByb2xlOiBzdGF0ZU1hY2hpbmVSb2xlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlUmVtb3ZhbFBvbGljeSA9IHByb3BzLmRlYnVnSW1hZ2VQaXBlbGluZSA9PT0gdHJ1ZSA/IFJlbW92YWxQb2xpY3kuUkVUQUlOIDogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuXG4gICAgY29uc3QgY29tcG9uZW50c0hhc2ggPSB0aGlzLnN0cmluZ1RvTUQ1KEpTT04uc3RyaW5naWZ5KHByb3BzLmNvbXBvbmVudHMpKTtcbiAgICBjb25zdCBpbWFnZVBpcGVsaW5lID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdDdXN0b21SZXNvdXJjZScsXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgSW1hZ2VQaXBlbGluZUFybjogaW1hZ2VCdWlsZFBpcGVsaW5lLmF0dHJBcm4sXG4gICAgICAgICAgU3RhdGVNYWNoaW5lQXJuOiBzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuLFxuICAgICAgICAgIFZlcnNpb246IHByb3BzLmltYWdlUmVjaXBlVmVyc2lvbiA/PyAnMC4wLjEnLFxuICAgICAgICAgIENvbXBvbmVudHNIYXNoOiBjb21wb25lbnRzSGFzaCxcbiAgICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGAke3N0YWNrTmFtZX0tSW1hZ2VQaXBlbGluZS0ke2ltYWdlUmVjaXBlVmVyc2lvbi5yZXBsYWNlKC9cXC4vZywgJy0nKX1gLFxuICAgICAgICAgIEFtaUttc0lkOiBkaXN0cmlidXRpb25LZXlBbGlhcyxcbiAgICAgICAgICBTaGFyZWRBY2NvdW50SWRzOiBkaXN0cmlidXRpb25BY2NvdW50SWRzLmpvaW4oJywnKSxcbiAgICAgICAgICBEZWJ1Z0ltYWdlUGlwZWxpbmU6IHByb3BzLmRlYnVnSW1hZ2VQaXBlbGluZSA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IGVmZmVjdGl2ZVJlbW92YWxQb2xpY3ksXG4gICAgICB9KTtcblxuICAgIHRoaXMuaW1hZ2VJZCA9IGltYWdlUGlwZWxpbmUuZ2V0QXR0U3RyaW5nKCdBbWlJZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpbmdUb01ENShpbnB1dFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ3J5cHRvSlMuTUQ1KGlucHV0U3RyaW5nKS50b1N0cmluZygpO1xuICB9XG5cbn1cblxuIl19
@@ -23,5 +23,5 @@ class CheckStateMachineStatusFunction extends lambda.Function {
23
23
  }
24
24
  exports.CheckStateMachineStatusFunction = CheckStateMachineStatusFunction;
25
25
  _a = JSII_RTTI_SYMBOL_1;
26
- CheckStateMachineStatusFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.CheckStateMachineStatusFunction", version: "0.0.171" };
26
+ CheckStateMachineStatusFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.CheckStateMachineStatusFunction", version: "0.0.172" };
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXMtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTGFtYmRhcy9DaGVja1N0YXRlTWFjaGluZVN0YXR1cy9DaGVja1N0YXRlTWFjaGluZVN0YXR1cy1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZFQUE2RTtBQUM3RSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBU2pEOztHQUVHO0FBQ0gsTUFBYSwrQkFBZ0MsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUNsRSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRDO1FBQ3BGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLHVFQUF1RTtZQUNwRixHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN0RSxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0ZBQWdGLENBQUMsQ0FBQztTQUNwSSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7O0FBVkgsMEVBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIENoZWNrU3RhdGVNYWNoaW5lU3RhdHVzRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1N0YXRlTWFjaGluZVN0YXR1c0Z1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLlxuICovXG5leHBvcnQgY2xhc3MgQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQ2hlY2tTdGF0ZU1hY2hpbmVTdGF0dXNGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjIueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9MYW1iZGFzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzL0NoZWNrU3RhdGVNYWNoaW5lU3RhdHVzLmxhbWJkYScpKSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdBV1NfTk9ERUpTX0NPTk5FQ1RJT05fUkVVU0VfRU5BQkxFRCcsICcxJywgeyByZW1vdmVJbkVkZ2U6IHRydWUgfSk7XG4gIH1cbn0iXX0=
@@ -23,5 +23,5 @@ class StartStateMachineFunction extends lambda.Function {
23
23
  }
24
24
  exports.StartStateMachineFunction = StartStateMachineFunction;
25
25
  _a = JSII_RTTI_SYMBOL_1;
26
- StartStateMachineFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.StartStateMachineFunction", version: "0.0.171" };
26
+ StartStateMachineFunction[_a] = { fqn: "@jjrawlins/cdk-ami-builder.StartStateMachineFunction", version: "0.0.172" };
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhcnRTdGF0ZU1hY2hpbmUtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTGFtYmRhcy9TdGFydFN0YXRlTWFjaGluZS9TdGFydFN0YXRlTWFjaGluZS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZFQUE2RTtBQUM3RSw2QkFBNkI7QUFDN0IsaURBQWlEO0FBU2pEOztHQUVHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxNQUFNLENBQUMsUUFBUTtJQUM1RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNDO1FBQzlFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsV0FBVyxFQUFFLDJEQUEyRDtZQUN4RSxHQUFHLEtBQUs7WUFDUixPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN0RSxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0VBQW9FLENBQUMsQ0FBQztTQUN4SCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7O0FBVkgsOERBV0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcHMgZm9yIFN0YXJ0U3RhdGVNYWNoaW5lRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFydFN0YXRlTWFjaGluZUZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtcbn1cblxuLyoqXG4gKiBBbiBBV1MgTGFtYmRhIGZ1bmN0aW9uIHdoaWNoIGV4ZWN1dGVzIHNyYy9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLlxuICovXG5leHBvcnQgY2xhc3MgU3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvbiBleHRlbmRzIGxhbWJkYS5GdW5jdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogU3RhcnRTdGF0ZU1hY2hpbmVGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ3NyYy9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLmxhbWJkYS50cycsXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJ1bnRpbWU6IG5ldyBsYW1iZGEuUnVudGltZSgnbm9kZWpzMjIueCcsIGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2Fzc2V0cy9MYW1iZGFzL1N0YXJ0U3RhdGVNYWNoaW5lL1N0YXJ0U3RhdGVNYWNoaW5lLmxhbWJkYScpKSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZEVudmlyb25tZW50KCdBV1NfTk9ERUpTX0NPTk5FQ1RJT05fUkVVU0VfRU5BQkxFRCcsICcxJywgeyByZW1vdmVJbkVkZ2U6IHRydWUgfSk7XG4gIH1cbn0iXX0=
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-ec2",
3
3
  "description": "AWS SDK for JavaScript Ec2 Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-ec2",
@@ -62,11 +62,11 @@
62
62
  "@smithy/util-middleware": "^4.2.11",
63
63
  "@smithy/util-retry": "^4.2.11",
64
64
  "@smithy/util-utf8": "^4.2.2",
65
- "@smithy/util-waiter": "^4.2.11",
65
+ "@smithy/util-waiter": "^4.2.12",
66
66
  "tslib": "^2.6.2"
67
67
  },
68
68
  "devDependencies": {
69
- "@smithy/snapshot-testing": "^1.0.10",
69
+ "@smithy/snapshot-testing": "^2.0.0",
70
70
  "@tsconfig/node20": "20.1.8",
71
71
  "@types/node": "^20.14.8",
72
72
  "concurrently": "7.0.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-ecs",
3
3
  "description": "AWS SDK for JavaScript Ecs Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-ecs",
@@ -59,7 +59,7 @@
59
59
  "@smithy/util-middleware": "^4.2.11",
60
60
  "@smithy/util-retry": "^4.2.11",
61
61
  "@smithy/util-utf8": "^4.2.2",
62
- "@smithy/util-waiter": "^4.2.11",
62
+ "@smithy/util-waiter": "^4.2.12",
63
63
  "tslib": "^2.6.2"
64
64
  },
65
65
  "devDependencies": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-kms",
3
3
  "description": "AWS SDK for JavaScript Kms Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-kms",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-s3",
3
3
  "description": "AWS SDK for JavaScript S3 Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-s3",
@@ -80,12 +80,12 @@
80
80
  "@smithy/util-retry": "^4.2.11",
81
81
  "@smithy/util-stream": "^4.5.17",
82
82
  "@smithy/util-utf8": "^4.2.2",
83
- "@smithy/util-waiter": "^4.2.11",
83
+ "@smithy/util-waiter": "^4.2.12",
84
84
  "tslib": "^2.6.2"
85
85
  },
86
86
  "devDependencies": {
87
- "@aws-sdk/signature-v4-crt": "3.1005.0",
88
- "@smithy/snapshot-testing": "^1.0.10",
87
+ "@aws-sdk/signature-v4-crt": "3.1006.0",
88
+ "@smithy/snapshot-testing": "^2.0.0",
89
89
  "@tsconfig/node20": "20.1.8",
90
90
  "@types/node": "^20.14.8",
91
91
  "concurrently": "7.0.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-secrets-manager",
3
3
  "description": "AWS SDK for JavaScript Secrets Manager Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-secrets-manager",
@@ -64,7 +64,7 @@
64
64
  "tslib": "^2.6.2"
65
65
  },
66
66
  "devDependencies": {
67
- "@smithy/snapshot-testing": "^1.0.10",
67
+ "@smithy/snapshot-testing": "^2.0.0",
68
68
  "@tsconfig/node20": "20.1.8",
69
69
  "@types/node": "^20.14.8",
70
70
  "concurrently": "7.0.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-sfn",
3
3
  "description": "AWS SDK for JavaScript Sfn Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-sfn",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-sns",
3
3
  "description": "AWS SDK for JavaScript Sns Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-sns",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-sqs",
3
3
  "description": "AWS SDK for JavaScript Sqs Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-sqs",
@@ -70,7 +70,7 @@
70
70
  "tslib": "^2.6.2"
71
71
  },
72
72
  "devDependencies": {
73
- "@smithy/snapshot-testing": "^1.0.10",
73
+ "@smithy/snapshot-testing": "^2.0.0",
74
74
  "@tsconfig/node20": "20.1.8",
75
75
  "@types/node": "^20.14.8",
76
76
  "concurrently": "7.0.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aws-sdk/client-ssm",
3
3
  "description": "AWS SDK for JavaScript Ssm Client for Node.js, Browser and React Native",
4
- "version": "3.1005.0",
4
+ "version": "3.1006.0",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es' && yarn build:cjs",
7
7
  "build:cjs": "node ../../scripts/compilation/inline client-ssm",
@@ -59,7 +59,7 @@
59
59
  "@smithy/util-middleware": "^4.2.11",
60
60
  "@smithy/util-retry": "^4.2.11",
61
61
  "@smithy/util-utf8": "^4.2.2",
62
- "@smithy/util-waiter": "^4.2.11",
62
+ "@smithy/util-waiter": "^4.2.12",
63
63
  "tslib": "^2.6.2"
64
64
  },
65
65
  "devDependencies": {
@@ -103,7 +103,7 @@ const createMessageFromResponse = (reason) => {
103
103
  }
104
104
  if (reason?.$metadata?.httpStatusCode) {
105
105
  if (reason.$response || reason.message) {
106
- return `${reason.$response.statusCode ?? reason.$metadata.httpStatusCode ?? "Unknown"}: ${reason.message}`;
106
+ return `${reason.$response?.statusCode ?? reason.$metadata.httpStatusCode ?? "Unknown"}: ${reason.message}`;
107
107
  }
108
108
  return `${reason.$metadata.httpStatusCode}: OK`;
109
109
  }
@@ -52,7 +52,7 @@ const createMessageFromResponse = (reason) => {
52
52
  }
53
53
  if (reason?.$metadata?.httpStatusCode) {
54
54
  if (reason.$response || reason.message) {
55
- return `${reason.$response.statusCode ?? reason.$metadata.httpStatusCode ?? "Unknown"}: ${reason.message}`;
55
+ return `${reason.$response?.statusCode ?? reason.$metadata.httpStatusCode ?? "Unknown"}: ${reason.message}`;
56
56
  }
57
57
  return `${reason.$metadata.httpStatusCode}: OK`;
58
58
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-waiter",
3
- "version": "4.2.11",
3
+ "version": "4.2.12",
4
4
  "description": "Shared utilities for client waiters for the AWS SDK",
5
5
  "dependencies": {
6
6
  "@smithy/abort-controller": "^4.2.11",
@@ -13,7 +13,7 @@ npm install fast-xml-builder
13
13
  ## Usage
14
14
 
15
15
  ```javascript
16
- import { XMLBuilder } from 'fast-xml-builder';
16
+ import XMLBuilder from 'fast-xml-builder';
17
17
 
18
18
  const builder = new XMLBuilder();
19
19
  const xml = builder.build({ name: 'value' });
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>f});class i{constructor(t,e={}){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>"deep-wildcard"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,s="";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(s.trim()&&(e.push(this._parseSegment(s.trim())),s=""),e.push({type:"deep-wildcard"}),i+=2):(s.trim()&&e.push(this._parseSegment(s.trim())),s="",i++):(s+=t[i],i++);return s.trim()&&e.push(this._parseSegment(s.trim())),e}_parseSegment(t){const e={type:"tag"};let i=null,s=t;const n=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(n&&(s=n[1]+n[3],n[2])){const t=n[2].slice(1,-1);t&&(i=t)}let o,r,a=s;if(s.includes("::")){const e=s.indexOf("::");if(o=s.substring(0,e).trim(),a=s.substring(e+2).trim(),!o)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();["first","last","odd","even"].includes(i)||/^nth\(\d+\)$/.test(i)?(r=e,h=i):r=a}else r=a;if(!r)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=r,o&&(e.namespace=o),i)if(i.includes("=")){const t=i.indexOf("=");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class s{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[]}push(t,e=null,i=null){this.path.length>0&&(this.path[this.path.length-1].values=void 0);const s=this.path.length;this.siblingStacks[s]||(this.siblingStacks[s]=new Map);const n=this.siblingStacks[s],o=i?`${i}:${t}`:t,r=n.get(o)||0;let a=0;for(const t of n.values())a+=t;n.set(o,r+1);const h={tag:t,position:a,counter:r};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++){const i=t[e],s=this.path[e],n=e===this.path.length-1;if(!this._matchSegment(i,s,n))return!1}return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const s=t[i];if("deep-wildcard"===s.type){if(i--,i<0)return!0;const s=t[i];let n=!1;for(let t=e;t>=0;t--){const o=t===this.path.length-1;if(this._matchSegment(s,this.path[t],o)){e=t-1,i--,n=!0;break}}if(!n)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(s,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if("*"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&"*"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const s=e.counter??0;if("first"===t.position&&0!==s)return!1;if("odd"===t.position&&s%2!=1)return!1;if("even"===t.position&&s%2!=0)return!1;if("nth"===t.position&&s!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}}function n(t,e){let n="";e.format&&e.indentBy.length>0&&(n="\n");const r=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;t<e.stopNodes.length;t++){const s=e.stopNodes[t];"string"==typeof s?r.push(new i(s)):s instanceof i&&r.push(s)}return o(t,e,n,new s,r)}function o(t,e,i,s,n){let h="",d=!1;if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=c(i,e),i}return""}for(let f=0;f<t.length;f++){const g=t[f],m=p(g);if(void 0===m)continue;const b=r(g[":@"],e);s.push(m,b);const N=l(s,n);if(m===e.textNodeName){let t=g[m];N||(t=e.tagValueProcessor(m,t),t=c(t,e)),d&&(h+=i),h+=t,d=!1,s.pop();continue}if(m===e.cdataPropName){d&&(h+=i),h+=`<![CDATA[${g[m][0][e.textNodeName]}]]>`,d=!1,s.pop();continue}if(m===e.commentPropName){h+=i+`\x3c!--${g[m][0][e.textNodeName]}--\x3e`,d=!0,s.pop();continue}if("?"===m[0]){const t=u(g[":@"],e,N),n="?xml"===m?"":i;let o=g[m][0][e.textNodeName];o=0!==o.length?" "+o:"",h+=n+`<${m}${o}${t}?>`,d=!0,s.pop();continue}let y=i;""!==y&&(y+=e.indentBy);const x=i+`<${m}${u(g[":@"],e,N)}`;let P;P=N?a(g[m],e):o(g[m],e,y,s,n),-1!==e.unpairedTags.indexOf(m)?e.suppressUnpairedNode?h+=x+">":h+=x+"/>":P&&0!==P.length||!e.suppressEmptyNode?P&&P.endsWith(">")?h+=x+`>${P}${i}</${m}>`:(h+=x+">",P&&""!==i&&(P.includes("/>")||P.includes("</"))?h+=i+e.indentBy+P+i:h+=P,h+=`</${m}>`):h+=x+"/>",d=!0,s.pop()}return h}function r(t,e){if(!t||e.ignoreAttributes)return null;const i={};let s=!1;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n.startsWith(e.attributeNamePrefix)?n.substr(e.attributeNamePrefix.length):n]=t[n],s=!0);return s?i:null}function a(t,e){if(!Array.isArray(t))return null!=t?t.toString():"";let i="";for(let s=0;s<t.length;s++){const n=t[s],o=p(n);if(o===e.textNodeName)i+=n[o];else if(o===e.cdataPropName)i+=n[o][0][e.textNodeName];else if(o===e.commentPropName)i+=n[o][0][e.textNodeName];else{if(o&&"?"===o[0])continue;if(o){const t=h(n[":@"],e),s=a(n[o],e);s&&0!==s.length?i+=`<${o}${t}>${s}</${o}>`:i+=`<${o}${t}/>`}}}return i}function h(t,e){let i="";if(t&&!e.ignoreAttributes)for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let n=t[s];!0===n&&e.suppressBooleanAttributes?i+=` ${s.substr(e.attributeNamePrefix.length)}`:i+=` ${s.substr(e.attributeNamePrefix.length)}="${n}"`}return i}function p(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const s=e[i];if(Object.prototype.hasOwnProperty.call(t,s)&&":@"!==s)return s}}function u(t,e,i){let s="";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let o;i?o=t[n]:(o=e.attributeValueProcessor(n,t[n]),o=c(o,e)),!0===o&&e.suppressBooleanAttributes?s+=` ${n.substr(e.attributeNamePrefix.length)}`:s+=` ${n.substr(e.attributeNamePrefix.length)}="${o}"`}return s}function l(t,e){if(!e||0===e.length)return!1;for(let i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function c(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const s=e.entities[i];t=t.replace(s.regex,s.val)}return t}const d={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1,jPath:!0};function f(t){if(this.options=Object.assign({},d,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>"string"==typeof t&&t.startsWith("*.")?".."+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];"string"==typeof e?this.stopNodeExpressions.push(new i(e)):e instanceof i&&this.stopNodeExpressions.push(e)}var e;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if("string"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=b),this.processTextOrObjNode=g,this.options.format?(this.indentate=m,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function g(t,e,i,s){const n=this.extractAttributes(t);if(s.push(e,n),this.checkStopNode(s)){const n=this.buildRawContent(t),o=this.buildAttributesForStopNode(t);return s.pop(),this.buildObjectNode(n,e,o,i)}const o=this.j2x(t,i+1,s);return s.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,i,s):this.buildObjectNode(o.val,e,o.attrStr,i)}function m(t){return this.options.indentBy.repeat(t)}function b(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}f.prototype.build=function(t){if(this.options.preserveOrder)return n(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new s;return this.j2x(t,0,e).val}},f.prototype.j2x=function(t,e,i){let s="",n="";const o=this.options.jPath?i.toString():i,r=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(n+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?n+="":"?"===a[0]?n+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)n+=this.buildTextValNode(t[a],a,"",e,i);else if("object"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,o))s+=this.buildAttrPairStr(h,""+t[a],r);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);n+=this.replaceEntitiesValue(e)}else{i.push(a);const s=this.checkStopNode(i);if(i.pop(),s){const i=""+t[a];n+=""===i?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+i+"</"+a+this.tagEndChar}else n+=this.buildTextValNode(t[a],a,"",e,i)}}else if(Array.isArray(t[a])){const s=t[a].length;let o="",r="";for(let h=0;h<s;h++){const s=t[a][h];if(void 0===s);else if(null===s)"?"===a[0]?n+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof s)if(this.options.oneListGroup){i.push(a);const t=this.j2x(s,e+1,i);i.pop(),o+=t.val,this.options.attributesGroupName&&s.hasOwnProperty(this.options.attributesGroupName)&&(r+=t.attrStr)}else o+=this.processTextOrObjNode(s,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,s);t=this.replaceEntitiesValue(t),o+=t}else{i.push(a);const t=this.checkStopNode(i);if(i.pop(),t){const t=""+s;o+=""===t?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+t+"</"+a+this.tagEndChar}else o+=this.buildTextValNode(s,a,"",e,i)}}this.options.oneListGroup&&(o=this.buildObjectNode(o,a,r,e)),n+=o}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let n=0;n<i;n++)s+=this.buildAttrPairStr(e[n],""+t[a][e[n]],r)}else n+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:s,val:n}},f.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},f.prototype.extractAttributes=function(t){if(!t||"object"!=typeof t)return null;const e={};let i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const s=t[this.options.attributesGroupName];for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t]=s[t],i=!0)}else for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const n=this.isAttribute(s);n&&(e[n]=t[s],i=!0)}return i?e:null},f.prototype.buildRawContent=function(t){if("string"==typeof t)return t;if("object"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];let e="";for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(this.isAttribute(i))continue;if(this.options.attributesGroupName&&i===this.options.attributesGroupName)continue;const s=t[i];if(i===this.options.textNodeName)e+=s;else if(Array.isArray(s)){for(let t of s)if("string"==typeof t||"number"==typeof t)e+=`<${i}>${t}</${i}>`;else if("object"==typeof t&&null!==t){const s=this.buildRawContent(t),n=this.buildAttributesForStopNode(t);e+=""===s?`<${i}${n}/>`:`<${i}${n}>${s}</${i}>`}}else if("object"==typeof s&&null!==s){const t=this.buildRawContent(s),n=this.buildAttributesForStopNode(s);e+=""===t?`<${i}${n}/>`:`<${i}${n}>${t}</${i}>`}else e+=`<${i}>${s}</${i}>`}return e},f.prototype.buildAttributesForStopNode=function(t){if(!t||"object"!=typeof t)return"";let e="";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const s=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,n=i[t];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const s=this.isAttribute(i);if(s){const n=t[i];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}return e},f.prototype.buildObjectNode=function(t,e,i,s){if(""===t)return"?"===e[0]?this.indentate(s)+"<"+e+i+"?"+this.tagEndChar:this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let n="</"+e+this.tagEndChar,o="";return"?"===e[0]&&(o="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===o.length?this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(s)+"<"+e+i+o+this.tagEndChar+t+this.indentate(s)+n:this.indentate(s)+"<"+e+i+o+">"+t+n}},f.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},f.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},f.prototype.buildTextValNode=function(t,e,i,s,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(s)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(s)+"<"+e+i+">"+n+"</"+e+this.tagEndChar}},f.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},module.exports=e})();
@@ -1,3 +1,4 @@
1
+ const { Expression } = require('path-expression-matcher');
1
2
 
2
3
 
3
4
  type XmlBuilderOptions = {
@@ -111,9 +112,13 @@ type XmlBuilderOptions = {
111
112
  /**
112
113
  * Nodes to stop parsing at
113
114
  *
115
+ * Accepts string patterns or Expression objects from path-expression-matcher
116
+ *
117
+ * String patterns starting with "*." are automatically converted to ".." for backward compatibility
118
+ *
114
119
  * Defaults to `[]`
115
120
  */
116
- stopNodes?: string[];
121
+ stopNodes?: (string | Expression)[];
117
122
 
118
123
  /**
119
124
  * Control how tag value should be parsed. Called only if tag value is not empty
@@ -0,0 +1,2 @@
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fxb=e():t.fxb=e()}(this,()=>(()=>{"use strict";var t={d:(e,i)=>{for(var r in i)t.o(i,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:i[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>b});class i{constructor(t,e={}){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>"deep-wildcard"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,r="";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(r.trim()&&(e.push(this._parseSegment(r.trim())),r=""),e.push({type:"deep-wildcard"}),i+=2):(r.trim()&&e.push(this._parseSegment(r.trim())),r="",i++):(r+=t[i],i++);return r.trim()&&e.push(this._parseSegment(r.trim())),e}_parseSegment(t){const e={type:"tag"};let i=null,r=t;const s=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(s&&(r=s[1]+s[3],s[2])){const t=s[2].slice(1,-1);t&&(i=t)}let n,o,a=r;if(r.includes("::")){const e=r.indexOf("::");if(n=r.substring(0,e).trim(),a=r.substring(e+2).trim(),!n)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();["first","last","odd","even"].includes(i)||/^nth\(\d+\)$/.test(i)?(o=e,h=i):o=a}else o=a;if(!o)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=o,n&&(e.namespace=n),i)if(i.includes("=")){const t=i.indexOf("=");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class r{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[]}push(t,e=null,i=null){this.path.length>0&&(this.path[this.path.length-1].values=void 0);const r=this.path.length;this.siblingStacks[r]||(this.siblingStacks[r]=new Map);const s=this.siblingStacks[r],n=i?`${i}:${t}`:t,o=s.get(n)||0;let a=0;for(const t of s.values())a+=t;s.set(n,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++){const i=t[e],r=this.path[e],s=e===this.path.length-1;if(!this._matchSegment(i,r,s))return!1}return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const r=t[i];if("deep-wildcard"===r.type){if(i--,i<0)return!0;const r=t[i];let s=!1;for(let t=e;t>=0;t--){const n=t===this.path.length-1;if(this._matchSegment(r,this.path[t],n)){e=t-1,i--,s=!0;break}}if(!s)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(r,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if("*"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&"*"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const r=e.counter??0;if("first"===t.position&&0!==r)return!1;if("odd"===t.position&&r%2!=1)return!1;if("even"===t.position&&r%2!=0)return!1;if("nth"===t.position&&r!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}}function s(t,e){var s="";e.format&&e.indentBy.length>0&&(s="\n");var o=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(var a=0;a<e.stopNodes.length;a++){var h=e.stopNodes[a];"string"==typeof h?o.push(new i(h)):h instanceof i&&o.push(h)}return n(t,e,s,new r,o)}function n(t,e,i,r,s){var h="",f=!1;if(!Array.isArray(t)){if(null!=t){var d=t.toString();return c(d,e)}return""}for(var g=0;g<t.length;g++){var m=t[g],b=p(m);if(void 0!==b){var v=o(m[":@"],e);r.push(b,v);var N=l(r,s);if(b!==e.textNodeName)if(b!==e.cdataPropName)if(b!==e.commentPropName)if("?"!==b[0]){var y=i;""!==y&&(y+=e.indentBy);var x=i+"<"+b+u(m[":@"],e,N),A=void 0;A=N?a(m[b],e):n(m[b],e,y,r,s),-1!==e.unpairedTags.indexOf(b)?e.suppressUnpairedNode?h+=x+">":h+=x+"/>":A&&0!==A.length||!e.suppressEmptyNode?A&&A.endsWith(">")?h+=x+">"+A+i+"</"+b+">":(h+=x+">",A&&""!==i&&(A.includes("/>")||A.includes("</"))?h+=i+e.indentBy+A+i:h+=A,h+="</"+b+">"):h+=x+"/>",f=!0,r.pop()}else{var S=u(m[":@"],e,N),P="?xml"===b?"":i,O=m[b][0][e.textNodeName];h+=P+"<"+b+(O=0!==O.length?" "+O:"")+S+"?>",f=!0,r.pop()}else h+=i+"\x3c!--"+m[b][0][e.textNodeName]+"--\x3e",f=!0,r.pop();else f&&(h+=i),h+="<![CDATA["+m[b][0][e.textNodeName]+"]]>",f=!1,r.pop();else{var j=m[b];N||(j=c(j=e.tagValueProcessor(b,j),e)),f&&(h+=i),h+=j,f=!1,r.pop()}}}return h}function o(t,e){if(!t||e.ignoreAttributes)return null;var i={},r=!1;for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s.startsWith(e.attributeNamePrefix)?s.substr(e.attributeNamePrefix.length):s]=t[s],r=!0);return r?i:null}function a(t,e){if(!Array.isArray(t))return null!=t?t.toString():"";for(var i="",r=0;r<t.length;r++){var s=t[r],n=p(s);if(n===e.textNodeName)i+=s[n];else if(n===e.cdataPropName)i+=s[n][0][e.textNodeName];else if(n===e.commentPropName)i+=s[n][0][e.textNodeName];else{if(n&&"?"===n[0])continue;if(n){var o=h(s[":@"],e),u=a(s[n],e);u&&0!==u.length?i+="<"+n+o+">"+u+"</"+n+">":i+="<"+n+o+"/>"}}}return i}function h(t,e){var i="";if(t&&!e.ignoreAttributes)for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var s=t[r];!0===s&&e.suppressBooleanAttributes?i+=" "+r.substr(e.attributeNamePrefix.length):i+=" "+r.substr(e.attributeNamePrefix.length)+'="'+s+'"'}return i}function p(t){for(var e=Object.keys(t),i=0;i<e.length;i++){var r=e[i];if(Object.prototype.hasOwnProperty.call(t,r)&&":@"!==r)return r}}function u(t,e,i){var r="";if(t&&!e.ignoreAttributes)for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s)){var n=void 0;!0===(n=i?t[s]:c(n=e.attributeValueProcessor(s,t[s]),e))&&e.suppressBooleanAttributes?r+=" "+s.substr(e.attributeNamePrefix.length):r+=" "+s.substr(e.attributeNamePrefix.length)+'="'+n+'"'}return r}function l(t,e){if(!e||0===e.length)return!1;for(var i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function c(t,e){if(t&&t.length>0&&e.processEntities)for(var i=0;i<e.entities.length;i++){var r=e.entities[i];t=t.replace(r.regex,r.val)}return t}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,r=Array(e);i<e;i++)r[i]=t[i];return r}function d(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(i)return(i=i.call(t)).next.bind(i);if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return g(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?g(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,r=Array(e);i<e;i++)r[i]=t[i];return r}var m={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1,jPath:!0};function b(t){if(this.options=Object.assign({},m,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(function(t){return"string"==typeof t&&t.startsWith("*.")?".."+t.substring(2):t})),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(var e=0;e<this.options.stopNodes.length;e++){var r=this.options.stopNodes[e];"string"==typeof r?this.stopNodeExpressions.push(new i(r)):r instanceof i&&this.stopNodeExpressions.push(r)}var s;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(s=this.options.ignoreAttributes)?s:Array.isArray(s)?function(t){for(var e,i=function(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(i)return(i=i.call(t)).next.bind(i);if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return f(t,e);var i={}.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?f(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(s);!(e=i()).done;){var r=e.value;if("string"==typeof r&&t===r)return!0;if(r instanceof RegExp&&r.test(t))return!0}}:function(){return!1},this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=y),this.processTextOrObjNode=v,this.options.format?(this.indentate=N,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function v(t,e,i,r){var s=this.extractAttributes(t);if(r.push(e,s),this.checkStopNode(r)){var n=this.buildRawContent(t),o=this.buildAttributesForStopNode(t);return r.pop(),this.buildObjectNode(n,e,o,i)}var a=this.j2x(t,i+1,r);return r.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,a.attrStr,i,r):this.buildObjectNode(a.val,e,a.attrStr,i)}function N(t){return this.options.indentBy.repeat(t)}function y(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}return b.prototype.build=function(t){if(this.options.preserveOrder)return s(t,this.options);var e;Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&((e={})[this.options.arrayNodeName]=t,t=e);var i=new r;return this.j2x(t,0,i).val},b.prototype.j2x=function(t,e,i){var r="",s="",n=this.options.jPath?i.toString():i,o=this.checkStopNode(i);for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(s+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?s+="":"?"===a[0]?s+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)s+=this.buildTextValNode(t[a],a,"",e,i);else if("object"!=typeof t[a]){var h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,n))r+=this.buildAttrPairStr(h,""+t[a],o);else if(!h)if(a===this.options.textNodeName){var p=this.options.tagValueProcessor(a,""+t[a]);s+=this.replaceEntitiesValue(p)}else{i.push(a);var u=this.checkStopNode(i);if(i.pop(),u){var l=""+t[a];s+=""===l?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+l+"</"+a+this.tagEndChar}else s+=this.buildTextValNode(t[a],a,"",e,i)}}else if(Array.isArray(t[a])){for(var c=t[a].length,f="",d="",g=0;g<c;g++){var m=t[a][g];if(void 0===m);else if(null===m)"?"===a[0]?s+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:s+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof m)if(this.options.oneListGroup){i.push(a);var b=this.j2x(m,e+1,i);i.pop(),f+=b.val,this.options.attributesGroupName&&m.hasOwnProperty(this.options.attributesGroupName)&&(d+=b.attrStr)}else f+=this.processTextOrObjNode(m,a,e,i);else if(this.options.oneListGroup){var v=this.options.tagValueProcessor(a,m);f+=v=this.replaceEntitiesValue(v)}else{i.push(a);var N=this.checkStopNode(i);if(i.pop(),N){var y=""+m;f+=""===y?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+y+"</"+a+this.tagEndChar}else f+=this.buildTextValNode(m,a,"",e,i)}}this.options.oneListGroup&&(f=this.buildObjectNode(f,a,d,e)),s+=f}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName)for(var x=Object.keys(t[a]),A=x.length,S=0;S<A;S++)r+=this.buildAttrPairStr(x[S],""+t[a][x[S]],o);else s+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:r,val:s}},b.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},b.prototype.extractAttributes=function(t){if(!t||"object"!=typeof t)return null;var e={},i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){var r=t[this.options.attributesGroupName];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s.startsWith(this.options.attributeNamePrefix)?s.substring(this.options.attributeNamePrefix.length):s]=r[s],i=!0)}else for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var o=this.isAttribute(n);o&&(e[o]=t[n],i=!0)}return i?e:null},b.prototype.buildRawContent=function(t){if("string"==typeof t)return t;if("object"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];var e="";for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&!(this.isAttribute(i)||this.options.attributesGroupName&&i===this.options.attributesGroupName)){var r=t[i];if(i===this.options.textNodeName)e+=r;else if(Array.isArray(r))for(var s,n=d(r);!(s=n()).done;){var o=s.value;if("string"==typeof o||"number"==typeof o)e+="<"+i+">"+o+"</"+i+">";else if("object"==typeof o&&null!==o){var a=this.buildRawContent(o),h=this.buildAttributesForStopNode(o);e+=""===a?"<"+i+h+"/>":"<"+i+h+">"+a+"</"+i+">"}}else if("object"==typeof r&&null!==r){var p=this.buildRawContent(r),u=this.buildAttributesForStopNode(r);e+=""===p?"<"+i+u+"/>":"<"+i+u+">"+p+"</"+i+">"}else e+="<"+i+">"+r+"</"+i+">"}return e},b.prototype.buildAttributesForStopNode=function(t){if(!t||"object"!=typeof t)return"";var e="";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){var i=t[this.options.attributesGroupName];for(var r in i)if(Object.prototype.hasOwnProperty.call(i,r)){var s=r.startsWith(this.options.attributeNamePrefix)?r.substring(this.options.attributeNamePrefix.length):r,n=i[r];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}else for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var a=this.isAttribute(o);if(a){var h=t[o];!0===h&&this.options.suppressBooleanAttributes?e+=" "+a:e+=" "+a+'="'+h+'"'}}return e},b.prototype.buildObjectNode=function(t,e,i,r){if(""===t)return"?"===e[0]?this.indentate(r)+"<"+e+i+"?"+this.tagEndChar:this.indentate(r)+"<"+e+i+this.closeTag(e)+this.tagEndChar;var s="</"+e+this.tagEndChar,n="";return"?"===e[0]&&(n="?",s=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===n.length?this.indentate(r)+"\x3c!--"+t+"--\x3e"+this.newLine:this.indentate(r)+"<"+e+i+n+this.tagEndChar+t+this.indentate(r)+s:this.indentate(r)+"<"+e+i+n+">"+t+s},b.prototype.closeTag=function(t){var e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":"></"+t,e},b.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(var e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},b.prototype.buildTextValNode=function(t,e,i,r,s){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(r)+"<![CDATA["+t+"]]>"+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(r)+"\x3c!--"+t+"--\x3e"+this.newLine;if("?"===e[0])return this.indentate(r)+"<"+e+i+"?"+this.tagEndChar;var n=this.options.tagValueProcessor(e,t);return""===(n=this.replaceEntitiesValue(n))?this.indentate(r)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(r)+"<"+e+i+">"+n+"</"+e+this.tagEndChar},b.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(var e=0;e<this.options.entities.length;e++){var i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},e})());
2
+ //# sourceMappingURL=fxb.min.js.map