Socket
Socket
Sign inDemoInstall

@aws-cdk/cfnspec

Package Overview
Dependencies
Maintainers
5
Versions
476
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/cfnspec - npm Package Compare versions

Comparing version 1.19.0 to 1.20.0

.nyc_output/53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f.json

2

.nyc_output/processinfo/index.json

@@ -1,1 +0,1 @@

{"processes":{"1665d45f-21b4-4035-a7d5-e63e90cd0af7":{"parent":null,"children":[]},"dad3c374-d551-4bd9-93f2-7d72ddef9fbd":{"parent":null,"children":[]}},"files":{"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/index.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"],"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/schema/index.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"],"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/schema/base-types.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"],"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/schema/property.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"],"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/schema/resource-type.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"],"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/schema/specification.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"],"/codebuild/output/src456218634/src/packages/@aws-cdk/cfnspec/lib/schema/augmentation.js":["1665d45f-21b4-4035-a7d5-e63e90cd0af7","dad3c374-d551-4bd9-93f2-7d72ddef9fbd"]},"externalIds":{}}
{"processes":{"53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f":{"parent":null,"children":[]},"c1a37c34-913e-479f-9e7b-bb00ea35978c":{"parent":null,"children":[]}},"files":{"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/index.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/index.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/base-types.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/property.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/resource-type.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/specification.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/augmentation.js":["53f7fcf9-753e-4d60-8e1e-9c0bb302ad7f","c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/index.d.ts":["c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/lib/schema/index.ts":["c1a37c34-913e-479f-9e7b-bb00ea35978c"],"/codebuild/output/src948993064/src/packages/@aws-cdk/cfnspec/nyc.config.js":["c1a37c34-913e-479f-9e7b-bb00ea35978c"]},"externalIds":{}}

@@ -137,2 +137,2 @@ "use strict";

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7O0FBRUgsaURBQWtEO0FBQ2xELCtCQUFnQztBQUNoQywyQkFBNEI7QUFDNUIsNkJBQThCO0FBQzlCLGdDQUFnQztBQUNoQyx5Q0FBaUQ7QUFFakQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekQsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sSUFBSSxHQUF5QixFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDN0YsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkM7S0FDRjtJQUVELDhCQUFtQixDQUFDLElBQUksQ0FB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USxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDakM7S0FDRjtBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxJQUEwQjtJQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDM0Q7SUFDRCxPQUFPLElBQUksQ0FBQztJQUVaLFNBQVMsZ0JBQWdCLENBQUksT0FBOEI7UUFDekQsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUN6QyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFO0tBQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ1Qsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBJbnZva2VkIGFzIHBhcnQgb2YgdGhlIFwiYnVpbGRcIiBzY3JpcHQgb2YgdGhpcyBwYWNrYWdlLFxuICogdGhpcyBzY3JpcHQgdGFrZXMgYWxsIHNwZWNpZmljYXRpb24gZnJhZ21lbnRzIGluIHRoZVxuICogYHNwZWMtc291cmNlYCBmb2xkZXIgYW5kIGdlbmVyYXRlcyBhIHVuaWZpZWQgc3BlY2lmaWNhdGlvblxuICogZG9jdW1lbnQgYXQgYHNwZWMvc3BlY2lmaWNhdGlvbi5qc29uYC5cbiAqL1xuXG5pbXBvcnQgZmFzdEpzb25QYXRjaCA9IHJlcXVpcmUoJ2Zhc3QtanNvbi1wYXRjaCcpO1xuaW1wb3J0IGZzID0gcmVxdWlyZSgnZnMtZXh0cmEnKTtcbmltcG9ydCBtZDUgPSByZXF1aXJlKCdtZDUnKTtcbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IGRldGVjdFNjcnV0aW55VHlwZXMgfSBmcm9tICcuL3NjcnV0aW55JztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgaW5wdXREaXIgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3NwZWMtc291cmNlJyk7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgZnMucmVhZGRpcihpbnB1dERpcik7XG4gIGNvbnN0IHNwZWM6IHNjaGVtYS5TcGVjaWZpY2F0aW9uID0geyBQcm9wZXJ0eVR5cGVzOiB7fSwgUmVzb3VyY2VUeXBlczoge30sIEZpbmdlcnByaW50OiAnJyB9O1xuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMuZmlsdGVyKG4gPT4gbi5lbmRzV2l0aCgnLmpzb24nKSkuc29ydCgpKSB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZzLnJlYWRKc29uKHBhdGguam9pbihpbnB1dERpciwgZmlsZSkpO1xuICAgIGlmIChmaWxlLmluZGV4T2YoJ3BhdGNoJykgPT09IC0xKSB7XG4gICAgICBkZWNvcmF0ZVJlc291cmNlVHlwZXMoZGF0YSk7XG4gICAgICBmb3JFYWNoU2VjdGlvbihzcGVjLCBkYXRhLCBtZXJnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvckVhY2hTZWN0aW9uKHNwZWMsIGRhdGEsIHBhdGNoKTtcbiAgICB9XG4gIH1cblxuICBkZXRlY3RTY3J1dGlueVR5cGVzKHNwZWMpO1xuICByZXBsYWNlSW5jb21wbGV0ZVR5cGVzKHNwZWMpO1xuXG4gIHNwZWMuRmluZ2VycHJpbnQgPSBtZDUoSlNPTi5zdHJpbmdpZnkobm9ybWFsaXplKHNwZWMpKSk7XG5cbiAgY29uc3Qgb3V0RGlyID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdzcGVjJyk7XG4gIGF3YWl0IGZzLm1rZGlycChvdXREaXIpO1xuICBhd2FpdCBmcy53cml0ZUpzb24ocGF0aC5qb2luKG91dERpciwgJ3NwZWNpZmljYXRpb24uanNvbicpLCBzcGVjLCB7IHNwYWNlczogMiB9KTtcbn1cblxuZnVuY3Rpb24gZm9yRWFjaFNlY3Rpb24oc3BlYzogc2NoZW1hLlNwZWNpZmljYXRpb24sIGRhdGE6IGFueSwgY2I6IChzcGVjOiBhbnksIGZyYWdtZW50OiBhbnksIHBhdGg6IHN0cmluZ1tdKSA9PiB2b2lkKSB7XG4gIGNiKHNwZWMuUHJvcGVydHlUeXBlcywgZGF0YS5Qcm9wZXJ0eVR5cGVzLCBbJ1Byb3BlcnR5VHlwZXMnXSk7XG4gIGNiKHNwZWMuUmVzb3VyY2VUeXBlcywgZGF0YS5SZXNvdXJjZVR5cGVzLCBbJ1Jlc291cmNlVHlwZXMnXSk7XG4gIC8vIFBlci1yZXNvdXJjZSBzcGVjcyBhcmUga2V5ZWQgb24gUmVzb3VyY2VUeXBlIChzaW5ndWxhciksIGJ1dCB3ZSB3YW50IGl0IGluIFJlc291cmNlVHlwZXMgKHBsdXJhbClcbiAgY2Ioc3BlYy5SZXNvdXJjZVR5cGVzLCBkYXRhLlJlc291cmNlVHlwZSwgWydSZXNvdXJjZVR5cGUnXSk7XG59XG5cbmZ1bmN0aW9uIGRlY29yYXRlUmVzb3VyY2VUeXBlcyhkYXRhOiBhbnkpIHtcbiAgY29uc3QgcmVxdWlyZWRUcmFuc2Zvcm0gPSBkYXRhLlJlc291cmNlU3BlY2lmaWNhdGlvblRyYW5zZm9ybSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmICghcmVxdWlyZWRUcmFuc2Zvcm0pIHsgcmV0dXJuOyB9XG4gIGNvbnN0IHJlc291cmNlVHlwZXMgPSBkYXRhLlJlc291cmNlVHlwZXMgfHwgZGF0YS5SZXNvdXJjZVR5cGU7XG4gIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhyZXNvdXJjZVR5cGVzKSkge1xuICAgIHJlc291cmNlVHlwZXNbbmFtZV0uUmVxdWlyZWRUcmFuc2Zvcm0gPSByZXF1aXJlZFRyYW5zZm9ybTtcbiAgfVxufVxuXG4vKipcbiAqIEZpeCBpbmNvbXBsZXRlIHR5cGUgZGVmaW5pdGlvbnMgaW4gUHJvcGVydHlUeXBlc1xuICpcbiAqIFNvbWUgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBkZWZpbmVkIHRvIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzLCBhbmQgbm90XG4gKiBiZSBhIGNvbGxlY3Rpb24gb2Ygb3RoZXIgdHlwZXMgZWl0aGVyLiBUaGV5IGhhdmUgbm8gZGVmaW5pdGlvbiBhdCBhbGwuXG4gKlxuICogQWRkIGEgcHJvcGVydHkgb2JqZWN0IHR5cGUgd2l0aCBlbXB0eSBwcm9wZXJ0aWVzLlxuICovXG5mdW5jdGlvbiByZXBsYWNlSW5jb21wbGV0ZVR5cGVzKHNwZWM6IHNjaGVtYS5TcGVjaWZpY2F0aW9uKSB7XG4gIGZvciAoY29uc3QgW25hbWUsIGRlZmluaXRpb25dIG9mIE9iamVjdC5lbnRyaWVzKHNwZWMuUHJvcGVydHlUeXBlcykpIHtcbiAgICBpZiAoIXNjaGVtYS5pc1JlY29yZFR5cGUoZGVmaW5pdGlvbilcbiAgICAmJiAhc2NoZW1hLmlzQ29sbGVjdGlvblByb3BlcnR5KGRlZmluaXRpb24pXG4gICAgJiYgIXNjaGVtYS5pc1NjYWxhclByb3BlcnR5KGRlZmluaXRpb24pXG4gICAgJiYgIXNjaGVtYS5pc1ByaW1pdGl2ZVByb3BlcnR5KGRlZmluaXRpb24pKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYFske25hbWV9XSBJbmNvbXBsZXRlIHR5cGUsIGFkZGluZyBlbXB0eSBcIlByb3BlcnRpZXNcIiBmaWVsZGApO1xuXG4gICAgICAoZGVmaW5pdGlvbiBhcyB1bmtub3duIGFzIHNjaGVtYS5SZWNvcmRQcm9wZXJ0eSkuUHJvcGVydGllcyA9IHt9O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZShzcGVjOiBhbnksIGZyYWdtZW50OiBhbnksIGpzb25QYXRoOiBzdHJpbmdbXSkge1xuICBpZiAoIWZyYWdtZW50KSB7IHJldHVybjsgfVxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmcmFnbWVudCkpIHtcbiAgICBpZiAoa2V5IGluIHNwZWMpIHtcbiAgICAgIGNvbnN0IHNwZWNWYWwgPSBzcGVjW2tleV07XG4gICAgICBjb25zdCBmcmFnVmFsID0gZnJhZ21lbnRba2V5XTtcbiAgICAgIGlmICh0eXBlb2Ygc3BlY1ZhbCAhPT0gdHlwZW9mIGZyYWdWYWwpIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHRlZCB0byBtZXJnZSAke0pTT04uc3RyaW5naWZ5KGZyYWdWYWwpfSBpbnRvIGluY29tcGF0aWJsZSAke0pTT04uc3RyaW5naWZ5KHNwZWNWYWwpfSBhdCBwYXRoICR7anNvblBhdGguam9pbignLycpfS8ke2tleX1gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3BlY1ZhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZsaWN0IHdoZW4gYXR0ZW1wdGluZyB0byBtZXJnZSAke0pTT04uc3RyaW5naWZ5KGZyYWdWYWwpfSBpbnRvICR7SlNPTi5zdHJpbmdpZnkoc3BlY1ZhbCl9IGF0IHBhdGggJHtqc29uUGF0aC5qb2luKCcvJyl9LyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgbWVyZ2Uoc3BlY1ZhbCwgZnJhZ1ZhbCwgWy4uLmpzb25QYXRoLCBrZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3BlY1trZXldID0gZnJhZ21lbnRba2V5XTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2goc3BlYzogYW55LCBmcmFnbWVudDogYW55KSB7XG4gIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG4gIGlmICgncGF0Y2gnIGluIGZyYWdtZW50KSB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmxvZyhgQXBwbHlpbmcgcGF0Y2g6ICR7ZnJhZ21lbnQucGF0Y2guZGVzY3JpcHRpb259YCk7XG4gICAgZmFzdEpzb25QYXRjaC5hcHBseVBhdGNoKHNwZWMsIGZyYWdtZW50LnBhdGNoLm9wZXJhdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyYWdtZW50KSkge1xuICAgICAgcGF0Y2goc3BlY1trZXldLCBmcmFnbWVudFtrZXldKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcHJvdmlkZWQgc3BlY2lmaWNhdGlvbiBzbyB0aGF0IGBgUmVzb3VyY2VUeXBlc2BgIGFuZCBgYFByb3BlcnR5VHlwZXNgYCBhcmUgbGlzdGVkIGluIGFscGhhYmV0aWNhbCBvcmRlci5cbiAqXG4gKiBAcGFyYW0gc3BlYyBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2UgU3BlY2lmaWNhdGlvbiBkb2N1bWVudC5cbiAqXG4gKiBAcmV0dXJucyBgYHNwZWNgYCwgYWZ0ZXIgaGF2aW5nIHNvcnRlZCB0aGUgYGBSZXNvdXJjZVR5cGVzYGAgYW5kIGBgUHJvcGVydHlUeXBlc2BgIHNlY3Rpb25zIGFscGhhYmV0aWNhbGx5LlxuICovXG5mdW5jdGlvbiBub3JtYWxpemUoc3BlYzogc2NoZW1hLlNwZWNpZmljYXRpb24pOiBzY2hlbWEuU3BlY2lmaWNhdGlvbiB7XG4gIHNwZWMuUmVzb3VyY2VUeXBlcyA9IG5vcm1hbGl6ZVNlY3Rpb24oc3BlYy5SZXNvdXJjZVR5cGVzKTtcbiAgaWYgKHNwZWMuUHJvcGVydHlUeXBlcykge1xuICAgIHNwZWMuUHJvcGVydHlUeXBlcyA9IG5vcm1hbGl6ZVNlY3Rpb24oc3BlYy5Qcm9wZXJ0eVR5cGVzKTtcbiAgfVxuICByZXR1cm4gc3BlYztcblxuICBmdW5jdGlvbiBub3JtYWxpemVTZWN0aW9uPFQ+KHNlY3Rpb246IHsgW25hbWU6IHN0cmluZ106IFQgfSk6IHsgW25hbWU6IHN0cmluZ106IFQgfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtuYW1lOiBzdHJpbmddOiBUIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzZWN0aW9uKS5zb3J0KCkpIHtcbiAgICAgIHJlc3VsdFtrZXldID0gc2VjdGlvbltrZXldO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbm1haW4oKVxuICAuY2F0Y2goZSA9PiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGUuc3RhY2spO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7O0FBRUgsaURBQWlEO0FBQ2pELCtCQUErQjtBQUMvQiwyQkFBMkI7QUFDM0IsNkJBQTZCO0FBQzdCLGdDQUFnQztBQUNoQyx5Q0FBaUQ7QUFFakQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekQsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sSUFBSSxHQUF5QixFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDN0YsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkM7S0FDRjtJQUVELDhCQUFtQixDQUFDLElBQUksQ0FB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USxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDakM7S0FDRjtBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxJQUEwQjtJQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDM0Q7SUFDRCxPQUFPLElBQUksQ0FBQztJQUVaLFNBQVMsZ0JBQWdCLENBQUksT0FBOEI7UUFDekQsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUN6QyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFO0tBQ0gsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ1Qsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBJbnZva2VkIGFzIHBhcnQgb2YgdGhlIFwiYnVpbGRcIiBzY3JpcHQgb2YgdGhpcyBwYWNrYWdlLFxuICogdGhpcyBzY3JpcHQgdGFrZXMgYWxsIHNwZWNpZmljYXRpb24gZnJhZ21lbnRzIGluIHRoZVxuICogYHNwZWMtc291cmNlYCBmb2xkZXIgYW5kIGdlbmVyYXRlcyBhIHVuaWZpZWQgc3BlY2lmaWNhdGlvblxuICogZG9jdW1lbnQgYXQgYHNwZWMvc3BlY2lmaWNhdGlvbi5qc29uYC5cbiAqL1xuXG5pbXBvcnQgKiBhcyBmYXN0SnNvblBhdGNoIGZyb20gJ2Zhc3QtanNvbi1wYXRjaCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBtZDUgZnJvbSAnbWQ1JztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgZGV0ZWN0U2NydXRpbnlUeXBlcyB9IGZyb20gJy4vc2NydXRpbnknO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCBpbnB1dERpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnc3BlYy1zb3VyY2UnKTtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGlucHV0RGlyKTtcbiAgY29uc3Qgc3BlYzogc2NoZW1hLlNwZWNpZmljYXRpb24gPSB7IFByb3BlcnR5VHlwZXM6IHt9LCBSZXNvdXJjZVR5cGVzOiB7fSwgRmluZ2VycHJpbnQ6ICcnIH07XG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcy5maWx0ZXIobiA9PiBuLmVuZHNXaXRoKCcuanNvbicpKS5zb3J0KCkpIHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZnMucmVhZEpzb24ocGF0aC5qb2luKGlucHV0RGlyLCBmaWxlKSk7XG4gICAgaWYgKGZpbGUuaW5kZXhPZigncGF0Y2gnKSA9PT0gLTEpIHtcbiAgICAgIGRlY29yYXRlUmVzb3VyY2VUeXBlcyhkYXRhKTtcbiAgICAgIGZvckVhY2hTZWN0aW9uKHNwZWMsIGRhdGEsIG1lcmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yRWFjaFNlY3Rpb24oc3BlYywgZGF0YSwgcGF0Y2gpO1xuICAgIH1cbiAgfVxuXG4gIGRldGVjdFNjcnV0aW55VHlwZXMoc3BlYyk7XG4gIHJlcGxhY2VJbmNvbXBsZXRlVHlwZXMoc3BlYyk7XG5cbiAgc3BlYy5GaW5nZXJwcmludCA9IG1kNShKU09OLnN0cmluZ2lmeShub3JtYWxpemUoc3BlYykpKTtcblxuICBjb25zdCBvdXREaXIgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3NwZWMnKTtcbiAgYXdhaXQgZnMubWtkaXJwKG91dERpcik7XG4gIGF3YWl0IGZzLndyaXRlSnNvbihwYXRoLmpvaW4ob3V0RGlyLCAnc3BlY2lmaWNhdGlvbi5qc29uJyksIHNwZWMsIHsgc3BhY2VzOiAyIH0pO1xufVxuXG5mdW5jdGlvbiBmb3JFYWNoU2VjdGlvbihzcGVjOiBzY2hlbWEuU3BlY2lmaWNhdGlvbiwgZGF0YTogYW55LCBjYjogKHNwZWM6IGFueSwgZnJhZ21lbnQ6IGFueSwgcGF0aDogc3RyaW5nW10pID0+IHZvaWQpIHtcbiAgY2Ioc3BlYy5Qcm9wZXJ0eVR5cGVzLCBkYXRhLlByb3BlcnR5VHlwZXMsIFsnUHJvcGVydHlUeXBlcyddKTtcbiAgY2Ioc3BlYy5SZXNvdXJjZVR5cGVzLCBkYXRhLlJlc291cmNlVHlwZXMsIFsnUmVzb3VyY2VUeXBlcyddKTtcbiAgLy8gUGVyLXJlc291cmNlIHNwZWNzIGFyZSBrZXllZCBvbiBSZXNvdXJjZVR5cGUgKHNpbmd1bGFyKSwgYnV0IHdlIHdhbnQgaXQgaW4gUmVzb3VyY2VUeXBlcyAocGx1cmFsKVxuICBjYihzcGVjLlJlc291cmNlVHlwZXMsIGRhdGEuUmVzb3VyY2VUeXBlLCBbJ1Jlc291cmNlVHlwZSddKTtcbn1cblxuZnVuY3Rpb24gZGVjb3JhdGVSZXNvdXJjZVR5cGVzKGRhdGE6IGFueSkge1xuICBjb25zdCByZXF1aXJlZFRyYW5zZm9ybSA9IGRhdGEuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVHJhbnNmb3JtIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWYgKCFyZXF1aXJlZFRyYW5zZm9ybSkgeyByZXR1cm47IH1cbiAgY29uc3QgcmVzb3VyY2VUeXBlcyA9IGRhdGEuUmVzb3VyY2VUeXBlcyB8fCBkYXRhLlJlc291cmNlVHlwZTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKHJlc291cmNlVHlwZXMpKSB7XG4gICAgcmVzb3VyY2VUeXBlc1tuYW1lXS5SZXF1aXJlZFRyYW5zZm9ybSA9IHJlcXVpcmVkVHJhbnNmb3JtO1xuICB9XG59XG5cbi8qKlxuICogRml4IGluY29tcGxldGUgdHlwZSBkZWZpbml0aW9ucyBpbiBQcm9wZXJ0eVR5cGVzXG4gKlxuICogU29tZSB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIGRlZmluZWQgdG8gbm90IGhhdmUgYW55IHByb3BlcnRpZXMsIGFuZCBub3RcbiAqIGJlIGEgY29sbGVjdGlvbiBvZiBvdGhlciB0eXBlcyBlaXRoZXIuIFRoZXkgaGF2ZSBubyBkZWZpbml0aW9uIGF0IGFsbC5cbiAqXG4gKiBBZGQgYSBwcm9wZXJ0eSBvYmplY3QgdHlwZSB3aXRoIGVtcHR5IHByb3BlcnRpZXMuXG4gKi9cbmZ1bmN0aW9uIHJlcGxhY2VJbmNvbXBsZXRlVHlwZXMoc3BlYzogc2NoZW1hLlNwZWNpZmljYXRpb24pIHtcbiAgZm9yIChjb25zdCBbbmFtZSwgZGVmaW5pdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoc3BlYy5Qcm9wZXJ0eVR5cGVzKSkge1xuICAgIGlmICghc2NoZW1hLmlzUmVjb3JkVHlwZShkZWZpbml0aW9uKVxuICAgICYmICFzY2hlbWEuaXNDb2xsZWN0aW9uUHJvcGVydHkoZGVmaW5pdGlvbilcbiAgICAmJiAhc2NoZW1hLmlzU2NhbGFyUHJvcGVydHkoZGVmaW5pdGlvbilcbiAgICAmJiAhc2NoZW1hLmlzUHJpbWl0aXZlUHJvcGVydHkoZGVmaW5pdGlvbikpIHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhgWyR7bmFtZX1dIEluY29tcGxldGUgdHlwZSwgYWRkaW5nIGVtcHR5IFwiUHJvcGVydGllc1wiIGZpZWxkYCk7XG5cbiAgICAgIChkZWZpbml0aW9uIGFzIHVua25vd24gYXMgc2NoZW1hLlJlY29yZFByb3BlcnR5KS5Qcm9wZXJ0aWVzID0ge307XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlKHNwZWM6IGFueSwgZnJhZ21lbnQ6IGFueSwganNvblBhdGg6IHN0cmluZ1tdKSB7XG4gIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZyYWdtZW50KSkge1xuICAgIGlmIChrZXkgaW4gc3BlYykge1xuICAgICAgY29uc3Qgc3BlY1ZhbCA9IHNwZWNba2V5XTtcbiAgICAgIGNvbnN0IGZyYWdWYWwgPSBmcmFnbWVudFtrZXldO1xuICAgICAgaWYgKHR5cGVvZiBzcGVjVmFsICE9PSB0eXBlb2YgZnJhZ1ZhbCkge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXR0ZW1wdGVkIHRvIG1lcmdlICR7SlNPTi5zdHJpbmdpZnkoZnJhZ1ZhbCl9IGludG8gaW5jb21wYXRpYmxlICR7SlNPTi5zdHJpbmdpZnkoc3BlY1ZhbCl9IGF0IHBhdGggJHtqc29uUGF0aC5qb2luKCcvJyl9LyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzcGVjVmFsICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uZmxpY3Qgd2hlbiBhdHRlbXB0aW5nIHRvIG1lcmdlICR7SlNPTi5zdHJpbmdpZnkoZnJhZ1ZhbCl9IGludG8gJHtKU09OLnN0cmluZ2lmeShzcGVjVmFsKX0gYXQgcGF0aCAke2pzb25QYXRoLmpvaW4oJy8nKX0vJHtrZXl9YCk7XG4gICAgICB9XG4gICAgICBtZXJnZShzcGVjVmFsLCBmcmFnVmFsLCBbLi4uanNvblBhdGgsIGtleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGVjW2tleV0gPSBmcmFnbWVudFtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwYXRjaChzcGVjOiBhbnksIGZyYWdtZW50OiBhbnkpIHtcbiAgaWYgKCFmcmFnbWVudCkgeyByZXR1cm47IH1cbiAgaWYgKCdwYXRjaCcgaW4gZnJhZ21lbnQpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKGBBcHBseWluZyBwYXRjaDogJHtmcmFnbWVudC5wYXRjaC5kZXNjcmlwdGlvbn1gKTtcbiAgICBmYXN0SnNvblBhdGNoLmFwcGx5UGF0Y2goc3BlYywgZnJhZ21lbnQucGF0Y2gub3BlcmF0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZnJhZ21lbnQpKSB7XG4gICAgICBwYXRjaChzcGVjW2tleV0sIGZyYWdtZW50W2tleV0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIE1vZGlmaWVzIHRoZSBwcm92aWRlZCBzcGVjaWZpY2F0aW9uIHNvIHRoYXQgYGBSZXNvdXJjZVR5cGVzYGAgYW5kIGBgUHJvcGVydHlUeXBlc2BgIGFyZSBsaXN0ZWQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLlxuICpcbiAqIEBwYXJhbSBzcGVjIGFuIEFXUyBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZSBTcGVjaWZpY2F0aW9uIGRvY3VtZW50LlxuICpcbiAqIEByZXR1cm5zIGBgc3BlY2BgLCBhZnRlciBoYXZpbmcgc29ydGVkIHRoZSBgYFJlc291cmNlVHlwZXNgYCBhbmQgYGBQcm9wZXJ0eVR5cGVzYGAgc2VjdGlvbnMgYWxwaGFiZXRpY2FsbHkuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZShzcGVjOiBzY2hlbWEuU3BlY2lmaWNhdGlvbik6IHNjaGVtYS5TcGVjaWZpY2F0aW9uIHtcbiAgc3BlYy5SZXNvdXJjZVR5cGVzID0gbm9ybWFsaXplU2VjdGlvbihzcGVjLlJlc291cmNlVHlwZXMpO1xuICBpZiAoc3BlYy5Qcm9wZXJ0eVR5cGVzKSB7XG4gICAgc3BlYy5Qcm9wZXJ0eVR5cGVzID0gbm9ybWFsaXplU2VjdGlvbihzcGVjLlByb3BlcnR5VHlwZXMpO1xuICB9XG4gIHJldHVybiBzcGVjO1xuXG4gIGZ1bmN0aW9uIG5vcm1hbGl6ZVNlY3Rpb248VD4oc2VjdGlvbjogeyBbbmFtZTogc3RyaW5nXTogVCB9KTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW25hbWU6IHN0cmluZ106IFQgfSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNlY3Rpb24pLnNvcnQoKSkge1xuICAgICAgcmVzdWx0W2tleV0gPSBzZWN0aW9uW2tleV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxubWFpbigpXG4gIC5jYXRjaChlID0+IHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgIGNvbnNvbGUuZXJyb3IoZS5zdGFjayk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG4iXX0=

@@ -20,2 +20,3 @@ #!/usr/bin/env node

}
// eslint-disable-next-line @typescript-eslint/no-require-imports
const version = require('../package.json').version;

@@ -32,2 +33,3 @@ // iterate over all cloudformation namespaces

const packageJsonPath = path.join(packagePath, 'package.json');
// eslint-disable-next-line @typescript-eslint/no-require-imports
const packageJson = require(packageJsonPath);

@@ -309,2 +311,2 @@ let scopes = packageJson['cdk-build'].cloudformation;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1pc3NpbmctbGlicmFyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3JlYXRlLW1pc3NpbmctbGlicmFyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7OztHQUdHOztBQUVILCtDQUFnRDtBQUNoRCwrQkFBZ0M7QUFDaEMsNkJBQThCO0FBQzlCLGtDQUFtQztBQUVuQyxvQkFBb0I7QUFDcEIsNEJBQTRCO0FBQzVCLDJDQUEyQztBQUUzQyxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLDREQUE0RCxDQUFDLENBQUM7S0FDeEg7SUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFFbkQsNkNBQTZDO0lBQzdDLEtBQUssTUFBTSxTQUFTLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEtBQUssaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlHLE1BQU0sVUFBVSxHQUFHLEdBQUcsWUFBWSxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNoRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVoRCxNQUFNLGlCQUFpQixHQUFH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QUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDaEY7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDO0FBRUgsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFlO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRTtRQUM3QyxLQUFLLEVBQUUsQ0FBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBRTtRQUN6QyxLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUN4QixJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ2QsT0FBTyxFQUFFLEVBQUUsQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDdkQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuLyoqXG4gKiBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBtb2R1bGUgZm9yIGFueSBDbG91ZEZvcm1hdGlvbiBuYW1lc3BhY2VzIHRoYXQgZG8gbm90XG4gKiBoYXZlIGFuIEFXUyBjb25zdHJ1Y3QgbGlicmFyeS5cbiAqL1xuXG5pbXBvcnQgY2hpbGRfcHJvY2VzcyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbmltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzLWV4dHJhJyk7XG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbmltcG9ydCBjZm5zcGVjID0gcmVxdWlyZSgnLi4vbGliJyk7XG5cbi8vIGRvbid0IGJlIGEgcHJ1ZGU6XG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlXG4vLyB0c2xpbnQ6ZGlzYWJsZTpvYmplY3QtbGl0ZXJhbC1rZXktcXVvdGVzXG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHJvb3QgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nKTtcbiAgaWYgKHBhdGguYmFzZW5hbWUocm9vdCkgIT09ICdAYXdzLWNkaycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNvbWV0aGluZyB3ZW50IHdyb25nLiBXZSBleHBlY3RlZCAke3Jvb3R9IHRvIGJlIHRoZSBcInBhY2thZ2VzL0Bhd3MtY2RrXCIgZGlyZWN0b3J5LiBEaWQgeW91IG1vdmUgbWU/YCk7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uID0gcmVxdWlyZSgnLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcblxuICAvLyBpdGVyYXRlIG92ZXIgYWxsIGNsb3VkZm9ybWF0aW9uIG5hbWVzcGFjZXNcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgY2Zuc3BlYy5uYW1lc3BhY2VzKCkpIHtcbiAgICBjb25zdCBbbW9kdWxlRmFtaWx5LCBtb2R1bGVCYXNlTmFtZV0gPSAobmFtZXNwYWNlID09PSAnQVdTOjpTZXJ2ZXJsZXNzJyA/ICdBV1M6OlNBTScgOiBuYW1lc3BhY2UpLnNwbGl0KCc6OicpO1xuXG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IGAke21vZHVsZUZhbWlseX0tJHttb2R1bGVCYXNlTmFtZS5yZXBsYWNlKC9WXFxkKyQvLCAnJyl9YC50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHBhY2thZ2VQYXRoID0gcGF0aC5qb2luKHJvb3QsIG1vZHVsZU5hbWUpO1xuXG4gICAgY29uc3QgbG93Y2FzZU1vZHVsZU5hbWUgPSBtb2R1bGVCYXNlTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gYEBhd3MtY2RrLyR7bW9kdWxlTmFtZX1gO1xuXG4gICAgLy8gd2UgYWxyZWFkeSBoYXZlIGEgbW9kdWxlIGZvciB0aGlzIG5hbWVzYXBjZSwgbW92ZSBvbi5cbiAgICBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyhwYWNrYWdlUGF0aCkpIHtcbiAgICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IHBhdGguam9pbihwYWNrYWdlUGF0aCwgJ3BhY2thZ2UuanNvbicpO1xuICAgICAgY29uc3QgcGFja2FnZUpzb24gPSByZXF1aXJlKHBhY2thZ2VKc29uUGF0aCk7XG4gICAgICBsZXQgc2NvcGVzOiBzdHJpbmcgfCBzdHJpbmdbXSA9IHBhY2thZ2VKc29uWydjZGstYnVpbGQnXS5jbG91ZGZvcm1hdGlvbjtcbiAgICAgIGlmICh0eXBlb2Ygc2NvcGVzID09PSAnc3RyaW5nJykgeyBzY29wZXMgPSBbc2NvcGVzXTsgfVxuICAgICAgaWYgKHNjb3Blcy5pbmRleE9mKG5hbWVzcGFjZSkgIT09IC0xKSB7XG4gICAgICAgIC8vIFYyLXN0eWxlIG1vZHVsZSBpcyBhbHJlYWR5IG1vZGVsZWQgaW4gdGhlIHJvb3QgcGFja2FnZSwgbm90aGluZyB0byBiZSBkb25lIVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4ocm9vdCwgYCR7bW9kdWxlRmFtaWx5fS0ke21vZHVsZUJhc2VOYW1lfWAudG9Mb2NhbGVMb3dlckNhc2UoKSkpKSB7XG4gICAgICAgIC8vIFYyLXN0eWxlIHBhY2thZ2UgYWxyZWFkeSBoYXMgaXQncyBvd24gcGFja2FnZSAobGVnYWN5IGJlaGF2aW9yKSwgbm90aGluZyB0byBiZSBkb25lIVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFYyLXN0eWxlIHBhY2thZ2UgbmVlZHMgdG8gYmUgYWRkZWQgdG8gaXQncyBcIlYxXCIgcGFja2FnZS4uLiBHZXQgZG93biB0byBidXNpbmVzcyFcbiAgICAgICAgY29uc29sZS5lcnJvcihgQWRkaW5nICR7bmFtZXNwYWNlfSB0byAke3BhY2thZ2VOYW1lfWApO1xuICAgICAgICBzY29wZXMucHVzaChuYW1lc3BhY2UpO1xuICAgICAgICBwYWNrYWdlSnNvblsnY2RrLWJ1aWxkJ10uY2xvdWRmb3JtYXRpb24gPSBzY29wZXM7XG4gICAgICAgIGF3YWl0IGZzLndyaXRlSnNvbihwYWNrYWdlSnNvblBhdGgsIHBhY2thZ2VKc29uLCB7IGVuY29kaW5nOiAndXRmLTgnLCBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGNvbnN0IGluZGV4VHNQYXRoID0gcGF0aC5qb2luKHBhY2thZ2VQYXRoLCAnbGliJywgJ2luZGV4LnRzJyk7XG4gICAgICAgIGNvbnN0IGluZGV4VHMgPSBbXG4gICAgICAgICAgKGF3YWl0IGZzLnJlYWRGaWxlKGluZGV4VHNQYXRoLCB7IGVuY29kaW5nOiAndXRmOCcgfSkpLnRyaW1SaWdodCgpLFxuICAgICAgICAgIGAvLyAke25hbWVzcGFjZX0gQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2VzOmAsXG4gICAgICAgICAgYGV4cG9ydCAqIGZyb20gJy4vJHtsb3djYXNlTW9kdWxlTmFtZX0uZ2VuZXJhdGVkJztgXG4gICAgICAgIF0uam9pbignXFxuJyk7XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShpbmRleFRzUGF0aCwgaW5kZXhUcywgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkb3RuZXQgbmFtZXNcbiAgICBjb25zdCBkb3RuZXRQYWNrYWdlID0gYEFtYXpvbi5DREsuJHttb2R1bGVGYW1pbHl9LiR7bW9kdWxlQmFzZU5hbWV9YDtcblxuICAgIC8vIGphdmEgbmFtZXNcbiAgICBjb25zdCBqYXZhR3JvdXBJZCA9ICdzb2Z0d2FyZS5hbWF6b24uYXdzY2RrJztcbiAgICBjb25zdCBqYXZhUGFja2FnZSA9IG1vZHVsZUZhbWlseSA9PT0gJ0FXUydcbiAgICAgID8gYHNlcnZpY2VzLiR7bG93Y2FzZU1vZHVsZU5hbWV9YFxuICAgICAgOiBgJHttb2R1bGVGYW1pbHkudG9Mb2NhbGVMb3dlckNhc2UoKX0uJHtsb3djYXNlTW9kdWxlTmFtZX1gO1xuICAgIGNvbnN0IGphdmFBcnRpZmFjdElkID0gbW9kdWxlRmFtaWx5ID09PSAnQVdTJ1xuICAgICAgPyBsb3djYXNlTW9kdWxlTmFtZVxuICAgICAgOiBgJHttb2R1bGVGYW1pbHkudG9Mb2NhbGVMb3dlckNhc2UoKX0tJHtsb3djYXNlTW9kdWxlTmFtZX1gO1xuXG4gICAgLy8gcHl0aG9uIG5hbWVzXG4gICAgY29uc3QgcHl0aG9uRGlzdFN1Yk5hbWUgPSBtb2R1bGVGYW1pbHkgPT09ICdBV1MnXG4gICAgICA/IGxvd2Nhc2VNb2R1bGVOYW1lXG4gICAgICA6IGAke21vZHVsZUZhbWlseS50b0xvY2FsZUxvd2VyQ2FzZSgpfS4ke2xvd2Nhc2VNb2R1bGVOYW1lfWA7XG4gICAgY29uc3QgcHl0aG9uRGlzdE5hbWUgPSBgYXdzLWNkay4ke3B5dGhvbkRpc3RTdWJOYW1lfWA7XG4gICAgY29uc3QgcHl0aG9uTW9kdWxlTmFtZSA9IHB5dGhvbkRpc3ROYW1lLnJlcGxhY2UoLy0vZywgXCJfXCIpO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gd3JpdGUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmdbXSB8IHN0cmluZyB8IG9iamVjdCkge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGFja2FnZVBhdGgsIHJlbGF0aXZlUGF0aCk7XG4gICAgICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUoZnVsbFBhdGgpO1xuICAgICAgYXdhaXQgZnMubWtkaXJwKGRpcik7XG5cbiAgICAgIGxldCBkYXRhO1xuICAgICAgaWYgKHR5cGVvZiBjb250ZW50cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgZGF0YSA9IGNvbnRlbnRzLnRyaW1MZWZ0KCk7IC8vIHRyaW0gZmlyc3QgbmV3bGluZVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbnRlbnRzKSkge1xuICAgICAgICBkYXRhID0gY29udGVudHMuam9pbignXFxuJyk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250ZW50cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGNvbnRlbnRzLCB1bmRlZmluZWQsIDIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHR5cGUgb2YgY29udGVudHM6ICcgKyBjb250ZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShmdWxsUGF0aCwgZGF0YSArICdcXG4nKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhgZ2VuZXJhdGluZyBtb2R1bGUgZm9yICR7cGFja2FnZU5hbWV9Li4uYCk7XG5cbiAgICBhd2FpdCB3cml0ZSgncGFja2FnZS5qc29uJywge1xuICAgICAgbmFtZTogcGFja2FnZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZGVzY3JpcHRpb246IGBUaGUgQ0RLIENvbnN0cnVjdCBMaWJyYXJ5IGZvciAke25hbWVzcGFjZX1gLFxuICAgICAgbWFpbjogJ2xpYi9pbmRleC5qcycsXG4gICAgICB0eXBlczogJ2xpYi9pbmRleC5kLnRzJyxcbiAgICAgIGpzaWk6IHtcbiAgICAgICAgb3V0ZGlyOiAnZGlzdCcsXG4gICAgICAgIHRhcmdldHM6IHtcbiAgICAgICAgICBkb3RuZXQ6IHtcbiAgICAgICAgICAgIG5hbWVzcGFjZTogZG90bmV0UGFja2FnZSxcbiAgICAgICAgICAgIHBhY2thZ2VJZDogZG90bmV0UGFja2FnZSxcbiAgICAgICAgICAgIHNpZ25Bc3NlbWJseTogdHJ1ZSxcbiAgICAgICAgICAgIGFzc2VtYmx5T3JpZ2luYXRvcktleUZpbGU6IFwiLi4vLi4va2V5LnNua1wiLFxuICAgICAgICAgICAgaWNvblVybDogXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYXdzL2F3cy1jZGsvbWFzdGVyL2xvZ28vZGVmYXVsdC0yNTYtZGFyay5wbmdcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgamF2YToge1xuICAgICAgICAgICAgcGFja2FnZTogYCR7amF2YUdyb3VwSWR9LiR7amF2YVBhY2thZ2V9YCxcbiAgICAgICAgICAgIG1hdmVuOiB7XG4gICAgICAgICAgICAgIGdyb3VwSWQ6IGphdmFHcm91cElkLFxuICAgICAgICAgICAgICBhcnRpZmFjdElkOiBqYXZhQXJ0aWZhY3RJZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHl0aG9uOiB7XG4gICAgICAgICAgICBkaXN0TmFtZTogcHl0aG9uRGlzdE5hbWUsXG4gICAgICAgICAgICBtb2R1bGU6IHB5dGhvbk1vZHVsZU5hbWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXBvc2l0b3J5OiB7XG4gICAgICAgIHR5cGU6IFwiZ2l0XCIsXG4gICAgICAgIHVybDogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsuZ2l0XCIsXG4gICAgICAgIGRpcmVjdG9yeTogYHBhY2thZ2VzL0Bhd3MtY2RrLyR7cGFja2FnZU5hbWV9YCxcbiAgICAgIH0sXG4gICAgICBob21lcGFnZTogXCJodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGtcIixcbiAgICAgIHNjcmlwdHM6IHtcbiAgICAgICAgYnVpbGQ6IFwiY2RrLWJ1aWxkXCIsXG4gICAgICAgIHdhdGNoOiBcImNkay13YXRjaFwiLFxuICAgICAgICBsaW50OiBcImNkay1saW50XCIsXG4gICAgICAgIHRlc3Q6IFwiY2RrLXRlc3RcIixcbiAgICAgICAgaW50ZWc6IFwiY2RrLWludGVnXCIsXG4gICAgICAgIHBrZ2xpbnQ6IFwicGtnbGludCAtZlwiLFxuICAgICAgICBwYWNrYWdlOiBcImNkay1wYWNrYWdlXCIsXG4gICAgICAgIGF3c2xpbnQ6IFwiY2RrLWF3c2xpbnRcIixcbiAgICAgICAgY2ZuMnRzOiBcImNmbjJ0c1wiLFxuICAgICAgICAnYnVpbGQrdGVzdCtwYWNrYWdlJzogXCJucG0gcnVuIGJ1aWxkK3Rlc3QgJiYgbnBtIHJ1biBwYWNrYWdlXCIsXG4gICAgICAgICdidWlsZCt0ZXN0JzogXCJucG0gcnVuIGJ1aWxkICYmIG5wbSB0ZXN0XCIsXG4gICAgICAgIGNvbXBhdDogXCJjZGstY29tcGF0XCJcbiAgICAgIH0sXG4gICAgICAnY2RrLWJ1aWxkJzoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvbjogbmFtZXNwYWNlXG4gICAgICB9LFxuICAgICAga2V5d29yZHM6IFtcbiAgICAgICAgXCJhd3NcIixcbiAgICAgICAgXCJjZGtcIixcbiAgICAgICAgXCJjb25zdHJ1Y3RzXCIsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgbW9kdWxlTmFtZVxuICAgICAgXSxcbiAgICAgIGF1dGhvcjoge1xuICAgICAgICBuYW1lOiBcIkFtYXpvbiBXZWIgU2VydmljZXNcIixcbiAgICAgICAgdXJsOiBcImh0dHBzOi8vYXdzLmFtYXpvbi5jb21cIixcbiAgICAgICAgb3JnYW5pemF0aW9uOiB0cnVlXG4gICAgICB9LFxuICAgICAgamVzdDoge1xuICAgICAgICBtb2R1bGVGaWxlRXh0ZW5zaW9uczogW1xuICAgICAgICAgIFwianNcIlxuICAgICAgICBdLFxuICAgICAgICBjb3ZlcmFnZVRocmVzaG9sZDoge1xuICAgICAgICAgIGdsb2JhbDoge1xuICAgICAgICAgICAgYnJhbmNoZXM6IDYwLFxuICAgICAgICAgICAgc3RhdGVtZW50czogODBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaWNlbnNlOiBcIkFwYWNoZS0yLjBcIixcbiAgICAgIGRldkRlcGVuZGVuY2llczoge1xuICAgICAgICBcIkBhd3MtY2RrL2Fzc2VydFwiOiB2ZXJzaW9uLFxuICAgICAgICBcImNkay1idWlsZC10b29sc1wiOiB2ZXJzaW9uLFxuICAgICAgICBcImNmbjJ0c1wiOiB2ZXJzaW9uLFxuICAgICAgICBcInBrZ2xpbnRcIjogdmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBkZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgXCJAYXdzLWNkay9jb3JlXCI6IHZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGVlckRlcGVuZGVuY2llczoge1xuICAgICAgICBcIkBhd3MtY2RrL2NvcmVcIjogdmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBlbmdpbmVzOiB7XG4gICAgICAgIG5vZGU6ICc+PSAxMC4zLjAnXG4gICAgICB9LFxuICAgICAgc3RhYmlsaXR5OiBcImV4cGVyaW1lbnRhbFwiXG4gICAgfSk7XG5cbiAgICBhd2FpdCB3cml0ZSgnLmdpdGlnbm9yZScsIFtcbiAgICAgICcqLmpzJyxcbiAgICAgICcqLmpzLm1hcCcsXG4gICAgICAnKi5kLnRzJyxcbiAgICAgICd0c2NvbmZpZy5qc29uJyxcbiAgICAgICd0c2xpbnQuanNvbicsXG4gICAgICAnbm9kZV9tb2R1bGVzJyxcbiAgICAgICcqLmdlbmVyYXRlZC50cycsXG4gICAgICAnZGlzdCcsXG4gICAgICAnLmpzaWknLFxuICAgICAgJycsXG4gICAgICAnLkxBU1RfQlVJTEQnLFxuICAgICAgJy5ueWNfb3V0cHV0JyxcbiAgICAgICdjb3ZlcmFnZScsXG4gICAgICAnLm55Y3JjJyxcbiAgICAgICcuTEFTVF9QQUNLQUdFJyxcbiAgICAgICcqLnNuaycsXG4gICAgXSk7XG5cbiAgICBhd2FpdCB3cml0ZSgnLm5wbWlnbm9yZScsIFtcbiAgICAgICcjIERvblxcJ3QgaW5jbHVkZSBvcmlnaW5hbCAudHMgZmlsZXMgd2hlbiBkb2luZyBgbnBtIHBhY2tgJyxcbiAgICAgICcqLnRzJyxcbiAgICAgICchKi5kLnRzJyxcbiAgICAgICdjb3ZlcmFnZScsXG4gICAgICAnLm55Y19vdXRwdXQnLFxuICAgICAgJyoudGd6JyxcbiAgICAgICcnLFxuICAgICAgJ2Rpc3QnLFxuICAgICAgJy5MQVNUX1BBQ0tBR0UnLFxuICAgICAgJy5MQVNUX0JVSUxEJyxcbiAgICAgICchKi5qcycsXG4gICAgICAnJyxcbiAgICAgICcjIEluY2x1ZGUgLmpzaWknLFxuICAgICAgJyEuanNpaScsXG4gICAgICAnJyxcbiAgICAgICcqLnNuaycsXG4gICAgICAnJyxcbiAgICAgICcqLnRzYnVpbGRpbmZvJyxcbiAgICAgICcnLFxuICAgICAgJ3RzY29uZmlnLmpzb24nLFxuICAgIF0pO1xuXG4gICAgYXdhaXQgd3JpdGUoJ2xpYi9pbmRleC50cycsIFtcbiAgICAgIGAvLyAke25hbWVzcGFjZX0gQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2VzOmAsXG4gICAgICBgZXhwb3J0ICogZnJvbSAnLi8ke2xvd2Nhc2VNb2R1bGVOYW1lfS5nZW5lcmF0ZWQnO2BcbiAgICBdKTtcblxuICAgIGF3YWl0IHdyaXRlKGB0ZXN0LyR7bG93Y2FzZU1vZHVsZU5hbWV9LnRlc3QudHNgLCBbXG4gICAgICBcImltcG9ydCAnQGF3cy1jZGsvYXNzZXJ0L2plc3QnO1wiLFxuICAgICAgXCJpbXBvcnQge30gZnJvbSAnLi4vbGliJztcIixcbiAgICAgIFwiXCIsXG4gICAgICBcInRlc3QoJ05vIHRlc3RzIGFyZSBzcGVjaWZpZWQgZm9yIHRoaXMgcGFja2FnZScsICgpID0+IHtcIixcbiAgICAgIFwiICBleHBlY3QodHJ1ZSkudG9CZSh0cnVlKTtcIixcbiAgICAgIFwifSk7XCIsXG4gICAgXSk7XG5cbiAgICBhd2FpdCB3cml0ZSgnUkVBRE1FLm1kJywgW1xuICAgICAgYCMjICR7bmFtZXNwYWNlfSBDb25zdHJ1Y3QgTGlicmFyeWAsXG4gICAgICAnPCEtLUJFR0lOIFNUQUJJTElUWSBCQU5ORVItLT4nLFxuICAgICAgJycsXG4gICAgICAnLS0tJyxcbiAgICAgICcnLFxuICAgICAgJyFbU3RhYmlsaXR5OiBFeHBlcmltZW50YWxdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2Uvc3RhYmlsaXR5LUV4cGVyaW1lbnRhbC1pbXBvcnRhbnQuc3ZnP3N0eWxlPWZvci10aGUtYmFkZ2UpJyxcbiAgICAgICcnLFxuICAgICAgJz4gKipUaGlzIGlzIGEgX2RldmVsb3BlciBwcmV2aWV3XyAocHVibGljIGJldGEpIG1vZHVsZS4gUmVsZWFzZXMgbWlnaHQgbGFjayBpbXBvcnRhbnQgZmVhdHVyZXMgYW5kIG1pZ2h0IGhhdmUnLFxuICAgICAgJz4gZnV0dXJlIGJyZWFraW5nIGNoYW5nZXMuKionLFxuICAgICAgJz4nLFxuICAgICAgJz4gVGhpcyBBUEkgaXMgc3RpbGwgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50IGFuZCBzdWJqZWN0IHRvIG5vbi1iYWNrd2FyZCcsXG4gICAgICAnPiBjb21wYXRpYmxlIGNoYW5nZXMgb3IgcmVtb3ZhbCBpbiBhbnkgZnV0dXJlIHZlcnNpb24uIFVzZSBvZiB0aGUgQVBJIGlzIG5vdCByZWNvbW1lbmRlZCBpbiBwcm9kdWN0aW9uJyxcbiAgICAgICc+IGVudmlyb25tZW50cy4gRXhwZXJpbWVudGFsIEFQSXMgYXJlIG5vdCBzdWJqZWN0IHRvIHRoZSBTZW1hbnRpYyBWZXJzaW9uaW5nIG1vZGVsLicsXG4gICAgICAnJyxcbiAgICAgICctLS0nLFxuICAgICAgJzwhLS1FTkQgU1RBQklMSVRZIEJBTk5FUi0tPicsXG4gICAgICAnJyxcbiAgICAgICdUaGlzIG1vZHVsZSBpcyBwYXJ0IG9mIHRoZSBbQVdTIENsb3VkIERldmVsb3BtZW50IEtpdF0oaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrKSBwcm9qZWN0LicsXG4gICAgICAnJyxcbiAgICAgICdgYGB0cycsXG4gICAgICBgaW1wb3J0ICR7bG93Y2FzZU1vZHVsZU5hbWV9ID0gcmVxdWlyZSgnJHtwYWNrYWdlTmFtZX0nKTtgLFxuICAgICAgJ2BgYCcsXG4gICAgXSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsICd0ZW1wbGF0ZScpO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBhd2FpdCBmcy5yZWFkZGlyKHRlbXBsYXRlRGlyKSkge1xuICAgICAgYXdhaXQgZnMuY29weShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIGZpbGUpLCBwYXRoLmpvaW4ocGFja2FnZVBhdGgsIGZpbGUpKTtcbiAgICB9XG5cbiAgICAvLyBidWlsZCB0aGUgcGFja2FnZVxuICAgIGNvbnN0IGxlcm5hID0gcGF0aC5qb2luKHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoJ2xlcm5hL3BhY2thZ2UuanNvbicpKSwgJ2NsaS5qcycpO1xuICAgIGF3YWl0IGV4ZWMoYCR7bGVybmF9IHJ1biAtLXByb2dyZXNzIGJ1aWxkIC0tc2NvcGUgJHtwYWNrYWdlTmFtZX1gKTtcblxuICAgIC8vIHVwZGF0ZSBkZWNka1xuICAgIGNvbnN0IGRlY2RrUGtnSnNvblBhdGggPSBwYXRoLmpvaW4ocmVxdWlyZS5yZXNvbHZlKCdkZWNkaycpLCAnLi4nLCAnLi4nLCAncGFja2FnZS5qc29uJyk7XG4gICAgY29uc3QgZGVjZGtQa2cgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGRlY2RrUGtnSnNvblBhdGgsICd1dGY4JykpO1xuICAgIGNvbnN0IHVub3JkZXJlZERlcHMgPSB7XG4gICAgICAuLi5kZWNka1BrZy5kZXBlbmRlbmNpZXMsXG4gICAgICBbcGFja2FnZU5hbWVdOiB2ZXJzaW9uXG4gICAgfTtcbiAgICBkZWNka1BrZy5kZXBlbmRlbmNpZXMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh1bm9yZGVyZWREZXBzKS5zb3J0KCkuZm9yRWFjaChrID0+IHtcbiAgICAgIGRlY2RrUGtnLmRlcGVuZGVuY2llc1trXSA9IHVub3JkZXJlZERlcHNba107XG4gICAgfSk7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGRlY2RrUGtnSnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGRlY2RrUGtnLCBudWxsLCAyKSArICdcXG4nKTtcbiAgfVxufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBleGVjKGNvbW1hbmQ6IHN0cmluZykge1xuICBjb25zdCBjaGlsZCA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oY29tbWFuZCwgW10sIHtcbiAgICBzdGRpbzogWyAnaWdub3JlJywgJ2luaGVyaXQnLCAnaW5oZXJpdCcgXSxcbiAgICBzaGVsbDogdHJ1ZVxuICB9KTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChvaywgZmFpbCkgPT4ge1xuICAgIGNoaWxkLm9uY2UoJ2Vycm9yJywgZSA9PiBmYWlsKGUpKTtcbiAgICBjaGlsZC5vbmNlKCdleGl0JywgY29kZSA9PiB7XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gb2soKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWlsKG5ldyBFcnJvcignbm9uLXplcm8gZXhpdCBjb2RlOiAnICsgY29kZSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1pc3NpbmctbGlicmFyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY3JlYXRlLW1pc3NpbmctbGlicmFyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7OztHQUdHOztBQUVILCtDQUErQztBQUMvQywrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLGtDQUFrQztBQUVsQyxvQkFBb0I7QUFDcEIsNEJBQTRCO0FBQzVCLDJDQUEyQztBQUUzQyxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLDREQUE0RCxDQUFDLENBQUM7S0FDeEg7SUFFRCxpRUFBaUU7SUFDakUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDO0lBRW5ELDZDQUE2QztJQUM3QyxLQUFLLE1BQU0sU0FBUyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUM1QyxNQUFNLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5RyxNQUFNLFVBQVUsR0FBRyxHQUFHLFlBQVksSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDaEcsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFaEQsTUFB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QUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNoRjtBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQWU7SUFDakMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFO1FBQzdDLEtBQUssRUFBRSxDQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFFO1FBQ3pDLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDZCxPQUFPLEVBQUUsRUFBRSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN2RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG4vKipcbiAqIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIG1vZHVsZSBmb3IgYW55IENsb3VkRm9ybWF0aW9uIG5hbWVzcGFjZXMgdGhhdCBkbyBub3RcbiAqIGhhdmUgYW4gQVdTIGNvbnN0cnVjdCBsaWJyYXJ5LlxuICovXG5cbmltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2Zuc3BlYyBmcm9tICcuLi9saWInO1xuXG4vLyBkb24ndCBiZSBhIHBydWRlOlxuLy8gdHNsaW50OmRpc2FibGU6bm8tY29uc29sZVxuLy8gdHNsaW50OmRpc2FibGU6b2JqZWN0LWxpdGVyYWwta2V5LXF1b3Rlc1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCByb290ID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJyk7XG4gIGlmIChwYXRoLmJhc2VuYW1lKHJvb3QpICE9PSAnQGF3cy1jZGsnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgd2VudCB3cm9uZy4gV2UgZXhwZWN0ZWQgJHtyb290fSB0byBiZSB0aGUgXCJwYWNrYWdlcy9AYXdzLWNka1wiIGRpcmVjdG9yeS4gRGlkIHlvdSBtb3ZlIG1lP2ApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3QgdmVyc2lvbiA9IHJlcXVpcmUoJy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG5cbiAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBjbG91ZGZvcm1hdGlvbiBuYW1lc3BhY2VzXG4gIGZvciAoY29uc3QgbmFtZXNwYWNlIG9mIGNmbnNwZWMubmFtZXNwYWNlcygpKSB7XG4gICAgY29uc3QgW21vZHVsZUZhbWlseSwgbW9kdWxlQmFzZU5hbWVdID0gKG5hbWVzcGFjZSA9PT0gJ0FXUzo6U2VydmVybGVzcycgPyAnQVdTOjpTQU0nIDogbmFtZXNwYWNlKS5zcGxpdCgnOjonKTtcblxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBgJHttb2R1bGVGYW1pbHl9LSR7bW9kdWxlQmFzZU5hbWUucmVwbGFjZSgvVlxcZCskLywgJycpfWAudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb25zdCBwYWNrYWdlUGF0aCA9IHBhdGguam9pbihyb290LCBtb2R1bGVOYW1lKTtcblxuICAgIGNvbnN0IGxvd2Nhc2VNb2R1bGVOYW1lID0gbW9kdWxlQmFzZU5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGBAYXdzLWNkay8ke21vZHVsZU5hbWV9YDtcblxuICAgIC8vIHdlIGFscmVhZHkgaGF2ZSBhIG1vZHVsZSBmb3IgdGhpcyBuYW1lc2FwY2UsIG1vdmUgb24uXG4gICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMocGFja2FnZVBhdGgpKSB7XG4gICAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBwYXRoLmpvaW4ocGFja2FnZVBhdGgsICdwYWNrYWdlLmpzb24nKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICBjb25zdCBwYWNrYWdlSnNvbiA9IHJlcXVpcmUocGFja2FnZUpzb25QYXRoKTtcbiAgICAgIGxldCBzY29wZXM6IHN0cmluZyB8IHN0cmluZ1tdID0gcGFja2FnZUpzb25bJ2Nkay1idWlsZCddLmNsb3VkZm9ybWF0aW9uO1xuICAgICAgaWYgKHR5cGVvZiBzY29wZXMgPT09ICdzdHJpbmcnKSB7IHNjb3BlcyA9IFtzY29wZXNdOyB9XG4gICAgICBpZiAoc2NvcGVzLmluZGV4T2YobmFtZXNwYWNlKSAhPT0gLTEpIHtcbiAgICAgICAgLy8gVjItc3R5bGUgbW9kdWxlIGlzIGFscmVhZHkgbW9kZWxlZCBpbiB0aGUgcm9vdCBwYWNrYWdlLCBub3RoaW5nIHRvIGJlIGRvbmUhXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSBlbHNlIGlmIChhd2FpdCBmcy5wYXRoRXhpc3RzKHBhdGguam9pbihyb290LCBgJHttb2R1bGVGYW1pbHl9LSR7bW9kdWxlQmFzZU5hbWV9YC50b0xvY2FsZUxvd2VyQ2FzZSgpKSkpIHtcbiAgICAgICAgLy8gVjItc3R5bGUgcGFja2FnZSBhbHJlYWR5IGhhcyBpdCdzIG93biBwYWNrYWdlIChsZWdhY3kgYmVoYXZpb3IpLCBub3RoaW5nIHRvIGJlIGRvbmUhXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVjItc3R5bGUgcGFja2FnZSBuZWVkcyB0byBiZSBhZGRlZCB0byBpdCdzIFwiVjFcIiBwYWNrYWdlLi4uIEdldCBkb3duIHRvIGJ1c2luZXNzIVxuICAgICAgICBjb25zb2xlLmVycm9yKGBBZGRpbmcgJHtuYW1lc3BhY2V9IHRvICR7cGFja2FnZU5hbWV9YCk7XG4gICAgICAgIHNjb3Blcy5wdXNoKG5hbWVzcGFjZSk7XG4gICAgICAgIHBhY2thZ2VKc29uWydjZGstYnVpbGQnXS5jbG91ZGZvcm1hdGlvbiA9IHNjb3BlcztcbiAgICAgICAgYXdhaXQgZnMud3JpdGVKc29uKHBhY2thZ2VKc29uUGF0aCwgcGFja2FnZUpzb24sIHsgZW5jb2Rpbmc6ICd1dGYtOCcsIHNwYWNlczogMiB9KTtcbiAgICAgICAgY29uc3QgaW5kZXhUc1BhdGggPSBwYXRoLmpvaW4ocGFja2FnZVBhdGgsICdsaWInLCAnaW5kZXgudHMnKTtcbiAgICAgICAgY29uc3QgaW5kZXhUcyA9IFtcbiAgICAgICAgICAoYXdhaXQgZnMucmVhZEZpbGUoaW5kZXhUc1BhdGgsIHsgZW5jb2Rpbmc6ICd1dGY4JyB9KSkudHJpbVJpZ2h0KCksXG4gICAgICAgICAgYC8vICR7bmFtZXNwYWNlfSBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZXM6YCxcbiAgICAgICAgICBgZXhwb3J0ICogZnJvbSAnLi8ke2xvd2Nhc2VNb2R1bGVOYW1lfS5nZW5lcmF0ZWQnO2BcbiAgICAgICAgXS5qb2luKCdcXG4nKTtcbiAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGluZGV4VHNQYXRoLCBpbmRleFRzLCB7IGVuY29kaW5nOiAndXRmOCcgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRvdG5ldCBuYW1lc1xuICAgIGNvbnN0IGRvdG5ldFBhY2thZ2UgPSBgQW1hem9uLkNESy4ke21vZHVsZUZhbWlseX0uJHttb2R1bGVCYXNlTmFtZX1gO1xuXG4gICAgLy8gamF2YSBuYW1lc1xuICAgIGNvbnN0IGphdmFHcm91cElkID0gJ3NvZnR3YXJlLmFtYXpvbi5hd3NjZGsnO1xuICAgIGNvbnN0IGphdmFQYWNrYWdlID0gbW9kdWxlRmFtaWx5ID09PSAnQVdTJ1xuICAgICAgPyBgc2VydmljZXMuJHtsb3djYXNlTW9kdWxlTmFtZX1gXG4gICAgICA6IGAke21vZHVsZUZhbWlseS50b0xvY2FsZUxvd2VyQ2FzZSgpfS4ke2xvd2Nhc2VNb2R1bGVOYW1lfWA7XG4gICAgY29uc3QgamF2YUFydGlmYWN0SWQgPSBtb2R1bGVGYW1pbHkgPT09ICdBV1MnXG4gICAgICA/IGxvd2Nhc2VNb2R1bGVOYW1lXG4gICAgICA6IGAke21vZHVsZUZhbWlseS50b0xvY2FsZUxvd2VyQ2FzZSgpfS0ke2xvd2Nhc2VNb2R1bGVOYW1lfWA7XG5cbiAgICAvLyBweXRob24gbmFtZXNcbiAgICBjb25zdCBweXRob25EaXN0U3ViTmFtZSA9IG1vZHVsZUZhbWlseSA9PT0gJ0FXUydcbiAgICAgID8gbG93Y2FzZU1vZHVsZU5hbWVcbiAgICAgIDogYCR7bW9kdWxlRmFtaWx5LnRvTG9jYWxlTG93ZXJDYXNlKCl9LiR7bG93Y2FzZU1vZHVsZU5hbWV9YDtcbiAgICBjb25zdCBweXRob25EaXN0TmFtZSA9IGBhd3MtY2RrLiR7cHl0aG9uRGlzdFN1Yk5hbWV9YDtcbiAgICBjb25zdCBweXRob25Nb2R1bGVOYW1lID0gcHl0aG9uRGlzdE5hbWUucmVwbGFjZSgvLS9nLCBcIl9cIik7XG5cbiAgICBhc3luYyBmdW5jdGlvbiB3cml0ZShyZWxhdGl2ZVBhdGg6IHN0cmluZywgY29udGVudHM6IHN0cmluZ1tdIHwgc3RyaW5nIHwgb2JqZWN0KSB7XG4gICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGguam9pbihwYWNrYWdlUGF0aCwgcmVsYXRpdmVQYXRoKTtcbiAgICAgIGNvbnN0IGRpciA9IHBhdGguZGlybmFtZShmdWxsUGF0aCk7XG4gICAgICBhd2FpdCBmcy5ta2RpcnAoZGlyKTtcblxuICAgICAgbGV0IGRhdGE7XG4gICAgICBpZiAodHlwZW9mIGNvbnRlbnRzID09PSAnc3RyaW5nJykge1xuICAgICAgICBkYXRhID0gY29udGVudHMudHJpbUxlZnQoKTsgLy8gdHJpbSBmaXJzdCBuZXdsaW5lXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29udGVudHMpKSB7XG4gICAgICAgIGRhdGEgPSBjb250ZW50cy5qb2luKCdcXG4nKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbnRlbnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBkYXRhID0gSlNPTi5zdHJpbmdpZnkoY29udGVudHMsIHVuZGVmaW5lZCwgMik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHlwZSBvZiBjb250ZW50czogJyArIGNvbnRlbnRzKTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGZ1bGxQYXRoLCBkYXRhICsgJ1xcbicpO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGBnZW5lcmF0aW5nIG1vZHVsZSBmb3IgJHtwYWNrYWdlTmFtZX0uLi5gKTtcblxuICAgIGF3YWl0IHdyaXRlKCdwYWNrYWdlLmpzb24nLCB7XG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBkZXNjcmlwdGlvbjogYFRoZSBDREsgQ29uc3RydWN0IExpYnJhcnkgZm9yICR7bmFtZXNwYWNlfWAsXG4gICAgICBtYWluOiAnbGliL2luZGV4LmpzJyxcbiAgICAgIHR5cGVzOiAnbGliL2luZGV4LmQudHMnLFxuICAgICAganNpaToge1xuICAgICAgICBvdXRkaXI6ICdkaXN0JyxcbiAgICAgICAgdGFyZ2V0czoge1xuICAgICAgICAgIGRvdG5ldDoge1xuICAgICAgICAgICAgbmFtZXNwYWNlOiBkb3RuZXRQYWNrYWdlLFxuICAgICAgICAgICAgcGFja2FnZUlkOiBkb3RuZXRQYWNrYWdlLFxuICAgICAgICAgICAgc2lnbkFzc2VtYmx5OiB0cnVlLFxuICAgICAgICAgICAgYXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZTogXCIuLi8uLi9rZXkuc25rXCIsXG4gICAgICAgICAgICBpY29uVXJsOiBcImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hd3MvYXdzLWNkay9tYXN0ZXIvbG9nby9kZWZhdWx0LTI1Ni1kYXJrLnBuZ1wiXG4gICAgICAgICAgfSxcbiAgICAgICAgICBqYXZhOiB7XG4gICAgICAgICAgICBwYWNrYWdlOiBgJHtqYXZhR3JvdXBJZH0uJHtqYXZhUGFja2FnZX1gLFxuICAgICAgICAgICAgbWF2ZW46IHtcbiAgICAgICAgICAgICAgZ3JvdXBJZDogamF2YUdyb3VwSWQsXG4gICAgICAgICAgICAgIGFydGlmYWN0SWQ6IGphdmFBcnRpZmFjdElkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBweXRob246IHtcbiAgICAgICAgICAgIGRpc3ROYW1lOiBweXRob25EaXN0TmFtZSxcbiAgICAgICAgICAgIG1vZHVsZTogcHl0aG9uTW9kdWxlTmFtZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlcG9zaXRvcnk6IHtcbiAgICAgICAgdHlwZTogXCJnaXRcIixcbiAgICAgICAgdXJsOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay5naXRcIixcbiAgICAgICAgZGlyZWN0b3J5OiBgcGFja2FnZXMvQGF3cy1jZGsvJHtwYWNrYWdlTmFtZX1gLFxuICAgICAgfSxcbiAgICAgIGhvbWVwYWdlOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNka1wiLFxuICAgICAgc2NyaXB0czoge1xuICAgICAgICBidWlsZDogXCJjZGstYnVpbGRcIixcbiAgICAgICAgd2F0Y2g6IFwiY2RrLXdhdGNoXCIsXG4gICAgICAgIGxpbnQ6IFwiY2RrLWxpbnRcIixcbiAgICAgICAgdGVzdDogXCJjZGstdGVzdFwiLFxuICAgICAgICBpbnRlZzogXCJjZGstaW50ZWdcIixcbiAgICAgICAgcGtnbGludDogXCJwa2dsaW50IC1mXCIsXG4gICAgICAgIHBhY2thZ2U6IFwiY2RrLXBhY2thZ2VcIixcbiAgICAgICAgYXdzbGludDogXCJjZGstYXdzbGludFwiLFxuICAgICAgICBjZm4ydHM6IFwiY2ZuMnRzXCIsXG4gICAgICAgICdidWlsZCt0ZXN0K3BhY2thZ2UnOiBcIm5wbSBydW4gYnVpbGQrdGVzdCAmJiBucG0gcnVuIHBhY2thZ2VcIixcbiAgICAgICAgJ2J1aWxkK3Rlc3QnOiBcIm5wbSBydW4gYnVpbGQgJiYgbnBtIHRlc3RcIixcbiAgICAgICAgY29tcGF0OiBcImNkay1jb21wYXRcIlxuICAgICAgfSxcbiAgICAgICdjZGstYnVpbGQnOiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uOiBuYW1lc3BhY2VcbiAgICAgIH0sXG4gICAgICBrZXl3b3JkczogW1xuICAgICAgICBcImF3c1wiLFxuICAgICAgICBcImNka1wiLFxuICAgICAgICBcImNvbnN0cnVjdHNcIixcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBtb2R1bGVOYW1lXG4gICAgICBdLFxuICAgICAgYXV0aG9yOiB7XG4gICAgICAgIG5hbWU6IFwiQW1hem9uIFdlYiBTZXJ2aWNlc1wiLFxuICAgICAgICB1cmw6IFwiaHR0cHM6Ly9hd3MuYW1hem9uLmNvbVwiLFxuICAgICAgICBvcmdhbml6YXRpb246IHRydWVcbiAgICAgIH0sXG4gICAgICBqZXN0OiB7XG4gICAgICAgIG1vZHVsZUZpbGVFeHRlbnNpb25zOiBbXG4gICAgICAgICAgXCJqc1wiXG4gICAgICAgIF0sXG4gICAgICAgIGNvdmVyYWdlVGhyZXNob2xkOiB7XG4gICAgICAgICAgZ2xvYmFsOiB7XG4gICAgICAgICAgICBicmFuY2hlczogNjAsXG4gICAgICAgICAgICBzdGF0ZW1lbnRzOiA4MFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxpY2Vuc2U6IFwiQXBhY2hlLTIuMFwiLFxuICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgIFwiQGF3cy1jZGsvYXNzZXJ0XCI6IHZlcnNpb24sXG4gICAgICAgIFwiY2RrLWJ1aWxkLXRvb2xzXCI6IHZlcnNpb24sXG4gICAgICAgIFwiY2ZuMnRzXCI6IHZlcnNpb24sXG4gICAgICAgIFwicGtnbGludFwiOiB2ZXJzaW9uLFxuICAgICAgfSxcbiAgICAgIGRlcGVuZGVuY2llczoge1xuICAgICAgICBcIkBhd3MtY2RrL2NvcmVcIjogdmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBwZWVyRGVwZW5kZW5jaWVzOiB7XG4gICAgICAgIFwiQGF3cy1jZGsvY29yZVwiOiB2ZXJzaW9uLFxuICAgICAgfSxcbiAgICAgIGVuZ2luZXM6IHtcbiAgICAgICAgbm9kZTogJz49IDEwLjMuMCdcbiAgICAgIH0sXG4gICAgICBzdGFiaWxpdHk6IFwiZXhwZXJpbWVudGFsXCJcbiAgICB9KTtcblxuICAgIGF3YWl0IHdyaXRlKCcuZ2l0aWdub3JlJywgW1xuICAgICAgJyouanMnLFxuICAgICAgJyouanMubWFwJyxcbiAgICAgICcqLmQudHMnLFxuICAgICAgJ3RzY29uZmlnLmpzb24nLFxuICAgICAgJ3RzbGludC5qc29uJyxcbiAgICAgICdub2RlX21vZHVsZXMnLFxuICAgICAgJyouZ2VuZXJhdGVkLnRzJyxcbiAgICAgICdkaXN0JyxcbiAgICAgICcuanNpaScsXG4gICAgICAnJyxcbiAgICAgICcuTEFTVF9CVUlMRCcsXG4gICAgICAnLm55Y19vdXRwdXQnLFxuICAgICAgJ2NvdmVyYWdlJyxcbiAgICAgICcubnljcmMnLFxuICAgICAgJy5MQVNUX1BBQ0tBR0UnLFxuICAgICAgJyouc25rJyxcbiAgICBdKTtcblxuICAgIGF3YWl0IHdyaXRlKCcubnBtaWdub3JlJywgW1xuICAgICAgJyMgRG9uXFwndCBpbmNsdWRlIG9yaWdpbmFsIC50cyBmaWxlcyB3aGVuIGRvaW5nIGBucG0gcGFja2AnLFxuICAgICAgJyoudHMnLFxuICAgICAgJyEqLmQudHMnLFxuICAgICAgJ2NvdmVyYWdlJyxcbiAgICAgICcubnljX291dHB1dCcsXG4gICAgICAnKi50Z3onLFxuICAgICAgJycsXG4gICAgICAnZGlzdCcsXG4gICAgICAnLkxBU1RfUEFDS0FHRScsXG4gICAgICAnLkxBU1RfQlVJTEQnLFxuICAgICAgJyEqLmpzJyxcbiAgICAgICcnLFxuICAgICAgJyMgSW5jbHVkZSAuanNpaScsXG4gICAgICAnIS5qc2lpJyxcbiAgICAgICcnLFxuICAgICAgJyouc25rJyxcbiAgICAgICcnLFxuICAgICAgJyoudHNidWlsZGluZm8nLFxuICAgICAgJycsXG4gICAgICAndHNjb25maWcuanNvbicsXG4gICAgXSk7XG5cbiAgICBhd2FpdCB3cml0ZSgnbGliL2luZGV4LnRzJywgW1xuICAgICAgYC8vICR7bmFtZXNwYWNlfSBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZXM6YCxcbiAgICAgIGBleHBvcnQgKiBmcm9tICcuLyR7bG93Y2FzZU1vZHVsZU5hbWV9LmdlbmVyYXRlZCc7YFxuICAgIF0pO1xuXG4gICAgYXdhaXQgd3JpdGUoYHRlc3QvJHtsb3djYXNlTW9kdWxlTmFtZX0udGVzdC50c2AsIFtcbiAgICAgIFwiaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XCIsXG4gICAgICBcImltcG9ydCB7fSBmcm9tICcuLi9saWInO1wiLFxuICAgICAgXCJcIixcbiAgICAgIFwidGVzdCgnTm8gdGVzdHMgYXJlIHNwZWNpZmllZCBmb3IgdGhpcyBwYWNrYWdlJywgKCkgPT4ge1wiLFxuICAgICAgXCIgIGV4cGVjdCh0cnVlKS50b0JlKHRydWUpO1wiLFxuICAgICAgXCJ9KTtcIixcbiAgICBdKTtcblxuICAgIGF3YWl0IHdyaXRlKCdSRUFETUUubWQnLCBbXG4gICAgICBgIyMgJHtuYW1lc3BhY2V9IENvbnN0cnVjdCBMaWJyYXJ5YCxcbiAgICAgICc8IS0tQkVHSU4gU1RBQklMSVRZIEJBTk5FUi0tPicsXG4gICAgICAnJyxcbiAgICAgICctLS0nLFxuICAgICAgJycsXG4gICAgICAnIVtTdGFiaWxpdHk6IEV4cGVyaW1lbnRhbF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9zdGFiaWxpdHktRXhwZXJpbWVudGFsLWltcG9ydGFudC5zdmc/c3R5bGU9Zm9yLXRoZS1iYWRnZSknLFxuICAgICAgJycsXG4gICAgICAnPiAqKlRoaXMgaXMgYSBfZGV2ZWxvcGVyIHByZXZpZXdfIChwdWJsaWMgYmV0YSkgbW9kdWxlLiBSZWxlYXNlcyBtaWdodCBsYWNrIGltcG9ydGFudCBmZWF0dXJlcyBhbmQgbWlnaHQgaGF2ZScsXG4gICAgICAnPiBmdXR1cmUgYnJlYWtpbmcgY2hhbmdlcy4qKicsXG4gICAgICAnPicsXG4gICAgICAnPiBUaGlzIEFQSSBpcyBzdGlsbCB1bmRlciBhY3RpdmUgZGV2ZWxvcG1lbnQgYW5kIHN1YmplY3QgdG8gbm9uLWJhY2t3YXJkJyxcbiAgICAgICc+IGNvbXBhdGlibGUgY2hhbmdlcyBvciByZW1vdmFsIGluIGFueSBmdXR1cmUgdmVyc2lvbi4gVXNlIG9mIHRoZSBBUEkgaXMgbm90IHJlY29tbWVuZGVkIGluIHByb2R1Y3Rpb24nLFxuICAgICAgJz4gZW52aXJvbm1lbnRzLiBFeHBlcmltZW50YWwgQVBJcyBhcmUgbm90IHN1YmplY3QgdG8gdGhlIFNlbWFudGljIFZlcnNpb25pbmcgbW9kZWwuJyxcbiAgICAgICcnLFxuICAgICAgJy0tLScsXG4gICAgICAnPCEtLUVORCBTVEFCSUxJVFkgQkFOTkVSLS0+JyxcbiAgICAgICcnLFxuICAgICAgJ1RoaXMgbW9kdWxlIGlzIHBhcnQgb2YgdGhlIFtBV1MgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0XShodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGspIHByb2plY3QuJyxcbiAgICAgICcnLFxuICAgICAgJ2BgYHRzJyxcbiAgICAgIGBpbXBvcnQgJHtsb3djYXNlTW9kdWxlTmFtZX0gPSByZXF1aXJlKCcke3BhY2thZ2VOYW1lfScpO2AsXG4gICAgICAnYGBgJyxcbiAgICBdKTtcblxuICAgIGNvbnN0IHRlbXBsYXRlRGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3RlbXBsYXRlJyk7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGF3YWl0IGZzLnJlYWRkaXIodGVtcGxhdGVEaXIpKSB7XG4gICAgICBhd2FpdCBmcy5jb3B5KHBhdGguam9pbih0ZW1wbGF0ZURpciwgZmlsZSksIHBhdGguam9pbihwYWNrYWdlUGF0aCwgZmlsZSkpO1xuICAgIH1cblxuICAgIC8vIGJ1aWxkIHRoZSBwYWNrYWdlXG4gICAgY29uc3QgbGVybmEgPSBwYXRoLmpvaW4ocGF0aC5kaXJuYW1lKHJlcXVpcmUucmVzb2x2ZSgnbGVybmEvcGFja2FnZS5qc29uJykpLCAnY2xpLmpzJyk7XG4gICAgYXdhaXQgZXhlYyhgJHtsZXJuYX0gcnVuIC0tcHJvZ3Jlc3MgYnVpbGQgLS1zY29wZSAke3BhY2thZ2VOYW1lfWApO1xuXG4gICAgLy8gdXBkYXRlIGRlY2RrXG4gICAgY29uc3QgZGVjZGtQa2dKc29uUGF0aCA9IHBhdGguam9pbihyZXF1aXJlLnJlc29sdmUoJ2RlY2RrJyksICcuLicsICcuLicsICdwYWNrYWdlLmpzb24nKTtcbiAgICBjb25zdCBkZWNka1BrZyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoZGVjZGtQa2dKc29uUGF0aCwgJ3V0ZjgnKSk7XG4gICAgY29uc3QgdW5vcmRlcmVkRGVwcyA9IHtcbiAgICAgIC4uLmRlY2RrUGtnLmRlcGVuZGVuY2llcyxcbiAgICAgIFtwYWNrYWdlTmFtZV06IHZlcnNpb25cbiAgICB9O1xuICAgIGRlY2RrUGtnLmRlcGVuZGVuY2llcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHVub3JkZXJlZERlcHMpLnNvcnQoKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgZGVjZGtQa2cuZGVwZW5kZW5jaWVzW2tdID0gdW5vcmRlcmVkRGVwc1trXTtcbiAgICB9KTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZGVjZGtQa2dKc29uUGF0aCwgSlNPTi5zdHJpbmdpZnkoZGVjZGtQa2csIG51bGwsIDIpICsgJ1xcbicpO1xuICB9XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGV4ZWMoY29tbWFuZDogc3RyaW5nKSB7XG4gIGNvbnN0IGNoaWxkID0gY2hpbGRfcHJvY2Vzcy5zcGF3bihjb21tYW5kLCBbXSwge1xuICAgIHN0ZGlvOiBbICdpZ25vcmUnLCAnaW5oZXJpdCcsICdpbmhlcml0JyBdLFxuICAgIHNoZWxsOiB0cnVlXG4gIH0pO1xuICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBmYWlsKSA9PiB7XG4gICAgY2hpbGQub25jZSgnZXJyb3InLCBlID0+IGZhaWwoZSkpO1xuICAgIGNoaWxkLm9uY2UoJ2V4aXQnLCBjb2RlID0+IHtcbiAgICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICAgIHJldHVybiBvaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhaWwobmV3IEVycm9yKCdub24temVybyBleGl0IGNvZGU6ICcgKyBjb2RlKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuIl19

@@ -5,4 +5,6 @@ "use strict";

const util = require("util");
/* eslint-disable @typescript-eslint/no-require-imports */
// tslint:disable-next-line:no-var-requires
const jsonDiff = require('json-diff').diff;
/* eslint-enable */
function line(fmt = '', ...param) {

@@ -204,2 +206,2 @@ process.stdout.write(util.format(fmt, ...param));

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQWdDO0FBQ2hDLDZCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUUzQyxTQUFTLElBQUksQ0FBQyxNQUFjLEVBQUUsRUFBRSxHQUFHLEtBQVk7SUFDN0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFdkMsK0NBQStDO0lBQy9DLHdEQUF3RDtJQUN4RCxzQkFBc0I7SUFDdEIsNERBQTREO0lBQzVELHNCQUFzQjtJQUN0QiwyREFBMkQ7SUFDM0QsK0JBQStCO0lBRS9CLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixPQUFPLENBQUMsVUFBVTtLQUNuQjtJQUVELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUNoRCxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQzdDLE1BQU0sZUFBZSxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFDNUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBRWhELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1FBQ3RELDBCQUEwQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDekQ7SUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUN0RCwwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3pEO0lBRUQsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLENBQUM7SUFDNUQsSUFBSSxFQUFFLENBQUM7SUFFUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM5QixJQUFJLEVBQUUsQ0FBQztJQUNQLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxJQUFJLEVBQUUsQ0FBQztJQUVQLElBQUkscUJBQXFCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUNsQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNsQyxJQUFJLEVBQUUsQ0FBQztRQUNQLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLEVBQUUsQ0FBQztLQUNSO0lBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDN0IsSUFBSSxFQUFFLENBQUM7SUFDUCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QyxJQUFJLEVBQUUsQ0FBQztJQUVQLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVCLElBQUksRUFBRSxDQUFDO0lBQ1AsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksRUFBRSxDQUFDO0lBRVAsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDakMsSUFBSSxFQUFFLENBQUM7SUFDUCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxQyxTQUFTLDBCQUEwQixDQUFDLFlBQW9CLEVBQUUsTUFBVztRQUNuRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsT0FBTztTQUNSO1FBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxFQUFFO1lBQ1gscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLE9BQU87U0FDUjtRQUVELHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyxRQUFRLEdBQUcsRUFBRTtnQkFDYixLQUFLLFlBQVk7b0JBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDakQsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDNUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDL0IsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLFlBQVk7b0JBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTt3QkFDakQsZUFBZSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDNUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNoQyxDQUFDLENBQUMsQ0FBQztxQkFDSjtvQkFDRCxNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFlBQVksS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ2pFO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUywwQkFBMEIsQ0FBQyxZQUFvQixFQUFFLE1BQVc7UUFDbkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDM0MsT0FBTyxDQUFDLDZDQUE2QzthQUN0RDtZQUVELG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFDLENBQUM7WUFDbkQsT0FBTztTQUNSO1FBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBTyxFQUFFO1lBQ1gsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDM0MsT0FBTyxDQUFDLDZDQUE2QzthQUN0RDtZQUVELG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksRUFBRTtZQUMvRSxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQ2pIO1FBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNqRCxlQUFlLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM1RSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxTQUFTLHNCQUFzQixDQUFDLE1BQVc7UUFDekMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUFFLFNBQVM7YUFBRTtZQUN6QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsR0FBVztRQUM1QixPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVMsT0FBTyxDQUFDLEdBQVc7UUFDMUIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUMzQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxTQUFTLGVBQWUsQ0FBQyxTQUFpQixFQUFFLE1BQWMsRUFBRSxNQUFXO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFcEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLGdCQUFnQixDQUFDLENBQUM7WUFDeEQsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzRjtRQUVELElBQUksT0FBTyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFO1lBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDekMsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxNQUFNLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRTtnQkFDRCxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDbEIsS0FBSyxHQUFHO3dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN0QyxNQUFNO29CQUNSLEtBQUssR0FBRzt3QkFDTixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixTQUFTLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFDdEcsS0FBSyxHQUFHO3dCQUNOLDBCQUEwQjt3QkFDMUIsTUFBTTtvQkFDUjt3QkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUU7YUFDRjtTQUNGO2FBQU07WUFDTCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEI7YUFDRjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzLWV4dHJhJyk7XG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXZhci1yZXF1aXJlc1xuY29uc3QganNvbkRpZmYgPSByZXF1aXJlKCdqc29uLWRpZmYnKS5kaWZmO1xuXG5mdW5jdGlvbiBsaW5lKGZtdDogc3RyaW5nID0gJycsIC4uLnBhcmFtOiBhbnlbXSkge1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSh1dGlsLmZvcm1hdChmbXQsIC4uLnBhcmFtKSk7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgdGl0bGUgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IG9sZFNwZWNGaWxlID0gcHJvY2Vzcy5hcmd2WzNdO1xuICBjb25zdCBuZXdTcGVjRmlsZSA9IHByb2Nlc3MuYXJndls0XTtcblxuICBjb25zdCBuZXdTcGVjID0gYXdhaXQgZnMucmVhZEpTT04obmV3U3BlY0ZpbGUpO1xuICBjb25zdCBvbGRTcGVjID0gYXdhaXQgZnMucmVhZEpTT04ob2xkU3BlY0ZpbGUpO1xuXG4gIGNvbnN0IG91dCA9IGpzb25EaWZmKG9sZFNwZWMsIG5ld1NwZWMpO1xuXG4gIC8vIEhlcmUncyB0aGUgbWFnaWMgb3V0cHV0IGZvcm1hdCBvZiB0aGlzIHRoaW5nXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19hZGRlZCwgaXQgZ290IGFkZGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG5ldyB2YWx1ZS5cbiAgLy8gSWYgYSBrZXkgZW5kcyBpbiBfX2RlbGV0ZWQsIGl0IGdvdCBkZWxldGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG9sZCB2YWx1ZS5cbiAgLy8gSWYgYSB2YWx1ZSBnb3QgY2hhbmdlZCwgdGhlIHZhbHVlIG9iamVjdCB3aWxsIGxvb2sgbGlrZTpcbiAgLy8gICB7IF9fb2xkOiAuLi4sIF9fbmV3OiAuLi4gfVxuXG4gIGlmICghb3V0KSB7XG4gICAgcmV0dXJuOyAvLyBubyBkaWZmXG4gIH1cblxuICBjb25zdCByZXNvdXJjZVR5cGVBZGRpdGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgcmVzb3VyY2VUeXBlRGVsZXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGF0dHJpYnV0ZUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eVR5cGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvdXQuUmVzb3VyY2VUeXBlcyB8fCB7fSkpIHtcbiAgICBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShrZXksIG91dC5SZXNvdXJjZVR5cGVzW2tleV0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlByb3BlcnR5VHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUoa2V5LCBvdXQuUHJvcGVydHlUeXBlc1trZXldKTtcbiAgfVxuXG4gIGxpbmUoYCMgJHt0aXRsZX0gdiR7bmV3U3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9ufWApO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgTmV3IFJlc291cmNlIFR5cGVzJyk7XG4gIGxpbmUoKTtcbiAgcmVzb3VyY2VUeXBlQWRkaXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gIGxpbmUoKTtcblxuICBpZiAocmVzb3VyY2VUeXBlRGVsZXRpb25zLnNpemUgPiAwKSB7XG4gICAgbGluZSgnIyMgUmVtb3ZlZCBSZXNvdXJjZSBUeXBlcycpO1xuICAgIGxpbmUoKTtcbiAgICByZXNvdXJjZVR5cGVEZWxldGlvbnMuZm9yRWFjaCh0eXBlID0+IGxpbmUoYCogJHt0eXBlfWApKTtcbiAgICBsaW5lKCk7XG4gIH1cblxuICBsaW5lKCcjIyBBdHRyaWJ1dGUgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIGF0dHJpYnV0ZUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIHByb3BlcnR5Q2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBQcm9wZXJ0eSBUeXBlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcblxuICBmdW5jdGlvbiBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShyZXNvdXJjZVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZUFkZGl0aW9ucy5hZGQoYWRkZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmFkZChkZWxldGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwdXNoRG93bkZpcnN0QWRkaXRpb25zKHVwZGF0ZSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgIGNhc2UgJ1Byb3BlcnRpZXMnOlxuICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModXBkYXRlLlByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIHByb3BlcnR5Q2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBdHRyaWJ1dGVzJzpcbiAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5BdHRyaWJ1dGVzKSkge1xuICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGF0dHIsIHVwZGF0ZS5BdHRyaWJ1dGVzW2F0dHJdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB1cGRhdGUgdG8gJHtyZXNvdXJjZVR5cGV9OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjbGFzc2lmeVByb3BlcnR5VHlwZVVwZGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGFkZGVkLnNwbGl0KCcuJylbMF07XG4gICAgICBpZiAocmVzb3VyY2VUeXBlQWRkaXRpb25zLmhhcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgIHJldHVybjsgLy8gc2tpcHBpbmcgcHJvcGVydHkgZm9yIGFkZGVkIHJlc291cmNlIHR5cGVzXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChgKiAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZGVsZXRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHtkZWxldGVkfSAoX19yZW1vdmVkX18pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHVwZGF0ZSkubGVuZ3RoICE9PSAxICYmIE9iamVjdC5rZXlzKHVwZGF0ZSlbMF0gPT09ICdQcm9wZXJ0aWVzJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHVwZGF0ZSB0byBhIHJlc291cmNlIHR5cGUuIEV4cGVjdGluZyBvbmx5IFwiUHJvcGVydGllc1wiIHRvIGNoYW5nZTogJyArIHByb3BlcnR5VHlwZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5Qcm9wZXJ0aWVzKSkge1xuICAgICAgZGVzY3JpYmVDaGFuZ2VzKHByb3BlcnR5VHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwdXNoRG93bkZpcnN0QWRkaXRpb25zKHVwZGF0ZTogYW55KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKGtleSk7XG4gICAgICBpZiAoIWFkZGVkKSB7IGNvbnRpbnVlOyB9XG4gICAgICBjb25zdCBkYXRhID0gdXBkYXRlW2tleV07XG4gICAgICBkZWxldGUgdXBkYXRlW2tleV07XG4gICAgICB1cGRhdGVbYWRkZWRdID0ge307XG4gICAgICBmb3IgKGNvbnN0IHN1YktleSBvZiBPYmplY3Qua2V5cyhkYXRhKSkge1xuICAgICAgICB1cGRhdGVbYWRkZWRdW2Ake3N1YktleX1fX2FkZGVkYF0gPSBkYXRhW3N1YktleV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNEZWxldGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fZGVsZXRlZCcpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNBZGRlZChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1N1ZmZpeChrZXksICdfX2FkZGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc1N1ZmZpeChrZXk6IHN0cmluZywgc3VmZml4OiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IGtleS5pbmRleE9mKHN1ZmZpeCk7XG4gICAgcmV0dXJuIGluZGV4ID09PSAtMSA/IHVuZGVmaW5lZCA6IGtleS5zdWJzdHIoMCwgaW5kZXgpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVDaGFuZ2VzKG5hbWVzcGFjZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcmVmaXgpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcmVmaXgpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7ZGVsZXRlZH0gKF9fZGVsZXRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZih1cGRhdGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGNoYW5nZSBmb3IgJHtuYW1lc3BhY2V9LiR7cHJlZml4fSAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCdfX29sZCcgaW4gdXBkYXRlICYmICdfX25ldycgaW4gdXBkYXRlKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBPbGQ6ICR7dXBkYXRlLl9fb2xkfWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogTmV3OiAke3VwZGF0ZS5fX25ld31gKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHVwZGF0ZSkpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdXBkYXRlKSB7XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChlbnRyeVswXSkge1xuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICBjaGFuZ2VzLnB1c2goYCAgKiBBZGRlZCAke2VudHJ5WzFdfWApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvbWV0aGluZyBhd2t3YXJkIGhhcHBlbmVkOiAke2VudHJ5WzFdfSB3YXMgZGVsZXRlZCBmcm9tICR7bmFtZXNwYWNlfSAke3ByZWZpeH0hYCk7XG4gICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgIC8vIFRoaXMgZW50cnkgaXMgXCJjb250ZXh0XCJcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlLCBgJHtwcmVmaXh9LiR7a2V5fWAsIHVwZGF0ZVtrZXldKSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShlLnN0YWNrKTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ1xcbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy1kaWZmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QiwwREFBMEQ7QUFDMUQsMkNBQTJDO0FBQzNDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDM0MsbUJBQW1CO0FBRW5CLFNBQVMsSUFBSSxDQUFDLE1BQWMsRUFBRSxFQUFFLEdBQUcsS0FBWTtJQUM3QyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFL0MsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV2QywrQ0FBK0M7SUFDL0Msd0RBQXdEO0lBQ3hELHNCQUFzQjtJQUN0Qiw0REFBNEQ7SUFDNUQsc0JBQXNCO0lBQ3RCLDJEQUEyRDtJQUMzRCwrQkFBK0I7SUFFL0IsSUFBSSxDQUFDLEdBQUcs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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXZhci1yZXF1aXJlc1xuY29uc3QganNvbkRpZmYgPSByZXF1aXJlKCdqc29uLWRpZmYnKS5kaWZmO1xuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5mdW5jdGlvbiBsaW5lKGZtdDogc3RyaW5nID0gJycsIC4uLnBhcmFtOiBhbnlbXSkge1xuICBwcm9jZXNzLnN0ZG91dC53cml0ZSh1dGlsLmZvcm1hdChmbXQsIC4uLnBhcmFtKSk7XG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdcXG4nKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgdGl0bGUgPSBwcm9jZXNzLmFyZ3ZbMl07XG4gIGNvbnN0IG9sZFNwZWNGaWxlID0gcHJvY2Vzcy5hcmd2WzNdO1xuICBjb25zdCBuZXdTcGVjRmlsZSA9IHByb2Nlc3MuYXJndls0XTtcblxuICBjb25zdCBuZXdTcGVjID0gYXdhaXQgZnMucmVhZEpTT04obmV3U3BlY0ZpbGUpO1xuICBjb25zdCBvbGRTcGVjID0gYXdhaXQgZnMucmVhZEpTT04ob2xkU3BlY0ZpbGUpO1xuXG4gIGNvbnN0IG91dCA9IGpzb25EaWZmKG9sZFNwZWMsIG5ld1NwZWMpO1xuXG4gIC8vIEhlcmUncyB0aGUgbWFnaWMgb3V0cHV0IGZvcm1hdCBvZiB0aGlzIHRoaW5nXG4gIC8vIElmIGEga2V5IGVuZHMgaW4gX19hZGRlZCwgaXQgZ290IGFkZGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG5ldyB2YWx1ZS5cbiAgLy8gSWYgYSBrZXkgZW5kcyBpbiBfX2RlbGV0ZWQsIGl0IGdvdCBkZWxldGVkLCBhbmQgdGhlIHZhbHVlXG4gIC8vICAgaXMgdGhlIG9sZCB2YWx1ZS5cbiAgLy8gSWYgYSB2YWx1ZSBnb3QgY2hhbmdlZCwgdGhlIHZhbHVlIG9iamVjdCB3aWxsIGxvb2sgbGlrZTpcbiAgLy8gICB7IF9fb2xkOiAuLi4sIF9fbmV3OiAuLi4gfVxuXG4gIGlmICghb3V0KSB7XG4gICAgcmV0dXJuOyAvLyBubyBkaWZmXG4gIH1cblxuICBjb25zdCByZXNvdXJjZVR5cGVBZGRpdGlvbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgY29uc3QgcmVzb3VyY2VUeXBlRGVsZXRpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IGF0dHJpYnV0ZUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eUNoYW5nZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBjb25zdCBwcm9wZXJ0eVR5cGVDaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvdXQuUmVzb3VyY2VUeXBlcyB8fCB7fSkpIHtcbiAgICBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShrZXksIG91dC5SZXNvdXJjZVR5cGVzW2tleV0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3V0LlByb3BlcnR5VHlwZXMgfHwge30pKSB7XG4gICAgY2xhc3NpZnlQcm9wZXJ0eVR5cGVVcGRhdGUoa2V5LCBvdXQuUHJvcGVydHlUeXBlc1trZXldKTtcbiAgfVxuXG4gIGxpbmUoYCMgJHt0aXRsZX0gdiR7bmV3U3BlYy5SZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9ufWApO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgTmV3IFJlc291cmNlIFR5cGVzJyk7XG4gIGxpbmUoKTtcbiAgcmVzb3VyY2VUeXBlQWRkaXRpb25zLmZvckVhY2godHlwZSA9PiBsaW5lKGAqICR7dHlwZX1gKSk7XG4gIGxpbmUoKTtcblxuICBpZiAocmVzb3VyY2VUeXBlRGVsZXRpb25zLnNpemUgPiAwKSB7XG4gICAgbGluZSgnIyMgUmVtb3ZlZCBSZXNvdXJjZSBUeXBlcycpO1xuICAgIGxpbmUoKTtcbiAgICByZXNvdXJjZVR5cGVEZWxldGlvbnMuZm9yRWFjaCh0eXBlID0+IGxpbmUoYCogJHt0eXBlfWApKTtcbiAgICBsaW5lKCk7XG4gIH1cblxuICBsaW5lKCcjIyBBdHRyaWJ1dGUgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIGF0dHJpYnV0ZUNoYW5nZXMuZm9yRWFjaCh4ID0+IGxpbmUoeCkpO1xuICBsaW5lKCk7XG5cbiAgbGluZSgnIyMgUHJvcGVydHkgQ2hhbmdlcycpO1xuICBsaW5lKCk7XG4gIHByb3BlcnR5Q2hhbmdlcy5mb3JFYWNoKHggPT4gbGluZSh4KSk7XG4gIGxpbmUoKTtcblxuICBsaW5lKCcjIyBQcm9wZXJ0eSBUeXBlIENoYW5nZXMnKTtcbiAgbGluZSgpO1xuICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLmZvckVhY2goeCA9PiBsaW5lKHgpKTtcblxuICBmdW5jdGlvbiBjbGFzc2lmeVJlc291cmNlVHlwZVVwZGF0ZShyZXNvdXJjZVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIHJlc291cmNlVHlwZUFkZGl0aW9ucy5hZGQoYWRkZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocmVzb3VyY2VUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgcmVzb3VyY2VUeXBlRGVsZXRpb25zLmFkZChkZWxldGVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwdXNoRG93bkZpcnN0QWRkaXRpb25zKHVwZGF0ZSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgIGNhc2UgJ1Byb3BlcnRpZXMnOlxuICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmtleXModXBkYXRlLlByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgZGVzY3JpYmVDaGFuZ2VzKHJlc291cmNlVHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgIHByb3BlcnR5Q2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBdHRyaWJ1dGVzJzpcbiAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5BdHRyaWJ1dGVzKSkge1xuICAgICAgICAgIGRlc2NyaWJlQ2hhbmdlcyhyZXNvdXJjZVR5cGUsIGF0dHIsIHVwZGF0ZS5BdHRyaWJ1dGVzW2F0dHJdKS5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB1cGRhdGUgdG8gJHtyZXNvdXJjZVR5cGV9OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjbGFzc2lmeVByb3BlcnR5VHlwZVVwZGF0ZShwcm9wZXJ0eVR5cGU6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBhZGRlZCA9IGlzQWRkZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoYWRkZWQpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlVHlwZSA9IGFkZGVkLnNwbGl0KCcuJylbMF07XG4gICAgICBpZiAocmVzb3VyY2VUeXBlQWRkaXRpb25zLmhhcyhyZXNvdXJjZVR5cGUpKSB7XG4gICAgICAgIHJldHVybjsgLy8gc2tpcHBpbmcgcHJvcGVydHkgZm9yIGFkZGVkIHJlc291cmNlIHR5cGVzXG4gICAgICB9XG5cbiAgICAgIHByb3BlcnR5VHlwZUNoYW5nZXMucHVzaChgKiAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlbGV0ZWQgPSBpc0RlbGV0ZWQocHJvcGVydHlUeXBlKTtcbiAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgY29uc3QgcmVzb3VyY2VUeXBlID0gZGVsZXRlZC5zcGxpdCgnLicpWzBdO1xuICAgICAgaWYgKHJlc291cmNlVHlwZURlbGV0aW9ucy5oYXMocmVzb3VyY2VUeXBlKSkge1xuICAgICAgICByZXR1cm47IC8vIHNraXBwaW5nIHByb3BlcnR5IGZvciBhZGRlZCByZXNvdXJjZSB0eXBlc1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0eVR5cGVDaGFuZ2VzLnB1c2goYCogJHtkZWxldGVkfSAoX19yZW1vdmVkX18pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHVwZGF0ZSkubGVuZ3RoICE9PSAxICYmIE9iamVjdC5rZXlzKHVwZGF0ZSlbMF0gPT09ICdQcm9wZXJ0aWVzJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHVwZGF0ZSB0byBhIHJlc291cmNlIHR5cGUuIEV4cGVjdGluZyBvbmx5IFwiUHJvcGVydGllc1wiIHRvIGNoYW5nZTogJyArIHByb3BlcnR5VHlwZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHVwZGF0ZS5Qcm9wZXJ0aWVzKSkge1xuICAgICAgZGVzY3JpYmVDaGFuZ2VzKHByb3BlcnR5VHlwZSwgcHJvcCwgdXBkYXRlLlByb3BlcnRpZXNbcHJvcF0pLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgcHJvcGVydHlUeXBlQ2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwdXNoRG93bkZpcnN0QWRkaXRpb25zKHVwZGF0ZTogYW55KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgY29uc3QgYWRkZWQgPSBpc0FkZGVkKGtleSk7XG4gICAgICBpZiAoIWFkZGVkKSB7IGNvbnRpbnVlOyB9XG4gICAgICBjb25zdCBkYXRhID0gdXBkYXRlW2tleV07XG4gICAgICBkZWxldGUgdXBkYXRlW2tleV07XG4gICAgICB1cGRhdGVbYWRkZWRdID0ge307XG4gICAgICBmb3IgKGNvbnN0IHN1YktleSBvZiBPYmplY3Qua2V5cyhkYXRhKSkge1xuICAgICAgICB1cGRhdGVbYWRkZWRdW2Ake3N1YktleX1fX2FkZGVkYF0gPSBkYXRhW3N1YktleV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNEZWxldGVkKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlzU3VmZml4KGtleSwgJ19fZGVsZXRlZCcpO1xuICB9XG5cbiAgZnVuY3Rpb24gaXNBZGRlZChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBpc1N1ZmZpeChrZXksICdfX2FkZGVkJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpc1N1ZmZpeChrZXk6IHN0cmluZywgc3VmZml4OiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IGtleS5pbmRleE9mKHN1ZmZpeCk7XG4gICAgcmV0dXJuIGluZGV4ID09PSAtMSA/IHVuZGVmaW5lZCA6IGtleS5zdWJzdHIoMCwgaW5kZXgpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGVzY3JpYmVDaGFuZ2VzKG5hbWVzcGFjZTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdXBkYXRlOiBhbnkpIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IGFkZGVkID0gaXNBZGRlZChwcmVmaXgpO1xuICAgIGlmIChhZGRlZCkge1xuICAgICAgY2hhbmdlcy5wdXNoKGAqICR7bmFtZXNwYWNlfSAke2FkZGVkfSAoX19hZGRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGVsZXRlZCA9IGlzRGVsZXRlZChwcmVmaXgpO1xuICAgIGlmIChkZWxldGVkKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7ZGVsZXRlZH0gKF9fZGVsZXRlZF9fKWApO1xuICAgICAgcmV0dXJuIGNoYW5nZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZih1cGRhdGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGNoYW5nZSBmb3IgJHtuYW1lc3BhY2V9LiR7cHJlZml4fSAke0pTT04uc3RyaW5naWZ5KHVwZGF0ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCdfX29sZCcgaW4gdXBkYXRlICYmICdfX25ldycgaW4gdXBkYXRlKSB7XG4gICAgICBjaGFuZ2VzLnB1c2goYCogJHtuYW1lc3BhY2V9ICR7cHJlZml4fSAoX19jaGFuZ2VkX18pYCk7XG4gICAgICBjaGFuZ2VzLnB1c2goYCAgKiBPbGQ6ICR7dXBkYXRlLl9fb2xkfWApO1xuICAgICAgY2hhbmdlcy5wdXNoKGAgICogTmV3OiAke3VwZGF0ZS5fX25ld31gKTtcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHVwZGF0ZSkpIHtcbiAgICAgIGNoYW5nZXMucHVzaChgKiAke25hbWVzcGFjZX0gJHtwcmVmaXh9IChfX2NoYW5nZWRfXylgKTtcbiAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgdXBkYXRlKSB7XG4gICAgICAgIGlmIChlbnRyeS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChlbnRyeVswXSkge1xuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICBjaGFuZ2VzLnB1c2goYCAgKiBBZGRlZCAke2VudHJ5WzFdfWApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvbWV0aGluZyBhd2t3YXJkIGhhcHBlbmVkOiAke2VudHJ5WzFdfSB3YXMgZGVsZXRlZCBmcm9tICR7bmFtZXNwYWNlfSAke3ByZWZpeH0hYCk7XG4gICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgIC8vIFRoaXMgZW50cnkgaXMgXCJjb250ZXh0XCJcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYXJyYXkgZGlmZiBlbnRyeTogJHtKU09OLnN0cmluZ2lmeShlbnRyeSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModXBkYXRlKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZSBvZiBkZXNjcmliZUNoYW5nZXMobmFtZXNwYWNlLCBgJHtwcmVmaXh9LiR7a2V5fWAsIHVwZGF0ZVtrZXldKSkge1xuICAgICAgICAgIGNoYW5nZXMucHVzaChjaGFuZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKGUgPT4ge1xuICBwcm9jZXNzLnN0ZGVyci53cml0ZShlLnN0YWNrKTtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoJ1xcbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59KTtcbiJdfQ==

@@ -1,2 +0,2 @@

import schema = require('./schema');
import * as schema from './schema';
export { schema };

@@ -3,0 +3,0 @@ /**

@@ -10,2 +10,3 @@ "use strict";

function specification() {
// eslint-disable-next-line @typescript-eslint/no-require-imports
return require('../spec/specification.json');

@@ -34,2 +35,3 @@ }

try {
// eslint-disable-next-line @typescript-eslint/no-require-imports
return require(`./augmentations/${fileName}.json`);

@@ -146,2 +148,2 @@ }

exports.scrutinizableResourceTypes = scrutinizableResourceTypes;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFrQztBQUNsQyxtQ0FBb0M7QUFDM0Isd0JBQU07QUFFZjs7R0FFRztBQUNILFNBQWdCLGFBQWE7SUFDM0IsT0FBTyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRkQsc0NBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFFBQWdCO0lBQ3BELE1BQU0sR0FBRyxHQUFHLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUN2RDtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQU5ELHNEQU1DO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxRQUFnQjtJQUNuRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5QyxJQUFJO1FBQ0YsT0FBTyxPQUFPLENBQUMsbUJBQW1CLFFBQVEsT0FBTyxDQUFDLENBQUM7S0FDcEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDSCxDQUFDO0FBUEQsb0RBT0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFFBQWdCLEVBQUUsWUFBb0I7SUFDMUUsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksUUFBUSxxQkFBcUIsWUFBWSxFQUFFLENBQUMsQ0FBQztLQUMx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Q0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDaEYsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pGLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEI7S0FDRjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWJELGdFQWFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FBQyxhQUE0QztJQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQ2hDLEtBQUssTUFBTSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ3hGLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6RixHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3hCO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFURCxnRUFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcbmltcG9ydCBzY2hlbWEgPSByZXF1aXJlKCcuL3NjaGVtYScpO1xuZXhwb3J0IHsgc2NoZW1hIH07XG5cbi8qKlxuICogVGhlIGNvbXBsZXRlIEFXUyBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZSBzcGVjaWZpY2F0aW9uLCBoYXZpbmcgYW55IENESyBwYXRjaGVzIGFuZCBlbmhhbmNlbWVudHMgaW5jbHVkZWQgaW4gaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGVjaWZpY2F0aW9uKCk6IHNjaGVtYS5TcGVjaWZpY2F0aW9uIHtcbiAgcmV0dXJuIHJlcXVpcmUoJy4uL3NwZWMvc3BlY2lmaWNhdGlvbi5qc29uJyk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvdXJjZSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gdHlwZW5hbWVcbiAqXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgcmVzb3VyY2UgZXhpc3RzLiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGlzIHZhbGlkYXRpbmcgYmVoYXZpb3IsIHJlYWQgZnJvbVxuICogc3BlY2lmaWNhdGlvbigpIGRpcmVjdGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VTcGVjaWZpY2F0aW9uKHR5cGVOYW1lOiBzdHJpbmcpOiBzY2hlbWEuUmVzb3VyY2VUeXBlIHtcbiAgY29uc3QgcmV0ID0gc3BlY2lmaWNhdGlvbigpLlJlc291cmNlVHlwZXNbdHlwZU5hbWVdO1xuICBpZiAoIXJldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCByZXNvdXJjZSB0eXBlOiAke3R5cGVOYW1lfWApO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSByZXNvdXJjZSBhdWdtZW50YXRpb25zIGZvciBhIGdpdmVuIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlQXVnbWVudGF0aW9uKHR5cGVOYW1lOiBzdHJpbmcpOiBzY2hlbWEuUmVzb3VyY2VBdWdtZW50YXRpb24ge1xuICBjb25zdCBmaWxlTmFtZSA9IHR5cGVOYW1lLnJlcGxhY2UoLzo6L2csICdfJyk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoYC4vYXVnbWVudGF0aW9ucy8ke2ZpbGVOYW1lfS5qc29uYCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByb3BlcnR5IHNwZWNpZmljYXRpb24gZm9yIHRoZSBnaXZlbiByZXNvdXJjZSdzIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eVNwZWNpZmljYXRpb24odHlwZU5hbWU6IHN0cmluZywgcHJvcGVydHlOYW1lOiBzdHJpbmcpOiBzY2hlbWEuUHJvcGVydHkge1xuICBjb25zdCByZXQgPSByZXNvdXJjZVNwZWNpZmljYXRpb24odHlwZU5hbWUpLlByb3BlcnRpZXMhW3Byb3BlcnR5TmFtZV07XG4gIGlmICghcmV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZXNvdXJjZSAke3R5cGVOYW1lfSBoYXMgbm8gcHJvcGVydHk6ICR7cHJvcGVydHlOYW1lfWApO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgcmVzb3VyY2UgdHlwZSBuYW1lcyBkZWZpbmVkIGluIHRoZSBgYHNwZWNpZmljYXRpb25gYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlVHlwZXMoKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhzcGVjaWZpY2F0aW9uKCkuUmVzb3VyY2VUeXBlcyk7XG59XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgbmFtZXNwYWNlcyBkZWZpbmVkIGluIHRoZSBgYHNwZWNpZmljYXRpb25gYCwgdGhhdCBpcyByZXNvdXJjZSBuYW1lIHByZWZpeGVzIGRvd24gdG8gdGhlIHNlY29uZCBgYDo6YGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuYW1lc3BhY2VzKCkge1xuICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KHJlc291cmNlVHlwZXMoKS5tYXAobiA9PiBuLnNwbGl0KCc6OicsIDIpLmpvaW4oJzo6JykpKSk7XG59XG5cbi8qKlxuICogT2J0YWluIGEgZmlsdGVyZWQgdmVyc2lvbiBvZiB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIHNwZWNpZmljYXRpb24uXG4gKlxuICogQHBhcmFtIGZpbHRlciB0aGUgcHJlZGljYXRlIHRvIGJlIHVzZWQgaW4gb3JkZXIgdG8gZmlsdGVyIHdoaWNoIHJlc291cmNlIHR5cGVzIGZyb20gdGhlIGBgU3BlY2lmaWNhdGlvbmBgIHRvIGV4dHJhY3QuXG4gKiAgICAgICAgIFdoZW4gcGFzc2VkIGFzIGEgYGBzdHJpbmdgYCwgb25seSB0aGUgc3BlY2lmaWVkIHJlc291cmNlIHR5cGUgd2lsbCBiZSBleHRyYWN0ZWQuIFdoZW4gcGFzc2VkIGFzIGFcbiAqICAgICAgICAgYGBSZWdFeHBgYCwgYWxsIG1hdGNoaW5nIHJlc291cmNlIHR5cGVzIHdpbGwgYmUgZXh0cmFjdGVkLiBXaGVuIHBhc3NlZCBhcyBhIGBgZnVuY3Rpb25gYCwgYWxsIHJlc291cmNlXG4gKiAgICAgICAgIHR5cGVzIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gcmV0dXJuZWQgYGB0cnVlYGAgd2lsbCBiZSBleHRyYWN0ZWQuXG4gKlxuICogQHJldHVybiBhIGNvaGVyZW50IHN1Yi1zZXQgb2YgdGhlIEFXUyBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZSBzcGVjaWZpY2F0aW9uLCBpbmNsdWRpbmcgYWxsIHByb3BlcnR5IHR5cGVzIHJlbGF0ZWRcbiAqICAgICB0byB0aGUgc2VsZWN0ZWQgcmVzb3VyY2UgdHlwZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJlZFNwZWNpZmljYXRpb24oZmlsdGVyOiBzdHJpbmcgfCBSZWdFeHAgfCBGaWx0ZXIpOiBzY2hlbWEuU3BlY2lmaWNhdGlvbiB7XG4gIGNvbnN0IHNwZWMgPSBzcGVjaWZpY2F0aW9uKCk7XG5cbiAgY29uc3QgcmVzdWx0OiBzY2hlbWEuU3BlY2lmaWNhdGlvbiA9IHsgUmVzb3VyY2VUeXBlczoge30sIFByb3BlcnR5VHlwZXM6IHt9LCBGaW5nZXJwcmludDogc3BlYy5GaW5nZXJwcmludCB9O1xuICBjb25zdCBwcmVkaWNhdGU6IEZpbHRlciA9IG1ha2VQcmVkaWNhdGUoZmlsdGVyKTtcbiAgZm9yIChjb25zdCB0eXBlIG9mIHJlc291cmNlVHlwZXMoKSkge1xuICAgIGlmICghcHJlZGljYXRlKHR5cGUpKSB7IGNvbnRpbnVlOyB9XG4gICAgcmVzdWx0LlJlc291cmNlVHlwZXNbdHlwZV0gPSBzcGVjLlJlc291cmNlVHlwZXNbdHlwZV07XG4gICAgY29uc3QgcHJlZml4ID0gYCR7dHlwZX0uYDtcbiAgICBmb3IgKGNvbnN0IHByb3BUeXBlIG9mIE9iamVjdC5rZXlzKHNwZWMuUHJvcGVydHlUeXBlcyEpLmZpbHRlcihuID0+IG4uc3RhcnRzV2l0aChwcmVmaXgpKSkge1xuICAgICAgcmVzdWx0LlByb3BlcnR5VHlwZXNbcHJvcFR5cGVdID0gc3BlYy5Qcm9wZXJ0eVR5cGVzIVtwcm9wVHlwZV07XG4gICAgfVxuICB9XG4gIHJlc3VsdC5GaW5nZXJwcmludCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSkuZGlnZXN0KCdiYXNlNjQnKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyID0gKG5hbWU6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcHJlZGljYXRlIGZ1bmN0aW9uIGZyb20gYSBnaXZlbiBmaWx0ZXIuXG4gKlxuICogQHBhcmFtIGZpbHRlciB3aGVuIHByb3ZpZGVkIGFzIGEgYGBzdHJpbmdgYCwgcGVyZm9ybXMgYW4gZXhhY3QgbWF0Y2ggY29tcGFyaXNvbi5cbiAqICAgICAgICAgd2hlbiBwcm92aWRlZCBhcyBhIGBgUmVnRXhwYGAsIHBlcmZvcm1zIHVzZXMgYGBzdHIubWF0Y2goUmVnRXhwKWBgLlxuICogICAgICAgICB3aGVuIHByb3ZpZGVkIGFzIGEgYGBmdW5jdGlvbmBgLCB1c2UgdGhlIGZ1bmN0aW9uIGFzLWlzLlxuICpcbiAqIEByZXR1cm5zIGEgcHJlZGljYXRlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBtYWtlUHJlZGljYXRlKGZpbHRlcjogc3RyaW5nIHwgUmVnRXhwIHwgRmlsdGVyKTogRmlsdGVyIHtcbiAgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHMgPT4gcyA9PT0gZmlsdGVyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZmlsdGVyIGFzIEZpbHRlcjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcyA9PiBzLm1hdGNoKGZpbHRlcikgIT0gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcHJvcGVydGllcyBvZiB0aGUgZ2l2ZW4gdHlwZSB0aGF0IHJlcXVpcmUgdGhlIGdpdmVuIHNjcnV0aW55IHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcnV0aW5pemFibGVQcm9wZXJ0eU5hbWVzKHJlc291cmNlVHlwZTogc3RyaW5nLCBzY3J1dGlueVR5cGVzOiBzY2hlbWEuUHJvcGVydHlTY3J1dGlueVR5cGVbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgaW1wbCA9IHNwZWNpZmljYXRpb24oKS5SZXNvdXJjZVR5cGVzW3Jlc291cmNlVHlwZV07XG4gIGlmICghaW1wbCkgeyByZXR1cm4gW107IH1cblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgcHJvcGVydHlTcGVjXSBvZiBPYmplY3QuZW50cmllcyhpbXBsLlByb3BlcnRpZXMgfHwge30pKSB7XG4gICAgaWYgKHNjcnV0aW55VHlwZXMuaW5jbHVkZXMocHJvcGVydHlTcGVjLlNjcnV0aW55VHlwZSB8fCBzY2hlbWEuUHJvcGVydHlTY3J1dGlueVR5cGUuTm9uZSkpIHtcbiAgICAgIHJldC5wdXNoKHByb3BlcnR5TmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIG5hbWVzIG9mIHRoZSByZXNvdXJjZSB0eXBlcyB0aGF0IG5lZWQgdG8gYmUgc3ViamVjdGVkIHRvIGFkZGl0aW9uYWwgc2NydXRpbnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcnV0aW5pemFibGVSZXNvdXJjZVR5cGVzKHNjcnV0aW55VHlwZXM6IHNjaGVtYS5SZXNvdXJjZVNjcnV0aW55VHlwZVtdKTogc3RyaW5nW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IFtyZXNvdXJjZVR5cGUsIHJlc291cmNlU3BlY10gb2YgT2JqZWN0LmVudHJpZXMoc3BlY2lmaWNhdGlvbigpLlJlc291cmNlVHlwZXMpKSB7XG4gICAgaWYgKHNjcnV0aW55VHlwZXMuaW5jbHVkZXMocmVzb3VyY2VTcGVjLlNjcnV0aW55VHlwZSB8fCBzY2hlbWEuUmVzb3VyY2VTY3J1dGlueVR5cGUuTm9uZSkpIHtcbiAgICAgIHJldC5wdXNoKHJlc291cmNlVHlwZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFpQztBQUNqQyxtQ0FBbUM7QUFDMUIsd0JBQU07QUFFZjs7R0FFRztBQUNILFNBQWdCLGFBQWE7SUFDM0IsaUVBQWlFO0lBQ2pFLE9BQU8sT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUhELHNDQUdDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxRQUFnQjtJQUNwRCxNQUFNLEdBQUcsR0FBRyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDdkQ7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFORCxzREFNQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsUUFBZ0I7SUFDbkQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUMsSUFBSTtRQUNGLGlFQUFpRTtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxtQkFBbUIsUUFBUSxPQUFPLENBQUMsQ0FBQztLQUNwRDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFSRCxvREFRQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0IsRUFBRSxZQUFvQjtJQUMxRSxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxRQUFRLHFCQUFxQixZQUFZLEVBQUUsQ0FBQyxDQUFDO0tBQzFFO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTkQsc0RBTUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWE7SUFDM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFGRCxzQ0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUM7QUFGRCxnQ0FFQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxNQUFnQztJQUNwRSxNQUFNLElBQUksR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUU3QixNQUFNLE1BQU0sR0FBeUIsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3RyxNQUFNLFNBQVMsR0FBVyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxhQUFhLEVBQUUsRUFBRTtRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQUUsU0FBUztTQUFFO1FBQ25DLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxNQUFNLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDO1FBQzFCLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQ3pGLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoRTtLQUNGO0lBQ0QsTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pHLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFmRCxzREFlQztBQUlEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxhQUFhLENBQUMsTUFBZ0M7SUFDckQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDOUIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7S0FDMUI7U0FBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRTtRQUN2QyxPQUFPLE1BQWdCLENBQUM7S0FDekI7U0FBTTtRQUNMLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQztLQUNyQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLFlBQW9CLEVBQUUsYUFBNEM7SUFDM0csTUFBTSxJQUFJLEdBQUcsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELElBQUksQ0FBQyxJQUFJLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztLQUFFO0lBRXpCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFFaEMsS0FBSyxNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUNoRixJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekYsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN4QjtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBYkQsZ0VBYUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLGFBQTRDO0lBQ3JGLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFDaEMsS0FBSyxNQUFNLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDeEYsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pGLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEI7S0FDRjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQVRELGdFQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBzY2hlbWEgZnJvbSAnLi9zY2hlbWEnO1xuZXhwb3J0IHsgc2NoZW1hIH07XG5cbi8qKlxuICogVGhlIGNvbXBsZXRlIEFXUyBDbG91ZEZvcm1hdGlvbiBSZXNvdXJjZSBzcGVjaWZpY2F0aW9uLCBoYXZpbmcgYW55IENESyBwYXRjaGVzIGFuZCBlbmhhbmNlbWVudHMgaW5jbHVkZWQgaW4gaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGVjaWZpY2F0aW9uKCk6IHNjaGVtYS5TcGVjaWZpY2F0aW9uIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgcmV0dXJuIHJlcXVpcmUoJy4uL3NwZWMvc3BlY2lmaWNhdGlvbi5qc29uJyk7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvdXJjZSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gdHlwZW5hbWVcbiAqXG4gKiBWYWxpZGF0ZXMgdGhhdCB0aGUgcmVzb3VyY2UgZXhpc3RzLiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGlzIHZhbGlkYXRpbmcgYmVoYXZpb3IsIHJlYWQgZnJvbVxuICogc3BlY2lmaWNhdGlvbigpIGRpcmVjdGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VTcGVjaWZpY2F0aW9uKHR5cGVOYW1lOiBzdHJpbmcpOiBzY2hlbWEuUmVzb3VyY2VUeXBlIHtcbiAgY29uc3QgcmV0ID0gc3BlY2lmaWNhdGlvbigpLlJlc291cmNlVHlwZXNbdHlwZU5hbWVdO1xuICBpZiAoIXJldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCByZXNvdXJjZSB0eXBlOiAke3R5cGVOYW1lfWApO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSByZXNvdXJjZSBhdWdtZW50YXRpb25zIGZvciBhIGdpdmVuIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc291cmNlQXVnbWVudGF0aW9uKHR5cGVOYW1lOiBzdHJpbmcpOiBzY2hlbWEuUmVzb3VyY2VBdWdtZW50YXRpb24ge1xuICBjb25zdCBmaWxlTmFtZSA9IHR5cGVOYW1lLnJlcGxhY2UoLzo6L2csICdfJyk7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICByZXR1cm4gcmVxdWlyZShgLi9hdWdtZW50YXRpb25zLyR7ZmlsZU5hbWV9Lmpzb25gKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcHJvcGVydHkgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHJlc291cmNlJ3MgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5U3BlY2lmaWNhdGlvbih0eXBlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IHNjaGVtYS5Qcm9wZXJ0eSB7XG4gIGNvbnN0IHJldCA9IHJlc291cmNlU3BlY2lmaWNhdGlvbih0eXBlTmFtZSkuUHJvcGVydGllcyFbcHJvcGVydHlOYW1lXTtcbiAgaWYgKCFyZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlc291cmNlICR7dHlwZU5hbWV9IGhhcyBubyBwcm9wZXJ0eTogJHtwcm9wZXJ0eU5hbWV9YCk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBUaGUgbGlzdCBvZiByZXNvdXJjZSB0eXBlIG5hbWVzIGRlZmluZWQgaW4gdGhlIGBgc3BlY2lmaWNhdGlvbmBgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb3VyY2VUeXBlcygpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHNwZWNpZmljYXRpb24oKS5SZXNvdXJjZVR5cGVzKTtcbn1cblxuLyoqXG4gKiBUaGUgbGlzdCBvZiBuYW1lc3BhY2VzIGRlZmluZWQgaW4gdGhlIGBgc3BlY2lmaWNhdGlvbmBgLCB0aGF0IGlzIHJlc291cmNlIG5hbWUgcHJlZml4ZXMgZG93biB0byB0aGUgc2Vjb25kIGBgOjpgYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVzcGFjZXMoKSB7XG4gIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQocmVzb3VyY2VUeXBlcygpLm1hcChuID0+IG4uc3BsaXQoJzo6JywgMikuam9pbignOjonKSkpKTtcbn1cblxuLyoqXG4gKiBPYnRhaW4gYSBmaWx0ZXJlZCB2ZXJzaW9uIG9mIHRoZSBBV1MgQ2xvdWRGb3JtYXRpb24gc3BlY2lmaWNhdGlvbi5cbiAqXG4gKiBAcGFyYW0gZmlsdGVyIHRoZSBwcmVkaWNhdGUgdG8gYmUgdXNlZCBpbiBvcmRlciB0byBmaWx0ZXIgd2hpY2ggcmVzb3VyY2UgdHlwZXMgZnJvbSB0aGUgYGBTcGVjaWZpY2F0aW9uYGAgdG8gZXh0cmFjdC5cbiAqICAgICAgICAgV2hlbiBwYXNzZWQgYXMgYSBgYHN0cmluZ2BgLCBvbmx5IHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgdHlwZSB3aWxsIGJlIGV4dHJhY3RlZC4gV2hlbiBwYXNzZWQgYXMgYVxuICogICAgICAgICBgYFJlZ0V4cGBgLCBhbGwgbWF0Y2hpbmcgcmVzb3VyY2UgdHlwZXMgd2lsbCBiZSBleHRyYWN0ZWQuIFdoZW4gcGFzc2VkIGFzIGEgYGBmdW5jdGlvbmBgLCBhbGwgcmVzb3VyY2VcbiAqICAgICAgICAgdHlwZXMgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiByZXR1cm5lZCBgYHRydWVgYCB3aWxsIGJlIGV4dHJhY3RlZC5cbiAqXG4gKiBAcmV0dXJuIGEgY29oZXJlbnQgc3ViLXNldCBvZiB0aGUgQVdTIENsb3VkRm9ybWF0aW9uIFJlc291cmNlIHNwZWNpZmljYXRpb24sIGluY2x1ZGluZyBhbGwgcHJvcGVydHkgdHlwZXMgcmVsYXRlZFxuICogICAgIHRvIHRoZSBzZWxlY3RlZCByZXNvdXJjZSB0eXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcmVkU3BlY2lmaWNhdGlvbihmaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cCB8IEZpbHRlcik6IHNjaGVtYS5TcGVjaWZpY2F0aW9uIHtcbiAgY29uc3Qgc3BlYyA9IHNwZWNpZmljYXRpb24oKTtcblxuICBjb25zdCByZXN1bHQ6IHNjaGVtYS5TcGVjaWZpY2F0aW9uID0geyBSZXNvdXJjZVR5cGVzOiB7fSwgUHJvcGVydHlUeXBlczoge30sIEZpbmdlcnByaW50OiBzcGVjLkZpbmdlcnByaW50IH07XG4gIGNvbnN0IHByZWRpY2F0ZTogRmlsdGVyID0gbWFrZVByZWRpY2F0ZShmaWx0ZXIpO1xuICBmb3IgKGNvbnN0IHR5cGUgb2YgcmVzb3VyY2VUeXBlcygpKSB7XG4gICAgaWYgKCFwcmVkaWNhdGUodHlwZSkpIHsgY29udGludWU7IH1cbiAgICByZXN1bHQuUmVzb3VyY2VUeXBlc1t0eXBlXSA9IHNwZWMuUmVzb3VyY2VUeXBlc1t0eXBlXTtcbiAgICBjb25zdCBwcmVmaXggPSBgJHt0eXBlfS5gO1xuICAgIGZvciAoY29uc3QgcHJvcFR5cGUgb2YgT2JqZWN0LmtleXMoc3BlYy5Qcm9wZXJ0eVR5cGVzISkuZmlsdGVyKG4gPT4gbi5zdGFydHNXaXRoKHByZWZpeCkpKSB7XG4gICAgICByZXN1bHQuUHJvcGVydHlUeXBlc1twcm9wVHlwZV0gPSBzcGVjLlByb3BlcnR5VHlwZXMhW3Byb3BUeXBlXTtcbiAgICB9XG4gIH1cbiAgcmVzdWx0LkZpbmdlcnByaW50ID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShKU09OLnN0cmluZ2lmeShyZXN1bHQpKS5kaWdlc3QoJ2Jhc2U2NCcpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgdHlwZSBGaWx0ZXIgPSAobmFtZTogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBwcmVkaWNhdGUgZnVuY3Rpb24gZnJvbSBhIGdpdmVuIGZpbHRlci5cbiAqXG4gKiBAcGFyYW0gZmlsdGVyIHdoZW4gcHJvdmlkZWQgYXMgYSBgYHN0cmluZ2BgLCBwZXJmb3JtcyBhbiBleGFjdCBtYXRjaCBjb21wYXJpc29uLlxuICogICAgICAgICB3aGVuIHByb3ZpZGVkIGFzIGEgYGBSZWdFeHBgYCwgcGVyZm9ybXMgdXNlcyBgYHN0ci5tYXRjaChSZWdFeHApYGAuXG4gKiAgICAgICAgIHdoZW4gcHJvdmlkZWQgYXMgYSBgYGZ1bmN0aW9uYGAsIHVzZSB0aGUgZnVuY3Rpb24gYXMtaXMuXG4gKlxuICogQHJldHVybnMgYSBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG1ha2VQcmVkaWNhdGUoZmlsdGVyOiBzdHJpbmcgfCBSZWdFeHAgfCBGaWx0ZXIpOiBGaWx0ZXIge1xuICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcyA9PiBzID09PSBmaWx0ZXI7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBmaWx0ZXIgYXMgRmlsdGVyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzID0+IHMubWF0Y2goZmlsdGVyKSAhPSBudWxsO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlbiB0eXBlIHRoYXQgcmVxdWlyZSB0aGUgZ2l2ZW4gc2NydXRpbnkgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NydXRpbml6YWJsZVByb3BlcnR5TmFtZXMocmVzb3VyY2VUeXBlOiBzdHJpbmcsIHNjcnV0aW55VHlwZXM6IHNjaGVtYS5Qcm9wZXJ0eVNjcnV0aW55VHlwZVtdKTogc3RyaW5nW10ge1xuICBjb25zdCBpbXBsID0gc3BlY2lmaWNhdGlvbigpLlJlc291cmNlVHlwZXNbcmVzb3VyY2VUeXBlXTtcbiAgaWYgKCFpbXBsKSB7IHJldHVybiBbXTsgfVxuXG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCBwcm9wZXJ0eVNwZWNdIG9mIE9iamVjdC5lbnRyaWVzKGltcGwuUHJvcGVydGllcyB8fCB7fSkpIHtcbiAgICBpZiAoc2NydXRpbnlUeXBlcy5pbmNsdWRlcyhwcm9wZXJ0eVNwZWMuU2NydXRpbnlUeXBlIHx8IHNjaGVtYS5Qcm9wZXJ0eVNjcnV0aW55VHlwZS5Ob25lKSkge1xuICAgICAgcmV0LnB1c2gocHJvcGVydHlOYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgbmFtZXMgb2YgdGhlIHJlc291cmNlIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBzdWJqZWN0ZWQgdG8gYWRkaXRpb25hbCBzY3J1dGlueVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NydXRpbml6YWJsZVJlc291cmNlVHlwZXMoc2NydXRpbnlUeXBlczogc2NoZW1hLlJlc291cmNlU2NydXRpbnlUeXBlW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgW3Jlc291cmNlVHlwZSwgcmVzb3VyY2VTcGVjXSBvZiBPYmplY3QuZW50cmllcyhzcGVjaWZpY2F0aW9uKCkuUmVzb3VyY2VUeXBlcykpIHtcbiAgICBpZiAoc2NydXRpbnlUeXBlcy5pbmNsdWRlcyhyZXNvdXJjZVNwZWMuU2NydXRpbnlUeXBlIHx8IHNjaGVtYS5SZXNvdXJjZVNjcnV0aW55VHlwZS5Ob25lKSkge1xuICAgICAgcmV0LnB1c2gocmVzb3VyY2VUeXBlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuIl19

@@ -147,2 +147,8 @@ import { Documented, PrimitiveType } from './base-types';

export declare function isPropertyScrutinyType(str: string): str is PropertyScrutinyType;
declare const tagPropertyNames: {
Tags: string;
UserPoolTags: string;
};
export declare type TagPropertyName = keyof typeof tagPropertyNames;
export declare function isTagPropertyName(name?: string): name is TagPropertyName;
/**

@@ -159,1 +165,2 @@ * This function validates that the property **can** be a Tag Property

export declare function isTagPropertyStringMap(prop: Property): prop is TagPropertyStringMap;
export {};

@@ -104,2 +104,13 @@ "use strict";

exports.isPropertyScrutinyType = isPropertyScrutinyType;
const tagPropertyNames = {
Tags: "",
UserPoolTags: "",
};
function isTagPropertyName(name) {
if (undefined === name) {
return false;
}
return tagPropertyNames.hasOwnProperty(name);
}
exports.isTagPropertyName = isTagPropertyName;
/**

@@ -137,2 +148,2 @@ * This function validates that the property **can** be a Tag Property

exports.isTagPropertyStringMap = isTagPropertyStringMap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUF5RDtBQXVIekQsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUEyQixDQUFBO0lBQzNCLHFDQUF1QixDQUFBO0lBQ3ZCLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUlyQjtBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLFFBQVEsR0FBRyxFQUFFO1FBQ2IsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzVCLEtBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUMxQixLQUFLLFVBQVUsQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2Q7WUFDRSxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVRELG9DQVNDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBYztJQUM3QyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQztXQUMzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDMUIsdUVBQXVFO1dBQ3BFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsSUFBYztJQUNoRCxPQUFPLENBQUMsQ0FBRSxJQUEwQixDQUFDLGFBQWEsQ0FBQztBQUNyRCxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFjO0lBQzlDLE1BQU0sUUFBUSxHQUFJLElBQXdCLENBQUMsSUFBSSxDQUFDO0lBQ2hELE9BQU8sUUFBUSxJQUFJLElBQUksSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FB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USxDQUNwRCxDQUFDO0FBRUosQ0FBQztBQVJELHNEQVFDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQUMsSUFBYztJQUMxRCxPQUFRLElBQW9DLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQztBQUMxRSxDQUFDO0FBRkQsc0VBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFjO0lBQzlDLE9BQVEsSUFBd0IsQ0FBQyxhQUFhLEtBQUssMEJBQWEsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsSUFBYztJQUNuRCxPQUFRLElBQTZCLENBQUMsaUJBQWlCLEtBQUssUUFBUSxDQUFDO0FBQ3ZFLENBQUM7QUFGRCx3REFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50ZWQsIFByaW1pdGl2ZVR5cGUgfSBmcm9tICcuL2Jhc2UtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eSA9IFNjYWxhclByb3BlcnR5IHwgQ29sbGVjdGlvblByb3BlcnR5O1xuZXhwb3J0IHR5cGUgU2NhbGFyUHJvcGVydHkgPSBQcmltaXRpdmVQcm9wZXJ0eSB8IENvbXBsZXhQcm9wZXJ0eSB8IFVuaW9uUHJvcGVydHk7XG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uUHJvcGVydHkgPSBMaXN0UHJvcGVydHkgfCBNYXBQcm9wZXJ0eSB8IFVuaW9uUHJvcGVydHk7XG5leHBvcnQgdHlwZSBMaXN0UHJvcGVydHkgPSBQcmltaXRpdmVMaXN0UHJvcGVydHkgfCBDb21wbGV4TGlzdFByb3BlcnR5O1xuZXhwb3J0IHR5cGUgTWFwUHJvcGVydHkgPSBQcmltaXRpdmVNYXBQcm9wZXJ0eSB8IENvbXBsZXhNYXBQcm9wZXJ0eTtcbmV4cG9ydCB0eXBlIFRhZ1Byb3BlcnR5ID0gVGFnUHJvcGVydHlTdGFuZGFyZCB8IFRhZ1Byb3BlcnR5QXV0b1NjYWxpbmdHcm91cCB8IFRhZ1Byb3BlcnR5SnNvbiB8IFRhZ1Byb3BlcnR5U3RyaW5nTWFwO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5QmFzZSBleHRlbmRzIERvY3VtZW50ZWQge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgUmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRHVyaW5nIGEgc3RhY2sgdXBkYXRlLCB0aGUgdXBkYXRlIGJlaGF2aW9yIHdoZW4geW91IGFkZCwgcmVtb3ZlLCBvciBtb2RpZnkgdGhlIHByb3BlcnR5LiBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogcmVwbGFjZXMgdGhlIHJlc291cmNlIHdoZW4geW91IGNoYW5nZSBgw4xtbXV0YWJsZWBgcHJvcGVydGllcy4gQVdTIENsb3VkRm9ybWF0aW9uIGRvZXNuJ3QgcmVwbGFjZSB0aGUgcmVzb3VyY2VcbiAgICogd2hlbiB5b3UgY2hhbmdlIGBgTXV0YWJsZWBgIHByb3BlcnRpZXMuIGBgQ29uZGl0aW9uYWxgYCB1cGRhdGVzIGNhbiBiZSBtdXRhYmxlIG9yIGltbXV0YWJsZSwgZGVwZW5kaW5nIG9uLCBmb3JcbiAgICogZXhhbXBsZSwgd2hpY2ggb3RoZXIgcHJvcGVydGllcyB5b3UgdXBkYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgVXBkYXRlVHlwZS5NdXRhYmxlXG4gICAqL1xuICBVcGRhdGVUeXBlPzogVXBkYXRlVHlwZTtcblxuICAvKipcbiAgICogRHVyaW5nIGEgc3RhY2sgdXBkYXRlLCB3aGF0IGtpbmQgb2YgYWRkaXRpb25hbCBzY3J1dGlueSBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIHN1YmplY3RlZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICBTY3J1dGlueVR5cGU/OiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVQcm9wZXJ0eSBleHRlbmRzIFByb3BlcnR5QmFzZSB7XG4gIC8qKiBUaGUgdmFsaWQgcHJpbWl0aXZlIHR5cGUgZm9yIHRoZSBwcm9wZXJ0eS4gKi9cbiAgUHJpbWl0aXZlVHlwZTogUHJpbWl0aXZlVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV4UHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICAvKiogVGhlIHR5cGUgb2YgdmFsaWQgdmFsdWVzIGZvciB0aGlzIHByb3BlcnR5ICovXG4gIFR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UHJvcGVydHlCYXNlIGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBpcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHZhbHVlcy5cbiAgICovXG4gIFR5cGU6ICdMaXN0JztcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIEFXUyBDbG91ZEZvcm1hdGlvbiBhbGxvd3MgZHVwbGljYXRlIHZhbHVlcy4gSWYgdGhlIHZhbHVlIGlzIGBgdHJ1ZWBgLCBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogaWdub3JlcyBkdXBsaWNhdGUgdmFsdWVzLiBpZiB0aGUgdmFsdWUgaXMgIGBgZmFsc2VgYCwgQVdTIENsb3VkRm9ybWF0aW9uIHJldHVybnMgYW4gYXJyb3IgaWYgeW91IHN1Ym1pdCBkdXBsaWNhdGVcbiAgICogdmFsdWVzLlxuICAgKi9cbiAgRHVwbGljYXRlc0FsbG93ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaW1pdGl2ZUxpc3RQcm9wZXJ0eSBleHRlbmRzIExpc3RQcm9wZXJ0eUJhc2Uge1xuICAvKiogVGhlIHZhbGlkIHByaW1pdGl2ZSB0eXBlIGZvciB0aGUgcHJvcGVydHkuICovXG4gIFByaW1pdGl2ZUl0ZW1UeXBlOiBQcmltaXRpdmVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXhMaXN0UHJvcGVydHkgZXh0ZW5kcyBMaXN0UHJvcGVydHlCYXNlIHtcbiAgLyoqIFZhbGlkIHZhbHVlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIEl0ZW1UeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwUHJvcGVydHlCYXNlIGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqIEEgbWFwIGlzIGEgc2V0IG9mIGtleS12YWx1ZSBwYWlycywgd2hlcmUgdGhlIGtleXMgYXJlIGFsd2F5cyBzdHJpbmdzLiAqL1xuICBUeXBlOiAnTWFwJztcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIEFXUyBDbG91ZEZvcm1hdGlvbiBhbGxvd3MgZHVwbGljYXRlIHZhbHVlcy4gSWYgdGhlIHZhbHVlIGlzIGBgdHJ1ZWBgLCBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogaWdub3JlcyBkdXBsaWNhdGUgdmFsdWVzLiBpZiB0aGUgdmFsdWUgaXMgIGBgZmFsc2VgYCwgQVdTIENsb3VkRm9ybWF0aW9uIHJldHVybnMgYW4gYXJyb3IgaWYgeW91IHN1Ym1pdCBkdXBsaWNhdGVcbiAgICogdmFsdWVzLlxuICAgKi9cbiAgRHVwbGljYXRlc0FsbG93ZWQ/OiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVNYXBQcm9wZXJ0eSBleHRlbmRzIE1hcFByb3BlcnR5QmFzZSB7XG4gIC8qKiBUaGUgdmFsaWQgcHJpbWl0aXZlIHR5cGUgZm9yIHRoZSBwcm9wZXJ0eS4gKi9cbiAgUHJpbWl0aXZlSXRlbVR5cGU6IFByaW1pdGl2ZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxleE1hcFByb3BlcnR5IGV4dGVuZHMgTWFwUHJvcGVydHlCYXNlIHtcbiAgLyoqIFZhbGlkIHZhbHVlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIEl0ZW1UeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnUHJvcGVydHlTdGFuZGFyZCBleHRlbmRzIFByb3BlcnR5QmFzZSB7XG4gIEl0ZW1UeXBlOiAnVGFnJyB8ICdUYWdzRW50cnknIHwgJ1RhZ1JlZic7XG4gIFR5cGU6ICdUYWdzJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdQcm9wZXJ0eUF1dG9TY2FsaW5nR3JvdXAgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICBJdGVtVHlwZTogJ1RhZ1Byb3BlcnR5Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdQcm9wZXJ0eUpzb24gZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICBQcmltaXRpdmVUeXBlOiBQcmltaXRpdmVUeXBlLkpzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnUHJvcGVydHlTdHJpbmdNYXAgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICBQcmltaXRpdmVJdGVtVHlwZTogJ1N0cmluZyc7XG59XG5cbi8qKlxuICogQSBwcm9wZXJ0eSB0eXBlIHRoYXQgY2FuIGJlIG9uZSBvZiBzZXZlcmFsIHR5cGVzLiBDdXJyZW50bHkgdXNlZCBvbmx5IGluIFNBTS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlvblByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqIFZhbGlkIHByaW1pdGl2ZSB0eXBlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIFByaW1pdGl2ZVR5cGVzPzogUHJpbWl0aXZlVHlwZVtdO1xuICAvKiogVmFsaWQgY29tcGxleCB0eXBlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIFR5cGVzPzogc3RyaW5nW11cbiAgLyoqIFZhbGlkIHByaW1pdGl2ZSBpdGVtIHR5cGVzIGZvciB0aGlzIHByb3BlcnR5ICovXG4gIFByaW1pdGl2ZUl0ZW1UeXBlcz86IFByaW1pdGl2ZVR5cGVbXTtcbiAgLyoqIFZhbGlkIGxpc3QgaXRlbSB0eXBlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIEl0ZW1UeXBlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVcGRhdGVUeXBlIHtcbiAgQ29uZGl0aW9uYWwgPSAnQ29uZGl0aW9uYWwnLFxuICBJbW11dGFibGUgPSAnSW1tdXRhYmxlJyxcbiAgTXV0YWJsZSA9ICdNdXRhYmxlJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVcGRhdGVUeXBlKHN0cjogc3RyaW5nKTogc3RyIGlzIFVwZGF0ZVR5cGUge1xuICBzd2l0Y2ggKHN0cikge1xuICBjYXNlIFVwZGF0ZVR5cGUuQ29uZGl0aW9uYWw6XG4gIGNhc2UgVXBkYXRlVHlwZS5JbW11dGFibGU6XG4gIGNhc2UgVXBkYXRlVHlwZS5NdXRhYmxlOlxuICAgIHJldHVybiB0cnVlO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY2FsYXJQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgU2NhbGFyUHJvcGVydHkge1xuICByZXR1cm4gaXNQcmltaXRpdmVQcm9wZXJ0eShwcm9wKVxuICAgIHx8IGlzQ29tcGxleFByb3BlcnR5KHByb3ApXG4gICAgLy8gQSBVbmlvblByb3BlcnR5IGlzIG9ubHkgU2NhbGFyIGlmIGl0IGRlZmluZXMgVHlwZXMgb3IgUHJpbWl0aXZlVHlwZXNcbiAgICB8fCAoaXNVbmlvblByb3BlcnR5KHByb3ApICYmICEhKHByb3AuVHlwZXMgfHwgcHJvcC5QcmltaXRpdmVUeXBlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmVQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgUHJpbWl0aXZlUHJvcGVydHkge1xuICByZXR1cm4gISEocHJvcCBhcyBQcmltaXRpdmVQcm9wZXJ0eSkuUHJpbWl0aXZlVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcGxleFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBDb21wbGV4UHJvcGVydHkge1xuICBjb25zdCBwcm9wVHlwZSA9IChwcm9wIGFzIENvbXBsZXhQcm9wZXJ0eSkuVHlwZTtcbiAgcmV0dXJuIHByb3BUeXBlICE9IG51bGwgJiYgcHJvcFR5cGUgIT09ICdNYXAnICYmIHByb3BUeXBlICE9PSAnTGlzdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbGxlY3Rpb25Qcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgQ29sbGVjdGlvblByb3BlcnR5IHtcbiAgcmV0dXJuIGlzTGlzdFByb3BlcnR5KHByb3ApXG4gICAgfHwgaXNNYXBQcm9wZXJ0eShwcm9wKVxuICAgIC8vIEEgVW5pb25Qcm9wZXJ0eSBpcyBvbmx5IENvbGxlY3Rpb24gaWYgaXQgZGVmaW5lcyBJdGVtVHlwZXMgb3IgUHJpbWl0aXZlSXRlbVR5cGVzXG4gICAgfHwgKGlzVW5pb25Qcm9wZXJ0eShwcm9wKSAmJiAhIShwcm9wLkl0ZW1UeXBlcyB8fCBwcm9wLlByaW1pdGl2ZUl0ZW1UeXBlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaXN0UHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIExpc3RQcm9wZXJ0eSB7XG4gIHJldHVybiAocHJvcCBhcyBMaXN0UHJvcGVydHkpLlR5cGUgPT09ICdMaXN0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlTGlzdFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBQcmltaXRpdmVMaXN0UHJvcGVydHkge1xuICByZXR1cm4gaXNMaXN0UHJvcGVydHkocHJvcCkgJiYgISEocHJvcCBhcyBQcmltaXRpdmVMaXN0UHJvcGVydHkpLlByaW1pdGl2ZUl0ZW1UeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4TGlzdFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBDb21wbGV4TGlzdFByb3BlcnR5IHtcbiAgcmV0dXJuIGlzTGlzdFByb3BlcnR5KHByb3ApICYmICEhKHByb3AgYXMgQ29tcGxleExpc3RQcm9wZXJ0eSkuSXRlbVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01hcFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBNYXBQcm9wZXJ0eSB7XG4gIHJldHVybiAocHJvcCBhcyBNYXBQcm9wZXJ0eSkuVHlwZSA9PT0gJ01hcCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByaW1pdGl2ZU1hcFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBQcmltaXRpdmVNYXBQcm9wZXJ0eSB7XG4gIHJldHVybiBpc01hcFByb3BlcnR5KHByb3ApICYmICEhKHByb3AgYXMgUHJpbWl0aXZlTWFwUHJvcGVydHkpLlByaW1pdGl2ZUl0ZW1UeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4TWFwUHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIENvbXBsZXhNYXBQcm9wZXJ0eSB7XG4gIHJldHVybiBpc01hcFByb3BlcnR5KHByb3ApICYmICEhKHByb3AgYXMgQ29tcGxleE1hcFByb3BlcnR5KS5JdGVtVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5pb25Qcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgVW5pb25Qcm9wZXJ0eSB7XG4gIGNvbnN0IGNhc3RQcm9wID0gcHJvcCBhcyBVbmlvblByb3BlcnR5O1xuICByZXR1cm4gISEoY2FzdFByb3AuSXRlbVR5cGVzIHx8IGNhc3RQcm9wLlByaW1pdGl2ZVR5cGVzIHx8IGNhc3RQcm9wLlR5cGVzKTtcbn1cblxuZXhwb3J0IGVudW0gUHJvcGVydHlTY3J1dGlueVR5cGUge1xuICAvKipcbiAgICogTm8gYWRkaXRpb25hbCBzY3J1dGlueVxuICAgKi9cbiAgTm9uZSA9ICdOb25lJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IGRpcmVjdGx5IG9uIGEgcmVzb3VyY2VcbiAgICovXG4gIElubGluZVJlc291cmNlUG9saWN5ID0gJ0lubGluZVJlc291cmNlUG9saWN5JyxcblxuICAvKipcbiAgICogRWl0aGVyIGFuIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudCBvciBhIGRpY3Rpb25hcnkgb2YgcG9saWN5IGRvY3VtZW50c1xuICAgKi9cbiAgSW5saW5lSWRlbnRpdHlQb2xpY2llcyA9ICdJbmxpbmVJZGVudGl0eVBvbGljaWVzJyxcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1hbmFnZWQgcG9saWNpZXMgKG9uIGFuIGlkZW50aXR5IHJlc291cmNlKVxuICAgKi9cbiAgTWFuYWdlZFBvbGljaWVzID0gJ01hbmFnZWRQb2xpY2llcycsXG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGluZ3Jlc3MgcnVsZXMgKG9uIGEgc2VjdXJpdHkgZ3JvdXApXG4gICAqL1xuICBJbmdyZXNzUnVsZXMgPSAnSW5ncmVzc1J1bGVzJyxcblxuICAvKipcbiAgICogQSBzZXQgb2YgZWdyZXNzIHJ1bGVzIChvbiBhIHNlY3VyaXR5IGdyb3VwKVxuICAgKi9cbiAgRWdyZXNzUnVsZXMgPSAnRWdyZXNzUnVsZXMnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9wZXJ0eVNjcnV0aW55VHlwZShzdHI6IHN0cmluZyk6IHN0ciBpcyBQcm9wZXJ0eVNjcnV0aW55VHlwZSB7XG4gIHJldHVybiAoUHJvcGVydHlTY3J1dGlueVR5cGUgYXMgYW55KVtzdHJdICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiB2YWxpZGF0ZXMgdGhhdCB0aGUgcHJvcGVydHkgKipjYW4qKiBiZSBhIFRhZyBQcm9wZXJ0eVxuICpcbiAqIFRoZSBwcm9wZXJ0eSBpcyBvbmx5IGEgVGFnIGlmIHRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgVGFncywgd2hpY2ggaXNcbiAqIHZhbGlkYXRlZCB1c2luZyBgUmVzb3VyY2VUeXBlLmlzVGFnZ2FibGUocmVzb3VyY2UpYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnUHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5IHtcbiAgcmV0dXJuIChcbiAgICBpc1RhZ1Byb3BlcnR5U3RhbmRhcmQocHJvcCkgfHxcbiAgICBpc1RhZ1Byb3BlcnR5QXV0b1NjYWxpbmdHcm91cChwcm9wKSB8fFxuICAgIGlzVGFnUHJvcGVydHlKc29uKHByb3ApIHx8XG4gICAgaXNUYWdQcm9wZXJ0eVN0cmluZ01hcChwcm9wKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eVN0YW5kYXJkKHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBUYWdQcm9wZXJ0eVN0YW5kYXJkIHtcbiAgcmV0dXJuIChcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5JdGVtVHlwZSA9PT0gJ1RhZycgfHxcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5JdGVtVHlwZSA9PT0gJ1RhZ3NFbnRyeScgfHxcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5UeXBlID09PSAnVGFncycgfHxcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5JdGVtVHlwZSA9PT0gJ1RhZ1JlZidcbiAgKTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eUF1dG9TY2FsaW5nR3JvdXAocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5QXV0b1NjYWxpbmdHcm91cCB7XG4gIHJldHVybiAocHJvcCBhcyBUYWdQcm9wZXJ0eUF1dG9TY2FsaW5nR3JvdXApLkl0ZW1UeXBlID09PSAnVGFnUHJvcGVydHknO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eUpzb24ocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5SnNvbiB7XG4gIHJldHVybiAocHJvcCBhcyBUYWdQcm9wZXJ0eUpzb24pLlByaW1pdGl2ZVR5cGUgPT09IFByaW1pdGl2ZVR5cGUuSnNvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnUHJvcGVydHlTdHJpbmdNYXAocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5U3RyaW5nTWFwIHtcbiAgcmV0dXJuIChwcm9wIGFzIFRhZ1Byb3BlcnR5U3RyaW5nTWFwKS5QcmltaXRpdmVJdGVtVHlwZSA9PT0gJ1N0cmluZyc7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUF5RDtBQXVIekQsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHlDQUEyQixDQUFBO0lBQzNCLHFDQUF1QixDQUFBO0lBQ3ZCLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUlyQjtBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLFFBQVEsR0FBRyxFQUFFO1FBQ2IsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzVCLEtBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUMxQixLQUFLLFVBQVUsQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2Q7WUFDRSxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVRELG9DQVNDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBYztJQUM3QyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQztXQUMzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDMUIsdUVBQXVFO1dBQ3BFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsSUFBYztJQUNoRCxPQUFPLENBQUMsQ0FBRSxJQUEwQixDQUFDLGFBQWEsQ0FBQztBQUNyRCxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFjO0lBQzlDLE1BQU0sUUFBUSxHQUFJLElBQXdCLENBQUMsSUFBSSxDQUFDO0lBQ2hELE9BQU8sUUFBUSxJQUFJLElBQUksSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FB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QUFDO1FBQ3ZCLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUM3QixDQUFDO0FBQ0osQ0FBQztBQVBELHNDQU9DO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsSUFBYztJQUNsRCxPQUFPLENBQ0osSUFBNEIsQ0FBQyxRQUFRLEtBQUssS0FBSztRQUMvQyxJQUE0QixDQUFDLFFBQVEsS0FBSyxXQUFXO1FBQ3JELElBQTRCLENBQUMsSUFBSSxLQUFLLE1BQU07UUFDNUMsSUFBNEIsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUNwRCxDQUFDO0FBRUosQ0FBQztBQVJELHNEQVFDO0FBRUQsU0FBZ0IsNkJBQTZCLENBQUMsSUFBYztJQUMxRCxPQUFRLElBQW9DLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQztBQUMxRSxDQUFDO0FBRkQsc0VBRUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFjO0lBQzlDLE9BQVEsSUFBd0IsQ0FBQyxhQUFhLEtBQUssMEJBQWEsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsSUFBYztJQUNuRCxPQUFRLElBQTZCLENBQUMsaUJBQWlCLEtBQUssUUFBUSxDQUFDO0FBQ3ZFLENBQUM7QUFGRCx3REFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50ZWQsIFByaW1pdGl2ZVR5cGUgfSBmcm9tICcuL2Jhc2UtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBQcm9wZXJ0eSA9IFNjYWxhclByb3BlcnR5IHwgQ29sbGVjdGlvblByb3BlcnR5O1xuZXhwb3J0IHR5cGUgU2NhbGFyUHJvcGVydHkgPSBQcmltaXRpdmVQcm9wZXJ0eSB8IENvbXBsZXhQcm9wZXJ0eSB8IFVuaW9uUHJvcGVydHk7XG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uUHJvcGVydHkgPSBMaXN0UHJvcGVydHkgfCBNYXBQcm9wZXJ0eSB8IFVuaW9uUHJvcGVydHk7XG5leHBvcnQgdHlwZSBMaXN0UHJvcGVydHkgPSBQcmltaXRpdmVMaXN0UHJvcGVydHkgfCBDb21wbGV4TGlzdFByb3BlcnR5O1xuZXhwb3J0IHR5cGUgTWFwUHJvcGVydHkgPSBQcmltaXRpdmVNYXBQcm9wZXJ0eSB8IENvbXBsZXhNYXBQcm9wZXJ0eTtcbmV4cG9ydCB0eXBlIFRhZ1Byb3BlcnR5ID0gVGFnUHJvcGVydHlTdGFuZGFyZCB8IFRhZ1Byb3BlcnR5QXV0b1NjYWxpbmdHcm91cCB8IFRhZ1Byb3BlcnR5SnNvbiB8IFRhZ1Byb3BlcnR5U3RyaW5nTWFwO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5QmFzZSBleHRlbmRzIERvY3VtZW50ZWQge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgUmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogRHVyaW5nIGEgc3RhY2sgdXBkYXRlLCB0aGUgdXBkYXRlIGJlaGF2aW9yIHdoZW4geW91IGFkZCwgcmVtb3ZlLCBvciBtb2RpZnkgdGhlIHByb3BlcnR5LiBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogcmVwbGFjZXMgdGhlIHJlc291cmNlIHdoZW4geW91IGNoYW5nZSBgw4xtbXV0YWJsZWBgcHJvcGVydGllcy4gQVdTIENsb3VkRm9ybWF0aW9uIGRvZXNuJ3QgcmVwbGFjZSB0aGUgcmVzb3VyY2VcbiAgICogd2hlbiB5b3UgY2hhbmdlIGBgTXV0YWJsZWBgIHByb3BlcnRpZXMuIGBgQ29uZGl0aW9uYWxgYCB1cGRhdGVzIGNhbiBiZSBtdXRhYmxlIG9yIGltbXV0YWJsZSwgZGVwZW5kaW5nIG9uLCBmb3JcbiAgICogZXhhbXBsZSwgd2hpY2ggb3RoZXIgcHJvcGVydGllcyB5b3UgdXBkYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgVXBkYXRlVHlwZS5NdXRhYmxlXG4gICAqL1xuICBVcGRhdGVUeXBlPzogVXBkYXRlVHlwZTtcblxuICAvKipcbiAgICogRHVyaW5nIGEgc3RhY2sgdXBkYXRlLCB3aGF0IGtpbmQgb2YgYWRkaXRpb25hbCBzY3J1dGlueSBjaGFuZ2VzIHRvIHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIHN1YmplY3RlZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICBTY3J1dGlueVR5cGU/OiBQcm9wZXJ0eVNjcnV0aW55VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVQcm9wZXJ0eSBleHRlbmRzIFByb3BlcnR5QmFzZSB7XG4gIC8qKiBUaGUgdmFsaWQgcHJpbWl0aXZlIHR5cGUgZm9yIHRoZSBwcm9wZXJ0eS4gKi9cbiAgUHJpbWl0aXZlVHlwZTogUHJpbWl0aXZlVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV4UHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICAvKiogVGhlIHR5cGUgb2YgdmFsaWQgdmFsdWVzIGZvciB0aGlzIHByb3BlcnR5ICovXG4gIFR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UHJvcGVydHlCYXNlIGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBpcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHZhbHVlcy5cbiAgICovXG4gIFR5cGU6ICdMaXN0JztcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIEFXUyBDbG91ZEZvcm1hdGlvbiBhbGxvd3MgZHVwbGljYXRlIHZhbHVlcy4gSWYgdGhlIHZhbHVlIGlzIGBgdHJ1ZWBgLCBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogaWdub3JlcyBkdXBsaWNhdGUgdmFsdWVzLiBpZiB0aGUgdmFsdWUgaXMgIGBgZmFsc2VgYCwgQVdTIENsb3VkRm9ybWF0aW9uIHJldHVybnMgYW4gYXJyb3IgaWYgeW91IHN1Ym1pdCBkdXBsaWNhdGVcbiAgICogdmFsdWVzLlxuICAgKi9cbiAgRHVwbGljYXRlc0FsbG93ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaW1pdGl2ZUxpc3RQcm9wZXJ0eSBleHRlbmRzIExpc3RQcm9wZXJ0eUJhc2Uge1xuICAvKiogVGhlIHZhbGlkIHByaW1pdGl2ZSB0eXBlIGZvciB0aGUgcHJvcGVydHkuICovXG4gIFByaW1pdGl2ZUl0ZW1UeXBlOiBQcmltaXRpdmVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXhMaXN0UHJvcGVydHkgZXh0ZW5kcyBMaXN0UHJvcGVydHlCYXNlIHtcbiAgLyoqIFZhbGlkIHZhbHVlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIEl0ZW1UeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwUHJvcGVydHlCYXNlIGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqIEEgbWFwIGlzIGEgc2V0IG9mIGtleS12YWx1ZSBwYWlycywgd2hlcmUgdGhlIGtleXMgYXJlIGFsd2F5cyBzdHJpbmdzLiAqL1xuICBUeXBlOiAnTWFwJztcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIEFXUyBDbG91ZEZvcm1hdGlvbiBhbGxvd3MgZHVwbGljYXRlIHZhbHVlcy4gSWYgdGhlIHZhbHVlIGlzIGBgdHJ1ZWBgLCBBV1MgQ2xvdWRGb3JtYXRpb25cbiAgICogaWdub3JlcyBkdXBsaWNhdGUgdmFsdWVzLiBpZiB0aGUgdmFsdWUgaXMgIGBgZmFsc2VgYCwgQVdTIENsb3VkRm9ybWF0aW9uIHJldHVybnMgYW4gYXJyb3IgaWYgeW91IHN1Ym1pdCBkdXBsaWNhdGVcbiAgICogdmFsdWVzLlxuICAgKi9cbiAgRHVwbGljYXRlc0FsbG93ZWQ/OiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVNYXBQcm9wZXJ0eSBleHRlbmRzIE1hcFByb3BlcnR5QmFzZSB7XG4gIC8qKiBUaGUgdmFsaWQgcHJpbWl0aXZlIHR5cGUgZm9yIHRoZSBwcm9wZXJ0eS4gKi9cbiAgUHJpbWl0aXZlSXRlbVR5cGU6IFByaW1pdGl2ZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxleE1hcFByb3BlcnR5IGV4dGVuZHMgTWFwUHJvcGVydHlCYXNlIHtcbiAgLyoqIFZhbGlkIHZhbHVlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIEl0ZW1UeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnUHJvcGVydHlTdGFuZGFyZCBleHRlbmRzIFByb3BlcnR5QmFzZSB7XG4gIEl0ZW1UeXBlOiAnVGFnJyB8ICdUYWdzRW50cnknIHwgJ1RhZ1JlZic7XG4gIFR5cGU6ICdUYWdzJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdQcm9wZXJ0eUF1dG9TY2FsaW5nR3JvdXAgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICBJdGVtVHlwZTogJ1RhZ1Byb3BlcnR5Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdQcm9wZXJ0eUpzb24gZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICBQcmltaXRpdmVUeXBlOiBQcmltaXRpdmVUeXBlLkpzb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnUHJvcGVydHlTdHJpbmdNYXAgZXh0ZW5kcyBQcm9wZXJ0eUJhc2Uge1xuICBQcmltaXRpdmVJdGVtVHlwZTogJ1N0cmluZyc7XG59XG5cbi8qKlxuICogQSBwcm9wZXJ0eSB0eXBlIHRoYXQgY2FuIGJlIG9uZSBvZiBzZXZlcmFsIHR5cGVzLiBDdXJyZW50bHkgdXNlZCBvbmx5IGluIFNBTS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlvblByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHlCYXNlIHtcbiAgLyoqIFZhbGlkIHByaW1pdGl2ZSB0eXBlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIFByaW1pdGl2ZVR5cGVzPzogUHJpbWl0aXZlVHlwZVtdO1xuICAvKiogVmFsaWQgY29tcGxleCB0eXBlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIFR5cGVzPzogc3RyaW5nW11cbiAgLyoqIFZhbGlkIHByaW1pdGl2ZSBpdGVtIHR5cGVzIGZvciB0aGlzIHByb3BlcnR5ICovXG4gIFByaW1pdGl2ZUl0ZW1UeXBlcz86IFByaW1pdGl2ZVR5cGVbXTtcbiAgLyoqIFZhbGlkIGxpc3QgaXRlbSB0eXBlcyBmb3IgdGhlIHByb3BlcnR5ICovXG4gIEl0ZW1UeXBlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBVcGRhdGVUeXBlIHtcbiAgQ29uZGl0aW9uYWwgPSAnQ29uZGl0aW9uYWwnLFxuICBJbW11dGFibGUgPSAnSW1tdXRhYmxlJyxcbiAgTXV0YWJsZSA9ICdNdXRhYmxlJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVcGRhdGVUeXBlKHN0cjogc3RyaW5nKTogc3RyIGlzIFVwZGF0ZVR5cGUge1xuICBzd2l0Y2ggKHN0cikge1xuICBjYXNlIFVwZGF0ZVR5cGUuQ29uZGl0aW9uYWw6XG4gIGNhc2UgVXBkYXRlVHlwZS5JbW11dGFibGU6XG4gIGNhc2UgVXBkYXRlVHlwZS5NdXRhYmxlOlxuICAgIHJldHVybiB0cnVlO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY2FsYXJQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgU2NhbGFyUHJvcGVydHkge1xuICByZXR1cm4gaXNQcmltaXRpdmVQcm9wZXJ0eShwcm9wKVxuICAgIHx8IGlzQ29tcGxleFByb3BlcnR5KHByb3ApXG4gICAgLy8gQSBVbmlvblByb3BlcnR5IGlzIG9ubHkgU2NhbGFyIGlmIGl0IGRlZmluZXMgVHlwZXMgb3IgUHJpbWl0aXZlVHlwZXNcbiAgICB8fCAoaXNVbmlvblByb3BlcnR5KHByb3ApICYmICEhKHByb3AuVHlwZXMgfHwgcHJvcC5QcmltaXRpdmVUeXBlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmVQcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgUHJpbWl0aXZlUHJvcGVydHkge1xuICByZXR1cm4gISEocHJvcCBhcyBQcmltaXRpdmVQcm9wZXJ0eSkuUHJpbWl0aXZlVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcGxleFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBDb21wbGV4UHJvcGVydHkge1xuICBjb25zdCBwcm9wVHlwZSA9IChwcm9wIGFzIENvbXBsZXhQcm9wZXJ0eSkuVHlwZTtcbiAgcmV0dXJuIHByb3BUeXBlICE9IG51bGwgJiYgcHJvcFR5cGUgIT09ICdNYXAnICYmIHByb3BUeXBlICE9PSAnTGlzdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbGxlY3Rpb25Qcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgQ29sbGVjdGlvblByb3BlcnR5IHtcbiAgcmV0dXJuIGlzTGlzdFByb3BlcnR5KHByb3ApXG4gICAgfHwgaXNNYXBQcm9wZXJ0eShwcm9wKVxuICAgIC8vIEEgVW5pb25Qcm9wZXJ0eSBpcyBvbmx5IENvbGxlY3Rpb24gaWYgaXQgZGVmaW5lcyBJdGVtVHlwZXMgb3IgUHJpbWl0aXZlSXRlbVR5cGVzXG4gICAgfHwgKGlzVW5pb25Qcm9wZXJ0eShwcm9wKSAmJiAhIShwcm9wLkl0ZW1UeXBlcyB8fCBwcm9wLlByaW1pdGl2ZUl0ZW1UeXBlcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaXN0UHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIExpc3RQcm9wZXJ0eSB7XG4gIHJldHVybiAocHJvcCBhcyBMaXN0UHJvcGVydHkpLlR5cGUgPT09ICdMaXN0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlTGlzdFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBQcmltaXRpdmVMaXN0UHJvcGVydHkge1xuICByZXR1cm4gaXNMaXN0UHJvcGVydHkocHJvcCkgJiYgISEocHJvcCBhcyBQcmltaXRpdmVMaXN0UHJvcGVydHkpLlByaW1pdGl2ZUl0ZW1UeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4TGlzdFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBDb21wbGV4TGlzdFByb3BlcnR5IHtcbiAgcmV0dXJuIGlzTGlzdFByb3BlcnR5KHByb3ApICYmICEhKHByb3AgYXMgQ29tcGxleExpc3RQcm9wZXJ0eSkuSXRlbVR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01hcFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBNYXBQcm9wZXJ0eSB7XG4gIHJldHVybiAocHJvcCBhcyBNYXBQcm9wZXJ0eSkuVHlwZSA9PT0gJ01hcCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByaW1pdGl2ZU1hcFByb3BlcnR5KHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBQcmltaXRpdmVNYXBQcm9wZXJ0eSB7XG4gIHJldHVybiBpc01hcFByb3BlcnR5KHByb3ApICYmICEhKHByb3AgYXMgUHJpbWl0aXZlTWFwUHJvcGVydHkpLlByaW1pdGl2ZUl0ZW1UeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4TWFwUHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIENvbXBsZXhNYXBQcm9wZXJ0eSB7XG4gIHJldHVybiBpc01hcFByb3BlcnR5KHByb3ApICYmICEhKHByb3AgYXMgQ29tcGxleE1hcFByb3BlcnR5KS5JdGVtVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5pb25Qcm9wZXJ0eShwcm9wOiBQcm9wZXJ0eSk6IHByb3AgaXMgVW5pb25Qcm9wZXJ0eSB7XG4gIGNvbnN0IGNhc3RQcm9wID0gcHJvcCBhcyBVbmlvblByb3BlcnR5O1xuICByZXR1cm4gISEoY2FzdFByb3AuSXRlbVR5cGVzIHx8IGNhc3RQcm9wLlByaW1pdGl2ZVR5cGVzIHx8IGNhc3RQcm9wLlR5cGVzKTtcbn1cblxuZXhwb3J0IGVudW0gUHJvcGVydHlTY3J1dGlueVR5cGUge1xuICAvKipcbiAgICogTm8gYWRkaXRpb25hbCBzY3J1dGlueVxuICAgKi9cbiAgTm9uZSA9ICdOb25lJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IGRpcmVjdGx5IG9uIGEgcmVzb3VyY2VcbiAgICovXG4gIElubGluZVJlc291cmNlUG9saWN5ID0gJ0lubGluZVJlc291cmNlUG9saWN5JyxcblxuICAvKipcbiAgICogRWl0aGVyIGFuIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudCBvciBhIGRpY3Rpb25hcnkgb2YgcG9saWN5IGRvY3VtZW50c1xuICAgKi9cbiAgSW5saW5lSWRlbnRpdHlQb2xpY2llcyA9ICdJbmxpbmVJZGVudGl0eVBvbGljaWVzJyxcblxuICAvKipcbiAgICogQSBsaXN0IG9mIG1hbmFnZWQgcG9saWNpZXMgKG9uIGFuIGlkZW50aXR5IHJlc291cmNlKVxuICAgKi9cbiAgTWFuYWdlZFBvbGljaWVzID0gJ01hbmFnZWRQb2xpY2llcycsXG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGluZ3Jlc3MgcnVsZXMgKG9uIGEgc2VjdXJpdHkgZ3JvdXApXG4gICAqL1xuICBJbmdyZXNzUnVsZXMgPSAnSW5ncmVzc1J1bGVzJyxcblxuICAvKipcbiAgICogQSBzZXQgb2YgZWdyZXNzIHJ1bGVzIChvbiBhIHNlY3VyaXR5IGdyb3VwKVxuICAgKi9cbiAgRWdyZXNzUnVsZXMgPSAnRWdyZXNzUnVsZXMnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9wZXJ0eVNjcnV0aW55VHlwZShzdHI6IHN0cmluZyk6IHN0ciBpcyBQcm9wZXJ0eVNjcnV0aW55VHlwZSB7XG4gIHJldHVybiAoUHJvcGVydHlTY3J1dGlueVR5cGUgYXMgYW55KVtzdHJdICE9PSB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IHRhZ1Byb3BlcnR5TmFtZXMgPSB7XG4gIFRhZ3M6IFwiXCIsXG4gIFVzZXJQb29sVGFnczogXCJcIixcbn07XG5cbmV4cG9ydCB0eXBlIFRhZ1Byb3BlcnR5TmFtZSA9IGtleW9mIHR5cGVvZiB0YWdQcm9wZXJ0eU5hbWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eU5hbWUobmFtZT86IHN0cmluZyk6IG5hbWUgaXMgVGFnUHJvcGVydHlOYW1lIHtcbiAgaWYgKHVuZGVmaW5lZCA9PT0gbmFtZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdGFnUHJvcGVydHlOYW1lcy5oYXNPd25Qcm9wZXJ0eShuYW1lKTtcbn1cbi8qKlxuICogVGhpcyBmdW5jdGlvbiB2YWxpZGF0ZXMgdGhhdCB0aGUgcHJvcGVydHkgKipjYW4qKiBiZSBhIFRhZyBQcm9wZXJ0eVxuICpcbiAqIFRoZSBwcm9wZXJ0eSBpcyBvbmx5IGEgVGFnIGlmIHRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgVGFncywgd2hpY2ggaXNcbiAqIHZhbGlkYXRlZCB1c2luZyBgUmVzb3VyY2VUeXBlLmlzVGFnZ2FibGUocmVzb3VyY2UpYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnUHJvcGVydHkocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5IHtcbiAgcmV0dXJuIChcbiAgICBpc1RhZ1Byb3BlcnR5U3RhbmRhcmQocHJvcCkgfHxcbiAgICBpc1RhZ1Byb3BlcnR5QXV0b1NjYWxpbmdHcm91cChwcm9wKSB8fFxuICAgIGlzVGFnUHJvcGVydHlKc29uKHByb3ApIHx8XG4gICAgaXNUYWdQcm9wZXJ0eVN0cmluZ01hcChwcm9wKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eVN0YW5kYXJkKHByb3A6IFByb3BlcnR5KTogcHJvcCBpcyBUYWdQcm9wZXJ0eVN0YW5kYXJkIHtcbiAgcmV0dXJuIChcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5JdGVtVHlwZSA9PT0gJ1RhZycgfHxcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5JdGVtVHlwZSA9PT0gJ1RhZ3NFbnRyeScgfHxcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5UeXBlID09PSAnVGFncycgfHxcbiAgICAocHJvcCBhcyBUYWdQcm9wZXJ0eVN0YW5kYXJkKS5JdGVtVHlwZSA9PT0gJ1RhZ1JlZidcbiAgKTtcblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eUF1dG9TY2FsaW5nR3JvdXAocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5QXV0b1NjYWxpbmdHcm91cCB7XG4gIHJldHVybiAocHJvcCBhcyBUYWdQcm9wZXJ0eUF1dG9TY2FsaW5nR3JvdXApLkl0ZW1UeXBlID09PSAnVGFnUHJvcGVydHknO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUYWdQcm9wZXJ0eUpzb24ocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5SnNvbiB7XG4gIHJldHVybiAocHJvcCBhcyBUYWdQcm9wZXJ0eUpzb24pLlByaW1pdGl2ZVR5cGUgPT09IFByaW1pdGl2ZVR5cGUuSnNvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnUHJvcGVydHlTdHJpbmdNYXAocHJvcDogUHJvcGVydHkpOiBwcm9wIGlzIFRhZ1Byb3BlcnR5U3RyaW5nTWFwIHtcbiAgcmV0dXJuIChwcm9wIGFzIFRhZ1Byb3BlcnR5U3RyaW5nTWFwKS5QcmltaXRpdmVJdGVtVHlwZSA9PT0gJ1N0cmluZyc7XG59XG4iXX0=

@@ -34,2 +34,3 @@ import { Documented, PrimitiveType } from './base-types';

Tags: TagProperty;
UserPoolTags: TagProperty;
[name: string]: Property;

@@ -36,0 +37,0 @@ };

@@ -12,5 +12,10 @@ "use strict";

function isTaggableResource(spec) {
if (spec.Properties && spec.Properties.Tags) {
return property_1.isTagProperty(spec.Properties.Tags);
if (spec.Properties === undefined) {
return false;
}
for (const key of Object.keys(spec.Properties)) {
if (property_1.isTagPropertyName(key) && property_1.isTagProperty(spec.Properties[key])) {
return true;
}
}
return false;

@@ -86,2 +91,2 @@ }

exports.isResourceScrutinyType = isResourceScrutinyType;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlc291cmNlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx5Q0FBa0U7QUFzRGxFOzs7Ozs7R0FNRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLElBQWtCO0lBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtRQUMzQyxPQUFPLHdCQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM1QztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUxELGdEQUtDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsSUFBZTtJQUNsRCxPQUFPLENBQUMsQ0FBRSxJQUEyQixDQUFDLGFBQWEsQ0FBQztBQUN0RCxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixlQUFlLENBQUMsSUFBZTtJQUM3QyxPQUFRLElBQXNCLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUNqRCxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxJQUFlO0lBQ3RELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBRSxJQUErQixDQUFDLGlCQUFpQixDQUFDO0FBQ3ZGLENBQUM7QUFGRCw0REFFQztBQUVELFNBQWdCLHNCQUFzQixDQUFDLElBQWU7SUFDcEQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFFLElBQTZCLENBQUMsUUFBUSxDQUFDO0FBQzVFLENBQUM7QUFGRCx3REFFQztBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLGNBVVg7QUFWRCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCwrQkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCw2QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVZXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBVXpCO0FBRUQsSUFBWSxvQkFrQ1g7QUFsQ0QsV0FBWSxvQkFBb0I7SUFDOUI7O09BRUc7SUFDSCxxQ0FBYSxDQUFBO0lBRWI7Ozs7T0FJRztJQUNILHlFQUFpRCxDQUFBO0lBRWpEOzs7O09BSUc7SUFDSCx5RUFBaUQsQ0FBQTtJQUVqRDs7T0FFRztJQUNILDZEQUFxQyxDQUFBO0lBRXJDOztPQUVHO0lBQ0gsbUVBQTJDLENBQUE7SUFFM0M7O09BRUc7SUFDSCxpRUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBbENXLG9CQUFvQixHQUFwQiw0QkFBb0IsS0FBcEIsNEJBQW9CLFFBa0MvQjtBQUVELFNBQWdCLHNCQUFzQixDQUFDLEdBQVc7SUFDaEQsT0FBUSxvQkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7QUFDMUQsQ0FBQztBQUZELHdEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRlZCwgUHJpbWl0aXZlVHlwZSB9IGZyb20gJy4vYmFzZS10eXBlcyc7XG5pbXBvcnQgeyBpc1RhZ1Byb3BlcnR5LCBQcm9wZXJ0eSwgVGFnUHJvcGVydHkgfSBmcm9tICcuL3Byb3BlcnR5JztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVR5cGUgZXh0ZW5kcyBEb2N1bWVudGVkIHtcbiAgLyoqXG4gICAqIFRoZSBhdHRyaWJ1dGVzIGV4cG9zZWQgYnkgdGhlIHJlc291cmNlIHR5cGUsIGlmIGFueS5cbiAgICovXG4gIEF0dHJpYnV0ZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBBdHRyaWJ1dGUgfTtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIGFjY2VwdGVkIGJ5IHRoZSByZXNvdXJjZSB0eXBlLCBpZiBhbnkuXG4gICAqL1xuICBQcm9wZXJ0aWVzPzogeyBbbmFtZTogc3RyaW5nXTogUHJvcGVydHkgfTtcbiAgLyoqXG4gICAqIFRoZSBgYFRyYW5zZm9ybWBgIHJlcXVpcmVkIGJ5IHRoZSByZXNvdXJjZSB0eXBlLCBpZiBhbnkuXG4gICAqL1xuICBSZXF1aXJlZFRyYW5zZm9ybT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCBraW5kIG9mIHZhbHVlIHRoZSAnUmVmJyBvcGVyYXRvciByZWZlcnMgdG8sIGlmIGFueS5cbiAgICovXG4gIFJlZktpbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIER1cmluZyBhIHN0YWNrIHVwZGF0ZSwgd2hhdCBraW5kIG9mIGFkZGl0aW9uYWwgc2NydXRpbnkgY2hhbmdlcyB0byB0aGlzIHJlc291cmNlIHNob3VsZCBiZSBzdWJqZWN0ZWQgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgU2NydXRpbnlUeXBlPzogUmVzb3VyY2VTY3J1dGlueVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnZ2FibGVSZXNvdXJjZSBleHRlbmRzIFJlc291cmNlVHlwZSB7XG4gIFByb3BlcnRpZXM6IHtcbiAgICBUYWdzOiBUYWdQcm9wZXJ0eTtcbiAgICBbbmFtZTogc3RyaW5nXTogUHJvcGVydHk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlID0gUHJpbWl0aXZlQXR0cmlidXRlIHwgTGlzdEF0dHJpYnV0ZTtcblxuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVBdHRyaWJ1dGUge1xuICBQcmltaXRpdmVUeXBlOiBQcmltaXRpdmVUeXBlO1xufVxuXG5leHBvcnQgdHlwZSBMaXN0QXR0cmlidXRlID0gUHJpbWl0aXZlTGlzdEF0dHJpYnV0ZSB8IENvbXBsZXhMaXN0QXR0cmlidXRlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUge1xuICBUeXBlOiAnTGlzdCc7XG4gIFByaW1pdGl2ZUl0ZW1UeXBlOiBQcmltaXRpdmVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXhMaXN0QXR0cmlidXRlIHtcbiAgVHlwZTogJ0xpc3QnO1xuICBJdGVtVHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGUgcmVzb3VyY2Ugc3VwcG9ydHMgdGFnc1xuICpcbiAqIFRoaXMgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBpc1RhZ1Byb3BlcnR5IGRldGVybWluZXMgaWYgdGhlIGBjZGsuVGFnTWFuYWdlcmBcbiAqIGFuZCBgY2RrLlRhZ2dhYmxlUmVzb3VyY2VgIGNhbiBwcm9jZXNzIHRoZXNlIHRhZ3MuIElmIG5vdCwgc3RhbmRhcmQgY29kZVxuICogZ2VuZXJhdGlvbiBvZiBwcm9wZXJ0aWVzIHdpbGwgYmUgdXNlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGFnZ2FibGVSZXNvdXJjZShzcGVjOiBSZXNvdXJjZVR5cGUpOiBzcGVjIGlzIFRhZ2dhYmxlUmVzb3VyY2Uge1xuICBpZiAoc3BlYy5Qcm9wZXJ0aWVzICYmIHNwZWMuUHJvcGVydGllcy5UYWdzKSB7XG4gICAgcmV0dXJuIGlzVGFnUHJvcGVydHkoc3BlYy5Qcm9wZXJ0aWVzLlRhZ3MpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlQXR0cmlidXRlKHNwZWM6IEF0dHJpYnV0ZSk6IHNwZWMgaXMgUHJpbWl0aXZlQXR0cmlidXRlIHtcbiAgcmV0dXJuICEhKHNwZWMgYXMgUHJpbWl0aXZlQXR0cmlidXRlKS5QcmltaXRpdmVUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaXN0QXR0cmlidXRlKHNwZWM6IEF0dHJpYnV0ZSk6IHNwZWMgaXMgTGlzdEF0dHJpYnV0ZSB7XG4gIHJldHVybiAoc3BlYyBhcyBMaXN0QXR0cmlidXRlKS5UeXBlID09PSAnTGlzdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUoc3BlYzogQXR0cmlidXRlKTogc3BlYyBpcyBQcmltaXRpdmVMaXN0QXR0cmlidXRlIHtcbiAgcmV0dXJuIGlzTGlzdEF0dHJpYnV0ZShzcGVjKSAmJiAhIShzcGVjIGFzIFByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUpLlByaW1pdGl2ZUl0ZW1UeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4TGlzdEF0dHJpYnV0ZShzcGVjOiBBdHRyaWJ1dGUpOiBzcGVjIGlzIENvbXBsZXhMaXN0QXR0cmlidXRlIHtcbiAgcmV0dXJuIGlzTGlzdEF0dHJpYnV0ZShzcGVjKSAmJiAhIShzcGVjIGFzIENvbXBsZXhMaXN0QXR0cmlidXRlKS5JdGVtVHlwZTtcbn1cblxuLyoqXG4gKiBUeXBlIGRlY2xhcmF0aW9uIGZvciBzcGVjaWFsIHZhbHVlcyBvZiB0aGUgXCJSZWZcIiBhdHRyaWJ1dGUgcmVwcmVzZW50cy5cbiAqXG4gKiBUaGUgYXR0cmlidXRlIGNhbiB0YWtlIG9uIG1vcmUgdmFsdWVzIHRoYW4gdGhlc2UsIGJ1dCB0aGVzZSBhcmUgdHJlYXRlZCBzcGVjaWFsbHkuXG4gKi9cbmV4cG9ydCBlbnVtIFNwZWNpYWxSZWZLaW5kIHtcbiAgLyoqXG4gICAqIE5vICcucmVmJyBtZW1iZXIgaXMgZ2VuZXJhdGVkIGZvciB0aGlzIHR5cGUsIGJlY2F1c2UgaXQgZG9lc24ndCBoYXZlIGEgbWVhbmluZ2Z1bCB2YWx1ZS5cbiAgICovXG4gIE5vbmUgPSAnTm9uZScsXG5cbiAgLyoqXG4gICAqIFRoZSBnZW5lcmF0ZWQgY2xhc3Mgd2lsbCBpbmhlcml0IGZyb20gdGhlIGJ1aWx0LWluICdBcm4nIHR5cGUuXG4gICAqL1xuICBBcm4gPSAnQXJuJ1xufVxuXG5leHBvcnQgZW51bSBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIC8qKlxuICAgKiBObyBhZGRpdGlvbmFsIHNjcnV0aW55XG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbGx5IGF0dGFjaGVkIHBvbGljeSBkb2N1bWVudCB0byBhIHJlc291cmNlXG4gICAqXG4gICAqIChDb21tb24gZm9yIFNRUywgU05TLCBTMywgLi4uKVxuICAgKi9cbiAgUmVzb3VyY2VQb2xpY3lSZXNvdXJjZSA9ICdSZXNvdXJjZVBvbGljeVJlc291cmNlJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IG9uIGFuIGlkZW50aXR5IHJlc291cmNlXG4gICAqXG4gICAqIChCYXNpY2FsbHkgc2F5aW5nOiB0aGlzIGlzIEFXUzo6SUFNOjpQb2xpY3kpXG4gICAqL1xuICBJZGVudGl0eVBvbGljeVJlc291cmNlID0gJ0lkZW50aXR5UG9saWN5UmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgTGFtYmRhIFBlcm1pc3Npb24gcG9saWN5XG4gICAqL1xuICBMYW1iZGFQZXJtaXNzaW9uID0gJ0xhbWJkYVBlcm1pc3Npb24nLFxuXG4gIC8qKlxuICAgKiBBbiBpbmdyZXNzIHJ1bGUgb2JqZWN0XG4gICAqL1xuICBJbmdyZXNzUnVsZVJlc291cmNlID0gJ0luZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlZ3Jlc3MgcnVsZXNcbiAgICovXG4gIEVncmVzc1J1bGVSZXNvdXJjZSA9ICdFZ3Jlc3NSdWxlUmVzb3VyY2UnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXNvdXJjZVNjcnV0aW55VHlwZShzdHI6IHN0cmluZyk6IHN0ciBpcyBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIHJldHVybiAoUmVzb3VyY2VTY3J1dGlueVR5cGUgYXMgYW55KVtzdHJdICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlc291cmNlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx5Q0FBcUY7QUF1RHJGOzs7Ozs7R0FNRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLElBQWtCO0lBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7UUFDakMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDOUMsSUFBSSw0QkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSx3QkFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqRSxPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFWRCxnREFVQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLElBQWU7SUFDbEQsT0FBTyxDQUFDLENBQUUsSUFBMkIsQ0FBQyxhQUFhLENBQUM7QUFDdEQsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLElBQWU7SUFDN0MsT0FBUSxJQUFzQixDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7QUFDakQsQ0FBQztBQUZELDBDQUVDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsSUFBZTtJQUN0RCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUUsSUFBK0IsQ0FBQyxpQkFBaUIsQ0FBQztBQUN2RixDQUFDO0FBRkQsNERBRUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxJQUFlO0lBQ3BELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBRSxJQUE2QixDQUFDLFFBQVEsQ0FBQztBQUM1RSxDQUFDO0FBRkQsd0RBRUM7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxjQVVYO0FBVkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsK0JBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsNkJBQVcsQ0FBQTtBQUNiLENBQUMsRUFWVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVV6QjtBQUVELElBQVksb0JBa0NYO0FBbENELFdBQVksb0JBQW9CO0lBQzlCOztPQUVHO0lBQ0gscUNBQWEsQ0FBQTtJQUViOzs7O09BSUc7SUFDSCx5RUFBaUQsQ0FBQTtJQUVqRDs7OztPQUlHO0lBQ0gseUVBQWlELENBQUE7SUFFakQ7O09BRUc7SUFDSCw2REFBcUMsQ0FBQTtJQUVyQzs7T0FFRztJQUNILG1FQUEyQyxDQUFBO0lBRTNDOztPQUVHO0lBQ0gsaUVBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQWxDVyxvQkFBb0IsR0FBcEIsNEJBQW9CLEtBQXBCLDRCQUFvQixRQWtDL0I7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxHQUFXO0lBQ2hELE9BQVEsb0JBQTRCLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQzFELENBQUM7QUFGRCx3REFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50ZWQsIFByaW1pdGl2ZVR5cGUgfSBmcm9tICcuL2Jhc2UtdHlwZXMnO1xuaW1wb3J0IHsgaXNUYWdQcm9wZXJ0eSwgaXNUYWdQcm9wZXJ0eU5hbWUsIFByb3BlcnR5LCBUYWdQcm9wZXJ0eSB9IGZyb20gJy4vcHJvcGVydHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlVHlwZSBleHRlbmRzIERvY3VtZW50ZWQge1xuICAvKipcbiAgICogVGhlIGF0dHJpYnV0ZXMgZXhwb3NlZCBieSB0aGUgcmVzb3VyY2UgdHlwZSwgaWYgYW55LlxuICAgKi9cbiAgQXR0cmlidXRlcz86IHsgW25hbWU6IHN0cmluZ106IEF0dHJpYnV0ZSB9O1xuICAvKipcbiAgICogVGhlIHByb3BlcnRpZXMgYWNjZXB0ZWQgYnkgdGhlIHJlc291cmNlIHR5cGUsIGlmIGFueS5cbiAgICovXG4gIFByb3BlcnRpZXM/OiB7IFtuYW1lOiBzdHJpbmddOiBQcm9wZXJ0eSB9O1xuICAvKipcbiAgICogVGhlIGBgVHJhbnNmb3JtYGAgcmVxdWlyZWQgYnkgdGhlIHJlc291cmNlIHR5cGUsIGlmIGFueS5cbiAgICovXG4gIFJlcXVpcmVkVHJhbnNmb3JtPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGF0IGtpbmQgb2YgdmFsdWUgdGhlICdSZWYnIG9wZXJhdG9yIHJlZmVycyB0bywgaWYgYW55LlxuICAgKi9cbiAgUmVmS2luZD86IHN0cmluZztcblxuICAvKipcbiAgICogRHVyaW5nIGEgc3RhY2sgdXBkYXRlLCB3aGF0IGtpbmQgb2YgYWRkaXRpb25hbCBzY3J1dGlueSBjaGFuZ2VzIHRvIHRoaXMgcmVzb3VyY2Ugc2hvdWxkIGJlIHN1YmplY3RlZCB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICBTY3J1dGlueVR5cGU/OiBSZXNvdXJjZVNjcnV0aW55VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWdnYWJsZVJlc291cmNlIGV4dGVuZHMgUmVzb3VyY2VUeXBlIHtcbiAgUHJvcGVydGllczoge1xuICAgIFRhZ3M6IFRhZ1Byb3BlcnR5O1xuICAgIFVzZXJQb29sVGFnczogVGFnUHJvcGVydHk7XG4gICAgW25hbWU6IHN0cmluZ106IFByb3BlcnR5O1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZSA9IFByaW1pdGl2ZUF0dHJpYnV0ZSB8IExpc3RBdHRyaWJ1dGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpbWl0aXZlQXR0cmlidXRlIHtcbiAgUHJpbWl0aXZlVHlwZTogUHJpbWl0aXZlVHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgTGlzdEF0dHJpYnV0ZSA9IFByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUgfCBDb21wbGV4TGlzdEF0dHJpYnV0ZTtcblxuZXhwb3J0IGludGVyZmFjZSBQcmltaXRpdmVMaXN0QXR0cmlidXRlIHtcbiAgVHlwZTogJ0xpc3QnO1xuICBQcmltaXRpdmVJdGVtVHlwZTogUHJpbWl0aXZlVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV4TGlzdEF0dHJpYnV0ZSB7XG4gIFR5cGU6ICdMaXN0JztcbiAgSXRlbVR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIHJlc291cmNlIHN1cHBvcnRzIHRhZ3NcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggaXNUYWdQcm9wZXJ0eSBkZXRlcm1pbmVzIGlmIHRoZSBgY2RrLlRhZ01hbmFnZXJgXG4gKiBhbmQgYGNkay5UYWdnYWJsZVJlc291cmNlYCBjYW4gcHJvY2VzcyB0aGVzZSB0YWdzLiBJZiBub3QsIHN0YW5kYXJkIGNvZGVcbiAqIGdlbmVyYXRpb24gb2YgcHJvcGVydGllcyB3aWxsIGJlIHVzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RhZ2dhYmxlUmVzb3VyY2Uoc3BlYzogUmVzb3VyY2VUeXBlKTogc3BlYyBpcyBUYWdnYWJsZVJlc291cmNlIHtcbiAgaWYgKHNwZWMuUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHNwZWMuUHJvcGVydGllcykpIHtcbiAgICBpZiAoaXNUYWdQcm9wZXJ0eU5hbWUoa2V5KSAmJiBpc1RhZ1Byb3BlcnR5KHNwZWMuUHJvcGVydGllc1trZXldKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJpbWl0aXZlQXR0cmlidXRlKHNwZWM6IEF0dHJpYnV0ZSk6IHNwZWMgaXMgUHJpbWl0aXZlQXR0cmlidXRlIHtcbiAgcmV0dXJuICEhKHNwZWMgYXMgUHJpbWl0aXZlQXR0cmlidXRlKS5QcmltaXRpdmVUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMaXN0QXR0cmlidXRlKHNwZWM6IEF0dHJpYnV0ZSk6IHNwZWMgaXMgTGlzdEF0dHJpYnV0ZSB7XG4gIHJldHVybiAoc3BlYyBhcyBMaXN0QXR0cmlidXRlKS5UeXBlID09PSAnTGlzdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUoc3BlYzogQXR0cmlidXRlKTogc3BlYyBpcyBQcmltaXRpdmVMaXN0QXR0cmlidXRlIHtcbiAgcmV0dXJuIGlzTGlzdEF0dHJpYnV0ZShzcGVjKSAmJiAhIShzcGVjIGFzIFByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUpLlByaW1pdGl2ZUl0ZW1UeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wbGV4TGlzdEF0dHJpYnV0ZShzcGVjOiBBdHRyaWJ1dGUpOiBzcGVjIGlzIENvbXBsZXhMaXN0QXR0cmlidXRlIHtcbiAgcmV0dXJuIGlzTGlzdEF0dHJpYnV0ZShzcGVjKSAmJiAhIShzcGVjIGFzIENvbXBsZXhMaXN0QXR0cmlidXRlKS5JdGVtVHlwZTtcbn1cblxuLyoqXG4gKiBUeXBlIGRlY2xhcmF0aW9uIGZvciBzcGVjaWFsIHZhbHVlcyBvZiB0aGUgXCJSZWZcIiBhdHRyaWJ1dGUgcmVwcmVzZW50cy5cbiAqXG4gKiBUaGUgYXR0cmlidXRlIGNhbiB0YWtlIG9uIG1vcmUgdmFsdWVzIHRoYW4gdGhlc2UsIGJ1dCB0aGVzZSBhcmUgdHJlYXRlZCBzcGVjaWFsbHkuXG4gKi9cbmV4cG9ydCBlbnVtIFNwZWNpYWxSZWZLaW5kIHtcbiAgLyoqXG4gICAqIE5vICcucmVmJyBtZW1iZXIgaXMgZ2VuZXJhdGVkIGZvciB0aGlzIHR5cGUsIGJlY2F1c2UgaXQgZG9lc24ndCBoYXZlIGEgbWVhbmluZ2Z1bCB2YWx1ZS5cbiAgICovXG4gIE5vbmUgPSAnTm9uZScsXG5cbiAgLyoqXG4gICAqIFRoZSBnZW5lcmF0ZWQgY2xhc3Mgd2lsbCBpbmhlcml0IGZyb20gdGhlIGJ1aWx0LWluICdBcm4nIHR5cGUuXG4gICAqL1xuICBBcm4gPSAnQXJuJ1xufVxuXG5leHBvcnQgZW51bSBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIC8qKlxuICAgKiBObyBhZGRpdGlvbmFsIHNjcnV0aW55XG4gICAqL1xuICBOb25lID0gJ05vbmUnLFxuXG4gIC8qKlxuICAgKiBBbiBleHRlcm5hbGx5IGF0dGFjaGVkIHBvbGljeSBkb2N1bWVudCB0byBhIHJlc291cmNlXG4gICAqXG4gICAqIChDb21tb24gZm9yIFNRUywgU05TLCBTMywgLi4uKVxuICAgKi9cbiAgUmVzb3VyY2VQb2xpY3lSZXNvdXJjZSA9ICdSZXNvdXJjZVBvbGljeVJlc291cmNlJyxcblxuICAvKipcbiAgICogVGhpcyBpcyBhbiBJQU0gcG9saWN5IG9uIGFuIGlkZW50aXR5IHJlc291cmNlXG4gICAqXG4gICAqIChCYXNpY2FsbHkgc2F5aW5nOiB0aGlzIGlzIEFXUzo6SUFNOjpQb2xpY3kpXG4gICAqL1xuICBJZGVudGl0eVBvbGljeVJlc291cmNlID0gJ0lkZW50aXR5UG9saWN5UmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgTGFtYmRhIFBlcm1pc3Npb24gcG9saWN5XG4gICAqL1xuICBMYW1iZGFQZXJtaXNzaW9uID0gJ0xhbWJkYVBlcm1pc3Npb24nLFxuXG4gIC8qKlxuICAgKiBBbiBpbmdyZXNzIHJ1bGUgb2JqZWN0XG4gICAqL1xuICBJbmdyZXNzUnVsZVJlc291cmNlID0gJ0luZ3Jlc3NSdWxlUmVzb3VyY2UnLFxuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBlZ3Jlc3MgcnVsZXNcbiAgICovXG4gIEVncmVzc1J1bGVSZXNvdXJjZSA9ICdFZ3Jlc3NSdWxlUmVzb3VyY2UnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXNvdXJjZVNjcnV0aW55VHlwZShzdHI6IHN0cmluZyk6IHN0ciBpcyBSZXNvdXJjZVNjcnV0aW55VHlwZSB7XG4gIHJldHVybiAoUmVzb3VyY2VTY3J1dGlueVR5cGUgYXMgYW55KVtzdHJdICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
{
"name": "@aws-cdk/cfnspec",
"description": "The CloudFormation resource specification used by @aws-cdk packages",
"version": "1.19.0",
"version": "1.20.0",
"scripts": {

@@ -27,7 +27,9 @@ "update": "cdk-build && /bin/bash build-tools/update.sh",

"@types/md5": "^2.1.33",
"cdk-build-tools": "1.19.0",
"@types/nodeunit": "^0.0.30",
"cdk-build-tools": "1.20.0",
"fast-json-patch": "^2.2.1",
"fs-extra": "^8.1.0",
"json-diff": "^0.5.4",
"pkglint": "1.19.0",
"nodeunit": "^0.11.3",
"pkglint": "1.20.0",
"sort-json": "^2.0.0"

@@ -34,0 +36,0 @@ },

import { Test } from 'nodeunit';
import { Specification } from '../lib/schema';
export declare function validateSpecification(test: Test, specification: Specification): void;
import * as schema from '../lib/schema';
export declare function validateSpecification(test: Test, specification: schema.Specification): void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const schema = require("../lib/schema");
const schema_1 = require("../lib/schema");
function validateSpecification(test, specification) {

@@ -30,3 +29,3 @@ validateResourceTypes(test, specification);

const type = specification.PropertyTypes[typeName];
if (schema_1.isRecordType(type)) {
if (schema.isRecordType(type)) {
validateProperties(typeName, test, type.Properties, specification);

@@ -154,2 +153,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esd0NBQXlDO0FBQ3pDLDBDQUE0RDtBQUU1RCxTQUFnQixxQkFBcUIsQ0FBQyxJQUFVLEVBQUUsYUFBNEI7SUFDNUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLHFCQUFxQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBSEQsc0RBR0M7QUFFRCxTQUFTLHFCQUFxQixDQUFDLElBQVUsRUFBRSxhQUE0QjtJQUNyRSxLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQy9ELElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLGlDQUFpQyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxRQUFRLG1EQUFtRCxDQUFDLENBQUM7U0FDM0g7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FBRTtRQUM1RixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFF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O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBSSxFQUFPLEVBQUUsR0FBRyxJQUFXO0lBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXhCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLEtBQUssTUFBTSxPQUFPLElBQUksR0FBRyxFQUFFO1lBQ3pCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDcEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQjtTQUNGO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgc2NoZW1hID0gcmVxdWlyZSgnLi4vbGliL3NjaGVtYScpO1xuaW1wb3J0IHsgaXNSZWNvcmRUeXBlLCBTcGVjaWZpY2F0aW9uIH0gZnJvbSAnLi4vbGliL3NjaGVtYSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVNwZWNpZmljYXRpb24odGVzdDogVGVzdCwgc3BlY2lmaWNhdGlvbjogU3BlY2lmaWNhdGlvbikge1xuICB2YWxpZGF0ZVJlc291cmNlVHlwZXModGVzdCwgc3BlY2lmaWNhdGlvbik7XG4gIHZhbGlkYXRlUHJvcGVydHlUeXBlcyh0ZXN0LCBzcGVjaWZpY2F0aW9uKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVSZXNvdXJjZVR5cGVzKHRlc3Q6IFRlc3QsIHNwZWNpZmljYXRpb246IFNwZWNpZmljYXRpb24pIHtcbiAgZm9yIChjb25zdCB0eXBlTmFtZSBvZiBPYmplY3Qua2V5cyhzcGVjaWZpY2F0aW9uLlJlc291cmNlVHlwZXMpKSB7XG4gICAgdGVzdC5vayh0eXBlTmFtZSwgJ1Jlc291cmNlIHR5cGUgbmFtZSBpcyBub3QgZW1wdHknKTtcbiAgICBjb25zdCB0eXBlID0gc3BlY2lmaWNhdGlvbi5SZXNvdXJjZVR5cGVzW3R5cGVOYW1lXTtcbiAgICB0ZXN0Lm5vdEVxdWFsKHR5cGUuRG9jdW1lbnRhdGlvbiwgbnVsbCwgYCR7dHlwZU5hbWV9IGlzIGRvY3VtZW50ZWRgKTtcbiAgICBpZiAodHlwZS5TY3J1dGlueVR5cGUpIHtcbiAgICAgIHRlc3Qub2soc2NoZW1hLmlzUmVzb3VyY2VTY3J1dGlueVR5cGUodHlwZS5TY3J1dGlueVR5cGUpLCBgJHt0eXBlTmFtZX0uU2NydXRpbnlUeXBlIGlzIG5vdCBhIHZhbGlkIFJlc291cmNlU2NydXRpbnlUeXBlYCk7XG4gICAgfVxuICAgIGlmICh0eXBlLlByb3BlcnRpZXMpIHsgdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGVOYW1lLCB0ZXN0LCB0eXBlLlByb3BlcnRpZXMsIHNwZWNpZmljYXRpb24pOyB9XG4gICAgaWYgKHR5cGUuQXR0cmlidXRlcykgeyB2YWxpZGF0ZUF0dHJpYnV0ZXModHlwZU5hbWUsIHRlc3QsIHR5cGUuQXR0cmlidXRlcywgc3BlY2lmaWNhdGlvbik7IH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnR5VHlwZXModGVzdDogVGVzdCwgc3BlY2lmaWNhdGlvbjogU3BlY2lmaWNhdGlvbikge1xuICBmb3IgKGNvbnN0IHR5cGVOYW1lIG9mIE9iamVjdC5rZXlzKHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlcykpIHtcbiAgICB0ZXN0Lm9rKHR5cGVOYW1lLCAnUHJvcGVydHkgdHlwZSBuYW1lIGlzIG5vdCBlbXB0eScpO1xuICAgIGNvbnN0IHR5cGUgPSBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXNbdHlwZU5hbWVdO1xuICAgIGlmIChpc1JlY29yZFR5cGUodHlwZSkpIHtcbiAgICAgIHZhbGlkYXRlUHJvcGVydGllcyh0eXBlTmFtZSwgdGVzdCwgdHlwZS5Qcm9wZXJ0aWVzLCBzcGVjaWZpY2F0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGVOYW1lLCB0ZXN0LCB7ICc8dGhpcz4nOiB0eXBlIH0sIHNwZWNpZmljYXRpb24pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXModHlwZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0OiBUZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsgW25hbWU6IHN0cmluZ106IHNjaGVtYS5Qcm9wZXJ0eSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljYXRpb246IFNwZWNpZmljYXRpb24pIHtcbiAgY29uc3QgZXhwZWN0ZWRLZXlzID0gWydEb2N1bWVudGF0aW9uJywgJ1JlcXVpcmVkJywgJ1VwZGF0ZVR5cGUnLCAnU2NydXRpbnlUeXBlJ107XG4gIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKSkge1xuXG4gICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW25hbWVdO1xuICAgIHRlc3Qubm90RXF1YWwocHJvcGVydHkuRG9jdW1lbnRhdGlvbiwgJycsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gaXMgZG9jdW1lbnRlZGApO1xuICAgIHRlc3Qub2soIXByb3BlcnR5LlVwZGF0ZVR5cGUgfHwgc2NoZW1hLmlzVXBkYXRlVHlwZShwcm9wZXJ0eS5VcGRhdGVUeXBlKSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgdmFsaWQgVXBkYXRlVHlwZWApO1xuICAgIGlmIChwcm9wZXJ0eS5TY3J1dGlueVR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGVzdC5vayhzY2hlbWEuaXNQcm9wZXJ0eVNjcnV0aW55VHlwZShwcm9wZXJ0eS5TY3J1dGlueVR5cGUpLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyB2YWxpZCBTY3J1dGlueVR5cGVgKTtcbiAgICB9XG5cbiAgICBpZiAoc2NoZW1hLmlzUHJpbWl0aXZlUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICB0ZXN0Lm9rKHNjaGVtYS5pc1ByaW1pdGl2ZVR5cGUocHJvcGVydHkuUHJpbWl0aXZlVHlwZSksIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gaGFzIGEgdmFsaWQgUHJpbWl0aXZlVHlwZWApO1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1ByaW1pdGl2ZVR5cGUnKTtcblxuICAgIH0gZWxzZSBpZiAoc2NoZW1hLmlzUHJpbWl0aXZlTGlzdFByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1R5cGUnLCAnRHVwbGljYXRlc0FsbG93ZWQnLCAnUHJpbWl0aXZlSXRlbVR5cGUnKTtcbiAgICAgIHRlc3Qub2soc2NoZW1hLmlzUHJpbWl0aXZlVHlwZShwcm9wZXJ0eS5QcmltaXRpdmVJdGVtVHlwZSksIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gaGFzIGEgdmFsaWQgUHJpbWl0aXZlSXRlbVR5cGVgKTtcblxuICAgIH0gZWxzZSBpZiAoc2NoZW1hLmlzUHJpbWl0aXZlTWFwUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICBleHBlY3RlZEtleXMucHVzaCgnVHlwZScsICdEdXBsaWNhdGVzQWxsb3dlZCcsICdQcmltaXRpdmVJdGVtVHlwZScsICdUeXBlJyk7XG4gICAgICB0ZXN0Lm9rKHNjaGVtYS5pc1ByaW1pdGl2ZVR5cGUocHJvcGVydHkuUHJpbWl0aXZlSXRlbVR5cGUpLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBhIHZhbGlkIFByaW1pdGl2ZUl0ZW1UeXBlYCk7XG4gICAgICB0ZXN0Lm9rKCFwcm9wZXJ0eS5EdXBsaWNhdGVzQWxsb3dlZCwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBkb2VzIG5vdCBhbGxvdyBkdXBsaWNhdGVzYCk7XG5cbiAgICB9IGVsc2UgaWYgKHNjaGVtYS5pc0NvbXBsZXhMaXN0UHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICBleHBlY3RlZEtleXMucHVzaCgnVHlwZScsICdEdXBsaWNhdGVzQWxsb3dlZCcsICdJdGVtVHlwZScsICdUeXBlJyk7XG4gICAgICB0ZXN0Lm9rKHByb3BlcnR5Lkl0ZW1UeXBlLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBhIHZhbGlkIEl0ZW1UeXBlYCk7XG4gICAgICBpZiAocHJvcGVydHkuSXRlbVR5cGUgIT09ICdUYWcnKSB7XG4gICAgICAgIGNvbnN0IGZxbiA9IGAke3R5cGVOYW1lLnNwbGl0KCcuJylbMF19LiR7cHJvcGVydHkuSXRlbVR5cGV9YDtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRUeXBlID0gc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzICYmIHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlc1tmcW5dO1xuICAgICAgICB0ZXN0Lm9rKHJlc29sdmVkVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBJdGVtVHlwZSAoJHtmcW59KSByZXNvbHZlc2ApO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmIChzY2hlbWEuaXNDb21wbGV4TWFwUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICBleHBlY3RlZEtleXMucHVzaCgnVHlwZScsICdEdXBsaWNhdGVzQWxsb3dlZCcsICdJdGVtVHlwZScsICdUeXBlJyk7XG4gICAgICB0ZXN0Lm9rKHByb3BlcnR5Lkl0ZW1UeXBlLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBhIHZhbGlkIEl0ZW1UeXBlYCk7XG4gICAgICBjb25zdCBmcW4gPSBgJHt0eXBlTmFtZS5zcGxpdCgnLicpWzBdfS4ke3Byb3BlcnR5Lkl0ZW1UeXBlfWA7XG4gICAgICBjb25zdCByZXNvbHZlZFR5cGUgPSBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXMgJiYgc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzW2Zxbl07XG4gICAgICB0ZXN0Lm9rKHJlc29sdmVkVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBJdGVtVHlwZSAoJHtmcW59KSByZXNvbHZlc2ApO1xuICAgICAgdGVzdC5vayghcHJvcGVydHkuRHVwbGljYXRlc0FsbG93ZWQsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gZG9lcyBub3QgYWxsb3cgZHVwbGljYXRlc2ApO1xuXG4gICAgfSBlbHNlIGlmIChzY2hlbWEuaXNDb21wbGV4UHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICBleHBlY3RlZEtleXMucHVzaCgnVHlwZScpO1xuICAgICAgdGVzdC5vayhwcm9wZXJ0eS5UeXBlLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBhIHZhbGlkIHR5cGVgKTtcbiAgICAgIGNvbnN0IGZxbiA9IGAke3R5cGVOYW1lLnNwbGl0KCcuJylbMF19LiR7cHJvcGVydHkuVHlwZX1gO1xuICAgICAgY29uc3QgcmVzb2x2ZWRUeXBlID0gc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzICYmIHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlc1tmcW5dO1xuICAgICAgdGVzdC5vayhyZXNvbHZlZFR5cGUsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gdHlwZSAoJHtmcW59KSByZXNvbHZlc2ApO1xuXG4gICAgfSBlbHNlIGlmIChzY2hlbWEuaXNVbmlvblByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1ByaW1pdGl2ZVR5cGVzJywgJ1ByaW1pdGl2ZUl0ZW1UeXBlcycsICdJdGVtVHlwZXMnLCAnVHlwZXMnKTtcbiAgICAgIGlmIChwcm9wZXJ0eS5QcmltaXRpdmVUeXBlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgcHJvcGVydHkuUHJpbWl0aXZlVHlwZXMpIHtcbiAgICAgICAgICB0ZXN0Lm9rKHNjaGVtYS5pc1ByaW1pdGl2ZVR5cGUodHlwZSksIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gaGFzIG9ubHkgdmFsaWQgUHJpbWl0aXZlVHlwZXNgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BlcnR5Lkl0ZW1UeXBlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgcHJvcGVydHkuSXRlbVR5cGVzKSB7XG4gICAgICAgICAgY29uc3QgZnFuID0gYCR7dHlwZU5hbWUuc3BsaXQoJy4nKVswXX0uJHt0eXBlfWA7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRUeXBlID0gc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzICYmIHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlc1tmcW5dO1xuICAgICAgICAgIHRlc3Qub2socmVzb2x2ZWRUeXBlLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IHR5cGUgKCR7ZnFufSkgcmVzb2x2ZXNgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb3BlcnR5LlR5cGVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBwcm9wZXJ0eS5UeXBlcykge1xuICAgICAgICAgIGNvbnN0IGZxbiA9IGAke3R5cGVOYW1lLnNwbGl0KCcuJylbMF19LiR7dHlwZX1gO1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlcyAmJiBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXNbZnFuXTtcbiAgICAgICAgICB0ZXN0Lm9rKHJlc29sdmVkVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSB0eXBlICgke2Zxbn0pIHJlc29sdmVzYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICB0ZXN0Lm9rKGZhbHNlLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBrbm93biB0eXBlYCk7XG4gICAgfVxuXG4gICAgdGVzdC5kZWVwRXF1YWwoXG4gICAgICAgIHdpdGhvdXQoT2JqZWN0LmtleXMocHJvcGVydHkpLCBleHBlY3RlZEtleXMpLCBbXSxcbiAgICAgICAgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgbm8gZXh0cmEgcHJvcGVydGllc2ApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXR0cmlidXRlcyh0eXBlTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Q6IFRlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBbbmFtZTogc3RyaW5nXTogc2NoZW1hLkF0dHJpYnV0ZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljYXRpb246IFNwZWNpZmljYXRpb24pIHtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMpKSB7XG4gICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1tuYW1lXTtcbiAgICB0ZXN0Lm9rKCgnVHlwZScgaW4gYXR0cmlidXRlKSAhPT0gKCdQcmltaXRpdmVUeXBlJyBpbiBhdHRyaWJ1dGUpKTtcbiAgICBpZiAoc2NoZW1hLmlzUHJpbWl0aXZlQXR0cmlidXRlKGF0dHJpYnV0ZSkpIHtcbiAgICAgIHRlc3Qub2soIXNjaGVtYS5pc0xpc3RBdHRyaWJ1dGUoYXR0cmlidXRlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBpcyBvbmx5IGEgUHJpbWl0aXZlIHR5cGVgKTtcbiAgICAgIHRlc3Qub2soc2NoZW1hLmlzUHJpbWl0aXZlVHlwZShhdHRyaWJ1dGUuUHJpbWl0aXZlVHlwZSksIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gaGFzIGEgdmFsaWQgUHJpbWl0aXZlVHlwZWApO1xuICAgICAgdGVzdC5vayghKCdQcmltaXRpdmVJdGVtVHlwZScgaW4gYXR0cmlidXRlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgbm8gUHJpbWl0aXZlSXRlbVR5cGVgKTtcbiAgICAgIHRlc3Qub2soISgnSXRlbVR5cGUnIGluIGF0dHJpYnV0ZSksIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gaGFzIG5vIEl0ZW1UeXBlYCk7XG4gICAgfSBlbHNlIGlmIChzY2hlbWEuaXNQcmltaXRpdmVMaXN0QXR0cmlidXRlKGF0dHJpYnV0ZSkpIHtcbiAgICAgIHRlc3Qub2soIXNjaGVtYS5pc0NvbXBsZXhMaXN0QXR0cmlidXRlKGF0dHJpYnV0ZSksIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gaXMgb25seSBhIExpc3Q8UHJpbWl0aXZlPiB0eXBlYCk7XG4gICAgICB0ZXN0Lm9rKHNjaGVtYS5pc1ByaW1pdGl2ZVR5cGUoYXR0cmlidXRlLlByaW1pdGl2ZUl0ZW1UeXBlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCBQcmltaXRpdmVJdGVtVHlwZWApO1xuICAgICAgdGVzdC5vayghKCdJdGVtVHlwZScgaW4gYXR0cmlidXRlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgbm8gSXRlbVR5cGVgKTtcbiAgICB9IGVsc2UgaWYgKHNjaGVtYS5pc0NvbXBsZXhMaXN0QXR0cmlidXRlKGF0dHJpYnV0ZSkpIHtcbiAgICAgIHRlc3Qub2soYXR0cmlidXRlLkl0ZW1UeXBlLCBgJHt0eXBlTmFtZX0uQXR0cmlidXRlcy4ke25hbWV9IGlzIGEgdmFsaWQgTGlzdDxDb21wbGV4PiB0eXBlYCk7XG4gICAgICBjb25zdCBmcW4gPSBgJHt0eXBlTmFtZS5zcGxpdCgnLicpWzBdfS4ke2F0dHJpYnV0ZS5JdGVtVHlwZX1gO1xuICAgICAgY29uc3QgcmVzb2x2ZWRUeXBlID0gc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzICYmIHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlc1tmcW5dO1xuICAgICAgdGVzdC5vayhyZXNvbHZlZFR5cGUsIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gSXRlbVR5cGUgKCR7ZnFufSkgcmVzb2x2ZXNgKTtcbiAgICAgIHRlc3Qub2soISgnUHJpbWl0aXZlSXRlbVR5cGUnIGluIGF0dHJpYnV0ZSksIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gaGFzIG5vIFByaW1pdGl2ZUl0ZW1UeXBlYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRlc3Qub2soZmFsc2UsIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gaGFzIGEgdmFsaWQgdHlwZWApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZSBlbGVtZW50cyBmcm9tIGEgc2V0XG4gKi9cbmZ1bmN0aW9uIHdpdGhvdXQ8VD4oeHM6IFRbXSwgLi4uc2V0czogVFtdW10pIHtcbiAgY29uc3QgcmV0ID0gbmV3IFNldCh4cyk7XG5cbiAgZm9yIChjb25zdCBzZXQgb2Ygc2V0cykge1xuICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBzZXQpIHtcbiAgICAgIGlmIChyZXQuaGFzKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldC5kZWxldGUoZWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEFycmF5LmZyb20ocmV0KTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3BlYy12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0Esd0NBQXdDO0FBRXhDLFNBQWdCLHFCQUFxQixDQUFDLElBQVUsRUFBRSxhQUFtQztJQUNuRixxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0MscUJBQXFCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFIRCxzREFHQztBQUVELFNBQVMscUJBQXFCLENBQUMsSUFBVSxFQUFFLGFBQW1DO0lBQzVFLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDL0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLGdCQUFnQixDQUFDLENBQUM7UUFDckUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLFFBQVEsbURBQW1ELENBQUMsQ0FBQztTQUMzSDtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUFFO1FBQzVGLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVB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RztBQUNILFNBQVMsT0FBTyxDQUFJLEVBQU8sRUFBRSxHQUFHLElBQVc7SUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDdEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxHQUFHLEVBQUU7WUFDekIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdCB9IGZyb20gJ25vZGV1bml0JztcbmltcG9ydCAqIGFzIHNjaGVtYSBmcm9tICcuLi9saWIvc2NoZW1hJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3BlY2lmaWNhdGlvbih0ZXN0OiBUZXN0LCBzcGVjaWZpY2F0aW9uOiBzY2hlbWEuU3BlY2lmaWNhdGlvbikge1xuICB2YWxpZGF0ZVJlc291cmNlVHlwZXModGVzdCwgc3BlY2lmaWNhdGlvbik7XG4gIHZhbGlkYXRlUHJvcGVydHlUeXBlcyh0ZXN0LCBzcGVjaWZpY2F0aW9uKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVSZXNvdXJjZVR5cGVzKHRlc3Q6IFRlc3QsIHNwZWNpZmljYXRpb246IHNjaGVtYS5TcGVjaWZpY2F0aW9uKSB7XG4gIGZvciAoY29uc3QgdHlwZU5hbWUgb2YgT2JqZWN0LmtleXMoc3BlY2lmaWNhdGlvbi5SZXNvdXJjZVR5cGVzKSkge1xuICAgIHRlc3Qub2sodHlwZU5hbWUsICdSZXNvdXJjZSB0eXBlIG5hbWUgaXMgbm90IGVtcHR5Jyk7XG4gICAgY29uc3QgdHlwZSA9IHNwZWNpZmljYXRpb24uUmVzb3VyY2VUeXBlc1t0eXBlTmFtZV07XG4gICAgdGVzdC5ub3RFcXVhbCh0eXBlLkRvY3VtZW50YXRpb24sIG51bGwsIGAke3R5cGVOYW1lfSBpcyBkb2N1bWVudGVkYCk7XG4gICAgaWYgKHR5cGUuU2NydXRpbnlUeXBlKSB7XG4gICAgICB0ZXN0Lm9rKHNjaGVtYS5pc1Jlc291cmNlU2NydXRpbnlUeXBlKHR5cGUuU2NydXRpbnlUeXBlKSwgYCR7dHlwZU5hbWV9LlNjcnV0aW55VHlwZSBpcyBub3QgYSB2YWxpZCBSZXNvdXJjZVNjcnV0aW55VHlwZWApO1xuICAgIH1cbiAgICBpZiAodHlwZS5Qcm9wZXJ0aWVzKSB7IHZhbGlkYXRlUHJvcGVydGllcyh0eXBlTmFtZSwgdGVzdCwgdHlwZS5Qcm9wZXJ0aWVzLCBzcGVjaWZpY2F0aW9uKTsgfVxuICAgIGlmICh0eXBlLkF0dHJpYnV0ZXMpIHsgdmFsaWRhdGVBdHRyaWJ1dGVzKHR5cGVOYW1lLCB0ZXN0LCB0eXBlLkF0dHJpYnV0ZXMsIHNwZWNpZmljYXRpb24pOyB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eVR5cGVzKHRlc3Q6IFRlc3QsIHNwZWNpZmljYXRpb246IHNjaGVtYS5TcGVjaWZpY2F0aW9uKSB7XG4gIGZvciAoY29uc3QgdHlwZU5hbWUgb2YgT2JqZWN0LmtleXMoc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzKSkge1xuICAgIHRlc3Qub2sodHlwZU5hbWUsICdQcm9wZXJ0eSB0eXBlIG5hbWUgaXMgbm90IGVtcHR5Jyk7XG4gICAgY29uc3QgdHlwZSA9IHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlc1t0eXBlTmFtZV07XG4gICAgaWYgKHNjaGVtYS5pc1JlY29yZFR5cGUodHlwZSkpIHtcbiAgICAgIHZhbGlkYXRlUHJvcGVydGllcyh0eXBlTmFtZSwgdGVzdCwgdHlwZS5Qcm9wZXJ0aWVzLCBzcGVjaWZpY2F0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGVOYW1lLCB0ZXN0LCB7ICc8dGhpcz4nOiB0eXBlIH0sIHNwZWNpZmljYXRpb24pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXModHlwZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0OiBUZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsgW25hbWU6IHN0cmluZ106IHNjaGVtYS5Qcm9wZXJ0eSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljYXRpb246IHNjaGVtYS5TcGVjaWZpY2F0aW9uKSB7XG4gIGNvbnN0IGV4cGVjdGVkS2V5cyA9IFsnRG9jdW1lbnRhdGlvbicsICdSZXF1aXJlZCcsICdVcGRhdGVUeXBlJywgJ1NjcnV0aW55VHlwZSddO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMocHJvcGVydGllcykpIHtcblxuICAgIGNvbnN0IHByb3BlcnR5ID0gcHJvcGVydGllc1tuYW1lXTtcbiAgICB0ZXN0Lm5vdEVxdWFsKHByb3BlcnR5LkRvY3VtZW50YXRpb24sICcnLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGlzIGRvY3VtZW50ZWRgKTtcbiAgICB0ZXN0Lm9rKCFwcm9wZXJ0eS5VcGRhdGVUeXBlIHx8IHNjaGVtYS5pc1VwZGF0ZVR5cGUocHJvcGVydHkuVXBkYXRlVHlwZSksIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gaGFzIHZhbGlkIFVwZGF0ZVR5cGVgKTtcbiAgICBpZiAocHJvcGVydHkuU2NydXRpbnlUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRlc3Qub2soc2NoZW1hLmlzUHJvcGVydHlTY3J1dGlueVR5cGUocHJvcGVydHkuU2NydXRpbnlUeXBlKSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgdmFsaWQgU2NydXRpbnlUeXBlYCk7XG4gICAgfVxuXG4gICAgaWYgKHNjaGVtYS5pc1ByaW1pdGl2ZVByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgdGVzdC5vayhzY2hlbWEuaXNQcmltaXRpdmVUeXBlKHByb3BlcnR5LlByaW1pdGl2ZVR5cGUpLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBhIHZhbGlkIFByaW1pdGl2ZVR5cGVgKTtcbiAgICAgIGV4cGVjdGVkS2V5cy5wdXNoKCdQcmltaXRpdmVUeXBlJyk7XG5cbiAgICB9IGVsc2UgaWYgKHNjaGVtYS5pc1ByaW1pdGl2ZUxpc3RQcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgIGV4cGVjdGVkS2V5cy5wdXNoKCdUeXBlJywgJ0R1cGxpY2F0ZXNBbGxvd2VkJywgJ1ByaW1pdGl2ZUl0ZW1UeXBlJyk7XG4gICAgICB0ZXN0Lm9rKHNjaGVtYS5pc1ByaW1pdGl2ZVR5cGUocHJvcGVydHkuUHJpbWl0aXZlSXRlbVR5cGUpLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBhIHZhbGlkIFByaW1pdGl2ZUl0ZW1UeXBlYCk7XG5cbiAgICB9IGVsc2UgaWYgKHNjaGVtYS5pc1ByaW1pdGl2ZU1hcFByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1R5cGUnLCAnRHVwbGljYXRlc0FsbG93ZWQnLCAnUHJpbWl0aXZlSXRlbVR5cGUnLCAnVHlwZScpO1xuICAgICAgdGVzdC5vayhzY2hlbWEuaXNQcmltaXRpdmVUeXBlKHByb3BlcnR5LlByaW1pdGl2ZUl0ZW1UeXBlKSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCBQcmltaXRpdmVJdGVtVHlwZWApO1xuICAgICAgdGVzdC5vayghcHJvcGVydHkuRHVwbGljYXRlc0FsbG93ZWQsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gZG9lcyBub3QgYWxsb3cgZHVwbGljYXRlc2ApO1xuXG4gICAgfSBlbHNlIGlmIChzY2hlbWEuaXNDb21wbGV4TGlzdFByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1R5cGUnLCAnRHVwbGljYXRlc0FsbG93ZWQnLCAnSXRlbVR5cGUnLCAnVHlwZScpO1xuICAgICAgdGVzdC5vayhwcm9wZXJ0eS5JdGVtVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCBJdGVtVHlwZWApO1xuICAgICAgaWYgKHByb3BlcnR5Lkl0ZW1UeXBlICE9PSAnVGFnJykge1xuICAgICAgICBjb25zdCBmcW4gPSBgJHt0eXBlTmFtZS5zcGxpdCgnLicpWzBdfS4ke3Byb3BlcnR5Lkl0ZW1UeXBlfWA7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlcyAmJiBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXNbZnFuXTtcbiAgICAgICAgdGVzdC5vayhyZXNvbHZlZFR5cGUsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gSXRlbVR5cGUgKCR7ZnFufSkgcmVzb2x2ZXNgKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoc2NoZW1hLmlzQ29tcGxleE1hcFByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1R5cGUnLCAnRHVwbGljYXRlc0FsbG93ZWQnLCAnSXRlbVR5cGUnLCAnVHlwZScpO1xuICAgICAgdGVzdC5vayhwcm9wZXJ0eS5JdGVtVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCBJdGVtVHlwZWApO1xuICAgICAgY29uc3QgZnFuID0gYCR7dHlwZU5hbWUuc3BsaXQoJy4nKVswXX0uJHtwcm9wZXJ0eS5JdGVtVHlwZX1gO1xuICAgICAgY29uc3QgcmVzb2x2ZWRUeXBlID0gc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzICYmIHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlc1tmcW5dO1xuICAgICAgdGVzdC5vayhyZXNvbHZlZFR5cGUsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gSXRlbVR5cGUgKCR7ZnFufSkgcmVzb2x2ZXNgKTtcbiAgICAgIHRlc3Qub2soIXByb3BlcnR5LkR1cGxpY2F0ZXNBbGxvd2VkLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGRvZXMgbm90IGFsbG93IGR1cGxpY2F0ZXNgKTtcblxuICAgIH0gZWxzZSBpZiAoc2NoZW1hLmlzQ29tcGxleFByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgZXhwZWN0ZWRLZXlzLnB1c2goJ1R5cGUnKTtcbiAgICAgIHRlc3Qub2socHJvcGVydHkuVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCB0eXBlYCk7XG4gICAgICBjb25zdCBmcW4gPSBgJHt0eXBlTmFtZS5zcGxpdCgnLicpWzBdfS4ke3Byb3BlcnR5LlR5cGV9YDtcbiAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlcyAmJiBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXNbZnFuXTtcbiAgICAgIHRlc3Qub2socmVzb2x2ZWRUeXBlLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IHR5cGUgKCR7ZnFufSkgcmVzb2x2ZXNgKTtcblxuICAgIH0gZWxzZSBpZiAoc2NoZW1hLmlzVW5pb25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcbiAgICAgIGV4cGVjdGVkS2V5cy5wdXNoKCdQcmltaXRpdmVUeXBlcycsICdQcmltaXRpdmVJdGVtVHlwZXMnLCAnSXRlbVR5cGVzJywgJ1R5cGVzJyk7XG4gICAgICBpZiAocHJvcGVydHkuUHJpbWl0aXZlVHlwZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIHByb3BlcnR5LlByaW1pdGl2ZVR5cGVzKSB7XG4gICAgICAgICAgdGVzdC5vayhzY2hlbWEuaXNQcmltaXRpdmVUeXBlKHR5cGUpLCBgJHt0eXBlTmFtZX0uUHJvcGVydGllcy4ke25hbWV9IGhhcyBvbmx5IHZhbGlkIFByaW1pdGl2ZVR5cGVzYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wZXJ0eS5JdGVtVHlwZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIHByb3BlcnR5Lkl0ZW1UeXBlcykge1xuICAgICAgICAgIGNvbnN0IGZxbiA9IGAke3R5cGVOYW1lLnNwbGl0KCcuJylbMF19LiR7dHlwZX1gO1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IHNwZWNpZmljYXRpb24uUHJvcGVydHlUeXBlcyAmJiBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXNbZnFuXTtcbiAgICAgICAgICB0ZXN0Lm9rKHJlc29sdmVkVHlwZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSB0eXBlICgke2Zxbn0pIHJlc29sdmVzYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwcm9wZXJ0eS5UeXBlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgcHJvcGVydHkuVHlwZXMpIHtcbiAgICAgICAgICBjb25zdCBmcW4gPSBgJHt0eXBlTmFtZS5zcGxpdCgnLicpWzBdfS4ke3R5cGV9YDtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFR5cGUgPSBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXMgJiYgc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzW2Zxbl07XG4gICAgICAgICAgdGVzdC5vayhyZXNvbHZlZFR5cGUsIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gdHlwZSAoJHtmcW59KSByZXNvbHZlc2ApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGVzdC5vayhmYWxzZSwgYCR7dHlwZU5hbWV9LlByb3BlcnRpZXMuJHtuYW1lfSBoYXMga25vd24gdHlwZWApO1xuICAgIH1cblxuICAgIHRlc3QuZGVlcEVxdWFsKFxuICAgICAgICB3aXRob3V0KE9iamVjdC5rZXlzKHByb3BlcnR5KSwgZXhwZWN0ZWRLZXlzKSwgW10sXG4gICAgICAgIGAke3R5cGVOYW1lfS5Qcm9wZXJ0aWVzLiR7bmFtZX0gaGFzIG5vIGV4dHJhIHByb3BlcnRpZXNgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUF0dHJpYnV0ZXModHlwZU5hbWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0OiBUZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgW25hbWU6IHN0cmluZ106IHNjaGVtYS5BdHRyaWJ1dGUgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2F0aW9uOiBzY2hlbWEuU3BlY2lmaWNhdGlvbikge1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMoYXR0cmlidXRlcykpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW25hbWVdO1xuICAgIHRlc3Qub2soKCdUeXBlJyBpbiBhdHRyaWJ1dGUpICE9PSAoJ1ByaW1pdGl2ZVR5cGUnIGluIGF0dHJpYnV0ZSkpO1xuICAgIGlmIChzY2hlbWEuaXNQcmltaXRpdmVBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuICAgICAgdGVzdC5vayghc2NoZW1hLmlzTGlzdEF0dHJpYnV0ZShhdHRyaWJ1dGUpLCBgJHt0eXBlTmFtZX0uQXR0cmlidXRlcy4ke25hbWV9IGlzIG9ubHkgYSBQcmltaXRpdmUgdHlwZWApO1xuICAgICAgdGVzdC5vayhzY2hlbWEuaXNQcmltaXRpdmVUeXBlKGF0dHJpYnV0ZS5QcmltaXRpdmVUeXBlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCBQcmltaXRpdmVUeXBlYCk7XG4gICAgICB0ZXN0Lm9rKCEoJ1ByaW1pdGl2ZUl0ZW1UeXBlJyBpbiBhdHRyaWJ1dGUpLCBgJHt0eXBlTmFtZX0uQXR0cmlidXRlcy4ke25hbWV9IGhhcyBubyBQcmltaXRpdmVJdGVtVHlwZWApO1xuICAgICAgdGVzdC5vayghKCdJdGVtVHlwZScgaW4gYXR0cmlidXRlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgbm8gSXRlbVR5cGVgKTtcbiAgICB9IGVsc2UgaWYgKHNjaGVtYS5pc1ByaW1pdGl2ZUxpc3RBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuICAgICAgdGVzdC5vayghc2NoZW1hLmlzQ29tcGxleExpc3RBdHRyaWJ1dGUoYXR0cmlidXRlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBpcyBvbmx5IGEgTGlzdDxQcmltaXRpdmU+IHR5cGVgKTtcbiAgICAgIHRlc3Qub2soc2NoZW1hLmlzUHJpbWl0aXZlVHlwZShhdHRyaWJ1dGUuUHJpbWl0aXZlSXRlbVR5cGUpLCBgJHt0eXBlTmFtZX0uQXR0cmlidXRlcy4ke25hbWV9IGhhcyBhIHZhbGlkIFByaW1pdGl2ZUl0ZW1UeXBlYCk7XG4gICAgICB0ZXN0Lm9rKCEoJ0l0ZW1UeXBlJyBpbiBhdHRyaWJ1dGUpLCBgJHt0eXBlTmFtZX0uQXR0cmlidXRlcy4ke25hbWV9IGhhcyBubyBJdGVtVHlwZWApO1xuICAgIH0gZWxzZSBpZiAoc2NoZW1hLmlzQ29tcGxleExpc3RBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuICAgICAgdGVzdC5vayhhdHRyaWJ1dGUuSXRlbVR5cGUsIGAke3R5cGVOYW1lfS5BdHRyaWJ1dGVzLiR7bmFtZX0gaXMgYSB2YWxpZCBMaXN0PENvbXBsZXg+IHR5cGVgKTtcbiAgICAgIGNvbnN0IGZxbiA9IGAke3R5cGVOYW1lLnNwbGl0KCcuJylbMF19LiR7YXR0cmlidXRlLkl0ZW1UeXBlfWA7XG4gICAgICBjb25zdCByZXNvbHZlZFR5cGUgPSBzcGVjaWZpY2F0aW9uLlByb3BlcnR5VHlwZXMgJiYgc3BlY2lmaWNhdGlvbi5Qcm9wZXJ0eVR5cGVzW2Zxbl07XG4gICAgICB0ZXN0Lm9rKHJlc29sdmVkVHlwZSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBJdGVtVHlwZSAoJHtmcW59KSByZXNvbHZlc2ApO1xuICAgICAgdGVzdC5vayghKCdQcmltaXRpdmVJdGVtVHlwZScgaW4gYXR0cmlidXRlKSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgbm8gUHJpbWl0aXZlSXRlbVR5cGVgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGVzdC5vayhmYWxzZSwgYCR7dHlwZU5hbWV9LkF0dHJpYnV0ZXMuJHtuYW1lfSBoYXMgYSB2YWxpZCB0eXBlYCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGVsZW1lbnRzIGZyb20gYSBzZXRcbiAqL1xuZnVuY3Rpb24gd2l0aG91dDxUPih4czogVFtdLCAuLi5zZXRzOiBUW11bXSkge1xuICBjb25zdCByZXQgPSBuZXcgU2V0KHhzKTtcblxuICBmb3IgKGNvbnN0IHNldCBvZiBzZXRzKSB7XG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHNldCkge1xuICAgICAgaWYgKHJldC5oYXMoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0LmRlbGV0ZShlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gQXJyYXkuZnJvbShyZXQpO1xufVxuIl19

@@ -27,2 +27,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdWdtZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LmF1Z21lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUEwQjtBQUUxQiw2QkFBOEI7QUFDOUIsa0NBQW1DO0FBQ25DLDBDQUEyQztBQUUzQyxTQUFTLHdCQUF3QixDQUFDLFFBQWdCO0lBQ2hELE9BQU8sQ0FBQyxJQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUSxFQUFFLHlCQUF5QixLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDMUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLEVBQUUsMEJBQTBCLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM3RyxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUUsNkJBQTZCLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQVUsQ0FBQyxNQUFNLEVBQUUsbUJBQVUsQ0FBQyxLQUFLLEVBQUUsbUJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUNoSCwyQkFBMkIsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDN0M7U0FDRjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUM5RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtJQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sQ0FBQyxvQ0FBb0MsUUFBUSxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUM5RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgeyBUZXN0IH0gZnJvbSAnbm9kZXVuaXQnO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5pbXBvcnQgY2Zuc3BlYyA9IHJlcXVpcmUoJy4uL2xpYicpO1xuaW1wb3J0IHsgTWV0cmljVHlwZSB9IGZyb20gJy4uL2xpYi9zY2hlbWEnO1xuXG5mdW5jdGlvbiByZXNvdXJjZUF1Z21lbnRhdGlvblRlc3QocmVzb3VyY2U6IHN0cmluZykge1xuICByZXR1cm4gKHRlc3Q6IFRlc3QpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGNmbnNwZWMucmVzb3VyY2VBdWdtZW50YXRpb24ocmVzb3VyY2UpO1xuXG4gICAgaWYgKG1vZGVsLm1ldHJpY3MpIHtcbiAgICAgIHRlc3Qub2sodHlwZW9mKG1vZGVsLm1ldHJpY3MubmFtZXNwYWNlKSA9PT0gJ3N0cmluZycsIGBuYW1lc3BhY2UgaXMgaW52YWxpZDogJHttb2RlbC5tZXRyaWNzLm5hbWVzcGFjZX1gKTtcbiAgICAgIHRlc3Qub2sodHlwZW9mKG1vZGVsLm1ldHJpY3MuZGltZW5zaW9ucykgPT09ICdvYmplY3QnLCBgZGltZW5zaW9ucyBpcyBpbnZhbGlkOiAke21vZGVsLm1ldHJpY3MuZGltZW5zaW9uc31gKTtcbiAgICAgIGZvciAoY29uc3QgbWV0cmljIG9mIG1vZGVsLm1ldHJpY3MubWV0cmljcykge1xuICAgICAgICB0ZXN0Lm9rKHR5cGVvZiBtZXRyaWMubmFtZSA9PT0gJ3N0cmluZycsIGBuYW1lIGlzIGludmFsaWQ6ICR7bWV0cmljLm5hbWV9YCk7XG4gICAgICAgIHRlc3Qub2sodHlwZW9mIG1ldHJpYy5kb2N1bWVudGF0aW9uID09PSAnc3RyaW5nJywgYGRvY3VtZW50YXRpb24gaXMgaW52YWxpZDogJHttZXRyaWMuZG9jdW1lbnRhdGlvbn1gKTtcbiAgICAgICAgdGVzdC5vayhtZXRyaWMudHlwZSA9PT0gdW5kZWZpbmVkIHx8IFtNZXRyaWNUeXBlLkF0dHJpYiwgTWV0cmljVHlwZS5Db3VudCwgTWV0cmljVHlwZS5HYXVnZV0uaW5jbHVkZXMobWV0cmljLnR5cGUpLFxuICAgICAgICAgIGBNZXRyaWMgVHlwZSBpcyBpbnZhbGlkOiAke21ldHJpYy50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfTtcbn1cblxuY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vbGliL2F1Z21lbnRhdGlvbnMnKSk7XG5mb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgY29uc3QgcmVzb3VyY2UgPSBmaWxlLnJlcGxhY2UoL1xcLmpzb24kLywgJycpLnJlcGxhY2UoL18vZywgJzo6Jyk7XG4gIGV4cG9ydHNbYFZhbGlkYXRlIGF1Z21lbnRhdGlvbiBzY2hlbWEgZm9yICR7cmVzb3VyY2V9YF0gPSByZXNvdXJjZUF1Z21lbnRhdGlvblRlc3QocmVzb3VyY2UpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdWdtZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LmF1Z21lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUV6Qiw2QkFBNkI7QUFDN0Isa0NBQWtDO0FBQ2xDLDBDQUEyQztBQUUzQyxTQUFTLHdCQUF3QixDQUFDLFFBQWdCO0lBQ2hELE9BQU8sQ0FBQyxJQUFVLEVBQUUsRUFBRTtRQUNwQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUSxFQUFFLHlCQUF5QixLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDMUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLEVBQUUsMEJBQTBCLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUM3RyxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsb0JBQW9CLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUUsNkJBQTZCLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsbUJBQVUsQ0FBQyxNQUFNLEVBQUUsbUJBQVUsQ0FBQyxLQUFLLEVBQUUsbUJBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUNoSCwyQkFBMkIsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDN0M7U0FDRjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUM5RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtJQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sQ0FBQyxvQ0FBb0MsUUFBUSxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUM5RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2Zuc3BlYyBmcm9tICcuLi9saWInO1xuaW1wb3J0IHsgTWV0cmljVHlwZSB9IGZyb20gJy4uL2xpYi9zY2hlbWEnO1xuXG5mdW5jdGlvbiByZXNvdXJjZUF1Z21lbnRhdGlvblRlc3QocmVzb3VyY2U6IHN0cmluZykge1xuICByZXR1cm4gKHRlc3Q6IFRlc3QpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGNmbnNwZWMucmVzb3VyY2VBdWdtZW50YXRpb24ocmVzb3VyY2UpO1xuXG4gICAgaWYgKG1vZGVsLm1ldHJpY3MpIHtcbiAgICAgIHRlc3Qub2sodHlwZW9mKG1vZGVsLm1ldHJpY3MubmFtZXNwYWNlKSA9PT0gJ3N0cmluZycsIGBuYW1lc3BhY2UgaXMgaW52YWxpZDogJHttb2RlbC5tZXRyaWNzLm5hbWVzcGFjZX1gKTtcbiAgICAgIHRlc3Qub2sodHlwZW9mKG1vZGVsLm1ldHJpY3MuZGltZW5zaW9ucykgPT09ICdvYmplY3QnLCBgZGltZW5zaW9ucyBpcyBpbnZhbGlkOiAke21vZGVsLm1ldHJpY3MuZGltZW5zaW9uc31gKTtcbiAgICAgIGZvciAoY29uc3QgbWV0cmljIG9mIG1vZGVsLm1ldHJpY3MubWV0cmljcykge1xuICAgICAgICB0ZXN0Lm9rKHR5cGVvZiBtZXRyaWMubmFtZSA9PT0gJ3N0cmluZycsIGBuYW1lIGlzIGludmFsaWQ6ICR7bWV0cmljLm5hbWV9YCk7XG4gICAgICAgIHRlc3Qub2sodHlwZW9mIG1ldHJpYy5kb2N1bWVudGF0aW9uID09PSAnc3RyaW5nJywgYGRvY3VtZW50YXRpb24gaXMgaW52YWxpZDogJHttZXRyaWMuZG9jdW1lbnRhdGlvbn1gKTtcbiAgICAgICAgdGVzdC5vayhtZXRyaWMudHlwZSA9PT0gdW5kZWZpbmVkIHx8IFtNZXRyaWNUeXBlLkF0dHJpYiwgTWV0cmljVHlwZS5Db3VudCwgTWV0cmljVHlwZS5HYXVnZV0uaW5jbHVkZXMobWV0cmljLnR5cGUpLFxuICAgICAgICAgIGBNZXRyaWMgVHlwZSBpcyBpbnZhbGlkOiAke21ldHJpYy50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfTtcbn1cblxuY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vbGliL2F1Z21lbnRhdGlvbnMnKSk7XG5mb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgY29uc3QgcmVzb3VyY2UgPSBmaWxlLnJlcGxhY2UoL1xcLmpzb24kLywgJycpLnJlcGxhY2UoL18vZywgJzo6Jyk7XG4gIGV4cG9ydHNbYFZhbGlkYXRlIGF1Z21lbnRhdGlvbiBzY2hlbWEgZm9yICR7cmVzb3VyY2V9YF0gPSByZXNvdXJjZUF1Z21lbnRhdGlvblRlc3QocmVzb3VyY2UpO1xufVxuIl19

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc