@decaf-ts/for-nest 0.11.2-refactor → 0.11.2-refactor.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.
Files changed (39) hide show
  1. package/dist/for-nest.cjs +157 -139
  2. package/dist/for-nest.js +166 -148
  3. package/lib/cjs/auth/AuthInterceptor.cjs +5 -3
  4. package/lib/cjs/auth/constants.cjs +4 -3
  5. package/lib/cjs/cli-module.cjs +19 -4
  6. package/lib/cjs/constants.cjs +3 -4
  7. package/lib/cjs/controllers.cjs +5 -9
  8. package/lib/cjs/decaf-model/DecafModelModule.cjs +7 -3
  9. package/lib/cjs/decaf-model/FromModelController.cjs +22 -5
  10. package/lib/cjs/decaf-model/decorators/decorators.cjs +4 -4
  11. package/lib/cjs/decaf-model/index.cjs +2 -2
  12. package/lib/cjs/index.cjs +3 -3
  13. package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +2 -4
  14. package/lib/cjs/module.cjs +3 -2
  15. package/lib/esm/auth/AuthInterceptor.js +5 -3
  16. package/lib/esm/auth/constants.js +2 -1
  17. package/lib/esm/cli-module.js +18 -3
  18. package/lib/esm/constants.js +1 -2
  19. package/lib/esm/controllers.js +4 -8
  20. package/lib/esm/decaf-model/DecafModelModule.js +6 -2
  21. package/lib/esm/decaf-model/FromModelController.js +22 -5
  22. package/lib/esm/decaf-model/decorators/decorators.js +2 -2
  23. package/lib/esm/decaf-model/index.js +1 -1
  24. package/lib/esm/index.js +3 -3
  25. package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +1 -3
  26. package/lib/esm/module.js +2 -1
  27. package/lib/types/auth/constants.d.cts +1 -0
  28. package/lib/types/auth/constants.d.mts +1 -0
  29. package/lib/types/constants.d.cts +0 -1
  30. package/lib/types/constants.d.mts +0 -1
  31. package/lib/types/decaf-model/FromModelController.d.cts +1 -1
  32. package/lib/types/decaf-model/FromModelController.d.mts +1 -1
  33. package/lib/types/decaf-model/decorators/decorators.d.cts +1 -1
  34. package/lib/types/decaf-model/decorators/decorators.d.mts +1 -1
  35. package/lib/types/decaf-model/index.d.cts +1 -0
  36. package/lib/types/decaf-model/index.d.mts +1 -0
  37. package/lib/types/index.d.cts +3 -3
  38. package/lib/types/index.d.mts +3 -3
  39. package/package.json +1 -1
@@ -178,7 +178,7 @@ const migrateCommand = new commander_1.Command()
178
178
  const { input, config } = resolveMigrateCommandConfig(options, pkg);
179
179
  let app;
180
180
  try {
181
- app = await core_2.NestFactory.create(await (0, core_1.normalizeImport)(Promise.resolve(`${path_1.default.join(process.cwd(), input)}`).then(s => __importStar(require(s)))), { logger: false });
181
+ app = await core_2.NestFactory.create(resolveNestModule(await (0, core_1.normalizeImport)(Promise.resolve(`${path_1.default.join(process.cwd(), input)}`).then(s => __importStar(require(s))))), { logger: false });
182
182
  await app.init();
183
183
  log.info(`App booted`);
184
184
  const cache = core_1.Adapter["_cache"];
@@ -240,6 +240,21 @@ const migrateCommand = new commander_1.Command()
240
240
  }
241
241
  });
242
242
  exports.migrateCommand = migrateCommand;
243
+ function resolveNestModule(mod) {
244
+ if (typeof mod === "function")
245
+ return mod;
246
+ if (mod?.default && typeof mod.default === "function")
247
+ return mod.default;
248
+ if (mod && typeof mod === "object") {
249
+ const classes = Object.values(mod).filter((v) => typeof v === "function");
250
+ if (classes.length === 1)
251
+ return classes[0];
252
+ const named = mod[Object.keys(mod).find((k) => /Module$/.test(k)) || ""];
253
+ if (typeof named === "function")
254
+ return named;
255
+ }
256
+ return mod;
257
+ }
243
258
  const exportApiCommand = new commander_1.Command()
244
259
  .name("export-api")
245
260
  .description("boots the app context headlessly, extracts the OpenAPI spec, and writes it to a JSON file")
@@ -254,7 +269,7 @@ const exportApiCommand = new commander_1.Command()
254
269
  const input = resolveInputPath(options.input);
255
270
  let app;
256
271
  try {
257
- app = await core_2.NestFactory.create(await (0, core_1.normalizeImport)(Promise.resolve(`${path_1.default.join(process.cwd(), input)}`).then(s => __importStar(require(s)))), { logger: false });
272
+ app = await core_2.NestFactory.create(resolveNestModule(await (0, core_1.normalizeImport)(Promise.resolve(`${path_1.default.join(process.cwd(), input)}`).then(s => __importStar(require(s))))), { logger: false });
258
273
  await app.init();
259
274
  log.info(`App booted from ${input}`);
260
275
  const config = new swagger_1.DocumentBuilder()
@@ -288,5 +303,5 @@ nestCmd.addCommand(exportApiCommand);
288
303
  function nest() {
289
304
  return nestCmd;
290
305
  }
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixTQUFTLHNCQUFzQixDQUFDLFNBQWlCO0lBQy9DLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQWMsRUFDZCxTQUF5QyxzQkFBc0IsRUFDL0QsVUFBVSxHQUFHLHNCQUFzQjtJQUVu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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5cbmNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKFwiZm9yLW5lc3RcIik7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQWRhcHRlciwgbm9ybWFsaXplSW1wb3J0LCBTZXJ2aWNlLCBUYXNrTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmUvbWlncmF0aW9ucy9TZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nXCI7XG5pbXBvcnQgeyBNaWdyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlL21pZ3JhdGlvbnNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgSU5lc3RBcHBsaWNhdGlvbiB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRG9jdW1lbnRCdWlsZGVyLCBTd2FnZ2VyTW9kdWxlIH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuXG5jb25zdCBkZWZhdWx0SW5wdXRDYW5kaWRhdGVzID0gW1xuICBcIi4vbGliL2FwcC5tb2R1bGUuY2pzXCIsXG4gIFwiLi9saWIvYXBwLm1vZHVsZS5qc1wiLFxuICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIixcbl07XG5cbmZ1bmN0aW9uIGRlZmF1bHRDYW5kaWRhdGVFeGlzdHMoY2FuZGlkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGNhbmRpZGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUlucHV0UGF0aChcbiAgaW5wdXQ/OiBzdHJpbmcsXG4gIGV4aXN0czogKGNhbmRpZGF0ZTogc3RyaW5nKSA9PiBib29sZWFuID0gZGVmYXVsdENhbmRpZGF0ZUV4aXN0cyxcbiAgY2FuZGlkYXRlcyA9IGRlZmF1bHRJbnB1dENhbmRpZGF0ZXNcbik6IHN0cmluZyB7XG4gIGlmIChpbnB1dCkgcmV0dXJuIGlucHV0O1xuICBjb25zdCBmb3VuZCA9IGNhbmRpZGF0ZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBleGlzdHMoY2FuZGlkYXRlKSk7XG4gIHJldHVybiBmb3VuZCB8fCBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkT3V0cHV0RmlsZVBhdGgocGFyYW1zOiB7XG4gIG91dHB1dERpcjogc3RyaW5nO1xuICBwa2dOYW1lPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBmaWxlTmFtZT86IHN0cmluZztcbiAgYXBwZW5kVmVyc2lvbj86IGJvb2xlYW47XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIG91dHB1dERpcixcbiAgICBwa2dOYW1lLFxuICAgIG5hbWUsXG4gICAgZmlsZU5hbWUsXG4gICAgYXBwZW5kVmVyc2lvbiA9IGZhbHNlLFxuICAgIHZlcnNpb24sXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGJhc2VEaXIgPSBwYXRoLnJlc29sdmUob3V0cHV0RGlyKTtcbiAgY29uc3QgZGVmYXVsdFBrZ05hbWUgPSBwa2dOYW1lO1xuICBjb25zdCByZXNvbHZlZFJhd1NvdXJjZSA9IGZpbGVOYW1lIHx8IG5hbWUgfHwgZGVmYXVsdFBrZ05hbWUgfHwgXCJhcGlcIjtcbiAgY29uc3QgYmFzZU5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlc29sdmVkUmF3U291cmNlKTtcbiAgY29uc3QgcmVzb2x2ZWRSYXcgPSBiYXNlTmFtZS5yZXBsYWNlKC9bXFxcXC9dL2csIFwiX1wiKTtcbiAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkUmF3LnJlcGxhY2UoL15bLl9dKy8sIFwiXCIpO1xuICBjb25zdCByZXNvbHZlZE5hbWUgPSB0cmltbWVkIHx8IFwiYXBpXCI7XG4gIGNvbnN0IHN1ZmZpeCA9IGFwcGVuZFZlcnNpb24gJiYgdmVyc2lvbiA/IGAtJHt2ZXJzaW9ufWAgOiBcIlwiO1xuICByZXR1cm4gcGF0aC5qb2luKGJhc2VEaXIsIGAke3Jlc29sdmVkTmFtZX0ke3N1ZmZpeH0uanNvbmApO1xufVxuXG5mdW5jdGlvbiBwYXJzZUxpc3QodmFsdWU6IHVua25vd24pOiBzdHJpbmdbXSB7XG4gIGlmICghdmFsdWUpIHJldHVybiBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4gcGFyc2VMaXN0KGVudHJ5KSkuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgIC5zcGxpdChcIixcIilcbiAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQm9vbGVhbkZsYWcodmFsdWU6IHVua25vd24pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IGAke3ZhbHVlfWAudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChbXCIxXCIsIFwidHJ1ZVwiLCBcInllc1wiLCBcIm9uXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFtcIjBcIiwgXCJmYWxzZVwiLCBcIm5vXCIsIFwib2ZmXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gZmFsc2U7XG4gIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gZmxhZyB2YWx1ZTogJHt2YWx1ZX1gKTtcbn1cblxuZnVuY3Rpb24gdW5pcXVlKHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbLi4ubmV3IFNldCh2YWx1ZXMpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNaWdyYXRlQ29tbWFuZENvbmZpZyhcbiAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgcGtnOiBhbnkgPSB7fVxuKToge1xuICBpbnB1dDogc3RyaW5nO1xuICBjb25maWc6IHtcbiAgICB0b1ZlcnNpb246IHN0cmluZztcbiAgICB0YXNrTW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBkcnlSdW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgZmxhdm91cnM6IHN0cmluZ1tdO1xuICAgIHZlcnNpb25EaXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWZlcmVuY2VzOiBzdHJpbmdbXTtcbiAgfTtcbn0ge1xuICBjb25zdCBwYWNrYWdlTWlncmF0aW9uID0gcGtnPy5kZWNhZj8ubWlncmF0aW9uID8/IHt9O1xuICBjb25zdCBpbnB1dCA9XG4gICAgKG9wdGlvbnMuaW5wdXQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fFxuICAgIHBhY2thZ2VNaWdyYXRpb24uaW5wdXQgfHxcbiAgICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbiAgY29uc3QgdG9WZXJzaW9uID1cbiAgICAob3B0aW9ucy50byBhcyBzdHJpbmcgfCB1bmRlZmluZWQpIHx8XG4gICAgcGFja2FnZU1pZ3JhdGlvbi50b1ZlcnNpb24gfHxcbiAgICBwa2c/LnZlcnNpb24gfHxcbiAgICBcIjAuMC4wXCI7XG4gIGNvbnN0IGNsaUZsYXZvdXJzID0gcGFyc2VMaXN0KG9wdGlvbnMuZmxhdm91ciA/PyBvcHRpb25zLmFkYXB0ZXIpO1xuICBjb25zdCBwYWNrYWdlRmxhdm91cnMgPSBwYXJzZUxpc3QoXG4gICAgcGFja2FnZU1pZ3JhdGlvbi5mbGF2b3VyID8/IHBhY2thZ2VNaWdyYXRpb24uZmxhdm91cnNcbiAgKTtcbiAgY29uc3QgZmxhdm91cnMgPSBjbGlGbGF2b3Vycy5sZW5ndGggPiAwID8gdW5pcXVlKGNsaUZsYXZvdXJzKSA6IHVuaXF1ZShwYWNrYWdlRmxhdm91cnMpO1xuICBjb25zdCB2ZXJzaW9uRGlyID1cbiAgICAob3B0aW9ucy52ZXJzaW9uRGlyIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgfHwgcGFja2FnZU1pZ3JhdGlvbi52ZXJzaW9uRGlyO1xuICBjb25zdCByZWZlcmVuY2VzID0gcGFyc2VMaXN0KG9wdGlvbnMucmVmZXJlbmNlID8/IHBhY2thZ2VNaWdyYXRpb24ucmVmZXJlbmNlcyk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnB1dCxcbiAgICBjb25maWc6IHtcbiAgICAgIHRvVmVyc2lvbixcbiAgICAgIHRhc2tNb2RlOiBwYXJzZUJvb2xlYW5GbGFnKG9wdGlvbnMudGFza01vZGUgPz8gcGFja2FnZU1pZ3JhdGlvbi50YXNrTW9kZSksXG4gICAgICBkcnlSdW46IHBhcnNlQm9vbGVhbkZsYWcob3B0aW9ucy5kcnlSdW4gPz8gcGFja2FnZU1pZ3JhdGlvbi5kcnlSdW4pLFxuICAgICAgZmxhdm91cnMsXG4gICAgICB2ZXJzaW9uRGlyLFxuICAgICAgcmVmZXJlbmNlcyxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKFxuICB2ZXJzaW9uRGlyOiBzdHJpbmcsXG4gIGFkYXB0ZXJzOiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT5bXVxuKTogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIGNvbnN0IGhhbmRsZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVycykge1xuICAgIGNvbnN0IGFsaWFzID0gYWRhcHRlci5hbGlhcztcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHZlcnNpb25EaXIsIGAke2FsaWFzfS5taWdyYXRpb24udmVyc2lvbmApO1xuICAgIGhhbmRsZXJzW2FsaWFzXSA9IHtcbiAgICAgIC8vIGFkYXB0ZXIgYW5kIGN0eEFyZ3MgYXJlIGF2YWlsYWJsZSBidXQgbm90IG5lZWRlZCDigJQgdmVyc2lvbiBsaXZlcyBpbiB0aGUgZmlsZVxuICAgICAgcmV0cmlldmVMYXN0VmVyc2lvbjogYXN5bmMgKF9hZGFwdGVyPzogYW55LCAuLi5fYXJnczogYW55W10pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0Zi04XCIpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiB2IHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG5vIGZpbGUgeWV0IOKGkiBmaXJzdCBydW5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICAgIHNldEN1cnJlbnRWZXJzaW9uOiBhc3luYyAodmVyc2lvbjogc3RyaW5nLCBfYWRhcHRlcj86IGFueSwgLi4uX2FyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGZzLm1rZGlyU3luYyh2ZXJzaW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlLCB2ZXJzaW9uLCBcInV0Zi04XCIpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBoYW5kbGVycztcbn1cblxuY29uc3QgbWlncmF0ZUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwibWlncmF0ZVwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXhlY3V0ZXMgZGVjYWYgbWlncmF0aW9ucywgYW5kIGV4aXRzXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gIC5vcHRpb24oXCItLXRvIDxTdHJpbmc+XCIsIFwidGFyZ2V0IG1pZ3JhdGlvbiB2ZXJzaW9uXCIpXG4gIC5vcHRpb24oXCItLWZsYXZvdXIgPFN0cmluZz5cIiwgXCJ0YXJnZXQgZmxhdm91cihzKSwgY29tbWEtc2VwYXJhdGVkXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWFkYXB0ZXIgPFN0cmluZz5cIixcbiAgICBcImFkYXB0ZXIgZmxhdm91ciBhbGlhcyhlcyksIGNvbW1hLXNlcGFyYXRlZCAoc2FtZSBiZWhhdmlvciBhcyAtLWZsYXZvdXIpXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS10YXNrLW1vZGUgW0Jvb2xlYW5dXCIsXG4gICAgXCJydW5zIG1pZ3JhdGlvbiB2aWEgdGFzayBtb2RlICh0cnVlL2ZhbHNlKS4gYWNjZXB0cyBiYXJlIGZsYWcgYXMgdHJ1ZVwiXG4gIClcbiAgLm9wdGlvbihcbiAgICBcIi0tZHJ5LXJ1biBbQm9vbGVhbl1cIixcbiAgICBcInJ1bnMgbWlncmF0aW9ucyB3aXRoIGRyeS1ydW4gY29udGV4dCAodHJ1ZS9mYWxzZSkuIGFjY2VwdHMgYmFyZSBmbGFnIGFzIHRydWVcIlxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLXZlcnNpb24tZGlyIDxTdHJpbmc+XCIsXG4gICAgXCJkaXJlY3Rvcnkgd2hlcmUgcGVyLWFkYXB0ZXIgdmVyc2lvbiBmaWxlcyBhcmUgcGVyc2lzdGVkIChlLmcuIGEgRG9ja2VyIHZvbHVtZSBwYXRoKS4gXCIgK1xuICAgICAgXCJFYWNoIGFkYXB0ZXIgd3JpdGVzIGl0cyBsYXN0LW1pZ3JhdGVkIHZlcnNpb24gdG8gPHZlcnNpb25EaXI+LzxhbGlhcz4ubWlncmF0aW9uLnZlcnNpb24uIFwiICtcbiAgICAgIFwiQ2FuIGFsc28gYmUgc2V0IHZpYSBwYWNrYWdlLmpzb24gZGVjYWYubWlncmF0aW9uLnZlcnNpb25EaXIuXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS1yZWZlcmVuY2UgPFN0cmluZz5cIixcbiAgICBcInJ1biBvbmx5IHRoZSBuYW1lZCBtaWdyYXRpb24gcmVmZXJlbmNlKHMpLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gJ3Byb2R1Y3QtbWlncmF0aW9uJykuIFwiICtcbiAgICAgIFwiQnlwYXNzZXMgdmVyc2lvbiByYW5nZSBmaWx0ZXJpbmcg4oCUIHVzZSBmb3IgemVyby1kYXkgb3Igb25lLW9mZiBtaWdyYXRpb25zLiBcIiArXG4gICAgICBcIkNhbiBhbHNvIGJlIHNldCB2aWEgcGFja2FnZS5qc29uIGRlY2FmLm1pZ3JhdGlvbi5yZWZlcmVuY2VzLlwiXG4gIClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJtaWdyYXRlXCIpO1xuICAgIGNvbnN0IHsgaW5wdXQsIGNvbmZpZyB9ID0gcmVzb2x2ZU1pZ3JhdGVDb21tYW5kQ29uZmlnKG9wdGlvbnMsIHBrZyk7XG4gICAgbGV0IGFwcDogSU5lc3RBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dCkpKSxcbiAgICAgICAgeyBsb2dnZXI6IGZhbHNlIH1cbiAgICAgICk7XG4gICAgICBhd2FpdCBhcHAuaW5pdCgpO1xuICAgICAgbG9nLmluZm8oYEFwcCBib290ZWRgKTtcblxuICAgICAgY29uc3QgY2FjaGUgPSAoQWRhcHRlciBhcyBhbnkpW1wiX2NhY2hlXCJdIGFzIFJlY29yZDxzdHJpbmcsIEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pj47XG4gICAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBjb25zdCBhZGFwdGVycyA9IE9iamVjdC52YWx1ZXMoY2FjaGUpLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICBpZiAoc2Vlbi5oYXMoYS5hbGlhcykpIHJldHVybiBmYWxzZTtcbiAgICAgICAgc2Vlbi5hZGQoYS5hbGlhcyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCB0YXNrU2VydmljZTogYW55O1xuICAgICAgaWYgKGNvbmZpZy50YXNrTW9kZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRhc2tTZXJ2aWNlID0gU2VydmljZS5nZXQoVGFza01vZGVsKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gbm90IHJlZ2lzdGVyZWRcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhc2tTZXJ2aWNlKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgYHRhc2stbW9kZSByZXF1ZXN0ZWQgYnV0IG5vIFRhc2tTZXJ2aWNlIGlzIHJlZ2lzdGVyZWQgKGV4cGVjdGVkIEBzZXJ2aWNlKFRhc2tNb2RlbCkpYFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4Y2x1ZGUgdGhlIHRhc2sgZW5naW5lJ3MgYWRhcHRlciBmcm9tIG1pZ3JhdGlvbiB0YXJnZXRzIOKAlCBNaWdyYXRpb25TZXJ2aWNlXG4gICAgICAvLyB3aWxsIHRocm93IGlmIGl0IGFwcGVhcnMgaW4gdGhlIGFkYXB0ZXIgbGlzdCBhbG9uZ3NpZGUgY2ZnLnRhc2tTZXJ2aWNlLlxuICAgICAgY29uc3QgdGFza0FkYXB0ZXJBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgKHRhc2tTZXJ2aWNlIGFzIGFueSk/LmNsaWVudD8uYWRhcHRlcj8uYWxpYXMgfHxcbiAgICAgICAgKHRhc2tTZXJ2aWNlIGFzIGFueSk/LmNsaWVudD8uYWRhcHRlcj8uZmxhdm91cjtcbiAgICAgIGNvbnN0IG1pZ3JhdGVBZGFwdGVycyA9IHRhc2tBZGFwdGVyQWxpYXNcbiAgICAgICAgPyBhZGFwdGVycy5maWx0ZXIoKGEpID0+IGEuYWxpYXMgIT09IHRhc2tBZGFwdGVyQWxpYXMgJiYgYS5mbGF2b3VyICE9PSB0YXNrQWRhcHRlckFsaWFzKVxuICAgICAgICA6IGFkYXB0ZXJzO1xuXG4gICAgICBjb25zdCBoYW5kbGVycyA9IGNvbmZpZy52ZXJzaW9uRGlyXG4gICAgICAgID8gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKGNvbmZpZy52ZXJzaW9uRGlyLCBtaWdyYXRlQWRhcHRlcnMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoY29uZmlnLnZlcnNpb25EaXIpXG4gICAgICAgIGxvZy5pbmZvKGBWZXJzaW9uIHRyYWNraW5nOiAke3BhdGgucmVzb2x2ZShjb25maWcudmVyc2lvbkRpcil9YCk7XG4gICAgICBlbHNlXG4gICAgICAgIGxvZy53YXJuKGBObyAtLXZlcnNpb24tZGlyIHNldCDigJQgZXZlcnkgcnVuIHdpbGwgcmUtYXBwbHkgYWxsIG1pZ3JhdGlvbnMgdXAgdG8gJHtjb25maWcudG9WZXJzaW9ufWApO1xuXG4gICAgICBpZiAoY29uZmlnLnJlZmVyZW5jZXMubGVuZ3RoKVxuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBvbmx5IHJlZmVyZW5jZXM6ICR7Y29uZmlnLnJlZmVyZW5jZXMuam9pbihcIiwgXCIpfWApO1xuXG4gICAgICBjb25zdCBtaWdyYXRpb25zID0gYXdhaXQgTWlncmF0aW9uU2VydmljZS5taWdyYXRlQWRhcHRlcnMoXG4gICAgICAgIG1pZ3JhdGVBZGFwdGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHRvVmVyc2lvbjogY29uZmlnLnRvVmVyc2lvbixcbiAgICAgICAgICB0YXNrTW9kZTogY29uZmlnLnRhc2tNb2RlLFxuICAgICAgICAgIGRyeVJ1bjogY29uZmlnLmRyeVJ1bixcbiAgICAgICAgICBmbGF2b3VyczogY29uZmlnLmZsYXZvdXJzLmxlbmd0aCA+IDAgPyBjb25maWcuZmxhdm91cnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGFza1NlcnZpY2UsXG4gICAgICAgICAgaGFuZGxlcnMsXG4gICAgICAgICAgdmVyc2lvbmluZzogbmV3IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcoKSxcbiAgICAgICAgICByZWZlcmVuY2VzOlxuICAgICAgICAgICAgY29uZmlnLnJlZmVyZW5jZXMubGVuZ3RoID4gMCA/IGNvbmZpZy5yZWZlcmVuY2VzIDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvblNlcnZpY2Ugb2YgbWlncmF0aW9ucyB8fCBbXSkge1xuICAgICAgICBhd2FpdCBtaWdyYXRpb25TZXJ2aWNlLnRyYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIGxvZy5pbmZvKFxuICAgICAgICBgTWlncmF0aW9uIGNvbXBsZXRlZCR7b3B0aW9ucy50byB8fCBwa2cudmVyc2lvbiA/IGAgdXAgdG8gJHtvcHRpb25zLnRvIHx8IHBrZy52ZXJzaW9ufWAgOiBcIlwifWBcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhcHApIGF3YWl0IGFwcC5jbG9zZSgpO1xuICAgIH1cbiAgfSk7XG5cbmV4cG9ydCB7IG1pZ3JhdGVDb21tYW5kIH07XG5cbmNvbnN0IGV4cG9ydEFwaUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwiZXhwb3J0LWFwaVwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXh0cmFjdHMgdGhlIE9wZW5BUEkgc3BlYywgYW5kIHdyaXRlcyBpdCB0byBhIEpTT04gZmlsZVwiXG4gIClcbiAgLm9wdGlvbihcIi0taW5wdXQgPFN0cmluZz5cIiwgXCJwYXRoIHRvIGFwcCBtb2R1bGUgKHRzIG9yIGNvbXBpbGVkKVwiKVxuICAub3B0aW9uKFwiLS1vdXRwdXQgPFN0cmluZz5cIiwgXCJvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgT3BlbkFQSSBKU09OIGZpbGVcIiwgXCIuL1wiKVxuICAub3B0aW9uKFwiLS1maWxlTmFtZSA8U3RyaW5nPlwiLCBcIm91dHB1dCBmaWxlIG5hbWUgKHdpdGhvdXQgZXh0ZW5zaW9uKVwiLCBcIm9wZW5hcGlcIilcbiAgLm9wdGlvbihcIi0tdGl0bGUgPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IHRpdGxlXCIsIFwiREVDQUYgQVBJXCIpXG4gIC5vcHRpb24oXCItLWRlc2NyaXB0aW9uIDxTdHJpbmc+XCIsIFwiT3BlbkFQSSBkb2N1bWVudCBkZXNjcmlwdGlvblwiLCBcIkF1dG8tZ2VuZXJhdGVkIE9wZW5BUEkgc3BlY2lmaWNhdGlvblwiKVxuICAub3B0aW9uKFwiLS12ZXJzaW9uIDxTdHJpbmc+XCIsIFwiT3BlbkFQSSBkb2N1bWVudCB2ZXJzaW9uXCIpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJleHBvcnQtYXBpXCIpO1xuICAgIGNvbnN0IGlucHV0ID0gcmVzb2x2ZUlucHV0UGF0aChvcHRpb25zLmlucHV0KTtcbiAgICBsZXQgYXBwOiBJTmVzdEFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBhcHAgPSBhd2FpdCBOZXN0RmFjdG9yeS5jcmVhdGUoXG4gICAgICAgIGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0KSkpLFxuICAgICAgICB7IGxvZ2dlcjogZmFsc2UgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IGFwcC5pbml0KCk7XG4gICAgICBsb2cuaW5mbyhgQXBwIGJvb3RlZCBmcm9tICR7aW5wdXR9YCk7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBEb2N1bWVudEJ1aWxkZXIoKVxuICAgICAgICAuc2V0VGl0bGUob3B0aW9ucy50aXRsZSlcbiAgICAgICAgLnNldERlc2NyaXB0aW9uKG9wdGlvbnMuZGVzY3JpcHRpb24pXG4gICAgICAgIC5zZXRWZXJzaW9uKG9wdGlvbnMudmVyc2lvbiB8fCBcIjEuMC4wXCIpXG4gICAgICAgIC5hZGRCZWFyZXJBdXRoKClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gU3dhZ2dlck1vZHVsZS5jcmVhdGVEb2N1bWVudChhcHAsIGNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IG91dHB1dERpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dHB1dCk7XG4gICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG91dHB1dEZpbGUgPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBgJHtvcHRpb25zLmZpbGVOYW1lfS5qc29uYCk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKG91dHB1dEZpbGUsIEpTT04uc3RyaW5naWZ5KGRvY3VtZW50LCBudWxsLCAyKSwgXCJ1dGYtOFwiKTtcblxuICAgICAgY29uc3QgcGF0aENvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQucGF0aHMgfHwge30pLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNjaGVtYUNvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fSkubGVuZ3RoO1xuICAgICAgbG9nLmluZm8oYE9wZW5BUEkgc3BlYyB3cml0dGVuIHRvICR7b3V0cHV0RmlsZX0gKCR7cGF0aENvdW50fSBwYXRocywgJHtzY2hlbWFDb3VudH0gc2NoZW1hcylgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGFwcCkgYXdhaXQgYXBwLmNsb3NlKCk7XG4gICAgfVxuICB9KTtcblxuY29uc3QgbmVzdENtZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJuZXN0XCIpXG4gIC5kZXNjcmlwdGlvbihcImV4cG9zZXMgdmFyaW91cyBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgbmVzdCBpbnRlZ3JhdGlvblwiKTtcblxubmVzdENtZC5hZGRDb21tYW5kKG1pZ3JhdGVDb21tYW5kKTtcbm5lc3RDbWQuYWRkQ29tbWFuZChleHBvcnRBcGlDb21tYW5kKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbmVzdCgpIHtcbiAgcmV0dXJuIG5lc3RDbWQ7XG59XG4iXX0=
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsaS1tb2R1bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLDRDQUtDO0FBQ0Qsa0RBV0M7QUEwQkQsa0VBeUJDO0FBQ0QsNERBMEJDO0FBaUlELHVCQUVDO0FBclBELCtDQUE0QztBQUM1QyxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN2Qyx5Q0FBb0M7QUFDcEMsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4Qix5Q0FBOEU7QUFDOUUsbUdBQWdHO0FBQ2hHLDBEQUE2RDtBQUM3RCwyREFBd0Q7QUFDeEQsdUNBQTJDO0FBQzNDLDZDQUFpRTtBQUNqRSxNQUFNLHNCQUFzQixHQUFHO0lBQzNCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3hCLENBQUM7QUFDRixTQUFTLHNCQUFzQixDQUFDLFNBQVM7SUFDckMsT0FBTyxZQUFFLENBQUMsVUFBVSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUNELFNBQWdCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsc0JBQXNCLEVBQUUsVUFBVSxHQUFHLHNCQUFzQjtJQUN4RyxJQUFJLEtBQUs7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRSxPQUFPLEtBQUssSUFBSSxxQkFBcUIsQ0FBQztBQUMxQyxDQUFDO0FBQ0QsU0FBZ0IsbUJBQW1CLENBQUMsTUFBTTtJQUN0QyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9B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SSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0UsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsVUFBVSxLQUFLLFNBQVMsV0FBVyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1AsTUFBTSxJQUFJLDZCQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztZQUNPLENBQUM7UUFDTCxJQUFJLEdBQUc7WUFDSCxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFPLEVBQUU7S0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUNaLFdBQVcsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0FBQ2pGLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbkMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JDLFNBQXdCLElBQUk7SUFDeEIsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUNELDB5NUJBQTB5NUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5jb25zdCBsb2dnZXIgPSBMb2dnaW5nLmZvcihcImZvci1uZXN0XCIpO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gXCJjb21tYW5kZXJcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBBZGFwdGVyLCBub3JtYWxpemVJbXBvcnQsIFNlcnZpY2UsIFRhc2tNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgU2VtdmVyTWlncmF0aW9uVmVyc2lvbmluZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZS9taWdyYXRpb25zL1NlbXZlck1pZ3JhdGlvblZlcnNpb25pbmdcIjtcbmltcG9ydCB7IE1pZ3JhdGlvblNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmUvbWlncmF0aW9uc1wiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTmVzdEZhY3RvcnkgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBEb2N1bWVudEJ1aWxkZXIsIFN3YWdnZXJNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9zd2FnZ2VyXCI7XG5jb25zdCBkZWZhdWx0SW5wdXRDYW5kaWRhdGVzID0gW1xuICAgIFwiLi9saWIvYXBwLm1vZHVsZS5janNcIixcbiAgICBcIi4vbGliL2FwcC5tb2R1bGUuanNcIixcbiAgICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIixcbl07XG5mdW5jdGlvbiBkZWZhdWx0Q2FuZGlkYXRlRXhpc3RzKGNhbmRpZGF0ZSkge1xuICAgIHJldHVybiBmcy5leGlzdHNTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBjYW5kaWRhdGUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSW5wdXRQYXRoKGlucHV0LCBleGlzdHMgPSBkZWZhdWx0Q2FuZGlkYXRlRXhpc3RzLCBjYW5kaWRhdGVzID0gZGVmYXVsdElucHV0Q2FuZGlkYXRlcykge1xuICAgIGlmIChpbnB1dClcbiAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgIGNvbnN0IGZvdW5kID0gY2FuZGlkYXRlcy5maW5kKChjYW5kaWRhdGUpID0+IGV4aXN0cyhjYW5kaWRhdGUpKTtcbiAgICByZXR1cm4gZm91bmQgfHwgXCIuL3NyYy9hcHAubW9kdWxlLnRzXCI7XG59XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPdXRwdXRGaWxlUGF0aChwYXJhbXMpIHtcbiAgICBjb25zdCB7IG91dHB1dERpciwgcGtnTmFtZSwgbmFtZSwgZmlsZU5hbWUsIGFwcGVuZFZlcnNpb24gPSBmYWxzZSwgdmVyc2lvbiwgfSA9IHBhcmFtcztcbiAgICBjb25zdCBiYXNlRGlyID0gcGF0aC5yZXNvbHZlKG91dHB1dERpcik7XG4gICAgY29uc3QgZGVmYXVsdFBrZ05hbWUgPSBwa2dOYW1lO1xuICAgIGNvbnN0IHJlc29sdmVkUmF3U291cmNlID0gZmlsZU5hbWUgfHwgbmFtZSB8fCBkZWZhdWx0UGtnTmFtZSB8fCBcImFwaVwiO1xuICAgIGNvbnN0IGJhc2VOYW1lID0gcGF0aC5iYXNlbmFtZShyZXNvbHZlZFJhd1NvdXJjZSk7XG4gICAgY29uc3QgcmVzb2x2ZWRSYXcgPSBiYXNlTmFtZS5yZXBsYWNlKC9bXFxcXC9dL2csIFwiX1wiKTtcbiAgICBjb25zdCB0cmltbWVkID0gcmVzb2x2ZWRSYXcucmVwbGFjZSgvXlsuX10rLywgXCJcIik7XG4gICAgY29uc3QgcmVzb2x2ZWROYW1lID0gdHJpbW1lZCB8fCBcImFwaVwiO1xuICAgIGNvbnN0IHN1ZmZpeCA9IGFwcGVuZFZlcnNpb24gJiYgdmVyc2lvbiA/IGAtJHt2ZXJzaW9ufWAgOiBcIlwiO1xuICAgIHJldHVybiBwYXRoLmpvaW4oYmFzZURpciwgYCR7cmVzb2x2ZWROYW1lfSR7c3VmZml4fS5qc29uYCk7XG59XG5mdW5jdGlvbiBwYXJzZUxpc3QodmFsdWUpIHtcbiAgICBpZiAoIXZhbHVlKVxuICAgICAgICByZXR1cm4gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICByZXR1cm4gdmFsdWUuZmxhdE1hcCgoZW50cnkpID0+IHBhcnNlTGlzdChlbnRyeSkpLmZpbHRlcihCb29sZWFuKTtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgICAgICAuc3BsaXQoXCIsXCIpXG4gICAgICAgIC5tYXAoKGVudHJ5KSA9PiBlbnRyeS50cmltKCkpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5mdW5jdGlvbiBwYXJzZUJvb2xlYW5GbGFnKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gYCR7dmFsdWV9YC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoW1wiMVwiLCBcInRydWVcIiwgXCJ5ZXNcIiwgXCJvblwiXS5pbmNsdWRlcyhub3JtYWxpemVkKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKFtcIjBcIiwgXCJmYWxzZVwiLCBcIm5vXCIsIFwib2ZmXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEludmFsaWQgYm9vbGVhbiBmbGFnIHZhbHVlOiAke3ZhbHVlfWApO1xufVxuZnVuY3Rpb24gdW5pcXVlKHZhbHVlcykge1xuICAgIHJldHVybiBbLi4ubmV3IFNldCh2YWx1ZXMpXTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTWlncmF0ZUNvbW1hbmRDb25maWcob3B0aW9ucyA9IHt9LCBwa2cgPSB7fSkge1xuICAgIGNvbnN0IHBhY2thZ2VNaWdyYXRpb24gPSBwa2c/LmRlY2FmPy5taWdyYXRpb24gPz8ge307XG4gICAgY29uc3QgaW5wdXQgPSBvcHRpb25zLmlucHV0IHx8XG4gICAgICAgIHBhY2thZ2VNaWdyYXRpb24uaW5wdXQgfHxcbiAgICAgICAgXCIuL3NyYy9hcHAubW9kdWxlLnRzXCI7XG4gICAgY29uc3QgdG9WZXJzaW9uID0gb3B0aW9ucy50byB8fFxuICAgICAgICBwYWNrYWdlTWlncmF0aW9uLnRvVmVyc2lvbiB8fFxuICAgICAgICBwa2c/LnZlcnNpb24gfHxcbiAgICAgICAgXCIwLjAuMFwiO1xuICAgIGNvbnN0IGNsaUZsYXZvdXJzID0gcGFyc2VMaXN0KG9wdGlvbnMuZmxhdm91ciA/PyBvcHRpb25zLmFkYXB0ZXIpO1xuICAgIGNvbnN0IHBhY2thZ2VGbGF2b3VycyA9IHBhcnNlTGlzdChwYWNrYWdlTWlncmF0aW9uLmZsYXZvdXIgPz8gcGFja2FnZU1pZ3JhdGlvbi5mbGF2b3Vycyk7XG4gICAgY29uc3QgZmxhdm91cnMgPSBjbGlGbGF2b3Vycy5sZW5ndGggPiAwID8gdW5pcXVlKGNsaUZsYXZvdXJzKSA6IHVuaXF1ZShwYWNrYWdlRmxhdm91cnMpO1xuICAgIGNvbnN0IHZlcnNpb25EaXIgPSBvcHRpb25zLnZlcnNpb25EaXIgfHwgcGFja2FnZU1pZ3JhdGlvbi52ZXJzaW9uRGlyO1xuICAgIGNvbnN0IHJlZmVyZW5jZXMgPSBwYXJzZUxpc3Qob3B0aW9ucy5yZWZlcmVuY2UgPz8gcGFja2FnZU1pZ3JhdGlvbi5yZWZlcmVuY2VzKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpbnB1dCxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICB0b1ZlcnNpb24sXG4gICAgICAgICAgICB0YXNrTW9kZTogcGFyc2VCb29sZWFuRmxhZyhvcHRpb25zLnRhc2tNb2RlID8/IHBhY2thZ2VNaWdyYXRpb24udGFza01vZGUpLFxuICAgICAgICAgICAgZHJ5UnVuOiBwYXJzZUJvb2xlYW5GbGFnKG9wdGlvbnMuZHJ5UnVuID8/IHBhY2thZ2VNaWdyYXRpb24uZHJ5UnVuKSxcbiAgICAgICAgICAgIGZsYXZvdXJzLFxuICAgICAgICAgICAgdmVyc2lvbkRpcixcbiAgICAgICAgICAgIHJlZmVyZW5jZXMsXG4gICAgICAgIH0sXG4gICAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpbGVWZXJzaW9uSGFuZGxlcnModmVyc2lvbkRpciwgYWRhcHRlcnMpIHtcbiAgICBjb25zdCBoYW5kbGVycyA9IHt9O1xuICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVycykge1xuICAgICAgICBjb25zdCBhbGlhcyA9IGFkYXB0ZXIuYWxpYXM7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4odmVyc2lvbkRpciwgYCR7YWxpYXN9Lm1pZ3JhdGlvbi52ZXJzaW9uYCk7XG4gICAgICAgIGhhbmRsZXJzW2FsaWFzXSA9IHtcbiAgICAgICAgICAgIC8vIGFkYXB0ZXIgYW5kIGN0eEFyZ3MgYXJlIGF2YWlsYWJsZSBidXQgbm90IG5lZWRlZCDigJQgdmVyc2lvbiBsaXZlcyBpbiB0aGUgZmlsZVxuICAgICAgICAgICAgcmV0cmlldmVMYXN0VmVyc2lvbjogYXN5bmMgKF9hZGFwdGVyLCAuLi5fYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gZnMucmVhZEZpbGVTeW5jKGZpbGUsIFwidXRmLThcIikudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHYgfHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbm8gZmlsZSB5ZXQg4oaSIGZpcnN0IHJ1blxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldEN1cnJlbnRWZXJzaW9uOiBhc3luYyAodmVyc2lvbiwgX2FkYXB0ZXIsIC4uLl9hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgZnMubWtkaXJTeW5jKHZlcnNpb25EaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZSwgdmVyc2lvbiwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVycztcbn1cbmNvbnN0IG1pZ3JhdGVDb21tYW5kID0gbmV3IENvbW1hbmQoKVxuICAgIC5uYW1lKFwibWlncmF0ZVwiKVxuICAgIC5kZXNjcmlwdGlvbihcImJvb3RzIHRoZSBhcHAgY29udGV4dCBoZWFkbGVzc2x5LCBleGVjdXRlcyBkZWNhZiBtaWdyYXRpb25zLCBhbmQgZXhpdHNcIilcbiAgICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gICAgLm9wdGlvbihcIi0tdG8gPFN0cmluZz5cIiwgXCJ0YXJnZXQgbWlncmF0aW9uIHZlcnNpb25cIilcbiAgICAub3B0aW9uKFwiLS1mbGF2b3VyIDxTdHJpbmc+XCIsIFwidGFyZ2V0IGZsYXZvdXIocyksIGNvbW1hLXNlcGFyYXRlZFwiKVxuICAgIC5vcHRpb24oXCItLWFkYXB0ZXIgPFN0cmluZz5cIiwgXCJhZGFwdGVyIGZsYXZvdXIgYWxpYXMoZXMpLCBjb21tYS1zZXBhcmF0ZWQgKHNhbWUgYmVoYXZpb3IgYXMgLS1mbGF2b3VyKVwiKVxuICAgIC5vcHRpb24oXCItLXRhc2stbW9kZSBbQm9vbGVhbl1cIiwgXCJydW5zIG1pZ3JhdGlvbiB2aWEgdGFzayBtb2RlICh0cnVlL2ZhbHNlKS4gYWNjZXB0cyBiYXJlIGZsYWcgYXMgdHJ1ZVwiKVxuICAgIC5vcHRpb24oXCItLWRyeS1ydW4gW0Jvb2xlYW5dXCIsIFwicnVucyBtaWdyYXRpb25zIHdpdGggZHJ5LXJ1biBjb250ZXh0ICh0cnVlL2ZhbHNlKS4gYWNjZXB0cyBiYXJlIGZsYWcgYXMgdHJ1ZVwiKVxuICAgIC5vcHRpb24oXCItLXZlcnNpb24tZGlyIDxTdHJpbmc+XCIsIFwiZGlyZWN0b3J5IHdoZXJlIHBlci1hZGFwdGVyIHZlcnNpb24gZmlsZXMgYXJlIHBlcnNpc3RlZCAoZS5nLiBhIERvY2tlciB2b2x1bWUgcGF0aCkuIFwiICtcbiAgICBcIkVhY2ggYWRhcHRlciB3cml0ZXMgaXRzIGxhc3QtbWlncmF0ZWQgdmVyc2lvbiB0byA8dmVyc2lvbkRpcj4vPGFsaWFzPi5taWdyYXRpb24udmVyc2lvbi4gXCIgK1xuICAgIFwiQ2FuIGFsc28gYmUgc2V0IHZpYSBwYWNrYWdlLmpzb24gZGVjYWYubWlncmF0aW9uLnZlcnNpb25EaXIuXCIpXG4gICAgLm9wdGlvbihcIi0tcmVmZXJlbmNlIDxTdHJpbmc+XCIsIFwicnVuIG9ubHkgdGhlIG5hbWVkIG1pZ3JhdGlvbiByZWZlcmVuY2UocyksIGNvbW1hLXNlcGFyYXRlZCAoZS5nLiAncHJvZHVjdC1taWdyYXRpb24nKS4gXCIgK1xuICAgIFwiQnlwYXNzZXMgdmVyc2lvbiByYW5nZSBmaWx0ZXJpbmcg4oCUIHVzZSBmb3IgemVyby1kYXkgb3Igb25lLW9mZiBtaWdyYXRpb25zLiBcIiArXG4gICAgXCJDYW4gYWxzbyBiZSBzZXQgdmlhIHBhY2thZ2UuanNvbiBkZWNhZi5taWdyYXRpb24ucmVmZXJlbmNlcy5cIilcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwicGFja2FnZS5qc29uXCIpLCBcInV0Zi04XCIpKTtcbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwibWlncmF0ZVwiKTtcbiAgICBjb25zdCB7IGlucHV0LCBjb25maWcgfSA9IHJlc29sdmVNaWdyYXRlQ29tbWFuZENvbmZpZyhvcHRpb25zLCBwa2cpO1xuICAgIGxldCBhcHA7XG4gICAgdHJ5IHtcbiAgICAgICAgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0KSkpLCB7IGxvZ2dlcjogZmFsc2UgfSk7XG4gICAgICAgIGF3YWl0IGFwcC5pbml0KCk7XG4gICAgICAgIGxvZy5pbmZvKGBBcHAgYm9vdGVkYCk7XG4gICAgICAgIGNvbnN0IGNhY2hlID0gQWRhcHRlcltcIl9jYWNoZVwiXTtcbiAgICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgY29uc3QgYWRhcHRlcnMgPSBPYmplY3QudmFsdWVzKGNhY2hlKS5maWx0ZXIoKGEpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyhhLmFsaWFzKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBzZWVuLmFkZChhLmFsaWFzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHRhc2tTZXJ2aWNlO1xuICAgICAgICBpZiAoY29uZmlnLnRhc2tNb2RlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRhc2tTZXJ2aWNlID0gU2VydmljZS5nZXQoVGFza01vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBub3QgcmVnaXN0ZXJlZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0YXNrU2VydmljZSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgdGFzay1tb2RlIHJlcXVlc3RlZCBidXQgbm8gVGFza1NlcnZpY2UgaXMgcmVnaXN0ZXJlZCAoZXhwZWN0ZWQgQHNlcnZpY2UoVGFza01vZGVsKSlgKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFeGNsdWRlIHRoZSB0YXNrIGVuZ2luZSdzIGFkYXB0ZXIgZnJvbSBtaWdyYXRpb24gdGFyZ2V0cyDigJQgTWlncmF0aW9uU2VydmljZVxuICAgICAgICAvLyB3aWxsIHRocm93IGlmIGl0IGFwcGVhcnMgaW4gdGhlIGFkYXB0ZXIgbGlzdCBhbG9uZ3NpZGUgY2ZnLnRhc2tTZXJ2aWNlLlxuICAgICAgICBjb25zdCB0YXNrQWRhcHRlckFsaWFzID0gdGFza1NlcnZpY2U/LmNsaWVudD8uYWRhcHRlcj8uYWxpYXMgfHxcbiAgICAgICAgICAgIHRhc2tTZXJ2aWNlPy5jbGllbnQ/LmFkYXB0ZXI/LmZsYXZvdXI7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGVBZGFwdGVycyA9IHRhc2tBZGFwdGVyQWxpYXNcbiAgICAgICAgICAgID8gYWRhcHRlcnMuZmlsdGVyKChhKSA9PiBhLmFsaWFzICE9PSB0YXNrQWRhcHRlckFsaWFzICYmIGEuZmxhdm91ciAhPT0gdGFza0FkYXB0ZXJBbGlhcylcbiAgICAgICAgICAgIDogYWRhcHRlcnM7XG4gICAgICAgIGNvbnN0IGhhbmRsZXJzID0gY29uZmlnLnZlcnNpb25EaXJcbiAgICAgICAgICAgID8gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKGNvbmZpZy52ZXJzaW9uRGlyLCBtaWdyYXRlQWRhcHRlcnMpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGNvbmZpZy52ZXJzaW9uRGlyKVxuICAgICAgICAgICAgbG9nLmluZm8oYFZlcnNpb24gdHJhY2tpbmc6ICR7cGF0aC5yZXNvbHZlKGNvbmZpZy52ZXJzaW9uRGlyKX1gKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgbG9nLndhcm4oYE5vIC0tdmVyc2lvbi1kaXIgc2V0IOKAlCBldmVyeSBydW4gd2lsbCByZS1hcHBseSBhbGwgbWlncmF0aW9ucyB1cCB0byAke2NvbmZpZy50b1ZlcnNpb259YCk7XG4gICAgICAgIGlmIChjb25maWcucmVmZXJlbmNlcy5sZW5ndGgpXG4gICAgICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBvbmx5IHJlZmVyZW5jZXM6ICR7Y29uZmlnLnJlZmVyZW5jZXMuam9pbihcIiwgXCIpfWApO1xuICAgICAgICBjb25zdCBtaWdyYXRpb25zID0gYXdhaXQgTWlncmF0aW9uU2VydmljZS5taWdyYXRlQWRhcHRlcnMobWlncmF0ZUFkYXB0ZXJzLCB7XG4gICAgICAgICAgICB0b1ZlcnNpb246IGNvbmZpZy50b1ZlcnNpb24sXG4gICAgICAgICAgICB0YXNrTW9kZTogY29uZmlnLnRhc2tNb2RlLFxuICAgICAgICAgICAgZHJ5UnVuOiBjb25maWcuZHJ5UnVuLFxuICAgICAgICAgICAgZmxhdm91cnM6IGNvbmZpZy5mbGF2b3Vycy5sZW5ndGggPiAwID8gY29uZmlnLmZsYXZvdXJzIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdGFza1NlcnZpY2UsXG4gICAgICAgICAgICBoYW5kbGVycyxcbiAgICAgICAgICAgIHZlcnNpb25pbmc6IG5ldyBTZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nKCksXG4gICAgICAgICAgICByZWZlcmVuY2VzOiBjb25maWcucmVmZXJlbmNlcy5sZW5ndGggPiAwID8gY29uZmlnLnJlZmVyZW5jZXMgOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvblNlcnZpY2Ugb2YgbWlncmF0aW9ucyB8fCBbXSkge1xuICAgICAgICAgICAgYXdhaXQgbWlncmF0aW9uU2VydmljZS50cmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGxvZy5pbmZvKGBNaWdyYXRpb24gY29tcGxldGVkJHtvcHRpb25zLnRvIHx8IHBrZy52ZXJzaW9uID8gYCB1cCB0byAke29wdGlvbnMudG8gfHwgcGtnLnZlcnNpb259YCA6IFwiXCJ9YCk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGUpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGFwcClcbiAgICAgICAgICAgIGF3YWl0IGFwcC5jbG9zZSgpO1xuICAgIH1cbn0pO1xuZXhwb3J0IHsgbWlncmF0ZUNvbW1hbmQgfTtcbmNvbnN0IGV4cG9ydEFwaUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gICAgLm5hbWUoXCJleHBvcnQtYXBpXCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiYm9vdHMgdGhlIGFwcCBjb250ZXh0IGhlYWRsZXNzbHksIGV4dHJhY3RzIHRoZSBPcGVuQVBJIHNwZWMsIGFuZCB3cml0ZXMgaXQgdG8gYSBKU09OIGZpbGVcIilcbiAgICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gICAgLm9wdGlvbihcIi0tb3V0cHV0IDxTdHJpbmc+XCIsIFwib3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIE9wZW5BUEkgSlNPTiBmaWxlXCIsIFwiLi9cIilcbiAgICAub3B0aW9uKFwiLS1maWxlTmFtZSA8U3RyaW5nPlwiLCBcIm91dHB1dCBmaWxlIG5hbWUgKHdpdGhvdXQgZXh0ZW5zaW9uKVwiLCBcIm9wZW5hcGlcIilcbiAgICAub3B0aW9uKFwiLS10aXRsZSA8U3RyaW5nPlwiLCBcIk9wZW5BUEkgZG9jdW1lbnQgdGl0bGVcIiwgXCJERUNBRiBBUElcIilcbiAgICAub3B0aW9uKFwiLS1kZXNjcmlwdGlvbiA8U3RyaW5nPlwiLCBcIk9wZW5BUEkgZG9jdW1lbnQgZGVzY3JpcHRpb25cIiwgXCJBdXRvLWdlbmVyYXRlZCBPcGVuQVBJIHNwZWNpZmljYXRpb25cIilcbiAgICAub3B0aW9uKFwiLS12ZXJzaW9uIDxTdHJpbmc+XCIsIFwiT3BlbkFQSSBkb2N1bWVudCB2ZXJzaW9uXCIpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJleHBvcnQtYXBpXCIpO1xuICAgIGNvbnN0IGlucHV0ID0gcmVzb2x2ZUlucHV0UGF0aChvcHRpb25zLmlucHV0KTtcbiAgICBsZXQgYXBwO1xuICAgIHRyeSB7XG4gICAgICAgIGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dCkpKSwgeyBsb2dnZXI6IGZhbHNlIH0pO1xuICAgICAgICBhd2FpdCBhcHAuaW5pdCgpO1xuICAgICAgICBsb2cuaW5mbyhgQXBwIGJvb3RlZCBmcm9tICR7aW5wdXR9YCk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBEb2N1bWVudEJ1aWxkZXIoKVxuICAgICAgICAgICAgLnNldFRpdGxlKG9wdGlvbnMudGl0bGUpXG4gICAgICAgICAgICAuc2V0RGVzY3JpcHRpb24ob3B0aW9ucy5kZXNjcmlwdGlvbilcbiAgICAgICAgICAgIC5zZXRWZXJzaW9uKG9wdGlvbnMudmVyc2lvbiB8fCBcIjEuMC4wXCIpXG4gICAgICAgICAgICAuYWRkQmVhcmVyQXV0aCgpXG4gICAgICAgICAgICAuYnVpbGQoKTtcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBTd2FnZ2VyTW9kdWxlLmNyZWF0ZURvY3VtZW50KGFwcCwgY29uZmlnKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0RGlyID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMub3V0cHV0KTtcbiAgICAgICAgZnMubWtkaXJTeW5jKG91dHB1dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIGNvbnN0IG91dHB1dEZpbGUgPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBgJHtvcHRpb25zLmZpbGVOYW1lfS5qc29uYCk7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMob3V0cHV0RmlsZSwgSlNPTi5zdHJpbmdpZnkoZG9jdW1lbnQsIG51bGwsIDIpLCBcInV0Zi04XCIpO1xuICAgICAgICBjb25zdCBwYXRoQ291bnQgPSBPYmplY3Qua2V5cyhkb2N1bWVudC5wYXRocyB8fCB7fSkubGVuZ3RoO1xuICAgICAgICBjb25zdCBzY2hlbWFDb3VudCA9IE9iamVjdC5rZXlzKGRvY3VtZW50LmNvbXBvbmVudHM/LnNjaGVtYXMgfHwge30pLmxlbmd0aDtcbiAgICAgICAgbG9nLmluZm8oYE9wZW5BUEkgc3BlYyB3cml0dGVuIHRvICR7b3V0cHV0RmlsZX0gKCR7cGF0aENvdW50fSBwYXRocywgJHtzY2hlbWFDb3VudH0gc2NoZW1hcylgKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICBpZiAoYXBwKVxuICAgICAgICAgICAgYXdhaXQgYXBwLmNsb3NlKCk7XG4gICAgfVxufSk7XG5jb25zdCBuZXN0Q21kID0gbmV3IENvbW1hbmQoKVxuICAgIC5uYW1lKFwibmVzdFwiKVxuICAgIC5kZXNjcmlwdGlvbihcImV4cG9zZXMgdmFyaW91cyBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgbmVzdCBpbnRlZ3JhdGlvblwiKTtcbm5lc3RDbWQuYWRkQ29tbWFuZChtaWdyYXRlQ29tbWFuZCk7XG5uZXN0Q21kLmFkZENvbW1hbmQoZXhwb3J0QXBpQ29tbWFuZCk7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBuZXN0KCkge1xuICAgIHJldHVybiBuZXN0Q21kO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTJ4cExXMXZaSFZzWlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTlqYkdrdGJXOWtkV3hsTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVFVGQlRTeHRRa0ZCYlVJc1EwRkJRenRCUVVVMVF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlJYWkRMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVFVGQlRTeFhRVUZYTEVOQlFVTTdRVUZEY0VNc1QwRkJUeXhGUVVGRkxFMUJRVTBzU1VGQlNTeERRVUZETzBGQlEzQkNMRTlCUVU4c1NVRkJTU3hOUVVGTkxFMUJRVTBzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc1QwRkJUeXhGUVVGRkxHVkJRV1VzUlVGQlJTeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZET1VVc1QwRkJUeXhGUVVGRkxIbENRVUY1UWl4RlFVRkZMRTFCUVUwc2NVUkJRWEZFTEVOQlFVTTdRVUZEYUVjc1QwRkJUeXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMRTFCUVUwc01rSkJRVEpDTEVOQlFVTTdRVUZETjBRc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJRM2hFTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3hqUVVGakxFTkJRVU03UVVGRk0wTXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1JVRkJSU3hoUVVGaExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWcVJTeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSE8wbEJRemRDTEhOQ1FVRnpRanRKUVVOMFFpeHhRa0ZCY1VJN1NVRkRja0lzY1VKQlFYRkNPME5CUTNSQ0xFTkJRVU03UVVGRlJpeFRRVUZUTEhOQ1FVRnpRaXhEUVVGRExGTkJRV2xDTzBsQlF5OURMRTlCUVU4c1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRemxDTEV0QlFXTXNSVUZEWkN4VFFVRjVReXh6UWtGQmMwSXNSVUZETDBRc1ZVRkJWU3hIUVVGSExITkNRVUZ6UWp0SlFVVnVReXhKUVVGSkxFdEJRVXM3VVVGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0SlFVTjRRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOb1JTeFBRVUZQTEV0QlFVc3NTVUZCU1N4eFFrRkJjVUlzUTBGQlF6dEJRVU40UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHMUNRVUZ0UWl4RFFVRkRMRTFCVDI1RE8wbEJRME1zVFVGQlRTeEZRVU5LTEZOQlFWTXNSVUZEVkN4UFFVRlBMRVZCUTFBc1NVRkJTU3hGUVVOS0xGRkJRVkVzUlVGRFVpeGhRVUZoTEVkQlFVY3NTMEZCU3l4RlFVTnlRaXhQUVVGUExFZEJRMUlzUjBGQlJ5eE5RVUZOTEVOQlFVTTdTVUZEV0N4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTNoRExFMUJRVTBzWTBGQll5eEhRVUZITEU5QlFVOHNRMEZCUXp0SlFVTXZRaXhOUVVGTkxHbENRVUZwUWl4SFFVRkhMRkZCUVZFc1NVRkJTU3hKUVVGSkxFbEJRVWtzWTBGQll5eEpRVUZKTEV0QlFVc3NRMEZCUXp0SlFVTjBSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYkVRc1RVRkJUU3hYUVVGWExFZEJRVWNzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNFUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRiRVFzVFVGQlRTeFpRVUZaTEVkQlFVY3NUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJRenRKUVVOMFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4aFFVRmhMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03U1VGRE4wUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEhRVUZITEZsQlFWa3NSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRemRFTEVOQlFVTTdRVUZGUkN4VFFVRlRMRk5CUVZNc1EwRkJReXhMUVVGak8wbEJReTlDTEVsQlFVa3NRMEZCUXl4TFFVRkxPMUZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU03U1VGRGRFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU4wUWl4UFFVRlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOd1JTeFBRVUZQTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNN1UwRkRha0lzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXp0VFFVTldMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xTkJRelZDTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVOeVFpeERRVUZETzBGQlJVUXNVMEZCVXl4blFrRkJaMElzUTBGQlF5eExRVUZqTzBsQlEzUkRMRWxCUVVrc1MwRkJTeXhMUVVGTExGTkJRVk03VVVGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTXhReXhKUVVGSkxFOUJRVThzUzBGQlN5eExRVUZMTEZOQlFWTTdVVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRenRKUVVVM1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMGxCUTI1RUxFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRPMUZCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU03U1VGRGFrVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU03VVVGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0SlFVTnVSU3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEN0Q1FVRXJRaXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEyeEZMRU5CUVVNN1FVRkZSQ3hUUVVGVExFMUJRVTBzUTBGQlF5eE5RVUZuUWp0SlFVTTVRaXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRemxDTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc01rSkJRVEpDTEVOQlEzcERMRlZCUVcxRExFVkJRVVVzUlVGRGNrTXNUVUZCVnl4RlFVRkZPMGxCV1dJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SFFVRkhMRVZCUVVVc1MwRkJTeXhGUVVGRkxGTkJRVk1zU1VGQlNTeEZRVUZGTEVOQlFVTTdTVUZEY2tRc1RVRkJUU3hMUVVGTExFZEJRMUlzVDBGQlR5eERRVUZETEV0QlFUUkNPMUZCUTNKRExHZENRVUZuUWl4RFFVRkRMRXRCUVVzN1VVRkRkRUlzY1VKQlFYRkNMRU5CUVVNN1NVRkRlRUlzVFVGQlRTeFRRVUZUTEVkQlExb3NUMEZCVHl4RFFVRkRMRVZCUVhsQ08xRkJRMnhETEdkQ1FVRm5RaXhEUVVGRExGTkJRVk03VVVGRE1VSXNSMEZCUnl4RlFVRkZMRTlCUVU4N1VVRkRXaXhQUVVGUExFTkJRVU03U1VGRFZpeE5RVUZOTEZkQlFWY3NSMEZCUnl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRiRVVzVFVGQlRTeGxRVUZsTEVkQlFVY3NVMEZCVXl4RFFVTXZRaXhuUWtGQlowSXNRMEZCUXl4UFFVRlBMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RFFVTjBSQ3hEUVVGRE8wbEJRMFlzVFVGQlRTeFJRVUZSTEVkQlFVY3NWMEZCVnl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMGxCUTNoR0xFMUJRVTBzVlVGQlZTeEhRVU5pTEU5QlFVOHNRMEZCUXl4VlFVRnBReXhKUVVGSkxHZENRVUZuUWl4RFFVRkRMRlZCUVZVc1EwRkJRenRKUVVNMVJTeE5RVUZOTEZWQlFWVXNSMEZCUnl4VFFVRlRMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dEpRVVV2UlN4UFFVRlBPMUZCUTB3c1MwRkJTenRSUVVOTUxFMUJRVTBzUlVGQlJUdFpRVU5PTEZOQlFWTTdXVUZEVkN4UlFVRlJMRVZCUVVVc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkRla1VzVFVGQlRTeEZRVUZGTEdkQ1FVRm5RaXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyNUZMRkZCUVZFN1dVRkRVaXhWUVVGVk8xbEJRMVlzVlVGQlZUdFRRVU5ZTzB0QlEwWXNRMEZCUXp0QlFVTktMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzZDBKQlFYZENMRU5CUTNSRExGVkJRV3RDTEVWQlEyeENMRkZCUVhWRE8wbEJSWFpETEUxQlFVMHNVVUZCVVN4SFFVRjNRaXhGUVVGRkxFTkJRVU03U1VGRGVrTXNTMEZCU3l4TlFVRk5MRTlCUVU4c1NVRkJTU3hSUVVGUkxFVkJRVVVzUTBGQlF6dFJRVU12UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETzFGQlF6VkNMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWRCUVVjc1MwRkJTeXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRPMUZCUTJwRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnp0WlFVTm9RaXdyUlVGQkswVTdXVUZETDBVc2JVSkJRVzFDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRkZCUVdNc1JVRkJSU3hIUVVGSExFdEJRVmtzUlVGQlJTeEZRVUZGTzJkQ1FVTTNSQ3hKUVVGSkxFTkJRVU03YjBKQlEwZ3NTVUZCU1N4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdkMEpCUTNoQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPM2RDUVVOb1JDeFBRVUZQTEVOQlFVTXNTVUZCU1N4VFFVRlRMRU5CUVVNN2IwSkJRM2hDTEVOQlFVTTdaMEpCUTBnc1EwRkJRenRuUWtGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUTFBc01FSkJRVEJDTzJkQ1FVTTFRaXhEUVVGRE8yZENRVU5FTEU5QlFVOHNVMEZCVXl4RFFVRkRPMWxCUTI1Q0xFTkJRVU03V1VGRFJDeHBRa0ZCYVVJc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlpTeEZRVUZGTEZGQlFXTXNSVUZCUlN4SFFVRkhMRXRCUVZrc1JVRkJSU3hGUVVGRk8yZENRVU0xUlN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU01UXl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRNME1zUTBGQlF6dFRRVU5HTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUTBRc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGJFSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1kwRkJZeXhIUVVGSExFbEJRVWtzVDBGQlR5eEZRVUZGTzB0QlEycERMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU03UzBGRFppeFhRVUZYTEVOQlExWXNkMFZCUVhkRkxFTkJRM3BGTzB0QlEwRXNUVUZCVFN4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEhGRFFVRnhReXhEUVVGRE8wdEJRMnBGTEUxQlFVMHNRMEZCUXl4bFFVRmxMRVZCUVVVc01FSkJRVEJDTEVOQlFVTTdTMEZEYmtRc1RVRkJUU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRzlEUVVGdlF5eERRVUZETzB0QlEyeEZMRTFCUVUwc1EwRkRUQ3h2UWtGQmIwSXNSVUZEY0VJc2VVVkJRWGxGTEVOQlF6RkZPMHRCUTBFc1RVRkJUU3hEUVVOTUxIVkNRVUYxUWl4RlFVTjJRaXh6UlVGQmMwVXNRMEZEZGtVN1MwRkRRU3hOUVVGTkxFTkJRMHdzY1VKQlFYRkNMRVZCUTNKQ0xEaEZRVUU0UlN4RFFVTXZSVHRMUVVOQkxFMUJRVTBzUTBGRFRDeDNRa0ZCZDBJc1JVRkRlRUlzZFVaQlFYVkdPMGxCUTNKR0xESkdRVUV5Ump0SlFVTXpSaXc0UkVGQk9FUXNRMEZEYWtVN1MwRkRRU3hOUVVGTkxFTkJRMHdzYzBKQlFYTkNMRVZCUTNSQ0xIbEdRVUY1Ump0SlFVTjJSaXcyUlVGQk5rVTdTVUZETjBVc09FUkJRVGhFTEVOQlEycEZPMHRCUTBFc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZaTEVWQlFVVXNSVUZCUlR0SlFVTTNRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVTndRaXhGUVVGRkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEdOQlFXTXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVOdVJTeERRVUZETzBsQlEwWXNUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTnNReXhOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMREpDUVVFeVFpeERRVUZETEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOd1JTeEpRVUZKTEVkQlFXbERMRU5CUVVNN1NVRkRkRU1zU1VGQlNTeERRVUZETzFGQlEwZ3NSMEZCUnl4SFFVRkhMRTFCUVUwc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGRE5VSXNUVUZCVFN4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZET1VRc1JVRkJSU3hOUVVGTkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlEyeENMRU5CUVVNN1VVRkRSaXhOUVVGTkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTnFRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUlhaQ0xFMUJRVTBzUzBGQlN5eEhRVUZKTEU5QlFXVXNRMEZCUXl4UlFVRlJMRU5CUVdkRUxFTkJRVU03VVVGRGVFWXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRVlVzUTBGQlF6dFJRVU12UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEycEVMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMmRDUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFsQlEzQkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTJ4Q0xFOUJRVThzU1VGQlNTeERRVUZETzFGQlEyUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hKUVVGSkxGZEJRV2RDTEVOQlFVTTdVVUZEY2tJc1NVRkJTU3hOUVVGTkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZEY0VJc1NVRkJTU3hEUVVGRE8yZENRVU5JTEZkQlFWY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFsQlEzWkRMRU5CUVVNN1dVRkJReXhOUVVGTkxFTkJRVU03WjBKQlExQXNhVUpCUVdsQ08xbEJRMjVDTEVOQlFVTTdXVUZEUkN4SlFVRkpMRU5CUVVNc1YwRkJWenRuUWtGRFpDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh4UmtGQmNVWXNRMEZEZEVZc1EwRkJRenRSUVVOT0xFTkJRVU03VVVGRlJDdzRSVUZCT0VVN1VVRkRPVVVzTUVWQlFUQkZPMUZCUXpGRkxFMUJRVTBzWjBKQlFXZENMRWRCUTI1Q0xGZEJRVzFDTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTE8xbEJRek5ETEZkQlFXMUNMRVZCUVVVc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVOQlFVTTdVVUZEYWtRc1RVRkJUU3hsUVVGbExFZEJRVWNzWjBKQlFXZENPMWxCUTNSRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4TFFVRkxMR2RDUVVGblFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4UFFVRlBMRXRCUVVzc1owSkJRV2RDTEVOQlFVTTdXVUZEZUVZc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF6dFJRVVZpTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhWUVVGVk8xbEJRMmhETEVOQlFVTXNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RlFVRkZMR1ZCUVdVc1EwRkJRenRaUVVNNVJDeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUldRc1NVRkJTU3hOUVVGTkxFTkJRVU1zVlVGQlZUdFpRVU51UWl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN08xbEJSV3BGTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2RVVkJRWFZGTEUxQlFVMHNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWFJITEVsQlFVa3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTk8xbEJRekZDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVVjJSU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEdkQ1FVRm5RaXhEUVVGRExHVkJRV1VzUTBGRGRrUXNaVUZCWlN4RlFVTm1PMWxCUTBVc1UwRkJVeXhGUVVGRkxFMUJRVTBzUTBGQlF5eFRRVUZUTzFsQlF6TkNMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zVVVGQlVUdFpRVU42UWl4TlFVRk5MRVZCUVVVc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRGNrSXNVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXp0WlFVTnNSU3hYUVVGWE8xbEJRMWdzVVVGQlVUdFpRVU5TTEZWQlFWVXNSVUZCUlN4SlFVRkpMSGxDUVVGNVFpeEZRVUZGTzFsQlF6TkRMRlZCUVZVc1JVRkRVaXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNN1UwRkRMMFFzUTBGRFJpeERRVUZETzFGQlJVWXNTMEZCU3l4TlFVRk5MR2RDUVVGblFpeEpRVUZKTEZWQlFWVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJRenRaUVVOb1JDeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEycERMRU5CUVVNN1VVRkZSQ3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVU5PTEhOQ1FVRnpRaXhQUVVGUExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExGVkJRVlVzVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4SFFVRkhMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVTXZSaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1VVRkRjRUlzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4RFFVRlZMRU5CUVVNc1EwRkJRenRKUVVOMFF5eERRVUZETzFsQlFWTXNRMEZCUXp0UlFVTlVMRWxCUVVrc1IwRkJSenRaUVVGRkxFMUJRVTBzUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMGxCUXpkQ0xFTkJRVU03UVVGRFNDeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVVk1MRTlCUVU4c1JVRkJSU3hqUVVGakxFVkJRVVVzUTBGQlF6dEJRVVV4UWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NUMEZCVHl4RlFVRkZPMHRCUTI1RExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdTMEZEYkVJc1YwRkJWeXhEUVVOV0xESkdRVUV5Uml4RFFVTTFSanRMUVVOQkxFMUJRVTBzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3h4UTBGQmNVTXNRMEZCUXp0TFFVTnFSU3hOUVVGTkxFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc05FTkJRVFJETEVWQlFVVXNTVUZCU1N4RFFVRkRPMHRCUXk5RkxFMUJRVTBzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3h6UTBGQmMwTXNSVUZCUlN4VFFVRlRMRU5CUVVNN1MwRkRhRVlzVFVGQlRTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxIZENRVUYzUWl4RlFVRkZMRmRCUVZjc1EwRkJRenRMUVVOcVJTeE5RVUZOTEVOQlFVTXNkMEpCUVhkQ0xFVkJRVVVzT0VKQlFUaENMRVZCUVVVc2MwTkJRWE5ETEVOQlFVTTdTMEZEZUVjc1RVRkJUU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMREJDUVVFd1FpeERRVUZETzB0QlEzaEVMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzVDBGQldTeEZRVUZGTEVWQlFVVTdTVUZETjBJc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRKUVVOeVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4blFrRkJaMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1NVRkRPVU1zU1VGQlNTeEhRVUZwUXl4RFFVRkRPMGxCUTNSRExFbEJRVWtzUTBGQlF6dFJRVU5JTEVkQlFVY3NSMEZCUnl4TlFVRk5MRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRelZDTEUxQlFVMHNaVUZCWlN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlF6bEVMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVU5zUWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEYWtJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVVZ5UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxHVkJRV1VzUlVGQlJUdGhRVU5xUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dGhRVU4yUWl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF6dGhRVU51UXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTTdZVUZEZEVNc1lVRkJZU3hGUVVGRk8yRkJRMllzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZGV0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhoUVVGaExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVVelJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6ZERMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VVc1JVRkJSU3hEUVVGRExHRkJRV0VzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJSWHBGTEUxQlFVMHNVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE0wUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRTlCUVU4c1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETTBVc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1ZVRkJWU3hMUVVGTExGTkJRVk1zVjBGQlZ5eFhRVUZYTEZkQlFWY3NRMEZCUXl4RFFVRkRPMGxCUTJwSExFTkJRVU03U1VGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMUZCUTNCQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNRMEZCVlN4RFFVRkRMRU5CUVVNN1NVRkRkRU1zUTBGQlF6dFpRVUZUTEVOQlFVTTdVVUZEVkN4SlFVRkpMRWRCUVVjN1dVRkJSU3hOUVVGTkxFZEJRVWNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGVEN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdExRVU14UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wdEJRMW9zVjBGQlZ5eERRVUZETERoRVFVRTRSQ3hEUVVGRExFTkJRVU03UVVGRkwwVXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dEJRVU51UXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1FVRkZja01zVFVGQlRTeERRVUZETEU5QlFVOHNWVUZCVlN4SlFVRkpPMGxCUXpGQ0xFOUJRVThzVDBGQlR5eERRVUZETzBGQlEycENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5Qk1iMmRuYVc1bklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OXNiMmRuYVc1blhDSTdYRzVjYm1OdmJuTjBJR3h2WjJkbGNpQTlJRXh2WjJkcGJtY3VabTl5S0Z3aVptOXlMVzVsYzNSY0lpazdYRzVjYm1sdGNHOXlkQ0I3SUVOdmJXMWhibVFnZlNCbWNtOXRJRndpWTI5dGJXRnVaR1Z5WENJN1hHNXBiWEJ2Y25RZ1puTWdabkp2YlNCY0ltWnpYQ0k3WEc1cGJYQnZjblFnY0dGMGFDQm1jbTl0SUZ3aWNHRjBhRndpTzF4dWFXMXdiM0owSUhzZ1FXUmhjSFJsY2l3Z2JtOXliV0ZzYVhwbFNXMXdiM0owTENCVFpYSjJhV05sTENCVVlYTnJUVzlrWld3Z2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lGTmxiWFpsY2sxcFozSmhkR2x2YmxabGNuTnBiMjVwYm1jZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVV2YldsbmNtRjBhVzl1Y3k5VFpXMTJaWEpOYVdkeVlYUnBiMjVXWlhKemFXOXVhVzVuWENJN1hHNXBiWEJ2Y25RZ2V5Qk5hV2R5WVhScGIyNVRaWEoyYVdObElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psTDIxcFozSmhkR2x2Ym5OY0lqdGNibWx0Y0c5eWRDQjdJRWx1ZEdWeWJtRnNSWEp5YjNJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmlMV1JsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFNWxjM1JHWVdOMGIzSjVJSDBnWm5KdmJTQmNJa0J1WlhOMGFuTXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dTVTVsYzNSQmNIQnNhV05oZEdsdmJpQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dSRzlqZFcxbGJuUkNkV2xzWkdWeUxDQlRkMkZuWjJWeVRXOWtkV3hsSUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12YzNkaFoyZGxjbHdpTzF4dVhHNWpiMjV6ZENCa1pXWmhkV3gwU1c1d2RYUkRZVzVrYVdSaGRHVnpJRDBnVzF4dUlDQmNJaTR2YkdsaUwyRndjQzV0YjJSMWJHVXVZMnB6WENJc1hHNGdJRndpTGk5c2FXSXZZWEJ3TG0xdlpIVnNaUzVxYzF3aUxGeHVJQ0JjSWk0dmMzSmpMMkZ3Y0M1dGIyUjFiR1V1ZEhOY0lpeGNibDA3WEc1Y2JtWjFibU4wYVc5dUlHUmxabUYxYkhSRFlXNWthV1JoZEdWRmVHbHpkSE1vWTJGdVpHbGtZWFJsT2lCemRISnBibWNwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdjbVYwZFhKdUlHWnpMbVY0YVhOMGMxTjVibU1vY0dGMGFDNXFiMmx1S0hCeWIyTmxjM011WTNka0tDa3NJR05oYm1ScFpHRjBaU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbVZ6YjJ4MlpVbHVjSFYwVUdGMGFDaGNiaUFnYVc1d2RYUS9PaUJ6ZEhKcGJtY3NYRzRnSUdWNGFYTjBjem9nS0dOaGJtUnBaR0YwWlRvZ2MzUnlhVzVuS1NBOVBpQmliMjlzWldGdUlEMGdaR1ZtWVhWc2RFTmhibVJwWkdGMFpVVjRhWE4wY3l4Y2JpQWdZMkZ1Wkdsa1lYUmxjeUE5SUdSbFptRjFiSFJKYm5CMWRFTmhibVJwWkdGMFpYTmNiaWs2SUhOMGNtbHVaeUI3WEc0Z0lHbG1JQ2hwYm5CMWRDa2djbVYwZFhKdUlHbHVjSFYwTzF4dUlDQmpiMjV6ZENCbWIzVnVaQ0E5SUdOaGJtUnBaR0YwWlhNdVptbHVaQ2dvWTJGdVpHbGtZWFJsS1NBOVBpQmxlR2x6ZEhNb1kyRnVaR2xrWVhSbEtTazdYRzRnSUhKbGRIVnliaUJtYjNWdVpDQjhmQ0JjSWk0dmMzSmpMMkZ3Y0M1dGIyUjFiR1V1ZEhOY0lqdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdKMWFXeGtUM1YwY0hWMFJtbHNaVkJoZEdnb2NHRnlZVzF6T2lCN1hHNGdJRzkxZEhCMWRFUnBjam9nYzNSeWFXNW5PMXh1SUNCd2EyZE9ZVzFsUHpvZ2MzUnlhVzVuTzF4dUlDQnVZVzFsUHpvZ2MzUnlhVzVuTzF4dUlDQm1hV3hsVG1GdFpUODZJSE4wY21sdVp6dGNiaUFnWVhCd1pXNWtWbVZ5YzJsdmJqODZJR0p2YjJ4bFlXNDdYRzRnSUhabGNuTnBiMjQvT2lCemRISnBibWM3WEc1OUtUb2djM1J5YVc1bklIdGNiaUFnWTI5dWMzUWdlMXh1SUNBZ0lHOTFkSEIxZEVScGNpeGNiaUFnSUNCd2EyZE9ZVzFsTEZ4dUlDQWdJRzVoYldVc1hHNGdJQ0FnWm1sc1pVNWhiV1VzWEc0Z0lDQWdZWEJ3Wlc1a1ZtVnljMmx2YmlBOUlHWmhiSE5sTEZ4dUlDQWdJSFpsY25OcGIyNHNYRzRnSUgwZ1BTQndZWEpoYlhNN1hHNGdJR052Ym5OMElHSmhjMlZFYVhJZ1BTQndZWFJvTG5KbGMyOXNkbVVvYjNWMGNIVjBSR2x5S1R0Y2JpQWdZMjl1YzNRZ1pHVm1ZWFZzZEZCclowNWhiV1VnUFNCd2EyZE9ZVzFsTzF4dUlDQmpiMjV6ZENCeVpYTnZiSFpsWkZKaGQxTnZkWEpqWlNBOUlHWnBiR1ZPWVcxbElIeDhJRzVoYldVZ2ZId2daR1ZtWVhWc2RGQnJaMDVoYldVZ2ZId2dYQ0poY0dsY0lqdGNiaUFnWTI5dWMzUWdZbUZ6WlU1aGJXVWdQU0J3WVhSb0xtSmhjMlZ1WVcxbEtISmxjMjlzZG1Wa1VtRjNVMjkxY21ObEtUdGNiaUFnWTI5dWMzUWdjbVZ6YjJ4MlpXUlNZWGNnUFNCaVlYTmxUbUZ0WlM1eVpYQnNZV05sS0M5YlhGeGNYQzlkTDJjc0lGd2lYMXdpS1R0Y2JpQWdZMjl1YzNRZ2RISnBiVzFsWkNBOUlISmxjMjlzZG1Wa1VtRjNMbkpsY0d4aFkyVW9MMTViTGw5ZEt5OHNJRndpWENJcE8xeHVJQ0JqYjI1emRDQnlaWE52YkhabFpFNWhiV1VnUFNCMGNtbHRiV1ZrSUh4OElGd2lZWEJwWENJN1hHNGdJR052Ym5OMElITjFabVpwZUNBOUlHRndjR1Z1WkZabGNuTnBiMjRnSmlZZ2RtVnljMmx2YmlBL0lHQXRKSHQyWlhKemFXOXVmV0FnT2lCY0lsd2lPMXh1SUNCeVpYUjFjbTRnY0dGMGFDNXFiMmx1S0dKaGMyVkVhWElzSUdBa2UzSmxjMjlzZG1Wa1RtRnRaWDBrZTNOMVptWnBlSDB1YW5OdmJtQXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQndZWEp6WlV4cGMzUW9kbUZzZFdVNklIVnVhMjV2ZDI0cE9pQnpkSEpwYm1kYlhTQjdYRzRnSUdsbUlDZ2hkbUZzZFdVcElISmxkSFZ5YmlCYlhUdGNiaUFnYVdZZ0tFRnljbUY1TG1selFYSnlZWGtvZG1Gc2RXVXBLVnh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaUzVtYkdGMFRXRndLQ2hsYm5SeWVTa2dQVDRnY0dGeWMyVk1hWE4wS0dWdWRISjVLU2t1Wm1sc2RHVnlLRUp2YjJ4bFlXNHBPMXh1SUNCeVpYUjFjbTRnVTNSeWFXNW5LSFpoYkhWbEtWeHVJQ0FnSUM1emNHeHBkQ2hjSWl4Y0lpbGNiaUFnSUNBdWJXRndLQ2hsYm5SeWVTa2dQVDRnWlc1MGNua3VkSEpwYlNncEtWeHVJQ0FnSUM1bWFXeDBaWElvUW05dmJHVmhiaWs3WEc1OVhHNWNibVoxYm1OMGFXOXVJSEJoY25ObFFtOXZiR1ZoYmtac1lXY29kbUZzZFdVNklIVnVhMjV2ZDI0cE9pQmliMjlzWldGdUlId2dkVzVrWldacGJtVmtJSHRjYmlBZ2FXWWdLSFpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJRndpWW05dmJHVmhibHdpS1NCeVpYUjFjbTRnZG1Gc2RXVTdYRzVjYmlBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkNBOUlHQWtlM1poYkhWbGZXQXVkSEpwYlNncExuUnZURzkzWlhKRFlYTmxLQ2s3WEc0Z0lHbG1JQ2hiWENJeFhDSXNJRndpZEhKMVpWd2lMQ0JjSW5sbGMxd2lMQ0JjSW05dVhDSmRMbWx1WTJ4MVpHVnpLRzV2Y20xaGJHbDZaV1FwS1NCeVpYUjFjbTRnZEhKMVpUdGNiaUFnYVdZZ0tGdGNJakJjSWl3Z1hDSm1ZV3h6WlZ3aUxDQmNJbTV2WENJc0lGd2liMlptWENKZExtbHVZMngxWkdWektHNXZjbTFoYkdsNlpXUXBLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQkpiblpoYkdsa0lHSnZiMnhsWVc0Z1pteGhaeUIyWVd4MVpUb2dKSHQyWVd4MVpYMWdLVHRjYm4xY2JseHVablZ1WTNScGIyNGdkVzVwY1hWbEtIWmhiSFZsY3pvZ2MzUnlhVzVuVzEwcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUhKbGRIVnliaUJiTGk0dWJtVjNJRk5sZENoMllXeDFaWE1wWFR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpsYzI5c2RtVk5hV2R5WVhSbFEyOXRiV0Z1WkVOdmJtWnBaeWhjYmlBZ2IzQjBhVzl1Y3pvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRnUFNCN2ZTeGNiaUFnY0d0bk9pQmhibmtnUFNCN2ZWeHVLVG9nZTF4dUlDQnBibkIxZERvZ2MzUnlhVzVuTzF4dUlDQmpiMjVtYVdjNklIdGNiaUFnSUNCMGIxWmxjbk5wYjI0NklITjBjbWx1Wnp0Y2JpQWdJQ0IwWVhOclRXOWtaVG9nWW05dmJHVmhiaUI4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JrY25sU2RXNDZJR0p2YjJ4bFlXNGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdabXhoZG05MWNuTTZJSE4wY21sdVoxdGRPMXh1SUNBZ0lIWmxjbk5wYjI1RWFYSTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnlaV1psY21WdVkyVnpPaUJ6ZEhKcGJtZGJYVHRjYmlBZ2ZUdGNibjBnZTF4dUlDQmpiMjV6ZENCd1lXTnJZV2RsVFdsbmNtRjBhVzl1SUQwZ2NHdG5QeTVrWldOaFpqOHViV2xuY21GMGFXOXVJRDgvSUh0OU8xeHVJQ0JqYjI1emRDQnBibkIxZENBOVhHNGdJQ0FnS0c5d2RHbHZibk11YVc1d2RYUWdZWE1nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrS1NCOGZGeHVJQ0FnSUhCaFkydGhaMlZOYVdkeVlYUnBiMjR1YVc1d2RYUWdmSHhjYmlBZ0lDQmNJaTR2YzNKakwyRndjQzV0YjJSMWJHVXVkSE5jSWp0Y2JpQWdZMjl1YzNRZ2RHOVdaWEp6YVc5dUlEMWNiaUFnSUNBb2IzQjBhVzl1Y3k1MGJ5QmhjeUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FwSUh4OFhHNGdJQ0FnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTUwYjFabGNuTnBiMjRnZkh4Y2JpQWdJQ0J3YTJjL0xuWmxjbk5wYjI0Z2ZIeGNiaUFnSUNCY0lqQXVNQzR3WENJN1hHNGdJR052Ym5OMElHTnNhVVpzWVhadmRYSnpJRDBnY0dGeWMyVk1hWE4wS0c5d2RHbHZibk11Wm14aGRtOTFjaUEvUHlCdmNIUnBiMjV6TG1Ga1lYQjBaWElwTzF4dUlDQmpiMjV6ZENCd1lXTnJZV2RsUm14aGRtOTFjbk1nUFNCd1lYSnpaVXhwYzNRb1hHNGdJQ0FnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTVtYkdGMmIzVnlJRDgvSUhCaFkydGhaMlZOYVdkeVlYUnBiMjR1Wm14aGRtOTFjbk5jYmlBZ0tUdGNiaUFnWTI5dWMzUWdabXhoZG05MWNuTWdQU0JqYkdsR2JHRjJiM1Z5Y3k1c1pXNW5kR2dnUGlBd0lEOGdkVzVwY1hWbEtHTnNhVVpzWVhadmRYSnpLU0E2SUhWdWFYRjFaU2h3WVdOcllXZGxSbXhoZG05MWNuTXBPMXh1SUNCamIyNXpkQ0IyWlhKemFXOXVSR2x5SUQxY2JpQWdJQ0FvYjNCMGFXOXVjeTUyWlhKemFXOXVSR2x5SUdGeklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDa2dmSHdnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTUyWlhKemFXOXVSR2x5TzF4dUlDQmpiMjV6ZENCeVpXWmxjbVZ1WTJWeklEMGdjR0Z5YzJWTWFYTjBLRzl3ZEdsdmJuTXVjbVZtWlhKbGJtTmxJRDgvSUhCaFkydGhaMlZOYVdkeVlYUnBiMjR1Y21WbVpYSmxibU5sY3lrN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQnBibkIxZEN4Y2JpQWdJQ0JqYjI1bWFXYzZJSHRjYmlBZ0lDQWdJSFJ2Vm1WeWMybHZiaXhjYmlBZ0lDQWdJSFJoYzJ0TmIyUmxPaUJ3WVhKelpVSnZiMnhsWVc1R2JHRm5LRzl3ZEdsdmJuTXVkR0Z6YTAxdlpHVWdQejhnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTUwWVhOclRXOWtaU2tzWEc0Z0lDQWdJQ0JrY25sU2RXNDZJSEJoY25ObFFtOXZiR1ZoYmtac1lXY29iM0IwYVc5dWN5NWtjbmxTZFc0Z1B6OGdjR0ZqYTJGblpVMXBaM0poZEdsdmJpNWtjbmxTZFc0cExGeHVJQ0FnSUNBZ1pteGhkbTkxY25Nc1hHNGdJQ0FnSUNCMlpYSnphVzl1UkdseUxGeHVJQ0FnSUNBZ2NtVm1aWEpsYm1ObGN5eGNiaUFnSUNCOUxGeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZblZwYkdSR2FXeGxWbVZ5YzJsdmJraGhibVJzWlhKektGeHVJQ0IyWlhKemFXOXVSR2x5T2lCemRISnBibWNzWEc0Z0lHRmtZWEIwWlhKek9pQkJaR0Z3ZEdWeVBHRnVlU3dnWVc1NUxDQmhibmtzSUdGdWVUNWJYVnh1S1RvZ1VHRnlkR2xoYkR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUdOdmJuTjBJR2hoYm1Sc1pYSnpPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUQwZ2UzMDdYRzRnSUdadmNpQW9ZMjl1YzNRZ1lXUmhjSFJsY2lCdlppQmhaR0Z3ZEdWeWN5a2dlMXh1SUNBZ0lHTnZibk4wSUdGc2FXRnpJRDBnWVdSaGNIUmxjaTVoYkdsaGN6dGNiaUFnSUNCamIyNXpkQ0JtYVd4bElEMGdjR0YwYUM1cWIybHVLSFpsY25OcGIyNUVhWElzSUdBa2UyRnNhV0Z6ZlM1dGFXZHlZWFJwYjI0dWRtVnljMmx2Ym1BcE8xeHVJQ0FnSUdoaGJtUnNaWEp6VzJGc2FXRnpYU0E5SUh0Y2JpQWdJQ0FnSUM4dklHRmtZWEIwWlhJZ1lXNWtJR04wZUVGeVozTWdZWEpsSUdGMllXbHNZV0pzWlNCaWRYUWdibTkwSUc1bFpXUmxaQ0RpZ0pRZ2RtVnljMmx2YmlCc2FYWmxjeUJwYmlCMGFHVWdabWxzWlZ4dUlDQWdJQ0FnY21WMGNtbGxkbVZNWVhOMFZtVnljMmx2YmpvZ1lYTjVibU1nS0Y5aFpHRndkR1Z5UHpvZ1lXNTVMQ0F1TGk1ZllYSm5jem9nWVc1NVcxMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9abk11WlhocGMzUnpVM2x1WXlobWFXeGxLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RpQTlJR1p6TG5KbFlXUkdhV3hsVTNsdVl5aG1hV3hsTENCY0luVjBaaTA0WENJcExuUnlhVzBvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjJJSHg4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklHNXZJR1pwYkdVZ2VXVjBJT0tHa2lCbWFYSnpkQ0J5ZFc1Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lITmxkRU4xY25KbGJuUldaWEp6YVc5dU9pQmhjM2x1WXlBb2RtVnljMmx2YmpvZ2MzUnlhVzVuTENCZllXUmhjSFJsY2o4NklHRnVlU3dnTGk0dVgyRnlaM002SUdGdWVWdGRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHWnpMbTFyWkdseVUzbHVZeWgyWlhKemFXOXVSR2x5TENCN0lISmxZM1Z5YzJsMlpUb2dkSEoxWlNCOUtUdGNiaUFnSUNBZ0lDQWdabk11ZDNKcGRHVkdhV3hsVTNsdVl5aG1hV3hsTENCMlpYSnphVzl1TENCY0luVjBaaTA0WENJcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNCOU8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCb1lXNWtiR1Z5Y3p0Y2JuMWNibHh1WTI5dWMzUWdiV2xuY21GMFpVTnZiVzFoYm1RZ1BTQnVaWGNnUTI5dGJXRnVaQ2dwWEc0Z0lDNXVZVzFsS0Z3aWJXbG5jbUYwWlZ3aUtWeHVJQ0F1WkdWelkzSnBjSFJwYjI0b1hHNGdJQ0FnWENKaWIyOTBjeUIwYUdVZ1lYQndJR052Ym5SbGVIUWdhR1ZoWkd4bGMzTnNlU3dnWlhobFkzVjBaWE1nWkdWallXWWdiV2xuY21GMGFXOXVjeXdnWVc1a0lHVjRhWFJ6WENKY2JpQWdLVnh1SUNBdWIzQjBhVzl1S0Z3aUxTMXBibkIxZENBOFUzUnlhVzVuUGx3aUxDQmNJbkJoZEdnZ2RHOGdZWEJ3SUcxdlpIVnNaU0FvZEhNZ2IzSWdZMjl0Y0dsc1pXUXBYQ0lwWEc0Z0lDNXZjSFJwYjI0b1hDSXRMWFJ2SUR4VGRISnBibWMrWENJc0lGd2lkR0Z5WjJWMElHMXBaM0poZEdsdmJpQjJaWEp6YVc5dVhDSXBYRzRnSUM1dmNIUnBiMjRvWENJdExXWnNZWFp2ZFhJZ1BGTjBjbWx1Wno1Y0lpd2dYQ0owWVhKblpYUWdabXhoZG05MWNpaHpLU3dnWTI5dGJXRXRjMlZ3WVhKaGRHVmtYQ0lwWEc0Z0lDNXZjSFJwYjI0b1hHNGdJQ0FnWENJdExXRmtZWEIwWlhJZ1BGTjBjbWx1Wno1Y0lpeGNiaUFnSUNCY0ltRmtZWEIwWlhJZ1pteGhkbTkxY2lCaGJHbGhjeWhsY3lrc0lHTnZiVzFoTFhObGNHRnlZWFJsWkNBb2MyRnRaU0JpWldoaGRtbHZjaUJoY3lBdExXWnNZWFp2ZFhJcFhDSmNiaUFnS1Z4dUlDQXViM0IwYVc5dUtGeHVJQ0FnSUZ3aUxTMTBZWE5yTFcxdlpHVWdXMEp2YjJ4bFlXNWRYQ0lzWEc0Z0lDQWdYQ0p5ZFc1eklHMXBaM0poZEdsdmJpQjJhV0VnZEdGemF5QnRiMlJsSUNoMGNuVmxMMlpoYkhObEtTNGdZV05qWlhCMGN5QmlZWEpsSUdac1lXY2dZWE1nZEhKMVpWd2lYRzRnSUNsY2JpQWdMbTl3ZEdsdmJpaGNiaUFnSUNCY0lpMHRaSEo1TFhKMWJpQmJRbTl2YkdWaGJsMWNJaXhjYmlBZ0lDQmNJbkoxYm5NZ2JXbG5jbUYwYVc5dWN5QjNhWFJvSUdSeWVTMXlkVzRnWTI5dWRHVjRkQ0FvZEhKMVpTOW1ZV3h6WlNrdUlHRmpZMlZ3ZEhNZ1ltRnlaU0JtYkdGbklHRnpJSFJ5ZFdWY0lseHVJQ0FwWEc0Z0lDNXZjSFJwYjI0b1hHNGdJQ0FnWENJdExYWmxjbk5wYjI0dFpHbHlJRHhUZEhKcGJtYytYQ0lzWEc0Z0lDQWdYQ0prYVhKbFkzUnZjbmtnZDJobGNtVWdjR1Z5TFdGa1lYQjBaWElnZG1WeWMybHZiaUJtYVd4bGN5QmhjbVVnY0dWeWMybHpkR1ZrSUNobExtY3VJR0VnUkc5amEyVnlJSFp2YkhWdFpTQndZWFJvS1M0Z1hDSWdLMXh1SUNBZ0lDQWdYQ0pGWVdOb0lHRmtZWEIwWlhJZ2QzSnBkR1Z6SUdsMGN5QnNZWE4wTFcxcFozSmhkR1ZrSUhabGNuTnBiMjRnZEc4Z1BIWmxjbk5wYjI1RWFYSStMenhoYkdsaGN6NHViV2xuY21GMGFXOXVMblpsY25OcGIyNHVJRndpSUN0Y2JpQWdJQ0FnSUZ3aVEyRnVJR0ZzYzI4Z1ltVWdjMlYwSUhacFlTQndZV05yWVdkbExtcHpiMjRnWkdWallXWXViV2xuY21GMGFXOXVMblpsY25OcGIyNUVhWEl1WENKY2JpQWdLVnh1SUNBdWIzQjBhVzl1S0Z4dUlDQWdJRndpTFMxeVpXWmxjbVZ1WTJVZ1BGTjBjbWx1Wno1Y0lpeGNiaUFnSUNCY0luSjFiaUJ2Ym14NUlIUm9aU0J1WVcxbFpDQnRhV2R5WVhScGIyNGdjbVZtWlhKbGJtTmxLSE1wTENCamIyMXRZUzF6WlhCaGNtRjBaV1FnS0dVdVp5NGdKM0J5YjJSMVkzUXRiV2xuY21GMGFXOXVKeWt1SUZ3aUlDdGNiaUFnSUNBZ0lGd2lRbmx3WVhOelpYTWdkbVZ5YzJsdmJpQnlZVzVuWlNCbWFXeDBaWEpwYm1jZzRvQ1VJSFZ6WlNCbWIzSWdlbVZ5Ynkxa1lYa2diM0lnYjI1bExXOW1aaUJ0YVdkeVlYUnBiMjV6TGlCY0lpQXJYRzRnSUNBZ0lDQmNJa05oYmlCaGJITnZJR0psSUhObGRDQjJhV0VnY0dGamEyRm5aUzVxYzI5dUlHUmxZMkZtTG0xcFozSmhkR2x2Ymk1eVpXWmxjbVZ1WTJWekxsd2lYRzRnSUNsY2JpQWdMbUZqZEdsdmJpaGhjM2x1WXlBb2IzQjBhVzl1Y3pvZ1lXNTVLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdjR3RuSUQwZ1NsTlBUaTV3WVhKelpTaGNiaUFnSUNBZ0lHWnpMbkpsWVdSR2FXeGxVM2x1WXlod1lYUm9MbXB2YVc0b2NISnZZMlZ6Y3k1amQyUW9LU3dnWENKd1lXTnJZV2RsTG1wemIyNWNJaWtzSUZ3aWRYUm1MVGhjSWlsY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUd4dloyZGxjaTVtYjNJb1hDSnRhV2R5WVhSbFhDSXBPMXh1SUNBZ0lHTnZibk4wSUhzZ2FXNXdkWFFzSUdOdmJtWnBaeUI5SUQwZ2NtVnpiMngyWlUxcFozSmhkR1ZEYjIxdFlXNWtRMjl1Wm1sbktHOXdkR2x2Ym5Nc0lIQnJaeWs3WEc0Z0lDQWdiR1YwSUdGd2NEb2dTVTVsYzNSQmNIQnNhV05oZEdsdmJpQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWVhCd0lEMGdZWGRoYVhRZ1RtVnpkRVpoWTNSdmNua3VZM0psWVhSbEtGeHVJQ0FnSUNBZ0lDQmhkMkZwZENCdWIzSnRZV3hwZW1WSmJYQnZjblFvYVcxd2IzSjBLSEJoZEdndWFtOXBiaWh3Y205alpYTnpMbU4zWkNncExDQnBibkIxZENrcEtTeGNiaUFnSUNBZ0lDQWdleUJzYjJkblpYSTZJR1poYkhObElIMWNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQmhkMkZwZENCaGNIQXVhVzVwZENncE8xeHVJQ0FnSUNBZ2JHOW5MbWx1Wm04b1lFRndjQ0JpYjI5MFpXUmdLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdZMkZqYUdVZ1BTQW9RV1JoY0hSbGNpQmhjeUJoYm5rcFcxd2lYMk5oWTJobFhDSmRJR0Z6SUZKbFkyOXlaRHh6ZEhKcGJtY3NJRUZrWVhCMFpYSThZVzU1TENCaGJua3NJR0Z1ZVN3Z1lXNTVQajQ3WEc0Z0lDQWdJQ0JqYjI1emRDQnpaV1Z1SUQwZ2JtVjNJRk5sZER4emRISnBibWMrS0NrN1hHNGdJQ0FnSUNCamIyNXpkQ0JoWkdGd2RHVnljeUE5SUU5aWFtVmpkQzUyWVd4MVpYTW9ZMkZqYUdVcExtWnBiSFJsY2lnb1lTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9jMlZsYmk1b1lYTW9ZUzVoYkdsaGN5a3BJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ2MyVmxiaTVoWkdRb1lTNWhiR2xoY3lrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUd4bGRDQjBZWE5yVTJWeWRtbGpaVG9nWVc1NU8xeHVJQ0FnSUNBZ2FXWWdLR052Ym1acFp5NTBZWE5yVFc5a1pTa2dlMXh1SUNBZ0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQWdJSFJoYzJ0VFpYSjJhV05sSUQwZ1UyVnlkbWxqWlM1blpYUW9WR0Z6YTAxdlpHVnNLVHRjYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0I3WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdibTkwSUhKbFoybHpkR1Z5WldSY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnBaaUFvSVhSaGMydFRaWEoyYVdObEtWeHVJQ0FnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnWUhSaGMyc3RiVzlrWlNCeVpYRjFaWE4wWldRZ1luVjBJRzV2SUZSaGMydFRaWEoyYVdObElHbHpJSEpsWjJsemRHVnlaV1FnS0dWNGNHVmpkR1ZrSUVCelpYSjJhV05sS0ZSaGMydE5iMlJsYkNrcFlGeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4dklFVjRZMngxWkdVZ2RHaGxJSFJoYzJzZ1pXNW5hVzVsSjNNZ1lXUmhjSFJsY2lCbWNtOXRJRzFwWjNKaGRHbHZiaUIwWVhKblpYUnpJT0tBbENCTmFXZHlZWFJwYjI1VFpYSjJhV05sWEc0Z0lDQWdJQ0F2THlCM2FXeHNJSFJvY205M0lHbG1JR2wwSUdGd2NHVmhjbk1nYVc0Z2RHaGxJR0ZrWVhCMFpYSWdiR2x6ZENCaGJHOXVaM05wWkdVZ1kyWm5MblJoYzJ0VFpYSjJhV05sTGx4dUlDQWdJQ0FnWTI5dWMzUWdkR0Z6YTBGa1lYQjBaWEpCYkdsaGN6b2djM1J5YVc1bklId2dkVzVrWldacGJtVmtJRDFjYmlBZ0lDQWdJQ0FnS0hSaGMydFRaWEoyYVdObElHRnpJR0Z1ZVNrL0xtTnNhV1Z1ZEQ4dVlXUmhjSFJsY2o4dVlXeHBZWE1nZkh4Y2JpQWdJQ0FnSUNBZ0tIUmhjMnRUWlhKMmFXTmxJR0Z6SUdGdWVTay9MbU5zYVdWdWREOHVZV1JoY0hSbGNqOHVabXhoZG05MWNqdGNiaUFnSUNBZ0lHTnZibk4wSUcxcFozSmhkR1ZCWkdGd2RHVnljeUE5SUhSaGMydEJaR0Z3ZEdWeVFXeHBZWE5jYmlBZ0lDQWdJQ0FnUHlCaFpHRndkR1Z5Y3k1bWFXeDBaWElvS0dFcElEMCtJR0V1WVd4cFlYTWdJVDA5SUhSaGMydEJaR0Z3ZEdWeVFXeHBZWE1nSmlZZ1lTNW1iR0YyYjNWeUlDRTlQU0IwWVhOclFXUmhjSFJsY2tGc2FXRnpLVnh1SUNBZ0lDQWdJQ0E2SUdGa1lYQjBaWEp6TzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0JvWVc1a2JHVnljeUE5SUdOdmJtWnBaeTUyWlhKemFXOXVSR2x5WEc0Z0lDQWdJQ0FnSUQ4Z1luVnBiR1JHYVd4bFZtVnljMmx2YmtoaGJtUnNaWEp6S0dOdmJtWnBaeTUyWlhKemFXOXVSR2x5TENCdGFXZHlZWFJsUVdSaGNIUmxjbk1wWEc0Z0lDQWdJQ0FnSURvZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ0lDQnBaaUFvWTI5dVptbG5MblpsY25OcGIyNUVhWElwWEc0Z0lDQWdJQ0FnSUd4dlp5NXBibVp2S0dCV1pYSnphVzl1SUhSeVlXTnJhVzVuT2lBa2UzQmhkR2d1Y21WemIyeDJaU2hqYjI1bWFXY3VkbVZ5YzJsdmJrUnBjaWw5WUNrN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJR3h2Wnk1M1lYSnVLR0JPYnlBdExYWmxjbk5wYjI0dFpHbHlJSE5sZENEaWdKUWdaWFpsY25rZ2NuVnVJSGRwYkd3Z2NtVXRZWEJ3YkhrZ1lXeHNJRzFwWjNKaGRHbHZibk1nZFhBZ2RHOGdKSHRqYjI1bWFXY3VkRzlXWlhKemFXOXVmV0FwTzF4dVhHNGdJQ0FnSUNCcFppQW9ZMjl1Wm1sbkxuSmxabVZ5Wlc1alpYTXViR1Z1WjNSb0tWeHVJQ0FnSUNBZ0lDQnNiMmN1YVc1bWJ5aGdVblZ1Ym1sdVp5QnZibXg1SUhKbFptVnlaVzVqWlhNNklDUjdZMjl1Wm1sbkxuSmxabVZ5Wlc1alpYTXVhbTlwYmloY0lpd2dYQ0lwZldBcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCdGFXZHlZWFJwYjI1eklEMGdZWGRoYVhRZ1RXbG5jbUYwYVc5dVUyVnlkbWxqWlM1dGFXZHlZWFJsUVdSaGNIUmxjbk1vWEc0Z0lDQWdJQ0FnSUcxcFozSmhkR1ZCWkdGd2RHVnljeXhjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lIUnZWbVZ5YzJsdmJqb2dZMjl1Wm1sbkxuUnZWbVZ5YzJsdmJpeGNiaUFnSUNBZ0lDQWdJQ0IwWVhOclRXOWtaVG9nWTI5dVptbG5MblJoYzJ0TmIyUmxMRnh1SUNBZ0lDQWdJQ0FnSUdSeWVWSjFiam9nWTI5dVptbG5MbVJ5ZVZKMWJpeGNiaUFnSUNBZ0lDQWdJQ0JtYkdGMmIzVnljem9nWTI5dVptbG5MbVpzWVhadmRYSnpMbXhsYm1kMGFDQStJREFnUHlCamIyNW1hV2N1Wm14aGRtOTFjbk1nT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lDQWdkR0Z6YTFObGNuWnBZMlVzWEc0Z0lDQWdJQ0FnSUNBZ2FHRnVaR3hsY25Nc1hHNGdJQ0FnSUNBZ0lDQWdkbVZ5YzJsdmJtbHVaem9nYm1WM0lGTmxiWFpsY2sxcFozSmhkR2x2YmxabGNuTnBiMjVwYm1jb0tTeGNiaUFnSUNBZ0lDQWdJQ0J5WldabGNtVnVZMlZ6T2x4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1Wm1sbkxuSmxabVZ5Wlc1alpYTXViR1Z1WjNSb0lENGdNQ0EvSUdOdmJtWnBaeTV5WldabGNtVnVZMlZ6SURvZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUcxcFozSmhkR2x2YmxObGNuWnBZMlVnYjJZZ2JXbG5jbUYwYVc5dWN5QjhmQ0JiWFNrZ2UxeHVJQ0FnSUNBZ0lDQmhkMkZwZENCdGFXZHlZWFJwYjI1VFpYSjJhV05sTG5SeVlXTnJLQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUd4dlp5NXBibVp2S0Z4dUlDQWdJQ0FnSUNCZ1RXbG5jbUYwYVc5dUlHTnZiWEJzWlhSbFpDUjdiM0IwYVc5dWN5NTBieUI4ZkNCd2EyY3VkbVZ5YzJsdmJpQS9JR0FnZFhBZ2RHOGdKSHR2Y0hScGIyNXpMblJ2SUh4OElIQnJaeTUyWlhKemFXOXVmV0FnT2lCY0lsd2lmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aU0JoY3lCRmNuSnZjaWs3WEc0Z0lDQWdmU0JtYVc1aGJHeDVJSHRjYmlBZ0lDQWdJR2xtSUNoaGNIQXBJR0YzWVdsMElHRndjQzVqYkc5elpTZ3BPMXh1SUNBZ0lIMWNiaUFnZlNrN1hHNWNibVY0Y0c5eWRDQjdJRzFwWjNKaGRHVkRiMjF0WVc1a0lIMDdYRzVjYm1OdmJuTjBJR1Y0Y0c5eWRFRndhVU52YlcxaGJtUWdQU0J1WlhjZ1EyOXRiV0Z1WkNncFhHNGdJQzV1WVcxbEtGd2laWGh3YjNKMExXRndhVndpS1Z4dUlDQXVaR1Z6WTNKcGNIUnBiMjRvWEc0Z0lDQWdYQ0ppYjI5MGN5QjBhR1VnWVhCd0lHTnZiblJsZUhRZ2FHVmhaR3hsYzNOc2VTd2daWGgwY21GamRITWdkR2hsSUU5d1pXNUJVRWtnYzNCbFl5d2dZVzVrSUhkeWFYUmxjeUJwZENCMGJ5QmhJRXBUVDA0Z1ptbHNaVndpWEc0Z0lDbGNiaUFnTG05d2RHbHZiaWhjSWkwdGFXNXdkWFFnUEZOMGNtbHVaejVjSWl3Z1hDSndZWFJvSUhSdklHRndjQ0J0YjJSMWJHVWdLSFJ6SUc5eUlHTnZiWEJwYkdWa0tWd2lLVnh1SUNBdWIzQjBhVzl1S0Z3aUxTMXZkWFJ3ZFhRZ1BGTjBjbWx1Wno1Y0lpd2dYQ0p2ZFhSd2RYUWdaR2x5WldOMGIzSjVJR1p2Y2lCMGFHVWdUM0JsYmtGUVNTQktVMDlPSUdacGJHVmNJaXdnWENJdUwxd2lLVnh1SUNBdWIzQjBhVzl1S0Z3aUxTMW1hV3hsVG1GdFpTQThVM1J5YVc1blBsd2lMQ0JjSW05MWRIQjFkQ0JtYVd4bElHNWhiV1VnS0hkcGRHaHZkWFFnWlhoMFpXNXphVzl1S1Z3aUxDQmNJbTl3Wlc1aGNHbGNJaWxjYmlBZ0xtOXdkR2x2YmloY0lpMHRkR2wwYkdVZ1BGTjBjbWx1Wno1Y0lpd2dYQ0pQY0dWdVFWQkpJR1J2WTNWdFpXNTBJSFJwZEd4bFhDSXNJRndpUkVWRFFVWWdRVkJKWENJcFhHNGdJQzV2Y0hScGIyNG9YQ0l0TFdSbGMyTnlhWEIwYVc5dUlEeFRkSEpwYm1jK1hDSXNJRndpVDNCbGJrRlFTU0JrYjJOMWJXVnVkQ0JrWlhOamNtbHdkR2x2Ymx3aUxDQmNJa0YxZEc4dFoyVnVaWEpoZEdWa0lFOXdaVzVCVUVrZ2MzQmxZMmxtYVdOaGRHbHZibHdpS1Z4dUlDQXViM0IwYVc5dUtGd2lMUzEyWlhKemFXOXVJRHhUZEhKcGJtYytYQ0lzSUZ3aVQzQmxia0ZRU1NCa2IyTjFiV1Z1ZENCMlpYSnphVzl1WENJcFhHNGdJQzVoWTNScGIyNG9ZWE41Ym1NZ0tHOXdkR2x2Ym5NNklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR3h2WnlBOUlHeHZaMmRsY2k1bWIzSW9YQ0psZUhCdmNuUXRZWEJwWENJcE8xeHVJQ0FnSUdOdmJuTjBJR2x1Y0hWMElEMGdjbVZ6YjJ4MlpVbHVjSFYwVUdGMGFDaHZjSFJwYjI1ekxtbHVjSFYwS1R0Y2JpQWdJQ0JzWlhRZ1lYQndPaUJKVG1WemRFRndjR3hwWTJGMGFXOXVJSHdnZFc1a1pXWnBibVZrTzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCaGNIQWdQU0JoZDJGcGRDQk9aWE4wUm1GamRHOXllUzVqY21WaGRHVW9YRzRnSUNBZ0lDQWdJR0YzWVdsMElHNXZjbTFoYkdsNlpVbHRjRzl5ZENocGJYQnZjblFvY0dGMGFDNXFiMmx1S0hCeWIyTmxjM011WTNka0tDa3NJR2x1Y0hWMEtTa3BMRnh1SUNBZ0lDQWdJQ0I3SUd4dloyZGxjam9nWm1Gc2MyVWdmVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR0YzWVdsMElHRndjQzVwYm1sMEtDazdYRzRnSUNBZ0lDQnNiMmN1YVc1bWJ5aGdRWEJ3SUdKdmIzUmxaQ0JtY205dElDUjdhVzV3ZFhSOVlDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHTnZibVpwWnlBOUlHNWxkeUJFYjJOMWJXVnVkRUoxYVd4a1pYSW9LVnh1SUNBZ0lDQWdJQ0F1YzJWMFZHbDBiR1VvYjNCMGFXOXVjeTUwYVhSc1pTbGNiaUFnSUNBZ0lDQWdMbk5sZEVSbGMyTnlhWEIwYVc5dUtHOXdkR2x2Ym5NdVpHVnpZM0pwY0hScGIyNHBYRzRnSUNBZ0lDQWdJQzV6WlhSV1pYSnphVzl1S0c5d2RHbHZibk11ZG1WeWMybHZiaUI4ZkNCY0lqRXVNQzR3WENJcFhHNGdJQ0FnSUNBZ0lDNWhaR1JDWldGeVpYSkJkWFJvS0NsY2JpQWdJQ0FnSUNBZ0xtSjFhV3hrS0NrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdSdlkzVnRaVzUwSUQwZ1UzZGhaMmRsY2sxdlpIVnNaUzVqY21WaGRHVkViMk4xYldWdWRDaGhjSEFzSUdOdmJtWnBaeWs3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzkxZEhCMWRFUnBjaUE5SUhCaGRHZ3VjbVZ6YjJ4MlpTaHZjSFJwYjI1ekxtOTFkSEIxZENrN1hHNGdJQ0FnSUNCbWN5NXRhMlJwY2xONWJtTW9iM1YwY0hWMFJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU0I5S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJRzkxZEhCMWRFWnBiR1VnUFNCd1lYUm9MbXB2YVc0b2IzVjBjSFYwUkdseUxDQmdKSHR2Y0hScGIyNXpMbVpwYkdWT1lXMWxmUzVxYzI5dVlDazdYRzRnSUNBZ0lDQm1jeTUzY21sMFpVWnBiR1ZUZVc1aktHOTFkSEIxZEVacGJHVXNJRXBUVDA0dWMzUnlhVzVuYVdaNUtHUnZZM1Z0Wlc1MExDQnVkV3hzTENBeUtTd2dYQ0oxZEdZdE9Gd2lLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjR0YwYUVOdmRXNTBJRDBnVDJKcVpXTjBMbXRsZVhNb1pHOWpkVzFsYm5RdWNHRjBhSE1nZkh3Z2UzMHBMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHTnZibk4wSUhOamFHVnRZVU52ZFc1MElEMGdUMkpxWldOMExtdGxlWE1vWkc5amRXMWxiblF1WTI5dGNHOXVaVzUwY3o4dWMyTm9aVzFoY3lCOGZDQjdmU2t1YkdWdVozUm9PMXh1SUNBZ0lDQWdiRzluTG1sdVptOG9ZRTl3Wlc1QlVFa2djM0JsWXlCM2NtbDBkR1Z1SUhSdklDUjdiM1YwY0hWMFJtbHNaWDBnS0NSN2NHRjBhRU52ZFc1MGZTQndZWFJvY3l3Z0pIdHpZMmhsYldGRGIzVnVkSDBnYzJOb1pXMWhjeWxnS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhsSUdGeklFVnljbTl5S1R0Y2JpQWdJQ0I5SUdacGJtRnNiSGtnZTF4dUlDQWdJQ0FnYVdZZ0tHRndjQ2tnWVhkaGFYUWdZWEJ3TG1Oc2IzTmxLQ2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibHh1WTI5dWMzUWdibVZ6ZEVOdFpDQTlJRzVsZHlCRGIyMXRZVzVrS0NsY2JpQWdMbTVoYldVb1hDSnVaWE4wWENJcFhHNGdJQzVrWlhOamNtbHdkR2x2YmloY0ltVjRjRzl6WlhNZ2RtRnlhVzkxY3lCamIyMXRZVzVrY3lCMGJ5Qm9aV3h3SUcxaGJtRm5aU0IwYUdVZ2JtVnpkQ0JwYm5SbFozSmhkR2x2Ymx3aUtUdGNibHh1Ym1WemRFTnRaQzVoWkdSRGIyMXRZVzVrS0cxcFozSmhkR1ZEYjIxdFlXNWtLVHRjYm01bGMzUkRiV1F1WVdSa1EyOXRiV0Z1WkNobGVIQnZjblJCY0dsRGIyMXRZVzVrS1R0Y2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1puVnVZM1JwYjI0Z2JtVnpkQ2dwSUh0Y2JpQWdjbVYwZFhKdUlHNWxjM1JEYldRN1hHNTlYRzRpWFgwPSJdfQ==
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixTQUFTLHNCQUFzQixDQUFDLFNBQWlCO0lBQy9DLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQWMsRUFDZCxTQUF5QyxzQkFBc0IsRUFDL0QsVUFBVSxHQUFHLHNCQUFzQjtJQUVu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QUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXpFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0UsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsVUFBVSxLQUFLLFNBQVMsV0FBVyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxhQUFhLENBQUMsQ0FBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztZQUFTLENBQUM7UUFDVCxJQUFJLEdBQUc7WUFBRSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFTCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRTtLQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ1osV0FBVyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7QUFFL0UsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNuQyxPQUFPLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFckMsTUFBTSxDQUFDLE9BQU8sVUFBVSxJQUFJO0lBQzFCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5cbmNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKFwiZm9yLW5lc3RcIik7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQWRhcHRlciwgbm9ybWFsaXplSW1wb3J0LCBTZXJ2aWNlLCBUYXNrTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmUvbWlncmF0aW9ucy9TZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nXCI7XG5pbXBvcnQgeyBNaWdyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlL21pZ3JhdGlvbnNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgSU5lc3RBcHBsaWNhdGlvbiB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRG9jdW1lbnRCdWlsZGVyLCBTd2FnZ2VyTW9kdWxlIH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuXG5jb25zdCBkZWZhdWx0SW5wdXRDYW5kaWRhdGVzID0gW1xuICBcIi4vbGliL2FwcC5tb2R1bGUuY2pzXCIsXG4gIFwiLi9saWIvYXBwLm1vZHVsZS5qc1wiLFxuICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIixcbl07XG5cbmZ1bmN0aW9uIGRlZmF1bHRDYW5kaWRhdGVFeGlzdHMoY2FuZGlkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGNhbmRpZGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUlucHV0UGF0aChcbiAgaW5wdXQ/OiBzdHJpbmcsXG4gIGV4aXN0czogKGNhbmRpZGF0ZTogc3RyaW5nKSA9PiBib29sZWFuID0gZGVmYXVsdENhbmRpZGF0ZUV4aXN0cyxcbiAgY2FuZGlkYXRlcyA9IGRlZmF1bHRJbnB1dENhbmRpZGF0ZXNcbik6IHN0cmluZyB7XG4gIGlmIChpbnB1dCkgcmV0dXJuIGlucHV0O1xuICBjb25zdCBmb3VuZCA9IGNhbmRpZGF0ZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBleGlzdHMoY2FuZGlkYXRlKSk7XG4gIHJldHVybiBmb3VuZCB8fCBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkT3V0cHV0RmlsZVBhdGgocGFyYW1zOiB7XG4gIG91dHB1dERpcjogc3RyaW5nO1xuICBwa2dOYW1lPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBmaWxlTmFtZT86IHN0cmluZztcbiAgYXBwZW5kVmVyc2lvbj86IGJvb2xlYW47XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIG91dHB1dERpcixcbiAgICBwa2dOYW1lLFxuICAgIG5hbWUsXG4gICAgZmlsZU5hbWUsXG4gICAgYXBwZW5kVmVyc2lvbiA9IGZhbHNlLFxuICAgIHZlcnNpb24sXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGJhc2VEaXIgPSBwYXRoLnJlc29sdmUob3V0cHV0RGlyKTtcbiAgY29uc3QgZGVmYXVsdFBrZ05hbWUgPSBwa2dOYW1lO1xuICBjb25zdCByZXNvbHZlZFJhd1NvdXJjZSA9IGZpbGVOYW1lIHx8IG5hbWUgfHwgZGVmYXVsdFBrZ05hbWUgfHwgXCJhcGlcIjtcbiAgY29uc3QgYmFzZU5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlc29sdmVkUmF3U291cmNlKTtcbiAgY29uc3QgcmVzb2x2ZWRSYXcgPSBiYXNlTmFtZS5yZXBsYWNlKC9bXFxcXC9dL2csIFwiX1wiKTtcbiAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkUmF3LnJlcGxhY2UoL15bLl9dKy8sIFwiXCIpO1xuICBjb25zdCByZXNvbHZlZE5hbWUgPSB0cmltbWVkIHx8IFwiYXBpXCI7XG4gIGNvbnN0IHN1ZmZpeCA9IGFwcGVuZFZlcnNpb24gJiYgdmVyc2lvbiA/IGAtJHt2ZXJzaW9ufWAgOiBcIlwiO1xuICByZXR1cm4gcGF0aC5qb2luKGJhc2VEaXIsIGAke3Jlc29sdmVkTmFtZX0ke3N1ZmZpeH0uanNvbmApO1xufVxuXG5mdW5jdGlvbiBwYXJzZUxpc3QodmFsdWU6IHVua25vd24pOiBzdHJpbmdbXSB7XG4gIGlmICghdmFsdWUpIHJldHVybiBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4gcGFyc2VMaXN0KGVudHJ5KSkuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgIC5zcGxpdChcIixcIilcbiAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQm9vbGVhbkZsYWcodmFsdWU6IHVua25vd24pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IGAke3ZhbHVlfWAudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChbXCIxXCIsIFwidHJ1ZVwiLCBcInllc1wiLCBcIm9uXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFtcIjBcIiwgXCJmYWxzZVwiLCBcIm5vXCIsIFwib2ZmXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gZmFsc2U7XG4gIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gZmxhZyB2YWx1ZTogJHt2YWx1ZX1gKTtcbn1cblxuZnVuY3Rpb24gdW5pcXVlKHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbLi4ubmV3IFNldCh2YWx1ZXMpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNaWdyYXRlQ29tbWFuZENvbmZpZyhcbiAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgcGtnOiBhbnkgPSB7fVxuKToge1xuICBpbnB1dDogc3RyaW5nO1xuICBjb25maWc6IHtcbiAgICB0b1ZlcnNpb246IHN0cmluZztcbiAgICB0YXNrTW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBkcnlSdW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgZmxhdm91cnM6IHN0cmluZ1tdO1xuICAgIHZlcnNpb25EaXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWZlcmVuY2VzOiBzdHJpbmdbXTtcbiAgfTtcbn0ge1xuICBjb25zdCBwYWNrYWdlTWlncmF0aW9uID0gcGtnPy5kZWNhZj8ubWlncmF0aW9uID8/IHt9O1xuICBjb25zdCBpbnB1dCA9XG4gICAgKG9wdGlvbnMuaW5wdXQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fFxuICAgIHBhY2thZ2VNaWdyYXRpb24uaW5wdXQgfHxcbiAgICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbiAgY29uc3QgdG9WZXJzaW9uID1cbiAgICAob3B0aW9ucy50byBhcyBzdHJpbmcgfCB1bmRlZmluZWQpIHx8XG4gICAgcGFja2FnZU1pZ3JhdGlvbi50b1ZlcnNpb24gfHxcbiAgICBwa2c/LnZlcnNpb24gfHxcbiAgICBcIjAuMC4wXCI7XG4gIGNvbnN0IGNsaUZsYXZvdXJzID0gcGFyc2VMaXN0KG9wdGlvbnMuZmxhdm91ciA/PyBvcHRpb25zLmFkYXB0ZXIpO1xuICBjb25zdCBwYWNrYWdlRmxhdm91cnMgPSBwYXJzZUxpc3QoXG4gICAgcGFja2FnZU1pZ3JhdGlvbi5mbGF2b3VyID8/IHBhY2thZ2VNaWdyYXRpb24uZmxhdm91cnNcbiAgKTtcbiAgY29uc3QgZmxhdm91cnMgPSBjbGlGbGF2b3Vycy5sZW5ndGggPiAwID8gdW5pcXVlKGNsaUZsYXZvdXJzKSA6IHVuaXF1ZShwYWNrYWdlRmxhdm91cnMpO1xuICBjb25zdCB2ZXJzaW9uRGlyID1cbiAgICAob3B0aW9ucy52ZXJzaW9uRGlyIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgfHwgcGFja2FnZU1pZ3JhdGlvbi52ZXJzaW9uRGlyO1xuICBjb25zdCByZWZlcmVuY2VzID0gcGFyc2VMaXN0KG9wdGlvbnMucmVmZXJlbmNlID8/IHBhY2thZ2VNaWdyYXRpb24ucmVmZXJlbmNlcyk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnB1dCxcbiAgICBjb25maWc6IHtcbiAgICAgIHRvVmVyc2lvbixcbiAgICAgIHRhc2tNb2RlOiBwYXJzZUJvb2xlYW5GbGFnKG9wdGlvbnMudGFza01vZGUgPz8gcGFja2FnZU1pZ3JhdGlvbi50YXNrTW9kZSksXG4gICAgICBkcnlSdW46IHBhcnNlQm9vbGVhbkZsYWcob3B0aW9ucy5kcnlSdW4gPz8gcGFja2FnZU1pZ3JhdGlvbi5kcnlSdW4pLFxuICAgICAgZmxhdm91cnMsXG4gICAgICB2ZXJzaW9uRGlyLFxuICAgICAgcmVmZXJlbmNlcyxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKFxuICB2ZXJzaW9uRGlyOiBzdHJpbmcsXG4gIGFkYXB0ZXJzOiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT5bXVxuKTogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIGNvbnN0IGhhbmRsZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVycykge1xuICAgIGNvbnN0IGFsaWFzID0gYWRhcHRlci5hbGlhcztcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHZlcnNpb25EaXIsIGAke2FsaWFzfS5taWdyYXRpb24udmVyc2lvbmApO1xuICAgIGhhbmRsZXJzW2FsaWFzXSA9IHtcbiAgICAgIC8vIGFkYXB0ZXIgYW5kIGN0eEFyZ3MgYXJlIGF2YWlsYWJsZSBidXQgbm90IG5lZWRlZCDigJQgdmVyc2lvbiBsaXZlcyBpbiB0aGUgZmlsZVxuICAgICAgcmV0cmlldmVMYXN0VmVyc2lvbjogYXN5bmMgKF9hZGFwdGVyPzogYW55LCAuLi5fYXJnczogYW55W10pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0Zi04XCIpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiB2IHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG5vIGZpbGUgeWV0IOKGkiBmaXJzdCBydW5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICAgIHNldEN1cnJlbnRWZXJzaW9uOiBhc3luYyAodmVyc2lvbjogc3RyaW5nLCBfYWRhcHRlcj86IGFueSwgLi4uX2FyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGZzLm1rZGlyU3luYyh2ZXJzaW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlLCB2ZXJzaW9uLCBcInV0Zi04XCIpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBoYW5kbGVycztcbn1cblxuY29uc3QgbWlncmF0ZUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwibWlncmF0ZVwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXhlY3V0ZXMgZGVjYWYgbWlncmF0aW9ucywgYW5kIGV4aXRzXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gIC5vcHRpb24oXCItLXRvIDxTdHJpbmc+XCIsIFwidGFyZ2V0IG1pZ3JhdGlvbiB2ZXJzaW9uXCIpXG4gIC5vcHRpb24oXCItLWZsYXZvdXIgPFN0cmluZz5cIiwgXCJ0YXJnZXQgZmxhdm91cihzKSwgY29tbWEtc2VwYXJhdGVkXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWFkYXB0ZXIgPFN0cmluZz5cIixcbiAgICBcImFkYXB0ZXIgZmxhdm91ciBhbGlhcyhlcyksIGNvbW1hLXNlcGFyYXRlZCAoc2FtZSBiZWhhdmlvciBhcyAtLWZsYXZvdXIpXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS10YXNrLW1vZGUgW0Jvb2xlYW5dXCIsXG4gICAgXCJydW5zIG1pZ3JhdGlvbiB2aWEgdGFzayBtb2RlICh0cnVlL2ZhbHNlKS4gYWNjZXB0cyBiYXJlIGZsYWcgYXMgdHJ1ZVwiXG4gIClcbiAgLm9wdGlvbihcbiAgICBcIi0tZHJ5LXJ1biBbQm9vbGVhbl1cIixcbiAgICBcInJ1bnMgbWlncmF0aW9ucyB3aXRoIGRyeS1ydW4gY29udGV4dCAodHJ1ZS9mYWxzZSkuIGFjY2VwdHMgYmFyZSBmbGFnIGFzIHRydWVcIlxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLXZlcnNpb24tZGlyIDxTdHJpbmc+XCIsXG4gICAgXCJkaXJlY3Rvcnkgd2hlcmUgcGVyLWFkYXB0ZXIgdmVyc2lvbiBmaWxlcyBhcmUgcGVyc2lzdGVkIChlLmcuIGEgRG9ja2VyIHZvbHVtZSBwYXRoKS4gXCIgK1xuICAgICAgXCJFYWNoIGFkYXB0ZXIgd3JpdGVzIGl0cyBsYXN0LW1pZ3JhdGVkIHZlcnNpb24gdG8gPHZlcnNpb25EaXI+LzxhbGlhcz4ubWlncmF0aW9uLnZlcnNpb24uIFwiICtcbiAgICAgIFwiQ2FuIGFsc28gYmUgc2V0IHZpYSBwYWNrYWdlLmpzb24gZGVjYWYubWlncmF0aW9uLnZlcnNpb25EaXIuXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS1yZWZlcmVuY2UgPFN0cmluZz5cIixcbiAgICBcInJ1biBvbmx5IHRoZSBuYW1lZCBtaWdyYXRpb24gcmVmZXJlbmNlKHMpLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gJ3Byb2R1Y3QtbWlncmF0aW9uJykuIFwiICtcbiAgICAgIFwiQnlwYXNzZXMgdmVyc2lvbiByYW5nZSBmaWx0ZXJpbmcg4oCUIHVzZSBmb3IgemVyby1kYXkgb3Igb25lLW9mZiBtaWdyYXRpb25zLiBcIiArXG4gICAgICBcIkNhbiBhbHNvIGJlIHNldCB2aWEgcGFja2FnZS5qc29uIGRlY2FmLm1pZ3JhdGlvbi5yZWZlcmVuY2VzLlwiXG4gIClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJtaWdyYXRlXCIpO1xuICAgIGNvbnN0IHsgaW5wdXQsIGNvbmZpZyB9ID0gcmVzb2x2ZU1pZ3JhdGVDb21tYW5kQ29uZmlnKG9wdGlvbnMsIHBrZyk7XG4gICAgbGV0IGFwcDogSU5lc3RBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICByZXNvbHZlTmVzdE1vZHVsZShhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dCkpKSksXG4gICAgICAgIHsgbG9nZ2VyOiBmYWxzZSB9XG4gICAgICApO1xuICAgICAgYXdhaXQgYXBwLmluaXQoKTtcbiAgICAgIGxvZy5pbmZvKGBBcHAgYm9vdGVkYCk7XG5cbiAgICAgIGNvbnN0IGNhY2hlID0gKEFkYXB0ZXIgYXMgYW55KVtcIl9jYWNoZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4+O1xuICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgY29uc3QgYWRhcHRlcnMgPSBPYmplY3QudmFsdWVzKGNhY2hlKS5maWx0ZXIoKGEpID0+IHtcbiAgICAgICAgaWYgKHNlZW4uaGFzKGEuYWxpYXMpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHNlZW4uYWRkKGEuYWxpYXMpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgdGFza1NlcnZpY2U6IGFueTtcbiAgICAgIGlmIChjb25maWcudGFza01vZGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0YXNrU2VydmljZSA9IFNlcnZpY2UuZ2V0KFRhc2tNb2RlbCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG5vdCByZWdpc3RlcmVkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0YXNrU2VydmljZSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGB0YXNrLW1vZGUgcmVxdWVzdGVkIGJ1dCBubyBUYXNrU2VydmljZSBpcyByZWdpc3RlcmVkIChleHBlY3RlZCBAc2VydmljZShUYXNrTW9kZWwpKWBcbiAgICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGNsdWRlIHRoZSB0YXNrIGVuZ2luZSdzIGFkYXB0ZXIgZnJvbSBtaWdyYXRpb24gdGFyZ2V0cyDigJQgTWlncmF0aW9uU2VydmljZVxuICAgICAgLy8gd2lsbCB0aHJvdyBpZiBpdCBhcHBlYXJzIGluIHRoZSBhZGFwdGVyIGxpc3QgYWxvbmdzaWRlIGNmZy50YXNrU2VydmljZS5cbiAgICAgIGNvbnN0IHRhc2tBZGFwdGVyQWxpYXM6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICh0YXNrU2VydmljZSBhcyBhbnkpPy5jbGllbnQ/LmFkYXB0ZXI/LmFsaWFzIHx8XG4gICAgICAgICh0YXNrU2VydmljZSBhcyBhbnkpPy5jbGllbnQ/LmFkYXB0ZXI/LmZsYXZvdXI7XG4gICAgICBjb25zdCBtaWdyYXRlQWRhcHRlcnMgPSB0YXNrQWRhcHRlckFsaWFzXG4gICAgICAgID8gYWRhcHRlcnMuZmlsdGVyKChhKSA9PiBhLmFsaWFzICE9PSB0YXNrQWRhcHRlckFsaWFzICYmIGEuZmxhdm91ciAhPT0gdGFza0FkYXB0ZXJBbGlhcylcbiAgICAgICAgOiBhZGFwdGVycztcblxuICAgICAgY29uc3QgaGFuZGxlcnMgPSBjb25maWcudmVyc2lvbkRpclxuICAgICAgICA/IGJ1aWxkRmlsZVZlcnNpb25IYW5kbGVycyhjb25maWcudmVyc2lvbkRpciwgbWlncmF0ZUFkYXB0ZXJzKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGNvbmZpZy52ZXJzaW9uRGlyKVxuICAgICAgICBsb2cuaW5mbyhgVmVyc2lvbiB0cmFja2luZzogJHtwYXRoLnJlc29sdmUoY29uZmlnLnZlcnNpb25EaXIpfWApO1xuICAgICAgZWxzZVxuICAgICAgICBsb2cud2FybihgTm8gLS12ZXJzaW9uLWRpciBzZXQg4oCUIGV2ZXJ5IHJ1biB3aWxsIHJlLWFwcGx5IGFsbCBtaWdyYXRpb25zIHVwIHRvICR7Y29uZmlnLnRvVmVyc2lvbn1gKTtcblxuICAgICAgaWYgKGNvbmZpZy5yZWZlcmVuY2VzLmxlbmd0aClcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgb25seSByZWZlcmVuY2VzOiAke2NvbmZpZy5yZWZlcmVuY2VzLmpvaW4oXCIsIFwiKX1gKTtcblxuICAgICAgY29uc3QgbWlncmF0aW9ucyA9IGF3YWl0IE1pZ3JhdGlvblNlcnZpY2UubWlncmF0ZUFkYXB0ZXJzKFxuICAgICAgICBtaWdyYXRlQWRhcHRlcnMsXG4gICAgICAgIHtcbiAgICAgICAgICB0b1ZlcnNpb246IGNvbmZpZy50b1ZlcnNpb24sXG4gICAgICAgICAgdGFza01vZGU6IGNvbmZpZy50YXNrTW9kZSxcbiAgICAgICAgICBkcnlSdW46IGNvbmZpZy5kcnlSdW4sXG4gICAgICAgICAgZmxhdm91cnM6IGNvbmZpZy5mbGF2b3Vycy5sZW5ndGggPiAwID8gY29uZmlnLmZsYXZvdXJzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHRhc2tTZXJ2aWNlLFxuICAgICAgICAgIGhhbmRsZXJzLFxuICAgICAgICAgIHZlcnNpb25pbmc6IG5ldyBTZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nKCksXG4gICAgICAgICAgcmVmZXJlbmNlczpcbiAgICAgICAgICAgIGNvbmZpZy5yZWZlcmVuY2VzLmxlbmd0aCA+IDAgPyBjb25maWcucmVmZXJlbmNlcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgZm9yIChjb25zdCBtaWdyYXRpb25TZXJ2aWNlIG9mIG1pZ3JhdGlvbnMgfHwgW10pIHtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uU2VydmljZS50cmFjaygpO1xuICAgICAgfVxuXG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYE1pZ3JhdGlvbiBjb21wbGV0ZWQke29wdGlvbnMudG8gfHwgcGtnLnZlcnNpb24gPyBgIHVwIHRvICR7b3B0aW9ucy50byB8fCBwa2cudmVyc2lvbn1gIDogXCJcIn1gXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoYXBwKSBhd2FpdCBhcHAuY2xvc2UoKTtcbiAgICB9XG4gIH0pO1xuXG5leHBvcnQgeyBtaWdyYXRlQ29tbWFuZCB9O1xuXG5mdW5jdGlvbiByZXNvbHZlTmVzdE1vZHVsZShtb2Q6IGFueSk6IGFueSB7XG4gIGlmICh0eXBlb2YgbW9kID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBtb2Q7XG4gIGlmIChtb2Q/LmRlZmF1bHQgJiYgdHlwZW9mIG1vZC5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBtb2QuZGVmYXVsdDtcbiAgaWYgKG1vZCAmJiB0eXBlb2YgbW9kID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IE9iamVjdC52YWx1ZXMobW9kKS5maWx0ZXIoKHYpID0+IHR5cGVvZiB2ID09PSBcImZ1bmN0aW9uXCIpO1xuICAgIGlmIChjbGFzc2VzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGNsYXNzZXNbMF07XG4gICAgY29uc3QgbmFtZWQgPSAobW9kIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW1xuICAgICAgT2JqZWN0LmtleXMobW9kKS5maW5kKChrKSA9PiAvTW9kdWxlJC8udGVzdChrKSkgfHwgXCJcIlxuICAgIF07XG4gICAgaWYgKHR5cGVvZiBuYW1lZCA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbmFtZWQ7XG4gIH1cbiAgcmV0dXJuIG1vZDtcbn1cblxuY29uc3QgZXhwb3J0QXBpQ29tbWFuZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJleHBvcnQtYXBpXCIpXG4gIC5kZXNjcmlwdGlvbihcbiAgICBcImJvb3RzIHRoZSBhcHAgY29udGV4dCBoZWFkbGVzc2x5LCBleHRyYWN0cyB0aGUgT3BlbkFQSSBzcGVjLCBhbmQgd3JpdGVzIGl0IHRvIGEgSlNPTiBmaWxlXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gIC5vcHRpb24oXCItLW91dHB1dCA8U3RyaW5nPlwiLCBcIm91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBPcGVuQVBJIEpTT04gZmlsZVwiLCBcIi4vXCIpXG4gIC5vcHRpb24oXCItLWZpbGVOYW1lIDxTdHJpbmc+XCIsIFwib3V0cHV0IGZpbGUgbmFtZSAod2l0aG91dCBleHRlbnNpb24pXCIsIFwib3BlbmFwaVwiKVxuICAub3B0aW9uKFwiLS10aXRsZSA8U3RyaW5nPlwiLCBcIk9wZW5BUEkgZG9jdW1lbnQgdGl0bGVcIiwgXCJERUNBRiBBUElcIilcbiAgLm9wdGlvbihcIi0tZGVzY3JpcHRpb24gPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IGRlc2NyaXB0aW9uXCIsIFwiQXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uXCIpXG4gIC5vcHRpb24oXCItLXZlcnNpb24gPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IHZlcnNpb25cIilcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcImV4cG9ydC1hcGlcIik7XG4gICAgY29uc3QgaW5wdXQgPSByZXNvbHZlSW5wdXRQYXRoKG9wdGlvbnMuaW5wdXQpO1xuICAgIGxldCBhcHA6IElOZXN0QXBwbGljYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShcbiAgICAgICAgcmVzb2x2ZU5lc3RNb2R1bGUoYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQpKSkpLFxuICAgICAgICB7IGxvZ2dlcjogZmFsc2UgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IGFwcC5pbml0KCk7XG4gICAgICBsb2cuaW5mbyhgQXBwIGJvb3RlZCBmcm9tICR7aW5wdXR9YCk7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBEb2N1bWVudEJ1aWxkZXIoKVxuICAgICAgICAuc2V0VGl0bGUob3B0aW9ucy50aXRsZSlcbiAgICAgICAgLnNldERlc2NyaXB0aW9uKG9wdGlvbnMuZGVzY3JpcHRpb24pXG4gICAgICAgIC5zZXRWZXJzaW9uKG9wdGlvbnMudmVyc2lvbiB8fCBcIjEuMC4wXCIpXG4gICAgICAgIC5hZGRCZWFyZXJBdXRoKClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gU3dhZ2dlck1vZHVsZS5jcmVhdGVEb2N1bWVudChhcHAsIGNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IG91dHB1dERpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dHB1dCk7XG4gICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG91dHB1dEZpbGUgPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBgJHtvcHRpb25zLmZpbGVOYW1lfS5qc29uYCk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKG91dHB1dEZpbGUsIEpTT04uc3RyaW5naWZ5KGRvY3VtZW50LCBudWxsLCAyKSwgXCJ1dGYtOFwiKTtcblxuICAgICAgY29uc3QgcGF0aENvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQucGF0aHMgfHwge30pLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNjaGVtYUNvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fSkubGVuZ3RoO1xuICAgICAgbG9nLmluZm8oYE9wZW5BUEkgc3BlYyB3cml0dGVuIHRvICR7b3V0cHV0RmlsZX0gKCR7cGF0aENvdW50fSBwYXRocywgJHtzY2hlbWFDb3VudH0gc2NoZW1hcylgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGFwcCkgYXdhaXQgYXBwLmNsb3NlKCk7XG4gICAgfVxuICB9KTtcblxuY29uc3QgbmVzdENtZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJuZXN0XCIpXG4gIC5kZXNjcmlwdGlvbihcImV4cG9zZXMgdmFyaW91cyBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgbmVzdCBpbnRlZ3JhdGlvblwiKTtcblxubmVzdENtZC5hZGRDb21tYW5kKG1pZ3JhdGVDb21tYW5kKTtcbm5lc3RDbWQuYWRkQ29tbWFuZChleHBvcnRBcGlDb21tYW5kKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbmVzdCgpIHtcbiAgcmV0dXJuIG5lc3RDbWQ7XG59XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsaS1tb2R1bGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLDRDQUtDO0FBQ0Qsa0RBV0M7QUEwQkQsa0VBeUJDO0FBQ0QsNERBMEJDO0FBZ0pELHVCQUVDO0FBcFFELCtDQUE0QztBQUM1QyxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN2Qyx5Q0FBb0M7QUFDcEMsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4Qix5Q0FBOEU7QUFDOUUsbUdBQWdHO0FBQ2hHLDBEQUE2RDtBQUM3RCwyREFBd0Q7QUFDeEQsdUNBQTJDO0FBQzNDLDZDQUFpRTtBQUNqRSxNQUFNLHNCQUFzQixHQUFHO0lBQzNCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3hCLENBQUM7QUFDRixTQUFTLHNCQUFzQixDQUFDLFNBQVM7SUFDckMsT0FBTyxZQUFFLENBQUMsVUFBVSxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUNELFNBQWdCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsc0JBQXNCLEVBQUUsVUFBVSxHQUFHLHNCQUFzQjtJQUN4RyxJQUFJLEtBQUs7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRSxPQUFPLEtBQUssSUFBSSxxQkFBcUIsQ0FBQztBQUMxQyxDQUFDO0FBQ0QsU0FBZ0IsbUJBQW1CLENBQUMsTUFBTTtJQUN0QyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9B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QUFDO0lBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0sSUFBSSw2QkFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7WUFDTyxDQUFDO1FBQ0wsSUFBSSxHQUFHO1lBQ0gsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFO0tBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDWixXQUFXLENBQUMsOERBQThELENBQUMsQ0FBQztBQUNqRixPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ25DLE9BQU8sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUNyQyxTQUF3QixJQUFJO0lBQ3hCLE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFDRCxzOThCQUFzOThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuY29uc3QgbG9nZ2VyID0gTG9nZ2luZy5mb3IoXCJmb3ItbmVzdFwiKTtcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQWRhcHRlciwgbm9ybWFsaXplSW1wb3J0LCBTZXJ2aWNlLCBUYXNrTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmUvbWlncmF0aW9ucy9TZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nXCI7XG5pbXBvcnQgeyBNaWdyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlL21pZ3JhdGlvbnNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgRG9jdW1lbnRCdWlsZGVyLCBTd2FnZ2VyTW9kdWxlIH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuY29uc3QgZGVmYXVsdElucHV0Q2FuZGlkYXRlcyA9IFtcbiAgICBcIi4vbGliL2FwcC5tb2R1bGUuY2pzXCIsXG4gICAgXCIuL2xpYi9hcHAubW9kdWxlLmpzXCIsXG4gICAgXCIuL3NyYy9hcHAubW9kdWxlLnRzXCIsXG5dO1xuZnVuY3Rpb24gZGVmYXVsdENhbmRpZGF0ZUV4aXN0cyhjYW5kaWRhdGUpIHtcbiAgICByZXR1cm4gZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgY2FuZGlkYXRlKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUlucHV0UGF0aChpbnB1dCwgZXhpc3RzID0gZGVmYXVsdENhbmRpZGF0ZUV4aXN0cywgY2FuZGlkYXRlcyA9IGRlZmF1bHRJbnB1dENhbmRpZGF0ZXMpIHtcbiAgICBpZiAoaW5wdXQpXG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICBjb25zdCBmb3VuZCA9IGNhbmRpZGF0ZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBleGlzdHMoY2FuZGlkYXRlKSk7XG4gICAgcmV0dXJuIGZvdW5kIHx8IFwiLi9zcmMvYXBwLm1vZHVsZS50c1wiO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkT3V0cHV0RmlsZVBhdGgocGFyYW1zKSB7XG4gICAgY29uc3QgeyBvdXRwdXREaXIsIHBrZ05hbWUsIG5hbWUsIGZpbGVOYW1lLCBhcHBlbmRWZXJzaW9uID0gZmFsc2UsIHZlcnNpb24sIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgYmFzZURpciA9IHBhdGgucmVzb2x2ZShvdXRwdXREaXIpO1xuICAgIGNvbnN0IGRlZmF1bHRQa2dOYW1lID0gcGtnTmFtZTtcbiAgICBjb25zdCByZXNvbHZlZFJhd1NvdXJjZSA9IGZpbGVOYW1lIHx8IG5hbWUgfHwgZGVmYXVsdFBrZ05hbWUgfHwgXCJhcGlcIjtcbiAgICBjb25zdCBiYXNlTmFtZSA9IHBhdGguYmFzZW5hbWUocmVzb2x2ZWRSYXdTb3VyY2UpO1xuICAgIGNvbnN0IHJlc29sdmVkUmF3ID0gYmFzZU5hbWUucmVwbGFjZSgvW1xcXFwvXS9nLCBcIl9cIik7XG4gICAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkUmF3LnJlcGxhY2UoL15bLl9dKy8sIFwiXCIpO1xuICAgIGNvbnN0IHJlc29sdmVkTmFtZSA9IHRyaW1tZWQgfHwgXCJhcGlcIjtcbiAgICBjb25zdCBzdWZmaXggPSBhcHBlbmRWZXJzaW9uICYmIHZlcnNpb24gPyBgLSR7dmVyc2lvbn1gIDogXCJcIjtcbiAgICByZXR1cm4gcGF0aC5qb2luKGJhc2VEaXIsIGAke3Jlc29sdmVkTmFtZX0ke3N1ZmZpeH0uanNvbmApO1xufVxuZnVuY3Rpb24gcGFyc2VMaXN0KHZhbHVlKSB7XG4gICAgaWYgKCF2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIHZhbHVlLmZsYXRNYXAoKGVudHJ5KSA9PiBwYXJzZUxpc3QoZW50cnkpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xufVxuZnVuY3Rpb24gcGFyc2VCb29sZWFuRmxhZyh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IGAke3ZhbHVlfWAudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFtcIjFcIiwgXCJ0cnVlXCIsIFwieWVzXCIsIFwib25cIl0uaW5jbHVkZXMobm9ybWFsaXplZCkpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChbXCIwXCIsIFwiZmFsc2VcIiwgXCJub1wiLCBcIm9mZlwiXS5pbmNsdWRlcyhub3JtYWxpemVkKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gZmxhZyB2YWx1ZTogJHt2YWx1ZX1gKTtcbn1cbmZ1bmN0aW9uIHVuaXF1ZSh2YWx1ZXMpIHtcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQodmFsdWVzKV07XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1pZ3JhdGVDb21tYW5kQ29uZmlnKG9wdGlvbnMgPSB7fSwgcGtnID0ge30pIHtcbiAgICBjb25zdCBwYWNrYWdlTWlncmF0aW9uID0gcGtnPy5kZWNhZj8ubWlncmF0aW9uID8/IHt9O1xuICAgIGNvbnN0IGlucHV0ID0gb3B0aW9ucy5pbnB1dCB8fFxuICAgICAgICBwYWNrYWdlTWlncmF0aW9uLmlucHV0IHx8XG4gICAgICAgIFwiLi9zcmMvYXBwLm1vZHVsZS50c1wiO1xuICAgIGNvbnN0IHRvVmVyc2lvbiA9IG9wdGlvbnMudG8gfHxcbiAgICAgICAgcGFja2FnZU1pZ3JhdGlvbi50b1ZlcnNpb24gfHxcbiAgICAgICAgcGtnPy52ZXJzaW9uIHx8XG4gICAgICAgIFwiMC4wLjBcIjtcbiAgICBjb25zdCBjbGlGbGF2b3VycyA9IHBhcnNlTGlzdChvcHRpb25zLmZsYXZvdXIgPz8gb3B0aW9ucy5hZGFwdGVyKTtcbiAgICBjb25zdCBwYWNrYWdlRmxhdm91cnMgPSBwYXJzZUxpc3QocGFja2FnZU1pZ3JhdGlvbi5mbGF2b3VyID8/IHBhY2thZ2VNaWdyYXRpb24uZmxhdm91cnMpO1xuICAgIGNvbnN0IGZsYXZvdXJzID0gY2xpRmxhdm91cnMubGVuZ3RoID4gMCA/IHVuaXF1ZShjbGlGbGF2b3VycykgOiB1bmlxdWUocGFja2FnZUZsYXZvdXJzKTtcbiAgICBjb25zdCB2ZXJzaW9uRGlyID0gb3B0aW9ucy52ZXJzaW9uRGlyIHx8IHBhY2thZ2VNaWdyYXRpb24udmVyc2lvbkRpcjtcbiAgICBjb25zdCByZWZlcmVuY2VzID0gcGFyc2VMaXN0KG9wdGlvbnMucmVmZXJlbmNlID8/IHBhY2thZ2VNaWdyYXRpb24ucmVmZXJlbmNlcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgdG9WZXJzaW9uLFxuICAgICAgICAgICAgdGFza01vZGU6IHBhcnNlQm9vbGVhbkZsYWcob3B0aW9ucy50YXNrTW9kZSA/PyBwYWNrYWdlTWlncmF0aW9uLnRhc2tNb2RlKSxcbiAgICAgICAgICAgIGRyeVJ1bjogcGFyc2VCb29sZWFuRmxhZyhvcHRpb25zLmRyeVJ1biA/PyBwYWNrYWdlTWlncmF0aW9uLmRyeVJ1biksXG4gICAgICAgICAgICBmbGF2b3VycyxcbiAgICAgICAgICAgIHZlcnNpb25EaXIsXG4gICAgICAgICAgICByZWZlcmVuY2VzLFxuICAgICAgICB9LFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKHZlcnNpb25EaXIsIGFkYXB0ZXJzKSB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGFkYXB0ZXIgb2YgYWRhcHRlcnMpIHtcbiAgICAgICAgY29uc3QgYWxpYXMgPSBhZGFwdGVyLmFsaWFzO1xuICAgICAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHZlcnNpb25EaXIsIGAke2FsaWFzfS5taWdyYXRpb24udmVyc2lvbmApO1xuICAgICAgICBoYW5kbGVyc1thbGlhc10gPSB7XG4gICAgICAgICAgICAvLyBhZGFwdGVyIGFuZCBjdHhBcmdzIGFyZSBhdmFpbGFibGUgYnV0IG5vdCBuZWVkZWQg4oCUIHZlcnNpb24gbGl2ZXMgaW4gdGhlIGZpbGVcbiAgICAgICAgICAgIHJldHJpZXZlTGFzdFZlcnNpb246IGFzeW5jIChfYWRhcHRlciwgLi4uX2FyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0Zi04XCIpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2IHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vIGZpbGUgeWV0IOKGkiBmaXJzdCBydW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRDdXJyZW50VmVyc2lvbjogYXN5bmMgKHZlcnNpb24sIF9hZGFwdGVyLCAuLi5fYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGZzLm1rZGlyU3luYyh2ZXJzaW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGUsIHZlcnNpb24sIFwidXRmLThcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlcnM7XG59XG5jb25zdCBtaWdyYXRlQ29tbWFuZCA9IG5ldyBDb21tYW5kKClcbiAgICAubmFtZShcIm1pZ3JhdGVcIilcbiAgICAuZGVzY3JpcHRpb24oXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXhlY3V0ZXMgZGVjYWYgbWlncmF0aW9ucywgYW5kIGV4aXRzXCIpXG4gICAgLm9wdGlvbihcIi0taW5wdXQgPFN0cmluZz5cIiwgXCJwYXRoIHRvIGFwcCBtb2R1bGUgKHRzIG9yIGNvbXBpbGVkKVwiKVxuICAgIC5vcHRpb24oXCItLXRvIDxTdHJpbmc+XCIsIFwidGFyZ2V0IG1pZ3JhdGlvbiB2ZXJzaW9uXCIpXG4gICAgLm9wdGlvbihcIi0tZmxhdm91ciA8U3RyaW5nPlwiLCBcInRhcmdldCBmbGF2b3VyKHMpLCBjb21tYS1zZXBhcmF0ZWRcIilcbiAgICAub3B0aW9uKFwiLS1hZGFwdGVyIDxTdHJpbmc+XCIsIFwiYWRhcHRlciBmbGF2b3VyIGFsaWFzKGVzKSwgY29tbWEtc2VwYXJhdGVkIChzYW1lIGJlaGF2aW9yIGFzIC0tZmxhdm91cilcIilcbiAgICAub3B0aW9uKFwiLS10YXNrLW1vZGUgW0Jvb2xlYW5dXCIsIFwicnVucyBtaWdyYXRpb24gdmlhIHRhc2sgbW9kZSAodHJ1ZS9mYWxzZSkuIGFjY2VwdHMgYmFyZSBmbGFnIGFzIHRydWVcIilcbiAgICAub3B0aW9uKFwiLS1kcnktcnVuIFtCb29sZWFuXVwiLCBcInJ1bnMgbWlncmF0aW9ucyB3aXRoIGRyeS1ydW4gY29udGV4dCAodHJ1ZS9mYWxzZSkuIGFjY2VwdHMgYmFyZSBmbGFnIGFzIHRydWVcIilcbiAgICAub3B0aW9uKFwiLS12ZXJzaW9uLWRpciA8U3RyaW5nPlwiLCBcImRpcmVjdG9yeSB3aGVyZSBwZXItYWRhcHRlciB2ZXJzaW9uIGZpbGVzIGFyZSBwZXJzaXN0ZWQgKGUuZy4gYSBEb2NrZXIgdm9sdW1lIHBhdGgpLiBcIiArXG4gICAgXCJFYWNoIGFkYXB0ZXIgd3JpdGVzIGl0cyBsYXN0LW1pZ3JhdGVkIHZlcnNpb24gdG8gPHZlcnNpb25EaXI+LzxhbGlhcz4ubWlncmF0aW9uLnZlcnNpb24uIFwiICtcbiAgICBcIkNhbiBhbHNvIGJlIHNldCB2aWEgcGFja2FnZS5qc29uIGRlY2FmLm1pZ3JhdGlvbi52ZXJzaW9uRGlyLlwiKVxuICAgIC5vcHRpb24oXCItLXJlZmVyZW5jZSA8U3RyaW5nPlwiLCBcInJ1biBvbmx5IHRoZSBuYW1lZCBtaWdyYXRpb24gcmVmZXJlbmNlKHMpLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gJ3Byb2R1Y3QtbWlncmF0aW9uJykuIFwiICtcbiAgICBcIkJ5cGFzc2VzIHZlcnNpb24gcmFuZ2UgZmlsdGVyaW5nIOKAlCB1c2UgZm9yIHplcm8tZGF5IG9yIG9uZS1vZmYgbWlncmF0aW9ucy4gXCIgK1xuICAgIFwiQ2FuIGFsc28gYmUgc2V0IHZpYSBwYWNrYWdlLmpzb24gZGVjYWYubWlncmF0aW9uLnJlZmVyZW5jZXMuXCIpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKSwgXCJ1dGYtOFwiKSk7XG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcIm1pZ3JhdGVcIik7XG4gICAgY29uc3QgeyBpbnB1dCwgY29uZmlnIH0gPSByZXNvbHZlTWlncmF0ZUNvbW1hbmRDb25maWcob3B0aW9ucywgcGtnKTtcbiAgICBsZXQgYXBwO1xuICAgIHRyeSB7XG4gICAgICAgIGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShyZXNvbHZlTmVzdE1vZHVsZShhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dCkpKSksIHsgbG9nZ2VyOiBmYWxzZSB9KTtcbiAgICAgICAgYXdhaXQgYXBwLmluaXQoKTtcbiAgICAgICAgbG9nLmluZm8oYEFwcCBib290ZWRgKTtcbiAgICAgICAgY29uc3QgY2FjaGUgPSBBZGFwdGVyW1wiX2NhY2hlXCJdO1xuICAgICAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuICAgICAgICBjb25zdCBhZGFwdGVycyA9IE9iamVjdC52YWx1ZXMoY2FjaGUpLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKGEuYWxpYXMpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHNlZW4uYWRkKGEuYWxpYXMpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgdGFza1NlcnZpY2U7XG4gICAgICAgIGlmIChjb25maWcudGFza01vZGUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGFza1NlcnZpY2UgPSBTZXJ2aWNlLmdldChUYXNrTW9kZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8vIG5vdCByZWdpc3RlcmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRhc2tTZXJ2aWNlKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGB0YXNrLW1vZGUgcmVxdWVzdGVkIGJ1dCBubyBUYXNrU2VydmljZSBpcyByZWdpc3RlcmVkIChleHBlY3RlZCBAc2VydmljZShUYXNrTW9kZWwpKWApO1xuICAgICAgICB9XG4gICAgICAgIC8vIEV4Y2x1ZGUgdGhlIHRhc2sgZW5naW5lJ3MgYWRhcHRlciBmcm9tIG1pZ3JhdGlvbiB0YXJnZXRzIOKAlCBNaWdyYXRpb25TZXJ2aWNlXG4gICAgICAgIC8vIHdpbGwgdGhyb3cgaWYgaXQgYXBwZWFycyBpbiB0aGUgYWRhcHRlciBsaXN0IGFsb25nc2lkZSBjZmcudGFza1NlcnZpY2UuXG4gICAgICAgIGNvbnN0IHRhc2tBZGFwdGVyQWxpYXMgPSB0YXNrU2VydmljZT8uY2xpZW50Py5hZGFwdGVyPy5hbGlhcyB8fFxuICAgICAgICAgICAgdGFza1NlcnZpY2U/LmNsaWVudD8uYWRhcHRlcj8uZmxhdm91cjtcbiAgICAgICAgY29uc3QgbWlncmF0ZUFkYXB0ZXJzID0gdGFza0FkYXB0ZXJBbGlhc1xuICAgICAgICAgICAgPyBhZGFwdGVycy5maWx0ZXIoKGEpID0+IGEuYWxpYXMgIT09IHRhc2tBZGFwdGVyQWxpYXMgJiYgYS5mbGF2b3VyICE9PSB0YXNrQWRhcHRlckFsaWFzKVxuICAgICAgICAgICAgOiBhZGFwdGVycztcbiAgICAgICAgY29uc3QgaGFuZGxlcnMgPSBjb25maWcudmVyc2lvbkRpclxuICAgICAgICAgICAgPyBidWlsZEZpbGVWZXJzaW9uSGFuZGxlcnMoY29uZmlnLnZlcnNpb25EaXIsIG1pZ3JhdGVBZGFwdGVycylcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoY29uZmlnLnZlcnNpb25EaXIpXG4gICAgICAgICAgICBsb2cuaW5mbyhgVmVyc2lvbiB0cmFja2luZzogJHtwYXRoLnJlc29sdmUoY29uZmlnLnZlcnNpb25EaXIpfWApO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBsb2cud2FybihgTm8gLS12ZXJzaW9uLWRpciBzZXQg4oCUIGV2ZXJ5IHJ1biB3aWxsIHJlLWFwcGx5IGFsbCBtaWdyYXRpb25zIHVwIHRvICR7Y29uZmlnLnRvVmVyc2lvbn1gKTtcbiAgICAgICAgaWYgKGNvbmZpZy5yZWZlcmVuY2VzLmxlbmd0aClcbiAgICAgICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIG9ubHkgcmVmZXJlbmNlczogJHtjb25maWcucmVmZXJlbmNlcy5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbnMgPSBhd2FpdCBNaWdyYXRpb25TZXJ2aWNlLm1pZ3JhdGVBZGFwdGVycyhtaWdyYXRlQWRhcHRlcnMsIHtcbiAgICAgICAgICAgIHRvVmVyc2lvbjogY29uZmlnLnRvVmVyc2lvbixcbiAgICAgICAgICAgIHRhc2tNb2RlOiBjb25maWcudGFza01vZGUsXG4gICAgICAgICAgICBkcnlSdW46IGNvbmZpZy5kcnlSdW4sXG4gICAgICAgICAgICBmbGF2b3VyczogY29uZmlnLmZsYXZvdXJzLmxlbmd0aCA+IDAgPyBjb25maWcuZmxhdm91cnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0YXNrU2VydmljZSxcbiAgICAgICAgICAgIGhhbmRsZXJzLFxuICAgICAgICAgICAgdmVyc2lvbmluZzogbmV3IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcoKSxcbiAgICAgICAgICAgIHJlZmVyZW5jZXM6IGNvbmZpZy5yZWZlcmVuY2VzLmxlbmd0aCA+IDAgPyBjb25maWcucmVmZXJlbmNlcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3QgbWlncmF0aW9uU2VydmljZSBvZiBtaWdyYXRpb25zIHx8IFtdKSB7XG4gICAgICAgICAgICBhd2FpdCBtaWdyYXRpb25TZXJ2aWNlLnRyYWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmluZm8oYE1pZ3JhdGlvbiBjb21wbGV0ZWQke29wdGlvbnMudG8gfHwgcGtnLnZlcnNpb24gPyBgIHVwIHRvICR7b3B0aW9ucy50byB8fCBwa2cudmVyc2lvbn1gIDogXCJcIn1gKTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICBpZiAoYXBwKVxuICAgICAgICAgICAgYXdhaXQgYXBwLmNsb3NlKCk7XG4gICAgfVxufSk7XG5leHBvcnQgeyBtaWdyYXRlQ29tbWFuZCB9O1xuZnVuY3Rpb24gcmVzb2x2ZU5lc3RNb2R1bGUobW9kKSB7XG4gICAgaWYgKHR5cGVvZiBtb2QgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgcmV0dXJuIG1vZDtcbiAgICBpZiAobW9kPy5kZWZhdWx0ICYmIHR5cGVvZiBtb2QuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICByZXR1cm4gbW9kLmRlZmF1bHQ7XG4gICAgaWYgKG1vZCAmJiB0eXBlb2YgbW9kID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBPYmplY3QudmFsdWVzKG1vZCkuZmlsdGVyKCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJmdW5jdGlvblwiKTtcbiAgICAgICAgaWYgKGNsYXNzZXMubGVuZ3RoID09PSAxKVxuICAgICAgICAgICAgcmV0dXJuIGNsYXNzZXNbMF07XG4gICAgICAgIGNvbnN0IG5hbWVkID0gbW9kW09iamVjdC5rZXlzKG1vZCkuZmluZCgoaykgPT4gL01vZHVsZSQvLnRlc3QoaykpIHx8IFwiXCJdO1xuICAgICAgICBpZiAodHlwZW9mIG5hbWVkID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICByZXR1cm4gbmFtZWQ7XG4gICAgfVxuICAgIHJldHVybiBtb2Q7XG59XG5jb25zdCBleHBvcnRBcGlDb21tYW5kID0gbmV3IENvbW1hbmQoKVxuICAgIC5uYW1lKFwiZXhwb3J0LWFwaVwiKVxuICAgIC5kZXNjcmlwdGlvbihcImJvb3RzIHRoZSBhcHAgY29udGV4dCBoZWFkbGVzc2x5LCBleHRyYWN0cyB0aGUgT3BlbkFQSSBzcGVjLCBhbmQgd3JpdGVzIGl0IHRvIGEgSlNPTiBmaWxlXCIpXG4gICAgLm9wdGlvbihcIi0taW5wdXQgPFN0cmluZz5cIiwgXCJwYXRoIHRvIGFwcCBtb2R1bGUgKHRzIG9yIGNvbXBpbGVkKVwiKVxuICAgIC5vcHRpb24oXCItLW91dHB1dCA8U3RyaW5nPlwiLCBcIm91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBPcGVuQVBJIEpTT04gZmlsZVwiLCBcIi4vXCIpXG4gICAgLm9wdGlvbihcIi0tZmlsZU5hbWUgPFN0cmluZz5cIiwgXCJvdXRwdXQgZmlsZSBuYW1lICh3aXRob3V0IGV4dGVuc2lvbilcIiwgXCJvcGVuYXBpXCIpXG4gICAgLm9wdGlvbihcIi0tdGl0bGUgPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IHRpdGxlXCIsIFwiREVDQUYgQVBJXCIpXG4gICAgLm9wdGlvbihcIi0tZGVzY3JpcHRpb24gPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IGRlc2NyaXB0aW9uXCIsIFwiQXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uXCIpXG4gICAgLm9wdGlvbihcIi0tdmVyc2lvbiA8U3RyaW5nPlwiLCBcIk9wZW5BUEkgZG9jdW1lbnQgdmVyc2lvblwiKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKFwiZXhwb3J0LWFwaVwiKTtcbiAgICBjb25zdCBpbnB1dCA9IHJlc29sdmVJbnB1dFBhdGgob3B0aW9ucy5pbnB1dCk7XG4gICAgbGV0IGFwcDtcbiAgICB0cnkge1xuICAgICAgICBhcHAgPSBhd2FpdCBOZXN0RmFjdG9yeS5jcmVhdGUocmVzb2x2ZU5lc3RNb2R1bGUoYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQpKSkpLCB7IGxvZ2dlcjogZmFsc2UgfSk7XG4gICAgICAgIGF3YWl0IGFwcC5pbml0KCk7XG4gICAgICAgIGxvZy5pbmZvKGBBcHAgYm9vdGVkIGZyb20gJHtpbnB1dH1gKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gbmV3IERvY3VtZW50QnVpbGRlcigpXG4gICAgICAgICAgICAuc2V0VGl0bGUob3B0aW9ucy50aXRsZSlcbiAgICAgICAgICAgIC5zZXREZXNjcmlwdGlvbihvcHRpb25zLmRlc2NyaXB0aW9uKVxuICAgICAgICAgICAgLnNldFZlcnNpb24ob3B0aW9ucy52ZXJzaW9uIHx8IFwiMS4wLjBcIilcbiAgICAgICAgICAgIC5hZGRCZWFyZXJBdXRoKClcbiAgICAgICAgICAgIC5idWlsZCgpO1xuICAgICAgICBjb25zdCBkb2N1bWVudCA9IFN3YWdnZXJNb2R1bGUuY3JlYXRlRG9jdW1lbnQoYXBwLCBjb25maWcpO1xuICAgICAgICBjb25zdCBvdXRwdXREaXIgPSBwYXRoLnJlc29sdmUob3B0aW9ucy5vdXRwdXQpO1xuICAgICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0RmlsZSA9IHBhdGguam9pbihvdXRwdXREaXIsIGAke29wdGlvbnMuZmlsZU5hbWV9Lmpzb25gKTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhvdXRwdXRGaWxlLCBKU09OLnN0cmluZ2lmeShkb2N1bWVudCwgbnVsbCwgMiksIFwidXRmLThcIik7XG4gICAgICAgIGNvbnN0IHBhdGhDb3VudCA9IE9iamVjdC5rZXlzKGRvY3VtZW50LnBhdGhzIHx8IHt9KS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHNjaGVtYUNvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fSkubGVuZ3RoO1xuICAgICAgICBsb2cuaW5mbyhgT3BlbkFQSSBzcGVjIHdyaXR0ZW4gdG8gJHtvdXRwdXRGaWxlfSAoJHtwYXRoQ291bnR9IHBhdGhzLCAke3NjaGVtYUNvdW50fSBzY2hlbWFzKWApO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIGlmIChhcHApXG4gICAgICAgICAgICBhd2FpdCBhcHAuY2xvc2UoKTtcbiAgICB9XG59KTtcbmNvbnN0IG5lc3RDbWQgPSBuZXcgQ29tbWFuZCgpXG4gICAgLm5hbWUoXCJuZXN0XCIpXG4gICAgLmRlc2NyaXB0aW9uKFwiZXhwb3NlcyB2YXJpb3VzIGNvbW1hbmRzIHRvIGhlbHAgbWFuYWdlIHRoZSBuZXN0IGludGVncmF0aW9uXCIpO1xubmVzdENtZC5hZGRDb21tYW5kKG1pZ3JhdGVDb21tYW5kKTtcbm5lc3RDbWQuYWRkQ29tbWFuZChleHBvcnRBcGlDb21tYW5kKTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5lc3QoKSB7XG4gICAgcmV0dXJuIG5lc3RDbWQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMnhwTFcxdlpIVnNaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNOeVl5OWpiR2t0Ylc5a2RXeGxMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4dFFrRkJiVUlzUTBGQlF6dEJRVVUxUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUlhaRExFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4WFFVRlhMRU5CUVVNN1FVRkRjRU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNTVUZCU1N4RFFVRkRPMEZCUTNCQ0xFOUJRVThzU1VGQlNTeE5RVUZOTEUxQlFVMHNRMEZCUXp0QlFVTjRRaXhQUVVGUExFVkJRVVVzVDBGQlR5eEZRVUZGTEdWQlFXVXNSVUZCUlN4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRPVVVzVDBGQlR5eEZRVUZGTEhsQ1FVRjVRaXhGUVVGRkxFMUJRVTBzY1VSQlFYRkVMRU5CUVVNN1FVRkRhRWNzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxFMUJRVTBzTWtKQlFUSkNMRU5CUVVNN1FVRkROMFFzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEzaEVMRTlCUVU4c1JVRkJSU3hYUVVGWExFVkJRVVVzVFVGQlRTeGpRVUZqTEVOQlFVTTdRVUZGTTBNc1QwRkJUeXhGUVVGRkxHVkJRV1VzUlVGQlJTeGhRVUZoTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVZxUlN4TlFVRk5MSE5DUVVGelFpeEhRVUZITzBsQlF6ZENMSE5DUVVGelFqdEpRVU4wUWl4eFFrRkJjVUk3U1VGRGNrSXNjVUpCUVhGQ08wTkJRM1JDTEVOQlFVTTdRVUZGUml4VFFVRlRMSE5DUVVGelFpeERRVUZETEZOQlFXbENPMGxCUXk5RExFOUJRVThzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRelZFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlF6bENMRXRCUVdNc1JVRkRaQ3hUUVVGNVF5eHpRa0ZCYzBJc1JVRkRMMFFzVlVGQlZTeEhRVUZITEhOQ1FVRnpRanRKUVVWdVF5eEpRVUZKTEV0QlFVczdVVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRenRKUVVONFFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5vUlN4UFFVRlBMRXRCUVVzc1NVRkJTU3h4UWtGQmNVSXNRMEZCUXp0QlFVTjRReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEcxQ1FVRnRRaXhEUVVGRExFMUJUMjVETzBsQlEwTXNUVUZCVFN4RlFVTktMRk5CUVZNc1JVRkRWQ3hQUVVGUExFVkJRMUFzU1VGQlNTeEZRVU5LTEZGQlFWRXNSVUZEVWl4aFFVRmhMRWRCUVVjc1MwRkJTeXhGUVVOeVFpeFBRVUZQTEVkQlExSXNSMEZCUnl4TlFVRk5MRU5CUVVNN1NVRkRXQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wbEJRM2hETEUxQlFVMHNZMEZCWXl4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVNdlFpeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExGRkJRVkVzU1VGQlNTeEpRVUZKTEVsQlFVa3NZMEZCWXl4SlFVRkpMRXRCUVVzc1EwRkJRenRKUVVOMFJTeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRiRVFzVFVGQlRTeFhRVUZYTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEY0VRc1RVRkJUU3hQUVVGUExFZEJRVWNzVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJFUXNUVUZCVFN4WlFVRlpMRWRCUVVjc1QwRkJUeXhKUVVGSkxFdEJRVXNzUTBGQlF6dEpRVU4wUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhoUVVGaExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdTVUZETjBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4SFFVRkhMRmxCUVZrc1IwRkJSeXhOUVVGTkxFOUJRVThzUTBGQlF5eERRVUZETzBGQlF6ZEVMRU5CUVVNN1FVRkZSQ3hUUVVGVExGTkJRVk1zUTBGQlF5eExRVUZqTzBsQlF5OUNMRWxCUVVrc1EwRkJReXhMUVVGTE8xRkJRVVVzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZEZEVJc1NVRkJTU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0UlFVTjBRaXhQUVVGUExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU53UlN4UFFVRlBMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU03VTBGRGFrSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJRenRUUVVOV0xFZEJRVWNzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFOQlF6VkNMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEJRVU55UWl4RFFVRkRPMEZCUlVRc1UwRkJVeXhuUWtGQlowSXNRMEZCUXl4TFFVRmpPMGxCUTNSRExFbEJRVWtzUzBGQlN5eExRVUZMTEZOQlFWTTdVVUZCUlN4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVNeFF5eEpRVUZKTEU5QlFVOHNTMEZCU3l4TFFVRkxMRk5CUVZNN1VVRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF6dEpRVVUzUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhIUVVGSExFdEJRVXNzUlVGQlJTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8wbEJRMjVFTEVsQlFVa3NRMEZCUXl4SFFVRkhMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xRkJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdTVUZEYWtVc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTTdVVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRenRKUVVOdVJTeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMQ3RDUVVFclFpeExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTJ4RkxFTkJRVU03UVVGRlJDeFRRVUZUTEUxQlFVMHNRMEZCUXl4TlFVRm5RanRKUVVNNVFpeFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6bENMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzTWtKQlFUSkNMRU5CUTNwRExGVkJRVzFETEVWQlFVVXNSVUZEY2tNc1RVRkJWeXhGUVVGRk8wbEJXV0lzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhIUVVGSExFVkJRVVVzUzBGQlN5eEZRVUZGTEZOQlFWTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1NVRkRja1FzVFVGQlRTeExRVUZMTEVkQlExSXNUMEZCVHl4RFFVRkRMRXRCUVRSQ08xRkJRM0pETEdkQ1FVRm5RaXhEUVVGRExFdEJRVXM3VVVGRGRFSXNjVUpCUVhGQ0xFTkJRVU03U1VGRGVFSXNUVUZCVFN4VFFVRlRMRWRCUTFvc1QwRkJUeXhEUVVGRExFVkJRWGxDTzFGQlEyeERMR2RDUVVGblFpeERRVUZETEZOQlFWTTdVVUZETVVJc1IwRkJSeXhGUVVGRkxFOUJRVTg3VVVGRFdpeFBRVUZQTEVOQlFVTTdTVUZEVml4TlFVRk5MRmRCUVZjc1IwRkJSeXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGJFVXNUVUZCVFN4bFFVRmxMRWRCUVVjc1UwRkJVeXhEUVVNdlFpeG5Ra0ZCWjBJc1EwRkJReXhQUVVGUExFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVOMFJDeERRVUZETzBsQlEwWXNUVUZCVFN4UlFVRlJMRWRCUVVjc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8wbEJRM2hHTEUxQlFVMHNWVUZCVlN4SFFVTmlMRTlCUVU4c1EwRkJReXhWUVVGcFF5eEpRVUZKTEdkQ1FVRm5RaXhEUVVGRExGVkJRVlVzUTBGQlF6dEpRVU0xUlN4TlFVRk5MRlZCUVZVc1IwRkJSeXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNTVUZCU1N4blFrRkJaMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0SlFVVXZSU3hQUVVGUE8xRkJRMHdzUzBGQlN6dFJRVU5NTEUxQlFVMHNSVUZCUlR0WlFVTk9MRk5CUVZNN1dVRkRWQ3hSUVVGUkxFVkJRVVVzWjBKQlFXZENMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFTkJRVU03V1VGRGVrVXNUVUZCVFN4RlFVRkZMR2RDUVVGblFpeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTI1RkxGRkJRVkU3V1VGRFVpeFZRVUZWTzFsQlExWXNWVUZCVlR0VFFVTllPMHRCUTBZc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNkMEpCUVhkQ0xFTkJRM1JETEZWQlFXdENMRVZCUTJ4Q0xGRkJRWFZETzBsQlJYWkRMRTFCUVUwc1VVRkJVU3hIUVVGM1FpeEZRVUZGTEVOQlFVTTdTVUZEZWtNc1MwRkJTeXhOUVVGTkxFOUJRVThzU1VGQlNTeFJRVUZSTEVWQlFVVXNRMEZCUXp0UlFVTXZRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUXpWQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFZEJRVWNzUzBGQlN5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRE8xRkJRMnBGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSenRaUVVOb1Fpd3JSVUZCSzBVN1dVRkRMMFVzYlVKQlFXMUNMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRV01zUlVGQlJTeEhRVUZITEV0QlFWa3NSVUZCUlN4RlFVRkZPMmRDUVVNM1JDeEpRVUZKTEVOQlFVTTdiMEpCUTBnc1NVRkJTU3hGUVVGRkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN2QwSkJRM2hDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8zZENRVU5vUkN4UFFVRlBMRU5CUVVNc1NVRkJTU3hUUVVGVExFTkJRVU03YjBKQlEzaENMRU5CUVVNN1owSkJRMGdzUTBGQlF6dG5Ra0ZCUXl4TlFVRk5MRU5CUVVNN2IwSkJRMUFzTUVKQlFUQkNPMmRDUVVNMVFpeERRVUZETzJkQ1FVTkVMRTlCUVU4c1UwRkJVeXhEUVVGRE8xbEJRMjVDTEVOQlFVTTdXVUZEUkN4cFFrRkJhVUlzUlVGQlJTeExRVUZMTEVWQlFVVXNUMEZCWlN4RlFVRkZMRkZCUVdNc1JVRkJSU3hIUVVGSExFdEJRVmtzUlVGQlJTeEZRVUZGTzJkQ1FVTTFSU3hGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTTVReXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE0wTXNRMEZCUXp0VFFVTkdMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTTdRVUZEYkVJc1EwRkJRenRCUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEVsQlFVa3NUMEZCVHl4RlFVRkZPMHRCUTJwRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdTMEZEWml4WFFVRlhMRU5CUTFZc2QwVkJRWGRGTEVOQlEzcEZPMHRCUTBFc1RVRkJUU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMSEZEUVVGeFF5eERRVUZETzB0QlEycEZMRTFCUVUwc1EwRkJReXhsUVVGbExFVkJRVVVzTUVKQlFUQkNMRU5CUVVNN1MwRkRia1FzVFVGQlRTeERRVUZETEc5Q1FVRnZRaXhGUVVGRkxHOURRVUZ2UXl4RFFVRkRPMHRCUTJ4RkxFMUJRVTBzUTBGRFRDeHZRa0ZCYjBJc1JVRkRjRUlzZVVWQlFYbEZMRU5CUXpGRk8wdEJRMEVzVFVGQlRTeERRVU5NTEhWQ1FVRjFRaXhGUVVOMlFpeHpSVUZCYzBVc1EwRkRka1U3UzBGRFFTeE5RVUZOTEVOQlEwd3NjVUpCUVhGQ0xFVkJRM0pDTERoRlFVRTRSU3hEUVVNdlJUdExRVU5CTEUxQlFVMHNRMEZEVEN4M1FrRkJkMElzUlVGRGVFSXNkVVpCUVhWR08wbEJRM0pHTERKR1FVRXlSanRKUVVNelJpdzRSRUZCT0VRc1EwRkRha1U3UzBGRFFTeE5RVUZOTEVOQlEwd3NjMEpCUVhOQ0xFVkJRM1JDTEhsR1FVRjVSanRKUVVOMlJpdzJSVUZCTmtVN1NVRkROMFVzT0VSQlFUaEVMRU5CUTJwRk8wdEJRMEVzVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlpMRVZCUVVVc1JVRkJSVHRKUVVNM1FpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOd1FpeEZRVUZGTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMR05CUVdNc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVU51UlN4RFFVRkRPMGxCUTBZc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVOc1F5eE5RVUZOTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExESkNRVUV5UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU53UlN4SlFVRkpMRWRCUVdsRExFTkJRVU03U1VGRGRFTXNTVUZCU1N4RFFVRkRPMUZCUTBnc1IwRkJSeXhIUVVGSExFMUJRVTBzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZETlVJc2FVSkJRV2xDTEVOQlFVTXNUVUZCVFN4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVTnFSaXhGUVVGRkxFMUJRVTBzUlVGQlJTeExRVUZMTEVWQlFVVXNRMEZEYkVJc1EwRkJRenRSUVVOR0xFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTJwQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkZka0lzVFVGQlRTeExRVUZMTEVkQlFVa3NUMEZCWlN4RFFVRkRMRkZCUVZFc1EwRkJaMFFzUTBGQlF6dFJRVU40Uml4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlZTeERRVUZETzFGQlF5OUNMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZEYWtRc1NVRkJTU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdXVUZEY0VNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkRiRUlzVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZEWkN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFbEJRVWtzVjBGQlowSXNRMEZCUXp0UlFVTnlRaXhKUVVGSkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhKUVVGSkxFTkJRVU03WjBKQlEwZ3NWMEZCVnl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdXVUZEZGtNc1EwRkJRenRaUVVGRExFMUJRVTBzUTBGQlF6dG5Ra0ZEVUN4cFFrRkJhVUk3V1VGRGJrSXNRMEZCUXp0WlFVTkVMRWxCUVVrc1EwRkJReXhYUVVGWE8yZENRVU5rTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xIRkdRVUZ4Uml4RFFVTjBSaXhEUVVGRE8xRkJRMDRzUTBGQlF6dFJRVVZFTERoRlFVRTRSVHRSUVVNNVJTd3dSVUZCTUVVN1VVRkRNVVVzVFVGQlRTeG5Ra0ZCWjBJc1IwRkRia0lzVjBGQmJVSXNSVUZCUlN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXM3V1VGRE0wTXNWMEZCYlVJc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNRMEZCUXp0UlFVTnFSQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eG5Ra0ZCWjBJN1dVRkRkRU1zUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRXRCUVVzc1owSkJRV2RDTEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1MwRkJTeXhuUWtGQlowSXNRMEZCUXp0WlFVTjRSaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETzFGQlJXSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlU3V1VGRGFFTXNRMEZCUXl4RFFVRkRMSGRDUVVGM1FpeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVc1pVRkJaU3hEUVVGRE8xbEJRemxFTEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1VVRkZaQ3hKUVVGSkxFMUJRVTBzUTBGQlF5eFZRVUZWTzFsQlEyNUNMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenM3V1VGRmFrVXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgxUlVGQmRVVXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRmRFY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTA3V1VGRE1VSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXcwUWtGQk5FSXNUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlhaRkxFMUJRVTBzVlVGQlZTeEhRVUZITEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU1zWlVGQlpTeERRVU4yUkN4bFFVRmxMRVZCUTJZN1dVRkRSU3hUUVVGVExFVkJRVVVzVFVGQlRTeERRVUZETEZOQlFWTTdXVUZETTBJc1VVRkJVU3hGUVVGRkxFMUJRVTBzUTBGQlF5eFJRVUZSTzFsQlEzcENMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zVFVGQlRUdFpRVU55UWl4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRPMWxCUTJ4RkxGZEJRVmM3V1VGRFdDeFJRVUZSTzFsQlExSXNWVUZCVlN4RlFVRkZMRWxCUVVrc2VVSkJRWGxDTEVWQlFVVTdXVUZETTBNc1ZVRkJWU3hGUVVOU0xFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVenRUUVVNdlJDeERRVU5HTEVOQlFVTTdVVUZGUml4TFFVRkxMRTFCUVUwc1owSkJRV2RDTEVsQlFVa3NWVUZCVlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJRMmhFTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEYWtNc1EwRkJRenRSUVVWRUxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlEwNHNjMEpCUVhOQ0xFOUJRVThzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeFBRVUZQTEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUXk5R0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRSUVVOd1FpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8wbEJRM1JETEVOQlFVTTdXVUZCVXl4RFFVRkRPMUZCUTFRc1NVRkJTU3hIUVVGSE8xbEJRVVVzVFVGQlRTeEhRVUZITEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1NVRkROMElzUTBGQlF6dEJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUlV3c1QwRkJUeXhGUVVGRkxHTkJRV01zUlVGQlJTeERRVUZETzBGQlJURkNMRk5CUVZNc2FVSkJRV2xDTEVOQlFVTXNSMEZCVVR0SlFVTnFReXhKUVVGSkxFOUJRVThzUjBGQlJ5eExRVUZMTEZWQlFWVTdVVUZCUlN4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVNeFF5eEpRVUZKTEVkQlFVY3NSVUZCUlN4UFFVRlBMRWxCUVVrc1QwRkJUeXhIUVVGSExFTkJRVU1zVDBGQlR5eExRVUZMTEZWQlFWVTdVVUZCUlN4UFFVRlBMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU03U1VGRE1VVXNTVUZCU1N4SFFVRkhMRWxCUVVrc1QwRkJUeXhIUVVGSExFdEJRVXNzVVVGQlVTeEZRVUZGTEVOQlFVTTdVVUZEYmtNc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlF6RkZMRWxCUVVrc1QwRkJUeXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETzFsQlFVVXNUMEZCVHl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVrc1IwRkJNa0lzUTBGRGVFTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRM1JFTEVOQlFVTTdVVUZEUml4SlFVRkpMRTlCUVU4c1MwRkJTeXhMUVVGTExGVkJRVlU3V1VGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0SlFVTm9SQ3hEUVVGRE8wbEJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdRVUZEWWl4RFFVRkRPMEZCUlVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRTlCUVU4c1JVRkJSVHRMUVVOdVF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMHRCUTJ4Q0xGZEJRVmNzUTBGRFZpd3lSa0ZCTWtZc1EwRkROVVk3UzBGRFFTeE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzY1VOQlFYRkRMRU5CUVVNN1MwRkRha1VzVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxEUkRRVUUwUXl4RlFVRkZMRWxCUVVrc1EwRkJRenRMUVVNdlJTeE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzYzBOQlFYTkRMRVZCUVVVc1UwRkJVeXhEUVVGRE8wdEJRMmhHTEUxQlFVMHNRMEZCUXl4clFrRkJhMElzUlVGQlJTeDNRa0ZCZDBJc1JVRkJSU3hYUVVGWExFTkJRVU03UzBGRGFrVXNUVUZCVFN4RFFVRkRMSGRDUVVGM1FpeEZRVUZGTERoQ1FVRTRRaXhGUVVGRkxITkRRVUZ6UXl4RFFVRkRPMHRCUTNoSExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3d3UWtGQk1FSXNRMEZCUXp0TFFVTjRSQ3hOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEU5QlFWa3NSVUZCUlN4RlFVRkZPMGxCUXpkQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRGNrTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRemxETEVsQlFVa3NSMEZCYVVNc1EwRkJRenRKUVVOMFF5eEpRVUZKTEVOQlFVTTdVVUZEU0N4SFFVRkhMRWRCUVVjc1RVRkJUU3hYUVVGWExFTkJRVU1zVFVGQlRTeERRVU0xUWl4cFFrRkJhVUlzUTBGQlF5eE5RVUZOTEdWQlFXVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEycEdMRVZCUVVVc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVU5zUWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZEYWtJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVVZ5UXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxHVkJRV1VzUlVGQlJUdGhRVU5xUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dGhRVU4yUWl4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF6dGhRVU51UXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTTdZVUZEZEVNc1lVRkJZU3hGUVVGRk8yRkJRMllzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZGV0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhoUVVGaExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVVelJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTXZReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6ZERMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VVc1JVRkJSU3hEUVVGRExHRkJRV0VzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJSWHBGTEUxQlFVMHNVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE0wUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RlFVRkZMRTlCUVU4c1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETTBVc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1ZVRkJWU3hMUVVGTExGTkJRVk1zVjBGQlZ5eFhRVUZYTEZkQlFWY3NRMEZCUXl4RFFVRkRPMGxCUTJwSExFTkJRVU03U1VGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMUZCUTNCQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNRMEZCVlN4RFFVRkRMRU5CUVVNN1NVRkRkRU1zUTBGQlF6dFpRVUZUTEVOQlFVTTdVVUZEVkN4SlFVRkpMRWRCUVVjN1dVRkJSU3hOUVVGTkxFZEJRVWNzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZGVEN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFOUJRVThzUlVGQlJUdExRVU14UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wdEJRMW9zVjBGQlZ5eERRVUZETERoRVFVRTRSQ3hEUVVGRExFTkJRVU03UVVGRkwwVXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dEJRVU51UXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1FVRkZja01zVFVGQlRTeERRVUZETEU5QlFVOHNWVUZCVlN4SlFVRkpPMGxCUXpGQ0xFOUJRVThzVDBGQlR5eERRVUZETzBGQlEycENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5Qk1iMmRuYVc1bklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OXNiMmRuYVc1blhDSTdYRzVjYm1OdmJuTjBJR3h2WjJkbGNpQTlJRXh2WjJkcGJtY3VabTl5S0Z3aVptOXlMVzVsYzNSY0lpazdYRzVjYm1sdGNHOXlkQ0I3SUVOdmJXMWhibVFnZlNCbWNtOXRJRndpWTI5dGJXRnVaR1Z5WENJN1hHNXBiWEJ2Y25RZ1puTWdabkp2YlNCY0ltWnpYQ0k3WEc1cGJYQnZjblFnY0dGMGFDQm1jbTl0SUZ3aWNHRjBhRndpTzF4dWFXMXdiM0owSUhzZ1FXUmhjSFJsY2l3Z2JtOXliV0ZzYVhwbFNXMXdiM0owTENCVFpYSjJhV05sTENCVVlYTnJUVzlrWld3Z2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lGTmxiWFpsY2sxcFozSmhkR2x2YmxabGNuTnBiMjVwYm1jZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVV2YldsbmNtRjBhVzl1Y3k5VFpXMTJaWEpOYVdkeVlYUnBiMjVXWlhKemFXOXVhVzVuWENJN1hHNXBiWEJ2Y25RZ2V5Qk5hV2R5WVhScGIyNVRaWEoyYVdObElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psTDIxcFozSmhkR2x2Ym5OY0lqdGNibWx0Y0c5eWRDQjdJRWx1ZEdWeWJtRnNSWEp5YjNJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmlMV1JsWTI5eVlYUnZjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFNWxjM1JHWVdOMGIzSjVJSDBnWm5KdmJTQmNJa0J1WlhOMGFuTXZZMjl5WlZ3aU8xeHVhVzF3YjNKMElIc2dTVTVsYzNSQmNIQnNhV05oZEdsdmJpQjlJR1p5YjIwZ1hDSkFibVZ6ZEdwekwyTnZiVzF2Ymx3aU8xeHVhVzF3YjNKMElIc2dSRzlqZFcxbGJuUkNkV2xzWkdWeUxDQlRkMkZuWjJWeVRXOWtkV3hsSUgwZ1puSnZiU0JjSWtCdVpYTjBhbk12YzNkaFoyZGxjbHdpTzF4dVhHNWpiMjV6ZENCa1pXWmhkV3gwU1c1d2RYUkRZVzVrYVdSaGRHVnpJRDBnVzF4dUlDQmNJaTR2YkdsaUwyRndjQzV0YjJSMWJHVXVZMnB6WENJc1hHNGdJRndpTGk5c2FXSXZZWEJ3TG0xdlpIVnNaUzVxYzF3aUxGeHVJQ0JjSWk0dmMzSmpMMkZ3Y0M1dGIyUjFiR1V1ZEhOY0lpeGNibDA3WEc1Y2JtWjFibU4wYVc5dUlHUmxabUYxYkhSRFlXNWthV1JoZEdWRmVHbHpkSE1vWTJGdVpHbGtZWFJsT2lCemRISnBibWNwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdjbVYwZFhKdUlHWnpMbVY0YVhOMGMxTjVibU1vY0dGMGFDNXFiMmx1S0hCeWIyTmxjM011WTNka0tDa3NJR05oYm1ScFpHRjBaU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbVZ6YjJ4MlpVbHVjSFYwVUdGMGFDaGNiaUFnYVc1d2RYUS9PaUJ6ZEhKcGJtY3NYRzRnSUdWNGFYTjBjem9nS0dOaGJtUnBaR0YwWlRvZ2MzUnlhVzVuS1NBOVBpQmliMjlzWldGdUlEMGdaR1ZtWVhWc2RFTmhibVJwWkdGMFpVVjRhWE4wY3l4Y2JpQWdZMkZ1Wkdsa1lYUmxjeUE5SUdSbFptRjFiSFJKYm5CMWRFTmhibVJwWkdGMFpYTmNiaWs2SUhOMGNtbHVaeUI3WEc0Z0lHbG1JQ2hwYm5CMWRDa2djbVYwZFhKdUlHbHVjSFYwTzF4dUlDQmpiMjV6ZENCbWIzVnVaQ0E5SUdOaGJtUnBaR0YwWlhNdVptbHVaQ2dvWTJGdVpHbGtZWFJsS1NBOVBpQmxlR2x6ZEhNb1kyRnVaR2xrWVhSbEtTazdYRzRnSUhKbGRIVnliaUJtYjNWdVpDQjhmQ0JjSWk0dmMzSmpMMkZ3Y0M1dGIyUjFiR1V1ZEhOY0lqdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdKMWFXeGtUM1YwY0hWMFJtbHNaVkJoZEdnb2NHRnlZVzF6T2lCN1hHNGdJRzkxZEhCMWRFUnBjam9nYzNSeWFXNW5PMXh1SUNCd2EyZE9ZVzFsUHpvZ2MzUnlhVzVuTzF4dUlDQnVZVzFsUHpvZ2MzUnlhVzVuTzF4dUlDQm1hV3hsVG1GdFpUODZJSE4wY21sdVp6dGNiaUFnWVhCd1pXNWtWbVZ5YzJsdmJqODZJR0p2YjJ4bFlXNDdYRzRnSUhabGNuTnBiMjQvT2lCemRISnBibWM3WEc1OUtUb2djM1J5YVc1bklIdGNiaUFnWTI5dWMzUWdlMXh1SUNBZ0lHOTFkSEIxZEVScGNpeGNiaUFnSUNCd2EyZE9ZVzFsTEZ4dUlDQWdJRzVoYldVc1hHNGdJQ0FnWm1sc1pVNWhiV1VzWEc0Z0lDQWdZWEJ3Wlc1a1ZtVnljMmx2YmlBOUlHWmhiSE5sTEZ4dUlDQWdJSFpsY25OcGIyNHNYRzRnSUgwZ1BTQndZWEpoYlhNN1hHNGdJR052Ym5OMElHSmhjMlZFYVhJZ1BTQndZWFJvTG5KbGMyOXNkbVVvYjNWMGNIVjBSR2x5S1R0Y2JpQWdZMjl1YzNRZ1pHVm1ZWFZzZEZCclowNWhiV1VnUFNCd2EyZE9ZVzFsTzF4dUlDQmpiMjV6ZENCeVpYTnZiSFpsWkZKaGQxTnZkWEpqWlNBOUlHWnBiR1ZPWVcxbElIeDhJRzVoYldVZ2ZId2daR1ZtWVhWc2RGQnJaMDVoYldVZ2ZId2dYQ0poY0dsY0lqdGNiaUFnWTI5dWMzUWdZbUZ6WlU1aGJXVWdQU0J3WVhSb0xtSmhjMlZ1WVcxbEtISmxjMjlzZG1Wa1VtRjNVMjkxY21ObEtUdGNiaUFnWTI5dWMzUWdjbVZ6YjJ4MlpXUlNZWGNnUFNCaVlYTmxUbUZ0WlM1eVpYQnNZV05sS0M5YlhGeGNYQzlkTDJjc0lGd2lYMXdpS1R0Y2JpQWdZMjl1YzNRZ2RISnBiVzFsWkNBOUlISmxjMjlzZG1Wa1VtRjNMbkpsY0d4aFkyVW9MMTViTGw5ZEt5OHNJRndpWENJcE8xeHVJQ0JqYjI1emRDQnlaWE52YkhabFpFNWhiV1VnUFNCMGNtbHRiV1ZrSUh4OElGd2lZWEJwWENJN1hHNGdJR052Ym5OMElITjFabVpwZUNBOUlHRndjR1Z1WkZabGNuTnBiMjRnSmlZZ2RtVnljMmx2YmlBL0lHQXRKSHQyWlhKemFXOXVmV0FnT2lCY0lsd2lPMXh1SUNCeVpYUjFjbTRnY0dGMGFDNXFiMmx1S0dKaGMyVkVhWElzSUdBa2UzSmxjMjlzZG1Wa1RtRnRaWDBrZTNOMVptWnBlSDB1YW5OdmJtQXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQndZWEp6WlV4cGMzUW9kbUZzZFdVNklIVnVhMjV2ZDI0cE9pQnpkSEpwYm1kYlhTQjdYRzRnSUdsbUlDZ2hkbUZzZFdVcElISmxkSFZ5YmlCYlhUdGNiaUFnYVdZZ0tFRnljbUY1TG1selFYSnlZWGtvZG1Gc2RXVXBLVnh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaUzVtYkdGMFRXRndLQ2hsYm5SeWVTa2dQVDRnY0dGeWMyVk1hWE4wS0dWdWRISjVLU2t1Wm1sc2RHVnlLRUp2YjJ4bFlXNHBPMXh1SUNCeVpYUjFjbTRnVTNSeWFXNW5LSFpoYkhWbEtWeHVJQ0FnSUM1emNHeHBkQ2hjSWl4Y0lpbGNiaUFnSUNBdWJXRndLQ2hsYm5SeWVTa2dQVDRnWlc1MGNua3VkSEpwYlNncEtWeHVJQ0FnSUM1bWFXeDBaWElvUW05dmJHVmhiaWs3WEc1OVhHNWNibVoxYm1OMGFXOXVJSEJoY25ObFFtOXZiR1ZoYmtac1lXY29kbUZzZFdVNklIVnVhMjV2ZDI0cE9pQmliMjlzWldGdUlId2dkVzVrWldacGJtVmtJSHRjYmlBZ2FXWWdLSFpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJRndpWW05dmJHVmhibHdpS1NCeVpYUjFjbTRnZG1Gc2RXVTdYRzVjYmlBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkNBOUlHQWtlM1poYkhWbGZXQXVkSEpwYlNncExuUnZURzkzWlhKRFlYTmxLQ2s3WEc0Z0lHbG1JQ2hiWENJeFhDSXNJRndpZEhKMVpWd2lMQ0JjSW5sbGMxd2lMQ0JjSW05dVhDSmRMbWx1WTJ4MVpHVnpLRzV2Y20xaGJHbDZaV1FwS1NCeVpYUjFjbTRnZEhKMVpUdGNiaUFnYVdZZ0tGdGNJakJjSWl3Z1hDSm1ZV3h6WlZ3aUxDQmNJbTV2WENJc0lGd2liMlptWENKZExtbHVZMngxWkdWektHNXZjbTFoYkdsNlpXUXBLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQkpiblpoYkdsa0lHSnZiMnhsWVc0Z1pteGhaeUIyWVd4MVpUb2dKSHQyWVd4MVpYMWdLVHRjYm4xY2JseHVablZ1WTNScGIyNGdkVzVwY1hWbEtIWmhiSFZsY3pvZ2MzUnlhVzVuVzEwcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUhKbGRIVnliaUJiTGk0dWJtVjNJRk5sZENoMllXeDFaWE1wWFR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpsYzI5c2RtVk5hV2R5WVhSbFEyOXRiV0Z1WkVOdmJtWnBaeWhjYmlBZ2IzQjBhVzl1Y3pvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRnUFNCN2ZTeGNiaUFnY0d0bk9pQmhibmtnUFNCN2ZWeHVLVG9nZTF4dUlDQnBibkIxZERvZ2MzUnlhVzVuTzF4dUlDQmpiMjVtYVdjNklIdGNiaUFnSUNCMGIxWmxjbk5wYjI0NklITjBjbWx1Wnp0Y2JpQWdJQ0IwWVhOclRXOWtaVG9nWW05dmJHVmhiaUI4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JrY25sU2RXNDZJR0p2YjJ4bFlXNGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdabXhoZG05MWNuTTZJSE4wY21sdVoxdGRPMXh1SUNBZ0lIWmxjbk5wYjI1RWFYSTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnlaV1psY21WdVkyVnpPaUJ6ZEhKcGJtZGJYVHRjYmlBZ2ZUdGNibjBnZTF4dUlDQmpiMjV6ZENCd1lXTnJZV2RsVFdsbmNtRjBhVzl1SUQwZ2NHdG5QeTVrWldOaFpqOHViV2xuY21GMGFXOXVJRDgvSUh0OU8xeHVJQ0JqYjI1emRDQnBibkIxZENBOVhHNGdJQ0FnS0c5d2RHbHZibk11YVc1d2RYUWdZWE1nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrS1NCOGZGeHVJQ0FnSUhCaFkydGhaMlZOYVdkeVlYUnBiMjR1YVc1d2RYUWdmSHhjYmlBZ0lDQmNJaTR2YzNKakwyRndjQzV0YjJSMWJHVXVkSE5jSWp0Y2JpQWdZMjl1YzNRZ2RHOVdaWEp6YVc5dUlEMWNiaUFnSUNBb2IzQjBhVzl1Y3k1MGJ5QmhjeUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FwSUh4OFhHNGdJQ0FnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTUwYjFabGNuTnBiMjRnZkh4Y2JpQWdJQ0J3YTJjL0xuWmxjbk5wYjI0Z2ZIeGNiaUFnSUNCY0lqQXVNQzR3WENJN1hHNGdJR052Ym5OMElHTnNhVVpzWVhadmRYSnpJRDBnY0dGeWMyVk1hWE4wS0c5d2RHbHZibk11Wm14aGRtOTFjaUEvUHlCdmNIUnBiMjV6TG1Ga1lYQjBaWElwTzF4dUlDQmpiMjV6ZENCd1lXTnJZV2RsUm14aGRtOTFjbk1nUFNCd1lYSnpaVXhwYzNRb1hHNGdJQ0FnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTVtYkdGMmIzVnlJRDgvSUhCaFkydGhaMlZOYVdkeVlYUnBiMjR1Wm14aGRtOTFjbk5jYmlBZ0tUdGNiaUFnWTI5dWMzUWdabXhoZG05MWNuTWdQU0JqYkdsR2JHRjJiM1Z5Y3k1c1pXNW5kR2dnUGlBd0lEOGdkVzVwY1hWbEtHTnNhVVpzWVhadmRYSnpLU0E2SUhWdWFYRjFaU2h3WVdOcllXZGxSbXhoZG05MWNuTXBPMXh1SUNCamIyNXpkQ0IyWlhKemFXOXVSR2x5SUQxY2JpQWdJQ0FvYjNCMGFXOXVjeTUyWlhKemFXOXVSR2x5SUdGeklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDa2dmSHdnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTUyWlhKemFXOXVSR2x5TzF4dUlDQmpiMjV6ZENCeVpXWmxjbVZ1WTJWeklEMGdjR0Z5YzJWTWFYTjBLRzl3ZEdsdmJuTXVjbVZtWlhKbGJtTmxJRDgvSUhCaFkydGhaMlZOYVdkeVlYUnBiMjR1Y21WbVpYSmxibU5sY3lrN1hHNWNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQnBibkIxZEN4Y2JpQWdJQ0JqYjI1bWFXYzZJSHRjYmlBZ0lDQWdJSFJ2Vm1WeWMybHZiaXhjYmlBZ0lDQWdJSFJoYzJ0TmIyUmxPaUJ3WVhKelpVSnZiMnhsWVc1R2JHRm5LRzl3ZEdsdmJuTXVkR0Z6YTAxdlpHVWdQejhnY0dGamEyRm5aVTFwWjNKaGRHbHZiaTUwWVhOclRXOWtaU2tzWEc0Z0lDQWdJQ0JrY25sU2RXNDZJSEJoY25ObFFtOXZiR1ZoYmtac1lXY29iM0IwYVc5dWN5NWtjbmxTZFc0Z1B6OGdjR0ZqYTJGblpVMXBaM0poZEdsdmJpNWtjbmxTZFc0cExGeHVJQ0FnSUNBZ1pteGhkbTkxY25Nc1hHNGdJQ0FnSUNCMlpYSnphVzl1UkdseUxGeHVJQ0FnSUNBZ2NtVm1aWEpsYm1ObGN5eGNiaUFnSUNCOUxGeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZblZwYkdSR2FXeGxWbVZ5YzJsdmJraGhibVJzWlhKektGeHVJQ0IyWlhKemFXOXVSR2x5T2lCemRISnBibWNzWEc0Z0lHRmtZWEIwWlhKek9pQkJaR0Z3ZEdWeVBHRnVlU3dnWVc1NUxDQmhibmtzSUdGdWVUNWJYVnh1S1RvZ1VHRnlkR2xoYkR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUdOdmJuTjBJR2hoYm1Sc1pYSnpPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUQwZ2UzMDdYRzRnSUdadmNpQW9ZMjl1YzNRZ1lXUmhjSFJsY2lCdlppQmhaR0Z3ZEdWeWN5a2dlMXh1SUNBZ0lHTnZibk4wSUdGc2FXRnpJRDBnWVdSaGNIUmxjaTVoYkdsaGN6dGNiaUFnSUNCamIyNXpkQ0JtYVd4bElEMGdjR0YwYUM1cWIybHVLSFpsY25OcGIyNUVhWElzSUdBa2UyRnNhV0Z6ZlM1dGFXZHlZWFJwYjI0dWRtVnljMmx2Ym1BcE8xeHVJQ0FnSUdoaGJtUnNaWEp6VzJGc2FXRnpYU0E5SUh0Y2JpQWdJQ0FnSUM4dklHRmtZWEIwWlhJZ1lXNWtJR04wZUVGeVozTWdZWEpsSUdGMllXbHNZV0pzWlNCaWRYUWdibTkwSUc1bFpXUmxaQ0RpZ0pRZ2RtVnljMmx2YmlCc2FYWmxjeUJwYmlCMGFHVWdabWxzWlZ4dUlDQWdJQ0FnY21WMGNtbGxkbVZNWVhOMFZtVnljMmx2YmpvZ1lYTjVibU1nS0Y5aFpHRndkR1Z5UHpvZ1lXNTVMQ0F1TGk1ZllYSm5jem9nWVc1NVcxMHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9abk11WlhocGMzUnpVM2x1WXlobWFXeGxLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RpQTlJR1p6TG5KbFlXUkdhV3hsVTNsdVl5aG1hV3hsTENCY0luVjBaaTA0WENJcExuUnlhVzBvS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjJJSHg4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklHNXZJR1pwYkdVZ2VXVjBJT0tHa2lCbWFYSnpkQ0J5ZFc1Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lITmxkRU4xY25KbGJuUldaWEp6YVc5dU9pQmhjM2x1WXlBb2RtVnljMmx2YmpvZ2MzUnlhVzVuTENCZllXUmhjSFJsY2o4NklHRnVlU3dnTGk0dVgyRnlaM002SUdGdWVWdGRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHWnpMbTFyWkdseVUzbHVZeWgyWlhKemFXOXVSR2x5TENCN0lISmxZM1Z5YzJsMlpUb2dkSEoxWlNCOUtUdGNiaUFnSUNBZ0lDQWdabk11ZDNKcGRHVkdhV3hsVTNsdVl5aG1hV3hsTENCMlpYSnphVzl1TENCY0luVjBaaTA0WENJcE8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNCOU8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCb1lXNWtiR1Z5Y3p0Y2JuMWNibHh1WTI5dWMzUWdiV2xuY21GMFpVTnZiVzFoYm1RZ1BTQnVaWGNnUTI5dGJXRnVaQ2dwWEc0Z0lDNXVZVzFsS0Z3aWJXbG5jbUYwWlZ3aUtWeHVJQ0F1WkdWelkzSnBjSFJwYjI0b1hHNGdJQ0FnWENKaWIyOTBjeUIwYUdVZ1lYQndJR052Ym5SbGVIUWdhR1ZoWkd4bGMzTnNlU3dnWlhobFkzVjBaWE1nWkdWallXWWdiV2xuY21GMGFXOXVjeXdnWVc1a0lHVjRhWFJ6WENKY2JpQWdLVnh1SUNBdWIzQjBhVzl1S0Z3aUxTMXBibkIxZENBOFUzUnlhVzVuUGx3aUxDQmNJbkJoZEdnZ2RHOGdZWEJ3SUcxdlpIVnNaU0FvZEhNZ2IzSWdZMjl0Y0dsc1pXUXBYQ0lwWEc0Z0lDNXZjSFJwYjI0b1hDSXRMWFJ2SUR4VGRISnBibWMrWENJc0lGd2lkR0Z5WjJWMElHMXBaM0poZEdsdmJpQjJaWEp6YVc5dVhDSXBYRzRnSUM1dmNIUnBiMjRvWENJdExXWnNZWFp2ZFhJZ1BGTjBjbWx1Wno1Y0lpd2dYQ0owWVhKblpYUWdabXhoZG05MWNpaHpLU3dnWTI5dGJXRXRjMlZ3WVhKaGRHVmtYQ0lwWEc0Z0lDNXZjSFJwYjI0b1hHNGdJQ0FnWENJdExXRmtZWEIwWlhJZ1BGTjBjbWx1Wno1Y0lpeGNiaUFnSUNCY0ltRmtZWEIwWlhJZ1pteGhkbTkxY2lCaGJHbGhjeWhsY3lrc0lHTnZiVzFoTFhObGNHRnlZWFJsWkNBb2MyRnRaU0JpWldoaGRtbHZjaUJoY3lBdExXWnNZWFp2ZFhJcFhDSmNiaUFnS1Z4dUlDQXViM0IwYVc5dUtGeHVJQ0FnSUZ3aUxTMTBZWE5yTFcxdlpHVWdXMEp2YjJ4bFlXNWRYQ0lzWEc0Z0lDQWdYQ0p5ZFc1eklHMXBaM0poZEdsdmJpQjJhV0VnZEdGemF5QnRiMlJsSUNoMGNuVmxMMlpoYkhObEtTNGdZV05qWlhCMGN5QmlZWEpsSUdac1lXY2dZWE1nZEhKMVpWd2lYRzRnSUNsY2JpQWdMbTl3ZEdsdmJpaGNiaUFnSUNCY0lpMHRaSEo1TFhKMWJpQmJRbTl2YkdWaGJsMWNJaXhjYmlBZ0lDQmNJbkoxYm5NZ2JXbG5jbUYwYVc5dWN5QjNhWFJvSUdSeWVTMXlkVzRnWTI5dWRHVjRkQ0FvZEhKMVpTOW1ZV3h6WlNrdUlHRmpZMlZ3ZEhNZ1ltRnlaU0JtYkdGbklHRnpJSFJ5ZFdWY0lseHVJQ0FwWEc0Z0lDNXZjSFJwYjI0b1hHNGdJQ0FnWENJdExYWmxjbk5wYjI0dFpHbHlJRHhUZEhKcGJtYytYQ0lzWEc0Z0lDQWdYQ0prYVhKbFkzUnZjbmtnZDJobGNtVWdjR1Z5TFdGa1lYQjBaWElnZG1WeWMybHZiaUJtYVd4bGN5QmhjbVVnY0dWeWMybHpkR1ZrSUNobExtY3VJR0VnUkc5amEyVnlJSFp2YkhWdFpTQndZWFJvS1M0Z1hDSWdLMXh1SUNBZ0lDQWdYQ0pGWVdOb0lHRmtZWEIwWlhJZ2QzSnBkR1Z6SUdsMGN5QnNZWE4wTFcxcFozSmhkR1ZrSUhabGNuTnBiMjRnZEc4Z1BIWmxjbk5wYjI1RWFYSStMenhoYkdsaGN6NHViV2xuY21GMGFXOXVMblpsY25OcGIyNHVJRndpSUN0Y2JpQWdJQ0FnSUZ3aVEyRnVJR0ZzYzI4Z1ltVWdjMlYwSUhacFlTQndZV05yWVdkbExtcHpiMjRnWkdWallXWXViV2xuY21GMGFXOXVMblpsY25OcGIyNUVhWEl1WENKY2JpQWdLVnh1SUNBdWIzQjBhVzl1S0Z4dUlDQWdJRndpTFMxeVpXWmxjbVZ1WTJVZ1BGTjBjbWx1Wno1Y0lpeGNiaUFnSUNCY0luSjFiaUJ2Ym14NUlIUm9aU0J1WVcxbFpDQnRhV2R5WVhScGIyNGdjbVZtWlhKbGJtTmxLSE1wTENCamIyMXRZUzF6WlhCaGNtRjBaV1FnS0dVdVp5NGdKM0J5YjJSMVkzUXRiV2xuY21GMGFXOXVKeWt1SUZ3aUlDdGNiaUFnSUNBZ0lGd2lRbmx3WVhOelpYTWdkbVZ5YzJsdmJpQnlZVzVuWlNCbWFXeDBaWEpwYm1jZzRvQ1VJSFZ6WlNCbWIzSWdlbVZ5Ynkxa1lYa2diM0lnYjI1bExXOW1aaUJ0YVdkeVlYUnBiMjV6TGlCY0lpQXJYRzRnSUNBZ0lDQmNJa05oYmlCaGJITnZJR0psSUhObGRDQjJhV0VnY0dGamEyRm5aUzVxYzI5dUlHUmxZMkZtTG0xcFozSmhkR2x2Ymk1eVpXWmxjbVZ1WTJWekxsd2lYRzRnSUNsY2JpQWdMbUZqZEdsdmJpaGhjM2x1WXlBb2IzQjBhVzl1Y3pvZ1lXNTVLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdjR3RuSUQwZ1NsTlBUaTV3WVhKelpTaGNiaUFnSUNBZ0lHWnpMbkpsWVdSR2FXeGxVM2x1WXlod1lYUm9MbXB2YVc0b2NISnZZMlZ6Y3k1amQyUW9LU3dnWENKd1lXTnJZV2RsTG1wemIyNWNJaWtzSUZ3aWRYUm1MVGhjSWlsY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUd4dloyZGxjaTVtYjNJb1hDSnRhV2R5WVhSbFhDSXBPMXh1SUNBZ0lHTnZibk4wSUhzZ2FXNXdkWFFzSUdOdmJtWnBaeUI5SUQwZ2NtVnpiMngyWlUxcFozSmhkR1ZEYjIxdFlXNWtRMjl1Wm1sbktHOXdkR2x2Ym5Nc0lIQnJaeWs3WEc0Z0lDQWdiR1YwSUdGd2NEb2dTVTVsYzNSQmNIQnNhV05oZEdsdmJpQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWVhCd0lEMGdZWGRoYVhRZ1RtVnpkRVpoWTNSdmNua3VZM0psWVhSbEtGeHVJQ0FnSUNBZ0lDQnlaWE52YkhabFRtVnpkRTF2WkhWc1pTaGhkMkZwZENCdWIzSnRZV3hwZW1WSmJYQnZjblFvYVcxd2IzSjBLSEJoZEdndWFtOXBiaWh3Y205alpYTnpMbU4zWkNncExDQnBibkIxZENrcEtTa3NYRzRnSUNBZ0lDQWdJSHNnYkc5bloyVnlPaUJtWVd4elpTQjlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdZWGRoYVhRZ1lYQndMbWx1YVhRb0tUdGNiaUFnSUNBZ0lHeHZaeTVwYm1adktHQkJjSEFnWW05dmRHVmtZQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR05oWTJobElEMGdLRUZrWVhCMFpYSWdZWE1nWVc1NUtWdGNJbDlqWVdOb1pWd2lYU0JoY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JCWkdGd2RHVnlQR0Z1ZVN3Z1lXNTVMQ0JoYm5rc0lHRnVlVDQrTzF4dUlDQWdJQ0FnWTI5dWMzUWdjMlZsYmlBOUlHNWxkeUJUWlhROGMzUnlhVzVuUGlncE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWVdSaGNIUmxjbk1nUFNCUFltcGxZM1F1ZG1Gc2RXVnpLR05oWTJobEtTNW1hV3gwWlhJb0tHRXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLSE5sWlc0dWFHRnpLR0V1WVd4cFlYTXBLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnSUNBZ0lITmxaVzR1WVdSa0tHRXVZV3hwWVhNcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQWdJSDBwTzF4dVhHNGdJQ0FnSUNCc1pYUWdkR0Z6YTFObGNuWnBZMlU2SUdGdWVUdGNiaUFnSUNBZ0lHbG1JQ2hqYjI1bWFXY3VkR0Z6YTAxdlpHVXBJSHRjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0IwWVhOclUyVnlkbWxqWlNBOUlGTmxjblpwWTJVdVoyVjBLRlJoYzJ0TmIyUmxiQ2s3WEc0Z0lDQWdJQ0FnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJQ0FnSUNBZ0lDOHZJRzV2ZENCeVpXZHBjM1JsY21Wa1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdhV1lnS0NGMFlYTnJVMlZ5ZG1salpTbGNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUdCMFlYTnJMVzF2WkdVZ2NtVnhkV1Z6ZEdWa0lHSjFkQ0J1YnlCVVlYTnJVMlZ5ZG1salpTQnBjeUJ5WldkcGMzUmxjbVZrSUNobGVIQmxZM1JsWkNCQWMyVnlkbWxqWlNoVVlYTnJUVzlrWld3cEtXQmNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBdkx5QkZlR05zZFdSbElIUm9aU0IwWVhOcklHVnVaMmx1WlNkeklHRmtZWEIwWlhJZ1puSnZiU0J0YVdkeVlYUnBiMjRnZEdGeVoyVjBjeURpZ0pRZ1RXbG5jbUYwYVc5dVUyVnlkbWxqWlZ4dUlDQWdJQ0FnTHk4Z2QybHNiQ0IwYUhKdmR5QnBaaUJwZENCaGNIQmxZWEp6SUdsdUlIUm9aU0JoWkdGd2RHVnlJR3hwYzNRZ1lXeHZibWR6YVdSbElHTm1aeTUwWVhOclUyVnlkbWxqWlM1Y2JpQWdJQ0FnSUdOdmJuTjBJSFJoYzJ0QlpHRndkR1Z5UVd4cFlYTTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ0E5WEc0Z0lDQWdJQ0FnSUNoMFlYTnJVMlZ5ZG1salpTQmhjeUJoYm5rcFB5NWpiR2xsYm5RL0xtRmtZWEIwWlhJL0xtRnNhV0Z6SUh4OFhHNGdJQ0FnSUNBZ0lDaDBZWE5yVTJWeWRtbGpaU0JoY3lCaGJua3BQeTVqYkdsbGJuUS9MbUZrWVhCMFpYSS9MbVpzWVhadmRYSTdYRzRnSUNBZ0lDQmpiMjV6ZENCdGFXZHlZWFJsUVdSaGNIUmxjbk1nUFNCMFlYTnJRV1JoY0hSbGNrRnNhV0Z6WEc0Z0lDQWdJQ0FnSUQ4Z1lXUmhjSFJsY25NdVptbHNkR1Z5S0NoaEtTQTlQaUJoTG1Gc2FXRnpJQ0U5UFNCMFlYTnJRV1JoY0hSbGNrRnNhV0Z6SUNZbUlHRXVabXhoZG05MWNpQWhQVDBnZEdGemEwRmtZWEIwWlhKQmJHbGhjeWxjYmlBZ0lDQWdJQ0FnT2lCaFpHRndkR1Z5Y3p0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYUdGdVpHeGxjbk1nUFNCamIyNW1hV2N1ZG1WeWMybHZia1JwY2x4dUlDQWdJQ0FnSUNBL0lHSjFhV3hrUm1sc1pWWmxjbk5wYjI1SVlXNWtiR1Z5Y3loamIyNW1hV2N1ZG1WeWMybHZia1JwY2l3Z2JXbG5jbUYwWlVGa1lYQjBaWEp6S1Z4dUlDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lDQWdhV1lnS0dOdmJtWnBaeTUyWlhKemFXOXVSR2x5S1Z4dUlDQWdJQ0FnSUNCc2IyY3VhVzVtYnloZ1ZtVnljMmx2YmlCMGNtRmphMmx1WnpvZ0pIdHdZWFJvTG5KbGMyOXNkbVVvWTI5dVptbG5MblpsY25OcGIyNUVhWElwZldBcE8xeHVJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0JzYjJjdWQyRnliaWhnVG04Z0xTMTJaWEp6YVc5dUxXUnBjaUJ6WlhRZzRvQ1VJR1YyWlhKNUlISjFiaUIzYVd4c0lISmxMV0Z3Y0d4NUlHRnNiQ0J0YVdkeVlYUnBiMjV6SUhWd0lIUnZJQ1I3WTI5dVptbG5MblJ2Vm1WeWMybHZibjFnS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLR052Ym1acFp5NXlaV1psY21WdVkyVnpMbXhsYm1kMGFDbGNiaUFnSUNBZ0lDQWdiRzluTG1sdVptOG9ZRkoxYm01cGJtY2diMjVzZVNCeVpXWmxjbVZ1WTJWek9pQWtlMk52Ym1acFp5NXlaV1psY21WdVkyVnpMbXB2YVc0b1hDSXNJRndpS1gxZ0tUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2JXbG5jbUYwYVc5dWN5QTlJR0YzWVdsMElFMXBaM0poZEdsdmJsTmxjblpwWTJVdWJXbG5jbUYwWlVGa1lYQjBaWEp6S0Z4dUlDQWdJQ0FnSUNCdGFXZHlZWFJsUVdSaGNIUmxjbk1zWEc0Z0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBiMVpsY25OcGIyNDZJR052Ym1acFp5NTBiMVpsY25OcGIyNHNYRzRnSUNBZ0lDQWdJQ0FnZEdGemEwMXZaR1U2SUdOdmJtWnBaeTUwWVhOclRXOWtaU3hjYmlBZ0lDQWdJQ0FnSUNCa2NubFNkVzQ2SUdOdmJtWnBaeTVrY25sU2RXNHNYRzRnSUNBZ0lDQWdJQ0FnWm14aGRtOTFjbk02SUdOdmJtWnBaeTVtYkdGMmIzVnljeTVzWlc1bmRHZ2dQaUF3SUQ4Z1kyOXVabWxuTG1ac1lYWnZkWEp6SURvZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQWdJSFJoYzJ0VFpYSjJhV05sTEZ4dUlDQWdJQ0FnSUNBZ0lHaGhibVJzWlhKekxGeHVJQ0FnSUNBZ0lDQWdJSFpsY25OcGIyNXBibWM2SUc1bGR5QlRaVzEyWlhKTmFXZHlZWFJwYjI1V1pYSnphVzl1YVc1bktDa3NYRzRnSUNBZ0lDQWdJQ0FnY21WbVpYSmxibU5sY3pwY2JpQWdJQ0FnSUNBZ0lDQWdJR052Ym1acFp5NXlaV1psY21WdVkyVnpMbXhsYm1kMGFDQStJREFnUHlCamIyNW1hV2N1Y21WbVpYSmxibU5sY3lBNklIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCdGFXZHlZWFJwYjI1VFpYSjJhV05sSUc5bUlHMXBaM0poZEdsdmJuTWdmSHdnVzEwcElIdGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2JXbG5jbUYwYVc5dVUyVnlkbWxqWlM1MGNtRmpheWdwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCc2IyY3VhVzVtYnloY2JpQWdJQ0FnSUNBZ1lFMXBaM0poZEdsdmJpQmpiMjF3YkdWMFpXUWtlMjl3ZEdsdmJuTXVkRzhnZkh3Z2NHdG5MblpsY25OcGIyNGdQeUJnSUhWd0lIUnZJQ1I3YjNCMGFXOXVjeTUwYnlCOGZDQndhMmN1ZG1WeWMybHZibjFnSURvZ1hDSmNJbjFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDBnWm1sdVlXeHNlU0I3WEc0Z0lDQWdJQ0JwWmlBb1lYQndLU0JoZDJGcGRDQmhjSEF1WTJ4dmMyVW9LVHRjYmlBZ0lDQjlYRzRnSUgwcE8xeHVYRzVsZUhCdmNuUWdleUJ0YVdkeVlYUmxRMjl0YldGdVpDQjlPMXh1WEc1bWRXNWpkR2x2YmlCeVpYTnZiSFpsVG1WemRFMXZaSFZzWlNodGIyUTZJR0Z1ZVNrNklHRnVlU0I3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdiVzlrSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUhKbGRIVnliaUJ0YjJRN1hHNGdJR2xtSUNodGIyUS9MbVJsWm1GMWJIUWdKaVlnZEhsd1pXOW1JRzF2WkM1a1pXWmhkV3gwSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUhKbGRIVnliaUJ0YjJRdVpHVm1ZWFZzZER0Y2JpQWdhV1lnS0cxdlpDQW1KaUIwZVhCbGIyWWdiVzlrSUQwOVBTQmNJbTlpYW1WamRGd2lLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyeGhjM05sY3lBOUlFOWlhbVZqZEM1MllXeDFaWE1vYlc5a0tTNW1hV3gwWlhJb0tIWXBJRDArSUhSNWNHVnZaaUIySUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwTzF4dUlDQWdJR2xtSUNoamJHRnpjMlZ6TG14bGJtZDBhQ0E5UFQwZ01Ta2djbVYwZFhKdUlHTnNZWE56WlhOYk1GMDdYRzRnSUNBZ1kyOXVjM1FnYm1GdFpXUWdQU0FvYlc5a0lHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRwVzF4dUlDQWdJQ0FnVDJKcVpXTjBMbXRsZVhNb2JXOWtLUzVtYVc1a0tDaHJLU0E5UGlBdlRXOWtkV3hsSkM4dWRHVnpkQ2hyS1NrZ2ZId2dYQ0pjSWx4dUlDQWdJRjA3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ1WVcxbFpDQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtTQnlaWFIxY200Z2JtRnRaV1E3WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzF2WkR0Y2JuMWNibHh1WTI5dWMzUWdaWGh3YjNKMFFYQnBRMjl0YldGdVpDQTlJRzVsZHlCRGIyMXRZVzVrS0NsY2JpQWdMbTVoYldVb1hDSmxlSEJ2Y25RdFlYQnBYQ0lwWEc0Z0lDNWtaWE5qY21sd2RHbHZiaWhjYmlBZ0lDQmNJbUp2YjNSeklIUm9aU0JoY0hBZ1kyOXVkR1Y0ZENCb1pXRmtiR1Z6YzJ4NUxDQmxlSFJ5WVdOMGN5QjBhR1VnVDNCbGJrRlFTU0J6Y0dWakxDQmhibVFnZDNKcGRHVnpJR2wwSUhSdklHRWdTbE5QVGlCbWFXeGxYQ0pjYmlBZ0tWeHVJQ0F1YjNCMGFXOXVLRndpTFMxcGJuQjFkQ0E4VTNSeWFXNW5QbHdpTENCY0luQmhkR2dnZEc4Z1lYQndJRzF2WkhWc1pTQW9kSE1nYjNJZ1kyOXRjR2xzWldRcFhDSXBYRzRnSUM1dmNIUnBiMjRvWENJdExXOTFkSEIxZENBOFUzUnlhVzVuUGx3aUxDQmNJbTkxZEhCMWRDQmthWEpsWTNSdmNua2dabTl5SUhSb1pTQlBjR1Z1UVZCSklFcFRUMDRnWm1sc1pWd2lMQ0JjSWk0dlhDSXBYRzRnSUM1dmNIUnBiMjRvWENJdExXWnBiR1ZPWVcxbElEeFRkSEpwYm1jK1hDSXNJRndpYjNWMGNIVjBJR1pwYkdVZ2JtRnRaU0FvZDJsMGFHOTFkQ0JsZUhSbGJuTnBiMjRwWENJc0lGd2liM0JsYm1Gd2FWd2lLVnh1SUNBdWIzQjBhVzl1S0Z3aUxTMTBhWFJzWlNBOFUzUnlhVzVuUGx3aUxDQmNJazl3Wlc1QlVFa2daRzlqZFcxbGJuUWdkR2wwYkdWY0lpd2dYQ0pFUlVOQlJpQkJVRWxjSWlsY2JpQWdMbTl3ZEdsdmJpaGNJaTB0WkdWelkzSnBjSFJwYjI0Z1BGTjBjbWx1Wno1Y0lpd2dYQ0pQY0dWdVFWQkpJR1J2WTNWdFpXNTBJR1JsYzJOeWFYQjBhVzl1WENJc0lGd2lRWFYwYnkxblpXNWxjbUYwWldRZ1QzQmxia0ZRU1NCemNHVmphV1pwWTJGMGFXOXVYQ0lwWEc0Z0lDNXZjSFJwYjI0b1hDSXRMWFpsY25OcGIyNGdQRk4wY21sdVp6NWNJaXdnWENKUGNHVnVRVkJKSUdSdlkzVnRaVzUwSUhabGNuTnBiMjVjSWlsY2JpQWdMbUZqZEdsdmJpaGhjM2x1WXlBb2IzQjBhVzl1Y3pvZ1lXNTVLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdiRzluSUQwZ2JHOW5aMlZ5TG1admNpaGNJbVY0Y0c5eWRDMWhjR2xjSWlrN1hHNGdJQ0FnWTI5dWMzUWdhVzV3ZFhRZ1BTQnlaWE52YkhabFNXNXdkWFJRWVhSb0tHOXdkR2x2Ym5NdWFXNXdkWFFwTzF4dUlDQWdJR3hsZENCaGNIQTZJRWxPWlhOMFFYQndiR2xqWVhScGIyNGdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGd2NDQTlJR0YzWVdsMElFNWxjM1JHWVdOMGIzSjVMbU55WldGMFpTaGNiaUFnSUNBZ0lDQWdjbVZ6YjJ4MlpVNWxjM1JOYjJSMWJHVW9ZWGRoYVhRZ2JtOXliV0ZzYVhwbFNXMXdiM0owS0dsdGNHOXlkQ2h3WVhSb0xtcHZhVzRvY0hKdlkyVnpjeTVqZDJRb0tTd2dhVzV3ZFhRcEtTa3BMRnh1SUNBZ0lDQWdJQ0I3SUd4dloyZGxjam9nWm1Gc2MyVWdmVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR0YzWVdsMElHRndjQzVwYm1sMEtDazdYRzRnSUNBZ0lDQnNiMmN1YVc1bWJ5aGdRWEJ3SUdKdmIzUmxaQ0JtY205dElDUjdhVzV3ZFhSOVlDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHTnZibVpwWnlBOUlHNWxkeUJFYjJOMWJXVnVkRUoxYVd4a1pYSW9LVnh1SUNBZ0lDQWdJQ0F1YzJWMFZHbDBiR1VvYjNCMGFXOXVjeTUwYVhSc1pTbGNiaUFnSUNBZ0lDQWdMbk5sZEVSbGMyTnlhWEIwYVc5dUtHOXdkR2x2Ym5NdVpHVnpZM0pwY0hScGIyNHBYRzRnSUNBZ0lDQWdJQzV6WlhSV1pYSnphVzl1S0c5d2RHbHZibk11ZG1WeWMybHZiaUI4ZkNCY0lqRXVNQzR3WENJcFhHNGdJQ0FnSUNBZ0lDNWhaR1JDWldGeVpYSkJkWFJvS0NsY2JpQWdJQ0FnSUNBZ0xtSjFhV3hrS0NrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdSdlkzVnRaVzUwSUQwZ1UzZGhaMmRsY2sxdlpIVnNaUzVqY21WaGRHVkViMk4xYldWdWRDaGhjSEFzSUdOdmJtWnBaeWs3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzkxZEhCMWRFUnBjaUE5SUhCaGRHZ3VjbVZ6YjJ4MlpTaHZjSFJwYjI1ekxtOTFkSEIxZENrN1hHNGdJQ0FnSUNCbWN5NXRhMlJwY2xONWJtTW9iM1YwY0hWMFJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU0I5S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJRzkxZEhCMWRFWnBiR1VnUFNCd1lYUm9MbXB2YVc0b2IzVjBjSFYwUkdseUxDQmdKSHR2Y0hScGIyNXpMbVpwYkdWT1lXMWxmUzVxYzI5dVlDazdYRzRnSUNBZ0lDQm1jeTUzY21sMFpVWnBiR1ZUZVc1aktHOTFkSEIxZEVacGJHVXNJRXBUVDA0dWMzUnlhVzVuYVdaNUtHUnZZM1Z0Wlc1MExDQnVkV3hzTENBeUtTd2dYQ0oxZEdZdE9Gd2lLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjR0YwYUVOdmRXNTBJRDBnVDJKcVpXTjBMbXRsZVhNb1pHOWpkVzFsYm5RdWNHRjBhSE1nZkh3Z2UzMHBMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHTnZibk4wSUhOamFHVnRZVU52ZFc1MElEMGdUMkpxWldOMExtdGxlWE1vWkc5amRXMWxiblF1WTI5dGNHOXVaVzUwY3o4dWMyTm9aVzFoY3lCOGZDQjdmU2t1YkdWdVozUm9PMXh1SUNBZ0lDQWdiRzluTG1sdVptOG9ZRTl3Wlc1QlVFa2djM0JsWXlCM2NtbDBkR1Z1SUhSdklDUjdiM1YwY0hWMFJtbHNaWDBnS0NSN2NHRjBhRU52ZFc1MGZTQndZWFJvY3l3Z0pIdHpZMmhsYldGRGIzVnVkSDBnYzJOb1pXMWhjeWxnS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhsSUdGeklFVnljbTl5S1R0Y2JpQWdJQ0I5SUdacGJtRnNiSGtnZTF4dUlDQWdJQ0FnYVdZZ0tHRndjQ2tnWVhkaGFYUWdZWEJ3TG1Oc2IzTmxLQ2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibHh1WTI5dWMzUWdibVZ6ZEVOdFpDQTlJRzVsZHlCRGIyMXRZVzVrS0NsY2JpQWdMbTVoYldVb1hDSnVaWE4wWENJcFhHNGdJQzVrWlhOamNtbHdkR2x2YmloY0ltVjRjRzl6WlhNZ2RtRnlhVzkxY3lCamIyMXRZVzVrY3lCMGJ5Qm9aV3h3SUcxaGJtRm5aU0IwYUdVZ2JtVnpkQ0JwYm5SbFozSmhkR2x2Ymx3aUtUdGNibHh1Ym1WemRFTnRaQzVoWkdSRGIyMXRZVzVrS0cxcFozSmhkR1ZEYjIxdFlXNWtLVHRjYm01bGMzUkRiV1F1WVdSa1EyOXRiV0Z1WkNobGVIQnZjblJCY0dsRGIyMXRZVzVrS1R0Y2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ1puVnVZM1JwYjI0Z2JtVnpkQ2dwSUh0Y2JpQWdjbVYwZFhKdUlHNWxjM1JEYldRN1hHNTlYRzRpWFgwPSJdfQ==
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DECAF_CONTEXT_KEY = exports.DECAF_CONTROLLER_CONFIG = exports.DECAF_EXPOSE = exports.DECAF_ADAPTER_OPTIONS = exports.DECAF_HANDLERS = exports.DECAF_ROUTE = exports.DECAF_TASK_SERVICE_ID = exports.DECAF_ADAPTER_ID = exports.DECAF_MODULE_OPTIONS = void 0;
3
+ exports.DECAF_CONTEXT_KEY = exports.DECAF_CONTROLLER_CONFIG = exports.DECAF_EXPOSE = exports.DECAF_HANDLERS = exports.DECAF_ROUTE = exports.DECAF_TASK_SERVICE_ID = exports.DECAF_ADAPTER_ID = exports.DECAF_MODULE_OPTIONS = void 0;
4
4
  exports.DECAF_MODULE_OPTIONS = "DecafModuleOptions";
5
5
  exports.DECAF_ADAPTER_ID = "DecafAdapter";
6
6
  exports.DECAF_TASK_SERVICE_ID = "DecafTaskService";
7
7
  exports.DECAF_ROUTE = "DecafRoute";
8
8
  exports.DECAF_HANDLERS = Symbol("DecafHandlers");
9
- exports.DECAF_ADAPTER_OPTIONS = Symbol("DecafAdapterForOptions");
10
9
  exports.DECAF_EXPOSE = "DecafExpose";
11
10
  exports.DECAF_CONTROLLER_CONFIG = "DecafControllerConfig";
12
11
  exports.DECAF_CONTEXT_KEY = Symbol("decaf:context");
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRhcHRlckZsYWdzLCBDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX01PRFVMRV9PUFRJT05TID0gXCJEZWNhZk1vZHVsZU9wdGlvbnNcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9BREFQVEVSX0lEID0gXCJEZWNhZkFkYXB0ZXJcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9UQVNLX1NFUlZJQ0VfSUQgPSBcIkRlY2FmVGFza1NlcnZpY2VcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX1JPVVRFID0gXCJEZWNhZlJvdXRlXCI7XG5leHBvcnQgY29uc3QgREVDQUZfSEFORExFUlMgPSBTeW1ib2woXCJEZWNhZkhhbmRsZXJzXCIpO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0FEQVBURVJfT1BUSU9OUyA9IFN5bWJvbChcIkRlY2FmQWRhcHRlckZvck9wdGlvbnNcIik7XG5leHBvcnQgY29uc3QgREVDQUZfRVhQT1NFID0gXCJEZWNhZkV4cG9zZVwiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0NPTlRST0xMRVJfQ09ORklHID0gXCJEZWNhZkNvbnRyb2xsZXJDb25maWdcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX0NPTlRFWFRfS0VZID0gU3ltYm9sKFwiZGVjYWY6Y29udGV4dFwiKTtcblxuZXhwb3J0IHR5cGUgRGVjYWZTZXJ2ZXJGbGFnczxMT0cgZXh0ZW5kcyBMb2dnZXIgPSBMb2dnZXI+ID1cbiAgQWRhcHRlckZsYWdzPExPRz4gJiB7XG4gICAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBvdmVycmlkZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIH07XG5cbmV4cG9ydCB0eXBlIERlY2FmU2VydmVyQ3R4ID0gQ29udGV4dDxEZWNhZlNlcnZlckZsYWdzPjtcbiJdfQ==
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDNUMsUUFBQSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFDbEMsUUFBQSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztBQUMzQyxRQUFBLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDM0IsUUFBQSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3pDLFFBQUEscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDekQsUUFBQSxZQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdCLFFBQUEsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7QUFDbEQsUUFBQSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDekQsazZEQUFrNkQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVDQUZfTU9EVUxFX09QVElPTlMgPSBcIkRlY2FmTW9kdWxlT3B0aW9uc1wiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0FEQVBURVJfSUQgPSBcIkRlY2FmQWRhcHRlclwiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX1RBU0tfU0VSVklDRV9JRCA9IFwiRGVjYWZUYXNrU2VydmljZVwiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX1JPVVRFID0gXCJEZWNhZlJvdXRlXCI7XG5leHBvcnQgY29uc3QgREVDQUZfSEFORExFUlMgPSBTeW1ib2woXCJEZWNhZkhhbmRsZXJzXCIpO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0FEQVBURVJfT1BUSU9OUyA9IFN5bWJvbChcIkRlY2FmQWRhcHRlckZvck9wdGlvbnNcIik7XG5leHBvcnQgY29uc3QgREVDQUZfRVhQT1NFID0gXCJEZWNhZkV4cG9zZVwiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0NPTlRST0xMRVJfQ09ORklHID0gXCJEZWNhZkNvbnRyb2xsZXJDb25maWdcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9DT05URVhUX0tFWSA9IFN5bWJvbChcImRlY2FmOmNvbnRleHRcIik7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMjl1YzNSaGJuUnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2YzNKakwyTnZibk4wWVc1MGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZIUVN4TlFVRk5MRU5CUVVNc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4dlFrRkJiMElzUTBGQlF6dEJRVU42UkN4TlFVRk5MRU5CUVVNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4alFVRmpMRU5CUVVNN1FVRkRMME1zVFVGQlRTeERRVUZETEUxQlFVMHNjVUpCUVhGQ0xFZEJRVWNzYTBKQlFXdENMRU5CUVVNN1FVRkZlRVFzVFVGQlRTeERRVUZETEUxQlFVMHNWMEZCVnl4SFFVRkhMRmxCUVZrc1EwRkJRenRCUVVONFF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4alFVRmpMRWRCUVVjc1RVRkJUU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzBGQlEzUkVMRTFCUVUwc1EwRkJReXhOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRPMEZCUTNSRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEZsQlFWa3NSMEZCUnl4aFFVRmhMRU5CUVVNN1FVRkRNVU1zVFVGQlRTeERRVUZETEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzZFVKQlFYVkNMRU5CUVVNN1FVRkZMMFFzVFVGQlRTeERRVUZETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUVdSaGNIUmxja1pzWVdkekxDQkRiMjUwWlhoMElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5Qk1iMmRuWlhJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyeHZaMmRwYm1kY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElFUkZRMEZHWDAxUFJGVk1SVjlQVUZSSlQwNVRJRDBnWENKRVpXTmhaazF2WkhWc1pVOXdkR2x2Ym5OY0lqdGNibVY0Y0c5eWRDQmpiMjV6ZENCRVJVTkJSbDlCUkVGUVZFVlNYMGxFSUQwZ1hDSkVaV05oWmtGa1lYQjBaWEpjSWp0Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUlVOQlJsOVVRVk5MWDFORlVsWkpRMFZmU1VRZ1BTQmNJa1JsWTJGbVZHRnphMU5sY25acFkyVmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJGUTBGR1gxSlBWVlJGSUQwZ1hDSkVaV05oWmxKdmRYUmxYQ0k3WEc1bGVIQnZjblFnWTI5dWMzUWdSRVZEUVVaZlNFRk9SRXhGVWxNZ1BTQlRlVzFpYjJ3b1hDSkVaV05oWmtoaGJtUnNaWEp6WENJcE8xeHVaWGh3YjNKMElHTnZibk4wSUVSRlEwRkdYMEZFUVZCVVJWSmZUMUJVU1U5T1V5QTlJRk41YldKdmJDaGNJa1JsWTJGbVFXUmhjSFJsY2tadmNrOXdkR2x2Ym5OY0lpazdYRzVsZUhCdmNuUWdZMjl1YzNRZ1JFVkRRVVpmUlZoUVQxTkZJRDBnWENKRVpXTmhaa1Y0Y0c5elpWd2lPMXh1Wlhod2IzSjBJR052Ym5OMElFUkZRMEZHWDBOUFRsUlNUMHhNUlZKZlEwOU9Sa2xISUQwZ1hDSkVaV05oWmtOdmJuUnliMnhzWlhKRGIyNW1hV2RjSWp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVSRlEwRkdYME5QVGxSRldGUmZTMFZaSUQwZ1UzbHRZbTlzS0Z3aVpHVmpZV1k2WTI5dWRHVjRkRndpS1R0Y2JseHVaWGh3YjNKMElIUjVjR1VnUkdWallXWlRaWEoyWlhKR2JHRm5jenhNVDBjZ1pYaDBaVzVrY3lCTWIyZG5aWElnUFNCTWIyZG5aWEkrSUQxY2JpQWdRV1JoY0hSbGNrWnNZV2R6UEV4UFJ6NGdKaUI3WEc0Z0lDQWdhR1ZoWkdWeWN6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQanRjYmlBZ0lDQnZkbVZ5Y21sa1pYTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQ3WEc0Z0lIMDdYRzVjYm1WNGNHOXlkQ0IwZVhCbElFUmxZMkZtVTJWeWRtVnlRM1I0SUQwZ1EyOXVkR1Y0ZER4RVpXTmhabE5sY25abGNrWnNZV2R6UGp0Y2JpSmRmUT09Il19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRhcHRlckZsYWdzLCBDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX01PRFVMRV9PUFRJT05TID0gXCJEZWNhZk1vZHVsZU9wdGlvbnNcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9BREFQVEVSX0lEID0gXCJEZWNhZkFkYXB0ZXJcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9UQVNLX1NFUlZJQ0VfSUQgPSBcIkRlY2FmVGFza1NlcnZpY2VcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX1JPVVRFID0gXCJEZWNhZlJvdXRlXCI7XG5leHBvcnQgY29uc3QgREVDQUZfSEFORExFUlMgPSBTeW1ib2woXCJEZWNhZkhhbmRsZXJzXCIpO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0VYUE9TRSA9IFwiRGVjYWZFeHBvc2VcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9DT05UUk9MTEVSX0NPTkZJRyA9IFwiRGVjYWZDb250cm9sbGVyQ29uZmlnXCI7XG5cbmV4cG9ydCBjb25zdCBERUNBRl9DT05URVhUX0tFWSA9IFN5bWJvbChcImRlY2FmOmNvbnRleHRcIik7XG5cbmV4cG9ydCB0eXBlIERlY2FmU2VydmVyRmxhZ3M8TE9HIGV4dGVuZHMgTG9nZ2VyID0gTG9nZ2VyPiA9XG4gIEFkYXB0ZXJGbGFnczxMT0c+ICYge1xuICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgb3ZlcnJpZGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB9O1xuXG5leHBvcnQgdHlwZSBEZWNhZlNlcnZlckN0eCA9IENvbnRleHQ8RGVjYWZTZXJ2ZXJGbGFncz47XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7QUFDNUMsUUFBQSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFDbEMsUUFBQSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztBQUMzQyxRQUFBLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDM0IsUUFBQSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3pDLFFBQUEsWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3QixRQUFBLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0FBQ2xELFFBQUEsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3pELDh1REFBOHVEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFQ0FGX01PRFVMRV9PUFRJT05TID0gXCJEZWNhZk1vZHVsZU9wdGlvbnNcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9BREFQVEVSX0lEID0gXCJEZWNhZkFkYXB0ZXJcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9UQVNLX1NFUlZJQ0VfSUQgPSBcIkRlY2FmVGFza1NlcnZpY2VcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9ST1VURSA9IFwiRGVjYWZSb3V0ZVwiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0hBTkRMRVJTID0gU3ltYm9sKFwiRGVjYWZIYW5kbGVyc1wiKTtcbmV4cG9ydCBjb25zdCBERUNBRl9FWFBPU0UgPSBcIkRlY2FmRXhwb3NlXCI7XG5leHBvcnQgY29uc3QgREVDQUZfQ09OVFJPTExFUl9DT05GSUcgPSBcIkRlY2FmQ29udHJvbGxlckNvbmZpZ1wiO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0NPTlRFWFRfS0VZID0gU3ltYm9sKFwiZGVjYWY6Y29udGV4dFwiKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyOXVjM1JoYm5SekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZjM0pqTDJOdmJuTjBZVzUwY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkhRU3hOUVVGTkxFTkJRVU1zVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXp0QlFVTjZSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhqUVVGakxFTkJRVU03UVVGREwwTXNUVUZCVFN4RFFVRkRMRTFCUVUwc2NVSkJRWEZDTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU03UVVGRmVFUXNUVUZCVFN4RFFVRkRMRTFCUVUwc1YwRkJWeXhIUVVGSExGbEJRVmtzUTBGQlF6dEJRVU40UXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hqUVVGakxFZEJRVWNzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMEZCUTNSRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEZsQlFWa3NSMEZCUnl4aFFVRmhMRU5CUVVNN1FVRkRNVU1zVFVGQlRTeERRVUZETEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzZFVKQlFYVkNMRU5CUVVNN1FVRkZMMFFzVFVGQlRTeERRVUZETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUVdSaGNIUmxja1pzWVdkekxDQkRiMjUwWlhoMElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5Qk1iMmRuWlhJZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyeHZaMmRwYm1kY0lqdGNibHh1Wlhod2IzSjBJR052Ym5OMElFUkZRMEZHWDAxUFJGVk1SVjlQVUZSSlQwNVRJRDBnWENKRVpXTmhaazF2WkhWc1pVOXdkR2x2Ym5OY0lqdGNibVY0Y0c5eWRDQmpiMjV6ZENCRVJVTkJSbDlCUkVGUVZFVlNYMGxFSUQwZ1hDSkVaV05oWmtGa1lYQjBaWEpjSWp0Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUlVOQlJsOVVRVk5MWDFORlVsWkpRMFZmU1VRZ1BTQmNJa1JsWTJGbVZHRnphMU5sY25acFkyVmNJanRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRVJGUTBGR1gxSlBWVlJGSUQwZ1hDSkVaV05oWmxKdmRYUmxYQ0k3WEc1bGVIQnZjblFnWTI5dWMzUWdSRVZEUVVaZlNFRk9SRXhGVWxNZ1BTQlRlVzFpYjJ3b1hDSkVaV05oWmtoaGJtUnNaWEp6WENJcE8xeHVaWGh3YjNKMElHTnZibk4wSUVSRlEwRkdYMFZZVUU5VFJTQTlJRndpUkdWallXWkZlSEJ2YzJWY0lqdGNibVY0Y0c5eWRDQmpiMjV6ZENCRVJVTkJSbDlEVDA1VVVrOU1URVZTWDBOUFRrWkpSeUE5SUZ3aVJHVmpZV1pEYjI1MGNtOXNiR1Z5UTI5dVptbG5YQ0k3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JFUlVOQlJsOURUMDVVUlZoVVgwdEZXU0E5SUZONWJXSnZiQ2hjSW1SbFkyRm1PbU52Ym5SbGVIUmNJaWs3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRVJsWTJGbVUyVnlkbVZ5Um14aFozTThURTlISUdWNGRHVnVaSE1nVEc5bloyVnlJRDBnVEc5bloyVnlQaUE5WEc0Z0lFRmtZWEIwWlhKR2JHRm5jenhNVDBjK0lDWWdlMXh1SUNBZ0lHaGxZV1JsY25NNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNDdYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytPMXh1SUNCOU8xeHVYRzVsZUhCdmNuUWdkSGx3WlNCRVpXTmhabE5sY25abGNrTjBlQ0E5SUVOdmJuUmxlSFE4UkdWallXWlRaWEoyWlhKR2JHRm5jejQ3WEc0aVhYMD0iXX0=