@nlabs/lex 1.37.7 → 1.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +1 -0
- package/.postcssrc.js +39 -29
- package/dist/LexConfig.js +31 -48
- package/dist/commands/build.js +35 -60
- package/dist/commands/bulid.test.js +3 -3
- package/dist/commands/clean.js +14 -37
- package/dist/commands/compile.js +60 -78
- package/dist/commands/config.js +18 -47
- package/dist/commands/copy.js +14 -40
- package/dist/commands/create.js +45 -69
- package/dist/commands/dev.js +23 -47
- package/dist/commands/init.js +26 -50
- package/dist/commands/link.js +9 -32
- package/dist/commands/lint.js +20 -44
- package/dist/commands/migrate.js +15 -41
- package/dist/commands/publish.js +27 -53
- package/dist/commands/test.js +21 -45
- package/dist/commands/update.js +15 -41
- package/dist/commands/upgrade.js +21 -47
- package/dist/commands/versions.js +17 -43
- package/dist/create/changelog.js +26 -50
- package/dist/lex.js +34 -20
- package/dist/resolver.js +12 -6
- package/dist/utils/app.js +60 -86
- package/dist/utils/file.js +14 -39
- package/dist/utils/log.js +9 -35
- package/dist/utils/reactShim.js +4 -30
- package/jest.config.lex.js +5 -0
- package/jest.setup.js +1 -1
- package/package.json +62 -60
- package/tsconfig/reactNative.json +30 -0
- package/tsconfig/web.json +0 -0
- package/tsconfig.template.json +0 -1
- package/webpack.config.js +3 -2
- package/dist/commands/index.js +0 -70
package/dist/lex.js
CHANGED
|
@@ -1,36 +1,50 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { program } from "commander";
|
|
3
|
+
import packageJson from "../package.json" assert { type: "json" };
|
|
4
|
+
import { build } from "./commands/build.js";
|
|
5
|
+
import { clean } from "./commands/clean.js";
|
|
6
|
+
import { compile } from "./commands/compile.js";
|
|
7
|
+
import { config } from "./commands/config.js";
|
|
8
|
+
import { create } from "./commands/create.js";
|
|
9
|
+
import { dev } from "./commands/dev.js";
|
|
10
|
+
import { init } from "./commands/init.js";
|
|
11
|
+
import { linked } from "./commands/link.js";
|
|
12
|
+
import { lint } from "./commands/lint.js";
|
|
13
|
+
import { migrate } from "./commands/migrate.js";
|
|
14
|
+
import { publish } from "./commands/publish.js";
|
|
15
|
+
import { test } from "./commands/test.js";
|
|
16
|
+
import { update } from "./commands/update.js";
|
|
17
|
+
import { upgrade } from "./commands/upgrade.js";
|
|
18
|
+
import { versions } from "./commands/versions.js";
|
|
19
|
+
program.command("build").option("-c, --config <path>", "Custom Webpack configuration file path (ie. webpack.config.js).").option("-l, --lexConfig <path>", "Lex configuration file path (lex.config.js).").option("-m, --mode <type>", 'Webpack mode ("production" or "development"). Default: "development".', /^(development|production)$/i, "development").option("-q, --quiet", "No Lex notifications printed in the console.").option("-r, --remove", "Removes all files from the output directory before compiling.").option("-s, --static", "Creates static HTML files when building app.").option("-t, --typescript", "Transpile as Typescript.").option("-v, --variables <name>", `Environment variables to set in "process.env". (ie. "{NODE_ENV: 'production'}").`).option("-w, --watch", "Watch for changes.").option("--bundler <name>", 'Bundler to use ("webpack" or "esbuild"). Default: "webpack".', /^(webpack|esbuild)$/i, "webpack").option("--sourcePath <path>", "Source path").option("--outputPath <path>", "Output path").option("--outputChunkFilename <filename>", "The output filename for additional chunks.").option("--outputFilename <filename>", 'The output filename of the bundle. Default: "[name].js".').option("--outputJsonpFunction <func>", 'The name of the JSONP function used for chunk loading. Default: "webpackJsonp".').option("--outputLibrary <library>", "Expose the exports of the entry point as library.").option("--outputLibraryTarget <target>", 'The type for exposing the exports of the entry point as library. Default: "var".').option("--outputPathInfo <hasInfo>", "The output filename for additional chunks. Default: false").option("--outputPublicPath <path>", 'The public path for the assets. Default: "/"').option("--outputSourceMapFilename <filename>", 'The output filename for the SourceMap. Default: "[name].map"').option("--buildDelimiter <delimiter>", 'Display custom text after build output. Default: "=== Build done ==="').action((cmd) => build(cmd, process.exit).then(() => {
|
|
6
20
|
}));
|
|
7
|
-
|
|
21
|
+
program.command("clean").option("-q, --quiet", "No Lex notifications printed in the console.").option("-s, --snapshots", 'Remove all "__snapshots__" directories.').action((cmd) => clean(cmd, process.exit).then(() => {
|
|
8
22
|
}));
|
|
9
|
-
|
|
23
|
+
program.command("config <type>").option("-q, --quiet", "No Lex notifications printed in the console.").option("--json <path>", "Save output to json file.").action((type, cmd) => config(type, cmd, process.exit).then(() => {
|
|
10
24
|
}));
|
|
11
|
-
|
|
25
|
+
program.command("compile").option("-c, --config <path>", "Transpiler configuration file path (ie. .flowconfig or tsconfig.json).").option("-e, --environment <name>", 'Target environment. "node" or "web". Default: "node".').option("-l, --lexConfig <path>", "Custom Lex configuration file path (ie. lex.config.js).").option("-r, --remove", "Removes all files from the output directory before compiling.").option("-t, --typescript", "Transpile as Typescript.").option("-q, --quiet", "No Lex notifications printed in the console.").option("-w, --watch", "Watches for changes and compiles.").option("--sourcePath <path>", "Source path").option("--outputPath <path>", "Output path").action((cmd) => compile(cmd, process.exit).then(() => {
|
|
12
26
|
}));
|
|
13
|
-
|
|
27
|
+
program.command("create <type>").option("-q, --quiet", "No Lex notifications printed in the console.").option("-t, --typescript", "Create Typescript version.").option("--outputFile <path>", "Output filename.").option("--outputName <name>", "Output name.").action((type, cmd) => create(type, cmd, process.exit).then(() => {
|
|
14
28
|
}));
|
|
15
|
-
|
|
29
|
+
program.command("dev").option("-c, --config <path>", "Custom Webpack configuration file path (ie. webpack.config.js).").option("-l, --lexConfig <path>", "Custom Lex configuration file path (ie. lex.config.js).").option("-o, --open", "Automatically open dev server in a new browser window.").option("-q, --quiet", "No Lex notifications printed in the console.").option("-r, --remove", "Removes all files from the output directory before compiling.").option("-t, --typescript", "Transpile as Typescript.").option("-v, --variables <name>", `Environment variables to set in "process.env". (ie. "{NODE_ENV: 'development'}").`).option("-w, --watch", "Watch for changes.").option("--bundleAnalyzer", "Run bundle analyzer.").option("--sourcePath <path>", "Source path").option("--outputPath <path>", "Output path").action((cmd) => dev(cmd, process.exit).then(() => {
|
|
16
30
|
}));
|
|
17
|
-
|
|
31
|
+
program.command("init <appName> [packageName]").option("-i, --install", "Install dependencies.").option("-m, --package-manager <manager>", "Which package manager to use. Default: npm", /^(npm|yarn)$/i, "npm").option("-q, --quiet", "No Lex notifications printed in the console.").option("-t, --typescript", "Use a Typescript based app.").action((appName, packageName, cmd) => init(appName, packageName, cmd, process.exit).then(() => {
|
|
18
32
|
}));
|
|
19
|
-
|
|
33
|
+
program.command("linked").option("-q, --quiet", "No Lex notifications printed in the console.").action((cmd) => linked(cmd, process.exit).then(() => {
|
|
20
34
|
}));
|
|
21
|
-
|
|
35
|
+
program.command("lint").option("--cache", "Only check changed files. Default: false.").option("--cache-location <path>", "Path to the cache file or directory.").option("--color", "Force enabling of color.").option("--config <path>", "Use this configuration, overriding .eslintrc.* config options if present.").option("--debug", "Output debugging information.").option("--env-info", "Output execution environment information. Default: false.").option("--env <name>", "Specify environments.").option("--ext <type>", "Specify JavaScript file extensions. Default: .js.").option("--fix", "Automatically fix problems.").option("--fix-dry-run", "Automatically fix problems without saving the changes to the file system.").option("--fix-type <type>", "Specify the types of fixes to apply (problem, suggestion, layout).").option("--format <name>", "Use a specific output format. Default: stylish.").option("--global <variables>", "Define global variables.").option("--ignore-path <path>", "Specify path of ignore file.").option("--ignore-pattern <pattern>", "Pattern of files to ignore (in addition to those in .eslintignore).").option("--init", "Run config initialization wizard. Default: false.").option("--max-warnings <num>", "Number of warnings to trigger nonzero exit code. Default: -1.").option("--no-color", "Force disabling of color.").option("--no-eslintrc", "Disable use of configuration from .eslintrc.*.").option("--no-ignore", "Disable use of ignore files and patterns.").option("--no-inline-config", "Prevent comments from changing config or rules.").option("--output-file <path>", "Specify file to write report to.").option("--parser <name>", "Specify the parser to be used.").option("--parser-options <options>", "Specify parser options.").option("--plugin <plugins>", "Specify plugins.").option("--print-config <path>", "Print the configuration for the given file.").option("-q, --quiet", "No Lex notifications printed in the console.").option("--report-unused-disable-directives", "Adds reported errors for unused eslint-disable directives.").option("--resolve-plugins-relative-to <path>", "A folder where plugins should be resolved from.").option("--rule <path>", "Specify rules.").option("--rulesdir <path>", "Use additional rules from this directory.").option("--stdin", "Lint code provided on <STDIN> - Default: false.").option("--stdin-filename <name>", "Specify filename to process STDIN as.").action((cmd) => lint(cmd, process.exit).then(() => {
|
|
22
36
|
}));
|
|
23
|
-
|
|
37
|
+
program.command("migrate").option("-q, --quiet", "No Lex notifications printed in the console.").action((cmd) => migrate(cmd, process.exit).then(() => {
|
|
24
38
|
}));
|
|
25
|
-
|
|
39
|
+
program.command("publish").option("-b, --bump <type>", 'Increments the version. Types include: major, minor, patch, beta, alpha, rc. Default: "patch"., ', /^(major|minor|patch|beta|alpha|rc)$/i, "patch").option("-o, --otp <code>", "Provide a two-factor code.").option("-q, --quiet", "No Lex notifications printed in the console.").option("-p, --private", "Publishes the module as restricted.").option("-m, --package-manager <manager>", "Which package manager to use. Default: npm", /^(npm|yarn)$/i, "npm").option("-t, --tag <tag>", "Registers the published package with the given tag.").option("-v, --new-version <versionNumber>", "Publish as a specific version.").action((cmd) => publish(cmd, process.exit).then(() => {
|
|
26
40
|
}));
|
|
27
|
-
|
|
41
|
+
program.command("test").option("-c, --config <path>", "Custom Jest configuration file path (ie. jest.config.js).").option("-d, --detectOpenHandles", "Attempt to collect and print open handles preventing Jest from exiting cleanly").option("-e, --environment <name>", 'Target environment. "node" or "web". Default: "node".').option("-l, --lexConfig <path>", "Custom Lex configuration file path (ie. lex.config.js).").option("-q, --quiet", "No Lex notifications printed in the console.").option("-r, --clearCache", "Clear Jest cache.").option("-s, --setup <path>", "Jest setup file path.").option("-t, --typescript", "Transpile as Typescript.").option("-u, --update", 'Update snapshots. Runs "jest --updateSnapshots"').option("-w, --watch <path>", "Watch files for changes and rerun tests related to changed files.").option("--bail", "Exit the test suite immediately upon the first failing test suite.").option("--changedFilesWithAncestor", "Runs tests related to the current changes and the changes made in the last commit.").option("--changedSince", "Runs tests related the changes since the provided branch.").option("--ci", "When this option is provided, Jest will assume it is running in a CI environment.").option("--collectCoverageFrom <glob>", "A glob pattern relative to matching the files that coverage info needs to be collected from.").option("--colors", "Forces test results output highlighting even if stdout is not a TTY.").option("--debug", "Print debugging info about your Jest config.").option("--detectOpenHandles", "Attempt to collect and print open handles preventing Jest from exiting cleanly.").option("--env", "The test environment used for all tests. This can point to any file or node module. Examples: jsdom, node or path/to/my-environment.js.").option("--errorOnDeprecated", "Make calling deprecated APIs throw helpful error messages.").option("--expand", "Use this flag to show full diffs and errors instead of a patch.").option("--forceExit", "Force Jest to exit after all tests have completed running.").option("--json", "Prints the test results in JSON.").option("--lastCommit", "Run all tests affected by file changes in the last commit made.").option("--listTests", "Lists all tests as JSON that Jest will run given the arguments, and exits.").option("--logHeapUsage", "Logs the heap usage after every test.").option("--maxWorkers <num>", "Specifies the maximum number of workers the worker-pool will spawn for running tests. ").option("--noStackTrace", "Disables stack trace in test results output.").option("--notify", "Activates notifications for test results.").option("--onlyChanged", "un based on which files have changed in the current repository. ").option("--outputFile <filename>", "Write test results to a file when the --json option is also specified.").option("--passWithNoTests", "Allows the test suite to pass when no files are found.").option("--runInBand", "Run all tests serially in the current process, rather than creating a worker pool of child processes that run tests.").option("--showConfig", "Print your Jest config and then exits.").option("--silent", "Prevent tests from printing messages through the console.").option("--testLocationInResults", "Adds a location field to test results.").option("--testNamePattern <regex>", "Run only tests with a name that matches the regex. ").option("--testPathPattern <regex>", "A regexp pattern string that is matched against all tests paths before executing the test.").option("--useStderr", "Divert all output to stderr.").option("--verbose", "Display individual test results with the test suite hierarchy.").option("--watchAll", "Watch files for changes and rerun all tests when something changes.").action((cmd) => test(cmd, process.exit).then(() => {
|
|
28
42
|
}));
|
|
29
|
-
|
|
43
|
+
program.command("update").option("-i, --interactive", "Choose which packages to update.").option("-m, --package-manager <manager>", "Which package manager to use. Default: npm", /^(npm|yarn)$/i, "npm").option("-q, --quiet", "No Lex notifications printed in the console.").option("--registry", "Add a custom registry url.").action((cmd) => update(cmd, process.exit).then(() => {
|
|
30
44
|
}));
|
|
31
|
-
|
|
45
|
+
program.command("upgrade").option("-m, --package-manager <manager>", "Which package manager to use. Default: npm", /^(npm|yarn)$/i, "npm").option("-q, --quiet", "No Lex notifications printed in the console.").action((cmd) => upgrade(cmd, process.exit).then(() => {
|
|
32
46
|
}));
|
|
33
|
-
|
|
47
|
+
program.command("versions").option("-j, --json", "Print the version as a JSON object.").action((cmd) => versions(cmd, process.exit).then(() => {
|
|
34
48
|
}));
|
|
35
|
-
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cHJvZ3JhbX0gZnJvbSAnY29tbWFuZGVyJztcblxuaW1wb3J0IHtcbiAgYnVpbGQsXG4gIGNsZWFuLFxuICBjb21waWxlLFxuICBjb25maWcsXG4gIGNyZWF0ZSxcbiAgZGV2LFxuICBpbml0LFxuICBsaW5rZWQsXG4gIGxpbnQsXG4gIG1pZ3JhdGUsXG4gIHB1Ymxpc2gsXG4gIHRlc3QsXG4gIHVwZGF0ZSxcbiAgdXBncmFkZSxcbiAgdmVyc2lvbnNcbn0gZnJvbSAnLi9jb21tYW5kcyc7XG5cbmNvbnN0IHBhY2thZ2VDb25maWcgPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKTtcblxuLy8gQ29tbWFuZHNcbnByb2dyYW0uY29tbWFuZCgnYnVpbGQnKVxuICAub3B0aW9uKCctYywgLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBXZWJwYWNrIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gd2VicGFjay5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChsZXguY29uZmlnLmpzKS4nKVxuICAub3B0aW9uKCctbSwgLS1tb2RlIDx0eXBlPicsICdXZWJwYWNrIG1vZGUgKFwicHJvZHVjdGlvblwiIG9yIFwiZGV2ZWxvcG1lbnRcIikuIERlZmF1bHQ6IFwiZGV2ZWxvcG1lbnRcIi4nLCAvXihkZXZlbG9wbWVudHxwcm9kdWN0aW9uKSQvaSwgJ2RldmVsb3BtZW50JylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctciwgLS1yZW1vdmUnLCAnUmVtb3ZlcyBhbGwgZmlsZXMgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgY29tcGlsaW5nLicpXG4gIC5vcHRpb24oJy1zLCAtLXN0YXRpYycsICdDcmVhdGVzIHN0YXRpYyBIVE1MIGZpbGVzIHdoZW4gYnVpbGRpbmcgYXBwLicpXG4gIC5vcHRpb24oJy10LCAtLXR5cGVzY3JpcHQnLCAnVHJhbnNwaWxlIGFzIFR5cGVzY3JpcHQuJylcbiAgLm9wdGlvbignLXYsIC0tdmFyaWFibGVzIDxuYW1lPicsICdFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IGluIFwicHJvY2Vzcy5lbnZcIi4gKGllLiBcIntOT0RFX0VOVjogXFwncHJvZHVjdGlvblxcJ31cIikuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJylcbiAgLm9wdGlvbignLS1idW5kbGVyIDxuYW1lPicsICdCdW5kbGVyIHRvIHVzZSAoXCJ3ZWJwYWNrXCIgb3IgXCJlc2J1aWxkXCIpLiBEZWZhdWx0OiBcIndlYnBhY2tcIi4nLCAvXih3ZWJwYWNrfGVzYnVpbGQpJC9pLCAnd2VicGFjaycpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLm9wdGlvbignLS1vdXRwdXRDaHVua0ZpbGVuYW1lIDxmaWxlbmFtZT4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBmb3IgYWRkaXRpb25hbCBjaHVua3MuJylcbiAgLm9wdGlvbignLS1vdXRwdXRGaWxlbmFtZSA8ZmlsZW5hbWU+JywgJ1RoZSBvdXRwdXQgZmlsZW5hbWUgb2YgdGhlIGJ1bmRsZS4gRGVmYXVsdDogXCJbbmFtZV0uanNcIi4nKVxuICAub3B0aW9uKCctLW91dHB1dEpzb25wRnVuY3Rpb24gPGZ1bmM+JywgJ1RoZSBuYW1lIG9mIHRoZSBKU09OUCBmdW5jdGlvbiB1c2VkIGZvciBjaHVuayBsb2FkaW5nLiBEZWZhdWx0OiBcIndlYnBhY2tKc29ucFwiLicpXG4gIC5vcHRpb24oJy0tb3V0cHV0TGlicmFyeSA8bGlicmFyeT4nLCAnRXhwb3NlIHRoZSBleHBvcnRzIG9mIHRoZSBlbnRyeSBwb2ludCBhcyBsaWJyYXJ5LicpXG4gIC5vcHRpb24oJy0tb3V0cHV0TGlicmFyeVRhcmdldCA8dGFyZ2V0PicsICdUaGUgdHlwZSBmb3IgZXhwb3NpbmcgdGhlIGV4cG9ydHMgb2YgdGhlIGVudHJ5IHBvaW50IGFzIGxpYnJhcnkuIERlZmF1bHQ6IFwidmFyXCIuJylcbiAgLm9wdGlvbignLS1vdXRwdXRQYXRoaW5mbyA8aGFzSW5mbz4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBmb3IgYWRkaXRpb25hbCBjaHVua3MuIERlZmF1bHQ6IGZhbHNlJylcbiAgLm9wdGlvbignLS1vdXRwdXRQdWJsaWNQYXRoIDxwYXRoPicsICdUaGUgcHVibGljIHBhdGggZm9yIHRoZSBhc3NldHMuIERlZmF1bHQ6IFwiL1wiJylcbiAgLm9wdGlvbignLS1vdXRwdXRTb3VyY2VNYXBGaWxlbmFtZSA8ZmlsZW5hbWU+JywgJ1RoZSBvdXRwdXQgZmlsZW5hbWUgZm9yIHRoZSBTb3VyY2VNYXAuIERlZmF1bHQ6IFwiW25hbWVdLm1hcFwiJylcbiAgLm9wdGlvbignLS1idWlsZERlbGltaXRlciA8ZGVsaW1pdGVyPicsICdEaXNwbGF5IGN1c3RvbSB0ZXh0IGFmdGVyIGJ1aWxkIG91dHB1dC4gRGVmYXVsdDogXCI9PT0gQnVpbGQgZG9uZSA9PT1cIicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gYnVpbGQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY2xlYW4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1zLCAtLXNuYXBzaG90cycsICdSZW1vdmUgYWxsIFwiX19zbmFwc2hvdHNfX1wiIGRpcmVjdG9yaWVzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gY2xlYW4oY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29uZmlnIDx0eXBlPicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1qc29uIDxwYXRoPicsICdTYXZlIG91dHB1dCB0byBqc29uIGZpbGUuJylcbiAgLmFjdGlvbigodHlwZSwgY21kKSA9PiBjb25maWcodHlwZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29tcGlsZScpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnVHJhbnNwaWxlciBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIC5mbG93Y29uZmlnIG9yIHRzY29uZmlnLmpzb24pLicpXG4gIC5vcHRpb24oJy1lLCAtLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy13LCAtLXdhdGNoJywgJ1dhdGNoZXMgZm9yIGNoYW5nZXMgYW5kIGNvbXBpbGVzLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLmFjdGlvbigoY21kKSA9PiBjb21waWxlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NyZWF0ZSA8dHlwZT4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy10LCAtLXR5cGVzY3JpcHQnLCAnQ3JlYXRlIFR5cGVzY3JpcHQgdmVyc2lvbi4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPHBhdGg+JywgJ091dHB1dCBmaWxlbmFtZS4nKVxuICAub3B0aW9uKCctLW91dHB1dE5hbWUgPG5hbWU+JywgJ091dHB1dCBuYW1lLicpXG4gIC5hY3Rpb24oKHR5cGUsIGNtZCkgPT4gY3JlYXRlKHR5cGUsIGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLW8sIC0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gZGV2IHNlcnZlciBpbiBhIG5ldyBicm93c2VyIHdpbmRvdy4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctdiwgLS12YXJpYWJsZXMgPG5hbWU+JywgJ0Vudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gXCJwcm9jZXNzLmVudlwiLiAoaWUuIFwie05PREVfRU5WOiBcXCdkZXZlbG9wbWVudFxcJ31cIikuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJylcbiAgLm9wdGlvbignLS1idW5kbGVBbmFseXplcicsICdSdW4gYnVuZGxlIGFuYWx5emVyLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLmFjdGlvbigoY21kKSA9PiBkZXYoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnaW5pdCA8YXBwTmFtZT4gW3BhY2thZ2VOYW1lXScpXG4gIC5vcHRpb24oJy1pLCAtLWluc3RhbGwnLCAnSW5zdGFsbCBkZXBlbmRlbmNpZXMuJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy10LCAtLXR5cGVzY3JpcHQnLCAnVXNlIGEgVHlwZXNjcmlwdCBiYXNlZCBhcHAuJylcbiAgLmFjdGlvbigoYXBwTmFtZSwgcGFja2FnZU5hbWUsIGNtZCkgPT4gaW5pdChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnbGlua2VkJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IGxpbmtlZChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicpXG4gIC5vcHRpb24oJy0tY2FjaGUtbG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJylcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ1VzZSB0aGlzIGNvbmZpZ3VyYXRpb24sIG92ZXJyaWRpbmcgLmVzbGludHJjLiogY29uZmlnIG9wdGlvbnMgaWYgcHJlc2VudC4nKVxuICAub3B0aW9uKCctLWRlYnVnJywgJ091dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uJylcbiAgLm9wdGlvbignLS1lbnYtaW5mbycsICdPdXRwdXQgZXhlY3V0aW9uIGVudmlyb25tZW50IGluZm9ybWF0aW9uLiBEZWZhdWx0OiBmYWxzZS4nKVxuICAub3B0aW9uKCctLWVudiA8bmFtZT4nLCAnU3BlY2lmeSBlbnZpcm9ubWVudHMuJylcbiAgLm9wdGlvbignLS1leHQgPHR5cGU+JywgJ1NwZWNpZnkgSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbnMuIERlZmF1bHQ6IC5qcy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcy4nKVxuICAub3B0aW9uKCctLWZpeC1kcnktcnVuJywgJ0F1dG9tYXRpY2FsbHkgZml4IHByb2JsZW1zIHdpdGhvdXQgc2F2aW5nIHRoZSBjaGFuZ2VzIHRvIHRoZSBmaWxlIHN5c3RlbS4nKVxuICAub3B0aW9uKCctLWZpeC10eXBlIDx0eXBlPicsICdTcGVjaWZ5IHRoZSB0eXBlcyBvZiBmaXhlcyB0byBhcHBseSAocHJvYmxlbSwgc3VnZ2VzdGlvbiwgbGF5b3V0KS4nKVxuICAub3B0aW9uKCctLWZvcm1hdCA8bmFtZT4nLCAnVXNlIGEgc3BlY2lmaWMgb3V0cHV0IGZvcm1hdC4gRGVmYXVsdDogc3R5bGlzaC4nKVxuICAub3B0aW9uKCctLWdsb2JhbCA8dmFyaWFibGVzPicsICdEZWZpbmUgZ2xvYmFsIHZhcmlhYmxlcy4nKVxuICAub3B0aW9uKCctLWlnbm9yZS1wYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmUtcGF0dGVybiA8cGF0dGVybj4nLCAnUGF0dGVybiBvZiBmaWxlcyB0byBpZ25vcmUgKGluIGFkZGl0aW9uIHRvIHRob3NlIGluIC5lc2xpbnRpZ25vcmUpLicpXG4gIC5vcHRpb24oJy0taW5pdCcsICdSdW4gY29uZmlnIGluaXRpYWxpemF0aW9uIHdpemFyZC4gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1tYXgtd2FybmluZ3MgPG51bT4nLCAnTnVtYmVyIG9mIHdhcm5pbmdzIHRvIHRyaWdnZXIgbm9uemVybyBleGl0IGNvZGUuIERlZmF1bHQ6IC0xLicpXG4gIC5vcHRpb24oJy0tbm8tY29sb3InLCAnRm9yY2UgZGlzYWJsaW5nIG9mIGNvbG9yLicpXG4gIC5vcHRpb24oJy0tbm8tZXNsaW50cmMnLCAnRGlzYWJsZSB1c2Ugb2YgY29uZmlndXJhdGlvbiBmcm9tIC5lc2xpbnRyYy4qLicpXG4gIC5vcHRpb24oJy0tbm8taWdub3JlJywgJ0Rpc2FibGUgdXNlIG9mIGlnbm9yZSBmaWxlcyBhbmQgcGF0dGVybnMuJylcbiAgLm9wdGlvbignLS1uby1pbmxpbmUtY29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJylcbiAgLm9wdGlvbignLS1vdXRwdXQtZmlsZSA8cGF0aD4nLCAnU3BlY2lmeSBmaWxlIHRvIHdyaXRlIHJlcG9ydCB0by4nKVxuICAub3B0aW9uKCctLXBhcnNlciA8bmFtZT4nLCAnU3BlY2lmeSB0aGUgcGFyc2VyIHRvIGJlIHVzZWQuJylcbiAgLm9wdGlvbignLS1wYXJzZXItb3B0aW9ucyA8b3B0aW9ucz4nLCAnU3BlY2lmeSBwYXJzZXIgb3B0aW9ucy4nKVxuICAub3B0aW9uKCctLXBsdWdpbiA8cGx1Z2lucz4nLCAnU3BlY2lmeSBwbHVnaW5zLicpXG4gIC5vcHRpb24oJy0tcHJpbnQtY29uZmlnIDxwYXRoPicsICdQcmludCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlcG9ydC11bnVzZWQtZGlzYWJsZS1kaXJlY3RpdmVzJywgJ0FkZHMgcmVwb3J0ZWQgZXJyb3JzIGZvciB1bnVzZWQgZXNsaW50LWRpc2FibGUgZGlyZWN0aXZlcy4nKVxuICAub3B0aW9uKCctLXJlc29sdmUtcGx1Z2lucy1yZWxhdGl2ZS10byA8cGF0aD4nLCAnQSBmb2xkZXIgd2hlcmUgcGx1Z2lucyBzaG91bGQgYmUgcmVzb2x2ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLXJ1bGUgPHBhdGg+JywgJ1NwZWNpZnkgcnVsZXMuJylcbiAgLm9wdGlvbignLS1ydWxlc2RpciA8cGF0aD4nLCAnVXNlIGFkZGl0aW9uYWwgcnVsZXMgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKVxuICAub3B0aW9uKCctLXN0ZGluJywgJ0xpbnQgY29kZSBwcm92aWRlZCBvbiA8U1RESU4+IC0gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1zdGRpbi1maWxlbmFtZSA8bmFtZT4nLCAnU3BlY2lmeSBmaWxlbmFtZSB0byBwcm9jZXNzIFNURElOIGFzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbGludChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdtaWdyYXRlJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IG1pZ3JhdGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4geyB9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgncHVibGlzaCcpXG4gIC5vcHRpb24oJy1iLCAtLWJ1bXAgPHR5cGU+JywgJ0luY3JlbWVudHMgdGhlIHZlcnNpb24uIFR5cGVzIGluY2x1ZGU6IG1ham9yLCBtaW5vciwgcGF0Y2gsIGJldGEsIGFscGhhLCByYy4gRGVmYXVsdDogXCJwYXRjaFwiLiwgJywgL14obWFqb3J8bWlub3J8cGF0Y2h8YmV0YXxhbHBoYXxyYykkL2ksICdwYXRjaCcpXG4gIC5vcHRpb24oJy1vLCAtLW90cCA8Y29kZT4nLCAnUHJvdmlkZSBhIHR3by1mYWN0b3IgY29kZS4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1wLCAtLXByaXZhdGUnLCAnUHVibGlzaGVzIHRoZSBtb2R1bGUgYXMgcmVzdHJpY3RlZC4nKVxuICAub3B0aW9uKCctbSwgLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScsIC9eKG5wbXx5YXJuKSQvaSwgJ25wbScpXG4gIC5vcHRpb24oJy10LCAtLXRhZyA8dGFnPicsICdSZWdpc3RlcnMgdGhlIHB1Ymxpc2hlZCBwYWNrYWdlIHdpdGggdGhlIGdpdmVuIHRhZy4nKVxuICAub3B0aW9uKCctdiwgLS1uZXctdmVyc2lvbiA8dmVyc2lvbk51bWJlcj4nLCAnUHVibGlzaCBhcyBhIHNwZWNpZmljIHZlcnNpb24uJylcbiAgLmFjdGlvbigoY21kKSA9PiBwdWJsaXNoKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QnKVxuICAub3B0aW9uKCctYywgLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBKZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gamVzdC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1kLCAtLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seScpXG4gIC5vcHRpb24oJy1lLCAtLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXIsIC0tY2xlYXJDYWNoZScsICdDbGVhciBKZXN0IGNhY2hlLicpXG4gIC5vcHRpb24oJy1zLCAtLXNldHVwIDxwYXRoPicsICdKZXN0IHNldHVwIGZpbGUgcGF0aC4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy11LCAtLXVwZGF0ZScsICdVcGRhdGUgc25hcHNob3RzLiBSdW5zIFwiamVzdCAtLXVwZGF0ZVNuYXBzaG90c1wiJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2ggPHBhdGg+JywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biB0ZXN0cyByZWxhdGVkIHRvIGNoYW5nZWQgZmlsZXMuJylcbiAgLm9wdGlvbignLS1iYWlsJywgJ0V4aXQgdGhlIHRlc3Qgc3VpdGUgaW1tZWRpYXRlbHkgdXBvbiB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IHN1aXRlLicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZEZpbGVzV2l0aEFuY2VzdG9yJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0byB0aGUgY3VycmVudCBjaGFuZ2VzIGFuZCB0aGUgY2hhbmdlcyBtYWRlIGluIHRoZSBsYXN0IGNvbW1pdC4nKVxuICAub3B0aW9uKCctLWNoYW5nZWRTaW5jZScsICdSdW5zIHRlc3RzIHJlbGF0ZWQgdGhlIGNoYW5nZXMgc2luY2UgdGhlIHByb3ZpZGVkIGJyYW5jaC4nKVxuICAub3B0aW9uKCctLWNpJywgJ1doZW4gdGhpcyBvcHRpb24gaXMgcHJvdmlkZWQsIEplc3Qgd2lsbCBhc3N1bWUgaXQgaXMgcnVubmluZyBpbiBhIENJIGVudmlyb25tZW50LicpXG4gIC5vcHRpb24oJy0tY29sbGVjdENvdmVyYWdlRnJvbSA8Z2xvYj4nLCAnQSBnbG9iIHBhdHRlcm4gcmVsYXRpdmUgdG8gbWF0Y2hpbmcgdGhlIGZpbGVzIHRoYXQgY292ZXJhZ2UgaW5mbyBuZWVkcyB0byBiZSBjb2xsZWN0ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLWNvbG9ycycsICdGb3JjZXMgdGVzdCByZXN1bHRzIG91dHB1dCBoaWdobGlnaHRpbmcgZXZlbiBpZiBzdGRvdXQgaXMgbm90IGEgVFRZLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBKZXN0IGNvbmZpZy4nKVxuICAub3B0aW9uKCctLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seS4nKVxuICAub3B0aW9uKCctLWVudicsICdUaGUgdGVzdCBlbnZpcm9ubWVudCB1c2VkIGZvciBhbGwgdGVzdHMuIFRoaXMgY2FuIHBvaW50IHRvIGFueSBmaWxlIG9yIG5vZGUgbW9kdWxlLiBFeGFtcGxlczoganNkb20sIG5vZGUgb3IgcGF0aC90by9teS1lbnZpcm9ubWVudC5qcy4nKVxuICAub3B0aW9uKCctLWVycm9yT25EZXByZWNhdGVkJywgJ01ha2UgY2FsbGluZyBkZXByZWNhdGVkIEFQSXMgdGhyb3cgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4nKVxuICAub3B0aW9uKCctLWV4cGFuZCcsICdVc2UgdGhpcyBmbGFnIHRvIHNob3cgZnVsbCBkaWZmcyBhbmQgZXJyb3JzIGluc3RlYWQgb2YgYSBwYXRjaC4nKVxuICAub3B0aW9uKCctLWZvcmNlRXhpdCcsICdGb3JjZSBKZXN0IHRvIGV4aXQgYWZ0ZXIgYWxsIHRlc3RzIGhhdmUgY29tcGxldGVkIHJ1bm5pbmcuJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50cyB0aGUgdGVzdCByZXN1bHRzIGluIEpTT04uJylcbiAgLm9wdGlvbignLS1sYXN0Q29tbWl0JywgJ1J1biBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgZmlsZSBjaGFuZ2VzIGluIHRoZSBsYXN0IGNvbW1pdCBtYWRlLicpXG4gIC5vcHRpb24oJy0tbGlzdFRlc3RzJywgJ0xpc3RzIGFsbCB0ZXN0cyBhcyBKU09OIHRoYXQgSmVzdCB3aWxsIHJ1biBnaXZlbiB0aGUgYXJndW1lbnRzLCBhbmQgZXhpdHMuJylcbiAgLm9wdGlvbignLS1sb2dIZWFwVXNhZ2UnLCAnTG9ncyB0aGUgaGVhcCB1c2FnZSBhZnRlciBldmVyeSB0ZXN0LicpXG4gIC5vcHRpb24oJy0tbWF4V29ya2VycyA8bnVtPicsICdTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdvcmtlcnMgdGhlIHdvcmtlci1wb29sIHdpbGwgc3Bhd24gZm9yIHJ1bm5pbmcgdGVzdHMuICcpXG4gIC5vcHRpb24oJy0tbm9TdGFja1RyYWNlJywgJ0Rpc2FibGVzIHN0YWNrIHRyYWNlIGluIHRlc3QgcmVzdWx0cyBvdXRwdXQuJylcbiAgLm9wdGlvbignLS1ub3RpZnknLCAnQWN0aXZhdGVzIG5vdGlmaWNhdGlvbnMgZm9yIHRlc3QgcmVzdWx0cy4nKVxuICAub3B0aW9uKCctLW9ubHlDaGFuZ2VkJywgJ3VuIGJhc2VkIG9uIHdoaWNoIGZpbGVzIGhhdmUgY2hhbmdlZCBpbiB0aGUgY3VycmVudCByZXBvc2l0b3J5LiAnKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPGZpbGVuYW1lPicsICdXcml0ZSB0ZXN0IHJlc3VsdHMgdG8gYSBmaWxlIHdoZW4gdGhlIC0tanNvbiBvcHRpb24gaXMgYWxzbyBzcGVjaWZpZWQuJylcbiAgLm9wdGlvbignLS1wYXNzV2l0aE5vVGVzdHMnLCAnQWxsb3dzIHRoZSB0ZXN0IHN1aXRlIHRvIHBhc3Mgd2hlbiBubyBmaWxlcyBhcmUgZm91bmQuJylcbiAgLm9wdGlvbignLS1ydW5JbkJhbmQnLCAnUnVuIGFsbCB0ZXN0cyBzZXJpYWxseSBpbiB0aGUgY3VycmVudCBwcm9jZXNzLCByYXRoZXIgdGhhbiBjcmVhdGluZyBhIHdvcmtlciBwb29sIG9mIGNoaWxkIHByb2Nlc3NlcyB0aGF0IHJ1biB0ZXN0cy4nKVxuICAub3B0aW9uKCctLXNob3dDb25maWcnLCAnUHJpbnQgeW91ciBKZXN0IGNvbmZpZyBhbmQgdGhlbiBleGl0cy4nKVxuICAub3B0aW9uKCctLXNpbGVudCcsICdQcmV2ZW50IHRlc3RzIGZyb20gcHJpbnRpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXRlc3RMb2NhdGlvbkluUmVzdWx0cycsICdBZGRzIGEgbG9jYXRpb24gZmllbGQgdG8gdGVzdCByZXN1bHRzLicpXG4gIC5vcHRpb24oJy0tdGVzdE5hbWVQYXR0ZXJuIDxyZWdleD4nLCAnUnVuIG9ubHkgdGVzdHMgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSByZWdleC4gJylcbiAgLm9wdGlvbignLS10ZXN0UGF0aFBhdHRlcm4gPHJlZ2V4PicsICdBIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZyB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdHMgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC4nKVxuICAub3B0aW9uKCctLXVzZVN0ZGVycicsICdEaXZlcnQgYWxsIG91dHB1dCB0byBzdGRlcnIuJylcbiAgLm9wdGlvbignLS12ZXJib3NlJywgJ0Rpc3BsYXkgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdHMgd2l0aCB0aGUgdGVzdCBzdWl0ZSBoaWVyYXJjaHkuJylcbiAgLm9wdGlvbignLS13YXRjaEFsbCcsICdXYXRjaCBmaWxlcyBmb3IgY2hhbmdlcyBhbmQgcmVydW4gYWxsIHRlc3RzIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMuJylcbiAgLmFjdGlvbigoY21kKSA9PiB0ZXN0KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3VwZGF0ZScpXG4gIC5vcHRpb24oJy1pLCAtLWludGVyYWN0aXZlJywgJ0Nob29zZSB3aGljaCBwYWNrYWdlcyB0byB1cGRhdGUuJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy0tcmVnaXN0cnknLCAnQWRkIGEgY3VzdG9tIHJlZ2lzdHJ5IHVybC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHVwZGF0ZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd1cGdyYWRlJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdXBncmFkZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7IH0pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd2ZXJzaW9ucycpXG4gIC5vcHRpb24oJy1qLCAtLWpzb24nLCAnUHJpbnQgdGhlIHZlcnNpb24gYXMgYSBKU09OIG9iamVjdC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHZlcnNpb25zKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHsgfSkpO1xuXG4vLyBJbml0aWFsaXplXG5wcm9ncmFtXG4gIC52ZXJzaW9uKHBhY2thZ2VDb25maWcudmVyc2lvbilcbiAgLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBS0EsdUJBQXNCO0FBRXRCLHNCQWdCTztBQUVQLE1BQU0sZ0JBQWdCLFFBQVEsaUJBQWlCO0FBRy9DLHlCQUFRLFFBQVEsT0FBTyxFQUNwQixPQUFPLHVCQUF1QixpRUFBaUUsRUFDL0YsT0FBTywwQkFBMEIsOENBQThDLEVBQy9F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
|
|
49
|
+
program.version(packageJson.version).parse(process.argv);
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cHJvZ3JhbX0gZnJvbSAnY29tbWFuZGVyJztcblxuaW1wb3J0IHBhY2thZ2VKc29uIGZyb20gJy4uL3BhY2thZ2UuanNvbicgYXNzZXJ0IHt0eXBlOiAnanNvbid9O1xuaW1wb3J0IHtidWlsZH0gZnJvbSAnLi9jb21tYW5kcy9idWlsZC5qcyc7XG5pbXBvcnQge2NsZWFufSBmcm9tICcuL2NvbW1hbmRzL2NsZWFuLmpzJztcbmltcG9ydCB7Y29tcGlsZX0gZnJvbSAnLi9jb21tYW5kcy9jb21waWxlLmpzJztcbmltcG9ydCB7Y29uZmlnfSBmcm9tICcuL2NvbW1hbmRzL2NvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZX0gZnJvbSAnLi9jb21tYW5kcy9jcmVhdGUuanMnO1xuaW1wb3J0IHtkZXZ9IGZyb20gJy4vY29tbWFuZHMvZGV2LmpzJztcbmltcG9ydCB7aW5pdH0gZnJvbSAnLi9jb21tYW5kcy9pbml0LmpzJztcbmltcG9ydCB7bGlua2VkfSBmcm9tICcuL2NvbW1hbmRzL2xpbmsuanMnO1xuaW1wb3J0IHtsaW50fSBmcm9tICcuL2NvbW1hbmRzL2xpbnQuanMnO1xuaW1wb3J0IHttaWdyYXRlfSBmcm9tICcuL2NvbW1hbmRzL21pZ3JhdGUuanMnO1xuaW1wb3J0IHtwdWJsaXNofSBmcm9tICcuL2NvbW1hbmRzL3B1Ymxpc2guanMnO1xuaW1wb3J0IHt0ZXN0fSBmcm9tICcuL2NvbW1hbmRzL3Rlc3QuanMnO1xuaW1wb3J0IHt1cGRhdGV9IGZyb20gJy4vY29tbWFuZHMvdXBkYXRlLmpzJztcbmltcG9ydCB7dXBncmFkZX0gZnJvbSAnLi9jb21tYW5kcy91cGdyYWRlLmpzJztcbmltcG9ydCB7dmVyc2lvbnN9IGZyb20gJy4vY29tbWFuZHMvdmVyc2lvbnMuanMnO1xuXG4vLyBDb21tYW5kc1xucHJvZ3JhbS5jb21tYW5kKCdidWlsZCcpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdMZXggY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1tLCAtLW1vZGUgPHR5cGU+JywgJ1dlYnBhY2sgbW9kZSAoXCJwcm9kdWN0aW9uXCIgb3IgXCJkZXZlbG9wbWVudFwiKS4gRGVmYXVsdDogXCJkZXZlbG9wbWVudFwiLicsIC9eKGRldmVsb3BtZW50fHByb2R1Y3Rpb24pJC9pLCAnZGV2ZWxvcG1lbnQnKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXMsIC0tc3RhdGljJywgJ0NyZWF0ZXMgc3RhdGljIEhUTUwgZmlsZXMgd2hlbiBidWlsZGluZyBhcHAuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctdiwgLS12YXJpYWJsZXMgPG5hbWU+JywgJ0Vudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gXCJwcm9jZXNzLmVudlwiLiAoaWUuIFwie05PREVfRU5WOiBcXCdwcm9kdWN0aW9uXFwnfVwiKS4nKVxuICAub3B0aW9uKCctdywgLS13YXRjaCcsICdXYXRjaCBmb3IgY2hhbmdlcy4nKVxuICAub3B0aW9uKCctLWJ1bmRsZXIgPG5hbWU+JywgJ0J1bmRsZXIgdG8gdXNlIChcIndlYnBhY2tcIiBvciBcImVzYnVpbGRcIikuIERlZmF1bHQ6IFwid2VicGFja1wiLicsIC9eKHdlYnBhY2t8ZXNidWlsZCkkL2ksICd3ZWJwYWNrJylcbiAgLm9wdGlvbignLS1zb3VyY2VQYXRoIDxwYXRoPicsICdTb3VyY2UgcGF0aCcpXG4gIC5vcHRpb24oJy0tb3V0cHV0UGF0aCA8cGF0aD4nLCAnT3V0cHV0IHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dENodW5rRmlsZW5hbWUgPGZpbGVuYW1lPicsICdUaGUgb3V0cHV0IGZpbGVuYW1lIGZvciBhZGRpdGlvbmFsIGNodW5rcy4nKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGVuYW1lIDxmaWxlbmFtZT4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBvZiB0aGUgYnVuZGxlLiBEZWZhdWx0OiBcIltuYW1lXS5qc1wiLicpXG4gIC5vcHRpb24oJy0tb3V0cHV0SnNvbnBGdW5jdGlvbiA8ZnVuYz4nLCAnVGhlIG5hbWUgb2YgdGhlIEpTT05QIGZ1bmN0aW9uIHVzZWQgZm9yIGNodW5rIGxvYWRpbmcuIERlZmF1bHQ6IFwid2VicGFja0pzb25wXCIuJylcbiAgLm9wdGlvbignLS1vdXRwdXRMaWJyYXJ5IDxsaWJyYXJ5PicsICdFeHBvc2UgdGhlIGV4cG9ydHMgb2YgdGhlIGVudHJ5IHBvaW50IGFzIGxpYnJhcnkuJylcbiAgLm9wdGlvbignLS1vdXRwdXRMaWJyYXJ5VGFyZ2V0IDx0YXJnZXQ+JywgJ1RoZSB0eXBlIGZvciBleHBvc2luZyB0aGUgZXhwb3J0cyBvZiB0aGUgZW50cnkgcG9pbnQgYXMgbGlicmFyeS4gRGVmYXVsdDogXCJ2YXJcIi4nKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGhJbmZvIDxoYXNJbmZvPicsICdUaGUgb3V0cHV0IGZpbGVuYW1lIGZvciBhZGRpdGlvbmFsIGNodW5rcy4gRGVmYXVsdDogZmFsc2UnKVxuICAub3B0aW9uKCctLW91dHB1dFB1YmxpY1BhdGggPHBhdGg+JywgJ1RoZSBwdWJsaWMgcGF0aCBmb3IgdGhlIGFzc2V0cy4gRGVmYXVsdDogXCIvXCInKVxuICAub3B0aW9uKCctLW91dHB1dFNvdXJjZU1hcEZpbGVuYW1lIDxmaWxlbmFtZT4nLCAnVGhlIG91dHB1dCBmaWxlbmFtZSBmb3IgdGhlIFNvdXJjZU1hcC4gRGVmYXVsdDogXCJbbmFtZV0ubWFwXCInKVxuICAub3B0aW9uKCctLWJ1aWxkRGVsaW1pdGVyIDxkZWxpbWl0ZXI+JywgJ0Rpc3BsYXkgY3VzdG9tIHRleHQgYWZ0ZXIgYnVpbGQgb3V0cHV0LiBEZWZhdWx0OiBcIj09PSBCdWlsZCBkb25lID09PVwiJylcbiAgLmFjdGlvbigoY21kKSA9PiBidWlsZChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2NsZWFuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctcywgLS1zbmFwc2hvdHMnLCAnUmVtb3ZlIGFsbCBcIl9fc25hcHNob3RzX19cIiBkaXJlY3Rvcmllcy4nKVxuICAuYWN0aW9uKChjbWQpID0+IGNsZWFuKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgnY29uZmlnIDx0eXBlPicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1qc29uIDxwYXRoPicsICdTYXZlIG91dHB1dCB0byBqc29uIGZpbGUuJylcbiAgLmFjdGlvbigodHlwZSwgY21kKSA9PiBjb25maWcodHlwZSwgY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjb21waWxlJylcbiAgLm9wdGlvbignLWMsIC0tY29uZmlnIDxwYXRoPicsICdUcmFuc3BpbGVyIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gLmZsb3djb25maWcgb3IgdHNjb25maWcuanNvbikuJylcbiAgLm9wdGlvbignLWUsIC0tZW52aXJvbm1lbnQgPG5hbWU+JywgJ1RhcmdldCBlbnZpcm9ubWVudC4gXCJub2RlXCIgb3IgXCJ3ZWJcIi4gRGVmYXVsdDogXCJub2RlXCIuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLXIsIC0tcmVtb3ZlJywgJ1JlbW92ZXMgYWxsIGZpbGVzIGZyb20gdGhlIG91dHB1dCBkaXJlY3RvcnkgYmVmb3JlIGNvbXBpbGluZy4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2hlcyBmb3IgY2hhbmdlcyBhbmQgY29tcGlsZXMuJylcbiAgLm9wdGlvbignLS1zb3VyY2VQYXRoIDxwYXRoPicsICdTb3VyY2UgcGF0aCcpXG4gIC5vcHRpb24oJy0tb3V0cHV0UGF0aCA8cGF0aD4nLCAnT3V0cHV0IHBhdGgnKVxuICAuYWN0aW9uKChjbWQpID0+IGNvbXBpbGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdjcmVhdGUgPHR5cGU+JylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ0NyZWF0ZSBUeXBlc2NyaXB0IHZlcnNpb24uJylcbiAgLm9wdGlvbignLS1vdXRwdXRGaWxlIDxwYXRoPicsICdPdXRwdXQgZmlsZW5hbWUuJylcbiAgLm9wdGlvbignLS1vdXRwdXROYW1lIDxuYW1lPicsICdPdXRwdXQgbmFtZS4nKVxuICAuYWN0aW9uKCh0eXBlLCBjbWQpID0+IGNyZWF0ZSh0eXBlLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2RldicpXG4gIC5vcHRpb24oJy1jLCAtLWNvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIFdlYnBhY2sgY29uZmlndXJhdGlvbiBmaWxlIHBhdGggKGllLiB3ZWJwYWNrLmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLWwsIC0tbGV4Q29uZmlnIDxwYXRoPicsICdDdXN0b20gTGV4IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gbGV4LmNvbmZpZy5qcykuJylcbiAgLm9wdGlvbignLW8sIC0tb3BlbicsICdBdXRvbWF0aWNhbGx5IG9wZW4gZGV2IHNlcnZlciBpbiBhIG5ldyBicm93c2VyIHdpbmRvdy4nKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5vcHRpb24oJy1yLCAtLXJlbW92ZScsICdSZW1vdmVzIGFsbCBmaWxlcyBmcm9tIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGJlZm9yZSBjb21waWxpbmcuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdUcmFuc3BpbGUgYXMgVHlwZXNjcmlwdC4nKVxuICAub3B0aW9uKCctdiwgLS12YXJpYWJsZXMgPG5hbWU+JywgJ0Vudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgaW4gXCJwcm9jZXNzLmVudlwiLiAoaWUuIFwie05PREVfRU5WOiBcXCdkZXZlbG9wbWVudFxcJ31cIikuJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2gnLCAnV2F0Y2ggZm9yIGNoYW5nZXMuJylcbiAgLm9wdGlvbignLS1idW5kbGVBbmFseXplcicsICdSdW4gYnVuZGxlIGFuYWx5emVyLicpXG4gIC5vcHRpb24oJy0tc291cmNlUGF0aCA8cGF0aD4nLCAnU291cmNlIHBhdGgnKVxuICAub3B0aW9uKCctLW91dHB1dFBhdGggPHBhdGg+JywgJ091dHB1dCBwYXRoJylcbiAgLmFjdGlvbigoY21kKSA9PiBkZXYoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdpbml0IDxhcHBOYW1lPiBbcGFja2FnZU5hbWVdJylcbiAgLm9wdGlvbignLWksIC0taW5zdGFsbCcsICdJbnN0YWxsIGRlcGVuZGVuY2llcy4nKVxuICAub3B0aW9uKCctbSwgLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScsIC9eKG5wbXx5YXJuKSQvaSwgJ25wbScpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXQsIC0tdHlwZXNjcmlwdCcsICdVc2UgYSBUeXBlc2NyaXB0IGJhc2VkIGFwcC4nKVxuICAuYWN0aW9uKChhcHBOYW1lLCBwYWNrYWdlTmFtZSwgY21kKSA9PiBpbml0KGFwcE5hbWUsIHBhY2thZ2VOYW1lLCBjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ2xpbmtlZCcpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLmFjdGlvbigoY21kKSA9PiBsaW5rZWQoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCdsaW50JylcbiAgLm9wdGlvbignLS1jYWNoZScsICdPbmx5IGNoZWNrIGNoYW5nZWQgZmlsZXMuIERlZmF1bHQ6IGZhbHNlLicpXG4gIC5vcHRpb24oJy0tY2FjaGUtbG9jYXRpb24gPHBhdGg+JywgJ1BhdGggdG8gdGhlIGNhY2hlIGZpbGUgb3IgZGlyZWN0b3J5LicpXG4gIC5vcHRpb24oJy0tY29sb3InLCAnRm9yY2UgZW5hYmxpbmcgb2YgY29sb3IuJylcbiAgLm9wdGlvbignLS1jb25maWcgPHBhdGg+JywgJ1VzZSB0aGlzIGNvbmZpZ3VyYXRpb24sIG92ZXJyaWRpbmcgLmVzbGludHJjLiogY29uZmlnIG9wdGlvbnMgaWYgcHJlc2VudC4nKVxuICAub3B0aW9uKCctLWRlYnVnJywgJ091dHB1dCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uJylcbiAgLm9wdGlvbignLS1lbnYtaW5mbycsICdPdXRwdXQgZXhlY3V0aW9uIGVudmlyb25tZW50IGluZm9ybWF0aW9uLiBEZWZhdWx0OiBmYWxzZS4nKVxuICAub3B0aW9uKCctLWVudiA8bmFtZT4nLCAnU3BlY2lmeSBlbnZpcm9ubWVudHMuJylcbiAgLm9wdGlvbignLS1leHQgPHR5cGU+JywgJ1NwZWNpZnkgSmF2YVNjcmlwdCBmaWxlIGV4dGVuc2lvbnMuIERlZmF1bHQ6IC5qcy4nKVxuICAub3B0aW9uKCctLWZpeCcsICdBdXRvbWF0aWNhbGx5IGZpeCBwcm9ibGVtcy4nKVxuICAub3B0aW9uKCctLWZpeC1kcnktcnVuJywgJ0F1dG9tYXRpY2FsbHkgZml4IHByb2JsZW1zIHdpdGhvdXQgc2F2aW5nIHRoZSBjaGFuZ2VzIHRvIHRoZSBmaWxlIHN5c3RlbS4nKVxuICAub3B0aW9uKCctLWZpeC10eXBlIDx0eXBlPicsICdTcGVjaWZ5IHRoZSB0eXBlcyBvZiBmaXhlcyB0byBhcHBseSAocHJvYmxlbSwgc3VnZ2VzdGlvbiwgbGF5b3V0KS4nKVxuICAub3B0aW9uKCctLWZvcm1hdCA8bmFtZT4nLCAnVXNlIGEgc3BlY2lmaWMgb3V0cHV0IGZvcm1hdC4gRGVmYXVsdDogc3R5bGlzaC4nKVxuICAub3B0aW9uKCctLWdsb2JhbCA8dmFyaWFibGVzPicsICdEZWZpbmUgZ2xvYmFsIHZhcmlhYmxlcy4nKVxuICAub3B0aW9uKCctLWlnbm9yZS1wYXRoIDxwYXRoPicsICdTcGVjaWZ5IHBhdGggb2YgaWdub3JlIGZpbGUuJylcbiAgLm9wdGlvbignLS1pZ25vcmUtcGF0dGVybiA8cGF0dGVybj4nLCAnUGF0dGVybiBvZiBmaWxlcyB0byBpZ25vcmUgKGluIGFkZGl0aW9uIHRvIHRob3NlIGluIC5lc2xpbnRpZ25vcmUpLicpXG4gIC5vcHRpb24oJy0taW5pdCcsICdSdW4gY29uZmlnIGluaXRpYWxpemF0aW9uIHdpemFyZC4gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1tYXgtd2FybmluZ3MgPG51bT4nLCAnTnVtYmVyIG9mIHdhcm5pbmdzIHRvIHRyaWdnZXIgbm9uemVybyBleGl0IGNvZGUuIERlZmF1bHQ6IC0xLicpXG4gIC5vcHRpb24oJy0tbm8tY29sb3InLCAnRm9yY2UgZGlzYWJsaW5nIG9mIGNvbG9yLicpXG4gIC5vcHRpb24oJy0tbm8tZXNsaW50cmMnLCAnRGlzYWJsZSB1c2Ugb2YgY29uZmlndXJhdGlvbiBmcm9tIC5lc2xpbnRyYy4qLicpXG4gIC5vcHRpb24oJy0tbm8taWdub3JlJywgJ0Rpc2FibGUgdXNlIG9mIGlnbm9yZSBmaWxlcyBhbmQgcGF0dGVybnMuJylcbiAgLm9wdGlvbignLS1uby1pbmxpbmUtY29uZmlnJywgJ1ByZXZlbnQgY29tbWVudHMgZnJvbSBjaGFuZ2luZyBjb25maWcgb3IgcnVsZXMuJylcbiAgLm9wdGlvbignLS1vdXRwdXQtZmlsZSA8cGF0aD4nLCAnU3BlY2lmeSBmaWxlIHRvIHdyaXRlIHJlcG9ydCB0by4nKVxuICAub3B0aW9uKCctLXBhcnNlciA8bmFtZT4nLCAnU3BlY2lmeSB0aGUgcGFyc2VyIHRvIGJlIHVzZWQuJylcbiAgLm9wdGlvbignLS1wYXJzZXItb3B0aW9ucyA8b3B0aW9ucz4nLCAnU3BlY2lmeSBwYXJzZXIgb3B0aW9ucy4nKVxuICAub3B0aW9uKCctLXBsdWdpbiA8cGx1Z2lucz4nLCAnU3BlY2lmeSBwbHVnaW5zLicpXG4gIC5vcHRpb24oJy0tcHJpbnQtY29uZmlnIDxwYXRoPicsICdQcmludCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXJlcG9ydC11bnVzZWQtZGlzYWJsZS1kaXJlY3RpdmVzJywgJ0FkZHMgcmVwb3J0ZWQgZXJyb3JzIGZvciB1bnVzZWQgZXNsaW50LWRpc2FibGUgZGlyZWN0aXZlcy4nKVxuICAub3B0aW9uKCctLXJlc29sdmUtcGx1Z2lucy1yZWxhdGl2ZS10byA8cGF0aD4nLCAnQSBmb2xkZXIgd2hlcmUgcGx1Z2lucyBzaG91bGQgYmUgcmVzb2x2ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLXJ1bGUgPHBhdGg+JywgJ1NwZWNpZnkgcnVsZXMuJylcbiAgLm9wdGlvbignLS1ydWxlc2RpciA8cGF0aD4nLCAnVXNlIGFkZGl0aW9uYWwgcnVsZXMgZnJvbSB0aGlzIGRpcmVjdG9yeS4nKVxuICAub3B0aW9uKCctLXN0ZGluJywgJ0xpbnQgY29kZSBwcm92aWRlZCBvbiA8U1RESU4+IC0gRGVmYXVsdDogZmFsc2UuJylcbiAgLm9wdGlvbignLS1zdGRpbi1maWxlbmFtZSA8bmFtZT4nLCAnU3BlY2lmeSBmaWxlbmFtZSB0byBwcm9jZXNzIFNURElOIGFzLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbGludChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ21pZ3JhdGUnKVxuICAub3B0aW9uKCctcSwgLS1xdWlldCcsICdObyBMZXggbm90aWZpY2F0aW9ucyBwcmludGVkIGluIHRoZSBjb25zb2xlLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gbWlncmF0ZShjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3B1Ymxpc2gnKVxuICAub3B0aW9uKCctYiwgLS1idW1wIDx0eXBlPicsICdJbmNyZW1lbnRzIHRoZSB2ZXJzaW9uLiBUeXBlcyBpbmNsdWRlOiBtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBhbHBoYSwgcmMuIERlZmF1bHQ6IFwicGF0Y2hcIi4sICcsIC9eKG1ham9yfG1pbm9yfHBhdGNofGJldGF8YWxwaGF8cmMpJC9pLCAncGF0Y2gnKVxuICAub3B0aW9uKCctbywgLS1vdHAgPGNvZGU+JywgJ1Byb3ZpZGUgYSB0d28tZmFjdG9yIGNvZGUuJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctcCwgLS1wcml2YXRlJywgJ1B1Ymxpc2hlcyB0aGUgbW9kdWxlIGFzIHJlc3RyaWN0ZWQuJylcbiAgLm9wdGlvbignLW0sIC0tcGFja2FnZS1tYW5hZ2VyIDxtYW5hZ2VyPicsICdXaGljaCBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlLiBEZWZhdWx0OiBucG0nLCAvXihucG18eWFybikkL2ksICducG0nKVxuICAub3B0aW9uKCctdCwgLS10YWcgPHRhZz4nLCAnUmVnaXN0ZXJzIHRoZSBwdWJsaXNoZWQgcGFja2FnZSB3aXRoIHRoZSBnaXZlbiB0YWcuJylcbiAgLm9wdGlvbignLXYsIC0tbmV3LXZlcnNpb24gPHZlcnNpb25OdW1iZXI+JywgJ1B1Ymxpc2ggYXMgYSBzcGVjaWZpYyB2ZXJzaW9uLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gcHVibGlzaChjbWQsIHByb2Nlc3MuZXhpdCkudGhlbigoKSA9PiB7fSkpO1xuXG5wcm9ncmFtLmNvbW1hbmQoJ3Rlc3QnKVxuICAub3B0aW9uKCctYywgLS1jb25maWcgPHBhdGg+JywgJ0N1c3RvbSBKZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSBwYXRoIChpZS4gamVzdC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1kLCAtLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seScpXG4gIC5vcHRpb24oJy1lLCAtLWVudmlyb25tZW50IDxuYW1lPicsICdUYXJnZXQgZW52aXJvbm1lbnQuIFwibm9kZVwiIG9yIFwid2ViXCIuIERlZmF1bHQ6IFwibm9kZVwiLicpXG4gIC5vcHRpb24oJy1sLCAtLWxleENvbmZpZyA8cGF0aD4nLCAnQ3VzdG9tIExleCBjb25maWd1cmF0aW9uIGZpbGUgcGF0aCAoaWUuIGxleC5jb25maWcuanMpLicpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLXIsIC0tY2xlYXJDYWNoZScsICdDbGVhciBKZXN0IGNhY2hlLicpXG4gIC5vcHRpb24oJy1zLCAtLXNldHVwIDxwYXRoPicsICdKZXN0IHNldHVwIGZpbGUgcGF0aC4nKVxuICAub3B0aW9uKCctdCwgLS10eXBlc2NyaXB0JywgJ1RyYW5zcGlsZSBhcyBUeXBlc2NyaXB0LicpXG4gIC5vcHRpb24oJy11LCAtLXVwZGF0ZScsICdVcGRhdGUgc25hcHNob3RzLiBSdW5zIFwiamVzdCAtLXVwZGF0ZVNuYXBzaG90c1wiJylcbiAgLm9wdGlvbignLXcsIC0td2F0Y2ggPHBhdGg+JywgJ1dhdGNoIGZpbGVzIGZvciBjaGFuZ2VzIGFuZCByZXJ1biB0ZXN0cyByZWxhdGVkIHRvIGNoYW5nZWQgZmlsZXMuJylcbiAgLm9wdGlvbignLS1iYWlsJywgJ0V4aXQgdGhlIHRlc3Qgc3VpdGUgaW1tZWRpYXRlbHkgdXBvbiB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IHN1aXRlLicpXG4gIC5vcHRpb24oJy0tY2hhbmdlZEZpbGVzV2l0aEFuY2VzdG9yJywgJ1J1bnMgdGVzdHMgcmVsYXRlZCB0byB0aGUgY3VycmVudCBjaGFuZ2VzIGFuZCB0aGUgY2hhbmdlcyBtYWRlIGluIHRoZSBsYXN0IGNvbW1pdC4nKVxuICAub3B0aW9uKCctLWNoYW5nZWRTaW5jZScsICdSdW5zIHRlc3RzIHJlbGF0ZWQgdGhlIGNoYW5nZXMgc2luY2UgdGhlIHByb3ZpZGVkIGJyYW5jaC4nKVxuICAub3B0aW9uKCctLWNpJywgJ1doZW4gdGhpcyBvcHRpb24gaXMgcHJvdmlkZWQsIEplc3Qgd2lsbCBhc3N1bWUgaXQgaXMgcnVubmluZyBpbiBhIENJIGVudmlyb25tZW50LicpXG4gIC5vcHRpb24oJy0tY29sbGVjdENvdmVyYWdlRnJvbSA8Z2xvYj4nLCAnQSBnbG9iIHBhdHRlcm4gcmVsYXRpdmUgdG8gbWF0Y2hpbmcgdGhlIGZpbGVzIHRoYXQgY292ZXJhZ2UgaW5mbyBuZWVkcyB0byBiZSBjb2xsZWN0ZWQgZnJvbS4nKVxuICAub3B0aW9uKCctLWNvbG9ycycsICdGb3JjZXMgdGVzdCByZXN1bHRzIG91dHB1dCBoaWdobGlnaHRpbmcgZXZlbiBpZiBzdGRvdXQgaXMgbm90IGEgVFRZLicpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnUHJpbnQgZGVidWdnaW5nIGluZm8gYWJvdXQgeW91ciBKZXN0IGNvbmZpZy4nKVxuICAub3B0aW9uKCctLWRldGVjdE9wZW5IYW5kbGVzJywgJ0F0dGVtcHQgdG8gY29sbGVjdCBhbmQgcHJpbnQgb3BlbiBoYW5kbGVzIHByZXZlbnRpbmcgSmVzdCBmcm9tIGV4aXRpbmcgY2xlYW5seS4nKVxuICAub3B0aW9uKCctLWVudicsICdUaGUgdGVzdCBlbnZpcm9ubWVudCB1c2VkIGZvciBhbGwgdGVzdHMuIFRoaXMgY2FuIHBvaW50IHRvIGFueSBmaWxlIG9yIG5vZGUgbW9kdWxlLiBFeGFtcGxlczoganNkb20sIG5vZGUgb3IgcGF0aC90by9teS1lbnZpcm9ubWVudC5qcy4nKVxuICAub3B0aW9uKCctLWVycm9yT25EZXByZWNhdGVkJywgJ01ha2UgY2FsbGluZyBkZXByZWNhdGVkIEFQSXMgdGhyb3cgaGVscGZ1bCBlcnJvciBtZXNzYWdlcy4nKVxuICAub3B0aW9uKCctLWV4cGFuZCcsICdVc2UgdGhpcyBmbGFnIHRvIHNob3cgZnVsbCBkaWZmcyBhbmQgZXJyb3JzIGluc3RlYWQgb2YgYSBwYXRjaC4nKVxuICAub3B0aW9uKCctLWZvcmNlRXhpdCcsICdGb3JjZSBKZXN0IHRvIGV4aXQgYWZ0ZXIgYWxsIHRlc3RzIGhhdmUgY29tcGxldGVkIHJ1bm5pbmcuJylcbiAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50cyB0aGUgdGVzdCByZXN1bHRzIGluIEpTT04uJylcbiAgLm9wdGlvbignLS1sYXN0Q29tbWl0JywgJ1J1biBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgZmlsZSBjaGFuZ2VzIGluIHRoZSBsYXN0IGNvbW1pdCBtYWRlLicpXG4gIC5vcHRpb24oJy0tbGlzdFRlc3RzJywgJ0xpc3RzIGFsbCB0ZXN0cyBhcyBKU09OIHRoYXQgSmVzdCB3aWxsIHJ1biBnaXZlbiB0aGUgYXJndW1lbnRzLCBhbmQgZXhpdHMuJylcbiAgLm9wdGlvbignLS1sb2dIZWFwVXNhZ2UnLCAnTG9ncyB0aGUgaGVhcCB1c2FnZSBhZnRlciBldmVyeSB0ZXN0LicpXG4gIC5vcHRpb24oJy0tbWF4V29ya2VycyA8bnVtPicsICdTcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHdvcmtlcnMgdGhlIHdvcmtlci1wb29sIHdpbGwgc3Bhd24gZm9yIHJ1bm5pbmcgdGVzdHMuICcpXG4gIC5vcHRpb24oJy0tbm9TdGFja1RyYWNlJywgJ0Rpc2FibGVzIHN0YWNrIHRyYWNlIGluIHRlc3QgcmVzdWx0cyBvdXRwdXQuJylcbiAgLm9wdGlvbignLS1ub3RpZnknLCAnQWN0aXZhdGVzIG5vdGlmaWNhdGlvbnMgZm9yIHRlc3QgcmVzdWx0cy4nKVxuICAub3B0aW9uKCctLW9ubHlDaGFuZ2VkJywgJ3VuIGJhc2VkIG9uIHdoaWNoIGZpbGVzIGhhdmUgY2hhbmdlZCBpbiB0aGUgY3VycmVudCByZXBvc2l0b3J5LiAnKVxuICAub3B0aW9uKCctLW91dHB1dEZpbGUgPGZpbGVuYW1lPicsICdXcml0ZSB0ZXN0IHJlc3VsdHMgdG8gYSBmaWxlIHdoZW4gdGhlIC0tanNvbiBvcHRpb24gaXMgYWxzbyBzcGVjaWZpZWQuJylcbiAgLm9wdGlvbignLS1wYXNzV2l0aE5vVGVzdHMnLCAnQWxsb3dzIHRoZSB0ZXN0IHN1aXRlIHRvIHBhc3Mgd2hlbiBubyBmaWxlcyBhcmUgZm91bmQuJylcbiAgLm9wdGlvbignLS1ydW5JbkJhbmQnLCAnUnVuIGFsbCB0ZXN0cyBzZXJpYWxseSBpbiB0aGUgY3VycmVudCBwcm9jZXNzLCByYXRoZXIgdGhhbiBjcmVhdGluZyBhIHdvcmtlciBwb29sIG9mIGNoaWxkIHByb2Nlc3NlcyB0aGF0IHJ1biB0ZXN0cy4nKVxuICAub3B0aW9uKCctLXNob3dDb25maWcnLCAnUHJpbnQgeW91ciBKZXN0IGNvbmZpZyBhbmQgdGhlbiBleGl0cy4nKVxuICAub3B0aW9uKCctLXNpbGVudCcsICdQcmV2ZW50IHRlc3RzIGZyb20gcHJpbnRpbmcgbWVzc2FnZXMgdGhyb3VnaCB0aGUgY29uc29sZS4nKVxuICAub3B0aW9uKCctLXRlc3RMb2NhdGlvbkluUmVzdWx0cycsICdBZGRzIGEgbG9jYXRpb24gZmllbGQgdG8gdGVzdCByZXN1bHRzLicpXG4gIC5vcHRpb24oJy0tdGVzdE5hbWVQYXR0ZXJuIDxyZWdleD4nLCAnUnVuIG9ubHkgdGVzdHMgd2l0aCBhIG5hbWUgdGhhdCBtYXRjaGVzIHRoZSByZWdleC4gJylcbiAgLm9wdGlvbignLS10ZXN0UGF0aFBhdHRlcm4gPHJlZ2V4PicsICdBIHJlZ2V4cCBwYXR0ZXJuIHN0cmluZyB0aGF0IGlzIG1hdGNoZWQgYWdhaW5zdCBhbGwgdGVzdHMgcGF0aHMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgdGVzdC4nKVxuICAub3B0aW9uKCctLXVzZVN0ZGVycicsICdEaXZlcnQgYWxsIG91dHB1dCB0byBzdGRlcnIuJylcbiAgLm9wdGlvbignLS12ZXJib3NlJywgJ0Rpc3BsYXkgaW5kaXZpZHVhbCB0ZXN0IHJlc3VsdHMgd2l0aCB0aGUgdGVzdCBzdWl0ZSBoaWVyYXJjaHkuJylcbiAgLm9wdGlvbignLS13YXRjaEFsbCcsICdXYXRjaCBmaWxlcyBmb3IgY2hhbmdlcyBhbmQgcmVydW4gYWxsIHRlc3RzIHdoZW4gc29tZXRoaW5nIGNoYW5nZXMuJylcbiAgLmFjdGlvbigoY21kKSA9PiB0ZXN0KGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgndXBkYXRlJylcbiAgLm9wdGlvbignLWksIC0taW50ZXJhY3RpdmUnLCAnQ2hvb3NlIHdoaWNoIHBhY2thZ2VzIHRvIHVwZGF0ZS4nKVxuICAub3B0aW9uKCctbSwgLS1wYWNrYWdlLW1hbmFnZXIgPG1hbmFnZXI+JywgJ1doaWNoIHBhY2thZ2UgbWFuYWdlciB0byB1c2UuIERlZmF1bHQ6IG5wbScsIC9eKG5wbXx5YXJuKSQvaSwgJ25wbScpXG4gIC5vcHRpb24oJy1xLCAtLXF1aWV0JywgJ05vIExleCBub3RpZmljYXRpb25zIHByaW50ZWQgaW4gdGhlIGNvbnNvbGUuJylcbiAgLm9wdGlvbignLS1yZWdpc3RyeScsICdBZGQgYSBjdXN0b20gcmVnaXN0cnkgdXJsLicpXG4gIC5hY3Rpb24oKGNtZCkgPT4gdXBkYXRlKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbnByb2dyYW0uY29tbWFuZCgndXBncmFkZScpXG4gIC5vcHRpb24oJy1tLCAtLXBhY2thZ2UtbWFuYWdlciA8bWFuYWdlcj4nLCAnV2hpY2ggcGFja2FnZSBtYW5hZ2VyIHRvIHVzZS4gRGVmYXVsdDogbnBtJywgL14obnBtfHlhcm4pJC9pLCAnbnBtJylcbiAgLm9wdGlvbignLXEsIC0tcXVpZXQnLCAnTm8gTGV4IG5vdGlmaWNhdGlvbnMgcHJpbnRlZCBpbiB0aGUgY29uc29sZS4nKVxuICAuYWN0aW9uKChjbWQpID0+IHVwZ3JhZGUoY21kLCBwcm9jZXNzLmV4aXQpLnRoZW4oKCkgPT4ge30pKTtcblxucHJvZ3JhbS5jb21tYW5kKCd2ZXJzaW9ucycpXG4gIC5vcHRpb24oJy1qLCAtLWpzb24nLCAnUHJpbnQgdGhlIHZlcnNpb24gYXMgYSBKU09OIG9iamVjdC4nKVxuICAuYWN0aW9uKChjbWQpID0+IHZlcnNpb25zKGNtZCwgcHJvY2Vzcy5leGl0KS50aGVuKCgpID0+IHt9KSk7XG5cbi8vIEluaXRpYWxpemVcbnByb2dyYW1cbiAgLnZlcnNpb24ocGFja2FnZUpzb24udmVyc2lvbilcbiAgLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBS0EsU0FBUSxlQUFjO0FBRXRCLE9BQU8saUJBQWlCLGtCQUFrQixPQUFPLEVBQUMsTUFBTSxPQUFNO0FBQzlELFNBQVEsYUFBWTtBQUNwQixTQUFRLGFBQVk7QUFDcEIsU0FBUSxlQUFjO0FBQ3RCLFNBQVEsY0FBYTtBQUNyQixTQUFRLGNBQWE7QUFDckIsU0FBUSxXQUFVO0FBQ2xCLFNBQVEsWUFBVztBQUNuQixTQUFRLGNBQWE7QUFDckIsU0FBUSxZQUFXO0FBQ25CLFNBQVEsZUFBYztBQUN0QixTQUFRLGVBQWM7QUFDdEIsU0FBUSxZQUFXO0FBQ25CLFNBQVEsY0FBYTtBQUNyQixTQUFRLGVBQWM7QUFDdEIsU0FBUSxnQkFBZTtBQUd2QixRQUFRLFFBQVEsT0FBTyxFQUNwQixPQUFPLHVCQUF1QixpRUFBaUUsRUFDL0YsT0FBTywwQkFBMEIsOENBQThDLEVBQy9FLE9BQU8scUJBQXFCLHlFQUF5RSwrQkFBK0IsYUFBYSxFQUNqSixPQUFPLGVBQWUsOENBQThDLEVBQ3BFLE9BQU8sZ0JBQWdCLCtEQUErRCxFQUN0RixPQUFPLGdCQUFnQiw4Q0FBOEMsRUFDckUsT0FBTyxvQkFBb0IsMEJBQTBCLEVBQ3JELE9BQU8sMEJBQTBCLGtGQUFvRixFQUNySCxPQUFPLGVBQWUs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
|
package/dist/resolver.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { existsSync } from "fs";
|
|
2
|
+
import { extname, resolve } from "path";
|
|
3
|
+
import resolveSync from "resolve/sync";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
4
5
|
const getFullPath = (basedir, name, extensions) => {
|
|
5
6
|
let fileName = name;
|
|
6
7
|
extensions.some((ext) => {
|
|
@@ -22,7 +23,7 @@ const getFullPath = (basedir, name, extensions) => {
|
|
|
22
23
|
});
|
|
23
24
|
return fileName;
|
|
24
25
|
};
|
|
25
|
-
|
|
26
|
+
const resolver = (value, options) => {
|
|
26
27
|
let fileName = value;
|
|
27
28
|
if (fileName === "") {
|
|
28
29
|
return null;
|
|
@@ -52,7 +53,8 @@ module.exports = (value, options) => {
|
|
|
52
53
|
return getFullPath(basedir, fileName, extensions);
|
|
53
54
|
}
|
|
54
55
|
try {
|
|
55
|
-
|
|
56
|
+
const dirName = fileURLToPath(new URL(".", import.meta.url));
|
|
57
|
+
return resolveSync(fileName, { basedir: `${dirName}/../`, extensions });
|
|
56
58
|
} catch (error) {
|
|
57
59
|
try {
|
|
58
60
|
return resolveSync(fileName, { basedir: process.cwd(), extensions });
|
|
@@ -61,4 +63,8 @@ module.exports = (value, options) => {
|
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
};
|
|
64
|
-
|
|
66
|
+
var resolver_default = resolver;
|
|
67
|
+
export {
|
|
68
|
+
resolver_default as default
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3Jlc29sdmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge2V4dG5hbWUsIHJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHJlc29sdmVTeW5jIGZyb20gJ3Jlc29sdmUvc3luYyc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ3VybCc7XG5cbmNvbnN0IGdldEZ1bGxQYXRoID0gKGJhc2VkaXI6IHN0cmluZywgbmFtZTogc3RyaW5nLCBleHRlbnNpb25zOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG4gIGxldCBmaWxlTmFtZSA9IG5hbWU7XG5cbiAgZXh0ZW5zaW9ucy5zb21lKChleHQpID0+IHtcbiAgICBpZihmaWxlTmFtZSAhPT0gJy4uJykge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSByZXNvbHZlKGAke2Jhc2VkaXJ9LyR7ZmlsZU5hbWV9JHtleHR9YCk7XG5cbiAgICAgIGlmKGV4aXN0c1N5bmMoZnVsbFBhdGgpKSB7XG4gICAgICAgIGZpbGVOYW1lID0gZnVsbFBhdGg7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmKGZpbGVOYW1lICE9PSAnaW5kZXgnKSB7XG4gICAgICBjb25zdCBpbmRleEZpbGUgPSByZXNvbHZlKGAke2Jhc2VkaXJ9LyR7ZmlsZU5hbWV9L2luZGV4JHtleHR9YCk7XG5cbiAgICAgIGlmKGV4aXN0c1N5bmMoaW5kZXhGaWxlKSkge1xuICAgICAgICBmaWxlTmFtZSA9IGluZGV4RmlsZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcblxuICByZXR1cm4gZmlsZU5hbWU7XG59O1xuXG5jb25zdCByZXNvbHZlciA9ICh2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICBsZXQgZmlsZU5hbWUgPSB2YWx1ZTtcblxuICBpZihmaWxlTmFtZSA9PT0gJycpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGlzU2VxdWVuY2VyID0gZmlsZU5hbWUuc3RhcnRzV2l0aCgnamVzdC1zZXF1ZW5jZXItJyk7XG5cbiAgaWYoaXNTZXF1ZW5jZXIpIHtcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoJ2plc3Qtc2VxdWVuY2VyLScsICcnKTtcbiAgfVxuXG4gIGNvbnN0IHtiYXNlZGlyLCBleHRlbnNpb25zID0gWycuanMnLCAnLnRzJ119ID0gb3B0aW9ucztcbiAgY29uc3QgZXhpc3RpbmdFeHQgPSBleHRuYW1lKGZpbGVOYW1lKSB8fCAnJztcbiAgY29uc3QgaGFzRXh0ZW5zaW9uID0gZXhpc3RpbmdFeHQgIT09ICcnICYmIGV4dGVuc2lvbnMuaW5jbHVkZXMoZXhpc3RpbmdFeHQpO1xuICBjb25zdCBpc0Fic29sdXRlID0gZmlsZU5hbWUuaW5kZXhPZignLycpID09PSAwO1xuXG4gIGlmKGlzQWJzb2x1dGUpIHtcbiAgICBpZihoYXNFeHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBleGlzdHNTeW5jKGZpbGVOYW1lKSA/IGZpbGVOYW1lIDogbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoZmlsZU5hbWUsICdpbmRleCcsIGV4dGVuc2lvbnMpO1xuICB9XG5cbiAgaWYoZmlsZU5hbWUgPT09ICcuLicpIHtcbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoYmFzZWRpciwgJy4uJywgZXh0ZW5zaW9ucyk7XG4gIH1cblxuICBjb25zdCBoYXNCYXNlID0gZmlsZU5hbWUuaW5kZXhPZignLi8nKSA+PSAwIHx8IGZpbGVOYW1lLmluZGV4T2YoJy4uLycpID49IDA7XG5cbiAgaWYoaGFzQmFzZSkge1xuICAgIGlmKGhhc0V4dGVuc2lvbikge1xuICAgICAgcmV0dXJuIHJlc29sdmUoYCR7YmFzZWRpcn0vJHtmaWxlTmFtZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoYmFzZWRpciwgZmlsZU5hbWUsIGV4dGVuc2lvbnMpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkaXJOYW1lID0gZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuJywgaW1wb3J0Lm1ldGEudXJsKSk7XG4gICAgcmV0dXJuIHJlc29sdmVTeW5jKGZpbGVOYW1lLCB7YmFzZWRpcjogYCR7ZGlyTmFtZX0vLi4vYCwgZXh0ZW5zaW9uc30pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiByZXNvbHZlU3luYyhmaWxlTmFtZSwge2Jhc2VkaXI6IHByb2Nlc3MuY3dkKCksIGV4dGVuc2lvbnN9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHJlc29sdmVyOyJdLAogICJtYXBwaW5ncyI6ICJBQUlBLFNBQVEsa0JBQWlCO0FBQ3pCLFNBQVEsU0FBUyxlQUFjO0FBQy9CLE9BQU8saUJBQWlCO0FBQ3hCLFNBQVEscUJBQW9CO0FBRTVCLE1BQU0sY0FBYyxDQUFDLFNBQWlCLE1BQWMsZUFBaUM7QUFDbkYsTUFBSSxXQUFXO0FBRWYsYUFBVyxLQUFLLENBQUMsUUFBUTtBQUN2QixRQUFHLGFBQWEsTUFBTTtBQUNwQixZQUFNLFdBQVcsUUFBUSxHQUFHLFdBQVcsV0FBVyxLQUFLO0FBRXZELFVBQUcsV0FBVyxRQUFRLEdBQUc7QUFDdkIsbUJBQVc7QUFDWCxlQUFPO0FBQUEsTUFDVDtBQUFBLElBQ0Y7QUFFQSxRQUFHLGFBQWEsU0FBUztBQUN2QixZQUFNLFlBQVksUUFBUSxHQUFHLFdBQVcsaUJBQWlCLEtBQUs7QUFFOUQsVUFBRyxXQUFXLFNBQVMsR0FBRztBQUN4QixtQkFBVztBQUNYLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLFdBQU87QUFBQSxFQUNULENBQUM7QUFFRCxTQUFPO0FBQ1Q7QUFFQSxNQUFNLFdBQVcsQ0FBQyxPQUFPLFlBQVk7QUFDbkMsTUFBSSxXQUFXO0FBRWYsTUFBRyxhQUFhLElBQUk7QUFDbEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGNBQWMsU0FBUyxXQUFXLGlCQUFpQjtBQUV6RCxNQUFHLGFBQWE7QUFDZCxlQUFXLFNBQVMsUUFBUSxtQkFBbUIsRUFBRTtBQUFBLEVBQ25EO0FBRUEsUUFBTSxFQUFDLFNBQVMsYUFBYSxDQUFDLE9BQU8sS0FBSyxFQUFDLElBQUk7QUFDL0MsUUFBTSxjQUFjLFFBQVEsUUFBUSxLQUFLO0FBQ3pDLFFBQU0sZUFBZSxnQkFBZ0IsTUFBTSxXQUFXLFNBQVMsV0FBVztBQUMxRSxRQUFNLGFBQWEsU0FBUyxRQUFRLEdBQUcsTUFBTTtBQUU3QyxNQUFHLFlBQVk7QUFDYixRQUFHLGNBQWM7QUFDZixhQUFPLFdBQVcsUUFBUSxJQUFJLFdBQVc7QUFBQSxJQUMzQztBQUVBLFdBQU8sWUFBWSxVQUFVLFNBQVMsVUFBVTtBQUFBLEVBQ2xEO0FBRUEsTUFBRyxhQUFhLE1BQU07QUFDcEIsV0FBTyxZQUFZLFNBQVMsTUFBTSxVQUFVO0FBQUEsRUFDOUM7QUFFQSxRQUFNLFVBQVUsU0FBUyxRQUFRLElBQUksS0FBSyxLQUFLLFNBQVMsUUFBUSxLQUFLLEtBQUs7QUFFMUUsTUFBRyxTQUFTO0FBQ1YsUUFBRyxjQUFjO0FBQ2YsYUFBTyxRQUFRLEdBQUcsV0FBVyxVQUFVO0FBQUEsSUFDekM7QUFFQSxXQUFPLFlBQVksU0FBUyxVQUFVLFVBQVU7QUFBQSxFQUNsRDtBQUVBLE1BQUk7QUFDRixVQUFNLFVBQVUsY0FBYyxJQUFJLElBQUksS0FBSyxZQUFZLEdBQUcsQ0FBQztBQUMzRCxXQUFPLFlBQVksVUFBVSxFQUFDLFNBQVMsR0FBRyxlQUFlLFdBQVUsQ0FBQztBQUFBLEVBQ3RFLFNBQVEsT0FBTjtBQUNBLFFBQUk7QUFDRixhQUFPLFlBQVksVUFBVSxFQUFDLFNBQVMsUUFBUSxJQUFJLEdBQUcsV0FBVSxDQUFDO0FBQUEsSUFDbkUsU0FBUUEsUUFBTjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGO0FBRUEsSUFBTyxtQkFBUTsiLAogICJuYW1lcyI6IFsiZXJyb3IiXQp9Cg==
|