n8n-nodes-qiniu-ai 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -221,6 +221,27 @@ async function handleImage(context, client, itemIndex) {
221
221
  if (options.imageSize) {
222
222
  params.image_config = { image_size: options.imageSize };
223
223
  }
224
+ // Advanced image references (generate only)
225
+ if (operation === 'generate') {
226
+ const subjectImageUrls = context.getNodeParameter('subjectImageUrls', itemIndex, '');
227
+ const sceneImageUrl = context.getNodeParameter('sceneImageUrl', itemIndex, '');
228
+ const styleImageUrl = context.getNodeParameter('styleImageUrl', itemIndex, '');
229
+ // Subject reference images
230
+ if (subjectImageUrls) {
231
+ const urls = subjectImageUrls.split(',').map(u => u.trim()).filter(u => u);
232
+ if (urls.length > 0) {
233
+ params.subject_image_list = urls.map(image => ({ image, image_type: 'subject' }));
234
+ }
235
+ }
236
+ // Scene reference image
237
+ if (sceneImageUrl) {
238
+ params.scene_image = { image: sceneImageUrl };
239
+ }
240
+ // Style reference image
241
+ if (styleImageUrl) {
242
+ params.style_image = { image: styleImageUrl };
243
+ }
244
+ }
224
245
  let result;
225
246
  if (operation === 'generate') {
226
247
  const createResult = await client.image.generate(params);
@@ -278,6 +299,36 @@ async function handleVideo(context, client, itemIndex) {
278
299
  _raw: result,
279
300
  };
280
301
  }
302
+ if (operation === 'remix') {
303
+ const sourceVideoId = context.getNodeParameter('sourceVideoId', itemIndex);
304
+ const remixPrompt = context.getNodeParameter('remixPrompt', itemIndex, '');
305
+ const waitForCompletion = context.getNodeParameter('waitForCompletion', itemIndex, true);
306
+ const remixOptions = context.getNodeParameter('remixOptions', itemIndex, {});
307
+ const remixParams = {};
308
+ if (remixPrompt)
309
+ remixParams.prompt = remixPrompt;
310
+ if (remixOptions.duration)
311
+ remixParams.duration = remixOptions.duration;
312
+ if (remixOptions.mode)
313
+ remixParams.mode = remixOptions.mode;
314
+ if (remixOptions.negativePrompt)
315
+ remixParams.negative_prompt = remixOptions.negativePrompt;
316
+ const task = await client.video.remix(sourceVideoId, remixParams);
317
+ if (waitForCompletion) {
318
+ const result = await client.video.waitForCompletion(task.id);
319
+ return {
320
+ id: result.id,
321
+ status: result.status,
322
+ videos: result.task_result?.videos || [],
323
+ _raw: result,
324
+ };
325
+ }
326
+ return {
327
+ id: task.id,
328
+ status: 'processing',
329
+ _raw: task,
330
+ };
331
+ }
281
332
  // Generate
282
333
  const model = context.getNodeParameter('model', itemIndex);
283
334
  const prompt = context.getNodeParameter('prompt', itemIndex);
@@ -325,6 +376,15 @@ async function handleVideo(context, client, itemIndex) {
325
376
  if (Object.keys(frames).length > 0) {
326
377
  params.frames = frames;
327
378
  }
379
+ // Video reference (video_list) for video-to-video generation
380
+ const videoReferenceUrl = context.getNodeParameter('videoReferenceUrl', itemIndex, '');
381
+ const keepOriginalSound = context.getNodeParameter('keepOriginalSound', itemIndex, false);
382
+ if (videoReferenceUrl) {
383
+ params.video_list = [{
384
+ video_url: videoReferenceUrl,
385
+ keep_original_sound: keepOriginalSound ? 'yes' : 'no',
386
+ }];
387
+ }
328
388
  // Model-specific options
329
389
  if (model.includes('kling')) {
330
390
  const klingOptions = context.getNodeParameter('klingOptions', itemIndex, {});
@@ -486,8 +546,20 @@ async function handleTools(context, client, itemIndex) {
486
546
  const operation = context.getNodeParameter('operation', itemIndex);
487
547
  if (operation === 'webSearch') {
488
548
  const query = context.getNodeParameter('query', itemIndex);
489
- // Note: maxResults option reserved for future SDK support
490
- const results = await client.sys.search({ query });
549
+ const options = context.getNodeParameter('options', itemIndex, {});
550
+ const searchParams = { query };
551
+ if (options.maxResults)
552
+ searchParams.max_results = options.maxResults;
553
+ if (options.searchType)
554
+ searchParams.search_type = options.searchType;
555
+ if (options.timeFilter)
556
+ searchParams.time_filter = options.timeFilter;
557
+ if (options.siteFilter) {
558
+ const sites = options.siteFilter.split(',').map(s => s.trim()).filter(s => s);
559
+ if (sites.length > 0)
560
+ searchParams.site_filter = sites;
561
+ }
562
+ const results = await client.sys.search(searchParams);
491
563
  return {
492
564
  results: results || [],
493
565
  query,
@@ -520,4 +592,4 @@ async function handleTools(context, client, itemIndex) {
520
592
  }
521
593
  throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Unknown tools operation: ${operation}`, { itemIndex });
522
594
  }
523
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUWluaXVBaS5ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZXMvUWluaXVBaS9RaW5pdUFpLm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBUXNCO0FBRXRCLHdEQUFpRjtBQUVqRixvRUFBNEU7QUFDNUUsc0VBQStFO0FBQy9FLHNFQUErRTtBQUMvRSxzRUFBK0U7QUFDL0Usc0VBQStFO0FBQy9FLHNFQUErRTtBQUUvRSxNQUFhLE9BQU87SUFBcEI7UUFDSSxnQkFBVyxHQUF5QjtZQUNoQyxXQUFXLEVBQUUsVUFBVTtZQUN2QixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3BCLE9BQU8sRUFBRSxDQUFDO1lBQ1YsUUFBUSxFQUFFLDhEQUE4RDtZQUN4RSxXQUFXLEVBQUUsc0VBQXNFO1lBQ25GLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsVUFBVTthQUNuQjtZQUNELE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsV0FBVyxFQUFFO2dCQUNUO29CQUNJLElBQUksRUFBRSxZQUFZO29CQUNsQixRQUFRLEVBQUUsSUFBSTtpQkFDakI7YUFDSjtZQUNELFVBQVUsRUFBRTtnQkFDUixXQUFXO2dCQUNYO29CQUNJLFdBQVcsRUFBRSxVQUFVO29CQUN2QixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDdEIsT0FBTyxFQUFFO3dCQUNMOzRCQUNJLElBQUksRUFBRSxNQUFNOzRCQUNaLEtBQUssRUFBRSxNQUFNOzRCQUNiLFdBQVcsRUFBRSwyQkFBMkI7eUJBQzNDO3dCQUNEOzRCQUNJLElBQUksRUFBRSxPQUFPOzRCQUNiLEtBQUssRUFBRSxPQUFPOzRCQUNkLFdBQVcsRUFBRSx5QkFB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LEVBQUUsS0FBSyxFQUFFLFFBQVEsUUFBUSxXQUFXLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEQsT0FBTztZQUNILElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDdkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTtZQUMzQixJQUFJLEVBQUUsTUFBZ0M7U0FDekMsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLElBQUksaUNBQWtCLENBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFDakIsNEJBQTRCLFNBQVMsRUFBRSxFQUN2QyxFQUFFLFNBQVMsRUFBRSxDQUNoQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSUV4ZWN1dGVGdW5jdGlvbnMsXG4gICAgSU5vZGVFeGVjdXRpb25EYXRhLFxuICAgIElOb2RlVHlwZSxcbiAgICBJTm9kZVR5cGVEZXNjcmlwdGlvbixcbiAgICBOb2RlT3BlcmF0aW9uRXJyb3IsXG4gICAgSURhdGFPYmplY3QsXG4gICAgSUJpbmFyeUtleURhdGEsXG59IGZyb20gJ244bi13b3JrZmxvdyc7XG5cbmltcG9ydCB7IFFpbml1QUksIGdlbmVyYXRlVGV4dFdpdGhHcmFwaCwgQVBJRXJyb3IgfSBmcm9tICdAYm93ZW5xdC9xaW5pdS1haS1zZGsnO1xuXG5pbXBvcnQgeyBjaGF0T3BlcmF0aW9ucywgY2hhdEZpZWxkcyB9IGZyb20gJy4vZGVzY3JpcHRpb25zL0NoYXREZXNjcmlwdGlvbic7XG5pbXBvcnQgeyBpbWFnZU9wZXJhdGlvbnMsIGltYWdlRmllbGRzIH0gZnJvbSAnLi9kZXNjcmlwdGlvbnMvSW1hZ2VEZXNjcmlwdGlvbic7XG5pbXBvcnQgeyB2aWRlb09wZXJhdGlvbnMsIHZpZGVvRmllbGRzIH0gZnJvbSAnLi9kZXNjcmlwdGlvbnMvVmlkZW9EZXNjcmlwdGlvbic7XG5pbXBvcnQgeyBhZ2VudE9wZXJhdGlvbnMsIGFnZW50RmllbGRzIH0gZnJvbSAnLi9kZXNjcmlwdGlvbnMvQWdlbnREZXNjcmlwdGlvbic7XG5pbXBvcnQgeyBhdWRpb09wZXJhdGlvbnMsIGF1ZGlvRmllbGRzIH0gZnJvbSAnLi9kZXNjcmlwdGlvbnMvQXVkaW9EZXNjcmlwdGlvbic7XG5pbXBvcnQgeyB0b29sc09wZXJhdGlvbnMsIHRvb2xzRmllbGRzIH0gZnJvbSAnLi9kZXNjcmlwdGlvbnMvVG9vbHNEZXNjcmlwdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBRaW5pdUFpIGltcGxlbWVudHMgSU5vZGVUeXBlIHtcbiAgICBkZXNjcmlwdGlvbjogSU5vZGVUeXBlRGVzY3JpcHRpb24gPSB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnUWluaXUgQUknLFxuICAgICAgICBuYW1lOiAncWluaXVBaScsXG4gICAgICAgIGljb246ICdmaWxlOnFpbml1LnN2ZycsXG4gICAgICAgIGdyb3VwOiBbJ3RyYW5zZm9ybSddLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICBzdWJ0aXRsZTogJz17eyRwYXJhbWV0ZXJbXCJvcGVyYXRpb25cIl0gKyBcIjogXCIgKyAkcGFyYW1ldGVyW1wicmVzb3VyY2VcIl19fScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSW50ZXJhY3Qgd2l0aCBRaW5pdSBBSSBzZXJ2aWNlcyAtIENoYXQsIEltYWdlLCBWaWRlbywgQWdlbnQgYW5kIG1vcmUnLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgbmFtZTogJ1Fpbml1IEFJJyxcbiAgICAgICAgfSxcbiAgICAgICAgaW5wdXRzOiBbJ21haW4nXSxcbiAgICAgICAgb3V0cHV0czogWydtYWluJ10sXG4gICAgICAgIGNyZWRlbnRpYWxzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3Fpbml1QWlBcGknLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAgLy8gUmVzb3VyY2VcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAncmVzb3VyY2UnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICBub0RhdGFFeHByZXNzaW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0NoYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdjaGF0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgY2hhdCBjb21wbGV0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdJbWFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2ltYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgb3IgZWRpdCBpbWFnZXMnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnVmlkZW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICd2aWRlbycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIHZpZGVvcycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdBZ2VudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2FnZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUnVuIEFJIGFnZW50IHdpdGggdG9vbHMgYW5kIG1lbW9yeScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdBdWRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ2F1ZGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGV4dC10by1TcGVlY2ggYW5kIFNwZWVjaC10by1UZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1Rvb2xzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAndG9vbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdXZWIgU2VhcmNoLCBPQ1IgYW5kIG1vcmUnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ2NoYXQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIE9wZXJhdGlvbnMgYW5kIGZpZWxkc1xuICAgICAgICAgICAgLi4uY2hhdE9wZXJhdGlvbnMsXG4gICAgICAgICAgICAuLi5jaGF0RmllbGRzLFxuICAgICAgICAgICAgLi4uaW1hZ2VPcGVyYXRpb25zLFxuICAgICAgICAgICAgLi4uaW1hZ2VGaWVsZHMsXG4gICAgICAgICAgICAuLi52aWRlb09wZXJhdGlvbnMsXG4gICAgICAgICAgICAuLi52aWRlb0ZpZWxkcyxcbiAgICAgICAgICAgIC4uLmFnZW50T3BlcmF0aW9ucyxcbiAgICAgICAgICAgIC4uLmFnZW50RmllbGRzLFxuICAgICAgICAgICAgLi4uYXVkaW9PcGVyYXRpb25zLFxuICAgICAgICAgICAgLi4uYXVkaW9GaWVsZHMsXG4gICAgICAgICAgICAuLi50b29sc09wZXJhdGlvbnMsXG4gICAgICAgICAgICAuLi50b29sc0ZpZWxkcyxcbiAgICAgICAgXSxcbiAgICB9O1xuXG4gICAgYXN5bmMgZXhlY3V0ZSh0aGlzOiBJRXhlY3V0ZUZ1bmN0aW9ucyk6IFByb21pc2U8SU5vZGVFeGVjdXRpb25EYXRhW11bXT4ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SW5wdXREYXRhKCk7XG4gICAgICAgIGNvbnN0IHJldHVybkRhdGE6IElOb2RlRXhlY3V0aW9uRGF0YVtdID0gW107XG5cbiAgICAgICAgLy8gR2V0IGNyZWRlbnRpYWxzXG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5nZXRDcmVkZW50aWFscygncWluaXVBaUFwaScpO1xuICAgICAgICBjb25zdCBhcGlLZXkgPSBjcmVkZW50aWFscy5hcGlLZXkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gKGNyZWRlbnRpYWxzLmJhc2VVcmwgYXMgc3RyaW5nKSB8fCAnaHR0cHM6Ly9hcGkucW5haWdjLmNvbS92MSc7XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjbGllbnRcbiAgICAgICAgY29uc3QgY2xpZW50ID0gbmV3IFFpbml1QUkoeyBhcGlLZXksIGJhc2VVcmwgfSk7XG5cbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLmdldE5vZGVQYXJhbWV0ZXIoJ3Jlc291cmNlJywgMCkgYXMgc3RyaW5nO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogSURhdGFPYmplY3Q7XG5cbiAgICAgICAgICAgICAgICAvLyBSb3V0ZSB0byBhcHByb3ByaWF0ZSBoYW5kbGVyXG4gICAgICAgICAgICAgICAgaWYgKHJlc291cmNlID09PSAnY2hhdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgaGFuZGxlQ2hhdCh0aGlzLCBjbGllbnQsIGkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2UgPT09ICdpbWFnZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2UgbmVlZHMgc3BlY2lhbCBoYW5kbGluZyBmb3IgYmluYXJ5IG91dHB1dFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbWFnZVJlc3VsdCA9IGF3YWl0IGhhbmRsZUltYWdlKHRoaXMsIGNsaWVudCwgaSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybkRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBqc29uOiBpbWFnZVJlc3VsdC5qc29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5OiBpbWFnZVJlc3VsdC5iaW5hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWlyZWRJdGVtOiB7IGl0ZW06IGkgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2UgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgaGFuZGxlVmlkZW8odGhpcywgY2xpZW50LCBpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc291cmNlID09PSAnYWdlbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGhhbmRsZUFnZW50KHRoaXMsIGNsaWVudCwgaSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNvdXJjZSA9PT0gJ2F1ZGlvJykge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBoYW5kbGVBdWRpbyh0aGlzLCBjbGllbnQsIGkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2UgPT09ICd0b29scycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgaGFuZGxlVG9vbHModGhpcywgY2xpZW50LCBpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTm9kZU9wZXJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBgVW5rbm93biByZXNvdXJjZTogJHtyZXNvdXJjZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBpdGVtSW5kZXg6IGkgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybkRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGpzb246IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgcGFpcmVkSXRlbTogeyBpdGVtOiBpIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFQSUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb2RlT3BlcmF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBRaW5pdSBBSSBBUEkgRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1JbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFN0YXR1czogJHtlcnJvci5zdGF0dXN9LCBDb2RlOiAkeyhlcnJvciBhcyBhbnkpLmNvZGUgfHwgJ3Vua25vd24nfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtyZXR1cm5EYXRhXTtcbiAgICB9XG59XG5cbi8vIENoYXQgaGFuZGxlclxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ2hhdChcbiAgICBjb250ZXh0OiBJRXhlY3V0ZUZ1bmN0aW9ucyxcbiAgICBjbGllbnQ6IFFpbml1QUksXG4gICAgaXRlbUluZGV4OiBudW1iZXJcbik6IFByb21pc2U8SURhdGFPYmplY3Q+IHtcbiAgICBjb25zdCBtb2RlbCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignbW9kZWwnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICBjb25zdCBpbnB1dFR5cGUgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2lucHV0VHlwZScsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyB7XG4gICAgICAgIHRlbXBlcmF0dXJlPzogbnVtYmVyO1xuICAgICAgICBtYXhUb2tlbnM/OiBudW1iZXI7XG4gICAgICAgIGpzb25Nb2RlPzogYm9vbGVhbjtcbiAgICAgICAgdG9wUD86IG51bWJlcjtcbiAgICB9O1xuXG4gICAgLy8gQnVpbGQgbWVzc2FnZXNcbiAgICBsZXQgbWVzc2FnZXM6IEFycmF5PHsgcm9sZTogc3RyaW5nOyBjb250ZW50OiBzdHJpbmcgfT4gPSBbXTtcblxuICAgIGlmIChpbnB1dFR5cGUgPT09ICdzaW1wbGUnKSB7XG4gICAgICAgIGNvbnN0IHByb21wdCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncHJvbXB0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHN5c3RlbU1lc3NhZ2UgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3N5c3RlbU1lc3NhZ2UnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG5cbiAgICAgICAgaWYgKHN5c3RlbU1lc3NhZ2UpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goeyByb2xlOiAnc3lzdGVtJywgY29udGVudDogc3lzdGVtTWVzc2FnZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlcy5wdXNoKHsgcm9sZTogJ3VzZXInLCBjb250ZW50OiBwcm9tcHQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZXNEYXRhID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdtZXNzYWdlcycsIGl0ZW1JbmRleCkgYXMge1xuICAgICAgICAgICAgbWVzc2FnZVZhbHVlcz86IEFycmF5PHsgcm9sZTogc3RyaW5nOyBjb250ZW50OiBzdHJpbmcgfT47XG4gICAgICAgIH07XG4gICAgICAgIG1lc3NhZ2VzID0gbWVzc2FnZXNEYXRhLm1lc3NhZ2VWYWx1ZXMgfHwgW107XG4gICAgfVxuXG4gICAgLy8gQ2FsbCBBUElcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5jaGF0LmNyZWF0ZSh7XG4gICAgICAgIG1vZGVsLFxuICAgICAgICBtZXNzYWdlczogbWVzc2FnZXMgYXMgYW55LFxuICAgICAgICB0ZW1wZXJhdHVyZTogb3B0aW9ucy50ZW1wZXJhdHVyZSxcbiAgICAgICAgbWF4X3Rva2Vuczogb3B0aW9ucy5tYXhUb2tlbnMsXG4gICAgICAgIHRvcF9wOiBvcHRpb25zLnRvcFAsXG4gICAgICAgIHJlc3BvbnNlX2Zvcm1hdDogb3B0aW9ucy5qc29uTW9kZSA/IHsgdHlwZTogJ2pzb25fb2JqZWN0JyB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgLy8gTm9ybWFsaXplIG91dHB1dFxuICAgIGNvbnN0IGNob2ljZSA9IHJlc3BvbnNlLmNob2ljZXM/LlswXTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBjaG9pY2U/Lm1lc3NhZ2U/LmNvbnRlbnQgfHwgJycsXG4gICAgICAgIHJvbGU6IGNob2ljZT8ubWVzc2FnZT8ucm9sZSB8fCAnYXNzaXN0YW50JyxcbiAgICAgICAgZmluaXNoUmVhc29uOiBjaG9pY2U/LmZpbmlzaF9yZWFzb24gfHwgbnVsbCxcbiAgICAgICAgdXNhZ2U6IHJlc3BvbnNlLnVzYWdlXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBwcm9tcHRUb2tlbnM6IHJlc3BvbnNlLnVzYWdlLnByb21wdF90b2tlbnMsXG4gICAgICAgICAgICAgICAgY29tcGxldGlvblRva2VuczogcmVzcG9uc2UudXNhZ2UuY29tcGxldGlvbl90b2tlbnMsXG4gICAgICAgICAgICAgICAgdG90YWxUb2tlbnM6IHJlc3BvbnNlLnVzYWdlLnRvdGFsX3Rva2VucyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgX3JhdzogcmVzcG9uc2UgYXMgdW5rbm93biBhcyBJRGF0YU9iamVjdCxcbiAgICB9O1xufVxuXG4vLyBJbWFnZSBoYW5kbGVyIC0gcmV0dXJucyB7IGpzb24sIGJpbmFyeSB9IGZvciBwcm9wZXIgbjhuIGJpbmFyeSBkYXRhIGhhbmRsaW5nXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVJbWFnZShcbiAgICBjb250ZXh0OiBJRXhlY3V0ZUZ1bmN0aW9ucyxcbiAgICBjbGllbnQ6IFFpbml1QUksXG4gICAgaXRlbUluZGV4OiBudW1iZXJcbik6IFByb21pc2U8eyBqc29uOiBJRGF0YU9iamVjdDsgYmluYXJ5PzogSUJpbmFyeUtleURhdGEgfT4ge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3BlcmF0aW9uJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3QgbW9kZWwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ21vZGVsJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3QgcHJvbXB0ID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdwcm9tcHQnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICBjb25zdCB3YWl0Rm9yQ29tcGxldGlvbiA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignd2FpdEZvckNvbXBsZXRpb24nLCBpdGVtSW5kZXgsIHRydWUpIGFzIGJvb2xlYW47XG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3B0aW9ucycsIGl0ZW1JbmRleCwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XG4gICAgICAgIG1vZGVsLFxuICAgICAgICBwcm9tcHQsXG4gICAgICAgIG5lZ2F0aXZlX3Byb21wdDogb3B0aW9ucy5uZWdhdGl2ZVByb21wdCxcbiAgICAgICAgYXNwZWN0X3JhdGlvOiBvcHRpb25zLmFzcGVjdFJhdGlvLFxuICAgICAgICBuOiBvcHRpb25zLm4sXG4gICAgfTtcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICdlZGl0Jykge1xuICAgICAgICBjb25zdCByZWZlcmVuY2VVcmwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3JlZmVyZW5jZUltYWdlVXJsJywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuICAgICAgICBpZiAocmVmZXJlbmNlVXJsKSB7XG4gICAgICAgICAgICBwYXJhbXMuaW1hZ2VfdXJsID0gcmVmZXJlbmNlVXJsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLm1hc2spIHtcbiAgICAgICAgICAgIHBhcmFtcy5tYXNrID0gb3B0aW9ucy5tYXNrO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtcy5zdHJlbmd0aCA9IG9wdGlvbnMuc3RyZW5ndGg7XG4gICAgICAgIHBhcmFtcy5pbWFnZV9yZWZlcmVuY2UgPSBvcHRpb25zLmltYWdlUmVmZXJlbmNlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBpbWFnZV9jb25maWdcbiAgICBpZiAob3B0aW9ucy5pbWFnZVNpemUpIHtcbiAgICAgICAgcGFyYW1zLmltYWdlX2NvbmZpZyA9IHsgaW1hZ2Vfc2l6ZTogb3B0aW9ucy5pbWFnZVNpemUgfTtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ2dlbmVyYXRlJykge1xuICAgICAgICBjb25zdCBjcmVhdGVSZXN1bHQgPSBhd2FpdCBjbGllbnQuaW1hZ2UuZ2VuZXJhdGUocGFyYW1zKTtcbiAgICAgICAgaWYgKHdhaXRGb3JDb21wbGV0aW9uKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBjbGllbnQuaW1hZ2Uud2FpdEZvclJlc3VsdChjcmVhdGVSZXN1bHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gY3JlYXRlUmVzdWx0O1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY2xpZW50LmltYWdlLmVkaXQocGFyYW1zKTtcbiAgICB9XG5cbiAgICAvLyBCdWlsZCBiaW5hcnkgZGF0YSBmcm9tIGJhc2U2NCBpbWFnZXNcbiAgICBjb25zdCBiaW5hcnk6IElCaW5hcnlLZXlEYXRhID0ge307XG4gICAgY29uc3QgaW1hZ2VzOiBhbnlbXSA9IFtdO1xuXG4gICAgaWYgKHJlc3VsdC5kYXRhICYmIEFycmF5LmlzQXJyYXkocmVzdWx0LmRhdGEpKSB7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHJlc3VsdC5kYXRhLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGltZyA9IHJlc3VsdC5kYXRhW2lkeF07XG4gICAgICAgICAgICBpbWFnZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgdXJsOiBpbWcudXJsIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBpbmRleDogaW1nLmluZGV4LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIENvbnZlcnQgYmFzZTY0IHRvIGJpbmFyeSBkYXRhIGZvciBkb3duc3RyZWFtIHVzYWdlXG4gICAgICAgICAgICBpZiAoaW1nLmI2NF9qc29uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmZyb20oaW1nLmI2NF9qc29uLCAnYmFzZTY0Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgYmluYXJ5S2V5ID0gaWR4ID09PSAwID8gJ2RhdGEnIDogYGRhdGFfJHtpZHh9YDtcbiAgICAgICAgICAgICAgICBiaW5hcnlbYmluYXJ5S2V5XSA9IGF3YWl0IGNvbnRleHQuaGVscGVycy5wcmVwYXJlQmluYXJ5RGF0YShcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyLFxuICAgICAgICAgICAgICAgICAgICBgaW1hZ2VfJHtpZHh9LiR7cmVzdWx0Lm91dHB1dF9mb3JtYXQgfHwgJ3BuZyd9YCxcbiAgICAgICAgICAgICAgICAgICAgYGltYWdlLyR7cmVzdWx0Lm91dHB1dF9mb3JtYXQgfHwgJ3BuZyd9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBqc29uOiB7XG4gICAgICAgICAgICBpbWFnZXMsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMgfHwgJ3Vua25vd24nLFxuICAgICAgICAgICAgdGFza0lkOiByZXN1bHQudGFza19pZCxcbiAgICAgICAgICAgIGlzU3luYzogcmVzdWx0LmlzU3luYyxcbiAgICAgICAgICAgIGltYWdlQ291bnQ6IGltYWdlcy5sZW5ndGgsXG4gICAgICAgICAgICBfcmF3OiByZXN1bHQsXG4gICAgICAgIH0sXG4gICAgICAgIGJpbmFyeTogT2JqZWN0LmtleXMoYmluYXJ5KS5sZW5ndGggPiAwID8gYmluYXJ5IDogdW5kZWZpbmVkLFxuICAgIH07XG59XG5cbi8vIFZpZGVvIGhhbmRsZXJcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVZpZGVvKFxuICAgIGNvbnRleHQ6IElFeGVjdXRlRnVuY3Rpb25zLFxuICAgIGNsaWVudDogUWluaXVBSSxcbiAgICBpdGVtSW5kZXg6IG51bWJlclxuKTogUHJvbWlzZTxJRGF0YU9iamVjdD4ge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3BlcmF0aW9uJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnZ2V0U3RhdHVzJykge1xuICAgICAgICBjb25zdCB0YXNrSWQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3Rhc2tJZCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQudmlkZW8uZ2V0KHRhc2tJZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogcmVzdWx0LmlkLFxuICAgICAgICAgICAgc3RhdHVzOiByZXN1bHQuc3RhdHVzLFxuICAgICAgICAgICAgdmlkZW9zOiByZXN1bHQudGFza19yZXN1bHQ/LnZpZGVvcyB8fCBbXSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3VsdC5tZXNzYWdlLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhdGVcbiAgICBjb25zdCBtb2RlbCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignbW9kZWwnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICBjb25zdCBwcm9tcHQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3Byb21wdCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHdhaXRGb3JDb21wbGV0aW9uID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCd3YWl0Rm9yQ29tcGxldGlvbicsIGl0ZW1JbmRleCwgdHJ1ZSkgYXMgYm9vbGVhbjtcbiAgICBjb25zdCBmaXJzdEZyYW1lVXJsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdmaXJzdEZyYW1lVXJsJywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGZpcnN0RnJhbWVCaW5hcnlQcm9wZXJ0eSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignZmlyc3RGcmFtZUJpbmFyeVByb3BlcnR5JywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGxhc3RGcmFtZVVybCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignbGFzdEZyYW1lVXJsJywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGxhc3RGcmFtZUJpbmFyeVByb3BlcnR5ID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdsYXN0RnJhbWVCaW5hcnlQcm9wZXJ0eScsIGl0ZW1JbmRleCwgJycpIGFzIHN0cmluZztcbiAgICBjb25zdCBhc3BlY3RSYXRpbyA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignYXNwZWN0UmF0aW8nLCBpdGVtSW5kZXgsICcxNjo5JykgYXMgc3RyaW5nO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBtb2RlbCxcbiAgICAgICAgcHJvbXB0LFxuICAgICAgICBuZWdhdGl2ZV9wcm9tcHQ6IG9wdGlvbnMubmVnYXRpdmVQcm9tcHQsXG4gICAgICAgIGFzcGVjdF9yYXRpbzogYXNwZWN0UmF0aW8sXG4gICAgfTtcblxuICAgIC8vIEZyYW1lIGNvbnRyb2wgLSBzdXBwb3J0IGJvdGggVVJMIGFuZCBCaW5hcnkgRGF0YVxuICAgIGNvbnN0IGZyYW1lczogYW55ID0ge307XG5cbiAgICAvLyBGaXJzdCBmcmFtZVxuICAgIGlmIChmaXJzdEZyYW1lVXJsKSB7XG4gICAgICAgIGZyYW1lcy5maXJzdCA9IHsgdXJsOiBmaXJzdEZyYW1lVXJsIH07XG4gICAgfSBlbHNlIGlmIChmaXJzdEZyYW1lQmluYXJ5UHJvcGVydHkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGNvbnRleHQuaGVscGVycy5nZXRCaW5hcnlEYXRhQnVmZmVyKGl0ZW1JbmRleCwgZmlyc3RGcmFtZUJpbmFyeVByb3BlcnR5KTtcbiAgICAgICAgICAgIGZyYW1lcy5maXJzdCA9IHsgYmFzZTY0OiBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpIH07XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gQmluYXJ5IGRhdGEgbm90IGZvdW5kLCBza2lwXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMYXN0IGZyYW1lXG4gICAgaWYgKGxhc3RGcmFtZVVybCkge1xuICAgICAgICBmcmFtZXMubGFzdCA9IHsgdXJsOiBsYXN0RnJhbWVVcmwgfTtcbiAgICB9IGVsc2UgaWYgKGxhc3RGcmFtZUJpbmFyeVByb3BlcnR5KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjb250ZXh0LmhlbHBlcnMuZ2V0QmluYXJ5RGF0YUJ1ZmZlcihpdGVtSW5kZXgsIGxhc3RGcmFtZUJpbmFyeVByb3BlcnR5KTtcbiAgICAgICAgICAgIGZyYW1lcy5sYXN0ID0geyBiYXNlNjQ6IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0JykgfTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBCaW5hcnkgZGF0YSBub3QgZm91bmQsIHNraXBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhmcmFtZXMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcGFyYW1zLmZyYW1lcyA9IGZyYW1lcztcbiAgICB9XG5cbiAgICAvLyBNb2RlbC1zcGVjaWZpYyBvcHRpb25zXG4gICAgaWYgKG1vZGVsLmluY2x1ZGVzKCdrbGluZycpKSB7XG4gICAgICAgIGNvbnN0IGtsaW5nT3B0aW9ucyA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigna2xpbmdPcHRpb25zJywgaXRlbUluZGV4LCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIC8vIER1cmF0aW9uIGlzIHJlcXVpcmVkIGZvciBLbGluZyAtIGRlZmF1bHQgdG8gNSBzZWNvbmRzXG4gICAgICAgIHBhcmFtcy5kdXJhdGlvbiA9IGtsaW5nT3B0aW9ucy5kdXJhdGlvbiB8fCAnNSc7XG4gICAgICAgIGlmIChrbGluZ09wdGlvbnMubW9kZSkgcGFyYW1zLm1vZGUgPSBrbGluZ09wdGlvbnMubW9kZTtcbiAgICAgICAgaWYgKGtsaW5nT3B0aW9ucy5jZmdTY2FsZSkgcGFyYW1zLmNmZ19zY2FsZSA9IGtsaW5nT3B0aW9ucy5jZmdTY2FsZTtcblxuICAgICAgICAvLyBVc2Ugc2l6ZSBmcm9tIG9wdGlvbnMsIG9yIGRlcml2ZSBmcm9tIGFzcGVjdF9yYXRpbyAod29ya2Fyb3VuZCBmb3IgU0RLIGJ1ZylcbiAgICAgICAgaWYgKGtsaW5nT3B0aW9ucy5zaXplKSB7XG4gICAgICAgICAgICBwYXJhbXMuc2l6ZSA9IGtsaW5nT3B0aW9ucy5zaXplO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTWFwIGFzcGVjdF9yYXRpbyB0byBkZWZhdWx0IHNpemUgZm9yIEtsaW5nIEFQSVxuICAgICAgICAgICAgY29uc3Qgc2l6ZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICAgICAnMTY6OSc6ICcxOTIwOjEwODAnLFxuICAgICAgICAgICAgICAgICc5OjE2JzogJzEwODA6MTkyMCcsXG4gICAgICAgICAgICAgICAgJzE6MSc6ICcxMDgwOjEwODAnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHBhcmFtcy5zaXplID0gc2l6ZU1hcFthc3BlY3RSYXRpb10gfHwgJzE5MjA6MTA4MCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZWwuaW5jbHVkZXMoJ3ZlbycpKSB7XG4gICAgICAgIGNvbnN0IHZlb09wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3Zlb09wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgLy8gRHVyYXRpb25TZWNvbmRzIGlzIHJlcXVpcmVkIGZvciBWZW8gLSBmaXhlZCBhdCA4IHNlY29uZHNcbiAgICAgICAgcGFyYW1zLmR1cmF0aW9uID0gdmVvT3B0aW9ucy5kdXJhdGlvbiB8fCA4O1xuICAgICAgICBpZiAodmVvT3B0aW9ucy5nZW5lcmF0ZUF1ZGlvICE9PSB1bmRlZmluZWQpIHBhcmFtcy5nZW5lcmF0ZV9hdWRpbyA9IHZlb09wdGlvbnMuZ2VuZXJhdGVBdWRpbztcbiAgICAgICAgaWYgKHZlb09wdGlvbnMucmVzb2x1dGlvbikgcGFyYW1zLnJlc29sdXRpb24gPSB2ZW9PcHRpb25zLnJlc29sdXRpb247XG4gICAgICAgIGlmICh2ZW9PcHRpb25zLnNhbXBsZUNvdW50KSBwYXJhbXMuc2FtcGxlX2NvdW50ID0gdmVvT3B0aW9ucy5zYW1wbGVDb3VudDtcbiAgICAgICAgaWYgKHZlb09wdGlvbnMucGVyc29uR2VuZXJhdGlvbikgcGFyYW1zLnBlcnNvbl9nZW5lcmF0aW9uID0gdmVvT3B0aW9ucy5wZXJzb25HZW5lcmF0aW9uO1xuICAgICAgICBpZiAodmVvT3B0aW9ucy5zZWVkKSBwYXJhbXMuc2VlZCA9IHZlb09wdGlvbnMuc2VlZDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXNrID0gYXdhaXQgY2xpZW50LnZpZGVvLmNyZWF0ZShwYXJhbXMpO1xuXG4gICAgaWYgKHdhaXRGb3JDb21wbGV0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC52aWRlby53YWl0Rm9yQ29tcGxldGlvbih0YXNrLmlkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiByZXN1bHQuaWQsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMsXG4gICAgICAgICAgICB2aWRlb3M6IHJlc3VsdC50YXNrX3Jlc3VsdD8udmlkZW9zIHx8IFtdLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICAgIHN0YXR1czogJ3Byb2Nlc3NpbmcnLFxuICAgICAgICBfcmF3OiB0YXNrLFxuICAgIH07XG59XG5cbi8vIEFnZW50IGhhbmRsZXJcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUFnZW50KFxuICAgIGNvbnRleHQ6IElFeGVjdXRlRnVuY3Rpb25zLFxuICAgIGNsaWVudDogUWluaXVBSSxcbiAgICBpdGVtSW5kZXg6IG51bWJlclxuKTogUHJvbWlzZTxJRGF0YU9iamVjdD4ge1xuICAgIGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdtb2RlbCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHByb21wdCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncHJvbXB0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3Qgc3lzdGVtTWVzc2FnZSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignc3lzdGVtTWVzc2FnZScsIGl0ZW1JbmRleCwgJycpIGFzIHN0cmluZztcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdvcHRpb25zJywgaXRlbUluZGV4LCB7fSkgYXMge1xuICAgICAgICBtYXhDb250ZXh0VG9rZW5zPzogbnVtYmVyO1xuICAgICAgICBtYXhTdGVwcz86IG51bWJlcjtcbiAgICAgICAgdGhyZWFkSWQ/OiBzdHJpbmc7XG4gICAgICAgIHRvb2xzPzogc3RyaW5nO1xuICAgICAgICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgICB9O1xuXG4gICAgLy8gUGFyc2UgdG9vbHMgLSBjb252ZXJ0IGFycmF5IHRvIFJlY29yZDxzdHJpbmcsIFRvb2w+XG4gICAgbGV0IHRvb2xzUmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChvcHRpb25zLnRvb2xzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0b29sc0FycmF5ID0gSlNPTi5wYXJzZShvcHRpb25zLnRvb2xzKTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRvb2xzQXJyYXkpICYmIHRvb2xzQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRvb2xzUmVjb3JkID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0b29sIG9mIHRvb2xzQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvb2wuZnVuY3Rpb24/Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xzUmVjb3JkW3Rvb2wuZnVuY3Rpb24ubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRvb2wuZnVuY3Rpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogdG9vbC5mdW5jdGlvbi5wYXJhbWV0ZXJzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGU6IGFzeW5jIChfYXJnczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvb2xzIGV4ZWN1dGVkIGJ5IHRoZSBhZ2VudCAtIHdlIHJldHVybiBhIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHJlc3VsdDogJ1Rvb2wgZXhlY3V0aW9uIG5vdCBpbXBsZW1lbnRlZCBpbiBuOG4gbm9kZScgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm9kZU9wZXJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgICAgICdJbnZhbGlkIHRvb2xzIEpTT04gZm9ybWF0JyxcbiAgICAgICAgICAgICAgICB7IGl0ZW1JbmRleCB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2VuZXJhdGVUZXh0V2l0aEdyYXBoKHtcbiAgICAgICAgY2xpZW50LFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgcHJvbXB0LFxuICAgICAgICBzeXN0ZW06IHN5c3RlbU1lc3NhZ2UgfHwgdW5kZWZpbmVkLFxuICAgICAgICBtYXhDb250ZXh0VG9rZW5zOiBvcHRpb25zLm1heENvbnRleHRUb2tlbnMgfHwgMzIwMDAsXG4gICAgICAgIG1heFN0ZXBzOiBvcHRpb25zLm1heFN0ZXBzIHx8IDEwLFxuICAgICAgICB0ZW1wZXJhdHVyZTogb3B0aW9ucy50ZW1wZXJhdHVyZSxcbiAgICAgICAgdG9vbHM6IHRvb2xzUmVjb3JkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogcmVzdWx0LnRleHQgfHwgJycsXG4gICAgICAgIHN0ZXBzOiByZXN1bHQuc3RlcHM/Lm1hcCgoc3RlcDogYW55KSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgdG9vbE5hbWU6IHN0ZXAudG9vbE5hbWUsXG4gICAgICAgICAgICB0b29sQXJnczogc3RlcC50b29sQXJncyxcbiAgICAgICAgICAgIHRvb2xSZXN1bHQ6IHN0ZXAudG9vbFJlc3VsdCxcbiAgICAgICAgICAgIHRleHQ6IHN0ZXAudGV4dCxcbiAgICAgICAgfSkpIHx8IFtdLFxuICAgICAgICB1c2FnZTogcmVzdWx0LnVzYWdlXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBwcm9tcHRUb2tlbnM6IHJlc3VsdC51c2FnZS5wcm9tcHRfdG9rZW5zLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25Ub2tlbnM6IHJlc3VsdC51c2FnZS5jb21wbGV0aW9uX3Rva2VucyxcbiAgICAgICAgICAgICAgICB0b3RhbFRva2VuczogcmVzdWx0LnVzYWdlLnRvdGFsX3Rva2VucyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgfTtcbn1cblxuLy8gQXVkaW8gaGFuZGxlclxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQXVkaW8oXG4gICAgY29udGV4dDogSUV4ZWN1dGVGdW5jdGlvbnMsXG4gICAgY2xpZW50OiBRaW5pdUFJLFxuICAgIGl0ZW1JbmRleDogbnVtYmVyXG4pOiBQcm9taXNlPElEYXRhT2JqZWN0PiB7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdvcGVyYXRpb24nLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd0ZXh0VG9TcGVlY2gnKSB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3RleHQnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3Qgdm9pY2UgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3ZvaWNlJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyB7XG4gICAgICAgICAgICBlbmNvZGluZz86IHN0cmluZztcbiAgICAgICAgICAgIHNwZWVkUmF0aW8/OiBudW1iZXI7XG4gICAgICAgICAgICB2b2x1bWU/OiBudW1iZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnR0cy5zeW50aGVzaXplKHtcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICB2b2ljZV90eXBlOiB2b2ljZSxcbiAgICAgICAgICAgIGVuY29kaW5nOiBvcHRpb25zLmVuY29kaW5nIGFzIGFueSxcbiAgICAgICAgICAgIHNwZWVkX3JhdGlvOiBvcHRpb25zLnNwZWVkUmF0aW8sXG4gICAgICAgICAgICB2b2x1bWU6IG9wdGlvbnMudm9sdW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXR1cm4gYXVkaW8gYXMgYmluYXJ5IGRhdGFcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGF1ZGlvOiByZXN1bHQuYXVkaW8sXG4gICAgICAgICAgICBkdXJhdGlvbjogcmVzdWx0LmR1cmF0aW9uLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3NwZWVjaFRvVGV4dCcpIHtcbiAgICAgICAgY29uc3QgYmluYXJ5UHJvcGVydHlOYW1lID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdiaW5hcnlQcm9wZXJ0eU5hbWUnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgYXVkaW9Gb3JtYXQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2F1ZGlvRm9ybWF0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG5cbiAgICAgICAgLy8gR2V0IGJpbmFyeSBkYXRhXG4gICAgICAgIGNvbnRleHQuaGVscGVycy5hc3NlcnRCaW5hcnlEYXRhKGl0ZW1JbmRleCwgYmluYXJ5UHJvcGVydHlOYW1lKTtcbiAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY29udGV4dC5oZWxwZXJzLmdldEJpbmFyeURhdGFCdWZmZXIoaXRlbUluZGV4LCBiaW5hcnlQcm9wZXJ0eU5hbWUpO1xuICAgICAgICBjb25zdCBiYXNlNjRBdWRpbyA9IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LmFzci50cmFuc2NyaWJlKHtcbiAgICAgICAgICAgIGF1ZGlvOiB7XG4gICAgICAgICAgICAgICAgZm9ybWF0OiBhdWRpb0Zvcm1hdCBhcyBhbnksXG4gICAgICAgICAgICAgICAgZGF0YTogYmFzZTY0QXVkaW8sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGV4dDogcmVzdWx0LnRleHQgfHwgJycsXG4gICAgICAgICAgICB3b3JkczogcmVzdWx0LndvcmRzIHx8IFtdLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IE5vZGVPcGVyYXRpb25FcnJvcihcbiAgICAgICAgY29udGV4dC5nZXROb2RlKCksXG4gICAgICAgIGBVbmtub3duIGF1ZGlvIG9wZXJhdGlvbjogJHtvcGVyYXRpb259YCxcbiAgICAgICAgeyBpdGVtSW5kZXggfVxuICAgICk7XG59XG5cbi8vIFRvb2xzIGhhbmRsZXJcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVRvb2xzKFxuICAgIGNvbnRleHQ6IElFeGVjdXRlRnVuY3Rpb25zLFxuICAgIGNsaWVudDogUWluaXVBSSxcbiAgICBpdGVtSW5kZXg6IG51bWJlclxuKTogUHJvbWlzZTxJRGF0YU9iamVjdD4ge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3BlcmF0aW9uJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnd2ViU2VhcmNoJykge1xuICAgICAgICBjb25zdCBxdWVyeSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncXVlcnknLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgLy8gTm90ZTogbWF4UmVzdWx0cyBvcHRpb24gcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBTREsgc3VwcG9ydFxuXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBjbGllbnQuc3lzLnNlYXJjaCh7IHF1ZXJ5IH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZXN1bHRzOiByZXN1bHRzIHx8IFtdLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICBfcmF3OiByZXN1bHRzIGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ29jcicpIHtcbiAgICAgICAgY29uc3QgaW1hZ2VVcmwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2ltYWdlVXJsJywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCBiaW5hcnlQcm9wZXJ0eU5hbWUgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2JpbmFyeVByb3BlcnR5TmFtZScsIGl0ZW1JbmRleCwgJ2RhdGEnKSBhcyBzdHJpbmc7XG5cbiAgICAgICAgbGV0IG9jclBhcmFtczogeyB1cmw/OiBzdHJpbmc7IGltYWdlPzogc3RyaW5nIH07XG5cbiAgICAgICAgaWYgKGltYWdlVXJsKSB7XG4gICAgICAgICAgICAvLyBVc2UgVVJMIGRpcmVjdGx5XG4gICAgICAgICAgICBvY3JQYXJhbXMgPSB7IHVybDogaW1hZ2VVcmwgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEdldCBmcm9tIGJpbmFyeSBhbmQgY3JlYXRlIGRhdGEgVVJMXG4gICAgICAgICAgICBjb25zdCBiaW5hcnlEYXRhID0gY29udGV4dC5oZWxwZXJzLmFzc2VydEJpbmFyeURhdGEoaXRlbUluZGV4LCBiaW5hcnlQcm9wZXJ0eU5hbWUpO1xuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY29udGV4dC5oZWxwZXJzLmdldEJpbmFyeURhdGFCdWZmZXIoaXRlbUluZGV4LCBiaW5hcnlQcm9wZXJ0eU5hbWUpO1xuICAgICAgICAgICAgY29uc3QgbWltZVR5cGUgPSBiaW5hcnlEYXRhLm1pbWVUeXBlIHx8ICdpbWFnZS9wbmcnO1xuICAgICAgICAgICAgY29uc3QgYmFzZTY0RGF0YSA9IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgICAgICAgICAvLyBGb3JtYXQ6IGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8YmFzZTY0X2RhdGE+XG4gICAgICAgICAgICBvY3JQYXJhbXMgPSB7IGltYWdlOiBgZGF0YToke21pbWVUeXBlfTtiYXNlNjQsJHtiYXNlNjREYXRhfWAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5vY3IuZGV0ZWN0KG9jclBhcmFtcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHQ6IHJlc3VsdC50ZXh0IHx8ICcnLFxuICAgICAgICAgICAgYmxvY2tzOiByZXN1bHQuYmxvY2tzIHx8IFtdLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IE5vZGVPcGVyYXRpb25FcnJvcihcbiAgICAgICAgY29udGV4dC5nZXROb2RlKCksXG4gICAgICAgIGBVbmtub3duIHRvb2xzIG9wZXJhdGlvbjogJHtvcGVyYXRpb259YCxcbiAgICAgICAgeyBpdGVtSW5kZXggfVxuICAgICk7XG59XG4iXX0=
595
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUWluaXVBaS5ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZXMvUWluaXVBaS9RaW5pdUFpLm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBUXNCO0FBRXRCLHdEQUFpRjtBQUVqRixvRUFBNEU7QUFDNUUsc0VBQStFO0FBQy9FLHNFQUErRTtBQUMvRSxzRUFBK0U7QUFDL0Usc0VBQStFO0FBQy9FLHNFQUErRTtBQUUvRSxNQUFhLE9BQU87SUFBcEI7UUFDSSxnQkFBVyxHQUF5QjtZQUNoQyxXQUFXLEVBQUUsVUFBVTtZQUN2QixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3BCLE9BQU8sRUFBRSxDQUFDO1lBQ1YsUUFBUSxFQUFFLDhEQUE4RDtZQUN4RSxXQUFXLEVBQUUsc0VBQXNFO1lBQ25GLFFBQVEsRUFBRTtnQkFDTixJQUFJLEVBQUUsVUFBVTthQUNuQjtZQUNELE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDakIsV0FBVyxFQUFFO2dCQUNUO29CQUNJLElBQUksRUFBRSxZQUFZO29CQUNsQixRQUFRLEVBQUUsSUFBSTtpQkFDakI7YUFDSjtZQUNELFVBQVUsRUFBRTtnQkFDUixXQUFXO2dCQUNYO29CQUNJLFdBQVcsRUFBRSxVQUFVO29CQUN2QixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtvQkFDdEIsT0FBTyxFQUFFO3dCQUNMOzRCQUNJLElBQUksRUFBRSxNQUFNOzRCQUNaLEtBQUssRUFBRSxNQUFNOzRCQUNiLFdBQVcsRUFBRSwyQkFBMkI7eUJBQzNDO3dCQUNEOzRCQUNJLElBQUksRUFBRSxPQUFPOzRCQUNiLEtBQUssRUFBRSxPQUFPOzRCQUNkLFdBQVcsRUFBRSx5QkFB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LENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDbkYsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO1lBQ3BELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0MsOENBQThDO1lBQzlDLFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLFFBQVEsV0FBVyxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQ25FLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWxELE9BQU87WUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFDM0IsSUFBSSxFQUFFLE1BQWdDO1NBQ3pDLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxJQUFJLGlDQUFrQixDQUN4QixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ2pCLDRCQUE0QixTQUFTLEVBQUUsRUFDdkMsRUFBRSxTQUFTLEVBQUUsQ0FDaEIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIElFeGVjdXRlRnVuY3Rpb25zLFxuICAgIElOb2RlRXhlY3V0aW9uRGF0YSxcbiAgICBJTm9kZVR5cGUsXG4gICAgSU5vZGVUeXBlRGVzY3JpcHRpb24sXG4gICAgTm9kZU9wZXJhdGlvbkVycm9yLFxuICAgIElEYXRhT2JqZWN0LFxuICAgIElCaW5hcnlLZXlEYXRhLFxufSBmcm9tICduOG4td29ya2Zsb3cnO1xuXG5pbXBvcnQgeyBRaW5pdUFJLCBnZW5lcmF0ZVRleHRXaXRoR3JhcGgsIEFQSUVycm9yIH0gZnJvbSAnQGJvd2VucXQvcWluaXUtYWktc2RrJztcblxuaW1wb3J0IHsgY2hhdE9wZXJhdGlvbnMsIGNoYXRGaWVsZHMgfSBmcm9tICcuL2Rlc2NyaXB0aW9ucy9DaGF0RGVzY3JpcHRpb24nO1xuaW1wb3J0IHsgaW1hZ2VPcGVyYXRpb25zLCBpbWFnZUZpZWxkcyB9IGZyb20gJy4vZGVzY3JpcHRpb25zL0ltYWdlRGVzY3JpcHRpb24nO1xuaW1wb3J0IHsgdmlkZW9PcGVyYXRpb25zLCB2aWRlb0ZpZWxkcyB9IGZyb20gJy4vZGVzY3JpcHRpb25zL1ZpZGVvRGVzY3JpcHRpb24nO1xuaW1wb3J0IHsgYWdlbnRPcGVyYXRpb25zLCBhZ2VudEZpZWxkcyB9IGZyb20gJy4vZGVzY3JpcHRpb25zL0FnZW50RGVzY3JpcHRpb24nO1xuaW1wb3J0IHsgYXVkaW9PcGVyYXRpb25zLCBhdWRpb0ZpZWxkcyB9IGZyb20gJy4vZGVzY3JpcHRpb25zL0F1ZGlvRGVzY3JpcHRpb24nO1xuaW1wb3J0IHsgdG9vbHNPcGVyYXRpb25zLCB0b29sc0ZpZWxkcyB9IGZyb20gJy4vZGVzY3JpcHRpb25zL1Rvb2xzRGVzY3JpcHRpb24nO1xuXG5leHBvcnQgY2xhc3MgUWluaXVBaSBpbXBsZW1lbnRzIElOb2RlVHlwZSB7XG4gICAgZGVzY3JpcHRpb246IElOb2RlVHlwZURlc2NyaXB0aW9uID0ge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ1Fpbml1IEFJJyxcbiAgICAgICAgbmFtZTogJ3Fpbml1QWknLFxuICAgICAgICBpY29uOiAnZmlsZTpxaW5pdS5zdmcnLFxuICAgICAgICBncm91cDogWyd0cmFuc2Zvcm0nXSxcbiAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgc3VidGl0bGU6ICc9e3skcGFyYW1ldGVyW1wib3BlcmF0aW9uXCJdICsgXCI6IFwiICsgJHBhcmFtZXRlcltcInJlc291cmNlXCJdfX0nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ludGVyYWN0IHdpdGggUWluaXUgQUkgc2VydmljZXMgLSBDaGF0LCBJbWFnZSwgVmlkZW8sIEFnZW50IGFuZCBtb3JlJyxcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIG5hbWU6ICdRaW5pdSBBSScsXG4gICAgICAgIH0sXG4gICAgICAgIGlucHV0czogWydtYWluJ10sXG4gICAgICAgIG91dHB1dHM6IFsnbWFpbiddLFxuICAgICAgICBjcmVkZW50aWFsczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdxaW5pdUFpQXBpJyxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIC8vIFJlc291cmNlXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdSZXNvdXJjZScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ3Jlc291cmNlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgbm9EYXRhRXhwcmVzc2lvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdDaGF0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY2hhdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIGNoYXQgY29tcGxldGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnSW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIG9yIGVkaXQgaW1hZ2VzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1ZpZGVvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAndmlkZW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSB2aWRlb3MnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQWdlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdhZ2VudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1J1biBBSSBhZ2VudCB3aXRoIHRvb2xzIGFuZCBtZW1vcnknLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQXVkaW8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdhdWRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RleHQtdG8tU3BlZWNoIGFuZCBTcGVlY2gtdG8tVGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdUb29scycsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3Rvb2xzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnV2ViIFNlYXJjaCwgT0NSIGFuZCBtb3JlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICdjaGF0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBPcGVyYXRpb25zIGFuZCBmaWVsZHNcbiAgICAgICAgICAgIC4uLmNoYXRPcGVyYXRpb25zLFxuICAgICAgICAgICAgLi4uY2hhdEZpZWxkcyxcbiAgICAgICAgICAgIC4uLmltYWdlT3BlcmF0aW9ucyxcbiAgICAgICAgICAgIC4uLmltYWdlRmllbGRzLFxuICAgICAgICAgICAgLi4udmlkZW9PcGVyYXRpb25zLFxuICAgICAgICAgICAgLi4udmlkZW9GaWVsZHMsXG4gICAgICAgICAgICAuLi5hZ2VudE9wZXJhdGlvbnMsXG4gICAgICAgICAgICAuLi5hZ2VudEZpZWxkcyxcbiAgICAgICAgICAgIC4uLmF1ZGlvT3BlcmF0aW9ucyxcbiAgICAgICAgICAgIC4uLmF1ZGlvRmllbGRzLFxuICAgICAgICAgICAgLi4udG9vbHNPcGVyYXRpb25zLFxuICAgICAgICAgICAgLi4udG9vbHNGaWVsZHMsXG4gICAgICAgIF0sXG4gICAgfTtcblxuICAgIGFzeW5jIGV4ZWN1dGUodGhpczogSUV4ZWN1dGVGdW5jdGlvbnMpOiBQcm9taXNlPElOb2RlRXhlY3V0aW9uRGF0YVtdW10+IHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldElucHV0RGF0YSgpO1xuICAgICAgICBjb25zdCByZXR1cm5EYXRhOiBJTm9kZUV4ZWN1dGlvbkRhdGFbXSA9IFtdO1xuXG4gICAgICAgIC8vIEdldCBjcmVkZW50aWFsc1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuZ2V0Q3JlZGVudGlhbHMoJ3Fpbml1QWlBcGknKTtcbiAgICAgICAgY29uc3QgYXBpS2V5ID0gY3JlZGVudGlhbHMuYXBpS2V5IGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IChjcmVkZW50aWFscy5iYXNlVXJsIGFzIHN0cmluZykgfHwgJ2h0dHBzOi8vYXBpLnFuYWlnYy5jb20vdjEnO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgY2xpZW50XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IG5ldyBRaW5pdUFJKHsgYXBpS2V5LCBiYXNlVXJsIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5nZXROb2RlUGFyYW1ldGVyKCdyZXNvdXJjZScsIDApIGFzIHN0cmluZztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IElEYXRhT2JqZWN0O1xuXG4gICAgICAgICAgICAgICAgLy8gUm91dGUgdG8gYXBwcm9wcmlhdGUgaGFuZGxlclxuICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZSA9PT0gJ2NoYXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGhhbmRsZUNoYXQodGhpcywgY2xpZW50LCBpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc291cmNlID09PSAnaW1hZ2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEltYWdlIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGJpbmFyeSBvdXRwdXRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW1hZ2VSZXN1bHQgPSBhd2FpdCBoYW5kbGVJbWFnZSh0aGlzLCBjbGllbnQsIGkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm5EYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAganNvbjogaW1hZ2VSZXN1bHQuanNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeTogaW1hZ2VSZXN1bHQuYmluYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFpcmVkSXRlbTogeyBpdGVtOiBpIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc291cmNlID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGhhbmRsZVZpZGVvKHRoaXMsIGNsaWVudCwgaSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNvdXJjZSA9PT0gJ2FnZW50Jykge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBoYW5kbGVBZ2VudCh0aGlzLCBjbGllbnQsIGkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzb3VyY2UgPT09ICdhdWRpbycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgaGFuZGxlQXVkaW8odGhpcywgY2xpZW50LCBpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc291cmNlID09PSAndG9vbHMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGhhbmRsZVRvb2xzKHRoaXMsIGNsaWVudCwgaSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vZGVPcGVyYXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYFVua25vd24gcmVzb3VyY2U6ICR7cmVzb3VyY2V9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgaXRlbUluZGV4OiBpIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5EYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBqc29uOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHBhaXJlZEl0ZW06IHsgaXRlbTogaSB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBUElFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTm9kZU9wZXJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBgUWluaXUgQUkgQVBJIEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtSW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBTdGF0dXM6ICR7ZXJyb3Iuc3RhdHVzfSwgQ29kZTogJHsoZXJyb3IgYXMgYW55KS5jb2RlIHx8ICd1bmtub3duJ31gLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbcmV0dXJuRGF0YV07XG4gICAgfVxufVxuXG4vLyBDaGF0IGhhbmRsZXJcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUNoYXQoXG4gICAgY29udGV4dDogSUV4ZWN1dGVGdW5jdGlvbnMsXG4gICAgY2xpZW50OiBRaW5pdUFJLFxuICAgIGl0ZW1JbmRleDogbnVtYmVyXG4pOiBQcm9taXNlPElEYXRhT2JqZWN0PiB7XG4gICAgY29uc3QgbW9kZWwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ21vZGVsJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3QgaW5wdXRUeXBlID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdpbnB1dFR5cGUnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdvcHRpb25zJywgaXRlbUluZGV4LCB7fSkgYXMge1xuICAgICAgICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgICAgICAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICAgICAgICBqc29uTW9kZT86IGJvb2xlYW47XG4gICAgICAgIHRvcFA/OiBudW1iZXI7XG4gICAgfTtcblxuICAgIC8vIEJ1aWxkIG1lc3NhZ2VzXG4gICAgbGV0IG1lc3NhZ2VzOiBBcnJheTx7IHJvbGU6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoaW5wdXRUeXBlID09PSAnc2ltcGxlJykge1xuICAgICAgICBjb25zdCBwcm9tcHQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3Byb21wdCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCBzeXN0ZW1NZXNzYWdlID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdzeXN0ZW1NZXNzYWdlJywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuXG4gICAgICAgIGlmIChzeXN0ZW1NZXNzYWdlKSB7XG4gICAgICAgICAgICBtZXNzYWdlcy5wdXNoKHsgcm9sZTogJ3N5c3RlbScsIGNvbnRlbnQ6IHN5c3RlbU1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgbWVzc2FnZXMucHVzaCh7IHJvbGU6ICd1c2VyJywgY29udGVudDogcHJvbXB0IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzRGF0YSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignbWVzc2FnZXMnLCBpdGVtSW5kZXgpIGFzIHtcbiAgICAgICAgICAgIG1lc3NhZ2VWYWx1ZXM/OiBBcnJheTx7IHJvbGU6IHN0cmluZzsgY29udGVudDogc3RyaW5nIH0+O1xuICAgICAgICB9O1xuICAgICAgICBtZXNzYWdlcyA9IG1lc3NhZ2VzRGF0YS5tZXNzYWdlVmFsdWVzIHx8IFtdO1xuICAgIH1cblxuICAgIC8vIENhbGwgQVBJXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuY2hhdC5jcmVhdGUoe1xuICAgICAgICBtb2RlbCxcbiAgICAgICAgbWVzc2FnZXM6IG1lc3NhZ2VzIGFzIGFueSxcbiAgICAgICAgdGVtcGVyYXR1cmU6IG9wdGlvbnMudGVtcGVyYXR1cmUsXG4gICAgICAgIG1heF90b2tlbnM6IG9wdGlvbnMubWF4VG9rZW5zLFxuICAgICAgICB0b3BfcDogb3B0aW9ucy50b3BQLFxuICAgICAgICByZXNwb25zZV9mb3JtYXQ6IG9wdGlvbnMuanNvbk1vZGUgPyB7IHR5cGU6ICdqc29uX29iamVjdCcgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIC8vIE5vcm1hbGl6ZSBvdXRwdXRcbiAgICBjb25zdCBjaG9pY2UgPSByZXNwb25zZS5jaG9pY2VzPy5bMF07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogY2hvaWNlPy5tZXNzYWdlPy5jb250ZW50IHx8ICcnLFxuICAgICAgICByb2xlOiBjaG9pY2U/Lm1lc3NhZ2U/LnJvbGUgfHwgJ2Fzc2lzdGFudCcsXG4gICAgICAgIGZpbmlzaFJlYXNvbjogY2hvaWNlPy5maW5pc2hfcmVhc29uIHx8IG51bGwsXG4gICAgICAgIHVzYWdlOiByZXNwb25zZS51c2FnZVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcHJvbXB0VG9rZW5zOiByZXNwb25zZS51c2FnZS5wcm9tcHRfdG9rZW5zLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25Ub2tlbnM6IHJlc3BvbnNlLnVzYWdlLmNvbXBsZXRpb25fdG9rZW5zLFxuICAgICAgICAgICAgICAgIHRvdGFsVG9rZW5zOiByZXNwb25zZS51c2FnZS50b3RhbF90b2tlbnMsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgIF9yYXc6IHJlc3BvbnNlIGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgfTtcbn1cblxuLy8gSW1hZ2UgaGFuZGxlciAtIHJldHVybnMgeyBqc29uLCBiaW5hcnkgfSBmb3IgcHJvcGVyIG44biBiaW5hcnkgZGF0YSBoYW5kbGluZ1xuYXN5bmMgZnVuY3Rpb24gaGFuZGxlSW1hZ2UoXG4gICAgY29udGV4dDogSUV4ZWN1dGVGdW5jdGlvbnMsXG4gICAgY2xpZW50OiBRaW5pdUFJLFxuICAgIGl0ZW1JbmRleDogbnVtYmVyXG4pOiBQcm9taXNlPHsganNvbjogSURhdGFPYmplY3Q7IGJpbmFyeT86IElCaW5hcnlLZXlEYXRhIH0+IHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wZXJhdGlvbicsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdtb2RlbCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHByb21wdCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncHJvbXB0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3Qgd2FpdEZvckNvbXBsZXRpb24gPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3dhaXRGb3JDb21wbGV0aW9uJywgaXRlbUluZGV4LCB0cnVlKSBhcyBib29sZWFuO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgICBtb2RlbCxcbiAgICAgICAgcHJvbXB0LFxuICAgICAgICBuZWdhdGl2ZV9wcm9tcHQ6IG9wdGlvbnMubmVnYXRpdmVQcm9tcHQsXG4gICAgICAgIGFzcGVjdF9yYXRpbzogb3B0aW9ucy5hc3BlY3RSYXRpbyxcbiAgICAgICAgbjogb3B0aW9ucy5uLFxuICAgIH07XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnZWRpdCcpIHtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlVXJsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdyZWZlcmVuY2VJbWFnZVVybCcsIGl0ZW1JbmRleCwgJycpIGFzIHN0cmluZztcbiAgICAgICAgaWYgKHJlZmVyZW5jZVVybCkge1xuICAgICAgICAgICAgcGFyYW1zLmltYWdlX3VybCA9IHJlZmVyZW5jZVVybDtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5tYXNrKSB7XG4gICAgICAgICAgICBwYXJhbXMubWFzayA9IG9wdGlvbnMubWFzaztcbiAgICAgICAgfVxuICAgICAgICBwYXJhbXMuc3RyZW5ndGggPSBvcHRpb25zLnN0cmVuZ3RoO1xuICAgICAgICBwYXJhbXMuaW1hZ2VfcmVmZXJlbmNlID0gb3B0aW9ucy5pbWFnZVJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgaW1hZ2VfY29uZmlnXG4gICAgaWYgKG9wdGlvbnMuaW1hZ2VTaXplKSB7XG4gICAgICAgIHBhcmFtcy5pbWFnZV9jb25maWcgPSB7IGltYWdlX3NpemU6IG9wdGlvbnMuaW1hZ2VTaXplIH07XG4gICAgfVxuXG4gICAgLy8gQWR2YW5jZWQgaW1hZ2UgcmVmZXJlbmNlcyAoZ2VuZXJhdGUgb25seSlcbiAgICBpZiAob3BlcmF0aW9uID09PSAnZ2VuZXJhdGUnKSB7XG4gICAgICAgIGNvbnN0IHN1YmplY3RJbWFnZVVybHMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3N1YmplY3RJbWFnZVVybHMnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHNjZW5lSW1hZ2VVcmwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3NjZW5lSW1hZ2VVcmwnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHN0eWxlSW1hZ2VVcmwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3N0eWxlSW1hZ2VVcmwnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG5cbiAgICAgICAgLy8gU3ViamVjdCByZWZlcmVuY2UgaW1hZ2VzXG4gICAgICAgIGlmIChzdWJqZWN0SW1hZ2VVcmxzKSB7XG4gICAgICAgICAgICBjb25zdCB1cmxzID0gc3ViamVjdEltYWdlVXJscy5zcGxpdCgnLCcpLm1hcCh1ID0+IHUudHJpbSgpKS5maWx0ZXIodSA9PiB1KTtcbiAgICAgICAgICAgIGlmICh1cmxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuc3ViamVjdF9pbWFnZV9saXN0ID0gdXJscy5tYXAoaW1hZ2UgPT4gKHsgaW1hZ2UsIGltYWdlX3R5cGU6ICdzdWJqZWN0JyB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTY2VuZSByZWZlcmVuY2UgaW1hZ2VcbiAgICAgICAgaWYgKHNjZW5lSW1hZ2VVcmwpIHtcbiAgICAgICAgICAgIHBhcmFtcy5zY2VuZV9pbWFnZSA9IHsgaW1hZ2U6IHNjZW5lSW1hZ2VVcmwgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0eWxlIHJlZmVyZW5jZSBpbWFnZVxuICAgICAgICBpZiAoc3R5bGVJbWFnZVVybCkge1xuICAgICAgICAgICAgcGFyYW1zLnN0eWxlX2ltYWdlID0geyBpbWFnZTogc3R5bGVJbWFnZVVybCB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogYW55O1xuICAgIGlmIChvcGVyYXRpb24gPT09ICdnZW5lcmF0ZScpIHtcbiAgICAgICAgY29uc3QgY3JlYXRlUmVzdWx0ID0gYXdhaXQgY2xpZW50LmltYWdlLmdlbmVyYXRlKHBhcmFtcyk7XG4gICAgICAgIGlmICh3YWl0Rm9yQ29tcGxldGlvbikge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgY2xpZW50LmltYWdlLndhaXRGb3JSZXN1bHQoY3JlYXRlUmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0ZVJlc3VsdDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGNsaWVudC5pbWFnZS5lZGl0KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgYmluYXJ5IGRhdGEgZnJvbSBiYXNlNjQgaW1hZ2VzXG4gICAgY29uc3QgYmluYXJ5OiBJQmluYXJ5S2V5RGF0YSA9IHt9O1xuICAgIGNvbnN0IGltYWdlczogYW55W10gPSBbXTtcblxuICAgIGlmIChyZXN1bHQuZGF0YSAmJiBBcnJheS5pc0FycmF5KHJlc3VsdC5kYXRhKSkge1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCByZXN1bHQuZGF0YS5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSByZXN1bHQuZGF0YVtpZHhdO1xuICAgICAgICAgICAgaW1hZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgIHVybDogaW1nLnVybCB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgaW5kZXg6IGltZy5pbmRleCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBDb252ZXJ0IGJhc2U2NCB0byBiaW5hcnkgZGF0YSBmb3IgZG93bnN0cmVhbSB1c2FnZVxuICAgICAgICAgICAgaWYgKGltZy5iNjRfanNvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGltZy5iNjRfanNvbiwgJ2Jhc2U2NCcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpbmFyeUtleSA9IGlkeCA9PT0gMCA/ICdkYXRhJyA6IGBkYXRhXyR7aWR4fWA7XG4gICAgICAgICAgICAgICAgYmluYXJ5W2JpbmFyeUtleV0gPSBhd2FpdCBjb250ZXh0LmhlbHBlcnMucHJlcGFyZUJpbmFyeURhdGEoXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcixcbiAgICAgICAgICAgICAgICAgICAgYGltYWdlXyR7aWR4fS4ke3Jlc3VsdC5vdXRwdXRfZm9ybWF0IHx8ICdwbmcnfWAsXG4gICAgICAgICAgICAgICAgICAgIGBpbWFnZS8ke3Jlc3VsdC5vdXRwdXRfZm9ybWF0IHx8ICdwbmcnfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAganNvbjoge1xuICAgICAgICAgICAgaW1hZ2VzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXN1bHQuc3RhdHVzIHx8ICd1bmtub3duJyxcbiAgICAgICAgICAgIHRhc2tJZDogcmVzdWx0LnRhc2tfaWQsXG4gICAgICAgICAgICBpc1N5bmM6IHJlc3VsdC5pc1N5bmMsXG4gICAgICAgICAgICBpbWFnZUNvdW50OiBpbWFnZXMubGVuZ3RoLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0LFxuICAgICAgICB9LFxuICAgICAgICBiaW5hcnk6IE9iamVjdC5rZXlzKGJpbmFyeSkubGVuZ3RoID4gMCA/IGJpbmFyeSA6IHVuZGVmaW5lZCxcbiAgICB9O1xufVxuXG4vLyBWaWRlbyBoYW5kbGVyXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVWaWRlbyhcbiAgICBjb250ZXh0OiBJRXhlY3V0ZUZ1bmN0aW9ucyxcbiAgICBjbGllbnQ6IFFpbml1QUksXG4gICAgaXRlbUluZGV4OiBudW1iZXJcbik6IFByb21pc2U8SURhdGFPYmplY3Q+IHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wZXJhdGlvbicsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ2dldFN0YXR1cycpIHtcbiAgICAgICAgY29uc3QgdGFza0lkID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCd0YXNrSWQnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnZpZGVvLmdldCh0YXNrSWQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IHJlc3VsdC5pZCxcbiAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICAgICAgICAgIHZpZGVvczogcmVzdWx0LnRhc2tfcmVzdWx0Py52aWRlb3MgfHwgW10sXG4gICAgICAgICAgICBtZXNzYWdlOiByZXN1bHQubWVzc2FnZSxcbiAgICAgICAgICAgIF9yYXc6IHJlc3VsdCBhcyB1bmtub3duIGFzIElEYXRhT2JqZWN0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlmIChvcGVyYXRpb24gPT09ICdyZW1peCcpIHtcbiAgICAgICAgY29uc3Qgc291cmNlVmlkZW9JZCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignc291cmNlVmlkZW9JZCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCByZW1peFByb21wdCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncmVtaXhQcm9tcHQnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHdhaXRGb3JDb21wbGV0aW9uID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCd3YWl0Rm9yQ29tcGxldGlvbicsIGl0ZW1JbmRleCwgdHJ1ZSkgYXMgYm9vbGVhbjtcbiAgICAgICAgY29uc3QgcmVtaXhPcHRpb25zID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdyZW1peE9wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAgICAgICBjb25zdCByZW1peFBhcmFtczogYW55ID0ge307XG4gICAgICAgIGlmIChyZW1peFByb21wdCkgcmVtaXhQYXJhbXMucHJvbXB0ID0gcmVtaXhQcm9tcHQ7XG4gICAgICAgIGlmIChyZW1peE9wdGlvbnMuZHVyYXRpb24pIHJlbWl4UGFyYW1zLmR1cmF0aW9uID0gcmVtaXhPcHRpb25zLmR1cmF0aW9uO1xuICAgICAgICBpZiAocmVtaXhPcHRpb25zLm1vZGUpIHJlbWl4UGFyYW1zLm1vZGUgPSByZW1peE9wdGlvbnMubW9kZTtcbiAgICAgICAgaWYgKHJlbWl4T3B0aW9ucy5uZWdhdGl2ZVByb21wdCkgcmVtaXhQYXJhbXMubmVnYXRpdmVfcHJvbXB0ID0gcmVtaXhPcHRpb25zLm5lZ2F0aXZlUHJvbXB0O1xuXG4gICAgICAgIGNvbnN0IHRhc2sgPSBhd2FpdCBjbGllbnQudmlkZW8ucmVtaXgoc291cmNlVmlkZW9JZCwgcmVtaXhQYXJhbXMpO1xuXG4gICAgICAgIGlmICh3YWl0Rm9yQ29tcGxldGlvbikge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnZpZGVvLndhaXRGb3JDb21wbGV0aW9uKHRhc2suaWQpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogcmVzdWx0LmlkLFxuICAgICAgICAgICAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICAgICAgICAgICAgICB2aWRlb3M6IHJlc3VsdC50YXNrX3Jlc3VsdD8udmlkZW9zIHx8IFtdLFxuICAgICAgICAgICAgICAgIF9yYXc6IHJlc3VsdCBhcyB1bmtub3duIGFzIElEYXRhT2JqZWN0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogdGFzay5pZCxcbiAgICAgICAgICAgIHN0YXR1czogJ3Byb2Nlc3NpbmcnLFxuICAgICAgICAgICAgX3JhdzogdGFzayxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZVxuICAgIGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdtb2RlbCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHByb21wdCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncHJvbXB0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3Qgd2FpdEZvckNvbXBsZXRpb24gPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3dhaXRGb3JDb21wbGV0aW9uJywgaXRlbUluZGV4LCB0cnVlKSBhcyBib29sZWFuO1xuICAgIGNvbnN0IGZpcnN0RnJhbWVVcmwgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2ZpcnN0RnJhbWVVcmwnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgZmlyc3RGcmFtZUJpbmFyeVByb3BlcnR5ID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdmaXJzdEZyYW1lQmluYXJ5UHJvcGVydHknLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgbGFzdEZyYW1lVXJsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdsYXN0RnJhbWVVcmwnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgY29uc3QgbGFzdEZyYW1lQmluYXJ5UHJvcGVydHkgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2xhc3RGcmFtZUJpbmFyeVByb3BlcnR5JywgaXRlbUluZGV4LCAnJykgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGFzcGVjdFJhdGlvID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdhc3BlY3RSYXRpbycsIGl0ZW1JbmRleCwgJzE2OjknKSBhcyBzdHJpbmc7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3B0aW9ucycsIGl0ZW1JbmRleCwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XG4gICAgICAgIG1vZGVsLFxuICAgICAgICBwcm9tcHQsXG4gICAgICAgIG5lZ2F0aXZlX3Byb21wdDogb3B0aW9ucy5uZWdhdGl2ZVByb21wdCxcbiAgICAgICAgYXNwZWN0X3JhdGlvOiBhc3BlY3RSYXRpbyxcbiAgICB9O1xuXG4gICAgLy8gRnJhbWUgY29udHJvbCAtIHN1cHBvcnQgYm90aCBVUkwgYW5kIEJpbmFyeSBEYXRhXG4gICAgY29uc3QgZnJhbWVzOiBhbnkgPSB7fTtcblxuICAgIC8vIEZpcnN0IGZyYW1lXG4gICAgaWYgKGZpcnN0RnJhbWVVcmwpIHtcbiAgICAgICAgZnJhbWVzLmZpcnN0ID0geyB1cmw6IGZpcnN0RnJhbWVVcmwgfTtcbiAgICB9IGVsc2UgaWYgKGZpcnN0RnJhbWVCaW5hcnlQcm9wZXJ0eSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY29udGV4dC5oZWxwZXJzLmdldEJpbmFyeURhdGFCdWZmZXIoaXRlbUluZGV4LCBmaXJzdEZyYW1lQmluYXJ5UHJvcGVydHkpO1xuICAgICAgICAgICAgZnJhbWVzLmZpcnN0ID0geyBiYXNlNjQ6IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0JykgfTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBCaW5hcnkgZGF0YSBub3QgZm91bmQsIHNraXBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIExhc3QgZnJhbWVcbiAgICBpZiAobGFzdEZyYW1lVXJsKSB7XG4gICAgICAgIGZyYW1lcy5sYXN0ID0geyB1cmw6IGxhc3RGcmFtZVVybCB9O1xuICAgIH0gZWxzZSBpZiAobGFzdEZyYW1lQmluYXJ5UHJvcGVydHkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGNvbnRleHQuaGVscGVycy5nZXRCaW5hcnlEYXRhQnVmZmVyKGl0ZW1JbmRleCwgbGFzdEZyYW1lQmluYXJ5UHJvcGVydHkpO1xuICAgICAgICAgICAgZnJhbWVzLmxhc3QgPSB7IGJhc2U2NDogYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSB9O1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIEJpbmFyeSBkYXRhIG5vdCBmb3VuZCwgc2tpcFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKGZyYW1lcykubGVuZ3RoID4gMCkge1xuICAgICAgICBwYXJhbXMuZnJhbWVzID0gZnJhbWVzO1xuICAgIH1cblxuICAgIC8vIFZpZGVvIHJlZmVyZW5jZSAodmlkZW9fbGlzdCkgZm9yIHZpZGVvLXRvLXZpZGVvIGdlbmVyYXRpb25cbiAgICBjb25zdCB2aWRlb1JlZmVyZW5jZVVybCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigndmlkZW9SZWZlcmVuY2VVcmwnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgY29uc3Qga2VlcE9yaWdpbmFsU291bmQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2tlZXBPcmlnaW5hbFNvdW5kJywgaXRlbUluZGV4LCBmYWxzZSkgYXMgYm9vbGVhbjtcbiAgICBpZiAodmlkZW9SZWZlcmVuY2VVcmwpIHtcbiAgICAgICAgcGFyYW1zLnZpZGVvX2xpc3QgPSBbe1xuICAgICAgICAgICAgdmlkZW9fdXJsOiB2aWRlb1JlZmVyZW5jZVVybCxcbiAgICAgICAgICAgIGtlZXBfb3JpZ2luYWxfc291bmQ6IGtlZXBPcmlnaW5hbFNvdW5kID8gJ3llcycgOiAnbm8nLFxuICAgICAgICB9XTtcbiAgICB9XG5cbiAgICAvLyBNb2RlbC1zcGVjaWZpYyBvcHRpb25zXG4gICAgaWYgKG1vZGVsLmluY2x1ZGVzKCdrbGluZycpKSB7XG4gICAgICAgIGNvbnN0IGtsaW5nT3B0aW9ucyA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigna2xpbmdPcHRpb25zJywgaXRlbUluZGV4LCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIC8vIER1cmF0aW9uIGlzIHJlcXVpcmVkIGZvciBLbGluZyAtIGRlZmF1bHQgdG8gNSBzZWNvbmRzXG4gICAgICAgIHBhcmFtcy5kdXJhdGlvbiA9IGtsaW5nT3B0aW9ucy5kdXJhdGlvbiB8fCAnNSc7XG4gICAgICAgIGlmIChrbGluZ09wdGlvbnMubW9kZSkgcGFyYW1zLm1vZGUgPSBrbGluZ09wdGlvbnMubW9kZTtcbiAgICAgICAgaWYgKGtsaW5nT3B0aW9ucy5jZmdTY2FsZSkgcGFyYW1zLmNmZ19zY2FsZSA9IGtsaW5nT3B0aW9ucy5jZmdTY2FsZTtcblxuICAgICAgICAvLyBVc2Ugc2l6ZSBmcm9tIG9wdGlvbnMsIG9yIGRlcml2ZSBmcm9tIGFzcGVjdF9yYXRpbyAod29ya2Fyb3VuZCBmb3IgU0RLIGJ1ZylcbiAgICAgICAgaWYgKGtsaW5nT3B0aW9ucy5zaXplKSB7XG4gICAgICAgICAgICBwYXJhbXMuc2l6ZSA9IGtsaW5nT3B0aW9ucy5zaXplO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTWFwIGFzcGVjdF9yYXRpbyB0byBkZWZhdWx0IHNpemUgZm9yIEtsaW5nIEFQSVxuICAgICAgICAgICAgY29uc3Qgc2l6ZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICAgICAnMTY6OSc6ICcxOTIwOjEwODAnLFxuICAgICAgICAgICAgICAgICc5OjE2JzogJzEwODA6MTkyMCcsXG4gICAgICAgICAgICAgICAgJzE6MSc6ICcxMDgwOjEwODAnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHBhcmFtcy5zaXplID0gc2l6ZU1hcFthc3BlY3RSYXRpb10gfHwgJzE5MjA6MTA4MCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZWwuaW5jbHVkZXMoJ3ZlbycpKSB7XG4gICAgICAgIGNvbnN0IHZlb09wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3Zlb09wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgLy8gRHVyYXRpb25TZWNvbmRzIGlzIHJlcXVpcmVkIGZvciBWZW8gLSBmaXhlZCBhdCA4IHNlY29uZHNcbiAgICAgICAgcGFyYW1zLmR1cmF0aW9uID0gdmVvT3B0aW9ucy5kdXJhdGlvbiB8fCA4O1xuICAgICAgICBpZiAodmVvT3B0aW9ucy5nZW5lcmF0ZUF1ZGlvICE9PSB1bmRlZmluZWQpIHBhcmFtcy5nZW5lcmF0ZV9hdWRpbyA9IHZlb09wdGlvbnMuZ2VuZXJhdGVBdWRpbztcbiAgICAgICAgaWYgKHZlb09wdGlvbnMucmVzb2x1dGlvbikgcGFyYW1zLnJlc29sdXRpb24gPSB2ZW9PcHRpb25zLnJlc29sdXRpb247XG4gICAgICAgIGlmICh2ZW9PcHRpb25zLnNhbXBsZUNvdW50KSBwYXJhbXMuc2FtcGxlX2NvdW50ID0gdmVvT3B0aW9ucy5zYW1wbGVDb3VudDtcbiAgICAgICAgaWYgKHZlb09wdGlvbnMucGVyc29uR2VuZXJhdGlvbikgcGFyYW1zLnBlcnNvbl9nZW5lcmF0aW9uID0gdmVvT3B0aW9ucy5wZXJzb25HZW5lcmF0aW9uO1xuICAgICAgICBpZiAodmVvT3B0aW9ucy5zZWVkKSBwYXJhbXMuc2VlZCA9IHZlb09wdGlvbnMuc2VlZDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXNrID0gYXdhaXQgY2xpZW50LnZpZGVvLmNyZWF0ZShwYXJhbXMpO1xuXG4gICAgaWYgKHdhaXRGb3JDb21wbGV0aW9uKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC52aWRlby53YWl0Rm9yQ29tcGxldGlvbih0YXNrLmlkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiByZXN1bHQuaWQsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3VsdC5zdGF0dXMsXG4gICAgICAgICAgICB2aWRlb3M6IHJlc3VsdC50YXNrX3Jlc3VsdD8udmlkZW9zIHx8IFtdLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICAgIHN0YXR1czogJ3Byb2Nlc3NpbmcnLFxuICAgICAgICBfcmF3OiB0YXNrLFxuICAgIH07XG59XG5cbi8vIEFnZW50IGhhbmRsZXJcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZUFnZW50KFxuICAgIGNvbnRleHQ6IElFeGVjdXRlRnVuY3Rpb25zLFxuICAgIGNsaWVudDogUWluaXVBSSxcbiAgICBpdGVtSW5kZXg6IG51bWJlclxuKTogUHJvbWlzZTxJRGF0YU9iamVjdD4ge1xuICAgIGNvbnN0IG1vZGVsID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdtb2RlbCcsIGl0ZW1JbmRleCkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IHByb21wdCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncHJvbXB0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgY29uc3Qgc3lzdGVtTWVzc2FnZSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignc3lzdGVtTWVzc2FnZScsIGl0ZW1JbmRleCwgJycpIGFzIHN0cmluZztcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdvcHRpb25zJywgaXRlbUluZGV4LCB7fSkgYXMge1xuICAgICAgICBtYXhDb250ZXh0VG9rZW5zPzogbnVtYmVyO1xuICAgICAgICBtYXhTdGVwcz86IG51bWJlcjtcbiAgICAgICAgdGhyZWFkSWQ/OiBzdHJpbmc7XG4gICAgICAgIHRvb2xzPzogc3RyaW5nO1xuICAgICAgICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgICB9O1xuXG4gICAgLy8gUGFyc2UgdG9vbHMgLSBjb252ZXJ0IGFycmF5IHRvIFJlY29yZDxzdHJpbmcsIFRvb2w+XG4gICAgbGV0IHRvb2xzUmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICAgIGlmIChvcHRpb25zLnRvb2xzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0b29sc0FycmF5ID0gSlNPTi5wYXJzZShvcHRpb25zLnRvb2xzKTtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRvb2xzQXJyYXkpICYmIHRvb2xzQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRvb2xzUmVjb3JkID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0b29sIG9mIHRvb2xzQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvb2wuZnVuY3Rpb24/Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xzUmVjb3JkW3Rvb2wuZnVuY3Rpb24ubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRvb2wuZnVuY3Rpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogdG9vbC5mdW5jdGlvbi5wYXJhbWV0ZXJzIHx8IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGU6IGFzeW5jIChfYXJnczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvb2xzIGV4ZWN1dGVkIGJ5IHRoZSBhZ2VudCAtIHdlIHJldHVybiBhIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHJlc3VsdDogJ1Rvb2wgZXhlY3V0aW9uIG5vdCBpbXBsZW1lbnRlZCBpbiBuOG4gbm9kZScgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm9kZU9wZXJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgICAgICdJbnZhbGlkIHRvb2xzIEpTT04gZm9ybWF0JyxcbiAgICAgICAgICAgICAgICB7IGl0ZW1JbmRleCB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2VuZXJhdGVUZXh0V2l0aEdyYXBoKHtcbiAgICAgICAgY2xpZW50LFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgcHJvbXB0LFxuICAgICAgICBzeXN0ZW06IHN5c3RlbU1lc3NhZ2UgfHwgdW5kZWZpbmVkLFxuICAgICAgICBtYXhDb250ZXh0VG9rZW5zOiBvcHRpb25zLm1heENvbnRleHRUb2tlbnMgfHwgMzIwMDAsXG4gICAgICAgIG1heFN0ZXBzOiBvcHRpb25zLm1heFN0ZXBzIHx8IDEwLFxuICAgICAgICB0ZW1wZXJhdHVyZTogb3B0aW9ucy50ZW1wZXJhdHVyZSxcbiAgICAgICAgdG9vbHM6IHRvb2xzUmVjb3JkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogcmVzdWx0LnRleHQgfHwgJycsXG4gICAgICAgIHN0ZXBzOiByZXN1bHQuc3RlcHM/Lm1hcCgoc3RlcDogYW55KSA9PiAoe1xuICAgICAgICAgICAgdHlwZTogc3RlcC50eXBlLFxuICAgICAgICAgICAgdG9vbE5hbWU6IHN0ZXAudG9vbE5hbWUsXG4gICAgICAgICAgICB0b29sQXJnczogc3RlcC50b29sQXJncyxcbiAgICAgICAgICAgIHRvb2xSZXN1bHQ6IHN0ZXAudG9vbFJlc3VsdCxcbiAgICAgICAgICAgIHRleHQ6IHN0ZXAudGV4dCxcbiAgICAgICAgfSkpIHx8IFtdLFxuICAgICAgICB1c2FnZTogcmVzdWx0LnVzYWdlXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBwcm9tcHRUb2tlbnM6IHJlc3VsdC51c2FnZS5wcm9tcHRfdG9rZW5zLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25Ub2tlbnM6IHJlc3VsdC51c2FnZS5jb21wbGV0aW9uX3Rva2VucyxcbiAgICAgICAgICAgICAgICB0b3RhbFRva2VuczogcmVzdWx0LnVzYWdlLnRvdGFsX3Rva2VucyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgfTtcbn1cblxuLy8gQXVkaW8gaGFuZGxlclxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlQXVkaW8oXG4gICAgY29udGV4dDogSUV4ZWN1dGVGdW5jdGlvbnMsXG4gICAgY2xpZW50OiBRaW5pdUFJLFxuICAgIGl0ZW1JbmRleDogbnVtYmVyXG4pOiBQcm9taXNlPElEYXRhT2JqZWN0PiB7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdvcGVyYXRpb24nLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcblxuICAgIGlmIChvcGVyYXRpb24gPT09ICd0ZXh0VG9TcGVlY2gnKSB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3RleHQnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3Qgdm9pY2UgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ3ZvaWNlJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ29wdGlvbnMnLCBpdGVtSW5kZXgsIHt9KSBhcyB7XG4gICAgICAgICAgICBlbmNvZGluZz86IHN0cmluZztcbiAgICAgICAgICAgIHNwZWVkUmF0aW8/OiBudW1iZXI7XG4gICAgICAgICAgICB2b2x1bWU/OiBudW1iZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LnR0cy5zeW50aGVzaXplKHtcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICB2b2ljZV90eXBlOiB2b2ljZSxcbiAgICAgICAgICAgIGVuY29kaW5nOiBvcHRpb25zLmVuY29kaW5nIGFzIGFueSxcbiAgICAgICAgICAgIHNwZWVkX3JhdGlvOiBvcHRpb25zLnNwZWVkUmF0aW8sXG4gICAgICAgICAgICB2b2x1bWU6IG9wdGlvbnMudm9sdW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXR1cm4gYXVkaW8gYXMgYmluYXJ5IGRhdGFcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGF1ZGlvOiByZXN1bHQuYXVkaW8sXG4gICAgICAgICAgICBkdXJhdGlvbjogcmVzdWx0LmR1cmF0aW9uLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gJ3NwZWVjaFRvVGV4dCcpIHtcbiAgICAgICAgY29uc3QgYmluYXJ5UHJvcGVydHlOYW1lID0gY29udGV4dC5nZXROb2RlUGFyYW1ldGVyKCdiaW5hcnlQcm9wZXJ0eU5hbWUnLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgYXVkaW9Gb3JtYXQgPSBjb250ZXh0LmdldE5vZGVQYXJhbWV0ZXIoJ2F1ZGlvRm9ybWF0JywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG5cbiAgICAgICAgLy8gR2V0IGJpbmFyeSBkYXRhXG4gICAgICAgIGNvbnRleHQuaGVscGVycy5hc3NlcnRCaW5hcnlEYXRhKGl0ZW1JbmRleCwgYmluYXJ5UHJvcGVydHlOYW1lKTtcbiAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY29udGV4dC5oZWxwZXJzLmdldEJpbmFyeURhdGFCdWZmZXIoaXRlbUluZGV4LCBiaW5hcnlQcm9wZXJ0eU5hbWUpO1xuICAgICAgICBjb25zdCBiYXNlNjRBdWRpbyA9IGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50LmFzci50cmFuc2NyaWJlKHtcbiAgICAgICAgICAgIGF1ZGlvOiB7XG4gICAgICAgICAgICAgICAgZm9ybWF0OiBhdWRpb0Zvcm1hdCBhcyBhbnksXG4gICAgICAgICAgICAgICAgZGF0YTogYmFzZTY0QXVkaW8sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGV4dDogcmVzdWx0LnRleHQgfHwgJycsXG4gICAgICAgICAgICB3b3JkczogcmVzdWx0LndvcmRzIHx8IFtdLFxuICAgICAgICAgICAgX3JhdzogcmVzdWx0IGFzIHVua25vd24gYXMgSURhdGFPYmplY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IE5vZGVPcGVyYXRpb25FcnJvcihcbiAgICAgICAgY29udGV4dC5nZXROb2RlKCksXG4gICAgICAgIGBVbmtub3duIGF1ZGlvIG9wZXJhdGlvbjogJHtvcGVyYXRpb259YCxcbiAgICAgICAgeyBpdGVtSW5kZXggfVxuICAgICk7XG59XG5cbi8vIFRvb2xzIGhhbmRsZXJcbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVRvb2xzKFxuICAgIGNvbnRleHQ6IElFeGVjdXRlRnVuY3Rpb25zLFxuICAgIGNsaWVudDogUWluaXVBSSxcbiAgICBpdGVtSW5kZXg6IG51bWJlclxuKTogUHJvbWlzZTxJRGF0YU9iamVjdD4ge1xuICAgIGNvbnN0IG9wZXJhdGlvbiA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3BlcmF0aW9uJywgaXRlbUluZGV4KSBhcyBzdHJpbmc7XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnd2ViU2VhcmNoJykge1xuICAgICAgICBjb25zdCBxdWVyeSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcigncXVlcnknLCBpdGVtSW5kZXgpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignb3B0aW9ucycsIGl0ZW1JbmRleCwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtczoge1xuICAgICAgICAgICAgcXVlcnk6IHN0cmluZztcbiAgICAgICAgICAgIG1heF9yZXN1bHRzPzogbnVtYmVyO1xuICAgICAgICAgICAgc2VhcmNoX3R5cGU/OiAnd2ViJyB8ICduZXdzJztcbiAgICAgICAgICAgIHRpbWVfZmlsdGVyPzogJ2RheScgfCAnd2VlaycgfCAnbW9udGgnIHwgJ3llYXInO1xuICAgICAgICAgICAgc2l0ZV9maWx0ZXI/OiBzdHJpbmdbXTtcbiAgICAgICAgfSA9IHsgcXVlcnkgfTtcblxuICAgICAgICBpZiAob3B0aW9ucy5tYXhSZXN1bHRzKSBzZWFyY2hQYXJhbXMubWF4X3Jlc3VsdHMgPSBvcHRpb25zLm1heFJlc3VsdHMgYXMgbnVtYmVyO1xuICAgICAgICBpZiAob3B0aW9ucy5zZWFyY2hUeXBlKSBzZWFyY2hQYXJhbXMuc2VhcmNoX3R5cGUgPSBvcHRpb25zLnNlYXJjaFR5cGUgYXMgJ3dlYicgfCAnbmV3cyc7XG4gICAgICAgIGlmIChvcHRpb25zLnRpbWVGaWx0ZXIpIHNlYXJjaFBhcmFtcy50aW1lX2ZpbHRlciA9IG9wdGlvbnMudGltZUZpbHRlciBhcyAnZGF5JyB8ICd3ZWVrJyB8ICdtb250aCcgfCAneWVhcic7XG4gICAgICAgIGlmIChvcHRpb25zLnNpdGVGaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNpdGVzID0gKG9wdGlvbnMuc2l0ZUZpbHRlciBhcyBzdHJpbmcpLnNwbGl0KCcsJykubWFwKHMgPT4gcy50cmltKCkpLmZpbHRlcihzID0+IHMpO1xuICAgICAgICAgICAgaWYgKHNpdGVzLmxlbmd0aCA+IDApIHNlYXJjaFBhcmFtcy5zaXRlX2ZpbHRlciA9IHNpdGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGNsaWVudC5zeXMuc2VhcmNoKHNlYXJjaFBhcmFtcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlc3VsdHM6IHJlc3VsdHMgfHwgW10sXG4gICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgIF9yYXc6IHJlc3VsdHMgYXMgdW5rbm93biBhcyBJRGF0YU9iamVjdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnb2NyJykge1xuICAgICAgICBjb25zdCBpbWFnZVVybCA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignaW1hZ2VVcmwnLCBpdGVtSW5kZXgsICcnKSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IGJpbmFyeVByb3BlcnR5TmFtZSA9IGNvbnRleHQuZ2V0Tm9kZVBhcmFtZXRlcignYmluYXJ5UHJvcGVydHlOYW1lJywgaXRlbUluZGV4LCAnZGF0YScpIGFzIHN0cmluZztcblxuICAgICAgICBsZXQgb2NyUGFyYW1zOiB7IHVybD86IHN0cmluZzsgaW1hZ2U/OiBzdHJpbmcgfTtcblxuICAgICAgICBpZiAoaW1hZ2VVcmwpIHtcbiAgICAgICAgICAgIC8vIFVzZSBVUkwgZGlyZWN0bHlcbiAgICAgICAgICAgIG9jclBhcmFtcyA9IHsgdXJsOiBpbWFnZVVybCB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gR2V0IGZyb20gYmluYXJ5IGFuZCBjcmVhdGUgZGF0YSBVUkxcbiAgICAgICAgICAgIGNvbnN0IGJpbmFyeURhdGEgPSBjb250ZXh0LmhlbHBlcnMuYXNzZXJ0QmluYXJ5RGF0YShpdGVtSW5kZXgsIGJpbmFyeVByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBjb250ZXh0LmhlbHBlcnMuZ2V0QmluYXJ5RGF0YUJ1ZmZlcihpdGVtSW5kZXgsIGJpbmFyeVByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgICBjb25zdCBtaW1lVHlwZSA9IGJpbmFyeURhdGEubWltZVR5cGUgfHwgJ2ltYWdlL3BuZyc7XG4gICAgICAgICAgICBjb25zdCBiYXNlNjREYXRhID0gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICAgICAgICAgIC8vIEZvcm1hdDogZGF0YTppbWFnZS9wbmc7YmFzZTY0LDxiYXNlNjRfZGF0YT5cbiAgICAgICAgICAgIG9jclBhcmFtcyA9IHsgaW1hZ2U6IGBkYXRhOiR7bWltZVR5cGV9O2Jhc2U2NCwke2Jhc2U2NERhdGF9YCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2xpZW50Lm9jci5kZXRlY3Qob2NyUGFyYW1zKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGV4dDogcmVzdWx0LnRleHQgfHwgJycsXG4gICAgICAgICAgICBibG9ja3M6IHJlc3VsdC5ibG9ja3MgfHwgW10sXG4gICAgICAgICAgICBfcmF3OiByZXN1bHQgYXMgdW5rbm93biBhcyBJRGF0YU9iamVjdCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgTm9kZU9wZXJhdGlvbkVycm9yKFxuICAgICAgICBjb250ZXh0LmdldE5vZGUoKSxcbiAgICAgICAgYFVua25vd24gdG9vbHMgb3BlcmF0aW9uOiAke29wZXJhdGlvbn1gLFxuICAgICAgICB7IGl0ZW1JbmRleCB9XG4gICAgKTtcbn1cbiJdfQ==
@@ -190,5 +190,48 @@ exports.imageFields = [
190
190
  },
191
191
  ],
192
192
  },
193
+ // Advanced Image References
194
+ {
195
+ displayName: 'Subject Reference Images',
196
+ name: 'subjectImageUrls',
197
+ type: 'string',
198
+ displayOptions: {
199
+ show: {
200
+ resource: ['image'],
201
+ operation: ['generate'],
202
+ },
203
+ },
204
+ default: '',
205
+ placeholder: 'https://example.com/subject1.jpg, https://example.com/subject2.jpg',
206
+ description: 'Comma-separated URLs of subject reference images to maintain in the generated image',
207
+ },
208
+ {
209
+ displayName: 'Scene Reference Image',
210
+ name: 'sceneImageUrl',
211
+ type: 'string',
212
+ displayOptions: {
213
+ show: {
214
+ resource: ['image'],
215
+ operation: ['generate'],
216
+ },
217
+ },
218
+ default: '',
219
+ placeholder: 'https://example.com/scene.jpg',
220
+ description: 'URL of a scene reference image to use as background or environment',
221
+ },
222
+ {
223
+ displayName: 'Style Reference Image',
224
+ name: 'styleImageUrl',
225
+ type: 'string',
226
+ displayOptions: {
227
+ show: {
228
+ resource: ['image'],
229
+ operation: ['generate'],
230
+ },
231
+ },
232
+ default: '',
233
+ placeholder: 'https://example.com/style.jpg',
234
+ description: 'URL of a style reference image to transfer artistic style from',
235
+ },
193
236
  ];
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VEZXNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVzL1Fpbml1QWkvZGVzY3JpcHRpb25zL0ltYWdlRGVzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQXlFO0FBRTVELFFBQUEsZUFBZSxHQUFzQjtJQUM5QztRQUNJLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxTQUFTO1FBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLEVBQUU7WUFDTDtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLE1BQU0sRUFBRSxtQkFBbUI7YUFDOUI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTTtnQkFDYixXQUFXLEVBQUUsNEJBQTRCO2dCQUN6QyxNQUFNLEVBQUUsZUFBZTthQUMxQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLFVBQVU7S0FDdEI7Q0FDSixDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQXNCO0lBQzFDLFFBQVE7SUFDUjtRQUNJLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDdEI7U0FDSjtRQUNELE9BQU8sRUFBRSwrQkFBbUI7UUFDNUIsT0FBTyxFQUFFLFlBQVk7UUFDckIsV0FBVyxFQUFFLHVDQUF1QztLQUN2RDtJQUNELFNBQVM7SUFDVDtRQUNJLFdBQVcsRUFB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b0Y7YUFDcEc7WUFDRDtnQkFDSSxXQUFXLEVBQUUsc0JBQXNCO2dCQUNuQyxJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUU7b0JBQ0wsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7b0JBQ3JDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2lCQUNsQztnQkFDRCxPQUFPLEVBQUUsU0FBUztnQkFDbEIsV0FBVyxFQUFFLCtDQUErQzthQUMvRDtZQUNEO2dCQUNJLFdBQVcsRUFBRSxZQUFZO2dCQUN6QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFO29CQUNMLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO29CQUMzQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDM0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7aUJBQzlCO2dCQUNELE9BQU8sRUFBRSxJQUFJO2dCQUNiLFdBQVcsRUFBRSx5QkFBeUI7YUFDekM7WUFDRDtnQkFDSSxXQUFXLEVBQUUsZUFBZTtnQkFDNUIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsV0FBVyxFQUFFLHdEQUF3RDthQUN4RTtTQUNKO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5vZGVQcm9wZXJ0aWVzIH0gZnJvbSAnbjhuLXdvcmtmbG93JztcbmltcG9ydCB7IElNQUdFX01PREVMX09QVElPTlMsIEFTUEVDVF9SQVRJT19PUFRJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGltYWdlT3BlcmF0aW9uczogSU5vZGVQcm9wZXJ0aWVzW10gPSBbXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wZXJhdGlvbicsXG4gICAgICAgIG5hbWU6ICdvcGVyYXRpb24nLFxuICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgIG5vRGF0YUV4cHJlc3Npb246IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnR2VuZXJhdGUnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZ2VuZXJhdGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgYW4gaW1hZ2UgZnJvbSB0ZXh0JyxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdHZW5lcmF0ZSBhbiBpbWFnZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdFZGl0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2VkaXQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRWRpdCBvciB0cmFuc2Zvcm0gYW4gaW1hZ2UnLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ0VkaXQgYW4gaW1hZ2UnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGVmYXVsdDogJ2dlbmVyYXRlJyxcbiAgICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGltYWdlRmllbGRzOiBJTm9kZVByb3BlcnRpZXNbXSA9IFtcbiAgICAvLyBNb2RlbFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdNb2RlbCcsXG4gICAgICAgIG5hbWU6ICdtb2RlbCcsXG4gICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IElNQUdFX01PREVMX09QVElPTlMsXG4gICAgICAgIGRlZmF1bHQ6ICdrbGluZy12Mi0xJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgbW9kZWwgdG8gdXNlIGZvciBpbWFnZSBnZW5lcmF0aW9uJyxcbiAgICB9LFxuICAgIC8vIFByb21wdFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdQcm9tcHQnLFxuICAgICAgICBuYW1lOiAncHJvbXB0JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICByb3dzOiA0LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gb2YgdGhlIGltYWdlIHRvIGdlbmVyYXRlJyxcbiAgICB9LFxuICAgIC8vIFdhaXQgZm9yIENvbXBsZXRpb25cbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnV2FpdCBmb3IgQ29tcGxldGlvbicsXG4gICAgICAgIG5hbWU6ICd3YWl0Rm9yQ29tcGxldGlvbicsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRvIHdhaXQgZm9yIHRoZSBpbWFnZSB0byBiZSBmdWxseSBnZW5lcmF0ZWQgYmVmb3JlIHJldHVybmluZycsXG4gICAgfSxcbiAgICAvLyBSZWZlcmVuY2UgSW1hZ2UgKGZvciBlZGl0KVxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdSZWZlcmVuY2UgSW1hZ2UgVVJMJyxcbiAgICAgICAgbmFtZTogJ3JlZmVyZW5jZUltYWdlVXJsJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFsnZWRpdCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVVJMIG9mIHRoZSBpbWFnZSB0byBlZGl0JyxcbiAgICB9LFxuICAgIC8vIEJpbmFyeSBJbnB1dCAoZm9yIGVkaXQpXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0JpbmFyeSBQcm9wZXJ0eScsXG4gICAgICAgIG5hbWU6ICdiaW5hcnlQcm9wZXJ0eU5hbWUnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydlZGl0J10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnZGF0YScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgYmluYXJ5IHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGltYWdlIHRvIGVkaXQnLFxuICAgIH0sXG4gICAgLy8gT3B0aW9uc1xuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdPcHRpb25zJyxcbiAgICAgICAgbmFtZTogJ29wdGlvbnMnLFxuICAgICAgICB0eXBlOiAnY29sbGVjdGlvbicsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQWRkIE9wdGlvbicsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6IHt9LFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdBc3BlY3QgUmF0aW8nLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdhc3BlY3RSYXRpbycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IEFTUEVDVF9SQVRJT19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcxOjEnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQXNwZWN0IHJhdGlvIG9mIHRoZSBnZW5lcmF0ZWQgaW1hZ2UnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05lZ2F0aXZlIFByb21wdCcsXG4gICAgICAgICAgICAgICAgbmFtZTogJ25lZ2F0aXZlUHJvbXB0JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICByb3dzOiAyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGluZ3MgdG8gYXZvaWQgaW4gdGhlIGdlbmVyYXRlZCBpbWFnZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQ291bnQnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICduJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWU6IDQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAxLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIGltYWdlcyB0byBnZW5lcmF0ZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU3RyZW5ndGgnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdzdHJlbmd0aCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgdHlwZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIG1heFZhbHVlOiAxLFxuICAgICAgICAgICAgICAgICAgICBudW1iZXJQcmVjaXNpb246IDIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAwLjUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdIb3cgbXVjaCB0byB0cmFuc2Zvcm0gdGhlIHJlZmVyZW5jZSBpbWFnZSAoMCA9IGtlZXAgb3JpZ2luYWwsIDEgPSBpZ25vcmUgb3JpZ2luYWwpJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdJbWFnZSBSZWZlcmVuY2UgVHlwZScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlUmVmZXJlbmNlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdTdWJqZWN0JywgdmFsdWU6ICdzdWJqZWN0JyB9LFxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdGYWNlJywgdmFsdWU6ICdmYWNlJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ3N1YmplY3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVHlwZSBvZiByZWZlcmVuY2UgdG8gdXNlIGZyb20gdGhlIGlucHV0IGltYWdlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdJbWFnZSBTaXplJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2VTaXplJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICcxSycsIHZhbHVlOiAnMUsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJzJLJywgdmFsdWU6ICcySycgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnNEsnLCB2YWx1ZTogJzRLJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJzFLJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBpbWFnZSByZXNvbHV0aW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdNYXNrIChCYXNlNjQpJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnbWFzaycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdCYXNlNjQtZW5jb2RlZCBtYXNrIGZvciBpbnBhaW50aW5nICh3aGl0ZSA9IGVkaXQgYXJlYSknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuXTtcbiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1hZ2VEZXNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVzL1Fpbml1QWkvZGVzY3JpcHRpb25zL0ltYWdlRGVzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQXlFO0FBRTVELFFBQUEsZUFBZSxHQUFzQjtJQUM5QztRQUNJLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxTQUFTO1FBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLEVBQUU7WUFDTDtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLE1BQU0sRUFBRSxtQkFBbUI7YUFDOUI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTTtnQkFDYixXQUFXLEVBQUUsNEJBQTRCO2dCQUN6QyxNQUFNLEVBQUUsZUFBZTthQUMxQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLFVBQVU7S0FDdEI7Q0FDSixDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQXNCO0lBQzFDLFFBQVE7SUFDUjtRQUNJLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDdEI7U0FDSjtRQUNELE9BQU8sRUFBRSwrQkFBbUI7UUFDNUIsT0FBTyxFQUFFLFlBQVk7UUFDckIsV0FBVyxFQUFFLHVDQUF1QztLQUN2RDtJQUNELFNBQVM7SUFDVDtRQUNJLFdBQVcsRUFB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V0FBVyxFQUFFLG9FQUFvRTtRQUNqRixXQUFXLEVBQUUscUZBQXFGO0tBQ3JHO0lBQ0Q7UUFDSSxXQUFXLEVBQUUsdUJBQXVCO1FBQ3BDLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxRQUFRO1FBQ2QsY0FBYyxFQUFFO1lBQ1osSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQzFCO1NBQ0o7UUFDRCxPQUFPLEVBQUUsRUFBRTtRQUNYLFdBQVcsRUFBRSwrQkFBK0I7UUFDNUMsV0FBVyxFQUFFLG9FQUFvRTtLQUNwRjtJQUNEO1FBQ0ksV0FBVyxFQUFFLHVCQUF1QjtRQUNwQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsUUFBUTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUMxQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsK0JBQStCO1FBQzVDLFdBQVcsRUFBRSxnRUFBZ0U7S0FDaEY7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5vZGVQcm9wZXJ0aWVzIH0gZnJvbSAnbjhuLXdvcmtmbG93JztcbmltcG9ydCB7IElNQUdFX01PREVMX09QVElPTlMsIEFTUEVDVF9SQVRJT19PUFRJT05TIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGltYWdlT3BlcmF0aW9uczogSU5vZGVQcm9wZXJ0aWVzW10gPSBbXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wZXJhdGlvbicsXG4gICAgICAgIG5hbWU6ICdvcGVyYXRpb24nLFxuICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgIG5vRGF0YUV4cHJlc3Npb246IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnR2VuZXJhdGUnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZ2VuZXJhdGUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgYW4gaW1hZ2UgZnJvbSB0ZXh0JyxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdHZW5lcmF0ZSBhbiBpbWFnZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdFZGl0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2VkaXQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRWRpdCBvciB0cmFuc2Zvcm0gYW4gaW1hZ2UnLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ0VkaXQgYW4gaW1hZ2UnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGVmYXVsdDogJ2dlbmVyYXRlJyxcbiAgICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGltYWdlRmllbGRzOiBJTm9kZVByb3BlcnRpZXNbXSA9IFtcbiAgICAvLyBNb2RlbFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdNb2RlbCcsXG4gICAgICAgIG5hbWU6ICdtb2RlbCcsXG4gICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IElNQUdFX01PREVMX09QVElPTlMsXG4gICAgICAgIGRlZmF1bHQ6ICdrbGluZy12Mi0xJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgbW9kZWwgdG8gdXNlIGZvciBpbWFnZSBnZW5lcmF0aW9uJyxcbiAgICB9LFxuICAgIC8vIFByb21wdFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdQcm9tcHQnLFxuICAgICAgICBuYW1lOiAncHJvbXB0JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICByb3dzOiA0LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gb2YgdGhlIGltYWdlIHRvIGdlbmVyYXRlJyxcbiAgICB9LFxuICAgIC8vIFdhaXQgZm9yIENvbXBsZXRpb25cbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnV2FpdCBmb3IgQ29tcGxldGlvbicsXG4gICAgICAgIG5hbWU6ICd3YWl0Rm9yQ29tcGxldGlvbicsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRvIHdhaXQgZm9yIHRoZSBpbWFnZSB0byBiZSBmdWxseSBnZW5lcmF0ZWQgYmVmb3JlIHJldHVybmluZycsXG4gICAgfSxcbiAgICAvLyBSZWZlcmVuY2UgSW1hZ2UgKGZvciBlZGl0KVxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdSZWZlcmVuY2UgSW1hZ2UgVVJMJyxcbiAgICAgICAgbmFtZTogJ3JlZmVyZW5jZUltYWdlVXJsJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFsnZWRpdCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVVJMIG9mIHRoZSBpbWFnZSB0byBlZGl0JyxcbiAgICB9LFxuICAgIC8vIEJpbmFyeSBJbnB1dCAoZm9yIGVkaXQpXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0JpbmFyeSBQcm9wZXJ0eScsXG4gICAgICAgIG5hbWU6ICdiaW5hcnlQcm9wZXJ0eU5hbWUnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydlZGl0J10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnZGF0YScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgYmluYXJ5IHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGltYWdlIHRvIGVkaXQnLFxuICAgIH0sXG4gICAgLy8gT3B0aW9uc1xuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdPcHRpb25zJyxcbiAgICAgICAgbmFtZTogJ29wdGlvbnMnLFxuICAgICAgICB0eXBlOiAnY29sbGVjdGlvbicsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQWRkIE9wdGlvbicsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsnaW1hZ2UnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6IHt9LFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdBc3BlY3QgUmF0aW8nLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdhc3BlY3RSYXRpbycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IEFTUEVDVF9SQVRJT19PUFRJT05TLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcxOjEnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQXNwZWN0IHJhdGlvIG9mIHRoZSBnZW5lcmF0ZWQgaW1hZ2UnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05lZ2F0aXZlIFByb21wdCcsXG4gICAgICAgICAgICAgICAgbmFtZTogJ25lZ2F0aXZlUHJvbXB0JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICByb3dzOiAyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGluZ3MgdG8gYXZvaWQgaW4gdGhlIGdlbmVyYXRlZCBpbWFnZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQ291bnQnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICduJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWU6IDQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAxLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIGltYWdlcyB0byBnZW5lcmF0ZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU3RyZW5ndGgnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdzdHJlbmd0aCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgdHlwZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIG1heFZhbHVlOiAxLFxuICAgICAgICAgICAgICAgICAgICBudW1iZXJQcmVjaXNpb246IDIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAwLjUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdIb3cgbXVjaCB0byB0cmFuc2Zvcm0gdGhlIHJlZmVyZW5jZSBpbWFnZSAoMCA9IGtlZXAgb3JpZ2luYWwsIDEgPSBpZ25vcmUgb3JpZ2luYWwpJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdJbWFnZSBSZWZlcmVuY2UgVHlwZScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ2ltYWdlUmVmZXJlbmNlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdTdWJqZWN0JywgdmFsdWU6ICdzdWJqZWN0JyB9LFxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdGYWNlJywgdmFsdWU6ICdmYWNlJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ3N1YmplY3QnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVHlwZSBvZiByZWZlcmVuY2UgdG8gdXNlIGZyb20gdGhlIGlucHV0IGltYWdlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdJbWFnZSBTaXplJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2VTaXplJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICcxSycsIHZhbHVlOiAnMUsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJzJLJywgdmFsdWU6ICcySycgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnNEsnLCB2YWx1ZTogJzRLJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJzFLJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBpbWFnZSByZXNvbHV0aW9uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdNYXNrIChCYXNlNjQpJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnbWFzaycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdCYXNlNjQtZW5jb2RlZCBtYXNrIGZvciBpbnBhaW50aW5nICh3aGl0ZSA9IGVkaXQgYXJlYSknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIC8vIEFkdmFuY2VkIEltYWdlIFJlZmVyZW5jZXNcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnU3ViamVjdCBSZWZlcmVuY2UgSW1hZ2VzJyxcbiAgICAgICAgbmFtZTogJ3N1YmplY3RJbWFnZVVybHMnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9zdWJqZWN0MS5qcGcsIGh0dHBzOi8vZXhhbXBsZS5jb20vc3ViamVjdDIuanBnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdDb21tYS1zZXBhcmF0ZWQgVVJMcyBvZiBzdWJqZWN0IHJlZmVyZW5jZSBpbWFnZXMgdG8gbWFpbnRhaW4gaW4gdGhlIGdlbmVyYXRlZCBpbWFnZScsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnU2NlbmUgUmVmZXJlbmNlIEltYWdlJyxcbiAgICAgICAgbmFtZTogJ3NjZW5lSW1hZ2VVcmwnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9zY2VuZS5qcGcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1VSTCBvZiBhIHNjZW5lIHJlZmVyZW5jZSBpbWFnZSB0byB1c2UgYXMgYmFja2dyb3VuZCBvciBlbnZpcm9ubWVudCcsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnU3R5bGUgUmVmZXJlbmNlIEltYWdlJyxcbiAgICAgICAgbmFtZTogJ3N0eWxlSW1hZ2VVcmwnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWydpbWFnZSddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9zdHlsZS5qcGcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1VSTCBvZiBhIHN0eWxlIHJlZmVyZW5jZSBpbWFnZSB0byB0cmFuc2ZlciBhcnRpc3RpYyBzdHlsZSBmcm9tJyxcbiAgICB9LFxuXTtcbiJdfQ==
@@ -70,6 +70,39 @@ exports.toolsFields = [
70
70
  default: 5,
71
71
  description: 'Maximum number of results to return',
72
72
  },
73
+ {
74
+ displayName: 'Search Type',
75
+ name: 'searchType',
76
+ type: 'options',
77
+ options: [
78
+ { name: 'Web', value: 'web' },
79
+ { name: 'News', value: 'news' },
80
+ ],
81
+ default: 'web',
82
+ description: 'Type of search to perform',
83
+ },
84
+ {
85
+ displayName: 'Time Filter',
86
+ name: 'timeFilter',
87
+ type: 'options',
88
+ options: [
89
+ { name: 'Any Time', value: '' },
90
+ { name: 'Past Day', value: 'day' },
91
+ { name: 'Past Week', value: 'week' },
92
+ { name: 'Past Month', value: 'month' },
93
+ { name: 'Past Year', value: 'year' },
94
+ ],
95
+ default: '',
96
+ description: 'Filter results by time period',
97
+ },
98
+ {
99
+ displayName: 'Site Filter',
100
+ name: 'siteFilter',
101
+ type: 'string',
102
+ default: '',
103
+ placeholder: 'github.com, stackoverflow.com',
104
+ description: 'Comma-separated list of sites to search within',
105
+ },
73
106
  ],
74
107
  },
75
108
  // OCR: Image URL
@@ -101,4 +134,4 @@ exports.toolsFields = [
101
134
  description: 'Name of the binary property containing the image',
102
135
  },
103
136
  ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHNEZXNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVzL1Fpbml1QWkvZGVzY3JpcHRpb25zL1Rvb2xzRGVzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSxlQUFlLEdBQXNCO0lBQzlDO1FBQ0ksV0FBVyxFQUFFLFdBQVc7UUFDeEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDdEI7U0FDSjtRQUNELE9BQU8sRUFBRTtZQUNMO2dCQUNJLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsV0FBVztnQkFDbEIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsTUFBTSxFQUFFLFlBQVk7YUFDdkI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsS0FBSztnQkFDWixXQUFXLEVBQUUsMEJBQTBCO2dCQUN2QyxNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLFdBQVc7S0FDdkI7Q0FDSixDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQXNCO0lBQzFDLG9CQUFvQjtJQUNwQjtRQUNJLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUUsSUFBSTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUMzQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsa0JBQWtCO0tBQ2xDO0lBQ0QscUJBQXFCO0lBQ3JCO1FBQ0ksV0FBVyxFQUFFLFNBQVM7UUFDdEIsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsWUFBWTtRQUNsQixXQUFXLEVBQUUsWUFBWTtRQUN6QixjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNuQixTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDM0I7U0FDSjtRQUNELE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFO1lBQ0w7Z0JBQ0ksV0FBVyxFQUFFLGFBQWE7Z0JBQzFCLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUU7b0JBQ1QsUUFBUSxFQUFFLENBQUM7b0JBQ1gsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsV0FBVyxFQUFFLHFDQUFxQzthQUNyRDtTQUNKO0tBQ0o7SUFDRCxpQkFBaUI7SUFDakI7UUFDSSxXQUFXLEVBQUUsV0FBVztRQUN4QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsUUFBUTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUNyQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsNkJBQTZCO0tBQzdDO0lBQ0QsdUJBQXVCO0lBQ3ZCO1FBQ0ksV0FBVyxFQUFFLGlCQUFpQjtRQUM5QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLElBQUksRUFBRSxRQUFRO1FBQ2QsY0FBYyxFQUFFO1lBQ1osSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ3JCO1NBQ0o7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLFdBQVcsRUFBRSxrREFBa0Q7S0FDbEU7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5vZGVQcm9wZXJ0aWVzIH0gZnJvbSAnbjhuLXdvcmtmbG93JztcblxuZXhwb3J0IGNvbnN0IHRvb2xzT3BlcmF0aW9uczogSU5vZGVQcm9wZXJ0aWVzW10gPSBbXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wZXJhdGlvbicsXG4gICAgICAgIG5hbWU6ICdvcGVyYXRpb24nLFxuICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgIG5vRGF0YUV4cHJlc3Npb246IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsndG9vbHMnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnV2ViIFNlYXJjaCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICd3ZWJTZWFyY2gnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHRoZSB3ZWIgdXNpbmcgQUknLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ1dlYiBzZWFyY2gnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnT0NSJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ29jcicsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdFeHRyYWN0IHRleHQgZnJvbSBpbWFnZXMnLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ09DUicsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0OiAnd2ViU2VhcmNoJyxcbiAgICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IHRvb2xzRmllbGRzOiBJTm9kZVByb3BlcnRpZXNbXSA9IFtcbiAgICAvLyBXZWIgU2VhcmNoOiBRdWVyeVxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdRdWVyeScsXG4gICAgICAgIG5hbWU6ICdxdWVyeScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd0b29scyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWyd3ZWJTZWFyY2gnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBzZWFyY2ggcXVlcnknLFxuICAgIH0sXG4gICAgLy8gV2ViIFNlYXJjaCBPcHRpb25zXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wdGlvbnMnLFxuICAgICAgICBuYW1lOiAnb3B0aW9ucycsXG4gICAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBZGQgT3B0aW9uJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd0b29scyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWyd3ZWJTZWFyY2gnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6IHt9LFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdNYXggUmVzdWx0cycsXG4gICAgICAgICAgICAgICAgbmFtZTogJ21heFJlc3VsdHMnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIG1pblZhbHVlOiAxLFxuICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZTogMjAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIC8vIE9DUjogSW1hZ2UgVVJMXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0ltYWdlIFVSTCcsXG4gICAgICAgIG5hbWU6ICdpbWFnZVVybCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3Rvb2xzJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ29jciddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVVJMIG9mIHRoZSBpbWFnZSB0byBhbmFseXplJyxcbiAgICB9LFxuICAgIC8vIE9DUjogQmluYXJ5IFByb3BlcnR5XG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0JpbmFyeSBQcm9wZXJ0eScsXG4gICAgICAgIG5hbWU6ICdiaW5hcnlQcm9wZXJ0eU5hbWUnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd0b29scyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydvY3InXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6ICdkYXRhJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBiaW5hcnkgcHJvcGVydHkgY29udGFpbmluZyB0aGUgaW1hZ2UnLFxuICAgIH0sXG5dO1xuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbHNEZXNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVzL1Fpbml1QWkvZGVzY3JpcHRpb25zL1Rvb2xzRGVzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSxlQUFlLEdBQXNCO0lBQzlDO1FBQ0ksV0FBVyxFQUFFLFdBQVc7UUFDeEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDdEI7U0FDSjtRQUNELE9BQU8sRUFBRTtZQUNMO2dCQUNJLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsV0FBVztnQkFDbEIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsTUFBTSxFQUFFLFlBQVk7YUFDdkI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsS0FBSztnQkFDWCxLQUFLLEVBQUUsS0FBSztnQkFDWixXQUFXLEVBQUUsMEJBQTBCO2dCQUN2QyxNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLFdBQVc7S0FDdkI7Q0FDSixDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQXNCO0lBQzFDLG9CQUFvQjtJQUNwQjtRQUNJLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFFBQVE7UUFDZCxRQUFRLEVBQUUsSUFBSTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQzthQUMzQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsa0JBQWtCO0tBQ2xDO0lBQ0QscUJBQXFCO0lBQ3JCO1FBQ0ksV0FBVyxFQUFFLFNBQVM7UUFDdEIsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsWUFBWTtRQUNsQixXQUFXLEVBQUUsWUFBWTtRQUN6QixjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNuQixTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDM0I7U0FDSjtRQUNELE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFO1lBQ0w7Z0JBQ0ksV0FBVyxFQUFFLGFBQWE7Z0JBQzFCLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUU7b0JBQ1QsUUFBUSxFQUFFLENBQUM7b0JBQ1gsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsV0FBVyxFQUFFLHFDQUFxQzthQUNyRDtZQUNEO2dCQUNJLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFO29CQUNMLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO29CQUM3QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtpQkFDbEM7Z0JBQ0QsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsV0FBVyxFQUFFLDJCQUEyQjthQUMzQztZQUNEO2dCQUNJLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFO29CQUNMLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO29CQUMvQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtvQkFDbEMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7b0JBQ3BDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO29CQUN0QyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtpQkFDdkM7Z0JBQ0QsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsV0FBVyxFQUFFLCtCQUErQjthQUMvQztZQUNEO2dCQUNJLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsV0FBVyxFQUFFLGdEQUFnRDthQUNoRTtTQUNKO0tBQ0o7SUFDRCxpQkFBaUI7SUFDakI7UUFDSSxXQUFXLEVBQUUsV0FBVztRQUN4QixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsUUFBUTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUNyQjtTQUNKO1FBQ0QsT0FBTyxFQUFFLEVBQUU7UUFDWCxXQUFXLEVBQUUsNkJBQTZCO0tBQzdDO0lBQ0QsdUJBQXVCO0lBQ3ZCO1FBQ0ksV0FBVyxFQUFFLGlCQUFpQjtRQUM5QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLElBQUksRUFBRSxRQUFRO1FBQ2QsY0FBYyxFQUFFO1lBQ1osSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ3JCO1NBQ0o7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLFdBQVcsRUFBRSxrREFBa0Q7S0FDbEU7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU5vZGVQcm9wZXJ0aWVzIH0gZnJvbSAnbjhuLXdvcmtmbG93JztcblxuZXhwb3J0IGNvbnN0IHRvb2xzT3BlcmF0aW9uczogSU5vZGVQcm9wZXJ0aWVzW10gPSBbXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wZXJhdGlvbicsXG4gICAgICAgIG5hbWU6ICdvcGVyYXRpb24nLFxuICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgIG5vRGF0YUV4cHJlc3Npb246IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsndG9vbHMnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnV2ViIFNlYXJjaCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICd3ZWJTZWFyY2gnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHRoZSB3ZWIgdXNpbmcgQUknLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ1dlYiBzZWFyY2gnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnT0NSJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ29jcicsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdFeHRyYWN0IHRleHQgZnJvbSBpbWFnZXMnLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ09DUicsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0OiAnd2ViU2VhcmNoJyxcbiAgICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IHRvb2xzRmllbGRzOiBJTm9kZVByb3BlcnRpZXNbXSA9IFtcbiAgICAvLyBXZWIgU2VhcmNoOiBRdWVyeVxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdRdWVyeScsXG4gICAgICAgIG5hbWU6ICdxdWVyeScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd0b29scyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWyd3ZWJTZWFyY2gnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBzZWFyY2ggcXVlcnknLFxuICAgIH0sXG4gICAgLy8gV2ViIFNlYXJjaCBPcHRpb25zXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wdGlvbnMnLFxuICAgICAgICBuYW1lOiAnb3B0aW9ucycsXG4gICAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBZGQgT3B0aW9uJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd0b29scyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWyd3ZWJTZWFyY2gnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6IHt9LFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdNYXggUmVzdWx0cycsXG4gICAgICAgICAgICAgICAgbmFtZTogJ21heFJlc3VsdHMnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIG1pblZhbHVlOiAxLFxuICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZTogMjAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA1LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NlYXJjaCBUeXBlJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2VhcmNoVHlwZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnV2ViJywgdmFsdWU6ICd3ZWInIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ05ld3MnLCB2YWx1ZTogJ25ld3MnIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnd2ViJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1R5cGUgb2Ygc2VhcmNoIHRvIHBlcmZvcm0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1RpbWUgRmlsdGVyJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAndGltZUZpbHRlcicsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnQW55IFRpbWUnLCB2YWx1ZTogJycgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnUGFzdCBEYXknLCB2YWx1ZTogJ2RheScgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnUGFzdCBXZWVrJywgdmFsdWU6ICd3ZWVrJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdQYXN0IE1vbnRoJywgdmFsdWU6ICdtb250aCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnUGFzdCBZZWFyJywgdmFsdWU6ICd5ZWFyJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdGaWx0ZXIgcmVzdWx0cyBieSB0aW1lIHBlcmlvZCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU2l0ZSBGaWx0ZXInLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdzaXRlRmlsdGVyJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ2dpdGh1Yi5jb20sIHN0YWNrb3ZlcmZsb3cuY29tJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHNpdGVzIHRvIHNlYXJjaCB3aXRoaW4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIC8vIE9DUjogSW1hZ2UgVVJMXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0ltYWdlIFVSTCcsXG4gICAgICAgIG5hbWU6ICdpbWFnZVVybCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3Rvb2xzJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ29jciddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVVJMIG9mIHRoZSBpbWFnZSB0byBhbmFseXplJyxcbiAgICB9LFxuICAgIC8vIE9DUjogQmluYXJ5IFByb3BlcnR5XG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0JpbmFyeSBQcm9wZXJ0eScsXG4gICAgICAgIG5hbWU6ICdiaW5hcnlQcm9wZXJ0eU5hbWUnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd0b29scyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydvY3InXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6ICdkYXRhJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBiaW5hcnkgcHJvcGVydHkgY29udGFpbmluZyB0aGUgaW1hZ2UnLFxuICAgIH0sXG5dO1xuIl19
@@ -20,6 +20,12 @@ exports.videoOperations = [
20
20
  description: 'Generate a video from text or image',
21
21
  action: 'Generate a video',
22
22
  },
23
+ {
24
+ name: 'Remix',
25
+ value: 'remix',
26
+ description: 'Remix an existing video with new prompt or parameters',
27
+ action: 'Remix a video',
28
+ },
23
29
  {
24
30
  name: 'Get Status',
25
31
  value: 'getStatus',
@@ -330,5 +336,121 @@ exports.videoFields = [
330
336
  },
331
337
  ],
332
338
  },
339
+ // Video Reference (video_list) for video-to-video generation
340
+ {
341
+ displayName: 'Video Reference URL',
342
+ name: 'videoReferenceUrl',
343
+ type: 'string',
344
+ displayOptions: {
345
+ show: {
346
+ resource: ['video'],
347
+ operation: ['generate'],
348
+ },
349
+ },
350
+ default: '',
351
+ placeholder: 'https://example.com/reference-video.mp4',
352
+ description: 'URL of a reference video for video-to-video generation',
353
+ },
354
+ {
355
+ displayName: 'Keep Original Sound',
356
+ name: 'keepOriginalSound',
357
+ type: 'boolean',
358
+ displayOptions: {
359
+ show: {
360
+ resource: ['video'],
361
+ operation: ['generate'],
362
+ },
363
+ },
364
+ default: false,
365
+ description: 'Whether to keep the original sound from the reference video',
366
+ },
367
+ // Remix Operation Fields
368
+ {
369
+ displayName: 'Source Video ID',
370
+ name: 'sourceVideoId',
371
+ type: 'string',
372
+ required: true,
373
+ displayOptions: {
374
+ show: {
375
+ resource: ['video'],
376
+ operation: ['remix'],
377
+ },
378
+ },
379
+ default: '',
380
+ description: 'The ID of the video to remix',
381
+ },
382
+ {
383
+ displayName: 'New Prompt',
384
+ name: 'remixPrompt',
385
+ type: 'string',
386
+ typeOptions: {
387
+ rows: 4,
388
+ },
389
+ displayOptions: {
390
+ show: {
391
+ resource: ['video'],
392
+ operation: ['remix'],
393
+ },
394
+ },
395
+ default: '',
396
+ description: 'New prompt to guide the remix (optional)',
397
+ },
398
+ {
399
+ displayName: 'Wait for Completion',
400
+ name: 'waitForCompletion',
401
+ type: 'boolean',
402
+ displayOptions: {
403
+ show: {
404
+ resource: ['video'],
405
+ operation: ['remix'],
406
+ },
407
+ },
408
+ default: true,
409
+ description: 'Whether to wait for the remix to complete before returning',
410
+ },
411
+ {
412
+ displayName: 'Remix Options',
413
+ name: 'remixOptions',
414
+ type: 'collection',
415
+ placeholder: 'Add Remix Option',
416
+ displayOptions: {
417
+ show: {
418
+ resource: ['video'],
419
+ operation: ['remix'],
420
+ },
421
+ },
422
+ default: {},
423
+ options: [
424
+ {
425
+ displayName: 'Duration',
426
+ name: 'duration',
427
+ type: 'options',
428
+ options: [
429
+ { name: '5 seconds', value: '5' },
430
+ { name: '10 seconds', value: '10' },
431
+ ],
432
+ default: '5',
433
+ description: 'Duration of the remixed video',
434
+ },
435
+ {
436
+ displayName: 'Mode',
437
+ name: 'mode',
438
+ type: 'options',
439
+ options: [
440
+ { name: 'Standard', value: 'std' },
441
+ { name: 'Professional', value: 'pro' },
442
+ ],
443
+ default: 'std',
444
+ description: 'Generation quality mode',
445
+ },
446
+ {
447
+ displayName: 'Negative Prompt',
448
+ name: 'negativePrompt',
449
+ type: 'string',
450
+ default: '',
451
+ description: 'What to avoid in the video',
452
+ },
453
+ ],
454
+ },
333
455
  ];
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9EZXNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVzL1Fpbml1QWkvZGVzY3JpcHRpb25zL1ZpZGVvRGVzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQStFO0FBRWxFLFFBQUEsZUFBZSxHQUFzQjtJQUM5QztRQUNJLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxTQUFTO1FBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLEVBQUU7WUFDTDtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFdBQVcsRUFBRSxxQ0FBcUM7Z0JBQ2xELE1BQU0sRUFBRSxrQkFBa0I7YUFDN0I7WUFDRDtnQkFDSSxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFdBQVcsRUFBRSwyQ0FBMkM7Z0JBQ3hELE1BQU0sRUFBRSxrQkFBa0I7YUFDN0I7U0FDSjtRQUNELE9BQU8sRUFBRSxVQUFVO0tBQ3RCO0NBQ0osQ0FBQztBQUVXLFFBQUEsV0FBVyxHQUFzQjtJQUMxQyxRQUFRO0lBQ1I7UUFDSSxXQUFXLEVBQUUsT0FBTztRQUNwQixJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLElBQUk7UUFDZCxjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNuQixTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUM7YUFDMUI7U0FDSjtRQUNELE9BQU8sRUFBRSwrQkFBbUI7UUFDNUIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixXQUFXLEVBQUUsdUNB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QUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFO29CQUNULFFBQVEsRUFBRSxDQUFDO29CQUNYLFFBQVEsRUFBRSxDQUFDO2lCQUNkO2dCQUNELE9BQU8sRUFBRSxDQUFDO2dCQUNWLFdBQVcsRUFBRSw4QkFBOEI7YUFDOUM7WUFDRDtnQkFDSSxXQUFXLEVBQUUsbUJBQW1CO2dCQUNoQyxJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUU7b0JBQ0wsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7b0JBQzdDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2lCQUMvQztnQkFDRCxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLG9DQUFvQzthQUNwRDtZQUNEO2dCQUNJLFdBQVcsRUFBRSxNQUFNO2dCQUNuQixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsUUFBUTtnQkFDZCxPQUFPLEVBQUUsQ0FBQztnQkFDVixXQUFXLEVBQUUsbURBQW1EO2FBQ25FO1NBQ0o7S0FDSjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTm9kZVByb3BlcnRpZXMgfSBmcm9tICduOG4td29ya2Zsb3cnO1xuaW1wb3J0IHsgVklERU9fTU9ERUxfT1BUSU9OUywgVklERU9fQVNQRUNUX1JBVElPX09QVElPTlMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgdmlkZW9PcGVyYXRpb25zOiBJTm9kZVByb3BlcnRpZXNbXSA9IFtcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnT3BlcmF0aW9uJyxcbiAgICAgICAgbmFtZTogJ29wZXJhdGlvbicsXG4gICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgbm9EYXRhRXhwcmVzc2lvbjogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdHZW5lcmF0ZScsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdnZW5lcmF0ZScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSBhIHZpZGVvIGZyb20gdGV4dCBvciBpbWFnZScsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnR2VuZXJhdGUgYSB2aWRlbycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdHZXQgU3RhdHVzJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2dldFN0YXR1cycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZXQgdGhlIHN0YXR1cyBvZiBhIHZpZGVvIGdlbmVyYXRpb24gdGFzaycsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnR2V0IHZpZGVvIHN0YXR1cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkZWZhdWx0OiAnZ2VuZXJhdGUnLFxuICAgIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgdmlkZW9GaWVsZHM6IElOb2RlUHJvcGVydGllc1tdID0gW1xuICAgIC8vIE1vZGVsXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ01vZGVsJyxcbiAgICAgICAgbmFtZTogJ21vZGVsJyxcbiAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczogVklERU9fTU9ERUxfT1BUSU9OUyxcbiAgICAgICAgZGVmYXVsdDogJ2tsaW5nLXZpZGVvLW8xJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgbW9kZWwgdG8gdXNlIGZvciB2aWRlbyBnZW5lcmF0aW9uJyxcbiAgICB9LFxuICAgIC8vIFByb21wdFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdQcm9tcHQnLFxuICAgICAgICBuYW1lOiAncHJvbXB0JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICByb3dzOiA0LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gb2YgdGhlIHZpZGVvIHRvIGdlbmVyYXRlJyxcbiAgICB9LFxuICAgIC8vIFRhc2sgSUQgKGZvciBnZXRTdGF0dXMpXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ1Rhc2sgSUQnLFxuICAgICAgICBuYW1lOiAndGFza0lkJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dldFN0YXR1cyddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIElEIG9mIHRoZSB2aWRlbyBnZW5lcmF0aW9uIHRhc2snLFxuICAgIH0sXG4gICAgLy8gV2FpdCBmb3IgQ29tcGxldGlvblxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdXYWl0IGZvciBDb21wbGV0aW9uJyxcbiAgICAgICAgbmFtZTogJ3dhaXRGb3JDb21wbGV0aW9uJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdG8gd2FpdCBmb3IgdGhlIHZpZGVvIHRvIGJlIGZ1bGx5IGdlbmVyYXRlZCBiZWZvcmUgcmV0dXJuaW5nJyxcbiAgICB9LFxuICAgIC8vIEZyYW1lIENvbnRyb2xcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnRmlyc3QgRnJhbWUgSW1hZ2UgVVJMJyxcbiAgICAgICAgbmFtZTogJ2ZpcnN0RnJhbWVVcmwnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVVJMIG9mIHRoZSBmaXJzdCBmcmFtZSBpbWFnZS4gTGVhdmUgZW1wdHkgdG8gdXNlIGJpbmFyeSBkYXRhIGZyb20gcHJldmlvdXMgbm9kZS4nLFxuICAgIH0sXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0ZpcnN0IEZyYW1lIEJpbmFyeSBQcm9wZXJ0eScsXG4gICAgICAgIG5hbWU6ICdmaXJzdEZyYW1lQmluYXJ5UHJvcGVydHknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnZGF0YScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQmluYXJ5IHByb3BlcnR5IG5hbWUgY29udGFpbmluZyB0aGUgZmlyc3QgZnJhbWUgaW1hZ2UgKGZyb20gSW1hZ2Ugbm9kZSBvdXRwdXQpJyxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdMYXN0IEZyYW1lIEltYWdlIFVSTCcsXG4gICAgICAgIG5hbWU6ICdsYXN0RnJhbWVVcmwnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVVJMIG9mIHRoZSBsYXN0IGZyYW1lIGltYWdlLiBMZWF2ZSBlbXB0eSB0byB1c2UgYmluYXJ5IGRhdGEgZnJvbSBwcmV2aW91cyBub2RlLicsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnTGFzdCBGcmFtZSBCaW5hcnkgUHJvcGVydHknLFxuICAgICAgICBuYW1lOiAnbGFzdEZyYW1lQmluYXJ5UHJvcGVydHknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnZGF0YV8xJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdCaW5hcnkgcHJvcGVydHkgbmFtZSBjb250YWluaW5nIHRoZSBsYXN0IGZyYW1lIGltYWdlIChmcm9tIEltYWdlIG5vZGUgb3V0cHV0KScsXG4gICAgfSxcbiAgICAvLyBBc3BlY3QgUmF0aW8gKHJlcXVpcmVkIHdoZW4gbm8gZmlyc3QgZnJhbWUpXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0FzcGVjdCBSYXRpbycsXG4gICAgICAgIG5hbWU6ICdhc3BlY3RSYXRpbycsXG4gICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsndmlkZW8nXSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFsnZ2VuZXJhdGUnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IFZJREVPX0FTUEVDVF9SQVRJT19PUFRJT05TLFxuICAgICAgICBkZWZhdWx0OiAnMTY6OScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQXNwZWN0IHJhdGlvIG9mIHRoZSBnZW5lcmF0ZWQgdmlkZW8gKHJlcXVpcmVkIHdoZW4gbm8gZmlyc3QgZnJhbWUgaW1hZ2UpJyxcbiAgICB9LFxuICAgIC8vIENvbW1vbiBPcHRpb25zXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ09wdGlvbnMnLFxuICAgICAgICBuYW1lOiAnb3B0aW9ucycsXG4gICAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBZGQgT3B0aW9uJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDoge30sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ05lZ2F0aXZlIFByb21wdCcsXG4gICAgICAgICAgICAgICAgbmFtZTogJ25lZ2F0aXZlUHJvbXB0JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICByb3dzOiAyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGluZ3MgdG8gYXZvaWQgaW4gdGhlIGdlbmVyYXRlZCB2aWRlbycsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgIH0sXG4gICAgLy8gS2xpbmctc3BlY2lmaWMgb3B0aW9uc1xuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdLbGluZyBPcHRpb25zJyxcbiAgICAgICAgbmFtZTogJ2tsaW5nT3B0aW9ucycsXG4gICAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBZGQgS2xpbmcgT3B0aW9uJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgICAgIG1vZGVsOiBbJ2tsaW5nLXZpZGVvLW8xJywgJ2tsaW5nLXYyLTEnLCAna2xpbmctdjItNS10dXJibyddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDoge30sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0R1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJzUgc2Vjb25kcycsIHZhbHVlOiAnNScgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnMTAgc2Vjb25kcycsIHZhbHVlOiAnMTAnIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnNScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdWaWRlbyBkdXJhdGlvbiBpbiBzZWNvbmRzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdNb2RlJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnbW9kZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnU3RhbmRhcmQnLCB2YWx1ZTogJ3N0ZCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnUHJvZmVzc2lvbmFsJywgdmFsdWU6ICdwcm8nIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnc3RkJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRpb24gbW9kZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnQ0ZHIFNjYWxlJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnY2ZnU2NhbGUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIG1pblZhbHVlOiAwLFxuICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZTogMjAsXG4gICAgICAgICAgICAgICAgICAgIG51bWJlclByZWNpc2lvbjogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDRkcgZ3VpZGFuY2Ugc2NhbGUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NpemUnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdzaXplJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJzE5MjB4MTA4MCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdWaWRlbyByZXNvbHV0aW9uIChlLmcuLCAxOTIweDEwODApJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICAvLyBWZW8tc3BlY2lmaWMgb3B0aW9uc1xuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdWZW8gT3B0aW9ucycsXG4gICAgICAgIG5hbWU6ICd2ZW9PcHRpb25zJyxcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ0FkZCBWZW8gT3B0aW9uJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgICAgIG1vZGVsOiBbXG4gICAgICAgICAgICAgICAgICAgICd2ZW8tMi4wLWdlbmVyYXRlLTAwMScsXG4gICAgICAgICAgICAgICAgICAgICd2ZW8tMy4wLWdlbmVyYXRlLXByZXZpZXcnLFxuICAgICAgICAgICAgICAgICAgICAndmVvLTMuMC1mYXN0LWdlbmVyYXRlLXByZXZpZXcnLFxuICAgICAgICAgICAgICAgICAgICAndmVvLTMuMS1nZW5lcmF0ZS1wcmV2aWV3JyxcbiAgICAgICAgICAgICAgICAgICAgJ3Zlby0zLjEtZmFzdC1nZW5lcmF0ZS1wcmV2aWV3JyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDoge30sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0R1cmF0aW9uIChzZWNvbmRzKScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ2R1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICc4IHNlY29uZHMnLCB2YWx1ZTogOCB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogOCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZpZGVvIGR1cmF0aW9uIGluIHNlY29uZHMgKFZlbyBvbmx5IHN1cHBvcnRzIDggc2Vjb25kcyknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0dlbmVyYXRlIEF1ZGlvJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnZ2VuZXJhdGVBdWRpbycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0byBnZW5lcmF0ZSBhdWRpbyBmb3IgdGhlIHZpZGVvJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdSZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnNzIwcCcsIHZhbHVlOiAnNzIwcCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnMTA4MHAnLCB2YWx1ZTogJzEwODBwJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJzcyMHAnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IHZpZGVvIHJlc29sdXRpb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1NhbXBsZSBDb3VudCcsXG4gICAgICAgICAgICAgICAgbmFtZTogJ3NhbXBsZUNvdW50JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWU6IDQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAxLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIHZpZGVvcyB0byBnZW5lcmF0ZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUGVyc29uIEdlbmVyYXRpb24nLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdwZXJzb25HZW5lcmF0aW9uJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdBbGxvdyBBZHVsdCcsIHZhbHVlOiAnYWxsb3dfYWR1bHQnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJEb24ndCBBbGxvd1wiLCB2YWx1ZTogJ2RvbnRfYWxsb3cnIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnYWxsb3dfYWR1bHQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ29udHJvbCBwZXJzb24gZ2VuZXJhdGlvbiBpbiB2aWRlbycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU2VlZCcsXG4gICAgICAgICAgICAgICAgbmFtZTogJ3NlZWQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSYW5kb20gc2VlZCBmb3IgcmVwcm9kdWNpYmxlIHJlc3VsdHMgKDAgPSByYW5kb20pJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfSxcbl07XG4iXX0=
456
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9EZXNjcmlwdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVzL1Fpbml1QWkvZGVzY3JpcHRpb25zL1ZpZGVvRGVzY3JpcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQStFO0FBRWxFLFFBQUEsZUFBZSxHQUFzQjtJQUM5QztRQUNJLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxTQUFTO1FBQ2YsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixjQUFjLEVBQUU7WUFDWixJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLEVBQUU7WUFDTDtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFdBQVcsRUFBRSxxQ0FBcUM7Z0JBQ2xELE1BQU0sRUFBRSxrQkFBa0I7YUFDN0I7WUFDRDtnQkFDSSxJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsT0FBTztnQkFDZCxXQUFXLEVBQUUsdURBQXVEO2dCQUNwRSxNQUFNLEVBQUUsZUFBZTthQUMxQjtZQUNEO2dCQUNJLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsV0FBVztnQkFDbEIsV0FBVyxFQUFFLDJDQUEyQztnQkFDeEQsTUFBTSxFQUFFLGtCQUFrQjthQUM3QjtTQUNKO1FBQ0QsT0FBTyxFQUFFLFVBQVU7S0FDdEI7Q0FDSixDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQXNCO0lBQzFDLFFBQVE7SUFDUjtRQUNJLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsSUFBSTtRQUNkLGNBQWMsRUFBRTtZQUNaLElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLFNB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O0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElOb2RlUHJvcGVydGllcyB9IGZyb20gJ244bi13b3JrZmxvdyc7XG5pbXBvcnQgeyBWSURFT19NT0RFTF9PUFRJT05TLCBWSURFT19BU1BFQ1RfUkFUSU9fT1BUSU9OUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB2aWRlb09wZXJhdGlvbnM6IElOb2RlUHJvcGVydGllc1tdID0gW1xuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdPcGVyYXRpb24nLFxuICAgICAgICBuYW1lOiAnb3BlcmF0aW9uJyxcbiAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICBub0RhdGFFeHByZXNzaW9uOiB0cnVlLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0dlbmVyYXRlJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2dlbmVyYXRlJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIGEgdmlkZW8gZnJvbSB0ZXh0IG9yIGltYWdlJyxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdHZW5lcmF0ZSBhIHZpZGVvJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1JlbWl4JyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ3JlbWl4JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlbWl4IGFuIGV4aXN0aW5nIHZpZGVvIHdpdGggbmV3IHByb21wdCBvciBwYXJhbWV0ZXJzJyxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdSZW1peCBhIHZpZGVvJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0dldCBTdGF0dXMnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZ2V0U3RhdHVzJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dldCB0aGUgc3RhdHVzIG9mIGEgdmlkZW8gZ2VuZXJhdGlvbiB0YXNrJyxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdHZXQgdmlkZW8gc3RhdHVzJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGRlZmF1bHQ6ICdnZW5lcmF0ZScsXG4gICAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCB2aWRlb0ZpZWxkczogSU5vZGVQcm9wZXJ0aWVzW10gPSBbXG4gICAgLy8gTW9kZWxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnTW9kZWwnLFxuICAgICAgICBuYW1lOiAnbW9kZWwnLFxuICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiBWSURFT19NT0RFTF9PUFRJT05TLFxuICAgICAgICBkZWZhdWx0OiAna2xpbmctdmlkZW8tbzEnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBtb2RlbCB0byB1c2UgZm9yIHZpZGVvIGdlbmVyYXRpb24nLFxuICAgIH0sXG4gICAgLy8gUHJvbXB0XG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ1Byb21wdCcsXG4gICAgICAgIG5hbWU6ICdwcm9tcHQnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgdHlwZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHJvd3M6IDQsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBvZiB0aGUgdmlkZW8gdG8gZ2VuZXJhdGUnLFxuICAgIH0sXG4gICAgLy8gVGFzayBJRCAoZm9yIGdldFN0YXR1cylcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnVGFzayBJRCcsXG4gICAgICAgIG5hbWU6ICd0YXNrSWQnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsndmlkZW8nXSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFsnZ2V0U3RhdHVzJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgSUQgb2YgdGhlIHZpZGVvIGdlbmVyYXRpb24gdGFzaycsXG4gICAgfSxcbiAgICAvLyBXYWl0IGZvciBDb21wbGV0aW9uXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ1dhaXQgZm9yIENvbXBsZXRpb24nLFxuICAgICAgICBuYW1lOiAnd2FpdEZvckNvbXBsZXRpb24nLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRpc3BsYXlPcHRpb25zOiB7XG4gICAgICAgICAgICBzaG93OiB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IFsndmlkZW8nXSxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb246IFsnZ2VuZXJhdGUnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0byB3YWl0IGZvciB0aGUgdmlkZW8gdG8gYmUgZnVsbHkgZ2VuZXJhdGVkIGJlZm9yZSByZXR1cm5pbmcnLFxuICAgIH0sXG4gICAgLy8gRnJhbWUgQ29udHJvbFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdGaXJzdCBGcmFtZSBJbWFnZSBVUkwnLFxuICAgICAgICBuYW1lOiAnZmlyc3RGcmFtZVVybCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGZpcnN0IGZyYW1lIGltYWdlLiBMZWF2ZSBlbXB0eSB0byB1c2UgYmluYXJ5IGRhdGEgZnJvbSBwcmV2aW91cyBub2RlLicsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnRmlyc3QgRnJhbWUgQmluYXJ5IFByb3BlcnR5JyxcbiAgICAgICAgbmFtZTogJ2ZpcnN0RnJhbWVCaW5hcnlQcm9wZXJ0eScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdkYXRhJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdCaW5hcnkgcHJvcGVydHkgbmFtZSBjb250YWluaW5nIHRoZSBmaXJzdCBmcmFtZSBpbWFnZSAoZnJvbSBJbWFnZSBub2RlIG91dHB1dCknLFxuICAgIH0sXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0xhc3QgRnJhbWUgSW1hZ2UgVVJMJyxcbiAgICAgICAgbmFtZTogJ2xhc3RGcmFtZVVybCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdVUkwgb2YgdGhlIGxhc3QgZnJhbWUgaW1hZ2UuIExlYXZlIGVtcHR5IHRvIHVzZSBiaW5hcnkgZGF0YSBmcm9tIHByZXZpb3VzIG5vZGUuJyxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdMYXN0IEZyYW1lIEJpbmFyeSBQcm9wZXJ0eScsXG4gICAgICAgIG5hbWU6ICdsYXN0RnJhbWVCaW5hcnlQcm9wZXJ0eScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdkYXRhXzEnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0JpbmFyeSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGxhc3QgZnJhbWUgaW1hZ2UgKGZyb20gSW1hZ2Ugbm9kZSBvdXRwdXQpJyxcbiAgICB9LFxuICAgIC8vIEFzcGVjdCBSYXRpbyAocmVxdWlyZWQgd2hlbiBubyBmaXJzdCBmcmFtZSlcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnQXNwZWN0IFJhdGlvJyxcbiAgICAgICAgbmFtZTogJ2FzcGVjdFJhdGlvJyxcbiAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczogVklERU9fQVNQRUNUX1JBVElPX09QVElPTlMsXG4gICAgICAgIGRlZmF1bHQ6ICcxNjo5JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdBc3BlY3QgcmF0aW8gb2YgdGhlIGdlbmVyYXRlZCB2aWRlbyAocmVxdWlyZWQgd2hlbiBubyBmaXJzdCBmcmFtZSBpbWFnZSknLFxuICAgIH0sXG4gICAgLy8gQ29tbW9uIE9wdGlvbnNcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnT3B0aW9ucycsXG4gICAgICAgIG5hbWU6ICdvcHRpb25zJyxcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ0FkZCBPcHRpb24nLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiB7fSxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmVnYXRpdmUgUHJvbXB0JyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnbmVnYXRpdmVQcm9tcHQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHJvd3M6IDIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaW5ncyB0byBhdm9pZCBpbiB0aGUgZ2VuZXJhdGVkIHZpZGVvJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICAvLyBLbGluZy1zcGVjaWZpYyBvcHRpb25zXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ0tsaW5nIE9wdGlvbnMnLFxuICAgICAgICBuYW1lOiAna2xpbmdPcHRpb25zJyxcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ0FkZCBLbGluZyBPcHRpb24nLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICAgICAgbW9kZWw6IFsna2xpbmctdmlkZW8tbzEnLCAna2xpbmctdjItMScsICdrbGluZy12Mi01LXR1cmJvJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiB7fSxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRHVyYXRpb24nLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdkdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnNSBzZWNvbmRzJywgdmFsdWU6ICc1JyB9LFxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICcxMCBzZWNvbmRzJywgdmFsdWU6ICcxMCcgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICc1JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZpZGVvIGR1cmF0aW9uIGluIHNlY29uZHMnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ01vZGUnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdtb2RlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdTdGFuZGFyZCcsIHZhbHVlOiAnc3RkJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdQcm9mZXNzaW9uYWwnLCB2YWx1ZTogJ3BybycgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICdzdGQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGlvbiBtb2RlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdDRkcgU2NhbGUnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdjZmdTY2FsZScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgdHlwZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICAgICAgICAgIG1heFZhbHVlOiAyMCxcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyUHJlY2lzaW9uOiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogNyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NGRyBndWlkYW5jZSBzY2FsZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU2l6ZScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ3NpemUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMTkyMHgxMDgwJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ZpZGVvIHJlc29sdXRpb24gKGUuZy4sIDE5MjB4MTA4MCknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIC8vIFZlby1zcGVjaWZpYyBvcHRpb25zXG4gICAge1xuICAgICAgICBkaXNwbGF5TmFtZTogJ1ZlbyBPcHRpb25zJyxcbiAgICAgICAgbmFtZTogJ3Zlb09wdGlvbnMnLFxuICAgICAgICB0eXBlOiAnY29sbGVjdGlvbicsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQWRkIFZlbyBPcHRpb24nLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICAgICAgbW9kZWw6IFtcbiAgICAgICAgICAgICAgICAgICAgJ3Zlby0yLjAtZ2VuZXJhdGUtMDAxJyxcbiAgICAgICAgICAgICAgICAgICAgJ3Zlby0zLjAtZ2VuZXJhdGUtcHJldmlldycsXG4gICAgICAgICAgICAgICAgICAgICd2ZW8tMy4wLWZhc3QtZ2VuZXJhdGUtcHJldmlldycsXG4gICAgICAgICAgICAgICAgICAgICd2ZW8tMy4xLWdlbmVyYXRlLXByZXZpZXcnLFxuICAgICAgICAgICAgICAgICAgICAndmVvLTMuMS1mYXN0LWdlbmVyYXRlLXByZXZpZXcnLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiB7fSxcbiAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRHVyYXRpb24gKHNlY29uZHMpJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJzggc2Vjb25kcycsIHZhbHVlOiA4IH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiA4LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVmlkZW8gZHVyYXRpb24gaW4gc2Vjb25kcyAoVmVvIG9ubHkgc3VwcG9ydHMgOCBzZWNvbmRzKScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnR2VuZXJhdGUgQXVkaW8nLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdnZW5lcmF0ZUF1ZGlvJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRvIGdlbmVyYXRlIGF1ZGlvIGZvciB0aGUgdmlkZW8nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1Jlc29sdXRpb24nLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdyZXNvbHV0aW9uJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb3B0aW9ucycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICc3MjBwJywgdmFsdWU6ICc3MjBwJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICcxMDgwcCcsIHZhbHVlOiAnMTA4MHAnIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnNzIwcCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdPdXRwdXQgdmlkZW8gcmVzb2x1dGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnU2FtcGxlIENvdW50JyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2FtcGxlQ291bnQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIHR5cGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIG1pblZhbHVlOiAxLFxuICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZTogNCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOdW1iZXIgb2YgdmlkZW9zIHRvIGdlbmVyYXRlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdQZXJzb24gR2VuZXJhdGlvbicsXG4gICAgICAgICAgICAgICAgbmFtZTogJ3BlcnNvbkdlbmVyYXRpb24nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ0FsbG93IEFkdWx0JywgdmFsdWU6ICdhbGxvd19hZHVsdCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBcIkRvbid0IEFsbG93XCIsIHZhbHVlOiAnZG9udF9hbGxvdycgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICdhbGxvd19hZHVsdCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDb250cm9sIHBlcnNvbiBnZW5lcmF0aW9uIGluIHZpZGVvJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdTZWVkJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2VlZCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogMCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JhbmRvbSBzZWVkIGZvciByZXByb2R1Y2libGUgcmVzdWx0cyAoMCA9IHJhbmRvbSknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuICAgIC8vIFZpZGVvIFJlZmVyZW5jZSAodmlkZW9fbGlzdCkgZm9yIHZpZGVvLXRvLXZpZGVvIGdlbmVyYXRpb25cbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnVmlkZW8gUmVmZXJlbmNlIFVSTCcsXG4gICAgICAgIG5hbWU6ICd2aWRlb1JlZmVyZW5jZVVybCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkaXNwbGF5T3B0aW9uczoge1xuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiBbJ3ZpZGVvJ10sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiBbJ2dlbmVyYXRlJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdodHRwczovL2V4YW1wbGUuY29tL3JlZmVyZW5jZS12aWRlby5tcDQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1VSTCBvZiBhIHJlZmVyZW5jZSB2aWRlbyBmb3IgdmlkZW8tdG8tdmlkZW8gZ2VuZXJhdGlvbicsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnS2VlcCBPcmlnaW5hbCBTb3VuZCcsXG4gICAgICAgIG5hbWU6ICdrZWVwT3JpZ2luYWxTb3VuZCcsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydnZW5lcmF0ZSddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0byBrZWVwIHRoZSBvcmlnaW5hbCBzb3VuZCBmcm9tIHRoZSByZWZlcmVuY2UgdmlkZW8nLFxuICAgIH0sXG4gICAgLy8gUmVtaXggT3BlcmF0aW9uIEZpZWxkc1xuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdTb3VyY2UgVmlkZW8gSUQnLFxuICAgICAgICBuYW1lOiAnc291cmNlVmlkZW9JZCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydyZW1peCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIElEIG9mIHRoZSB2aWRlbyB0byByZW1peCcsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnTmV3IFByb21wdCcsXG4gICAgICAgIG5hbWU6ICdyZW1peFByb21wdCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICB0eXBlT3B0aW9uczoge1xuICAgICAgICAgICAgcm93czogNCxcbiAgICAgICAgfSxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydyZW1peCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmV3IHByb21wdCB0byBndWlkZSB0aGUgcmVtaXggKG9wdGlvbmFsKScsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIGRpc3BsYXlOYW1lOiAnV2FpdCBmb3IgQ29tcGxldGlvbicsXG4gICAgICAgIG5hbWU6ICd3YWl0Rm9yQ29tcGxldGlvbicsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydyZW1peCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRvIHdhaXQgZm9yIHRoZSByZW1peCB0byBjb21wbGV0ZSBiZWZvcmUgcmV0dXJuaW5nJyxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgZGlzcGxheU5hbWU6ICdSZW1peCBPcHRpb25zJyxcbiAgICAgICAgbmFtZTogJ3JlbWl4T3B0aW9ucycsXG4gICAgICAgIHR5cGU6ICdjb2xsZWN0aW9uJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBZGQgUmVtaXggT3B0aW9uJyxcbiAgICAgICAgZGlzcGxheU9wdGlvbnM6IHtcbiAgICAgICAgICAgIHNob3c6IHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogWyd2aWRlbyddLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogWydyZW1peCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdDoge30sXG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0R1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJzUgc2Vjb25kcycsIHZhbHVlOiAnNScgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnMTAgc2Vjb25kcycsIHZhbHVlOiAnMTAnIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiAnNScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEdXJhdGlvbiBvZiB0aGUgcmVtaXhlZCB2aWRlbycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTW9kZScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ21vZGUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdvcHRpb25zJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ1N0YW5kYXJkJywgdmFsdWU6ICdzdGQnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ1Byb2Zlc3Npb25hbCcsIHZhbHVlOiAncHJvJyB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ3N0ZCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZW5lcmF0aW9uIHF1YWxpdHkgbW9kZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnTmVnYXRpdmUgUHJvbXB0JyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnbmVnYXRpdmVQcm9tcHQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnV2hhdCB0byBhdm9pZCBpbiB0aGUgdmlkZW8nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxuXTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-qiniu-ai",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "n8n nodes for Qiniu AI SDK - Chat, Image, Video, Audio, OCR, Agent and more",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -53,4 +53,4 @@
53
53
  "peerDependencies": {
54
54
  "n8n-workflow": "*"
55
55
  }
56
- }
56
+ }