@aws-cdk/integ-runner 2.177.0-alpha.0 → 2.178.1-alpha.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/THIRD_PARTY_LICENSES +1 -1
- package/lib/cli.js +1 -2
- package/lib/recommended-feature-flags.json +2 -1
- package/lib/runner/private/cloud-assembly.js +1 -1
- package/lib/runner/private/integ-manifest.js +1 -1
- package/lib/runner/runner-base.d.ts +1 -0
- package/lib/runner/snapshot-test-runner.d.ts +5 -5
- package/lib/runner/snapshot-test-runner.js +6 -6
- package/lib/workers/extract/index.js +43 -17
- package/lib/workers/integ-snapshot-worker.js +1 -1
- package/lib/workers/integ-test-worker.js +1 -1
- package/package.json +12 -12
package/THIRD_PARTY_LICENSES
CHANGED
|
@@ -827,7 +827,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
827
827
|
|
|
828
828
|
----------------
|
|
829
829
|
|
|
830
|
-
** table@6.
|
|
830
|
+
** table@6.9.0 - https://www.npmjs.com/package/table/v/6.9.0 | BSD-3-Clause
|
|
831
831
|
Copyright (c) 2018, Gajus Kuizinas (http://gajus.com/)
|
|
832
832
|
All rights reserved.
|
|
833
833
|
|
package/lib/cli.js
CHANGED
|
@@ -259,7 +259,6 @@ function cli(args = process.argv.slice(2)) {
|
|
|
259
259
|
/**
|
|
260
260
|
* Read CLI options from a config file if provided.
|
|
261
261
|
*
|
|
262
|
-
* @param fileName
|
|
263
262
|
* @returns parsed CLI config options
|
|
264
263
|
*/
|
|
265
264
|
function configFromFile(fileName) {
|
|
@@ -273,4 +272,4 @@ function configFromFile(fileName) {
|
|
|
273
272
|
return {};
|
|
274
273
|
}
|
|
275
274
|
}
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsb0NBaUZDO0FBRUQsb0JBd0dDO0FBMEVELGtCQUtDO0FBelJELGdGQUFnRjtBQUNoRix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQix5Q0FBeUM7QUFDekMsbUNBQW1DO0FBQ25DLGtFQUF3RjtBQUN4Rix1Q0FBZ0k7QUFDaEkscUVBQW9FO0FBRXBFLDZDQUE2QztBQUM3QywrQ0FBK0M7QUFDL0MsaUVBQWlFO0FBQ2pFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUvQixTQUFnQixZQUFZLENBQUMsT0FBaUIsRUFBRTs7SUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSztTQUNmLEtBQUssQ0FBQywrQkFBK0IsQ0FBQztTQUN0QyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osWUFBWSxFQUFFLGNBQWM7UUFDNUIsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixJQUFJLEVBQUUseUZBQXlGO0tBQ2hHLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxtQ0FBbUMsRUFBRSxDQUFDO1NBQy9GLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLG9DQUFvQyxFQUFFLENBQUM7U0FDL0YsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUseUVBQXlFLEVBQUUsQ0FBQztTQUNwSSxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxF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O0lBRUQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEV4ZXJjaXNlIGFsbCBpbnRlZyBzdGFja3MgYW5kIGlmIHRoZXkgZGVwbG95LCB1cGRhdGUgdGhlIGV4cGVjdGVkIHN5bnRoIGZpbGVzXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgd29ya2VycG9vbCBmcm9tICd3b3JrZXJwb29sJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblRlc3RzLCBJbnRlZ1Rlc3QsIEludGVnVGVzdEluZm8gfSBmcm9tICcuL3J1bm5lci9pbnRlZ3JhdGlvbi10ZXN0cyc7XG5pbXBvcnQgeyBydW5TbmFwc2hvdFRlc3RzLCBydW5JbnRlZ3JhdGlvblRlc3RzLCBJbnRlZ1J1bm5lck1ldHJpY3MsIEludGVnVGVzdFdvcmtlckNvbmZpZywgRGVzdHJ1Y3RpdmVDaGFuZ2UgfSBmcm9tICcuL3dvcmtlcnMnO1xuaW1wb3J0IHsgd2F0Y2hJbnRlZ3JhdGlvblRlc3QgfSBmcm9tICcuL3dvcmtlcnMvaW50ZWctd2F0Y2gtd29ya2VyJztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3lhcmdzL3lhcmdzL2lzc3Vlcy8xOTI5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZXZhbncvZXNidWlsZC9pc3N1ZXMvMTQ5MlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IHlhcmdzID0gcmVxdWlyZSgneWFyZ3MnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2xpQXJncyhhcmdzOiBzdHJpbmdbXSA9IFtdKSB7XG4gIGNvbnN0IGFyZ3YgPSB5YXJnc1xuICAgIC51c2FnZSgnVXNhZ2U6IGludGVnLXJ1bm5lciBbVEVTVC4uLl0nKVxuICAgIC5vcHRpb24oJ2NvbmZpZycsIHtcbiAgICAgIGNvbmZpZzogdHJ1ZSxcbiAgICAgIGNvbmZpZ1BhcnNlcjogY29uZmlnRnJvbUZpbGUsXG4gICAgICBkZWZhdWx0OiAnaW50ZWcuY29uZmlnLmpzb24nLFxuICAgICAgZGVzYzogJ0xvYWQgb3B0aW9ucyBmcm9tIGEgSlNPTiBjb25maWcgZmlsZS4gT3B0aW9ucyBwcm92aWRlZCBhcyBDTEkgYXJndW1lbnRzIHRha2UgcHJlY2VkZW50LicsXG4gICAgfSlcbiAgICAub3B0aW9uKCd3YXRjaCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzYzogJ1BlcmZvcm0gaW50ZWcgdGVzdHMgaW4gd2F0Y2ggbW9kZScgfSlcbiAgICAub3B0aW9uKCdsaXN0JywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjOiAnTGlzdCB0ZXN0cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgdGhlbScgfSlcbiAgICAub3B0aW9uKCdjbGVhbicsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiB0cnVlLCBkZXNjOiAnU2tpcHMgc3RhY2sgY2xlYW4gdXAgYWZ0ZXIgdGVzdCBpcyBjb21wbGV0ZWQgKHVzZSAtLW5vLWNsZWFuIHRvIG5lZ2F0ZSknIH0pXG4gICAgLm9wdGlvbigndmVyYm9zZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgYWxpYXM6ICd2JywgY291bnQ6IHRydWUsIGRlc2M6ICdWZXJib3NlIGxvZ3MgYW5kIG1ldHJpY3Mgb24gaW50ZWdyYXRpb24gdGVzdHMgZHVyYXRpb25zIChzcGVjaWZ5IG11bHRpcGxlIHRpbWVzIHRvIGluY3JlYXNlIHZlcmJvc2l0eSknIH0pXG4gICAgLm9wdGlvbignZHJ5LXJ1bicsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzYzogJ2RvIG5vdCBhY3R1YWxseSBkZXBsb3kgdGhlIHN0YWNrLiBqdXN0IHVwZGF0ZSB0aGUgc25hcHNob3QgKG5vdCByZWNvbW1lbmRlZCEpJyB9KVxuICAgIC5vcHRpb24oJ3VwZGF0ZS1vbi1mYWlsZWQnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UsIGRlc2M6ICdyZXJ1biBpbnRlZ3JhdGlvbiB0ZXN0cyBhbmQgdXBkYXRlIHNuYXBzaG90cyBmb3IgZmFpbGVkIHRlc3RzLicgfSlcbiAgICAub3B0aW9uKCdmb3JjZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzYzogJ1JlcnVuIGFsbCBpbnRlZ3JhdGlvbiB0ZXN0cyBldmVuIGlmIHRlc3RzIGFyZSBwYXNzaW5nJyB9KVxuICAgIC5vcHRpb24oJ3BhcmFsbGVsLXJlZ2lvbnMnLCB7IHR5cGU6ICdhcnJheScsIGRlc2M6ICdUZXN0cyBhcmUgcnVuIGluIHBhcmFsbGVsIGFjcm9zcyB0aGVzZSByZWdpb25zLiBUbyBwcmV2ZW50IHRlc3RzIGZyb20gcnVubmluZyBpbiBwYXJhbGxlbCwgcHJvdmlkZSBvbmx5IGEgc2luZ2xlIHJlZ2lvbicsIGRlZmF1bHQ6IFtdIH0pXG4gICAgLm9wdGlvbnMoJ2RpcmVjdG9yeScsIHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICd0ZXN0JywgZGVzYzogJ3N0YXJ0aW5nIGRpcmVjdG9yeSB0byBkaXNjb3ZlciBpbnRlZ3JhdGlvbiB0ZXN0cy4gVGVzdHMgd2lsbCBiZSBkaXNjb3ZlcmVkIHJlY3Vyc2l2ZWx5IGZyb20gdGhpcyBkaXJlY3RvcnknIH0pXG4gICAgLm9wdGlvbnMoJ3Byb2ZpbGVzJywgeyB0eXBlOiAnYXJyYXknLCBkZXNjOiAnbGlzdCBvZiBBV1MgcHJvZmlsZXMgdG8gdXNlLiBUZXN0cyB3aWxsIGJlIHJ1biBpbiBwYXJhbGxlbCBhY3Jvc3MgZWFjaCBwcm9maWxlK3JlZ2lvbnMnLCBkZWZhdWx0OiBbXSB9KVxuICAgIC5vcHRpb25zKCdtYXgtd29ya2VycycsIHsgdHlwZTogJ251bWJlcicsIGRlc2M6ICdUaGUgbWF4IG51bWJlciBvZiB3b3JrZXJwb29sIHdvcmtlcnMgdG8gdXNlIHdoZW4gcnVubmluZyBpbnRlZ3JhdGlvbiB0ZXN0cyBpbiBwYXJhbGxlbCcsIGRlZmF1bHQ6IDE2IH0pXG4gICAgLm9wdGlvbnMoJ2V4Y2x1ZGUnLCB7IHR5cGU6ICdib29sZWFuJywgZGVzYzogJ1J1biBhbGwgdGVzdHMgaW4gdGhlIGRpcmVjdG9yeSwgZXhjZXB0IHRoZSBzcGVjaWZpZWQgVEVTVHMnLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgIC5vcHRpb25zKCdmcm9tLWZpbGUnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjOiAnUmVhZCBURVNUIG5hbWVzIGZyb20gYSBmaWxlIChvbmUgVEVTVCBwZXIgbGluZSknIH0pXG4gICAgLm9wdGlvbignaW5zcGVjdC1mYWlsdXJlcycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAnS2VlcCB0aGUgaW50ZWcgdGVzdCBjbG91ZCBhc3NlbWJseSBpZiBhIGZhaWx1cmUgb2NjdXJzIGZvciBpbnNwZWN0aW9uJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAub3B0aW9uKCdkaXNhYmxlLXVwZGF0ZS13b3JrZmxvdycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzYzogJ0lmIHRoaXMgaXMgXCJ0cnVlXCIgdGhlbiB0aGUgc3RhY2sgdXBkYXRlIHdvcmtmbG93IHdpbGwgYmUgZGlzYWJsZWQnIH0pXG4gICAgLm9wdGlvbignbGFuZ3VhZ2UnLCB7XG4gICAgICBhbGlhczogJ2wnLFxuICAgICAgZGVmYXVsdDogWydqYXZhc2NyaXB0JywgJ3R5cGVzY3JpcHQnLCAncHl0aG9uJywgJ2dvJ10sXG4gICAgICBjaG9pY2VzOiBbJ2phdmFzY3JpcHQnLCAndHlwZXNjcmlwdCcsICdweXRob24nLCAnZ28nXSxcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICBuYXJnczogMSxcbiAgICAgIGRlc2M6ICdVc2UgdGhlc2UgcHJlc2V0cyB0byBydW4gaW50ZWdyYXRpb24gdGVzdHMgZm9yIHRoZSBzZWxlY3RlZCBsYW5ndWFnZXMnLFxuICAgIH0pXG4gICAgLm9wdGlvbignYXBwJywgeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogdW5kZWZpbmVkLCBkZXNjOiAnVGhlIGN1c3RvbSBDTEkgY29tbWFuZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBydW4gdGhlIHRlc3QgZmlsZXMuIFlvdSBjYW4gaW5jbHVkZSB7ZmlsZVBhdGh9IHRvIHNwZWNpZnkgd2hlcmUgaW4gdGhlIGNvbW1hbmQgdGhlIHRlc3QgZmlsZSBwYXRoIHNob3VsZCBiZSBpbnNlcnRlZC4gRXhhbXBsZTogLS1hcHA9XCJweXRob24zLjgge2ZpbGVQYXRofVwiLicgfSlcbiAgICAub3B0aW9uKCd0ZXN0LXJlZ2V4JywgeyB0eXBlOiAnYXJyYXknLCBkZXNjOiAnRGV0ZWN0IGludGVncmF0aW9uIHRlc3QgZmlsZXMgbWF0Y2hpbmcgdGhpcyBKYXZhU2NyaXB0IHJlZ2V4IHBhdHRlcm4uIElmIHVzZWQgbXVsdGlwbGUgdGltZXMsIGFsbCBmaWxlcyBtYXRjaGluZyBhbnkgb25lIG9mIHRoZSBwYXR0ZXJucyBhcmUgZGV0ZWN0ZWQuJywgZGVmYXVsdDogW10gfSlcbiAgICAuc3RyaWN0KClcbiAgICAucGFyc2UoYXJncyk7XG5cbiAgY29uc3QgdGVzdHM6IHN0cmluZ1tdID0gYXJndi5fO1xuICBjb25zdCBwYXJhbGxlbFJlZ2lvbnMgPSBhcnJheUZyb21ZYXJncyhhcmd2WydwYXJhbGxlbC1yZWdpb25zJ10pO1xuICBjb25zdCB0ZXN0UmVnaW9uczogc3RyaW5nW10gPSBwYXJhbGxlbFJlZ2lvbnMgPz8gWyd1cy1lYXN0LTEnLCAndXMtZWFzdC0yJywgJ3VzLXdlc3QtMiddO1xuICBjb25zdCBwcm9maWxlcyA9IGFycmF5RnJvbVlhcmdzKGFyZ3YucHJvZmlsZXMpO1xuICBjb25zdCBmcm9tRmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gYXJndlsnZnJvbS1maWxlJ107XG4gIGNvbnN0IG1heFdvcmtlcnM6IG51bWJlciA9IGFyZ3ZbJ21heC13b3JrZXJzJ107XG4gIGNvbnN0IHZlcmJvc2l0eTogbnVtYmVyID0gYXJndi52ZXJib3NlO1xuICBjb25zdCB2ZXJib3NlOiBib29sZWFuID0gdmVyYm9zaXR5ID49IDE7XG5cbiAgY29uc3QgbnVtVGVzdHMgPSB0ZXN0UmVnaW9ucy5sZW5ndGggKiAocHJvZmlsZXMgPz8gWzFdKS5sZW5ndGg7XG4gIGlmIChtYXhXb3JrZXJzIDwgbnVtVGVzdHMpIHtcbiAgICBsb2dnZXIud2FybmluZygnWW91IGFyZSBhdHRlbXB0aW5nIHRvIHJ1biAlcyB0ZXN0cyBpbiBwYXJhbGxlbCwgYnV0IG9ubHkgaGF2ZSAlcyB3b3JrZXJzLiBOb3QgYWxsIG9mIHlvdXIgcHJvZmlsZXMrcmVnaW9ucyB3aWxsIGJlIHV0aWxpemVkJywgbnVtVGVzdHMsIG1heFdvcmtlcnMpO1xuICB9XG5cbiAgaWYgKHRlc3RzLmxlbmd0aCA+IDAgJiYgZnJvbUZpbGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgbGlzdCBvZiB0ZXN0cyBjYW5ub3QgYmUgcHJvdmlkZWQgaWYgXCItLWZyb20tZmlsZVwiIGlzIHByb3ZpZGVkJyk7XG4gIH1cbiAgY29uc3QgcmVxdWVzdGVkVGVzdHMgPSBmcm9tRmlsZVxuICAgID8gKGZzLnJlYWRGaWxlU3luYyhmcm9tRmlsZSwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pKS5zcGxpdCgnXFxuJykuZmlsdGVyKHggPT4geClcbiAgICA6ICh0ZXN0cy5sZW5ndGggPiAwID8gdGVzdHMgOiB1bmRlZmluZWQpOyAvLyAndW5kZWZpbmVkJyBtZWFucyBubyByZXF1ZXN0XG5cbiAgcmV0dXJuIHtcbiAgICB0ZXN0czogcmVxdWVzdGVkVGVzdHMsXG4gICAgYXBwOiBhcmd2LmFwcCBhcyAoc3RyaW5nIHwgdW5kZWZpbmVkKSxcbiAgICB0ZXN0UmVnZXg6IGFycmF5RnJvbVlhcmdzKGFyZ3ZbJ3Rlc3QtcmVnZXgnXSksXG4gICAgdGVzdFJlZ2lvbnMsXG4gICAgb3JpZ2luYWxSZWdpb25zOiBwYXJhbGxlbFJlZ2lvbnMsXG4gICAgcHJvZmlsZXMsXG4gICAgcnVuVXBkYXRlT25GYWlsZWQ6IChhcmd2Wyd1cGRhdGUtb24tZmFpbGVkJ10gPz8gZmFsc2UpIGFzIGJvb2xlYW4sXG4gICAgZnJvbUZpbGUsXG4gICAgZXhjbHVkZTogYXJndi5leGNsdWRlIGFzIGJvb2xlYW4sXG4gICAgbWF4V29ya2VycyxcbiAgICBsaXN0OiBhcmd2Lmxpc3QgYXMgYm9vbGVhbixcbiAgICBkaXJlY3Rvcnk6IGFyZ3YuZGlyZWN0b3J5IGFzIHN0cmluZyxcbiAgICBpbnNwZWN0RmFpbHVyZXM6IGFyZ3ZbJ2luc3BlY3QtZmFpbHVyZXMnXSBhcyBib29sZWFuLFxuICAgIHZlcmJvc2l0eSxcbiAgICB2ZXJib3NlLFxuICAgIGNsZWFuOiBhcmd2LmNsZWFuIGFzIGJvb2xlYW4sXG4gICAgZm9yY2U6IGFyZ3YuZm9yY2UgYXMgYm9vbGVhbixcbiAgICBkcnlSdW46IGFyZ3ZbJ2RyeS1ydW4nXSBhcyBib29sZWFuLFxuICAgIGRpc2FibGVVcGRhdGVXb3JrZmxvdzogYXJndlsnZGlzYWJsZS11cGRhdGUtd29ya2Zsb3cnXSBhcyBib29sZWFuLFxuICAgIGxhbmd1YWdlOiBhcnJheUZyb21ZYXJncyhhcmd2Lmxhbmd1YWdlKSxcbiAgICB3YXRjaDogYXJndi53YXRjaCBhcyBib29sZWFuLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFpbihhcmdzOiBzdHJpbmdbXSkge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VDbGlBcmdzKGFyZ3MpO1xuXG4gIGNvbnN0IHRlc3RzRnJvbUFyZ3MgPSBhd2FpdCBuZXcgSW50ZWdyYXRpb25UZXN0cyhwYXRoLnJlc29sdmUob3B0aW9ucy5kaXJlY3RvcnkpKS5mcm9tQ2xpT3B0aW9ucyhvcHRpb25zKTtcblxuICAvLyBMaXN0IG9ubHkgcHJpbnRzIHRoZSBkaXNjb3ZlcmVkIHRlc3RzXG4gIGlmIChvcHRpb25zLmxpc3QpIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZSh0ZXN0c0Zyb21BcmdzLm1hcCh0ID0+IHQuZGlzY292ZXJ5UmVsYXRpdmVGaWxlTmFtZSkuam9pbignXFxuJykgKyAnXFxuJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcG9vbCA9IHdvcmtlcnBvb2wucG9vbChwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnbGliJywgJ3dvcmtlcnMnLCAnZXh0cmFjdCcsICdpbmRleC5qcycpLCB7XG4gICAgbWF4V29ya2Vyczogb3B0aW9ucy53YXRjaCA/IDEgOiBvcHRpb25zLm1heFdvcmtlcnMsXG4gIH0pO1xuXG4gIGNvbnN0IHRlc3RzVG9SdW46IEludGVnVGVzdFdvcmtlckNvbmZpZ1tdID0gW107XG4gIGxldCBkZXN0cnVjdGl2ZUNoYW5nZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbGV0IGZhaWxlZFNuYXBzaG90czogSW50ZWdUZXN0V29ya2VyQ29uZmlnW10gPSBbXTtcbiAgbGV0IHRlc3RzU3VjY2VlZGVkID0gZmFsc2U7XG4gIHZhbGlkYXRlV2F0Y2hBcmdzKHtcbiAgICAuLi5vcHRpb25zLFxuICAgIHRlc3RSZWdpb25zOiBvcHRpb25zLm9yaWdpbmFsUmVnaW9ucyxcbiAgICB0ZXN0czogdGVzdHNGcm9tQXJncyxcbiAgfSk7XG5cbiAgdHJ5IHtcbiAgICBpZiAoIW9wdGlvbnMud2F0Y2gpIHtcbiAgICAgIC8vIGFsd2F5cyBydW4gc25hcHNob3QgdGVzdHMsIGJ1dCBpZiAnLS1mb3JjZScgaXMgcGFzc2VkIHRoZW5cbiAgICAgIC8vIHJ1biBpbnRlZ3JhdGlvbiB0ZXN0cyBvbiBhbGwgZmFpbGVkIHRlc3RzLCBub3QganVzdCB0aG9zZSB0aGF0XG4gICAgICAvLyBmYWlsZWQgc25hcHNob3QgdGVzdHNcbiAgICAgIGZhaWxlZFNuYXBzaG90cyA9IGF3YWl0IHJ1blNuYXBzaG90VGVzdHMocG9vbCwgdGVzdHNGcm9tQXJncywge1xuICAgICAgICByZXRhaW46IG9wdGlvbnMuaW5zcGVjdEZhaWx1cmVzLFxuICAgICAgICB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UsXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgZmFpbHVyZSBvZiBmYWlsZWRTbmFwc2hvdHMpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoYEZhaWxlZDogJHtmYWlsdXJlLmZpbGVOYW1lfWApO1xuICAgICAgICBpZiAoZmFpbHVyZS5kZXN0cnVjdGl2ZUNoYW5nZXMgJiYgZmFpbHVyZS5kZXN0cnVjdGl2ZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHByaW50RGVzdHJ1Y3RpdmVDaGFuZ2VzKGZhaWx1cmUuZGVzdHJ1Y3RpdmVDaGFuZ2VzKTtcbiAgICAgICAgICBkZXN0cnVjdGl2ZUNoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIW9wdGlvbnMuZm9yY2UpIHtcbiAgICAgICAgdGVzdHNUb1J1bi5wdXNoKC4uLmZhaWxlZFNuYXBzaG90cyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpZiBhbnkgb2YgdGhlIHRlc3QgZmFpbGVkIHNuYXBzaG90IHRlc3RzLCBrZWVwIHRob3NlIHJlc3VsdHNcbiAgICAgICAgLy8gYW5kIG1lcmdlIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHRlc3RzIGZyb20gYXJnc1xuICAgICAgICB0ZXN0c1RvUnVuLnB1c2goLi4ubWVyZ2VUZXN0cyh0ZXN0c0Zyb21BcmdzLm1hcCh0ID0+IHQuaW5mbyksIGZhaWxlZFNuYXBzaG90cykpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0ZXN0c1RvUnVuLnB1c2goLi4udGVzdHNGcm9tQXJncy5tYXAodCA9PiB0LmluZm8pKTtcbiAgICB9XG5cbiAgICAvLyBydW4gaW50ZWdyYXRpb24gdGVzdHMgaWYgYC0tdXBkYXRlLW9uLWZhaWxlZGAgT1IgYC0tZm9yY2VgIGlzIHVzZWRcbiAgICBpZiAob3B0aW9ucy5ydW5VcGRhdGVPbkZhaWxlZCB8fCBvcHRpb25zLmZvcmNlKSB7XG4gICAgICBjb25zdCB7IHN1Y2Nlc3MsIG1ldHJpY3MgfSA9IGF3YWl0IHJ1bkludGVncmF0aW9uVGVzdHMoe1xuICAgICAgICBwb29sLFxuICAgICAgICB0ZXN0czogdGVzdHNUb1J1bixcbiAgICAgICAgcmVnaW9uczogb3B0aW9ucy50ZXN0UmVnaW9ucyxcbiAgICAgICAgcHJvZmlsZXM6IG9wdGlvbnMucHJvZmlsZXMsXG4gICAgICAgIGNsZWFuOiBvcHRpb25zLmNsZWFuLFxuICAgICAgICBkcnlSdW46IG9wdGlvbnMuZHJ5UnVuLFxuICAgICAgICB2ZXJib3NpdHk6IG9wdGlvbnMudmVyYm9zaXR5LFxuICAgICAgICB1cGRhdGVXb3JrZmxvdzogIW9wdGlvbnMuZGlzYWJsZVVwZGF0ZVdvcmtmbG93LFxuICAgICAgICB3YXRjaDogb3B0aW9ucy53YXRjaCxcbiAgICAgIH0pO1xuICAgICAgdGVzdHNTdWNjZWVkZWQgPSBzdWNjZXNzO1xuXG4gICAgICBpZiAob3B0aW9ucy5jbGVhbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoJ05vdCBjbGVhbmluZyB1cCBzdGFja3Mgc2luY2UgXCItLW5vLWNsZWFuXCIgd2FzIHVzZWQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKEJvb2xlYW4ob3B0aW9ucy52ZXJib3NlKSkge1xuICAgICAgICBwcmludE1ldHJpY3MobWV0cmljcyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWUgaW50ZWdyYXRpb24gdGVzdHMgZmFpbGVkIScpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob3B0aW9ucy53YXRjaCkge1xuICAgICAgYXdhaXQgd2F0Y2hJbnRlZ3JhdGlvblRlc3QocG9vbCwge1xuICAgICAgICB3YXRjaDogdHJ1ZSxcbiAgICAgICAgdmVyYm9zaXR5OiBvcHRpb25zLnZlcmJvc2l0eSxcbiAgICAgICAgLi4udGVzdHNUb1J1blswXSxcbiAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlcyA/IG9wdGlvbnMucHJvZmlsZXNbMF0gOiB1bmRlZmluZWQsXG4gICAgICAgIHJlZ2lvbjogb3B0aW9ucy50ZXN0UmVnaW9uc1swXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICB2b2lkIHBvb2wudGVybWluYXRlKCk7XG4gIH1cblxuICBpZiAoZGVzdHJ1Y3RpdmVDaGFuZ2VzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTb21lIGNoYW5nZXMgd2VyZSBkZXN0cnVjdGl2ZSEnKTtcbiAgfVxuICBpZiAoZmFpbGVkU25hcHNob3RzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQgbWVzc2FnZSA9ICcnO1xuICAgIGlmICghb3B0aW9ucy5ydW5VcGRhdGVPbkZhaWxlZCkge1xuICAgICAgbWVzc2FnZSA9ICdUbyByZS1ydW4gZmFpbGVkIHRlc3RzIHJ1bjogaW50ZWctcnVubmVyIC0tdXBkYXRlLW9uLWZhaWxlZCc7XG4gICAgfVxuICAgIGlmICghdGVzdHNTdWNjZWVkZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU29tZSB0ZXN0cyBmYWlsZWQhXFxuJHttZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlV2F0Y2hBcmdzKGFyZ3M6IHtcbiAgdGVzdHM6IEludGVnVGVzdFtdO1xuICB0ZXN0UmVnaW9ucz86IHN0cmluZ1tdO1xuICBwcm9maWxlcz86IHN0cmluZ1tdO1xuICBtYXhXb3JrZXJzOiBudW1iZXI7XG4gIGZvcmNlOiBib29sZWFuO1xuICBkcnlSdW46IGJvb2xlYW47XG4gIGRpc2FibGVVcGRhdGVXb3JrZmxvdzogYm9vbGVhbjtcbiAgcnVuVXBkYXRlT25GYWlsZWQ6IGJvb2xlYW47XG4gIHdhdGNoOiBib29sZWFuO1xufSkge1xuICBpZiAoYXJncy53YXRjaCkge1xuICAgIGlmIChcbiAgICAgIChhcmdzLnRlc3RSZWdpb25zICYmIGFyZ3MudGVzdFJlZ2lvbnMubGVuZ3RoID4gMSlcbiAgICAgICAgfHwgKGFyZ3MucHJvZmlsZXMgJiYgYXJncy5wcm9maWxlcy5sZW5ndGggPiAxKVxuICAgICAgICB8fCBhcmdzLnRlc3RzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUnVubmluZyB3aXRoIHdhdGNoIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgdGVzdC4gT25seSBwcm92aWRlIGEgc2luZ2xlIG9wdGlvbicrXG4gICAgICAgICd0byBgLS1wcm9maWxlc2AgYC0tcGFyYWxsZWwtcmVnaW9uc2AgYC0tbWF4LXdvcmtlcnMnKTtcbiAgICB9XG5cbiAgICBpZiAoYXJncy5ydW5VcGRhdGVPbkZhaWxlZCB8fCBhcmdzLmRpc2FibGVVcGRhdGVXb3JrZmxvdyB8fCBhcmdzLmZvcmNlIHx8IGFyZ3MuZHJ5UnVuKSB7XG4gICAgICBsb2dnZXIud2FybmluZygnYXJncyBgLS11cGRhdGUtb24tZmFpbGVkYCwgYC0tZGlzYWJsZS11cGRhdGUtd29ya2Zsb3dgLCBgLS1mb3JjZWAsIGAtLWRyeS1ydW5gIGhhdmUgbm8gZWZmZWN0IHdoZW4gcnVubmluZyB3aXRoIGAtLXdhdGNoYCcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludERlc3RydWN0aXZlQ2hhbmdlcyhjaGFuZ2VzOiBEZXN0cnVjdGl2ZUNoYW5nZVtdKTogdm9pZCB7XG4gIGlmIChjaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICBsb2dnZXIud2FybmluZygnISEhIFRoaXMgdGVzdCBjb250YWlucyAlcyAhISEnLCBjaGFsay5ib2xkKCdkZXN0cnVjdGl2ZSBjaGFuZ2VzJykpO1xuICAgIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgbG9nZ2VyLndhcm5pbmcoJyAgICBTdGFjazogJXMgLSBSZXNvdXJjZTogJXMgLSBJbXBhY3Q6ICVzJywgY2hhbmdlLnN0YWNrTmFtZSwgY2hhbmdlLmxvZ2ljYWxJZCwgY2hhbmdlLmltcGFjdCk7XG4gICAgfSk7XG4gICAgbG9nZ2VyLndhcm5pbmcoJyEhISBJZiB0aGVzZSBkZXN0cnVjdGl2ZSBjaGFuZ2VzIGFyZSBuZWNlc3NhcnksIHBsZWFzZSBpbmRpY2F0ZSB0aGlzIG9uIHRoZSBQUiAhISEnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludE1ldHJpY3MobWV0cmljczogSW50ZWdSdW5uZXJNZXRyaWNzW10pOiB2b2lkIHtcbiAgbG9nZ2VyLmhpZ2hsaWdodCgnICAgLS0tIEludGVncmF0aW9uIHRlc3QgbWV0cmljcyAtLS0nKTtcbiAgY29uc3Qgc29ydGVkTWV0cmljcyA9IG1ldHJpY3Muc29ydCgoYSwgYikgPT4gYS5kdXJhdGlvbiAtIGIuZHVyYXRpb24pO1xuICBzb3J0ZWRNZXRyaWNzLmZvckVhY2gobWV0cmljID0+IHtcbiAgICBsb2dnZXIucHJpbnQoJ1Byb2ZpbGUgJXMgKyBSZWdpb24gJXMgdG90YWwgdGltZTogJXMnLCBtZXRyaWMucHJvZmlsZSwgbWV0cmljLnJlZ2lvbiwgbWV0cmljLmR1cmF0aW9uKTtcbiAgICBjb25zdCBzb3J0ZWRUZXN0cyA9IE9iamVjdC5lbnRyaWVzKG1ldHJpYy50ZXN0cykuc29ydCgoYSwgYikgPT4gYVsxXSAtIGJbMV0pO1xuICAgIHNvcnRlZFRlc3RzLmZvckVhY2godGVzdCA9PiBsb2dnZXIucHJpbnQoJyAgJXM6ICVzJywgdGVzdFswXSwgdGVzdFsxXSkpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUcmFuc2xhdGUgYSBZYXJncyBpbnB1dCBhcnJheSB0byBzb21ldGhpbmcgdGhhdCBtYWtlcyBtb3JlIHNlbnNlIGluIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VcbiAqIG1vZGVsICh0ZWxsaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYWJzZW5jZSBhbmQgYW4gZW1wdHkgYXJyYXkpXG4gKlxuICogLSBBbiBlbXB0eSBhcnJheSBpcyB0aGUgZGVmYXVsdCBjYXNlLCBtZWFuaW5nIHRoZSB1c2VyIGRpZG4ndCBwYXNzIGFueSBhcmd1bWVudHMuIFdlIHJldHVyblxuICogICB1bmRlZmluZWQuXG4gKiAtIElmIHRoZSB1c2VyIHBhc3NlZCBhIHNpbmdsZSBlbXB0eSBzdHJpbmcsIHRoZXkgZGlkIHNvbWV0aGluZyBsaWtlIGAtLWFycmF5PWAsIHdoaWNoIHdlJ2xsXG4gKiAgIHRha2UgdG8gbWVhbiB0aGV5IHBhc3NlZCBhbiBlbXB0eSBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlGcm9tWWFyZ3MoeHM6IHN0cmluZ1tdKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICBpZiAoeHMubGVuZ3RoID09PSAwKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgcmV0dXJuIHhzLmZpbHRlcih4ID0+IHggIT09ICcnKTtcbn1cblxuLyoqXG4gKiBNZXJnZSB0aGUgdGVzdHMgd2UgcmVjZWl2ZWQgZnJvbSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHdpdGhcbiAqIHRlc3RzIHRoYXQgZmFpbGVkIHNuYXBzaG90IHRlc3RzLiBUaGUgZmFpbGVkIHNuYXBzaG90IHRlc3RzIGhhdmUgYWRkaXRpb25hbFxuICogaW5mb3JtYXRpb24gdGhhdCB3ZSB3YW50IHRvIGtlZXAgc28gdGhpcyBzaG91bGQgb3ZlcnJpZGUgYW55IHRlc3QgZnJvbSBhcmdzXG4gKi9cbmZ1bmN0aW9uIG1lcmdlVGVzdHModGVzdEZyb21BcmdzOiBJbnRlZ1Rlc3RJbmZvW10sIGZhaWxlZFNuYXBzaG90VGVzdHM6IEludGVnVGVzdFdvcmtlckNvbmZpZ1tdKTogSW50ZWdUZXN0V29ya2VyQ29uZmlnW10ge1xuICBjb25zdCBmYWlsZWRUZXN0TmFtZXMgPSBuZXcgU2V0KGZhaWxlZFNuYXBzaG90VGVzdHMubWFwKHRlc3QgPT4gdGVzdC5maWxlTmFtZSkpO1xuICBjb25zdCBmaW5hbDogSW50ZWdUZXN0V29ya2VyQ29uZmlnW10gPSBmYWlsZWRTbmFwc2hvdFRlc3RzO1xuICBmaW5hbC5wdXNoKC4uLnRlc3RGcm9tQXJncy5maWx0ZXIodGVzdCA9PiAhZmFpbGVkVGVzdE5hbWVzLmhhcyh0ZXN0LmZpbGVOYW1lKSkpO1xuICByZXR1cm4gZmluYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGkoYXJnczogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpIHtcbiAgbWFpbihhcmdzKS50aGVuKCkuY2F0Y2goZXJyID0+IHtcbiAgICBsb2dnZXIuZXJyb3IoZXJyKTtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVhZCBDTEkgb3B0aW9ucyBmcm9tIGEgY29uZmlnIGZpbGUgaWYgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIGZpbGVOYW1lXG4gKiBAcmV0dXJucyBwYXJzZWQgQ0xJIGNvbmZpZyBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ0Zyb21GaWxlKGZpbGVOYW1lPzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGlmICghZmlsZU5hbWUpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlTmFtZSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuIl19
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsb0NBaUZDO0FBRUQsb0JBdUdDO0FBMEVELGtCQUtDO0FBeFJELGdGQUFnRjtBQUNoRix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQix5Q0FBeUM7QUFDekMsbUNBQW1DO0FBQ25DLGtFQUF3RjtBQUN4Rix1Q0FBZ0k7QUFDaEkscUVBQW9FO0FBRXBFLDZDQUE2QztBQUM3QywrQ0FBK0M7QUFDL0MsaUVBQWlFO0FBQ2pFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUvQixTQUFnQixZQUFZLENBQUMsT0FBaUIsRUFBRTs7SUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSztTQUNmLEtBQUssQ0FBQywrQkFBK0IsQ0FBQztTQUN0QyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osWUFBWSxFQUFFLGNBQWM7UUFDNUIsT0FBTyxFQUFFLG1CQUFtQjtRQUM1QixJQUFJLEVBQUUseUZBQXlGO0tBQ2hHLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxtQ0FBbUMsRUFBRSxDQUFDO1NBQy9GLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLG9DQUFvQyxFQUFFLENBQUM7U0FDL0YsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUseUVBQXlFLEVBQUUsQ0FBQztTQUNwSSxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsd0dBQXdHLEVBQUUsQ0FBQztTQUMvTCxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSwrRUFBK0UsRUFBRSxDQUFDO1NBQzdJLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0VBQWdFLEVBQUUsQ0FBQztTQUN2SSxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSx1REFBdUQsRUFBRSxDQUFDO1NBQ25ILE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHlIQUF5SCxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzTCxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSw0R0FBNEcsRUFBRSxDQUFDO1NBQzdLLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSx3RkFBd0YsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDbkosT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHdGQUF3RixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUN2SixPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsNERBQTRELEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQzNILE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxpREFBaUQsRUFBRSxDQUFDO1NBQ2pHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLHVFQUF1RSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUM5SSxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLG1FQUFtRSxFQUFFLENBQUM7U0FDakosTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUNsQixLQUFLLEVBQUUsR0FBRztRQUNWLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztRQUNyRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDckQsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksRUFBRSx1RUFBdUU7S0FDOUUsQ0FBQztTQUNELE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLDBNQUEwTSxFQUFFLENBQUM7U0FDdlEsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHdKQUF3SixFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUNwTixNQUFNLEVBQUU7U0FDUixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFZixNQUFNLEtBQUssR0FBYSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sV0FBVyxHQUFhLGVBQWUsYUFBZixlQUFlLGNBQWYsZUFBZSxHQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sUUFBUSxHQUF1QixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsTUFBTSxVQUFVLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdkMsTUFBTSxPQUFPLEdBQVksU0FBUyxJQUFJLENBQUMsQ0FBQztJQUV4QyxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMvRCxJQUFJLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLDZIQUE2SCxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLFFBQVE7UUFDN0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7SUFFM0UsT0FBTztRQUNMLEtBQUssRUFBRSxjQUFjO1FBQ3JCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBMkI7UUFDckMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsV0FBVztRQUNYLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLFFBQVE7UUFDUixpQkFBaUIsRUFBRSxDQUFDLE1BQUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1DQUFJLEtBQUssQ0FBWTtRQUNqRSxRQUFRO1FBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFrQjtRQUNoQyxVQUFVO1FBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFlO1FBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBbUI7UUFDbkMsZUFBZSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBWTtRQUNwRCxTQUFTO1FBQ1QsT0FBTztRQUNQLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBZ0I7UUFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFnQjtRQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBWTtRQUNsQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQVk7UUFDakUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBZ0I7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUFDLElBQWM7SUFDdkMsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxvQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUxRyx3Q0FBd0M7SUFDeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1RixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1FBQ2hHLFVBQVUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVO0tBQ25ELENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUE0QixFQUFFLENBQUM7SUFDL0MsSUFBSSxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFDeEMsSUFBSSxlQUFlLEdBQTRCLEVBQUUsQ0FBQztJQUNsRCxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDM0IsaUJBQWlCLENBQUM7UUFDaEIsR0FBRyxPQUFPO1FBQ1YsV0FBVyxFQUFFLE9BQU8sQ0FBQyxlQUFlO1FBQ3BDLEtBQUssRUFBRSxhQUFhO0tBQ3JCLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsNkRBQTZEO1lBQzdELGlFQUFpRTtZQUNqRSx3QkFBd0I7WUFDeEIsZUFBZSxHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO2dCQUM1RCxNQUFNLEVBQUUsT0FBTyxDQUFDLGVBQWU7Z0JBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTzthQUN6QixDQUFDLENBQUM7WUFDSCxLQUFLLE1BQU0sT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUNwRCxrQkFBa0IsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDTiwrREFBK0Q7Z0JBQy9ELGlEQUFpRDtnQkFDakQsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDbEYsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQscUVBQXFFO1FBQ3JFLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBQSw2QkFBbUIsRUFBQztnQkFDckQsSUFBSTtnQkFDSixLQUFLLEVBQUUsVUFBVTtnQkFDakIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUM1QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQkFDcEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzVCLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUI7Z0JBQzlDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzthQUNyQixDQUFDLENBQUM7WUFDSCxjQUFjLEdBQUcsT0FBTyxDQUFDO1lBRXpCLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFBLHlDQUFvQixFQUFDLElBQUksRUFBRTtnQkFDL0IsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO2dCQUM1QixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUMzRCxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDL0IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7WUFBUyxDQUFDO1FBQ1QsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyw2REFBNkQsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQVUxQjtJQUNDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFDRSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2VBQzVDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7ZUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEU7Z0JBQzVGLHFEQUFxRCxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0RixNQUFNLENBQUMsT0FBTyxDQUFDLDJIQUEySCxDQUFDLENBQUM7UUFDOUksQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxPQUE0QjtJQUMzRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUNuRixPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkNBQTJDLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztJQUN2RyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE9BQTZCO0lBQ2pELE1BQU0sQ0FBQyxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN4RCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEcsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdFLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsY0FBYyxDQUFDLEVBQVk7SUFDbEMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxTQUFTLENBQUM7SUFBQyxDQUFDO0lBQzFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsVUFBVSxDQUFDLFlBQTZCLEVBQUUsbUJBQTRDO0lBQzdGLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sS0FBSyxHQUE0QixtQkFBbUIsQ0FBQztJQUMzRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQWdCLEdBQUcsQ0FBQyxPQUFpQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGNBQWMsQ0FBQyxRQUFpQjtJQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhlcmNpc2UgYWxsIGludGVnIHN0YWNrcyBhbmQgaWYgdGhleSBkZXBsb3ksIHVwZGF0ZSB0aGUgZXhwZWN0ZWQgc3ludGggZmlsZXNcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyB3b3JrZXJwb29sIGZyb20gJ3dvcmtlcnBvb2wnO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IEludGVncmF0aW9uVGVzdHMsIEludGVnVGVzdCwgSW50ZWdUZXN0SW5mbyB9IGZyb20gJy4vcnVubmVyL2ludGVncmF0aW9uLXRlc3RzJztcbmltcG9ydCB7IHJ1blNuYXBzaG90VGVzdHMsIHJ1bkludGVncmF0aW9uVGVzdHMsIEludGVnUnVubmVyTWV0cmljcywgSW50ZWdUZXN0V29ya2VyQ29uZmlnLCBEZXN0cnVjdGl2ZUNoYW5nZSB9IGZyb20gJy4vd29ya2Vycyc7XG5pbXBvcnQgeyB3YXRjaEludGVncmF0aW9uVGVzdCB9IGZyb20gJy4vd29ya2Vycy9pbnRlZy13YXRjaC13b3JrZXInO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20veWFyZ3MveWFyZ3MvaXNzdWVzLzE5Mjlcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ldmFudy9lc2J1aWxkL2lzc3Vlcy8xNDkyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgeWFyZ3MgPSByZXF1aXJlKCd5YXJncycpO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDbGlBcmdzKGFyZ3M6IHN0cmluZ1tdID0gW10pIHtcbiAgY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLnVzYWdlKCdVc2FnZTogaW50ZWctcnVubmVyIFtURVNULi4uXScpXG4gICAgLm9wdGlvbignY29uZmlnJywge1xuICAgICAgY29uZmlnOiB0cnVlLFxuICAgICAgY29uZmlnUGFyc2VyOiBjb25maWdGcm9tRmlsZSxcbiAgICAgIGRlZmF1bHQ6ICdpbnRlZy5jb25maWcuanNvbicsXG4gICAgICBkZXNjOiAnTG9hZCBvcHRpb25zIGZyb20gYSBKU09OIGNvbmZpZyBmaWxlLiBPcHRpb25zIHByb3ZpZGVkIGFzIENMSSBhcmd1bWVudHMgdGFrZSBwcmVjZWRlbnQuJyxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3dhdGNoJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjOiAnUGVyZm9ybSBpbnRlZyB0ZXN0cyBpbiB3YXRjaCBtb2RlJyB9KVxuICAgIC5vcHRpb24oJ2xpc3QnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UsIGRlc2M6ICdMaXN0IHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyB0aGVtJyB9KVxuICAgIC5vcHRpb24oJ2NsZWFuJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IHRydWUsIGRlc2M6ICdTa2lwcyBzdGFjayBjbGVhbiB1cCBhZnRlciB0ZXN0IGlzIGNvbXBsZXRlZCAodXNlIC0tbm8tY2xlYW4gdG8gbmVnYXRlKScgfSlcbiAgICAub3B0aW9uKCd2ZXJib3NlJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBhbGlhczogJ3YnLCBjb3VudDogdHJ1ZSwgZGVzYzogJ1ZlcmJvc2UgbG9ncyBhbmQgbWV0cmljcyBvbiBpbnRlZ3JhdGlvbiB0ZXN0cyBkdXJhdGlvbnMgKHNwZWNpZnkgbXVsdGlwbGUgdGltZXMgdG8gaW5jcmVhc2UgdmVyYm9zaXR5KScgfSlcbiAgICAub3B0aW9uKCdkcnktcnVuJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjOiAnZG8gbm90IGFjdHVhbGx5IGRlcGxveSB0aGUgc3RhY2suIGp1c3QgdXBkYXRlIHRoZSBzbmFwc2hvdCAobm90IHJlY29tbWVuZGVkISknIH0pXG4gICAgLm9wdGlvbigndXBkYXRlLW9uLWZhaWxlZCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzYzogJ3JlcnVuIGludGVncmF0aW9uIHRlc3RzIGFuZCB1cGRhdGUgc25hcHNob3RzIGZvciBmYWlsZWQgdGVzdHMuJyB9KVxuICAgIC5vcHRpb24oJ2ZvcmNlJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjOiAnUmVydW4gYWxsIGludGVncmF0aW9uIHRlc3RzIGV2ZW4gaWYgdGVzdHMgYXJlIHBhc3NpbmcnIH0pXG4gICAgLm9wdGlvbigncGFyYWxsZWwtcmVnaW9ucycsIHsgdHlwZTogJ2FycmF5JywgZGVzYzogJ1Rlc3RzIGFyZSBydW4gaW4gcGFyYWxsZWwgYWNyb3NzIHRoZXNlIHJlZ2lvbnMuIFRvIHByZXZlbnQgdGVzdHMgZnJvbSBydW5uaW5nIGluIHBhcmFsbGVsLCBwcm92aWRlIG9ubHkgYSBzaW5nbGUgcmVnaW9uJywgZGVmYXVsdDogW10gfSlcbiAgICAub3B0aW9ucygnZGlyZWN0b3J5JywgeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ3Rlc3QnLCBkZXNjOiAnc3RhcnRpbmcgZGlyZWN0b3J5IHRvIGRpc2NvdmVyIGludGVncmF0aW9uIHRlc3RzLiBUZXN0cyB3aWxsIGJlIGRpc2NvdmVyZWQgcmVjdXJzaXZlbHkgZnJvbSB0aGlzIGRpcmVjdG9yeScgfSlcbiAgICAub3B0aW9ucygncHJvZmlsZXMnLCB7IHR5cGU6ICdhcnJheScsIGRlc2M6ICdsaXN0IG9mIEFXUyBwcm9maWxlcyB0byB1c2UuIFRlc3RzIHdpbGwgYmUgcnVuIGluIHBhcmFsbGVsIGFjcm9zcyBlYWNoIHByb2ZpbGUrcmVnaW9ucycsIGRlZmF1bHQ6IFtdIH0pXG4gICAgLm9wdGlvbnMoJ21heC13b3JrZXJzJywgeyB0eXBlOiAnbnVtYmVyJywgZGVzYzogJ1RoZSBtYXggbnVtYmVyIG9mIHdvcmtlcnBvb2wgd29ya2VycyB0byB1c2Ugd2hlbiBydW5uaW5nIGludGVncmF0aW9uIHRlc3RzIGluIHBhcmFsbGVsJywgZGVmYXVsdDogMTYgfSlcbiAgICAub3B0aW9ucygnZXhjbHVkZScsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjOiAnUnVuIGFsbCB0ZXN0cyBpbiB0aGUgZGlyZWN0b3J5LCBleGNlcHQgdGhlIHNwZWNpZmllZCBURVNUcycsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgLm9wdGlvbnMoJ2Zyb20tZmlsZScsIHsgdHlwZTogJ3N0cmluZycsIGRlc2M6ICdSZWFkIFRFU1QgbmFtZXMgZnJvbSBhIGZpbGUgKG9uZSBURVNUIHBlciBsaW5lKScgfSlcbiAgICAub3B0aW9uKCdpbnNwZWN0LWZhaWx1cmVzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlc2M6ICdLZWVwIHRoZSBpbnRlZyB0ZXN0IGNsb3VkIGFzc2VtYmx5IGlmIGEgZmFpbHVyZSBvY2N1cnMgZm9yIGluc3BlY3Rpb24nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgIC5vcHRpb24oJ2Rpc2FibGUtdXBkYXRlLXdvcmtmbG93JywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjOiAnSWYgdGhpcyBpcyBcInRydWVcIiB0aGVuIHRoZSBzdGFjayB1cGRhdGUgd29ya2Zsb3cgd2lsbCBiZSBkaXNhYmxlZCcgfSlcbiAgICAub3B0aW9uKCdsYW5ndWFnZScsIHtcbiAgICAgIGFsaWFzOiAnbCcsXG4gICAgICBkZWZhdWx0OiBbJ2phdmFzY3JpcHQnLCAndHlwZXNjcmlwdCcsICdweXRob24nLCAnZ28nXSxcbiAgICAgIGNob2ljZXM6IFsnamF2YXNjcmlwdCcsICd0eXBlc2NyaXB0JywgJ3B5dGhvbicsICdnbyddLFxuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIG5hcmdzOiAxLFxuICAgICAgZGVzYzogJ1VzZSB0aGVzZSBwcmVzZXRzIHRvIHJ1biBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgdGhlIHNlbGVjdGVkIGxhbmd1YWdlcycsXG4gICAgfSlcbiAgICAub3B0aW9uKCdhcHAnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiB1bmRlZmluZWQsIGRlc2M6ICdUaGUgY3VzdG9tIENMSSBjb21tYW5kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHJ1biB0aGUgdGVzdCBmaWxlcy4gWW91IGNhbiBpbmNsdWRlIHtmaWxlUGF0aH0gdG8gc3BlY2lmeSB3aGVyZSBpbiB0aGUgY29tbWFuZCB0aGUgdGVzdCBmaWxlIHBhdGggc2hvdWxkIGJlIGluc2VydGVkLiBFeGFtcGxlOiAtLWFwcD1cInB5dGhvbjMuOCB7ZmlsZVBhdGh9XCIuJyB9KVxuICAgIC5vcHRpb24oJ3Rlc3QtcmVnZXgnLCB7IHR5cGU6ICdhcnJheScsIGRlc2M6ICdEZXRlY3QgaW50ZWdyYXRpb24gdGVzdCBmaWxlcyBtYXRjaGluZyB0aGlzIEphdmFTY3JpcHQgcmVnZXggcGF0dGVybi4gSWYgdXNlZCBtdWx0aXBsZSB0aW1lcywgYWxsIGZpbGVzIG1hdGNoaW5nIGFueSBvbmUgb2YgdGhlIHBhdHRlcm5zIGFyZSBkZXRlY3RlZC4nLCBkZWZhdWx0OiBbXSB9KVxuICAgIC5zdHJpY3QoKVxuICAgIC5wYXJzZShhcmdzKTtcblxuICBjb25zdCB0ZXN0czogc3RyaW5nW10gPSBhcmd2Ll87XG4gIGNvbnN0IHBhcmFsbGVsUmVnaW9ucyA9IGFycmF5RnJvbVlhcmdzKGFyZ3ZbJ3BhcmFsbGVsLXJlZ2lvbnMnXSk7XG4gIGNvbnN0IHRlc3RSZWdpb25zOiBzdHJpbmdbXSA9IHBhcmFsbGVsUmVnaW9ucyA/PyBbJ3VzLWVhc3QtMScsICd1cy1lYXN0LTInLCAndXMtd2VzdC0yJ107XG4gIGNvbnN0IHByb2ZpbGVzID0gYXJyYXlGcm9tWWFyZ3MoYXJndi5wcm9maWxlcyk7XG4gIGNvbnN0IGZyb21GaWxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBhcmd2Wydmcm9tLWZpbGUnXTtcbiAgY29uc3QgbWF4V29ya2VyczogbnVtYmVyID0gYXJndlsnbWF4LXdvcmtlcnMnXTtcbiAgY29uc3QgdmVyYm9zaXR5OiBudW1iZXIgPSBhcmd2LnZlcmJvc2U7XG4gIGNvbnN0IHZlcmJvc2U6IGJvb2xlYW4gPSB2ZXJib3NpdHkgPj0gMTtcblxuICBjb25zdCBudW1UZXN0cyA9IHRlc3RSZWdpb25zLmxlbmd0aCAqIChwcm9maWxlcyA/PyBbMV0pLmxlbmd0aDtcbiAgaWYgKG1heFdvcmtlcnMgPCBudW1UZXN0cykge1xuICAgIGxvZ2dlci53YXJuaW5nKCdZb3UgYXJlIGF0dGVtcHRpbmcgdG8gcnVuICVzIHRlc3RzIGluIHBhcmFsbGVsLCBidXQgb25seSBoYXZlICVzIHdvcmtlcnMuIE5vdCBhbGwgb2YgeW91ciBwcm9maWxlcytyZWdpb25zIHdpbGwgYmUgdXRpbGl6ZWQnLCBudW1UZXN0cywgbWF4V29ya2Vycyk7XG4gIH1cblxuICBpZiAodGVzdHMubGVuZ3RoID4gMCAmJiBmcm9tRmlsZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQSBsaXN0IG9mIHRlc3RzIGNhbm5vdCBiZSBwcm92aWRlZCBpZiBcIi0tZnJvbS1maWxlXCIgaXMgcHJvdmlkZWQnKTtcbiAgfVxuICBjb25zdCByZXF1ZXN0ZWRUZXN0cyA9IGZyb21GaWxlXG4gICAgPyAoZnMucmVhZEZpbGVTeW5jKGZyb21GaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSkpLnNwbGl0KCdcXG4nKS5maWx0ZXIoeCA9PiB4KVxuICAgIDogKHRlc3RzLmxlbmd0aCA+IDAgPyB0ZXN0cyA6IHVuZGVmaW5lZCk7IC8vICd1bmRlZmluZWQnIG1lYW5zIG5vIHJlcXVlc3RcblxuICByZXR1cm4ge1xuICAgIHRlc3RzOiByZXF1ZXN0ZWRUZXN0cyxcbiAgICBhcHA6IGFyZ3YuYXBwIGFzIChzdHJpbmcgfCB1bmRlZmluZWQpLFxuICAgIHRlc3RSZWdleDogYXJyYXlGcm9tWWFyZ3MoYXJndlsndGVzdC1yZWdleCddKSxcbiAgICB0ZXN0UmVnaW9ucyxcbiAgICBvcmlnaW5hbFJlZ2lvbnM6IHBhcmFsbGVsUmVnaW9ucyxcbiAgICBwcm9maWxlcyxcbiAgICBydW5VcGRhdGVPbkZhaWxlZDogKGFyZ3ZbJ3VwZGF0ZS1vbi1mYWlsZWQnXSA/PyBmYWxzZSkgYXMgYm9vbGVhbixcbiAgICBmcm9tRmlsZSxcbiAgICBleGNsdWRlOiBhcmd2LmV4Y2x1ZGUgYXMgYm9vbGVhbixcbiAgICBtYXhXb3JrZXJzLFxuICAgIGxpc3Q6IGFyZ3YubGlzdCBhcyBib29sZWFuLFxuICAgIGRpcmVjdG9yeTogYXJndi5kaXJlY3RvcnkgYXMgc3RyaW5nLFxuICAgIGluc3BlY3RGYWlsdXJlczogYXJndlsnaW5zcGVjdC1mYWlsdXJlcyddIGFzIGJvb2xlYW4sXG4gICAgdmVyYm9zaXR5LFxuICAgIHZlcmJvc2UsXG4gICAgY2xlYW46IGFyZ3YuY2xlYW4gYXMgYm9vbGVhbixcbiAgICBmb3JjZTogYXJndi5mb3JjZSBhcyBib29sZWFuLFxuICAgIGRyeVJ1bjogYXJndlsnZHJ5LXJ1biddIGFzIGJvb2xlYW4sXG4gICAgZGlzYWJsZVVwZGF0ZVdvcmtmbG93OiBhcmd2WydkaXNhYmxlLXVwZGF0ZS13b3JrZmxvdyddIGFzIGJvb2xlYW4sXG4gICAgbGFuZ3VhZ2U6IGFycmF5RnJvbVlhcmdzKGFyZ3YubGFuZ3VhZ2UpLFxuICAgIHdhdGNoOiBhcmd2LndhdGNoIGFzIGJvb2xlYW4sXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKGFyZ3M6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUNsaUFyZ3MoYXJncyk7XG5cbiAgY29uc3QgdGVzdHNGcm9tQXJncyA9IGF3YWl0IG5ldyBJbnRlZ3JhdGlvblRlc3RzKHBhdGgucmVzb2x2ZShvcHRpb25zLmRpcmVjdG9yeSkpLmZyb21DbGlPcHRpb25zKG9wdGlvbnMpO1xuXG4gIC8vIExpc3Qgb25seSBwcmludHMgdGhlIGRpc2NvdmVyZWQgdGVzdHNcbiAgaWYgKG9wdGlvbnMubGlzdCkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKHRlc3RzRnJvbUFyZ3MubWFwKHQgPT4gdC5kaXNjb3ZlcnlSZWxhdGl2ZUZpbGVOYW1lKS5qb2luKCdcXG4nKSArICdcXG4nKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwb29sID0gd29ya2VycG9vbC5wb29sKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdsaWInLCAnd29ya2VycycsICdleHRyYWN0JywgJ2luZGV4LmpzJyksIHtcbiAgICBtYXhXb3JrZXJzOiBvcHRpb25zLndhdGNoID8gMSA6IG9wdGlvbnMubWF4V29ya2VycyxcbiAgfSk7XG5cbiAgY29uc3QgdGVzdHNUb1J1bjogSW50ZWdUZXN0V29ya2VyQ29uZmlnW10gPSBbXTtcbiAgbGV0IGRlc3RydWN0aXZlQ2hhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xuICBsZXQgZmFpbGVkU25hcHNob3RzOiBJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXSA9IFtdO1xuICBsZXQgdGVzdHNTdWNjZWVkZWQgPSBmYWxzZTtcbiAgdmFsaWRhdGVXYXRjaEFyZ3Moe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgdGVzdFJlZ2lvbnM6IG9wdGlvbnMub3JpZ2luYWxSZWdpb25zLFxuICAgIHRlc3RzOiB0ZXN0c0Zyb21BcmdzLFxuICB9KTtcblxuICB0cnkge1xuICAgIGlmICghb3B0aW9ucy53YXRjaCkge1xuICAgICAgLy8gYWx3YXlzIHJ1biBzbmFwc2hvdCB0ZXN0cywgYnV0IGlmICctLWZvcmNlJyBpcyBwYXNzZWQgdGhlblxuICAgICAgLy8gcnVuIGludGVncmF0aW9uIHRlc3RzIG9uIGFsbCBmYWlsZWQgdGVzdHMsIG5vdCBqdXN0IHRob3NlIHRoYXRcbiAgICAgIC8vIGZhaWxlZCBzbmFwc2hvdCB0ZXN0c1xuICAgICAgZmFpbGVkU25hcHNob3RzID0gYXdhaXQgcnVuU25hcHNob3RUZXN0cyhwb29sLCB0ZXN0c0Zyb21BcmdzLCB7XG4gICAgICAgIHJldGFpbjogb3B0aW9ucy5pbnNwZWN0RmFpbHVyZXMsXG4gICAgICAgIHZlcmJvc2U6IG9wdGlvbnMudmVyYm9zZSxcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBmYWlsdXJlIG9mIGZhaWxlZFNuYXBzaG90cykge1xuICAgICAgICBsb2dnZXIud2FybmluZyhgRmFpbGVkOiAke2ZhaWx1cmUuZmlsZU5hbWV9YCk7XG4gICAgICAgIGlmIChmYWlsdXJlLmRlc3RydWN0aXZlQ2hhbmdlcyAmJiBmYWlsdXJlLmRlc3RydWN0aXZlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcHJpbnREZXN0cnVjdGl2ZUNoYW5nZXMoZmFpbHVyZS5kZXN0cnVjdGl2ZUNoYW5nZXMpO1xuICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghb3B0aW9ucy5mb3JjZSkge1xuICAgICAgICB0ZXN0c1RvUnVuLnB1c2goLi4uZmFpbGVkU25hcHNob3RzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGlmIGFueSBvZiB0aGUgdGVzdCBmYWlsZWQgc25hcHNob3QgdGVzdHMsIGtlZXAgdGhvc2UgcmVzdWx0c1xuICAgICAgICAvLyBhbmQgbWVyZ2Ugd2l0aCB0aGUgcmVzdCBvZiB0aGUgdGVzdHMgZnJvbSBhcmdzXG4gICAgICAgIHRlc3RzVG9SdW4ucHVzaCguLi5tZXJnZVRlc3RzKHRlc3RzRnJvbUFyZ3MubWFwKHQgPT4gdC5pbmZvKSwgZmFpbGVkU25hcHNob3RzKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRlc3RzVG9SdW4ucHVzaCguLi50ZXN0c0Zyb21BcmdzLm1hcCh0ID0+IHQuaW5mbykpO1xuICAgIH1cblxuICAgIC8vIHJ1biBpbnRlZ3JhdGlvbiB0ZXN0cyBpZiBgLS11cGRhdGUtb24tZmFpbGVkYCBPUiBgLS1mb3JjZWAgaXMgdXNlZFxuICAgIGlmIChvcHRpb25zLnJ1blVwZGF0ZU9uRmFpbGVkIHx8IG9wdGlvbnMuZm9yY2UpIHtcbiAgICAgIGNvbnN0IHsgc3VjY2VzcywgbWV0cmljcyB9ID0gYXdhaXQgcnVuSW50ZWdyYXRpb25UZXN0cyh7XG4gICAgICAgIHBvb2wsXG4gICAgICAgIHRlc3RzOiB0ZXN0c1RvUnVuLFxuICAgICAgICByZWdpb25zOiBvcHRpb25zLnRlc3RSZWdpb25zLFxuICAgICAgICBwcm9maWxlczogb3B0aW9ucy5wcm9maWxlcyxcbiAgICAgICAgY2xlYW46IG9wdGlvbnMuY2xlYW4sXG4gICAgICAgIGRyeVJ1bjogb3B0aW9ucy5kcnlSdW4sXG4gICAgICAgIHZlcmJvc2l0eTogb3B0aW9ucy52ZXJib3NpdHksXG4gICAgICAgIHVwZGF0ZVdvcmtmbG93OiAhb3B0aW9ucy5kaXNhYmxlVXBkYXRlV29ya2Zsb3csXG4gICAgICAgIHdhdGNoOiBvcHRpb25zLndhdGNoLFxuICAgICAgfSk7XG4gICAgICB0ZXN0c1N1Y2NlZWRlZCA9IHN1Y2Nlc3M7XG5cbiAgICAgIGlmIChvcHRpb25zLmNsZWFuID09PSBmYWxzZSkge1xuICAgICAgICBsb2dnZXIud2FybmluZygnTm90IGNsZWFuaW5nIHVwIHN0YWNrcyBzaW5jZSBcIi0tbm8tY2xlYW5cIiB3YXMgdXNlZCcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoQm9vbGVhbihvcHRpb25zLnZlcmJvc2UpKSB7XG4gICAgICAgIHByaW50TWV0cmljcyhtZXRyaWNzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU29tZSBpbnRlZ3JhdGlvbiB0ZXN0cyBmYWlsZWQhJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLndhdGNoKSB7XG4gICAgICBhd2FpdCB3YXRjaEludGVncmF0aW9uVGVzdChwb29sLCB7XG4gICAgICAgIHdhdGNoOiB0cnVlLFxuICAgICAgICB2ZXJib3NpdHk6IG9wdGlvbnMudmVyYm9zaXR5LFxuICAgICAgICAuLi50ZXN0c1RvUnVuWzBdLFxuICAgICAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGVzID8gb3B0aW9ucy5wcm9maWxlc1swXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVnaW9uOiBvcHRpb25zLnRlc3RSZWdpb25zWzBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHZvaWQgcG9vbC50ZXJtaW5hdGUoKTtcbiAgfVxuXG4gIGlmIChkZXN0cnVjdGl2ZUNoYW5nZXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWUgY2hhbmdlcyB3ZXJlIGRlc3RydWN0aXZlIScpO1xuICB9XG4gIGlmIChmYWlsZWRTbmFwc2hvdHMubGVuZ3RoID4gMCkge1xuICAgIGxldCBtZXNzYWdlID0gJyc7XG4gICAgaWYgKCFvcHRpb25zLnJ1blVwZGF0ZU9uRmFpbGVkKSB7XG4gICAgICBtZXNzYWdlID0gJ1RvIHJlLXJ1biBmYWlsZWQgdGVzdHMgcnVuOiBpbnRlZy1ydW5uZXIgLS11cGRhdGUtb24tZmFpbGVkJztcbiAgICB9XG4gICAgaWYgKCF0ZXN0c1N1Y2NlZWRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21lIHRlc3RzIGZhaWxlZCFcXG4ke21lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlV2F0Y2hBcmdzKGFyZ3M6IHtcbiAgdGVzdHM6IEludGVnVGVzdFtdO1xuICB0ZXN0UmVnaW9ucz86IHN0cmluZ1tdO1xuICBwcm9maWxlcz86IHN0cmluZ1tdO1xuICBtYXhXb3JrZXJzOiBudW1iZXI7XG4gIGZvcmNlOiBib29sZWFuO1xuICBkcnlSdW46IGJvb2xlYW47XG4gIGRpc2FibGVVcGRhdGVXb3JrZmxvdzogYm9vbGVhbjtcbiAgcnVuVXBkYXRlT25GYWlsZWQ6IGJvb2xlYW47XG4gIHdhdGNoOiBib29sZWFuO1xufSkge1xuICBpZiAoYXJncy53YXRjaCkge1xuICAgIGlmIChcbiAgICAgIChhcmdzLnRlc3RSZWdpb25zICYmIGFyZ3MudGVzdFJlZ2lvbnMubGVuZ3RoID4gMSlcbiAgICAgICAgfHwgKGFyZ3MucHJvZmlsZXMgJiYgYXJncy5wcm9maWxlcy5sZW5ndGggPiAxKVxuICAgICAgICB8fCBhcmdzLnRlc3RzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUnVubmluZyB3aXRoIHdhdGNoIG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgdGVzdC4gT25seSBwcm92aWRlIGEgc2luZ2xlIG9wdGlvbicrXG4gICAgICAgICd0byBgLS1wcm9maWxlc2AgYC0tcGFyYWxsZWwtcmVnaW9uc2AgYC0tbWF4LXdvcmtlcnMnKTtcbiAgICB9XG5cbiAgICBpZiAoYXJncy5ydW5VcGRhdGVPbkZhaWxlZCB8fCBhcmdzLmRpc2FibGVVcGRhdGVXb3JrZmxvdyB8fCBhcmdzLmZvcmNlIHx8IGFyZ3MuZHJ5UnVuKSB7XG4gICAgICBsb2dnZXIud2FybmluZygnYXJncyBgLS11cGRhdGUtb24tZmFpbGVkYCwgYC0tZGlzYWJsZS11cGRhdGUtd29ya2Zsb3dgLCBgLS1mb3JjZWAsIGAtLWRyeS1ydW5gIGhhdmUgbm8gZWZmZWN0IHdoZW4gcnVubmluZyB3aXRoIGAtLXdhdGNoYCcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludERlc3RydWN0aXZlQ2hhbmdlcyhjaGFuZ2VzOiBEZXN0cnVjdGl2ZUNoYW5nZVtdKTogdm9pZCB7XG4gIGlmIChjaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICBsb2dnZXIud2FybmluZygnISEhIFRoaXMgdGVzdCBjb250YWlucyAlcyAhISEnLCBjaGFsay5ib2xkKCdkZXN0cnVjdGl2ZSBjaGFuZ2VzJykpO1xuICAgIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgbG9nZ2VyLndhcm5pbmcoJyAgICBTdGFjazogJXMgLSBSZXNvdXJjZTogJXMgLSBJbXBhY3Q6ICVzJywgY2hhbmdlLnN0YWNrTmFtZSwgY2hhbmdlLmxvZ2ljYWxJZCwgY2hhbmdlLmltcGFjdCk7XG4gICAgfSk7XG4gICAgbG9nZ2VyLndhcm5pbmcoJyEhISBJZiB0aGVzZSBkZXN0cnVjdGl2ZSBjaGFuZ2VzIGFyZSBuZWNlc3NhcnksIHBsZWFzZSBpbmRpY2F0ZSB0aGlzIG9uIHRoZSBQUiAhISEnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludE1ldHJpY3MobWV0cmljczogSW50ZWdSdW5uZXJNZXRyaWNzW10pOiB2b2lkIHtcbiAgbG9nZ2VyLmhpZ2hsaWdodCgnICAgLS0tIEludGVncmF0aW9uIHRlc3QgbWV0cmljcyAtLS0nKTtcbiAgY29uc3Qgc29ydGVkTWV0cmljcyA9IG1ldHJpY3Muc29ydCgoYSwgYikgPT4gYS5kdXJhdGlvbiAtIGIuZHVyYXRpb24pO1xuICBzb3J0ZWRNZXRyaWNzLmZvckVhY2gobWV0cmljID0+IHtcbiAgICBsb2dnZXIucHJpbnQoJ1Byb2ZpbGUgJXMgKyBSZWdpb24gJXMgdG90YWwgdGltZTogJXMnLCBtZXRyaWMucHJvZmlsZSwgbWV0cmljLnJlZ2lvbiwgbWV0cmljLmR1cmF0aW9uKTtcbiAgICBjb25zdCBzb3J0ZWRUZXN0cyA9IE9iamVjdC5lbnRyaWVzKG1ldHJpYy50ZXN0cykuc29ydCgoYSwgYikgPT4gYVsxXSAtIGJbMV0pO1xuICAgIHNvcnRlZFRlc3RzLmZvckVhY2godGVzdCA9PiBsb2dnZXIucHJpbnQoJyAgJXM6ICVzJywgdGVzdFswXSwgdGVzdFsxXSkpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBUcmFuc2xhdGUgYSBZYXJncyBpbnB1dCBhcnJheSB0byBzb21ldGhpbmcgdGhhdCBtYWtlcyBtb3JlIHNlbnNlIGluIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VcbiAqIG1vZGVsICh0ZWxsaW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYWJzZW5jZSBhbmQgYW4gZW1wdHkgYXJyYXkpXG4gKlxuICogLSBBbiBlbXB0eSBhcnJheSBpcyB0aGUgZGVmYXVsdCBjYXNlLCBtZWFuaW5nIHRoZSB1c2VyIGRpZG4ndCBwYXNzIGFueSBhcmd1bWVudHMuIFdlIHJldHVyblxuICogICB1bmRlZmluZWQuXG4gKiAtIElmIHRoZSB1c2VyIHBhc3NlZCBhIHNpbmdsZSBlbXB0eSBzdHJpbmcsIHRoZXkgZGlkIHNvbWV0aGluZyBsaWtlIGAtLWFycmF5PWAsIHdoaWNoIHdlJ2xsXG4gKiAgIHRha2UgdG8gbWVhbiB0aGV5IHBhc3NlZCBhbiBlbXB0eSBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlGcm9tWWFyZ3MoeHM6IHN0cmluZ1tdKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICBpZiAoeHMubGVuZ3RoID09PSAwKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgcmV0dXJuIHhzLmZpbHRlcih4ID0+IHggIT09ICcnKTtcbn1cblxuLyoqXG4gKiBNZXJnZSB0aGUgdGVzdHMgd2UgcmVjZWl2ZWQgZnJvbSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHdpdGhcbiAqIHRlc3RzIHRoYXQgZmFpbGVkIHNuYXBzaG90IHRlc3RzLiBUaGUgZmFpbGVkIHNuYXBzaG90IHRlc3RzIGhhdmUgYWRkaXRpb25hbFxuICogaW5mb3JtYXRpb24gdGhhdCB3ZSB3YW50IHRvIGtlZXAgc28gdGhpcyBzaG91bGQgb3ZlcnJpZGUgYW55IHRlc3QgZnJvbSBhcmdzXG4gKi9cbmZ1bmN0aW9uIG1lcmdlVGVzdHModGVzdEZyb21BcmdzOiBJbnRlZ1Rlc3RJbmZvW10sIGZhaWxlZFNuYXBzaG90VGVzdHM6IEludGVnVGVzdFdvcmtlckNvbmZpZ1tdKTogSW50ZWdUZXN0V29ya2VyQ29uZmlnW10ge1xuICBjb25zdCBmYWlsZWRUZXN0TmFtZXMgPSBuZXcgU2V0KGZhaWxlZFNuYXBzaG90VGVzdHMubWFwKHRlc3QgPT4gdGVzdC5maWxlTmFtZSkpO1xuICBjb25zdCBmaW5hbDogSW50ZWdUZXN0V29ya2VyQ29uZmlnW10gPSBmYWlsZWRTbmFwc2hvdFRlc3RzO1xuICBmaW5hbC5wdXNoKC4uLnRlc3RGcm9tQXJncy5maWx0ZXIodGVzdCA9PiAhZmFpbGVkVGVzdE5hbWVzLmhhcyh0ZXN0LmZpbGVOYW1lKSkpO1xuICByZXR1cm4gZmluYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGkoYXJnczogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpIHtcbiAgbWFpbihhcmdzKS50aGVuKCkuY2F0Y2goZXJyID0+IHtcbiAgICBsb2dnZXIuZXJyb3IoZXJyKTtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmVhZCBDTEkgb3B0aW9ucyBmcm9tIGEgY29uZmlnIGZpbGUgaWYgcHJvdmlkZWQuXG4gKlxuICogQHJldHVybnMgcGFyc2VkIENMSSBjb25maWcgb3B0aW9uc1xuICovXG5mdW5jdGlvbiBjb25maWdGcm9tRmlsZShmaWxlTmFtZT86IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAoIWZpbGVOYW1lKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZU5hbWUsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cbiJdfQ==
|
|
@@ -63,5 +63,6 @@
|
|
|
63
63
|
"@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": true,
|
|
64
64
|
"@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": true,
|
|
65
65
|
"@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": true,
|
|
66
|
-
"@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true
|
|
66
|
+
"@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true,
|
|
67
|
+
"@aws-cdk/core:enableAdditionalMetadataCollection": true
|
|
67
68
|
}
|
|
@@ -245,4 +245,4 @@ class AssemblyManifestReader {
|
|
|
245
245
|
}
|
|
246
246
|
exports.AssemblyManifestReader = AssemblyManifestReader;
|
|
247
247
|
AssemblyManifestReader.DEFAULT_FILENAME = 'manifest.json';
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsMEVBQTJRO0FBQzNRLGtFQUEyRztBQUMzRywrQkFBK0I7QUFlL0I7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUdqQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRCxPQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0UsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUM7WUFDSCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsZ0JBQWdC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SCxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFxQjs7UUFDM0MsTUFBTSxZQUFZLEdBQXVDLEVBQUUsQ0FBQztRQUM1RCxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxtQ0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ25GLElBQUksVUFBVSxHQUEyQixTQUFTLENBQUM7WUFDbkQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLG9DQUFZLENBQUMsd0JBQXdCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3JFLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ3pCLEdBQUcsUUFBUTtnQkFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUM7YUFDNUQsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOztBQWpQSCx3REFrUEM7QUFqUHdCLHVDQUFnQixHQUFHLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBc3NlbWJseU1hbmlmZXN0LCBNYW5pZmVzdCwgQXJ0aWZhY3RUeXBlLCBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcywgQXJ0aWZhY3RNYW5pZmVzdCwgTWV0YWRhdGFFbnRyeSwgQXNzZXRNYW5pZmVzdFByb3BlcnRpZXMsIEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUsIENvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5LCBGaWxlQXNzZXRNZXRhZGF0YUVudHJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IEFzc2V0TWFuaWZlc3QsIEZpbGVNYW5pZmVzdEVudHJ5LCBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkgfSBmcm9tICdjZGstYXNzZXRzL2xpYi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qKlxuICogVHJhY2UgaW5mb3JtYXRpb24gZm9yIHN0YWNrXG4gKiBtYXAgb2YgcmVzb3VyY2UgbG9naWNhbElkIHRvIHRyYWNlIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tUcmFjZSA9IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogVHJhY2UgaW5mb3JtYXRpb24gZm9yIGEgYXNzZW1ibHlcbiAqXG4gKiBtYXAgb2Ygc3RhY2tJZCB0byBTdGFja1RyYWNlXG4gKi9cbmV4cG9ydCB0eXBlIE1hbmlmZXN0VHJhY2UgPSBNYXA8c3RyaW5nLCBTdGFja1RyYWNlPjtcblxuLyoqXG4gKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZJTEVOQU1FID0gJ21hbmlmZXN0Lmpzb24nO1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0IGZyb20gYSBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GaWxlKGZpbGVOYW1lOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb2JqID0gTWFuaWZlc3QubG9hZEFzc2VtYmx5TWFuaWZlc3QoZmlsZU5hbWUpO1xuICAgICAgcmV0dXJuIG5ldyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyKHBhdGguZGlybmFtZShmaWxlTmFtZSksIG9iaiwgZmlsZU5hbWUpO1xuXG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGludGVnIG1hbmlmZXN0ICcke2ZpbGVOYW1lfSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0IGZyb20gYSBmaWxlIG9yIGEgZGlyZWN0b3J5XG4gICAqIElmIHRoZSBnaXZlbiBmaWxlUGF0aCBpcyBhIGRpcmVjdG9yeSB0aGVuIGl0IHdpbGwgbG9vayBmb3JcbiAgICogYSBmaWxlIHdpdGhpbiB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIERFRkFVTFRfRklMRU5BTUVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBhdGgoZmlsZVBhdGg6IHN0cmluZyk6IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIge1xuICAgIGxldCBzdDtcbiAgICB0cnkge1xuICAgICAgc3QgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGludGVnIG1hbmlmZXN0IGF0ICcke2ZpbGVQYXRofSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBpZiAoc3QuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0dXJuIEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIuZnJvbUZpbGUocGF0aC5qb2luKGZpbGVQYXRoLCBBc3NlbWJseU1hbmlmZXN0UmVhZGVyLkRFRkFVTFRfRklMRU5BTUUpKTtcbiAgICB9XG4gICAgcmV0dXJuIEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIuZnJvbUZpbGUoZmlsZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1hbmlmZXN0IHdhcyBmb3VuZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRpcmVjdG9yeTogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG1hbmlmZXN0OiBBc3NlbWJseU1hbmlmZXN0LCBwcml2YXRlIHJlYWRvbmx5IG1hbmlmZXN0RmlsZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RhY2tzIGZyb20gdGhlIG1hbmlmZXN0XG4gICAqIHJldHVybnMgYSBtYXAgb2YgYXJ0aWZhY3RJZCB0byBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgKi9cbiAgcHVibGljIGdldCBzdGFja3MoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3Qgc3RhY2tzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBbYXJ0aWZhY3RJZCwgYXJ0aWZhY3RdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWFuaWZlc3QuYXJ0aWZhY3RzID8/IHt9KSkge1xuICAgICAgaWYgKGFydGlmYWN0LnR5cGUgIT09IEFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0spIHsgY29udGludWU7IH1cbiAgICAgIGNvbnN0IHByb3BzID0gYXJ0aWZhY3QucHJvcGVydGllcyBhcyBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcztcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSBmcy5yZWFkSlNPTlN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGlyZWN0b3J5LCBwcm9wcy50ZW1wbGF0ZUZpbGUpKTtcbiAgICAgIHN0YWNrc1thcnRpZmFjdElkXSA9IHRlbXBsYXRlO1xuICAgIH1cbiAgICByZXR1cm4gc3RhY2tzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmVzdGVkIHN0YWNrcyBmb3IgYSBnaXZlbiBzdGFja1xuICAgKiByZXR1cm5zIGEgbWFwIG9mIGFydGlmYWN0SWQgdG8gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBnZXROZXN0ZWRTdGFja3NGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCBuZXN0ZWRUZW1wbGF0ZXM6IHN0cmluZ1tdID0gdGhpcy5nZXRBc3NldE1hbmlmZXN0c0ZvclN0YWNrKHN0YWNrSWQpLmZsYXRNYXAoXG4gICAgICBtYW5pZmVzdCA9PiBtYW5pZmVzdC5maWxlc1xuICAgICAgICAuZmlsdGVyKGFzc2V0ID0+IGFzc2V0LnNvdXJjZS5wYXRoPy5lbmRzV2l0aCgnLm5lc3RlZC50ZW1wbGF0ZS5qc29uJykpXG4gICAgICAgIC5tYXAoYXNzZXQgPT4gYXNzZXQuc291cmNlLnBhdGghKSxcbiAgICApO1xuXG4gICAgY29uc3QgbmVzdGVkU3RhY2tzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gT2JqZWN0LmZyb21FbnRyaWVzKG5lc3RlZFRlbXBsYXRlcy5tYXAodGVtcGxhdGVGaWxlID0+IChbXG4gICAgICB0ZW1wbGF0ZUZpbGUuc3BsaXQoJy4nLCAxKVswXSxcbiAgICAgIGZzLnJlYWRKU09OU3luYyhwYXRoLnJlc29sdmUodGhpcy5kaXJlY3RvcnksIHRlbXBsYXRlRmlsZSkpLFxuICAgIF0pKSk7XG5cbiAgICByZXR1cm4gbmVzdGVkU3RhY2tzO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlIHRyYWNlIGRhdGEgdG8gdGhlIGFzc2VtYmx5IG1hbmlmZXN0IG1ldGFkYXRhXG4gICAqL1xuICBwdWJsaWMgcmVjb3JkVHJhY2UodHJhY2U6IE1hbmlmZXN0VHJhY2UpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdNYW5pZmVzdCA9IHtcbiAgICAgIC4uLnRoaXMubWFuaWZlc3QsXG4gICAgICBhcnRpZmFjdHM6IHRoaXMucmVuZGVyQXJ0aWZhY3RzKHRyYWNlKSxcbiAgICB9O1xuICAgIE1hbmlmZXN0LnNhdmVBc3NlbWJseU1hbmlmZXN0KG5ld01hbmlmZXN0LCB0aGlzLm1hbmlmZXN0RmlsZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGxpc3Qgb2YgYXNzZXRzIGZvciBhIGdpdmVuIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgZ2V0QXNzZXRJZHNGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgYXNzZXRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgYXJ0aWZhY3Qgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSkpIHtcbiAgICAgIGlmIChhcnRpZmFjdC50eXBlID09PSBBcnRpZmFjdFR5cGUuQVNTRVRfTUFOSUZFU1QgJiYgKGFydGlmYWN0LnByb3BlcnRpZXMgYXMgQXNzZXRNYW5pZmVzdFByb3BlcnRpZXMpPy5maWxlID09PSBgJHtzdGFja0lkfS5hc3NldHMuanNvbmApIHtcbiAgICAgICAgYXNzZXRzLnB1c2goLi4udGhpcy5hc3NldHNGcm9tQXNzZXRNYW5pZmVzdChhcnRpZmFjdCkubWFwKGFzc2V0ID0+IGFzc2V0LmlkLmFzc2V0SWQpKTtcbiAgICAgIH0gZWxzZSBpZiAoYXJ0aWZhY3QudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkFXU19DTE9VREZPUk1BVElPTl9TVEFDSykge1xuICAgICAgICBhc3NldHMucHVzaCguLi50aGlzLmFzc2V0c0Zyb21Bc3NlbWJseU1hbmlmZXN0KGFydGlmYWN0KS5tYXAoYXNzZXQgPT4gYXNzZXQuaWQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFzc2V0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3IgYSBnaXZlbiBzdGFja0lkIHJldHVybiBhIGxpc3Qgb2YgYXNzZXRzIHRoYXQgYmVsb25nIHRvIHRoZSBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldEFzc2V0TG9jYXRpb25zRm9yU3RhY2soc3RhY2tJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGFzc2V0czogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIE9iamVjdC52YWx1ZXModGhpcy5tYW5pZmVzdC5hcnRpZmFjdHMgPz8ge30pKSB7XG4gICAgICBpZiAoYXJ0aWZhY3QudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkFTU0VUX01BTklGRVNUICYmIChhcnRpZmFjdC5wcm9wZXJ0aWVzIGFzIEFzc2V0TWFuaWZlc3RQcm9wZXJ0aWVzKT8uZmlsZSA9PT0gYCR7c3RhY2tJZH0uYXNzZXRzLmpzb25gKSB7XG4gICAgICAgIGFzc2V0cy5wdXNoKC4uLnRoaXMuYXNzZXRzRnJvbUFzc2V0TWFuaWZlc3QoYXJ0aWZhY3QpLmZsYXRNYXAoYXNzZXQgPT4ge1xuICAgICAgICAgIGlmIChhc3NldC50eXBlID09PSAnZmlsZScgJiYgIWFzc2V0LnNvdXJjZS5wYXRoPy5lbmRzV2l0aCgnbmVzdGVkLnRlbXBsYXRlLmpzb24nKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFzc2V0LnNvdXJjZS5wYXRoITtcbiAgICAgICAgICB9IGVsc2UgaWYgKGFzc2V0LnR5cGUgIT09ICdmaWxlJykge1xuICAgICAgICAgICAgcmV0dXJuIGFzc2V0LnNvdXJjZS5kaXJlY3RvcnkhO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0pKTtcbiAgICAgIH0gZWxzZSBpZiAoYXJ0aWZhY3QudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkFXU19DTE9VREZPUk1BVElPTl9TVEFDSykge1xuICAgICAgICBhc3NldHMucHVzaCguLi50aGlzLmFzc2V0c0Zyb21Bc3NlbWJseU1hbmlmZXN0KGFydGlmYWN0KS5tYXAoYXNzZXQgPT4gYXNzZXQucGF0aCkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXNzZXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIGxpc3Qgb2YgYXNzZXQgYXJ0aWZhY3RzIGZvciBhIGdpdmVuIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgZ2V0QXNzZXRNYW5pZmVzdHNGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBBc3NldE1hbmlmZXN0W10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubWFuaWZlc3QuYXJ0aWZhY3RzID8/IHt9KVxuICAgICAgLmZpbHRlcihhcnRpZmFjdCA9PlxuICAgICAgICBhcnRpZmFjdC50eXBlID09PSBBcnRpZmFjdFR5cGUuQVNTRVRfTUFOSUZFU1QgJiYgKGFydGlmYWN0LnByb3BlcnRpZXMgYXMgQXNzZXRNYW5pZmVzdFByb3BlcnRpZXMpPy5maWxlID09PSBgJHtzdGFja0lkfS5hc3NldHMuanNvbmApXG4gICAgICAubWFwKGFydGlmYWN0ID0+IHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSAoYXJ0aWZhY3QucHJvcGVydGllcyBhcyBBc3NldE1hbmlmZXN0UHJvcGVydGllcykuZmlsZTtcbiAgICAgICAgcmV0dXJuIEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUocGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5LCBmaWxlTmFtZSkpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBhc3NldHMgZnJvbSB0aGUgYXNzZW1ibHkgbWFuaWZlc3RcbiAgICovXG4gIHByaXZhdGUgYXNzZXRzRnJvbUFzc2VtYmx5TWFuaWZlc3QoYXJ0aWZhY3Q6IEFydGlmYWN0TWFuaWZlc3QpOiAoQ29udGFpbmVySW1hZ2VBc3NldE1ldGFkYXRhRW50cnkgfCBGaWxlQXNzZXRNZXRhZGF0YUVudHJ5KVtdIHtcbiAgICBjb25zdCBhc3NldHM6IChDb250YWluZXJJbWFnZUFzc2V0TWV0YWRhdGFFbnRyeSB8IEZpbGVBc3NldE1ldGFkYXRhRW50cnkpW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIE9iamVjdC52YWx1ZXMoYXJ0aWZhY3QubWV0YWRhdGEgPz8ge30pKSB7XG4gICAgICBtZXRhZGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBBcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLkFTU0VUKSB7XG4gICAgICAgICAgY29uc3QgYXNzZXQgPSAoZGF0YS5kYXRhIGFzIENvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5IHwgRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSk7XG4gICAgICAgICAgaWYgKGFzc2V0LnBhdGguc3RhcnRzV2l0aCgnYXNzZXQuJykpIHtcbiAgICAgICAgICAgIGFzc2V0cy5wdXNoKGFzc2V0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYXNzZXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYXNzZXRzIGZyb20gdGhlIGFzc2V0IG1hbmlmZXN0XG4gICAqL1xuICBwcml2YXRlIGFzc2V0c0Zyb21Bc3NldE1hbmlmZXN0KGFydGlmYWN0OiBBcnRpZmFjdE1hbmlmZXN0KTogKEZpbGVNYW5pZmVzdEVudHJ5IHwgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5KVtdIHtcbiAgICBjb25zdCBhc3NldHM6IChGaWxlTWFuaWZlc3RFbnRyeSB8IERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSlbXSA9IFtdO1xuICAgIGNvbnN0IGZpbGVOYW1lID0gKGFydGlmYWN0LnByb3BlcnRpZXMgYXMgQXNzZXRNYW5pZmVzdFByb3BlcnRpZXMpLmZpbGU7XG4gICAgY29uc3QgYXNzZXRNYW5pZmVzdCA9IEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUocGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5LCBmaWxlTmFtZSkpO1xuICAgIGFzc2V0TWFuaWZlc3QuZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgIGlmIChlbnRyeS50eXBlID09PSAnZmlsZScpIHtcbiAgICAgICAgY29uc3Qgc291cmNlID0gKGVudHJ5IGFzIEZpbGVNYW5pZmVzdEVudHJ5KS5zb3VyY2U7XG4gICAgICAgIGlmIChzb3VyY2UucGF0aCAmJiAoc291cmNlLnBhdGguc3RhcnRzV2l0aCgnYXNzZXQuJykgfHwgc291cmNlLnBhdGguZW5kc1dpdGgoJ25lc3RlZC50ZW1wbGF0ZS5qc29uJykpKSB7XG4gICAgICAgICAgYXNzZXRzLnB1c2goZW50cnkgYXMgRmlsZU1hbmlmZXN0RW50cnkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVudHJ5LnR5cGUgPT09ICdkb2NrZXItaW1hZ2UnKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IChlbnRyeSBhcyBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkpLnNvdXJjZTtcbiAgICAgICAgaWYgKHNvdXJjZS5kaXJlY3RvcnkgJiYgc291cmNlLmRpcmVjdG9yeS5zdGFydHNXaXRoKCdhc3NldC4nKSkge1xuICAgICAgICAgIGFzc2V0cy5wdXNoKGVudHJ5IGFzIERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYXNzZXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIHRoZSBtYW5pZmVzdCBvZiBhbnkgdW5uZWNjZXNhcnkgZGF0YS4gQ3VycmVudGx5IHRoYXQgaW5jbHVkZXNcbiAgICogdGhlIG1ldGFkYXRhIHRyYWNlIGluZm9ybWF0aW9uIHNpbmNlIHRoaXMgaW5jbHVkZXMgdHJhY2UgaW5mb3JtYXRpb24gbGlrZVxuICAgKiBmaWxlIHN5c3RlbSBsb2NhdGlvbnMgYW5kIGZpbGUgbGluZXMgdGhhdCB3aWxsIGNoYW5nZSBkZXBlbmRpbmcgb24gd2hhdCBtYWNoaW5lIHRoZSB0ZXN0IGlzIHJ1biBvblxuICAgKi9cbiAgcHVibGljIGNsZWFuTWFuaWZlc3QoKTogdm9pZCB7XG4gICAgY29uc3QgbmV3TWFuaWZlc3QgPSB7XG4gICAgICAuLi50aGlzLm1hbmlmZXN0LFxuICAgICAgYXJ0aWZhY3RzOiB0aGlzLnJlbmRlckFydGlmYWN0cygpLFxuICAgIH07XG4gICAgTWFuaWZlc3Quc2F2ZUFzc2VtYmx5TWFuaWZlc3QobmV3TWFuaWZlc3QsIHRoaXMubWFuaWZlc3RGaWxlTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFydGlmYWN0TWV0YWRhdGEoYXJ0aWZhY3Q6IEFydGlmYWN0TWFuaWZlc3QsIHRyYWNlPzogU3RhY2tUcmFjZSk6IHsgW2lkOiBzdHJpbmddOiBNZXRhZGF0YUVudHJ5W10gfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbmV3TWV0YWRhdGE6IHsgW2lkOiBzdHJpbmddOiBNZXRhZGF0YUVudHJ5W10gfSA9IHt9O1xuICAgIGlmICghYXJ0aWZhY3QubWV0YWRhdGEpIHJldHVybiBhcnRpZmFjdC5tZXRhZGF0YTtcbiAgICBmb3IgKGNvbnN0IFttZXRhZGF0YUlkLCBtZXRhZGF0YUVudHJ5XSBvZiBPYmplY3QuZW50cmllcyhhcnRpZmFjdC5tZXRhZGF0YSA/PyB7fSkpIHtcbiAgICAgIG5ld01ldGFkYXRhW21ldGFkYXRhSWRdID0gbWV0YWRhdGFFbnRyeS5tYXAoKG1ldGE6IE1ldGFkYXRhRW50cnkpID0+IHtcbiAgICAgICAgaWYgKG1ldGEudHlwZSA9PT0gJ2F3czpjZGs6bG9naWNhbElkJyAmJiB0cmFjZSAmJiBtZXRhLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB0cmFjZURhdGEgPSB0cmFjZS5nZXQobWV0YS5kYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIGlmICh0cmFjZURhdGEpIHtcbiAgICAgICAgICAgIHRyYWNlLmRlbGV0ZShtZXRhLmRhdGEudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiBtZXRhLnR5cGUsXG4gICAgICAgICAgICAgIGRhdGE6IG1ldGEuZGF0YSxcbiAgICAgICAgICAgICAgdHJhY2U6IFt0cmFjZURhdGFdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmV0dXJuIG1ldGFkYXRhIHdpdGhvdXQgdGhlIHRyYWNlIGRhdGFcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBtZXRhLnR5cGUsXG4gICAgICAgICAgZGF0YTogbWV0YS5kYXRhLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0cmFjZSAmJiB0cmFjZS5zaXplID4gMCkge1xuICAgICAgZm9yIChjb25zdCBbaWQsIGRhdGFdIG9mIHRyYWNlLmVudHJpZXMoKSkge1xuICAgICAgICBuZXdNZXRhZGF0YVtpZF0gPSBbe1xuICAgICAgICAgIHR5cGU6ICdhd3M6Y2RrOmxvZ2ljYWxJZCcsXG4gICAgICAgICAgZGF0YTogaWQsXG4gICAgICAgICAgdHJhY2U6IFtkYXRhXSxcbiAgICAgICAgfV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdNZXRhZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXJ0aWZhY3RzKHRyYWNlPzogTWFuaWZlc3RUcmFjZSk6IHsgW2lkOiBzdHJpbmddOiBBcnRpZmFjdE1hbmlmZXN0IH0gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG5ld0FydGlmYWN0czogeyBbaWQ6IHN0cmluZ106IEFydGlmYWN0TWFuaWZlc3QgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgW2FydGlmYWN0SWQsIGFydGlmYWN0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSkpIHtcbiAgICAgIGxldCBzdGFja1RyYWNlOiBTdGFja1RyYWNlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKGFydGlmYWN0LnR5cGUgPT09IEFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0sgJiYgdHJhY2UpIHtcbiAgICAgICAgc3RhY2tUcmFjZSA9IHRyYWNlLmdldChhcnRpZmFjdElkKTtcbiAgICAgIH1cbiAgICAgIG5ld0FydGlmYWN0c1thcnRpZmFjdElkXSA9IHtcbiAgICAgICAgLi4uYXJ0aWZhY3QsXG4gICAgICAgIG1ldGFkYXRhOiB0aGlzLnJlbmRlckFydGlmYWN0TWV0YWRhdGEoYXJ0aWZhY3QsIHN0YWNrVHJhY2UpLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld0FydGlmYWN0cztcbiAgfVxufVxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbG91ZC1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsMEVBQTJRO0FBQzNRLGtFQUEyRztBQUMzRywrQkFBK0I7QUFlL0I7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUdqQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRCxPQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUM7WUFDSCxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsZ0JBQWdC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SCxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFxQjs7UUFDM0MsTUFBTSxZQUFZLEdBQXVDLEVBQUUsQ0FBQztRQUM1RCxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxtQ0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ25GLElBQUksVUFBVSxHQUEyQixTQUFTLENBQUM7WUFDbkQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLG9DQUFZLENBQUMsd0JBQXdCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3JFLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ3pCLEdBQUcsUUFBUTtnQkFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUM7YUFDNUQsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOztBQWhQSCx3REFpUEM7QUFoUHdCLHVDQUFnQixHQUFHLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBc3NlbWJseU1hbmlmZXN0LCBNYW5pZmVzdCwgQXJ0aWZhY3RUeXBlLCBBd3NDbG91ZEZvcm1hdGlvblN0YWNrUHJvcGVydGllcywgQXJ0aWZhY3RNYW5pZmVzdCwgTWV0YWRhdGFFbnRyeSwgQXNzZXRNYW5pZmVzdFByb3BlcnRpZXMsIEFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUsIENvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5LCBGaWxlQXNzZXRNZXRhZGF0YUVudHJ5IH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IEFzc2V0TWFuaWZlc3QsIEZpbGVNYW5pZmVzdEVudHJ5LCBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkgfSBmcm9tICdjZGstYXNzZXRzL2xpYi9hc3NldC1tYW5pZmVzdCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qKlxuICogVHJhY2UgaW5mb3JtYXRpb24gZm9yIHN0YWNrXG4gKiBtYXAgb2YgcmVzb3VyY2UgbG9naWNhbElkIHRvIHRyYWNlIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IHR5cGUgU3RhY2tUcmFjZSA9IE1hcDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogVHJhY2UgaW5mb3JtYXRpb24gZm9yIGEgYXNzZW1ibHlcbiAqXG4gKiBtYXAgb2Ygc3RhY2tJZCB0byBTdGFja1RyYWNlXG4gKi9cbmV4cG9ydCB0eXBlIE1hbmlmZXN0VHJhY2UgPSBNYXA8c3RyaW5nLCBTdGFja1RyYWNlPjtcblxuLyoqXG4gKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZJTEVOQU1FID0gJ21hbmlmZXN0Lmpzb24nO1xuXG4gIC8qKlxuICAgKiBSZWFkcyBhIENsb3VkIEFzc2VtYmx5IG1hbmlmZXN0IGZyb20gYSBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GaWxlKGZpbGVOYW1lOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb2JqID0gTWFuaWZlc3QubG9hZEFzc2VtYmx5TWFuaWZlc3QoZmlsZU5hbWUpO1xuICAgICAgcmV0dXJuIG5ldyBBc3NlbWJseU1hbmlmZXN0UmVhZGVyKHBhdGguZGlybmFtZShmaWxlTmFtZSksIG9iaiwgZmlsZU5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVhZCBpbnRlZyBtYW5pZmVzdCAnJHtmaWxlTmFtZX0nOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYSBDbG91ZCBBc3NlbWJseSBtYW5pZmVzdCBmcm9tIGEgZmlsZSBvciBhIGRpcmVjdG9yeVxuICAgKiBJZiB0aGUgZ2l2ZW4gZmlsZVBhdGggaXMgYSBkaXJlY3RvcnkgdGhlbiBpdCB3aWxsIGxvb2sgZm9yXG4gICAqIGEgZmlsZSB3aXRoaW4gdGhlIGRpcmVjdG9yeSB3aXRoIHRoZSBERUZBVUxUX0ZJTEVOQU1FXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21QYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICBsZXQgc3Q7XG4gICAgdHJ5IHtcbiAgICAgIHN0ID0gZnMuc3RhdFN5bmMoZmlsZVBhdGgpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVhZCBpbnRlZyBtYW5pZmVzdCBhdCAnJHtmaWxlUGF0aH0nOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgaWYgKHN0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHJldHVybiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyLmZyb21GaWxlKHBhdGguam9pbihmaWxlUGF0aCwgQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5ERUZBVUxUX0ZJTEVOQU1FKSk7XG4gICAgfVxuICAgIHJldHVybiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyLmZyb21GaWxlKGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBtYW5pZmVzdCB3YXMgZm91bmRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihkaXJlY3Rvcnk6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBtYW5pZmVzdDogQXNzZW1ibHlNYW5pZmVzdCwgcHJpdmF0ZSByZWFkb25seSBtYW5pZmVzdEZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN0YWNrcyBmcm9tIHRoZSBtYW5pZmVzdFxuICAgKiByZXR1cm5zIGEgbWFwIG9mIGFydGlmYWN0SWQgdG8gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhY2tzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IHN0YWNrczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2FydGlmYWN0SWQsIGFydGlmYWN0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSkpIHtcbiAgICAgIGlmIChhcnRpZmFjdC50eXBlICE9PSBBcnRpZmFjdFR5cGUuQVdTX0NMT1VERk9STUFUSU9OX1NUQUNLKSB7IGNvbnRpbnVlOyB9XG4gICAgICBjb25zdCBwcm9wcyA9IGFydGlmYWN0LnByb3BlcnRpZXMgYXMgQXdzQ2xvdWRGb3JtYXRpb25TdGFja1Byb3BlcnRpZXM7XG5cbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gZnMucmVhZEpTT05TeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmRpcmVjdG9yeSwgcHJvcHMudGVtcGxhdGVGaWxlKSk7XG4gICAgICBzdGFja3NbYXJ0aWZhY3RJZF0gPSB0ZW1wbGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YWNrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG5lc3RlZCBzdGFja3MgZm9yIGEgZ2l2ZW4gc3RhY2tcbiAgICogcmV0dXJucyBhIG1hcCBvZiBhcnRpZmFjdElkIHRvIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAqL1xuICBwdWJsaWMgZ2V0TmVzdGVkU3RhY2tzRm9yU3RhY2soc3RhY2tJZDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgbmVzdGVkVGVtcGxhdGVzOiBzdHJpbmdbXSA9IHRoaXMuZ2V0QXNzZXRNYW5pZmVzdHNGb3JTdGFjayhzdGFja0lkKS5mbGF0TWFwKFxuICAgICAgbWFuaWZlc3QgPT4gbWFuaWZlc3QuZmlsZXNcbiAgICAgICAgLmZpbHRlcihhc3NldCA9PiBhc3NldC5zb3VyY2UucGF0aD8uZW5kc1dpdGgoJy5uZXN0ZWQudGVtcGxhdGUuanNvbicpKVxuICAgICAgICAubWFwKGFzc2V0ID0+IGFzc2V0LnNvdXJjZS5wYXRoISksXG4gICAgKTtcblxuICAgIGNvbnN0IG5lc3RlZFN0YWNrczogUmVjb3JkPHN0cmluZywgYW55PiA9IE9iamVjdC5mcm9tRW50cmllcyhuZXN0ZWRUZW1wbGF0ZXMubWFwKHRlbXBsYXRlRmlsZSA9PiAoW1xuICAgICAgdGVtcGxhdGVGaWxlLnNwbGl0KCcuJywgMSlbMF0sXG4gICAgICBmcy5yZWFkSlNPTlN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGlyZWN0b3J5LCB0ZW1wbGF0ZUZpbGUpKSxcbiAgICBdKSkpO1xuXG4gICAgcmV0dXJuIG5lc3RlZFN0YWNrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSB0cmFjZSBkYXRhIHRvIHRoZSBhc3NlbWJseSBtYW5pZmVzdCBtZXRhZGF0YVxuICAgKi9cbiAgcHVibGljIHJlY29yZFRyYWNlKHRyYWNlOiBNYW5pZmVzdFRyYWNlKTogdm9pZCB7XG4gICAgY29uc3QgbmV3TWFuaWZlc3QgPSB7XG4gICAgICAuLi50aGlzLm1hbmlmZXN0LFxuICAgICAgYXJ0aWZhY3RzOiB0aGlzLnJlbmRlckFydGlmYWN0cyh0cmFjZSksXG4gICAgfTtcbiAgICBNYW5pZmVzdC5zYXZlQXNzZW1ibHlNYW5pZmVzdChuZXdNYW5pZmVzdCwgdGhpcy5tYW5pZmVzdEZpbGVOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBsaXN0IG9mIGFzc2V0cyBmb3IgYSBnaXZlbiBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldEFzc2V0SWRzRm9yU3RhY2soc3RhY2tJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGFzc2V0czogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIE9iamVjdC52YWx1ZXModGhpcy5tYW5pZmVzdC5hcnRpZmFjdHMgPz8ge30pKSB7XG4gICAgICBpZiAoYXJ0aWZhY3QudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkFTU0VUX01BTklGRVNUICYmIChhcnRpZmFjdC5wcm9wZXJ0aWVzIGFzIEFzc2V0TWFuaWZlc3RQcm9wZXJ0aWVzKT8uZmlsZSA9PT0gYCR7c3RhY2tJZH0uYXNzZXRzLmpzb25gKSB7XG4gICAgICAgIGFzc2V0cy5wdXNoKC4uLnRoaXMuYXNzZXRzRnJvbUFzc2V0TWFuaWZlc3QoYXJ0aWZhY3QpLm1hcChhc3NldCA9PiBhc3NldC5pZC5hc3NldElkKSk7XG4gICAgICB9IGVsc2UgaWYgKGFydGlmYWN0LnR5cGUgPT09IEFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0spIHtcbiAgICAgICAgYXNzZXRzLnB1c2goLi4udGhpcy5hc3NldHNGcm9tQXNzZW1ibHlNYW5pZmVzdChhcnRpZmFjdCkubWFwKGFzc2V0ID0+IGFzc2V0LmlkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhc3NldHM7XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gc3RhY2tJZCByZXR1cm4gYSBsaXN0IG9mIGFzc2V0cyB0aGF0IGJlbG9uZyB0byB0aGUgc3RhY2tcbiAgICovXG4gIHB1YmxpYyBnZXRBc3NldExvY2F0aW9uc0ZvclN0YWNrKHN0YWNrSWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBhc3NldHM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBhcnRpZmFjdCBvZiBPYmplY3QudmFsdWVzKHRoaXMubWFuaWZlc3QuYXJ0aWZhY3RzID8/IHt9KSkge1xuICAgICAgaWYgKGFydGlmYWN0LnR5cGUgPT09IEFydGlmYWN0VHlwZS5BU1NFVF9NQU5JRkVTVCAmJiAoYXJ0aWZhY3QucHJvcGVydGllcyBhcyBBc3NldE1hbmlmZXN0UHJvcGVydGllcyk/LmZpbGUgPT09IGAke3N0YWNrSWR9LmFzc2V0cy5qc29uYCkge1xuICAgICAgICBhc3NldHMucHVzaCguLi50aGlzLmFzc2V0c0Zyb21Bc3NldE1hbmlmZXN0KGFydGlmYWN0KS5mbGF0TWFwKGFzc2V0ID0+IHtcbiAgICAgICAgICBpZiAoYXNzZXQudHlwZSA9PT0gJ2ZpbGUnICYmICFhc3NldC5zb3VyY2UucGF0aD8uZW5kc1dpdGgoJ25lc3RlZC50ZW1wbGF0ZS5qc29uJykpIHtcbiAgICAgICAgICAgIHJldHVybiBhc3NldC5zb3VyY2UucGF0aCE7XG4gICAgICAgICAgfSBlbHNlIGlmIChhc3NldC50eXBlICE9PSAnZmlsZScpIHtcbiAgICAgICAgICAgIHJldHVybiBhc3NldC5zb3VyY2UuZGlyZWN0b3J5ITtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2UgaWYgKGFydGlmYWN0LnR5cGUgPT09IEFydGlmYWN0VHlwZS5BV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0spIHtcbiAgICAgICAgYXNzZXRzLnB1c2goLi4udGhpcy5hc3NldHNGcm9tQXNzZW1ibHlNYW5pZmVzdChhcnRpZmFjdCkubWFwKGFzc2V0ID0+IGFzc2V0LnBhdGgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFzc2V0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBsaXN0IG9mIGFzc2V0IGFydGlmYWN0cyBmb3IgYSBnaXZlbiBzdGFja1xuICAgKi9cbiAgcHVibGljIGdldEFzc2V0TWFuaWZlc3RzRm9yU3RhY2soc3RhY2tJZDogc3RyaW5nKTogQXNzZXRNYW5pZmVzdFtdIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSlcbiAgICAgIC5maWx0ZXIoYXJ0aWZhY3QgPT5cbiAgICAgICAgYXJ0aWZhY3QudHlwZSA9PT0gQXJ0aWZhY3RUeXBlLkFTU0VUX01BTklGRVNUICYmIChhcnRpZmFjdC5wcm9wZXJ0aWVzIGFzIEFzc2V0TWFuaWZlc3RQcm9wZXJ0aWVzKT8uZmlsZSA9PT0gYCR7c3RhY2tJZH0uYXNzZXRzLmpzb25gKVxuICAgICAgLm1hcChhcnRpZmFjdCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gKGFydGlmYWN0LnByb3BlcnRpZXMgYXMgQXNzZXRNYW5pZmVzdFByb3BlcnRpZXMpLmZpbGU7XG4gICAgICAgIHJldHVybiBBc3NldE1hbmlmZXN0LmZyb21GaWxlKHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYXNzZXRzIGZyb20gdGhlIGFzc2VtYmx5IG1hbmlmZXN0XG4gICAqL1xuICBwcml2YXRlIGFzc2V0c0Zyb21Bc3NlbWJseU1hbmlmZXN0KGFydGlmYWN0OiBBcnRpZmFjdE1hbmlmZXN0KTogKENvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5IHwgRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSlbXSB7XG4gICAgY29uc3QgYXNzZXRzOiAoQ29udGFpbmVySW1hZ2VBc3NldE1ldGFkYXRhRW50cnkgfCBGaWxlQXNzZXRNZXRhZGF0YUVudHJ5KVtdID0gW107XG4gICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiBPYmplY3QudmFsdWVzKGFydGlmYWN0Lm1ldGFkYXRhID8/IHt9KSkge1xuICAgICAgbWV0YWRhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5BU1NFVCkge1xuICAgICAgICAgIGNvbnN0IGFzc2V0ID0gKGRhdGEuZGF0YSBhcyBDb250YWluZXJJbWFnZUFzc2V0TWV0YWRhdGFFbnRyeSB8IEZpbGVBc3NldE1ldGFkYXRhRW50cnkpO1xuICAgICAgICAgIGlmIChhc3NldC5wYXRoLnN0YXJ0c1dpdGgoJ2Fzc2V0LicpKSB7XG4gICAgICAgICAgICBhc3NldHMucHVzaChhc3NldCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFzc2V0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGFzc2V0cyBmcm9tIHRoZSBhc3NldCBtYW5pZmVzdFxuICAgKi9cbiAgcHJpdmF0ZSBhc3NldHNGcm9tQXNzZXRNYW5pZmVzdChhcnRpZmFjdDogQXJ0aWZhY3RNYW5pZmVzdCk6IChGaWxlTWFuaWZlc3RFbnRyeSB8IERvY2tlckltYWdlTWFuaWZlc3RFbnRyeSlbXSB7XG4gICAgY29uc3QgYXNzZXRzOiAoRmlsZU1hbmlmZXN0RW50cnkgfCBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkpW10gPSBbXTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IChhcnRpZmFjdC5wcm9wZXJ0aWVzIGFzIEFzc2V0TWFuaWZlc3RQcm9wZXJ0aWVzKS5maWxlO1xuICAgIGNvbnN0IGFzc2V0TWFuaWZlc3QgPSBBc3NldE1hbmlmZXN0LmZyb21GaWxlKHBhdGguam9pbih0aGlzLmRpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICBhc3NldE1hbmlmZXN0LmVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICBpZiAoZW50cnkudHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IChlbnRyeSBhcyBGaWxlTWFuaWZlc3RFbnRyeSkuc291cmNlO1xuICAgICAgICBpZiAoc291cmNlLnBhdGggJiYgKHNvdXJjZS5wYXRoLnN0YXJ0c1dpdGgoJ2Fzc2V0LicpIHx8IHNvdXJjZS5wYXRoLmVuZHNXaXRoKCduZXN0ZWQudGVtcGxhdGUuanNvbicpKSkge1xuICAgICAgICAgIGFzc2V0cy5wdXNoKGVudHJ5IGFzIEZpbGVNYW5pZmVzdEVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbnRyeS50eXBlID09PSAnZG9ja2VyLWltYWdlJykge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSAoZW50cnkgYXMgRG9ja2VySW1hZ2VNYW5pZmVzdEVudHJ5KS5zb3VyY2U7XG4gICAgICAgIGlmIChzb3VyY2UuZGlyZWN0b3J5ICYmIHNvdXJjZS5kaXJlY3Rvcnkuc3RhcnRzV2l0aCgnYXNzZXQuJykpIHtcbiAgICAgICAgICBhc3NldHMucHVzaChlbnRyeSBhcyBEb2NrZXJJbWFnZU1hbmlmZXN0RW50cnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFzc2V0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbiB0aGUgbWFuaWZlc3Qgb2YgYW55IHVubmVjY2VzYXJ5IGRhdGEuIEN1cnJlbnRseSB0aGF0IGluY2x1ZGVzXG4gICAqIHRoZSBtZXRhZGF0YSB0cmFjZSBpbmZvcm1hdGlvbiBzaW5jZSB0aGlzIGluY2x1ZGVzIHRyYWNlIGluZm9ybWF0aW9uIGxpa2VcbiAgICogZmlsZSBzeXN0ZW0gbG9jYXRpb25zIGFuZCBmaWxlIGxpbmVzIHRoYXQgd2lsbCBjaGFuZ2UgZGVwZW5kaW5nIG9uIHdoYXQgbWFjaGluZSB0aGUgdGVzdCBpcyBydW4gb25cbiAgICovXG4gIHB1YmxpYyBjbGVhbk1hbmlmZXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld01hbmlmZXN0ID0ge1xuICAgICAgLi4udGhpcy5tYW5pZmVzdCxcbiAgICAgIGFydGlmYWN0czogdGhpcy5yZW5kZXJBcnRpZmFjdHMoKSxcbiAgICB9O1xuICAgIE1hbmlmZXN0LnNhdmVBc3NlbWJseU1hbmlmZXN0KG5ld01hbmlmZXN0LCB0aGlzLm1hbmlmZXN0RmlsZU5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBcnRpZmFjdE1ldGFkYXRhKGFydGlmYWN0OiBBcnRpZmFjdE1hbmlmZXN0LCB0cmFjZT86IFN0YWNrVHJhY2UpOiB7IFtpZDogc3RyaW5nXTogTWV0YWRhdGFFbnRyeVtdIH0gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG5ld01ldGFkYXRhOiB7IFtpZDogc3RyaW5nXTogTWV0YWRhdGFFbnRyeVtdIH0gPSB7fTtcbiAgICBpZiAoIWFydGlmYWN0Lm1ldGFkYXRhKSByZXR1cm4gYXJ0aWZhY3QubWV0YWRhdGE7XG4gICAgZm9yIChjb25zdCBbbWV0YWRhdGFJZCwgbWV0YWRhdGFFbnRyeV0gb2YgT2JqZWN0LmVudHJpZXMoYXJ0aWZhY3QubWV0YWRhdGEgPz8ge30pKSB7XG4gICAgICBuZXdNZXRhZGF0YVttZXRhZGF0YUlkXSA9IG1ldGFkYXRhRW50cnkubWFwKChtZXRhOiBNZXRhZGF0YUVudHJ5KSA9PiB7XG4gICAgICAgIGlmIChtZXRhLnR5cGUgPT09ICdhd3M6Y2RrOmxvZ2ljYWxJZCcgJiYgdHJhY2UgJiYgbWV0YS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdHJhY2VEYXRhID0gdHJhY2UuZ2V0KG1ldGEuZGF0YS50b1N0cmluZygpKTtcbiAgICAgICAgICBpZiAodHJhY2VEYXRhKSB7XG4gICAgICAgICAgICB0cmFjZS5kZWxldGUobWV0YS5kYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogbWV0YS50eXBlLFxuICAgICAgICAgICAgICBkYXRhOiBtZXRhLmRhdGEsXG4gICAgICAgICAgICAgIHRyYWNlOiBbdHJhY2VEYXRhXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHJldHVybiBtZXRhZGF0YSB3aXRob3V0IHRoZSB0cmFjZSBkYXRhXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogbWV0YS50eXBlLFxuICAgICAgICAgIGRhdGE6IG1ldGEuZGF0YSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodHJhY2UgJiYgdHJhY2Uuc2l6ZSA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgW2lkLCBkYXRhXSBvZiB0cmFjZS5lbnRyaWVzKCkpIHtcbiAgICAgICAgbmV3TWV0YWRhdGFbaWRdID0gW3tcbiAgICAgICAgICB0eXBlOiAnYXdzOmNkazpsb2dpY2FsSWQnLFxuICAgICAgICAgIGRhdGE6IGlkLFxuICAgICAgICAgIHRyYWNlOiBbZGF0YV0sXG4gICAgICAgIH1dO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3TWV0YWRhdGE7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFydGlmYWN0cyh0cmFjZT86IE1hbmlmZXN0VHJhY2UpOiB7IFtpZDogc3RyaW5nXTogQXJ0aWZhY3RNYW5pZmVzdCB9IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBuZXdBcnRpZmFjdHM6IHsgW2lkOiBzdHJpbmddOiBBcnRpZmFjdE1hbmlmZXN0IH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFthcnRpZmFjdElkLCBhcnRpZmFjdF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5tYW5pZmVzdC5hcnRpZmFjdHMgPz8ge30pKSB7XG4gICAgICBsZXQgc3RhY2tUcmFjZTogU3RhY2tUcmFjZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgIGlmIChhcnRpZmFjdC50eXBlID09PSBBcnRpZmFjdFR5cGUuQVdTX0NMT1VERk9STUFUSU9OX1NUQUNLICYmIHRyYWNlKSB7XG4gICAgICAgIHN0YWNrVHJhY2UgPSB0cmFjZS5nZXQoYXJ0aWZhY3RJZCk7XG4gICAgICB9XG4gICAgICBuZXdBcnRpZmFjdHNbYXJ0aWZhY3RJZF0gPSB7XG4gICAgICAgIC4uLmFydGlmYWN0LFxuICAgICAgICBtZXRhZGF0YTogdGhpcy5yZW5kZXJBcnRpZmFjdE1ldGFkYXRhKGFydGlmYWN0LCBzdGFja1RyYWNlKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBuZXdBcnRpZmFjdHM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -56,4 +56,4 @@ class IntegManifestReader {
|
|
|
56
56
|
}
|
|
57
57
|
exports.IntegManifestReader = IntegManifestReader;
|
|
58
58
|
IntegManifestReader.DEFAULT_FILENAME = 'integ.json';
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctbWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy1tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsMEVBQW1GO0FBQ25GLCtCQUErQjtBQTRCL0I7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUc5Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBZ0I7UUFDckMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxHQUFHLEdBQUcsZ0NBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixRQUFRLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQjtRQUNyQyxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQztZQUNILEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLFFBQVEsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDakcsQ0FBQztRQUNELE9BQU8sbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFNRCxZQUFZLFNBQWlCLEVBQW1CLFFBQXVCO1FBQXZCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDckUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLOztRQUNkLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO1lBQ2xDLGFBQWEsRUFBRSxNQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxtQ0FBSSxLQUFLO1lBQ25ELFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDekMsQ0FBQztJQUNKLENBQUM7O0FBbERILGtEQW1EQztBQWxEd0Isb0NBQWdCLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEludGVnTWFuaWZlc3QsIE1hbmlmZXN0LCBUZXN0Q2FzZSB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5cbi8qKlxuICogVGVzdCBjYXNlIGNvbmZpZ3VyYXRpb24gcmVhZCBmcm9tIHRoZSBpbnRlZyBtYW5pZmVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVnVGVzdENvbmZpZyB7XG4gIC8qKlxuICAgKiBUZXN0IGNhc2VzIGNvbnRhaW5lZCBpbiB0aGlzIGludGVncmF0aW9uIHRlc3RcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RDYXNlczogeyBbdGVzdENhc2VOYW1lOiBzdHJpbmddOiBUZXN0Q2FzZSB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBsb29rdXBzIGZvciB0aGlzIHRlc3RcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUxvb2t1cHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29udGV4dCB0byB1c2Ugd2hlbiBwZXJmb3JtaW5nXG4gICAqIGEgc3ludGguIEFueSBjb250ZXh0IHByb3ZpZGVkIGhlcmUgd2lsbCBvdmVycmlkZVxuICAgKiBhbnkgZGVmYXVsdCBjb250ZXh0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBzeW50aENvbnRleHQ/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhbiBpbnRlZ3JhdGlvbiB0ZXN0cyBtYW5pZmVzdFxuICovXG5leHBvcnQgY2xhc3MgSW50ZWdNYW5pZmVzdFJlYWRlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9GSUxFTkFNRSA9ICdpbnRlZy5qc29uJztcblxuICAvKipcbiAgICogUmVhZHMgYW4gaW50ZWdyYXRpb24gdGVzdCBtYW5pZmVzdCBmcm9tIHRoZSBzcGVjaWZpZWQgZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmlsZShmaWxlTmFtZTogc3RyaW5nKTogSW50ZWdNYW5pZmVzdFJlYWRlciB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9iaiA9IE1hbmlmZXN0LmxvYWRJbnRlZ01hbmlmZXN0KGZpbGVOYW1lKTtcbiAgICAgIHJldHVybiBuZXcgSW50ZWdNYW5pZmVzdFJlYWRlcihwYXRoLmRpcm5hbWUoZmlsZU5hbWUpLCBvYmopO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVhZCBpbnRlZyBtYW5pZmVzdCAnJHtmaWxlTmFtZX0nOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYSBJbnRlZ3JhdGlvbiB0ZXN0IG1hbmlmZXN0IGZyb20gYSBmaWxlIG9yIGEgZGlyZWN0b3J5XG4gICAqIElmIHRoZSBnaXZlbiBmaWxlUGF0aCBpcyBhIGRpcmVjdG9yeSB0aGVuIGl0IHdpbGwgbG9vayBmb3JcbiAgICogYSBmaWxlIHdpdGhpbiB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIERFRkFVTFRfRklMRU5BTUVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBhdGgoZmlsZVBhdGg6IHN0cmluZyk6IEludGVnTWFuaWZlc3RSZWFkZXIge1xuICAgIGxldCBzdDtcbiAgICB0cnkge1xuICAgICAgc3QgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZWFkIGludGVnIG1hbmlmZXN0IGF0ICcke2ZpbGVQYXRofSc6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBpZiAoc3QuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0dXJuIEludGVnTWFuaWZlc3RSZWFkZXIuZnJvbUZpbGUocGF0aC5qb2luKGZpbGVQYXRoLCBJbnRlZ01hbmlmZXN0UmVhZGVyLkRFRkFVTFRfRklMRU5BTUUpKTtcbiAgICB9XG4gICAgcmV0dXJuIEludGVnTWFuaWZlc3RSZWFkZXIuZnJvbUZpbGUoZmlsZVBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIG1hbmlmZXN0IHdhcyBmb3VuZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihkaXJlY3Rvcnk6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBtYW5pZmVzdDogSW50ZWdNYW5pZmVzdCkge1xuICAgIHRoaXMuZGlyZWN0b3J5ID0gZGlyZWN0b3J5O1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgaW50ZWdyYXRpb24gdGVzdHMgaW4gdGhlIG1hbmlmZXN0XG4gICAqL1xuICBwdWJsaWMgZ2V0IHRlc3RzKCk6IEludGVnVGVzdENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRlc3RDYXNlczogdGhpcy5tYW5pZmVzdC50ZXN0Q2FzZXMsXG4gICAgICBlbmFibGVMb29rdXBzOiB0aGlzLm1hbmlmZXN0LmVuYWJsZUxvb2t1cHMgPz8gZmFsc2UsXG4gICAgICBzeW50aENvbnRleHQ6IHRoaXMubWFuaWZlc3Quc3ludGhDb250ZXh0LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -279,4 +279,5 @@ export declare function currentlyRecommendedAwsCdkLibFlags(): {
|
|
|
279
279
|
"@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": boolean;
|
|
280
280
|
"@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": boolean;
|
|
281
281
|
"@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": boolean;
|
|
282
|
+
"@aws-cdk/core:enableAdditionalMetadataCollection": boolean;
|
|
282
283
|
};
|
|
@@ -43,10 +43,10 @@ export declare class IntegSnapshotRunner extends IntegRunner {
|
|
|
43
43
|
private diffAssembly;
|
|
44
44
|
private readAssembly;
|
|
45
45
|
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
* Reduce template to a normal form where asset references have been normalized
|
|
47
|
+
*
|
|
48
|
+
* This makes it possible to compare templates if all that's different between
|
|
49
|
+
* them is the hashes of the asset values.
|
|
50
|
+
*/
|
|
51
51
|
private canonicalizeTemplate;
|
|
52
52
|
}
|
|
@@ -230,11 +230,11 @@ class IntegSnapshotRunner extends runner_base_1.IntegRunner {
|
|
|
230
230
|
return cloud_assembly_1.AssemblyManifestReader.fromPath(dir);
|
|
231
231
|
}
|
|
232
232
|
/**
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
233
|
+
* Reduce template to a normal form where asset references have been normalized
|
|
234
|
+
*
|
|
235
|
+
* This makes it possible to compare templates if all that's different between
|
|
236
|
+
* them is the hashes of the asset values.
|
|
237
|
+
*/
|
|
238
238
|
canonicalizeTemplate(template, assets) {
|
|
239
239
|
const assetsSeen = new Set();
|
|
240
240
|
const stringSubstitutions = new Array();
|
|
@@ -322,4 +322,4 @@ class StringWritable extends stream_1.Writable {
|
|
|
322
322
|
callback();
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtdGVzdC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbmFwc2hvdC10ZXN0LXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW1EO0FBQ25ELG1EQUErQztBQUMvQyxzRUFBK0c7QUFDL0csNkRBQWtFO0FBQ2xFLCtDQUF1RjtBQUN2Riw4Q0FBaUg7QUFxQmpIOzs7R0FHRztBQUNILE1BQWEsbUJBQW9CLFNBQVEseUJBQVc7SUFDbEQsWUFBWSxPQUEyQjtRQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWSxDQUFDLFVBQXVDLEVBQUU7O1FBQzNELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUM7WUFDSCxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQUEsSUFBSSxDQUFDLGlCQUFpQiwwQ0FBRSxNQUFNLENBQUMsQ0FBQztZQUU1Ryw2QkFBNkI7WUFDN0IseURBQXlEO1lBQ3pELDJFQUEyRTtZQUMzRSw2RUFBNkU7WUFDN0Usb0NBQW9DO1lBQ3BDLE1BQU0sR0FBRyxHQUFHO2dCQUNWLEdBQUcsbUNBQXFCLENBQUMsR0FBRztnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUMvQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxtQ0FBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQzNFLENBQUMsQ0FBQzthQUNKLENBQUM7WUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDL0Is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QyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7UUFDbkIsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQXdDO1FBQzdDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBXcml0YWJsZSwgV3JpdGFibGVPcHRpb25zIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFN0cmluZ0RlY29kZXIgfSBmcm9tICdzdHJpbmdfZGVjb2Rlcic7XG5pbXBvcnQgeyBmdWxsRGlmZiwgZm9ybWF0RGlmZmVyZW5jZXMsIFJlc291cmNlRGlmZmVyZW5jZSwgUmVzb3VyY2VJbXBhY3QgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB7IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIgfSBmcm9tICcuL3ByaXZhdGUvY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXJPcHRpb25zLCBJbnRlZ1J1bm5lciwgREVGQVVMVF9TWU5USF9PUFRJT05TIH0gZnJvbSAnLi9ydW5uZXItYmFzZSc7XG5pbXBvcnQgeyBEaWFnbm9zdGljLCBEaWFnbm9zdGljUmVhc29uLCBEZXN0cnVjdGl2ZUNoYW5nZSwgU25hcHNob3RWZXJpZmljYXRpb25PcHRpb25zIH0gZnJvbSAnLi4vd29ya2Vycy9jb21tb24nO1xuXG5pbnRlcmZhY2UgU25hcHNob3RBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBNYXAgb2Ygc3RhY2tzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBhc3NlbWJseVxuICAgKi9cbiAgW3N0YWNrTmFtZTogc3RyaW5nXToge1xuICAgIC8qKlxuICAgICAqIEFsbCB0ZW1wbGF0ZXMgZm9yIHRoaXMgc3RhY2ssIGluY2x1ZGluZyBuZXN0ZWQgc3RhY2tzXG4gICAgICovXG4gICAgdGVtcGxhdGVzOiB7XG4gICAgICBbdGVtcGxhdGVJZDogc3RyaW5nXTogYW55O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGFzc2V0IElkcyB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgYXNzZW1ibHlcbiAgICAgKi9cbiAgICBhc3NldHM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG4vKipcbiAqIFJ1bm5lciBmb3Igc25hcHNob3QgdGVzdHMuIFRoaXMgaGFuZGxlcyBvcmNoZXN0cmF0aW5nXG4gKiB0aGUgdmFsaWRhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gdGVzdCBzbmFwc2hvdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVnU25hcHNob3RSdW5uZXIgZXh0ZW5kcyBJbnRlZ1J1bm5lciB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEludGVnUnVubmVyT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cyBhbmQgY29tcGFyZSB0aGUgdGVtcGxhdGVzXG4gICAqIHRvIHRoZSBleGlzdGluZyBzbmFwc2hvdC5cbiAgICpcbiAgICogQHJldHVybnMgYW55IGRpYWdub3N0aWNzIGFuZCBhbnkgZGVzdHJ1Y3RpdmUgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIHRlc3RTbmFwc2hvdChvcHRpb25zOiBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMgPSB7fSk6IHsgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXTsgZGVzdHJ1Y3RpdmVDaGFuZ2VzOiBEZXN0cnVjdGl2ZUNoYW5nZVtdIH0ge1xuICAgIGxldCBkb0NsZWFuID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZXhwZWN0ZWRTbmFwc2hvdEFzc2VtYmx5ID0gdGhpcy5nZXRTbmFwc2hvdEFzc2VtYmx5KHRoaXMuc25hcHNob3REaXIsIHRoaXMuZXhwZWN0ZWRUZXN0U3VpdGU/LnN0YWNrcyk7XG5cbiAgICAgIC8vIHN5bnRoIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSBzaG91bGQgbm90IG5lZWQgdG8gcnVuIHRoaXMgYWdhaW4gaWZcbiAgICAgIC8vIHRoZSBjZGtPdXREaXIgZXhpc3RzIGFscmVhZHksIGJ1dCBmb3Igc29tZSByZWFzb24gZ2VuZXJhdGVBY3R1YWxTbmFwc2hvdFxuICAgICAgLy8gZ2VuZXJhdGVzIGFuIGluY29ycmVjdCBzbmFwc2hvdCBhbmQgSSBoYXZlIG5vIGlkZWEgd2h5IHNvIHN5bnRoIGFnYWluIGhlcmVcbiAgICAgIC8vIHRvIHByb2R1Y2UgdGhlIFwiY29ycmVjdFwiIHNuYXBzaG90XG4gICAgICBjb25zdCBlbnYgPSB7XG4gICAgICAgIC4uLkRFRkFVTFRfU1lOVEhfT1BUSU9OUy5lbnYsXG4gICAgICAgIENES19DT05URVhUX0pTT046IEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0Q29udGV4dCh7XG4gICAgICAgICAgLi4udGhpcy5hY3R1YWxUZXN0U3VpdGUuZW5hYmxlTG9va3VwcyA/IERFRkFVTFRfU1lOVEhfT1BUSU9OUy5jb250ZXh0IDoge30sXG4gICAgICAgIH0pKSxcbiAgICAgIH07XG4gICAgICB0aGlzLmNkay5zeW50aEZhc3Qoe1xuICAgICAgICBleGVjQ21kOiB0aGlzLmNka0FwcC5zcGxpdCgnICcpLFxuICAgICAgICBlbnYsXG4gICAgICAgIG91dHB1dDogcGF0aC5yZWxhdGl2ZSh0aGlzLmRpcmVjdG9yeSwgdGhpcy5jZGtPdXREaXIpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHJlYWQgdGhlIFwiYWN0dWFsXCIgc25hcHNob3RcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90QXNzZW1ibHkgPSB0aGlzLmdldFNuYXBzaG90QXNzZW1ibHkodGhpcy5jZGtPdXREaXIsIHRoaXMuYWN0dWFsVGVzdFN1aXRlLnN0YWNrcyk7XG5cbiAgICAgIC8vIGRpZmYgdGhlIGV4aXN0aW5nIHNuYXBzaG90IChleHBlY3RlZCkgd2l0aCB0aGUgaW50ZWdyYXRpb24gdGVzdCAoYWN0dWFsKVxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSB0aGlzLmRpZmZBc3NlbWJseShleHBlY3RlZFNuYXBzaG90QXNzZW1ibHksIGFjdHVhbFNuYXBzaG90QXNzZW1ibHkpO1xuXG4gICAgICBpZiAoZGlhZ25vc3RpY3MuZGlhZ25vc3RpY3MubGVuZ3RoKSB7XG4gICAgICAgIC8vIEF0dGFjaCBhZGRpdGlvbmFsIG1lc3NhZ2VzIHRvIHRoZSBmaXJzdCBkaWFnbm9zdGljXG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5yZXRhaW4pIHtcbiAgICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAoRmFpbHVyZSByZXRhaW5lZCkgRXhwZWN0ZWQ6ICR7cGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCB0aGlzLnNuYXBzaG90RGlyKX1gLFxuICAgICAgICAgICAgYCAgICAgICAgICAgICAgICAgICBBY3R1YWw6ICAgJHtwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIHRoaXMuY2RrT3V0RGlyKX1gLFxuICAgICAgICAgICksXG4gICAgICAgICAgZG9DbGVhbiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIC8vIFNob3cgdGhlIGNvbW1hbmQgbmVjZXNzYXJ5IHRvIHJlcHJvIHRoaXNcbiAgICAgICAgICBjb25zdCBlbnZTZXQgPSBPYmplY3QuZW50cmllcyhlbnYpXG4gICAgICAgICAgICAuZmlsdGVyKChbaywgX10pID0+IGsgIT09ICdDREtfQ09OVEVYVF9KU09OJylcbiAgICAgICAgICAgIC5tYXAoKFtrLCB2XSkgPT4gYCR7a309JyR7dn0nYCk7XG4gICAgICAgICAgY29uc3QgZW52Q21kID0gZW52U2V0Lmxlbmd0aCA+IDAgPyBbJ2VudicsIC4uLmVudlNldF0gOiBbXTtcblxuICAgICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgJ1JlcHJvOicsXG4gICAgICAgICAgICBgICAke1suLi5lbnZDbWQsICdjZGsgc3ludGgnLCBgLWEgJyR7dGhpcy5jZGtBcHB9J2AsIGAtbyAnJHt0aGlzLmNka091dERpcn0nYCwgLi4uT2JqZWN0LmVudHJpZXModGhpcy5nZXRDb250ZXh0KCkpLmZsYXRNYXAoKFtrLCB2XSkgPT4gdHlwZW9mIHYgIT09ICdvYmplY3QnID8gW2AtYyAnJHtrfT0ke3Z9J2BdIDogW10pXS5qb2luKCcgJyl9YCxcblxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBkaWFnbm9zdGljcy5kaWFnbm9zdGljc1swXSA9IHtcbiAgICAgICAgICAuLi5kaWFnbm9zdGljcy5kaWFnbm9zdGljc1swXSxcbiAgICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkaWFnbm9zdGljcztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoZG9DbGVhbikge1xuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gY2xvdWQgYXNzZW1ibHkgcmV0dXJuIGEgY29sbGVjdGlvbiBvZiBhbGwgdGVtcGxhdGVzXG4gICAqIHRoYXQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHNuYXBzaG90IGFuZCBhbnkgcmVxdWlyZWQgbWV0YSBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gY2xvdWRBc3NlbWJseURpciBUaGUgZGlyZWN0b3J5IG9mIHRoZSBjbG91ZCBhc3NlbWJseSB0byBsb29rIGZvciBzbmFwc2hvdHNcbiAgICogQHBhcmFtIHBpY2tTdGFja3MgUGljayBvbmx5IHRoZXNlIHN0YWNrcyBmcm9tIHRoZSBjbG91ZCBhc3NlbWJseVxuICAgKiBAcmV0dXJucyBBIFNuYXBzaG90QXNzZW1ibHksIHRoZSBjb2xsZWN0aW9uIG9mIGFsbCB0ZW1wbGF0ZXMgaW4gdGhpcyBzbmFwc2hvdCBhbmQgcmVxdWlyZWQgbWV0YSBkYXRhXG4gICAqL1xuICBwcml2YXRlIGdldFNuYXBzaG90QXNzZW1ibHkoY2xvdWRBc3NlbWJseURpcjogc3RyaW5nLCBwaWNrU3RhY2tzOiBzdHJpbmdbXSA9IFtdKTogU25hcHNob3RBc3NlbWJseSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSB0aGlzLnJlYWRBc3NlbWJseShjbG91ZEFzc2VtYmx5RGlyKTtcbiAgICBjb25zdCBzdGFja3MgPSBhc3NlbWJseS5zdGFja3M7XG4gICAgY29uc3Qgc25hcHNob3RzOiBTbmFwc2hvdEFzc2VtYmx5ID0ge307XG4gICAgZm9yIChjb25zdCBbc3RhY2tOYW1lLCBzdGFja1RlbXBsYXRlXSBvZiBPYmplY3QuZW50cmllcyhzdGFja3MpKSB7XG4gICAgICBpZiAocGlja1N0YWNrcy5pbmNsdWRlcyhzdGFja05hbWUpKSB7XG4gICAgICAgIGNvbnN0IG1hbmlmZXN0ID0gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aChjbG91ZEFzc2VtYmx5RGlyKTtcbiAgICAgICAgY29uc3QgYXNzZXRzID0gbWFuaWZlc3QuZ2V0QXNzZXRJZHNGb3JTdGFjayhzdGFja05hbWUpO1xuXG4gICAgICAgIHNuYXBzaG90c1tzdGFja05hbWVdID0ge1xuICAgICAgICAgIHRlbXBsYXRlczoge1xuICAgICAgICAgICAgW3N0YWNrTmFtZV06IHN0YWNrVGVtcGxhdGUsXG4gICAgICAgICAgICAuLi5hc3NlbWJseS5nZXROZXN0ZWRTdGFja3NGb3JTdGFjayhzdGFja05hbWUpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXNzZXRzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzbmFwc2hvdHM7XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gc3RhY2sgcmV0dXJuIGFsbCByZXNvdXJjZSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIGRlc3Ryb3llZFxuICAgKiBhcyBwYXJ0IG9mIGEgc3RhY2sgdXBkYXRlXG4gICAqXG4gICAqIEBwYXJhbSBzdGFja0lkIHRoZSBzdGFjayBpZFxuICAgKiBAcmV0dXJucyBhIGxpc3Qgb2YgcmVzb3VyY2UgdHlwZXMgb3IgdW5kZWZpbmVkIGlmIG5vbmUgYXJlIGZvdW5kXG4gICAqL1xuICBwcml2YXRlIGdldEFsbG93ZWREZXN0cm95VHlwZXNGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChjb25zdCB0ZXN0Q2FzZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuYWN0dWFsVGVzdHMoKSA/PyB7fSkpIHtcbiAgICAgIGlmICh0ZXN0Q2FzZS5zdGFja3MuaW5jbHVkZXMoc3RhY2tJZCkpIHtcbiAgICAgICAgcmV0dXJuIHRlc3RDYXNlLmFsbG93RGVzdHJveTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGFueSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBleGlzdGluZyBhbmQgZXhwZWN0ZWQgc25hcHNob3RzXG4gICAqXG4gICAqIEBwYXJhbSBleGlzdGluZyAtIHRoZSBleGlzdGluZyAoZXhwZWN0ZWQpIHNuYXBzaG90XG4gICAqIEBwYXJhbSBhY3R1YWwgLSB0aGUgbmV3IChhY3R1YWwpIHNuYXBzaG90XG4gICAqIEByZXR1cm5zIGFueSBkaWFnbm9zdGljcyBhbmQgYW55IGRlc3RydWN0aXZlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgZGlmZkFzc2VtYmx5KFxuICAgIGV4cGVjdGVkOiBTbmFwc2hvdEFzc2VtYmx5LFxuICAgIGFjdHVhbDogU25hcHNob3RBc3NlbWJseSxcbiAgKTogeyBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdOyBkZXN0cnVjdGl2ZUNoYW5nZXM6IERlc3RydWN0aXZlQ2hhbmdlW10gfSB7XG4gICAgY29uc3QgZmFpbHVyZXM6IERpYWdub3N0aWNbXSA9IFtdO1xuICAgIGNvbnN0IGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXSA9IFtdO1xuXG4gICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYSBDRk4gdGVtcGxhdGUgaW4gdGhlIGN1cnJlbnQgc25hcHNob3RcbiAgICAvLyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBcImFjdHVhbFwiIHNuYXBzaG90XG4gICAgZm9yIChjb25zdCBbc3RhY2tJZCwgc3RhY2tdIG9mIE9iamVjdC5lbnRyaWVzKGV4cGVjdGVkKSkge1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZUlkIG9mIE9iamVjdC5rZXlzKHN0YWNrLnRlbXBsYXRlcykpIHtcbiAgICAgICAgaWYgKCFhY3R1YWxbc3RhY2tJZF0/LnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXSkge1xuICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgdGVzdE5hbWU6IHRoaXMudGVzdE5hbWUsXG4gICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICByZWFzb246IERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRkFJTEVELFxuICAgICAgICAgICAgbWVzc2FnZTogYCR7dGVtcGxhdGVJZH0gZXhpc3RzIGluIHNuYXBzaG90LCBidXQgbm90IGluIGFjdHVhbGAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtzdGFja0lkLCBzdGFja10gb2YgT2JqZWN0LmVudHJpZXMoYWN0dWFsKSkge1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZUlkIG9mIE9iamVjdC5rZXlzKHN0YWNrLnRlbXBsYXRlcykpIHtcbiAgICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGEgQ0ZOIHRlbXBsYXRlIGluIHRoZSBcImFjdHVhbFwiIHNuYXBzaG90XG4gICAgICAvLyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBjdXJyZW50IHNuYXBzaG90XG4gICAgICAgIGlmICghZXhwZWN0ZWRbc3RhY2tJZF0/LnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXSkge1xuICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgdGVzdE5hbWU6IHRoaXMudGVzdE5hbWUsXG4gICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICByZWFzb246IERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRkFJTEVELFxuICAgICAgICAgICAgbWVzc2FnZTogYCR7dGVtcGxhdGVJZH0gZG9lcyBub3QgZXhpc3QgaW4gc25hcHNob3QsIGJ1dCBkb2VzIGluIGFjdHVhbGAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgZGlmZkFzc2V0czogdGhpcy5hY3R1YWxUZXN0U3VpdGUuZ2V0T3B0aW9uc0ZvclN0YWNrKHN0YWNrSWQpPy5kaWZmQXNzZXRzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbGV0IGFjdHVhbFRlbXBsYXRlID0gYWN0dWFsW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcbiAgICAgICAgICBsZXQgZXhwZWN0ZWRUZW1wbGF0ZSA9IGV4cGVjdGVkW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcblxuICAgICAgICAgIC8vIGlmIHdlIGFyZSBub3QgdmVyaWZ5aW5nIGFzc2V0IGhhc2hlcyB0aGVuIHJlbW92ZSB0aGUgc3BlY2lmaWNcbiAgICAgICAgICAvLyBhc3NldCBoYXNoZXMgZnJvbSB0aGUgdGVtcGxhdGVzIHNvIHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkaWZmXG4gICAgICAgICAgLy8gY29tcGFyaXNvblxuICAgICAgICAgIGlmICghY29uZmlnLmRpZmZBc3NldHMpIHtcbiAgICAgICAgICAgIGFjdHVhbFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShhY3R1YWxUZW1wbGF0ZSwgYWN0dWFsW3N0YWNrSWRdLmFzc2V0cyk7XG4gICAgICAgICAgICBleHBlY3RlZFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShleHBlY3RlZFRlbXBsYXRlLCBleHBlY3RlZFtzdGFja0lkXS5hc3NldHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZURpZmYgPSBmdWxsRGlmZihleHBlY3RlZFRlbXBsYXRlLCBhY3R1YWxUZW1wbGF0ZSk7XG4gICAgICAgICAgaWYgKCF0ZW1wbGF0ZURpZmYuaXNFbXB0eSkge1xuICAgICAgICAgICAgY29uc3QgYWxsb3dlZERlc3Ryb3lUeXBlcyA9IHRoaXMuZ2V0QWxsb3dlZERlc3Ryb3lUeXBlc0ZvclN0YWNrKHN0YWNrSWQpID8/IFtdO1xuXG4gICAgICAgICAgICAvLyBnbyB0aHJvdWdoIGFsbCB0aGUgcmVzb3VyY2UgZGlmZmVyZW5jZXMgYW5kIGNoZWNrIGZvciBhbnlcbiAgICAgICAgICAgIC8vIFwiZGVzdHJ1Y3RpdmVcIiBjaGFuZ2VzXG4gICAgICAgICAgICB0ZW1wbGF0ZURpZmYucmVzb3VyY2VzLmZvckVhY2hEaWZmZXJlbmNlKChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiBSZXNvdXJjZURpZmZlcmVuY2UpID0+IHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFuZ2UgaXMgYSByZW1vdmFsIGl0IHdpbGwgbm90IHNob3cgdXAgYXMgYSAnY2hhbmdlSW1wYWN0J1xuICAgICAgICAgICAgLy8gc28gbmVlZCB0byBjaGVjayBmb3IgaXQgc2VwYXJhdGVseSwgdW5sZXNzIGl0IGlzIGEgcmVzb3VyY2VUeXBlIHRoYXRcbiAgICAgICAgICAgIC8vIGhhcyBiZWVuIFwiYWxsb3dlZFwiIHRvIGJlIGRlc3Ryb3llZFxuICAgICAgICAgICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBjaGFuZ2Uub2xkVmFsdWU/LlR5cGUgPz8gY2hhbmdlLm5ld1ZhbHVlPy5UeXBlO1xuICAgICAgICAgICAgICBpZiAocmVzb3VyY2VUeXBlICYmIGFsbG93ZWREZXN0cm95VHlwZXMuaW5jbHVkZXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoY2hhbmdlLmlzUmVtb3ZhbCkge1xuICAgICAgICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGltcGFjdDogUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZLFxuICAgICAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoY2hhbmdlLmNoYW5nZUltcGFjdCkge1xuICAgICAgICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRTpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU46XG4gICAgICAgICAgICAgICAgICBjYXNlIFJlc291cmNlSW1wYWN0LldJTExfREVTVFJPWTpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFOlxuICAgICAgICAgICAgICAgICAgICBkZXN0cnVjdGl2ZUNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgaW1wYWN0OiBjaGFuZ2UuY2hhbmdlSW1wYWN0LFxuICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgICAgICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgd3JpdGFibGUgPSBuZXcgU3RyaW5nV3JpdGFibGUoe30pO1xuICAgICAgICAgICAgZm9ybWF0RGlmZmVyZW5jZXMod3JpdGFibGUsIHRlbXBsYXRlRGlmZik7XG4gICAgICAgICAgICBmYWlsdXJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0ZBSUxFRCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogd3JpdGFibGUuZGF0YSxcbiAgICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgICAgICB0ZXN0TmFtZTogdGhpcy50ZXN0TmFtZSxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWdub3N0aWNzOiBmYWlsdXJlcyxcbiAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkQXNzZW1ibHkoZGlyOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICByZXR1cm4gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aChkaXIpO1xuICB9XG5cbiAgLyoqXG4gICogUmVkdWNlIHRlbXBsYXRlIHRvIGEgbm9ybWFsIGZvcm0gd2hlcmUgYXNzZXQgcmVmZXJlbmNlcyBoYXZlIGJlZW4gbm9ybWFsaXplZFxuICAqXG4gICogVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBjb21wYXJlIHRlbXBsYXRlcyBpZiBhbGwgdGhhdCdzIGRpZmZlcmVudCBiZXR3ZWVuXG4gICogdGhlbSBpcyB0aGUgaGFzaGVzIG9mIHRoZSBhc3NldCB2YWx1ZXMuXG4gICovXG4gIHByaXZhdGUgY2Fub25pY2FsaXplVGVtcGxhdGUodGVtcGxhdGU6IGFueSwgYXNzZXRzOiBzdHJpbmdbXSk6IGFueSB7XG4gICAgY29uc3QgYXNzZXRzU2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGNvbnN0IHN0cmluZ1N1YnN0aXR1dGlvbnMgPSBuZXcgQXJyYXk8W1JlZ0V4cCwgc3RyaW5nXT4oKTtcblxuICAgIC8vIEZpbmQgYXNzZXRzIHZpYSBwYXJhbWV0ZXJzIChmb3IgTGVnYWN5U3RhY2tTeW50aGVzaXplcilcbiAgICBjb25zdCBwYXJhbVJlID0gL15Bc3NldFBhcmFtZXRlcnMoW2EtekEtWjAtOV17NjR9KShTM0J1Y2tldHxTM1ZlcnNpb25LZXl8QXJ0aWZhY3RIYXNoKShbYS16QS1aMC05XXs4fSkkLztcbiAgICBmb3IgKGNvbnN0IHBhcmFtTmFtZSBvZiBPYmplY3Qua2V5cyh0ZW1wbGF0ZT8uUGFyYW1ldGVycyB8fCB7fSkpIHtcbiAgICAgIGNvbnN0IG0gPSBwYXJhbVJlLmV4ZWMocGFyYW1OYW1lKTtcbiAgICAgIGlmICghbSkgeyBjb250aW51ZTsgfVxuICAgICAgaWYgKGFzc2V0c1NlZW4uaGFzKG1bMV0pKSB7IGNvbnRpbnVlOyB9XG5cbiAgICAgIGFzc2V0c1NlZW4uYWRkKG1bMV0pO1xuICAgICAgY29uc3QgaXggPSBhc3NldHNTZWVuLnNpemU7XG5cbiAgICAgIC8vIEZ1bGwgcGFyYW1ldGVyIHJlZmVyZW5jZVxuICAgICAgc3RyaW5nU3Vic3RpdHV0aW9ucy5wdXNoKFtcbiAgICAgICAgbmV3IFJlZ0V4cChgQXNzZXRQYXJhbWV0ZXJzJHttWzFdfShTM0J1Y2tldHxTM1ZlcnNpb25LZXl8QXJ0aWZhY3RIYXNoKShbYS16QS1aMC05XXs4fSlgKSxcbiAgICAgICAgYEFzc2V0JHtpeH0kMWAsXG4gICAgICBdKTtcbiAgICAgIC8vIFN1YnN0cmluZyBhc3NldCBoYXNoIHJlZmVyZW5jZVxuICAgICAgc3RyaW5nU3Vic3RpdHV0aW9ucy5wdXNoKFtcbiAgICAgICAgbmV3IFJlZ0V4cChgJHttWzFdfWApLFxuICAgICAgICBgQXNzZXQke2l4fUhhc2hgLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgLy8gZmluZCBhc3NldHMgZGVmaW5lZCBpbiB0aGUgYXNzZXQgbWFuaWZlc3RcbiAgICB0cnkge1xuICAgICAgYXNzZXRzLmZvckVhY2goYXNzZXQgPT4ge1xuICAgICAgICBpZiAoIWFzc2V0c1NlZW4uaGFzKGFzc2V0KSkge1xuICAgICAgICAgIGFzc2V0c1NlZW4uYWRkKGFzc2V0KTtcbiAgICAgICAgICBjb25zdCBpeCA9IGFzc2V0c1NlZW4uc2l6ZTtcbiAgICAgICAgICBzdHJpbmdTdWJzdGl0dXRpb25zLnB1c2goW1xuICAgICAgICAgICAgbmV3IFJlZ0V4cChhc3NldCksXG4gICAgICAgICAgICBgQXNzZXQke2l4fSQxYCxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBpZiB0aGVyZSBpcyBubyBhc3NldCBtYW5pZmVzdCB0aGF0IGlzIGZpbmUuXG4gICAgfVxuXG4gICAgLy8gU3Vic3RpdHV0ZSB0aGVtIG91dFxuICAgIHJldHVybiBzdWJzdGl0dXRlKHRlbXBsYXRlKTtcblxuICAgIGZ1bmN0aW9uIHN1YnN0aXR1dGUod2hhdDogYW55KTogYW55IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHdoYXQpKSB7XG4gICAgICAgIHJldHVybiB3aGF0Lm1hcChzdWJzdGl0dXRlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aGF0ID09PSAnb2JqZWN0JyAmJiB3aGF0ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHJldDogYW55ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHdoYXQpKSB7XG4gICAgICAgICAgcmV0W3N0cmluZ1N1YihrKV0gPSBzdWJzdGl0dXRlKHYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2Ygd2hhdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1N1Yih3aGF0KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHdoYXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RyaW5nU3ViKHg6IHN0cmluZykge1xuICAgICAgZm9yIChjb25zdCBbcmUsIHJlcGxhY2VtZW50XSBvZiBzdHJpbmdTdWJzdGl0dXRpb25zKSB7XG4gICAgICAgIHggPSB4LnJlcGxhY2UocmUsIHJlcGxhY2VtZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB4O1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBTdHJpbmdXcml0YWJsZSBleHRlbmRzIFdyaXRhYmxlIHtcbiAgcHVibGljIGRhdGE6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVjb2RlcjogU3RyaW5nRGVjb2RlcjtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogV3JpdGFibGVPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgdGhpcy5fZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKCk7XG4gICAgdGhpcy5kYXRhID0gJyc7XG4gIH1cblxuICBfd3JpdGUoY2h1bms6IGFueSwgZW5jb2Rpbmc6IHN0cmluZywgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGlmIChlbmNvZGluZyA9PT0gJ2J1ZmZlcicpIHtcbiAgICAgIGNodW5rID0gdGhpcy5fZGVjb2Rlci53cml0ZShjaHVuayk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhICs9IGNodW5rO1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICBfZmluYWwoY2FsbGJhY2s6IChlcnJvcj86IEVycm9yIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSArPSB0aGlzLl9kZWNvZGVyLmVuZCgpO1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cbiJdfQ==
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtdGVzdC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzbmFwc2hvdC10ZXN0LXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW1EO0FBQ25ELG1EQUErQztBQUMvQyxzRUFBK0c7QUFDL0csNkRBQWtFO0FBQ2xFLCtDQUF1RjtBQUN2Riw4Q0FBaUg7QUFxQmpIOzs7R0FHRztBQUNILE1BQWEsbUJBQW9CLFNBQVEseUJBQVc7SUFDbEQsWUFBWSxPQUEyQjtRQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksWUFBWSxDQUFDLFVBQXVDLEVBQUU7O1FBQzNELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUM7WUFDSCxNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQUEsSUFBSSxDQUFDLGlCQUFpQiwwQ0FBRSxNQUFNLENBQUMsQ0FBQztZQUU1Ryw2QkFBNkI7WUFDN0IseURBQXlEO1lBQ3pELDJFQUEyRTtZQUMzRSw2RUFBNkU7WUFDN0Usb0NBQW9DO1lBQ3BDLE1BQU0sR0FBRyxHQUFHO2dCQUNWLEdBQUcsbUNBQXFCLENBQUMsR0FBRztnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUMvQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxtQ0FBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7aUJBQzNFLENBQUMsQ0FBQzthQUNKLENBQUM7WUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDL0Is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QyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7UUFDbkIsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQXdDO1FBQzdDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBXcml0YWJsZSwgV3JpdGFibGVPcHRpb25zIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFN0cmluZ0RlY29kZXIgfSBmcm9tICdzdHJpbmdfZGVjb2Rlcic7XG5pbXBvcnQgeyBmdWxsRGlmZiwgZm9ybWF0RGlmZmVyZW5jZXMsIFJlc291cmNlRGlmZmVyZW5jZSwgUmVzb3VyY2VJbXBhY3QgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCB7IEFzc2VtYmx5TWFuaWZlc3RSZWFkZXIgfSBmcm9tICcuL3ByaXZhdGUvY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXJPcHRpb25zLCBJbnRlZ1J1bm5lciwgREVGQVVMVF9TWU5USF9PUFRJT05TIH0gZnJvbSAnLi9ydW5uZXItYmFzZSc7XG5pbXBvcnQgeyBEaWFnbm9zdGljLCBEaWFnbm9zdGljUmVhc29uLCBEZXN0cnVjdGl2ZUNoYW5nZSwgU25hcHNob3RWZXJpZmljYXRpb25PcHRpb25zIH0gZnJvbSAnLi4vd29ya2Vycy9jb21tb24nO1xuXG5pbnRlcmZhY2UgU25hcHNob3RBc3NlbWJseSB7XG4gIC8qKlxuICAgKiBNYXAgb2Ygc3RhY2tzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBhc3NlbWJseVxuICAgKi9cbiAgW3N0YWNrTmFtZTogc3RyaW5nXToge1xuICAgIC8qKlxuICAgICAqIEFsbCB0ZW1wbGF0ZXMgZm9yIHRoaXMgc3RhY2ssIGluY2x1ZGluZyBuZXN0ZWQgc3RhY2tzXG4gICAgICovXG4gICAgdGVtcGxhdGVzOiB7XG4gICAgICBbdGVtcGxhdGVJZDogc3RyaW5nXTogYW55O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGFzc2V0IElkcyB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgYXNzZW1ibHlcbiAgICAgKi9cbiAgICBhc3NldHM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG4vKipcbiAqIFJ1bm5lciBmb3Igc25hcHNob3QgdGVzdHMuIFRoaXMgaGFuZGxlcyBvcmNoZXN0cmF0aW5nXG4gKiB0aGUgdmFsaWRhdGlvbiBvZiB0aGUgaW50ZWdyYXRpb24gdGVzdCBzbmFwc2hvdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVnU25hcHNob3RSdW5uZXIgZXh0ZW5kcyBJbnRlZ1J1bm5lciB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEludGVnUnVubmVyT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cyBhbmQgY29tcGFyZSB0aGUgdGVtcGxhdGVzXG4gICAqIHRvIHRoZSBleGlzdGluZyBzbmFwc2hvdC5cbiAgICpcbiAgICogQHJldHVybnMgYW55IGRpYWdub3N0aWNzIGFuZCBhbnkgZGVzdHJ1Y3RpdmUgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIHRlc3RTbmFwc2hvdChvcHRpb25zOiBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMgPSB7fSk6IHsgZGlhZ25vc3RpY3M6IERpYWdub3N0aWNbXTsgZGVzdHJ1Y3RpdmVDaGFuZ2VzOiBEZXN0cnVjdGl2ZUNoYW5nZVtdIH0ge1xuICAgIGxldCBkb0NsZWFuID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZXhwZWN0ZWRTbmFwc2hvdEFzc2VtYmx5ID0gdGhpcy5nZXRTbmFwc2hvdEFzc2VtYmx5KHRoaXMuc25hcHNob3REaXIsIHRoaXMuZXhwZWN0ZWRUZXN0U3VpdGU/LnN0YWNrcyk7XG5cbiAgICAgIC8vIHN5bnRoIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSBzaG91bGQgbm90IG5lZWQgdG8gcnVuIHRoaXMgYWdhaW4gaWZcbiAgICAgIC8vIHRoZSBjZGtPdXREaXIgZXhpc3RzIGFscmVhZHksIGJ1dCBmb3Igc29tZSByZWFzb24gZ2VuZXJhdGVBY3R1YWxTbmFwc2hvdFxuICAgICAgLy8gZ2VuZXJhdGVzIGFuIGluY29ycmVjdCBzbmFwc2hvdCBhbmQgSSBoYXZlIG5vIGlkZWEgd2h5IHNvIHN5bnRoIGFnYWluIGhlcmVcbiAgICAgIC8vIHRvIHByb2R1Y2UgdGhlIFwiY29ycmVjdFwiIHNuYXBzaG90XG4gICAgICBjb25zdCBlbnYgPSB7XG4gICAgICAgIC4uLkRFRkFVTFRfU1lOVEhfT1BUSU9OUy5lbnYsXG4gICAgICAgIENES19DT05URVhUX0pTT046IEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0Q29udGV4dCh7XG4gICAgICAgICAgLi4udGhpcy5hY3R1YWxUZXN0U3VpdGUuZW5hYmxlTG9va3VwcyA/IERFRkFVTFRfU1lOVEhfT1BUSU9OUy5jb250ZXh0IDoge30sXG4gICAgICAgIH0pKSxcbiAgICAgIH07XG4gICAgICB0aGlzLmNkay5zeW50aEZhc3Qoe1xuICAgICAgICBleGVjQ21kOiB0aGlzLmNka0FwcC5zcGxpdCgnICcpLFxuICAgICAgICBlbnYsXG4gICAgICAgIG91dHB1dDogcGF0aC5yZWxhdGl2ZSh0aGlzLmRpcmVjdG9yeSwgdGhpcy5jZGtPdXREaXIpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHJlYWQgdGhlIFwiYWN0dWFsXCIgc25hcHNob3RcbiAgICAgIGNvbnN0IGFjdHVhbFNuYXBzaG90QXNzZW1ibHkgPSB0aGlzLmdldFNuYXBzaG90QXNzZW1ibHkodGhpcy5jZGtPdXREaXIsIHRoaXMuYWN0dWFsVGVzdFN1aXRlLnN0YWNrcyk7XG5cbiAgICAgIC8vIGRpZmYgdGhlIGV4aXN0aW5nIHNuYXBzaG90IChleHBlY3RlZCkgd2l0aCB0aGUgaW50ZWdyYXRpb24gdGVzdCAoYWN0dWFsKVxuICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSB0aGlzLmRpZmZBc3NlbWJseShleHBlY3RlZFNuYXBzaG90QXNzZW1ibHksIGFjdHVhbFNuYXBzaG90QXNzZW1ibHkpO1xuXG4gICAgICBpZiAoZGlhZ25vc3RpY3MuZGlhZ25vc3RpY3MubGVuZ3RoKSB7XG4gICAgICAgIC8vIEF0dGFjaCBhZGRpdGlvbmFsIG1lc3NhZ2VzIHRvIHRoZSBmaXJzdCBkaWFnbm9zdGljXG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWxNZXNzYWdlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5yZXRhaW4pIHtcbiAgICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAgIGAoRmFpbHVyZSByZXRhaW5lZCkgRXhwZWN0ZWQ6ICR7cGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCB0aGlzLnNuYXBzaG90RGlyKX1gLFxuICAgICAgICAgICAgYCAgICAgICAgICAgICAgICAgICBBY3R1YWw6ICAgJHtwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIHRoaXMuY2RrT3V0RGlyKX1gLFxuICAgICAgICAgICksXG4gICAgICAgICAgZG9DbGVhbiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgIC8vIFNob3cgdGhlIGNvbW1hbmQgbmVjZXNzYXJ5IHRvIHJlcHJvIHRoaXNcbiAgICAgICAgICBjb25zdCBlbnZTZXQgPSBPYmplY3QuZW50cmllcyhlbnYpXG4gICAgICAgICAgICAuZmlsdGVyKChbaywgX10pID0+IGsgIT09ICdDREtfQ09OVEVYVF9KU09OJylcbiAgICAgICAgICAgIC5tYXAoKFtrLCB2XSkgPT4gYCR7a309JyR7dn0nYCk7XG4gICAgICAgICAgY29uc3QgZW52Q21kID0gZW52U2V0Lmxlbmd0aCA+IDAgPyBbJ2VudicsIC4uLmVudlNldF0gOiBbXTtcblxuICAgICAgICAgIGFkZGl0aW9uYWxNZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgJ1JlcHJvOicsXG4gICAgICAgICAgICBgICAke1suLi5lbnZDbWQsICdjZGsgc3ludGgnLCBgLWEgJyR7dGhpcy5jZGtBcHB9J2AsIGAtbyAnJHt0aGlzLmNka091dERpcn0nYCwgLi4uT2JqZWN0LmVudHJpZXModGhpcy5nZXRDb250ZXh0KCkpLmZsYXRNYXAoKFtrLCB2XSkgPT4gdHlwZW9mIHYgIT09ICdvYmplY3QnID8gW2AtYyAnJHtrfT0ke3Z9J2BdIDogW10pXS5qb2luKCcgJyl9YCxcblxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBkaWFnbm9zdGljcy5kaWFnbm9zdGljc1swXSA9IHtcbiAgICAgICAgICAuLi5kaWFnbm9zdGljcy5kaWFnbm9zdGljc1swXSxcbiAgICAgICAgICBhZGRpdGlvbmFsTWVzc2FnZXMsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkaWFnbm9zdGljcztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoZG9DbGVhbikge1xuICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gY2xvdWQgYXNzZW1ibHkgcmV0dXJuIGEgY29sbGVjdGlvbiBvZiBhbGwgdGVtcGxhdGVzXG4gICAqIHRoYXQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIHNuYXBzaG90IGFuZCBhbnkgcmVxdWlyZWQgbWV0YSBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0gY2xvdWRBc3NlbWJseURpciBUaGUgZGlyZWN0b3J5IG9mIHRoZSBjbG91ZCBhc3NlbWJseSB0byBsb29rIGZvciBzbmFwc2hvdHNcbiAgICogQHBhcmFtIHBpY2tTdGFja3MgUGljayBvbmx5IHRoZXNlIHN0YWNrcyBmcm9tIHRoZSBjbG91ZCBhc3NlbWJseVxuICAgKiBAcmV0dXJucyBBIFNuYXBzaG90QXNzZW1ibHksIHRoZSBjb2xsZWN0aW9uIG9mIGFsbCB0ZW1wbGF0ZXMgaW4gdGhpcyBzbmFwc2hvdCBhbmQgcmVxdWlyZWQgbWV0YSBkYXRhXG4gICAqL1xuICBwcml2YXRlIGdldFNuYXBzaG90QXNzZW1ibHkoY2xvdWRBc3NlbWJseURpcjogc3RyaW5nLCBwaWNrU3RhY2tzOiBzdHJpbmdbXSA9IFtdKTogU25hcHNob3RBc3NlbWJseSB7XG4gICAgY29uc3QgYXNzZW1ibHkgPSB0aGlzLnJlYWRBc3NlbWJseShjbG91ZEFzc2VtYmx5RGlyKTtcbiAgICBjb25zdCBzdGFja3MgPSBhc3NlbWJseS5zdGFja3M7XG4gICAgY29uc3Qgc25hcHNob3RzOiBTbmFwc2hvdEFzc2VtYmx5ID0ge307XG4gICAgZm9yIChjb25zdCBbc3RhY2tOYW1lLCBzdGFja1RlbXBsYXRlXSBvZiBPYmplY3QuZW50cmllcyhzdGFja3MpKSB7XG4gICAgICBpZiAocGlja1N0YWNrcy5pbmNsdWRlcyhzdGFja05hbWUpKSB7XG4gICAgICAgIGNvbnN0IG1hbmlmZXN0ID0gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aChjbG91ZEFzc2VtYmx5RGlyKTtcbiAgICAgICAgY29uc3QgYXNzZXRzID0gbWFuaWZlc3QuZ2V0QXNzZXRJZHNGb3JTdGFjayhzdGFja05hbWUpO1xuXG4gICAgICAgIHNuYXBzaG90c1tzdGFja05hbWVdID0ge1xuICAgICAgICAgIHRlbXBsYXRlczoge1xuICAgICAgICAgICAgW3N0YWNrTmFtZV06IHN0YWNrVGVtcGxhdGUsXG4gICAgICAgICAgICAuLi5hc3NlbWJseS5nZXROZXN0ZWRTdGFja3NGb3JTdGFjayhzdGFja05hbWUpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXNzZXRzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzbmFwc2hvdHM7XG4gIH1cblxuICAvKipcbiAgICogRm9yIGEgZ2l2ZW4gc3RhY2sgcmV0dXJuIGFsbCByZXNvdXJjZSB0eXBlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIGRlc3Ryb3llZFxuICAgKiBhcyBwYXJ0IG9mIGEgc3RhY2sgdXBkYXRlXG4gICAqXG4gICAqIEBwYXJhbSBzdGFja0lkIHRoZSBzdGFjayBpZFxuICAgKiBAcmV0dXJucyBhIGxpc3Qgb2YgcmVzb3VyY2UgdHlwZXMgb3IgdW5kZWZpbmVkIGlmIG5vbmUgYXJlIGZvdW5kXG4gICAqL1xuICBwcml2YXRlIGdldEFsbG93ZWREZXN0cm95VHlwZXNGb3JTdGFjayhzdGFja0lkOiBzdHJpbmcpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChjb25zdCB0ZXN0Q2FzZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuYWN0dWFsVGVzdHMoKSA/PyB7fSkpIHtcbiAgICAgIGlmICh0ZXN0Q2FzZS5zdGFja3MuaW5jbHVkZXMoc3RhY2tJZCkpIHtcbiAgICAgICAgcmV0dXJuIHRlc3RDYXNlLmFsbG93RGVzdHJveTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGFueSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBleGlzdGluZyBhbmQgZXhwZWN0ZWQgc25hcHNob3RzXG4gICAqXG4gICAqIEBwYXJhbSBleGlzdGluZyAtIHRoZSBleGlzdGluZyAoZXhwZWN0ZWQpIHNuYXBzaG90XG4gICAqIEBwYXJhbSBhY3R1YWwgLSB0aGUgbmV3IChhY3R1YWwpIHNuYXBzaG90XG4gICAqIEByZXR1cm5zIGFueSBkaWFnbm9zdGljcyBhbmQgYW55IGRlc3RydWN0aXZlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgZGlmZkFzc2VtYmx5KFxuICAgIGV4cGVjdGVkOiBTbmFwc2hvdEFzc2VtYmx5LFxuICAgIGFjdHVhbDogU25hcHNob3RBc3NlbWJseSxcbiAgKTogeyBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdOyBkZXN0cnVjdGl2ZUNoYW5nZXM6IERlc3RydWN0aXZlQ2hhbmdlW10gfSB7XG4gICAgY29uc3QgZmFpbHVyZXM6IERpYWdub3N0aWNbXSA9IFtdO1xuICAgIGNvbnN0IGRlc3RydWN0aXZlQ2hhbmdlczogRGVzdHJ1Y3RpdmVDaGFuZ2VbXSA9IFtdO1xuXG4gICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgYSBDRk4gdGVtcGxhdGUgaW4gdGhlIGN1cnJlbnQgc25hcHNob3RcbiAgICAvLyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBcImFjdHVhbFwiIHNuYXBzaG90XG4gICAgZm9yIChjb25zdCBbc3RhY2tJZCwgc3RhY2tdIG9mIE9iamVjdC5lbnRyaWVzKGV4cGVjdGVkKSkge1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZUlkIG9mIE9iamVjdC5rZXlzKHN0YWNrLnRlbXBsYXRlcykpIHtcbiAgICAgICAgaWYgKCFhY3R1YWxbc3RhY2tJZF0/LnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXSkge1xuICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgdGVzdE5hbWU6IHRoaXMudGVzdE5hbWUsXG4gICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICByZWFzb246IERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRkFJTEVELFxuICAgICAgICAgICAgbWVzc2FnZTogYCR7dGVtcGxhdGVJZH0gZXhpc3RzIGluIHNuYXBzaG90LCBidXQgbm90IGluIGFjdHVhbGAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtzdGFja0lkLCBzdGFja10gb2YgT2JqZWN0LmVudHJpZXMoYWN0dWFsKSkge1xuICAgICAgZm9yIChjb25zdCB0ZW1wbGF0ZUlkIG9mIE9iamVjdC5rZXlzKHN0YWNrLnRlbXBsYXRlcykpIHtcbiAgICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIGEgQ0ZOIHRlbXBsYXRlIGluIHRoZSBcImFjdHVhbFwiIHNuYXBzaG90XG4gICAgICAvLyB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBjdXJyZW50IHNuYXBzaG90XG4gICAgICAgIGlmICghZXhwZWN0ZWRbc3RhY2tJZF0/LnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXSkge1xuICAgICAgICAgIGZhaWx1cmVzLnB1c2goe1xuICAgICAgICAgICAgdGVzdE5hbWU6IHRoaXMudGVzdE5hbWUsXG4gICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICByZWFzb246IERpYWdub3N0aWNSZWFzb24uU05BUFNIT1RfRkFJTEVELFxuICAgICAgICAgICAgbWVzc2FnZTogYCR7dGVtcGxhdGVJZH0gZG9lcyBub3QgZXhpc3QgaW4gc25hcHNob3QsIGJ1dCBkb2VzIGluIGFjdHVhbGAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgZGlmZkFzc2V0czogdGhpcy5hY3R1YWxUZXN0U3VpdGUuZ2V0T3B0aW9uc0ZvclN0YWNrKHN0YWNrSWQpPy5kaWZmQXNzZXRzLFxuICAgICAgICAgIH07XG4gICAgICAgICAgbGV0IGFjdHVhbFRlbXBsYXRlID0gYWN0dWFsW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcbiAgICAgICAgICBsZXQgZXhwZWN0ZWRUZW1wbGF0ZSA9IGV4cGVjdGVkW3N0YWNrSWRdLnRlbXBsYXRlc1t0ZW1wbGF0ZUlkXTtcblxuICAgICAgICAgIC8vIGlmIHdlIGFyZSBub3QgdmVyaWZ5aW5nIGFzc2V0IGhhc2hlcyB0aGVuIHJlbW92ZSB0aGUgc3BlY2lmaWNcbiAgICAgICAgICAvLyBhc3NldCBoYXNoZXMgZnJvbSB0aGUgdGVtcGxhdGVzIHNvIHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkaWZmXG4gICAgICAgICAgLy8gY29tcGFyaXNvblxuICAgICAgICAgIGlmICghY29uZmlnLmRpZmZBc3NldHMpIHtcbiAgICAgICAgICAgIGFjdHVhbFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShhY3R1YWxUZW1wbGF0ZSwgYWN0dWFsW3N0YWNrSWRdLmFzc2V0cyk7XG4gICAgICAgICAgICBleHBlY3RlZFRlbXBsYXRlID0gdGhpcy5jYW5vbmljYWxpemVUZW1wbGF0ZShleHBlY3RlZFRlbXBsYXRlLCBleHBlY3RlZFtzdGFja0lkXS5hc3NldHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZURpZmYgPSBmdWxsRGlmZihleHBlY3RlZFRlbXBsYXRlLCBhY3R1YWxUZW1wbGF0ZSk7XG4gICAgICAgICAgaWYgKCF0ZW1wbGF0ZURpZmYuaXNFbXB0eSkge1xuICAgICAgICAgICAgY29uc3QgYWxsb3dlZERlc3Ryb3lUeXBlcyA9IHRoaXMuZ2V0QWxsb3dlZERlc3Ryb3lUeXBlc0ZvclN0YWNrKHN0YWNrSWQpID8/IFtdO1xuXG4gICAgICAgICAgICAvLyBnbyB0aHJvdWdoIGFsbCB0aGUgcmVzb3VyY2UgZGlmZmVyZW5jZXMgYW5kIGNoZWNrIGZvciBhbnlcbiAgICAgICAgICAgIC8vIFwiZGVzdHJ1Y3RpdmVcIiBjaGFuZ2VzXG4gICAgICAgICAgICB0ZW1wbGF0ZURpZmYucmVzb3VyY2VzLmZvckVhY2hEaWZmZXJlbmNlKChsb2dpY2FsSWQ6IHN0cmluZywgY2hhbmdlOiBSZXNvdXJjZURpZmZlcmVuY2UpID0+IHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFuZ2UgaXMgYSByZW1vdmFsIGl0IHdpbGwgbm90IHNob3cgdXAgYXMgYSAnY2hhbmdlSW1wYWN0J1xuICAgICAgICAgICAgLy8gc28gbmVlZCB0byBjaGVjayBmb3IgaXQgc2VwYXJhdGVseSwgdW5sZXNzIGl0IGlzIGEgcmVzb3VyY2VUeXBlIHRoYXRcbiAgICAgICAgICAgIC8vIGhhcyBiZWVuIFwiYWxsb3dlZFwiIHRvIGJlIGRlc3Ryb3llZFxuICAgICAgICAgICAgICBjb25zdCByZXNvdXJjZVR5cGUgPSBjaGFuZ2Uub2xkVmFsdWU/LlR5cGUgPz8gY2hhbmdlLm5ld1ZhbHVlPy5UeXBlO1xuICAgICAgICAgICAgICBpZiAocmVzb3VyY2VUeXBlICYmIGFsbG93ZWREZXN0cm95VHlwZXMuaW5jbHVkZXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoY2hhbmdlLmlzUmVtb3ZhbCkge1xuICAgICAgICAgICAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGltcGFjdDogUmVzb3VyY2VJbXBhY3QuV0lMTF9ERVNUUk9ZLFxuICAgICAgICAgICAgICAgICAgbG9naWNhbElkLFxuICAgICAgICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoY2hhbmdlLmNoYW5nZUltcGFjdCkge1xuICAgICAgICAgICAgICAgICAgY2FzZSBSZXNvdXJjZUltcGFjdC5NQVlfUkVQTEFDRTpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9PUlBIQU46XG4gICAgICAgICAgICAgICAgICBjYXNlIFJlc291cmNlSW1wYWN0LldJTExfREVTVFJPWTpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUmVzb3VyY2VJbXBhY3QuV0lMTF9SRVBMQUNFOlxuICAgICAgICAgICAgICAgICAgICBkZXN0cnVjdGl2ZUNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgaW1wYWN0OiBjaGFuZ2UuY2hhbmdlSW1wYWN0LFxuICAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxJZCxcbiAgICAgICAgICAgICAgICAgICAgICBzdGFja05hbWU6IHRlbXBsYXRlSWQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qgd3JpdGFibGUgPSBuZXcgU3RyaW5nV3JpdGFibGUoe30pO1xuICAgICAgICAgICAgZm9ybWF0RGlmZmVyZW5jZXMod3JpdGFibGUsIHRlbXBsYXRlRGlmZik7XG4gICAgICAgICAgICBmYWlsdXJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgcmVhc29uOiBEaWFnbm9zdGljUmVhc29uLlNOQVBTSE9UX0ZBSUxFRCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogd3JpdGFibGUuZGF0YSxcbiAgICAgICAgICAgICAgc3RhY2tOYW1lOiB0ZW1wbGF0ZUlkLFxuICAgICAgICAgICAgICB0ZXN0TmFtZTogdGhpcy50ZXN0TmFtZSxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpYWdub3N0aWNzOiBmYWlsdXJlcyxcbiAgICAgIGRlc3RydWN0aXZlQ2hhbmdlcyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkQXNzZW1ibHkoZGlyOiBzdHJpbmcpOiBBc3NlbWJseU1hbmlmZXN0UmVhZGVyIHtcbiAgICByZXR1cm4gQXNzZW1ibHlNYW5pZmVzdFJlYWRlci5mcm9tUGF0aChkaXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZHVjZSB0ZW1wbGF0ZSB0byBhIG5vcm1hbCBmb3JtIHdoZXJlIGFzc2V0IHJlZmVyZW5jZXMgaGF2ZSBiZWVuIG5vcm1hbGl6ZWRcbiAgICpcbiAgICogVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBjb21wYXJlIHRlbXBsYXRlcyBpZiBhbGwgdGhhdCdzIGRpZmZlcmVudCBiZXR3ZWVuXG4gICAqIHRoZW0gaXMgdGhlIGhhc2hlcyBvZiB0aGUgYXNzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBjYW5vbmljYWxpemVUZW1wbGF0ZSh0ZW1wbGF0ZTogYW55LCBhc3NldHM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCBhc3NldHNTZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3RyaW5nU3Vic3RpdHV0aW9ucyA9IG5ldyBBcnJheTxbUmVnRXhwLCBzdHJpbmddPigpO1xuXG4gICAgLy8gRmluZCBhc3NldHMgdmlhIHBhcmFtZXRlcnMgKGZvciBMZWdhY3lTdGFja1N5bnRoZXNpemVyKVxuICAgIGNvbnN0IHBhcmFtUmUgPSAvXkFzc2V0UGFyYW1ldGVycyhbYS16QS1aMC05XXs2NH0pKFMzQnVja2V0fFMzVmVyc2lvbktleXxBcnRpZmFjdEhhc2gpKFthLXpBLVowLTldezh9KSQvO1xuICAgIGZvciAoY29uc3QgcGFyYW1OYW1lIG9mIE9iamVjdC5rZXlzKHRlbXBsYXRlPy5QYXJhbWV0ZXJzIHx8IHt9KSkge1xuICAgICAgY29uc3QgbSA9IHBhcmFtUmUuZXhlYyhwYXJhbU5hbWUpO1xuICAgICAgaWYgKCFtKSB7IGNvbnRpbnVlOyB9XG4gICAgICBpZiAoYXNzZXRzU2Vlbi5oYXMobVsxXSkpIHsgY29udGludWU7IH1cblxuICAgICAgYXNzZXRzU2Vlbi5hZGQobVsxXSk7XG4gICAgICBjb25zdCBpeCA9IGFzc2V0c1NlZW4uc2l6ZTtcblxuICAgICAgLy8gRnVsbCBwYXJhbWV0ZXIgcmVmZXJlbmNlXG4gICAgICBzdHJpbmdTdWJzdGl0dXRpb25zLnB1c2goW1xuICAgICAgICBuZXcgUmVnRXhwKGBBc3NldFBhcmFtZXRlcnMke21bMV19KFMzQnVja2V0fFMzVmVyc2lvbktleXxBcnRpZmFjdEhhc2gpKFthLXpBLVowLTldezh9KWApLFxuICAgICAgICBgQXNzZXQke2l4fSQxYCxcbiAgICAgIF0pO1xuICAgICAgLy8gU3Vic3RyaW5nIGFzc2V0IGhhc2ggcmVmZXJlbmNlXG4gICAgICBzdHJpbmdTdWJzdGl0dXRpb25zLnB1c2goW1xuICAgICAgICBuZXcgUmVnRXhwKGAke21bMV19YCksXG4gICAgICAgIGBBc3NldCR7aXh9SGFzaGAsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAvLyBmaW5kIGFzc2V0cyBkZWZpbmVkIGluIHRoZSBhc3NldCBtYW5pZmVzdFxuICAgIHRyeSB7XG4gICAgICBhc3NldHMuZm9yRWFjaChhc3NldCA9PiB7XG4gICAgICAgIGlmICghYXNzZXRzU2Vlbi5oYXMoYXNzZXQpKSB7XG4gICAgICAgICAgYXNzZXRzU2Vlbi5hZGQoYXNzZXQpO1xuICAgICAgICAgIGNvbnN0IGl4ID0gYXNzZXRzU2Vlbi5zaXplO1xuICAgICAgICAgIHN0cmluZ1N1YnN0aXR1dGlvbnMucHVzaChbXG4gICAgICAgICAgICBuZXcgUmVnRXhwKGFzc2V0KSxcbiAgICAgICAgICAgIGBBc3NldCR7aXh9JDFgLFxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIGFzc2V0IG1hbmlmZXN0IHRoYXQgaXMgZmluZS5cbiAgICB9XG5cbiAgICAvLyBTdWJzdGl0dXRlIHRoZW0gb3V0XG4gICAgcmV0dXJuIHN1YnN0aXR1dGUodGVtcGxhdGUpO1xuXG4gICAgZnVuY3Rpb24gc3Vic3RpdHV0ZSh3aGF0OiBhbnkpOiBhbnkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkod2hhdCkpIHtcbiAgICAgICAgcmV0dXJuIHdoYXQubWFwKHN1YnN0aXR1dGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHdoYXQgPT09ICdvYmplY3QnICYmIHdoYXQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcmV0OiBhbnkgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMod2hhdCkpIHtcbiAgICAgICAgICByZXRbc3RyaW5nU3ViKGspXSA9IHN1YnN0aXR1dGUodik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aGF0ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gc3RyaW5nU3ViKHdoYXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gd2hhdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdHJpbmdTdWIoeDogc3RyaW5nKSB7XG4gICAgICBmb3IgKGNvbnN0IFtyZSwgcmVwbGFjZW1lbnRdIG9mIHN0cmluZ1N1YnN0aXR1dGlvbnMpIHtcbiAgICAgICAgeCA9IHgucmVwbGFjZShyZSwgcmVwbGFjZW1lbnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHg7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFN0cmluZ1dyaXRhYmxlIGV4dGVuZHMgV3JpdGFibGUge1xuICBwdWJsaWMgZGF0YTogc3RyaW5nO1xuICBwcml2YXRlIF9kZWNvZGVyOiBTdHJpbmdEZWNvZGVyO1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBXcml0YWJsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLl9kZWNvZGVyID0gbmV3IFN0cmluZ0RlY29kZXIoKTtcbiAgICB0aGlzLmRhdGEgPSAnJztcbiAgfVxuXG4gIF93cml0ZShjaHVuazogYW55LCBlbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgaWYgKGVuY29kaW5nID09PSAnYnVmZmVyJykge1xuICAgICAgY2h1bmsgPSB0aGlzLl9kZWNvZGVyLndyaXRlKGNodW5rKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGEgKz0gY2h1bms7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxuXG4gIF9maW5hbChjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhICs9IHRoaXMuX2RlY29kZXIuZW5kKCk7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuIl19
|
|
@@ -6973,7 +6973,7 @@ ${errors.map((e) => e.stack).join("\n")}`);
|
|
|
6973
6973
|
};
|
|
6974
6974
|
exports2.Manifest = Manifest5;
|
|
6975
6975
|
_a = JSII_RTTI_SYMBOL_1;
|
|
6976
|
-
Manifest5[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "39.2.
|
|
6976
|
+
Manifest5[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "39.2.4" };
|
|
6977
6977
|
function mapValues(xs, fn) {
|
|
6978
6978
|
if (!xs) {
|
|
6979
6979
|
return void 0;
|
|
@@ -7177,7 +7177,6 @@ var init_cloud_artifact = __esm({
|
|
|
7177
7177
|
}
|
|
7178
7178
|
/**
|
|
7179
7179
|
* @returns all the metadata entries of a specific type in this artifact.
|
|
7180
|
-
* @param type
|
|
7181
7180
|
*/
|
|
7182
7181
|
findMetadataByType(type) {
|
|
7183
7182
|
const result = new Array();
|
|
@@ -7732,7 +7731,6 @@ var init_cloud_assembly = __esm({
|
|
|
7732
7731
|
const nestedAssemblies = head.nestedAssemblies.map((asm) => asm.nestedAssembly);
|
|
7733
7732
|
return search(stackArtifacts.concat(head.stacks), tail.concat(nestedAssemblies));
|
|
7734
7733
|
}
|
|
7735
|
-
;
|
|
7736
7734
|
return search([], [this]);
|
|
7737
7735
|
}
|
|
7738
7736
|
/**
|
|
@@ -7845,7 +7843,6 @@ var init_cloud_assembly = __esm({
|
|
|
7845
7843
|
/**
|
|
7846
7844
|
* Finalizes the cloud assembly into the output directory returns a
|
|
7847
7845
|
* `CloudAssembly` object that can be used to inspect the assembly.
|
|
7848
|
-
* @param options
|
|
7849
7846
|
*/
|
|
7850
7847
|
buildAssembly(options = {}) {
|
|
7851
7848
|
let manifest = {
|
|
@@ -7999,6 +7996,7 @@ __export(features_exports, {
|
|
|
7999
7996
|
EFS_DENY_ANONYMOUS_ACCESS: () => EFS_DENY_ANONYMOUS_ACCESS,
|
|
8000
7997
|
EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID: () => EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID,
|
|
8001
7998
|
EKS_NODEGROUP_NAME: () => EKS_NODEGROUP_NAME,
|
|
7999
|
+
ENABLE_ADDITIONAL_METADATA_COLLECTION: () => ENABLE_ADDITIONAL_METADATA_COLLECTION,
|
|
8002
8000
|
ENABLE_DIFF_NO_FAIL: () => ENABLE_DIFF_NO_FAIL,
|
|
8003
8001
|
ENABLE_DIFF_NO_FAIL_CONTEXT: () => ENABLE_DIFF_NO_FAIL_CONTEXT,
|
|
8004
8002
|
ENABLE_EMR_SERVICE_POLICY_V2: () => ENABLE_EMR_SERVICE_POLICY_V2,
|
|
@@ -8054,7 +8052,7 @@ function futureFlagDefault(flag) {
|
|
|
8054
8052
|
}
|
|
8055
8053
|
return value;
|
|
8056
8054
|
}
|
|
8057
|
-
var ENABLE_STACK_NAME_DUPLICATES_CONTEXT, ENABLE_DIFF_NO_FAIL_CONTEXT, ENABLE_DIFF_NO_FAIL, NEW_STYLE_STACK_SYNTHESIS_CONTEXT, STACK_RELATIVE_EXPORTS_CONTEXT, DOCKER_IGNORE_SUPPORT, SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME, KMS_DEFAULT_KEY_POLICIES, S3_GRANT_WRITE_WITHOUT_ACL, ECS_REMOVE_DEFAULT_DESIRED_COUNT, RDS_LOWERCASE_DB_IDENTIFIER, APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID, EFS_DEFAULT_ENCRYPTION_AT_REST, LAMBDA_RECOGNIZE_VERSION_PROPS, LAMBDA_RECOGNIZE_LAYER_VERSION, CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021, CHECK_SECRET_USAGE, TARGET_PARTITIONS, ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER, EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME, ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME, IAM_MINIMIZE_POLICIES, IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME, VALIDATE_SNAPSHOT_REMOVAL_POLICY, CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME, S3_CREATE_DEFAULT_LOGGING_POLICY, SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY, APIGATEWAY_DISABLE_CLOUDWATCH_ROLE, ENABLE_PARTITION_LITERALS, EVENTS_TARGET_QUEUE_SAME_ACCOUNT, ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER, S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY, ROUTE53_PATTERNS_USE_CERTIFICATE, AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT, DATABASE_PROXY_UNIQUE_RESOURCE_NAME, CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP, APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID, EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA, SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY, REDSHIFT_COLUMN_ID, ENABLE_EMR_SERVICE_POLICY_V2, EC2_RESTRICT_DEFAULT_SECURITY_GROUP, APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID, INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION, KMS_ALIAS_NAME_REF, EFS_DENY_ANONYMOUS_ACCESS, EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID, AUTOSCALING_GENERATE_LAUNCH_TEMPLATE, ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY, LAMBDA_NODEJS_USE_LATEST_RUNTIME, RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS, AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS, APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION, CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME, LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION, CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE, CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2, KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE, PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE, EKS_NODEGROUP_NAME, EBS_DEFAULT_GP3, ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM, LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT, S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET, USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK, REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS, DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA, EC2_SUM_TIMEOUT_ENABLED, APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION, USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY, CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS, LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES, STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY, BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT, ASPECT_STABILIZATION, USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE, Enable_IMDS_Blocking_Deprecated_Feature, Disable_ECS_IMDS_Blocking, ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT, IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS, FLAGS, CURRENT_MV, CURRENT_VERSION_EXPIRED_FLAGS, CURRENTLY_RECOMMENDED_FLAGS, CURRENT_VERSION_FLAG_DEFAULTS, FUTURE_FLAGS_EXPIRED, FUTURE_FLAGS, NEW_PROJECT_DEFAULT_CONTEXT;
|
|
8055
|
+
var ENABLE_STACK_NAME_DUPLICATES_CONTEXT, ENABLE_DIFF_NO_FAIL_CONTEXT, ENABLE_DIFF_NO_FAIL, NEW_STYLE_STACK_SYNTHESIS_CONTEXT, STACK_RELATIVE_EXPORTS_CONTEXT, DOCKER_IGNORE_SUPPORT, SECRETS_MANAGER_PARSE_OWNED_SECRET_NAME, KMS_DEFAULT_KEY_POLICIES, S3_GRANT_WRITE_WITHOUT_ACL, ECS_REMOVE_DEFAULT_DESIRED_COUNT, RDS_LOWERCASE_DB_IDENTIFIER, APIGATEWAY_USAGEPLANKEY_ORDERINSENSITIVE_ID, EFS_DEFAULT_ENCRYPTION_AT_REST, LAMBDA_RECOGNIZE_VERSION_PROPS, LAMBDA_RECOGNIZE_LAYER_VERSION, CLOUDFRONT_DEFAULT_SECURITY_POLICY_TLS_V1_2_2021, CHECK_SECRET_USAGE, TARGET_PARTITIONS, ECS_SERVICE_EXTENSIONS_ENABLE_DEFAULT_LOG_DRIVER, EC2_UNIQUE_IMDSV2_LAUNCH_TEMPLATE_NAME, ECS_ARN_FORMAT_INCLUDES_CLUSTER_NAME, IAM_MINIMIZE_POLICIES, IAM_IMPORTED_ROLE_STACK_SAFE_DEFAULT_POLICY_NAME, VALIDATE_SNAPSHOT_REMOVAL_POLICY, CODEPIPELINE_CROSS_ACCOUNT_KEY_ALIAS_STACK_SAFE_RESOURCE_NAME, S3_CREATE_DEFAULT_LOGGING_POLICY, SNS_SUBSCRIPTIONS_SQS_DECRYPTION_POLICY, APIGATEWAY_DISABLE_CLOUDWATCH_ROLE, ENABLE_PARTITION_LITERALS, EVENTS_TARGET_QUEUE_SAME_ACCOUNT, ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER, S3_SERVER_ACCESS_LOGS_USE_BUCKET_POLICY, ROUTE53_PATTERNS_USE_CERTIFICATE, AWS_CUSTOM_RESOURCE_LATEST_SDK_DEFAULT, DATABASE_PROXY_UNIQUE_RESOURCE_NAME, CODEDEPLOY_REMOVE_ALARMS_FROM_DEPLOYMENT_GROUP, APIGATEWAY_AUTHORIZER_CHANGE_DEPLOYMENT_LOGICAL_ID, EC2_LAUNCH_TEMPLATE_DEFAULT_USER_DATA, SECRETS_MANAGER_TARGET_ATTACHMENT_RESOURCE_POLICY, REDSHIFT_COLUMN_ID, ENABLE_EMR_SERVICE_POLICY_V2, EC2_RESTRICT_DEFAULT_SECURITY_GROUP, APIGATEWAY_REQUEST_VALIDATOR_UNIQUE_ID, INCLUDE_PREFIX_IN_UNIQUE_NAME_GENERATION, KMS_ALIAS_NAME_REF, EFS_DENY_ANONYMOUS_ACCESS, EFS_MOUNTTARGET_ORDERINSENSITIVE_LOGICAL_ID, AUTOSCALING_GENERATE_LAUNCH_TEMPLATE, ENABLE_OPENSEARCH_MULTIAZ_WITH_STANDBY, LAMBDA_NODEJS_USE_LATEST_RUNTIME, RDS_PREVENT_RENDERING_DEPRECATED_CREDENTIALS, AURORA_CLUSTER_CHANGE_SCOPE_OF_INSTANCE_PARAMETER_GROUP_WITH_EACH_PARAMETERS, APPSYNC_ENABLE_USE_ARN_IDENTIFIER_SOURCE_API_ASSOCIATION, CODECOMMIT_SOURCE_ACTION_DEFAULT_BRANCH_NAME, LAMBDA_PERMISSION_LOGICAL_ID_FOR_LAMBDA_ACTION, CODEPIPELINE_CROSS_ACCOUNT_KEYS_DEFAULT_VALUE_TO_FALSE, CODEPIPELINE_DEFAULT_PIPELINE_TYPE_TO_V2, KMS_REDUCE_CROSS_ACCOUNT_REGION_POLICY_SCOPE, PIPELINE_REDUCE_ASSET_ROLE_TRUST_SCOPE, EKS_NODEGROUP_NAME, EBS_DEFAULT_GP3, ECS_REMOVE_DEFAULT_DEPLOYMENT_ALARM, LOG_API_RESPONSE_DATA_PROPERTY_TRUE_DEFAULT, S3_KEEP_NOTIFICATION_IN_IMPORTED_BUCKET, USE_NEW_S3URI_PARAMETERS_FOR_BEDROCK_INVOKE_MODEL_TASK, REDUCE_EC2_FARGATE_CLOUDWATCH_PERMISSIONS, DYNAMODB_TABLEV2_RESOURCE_POLICY_PER_REPLICA, EC2_SUM_TIMEOUT_ENABLED, APPSYNC_GRAPHQLAPI_SCOPE_LAMBDA_FUNCTION_PERMISSION, USE_CORRECT_VALUE_FOR_INSTANCE_RESOURCE_ID_PROPERTY, CFN_INCLUDE_REJECT_COMPLEX_RESOURCE_UPDATE_CREATE_POLICY_INTRINSICS, LAMBDA_NODEJS_SDK_V3_EXCLUDE_SMITHY_PACKAGES, STEPFUNCTIONS_TASKS_FIX_RUN_ECS_TASK_POLICY, BASTION_HOST_USE_AMAZON_LINUX_2023_BY_DEFAULT, ASPECT_STABILIZATION, USER_POOL_DOMAIN_NAME_METHOD_WITHOUT_CUSTOM_RESOURCE, Enable_IMDS_Blocking_Deprecated_Feature, Disable_ECS_IMDS_Blocking, ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT, IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS, ENABLE_ADDITIONAL_METADATA_COLLECTION, FLAGS, CURRENT_MV, CURRENT_VERSION_EXPIRED_FLAGS, CURRENTLY_RECOMMENDED_FLAGS, CURRENT_VERSION_FLAG_DEFAULTS, FUTURE_FLAGS_EXPIRED, FUTURE_FLAGS, NEW_PROJECT_DEFAULT_CONTEXT;
|
|
8058
8056
|
var init_features = __esm({
|
|
8059
8057
|
"../cx-api/lib/features.ts"() {
|
|
8060
8058
|
"use strict";
|
|
@@ -8139,6 +8137,7 @@ var init_features = __esm({
|
|
|
8139
8137
|
Disable_ECS_IMDS_Blocking = "@aws-cdk/aws-ecs:disableEcsImdsBlocking";
|
|
8140
8138
|
ALB_DUALSTACK_WITHOUT_PUBLIC_IPV4_SECURITY_GROUP_RULES_DEFAULT = "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault";
|
|
8141
8139
|
IAM_OIDC_REJECT_UNAUTHORIZED_CONNECTIONS = "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections";
|
|
8140
|
+
ENABLE_ADDITIONAL_METADATA_COLLECTION = "@aws-cdk/core:enableAdditionalMetadataCollection";
|
|
8142
8141
|
FLAGS = {
|
|
8143
8142
|
//////////////////////////////////////////////////////////////////////
|
|
8144
8143
|
[ENABLE_STACK_NAME_DUPLICATES_CONTEXT]: {
|
|
@@ -9303,6 +9302,19 @@ var init_features = __esm({
|
|
|
9303
9302
|
introducedIn: { v2: "2.177.0" },
|
|
9304
9303
|
recommendedValue: true,
|
|
9305
9304
|
compatibilityWithOldBehaviorMd: "Disable the feature flag to allow unsecure OIDC connection."
|
|
9305
|
+
},
|
|
9306
|
+
//////////////////////////////////////////////////////////////////////
|
|
9307
|
+
[ENABLE_ADDITIONAL_METADATA_COLLECTION]: {
|
|
9308
|
+
type: 2 /* VisibleContext */,
|
|
9309
|
+
summary: "When enabled, CDK will expand the scope of usage data collected to better inform CDK development and improve communication for security concerns and emerging issues.",
|
|
9310
|
+
detailsMd: `
|
|
9311
|
+
When this feature flag is enabled, CDK expands the scope of usage data collection to include the following:
|
|
9312
|
+
* L2 construct property keys - Collect which property keys you use from the L2 constructs in your app. This includes property keys nested in dictionary objects.
|
|
9313
|
+
* L2 construct property values of BOOL and ENUM types - Collect property key values of only BOOL and ENUM types. All other types, such as string values or construct references will be redacted.
|
|
9314
|
+
* L2 construct method usage - Collection method name, parameter keys and parameter values of BOOL and ENUM type.
|
|
9315
|
+
`,
|
|
9316
|
+
introducedIn: { v2: "2.178.0" },
|
|
9317
|
+
recommendedValue: true
|
|
9306
9318
|
}
|
|
9307
9319
|
};
|
|
9308
9320
|
CURRENT_MV = "v2";
|
|
@@ -12314,6 +12326,7 @@ __export(recommended_feature_flags_exports, {
|
|
|
12314
12326
|
"@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": () => _aws_cdk_aws_stepfunctions_tasks_fixRunEcsTaskPolicy,
|
|
12315
12327
|
"@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": () => _aws_cdk_core_cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics,
|
|
12316
12328
|
"@aws-cdk/core:checkSecretUsage": () => _aws_cdk_core_checkSecretUsage,
|
|
12329
|
+
"@aws-cdk/core:enableAdditionalMetadataCollection": () => _aws_cdk_core_enableAdditionalMetadataCollection,
|
|
12317
12330
|
"@aws-cdk/core:enablePartitionLiterals": () => _aws_cdk_core_enablePartitionLiterals,
|
|
12318
12331
|
"@aws-cdk/core:includePrefixInUniqueNameGeneration": () => _aws_cdk_core_includePrefixInUniqueNameGeneration,
|
|
12319
12332
|
"@aws-cdk/core:target-partitions": () => _aws_cdk_core_target_partitions,
|
|
@@ -12322,7 +12335,7 @@ __export(recommended_feature_flags_exports, {
|
|
|
12322
12335
|
"@aws-cdk/customresources:installLatestAwsSdkDefault": () => _aws_cdk_customresources_installLatestAwsSdkDefault,
|
|
12323
12336
|
default: () => recommended_feature_flags_default
|
|
12324
12337
|
});
|
|
12325
|
-
var _aws_cdk_aws_lambda_recognizeLayerVersion, _aws_cdk_core_checkSecretUsage, _aws_cdk_core_target_partitions, _aws_cdk_containers_ecs_service_extensions_enableDefaultLogDriver, _aws_cdk_aws_ec2_uniqueImdsv2TemplateName, _aws_cdk_aws_ecs_arnFormatIncludesClusterName, _aws_cdk_aws_iam_minimizePolicies, _aws_cdk_core_validateSnapshotRemovalPolicy, _aws_cdk_aws_codepipeline_crossAccountKeyAliasStackSafeResourceName, _aws_cdk_aws_s3_createDefaultLoggingPolicy, _aws_cdk_aws_sns_subscriptions_restrictSqsDescryption, _aws_cdk_aws_apigateway_disableCloudWatchRole, _aws_cdk_core_enablePartitionLiterals, _aws_cdk_aws_events_eventsTargetQueueSameAccount, _aws_cdk_aws_ecs_disableExplicitDeploymentControllerForCircuitBreaker, _aws_cdk_aws_iam_importedRoleStackSafeDefaultPolicyName, _aws_cdk_aws_s3_serverAccessLogsUseBucketPolicy, _aws_cdk_aws_route53_patters_useCertificate, _aws_cdk_customresources_installLatestAwsSdkDefault, _aws_cdk_aws_rds_databaseProxyUniqueResourceName, _aws_cdk_aws_codedeploy_removeAlarmsFromDeploymentGroup, _aws_cdk_aws_apigateway_authorizerChangeDeploymentLogicalId, _aws_cdk_aws_ec2_launchTemplateDefaultUserData, _aws_cdk_aws_secretsmanager_useAttachedSecretResourcePolicyForSecretTargetAttachments, _aws_cdk_aws_redshift_columnId, _aws_cdk_aws_stepfunctions_tasks_enableEmrServicePolicyV2, _aws_cdk_aws_ec2_restrictDefaultSecurityGroup, _aws_cdk_aws_apigateway_requestValidatorUniqueId, _aws_cdk_aws_kms_aliasNameRef, _aws_cdk_aws_autoscaling_generateLaunchTemplateInsteadOfLaunchConfig, _aws_cdk_core_includePrefixInUniqueNameGeneration, _aws_cdk_aws_efs_denyAnonymousAccess, _aws_cdk_aws_opensearchservice_enableOpensearchMultiAzWithStandby, _aws_cdk_aws_lambda_nodejs_useLatestRuntimeVersion, _aws_cdk_aws_efs_mountTargetOrderInsensitiveLogicalId, _aws_cdk_aws_rds_auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters, _aws_cdk_aws_appsync_useArnForSourceApiAssociationIdentifier, _aws_cdk_aws_rds_preventRenderingDeprecatedCredentials, _aws_cdk_aws_codepipeline_actions_useNewDefaultBranchForCodeCommitSource, _aws_cdk_aws_cloudwatch_actions_changeLambdaPermissionLogicalIdForLambdaAction, _aws_cdk_aws_codepipeline_crossAccountKeysDefaultValueToFalse, _aws_cdk_aws_codepipeline_defaultPipelineTypeToV2, _aws_cdk_aws_kms_reduceCrossAccountRegionPolicyScope, _aws_cdk_aws_eks_nodegroupNameAttribute, _aws_cdk_aws_ec2_ebsDefaultGp3Volume, _aws_cdk_aws_ecs_removeDefaultDeploymentAlarm, _aws_cdk_custom_resources_logApiResponseDataPropertyTrueDefault, _aws_cdk_aws_s3_keepNotificationInImportedBucket, _aws_cdk_aws_ecs_enableImdsBlockingDeprecatedFeature, _aws_cdk_aws_ecs_disableEcsImdsBlocking, _aws_cdk_aws_ecs_reduceEc2FargateCloudWatchPermissions, _aws_cdk_aws_dynamodb_resourcePolicyPerReplica, _aws_cdk_aws_ec2_ec2SumTImeoutEnabled, _aws_cdk_aws_appsync_appSyncGraphQLAPIScopeLambdaPermission, _aws_cdk_aws_rds_setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId, _aws_cdk_core_cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics, _aws_cdk_aws_lambda_nodejs_sdkV3ExcludeSmithyPackages, _aws_cdk_aws_stepfunctions_tasks_fixRunEcsTaskPolicy, _aws_cdk_aws_ec2_bastionHostUseAmazonLinux2023ByDefault, _aws_cdk_aws_route53_targets_userPoolDomainNameMethodWithoutCustomResource, _aws_cdk_aws_elasticloadbalancingV2_albDualstackWithoutPublicIpv4SecurityGroupRulesDefault, _aws_cdk_aws_iam_oidcRejectUnauthorizedConnections, recommended_feature_flags_default;
|
|
12338
|
+
var _aws_cdk_aws_lambda_recognizeLayerVersion, _aws_cdk_core_checkSecretUsage, _aws_cdk_core_target_partitions, _aws_cdk_containers_ecs_service_extensions_enableDefaultLogDriver, _aws_cdk_aws_ec2_uniqueImdsv2TemplateName, _aws_cdk_aws_ecs_arnFormatIncludesClusterName, _aws_cdk_aws_iam_minimizePolicies, _aws_cdk_core_validateSnapshotRemovalPolicy, _aws_cdk_aws_codepipeline_crossAccountKeyAliasStackSafeResourceName, _aws_cdk_aws_s3_createDefaultLoggingPolicy, _aws_cdk_aws_sns_subscriptions_restrictSqsDescryption, _aws_cdk_aws_apigateway_disableCloudWatchRole, _aws_cdk_core_enablePartitionLiterals, _aws_cdk_aws_events_eventsTargetQueueSameAccount, _aws_cdk_aws_ecs_disableExplicitDeploymentControllerForCircuitBreaker, _aws_cdk_aws_iam_importedRoleStackSafeDefaultPolicyName, _aws_cdk_aws_s3_serverAccessLogsUseBucketPolicy, _aws_cdk_aws_route53_patters_useCertificate, _aws_cdk_customresources_installLatestAwsSdkDefault, _aws_cdk_aws_rds_databaseProxyUniqueResourceName, _aws_cdk_aws_codedeploy_removeAlarmsFromDeploymentGroup, _aws_cdk_aws_apigateway_authorizerChangeDeploymentLogicalId, _aws_cdk_aws_ec2_launchTemplateDefaultUserData, _aws_cdk_aws_secretsmanager_useAttachedSecretResourcePolicyForSecretTargetAttachments, _aws_cdk_aws_redshift_columnId, _aws_cdk_aws_stepfunctions_tasks_enableEmrServicePolicyV2, _aws_cdk_aws_ec2_restrictDefaultSecurityGroup, _aws_cdk_aws_apigateway_requestValidatorUniqueId, _aws_cdk_aws_kms_aliasNameRef, _aws_cdk_aws_autoscaling_generateLaunchTemplateInsteadOfLaunchConfig, _aws_cdk_core_includePrefixInUniqueNameGeneration, _aws_cdk_aws_efs_denyAnonymousAccess, _aws_cdk_aws_opensearchservice_enableOpensearchMultiAzWithStandby, _aws_cdk_aws_lambda_nodejs_useLatestRuntimeVersion, _aws_cdk_aws_efs_mountTargetOrderInsensitiveLogicalId, _aws_cdk_aws_rds_auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters, _aws_cdk_aws_appsync_useArnForSourceApiAssociationIdentifier, _aws_cdk_aws_rds_preventRenderingDeprecatedCredentials, _aws_cdk_aws_codepipeline_actions_useNewDefaultBranchForCodeCommitSource, _aws_cdk_aws_cloudwatch_actions_changeLambdaPermissionLogicalIdForLambdaAction, _aws_cdk_aws_codepipeline_crossAccountKeysDefaultValueToFalse, _aws_cdk_aws_codepipeline_defaultPipelineTypeToV2, _aws_cdk_aws_kms_reduceCrossAccountRegionPolicyScope, _aws_cdk_aws_eks_nodegroupNameAttribute, _aws_cdk_aws_ec2_ebsDefaultGp3Volume, _aws_cdk_aws_ecs_removeDefaultDeploymentAlarm, _aws_cdk_custom_resources_logApiResponseDataPropertyTrueDefault, _aws_cdk_aws_s3_keepNotificationInImportedBucket, _aws_cdk_aws_ecs_enableImdsBlockingDeprecatedFeature, _aws_cdk_aws_ecs_disableEcsImdsBlocking, _aws_cdk_aws_ecs_reduceEc2FargateCloudWatchPermissions, _aws_cdk_aws_dynamodb_resourcePolicyPerReplica, _aws_cdk_aws_ec2_ec2SumTImeoutEnabled, _aws_cdk_aws_appsync_appSyncGraphQLAPIScopeLambdaPermission, _aws_cdk_aws_rds_setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId, _aws_cdk_core_cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics, _aws_cdk_aws_lambda_nodejs_sdkV3ExcludeSmithyPackages, _aws_cdk_aws_stepfunctions_tasks_fixRunEcsTaskPolicy, _aws_cdk_aws_ec2_bastionHostUseAmazonLinux2023ByDefault, _aws_cdk_aws_route53_targets_userPoolDomainNameMethodWithoutCustomResource, _aws_cdk_aws_elasticloadbalancingV2_albDualstackWithoutPublicIpv4SecurityGroupRulesDefault, _aws_cdk_aws_iam_oidcRejectUnauthorizedConnections, _aws_cdk_core_enableAdditionalMetadataCollection, recommended_feature_flags_default;
|
|
12326
12339
|
var init_recommended_feature_flags = __esm({
|
|
12327
12340
|
"lib/recommended-feature-flags.json"() {
|
|
12328
12341
|
_aws_cdk_aws_lambda_recognizeLayerVersion = true;
|
|
@@ -12390,6 +12403,7 @@ var init_recommended_feature_flags = __esm({
|
|
|
12390
12403
|
_aws_cdk_aws_route53_targets_userPoolDomainNameMethodWithoutCustomResource = true;
|
|
12391
12404
|
_aws_cdk_aws_elasticloadbalancingV2_albDualstackWithoutPublicIpv4SecurityGroupRulesDefault = true;
|
|
12392
12405
|
_aws_cdk_aws_iam_oidcRejectUnauthorizedConnections = true;
|
|
12406
|
+
_aws_cdk_core_enableAdditionalMetadataCollection = true;
|
|
12393
12407
|
recommended_feature_flags_default = {
|
|
12394
12408
|
"@aws-cdk/aws-lambda:recognizeLayerVersion": _aws_cdk_aws_lambda_recognizeLayerVersion,
|
|
12395
12409
|
"@aws-cdk/core:checkSecretUsage": _aws_cdk_core_checkSecretUsage,
|
|
@@ -12452,7 +12466,8 @@ var init_recommended_feature_flags = __esm({
|
|
|
12452
12466
|
"@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": _aws_cdk_aws_ec2_bastionHostUseAmazonLinux2023ByDefault,
|
|
12453
12467
|
"@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": _aws_cdk_aws_route53_targets_userPoolDomainNameMethodWithoutCustomResource,
|
|
12454
12468
|
"@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": _aws_cdk_aws_elasticloadbalancingV2_albDualstackWithoutPublicIpv4SecurityGroupRulesDefault,
|
|
12455
|
-
"@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": _aws_cdk_aws_iam_oidcRejectUnauthorizedConnections
|
|
12469
|
+
"@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": _aws_cdk_aws_iam_oidcRejectUnauthorizedConnections,
|
|
12470
|
+
"@aws-cdk/core:enableAdditionalMetadataCollection": _aws_cdk_core_enableAdditionalMetadataCollection
|
|
12456
12471
|
};
|
|
12457
12472
|
}
|
|
12458
12473
|
});
|
|
@@ -12575,6 +12590,14 @@ var require_context_queries2 = __commonJS({
|
|
|
12575
12590
|
}
|
|
12576
12591
|
});
|
|
12577
12592
|
|
|
12593
|
+
// ../../../node_modules/cdk-assets/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/interfaces.js
|
|
12594
|
+
var require_interfaces2 = __commonJS({
|
|
12595
|
+
"../../../node_modules/cdk-assets/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/interfaces.js"(exports2) {
|
|
12596
|
+
"use strict";
|
|
12597
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
12598
|
+
}
|
|
12599
|
+
});
|
|
12600
|
+
|
|
12578
12601
|
// ../../../node_modules/cdk-assets/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/index.js
|
|
12579
12602
|
var require_cloud_assembly2 = __commonJS({
|
|
12580
12603
|
"../../../node_modules/cdk-assets/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/index.js"(exports2) {
|
|
@@ -12600,6 +12623,7 @@ var require_cloud_assembly2 = __commonJS({
|
|
|
12600
12623
|
__exportStar2(require_metadata_schema2(), exports2);
|
|
12601
12624
|
__exportStar2(require_artifact_schema2(), exports2);
|
|
12602
12625
|
__exportStar2(require_context_queries2(), exports2);
|
|
12626
|
+
__exportStar2(require_interfaces2(), exports2);
|
|
12603
12627
|
}
|
|
12604
12628
|
});
|
|
12605
12629
|
|
|
@@ -16214,7 +16238,11 @@ var require_cloud_assembly_schema2 = __commonJS({
|
|
|
16214
16238
|
}
|
|
16215
16239
|
},
|
|
16216
16240
|
{
|
|
16217
|
-
type:
|
|
16241
|
+
type: [
|
|
16242
|
+
"string",
|
|
16243
|
+
"number",
|
|
16244
|
+
"boolean"
|
|
16245
|
+
]
|
|
16218
16246
|
},
|
|
16219
16247
|
{
|
|
16220
16248
|
description: "Free form data."
|
|
@@ -17642,7 +17670,7 @@ var require_integ_schema2 = __commonJS({
|
|
|
17642
17670
|
var require_version2 = __commonJS({
|
|
17643
17671
|
"../../../node_modules/cdk-assets/node_modules/@aws-cdk/cloud-assembly-schema/schema/version.json"(exports2, module2) {
|
|
17644
17672
|
module2.exports = {
|
|
17645
|
-
schemaHash: "
|
|
17673
|
+
schemaHash: "bf762e5da559c685e06892ef65fdfc33d1c4bd53d4eb07d4a326d476ac58ae25",
|
|
17646
17674
|
revision: 39
|
|
17647
17675
|
};
|
|
17648
17676
|
}
|
|
@@ -17875,7 +17903,7 @@ ${errors.map((e) => e.stack).join("\n")}`);
|
|
|
17875
17903
|
};
|
|
17876
17904
|
exports2.Manifest = Manifest5;
|
|
17877
17905
|
_a = JSII_RTTI_SYMBOL_1;
|
|
17878
|
-
Manifest5[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "39.
|
|
17906
|
+
Manifest5[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "39.2.3" };
|
|
17879
17907
|
function mapValues(xs, fn) {
|
|
17880
17908
|
if (!xs) {
|
|
17881
17909
|
return void 0;
|
|
@@ -26904,7 +26932,6 @@ function deepEqual(lvalue, rvalue) {
|
|
|
26904
26932
|
if (!dependsOnEqual(lvalue[key], rvalue[key])) {
|
|
26905
26933
|
return false;
|
|
26906
26934
|
}
|
|
26907
|
-
;
|
|
26908
26935
|
continue;
|
|
26909
26936
|
}
|
|
26910
26937
|
if (!deepEqual(lvalue[key], rvalue[key])) {
|
|
@@ -28343,7 +28370,6 @@ var init_types = __esm({
|
|
|
28343
28370
|
* - Updated
|
|
28344
28371
|
* - Others
|
|
28345
28372
|
*
|
|
28346
|
-
* @param cb
|
|
28347
28373
|
*/
|
|
28348
28374
|
forEachDifference(cb) {
|
|
28349
28375
|
const removed = new Array();
|
|
@@ -36082,11 +36108,11 @@ var init_snapshot_test_runner = __esm({
|
|
|
36082
36108
|
return AssemblyManifestReader.fromPath(dir);
|
|
36083
36109
|
}
|
|
36084
36110
|
/**
|
|
36085
|
-
|
|
36086
|
-
|
|
36087
|
-
|
|
36088
|
-
|
|
36089
|
-
|
|
36111
|
+
* Reduce template to a normal form where asset references have been normalized
|
|
36112
|
+
*
|
|
36113
|
+
* This makes it possible to compare templates if all that's different between
|
|
36114
|
+
* them is the hashes of the asset values.
|
|
36115
|
+
*/
|
|
36090
36116
|
canonicalizeTemplate(template, assets) {
|
|
36091
36117
|
const assetsSeen = /* @__PURE__ */ new Set();
|
|
36092
36118
|
const stringSubstitutions = new Array();
|
|
@@ -28,4 +28,4 @@ async function runSnapshotTests(pool, tests, options) {
|
|
|
28
28
|
(0, common_1.printSummary)(tests.length, testsToRun.length);
|
|
29
29
|
return testsToRun;
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctc25hcHNob3Qtd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWctc25hcHNob3Qtd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0EsNENBMkJDO0FBckNELHFDQUF5SDtBQUN6SCxvQ0FBb0M7QUFFcEMsb0NBQTZDO0FBRTdDOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLElBQTJCLEVBQzNCLEtBQWtCLEVBQ2xCLE9BQW9DO0lBRXBDLE1BQU0sQ0FBQyxTQUFTLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUVoRSxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNwRCxTQUFTLEVBQUUsc0JBQWE7S0FDekIsQ0FBQyxDQUFDO0lBRUgscUNBQXFDO0lBQ3JDLHdFQUF3RTtJQUN4RSxNQUFNLFdBQVcsR0FBOEIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM5RCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUN0RyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLElBQUEscUJBQVksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO0tBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNaLE1BQU0sVUFBVSxHQUFHLElBQUEsZUFBTyxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMzQyxJQUFBLHFCQUFZLEVBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdvcmtlcnBvb2wgZnJvbSAnd29ya2VycG9vbCc7XG5pbXBvcnQgeyBwcmludFN1bW1hcnksIHByaW50UmVzdWx0cywgSW50ZWdUZXN0V29ya2VyQ29uZmlnLCBTbmFwc2hvdFZlcmlmaWNhdGlvbk9wdGlvbnMsIHByaW50TGFnZ2FyZHMgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IEludGVnVGVzdCB9IGZyb20gJy4uL3J1bm5lci9pbnRlZ3JhdGlvbi10ZXN0cyc7XG5pbXBvcnQgeyBmbGF0dGVuLCBXb3JrTGlzdCB9IGZyb20gJy4uL3V0aWxzJztcblxuLyoqXG4gKiBSdW4gU25hcHNob3QgdGVzdHNcbiAqIEZpcnN0IGJhdGNoIHVwIHRoZSB0ZXN0cy4gQnkgZGVmYXVsdCB0aGVyZSB3aWxsIGJlIDMgdGVzdHMgcGVyIGJhdGNoLlxuICogVXNlIGEgd29ya2VycG9vbCB0byBydW4gdGhlIGJhdGNoZXMgaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TbmFwc2hvdFRlc3RzKFxuICBwb29sOiB3b3JrZXJwb29sLldvcmtlclBvb2wsXG4gIHRlc3RzOiBJbnRlZ1Rlc3RbXSxcbiAgb3B0aW9uczogU25hcHNob3RWZXJpZmljYXRpb25PcHRpb25zLFxuKTogUHJvbWlzZTxJbnRlZ1Rlc3RXb3JrZXJDb25maWdbXT4ge1xuICBsb2dnZXIuaGlnaGxpZ2h0KCdcXG5WZXJpZnlpbmcgaW50ZWdyYXRpb24gdGVzdCBzbmFwc2hvdHMuLi5cXG4nKTtcblxuICBjb25zdCB0b2RvID0gbmV3IFdvcmtMaXN0KHRlc3RzLm1hcCh0ID0+IHQudGVzdE5hbWUpLCB7XG4gICAgb25UaW1lb3V0OiBwcmludExhZ2dhcmRzLFxuICB9KTtcblxuICAvLyBUaGUgd29ya2VyIHBvb2wgaXMgYWxyZWFkeSBsaW1pdGVkXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICBjb25zdCBmYWlsZWRUZXN0czogSW50ZWdUZXN0V29ya2VyQ29uZmlnW11bXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIHRlc3RzLm1hcCgodGVzdCkgPT4gcG9vbC5leGVjKCdzbmFwc2hvdFRlc3RXb3JrZXInLCBbdGVzdC5pbmZvIC8qIERlaHlkcmF0ZSBjbGFzcyAtPiBkYXRhICovLCBvcHRpb25zXSwge1xuICAgICAgb246ICh4KSA9PiB7XG4gICAgICAgIHRvZG8uY3Jvc3NPZmYoeC50ZXN0TmFtZSk7XG4gICAgICAgIHByaW50UmVzdWx0cyh4KTtcbiAgICAgIH0sXG4gICAgfSkpLFxuICApO1xuICB0b2RvLmRvbmUoKTtcbiAgY29uc3QgdGVzdHNUb1J1biA9IGZsYXR0ZW4oZmFpbGVkVGVzdHMpO1xuXG4gIGxvZ2dlci5oaWdobGlnaHQoJ1xcblNuYXBzaG90IFJlc3VsdHM6IFxcbicpO1xuICBwcmludFN1bW1hcnkodGVzdHMubGVuZ3RoLCB0ZXN0c1RvUnVuLmxlbmd0aCk7XG4gIHJldHVybiB0ZXN0c1RvUnVuO1xufVxuIl19
|
|
@@ -96,4 +96,4 @@ async function runIntegrationTestsInParallel(options) {
|
|
|
96
96
|
await Promise.all(workers);
|
|
97
97
|
return results;
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy10ZXN0LXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThDQSxrREFlQztBQWlERCxzRUFtREM7QUFoS0QscUNBQWdIO0FBQ2hILG9DQUFvQztBQUVwQyxvQ0FBbUM7QUF1Q25DOztHQUVHO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQTRCO0lBQ3BFLE1BQU0sQ0FBQyxTQUFTLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN0RSxNQUFNLENBQUMsS0FBSyxDQUNWLDBDQUEwQyxFQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDLEVBQUUsRUFDckUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUV4QyxNQUFNLFNBQVMsR0FBRyxNQUFNLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxJQUFBLHFCQUFZLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQzNDLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztLQUMzQixDQUFDO0FBQ0osQ0FBQztBQW9CRDs7O0dBR0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsUUFBbUI7SUFDL0QsTUFBTSxPQUFPLEdBQW9CLEVBQUUsQ0FBQztJQUNwQyxTQUFTLFVBQVUsQ0FBQyxP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QztRQUNGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSwyQ0FBMkM7SUFDM0Msd0VBQXdFO0lBQ3hFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd29ya2VycG9vbCBmcm9tICd3b3JrZXJwb29sJztcbmltcG9ydCB7IHByaW50UmVzdWx0cywgcHJpbnRTdW1tYXJ5LCBJbnRlZ0JhdGNoUmVzcG9uc2UsIEludGVnVGVzdE9wdGlvbnMsIEludGVnUnVubmVyTWV0cmljcyB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgSW50ZWdUZXN0SW5mbyB9IGZyb20gJy4uL3J1bm5lci9pbnRlZ3JhdGlvbi10ZXN0cyc7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGFuIGludGVncmF0aW9uIHRlc3QgYmF0Y2hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RCYXRjaFJlcXVlc3QgZXh0ZW5kcyBJbnRlZ1Rlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRvIHJ1biB0aGlzIGJhdGNoIGluXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBwcm9maWxlIHRvIHVzZSB3aGVuIHJ1bm5pbmcgdGhpcyB0ZXN0XG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgYWxsIGludGVncmF0aW9uIHRlc3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdUZXN0UnVuT3B0aW9ucyBleHRlbmRzIEludGVnVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlZ2lvbnMgdG8gcnVuIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cyBhY3Jvc3MuXG4gICAqIFRoaXMgYWxsb3dzIHRoZSBydW5uZXIgdG8gcnVuIGludGVncmF0aW9uIHRlc3RzIGluIHBhcmFsbGVsXG4gICAqL1xuICByZWFkb25seSByZWdpb25zOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBBV1MgcHJvZmlsZXMuIFRoaXMgd2lsbCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYHJlZ2lvbnNgXG4gICAqIHRvIHJ1biB0ZXN0cyBpbiBwYXJhbGxlbCBhY3Jvc3MgYWNjb3VudHMgKyByZWdpb25zXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2VycG9vbCB0byB1c2VcbiAgICovXG4gIHJlYWRvbmx5IHBvb2w6IHdvcmtlcnBvb2wuV29ya2VyUG9vbDtcbn1cblxuLyoqXG4gKiBSdW4gSW50ZWdyYXRpb24gdGVzdHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5JbnRlZ3JhdGlvblRlc3RzKG9wdGlvbnM6IEludGVnVGVzdFJ1bk9wdGlvbnMpOiBQcm9taXNlPHsgc3VjY2VzczogYm9vbGVhbjsgbWV0cmljczogSW50ZWdSdW5uZXJNZXRyaWNzW10gfT4ge1xuICBsb2dnZXIuaGlnaGxpZ2h0KCdcXG5SdW5uaW5nIGludGVncmF0aW9uIHRlc3RzIGZvciBmYWlsZWQgdGVzdHMuLi5cXG4nKTtcbiAgbG9nZ2VyLnByaW50KFxuICAgICdSdW5uaW5nIGluIHBhcmFsbGVsIGFjcm9zcyAlc3JlZ2lvbnM6ICVzJyxcbiAgICBvcHRpb25zLnByb2ZpbGVzID8gYHByb2ZpbGVzICR7b3B0aW9ucy5wcm9maWxlcy5qb2luKCcsICcpfSBhbmQgYDogJycsXG4gICAgb3B0aW9ucy5yZWdpb25zLmpvaW4oJywgJykpO1xuICBjb25zdCB0b3RhbFRlc3RzID0gb3B0aW9ucy50ZXN0cy5sZW5ndGg7XG5cbiAgY29uc3QgcmVzcG9uc2VzID0gYXdhaXQgcnVuSW50ZWdyYXRpb25UZXN0c0luUGFyYWxsZWwob3B0aW9ucyk7XG4gIGxvZ2dlci5oaWdobGlnaHQoJ1xcblRlc3QgUmVzdWx0czogXFxuJyk7XG4gIHByaW50U3VtbWFyeSh0b3RhbFRlc3RzLCByZXNwb25zZXMuZmFpbGVkVGVzdHMubGVuZ3RoKTtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiByZXNwb25zZXMuZmFpbGVkVGVzdHMubGVuZ3RoID09PSAwLFxuICAgIG1ldHJpY3M6IHJlc3BvbnNlcy5tZXRyaWNzLFxuICB9O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB3b3JrZXIgZm9yIGEgc2luZ2xlIGFjY291bnQgKyByZWdpb25cbiAqL1xuaW50ZXJmYWNlIEFjY291bnRXb3JrZXIge1xuICAvKipcbiAgICogVGhlIHJlZ2lvbiB0aGUgd29ya2VyIHNob3VsZCBydW4gaW5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdGhhdCB0aGUgd29ya2VyIHNob3VsZCB1c2VcbiAgICogVGhpcyB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgJy0tcHJvZmlsZScgb3B0aW9uIHRvIHRoZSBDREsgQ0xJXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBwcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIEFjY291bnRXb3JrZXJzIGJhc2VkIG9uIHRoZSBsaXN0IG9mIHJlZ2lvbnMgYW5kIHByb2ZpbGVzXG4gKiBnaXZlbiB0byB0aGUgQ0xJLlxuICovXG5mdW5jdGlvbiBnZXRBY2NvdW50V29ya2VycyhyZWdpb25zOiBzdHJpbmdbXSwgcHJvZmlsZXM/OiBzdHJpbmdbXSk6IEFjY291bnRXb3JrZXJbXSB7XG4gIGNvbnN0IHdvcmtlcnM6IEFjY291bnRXb3JrZXJbXSA9IFtdO1xuICBmdW5jdGlvbiBwdXNoV29ya2VyKHByb2ZpbGU/OiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiByZWdpb25zKSB7XG4gICAgICB3b3JrZXJzLnB1c2goe1xuICAgICAgICByZWdpb24sXG4gICAgICAgIHByb2ZpbGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaWYgKHByb2ZpbGVzICYmIHByb2ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2YgcHJvZmlsZXMgPz8gW10pIHtcbiAgICAgIHB1c2hXb3JrZXIocHJvZmlsZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHB1c2hXb3JrZXIoKTtcbiAgfVxuICByZXR1cm4gd29ya2Vycztcbn1cblxuLyoqXG4gKiBSdW5zIGEgc2V0IG9mIGludGVncmF0aW9uIHRlc3RzIGluIHBhcmFsbGVsIGFjcm9zcyBhIGxpc3Qgb2YgQVdTIHJlZ2lvbnMuXG4gKiBPbmx5IGEgc2luZ2xlIHRlc3QgY2FuIGJlIHJ1biBhdCBhIHRpbWUgaW4gYSBnaXZlbiByZWdpb24uIE9uY2UgYSByZWdpb25cbiAqIGlzIGRvbmUgcnVubmluZyBhIHRlc3QsIHRoZSBuZXh0IHRlc3Qgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgcXVldWVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkludGVncmF0aW9uVGVzdHNJblBhcmFsbGVsKFxuICBvcHRpb25zOiBJbnRlZ1Rlc3RSdW5PcHRpb25zLFxuKTogUHJvbWlzZTxJbnRlZ0JhdGNoUmVzcG9uc2U+IHtcblxuICBjb25zdCBxdWV1ZSA9IG9wdGlvbnMudGVzdHM7XG4gIGNvbnN0IHJlc3VsdHM6IEludGVnQmF0Y2hSZXNwb25zZSA9IHtcbiAgICBtZXRyaWNzOiBbXSxcbiAgICBmYWlsZWRUZXN0czogW10sXG4gIH07XG4gIGNvbnN0IGFjY291bnRXb3JrZXJzOiBBY2NvdW50V29ya2VyW10gPSBnZXRBY2NvdW50V29ya2VycyhvcHRpb25zLnJlZ2lvbnMsIG9wdGlvbnMucHJvZmlsZXMpO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qod29ya2VyOiBBY2NvdW50V29ya2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHRlc3RzOiB7IFt0ZXN0TmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICBkbyB7XG4gICAgICBjb25zdCB0ZXN0ID0gcXVldWUucG9wKCk7XG4gICAgICBpZiAoIXRlc3QpIGJyZWFrO1xuICAgICAgY29uc3QgdGVzdFN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgIGxvZ2dlci5oaWdobGlnaHQoYFJ1bm5pbmcgdGVzdCAke3Rlc3QuZmlsZU5hbWV9IGluICR7d29ya2VyLnByb2ZpbGUgPyB3b3JrZXIucHJvZmlsZSArICcvJyA6ICcnfSR7d29ya2VyLnJlZ2lvbn1gKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBJbnRlZ1Rlc3RJbmZvW11bXSA9IGF3YWl0IG9wdGlvbnMucG9vbC5leGVjKCdpbnRlZ1Rlc3RXb3JrZXInLCBbe1xuICAgICAgICB3YXRjaDogb3B0aW9ucy53YXRjaCxcbiAgICAgICAgcmVnaW9uOiB3b3JrZXIucmVnaW9uLFxuICAgICAgICBwcm9maWxlOiB3b3JrZXIucHJvZmlsZSxcbiAgICAgICAgdGVzdHM6IFt0ZXN0XSxcbiAgICAgICAgY2xlYW46IG9wdGlvbnMuY2xlYW4sXG4gICAgICAgIGRyeVJ1bjogb3B0aW9ucy5kcnlSdW4sXG4gICAgICAgIHZlcmJvc2l0eTogb3B0aW9ucy52ZXJib3NpdHksXG4gICAgICAgIHVwZGF0ZVdvcmtmbG93OiBvcHRpb25zLnVwZGF0ZVdvcmtmbG93LFxuICAgICAgfV0sIHtcbiAgICAgICAgb246IHByaW50UmVzdWx0cyxcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHRzLmZhaWxlZFRlc3RzLnB1c2goLi4uZmxhdHRlbihyZXNwb25zZSkpO1xuICAgICAgdGVzdHNbdGVzdC5maWxlTmFtZV0gPSAoRGF0ZS5ub3coKSAtIHRlc3RTdGFydCkgLyAxMDAwO1xuICAgIH0gd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApO1xuICAgIGNvbnN0IG1ldHJpY3M6IEludGVnUnVubmVyTWV0cmljcyA9IHtcbiAgICAgIHJlZ2lvbjogd29ya2VyLnJlZ2lvbixcbiAgICAgIHByb2ZpbGU6IHdvcmtlci5wcm9maWxlLFxuICAgICAgZHVyYXRpb246IChEYXRlLm5vdygpIC0gc3RhcnQpIC8gMTAwMCxcbiAgICAgIHRlc3RzLFxuICAgIH07XG4gICAgaWYgKE9iamVjdC5rZXlzKHRlc3RzKS5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHRzLm1ldHJpY3MucHVzaChtZXRyaWNzKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCB3b3JrZXJzID0gYWNjb3VudFdvcmtlcnMubWFwKCh3b3JrZXIpID0+IHJ1blRlc3Qod29ya2VyKSk7XG4gIC8vIFdvcmtlcnMgYXJlIHRoZWlyIG93biBjb25jdXJyZW5jeSBsaW1pdHNcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBjZGtsYWJzL3Byb21pc2VhbGwtbm8tdW5ib3VuZGVkLXBhcmFsbGVsaXNtXG4gIGF3YWl0IFByb21pc2UuYWxsKHdvcmtlcnMpO1xuICByZXR1cm4gcmVzdWx0cztcbn1cbiJdfQ==
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy10ZXN0LXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThDQSxrREFlQztBQWlERCxzRUFrREM7QUEvSkQscUNBQWdIO0FBQ2hILG9DQUFvQztBQUVwQyxvQ0FBbUM7QUF1Q25DOztHQUVHO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQTRCO0lBQ3BFLE1BQU0sQ0FBQyxTQUFTLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN0RSxNQUFNLENBQUMsS0FBSyxDQUNWLDBDQUEwQyxFQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDLEVBQUUsRUFDckUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUV4QyxNQUFNLFNBQVMsR0FBRyxNQUFNLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2QyxJQUFBLHFCQUFZLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQzNDLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztLQUMzQixDQUFDO0FBQ0osQ0FBQztBQW9CRDs7O0dBR0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLE9BQWlCLEVBQUUsUUFBbUI7SUFDL0QsTUFBTSxPQUFPLEdBQW9CLEVBQUUsQ0FBQztJQUNwQyxTQUFTLFVBQVUsQ0FBQyxP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QztRQUNGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSwyQ0FBMkM7SUFDM0Msd0VBQXdFO0lBQ3hFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgd29ya2VycG9vbCBmcm9tICd3b3JrZXJwb29sJztcbmltcG9ydCB7IHByaW50UmVzdWx0cywgcHJpbnRTdW1tYXJ5LCBJbnRlZ0JhdGNoUmVzcG9uc2UsIEludGVnVGVzdE9wdGlvbnMsIEludGVnUnVubmVyTWV0cmljcyB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCAqIGFzIGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgSW50ZWdUZXN0SW5mbyB9IGZyb20gJy4uL3J1bm5lci9pbnRlZ3JhdGlvbi10ZXN0cyc7XG5pbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGFuIGludGVncmF0aW9uIHRlc3QgYmF0Y2hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RCYXRjaFJlcXVlc3QgZXh0ZW5kcyBJbnRlZ1Rlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRvIHJ1biB0aGlzIGJhdGNoIGluXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBwcm9maWxlIHRvIHVzZSB3aGVuIHJ1bm5pbmcgdGhpcyB0ZXN0XG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJ1bm5pbmcgYWxsIGludGVncmF0aW9uIHRlc3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdUZXN0UnVuT3B0aW9ucyBleHRlbmRzIEludGVnVGVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlZ2lvbnMgdG8gcnVuIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cyBhY3Jvc3MuXG4gICAqIFRoaXMgYWxsb3dzIHRoZSBydW5uZXIgdG8gcnVuIGludGVncmF0aW9uIHRlc3RzIGluIHBhcmFsbGVsXG4gICAqL1xuICByZWFkb25seSByZWdpb25zOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBBV1MgcHJvZmlsZXMuIFRoaXMgd2lsbCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYHJlZ2lvbnNgXG4gICAqIHRvIHJ1biB0ZXN0cyBpbiBwYXJhbGxlbCBhY3Jvc3MgYWNjb3VudHMgKyByZWdpb25zXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2VycG9vbCB0byB1c2VcbiAgICovXG4gIHJlYWRvbmx5IHBvb2w6IHdvcmtlcnBvb2wuV29ya2VyUG9vbDtcbn1cblxuLyoqXG4gKiBSdW4gSW50ZWdyYXRpb24gdGVzdHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5JbnRlZ3JhdGlvblRlc3RzKG9wdGlvbnM6IEludGVnVGVzdFJ1bk9wdGlvbnMpOiBQcm9taXNlPHsgc3VjY2VzczogYm9vbGVhbjsgbWV0cmljczogSW50ZWdSdW5uZXJNZXRyaWNzW10gfT4ge1xuICBsb2dnZXIuaGlnaGxpZ2h0KCdcXG5SdW5uaW5nIGludGVncmF0aW9uIHRlc3RzIGZvciBmYWlsZWQgdGVzdHMuLi5cXG4nKTtcbiAgbG9nZ2VyLnByaW50KFxuICAgICdSdW5uaW5nIGluIHBhcmFsbGVsIGFjcm9zcyAlc3JlZ2lvbnM6ICVzJyxcbiAgICBvcHRpb25zLnByb2ZpbGVzID8gYHByb2ZpbGVzICR7b3B0aW9ucy5wcm9maWxlcy5qb2luKCcsICcpfSBhbmQgYDogJycsXG4gICAgb3B0aW9ucy5yZWdpb25zLmpvaW4oJywgJykpO1xuICBjb25zdCB0b3RhbFRlc3RzID0gb3B0aW9ucy50ZXN0cy5sZW5ndGg7XG5cbiAgY29uc3QgcmVzcG9uc2VzID0gYXdhaXQgcnVuSW50ZWdyYXRpb25UZXN0c0luUGFyYWxsZWwob3B0aW9ucyk7XG4gIGxvZ2dlci5oaWdobGlnaHQoJ1xcblRlc3QgUmVzdWx0czogXFxuJyk7XG4gIHByaW50U3VtbWFyeSh0b3RhbFRlc3RzLCByZXNwb25zZXMuZmFpbGVkVGVzdHMubGVuZ3RoKTtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiByZXNwb25zZXMuZmFpbGVkVGVzdHMubGVuZ3RoID09PSAwLFxuICAgIG1ldHJpY3M6IHJlc3BvbnNlcy5tZXRyaWNzLFxuICB9O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB3b3JrZXIgZm9yIGEgc2luZ2xlIGFjY291bnQgKyByZWdpb25cbiAqL1xuaW50ZXJmYWNlIEFjY291bnRXb3JrZXIge1xuICAvKipcbiAgICogVGhlIHJlZ2lvbiB0aGUgd29ya2VyIHNob3VsZCBydW4gaW5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdGhhdCB0aGUgd29ya2VyIHNob3VsZCB1c2VcbiAgICogVGhpcyB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgJy0tcHJvZmlsZScgb3B0aW9uIHRvIHRoZSBDREsgQ0xJXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBwcm9maWxlXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIEFjY291bnRXb3JrZXJzIGJhc2VkIG9uIHRoZSBsaXN0IG9mIHJlZ2lvbnMgYW5kIHByb2ZpbGVzXG4gKiBnaXZlbiB0byB0aGUgQ0xJLlxuICovXG5mdW5jdGlvbiBnZXRBY2NvdW50V29ya2VycyhyZWdpb25zOiBzdHJpbmdbXSwgcHJvZmlsZXM/OiBzdHJpbmdbXSk6IEFjY291bnRXb3JrZXJbXSB7XG4gIGNvbnN0IHdvcmtlcnM6IEFjY291bnRXb3JrZXJbXSA9IFtdO1xuICBmdW5jdGlvbiBwdXNoV29ya2VyKHByb2ZpbGU/OiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiByZWdpb25zKSB7XG4gICAgICB3b3JrZXJzLnB1c2goe1xuICAgICAgICByZWdpb24sXG4gICAgICAgIHByb2ZpbGUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaWYgKHByb2ZpbGVzICYmIHByb2ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2YgcHJvZmlsZXMgPz8gW10pIHtcbiAgICAgIHB1c2hXb3JrZXIocHJvZmlsZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHB1c2hXb3JrZXIoKTtcbiAgfVxuICByZXR1cm4gd29ya2Vycztcbn1cblxuLyoqXG4gKiBSdW5zIGEgc2V0IG9mIGludGVncmF0aW9uIHRlc3RzIGluIHBhcmFsbGVsIGFjcm9zcyBhIGxpc3Qgb2YgQVdTIHJlZ2lvbnMuXG4gKiBPbmx5IGEgc2luZ2xlIHRlc3QgY2FuIGJlIHJ1biBhdCBhIHRpbWUgaW4gYSBnaXZlbiByZWdpb24uIE9uY2UgYSByZWdpb25cbiAqIGlzIGRvbmUgcnVubmluZyBhIHRlc3QsIHRoZSBuZXh0IHRlc3Qgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgcXVldWVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkludGVncmF0aW9uVGVzdHNJblBhcmFsbGVsKFxuICBvcHRpb25zOiBJbnRlZ1Rlc3RSdW5PcHRpb25zLFxuKTogUHJvbWlzZTxJbnRlZ0JhdGNoUmVzcG9uc2U+IHtcbiAgY29uc3QgcXVldWUgPSBvcHRpb25zLnRlc3RzO1xuICBjb25zdCByZXN1bHRzOiBJbnRlZ0JhdGNoUmVzcG9uc2UgPSB7XG4gICAgbWV0cmljczogW10sXG4gICAgZmFpbGVkVGVzdHM6IFtdLFxuICB9O1xuICBjb25zdCBhY2NvdW50V29ya2VyczogQWNjb3VudFdvcmtlcltdID0gZ2V0QWNjb3VudFdvcmtlcnMob3B0aW9ucy5yZWdpb25zLCBvcHRpb25zLnByb2ZpbGVzKTtcblxuICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KHdvcmtlcjogQWNjb3VudFdvcmtlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCB0ZXN0czogeyBbdGVzdE5hbWU6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gICAgZG8ge1xuICAgICAgY29uc3QgdGVzdCA9IHF1ZXVlLnBvcCgpO1xuICAgICAgaWYgKCF0ZXN0KSBicmVhaztcbiAgICAgIGNvbnN0IHRlc3RTdGFydCA9IERhdGUubm93KCk7XG4gICAgICBsb2dnZXIuaGlnaGxpZ2h0KGBSdW5uaW5nIHRlc3QgJHt0ZXN0LmZpbGVOYW1lfSBpbiAke3dvcmtlci5wcm9maWxlID8gd29ya2VyLnByb2ZpbGUgKyAnLycgOiAnJ30ke3dvcmtlci5yZWdpb259YCk7XG4gICAgICBjb25zdCByZXNwb25zZTogSW50ZWdUZXN0SW5mb1tdW10gPSBhd2FpdCBvcHRpb25zLnBvb2wuZXhlYygnaW50ZWdUZXN0V29ya2VyJywgW3tcbiAgICAgICAgd2F0Y2g6IG9wdGlvbnMud2F0Y2gsXG4gICAgICAgIHJlZ2lvbjogd29ya2VyLnJlZ2lvbixcbiAgICAgICAgcHJvZmlsZTogd29ya2VyLnByb2ZpbGUsXG4gICAgICAgIHRlc3RzOiBbdGVzdF0sXG4gICAgICAgIGNsZWFuOiBvcHRpb25zLmNsZWFuLFxuICAgICAgICBkcnlSdW46IG9wdGlvbnMuZHJ5UnVuLFxuICAgICAgICB2ZXJib3NpdHk6IG9wdGlvbnMudmVyYm9zaXR5LFxuICAgICAgICB1cGRhdGVXb3JrZmxvdzogb3B0aW9ucy51cGRhdGVXb3JrZmxvdyxcbiAgICAgIH1dLCB7XG4gICAgICAgIG9uOiBwcmludFJlc3VsdHMsXG4gICAgICB9KTtcblxuICAgICAgcmVzdWx0cy5mYWlsZWRUZXN0cy5wdXNoKC4uLmZsYXR0ZW4ocmVzcG9uc2UpKTtcbiAgICAgIHRlc3RzW3Rlc3QuZmlsZU5hbWVdID0gKERhdGUubm93KCkgLSB0ZXN0U3RhcnQpIC8gMTAwMDtcbiAgICB9IHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKTtcbiAgICBjb25zdCBtZXRyaWNzOiBJbnRlZ1J1bm5lck1ldHJpY3MgPSB7XG4gICAgICByZWdpb246IHdvcmtlci5yZWdpb24sXG4gICAgICBwcm9maWxlOiB3b3JrZXIucHJvZmlsZSxcbiAgICAgIGR1cmF0aW9uOiAoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIDEwMDAsXG4gICAgICB0ZXN0cyxcbiAgICB9O1xuICAgIGlmIChPYmplY3Qua2V5cyh0ZXN0cykubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0cy5tZXRyaWNzLnB1c2gobWV0cmljcyk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgd29ya2VycyA9IGFjY291bnRXb3JrZXJzLm1hcCgod29ya2VyKSA9PiBydW5UZXN0KHdvcmtlcikpO1xuICAvLyBXb3JrZXJzIGFyZSB0aGVpciBvd24gY29uY3VycmVuY3kgbGltaXRzXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICBhd2FpdCBQcm9taXNlLmFsbCh3b3JrZXJzKTtcbiAgcmV0dXJuIHJlc3VsdHM7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/integ-runner",
|
|
3
3
|
"description": "CDK Integration Testing Tool",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.178.1-alpha.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"bin": {
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
},
|
|
58
58
|
"license": "Apache-2.0",
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
61
|
-
"aws-cdk-lib": "2.
|
|
62
|
-
"@aws-cdk/pkglint": "2.
|
|
60
|
+
"@aws-cdk/cdk-build-tools": "2.178.1-alpha.0",
|
|
61
|
+
"aws-cdk-lib": "2.178.1",
|
|
62
|
+
"@aws-cdk/pkglint": "2.178.1-alpha.0",
|
|
63
63
|
"@types/fs-extra": "^9.0.13",
|
|
64
64
|
"@types/jest": "^29.5.12",
|
|
65
65
|
"@types/mock-fs": "^4.13.4",
|
|
@@ -71,20 +71,20 @@
|
|
|
71
71
|
"ts-node": "^10.9.2",
|
|
72
72
|
"chokidar": "^3.6.0",
|
|
73
73
|
"@aws-cdk/cloud-assembly-schema": "^39.2.0",
|
|
74
|
-
"@aws-cdk/cloudformation-diff": "2.
|
|
75
|
-
"@aws-cdk/cx-api": "2.
|
|
76
|
-
"@aws-cdk/aws-service-spec": "^0.1.
|
|
77
|
-
"cdk-assets": "3.0.0-rc.
|
|
78
|
-
"@aws-cdk/cdk-cli-wrapper": "2.
|
|
79
|
-
"aws-cdk": "2.
|
|
74
|
+
"@aws-cdk/cloudformation-diff": "2.178.1",
|
|
75
|
+
"@aws-cdk/cx-api": "2.178.1",
|
|
76
|
+
"@aws-cdk/aws-service-spec": "^0.1.51",
|
|
77
|
+
"cdk-assets": "3.0.0-rc.127",
|
|
78
|
+
"@aws-cdk/cdk-cli-wrapper": "2.178.1-alpha.0",
|
|
79
|
+
"aws-cdk": "2.178.1",
|
|
80
80
|
"chalk": "^4",
|
|
81
81
|
"fs-extra": "^9.1.0",
|
|
82
82
|
"workerpool": "^6.5.1",
|
|
83
83
|
"yargs": "^16.2.0"
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@aws-cdk/aws-service-spec": "0.1.
|
|
87
|
-
"aws-cdk": "2.
|
|
86
|
+
"@aws-cdk/aws-service-spec": "0.1.51",
|
|
87
|
+
"aws-cdk": "2.178.1"
|
|
88
88
|
},
|
|
89
89
|
"repository": {
|
|
90
90
|
"url": "https://github.com/aws/aws-cdk.git",
|