create-pylon 1.0.1 → 1.0.2

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/dist/index.js CHANGED
@@ -261,7 +261,7 @@ var createTemplate = async (options) => {
261
261
  };
262
262
  readdirFilesSyncRecursive(sharedTemplateDir).forEach((file) => {
263
263
  const source = path.join(sharedTemplateDir, file);
264
- const target2 = path.join(targetDirectoryPath, file);
264
+ let target2 = path.join(targetDirectoryPath, file);
265
265
  const targetDir = path.dirname(target2);
266
266
  if (runtime === "cf-workers" && source.includes(".github/workflows/publish.yaml")) {
267
267
  return;
@@ -269,16 +269,22 @@ var createTemplate = async (options) => {
269
269
  if (!fs.existsSync(targetDir)) {
270
270
  fs.mkdirSync(targetDir, { recursive: true });
271
271
  }
272
+ if (target2.endsWith(".example")) {
273
+ target2 = target2.replace(".example", "");
274
+ }
272
275
  const injectedContent = inject(fs.readFileSync(source, "utf-8"));
273
276
  fs.writeFileSync(target2, injectedContent);
274
277
  });
275
278
  readdirFilesSyncRecursive(templateDir).forEach((file) => {
276
279
  const source = path.join(templateDir, file);
277
- const target2 = path.join(targetDirectoryPath, file);
280
+ let target2 = path.join(targetDirectoryPath, file);
278
281
  const targetDir = path.dirname(target2);
279
282
  if (!fs.existsSync(targetDir)) {
280
283
  fs.mkdirSync(targetDir, { recursive: true });
281
284
  }
285
+ if (target2.endsWith(".example")) {
286
+ target2 = target2.replace(".example", "");
287
+ }
282
288
  const injectedContent = inject(fs.readFileSync(source, "utf-8"));
283
289
  fs.writeFileSync(target2, injectedContent);
284
290
  });
@@ -328,5 +334,5 @@ var installDependencies = async (args) => {
328
334
  program.name("create-pylon").version(version).arguments("[target]").addOption(new Option("-i, --install", "Install dependencies")).addOption(new Option("-r, --runtime <runtime>", "Runtime").choices(runtimes.map(({ key }) => key))).addOption(new Option("-t, --template <template>", "Template")).addOption(new Option("-pm, --package-manager <packageManager>", "Package manager")).addOption(new Option("--client", "Enable client generation (https://pylon.cronit.io/docs/integrations/gqty)")).addOption(new Option("--client-path <clientPath>", "Client path")).addOption(new Option("--client-port <clientPort>", "Client port")).action(main);
329
335
  program.parse();
330
336
 
331
- //# debugId=8A79ACBBAA1F7F9E64756E2164756E21
332
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHtPcHRpb24sIHByb2dyYW0sIHR5cGUgQ29tbWFuZH0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IGNvbnNvbGEgZnJvbSAnY29uc29sYSdcbmltcG9ydCB7aW5wdXQsIHNlbGVjdCwgY29uZmlybX0gZnJvbSAnQGlucXVpcmVyL3Byb21wdHMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnXG5cbmltcG9ydCAqIGFzIHRlbGVtZXRyeSBmcm9tICdAZ2V0Y3Jvbml0L3B5bG9uLXRlbGVtZXRyeSdcblxuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICd1cmwnXG5pbXBvcnQge2Rpcm5hbWV9IGZyb20gJ3BhdGgnXG5cbmNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybClcbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSlcblxuY29uc3QgdmVyc2lvbiA9ICgoKSA9PiB7XG4gIHJldHVybiBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAncGFja2FnZS5qc29uJyksICd1dGYtOCcpXG4gICkudmVyc2lvbiBhcyBzdHJpbmdcbn0pKClcblxuZnVuY3Rpb24gbWtkaXJwKGRpcjogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgZnMubWtkaXJTeW5jKGRpciwge3JlY3Vyc2l2ZTogdHJ1ZX0pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBpZiAoJ2NvZGUnIGluIGUgJiYgZS5jb2RlID09PSAnRUVYSVNUJykgcmV0dXJuXG4gICAgfVxuICAgIHRocm93IGVcbiAgfVxufVxuXG5jb25zdCBydW50aW1lczoge1xuICBrZXk6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgd2Vic2l0ZTogc3RyaW5nXG4gIHRlbXBsYXRlcz86IHN0cmluZ1tdXG59W10gPSBbXG4gIHtcbiAgICBrZXk6ICdidW4nLFxuICAgIG5hbWU6ICdCdW4uanMnLFxuICAgIHdlYnNpdGU6ICdodHRwczovL2J1bmpzLmRldicsXG4gICAgdGVtcGxhdGVzOiBbJ2RlZmF1bHQnXVxuICB9LFxuICB7XG4gICAga2V5OiAnbm9kZScsXG4gICAgbmFtZTogJ05vZGUuanMnLFxuICAgIHdlYnNpdGU6ICdodHRwczovL25vZGVqcy5vcmcnLFxuICAgIHRlbXBsYXRlczogWydkZWZhdWx0J11cbiAgfSxcbiAge1xuICAgIGtleTogJ2NmLXdvcmtlcnMnLFxuICAgIG5hbWU6ICdDbG91ZGZsYXJlIFdvcmtlcnMnLFxuICAgIHdlYnNpdGU6ICdodHRwczovL3dvcmtlcnMuY2xvdWRmbGFyZS5jb20nLFxuICAgIHRlbXBsYXRlczogWydkZWZhdWx0J11cbiAgfVxuXVxuXG5jb25zdCB0ZW1wbGF0ZXM6IHtcbiAga2V5OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcbn1bXSA9IFtcbiAge1xuICAgIGtleTogJ2RlZmF1bHQnLFxuICAgIG5hbWU6ICdEZWZhdWx0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgdGVtcGxhdGUnXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdkYXRhYmFzZScsXG4gICAgbmFtZTogJ0RhdGFiYXNlIChQcmlzbWEpJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RlbXBsYXRlIHdpdGggUHJpc21hIE9STSdcbiAgfVxuXVxuXG5jb25zdCBpbmplY3RWYXJpYWJsZXNJbkNvbnRlbnQgPSAoXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4pID0+IHtcbiAgbGV0IHJlc3VsdCA9IGNvbnRlbnRcblxuICBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlQWxsKGtleSwgdmFsdWUpXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuY29uc3QgcmVhZGRpckZpbGVzU3luY1JlY3Vyc2l2ZSA9IChkaXI6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgcnVuID0gKGRpcjogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXVxuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhkaXIpXG5cbiAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyLCBmaWxlKVxuXG4gICAgICBpZiAoZnMuc3RhdFN5bmMoZmlsZVBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4ucnVuKGZpbGVQYXRoKSlcbiAgICAgIH1cblxuICAgICAgLy8gT25seSBhZGQgZmlsZXNcbiAgICAgIGlmIChmcy5zdGF0U3luYyhmaWxlUGF0aCkuaXNGaWxlKCkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goZmlsZVBhdGgpXG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHJldHVybiBydW4oZGlyKS5tYXAoZmlsZSA9PiB7XG4gICAgcmV0dXJuIGZpbGUucmVwbGFjZShkaXIsICcuJylcbiAgfSlcbn1cblxuY29uc3QgY3JlYXRlVGVtcGxhdGUgPSBhc3luYyAob3B0aW9uczoge1xuICBuYW1lOiBzdHJpbmdcbiAgcnVudGltZTogc3RyaW5nXG4gIHRlbXBsYXRlOiBzdHJpbmdcbiAgdGFyZ2V0OiBzdHJpbmdcbn0pID0+IHtcbiAgY29uc3Qge3J1bnRpbWUsIHRlbXBsYXRlLCB0YXJnZXR9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IHJ1bnRpbWVOYW1lID0gcnVudGltZXMuZmluZCgoe2tleX0pID0+IGtleSA9PT0gcnVudGltZSk/Lm5hbWVcbiAgY29uc3QgdGVtcGxhdGVOYW1lID0gdGVtcGxhdGVzLmZpbmQoKHtrZXl9KSA9PiBrZXkgPT09IHRlbXBsYXRlKT8ubmFtZVxuXG4gIGlmICghcnVudGltZU5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcnVudGltZTogJHtydW50aW1lfWApXG4gIH1cblxuICBpZiAoIXRlbXBsYXRlTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZW1wbGF0ZTogJHt0ZW1wbGF0ZX1gKVxuICB9XG5cbiAgLy8gVGhlIHRlbXBsYXRlcyBhcmUgc3RvcmVkIGluIHRoZSBgdGVtcGxhdGVzYCBkaXJlY3RvcnlcbiAgY29uc3Qgc2hhcmVkVGVtcGxhdGVEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAndGVtcGxhdGVzJywgJ3NoYXJlZCcpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKHNoYXJlZFRlbXBsYXRlRGlyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2hhcmVkIHRlbXBsYXRlcyBub3QgZm91bmQ6ICR7c2hhcmVkVGVtcGxhdGVEaXJ9YClcbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlRGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ3RlbXBsYXRlcycsIHJ1bnRpbWUsIHRlbXBsYXRlKVxuXG4gIGlmICghZnMuZXhpc3RzU3luYyh0ZW1wbGF0ZURpcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbXBsYXRlIG5vdCBmb3VuZDogJHt0ZW1wbGF0ZURpcn1gKVxuICB9XG5cbiAgLy8gVGhlIHRhcmdldCBkaXJlY3RvcnkgaXMgYWxyZWFkeSBjcmVhdGVkXG4gIGNvbnN0IHRhcmdldERpcmVjdG9yeVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgdGFyZ2V0KVxuXG4gIGNvbnNvbGEuc3RhcnQoYENyZWF0aW5nIHB5bG9uIGluICR7dGFyZ2V0RGlyZWN0b3J5UGF0aH1gKVxuXG4gIGNvbnN0IGluamVjdCA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gaW5qZWN0VmFyaWFibGVzSW5Db250ZW50KGNvbnRlbnQsIHtcbiAgICAgIF9fUFlMT05fTkFNRV9fOiBvcHRpb25zLm5hbWVcbiAgICB9KVxuICB9XG5cbiAgLy8gQ29weSB0aGUgc2hhcmVkIHRlbXBsYXRlIGZpbGVzXG4gIHJlYWRkaXJGaWxlc1N5bmNSZWN1cnNpdmUoc2hhcmVkVGVtcGxhdGVEaXIpLmZvckVhY2goZmlsZSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gcGF0aC5qb2luKHNoYXJlZFRlbXBsYXRlRGlyLCBmaWxlKVxuICAgIGNvbnN0IHRhcmdldCA9IHBhdGguam9pbih0YXJnZXREaXJlY3RvcnlQYXRoLCBmaWxlKVxuXG4gICAgLy8gQ3JlYXRlIGZvbGRlciByZWN1cnNpdmVseSBhbmQgY29weSBmaWxlXG5cbiAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmRpcm5hbWUodGFyZ2V0KVxuXG4gICAgLy8gU2tpcCB0aGUgLmdpdGh1Yi93b3JrZmxvd3MgZGlyZWN0b3J5IGZvciBjZi13b3JrZXJzIHJ1bnRpbWVcbiAgICBpZiAoXG4gICAgICBydW50aW1lID09PSAnY2Ytd29ya2VycycgJiZcbiAgICAgIHNvdXJjZS5pbmNsdWRlcygnLmdpdGh1Yi93b3JrZmxvd3MvcHVibGlzaC55YW1sJylcbiAgICApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0YXJnZXREaXIpKSB7XG4gICAgICBmcy5ta2RpclN5bmModGFyZ2V0RGlyLCB7cmVjdXJzaXZlOiB0cnVlfSlcbiAgICB9XG5cbiAgICBjb25zdCBpbmplY3RlZENvbnRlbnQgPSBpbmplY3QoZnMucmVhZEZpbGVTeW5jKHNvdXJjZSwgJ3V0Zi04JykpXG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKHRhcmdldCwgaW5qZWN0ZWRDb250ZW50KVxuICB9KVxuXG4gIC8vIENvcHkgdGhlIHJ1bnRpbWUgc3BlY2lmaWMgdGVtcGxhdGUgZmlsZXNcbiAgcmVhZGRpckZpbGVzU3luY1JlY3Vyc2l2ZSh0ZW1wbGF0ZURpcikuZm9yRWFjaChmaWxlID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBwYXRoLmpvaW4odGVtcGxhdGVEaXIsIGZpbGUpXG4gICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5qb2luKHRhcmdldERpcmVjdG9yeVBhdGgsIGZpbGUpXG5cbiAgICAvLyBDcmVhdGUgZm9sZGVyIHJlY3Vyc2l2ZWx5IGFuZCBjb3B5IGZpbGVcbiAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmRpcm5hbWUodGFyZ2V0KVxuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIsIHtyZWN1cnNpdmU6IHRydWV9KVxuICAgIH1cblxuICAgIGNvbnN0IGluamVjdGVkQ29udGVudCA9IGluamVjdChmcy5yZWFkRmlsZVN5bmMoc291cmNlLCAndXRmLTgnKSlcblxuICAgIGZzLndyaXRlRmlsZVN5bmModGFyZ2V0LCBpbmplY3RlZENvbnRlbnQpXG4gIH0pXG5cbiAgY29uc29sYS5zdWNjZXNzKGBQeWxvbiBjcmVhdGVkYClcbn1cblxuaW1wb3J0IHtkZXRlY3R9IGZyb20gJ2RldGVjdC1wYWNrYWdlLW1hbmFnZXInXG5pbXBvcnQge3NwYXduU3luY30gZnJvbSAnY2hpbGRfcHJvY2VzcydcblxuY29uc3QgaW5zdGFsbERlcGVuZGVuY2llcyA9IGFzeW5jIChhcmdzOiB7XG4gIHRhcmdldDogc3RyaW5nXG4gIHBhY2thZ2VNYW5hZ2VyPzogc3RyaW5nXG59KSA9PiB7XG4gIGNvbnN0IHRhcmdldCA9IHBhdGgucmVzb2x2ZShhcmdzLnRhcmdldClcblxuICBjb25zb2xlLmxvZygndGFyZ2V0JywgdGFyZ2V0KVxuXG4gIGlmICghYXJncy5wYWNrYWdlTWFuYWdlcikge1xuICAgIGFyZ3MucGFja2FnZU1hbmFnZXIgPSBhd2FpdCBkZXRlY3Qoe1xuICAgICAgY3dkOiB0YXJnZXQsXG4gICAgICBpbmNsdWRlR2xvYmFsQnVuOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIGlmICghYXJncy5wYWNrYWdlTWFuYWdlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gcGFja2FnZSBtYW5hZ2VyIGZvdW5kJylcbiAgfVxuXG4gIC8vIHlhcm4nLCAnbnBtJywgb3IgJ3BucG0nLCAnYnVuJ1xuICBjb25zdCB7cGFja2FnZU1hbmFnZXJ9ID0gYXJnc1xuXG4gIGxldCBjb21tYW5kID0gJydcblxuICBzd2l0Y2ggKHBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgY2FzZSAneWFybic6XG4gICAgICBjb21tYW5kID0gJ3lhcm4nXG4gICAgICBicmVha1xuICAgIGNhc2UgJ25wbSc6XG4gICAgICBjb21tYW5kID0gJ25wbSBpbnN0YWxsJ1xuICAgICAgYnJlYWtcbiAgICBjYXNlICdwbnBtJzpcbiAgICAgIGNvbW1hbmQgPSAncG5wbSBpbnN0YWxsJ1xuICAgICAgYnJlYWtcbiAgICBjYXNlICdidW4nOlxuICAgICAgY29tbWFuZCA9ICdidW4gaW5zdGFsbCdcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYWNrYWdlIG1hbmFnZXI6ICR7cGFja2FnZU1hbmFnZXJ9YClcbiAgfVxuXG4gIGNvbnNvbGEuc3RhcnQoYEluc3RhbGxpbmcgZGVwZW5kZW5jaWVzIHVzaW5nICR7cGFja2FnZU1hbmFnZXJ9YClcblxuICBjb25zdCBwcm9jID0gc3Bhd25TeW5jKGNvbW1hbmQsIHtcbiAgICBjd2Q6IHRhcmdldCxcbiAgICBzaGVsbDogdHJ1ZSxcbiAgICBzdGRpbzogJ2luaGVyaXQnXG4gIH0pXG5cbiAgaWYgKHByb2Muc3RhdHVzICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gaW5zdGFsbCBkZXBlbmRlbmNpZXNgKVxuICB9XG5cbiAgY29uc29sYS5zdWNjZXNzKGBEZXBlbmRlbmNpZXMgaW5zdGFsbGVkYClcbn1cblxucHJvZ3JhbVxuICAubmFtZSgnY3JlYXRlLXB5bG9uJylcbiAgLnZlcnNpb24odmVyc2lvbilcbiAgLmFyZ3VtZW50cygnW3RhcmdldF0nKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy1pLCAtLWluc3RhbGwnLCAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnKSlcbiAgLmFkZE9wdGlvbihcbiAgICBuZXcgT3B0aW9uKCctciwgLS1ydW50aW1lIDxydW50aW1lPicsICdSdW50aW1lJykuY2hvaWNlcyhcbiAgICAgIHJ1bnRpbWVzLm1hcCgoe2tleX0pID0+IGtleSlcbiAgICApXG4gIClcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctdCwgLS10ZW1wbGF0ZSA8dGVtcGxhdGU+JywgJ1RlbXBsYXRlJykpXG4gIC5hZGRPcHRpb24oXG4gICAgbmV3IE9wdGlvbignLXBtLCAtLXBhY2thZ2UtbWFuYWdlciA8cGFja2FnZU1hbmFnZXI+JywgJ1BhY2thZ2UgbWFuYWdlcicpXG4gIClcbiAgLmFkZE9wdGlvbihcbiAgICBuZXcgT3B0aW9uKFxuICAgICAgJy0tY2xpZW50JyxcbiAgICAgICdFbmFibGUgY2xpZW50IGdlbmVyYXRpb24gKGh0dHBzOi8vcHlsb24uY3Jvbml0LmlvL2RvY3MvaW50ZWdyYXRpb25zL2dxdHkpJ1xuICAgIClcbiAgKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tY2xpZW50LXBhdGggPGNsaWVudFBhdGg+JywgJ0NsaWVudCBwYXRoJykpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1jbGllbnQtcG9ydCA8Y2xpZW50UG9ydD4nLCAnQ2xpZW50IHBvcnQnKSlcbiAgLmFjdGlvbihtYWluKVxuXG50eXBlIEFyZ09wdGlvbnMgPSB7XG4gIGluc3RhbGw6IGJvb2xlYW5cbiAgcnVudGltZTogc3RyaW5nXG4gIHRlbXBsYXRlOiBzdHJpbmdcbiAgcGFja2FnZU1hbmFnZXI/OiBzdHJpbmdcbiAgY2xpZW50PzogYm9vbGVhblxuICBjbGllbnRQYXRoPzogc3RyaW5nXG4gIGNsaWVudFBvcnQ/OiBzdHJpbmdcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbihcbiAgdGFyZ2V0RGlyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IEFyZ09wdGlvbnMsXG4gIGNvbW1hbmQ6IENvbW1hbmRcbikge1xuICB0cnkge1xuICAgIGNvbnNvbGEubG9nKGAke2NvbW1hbmQubmFtZSgpfSB2ZXJzaW9uICR7Y29tbWFuZC52ZXJzaW9uKCl9YClcblxuICAgIGNvbnN0IHtcbiAgICAgIGluc3RhbGw6IGluc3RhbGxBcmcsXG4gICAgICBydW50aW1lOiBydW50aW1lQXJnLFxuICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlQXJnLFxuICAgICAgcGFja2FnZU1hbmFnZXI6IHBhY2thZ2VNYW5hZ2VyQXJnLFxuICAgICAgY2xpZW50OiBjbGllbnRBcmcsXG4gICAgICBjbGllbnRQYXRoOiBjbGllbnRQYXRoQXJnLFxuICAgICAgY2xpZW50UG9ydDogY2xpZW50UG9ydEFyZ1xuICAgIH0gPSBvcHRpb25zXG5cbiAgICBsZXQgdGFyZ2V0ID0gJydcblxuICAgIGlmICh0YXJnZXREaXIpIHtcbiAgICAgIHRhcmdldCA9IHRhcmdldERpclxuXG4gICAgICBjb25zb2xhLnN1Y2Nlc3MoYFVzaW5nIHRhcmdldCBkaXJlY3Rvcnkg4oCmICR7dGFyZ2V0fWApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGlucHV0KHtcbiAgICAgICAgbWVzc2FnZTogJ1RhcmdldCBkaXJlY3RvcnknLFxuICAgICAgICBkZWZhdWx0OiAnbXktcHlsb24nXG4gICAgICB9KVxuICAgICAgdGFyZ2V0ID0gYW5zd2VyXG4gICAgfVxuXG4gICAgbGV0IHByb2plY3ROYW1lID0gJydcblxuICAgIGlmICh0YXJnZXQgPT09ICcuJykge1xuICAgICAgcHJvamVjdE5hbWUgPSBwYXRoLmJhc2VuYW1lKHByb2Nlc3MuY3dkKCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2plY3ROYW1lID0gcGF0aC5iYXNlbmFtZSh0YXJnZXQpXG4gICAgfVxuXG4gICAgY29uc3QgcnVudGltZU5hbWUgPVxuICAgICAgcnVudGltZUFyZyB8fFxuICAgICAgKGF3YWl0IHNlbGVjdCh7XG4gICAgICAgIG1lc3NhZ2U6ICdXaGljaCBydW50aW1lIHdvdWxkIHlvdSBsaWtlIHRvIHVzZT8nLFxuICAgICAgICBjaG9pY2VzOiBydW50aW1lcy5tYXAocnVudGltZSA9PiAoe1xuICAgICAgICAgIG5hbWU6IGAke3J1bnRpbWUubmFtZX0gKCR7cnVudGltZS53ZWJzaXRlfSlgLFxuICAgICAgICAgIHZhbHVlOiBydW50aW1lLmtleVxuICAgICAgICB9KSksXG4gICAgICAgIGRlZmF1bHQ6IDBcbiAgICAgIH0pKVxuXG4gICAgaWYgKCFydW50aW1lTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBydW50aW1lIHNlbGVjdGVkJylcbiAgICB9XG5cbiAgICBjb25zdCBydW50aW1lID0gcnVudGltZXMuZmluZCgoe2tleX0pID0+IGtleSA9PT0gcnVudGltZU5hbWUpXG5cbiAgICBpZiAoIXJ1bnRpbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBydW50aW1lIHNlbGVjdGVkOiAke3J1bnRpbWVOYW1lfWApXG4gICAgfVxuXG4gICAgY29uc3QgdGVtcGxhdGVOYW1lID1cbiAgICAgIHRlbXBsYXRlQXJnIHx8XG4gICAgICAoYXdhaXQgc2VsZWN0KHtcbiAgICAgICAgbWVzc2FnZTogJ1doaWNoIHRlbXBsYXRlIHdvdWxkIHlvdSBsaWtlIHRvIHVzZT8nLFxuICAgICAgICBjaG9pY2VzOiB0ZW1wbGF0ZXNcbiAgICAgICAgICAuZmlsdGVyKHRlbXBsYXRlID0+IHJ1bnRpbWUudGVtcGxhdGVzPy5pbmNsdWRlcyh0ZW1wbGF0ZS5rZXkpKVxuICAgICAgICAgIC5tYXAodGVtcGxhdGUgPT4gKHtcbiAgICAgICAgICAgIG5hbWU6IHRlbXBsYXRlLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogdGVtcGxhdGUua2V5XG4gICAgICAgICAgfSkpLFxuICAgICAgICBkZWZhdWx0OiAwXG4gICAgICB9KSlcblxuICAgIGlmICghdGVtcGxhdGVOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRlbXBsYXRlIHNlbGVjdGVkJylcbiAgICB9XG5cbiAgICBpZiAoZnMuZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgICBpZiAoZnMucmVhZGRpclN5bmModGFyZ2V0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29uZmlybSh7XG4gICAgICAgICAgbWVzc2FnZTogJ0RpcmVjdG9yeSBub3QgZW1wdHkuIENvbnRpbnVlPycsXG4gICAgICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1rZGlycCh0YXJnZXQpXG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFsbCA9XG4gICAgICBpbnN0YWxsQXJnIHx8XG4gICAgICAoYXdhaXQgY29uZmlybSh7bWVzc2FnZTogJ1dvdWxkIHlvdSBsaWtlIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzPyd9KSlcblxuICAgIGF3YWl0IGNyZWF0ZVRlbXBsYXRlKHtcbiAgICAgIG5hbWU6IHByb2plY3ROYW1lLFxuICAgICAgcnVudGltZTogcnVudGltZU5hbWUsXG4gICAgICB0ZW1wbGF0ZTogdGVtcGxhdGVOYW1lLFxuICAgICAgdGFyZ2V0XG4gICAgfSlcblxuICAgIGxldCBwYWNrYWdlTWFuYWdlciA9IHBhY2thZ2VNYW5hZ2VyQXJnXG5cbiAgICBpZiAocnVudGltZU5hbWUgPT09ICdidW4nICYmICFwYWNrYWdlTWFuYWdlcikge1xuICAgICAgcGFja2FnZU1hbmFnZXIgPSAnYnVuJ1xuICAgIH1cblxuICAgIGlmIChpbnN0YWxsKSB7XG4gICAgICBhd2FpdCBpbnN0YWxsRGVwZW5kZW5jaWVzKHt0YXJnZXQsIHBhY2thZ2VNYW5hZ2VyfSlcbiAgICB9XG5cbiAgICBjb25zdCBjbGllbnQgPVxuICAgICAgY2xpZW50QXJnIHx8XG4gICAgICAoYXdhaXQgY29uZmlybSh7XG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgJ1dvdWxkIHlvdSBsaWtlIHRvIGVuYWJsZSBjbGllbnQgZ2VuZXJhdGlvbj8gKGh0dHBzOi8vcHlsb24uY3Jvbml0LmlvL2RvY3MvaW50ZWdyYXRpb25zL2dxdHkpJyxcbiAgICAgICAgZGVmYXVsdDogZmFsc2VcbiAgICAgIH0pKVxuXG4gICAgbGV0IGNsaWVudFJvb3Q6IHN0cmluZyA9ICcnXG4gICAgbGV0IGNsaWVudFBhdGg6IHN0cmluZyA9ICcnXG4gICAgbGV0IGNsaWVudFBvcnQ6IHN0cmluZyA9ICcnXG5cbiAgICBpZiAoY2xpZW50KSB7XG4gICAgICBpZiAoIWNsaWVudFBhdGhBcmcpIHtcbiAgICAgICAgY2xpZW50Um9vdCA9IGF3YWl0IGlucHV0KHtcbiAgICAgICAgICBtZXNzYWdlOiAnUGF0aCB0byB0aGUgcm9vdCB3aGVyZSB0aGUgY2xpZW50IHNob3VsZCBiZSBnZW5lcmF0ZWQnLFxuICAgICAgICAgIGRlZmF1bHQ6ICcuJ1xuICAgICAgICB9KVxuXG4gICAgICAgIGNsaWVudFBhdGggPSBhd2FpdCBpbnB1dCh7XG4gICAgICAgICAgbWVzc2FnZTogJ1BhdGggdG8gZ2VuZXJhdGUgdGhlIGNsaWVudCB0bycsXG4gICAgICAgICAgZGVmYXVsdDogcGF0aC5qb2luKGNsaWVudFJvb3QsICdncXR5L2luZGV4LnRzJyksXG4gICAgICAgICAgdmFsaWRhdGU6IHZhbHVlID0+IHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwYXRoIHN0YXJ0cyB3aXRoIHRoZSBjbGllbnQgcm9vdCAodGFrZSBjYXJlIG9mIC4pXG4gICAgICAgICAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgoY2xpZW50Um9vdCA9PT0gJy4nID8gJycgOiBjbGllbnRSb290KSkge1xuICAgICAgICAgICAgICByZXR1cm4gJ1BhdGggbXVzdCBzdGFydCB3aXRoIHRoZSBjbGllbnQgcm9vdCdcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNsaWVudFBvcnQgPVxuICAgICAgICBjbGllbnRQb3J0QXJnIHx8XG4gICAgICAgIChhd2FpdCBpbnB1dCh7XG4gICAgICAgICAgbWVzc2FnZTogJ1BvcnQgb2YgdGhlIHB5bG9uIHNlcnZlciB0byBnZW5lcmF0ZSB0aGUgY2xpZW50IGZyb20nLFxuICAgICAgICAgIGRlZmF1bHQ6ICczMDAwJ1xuICAgICAgICB9KSlcblxuICAgICAgY29uc29sYS5zdGFydChgVXBkYXRpbmcgcHlsb24gZGV2IHNjcmlwdCB0byBnZW5lcmF0ZSBjbGllbnRgKVxuXG4gICAgICBjb25zdCBkZXZTY3JpcHRQYXRoID0gcGF0aC5qb2luKHRhcmdldCwgJ3BhY2thZ2UuanNvbicpXG5cbiAgICAgIGNvbnN0IGRldlNjcmlwdCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGRldlNjcmlwdFBhdGgsICd1dGYtOCcpKVxuXG4gICAgICBkZXZTY3JpcHQuc2NyaXB0cyA9IHtcbiAgICAgICAgLi4uZGV2U2NyaXB0LnNjcmlwdHMsXG4gICAgICAgIGRldjpcbiAgICAgICAgICBkZXZTY3JpcHQuc2NyaXB0cy5kZXYgK1xuICAgICAgICAgIGAgLS1jbGllbnQgLS1jbGllbnQtcG9ydCAke2NsaWVudFBvcnR9IC0tY2xpZW50LXBhdGggJHtjbGllbnRQYXRofWBcbiAgICAgIH1cblxuICAgICAgZnMud3JpdGVGaWxlU3luYyhkZXZTY3JpcHRQYXRoLCBKU09OLnN0cmluZ2lmeShkZXZTY3JpcHQsIG51bGwsIDIpKVxuXG4gICAgICBjb25zb2xhLnN1Y2Nlc3MoYFB5bG9uIGRldiBzY3JpcHQgdXBkYXRlZGApXG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZSA9IGBcbvCfjokgJHtjaGFsay5ncmVlbi5ib2xkKCdQeWxvbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4nKX1cblxu8J+SuyAke2NoYWxrLmN5YW4uYm9sZCgnQ29udGludWUgRGV2ZWxvcGluZycpfVxuICAgICR7Y2hhbGsueWVsbG93KCdDaGFuZ2UgZGlyZWN0b3JpZXM6Jyl9IGNkICR7Y2hhbGsuYmx1ZSh0YXJnZXQpfVxuICAgICR7Y2hhbGsueWVsbG93KCdTdGFydCBkZXYgc2VydmVyOicpfSBucG0gcnVuIHN0YXJ0XG4gICAgJHtjaGFsay55ZWxsb3coJ0RlcGxveTonKX0gbnBtIHJ1biBkZXBsb3lcblxu8J+TliAke2NoYWxrLmN5YW4uYm9sZCgnRXhwbG9yZSBEb2N1bWVudGF0aW9uJyl9XG4gICAgJHtjaGFsay51bmRlcmxpbmUuYmx1ZSgnaHR0cHM6Ly9weWxvbi5jcm9uaXQuaW8vZG9jcycpfVxuXG7wn5KsICR7Y2hhbGsuY3lhbi5ib2xkKCdKb2luIG91ciBDb21tdW5pdHknKX1cbiAgICAke2NoYWxrLnVuZGVybGluZS5ibHVlKCdodHRwczovL2Rpc2NvcmQuZ2cvY2JKamtWcm5IZScpfVxuYFxuXG4gICAgYXdhaXQgdGVsZW1ldHJ5LnNlbmRDcmVhdGVFdmVudCh7XG4gICAgICBuYW1lOiBwcm9qZWN0TmFtZSxcbiAgICAgIHB5bG9uQ3JlYXRlVmVyc2lvbjogdmVyc2lvbixcbiAgICAgIHJ1bnRpbWU6IHJ1bnRpbWVOYW1lLFxuICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlTmFtZSxcbiAgICAgIGNsaWVudFBhdGg6IGNsaWVudFBhdGggfHwgdW5kZWZpbmVkLFxuICAgICAgY2xpZW50UG9ydDogcGFyc2VJbnQoY2xpZW50UG9ydCkgfHwgdW5kZWZpbmVkXG4gICAgfSlcblxuICAgIGNvbnNvbGEuYm94KG1lc3NhZ2UpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xhLmVycm9yKGUpXG4gIH1cbn1cblxucHJvZ3JhbS5wYXJzZSgpXG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOzs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBV0EsU0FBUyxNQUFNLENBQUMsS0FBYTtBQUMzQixNQUFJO0FBQ0YsSUFBRyxhQUFVLEtBQUssRUFBQyxXQUFXLEtBQUksQ0FBQztBQUFBLFdBQzVCLEdBQVA7QUFDQSxRQUFJLGFBQWEsT0FBTztBQUN0QixVQUFJLFVBQVUsS0FBSyxFQUFFLFNBQVM7QUFBVTtBQUFBLElBQzFDO0FBQ0EsVUFBTTtBQUFBO0FBQUE7QUErS1Y7QUFDQTtBQTRGQSxlQUFlLElBQUksQ0FDakIsV0FDQSxTQUNBLFNBQ0E7QUFDQSxNQUFJO0FBQ0YsWUFBUSxJQUFJLEdBQUcsUUFBUSxLQUFLLGFBQWEsUUFBUSxRQUFRLEdBQUc7QUFFNUQ7QUFBQSxNQUNFLFNBQVM7QUFBQSxNQUNULFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLGdCQUFnQjtBQUFBLE1BQ2hCLFFBQVE7QUFBQSxNQUNSLFlBQVk7QUFBQSxNQUNaLFlBQVk7QUFBQSxRQUNWO0FBRUosUUFBSSxTQUFTO0FBRWIsUUFBSSxXQUFXO0FBQ2IsZUFBUztBQUVULGNBQVEsUUFBUSxpQ0FBMkIsUUFBUTtBQUFBLElBQ3JELE9BQU87QUFDTCxZQUFNLFNBQVMsTUFBTSxNQUFNO0FBQUEsUUFDekIsU0FBUztBQUFBLFFBQ1QsU0FBUztBQUFBLE1BQ1gsQ0FBQztBQUNELGVBQVM7QUFBQTtBQUdYLFFBQUksY0FBYztBQUVsQixRQUFJLFdBQVcsS0FBSztBQUNsQixvQkFBYyxLQUFLLFNBQVMsUUFBUSxJQUFJLENBQUM7QUFBQSxJQUMzQyxPQUFPO0FBQ0wsb0JBQWMsS0FBSyxTQUFTLE1BQU07QUFBQTtBQUdwQyxVQUFNLGNBQ0osY0FDQyxNQUFNLE9BQU87QUFBQSxNQUNaLFNBQVM7QUFBQSxNQUNULFNBQVMsU0FBUyxJQUFJLGVBQVk7QUFBQSxRQUNoQyxNQUFNLEdBQUcsU0FBUSxTQUFTLFNBQVE7QUFBQSxRQUNsQyxPQUFPLFNBQVE7QUFBQSxNQUNqQixFQUFFO0FBQUEsTUFDRixTQUFTO0FBQUEsSUFDWCxDQUFDO0FBRUgsU0FBSyxhQUFhO0FBQ2hCLFlBQU0sSUFBSSxNQUFNLHFCQUFxQjtBQUFBLElBQ3ZDO0FBRUEsVUFBTSxVQUFVLFNBQVMsS0FBSyxHQUFFLFVBQVMsUUFBUSxXQUFXO0FBRTVELFNBQUssU0FBUztBQUNaLFlBQU0sSUFBSSxNQUFNLDZCQUE2QixhQUFhO0FBQUEsSUFDNUQ7QUFFQSxVQUFNLGVBQ0osZUFDQyxNQUFNLE9BQU87QUFBQSxNQUNaLFNBQVM7QUFBQSxNQUNULFNBQVMsVUFDTixPQUFPLGNBQVksUUFBUSxXQUFXLFNBQVMsU0FBUyxHQUFHLENBQUMsRUFDNUQsSUFBSSxlQUFhO0FBQUEsUUFDaEIsTUFBTSxTQUFTO0FBQUEsUUFDZixPQUFPLFNBQVM7QUFBQSxNQUNsQixFQUFFO0FBQUEsTUFDSixTQUFTO0FBQUEsSUFDWCxDQUFDO0FBRUgsU0FBSyxjQUFjO0FBQ2pCLFlBQU0sSUFBSSxNQUFNLHNCQUFzQjtBQUFBLElBQ3hDO0FBRUEsUUFBTyxjQUFXLE1BQU0sR0FBRztBQUN6QixVQUFPLGVBQVksTUFBTSxFQUFFLFNBQVMsR0FBRztBQUNyQyxjQUFNLFdBQVcsTUFBTSxRQUFRO0FBQUEsVUFDN0IsU0FBUztBQUFBLFVBQ1QsU0FBUztBQUFBLFFBQ1gsQ0FBQztBQUNELGFBQUssVUFBVTtBQUNiLGtCQUFRLEtBQUssQ0FBQztBQUFBLFFBQ2hCO0FBQUEsTUFDRjtBQUFBLElBQ0YsT0FBTztBQUNMLGFBQU8sTUFBTTtBQUFBO0FBR2YsVUFBTSxVQUNKLGNBQ0MsTUFBTSxRQUFRLEVBQUMsU0FBUywwQ0FBeUMsQ0FBQztBQUVyRSxVQUFNLGVBQWU7QUFBQSxNQUNuQixNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVjtBQUFBLElBQ0YsQ0FBQztBQUVELFFBQUksaUJBQWlCO0FBRXJCLFFBQUksZ0JBQWdCLFVBQVUsZ0JBQWdCO0FBQzVDLHVCQUFpQjtBQUFBLElBQ25CO0FBRUEsUUFBSSxTQUFTO0FBQ1gsWUFBTSxvQkFBb0IsRUFBQyxRQUFRLGVBQWMsQ0FBQztBQUFBLElBQ3BEO0FBRUEsVUFBTSxTQUNKLGFBQ0MsTUFBTSxRQUFRO0FBQUEsTUFDYixTQUNFO0FBQUEsTUFDRixTQUFTO0FBQUEsSUFDWCxDQUFDO0FBRUgsUUFBSSxhQUFxQjtBQUN6QixRQUFJLGFBQXFCO0FBQ3pCLFFBQUksYUFBcUI7QUFFekIsUUFBSSxRQUFRO0FBQ1YsV0FBSyxlQUFlO0FBQ2xCLHFCQUFhLE1BQU0sTUFBTTtBQUFBLFVBQ3ZCLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxRQUNYLENBQUM7QUFFRCxxQkFBYSxNQUFNLE1BQU07QUFBQSxVQUN2QixTQUFTO0FBQUEsVUFDVCxTQUFTLEtBQUssS0FBSyxZQUFZLGVBQWU7QUFBQSxVQUM5QyxVQUFVLFdBQVM7QUFFakIsaUJBQUssTUFBTSxXQUFXLGVBQWUsTUFBTSxLQUFLLFVBQVUsR0FBRztBQUMzRCxxQkFBTztBQUFBLFlBQ1Q7QUFFQSxtQkFBTztBQUFBO0FBQUEsUUFFWCxDQUFDO0FBQUEsTUFDSDtBQUVBLG1CQUNFLGlCQUNDLE1BQU0sTUFBTTtBQUFBLFFBQ1gsU0FBUztBQUFBLFFBQ1QsU0FBUztBQUFBLE1BQ1gsQ0FBQztBQUVILGNBQVEsTUFBTSw4Q0FBOEM7QUFFNUQsWUFBTSxnQkFBZ0IsS0FBSyxLQUFLLFFBQVEsY0FBYztBQUV0RCxZQUFNLFlBQVksS0FBSyxNQUFTLGdCQUFhLGVBQWUsT0FBTyxDQUFDO0FBRXBFLGdCQUFVLFVBQVU7QUFBQSxXQUNmLFVBQVU7QUFBQSxRQUNiLEtBQ0UsVUFBVSxRQUFRLE1BQ2xCLDJCQUEyQiw0QkFBNEI7QUFBQSxNQUMzRDtBQUVBLE1BQUcsaUJBQWMsZUFBZSxLQUFLLFVBQVUsV0FBVyxNQUFNLENBQUMsQ0FBQztBQUVsRSxjQUFRLFFBQVEsMEJBQTBCO0FBQUEsSUFDNUM7QUFFQSxVQUFNLFVBQVU7QUFBQSxlQUNoQixNQUFNLE1BQU0sS0FBSyw2QkFBNkI7QUFBQTtBQUFBLGVBRTlDLE1BQU0sS0FBSyxLQUFLLHFCQUFxQjtBQUFBLE1BQ25DLE1BQU0sT0FBTyxxQkFBcUIsUUFBUSxNQUFNLEtBQUssTUFBTTtBQUFBLE1BQzNELE1BQU0sT0FBTyxtQkFBbUI7QUFBQSxNQUNoQyxNQUFNLE9BQU8sU0FBUztBQUFBO0FBQUEsZUFFeEIsTUFBTSxLQUFLLEtBQUssdUJBQXVCO0FBQUEsTUFDckMsTUFBTSxVQUFVLEtBQUssOEJBQThCO0FBQUE7QUFBQSxlQUVyRCxNQUFNLEtBQUssS0FBSyxvQkFBb0I7QUFBQSxNQUNsQyxNQUFNLFVBQVUsS0FBSywrQkFBK0I7QUFBQTtBQUd0RCxVQUFnQiwwQkFBZ0I7QUFBQSxNQUM5QixNQUFNO0FBQUEsTUFDTixvQkFBb0I7QUFBQSxNQUNwQixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixZQUFZLGNBQWM7QUFBQSxNQUMxQixZQUFZLFNBQVMsVUFBVSxLQUFLO0FBQUEsSUFDdEMsQ0FBQztBQUVELFlBQVEsSUFBSSxPQUFPO0FBQUEsV0FDWixHQUFQO0FBQ0EsWUFBUSxNQUFNLENBQUM7QUFBQTtBQUFBO0FBamVuQixJQUFNLGNBQWEsY0FBYyxZQUFZLEdBQUc7QUFDaEQsSUFBTSxhQUFZLFFBQVEsV0FBVTtBQUVwQyxJQUFNLFdBQVcsTUFBTTtBQUNyQixTQUFPLEtBQUssTUFDUCxnQkFBYSxLQUFLLEtBQUssWUFBVyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQ3JFLEVBQUU7QUFBQSxHQUNEO0FBYUgsSUFBTSxXQUtBO0FBQUEsRUFDSjtBQUFBLElBQ0UsS0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsV0FBVyxDQUFDLFNBQVM7QUFBQSxFQUN2QjtBQUFBLEVBQ0E7QUFBQSxJQUNFLEtBQUs7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFdBQVcsQ0FBQyxTQUFTO0FBQUEsRUFDdkI7QUFBQSxFQUNBO0FBQUEsSUFDRSxLQUFLO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxXQUFXLENBQUMsU0FBUztBQUFBLEVBQ3ZCO0FBQ0Y7QUFFQSxJQUFNLFlBSUE7QUFBQSxFQUNKO0FBQUEsSUFDRSxLQUFLO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixhQUFhO0FBQUEsRUFDZjtBQUFBLEVBQ0E7QUFBQSxJQUNFLEtBQUs7QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLGFBQWE7QUFBQSxFQUNmO0FBQ0Y7QUFFQSxJQUFNLDJCQUEyQixDQUMvQixTQUNBLGNBQ0c7QUFDSCxNQUFJLFNBQVM7QUFFYixTQUFPLFFBQVEsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLFdBQVc7QUFDbEQsYUFBUyxPQUFPLFdBQVcsS0FBSyxLQUFLO0FBQUEsR0FDdEM7QUFFRCxTQUFPO0FBQUE7QUFFVCxJQUFNLDRCQUE0QixDQUFDLFFBQTBCO0FBQzNELFFBQU0sTUFBTSxDQUFDLFNBQTBCO0FBQ3JDLFVBQU0sU0FBbUIsQ0FBQztBQUUxQixVQUFNLFFBQVcsZUFBWSxJQUFHO0FBRWhDLFVBQU0sUUFBUSxVQUFRO0FBQ3BCLFlBQU0sV0FBVyxLQUFLLEtBQUssTUFBSyxJQUFJO0FBRXBDLFVBQU8sWUFBUyxRQUFRLEVBQUUsWUFBWSxHQUFHO0FBQ3ZDLGVBQU8sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDO0FBQUEsTUFDOUI7QUFHQSxVQUFPLFlBQVMsUUFBUSxFQUFFLE9BQU8sR0FBRztBQUNsQyxlQUFPLEtBQUssUUFBUTtBQUFBLE1BQ3RCO0FBQUEsS0FDRDtBQUVELFdBQU87QUFBQTtBQUdULFNBQU8sSUFBSSxHQUFHLEVBQUUsSUFBSSxVQUFRO0FBQzFCLFdBQU8sS0FBSyxRQUFRLEtBQUssR0FBRztBQUFBLEdBQzdCO0FBQUE7QUFHSCxJQUFNLGlCQUFpQixPQUFPLFlBS3hCO0FBQ0osVUFBTyxTQUFTLFVBQVUsV0FBVTtBQUVwQyxRQUFNLGNBQWMsU0FBUyxLQUFLLEdBQUUsVUFBUyxRQUFRLE9BQU8sR0FBRztBQUMvRCxRQUFNLGVBQWUsVUFBVSxLQUFLLEdBQUUsVUFBUyxRQUFRLFFBQVEsR0FBRztBQUVsRSxPQUFLLGFBQWE7QUFDaEIsVUFBTSxJQUFJLE1BQU0sb0JBQW9CLFNBQVM7QUFBQSxFQUMvQztBQUVBLE9BQUssY0FBYztBQUNqQixVQUFNLElBQUksTUFBTSxxQkFBcUIsVUFBVTtBQUFBLEVBQ2pEO0FBR0EsUUFBTSxvQkFBb0IsS0FBSyxLQUFLLFlBQVcsTUFBTSxhQUFhLFFBQVE7QUFFMUUsT0FBUSxjQUFXLGlCQUFpQixHQUFHO0FBQ3JDLFVBQU0sSUFBSSxNQUFNLCtCQUErQixtQkFBbUI7QUFBQSxFQUNwRTtBQUVBLFFBQU0sY0FBYyxLQUFLLEtBQUssWUFBVyxNQUFNLGFBQWEsU0FBUyxRQUFRO0FBRTdFLE9BQVEsY0FBVyxXQUFXLEdBQUc7QUFDL0IsVUFBTSxJQUFJLE1BQU0sdUJBQXVCLGFBQWE7QUFBQSxFQUN0RDtBQUdBLFFBQU0sc0JBQXNCLEtBQUssS0FBSyxRQUFRLElBQUksR0FBRyxNQUFNO0FBRTNELFVBQVEsTUFBTSxxQkFBcUIscUJBQXFCO0FBRXhELFFBQU0sU0FBUyxDQUFDLFlBQW9CO0FBQ2xDLFdBQU8seUJBQXlCLFNBQVM7QUFBQSxNQUN2QyxnQkFBZ0IsUUFBUTtBQUFBLElBQzFCLENBQUM7QUFBQTtBQUlILDRCQUEwQixpQkFBaUIsRUFBRSxRQUFRLFVBQVE7QUFDM0QsVUFBTSxTQUFTLEtBQUssS0FBSyxtQkFBbUIsSUFBSTtBQUNoRCxVQUFNLFVBQVMsS0FBSyxLQUFLLHFCQUFxQixJQUFJO0FBSWxELFVBQU0sWUFBWSxLQUFLLFFBQVEsT0FBTTtBQUdyQyxRQUNFLFlBQVksZ0JBQ1osT0FBTyxTQUFTLGdDQUFnQyxHQUNoRDtBQUNBO0FBQUEsSUFDRjtBQUVBLFNBQVEsY0FBVyxTQUFTLEdBQUc7QUFDN0IsTUFBRyxhQUFVLFdBQVcsRUFBQyxXQUFXLEtBQUksQ0FBQztBQUFBLElBQzNDO0FBRUEsVUFBTSxrQkFBa0IsT0FBVSxnQkFBYSxRQUFRLE9BQU8sQ0FBQztBQUUvRCxJQUFHLGlCQUFjLFNBQVEsZUFBZTtBQUFBLEdBQ3pDO0FBR0QsNEJBQTBCLFdBQVcsRUFBRSxRQUFRLFVBQVE7QUFDckQsVUFBTSxTQUFTLEtBQUssS0FBSyxhQUFhLElBQUk7QUFDMUMsVUFBTSxVQUFTLEtBQUssS0FBSyxxQkFBcUIsSUFBSTtBQUdsRCxVQUFNLFlBQVksS0FBSyxRQUFRLE9BQU07QUFFckMsU0FBUSxjQUFXLFNBQVMsR0FBRztBQUM3QixNQUFHLGFBQVUsV0FBVyxFQUFDLFdBQVcsS0FBSSxDQUFDO0FBQUEsSUFDM0M7QUFFQSxVQUFNLGtCQUFrQixPQUFVLGdCQUFhLFFBQVEsT0FBTyxDQUFDO0FBRS9ELElBQUcsaUJBQWMsU0FBUSxlQUFlO0FBQUEsR0FDekM7QUFFRCxVQUFRLFFBQVEsZUFBZTtBQUFBO0FBTWpDLElBQU0sc0JBQXNCLE9BQU8sU0FHN0I7QUFDSixRQUFNLFNBQVMsS0FBSyxRQUFRLEtBQUssTUFBTTtBQUV2QyxVQUFRLElBQUksVUFBVSxNQUFNO0FBRTVCLE9BQUssS0FBSyxnQkFBZ0I7QUFDeEIsU0FBSyxpQkFBaUIsTUFBTSxPQUFPO0FBQUEsTUFDakMsS0FBSztBQUFBLE1BQ0wsa0JBQWtCO0FBQUEsSUFDcEIsQ0FBQztBQUFBLEVBQ0g7QUFFQSxPQUFLLEtBQUssZ0JBQWdCO0FBQ3hCLFVBQU0sSUFBSSxNQUFNLDBCQUEwQjtBQUFBLEVBQzVDO0FBR0EsVUFBTyxtQkFBa0I7QUFFekIsTUFBSSxVQUFVO0FBRWQsVUFBUTtBQUFBLFNBQ0Q7QUFDSCxnQkFBVTtBQUNWO0FBQUEsU0FDRztBQUNILGdCQUFVO0FBQ1Y7QUFBQSxTQUNHO0FBQ0gsZ0JBQVU7QUFDVjtBQUFBLFNBQ0c7QUFDSCxnQkFBVTtBQUNWO0FBQUE7QUFFQSxZQUFNLElBQUksTUFBTSw0QkFBNEIsZ0JBQWdCO0FBQUE7QUFHaEUsVUFBUSxNQUFNLGlDQUFpQyxnQkFBZ0I7QUFFL0QsUUFBTSxPQUFPLFVBQVUsU0FBUztBQUFBLElBQzlCLEtBQUs7QUFBQSxJQUNMLE9BQU87QUFBQSxJQUNQLE9BQU87QUFBQSxFQUNULENBQUM7QUFFRCxNQUFJLEtBQUssV0FBVyxHQUFHO0FBQ3JCLFVBQU0sSUFBSSxNQUFNLGdDQUFnQztBQUFBLEVBQ2xEO0FBRUEsVUFBUSxRQUFRLHdCQUF3QjtBQUFBO0FBRzFDLFFBQ0csS0FBSyxjQUFjLEVBQ25CLFFBQVEsT0FBTyxFQUNmLFVBQVUsVUFBVSxFQUNwQixVQUFVLElBQUksT0FBTyxpQkFBaUIsc0JBQXNCLENBQUMsRUFDN0QsVUFDQyxJQUFJLE9BQU8sMkJBQTJCLFNBQVMsRUFBRSxRQUMvQyxTQUFTLElBQUksR0FBRSxVQUFTLEdBQUcsQ0FDN0IsQ0FDRixFQUNDLFVBQVUsSUFBSSxPQUFPLDZCQUE2QixVQUFVLENBQUMsRUFDN0QsVUFDQyxJQUFJLE9BQU8sMkNBQTJDLGlCQUFpQixDQUN6RSxFQUNDLFVBQ0MsSUFBSSxPQUNGLFlBQ0EsMkVBQ0YsQ0FDRixFQUNDLFVBQVUsSUFBSSxPQUFPLDhCQUE4QixhQUFhLENBQUMsRUFDakUsVUFBVSxJQUFJLE9BQU8sOEJBQThCLGFBQWEsQ0FBQyxFQUNqRSxPQUFPLElBQUk7QUFxTmQsUUFBUSxNQUFNOyIsCiAgImRlYnVnSWQiOiAiOEE3OUFDQkJBQTFGN0Y5RTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
337
+ //# debugId=55AF547960838BB164756E2164756E21
338
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHtPcHRpb24sIHByb2dyYW0sIHR5cGUgQ29tbWFuZH0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IGNvbnNvbGEgZnJvbSAnY29uc29sYSdcbmltcG9ydCB7aW5wdXQsIHNlbGVjdCwgY29uZmlybX0gZnJvbSAnQGlucXVpcmVyL3Byb21wdHMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnXG5cbmltcG9ydCAqIGFzIHRlbGVtZXRyeSBmcm9tICdAZ2V0Y3Jvbml0L3B5bG9uLXRlbGVtZXRyeSdcblxuaW1wb3J0IHtmaWxlVVJMVG9QYXRofSBmcm9tICd1cmwnXG5pbXBvcnQge2Rpcm5hbWV9IGZyb20gJ3BhdGgnXG5cbmNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybClcbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSlcblxuY29uc3QgdmVyc2lvbiA9ICgoKSA9PiB7XG4gIHJldHVybiBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAncGFja2FnZS5qc29uJyksICd1dGYtOCcpXG4gICkudmVyc2lvbiBhcyBzdHJpbmdcbn0pKClcblxuZnVuY3Rpb24gbWtkaXJwKGRpcjogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgZnMubWtkaXJTeW5jKGRpciwge3JlY3Vyc2l2ZTogdHJ1ZX0pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBpZiAoJ2NvZGUnIGluIGUgJiYgZS5jb2RlID09PSAnRUVYSVNUJykgcmV0dXJuXG4gICAgfVxuICAgIHRocm93IGVcbiAgfVxufVxuXG5jb25zdCBydW50aW1lczoge1xuICBrZXk6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgd2Vic2l0ZTogc3RyaW5nXG4gIHRlbXBsYXRlcz86IHN0cmluZ1tdXG59W10gPSBbXG4gIHtcbiAgICBrZXk6ICdidW4nLFxuICAgIG5hbWU6ICdCdW4uanMnLFxuICAgIHdlYnNpdGU6ICdodHRwczovL2J1bmpzLmRldicsXG4gICAgdGVtcGxhdGVzOiBbJ2RlZmF1bHQnXVxuICB9LFxuICB7XG4gICAga2V5OiAnbm9kZScsXG4gICAgbmFtZTogJ05vZGUuanMnLFxuICAgIHdlYnNpdGU6ICdodHRwczovL25vZGVqcy5vcmcnLFxuICAgIHRlbXBsYXRlczogWydkZWZhdWx0J11cbiAgfSxcbiAge1xuICAgIGtleTogJ2NmLXdvcmtlcnMnLFxuICAgIG5hbWU6ICdDbG91ZGZsYXJlIFdvcmtlcnMnLFxuICAgIHdlYnNpdGU6ICdodHRwczovL3dvcmtlcnMuY2xvdWRmbGFyZS5jb20nLFxuICAgIHRlbXBsYXRlczogWydkZWZhdWx0J11cbiAgfVxuXVxuXG5jb25zdCB0ZW1wbGF0ZXM6IHtcbiAga2V5OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcbn1bXSA9IFtcbiAge1xuICAgIGtleTogJ2RlZmF1bHQnLFxuICAgIG5hbWU6ICdEZWZhdWx0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgdGVtcGxhdGUnXG4gIH0sXG4gIHtcbiAgICBrZXk6ICdkYXRhYmFzZScsXG4gICAgbmFtZTogJ0RhdGFiYXNlIChQcmlzbWEpJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RlbXBsYXRlIHdpdGggUHJpc21hIE9STSdcbiAgfVxuXVxuXG5jb25zdCBpbmplY3RWYXJpYWJsZXNJbkNvbnRlbnQgPSAoXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4pID0+IHtcbiAgbGV0IHJlc3VsdCA9IGNvbnRlbnRcblxuICBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlQWxsKGtleSwgdmFsdWUpXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuY29uc3QgcmVhZGRpckZpbGVzU3luY1JlY3Vyc2l2ZSA9IChkaXI6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgcnVuID0gKGRpcjogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXVxuXG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhkaXIpXG5cbiAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlyLCBmaWxlKVxuXG4gICAgICBpZiAoZnMuc3RhdFN5bmMoZmlsZVBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4ucnVuKGZpbGVQYXRoKSlcbiAgICAgIH1cblxuICAgICAgLy8gT25seSBhZGQgZmlsZXNcbiAgICAgIGlmIChmcy5zdGF0U3luYyhmaWxlUGF0aCkuaXNGaWxlKCkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goZmlsZVBhdGgpXG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHJldHVybiBydW4oZGlyKS5tYXAoZmlsZSA9PiB7XG4gICAgcmV0dXJuIGZpbGUucmVwbGFjZShkaXIsICcuJylcbiAgfSlcbn1cblxuY29uc3QgY3JlYXRlVGVtcGxhdGUgPSBhc3luYyAob3B0aW9uczoge1xuICBuYW1lOiBzdHJpbmdcbiAgcnVudGltZTogc3RyaW5nXG4gIHRlbXBsYXRlOiBzdHJpbmdcbiAgdGFyZ2V0OiBzdHJpbmdcbn0pID0+IHtcbiAgY29uc3Qge3J1bnRpbWUsIHRlbXBsYXRlLCB0YXJnZXR9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IHJ1bnRpbWVOYW1lID0gcnVudGltZXMuZmluZCgoe2tleX0pID0+IGtleSA9PT0gcnVudGltZSk/Lm5hbWVcbiAgY29uc3QgdGVtcGxhdGVOYW1lID0gdGVtcGxhdGVzLmZpbmQoKHtrZXl9KSA9PiBrZXkgPT09IHRlbXBsYXRlKT8ubmFtZVxuXG4gIGlmICghcnVudGltZU5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcnVudGltZTogJHtydW50aW1lfWApXG4gIH1cblxuICBpZiAoIXRlbXBsYXRlTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZW1wbGF0ZTogJHt0ZW1wbGF0ZX1gKVxuICB9XG5cbiAgLy8gVGhlIHRlbXBsYXRlcyBhcmUgc3RvcmVkIGluIHRoZSBgdGVtcGxhdGVzYCBkaXJlY3RvcnlcbiAgY29uc3Qgc2hhcmVkVGVtcGxhdGVEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAndGVtcGxhdGVzJywgJ3NoYXJlZCcpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKHNoYXJlZFRlbXBsYXRlRGlyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2hhcmVkIHRlbXBsYXRlcyBub3QgZm91bmQ6ICR7c2hhcmVkVGVtcGxhdGVEaXJ9YClcbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlRGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ3RlbXBsYXRlcycsIHJ1bnRpbWUsIHRlbXBsYXRlKVxuXG4gIGlmICghZnMuZXhpc3RzU3luYyh0ZW1wbGF0ZURpcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbXBsYXRlIG5vdCBmb3VuZDogJHt0ZW1wbGF0ZURpcn1gKVxuICB9XG5cbiAgLy8gVGhlIHRhcmdldCBkaXJlY3RvcnkgaXMgYWxyZWFkeSBjcmVhdGVkXG4gIGNvbnN0IHRhcmdldERpcmVjdG9yeVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgdGFyZ2V0KVxuXG4gIGNvbnNvbGEuc3RhcnQoYENyZWF0aW5nIHB5bG9uIGluICR7dGFyZ2V0RGlyZWN0b3J5UGF0aH1gKVxuXG4gIGNvbnN0IGluamVjdCA9IChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gaW5qZWN0VmFyaWFibGVzSW5Db250ZW50KGNvbnRlbnQsIHtcbiAgICAgIF9fUFlMT05fTkFNRV9fOiBvcHRpb25zLm5hbWVcbiAgICB9KVxuICB9XG5cbiAgLy8gQ29weSB0aGUgc2hhcmVkIHRlbXBsYXRlIGZpbGVzXG4gIHJlYWRkaXJGaWxlc1N5bmNSZWN1cnNpdmUoc2hhcmVkVGVtcGxhdGVEaXIpLmZvckVhY2goZmlsZSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gcGF0aC5qb2luKHNoYXJlZFRlbXBsYXRlRGlyLCBmaWxlKVxuICAgIGxldCB0YXJnZXQgPSBwYXRoLmpvaW4odGFyZ2V0RGlyZWN0b3J5UGF0aCwgZmlsZSlcblxuICAgIC8vIENyZWF0ZSBmb2xkZXIgcmVjdXJzaXZlbHkgYW5kIGNvcHkgZmlsZVxuXG4gICAgY29uc3QgdGFyZ2V0RGlyID0gcGF0aC5kaXJuYW1lKHRhcmdldClcblxuICAgIC8vIFNraXAgdGhlIC5naXRodWIvd29ya2Zsb3dzIGRpcmVjdG9yeSBmb3IgY2Ytd29ya2VycyBydW50aW1lXG4gICAgaWYgKFxuICAgICAgcnVudGltZSA9PT0gJ2NmLXdvcmtlcnMnICYmXG4gICAgICBzb3VyY2UuaW5jbHVkZXMoJy5naXRodWIvd29ya2Zsb3dzL3B1Ymxpc2gueWFtbCcpXG4gICAgKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGFyZ2V0RGlyKSkge1xuICAgICAgZnMubWtkaXJTeW5jKHRhcmdldERpciwge3JlY3Vyc2l2ZTogdHJ1ZX0pXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHRhcmdldCBlbmRzIHdpdGggYC5leGFtcGxlYCwgcmVtb3ZlIHRoZSBzdWZmaXguXG4gICAgLy8gVGhpcyBpcyB1c2VmdWwgZm9yIGAuZ2l0aWdub3JlLmV4YW1wbGVgIGZpbGVzIGJlY2F1c2UgdGhleSBhcmUgbm90IHB1Ymxpc2hlZCBpblxuICAgIC8vIHRoZSBgY3JlYXRlLXB5bG9uYCBwYWNrYWdlIHdoZW4gbmFtZWQgYC5naXRpZ25vcmVgLlxuICAgIGlmICh0YXJnZXQuZW5kc1dpdGgoJy5leGFtcGxlJykpIHtcbiAgICAgIHRhcmdldCA9IHRhcmdldC5yZXBsYWNlKCcuZXhhbXBsZScsICcnKVxuICAgIH1cblxuICAgIGNvbnN0IGluamVjdGVkQ29udGVudCA9IGluamVjdChmcy5yZWFkRmlsZVN5bmMoc291cmNlLCAndXRmLTgnKSlcblxuICAgIGZzLndyaXRlRmlsZVN5bmModGFyZ2V0LCBpbmplY3RlZENvbnRlbnQpXG4gIH0pXG5cbiAgLy8gQ29weSB0aGUgcnVudGltZSBzcGVjaWZpYyB0ZW1wbGF0ZSBmaWxlc1xuICByZWFkZGlyRmlsZXNTeW5jUmVjdXJzaXZlKHRlbXBsYXRlRGlyKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IHBhdGguam9pbih0ZW1wbGF0ZURpciwgZmlsZSlcbiAgICBsZXQgdGFyZ2V0ID0gcGF0aC5qb2luKHRhcmdldERpcmVjdG9yeVBhdGgsIGZpbGUpXG5cbiAgICAvLyBDcmVhdGUgZm9sZGVyIHJlY3Vyc2l2ZWx5IGFuZCBjb3B5IGZpbGVcbiAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLmRpcm5hbWUodGFyZ2V0KVxuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRhcmdldERpcikpIHtcbiAgICAgIGZzLm1rZGlyU3luYyh0YXJnZXREaXIsIHtyZWN1cnNpdmU6IHRydWV9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZSB0YXJnZXQgZW5kcyB3aXRoIGAuZXhhbXBsZWAsIHJlbW92ZSB0aGUgc3VmZml4LlxuICAgIC8vIFRoaXMgaXMgdXNlZnVsIGZvciBgLmdpdGlnbm9yZS5leGFtcGxlYCBmaWxlcyBiZWNhdXNlIHRoZXkgYXJlIG5vdCBwdWJsaXNoZWQgaW5cbiAgICAvLyB0aGUgYGNyZWF0ZS1weWxvbmAgcGFja2FnZSB3aGVuIG5hbWVkIGAuZ2l0aWdub3JlYC5cbiAgICBpZiAodGFyZ2V0LmVuZHNXaXRoKCcuZXhhbXBsZScpKSB7XG4gICAgICB0YXJnZXQgPSB0YXJnZXQucmVwbGFjZSgnLmV4YW1wbGUnLCAnJylcbiAgICB9XG5cbiAgICBjb25zdCBpbmplY3RlZENvbnRlbnQgPSBpbmplY3QoZnMucmVhZEZpbGVTeW5jKHNvdXJjZSwgJ3V0Zi04JykpXG5cbiAgICBmcy53cml0ZUZpbGVTeW5jKHRhcmdldCwgaW5qZWN0ZWRDb250ZW50KVxuICB9KVxuXG4gIGNvbnNvbGEuc3VjY2VzcyhgUHlsb24gY3JlYXRlZGApXG59XG5cbmltcG9ydCB7ZGV0ZWN0fSBmcm9tICdkZXRlY3QtcGFja2FnZS1tYW5hZ2VyJ1xuaW1wb3J0IHtzcGF3blN5bmN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnXG5cbmNvbnN0IGluc3RhbGxEZXBlbmRlbmNpZXMgPSBhc3luYyAoYXJnczoge1xuICB0YXJnZXQ6IHN0cmluZ1xuICBwYWNrYWdlTWFuYWdlcj86IHN0cmluZ1xufSkgPT4ge1xuICBjb25zdCB0YXJnZXQgPSBwYXRoLnJlc29sdmUoYXJncy50YXJnZXQpXG5cbiAgY29uc29sZS5sb2coJ3RhcmdldCcsIHRhcmdldClcblxuICBpZiAoIWFyZ3MucGFja2FnZU1hbmFnZXIpIHtcbiAgICBhcmdzLnBhY2thZ2VNYW5hZ2VyID0gYXdhaXQgZGV0ZWN0KHtcbiAgICAgIGN3ZDogdGFyZ2V0LFxuICAgICAgaW5jbHVkZUdsb2JhbEJ1bjogdHJ1ZVxuICAgIH0pXG4gIH1cblxuICBpZiAoIWFyZ3MucGFja2FnZU1hbmFnZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHBhY2thZ2UgbWFuYWdlciBmb3VuZCcpXG4gIH1cblxuICAvLyB5YXJuJywgJ25wbScsIG9yICdwbnBtJywgJ2J1bidcbiAgY29uc3Qge3BhY2thZ2VNYW5hZ2VyfSA9IGFyZ3NcblxuICBsZXQgY29tbWFuZCA9ICcnXG5cbiAgc3dpdGNoIChwYWNrYWdlTWFuYWdlcikge1xuICAgIGNhc2UgJ3lhcm4nOlxuICAgICAgY29tbWFuZCA9ICd5YXJuJ1xuICAgICAgYnJlYWtcbiAgICBjYXNlICducG0nOlxuICAgICAgY29tbWFuZCA9ICducG0gaW5zdGFsbCdcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAncG5wbSc6XG4gICAgICBjb21tYW5kID0gJ3BucG0gaW5zdGFsbCdcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnYnVuJzpcbiAgICAgIGNvbW1hbmQgPSAnYnVuIGluc3RhbGwnXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFja2FnZSBtYW5hZ2VyOiAke3BhY2thZ2VNYW5hZ2VyfWApXG4gIH1cblxuICBjb25zb2xhLnN0YXJ0KGBJbnN0YWxsaW5nIGRlcGVuZGVuY2llcyB1c2luZyAke3BhY2thZ2VNYW5hZ2VyfWApXG5cbiAgY29uc3QgcHJvYyA9IHNwYXduU3luYyhjb21tYW5kLCB7XG4gICAgY3dkOiB0YXJnZXQsXG4gICAgc2hlbGw6IHRydWUsXG4gICAgc3RkaW86ICdpbmhlcml0J1xuICB9KVxuXG4gIGlmIChwcm9jLnN0YXR1cyAhPT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzYClcbiAgfVxuXG4gIGNvbnNvbGEuc3VjY2VzcyhgRGVwZW5kZW5jaWVzIGluc3RhbGxlZGApXG59XG5cbnByb2dyYW1cbiAgLm5hbWUoJ2NyZWF0ZS1weWxvbicpXG4gIC52ZXJzaW9uKHZlcnNpb24pXG4gIC5hcmd1bWVudHMoJ1t0YXJnZXRdJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctaSwgLS1pbnN0YWxsJywgJ0luc3RhbGwgZGVwZW5kZW5jaWVzJykpXG4gIC5hZGRPcHRpb24oXG4gICAgbmV3IE9wdGlvbignLXIsIC0tcnVudGltZSA8cnVudGltZT4nLCAnUnVudGltZScpLmNob2ljZXMoXG4gICAgICBydW50aW1lcy5tYXAoKHtrZXl9KSA9PiBrZXkpXG4gICAgKVxuICApXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLXQsIC0tdGVtcGxhdGUgPHRlbXBsYXRlPicsICdUZW1wbGF0ZScpKVxuICAuYWRkT3B0aW9uKFxuICAgIG5ldyBPcHRpb24oJy1wbSwgLS1wYWNrYWdlLW1hbmFnZXIgPHBhY2thZ2VNYW5hZ2VyPicsICdQYWNrYWdlIG1hbmFnZXInKVxuICApXG4gIC5hZGRPcHRpb24oXG4gICAgbmV3IE9wdGlvbihcbiAgICAgICctLWNsaWVudCcsXG4gICAgICAnRW5hYmxlIGNsaWVudCBnZW5lcmF0aW9uIChodHRwczovL3B5bG9uLmNyb25pdC5pby9kb2NzL2ludGVncmF0aW9ucy9ncXR5KSdcbiAgICApXG4gIClcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWNsaWVudC1wYXRoIDxjbGllbnRQYXRoPicsICdDbGllbnQgcGF0aCcpKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tY2xpZW50LXBvcnQgPGNsaWVudFBvcnQ+JywgJ0NsaWVudCBwb3J0JykpXG4gIC5hY3Rpb24obWFpbilcblxudHlwZSBBcmdPcHRpb25zID0ge1xuICBpbnN0YWxsOiBib29sZWFuXG4gIHJ1bnRpbWU6IHN0cmluZ1xuICB0ZW1wbGF0ZTogc3RyaW5nXG4gIHBhY2thZ2VNYW5hZ2VyPzogc3RyaW5nXG4gIGNsaWVudD86IGJvb2xlYW5cbiAgY2xpZW50UGF0aD86IHN0cmluZ1xuICBjbGllbnRQb3J0Pzogc3RyaW5nXG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oXG4gIHRhcmdldERpcjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zOiBBcmdPcHRpb25zLFxuICBjb21tYW5kOiBDb21tYW5kXG4pIHtcbiAgdHJ5IHtcbiAgICBjb25zb2xhLmxvZyhgJHtjb21tYW5kLm5hbWUoKX0gdmVyc2lvbiAke2NvbW1hbmQudmVyc2lvbigpfWApXG5cbiAgICBjb25zdCB7XG4gICAgICBpbnN0YWxsOiBpbnN0YWxsQXJnLFxuICAgICAgcnVudGltZTogcnVudGltZUFyZyxcbiAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZUFyZyxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBwYWNrYWdlTWFuYWdlckFyZyxcbiAgICAgIGNsaWVudDogY2xpZW50QXJnLFxuICAgICAgY2xpZW50UGF0aDogY2xpZW50UGF0aEFyZyxcbiAgICAgIGNsaWVudFBvcnQ6IGNsaWVudFBvcnRBcmdcbiAgICB9ID0gb3B0aW9uc1xuXG4gICAgbGV0IHRhcmdldCA9ICcnXG5cbiAgICBpZiAodGFyZ2V0RGlyKSB7XG4gICAgICB0YXJnZXQgPSB0YXJnZXREaXJcblxuICAgICAgY29uc29sYS5zdWNjZXNzKGBVc2luZyB0YXJnZXQgZGlyZWN0b3J5IOKApiAke3RhcmdldH1gKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBpbnB1dCh7XG4gICAgICAgIG1lc3NhZ2U6ICdUYXJnZXQgZGlyZWN0b3J5JyxcbiAgICAgICAgZGVmYXVsdDogJ215LXB5bG9uJ1xuICAgICAgfSlcbiAgICAgIHRhcmdldCA9IGFuc3dlclxuICAgIH1cblxuICAgIGxldCBwcm9qZWN0TmFtZSA9ICcnXG5cbiAgICBpZiAodGFyZ2V0ID09PSAnLicpIHtcbiAgICAgIHByb2plY3ROYW1lID0gcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKVxuICAgIH0gZWxzZSB7XG4gICAgICBwcm9qZWN0TmFtZSA9IHBhdGguYmFzZW5hbWUodGFyZ2V0KVxuICAgIH1cblxuICAgIGNvbnN0IHJ1bnRpbWVOYW1lID1cbiAgICAgIHJ1bnRpbWVBcmcgfHxcbiAgICAgIChhd2FpdCBzZWxlY3Qoe1xuICAgICAgICBtZXNzYWdlOiAnV2hpY2ggcnVudGltZSB3b3VsZCB5b3UgbGlrZSB0byB1c2U/JyxcbiAgICAgICAgY2hvaWNlczogcnVudGltZXMubWFwKHJ1bnRpbWUgPT4gKHtcbiAgICAgICAgICBuYW1lOiBgJHtydW50aW1lLm5hbWV9ICgke3J1bnRpbWUud2Vic2l0ZX0pYCxcbiAgICAgICAgICB2YWx1ZTogcnVudGltZS5rZXlcbiAgICAgICAgfSkpLFxuICAgICAgICBkZWZhdWx0OiAwXG4gICAgICB9KSlcblxuICAgIGlmICghcnVudGltZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcnVudGltZSBzZWxlY3RlZCcpXG4gICAgfVxuXG4gICAgY29uc3QgcnVudGltZSA9IHJ1bnRpbWVzLmZpbmQoKHtrZXl9KSA9PiBrZXkgPT09IHJ1bnRpbWVOYW1lKVxuXG4gICAgaWYgKCFydW50aW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcnVudGltZSBzZWxlY3RlZDogJHtydW50aW1lTmFtZX1gKVxuICAgIH1cblxuICAgIGNvbnN0IHRlbXBsYXRlTmFtZSA9XG4gICAgICB0ZW1wbGF0ZUFyZyB8fFxuICAgICAgKGF3YWl0IHNlbGVjdCh7XG4gICAgICAgIG1lc3NhZ2U6ICdXaGljaCB0ZW1wbGF0ZSB3b3VsZCB5b3UgbGlrZSB0byB1c2U/JyxcbiAgICAgICAgY2hvaWNlczogdGVtcGxhdGVzXG4gICAgICAgICAgLmZpbHRlcih0ZW1wbGF0ZSA9PiBydW50aW1lLnRlbXBsYXRlcz8uaW5jbHVkZXModGVtcGxhdGUua2V5KSlcbiAgICAgICAgICAubWFwKHRlbXBsYXRlID0+ICh7XG4gICAgICAgICAgICBuYW1lOiB0ZW1wbGF0ZS5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHRlbXBsYXRlLmtleVxuICAgICAgICAgIH0pKSxcbiAgICAgICAgZGVmYXVsdDogMFxuICAgICAgfSkpXG5cbiAgICBpZiAoIXRlbXBsYXRlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB0ZW1wbGF0ZSBzZWxlY3RlZCcpXG4gICAgfVxuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmModGFyZ2V0KSkge1xuICAgICAgaWYgKGZzLnJlYWRkaXJTeW5jKHRhcmdldCkubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNvbmZpcm0oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdEaXJlY3Rvcnkgbm90IGVtcHR5LiBDb250aW51ZT8nLFxuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBta2RpcnAodGFyZ2V0KVxuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbGwgPVxuICAgICAgaW5zdGFsbEFyZyB8fFxuICAgICAgKGF3YWl0IGNvbmZpcm0oe21lc3NhZ2U6ICdXb3VsZCB5b3UgbGlrZSB0byBpbnN0YWxsIGRlcGVuZGVuY2llcz8nfSkpXG5cbiAgICBhd2FpdCBjcmVhdGVUZW1wbGF0ZSh7XG4gICAgICBuYW1lOiBwcm9qZWN0TmFtZSxcbiAgICAgIHJ1bnRpbWU6IHJ1bnRpbWVOYW1lLFxuICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlTmFtZSxcbiAgICAgIHRhcmdldFxuICAgIH0pXG5cbiAgICBsZXQgcGFja2FnZU1hbmFnZXIgPSBwYWNrYWdlTWFuYWdlckFyZ1xuXG4gICAgaWYgKHJ1bnRpbWVOYW1lID09PSAnYnVuJyAmJiAhcGFja2FnZU1hbmFnZXIpIHtcbiAgICAgIHBhY2thZ2VNYW5hZ2VyID0gJ2J1bidcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFsbCkge1xuICAgICAgYXdhaXQgaW5zdGFsbERlcGVuZGVuY2llcyh7dGFyZ2V0LCBwYWNrYWdlTWFuYWdlcn0pXG4gICAgfVxuXG4gICAgY29uc3QgY2xpZW50ID1cbiAgICAgIGNsaWVudEFyZyB8fFxuICAgICAgKGF3YWl0IGNvbmZpcm0oe1xuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICdXb3VsZCB5b3UgbGlrZSB0byBlbmFibGUgY2xpZW50IGdlbmVyYXRpb24/IChodHRwczovL3B5bG9uLmNyb25pdC5pby9kb2NzL2ludGVncmF0aW9ucy9ncXR5KScsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgICB9KSlcblxuICAgIGxldCBjbGllbnRSb290OiBzdHJpbmcgPSAnJ1xuICAgIGxldCBjbGllbnRQYXRoOiBzdHJpbmcgPSAnJ1xuICAgIGxldCBjbGllbnRQb3J0OiBzdHJpbmcgPSAnJ1xuXG4gICAgaWYgKGNsaWVudCkge1xuICAgICAgaWYgKCFjbGllbnRQYXRoQXJnKSB7XG4gICAgICAgIGNsaWVudFJvb3QgPSBhd2FpdCBpbnB1dCh7XG4gICAgICAgICAgbWVzc2FnZTogJ1BhdGggdG8gdGhlIHJvb3Qgd2hlcmUgdGhlIGNsaWVudCBzaG91bGQgYmUgZ2VuZXJhdGVkJyxcbiAgICAgICAgICBkZWZhdWx0OiAnLidcbiAgICAgICAgfSlcblxuICAgICAgICBjbGllbnRQYXRoID0gYXdhaXQgaW5wdXQoe1xuICAgICAgICAgIG1lc3NhZ2U6ICdQYXRoIHRvIGdlbmVyYXRlIHRoZSBjbGllbnQgdG8nLFxuICAgICAgICAgIGRlZmF1bHQ6IHBhdGguam9pbihjbGllbnRSb290LCAnZ3F0eS9pbmRleC50cycpLFxuICAgICAgICAgIHZhbGlkYXRlOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgcGF0aCBzdGFydHMgd2l0aCB0aGUgY2xpZW50IHJvb3QgKHRha2UgY2FyZSBvZiAuKVxuICAgICAgICAgICAgaWYgKCF2YWx1ZS5zdGFydHNXaXRoKGNsaWVudFJvb3QgPT09ICcuJyA/ICcnIDogY2xpZW50Um9vdCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICdQYXRoIG11c3Qgc3RhcnQgd2l0aCB0aGUgY2xpZW50IHJvb3QnXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBjbGllbnRQb3J0ID1cbiAgICAgICAgY2xpZW50UG9ydEFyZyB8fFxuICAgICAgICAoYXdhaXQgaW5wdXQoe1xuICAgICAgICAgIG1lc3NhZ2U6ICdQb3J0IG9mIHRoZSBweWxvbiBzZXJ2ZXIgdG8gZ2VuZXJhdGUgdGhlIGNsaWVudCBmcm9tJyxcbiAgICAgICAgICBkZWZhdWx0OiAnMzAwMCdcbiAgICAgICAgfSkpXG5cbiAgICAgIGNvbnNvbGEuc3RhcnQoYFVwZGF0aW5nIHB5bG9uIGRldiBzY3JpcHQgdG8gZ2VuZXJhdGUgY2xpZW50YClcblxuICAgICAgY29uc3QgZGV2U2NyaXB0UGF0aCA9IHBhdGguam9pbih0YXJnZXQsICdwYWNrYWdlLmpzb24nKVxuXG4gICAgICBjb25zdCBkZXZTY3JpcHQgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhkZXZTY3JpcHRQYXRoLCAndXRmLTgnKSlcblxuICAgICAgZGV2U2NyaXB0LnNjcmlwdHMgPSB7XG4gICAgICAgIC4uLmRldlNjcmlwdC5zY3JpcHRzLFxuICAgICAgICBkZXY6XG4gICAgICAgICAgZGV2U2NyaXB0LnNjcmlwdHMuZGV2ICtcbiAgICAgICAgICBgIC0tY2xpZW50IC0tY2xpZW50LXBvcnQgJHtjbGllbnRQb3J0fSAtLWNsaWVudC1wYXRoICR7Y2xpZW50UGF0aH1gXG4gICAgICB9XG5cbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZGV2U2NyaXB0UGF0aCwgSlNPTi5zdHJpbmdpZnkoZGV2U2NyaXB0LCBudWxsLCAyKSlcblxuICAgICAgY29uc29sYS5zdWNjZXNzKGBQeWxvbiBkZXYgc2NyaXB0IHVwZGF0ZWRgKVxuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgXG7wn46JICR7Y2hhbGsuZ3JlZW4uYm9sZCgnUHlsb24gY3JlYXRlZCBzdWNjZXNzZnVsbHkuJyl9XG5cbvCfkrsgJHtjaGFsay5jeWFuLmJvbGQoJ0NvbnRpbnVlIERldmVsb3BpbmcnKX1cbiAgICAke2NoYWxrLnllbGxvdygnQ2hhbmdlIGRpcmVjdG9yaWVzOicpfSBjZCAke2NoYWxrLmJsdWUodGFyZ2V0KX1cbiAgICAke2NoYWxrLnllbGxvdygnU3RhcnQgZGV2IHNlcnZlcjonKX0gbnBtIHJ1biBzdGFydFxuICAgICR7Y2hhbGsueWVsbG93KCdEZXBsb3k6Jyl9IG5wbSBydW4gZGVwbG95XG5cbvCfk5YgJHtjaGFsay5jeWFuLmJvbGQoJ0V4cGxvcmUgRG9jdW1lbnRhdGlvbicpfVxuICAgICR7Y2hhbGsudW5kZXJsaW5lLmJsdWUoJ2h0dHBzOi8vcHlsb24uY3Jvbml0LmlvL2RvY3MnKX1cblxu8J+SrCAke2NoYWxrLmN5YW4uYm9sZCgnSm9pbiBvdXIgQ29tbXVuaXR5Jyl9XG4gICAgJHtjaGFsay51bmRlcmxpbmUuYmx1ZSgnaHR0cHM6Ly9kaXNjb3JkLmdnL2NiSmprVnJuSGUnKX1cbmBcblxuICAgIGF3YWl0IHRlbGVtZXRyeS5zZW5kQ3JlYXRlRXZlbnQoe1xuICAgICAgbmFtZTogcHJvamVjdE5hbWUsXG4gICAgICBweWxvbkNyZWF0ZVZlcnNpb246IHZlcnNpb24sXG4gICAgICBydW50aW1lOiBydW50aW1lTmFtZSxcbiAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZU5hbWUsXG4gICAgICBjbGllbnRQYXRoOiBjbGllbnRQYXRoIHx8IHVuZGVmaW5lZCxcbiAgICAgIGNsaWVudFBvcnQ6IHBhcnNlSW50KGNsaWVudFBvcnQpIHx8IHVuZGVmaW5lZFxuICAgIH0pXG5cbiAgICBjb25zb2xhLmJveChtZXNzYWdlKVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sYS5lcnJvcihlKVxuICB9XG59XG5cbnByb2dyYW0ucGFyc2UoKVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQVdBLFNBQVMsTUFBTSxDQUFDLEtBQWE7QUFDM0IsTUFBSTtBQUNGLElBQUcsYUFBVSxLQUFLLEVBQUMsV0FBVyxLQUFJLENBQUM7QUFBQSxXQUM1QixHQUFQO0FBQ0EsUUFBSSxhQUFhLE9BQU87QUFDdEIsVUFBSSxVQUFVLEtBQUssRUFBRSxTQUFTO0FBQVU7QUFBQSxJQUMxQztBQUNBLFVBQU07QUFBQTtBQUFBO0FB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S0FBSyxjQUFjLEVBQ25CLFFBQVEsT0FBTyxFQUNmLFVBQVUsVUFBVSxFQUNwQixVQUFVLElBQUksT0FBTyxpQkFBaUIsc0JBQXNCLENBQUMsRUFDN0QsVUFDQyxJQUFJLE9BQU8sMkJBQTJCLFNBQVMsRUFBRSxRQUMvQyxTQUFTLElBQUksR0FBRSxVQUFTLEdBQUcsQ0FDN0IsQ0FDRixFQUNDLFVBQVUsSUFBSSxPQUFPLDZCQUE2QixVQUFVLENBQUMsRUFDN0QsVUFDQyxJQUFJLE9BQU8sMkNBQTJDLGlCQUFpQixDQUN6RSxFQUNDLFVBQ0MsSUFBSSxPQUNGLFlBQ0EsMkVBQ0YsQ0FDRixFQUNDLFVBQVUsSUFBSSxPQUFPLDhCQUE4QixhQUFhLENBQUMsRUFDakUsVUFBVSxJQUFJLE9BQU8sOEJBQThCLGFBQWEsQ0FBQyxFQUNqRSxPQUFPLElBQUk7QUFxTmQsUUFBUSxNQUFNOyIsCiAgImRlYnVnSWQiOiAiNTVBRjU0Nzk2MDgzOEJCMTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-pylon",
3
3
  "type": "module",
4
- "version": "1.0.1",
4
+ "version": "1.0.2",
5
5
  "description": "CLI for creating a Pylon",
6
6
  "scripts": {
7
7
  "build": "bun build ./src/index.ts --target=bun --outdir=./dist --sourcemap=inline --packages external"
@@ -0,0 +1,175 @@
1
+ # Logs
2
+
3
+ logs
4
+ _.log
5
+ npm-debug.log_
6
+ yarn-debug.log*
7
+ yarn-error.log*
8
+ lerna-debug.log*
9
+ .pnpm-debug.log*
10
+
11
+ # Diagnostic reports (https://nodejs.org/api/report.html)
12
+
13
+ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
14
+
15
+ # Runtime data
16
+
17
+ pids
18
+ _.pid
19
+ _.seed
20
+ \*.pid.lock
21
+
22
+ # Directory for instrumented libs generated by jscoverage/JSCover
23
+
24
+ lib-cov
25
+
26
+ # Coverage directory used by tools like istanbul
27
+
28
+ coverage
29
+ \*.lcov
30
+
31
+ # nyc test coverage
32
+
33
+ .nyc_output
34
+
35
+ # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
36
+
37
+ .grunt
38
+
39
+ # Bower dependency directory (https://bower.io/)
40
+
41
+ bower_components
42
+
43
+ # node-waf configuration
44
+
45
+ .lock-wscript
46
+
47
+ # Compiled binary addons (https://nodejs.org/api/addons.html)
48
+
49
+ build/Release
50
+
51
+ # Dependency directories
52
+
53
+ node_modules/
54
+ jspm_packages/
55
+
56
+ # Snowpack dependency directory (https://snowpack.dev/)
57
+
58
+ web_modules/
59
+
60
+ # TypeScript cache
61
+
62
+ \*.tsbuildinfo
63
+
64
+ # Optional npm cache directory
65
+
66
+ .npm
67
+
68
+ # Optional eslint cache
69
+
70
+ .eslintcache
71
+
72
+ # Optional stylelint cache
73
+
74
+ .stylelintcache
75
+
76
+ # Microbundle cache
77
+
78
+ .rpt2_cache/
79
+ .rts2_cache_cjs/
80
+ .rts2_cache_es/
81
+ .rts2_cache_umd/
82
+
83
+ # Optional REPL history
84
+
85
+ .node_repl_history
86
+
87
+ # Output of 'npm pack'
88
+
89
+ \*.tgz
90
+
91
+ # Yarn Integrity file
92
+
93
+ .yarn-integrity
94
+
95
+ # dotenv environment variable files
96
+
97
+ .env
98
+ .env.development.local
99
+ .env.test.local
100
+ .env.production.local
101
+ .env.local
102
+
103
+ # parcel-bundler cache (https://parceljs.org/)
104
+
105
+ .cache
106
+ .parcel-cache
107
+
108
+ # Next.js build output
109
+
110
+ .next
111
+ out
112
+
113
+ # Nuxt.js build / generate output
114
+
115
+ .nuxt
116
+ dist
117
+
118
+ # Gatsby files
119
+
120
+ .cache/
121
+
122
+ # Comment in the public line in if your project uses Gatsby and not Next.js
123
+
124
+ # https://nextjs.org/blog/next-9-1#public-directory-support
125
+
126
+ # public
127
+
128
+ # vuepress build output
129
+
130
+ .vuepress/dist
131
+
132
+ # vuepress v2.x temp and cache directory
133
+
134
+ .temp
135
+ .cache
136
+
137
+ # Docusaurus cache and generated files
138
+
139
+ .docusaurus
140
+
141
+ # Serverless directories
142
+
143
+ .serverless/
144
+
145
+ # FuseBox cache
146
+
147
+ .fusebox/
148
+
149
+ # DynamoDB Local files
150
+
151
+ .dynamodb/
152
+
153
+ # TernJS port file
154
+
155
+ .tern-port
156
+
157
+ # Stores VSCode versions used for testing VSCode extensions
158
+
159
+ .vscode-test
160
+
161
+ # yarn v2
162
+
163
+ .yarn/cache
164
+ .yarn/unplugged
165
+ .yarn/build-state.yml
166
+ .yarn/install-state.gz
167
+ .pnp.\*
168
+
169
+ # wrangler project
170
+
171
+ .dev.vars
172
+ .wrangler/
173
+
174
+ # Pylon project
175
+ .pylon