obsidian-dev-utils 94.5.0 → 94.6.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/integration-test-plugin/main.js +192 -2
  3. package/dist/lib/cjs/__merged.cjs +11 -1
  4. package/dist/lib/cjs/__merged.d.cts +2 -0
  5. package/dist/lib/cjs/blob.cjs +6 -3
  6. package/dist/lib/cjs/blob.d.cts +18 -1
  7. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  8. package/dist/lib/cjs/index.cjs +4 -1
  9. package/dist/lib/cjs/index.d.cts +1 -0
  10. package/dist/lib/cjs/jpeg-metadata.cjs +274 -0
  11. package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
  12. package/dist/lib/cjs/obsidian/attachment-unit-folder.cjs +155 -0
  13. package/dist/lib/cjs/obsidian/attachment-unit-folder.d.cts +73 -0
  14. package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +4 -1
  15. package/dist/lib/cjs/obsidian/index.cjs +4 -1
  16. package/dist/lib/cjs/obsidian/index.d.cts +1 -0
  17. package/dist/lib/esm/__merged.d.mts +2 -0
  18. package/dist/lib/esm/__merged.mjs +13 -1
  19. package/dist/lib/esm/blob.d.mts +18 -1
  20. package/dist/lib/esm/blob.mjs +9 -3
  21. package/dist/lib/esm/generated-during-build.mjs +1 -1
  22. package/dist/lib/esm/index.d.mts +1 -0
  23. package/dist/lib/esm/index.mjs +3 -1
  24. package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
  25. package/dist/lib/esm/jpeg-metadata.mjs +169 -0
  26. package/dist/lib/esm/obsidian/attachment-unit-folder.d.mts +73 -0
  27. package/dist/lib/esm/obsidian/attachment-unit-folder.mjs +50 -0
  28. package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +4 -1
  29. package/dist/lib/esm/obsidian/index.d.mts +1 -0
  30. package/dist/lib/esm/obsidian/index.mjs +3 -1
  31. package/obsidian/attachment-unit-folder/package.json +6 -0
  32. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 94.6.0
4
+
5
+ - fix: override deepmerge-ts to clear GHSA-ggr8-5vv4-36mx (#T557)
6
+ - feat(attachment-unit-folder): resolve the folder an attachment must travel with
7
+ - feat(blob): carry JPEG metadata across a canvas re-encode, behind an option
8
+ - fix(plugin-settings-component): stop a component that knows no properties from emptying data.json
9
+
3
10
  ## 94.5.0
4
11
 
5
12
  - feat(demo-vault-buttons): walk group folders, not just the vault root
@@ -12524,6 +12524,7 @@ __export(src_exports, {
12524
12524
  function: () => function_exports,
12525
12525
  "generated-during-build": () => generated_during_build_exports,
12526
12526
  "html-element": () => html_element_exports,
12527
+ "jpeg-metadata": () => jpeg_metadata_exports,
12527
12528
  library: () => library_exports,
12528
12529
  "object-utils": () => object_utils_exports,
12529
12530
  obsidian: () => obsidian_exports,
@@ -12595,6 +12596,156 @@ __export(blob_exports, {
12595
12596
  dataUrlToArrayBuffer: () => dataUrlToArrayBuffer,
12596
12597
  isImageFile: () => isImageFile
12597
12598
  });
12599
+
12600
+ // src/jpeg-metadata.ts
12601
+ var jpeg_metadata_exports = {};
12602
+ __export(jpeg_metadata_exports, {
12603
+ extractJpegMetadataSegments: () => extractJpegMetadataSegments,
12604
+ injectJpegMetadataSegments: () => injectJpegMetadataSegments
12605
+ });
12606
+ var APP0_MARKER = 224;
12607
+ var APP1_MARKER = 225;
12608
+ var APP2_MARKER = 226;
12609
+ var EOI_MARKER = 217;
12610
+ var MARKER_PREFIX = 255;
12611
+ var SOI_MARKER = 216;
12612
+ var SOS_MARKER = 218;
12613
+ var EXIF_HEADER = "Exif\0\0";
12614
+ var ICC_PROFILE_HEADER = "ICC_PROFILE\0";
12615
+ var XMP_HEADER = "http://ns.adobe.com/xap/1.0/\0";
12616
+ var SEGMENT_HEADER_SIZE = 4;
12617
+ var SEGMENT_LENGTH_SIZE = 2;
12618
+ var SOI_SIZE = 2;
12619
+ var BIG_ENDIAN_TIFF_BYTE_ORDER = 19789;
12620
+ var IFD_ENTRY_SIZE = 12;
12621
+ var IFD_ENTRY_VALUE_OFFSET = 8;
12622
+ var IFD_ENTRY_COUNT_SIZE = 2;
12623
+ var LITTLE_ENDIAN_TIFF_BYTE_ORDER = 18761;
12624
+ var ORIENTATION_TAG = 274;
12625
+ var ORIENTATION_UPRIGHT = 1;
12626
+ var TIFF_HEADER_SIZE = 8;
12627
+ var TIFF_IFD_POINTER_OFFSET = 4;
12628
+ var TIFF_MAGIC = 42;
12629
+ var TIFF_MAGIC_OFFSET = 2;
12630
+ function extractJpegMetadataSegments(bytes) {
12631
+ if (!checkIsJpeg(bytes)) {
12632
+ return [];
12633
+ }
12634
+ const view = createView(bytes);
12635
+ const segments = [];
12636
+ let offset = SOI_SIZE;
12637
+ while (offset + SEGMENT_HEADER_SIZE <= bytes.length) {
12638
+ if (bytes[offset] !== MARKER_PREFIX) {
12639
+ break;
12640
+ }
12641
+ const marker = bytes[offset + 1];
12642
+ if (marker === SOS_MARKER || marker === EOI_MARKER) {
12643
+ break;
12644
+ }
12645
+ const segmentLength = view.getUint16(offset + SEGMENT_LENGTH_SIZE);
12646
+ const segmentEnd = offset + SEGMENT_LENGTH_SIZE + segmentLength;
12647
+ if (segmentLength < SEGMENT_LENGTH_SIZE || segmentEnd > bytes.length) {
12648
+ break;
12649
+ }
12650
+ if (checkIsMetadataSegment(bytes, offset, marker)) {
12651
+ segments.push(bytes.slice(offset, segmentEnd));
12652
+ }
12653
+ offset = segmentEnd;
12654
+ }
12655
+ return segments;
12656
+ }
12657
+ function injectJpegMetadataSegments(jpegBytes, segments) {
12658
+ if (segments.length === 0 || !checkIsJpeg(jpegBytes)) {
12659
+ return jpegBytes;
12660
+ }
12661
+ const normalizedSegments = segments.map((segment) => normalizeOrientation(segment));
12662
+ const insertAt2 = findInsertOffset(jpegBytes);
12663
+ const addedLength = normalizedSegments.reduce((total, segment) => total + segment.length, 0);
12664
+ const result = new Uint8Array(jpegBytes.length + addedLength);
12665
+ result.set(jpegBytes.subarray(0, insertAt2), 0);
12666
+ let writeAt = insertAt2;
12667
+ for (const segment of normalizedSegments) {
12668
+ result.set(segment, writeAt);
12669
+ writeAt += segment.length;
12670
+ }
12671
+ result.set(jpegBytes.subarray(insertAt2), writeAt);
12672
+ return result;
12673
+ }
12674
+ function checkIsJpeg(bytes) {
12675
+ return bytes.length >= SOI_SIZE && bytes[0] === MARKER_PREFIX && bytes[1] === SOI_MARKER;
12676
+ }
12677
+ function checkIsMetadataSegment(bytes, offset, marker) {
12678
+ const payloadOffset = offset + SEGMENT_HEADER_SIZE;
12679
+ if (marker === APP1_MARKER) {
12680
+ return checkMatchesHeader(bytes, payloadOffset, EXIF_HEADER) || checkMatchesHeader(bytes, payloadOffset, XMP_HEADER);
12681
+ }
12682
+ if (marker === APP2_MARKER) {
12683
+ return checkMatchesHeader(bytes, payloadOffset, ICC_PROFILE_HEADER);
12684
+ }
12685
+ return false;
12686
+ }
12687
+ function checkMatchesHeader(bytes, offset, header) {
12688
+ if (offset + header.length > bytes.length) {
12689
+ return false;
12690
+ }
12691
+ for (let index2 = 0; index2 < header.length; index2++) {
12692
+ if (bytes[offset + index2] !== header.codePointAt(index2)) {
12693
+ return false;
12694
+ }
12695
+ }
12696
+ return true;
12697
+ }
12698
+ function createView(bytes) {
12699
+ return new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
12700
+ }
12701
+ function findInsertOffset(jpegBytes) {
12702
+ if (SOI_SIZE + SEGMENT_HEADER_SIZE > jpegBytes.length) {
12703
+ return SOI_SIZE;
12704
+ }
12705
+ if (jpegBytes[SOI_SIZE] !== MARKER_PREFIX || jpegBytes[SOI_SIZE + 1] !== APP0_MARKER) {
12706
+ return SOI_SIZE;
12707
+ }
12708
+ const app0End = SOI_SIZE + SEGMENT_LENGTH_SIZE + createView(jpegBytes).getUint16(SOI_SIZE + SEGMENT_LENGTH_SIZE);
12709
+ return app0End > jpegBytes.length ? SOI_SIZE : app0End;
12710
+ }
12711
+ function normalizeOrientation(segment) {
12712
+ if (segment[1] !== APP1_MARKER || !checkMatchesHeader(segment, SEGMENT_HEADER_SIZE, EXIF_HEADER)) {
12713
+ return segment;
12714
+ }
12715
+ const tiffOffset = SEGMENT_HEADER_SIZE + EXIF_HEADER.length;
12716
+ if (tiffOffset + TIFF_HEADER_SIZE > segment.length) {
12717
+ return segment;
12718
+ }
12719
+ const view = createView(segment);
12720
+ const byteOrder = view.getUint16(tiffOffset);
12721
+ const isLittleEndian = byteOrder === LITTLE_ENDIAN_TIFF_BYTE_ORDER;
12722
+ if (!isLittleEndian && byteOrder !== BIG_ENDIAN_TIFF_BYTE_ORDER) {
12723
+ return segment;
12724
+ }
12725
+ if (view.getUint16(tiffOffset + TIFF_MAGIC_OFFSET, isLittleEndian) !== TIFF_MAGIC) {
12726
+ return segment;
12727
+ }
12728
+ const ifdOffset = tiffOffset + view.getUint32(tiffOffset + TIFF_IFD_POINTER_OFFSET, isLittleEndian);
12729
+ if (ifdOffset + IFD_ENTRY_COUNT_SIZE > segment.length) {
12730
+ return segment;
12731
+ }
12732
+ const entryCount = view.getUint16(ifdOffset, isLittleEndian);
12733
+ const entriesOffset = ifdOffset + IFD_ENTRY_COUNT_SIZE;
12734
+ if (entriesOffset + entryCount * IFD_ENTRY_SIZE > segment.length) {
12735
+ return segment;
12736
+ }
12737
+ const result = new Uint8Array(segment);
12738
+ const resultView = createView(result);
12739
+ for (let index2 = 0; index2 < entryCount; index2++) {
12740
+ const entryOffset = entriesOffset + index2 * IFD_ENTRY_SIZE;
12741
+ if (resultView.getUint16(entryOffset, isLittleEndian) === ORIENTATION_TAG) {
12742
+ resultView.setUint16(entryOffset + IFD_ENTRY_VALUE_OFFSET, ORIENTATION_UPRIGHT, isLittleEndian);
12743
+ }
12744
+ }
12745
+ return result;
12746
+ }
12747
+
12748
+ // src/blob.ts
12598
12749
  init_type_guards();
12599
12750
  async function blobToArrayBuffer(blob) {
12600
12751
  return await blob.arrayBuffer();
@@ -12609,7 +12760,8 @@ async function blobToDataUrl(blob) {
12609
12760
  }
12610
12761
  });
12611
12762
  }
12612
- async function blobToJpegArrayBuffer(blob, jpegQuality) {
12763
+ async function blobToJpegArrayBuffer(blob, jpegQuality, options) {
12764
+ const sourceSegments = options?.shouldPreserveMetadata ? extractJpegMetadataSegments(new Uint8Array(await blob.arrayBuffer())) : [];
12613
12765
  const dataUrl = await blobToDataUrl(blob);
12614
12766
  return new Promise((resolve2) => {
12615
12767
  const image2 = new Image();
@@ -12632,7 +12784,8 @@ async function blobToJpegArrayBuffer(blob, jpegQuality) {
12632
12784
  context.restore();
12633
12785
  const jpegDataUrl = canvas.toDataURL("image/jpeg", jpegQuality);
12634
12786
  const arrayBuffer = dataUrlToArrayBuffer(jpegDataUrl);
12635
- resolve2(arrayBuffer);
12787
+ const withMetadata = injectJpegMetadataSegments(new Uint8Array(arrayBuffer), sourceSegments);
12788
+ resolve2(withMetadata.buffer);
12636
12789
  }
12637
12790
  });
12638
12791
  }
@@ -12944,6 +13097,7 @@ __export(obsidian_exports, {
12944
13097
  app: () => app_exports,
12945
13098
  "async-with-notice": () => async_with_notice_exports,
12946
13099
  "attachment-path": () => attachment_path_exports,
13100
+ "attachment-unit-folder": () => attachment_unit_folder_exports,
12947
13101
  backlink: () => backlink_exports,
12948
13102
  "bases-view-registrar": () => bases_view_registrar_exports,
12949
13103
  callout: () => callout_exports,
@@ -14255,6 +14409,35 @@ function resolveAttachmentFolder(params) {
14255
14409
  };
14256
14410
  }
14257
14411
 
14412
+ // src/obsidian/attachment-unit-folder.ts
14413
+ var attachment_unit_folder_exports = {};
14414
+ __export(attachment_unit_folder_exports, {
14415
+ findAttachmentUnitFolderPath: () => findAttachmentUnitFolderPath,
14416
+ rebasePathOntoFolder: () => rebasePathOntoFolder
14417
+ });
14418
+ init_path();
14419
+ function findAttachmentUnitFolderPath(params) {
14420
+ const parentFolderPath2 = dirname(params.attachmentPath);
14421
+ if (!parentFolderPath2 || parentFolderPath2 === "." || parentFolderPath2 === "/") {
14422
+ return null;
14423
+ }
14424
+ const segments = parentFolderPath2.split("/").filter(Boolean);
14425
+ for (let count = 1; count <= segments.length; count++) {
14426
+ const candidate = segments.slice(0, count).join("/");
14427
+ if (params.checkIsAttachmentUnitFolder(candidate)) {
14428
+ return candidate;
14429
+ }
14430
+ }
14431
+ return null;
14432
+ }
14433
+ function rebasePathOntoFolder(params) {
14434
+ const prefix = `${params.oldFolderPath}/`;
14435
+ if (!params.path.startsWith(prefix)) {
14436
+ return null;
14437
+ }
14438
+ return `${params.newFolderPath}/${params.path.slice(prefix.length)}`;
14439
+ }
14440
+
14258
14441
  // src/obsidian/backlink.ts
14259
14442
  var backlink_exports = {};
14260
14443
  __export(backlink_exports, {
@@ -30297,6 +30480,9 @@ var PluginSettingsComponentBase = class extends ComponentEx {
30297
30480
  });
30298
30481
  }
30299
30482
  this.lastSavedState = await this.cloneState(this.currentState);
30483
+ if (this.propertyNames.length === 0) {
30484
+ return;
30485
+ }
30300
30486
  const newRecord = await this.settingsToRawRecord(this.currentState.inputValues);
30301
30487
  if (!isDeepEqual(newRecord, data)) {
30302
30488
  await this.saveToFileImpl();
@@ -39163,8 +39349,10 @@ __export(merged_exports, {
39163
39349
  escapeRegExp: () => escapeRegExp,
39164
39350
  extname: () => extname,
39165
39351
  extractDefaultExportInterop: () => extractDefaultExportInterop,
39352
+ extractJpegMetadataSegments: () => extractJpegMetadataSegments,
39166
39353
  extractLinkFile: () => extractLinkFile,
39167
39354
  filterInPlace: () => filterInPlace,
39355
+ findAttachmentUnitFolderPath: () => findAttachmentUnitFolderPath,
39168
39356
  fixFrontmatterMarkdownLinks: () => fixFrontmatterMarkdownLinks,
39169
39357
  fixTitle: () => fixTitle,
39170
39358
  flushQueue: () => flushQueue,
@@ -39254,6 +39442,7 @@ __export(merged_exports, {
39254
39442
  initDebugController: () => initDebugController,
39255
39443
  initI18N: () => initI18N,
39256
39444
  initPluginContext: () => initPluginContext,
39445
+ injectJpegMetadataSegments: () => injectJpegMetadataSegments,
39257
39446
  insertAfterCodeBlock: () => insertAfterCodeBlock,
39258
39447
  insertAt: () => insertAt,
39259
39448
  insertBeforeCodeBlock: () => insertBeforeCodeBlock,
@@ -39356,6 +39545,7 @@ __export(merged_exports, {
39356
39545
  prompt: () => prompt,
39357
39546
  queueMicrotaskAsync: () => queueMicrotaskAsync,
39358
39547
  readSafe: () => readSafe,
39548
+ rebasePathOntoFolder: () => rebasePathOntoFolder,
39359
39549
  referenceToFileChange: () => referenceToFileChange,
39360
39550
  registerAsyncErrorEventHandler: () => registerAsyncErrorEventHandler,
39361
39551
  registerAsyncEvent: () => registerAsyncEvent,
@@ -373,8 +373,10 @@ __export(merged_exports, {
373
373
  escapeRegExp: () => import_reg_exp.escapeRegExp,
374
374
  extname: () => import_path.extname,
375
375
  extractDefaultExportInterop: () => import_object_utils.extractDefaultExportInterop,
376
+ extractJpegMetadataSegments: () => import_jpeg_metadata.extractJpegMetadataSegments,
376
377
  extractLinkFile: () => import_link.extractLinkFile,
377
378
  filterInPlace: () => import_array.filterInPlace,
379
+ findAttachmentUnitFolderPath: () => import_attachment_unit_folder.findAttachmentUnitFolderPath,
378
380
  fixFrontmatterMarkdownLinks: () => import_link.fixFrontmatterMarkdownLinks,
379
381
  fixTitle: () => import_dataview_link.fixTitle,
380
382
  flushQueue: () => import_queue.flushQueue,
@@ -464,6 +466,7 @@ __export(merged_exports, {
464
466
  initDebugController: () => import_plugin_context.initDebugController,
465
467
  initI18N: () => import_i18n.initI18N,
466
468
  initPluginContext: () => import_plugin_context.initPluginContext,
469
+ injectJpegMetadataSegments: () => import_jpeg_metadata.injectJpegMetadataSegments,
467
470
  insertAfterCodeBlock: () => import_markdown_code_block_processor.insertAfterCodeBlock,
468
471
  insertAt: () => import_string.insertAt,
469
472
  insertBeforeCodeBlock: () => import_markdown_code_block_processor.insertBeforeCodeBlock,
@@ -566,6 +569,7 @@ __export(merged_exports, {
566
569
  prompt: () => import_prompt.prompt,
567
570
  queueMicrotaskAsync: () => import_async.queueMicrotaskAsync,
568
571
  readSafe: () => import_vault.readSafe,
572
+ rebasePathOntoFolder: () => import_attachment_unit_folder.rebasePathOntoFolder,
569
573
  referenceToFileChange: () => import_reference.referenceToFileChange,
570
574
  registerAsyncErrorEventHandler: () => import_error.registerAsyncErrorEventHandler,
571
575
  registerAsyncEvent: () => import_async_events_component.registerAsyncEvent,
@@ -692,6 +696,7 @@ var import_error = require('./error.cjs');
692
696
  var import_function = require('./function.cjs');
693
697
  var import_generated_during_build = require('./generated-during-build.cjs');
694
698
  var import_html_element = require('./html-element.cjs');
699
+ var import_jpeg_metadata = require('./jpeg-metadata.cjs');
695
700
  var import_library = require('./library.cjs');
696
701
  var import_object_utils = require('./object-utils.cjs');
697
702
  var import_obsidian_dev_utils_state = require('./obsidian-dev-utils-state.cjs');
@@ -699,6 +704,7 @@ var import_active_file_provider = require('./obsidian/active-file-provider.cjs')
699
704
  var import_app = require('./obsidian/app.cjs');
700
705
  var import_async_with_notice = require('./obsidian/async-with-notice.cjs');
701
706
  var import_attachment_path = require('./obsidian/attachment-path.cjs');
707
+ var import_attachment_unit_folder = require('./obsidian/attachment-unit-folder.cjs');
702
708
  var import_backlink = require('./obsidian/backlink.cjs');
703
709
  var import_bases_view_registrar = require('./obsidian/bases-view-registrar.cjs');
704
710
  var import_callout = require('./obsidian/callout.cjs');
@@ -1109,8 +1115,10 @@ var import_value_wrapper = require('./value-wrapper.cjs');
1109
1115
  escapeRegExp,
1110
1116
  extname,
1111
1117
  extractDefaultExportInterop,
1118
+ extractJpegMetadataSegments,
1112
1119
  extractLinkFile,
1113
1120
  filterInPlace,
1121
+ findAttachmentUnitFolderPath,
1114
1122
  fixFrontmatterMarkdownLinks,
1115
1123
  fixTitle,
1116
1124
  flushQueue,
@@ -1200,6 +1208,7 @@ var import_value_wrapper = require('./value-wrapper.cjs');
1200
1208
  initDebugController,
1201
1209
  initI18N,
1202
1210
  initPluginContext,
1211
+ injectJpegMetadataSegments,
1203
1212
  insertAfterCodeBlock,
1204
1213
  insertAt,
1205
1214
  insertBeforeCodeBlock,
@@ -1302,6 +1311,7 @@ var import_value_wrapper = require('./value-wrapper.cjs');
1302
1311
  prompt,
1303
1312
  queueMicrotaskAsync,
1304
1313
  readSafe,
1314
+ rebasePathOntoFolder,
1305
1315
  referenceToFileChange,
1306
1316
  registerAsyncErrorEventHandler,
1307
1317
  registerAsyncEvent,
@@ -1414,4 +1424,4 @@ var import_value_wrapper = require('./value-wrapper.cjs');
1414
1424
  waitUntilConnected,
1415
1425
  wrapForCallout
1416
1426
  });
1417
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL19fbWVyZ2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXIsXG4gIGFib3J0U2lnbmFsVGltZW91dCxcbiAgSU5GSU5JVEVfVElNRU9VVCxcbiAgb25BYm9ydCxcbiAgd2FpdEZvckFib3J0XG59IGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJy4vYXJyYXkudHMnO1xuZXhwb3J0IHtcbiAgQXN5bmNFdmVudFJlZkRpc3Bvc2FibGUsXG4gIEFzeW5jRXZlbnRzLFxuICBBc3luY0V2ZW50c0Jhc2UsXG4gIG1peGluQXN5bmNFdmVudHMsXG4gIHN1YnNjcmliZUFzeW5jRGlzcG9zYWJsZUV2ZW50XG59IGZyb20gJy4vYXN5bmMtZXZlbnRzLnRzJztcbmV4cG9ydCB7XG4gIGFkZEVycm9ySGFuZGxlcixcbiAgYXN5bmNGaWx0ZXIsXG4gIGFzeW5jRmlsdGVySW5QbGFjZSxcbiAgYXN5bmNGbGF0TWFwLFxuICBhc3luY01hcCxcbiAgY2hhaW4sXG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgY29udmVydFN5bmNUb0FzeW5jLFxuICBkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc0FzeW5jT3BlcmF0aW9uVHJhY2tpbmdFbmFibGVkLFxuICBtYXJrc0FzVGVybWluYXRlUmV0cnksXG4gIG5ldmVyRW5kcyxcbiAgbmV4dFRpY2tBc3luYyxcbiAgbm9ybWFsaXplUHJvbWlzYWJsZSxcbiAgcHJvbWlzZUFsbEFzeW5jRm5zU2VxdWVudGlhbGx5LFxuICBwcm9taXNlQWxsU2VxdWVudGlhbGx5LFxuICBxdWV1ZU1pY3JvdGFza0FzeW5jLFxuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXQsXG4gIHNldEltbWVkaWF0ZUFzeW5jLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5LFxuICB3YWl0Rm9yQWxsQXN5bmNPcGVyYXRpb25zXG59IGZyb20gJy4vYXN5bmMudHMnO1xuZXhwb3J0IHsgQmVlcGVyIH0gZnJvbSAnLi9iZWVwZXIudHMnO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJy4vYmxvYi50cyc7XG5leHBvcnQge1xuICBlbmFibGVMaWJyYXJ5RGVidWdnZXJzLFxuICBnZXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGdldERlYnVnZ2VyLFxuICBnZXRMaWJEZWJ1Z2dlcixcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZSxcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQge1xuICBBc3luY0NhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQXN5bmNEaXNwb3NhYmxlQmFzZSxcbiAgQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBDb21iaW5lQXN5bmNEaXNwb3NhYmxlLFxuICBDb21iaW5lRGlzcG9zYWJsZSxcbiAgRGlzcG9zYWJsZUJhc2UsXG4gIGRpc3Bvc2UsXG4gIGRpc3Bvc2VBc3luYyxcbiAgRGlzcG9zZUVycm9yQmVoYXZpb3IsXG4gIERpc3Bvc2VPcmRlcixcbiAgaXNBc3luY0Rpc3Bvc2FibGUsXG4gIGlzQXN5bmNEaXNwb3NhYmxlRXgsXG4gIGlzRGlzcG9zYWJsZSxcbiAgaXNEaXNwb3NhYmxlRXgsXG4gIE11bHRpcGxlRGlzcG9zZUJlaGF2aW9yLFxuICB0b0FzeW5jRGlzcG9zYWJsZUV4LFxuICB0b0Rpc3Bvc2FibGVFeFxufSBmcm9tICcuL2Rpc3Bvc2FibGUudHMnO1xuZXhwb3J0IHtcbiAgZ2V0RW51bUtleSxcbiAgZ2V0RW51bVZhbHVlXG59IGZyb20gJy4vZW51bS50cyc7XG5leHBvcnQge1xuICBBU1lOQ19XUkFQUEVSX0VSUk9SX01FU1NBR0UsXG4gIEN1c3RvbVN0YWNrVHJhY2VFcnJvcixcbiAgZW1pdEFzeW5jRXJyb3JFdmVudCxcbiAgZXJyb3JUb1N0cmluZyxcbiAgRXJyb3JXcmFwcGVyLFxuICBnZXRTdGFja1RyYWNlLFxuICBpc0FzeW5jRXJyb3JJZ25vcmVDb250ZXh0QWN0aXZlLFxuICBwcmludEVycm9yLFxuICByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIsXG4gIFNpbGVudEVycm9yLFxuICBzdGFydEFzeW5jRXJyb3JJZ25vcmVDb250ZXh0LFxuICBzdGFydENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgc3RvcENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgdGhyb3dFeHByZXNzaW9uXG59IGZyb20gJy4vZXJyb3IudHMnO1xuZXhwb3J0IHtcbiAgY2xvbmVGdW5jdGlvbixcbiAgY3JlYXRlRnVuY3Rpb24sXG4gIGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyxcbiAgbm9vcCxcbiAgbm9vcEFzeW5jLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlLFxuICBvbWl0QXN5bmNSZXR1cm5UeXBlLFxuICBvbWl0UmV0dXJuVHlwZVxufSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcbmV4cG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZURpdkFzeW5jLFxuICBjcmVhdGVFbEFzeW5jLFxuICBjcmVhdGVGcmFnbWVudEFzeW5jLFxuICBjcmVhdGVTcGFuQXN5bmMsXG4gIGNyZWF0ZVN2Z0FzeW5jLFxuICBlbnN1cmVMb2FkZWQsXG4gIGdldERvY3VtZW50V2luZG93LFxuICBnZXRaSW5kZXgsXG4gIGlzRWxlbWVudFZpc2libGVJbk9mZnNldFBhcmVudCxcbiAgaXNMb2FkZWQsXG4gIG9uQW5jZXN0b3JTY3JvbGxPclJlc2l6ZSxcbiAgdG9QeCxcbiAgd2FpdFVudGlsQ29ubmVjdGVkXG59IGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCB7XG4gIExpYnJhcnksXG4gIExJQlJBUllfTkFNRVxufSBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0IHtcbiAgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBjYXN0VG8sXG4gIGNsb25lV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0eSxcbiAgZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wLFxuICBGdW5jdGlvbkhhbmRsaW5nTW9kZSxcbiAgZ2V0QWxsRW50cmllcyxcbiAgZ2V0QWxsS2V5cyxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgZ2V0UHJvdG90eXBlT2YsXG4gIGlzRGVlcEVxdWFsLFxuICBuYW1lb2YsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyxcbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgdG9Kc29uXG59IGZyb20gJy4vb2JqZWN0LXV0aWxzLnRzJztcbmV4cG9ydCB7XG4gIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSxcbiAgcmVzZXRPYnNpZGlhbkRldlV0aWxzU3RhdGVcbn0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUudHMnO1xuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBnZXRBcHAgfSBmcm9tICcuL29ic2lkaWFuL2FwcC50cyc7XG5leHBvcnQge1xuICByZXRyeVdpdGhUaW1lb3V0Tm90aWNlLFxuICBydW5XaXRoVGltZW91dE5vdGljZVxufSBmcm9tICcuL29ic2lkaWFuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmV4cG9ydCB7XG4gIEF0dGFjaG1lbnRQYXRoQ29udGV4dCxcbiAgRFVNTVlfUEFUSCxcbiAgZ2V0QXR0YWNobWVudEZpbGVQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aCxcbiAgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsLFxuICBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMsXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICByZW5kZXJCYWNrbGlua3NUYWJsZSxcbiAgcmVuZGVyRGVsYXllZEJhY2tsaW5rcyxcbiAgcmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlclxufSBmcm9tICcuL29ic2lkaWFuL2JhY2tsaW5rLnRzJztcbmV4cG9ydCB7IFBsdWdpbkJhc2VzVmlld1JlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vYmFzZXMtdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgQ2FsbG91dE1vZGUsXG4gIHJlbmRlckNhbGxvdXQsXG4gIHdyYXBGb3JDYWxsb3V0XG59IGZyb20gJy4vb2JzaWRpYW4vY2FsbG91dC50cyc7XG5leHBvcnQgeyBnZXRDYW52YXNSZWZlcmVuY2VzIH0gZnJvbSAnLi9vYnNpZGlhbi9jYW52YXMudHMnO1xuZXhwb3J0IHtcbiAgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBnZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHNldENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgdW5zZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXhcbn0gZnJvbSAnLi9vYnNpZGlhbi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0IHsgY3JlYXRlQ29kZUJsb2NrUmVnRXhwIH0gZnJvbSAnLi9vYnNpZGlhbi9jb2RlLWJsb2NrLXJlZy1leHAudHMnO1xuZXhwb3J0IHsgQWJzdHJhY3RGaWxlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvYWJzdHJhY3QtZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRWRpdG9yQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZWRpdG9yLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBGaWxlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZmlsZS1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRm9sZGVyQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZm9sZGVyLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBHbG9iYWxDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9nbG9iYWwtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IE9wZW5EZW1vVmF1bHRDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9vcGVuLWRlbW8tdmF1bHQtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IE9wZW5TZXR0aW5nc0NvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL29wZW4tc2V0dGluZ3MtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IFVubG9ja0FjdGl2ZU5vdGVDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy91bmxvY2stYWN0aXZlLW5vdGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGNvbmZpZ3VyZUNvbW11bml0eVBsdWdpbixcbiAgQ29uZmlndXJlQ29tbXVuaXR5UGx1Z2luUmVzdWx0LFxuICBkaXNhYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBlbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uLFxuICBpbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICBpbnN0YWxsQ29uZmlndXJlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBzZWFyY2hDb21tdW5pdHlQbHVnaW5zLFxuICB0b2dnbGVFbmFibGVDb21tdW5pdHlQbHVnaW4sXG4gIHRvZ2dsZUluc3RhbGxDb21tdW5pdHlQbHVnaW4sXG4gIHVuaW5zdGFsbENvbW11bml0eVBsdWdpblxufSBmcm9tICcuL29ic2lkaWFuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmV4cG9ydCB7IEFib3J0U2lnbmFsQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2Fib3J0LXNpZ25hbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQWxsV2luZG93c0V2ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9jb21wb25lbnQtZXgudHMnO1xuZXhwb3J0IHsgQ29uc29sZURlYnVnQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGFzRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWJlZEV4dGVuc2lvbnNDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgR2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2dlbmVyYXRlLW1hcmtkb3duLWxpbmstZGVmYXVsdC1wYXJhbXMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIENhbGxiYWNrTGF5b3V0UmVhZHlDb21wb25lbnQsXG4gIExheW91dFJlYWR5Q29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9sYXlvdXQtcmVhZHktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgYXJvdW5kLFxuICBoYXNQYXRjaFRva2VuLFxuICBNb25rZXlBcm91bmRDb21wb25lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL21vbmtleS1hcm91bmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9wbHVnaW4tY29udGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VNb2RlXG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQbHVnaW5TZXR0aW5nc1RhYkNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9wbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQb2ludGVyUG9zaXRpb25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVnaXN0cnlDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEVtcHR5Rm9sZGVyQmVoYXZpb3IsXG4gIFJlbmFtZURlbGV0ZUhhbmRsZXJDb21wb25lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3N5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL29ic2lkaWFuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vb2JzaWRpYW4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHtcbiAgZml4VGl0bGUsXG4gIG1ha2VMaW5rV2l0aFBhdGhcbn0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCB7XG4gIGdldFJlbmRlcmVkQ29udGFpbmVyLFxuICBpbnNlcnRDb2RlQmxvY2ssXG4gIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUsXG4gIHJlbmRlcklmcmFtZSxcbiAgcmVuZGVyUGFnaW5hdGVkTGlzdCxcbiAgcmVuZGVyUGFnaW5hdGVkVGFibGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhdmlldy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7IG9wZW5EZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0IHtcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JTdWdnZXN0UmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgc3luY09wZW5FZGl0b3JCdWZmZXJzRm9yUGF0aCxcbiAgdG9nZ2xlRWRpdG9yUmVhZE9ubHlcbn0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3IudHMnO1xuZXhwb3J0IHtcbiAgRXZlbnRSZWZEaXNwb3NhYmxlLFxuICBzdWJzY3JpYmVEaXNwb3NhYmxlRXZlbnQsXG4gIHN1YnNjcmliZUV2ZW50XG59IGZyb20gJy4vb2JzaWRpYW4vZXZlbnRzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkV4dGVuc2lvbnNSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGx5Q29udGVudENoYW5nZXMsXG4gIGFwcGx5RmlsZUNoYW5nZXMsXG4gIGlzQ2FudmFzQ2hhbmdlLFxuICBpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlLFxuICBpc0NhbnZhc1RleHROb2RlQ2hhbmdlLFxuICBpc0NvbnRlbnRDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0IHtcbiAgYWRkQWxpYXMsXG4gIGRlbGV0ZUFsaWFzLFxuICBwcm9jZXNzRnJvbnRtYXR0ZXIsXG4gIHdhaXRGb3JQZW5kaW5nTGlua1VwZGF0ZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0IHtcbiAgYXNBcnJheU9mRmlsZXMsXG4gIGFzQXJyYXlPZkZvbGRlcnMsXG4gIGFzRmlsZSxcbiAgYXNGaWxlT3JOdWxsLFxuICBhc0ZvbGRlcixcbiAgYXNGb2xkZXJPck51bGwsXG4gIEJBU0VfRklMRV9FWFRFTlNJT04sXG4gIENBTlZBU19GSUxFX0VYVEVOU0lPTixcbiAgY2hlY2tFeHRlbnNpb24sXG4gIGRvZXNFeGlzdCxcbiAgRmlsZVN5c3RlbVR5cGUsXG4gIGdldEFic3RyYWN0RmlsZSxcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGdldE9yQ3JlYXRlRmlsZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXIsXG4gIGdldFBhdGgsXG4gIGlzQWJzdHJhY3RGaWxlLFxuICBpc0Jhc2VGaWxlLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXIsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGUsXG4gIGlzVHJlYXRlZEFzQXR0YWNobWVudCxcbiAgTUFSS0RPV05fRklMRV9FWFRFTlNJT04sXG4gIHRyaW1NYXJrZG93bkV4dGVuc2lvblxufSBmcm9tICcuL29ic2lkaWFuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCB7XG4gIEZPTERFUl9OT1RFU19QTFVHSU5fSUQsXG4gIEZvbGRlck5vdGVMb2NhdGlvbixcbiAgcmVzb2x2ZUZvbGRlck5vdGUsXG4gIHJlc29sdmVGb2xkZXJOb3RlQ29uZmlnXG59IGZyb20gJy4vb2JzaWRpYW4vZm9sZGVyLW5vdGUudHMnO1xuZXhwb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLFxuICB0b0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHNcbn0gZnJvbSAnLi9vYnNpZGlhbi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQge1xuICBwYXJzZUZyb250bWF0dGVyLFxuICBzZXRGcm9udG1hdHRlclxufSBmcm9tICcuL29ic2lkaWFuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCB7IFBsdWdpbkhvdmVyTGlua1NvdXJjZVJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IGFwcGVuZENvZGVCbG9jayB9IGZyb20gJy4vb2JzaWRpYW4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTlMsXG4gIGluaXRJMThOLFxuICB0XG59IGZyb20gJy4vb2JzaWRpYW4vaTE4bi9pMThuLnRzJztcbmV4cG9ydCB7IGVuIH0gZnJvbSAnLi9vYnNpZGlhbi9pMThuL2xvY2FsZXMvZW4udHMnO1xuZXhwb3J0IHtcbiAgREVGQVVMVF9MQU5HVUFHRSxcbiAgZGVmYXVsdFRyYW5zbGF0aW9uc01hcFxufSBmcm9tICcuL29ic2lkaWFuL2kxOG4vbG9jYWxlcy90cmFuc2xhdGlvbnMtbWFwLnRzJztcbmV4cG9ydCB7IGlzSW5PYnNpZGlhbiB9IGZyb20gJy4vb2JzaWRpYW4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0IHtcbiAgY29udmVydExpbmssXG4gIGVkaXRCYWNrbGlua3MsXG4gIGVkaXRMaW5rcyxcbiAgZWRpdExpbmtzSW5Db250ZW50LFxuICBleHRyYWN0TGlua0ZpbGUsXG4gIGZpeEZyb250bWF0dGVyTWFya2Rvd25MaW5rcyxcbiAgZ2VuZXJhdGVNYXJrZG93bkxpbmssXG4gIGdlbmVyYXRlUmF3TWFya2Rvd25MaW5rLFxuICBnZXRHZW5lcmF0ZU1hcmtkb3duTGlua0RlZmF1bHRQYXJhbXNGbnMsXG4gIGhhc0FuZ2xlQnJhY2tldHMsXG4gIGhhc0VtYmVkU3ludGF4LFxuICBoYXNMZWFkaW5nRG90LFxuICBoYXNMZWFkaW5nU2xhc2gsXG4gIGhhc1dpa2lsaW5rU3ludGF4LFxuICBMaW5rUGF0aFN0eWxlLFxuICBMaW5rU3R5bGUsXG4gIHNob3VsZFJlc2V0QWxpYXMsXG4gIHNwbGl0U3VicGF0aCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5Db250ZW50LFxuICB1cGRhdGVGaWxlVXJsTGlua3NJbkZpbGUsXG4gIHVwZGF0ZUxpbmssXG4gIHVwZGF0ZUxpbmtzSW5Db250ZW50LFxuICB1cGRhdGVMaW5rc0luRmlsZVxufSBmcm9tICcuL29ic2lkaWFuL2xpbmsudHMnO1xuZXhwb3J0IHsgaW52b2tlQXN5bmNBbmRMb2cgfSBmcm9tICcuL29ic2lkaWFuL2xvZ2dlci50cyc7XG5leHBvcnQgeyBsb29wIH0gZnJvbSAnLi9vYnNpZGlhbi9sb29wLnRzJztcbmV4cG9ydCB7IFBsdWdpbk1hcmtkb3duQ29kZUJsb2NrUHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0Q29kZUJsb2NrTWFya2Rvd25JbmZvLFxuICBpbnNlcnRBZnRlckNvZGVCbG9jayxcbiAgaW5zZXJ0QmVmb3JlQ29kZUJsb2NrLFxuICByZW1vdmVDb2RlQmxvY2ssXG4gIHJlcGxhY2VDb2RlQmxvY2tcbn0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93blBvc3RQcm9jZXNzb3JSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBnZXRGdWxsQ29udGVudEh0bWwgfSBmcm9tICcuL29ic2lkaWFuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0IHtcbiAgZnVsbFJlbmRlcixcbiAgbWFya2Rvd25Ub0h0bWwsXG4gIHJlZ2lzdGVyTGlua0hhbmRsZXJzLFxuICByZW5kZXJFeHRlcm5hbExpbmssXG4gIHJlbmRlckludGVybmFsTGlua1xufSBmcm9tICcuL29ic2lkaWFuL21hcmtkb3duLnRzJztcbmV4cG9ydCB7XG4gIENhY2hlZE1ldGFkYXRhRXhGZWF0dXJlLFxuICBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHksXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgsXG4gIGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlLFxuICBnZXRDYWNoZVNhZmUsXG4gIGdldEZyb250bWF0dGVyU2FmZSxcbiAgZ2V0TGlua3MsXG4gIGlzQ2FjaGVkTWV0YWRhdGFFeCxcbiAgcGFyc2VNZXRhZGF0YSxcbiAgcmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHJlZ2lzdGVyRmlsZXMsXG4gIHVucmVnaXN0ZXJGaWxlQ2FjaGVGb3JOb25FeGlzdGluZ0ZpbGUsXG4gIHVucmVnaXN0ZXJGaWxlc1xufSBmcm9tICcuL29ic2lkaWFuL21ldGFkYXRhLWNhY2hlLnRzJztcbmV4cG9ydCB7IGFsZXJ0IH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvYWxlcnQudHMnO1xuZXhwb3J0IHsgY29uZmlybSB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL2NvbmZpcm0udHMnO1xuZXhwb3J0IHsgTWluaW1pemFibGVNb2RhbCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL21pbmltaXphYmxlLW1vZGFsLnRzJztcbmV4cG9ydCB7XG4gIE1vZGFsQmFzZSxcbiAgc2hvd01vZGFsXG59IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL21vZGFsLnRzJztcbmV4cG9ydCB7IHByb21wdCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL3Byb21wdC50cyc7XG5leHBvcnQgeyBzZWxlY3RJdGVtIH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvc2VsZWN0LWl0ZW0udHMnO1xuZXhwb3J0IHsgc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvc2VsZWN0LW9wdGlvbi50cyc7XG5leHBvcnQgeyBTdWdnZXN0TW9kYWxDb21tYW5kQnVpbGRlciB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL3N1Z2dlc3QtbW9kYWwtY29tbWFuZC1idWlsZGVyLnRzJztcbmV4cG9ydCB7XG4gIE5PVEVCT09LX05BVklHQVRPUl9NRU5VX1NPVVJDRSxcbiAgTk9URUJPT0tfTkFWSUdBVE9SX1BMVUdJTl9JRCxcbiAgcmVzb2x2ZU5vdGVib29rTmF2aWdhdG9yQXBpXG59IGZyb20gJy4vb2JzaWRpYW4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCB7IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXROZXdMaW5rRm9ybWF0LFxuICBpc1NwZWxsY2hlY2tFbmFibGVkLFxuICBzaG91bGRVc2VXaWtpbGlua3Ncbn0gZnJvbSAnLi9vYnNpZGlhbi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQge1xuICBlbmNvZGVVcmwsXG4gIGVzY2FwZUFsaWFzLFxuICBpc1BhcnNlTGlua0Zyb250bWF0dGVyUmVmZXJlbmNlLFxuICBpc1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgcGFyc2VGcm9udG1hdHRlckxpbmtzLFxuICBwYXJzZUxpbmssXG4gIHBhcnNlTGlua3MsXG4gIHRvUGFyc2VMaW5rUmVmZXJlbmNlLFxuICB1bmVzY2FwZUFsaWFzXG59IGZyb20gJy4vb2JzaWRpYW4vcGFyc2UtbGluay50cyc7XG5leHBvcnQge1xuICBQYXRoU2V0dGluZ3MsXG4gIHBhdGhzVmFsaWRhdG9yXG59IGZyb20gJy4vb2JzaWRpYW4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgeyBwcmludFRvUGRmIH0gZnJvbSAnLi9vYnNpZGlhbi9wZGYudHMnO1xuZXhwb3J0IHsgUGx1Z2luQ2xpSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4vb2JzaWRpYW4vcGx1Z2luL29ic2lkaWFuLXBsdWdpbi1yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCB7XG4gIGFkZFBsdWdpbkNzc0NsYXNzZXMsXG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4vb2JzaWRpYW4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbmV4cG9ydCB7IFBsdWdpbkV2ZW50U291cmNlSW1wbCB9IGZyb20gJy4vb2JzaWRpYW4vcGx1Z2luL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU2V0dGluZ3NUYWJCYXNlLFxuICBTQVZFX1RPX0ZJTEVfQ09OVEVYVFxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tc2V0dGluZ3MtdGFiLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbkJhc2UsXG4gIHJlbG9hZFBsdWdpbixcbiAgc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpblxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMnO1xuZXhwb3J0IHsgZWRpdEZpZWxkc0luUG9wb3ZlciB9IGZyb20gJy4vb2JzaWRpYW4vcG9wb3ZlcnMvZmllbGQtcG9wb3Zlci50cyc7XG5leHBvcnQge1xuICBjcmVhdGVBbmNob3JGcm9tRG9jdW1lbnRDZW50ZXIsXG4gIGNyZWF0ZUFuY2hvckZyb21FbGVtZW50LFxuICBjcmVhdGVBbmNob3JGcm9tUG9pbnQsXG4gIGNyZWF0ZUFuY2hvckZyb21TZWxlY3Rpb25cbn0gZnJvbSAnLi9vYnNpZGlhbi9wb3BvdmVycy9wb3BvdmVyLWFuY2hvci50cyc7XG5leHBvcnQgeyBzaG93UG9wb3ZlciB9IGZyb20gJy4vb2JzaWRpYW4vcG9wb3ZlcnMvcG9wb3Zlci50cyc7XG5leHBvcnQge1xuICBhZGRUb1F1ZXVlLFxuICBhZGRUb1F1ZXVlQW5kV2FpdCxcbiAgZmx1c2hRdWV1ZVxufSBmcm9tICcuL29ic2lkaWFuL3F1ZXVlLnRzJztcbmV4cG9ydCB7XG4gIEFwcENvbnRleHQsXG4gIHVzZUFwcFxufSBmcm9tICcuL29ic2lkaWFuL3JlYWN0L2FwcC1jb250ZXh0LnRzJztcbmV4cG9ydCB7XG4gIGlzQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UsXG4gIGlzQ2FudmFzUmVmZXJlbmNlLFxuICBpc0NhbnZhc1RleHROb2RlUmVmZXJlbmNlLFxuICByZWZlcmVuY2VUb0ZpbGVDaGFuZ2UsXG4gIHNvcnRSZWZlcmVuY2VzXG59IGZyb20gJy4vb2JzaWRpYW4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCB7XG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoLFxuICBpc1Jlc291cmNlTG9ja2VkRm9yUGF0aEJ5QW5jZXN0b3IsXG4gIGxvY2tSZXNvdXJjZUZvclBhdGgsXG4gIHJlcXVlc3RSZXNvdXJjZVVubG9ja0ZvclBhdGgsXG4gIFJlc291cmNlTG9ja0NvbXBvbmVudCxcbiAgUmVzb3VyY2VMb2NrZWRFcnJvcixcbiAgdW5sb2NrUmVzb3VyY2VGb3JQYXRoXG59IGZyb20gJy4vb2JzaWRpYW4vcmVzb3VyY2UtbG9jay50cyc7XG5leHBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9vYnNpZGlhbi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0IHsgUGx1Z2luUmliYm9uSWNvblJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvY2hlY2tib3gtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvZGVIaWdobGlnaHRlckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2NvZGUtaGlnaGxpZ2h0ZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9kYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1haWxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9lbWFpbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2ZpbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbW9udGgtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWVtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZUZpbGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1maWxlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZVRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9udW1iZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvcGFzc3dvcmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGVuc3VyZVdyYXBwZWQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9zZXR0aW5nLWNvbXBvbmVudC13cmFwcGVyLnRzJztcbmV4cG9ydCB7IFRlbGVwaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RlbGVwaG9uZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90ZXh0LWJhc2VkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1yYW5nZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy91cmwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3ZhbGlkYXRvci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3dlZWstY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFkb3B0U2V0dGluZ0V4LFxuICBTZXR0aW5nRXhcbn0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCB7IFNldHRpbmdHcm91cEV4IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCB7IFBsdWdpblN0YXR1c0Jhckl0ZW1SZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cCxcbiAgZ2V0T3NVbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIsXG4gIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyxcbiAgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyxcbiAgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSU1xufSBmcm9tICcuL29ic2lkaWFuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlSWZOb3RVc2VkLFxuICBEZWxldGVJZk5vdFVzZWRSZXN1bHRcbn0gZnJvbSAnLi9vYnNpZGlhbi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0IHsgVmF1bHRUcmFuc2FjdGlvbiB9IGZyb20gJy4vb2JzaWRpYW4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0IHtcbiAgY2xlYW51cEVtcHR5Rm9sZGVycyxcbiAgY29weVNhZmUsXG4gIGNyZWF0ZUZvbGRlclNhZmUsXG4gIENyZWF0ZUZvbGRlclNhZmVSZXN1bHQsXG4gIGNyZWF0ZVRlbXBvcmFyeUZpbGUsXG4gIGNyZWF0ZVRlbXBvcmFyeUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXIsXG4gIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5LFxuICBnZXRBYnN0cmFjdEZpbGVQYXRoU2FmZSxcbiAgZ2V0QXZhaWxhYmxlUGF0aCxcbiAgZ2V0RmlsZVBhdGhTYWZlLFxuICBnZXRGb2xkZXJQYXRoU2FmZSxcbiAgZ2V0TWFya2Rvd25GaWxlc1NvcnRlZCxcbiAgZ2V0Tm90ZUZpbGVzU29ydGVkLFxuICBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRm9sZGVyU2FmZSxcbiAgZ2V0U2FmZVJlbmFtZVBhdGgsXG4gIEludm9rZUZpbGVBY3Rpb25TYWZlUmVzdWx0LFxuICBpbnZva2VXaXRoRmlsZVN5c3RlbUxvY2ssXG4gIGlzQ2hpbGQsXG4gIGlzQ2hpbGRPclNlbGYsXG4gIGlzRW1wdHlGb2xkZXIsXG4gIGxpc3RTYWZlLFxuICBwcm9jZXNzLFxuICByZWFkU2FmZSxcbiAgcmVuYW1lU2FmZSxcbiAgc2F2ZU5vdGUsXG4gIHRyYXNoU2FmZVxufSBmcm9tICcuL29ic2lkaWFuL3ZhdWx0LnRzJztcbmV4cG9ydCB7IFBsdWdpblZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGVuc3VyZUxheW91dFJlYWR5LFxuICBnZXRBbGxDb250YWluZXJzLFxuICBnZXRBbGxEb21XaW5kb3dzLFxuICBnZXRNYWluV2luZG93LFxuICBzd2l0Y2hUb01haW5XaW5kb3csXG4gIHN3aXRjaFRvV2luZG93XG59IGZyb20gJy4vb2JzaWRpYW4vd29ya3NwYWNlLnRzJztcbmV4cG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkZWxpbWl0ZXIsXG4gIGRpcm5hbWUsXG4gIGV4dG5hbWUsXG4gIGZvcm1hdCxcbiAgZ2V0RmlsZU5hbWUsXG4gIGdldEZvbGRlck5hbWUsXG4gIGlzQWJzb2x1dGUsXG4gIGpvaW4sXG4gIG1ha2VGaWxlTmFtZSxcbiAgbm9ybWFsaXplSWZSZWxhdGl2ZSxcbiAgbm9ybWFsaXplUGF0aCxcbiAgcGFyc2UsXG4gIHBvc2l4LFxuICByZWxhdGl2ZSxcbiAgcmVzb2x2ZSxcbiAgc2VwYXJhdG9yLFxuICB0b1Bvc2l4QnVmZmVyLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuL3BhdGgudHMnO1xuZXhwb3J0IHtcbiAgQUxXQVlTX01BVENIX1JFR19FWFAsXG4gIGVzY2FwZVJlZ0V4cCxcbiAgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCxcbiAgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwLFxuICBpc1ZhbGlkUmVnRXhwLFxuICBORVZFUl9NQVRDSF9SRUdfRVhQLFxuICBvbmVPZixcbiAgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3lcbn0gZnJvbSAnLi9yZWctZXhwLnRzJztcbmV4cG9ydCB7XG4gIGJ5cGFzc1N0cmljdFByb3h5LFxuICBzdHJpY3RQcm94eVxufSBmcm9tICcuL3N0cmljdC1wcm94eS50cyc7XG5leHBvcnQge1xuICBFTVBUWSxcbiAgZW5zdXJlRW5kc1dpdGgsXG4gIGVuc3VyZUxmRW5kaW5ncyxcbiAgZW5zdXJlU3RhcnRzV2l0aCxcbiAgZXNjYXBlLFxuICBnZXRMZk5vcm1hbGl6ZWRPZmZzZXRUb09yaWdpbmFsT2Zmc2V0TWFwcGVyLFxuICBoYXNTaW5nbGVPY2N1cnJlbmNlLFxuICBpbmRlbnQsXG4gIGluc2VydEF0LFxuICBtYWtlVmFsaWRWYXJpYWJsZU5hbWUsXG4gIG5vcm1hbGl6ZVN0cmluZyxcbiAgcmVwbGFjZSxcbiAgcmVwbGFjZUFsbCxcbiAgcmVwbGFjZUFsbEFzeW5jLFxuICB0cmltRW5kLFxuICB0cmltU3RhcnQsXG4gIHVuZXNjYXBlLFxuICB1bmluZGVudFxufSBmcm9tICcuL3N0cmluZy50cyc7XG5leHBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9kYXRlLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9kdXJhdGlvbi10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvZ3JvdXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgTWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9tYXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9zZXQtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvc2tpcC1wcml2YXRlLXByb3BlcnR5LXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHdvV2F5TWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy90d28td2F5LW1hcC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBUeXBlZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHlwZWQtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHdvV2F5TWFwIH0gZnJvbSAnLi90d28td2F5LW1hcC50cyc7XG5leHBvcnQge1xuICBhc3NlcnQsXG4gIGFzc2VydEdlbmVyaWNPYmplY3QsXG4gIGFzc2VydE5ldmVyLFxuICBhc3NlcnROb25OdWxsYWJsZSxcbiAgZW5zdXJlR2VuZXJpY09iamVjdCxcbiAgZW5zdXJlTm9uTnVsbGFibGVcbn0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5leHBvcnQgeyBUeXBlQXNzZXJ0ZXIgfSBmcm9tICcuL3R5cGUudHMnO1xuZXhwb3J0IHtcbiAgaXNGaWxlVXJsLFxuICBpc1VybCxcbiAgbm9ybWFsaXplRmlsZVVybFxufSBmcm9tICcuL3VybC50cyc7XG5leHBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuL3ZhbHVlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vdmFsdWUtd3JhcHBlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLDhCQU9PO0FBQ1AsbUJBS087QUFDUCwwQkFNTztBQUNQLG1CQWdDTztBQUNQLG9CQUF1QjtBQUN2QixrQkFNTztBQUNQLG1CQU9PO0FBQ1Asd0JBa0JPO0FBQ1Asa0JBR087QUFDUCxtQkFlTztBQUNQLHNCQVNPO0FBQ1Asb0NBR087QUFDUCwwQkFjTztBQUNQLHFCQUdPO0FBQ1AsMEJBa0JPO0FBQ1Asc0NBR087QUFDUCxrQ0FBc0M7QUFDdEMsaUJBQXVCO0FBQ3ZCLCtCQUdPO0FBQ1AsNkJBU087QUFDUCxzQkFJTztBQUNQLGtDQUF5QztBQUN6QyxxQkFJTztBQUNQLG9CQUFvQztBQUNwQyx5Q0FLTztBQUNQLGdDQUFzQztBQUN0QywyQ0FBMkM7QUFDM0MsdUNBQXdDO0FBQ3hDLDZCQUErQjtBQUMvQixvQ0FBcUM7QUFDckMsa0NBQW1DO0FBQ25DLG9DQUFxQztBQUNyQyxvQ0FBcUM7QUFDckMsNkNBQTRDO0FBQzVDLDJDQUEyQztBQUMzQyxnREFBK0M7QUFDL0MsK0JBQXVDO0FBQ3ZDLCtCQWFPO0FBQ1Asb0NBQXFDO0FBQ3JDLHlDQUF5QztBQUN6QywyQ0FBMkM7QUFDM0Msb0NBQW1DO0FBQ25DLG1EQUFrRDtBQUNsRCwwQkFBNEI7QUFDNUIscUNBQXNDO0FBQ3RDLGtDQUFzQztBQUN0Qyx3Q0FBeUM7QUFDekMsNkRBQTJEO0FBQzNELG9DQUdPO0FBQ1AsNENBQTRDO0FBQzVDLHFDQUlPO0FBQ1AsK0RBQTZEO0FBQzdELHNDQUF1QztBQUN2QyxxQ0FHTztBQUNQLHVDQUE0QztBQUM1QywyQ0FBMkM7QUFDM0Msd0NBQXlDO0FBQ3pDLGdDQUFrQztBQUNsQyw2Q0FHTztBQUNQLDJDQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsdUJBQXlCO0FBQ3pCLDBCQUFrQztBQUNsQywyQkFHTztBQUNQLHNCQU9PO0FBQ1AsK0JBQW1DO0FBQ25DLHVDQUE4QjtBQUM5QixtQ0FNTztBQUNQLHdDQUErQztBQUMvQyxzQ0FBNkM7QUFDN0Msb0JBR087QUFDUCxvQkFJTztBQUNQLGtDQUEwQztBQUMxQyx5QkFVTztBQUNQLDBCQUtPO0FBQ1AseUJBaUNPO0FBQ1AseUJBS087QUFDUCxpREFHTztBQUNQLHlCQUdPO0FBQ1AseUNBQStDO0FBQy9DLElBQUFBLHVCQUFnQztBQUNoQyxrQkFJTztBQUNQLGdCQUFtQjtBQUNuQiw4QkFHTztBQUNQLDRCQUE2QjtBQUM3QixrQkF3Qk87QUFDUCxvQkFBa0M7QUFDbEMsa0JBQXFCO0FBQ3JCLHFEQUEwRDtBQUMxRCwyQ0FNTztBQUNQLCtDQUFxRDtBQUNyRCwyQkFBbUM7QUFDbkMsc0JBTU87QUFDUCw0QkFjTztBQUNQLG1CQUFzQjtBQUN0QixxQkFBd0I7QUFDeEIsK0JBQWlDO0FBQ2pDLG1CQUdPO0FBQ1Asb0JBQXVCO0FBQ3ZCLHlCQUEyQjtBQUMzQiwyQkFBNkI7QUFDN0IsMkNBQTJDO0FBQzNDLGdDQUlPO0FBQ1AsaURBQXVEO0FBQ3ZELCtCQUlPO0FBQ1Asd0JBVU87QUFDUCwyQkFHTztBQUNQLGlCQUEyQjtBQUMzQiwwQ0FBMEM7QUFDMUMsd0NBQXdDO0FBQ3hDLDRCQUlPO0FBQ1AsaUNBQXNDO0FBQ3RDLGlDQUdPO0FBQ1Asb0JBSU87QUFDUCwyQkFBb0M7QUFDcEMsNEJBS087QUFDUCxxQkFBNEI7QUFDNUIsbUJBSU87QUFDUCx5QkFHTztBQUNQLHVCQU1PO0FBQ1AsMkJBUU87QUFDUCwwQkFBMEM7QUFDMUMsbUNBQTBDO0FBQzFDLGdDQUFrQztBQUNsQyx3Q0FBeUM7QUFDekMsNEJBQThCO0FBQzlCLGlDQUFrQztBQUNsQyw2QkFBK0I7QUFDL0IsNEJBQThCO0FBQzlCLDZCQUErQjtBQUMvQix5Q0FBMEM7QUFDMUMsc0NBQXVDO0FBQ3ZDLHFDQUFzQztBQUN0QyxxQ0FBc0M7QUFDdEMsOEJBQWdDO0FBQ2hDLGdDQUFrQztBQUNsQyx1Q0FBOEI7QUFDOUIsaUNBQW1DO0FBQ25DLGtDQUEyQztBQUMzQyw0QkFBOEI7QUFDOUIsMENBQTBDO0FBQzFDLHNDQUF1QztBQUN2QywrQ0FBK0M7QUFDL0Msd0NBQXdDO0FBQ3hDLGtDQUFtQztBQUNuQywyQkFBNkI7QUFDN0IsaUNBQXNDO0FBQ3RDLDRCQUE4QjtBQUM5Qix3QkFHTztBQUNQLDhCQUErQjtBQUMvQix1Q0FBNkM7QUFDN0Msd0JBT087QUFDUCwwQkFHTztBQUNQLCtCQUFpQztBQUNqQyxtQkE4Qk87QUFDUCw0QkFBb0M7QUFDcEMsdUJBT087QUFDUCxrQkFvQk87QUFDUCxxQkFTTztBQUNQLDBCQUdPO0FBQ1Asb0JBbUJPO0FBQ1AsOEJBQWdDO0FBQ2hDLGtDQUFvQztBQUNwQywrQkFBaUM7QUFDakMsNkJBQStCO0FBQy9CLDZCQUErQjtBQUMvQiwrQ0FBK0M7QUFDL0MseUJBQTRCO0FBQzVCLHFDQUFxQztBQUNyQywrQkFBaUM7QUFDakMseUJBQTBCO0FBQzFCLHlCQU9PO0FBQ1Asa0JBQTZCO0FBQzdCLGlCQUlPO0FBQ1AsNEJBQTZCO0FBQzdCLDJCQUE2QjsiLAogICJuYW1lcyI6IFsiaW1wb3J0X2h0bWxfZWxlbWVudCJdCn0K
1427
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL19fbWVyZ2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXIsXG4gIGFib3J0U2lnbmFsVGltZW91dCxcbiAgSU5GSU5JVEVfVElNRU9VVCxcbiAgb25BYm9ydCxcbiAgd2FpdEZvckFib3J0XG59IGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJy4vYXJyYXkudHMnO1xuZXhwb3J0IHtcbiAgQXN5bmNFdmVudFJlZkRpc3Bvc2FibGUsXG4gIEFzeW5jRXZlbnRzLFxuICBBc3luY0V2ZW50c0Jhc2UsXG4gIG1peGluQXN5bmNFdmVudHMsXG4gIHN1YnNjcmliZUFzeW5jRGlzcG9zYWJsZUV2ZW50XG59IGZyb20gJy4vYXN5bmMtZXZlbnRzLnRzJztcbmV4cG9ydCB7XG4gIGFkZEVycm9ySGFuZGxlcixcbiAgYXN5bmNGaWx0ZXIsXG4gIGFzeW5jRmlsdGVySW5QbGFjZSxcbiAgYXN5bmNGbGF0TWFwLFxuICBhc3luY01hcCxcbiAgY2hhaW4sXG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgY29udmVydFN5bmNUb0FzeW5jLFxuICBkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc0FzeW5jT3BlcmF0aW9uVHJhY2tpbmdFbmFibGVkLFxuICBtYXJrc0FzVGVybWluYXRlUmV0cnksXG4gIG5ldmVyRW5kcyxcbiAgbmV4dFRpY2tBc3luYyxcbiAgbm9ybWFsaXplUHJvbWlzYWJsZSxcbiAgcHJvbWlzZUFsbEFzeW5jRm5zU2VxdWVudGlhbGx5LFxuICBwcm9taXNlQWxsU2VxdWVudGlhbGx5LFxuICBxdWV1ZU1pY3JvdGFza0FzeW5jLFxuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXQsXG4gIHNldEltbWVkaWF0ZUFzeW5jLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5LFxuICB3YWl0Rm9yQWxsQXN5bmNPcGVyYXRpb25zXG59IGZyb20gJy4vYXN5bmMudHMnO1xuZXhwb3J0IHsgQmVlcGVyIH0gZnJvbSAnLi9iZWVwZXIudHMnO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJy4vYmxvYi50cyc7XG5leHBvcnQge1xuICBlbmFibGVMaWJyYXJ5RGVidWdnZXJzLFxuICBnZXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGdldERlYnVnZ2VyLFxuICBnZXRMaWJEZWJ1Z2dlcixcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZSxcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQge1xuICBBc3luY0NhbGxiYWNrRGlzcG9zYWJsZSxcbiAgQXN5bmNEaXNwb3NhYmxlQmFzZSxcbiAgQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBDb21iaW5lQXN5bmNEaXNwb3NhYmxlLFxuICBDb21iaW5lRGlzcG9zYWJsZSxcbiAgRGlzcG9zYWJsZUJhc2UsXG4gIGRpc3Bvc2UsXG4gIGRpc3Bvc2VBc3luYyxcbiAgRGlzcG9zZUVycm9yQmVoYXZpb3IsXG4gIERpc3Bvc2VPcmRlcixcbiAgaXNBc3luY0Rpc3Bvc2FibGUsXG4gIGlzQXN5bmNEaXNwb3NhYmxlRXgsXG4gIGlzRGlzcG9zYWJsZSxcbiAgaXNEaXNwb3NhYmxlRXgsXG4gIE11bHRpcGxlRGlzcG9zZUJlaGF2aW9yLFxuICB0b0FzeW5jRGlzcG9zYWJsZUV4LFxuICB0b0Rpc3Bvc2FibGVFeFxufSBmcm9tICcuL2Rpc3Bvc2FibGUudHMnO1xuZXhwb3J0IHtcbiAgZ2V0RW51bUtleSxcbiAgZ2V0RW51bVZhbHVlXG59IGZyb20gJy4vZW51bS50cyc7XG5leHBvcnQge1xuICBBU1lOQ19XUkFQUEVSX0VSUk9SX01FU1NBR0UsXG4gIEN1c3RvbVN0YWNrVHJhY2VFcnJvcixcbiAgZW1pdEFzeW5jRXJyb3JFdmVudCxcbiAgZXJyb3JUb1N0cmluZyxcbiAgRXJyb3JXcmFwcGVyLFxuICBnZXRTdGFja1RyYWNlLFxuICBpc0FzeW5jRXJyb3JJZ25vcmVDb250ZXh0QWN0aXZlLFxuICBwcmludEVycm9yLFxuICByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIsXG4gIFNpbGVudEVycm9yLFxuICBzdGFydEFzeW5jRXJyb3JJZ25vcmVDb250ZXh0LFxuICBzdGFydENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgc3RvcENvbGxlY3RpbmdVbmhhbmRsZWRBc3luY0Vycm9ycyxcbiAgdGhyb3dFeHByZXNzaW9uXG59IGZyb20gJy4vZXJyb3IudHMnO1xuZXhwb3J0IHtcbiAgY2xvbmVGdW5jdGlvbixcbiAgY3JlYXRlRnVuY3Rpb24sXG4gIGdldEZ1bmN0aW9uRXhwcmVzc2lvblN0cmluZyxcbiAgbm9vcCxcbiAgbm9vcEFzeW5jLFxuICBub29wQXN5bmNTaW5nbGV0b25Qcm9taXNlLFxuICBvbWl0QXN5bmNSZXR1cm5UeXBlLFxuICBvbWl0UmV0dXJuVHlwZVxufSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcbmV4cG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi9nZW5lcmF0ZWQtZHVyaW5nLWJ1aWxkLnRzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZURpdkFzeW5jLFxuICBjcmVhdGVFbEFzeW5jLFxuICBjcmVhdGVGcmFnbWVudEFzeW5jLFxuICBjcmVhdGVTcGFuQXN5bmMsXG4gIGNyZWF0ZVN2Z0FzeW5jLFxuICBlbnN1cmVMb2FkZWQsXG4gIGdldERvY3VtZW50V2luZG93LFxuICBnZXRaSW5kZXgsXG4gIGlzRWxlbWVudFZpc2libGVJbk9mZnNldFBhcmVudCxcbiAgaXNMb2FkZWQsXG4gIG9uQW5jZXN0b3JTY3JvbGxPclJlc2l6ZSxcbiAgdG9QeCxcbiAgd2FpdFVudGlsQ29ubmVjdGVkXG59IGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCB7XG4gIGV4dHJhY3RKcGVnTWV0YWRhdGFTZWdtZW50cyxcbiAgaW5qZWN0SnBlZ01ldGFkYXRhU2VnbWVudHNcbn0gZnJvbSAnLi9qcGVnLW1ldGFkYXRhLnRzJztcbmV4cG9ydCB7XG4gIExpYnJhcnksXG4gIExJQlJBUllfTkFNRVxufSBmcm9tICcuL2xpYnJhcnkudHMnO1xuZXhwb3J0IHtcbiAgYXNzaWduV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBjYXN0VG8sXG4gIGNsb25lV2l0aE5vbkVudW1lcmFibGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0aWVzLFxuICBkZWxldGVQcm9wZXJ0eSxcbiAgZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wLFxuICBGdW5jdGlvbkhhbmRsaW5nTW9kZSxcbiAgZ2V0QWxsRW50cmllcyxcbiAgZ2V0QWxsS2V5cyxcbiAgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgZ2V0UHJvdG90eXBlT2YsXG4gIGlzRGVlcEVxdWFsLFxuICBuYW1lb2YsXG4gIG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyxcbiAgcmVtb3ZlVW5kZWZpbmVkUHJvcGVydGllcyxcbiAgc2V0TmVzdGVkUHJvcGVydHlWYWx1ZSxcbiAgdG9Kc29uXG59IGZyb20gJy4vb2JqZWN0LXV0aWxzLnRzJztcbmV4cG9ydCB7XG4gIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSxcbiAgcmVzZXRPYnNpZGlhbkRldlV0aWxzU3RhdGVcbn0gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUudHMnO1xuZXhwb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9hY3RpdmUtZmlsZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBnZXRBcHAgfSBmcm9tICcuL29ic2lkaWFuL2FwcC50cyc7XG5leHBvcnQge1xuICByZXRyeVdpdGhUaW1lb3V0Tm90aWNlLFxuICBydW5XaXRoVGltZW91dE5vdGljZVxufSBmcm9tICcuL29ic2lkaWFuL2FzeW5jLXdpdGgtbm90aWNlLnRzJztcbmV4cG9ydCB7XG4gIEF0dGFjaG1lbnRQYXRoQ29udGV4dCxcbiAgRFVNTVlfUEFUSCxcbiAgZ2V0QXR0YWNobWVudEZpbGVQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aCxcbiAgZ2V0QXR0YWNobWVudEZvbGRlclBhdGhTeW5jT3JOdWxsLFxuICBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMsXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHtcbiAgcmVuZGVyQmFja2xpbmtzVGFibGUsXG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3MsXG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9iYWNrbGluay50cyc7XG5leHBvcnQgeyBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIENhbGxvdXRNb2RlLFxuICByZW5kZXJDYWxsb3V0LFxuICB3cmFwRm9yQ2FsbG91dFxufSBmcm9tICcuL29ic2lkaWFuL2NhbGxvdXQudHMnO1xuZXhwb3J0IHsgZ2V0Q2FudmFzUmVmZXJlbmNlcyB9IGZyb20gJy4vb2JzaWRpYW4vY2FudmFzLnRzJztcbmV4cG9ydCB7XG4gIENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgZ2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBzZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHVuc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4XG59IGZyb20gJy4vb2JzaWRpYW4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vb2JzaWRpYW4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCB7IEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEVkaXRvckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2VkaXRvci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZvbGRlckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZvbGRlci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgR2xvYmFsQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZ2xvYmFsLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuRGVtb1ZhdWx0Q29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1kZW1vLXZhdWx0LWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuU2V0dGluZ3NDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvdW5sb2NrLWFjdGl2ZS1ub3RlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4sXG4gIENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdCxcbiAgZGlzYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBnZXRDb21tdW5pdHlQbHVnaW5SZXBvLFxuICBnZXRMYXRlc3RSZWxlYXNlVmVyc2lvbixcbiAgaW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgaW5zdGFsbENvbmZpZ3VyZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgc2VhcmNoQ29tbXVuaXR5UGx1Z2lucyxcbiAgdG9nZ2xlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICB0b2dnbGVJbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICB1bmluc3RhbGxDb21tdW5pdHlQbHVnaW5cbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJBc3luY0V2ZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBhc0Rpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1iZWRFeHRlbnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50LFxuICBMYXlvdXRSZWFkeUNvbXBvbmVudFxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFyb3VuZCxcbiAgaGFzUGF0Y2hUb2tlbixcbiAgTW9ua2V5QXJvdW5kQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlTW9kZVxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUG9pbnRlclBvc2l0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFJlZ2lzdHJ5Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBFbXB0eUZvbGRlckJlaGF2aW9yLFxuICBSZW5hbWVEZWxldGVIYW5kbGVyQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9yZW5hbWUtZGVsZXRlLWhhbmRsZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFN5bnRheEhpZ2hsaWdodGluZ0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBnZXREb21FdmVudHNIYW5kbGVyc0NvbnN0cnVjdG9yIH0gZnJvbSAnLi9vYnNpZGlhbi9jb25zdHJ1Y3RvcnMvZ2V0LWRvbS1ldmVudHMtaGFuZGxlcnMtY29uc3RydWN0b3IudHMnO1xuZXhwb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuL29ic2lkaWFuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgeyBQbHVnaW5EYXRhSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vZGF0YS1oYW5kbGVyLnRzJztcbmV4cG9ydCB7XG4gIGZpeFRpdGxlLFxuICBtYWtlTGlua1dpdGhQYXRoXG59IGZyb20gJy4vb2JzaWRpYW4vZGF0YXZpZXctbGluay50cyc7XG5leHBvcnQge1xuICBnZXRSZW5kZXJlZENvbnRhaW5lcixcbiAgaW5zZXJ0Q29kZUJsb2NrLFxuICByZWxvYWRDdXJyZW50RmlsZUNhY2hlLFxuICByZW5kZXJJZnJhbWUsXG4gIHJlbmRlclBhZ2luYXRlZExpc3QsXG4gIHJlbmRlclBhZ2luYXRlZFRhYmxlXG59IGZyb20gJy4vb2JzaWRpYW4vZGF0YXZpZXcudHMnO1xuZXhwb3J0IHsgYm9vdHN0cmFwRGVtb1ZhdWx0IH0gZnJvbSAnLi9vYnNpZGlhbi9kZW1vLXZhdWx0LWhlbHBlci50cyc7XG5leHBvcnQgeyBvcGVuRGVtb1ZhdWx0IH0gZnJvbSAnLi9vYnNpZGlhbi9kZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyLnRzJztcbmV4cG9ydCB7XG4gIGhvdmVyRWxlbWVudCxcbiAgbW92ZU1vdXNlLFxuICBwcmVzc0tleSxcbiAgdHlwZUludG9FZGl0b3IsXG4gIHVuaG92ZXJFbGVtZW50XG59IGZyb20gJy4vb2JzaWRpYW4vZGVza3RvcC10cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCB7IFBsdWdpbkVkaXRvckV4dGVuc2lvblJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yU3VnZ2VzdFJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIHN5bmNPcGVuRWRpdG9yQnVmZmVyc0ZvclBhdGgsXG4gIHRvZ2dsZUVkaXRvclJlYWRPbmx5XG59IGZyb20gJy4vb2JzaWRpYW4vZWRpdG9yLnRzJztcbmV4cG9ydCB7XG4gIEV2ZW50UmVmRGlzcG9zYWJsZSxcbiAgc3Vic2NyaWJlRGlzcG9zYWJsZUV2ZW50LFxuICBzdWJzY3JpYmVFdmVudFxufSBmcm9tICcuL29ic2lkaWFuL2V2ZW50cy50cyc7XG5leHBvcnQgeyBQbHVnaW5FeHRlbnNpb25zUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBhcHBseUNvbnRlbnRDaGFuZ2VzLFxuICBhcHBseUZpbGVDaGFuZ2VzLFxuICBpc0NhbnZhc0NoYW5nZSxcbiAgaXNDYW52YXNGaWxlTm9kZUNoYW5nZSxcbiAgaXNDYW52YXNUZXh0Tm9kZUNoYW5nZSxcbiAgaXNDb250ZW50Q2hhbmdlLFxuICBpc0Zyb250bWF0dGVyQ2hhbmdlLFxuICBpc0Zyb250bWF0dGVyQ2hhbmdlV2l0aE9mZnNldHMsXG4gIHRvRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0c1xufSBmcm9tICcuL29ic2lkaWFuL2ZpbGUtY2hhbmdlLnRzJztcbmV4cG9ydCB7XG4gIGFkZEFsaWFzLFxuICBkZWxldGVBbGlhcyxcbiAgcHJvY2Vzc0Zyb250bWF0dGVyLFxuICB3YWl0Rm9yUGVuZGluZ0xpbmtVcGRhdGVzXG59IGZyb20gJy4vb2JzaWRpYW4vZmlsZS1tYW5hZ2VyLnRzJztcbmV4cG9ydCB7XG4gIGFzQXJyYXlPZkZpbGVzLFxuICBhc0FycmF5T2ZGb2xkZXJzLFxuICBhc0ZpbGUsXG4gIGFzRmlsZU9yTnVsbCxcbiAgYXNGb2xkZXIsXG4gIGFzRm9sZGVyT3JOdWxsLFxuICBCQVNFX0ZJTEVfRVhURU5TSU9OLFxuICBDQU5WQVNfRklMRV9FWFRFTlNJT04sXG4gIGNoZWNrRXh0ZW5zaW9uLFxuICBkb2VzRXhpc3QsXG4gIEZpbGVTeXN0ZW1UeXBlLFxuICBnZXRBYnN0cmFjdEZpbGUsXG4gIGdldEFic3RyYWN0RmlsZU9yTnVsbCxcbiAgZ2V0RmlsZSxcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0RmlsZVN5c3RlbVR5cGUsXG4gIGdldEZvbGRlcixcbiAgZ2V0Rm9sZGVyT3JOdWxsLFxuICBnZXRNYXJrZG93bkZpbGVzLFxuICBnZXRPckNyZWF0ZUZpbGUsXG4gIGdldE9yQ3JlYXRlRm9sZGVyLFxuICBnZXRQYXRoLFxuICBpc0Fic3RyYWN0RmlsZSxcbiAgaXNCYXNlRmlsZSxcbiAgaXNDYW52YXNGaWxlLFxuICBpc0ZpbGUsXG4gIGlzRm9sZGVyLFxuICBpc01hcmtkb3duRmlsZSxcbiAgaXNOb3RlLFxuICBpc1RyZWF0ZWRBc0F0dGFjaG1lbnQsXG4gIE1BUktET1dOX0ZJTEVfRVhURU5TSU9OLFxuICB0cmltTWFya2Rvd25FeHRlbnNpb25cbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQge1xuICBGT0xERVJfTk9URVNfUExVR0lOX0lELFxuICBGb2xkZXJOb3RlTG9jYXRpb24sXG4gIHJlc29sdmVGb2xkZXJOb3RlLFxuICByZXNvbHZlRm9sZGVyTm90ZUNvbmZpZ1xufSBmcm9tICcuL29ic2lkaWFuL2ZvbGRlci1ub3RlLnRzJztcbmV4cG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0IHtcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Ib3ZlckxpbmtTb3VyY2VSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBhcHBlbmRDb2RlQmxvY2sgfSBmcm9tICcuL29ic2lkaWFuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX05TLFxuICBpbml0STE4TixcbiAgdFxufSBmcm9tICcuL29ic2lkaWFuL2kxOG4vaTE4bi50cyc7XG5leHBvcnQgeyBlbiB9IGZyb20gJy4vb2JzaWRpYW4vaTE4bi9sb2NhbGVzL2VuLnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9vYnNpZGlhbi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5leHBvcnQgeyBpc0luT2JzaWRpYW4gfSBmcm9tICcuL29ic2lkaWFuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCB7XG4gIGNvbnZlcnRMaW5rLFxuICBlZGl0QmFja2xpbmtzLFxuICBlZGl0TGlua3MsXG4gIGVkaXRMaW5rc0luQ29udGVudCxcbiAgZXh0cmFjdExpbmtGaWxlLFxuICBmaXhGcm9udG1hdHRlck1hcmtkb3duTGlua3MsXG4gIGdlbmVyYXRlTWFya2Rvd25MaW5rLFxuICBnZW5lcmF0ZVJhd01hcmtkb3duTGluayxcbiAgZ2V0R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zRm5zLFxuICBoYXNBbmdsZUJyYWNrZXRzLFxuICBoYXNFbWJlZFN5bnRheCxcbiAgaGFzTGVhZGluZ0RvdCxcbiAgaGFzTGVhZGluZ1NsYXNoLFxuICBoYXNXaWtpbGlua1N5bnRheCxcbiAgTGlua1BhdGhTdHlsZSxcbiAgTGlua1N0eWxlLFxuICBzaG91bGRSZXNldEFsaWFzLFxuICBzcGxpdFN1YnBhdGgsXG4gIHVwZGF0ZUZpbGVVcmxMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5GaWxlLFxuICB1cGRhdGVMaW5rLFxuICB1cGRhdGVMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlTGlua3NJbkZpbGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9saW5rLnRzJztcbmV4cG9ydCB7IGludm9rZUFzeW5jQW5kTG9nIH0gZnJvbSAnLi9vYnNpZGlhbi9sb2dnZXIudHMnO1xuZXhwb3J0IHsgbG9vcCB9IGZyb20gJy4vb2JzaWRpYW4vbG9vcC50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGdldENvZGVCbG9ja01hcmtkb3duSW5mbyxcbiAgaW5zZXJ0QWZ0ZXJDb2RlQmxvY2ssXG4gIGluc2VydEJlZm9yZUNvZGVCbG9jayxcbiAgcmVtb3ZlQ29kZUJsb2NrLFxuICByZXBsYWNlQ29kZUJsb2NrXG59IGZyb20gJy4vb2JzaWRpYW4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0IHsgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgZ2V0RnVsbENvbnRlbnRIdG1sIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCB7XG4gIGZ1bGxSZW5kZXIsXG4gIG1hcmtkb3duVG9IdG1sLFxuICByZWdpc3RlckxpbmtIYW5kbGVycyxcbiAgcmVuZGVyRXh0ZXJuYWxMaW5rLFxuICByZW5kZXJJbnRlcm5hbExpbmtcbn0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi50cyc7XG5leHBvcnQge1xuICBDYWNoZWRNZXRhZGF0YUV4RmVhdHVyZSxcbiAgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5LFxuICBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICBnZXRGcm9udG1hdHRlclNhZmUsXG4gIGdldExpbmtzLFxuICBpc0NhY2hlZE1ldGFkYXRhRXgsXG4gIHBhcnNlTWV0YWRhdGEsXG4gIHJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICByZWdpc3RlckZpbGVzLFxuICB1bnJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICB1bnJlZ2lzdGVyRmlsZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgeyBhbGVydCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL2FsZXJ0LnRzJztcbmV4cG9ydCB7IGNvbmZpcm0gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9jb25maXJtLnRzJztcbmV4cG9ydCB7IE1pbmltaXphYmxlTW9kYWwgfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQge1xuICBNb2RhbEJhc2UsXG4gIHNob3dNb2RhbFxufSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9tb2RhbC50cyc7XG5leHBvcnQgeyBwcm9tcHQgfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9wcm9tcHQudHMnO1xuZXhwb3J0IHsgc2VsZWN0SXRlbSB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL3NlbGVjdC1pdGVtLnRzJztcbmV4cG9ydCB7IHNlbGVjdE9wdGlvbiB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL3NlbGVjdC1vcHRpb24udHMnO1xuZXhwb3J0IHsgU3VnZ2VzdE1vZGFsQ29tbWFuZEJ1aWxkZXIgfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9zdWdnZXN0LW1vZGFsLWNvbW1hbmQtYnVpbGRlci50cyc7XG5leHBvcnQge1xuICBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UsXG4gIE5PVEVCT09LX05BVklHQVRPUl9QTFVHSU5fSUQsXG4gIHJlc29sdmVOb3RlYm9va05hdmlnYXRvckFwaVxufSBmcm9tICcuL29ic2lkaWFuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgeyBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0TmV3TGlua0Zvcm1hdCxcbiAgaXNTcGVsbGNoZWNrRW5hYmxlZCxcbiAgc2hvdWxkVXNlV2lraWxpbmtzXG59IGZyb20gJy4vb2JzaWRpYW4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0IHtcbiAgZW5jb2RlVXJsLFxuICBlc2NhcGVBbGlhcyxcbiAgaXNQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZSxcbiAgaXNQYXJzZUxpbmtSZWZlcmVuY2UsXG4gIHBhcnNlRnJvbnRtYXR0ZXJMaW5rcyxcbiAgcGFyc2VMaW5rLFxuICBwYXJzZUxpbmtzLFxuICB0b1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgdW5lc2NhcGVBbGlhc1xufSBmcm9tICcuL29ic2lkaWFuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0IHtcbiAgUGF0aFNldHRpbmdzLFxuICBwYXRoc1ZhbGlkYXRvclxufSBmcm9tICcuL29ic2lkaWFuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0IHsgcHJpbnRUb1BkZiB9IGZyb20gJy4vb2JzaWRpYW4vcGRmLnRzJztcbmV4cG9ydCB7IFBsdWdpbkNsaUhhbmRsZXJSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5leHBvcnQge1xuICBhZGRQbHVnaW5Dc3NDbGFzc2VzLFxuICBpbml0RGVidWdDb250cm9sbGVyLFxuICBpbml0UGx1Z2luQ29udGV4dFxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpblNldHRpbmdzVGFiQmFzZSxcbiAgU0FWRV9UT19GSUxFX0NPTlRFWFRcbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5leHBvcnQge1xuICBQbHVnaW5CYXNlLFxuICByZWxvYWRQbHVnaW4sXG4gIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW5cbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLnRzJztcbmV4cG9ydCB7IGVkaXRGaWVsZHNJblBvcG92ZXIgfSBmcm9tICcuL29ic2lkaWFuL3BvcG92ZXJzL2ZpZWxkLXBvcG92ZXIudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlQW5jaG9yRnJvbURvY3VtZW50Q2VudGVyLFxuICBjcmVhdGVBbmNob3JGcm9tRWxlbWVudCxcbiAgY3JlYXRlQW5jaG9yRnJvbVBvaW50LFxuICBjcmVhdGVBbmNob3JGcm9tU2VsZWN0aW9uXG59IGZyb20gJy4vb2JzaWRpYW4vcG9wb3ZlcnMvcG9wb3Zlci1hbmNob3IudHMnO1xuZXhwb3J0IHsgc2hvd1BvcG92ZXIgfSBmcm9tICcuL29ic2lkaWFuL3BvcG92ZXJzL3BvcG92ZXIudHMnO1xuZXhwb3J0IHtcbiAgYWRkVG9RdWV1ZSxcbiAgYWRkVG9RdWV1ZUFuZFdhaXQsXG4gIGZsdXNoUXVldWVcbn0gZnJvbSAnLi9vYnNpZGlhbi9xdWV1ZS50cyc7XG5leHBvcnQge1xuICBBcHBDb250ZXh0LFxuICB1c2VBcHBcbn0gZnJvbSAnLi9vYnNpZGlhbi9yZWFjdC9hcHAtY29udGV4dC50cyc7XG5leHBvcnQge1xuICBpc0NhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlLFxuICBpc0NhbnZhc1JlZmVyZW5jZSxcbiAgaXNDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSxcbiAgcmVmZXJlbmNlVG9GaWxlQ2hhbmdlLFxuICBzb3J0UmVmZXJlbmNlc1xufSBmcm9tICcuL29ic2lkaWFuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQge1xuICBpc1Jlc291cmNlTG9ja2VkRm9yUGF0aCxcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGhCeUFuY2VzdG9yLFxuICBsb2NrUmVzb3VyY2VGb3JQYXRoLFxuICByZXF1ZXN0UmVzb3VyY2VVbmxvY2tGb3JQYXRoLFxuICBSZXNvdXJjZUxvY2tDb21wb25lbnQsXG4gIFJlc291cmNlTG9ja2VkRXJyb3IsXG4gIHVubG9ja1Jlc291cmNlRm9yUGF0aFxufSBmcm9tICcuL29ic2lkaWFuL3Jlc291cmNlLWxvY2sudHMnO1xuZXhwb3J0IHsgcmVsYXRpdmVQYXRoVG9SZXNvdXJjZVVybCB9IGZyb20gJy4vb2JzaWRpYW4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCB7IFBsdWdpblJpYmJvbkljb25SZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3JpYmJvbi1pY29uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2NoZWNrYm94LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBDb2RlSGlnaGxpZ2h0ZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvZGF0ZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9kYXRlLXRpbWUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvZW1haWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEZpbGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9maWxlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNb250aENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL21vbnRoLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRW1haWxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1lbWFpbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtdGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbnVtYmVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3Bhc3N3b3JkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBlbnN1cmVXcmFwcGVkIH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvc2V0dGluZy1jb21wb25lbnQtd3JhcHBlci50cyc7XG5leHBvcnQgeyBUZWxlcGhvbmVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90ZWxlcGhvbmUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldFRleHRCYXNlZENvbXBvbmVudFZhbHVlIH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdGV4dC1iYXNlZC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVGltZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RpbWUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFRyaVN0YXRlQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90cmktc3RhdGUtY2hlY2tib3gtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRNdWx0aXBsZURyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdHlwZWQtbXVsdGlwbGUtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkUmFuZ2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdHlwZWQtcmFuZ2UtdGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdHlwZWQtdGV4dC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVXJsQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdXJsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBnZXRWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy92YWxpZGF0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFdlZWtDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy93ZWVrLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBhZG9wdFNldHRpbmdFeCxcbiAgU2V0dGluZ0V4XG59IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgeyBTZXR0aW5nR3JvdXBFeCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgeyBQbHVnaW5TdGF0dXNCYXJJdGVtUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyLFxuICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlMsXG4gIFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlMsXG4gIFdJTkRPV1NfVU5TQUZFX1BBVEhfQ0hBUlNcbn0gZnJvbSAnLi9vYnNpZGlhbi92YWxpZGF0aW9uLnRzJztcbmV4cG9ydCB7XG4gIGRlbGV0ZUlmTm90VXNlZCxcbiAgRGVsZXRlSWZOb3RVc2VkUmVzdWx0XG59IGZyb20gJy4vb2JzaWRpYW4vdmF1bHQtZGVsZXRlLnRzJztcbmV4cG9ydCB7IFZhdWx0VHJhbnNhY3Rpb24gfSBmcm9tICcuL29ic2lkaWFuL3ZhdWx0LXRyYW5zYWN0aW9uLnRzJztcbmV4cG9ydCB7XG4gIGNsZWFudXBFbXB0eUZvbGRlcnMsXG4gIGNvcHlTYWZlLFxuICBjcmVhdGVGb2xkZXJTYWZlLFxuICBDcmVhdGVGb2xkZXJTYWZlUmVzdWx0LFxuICBjcmVhdGVUZW1wb3JhcnlGaWxlLFxuICBjcmVhdGVUZW1wb3JhcnlGb2xkZXIsXG4gIGRlbGV0ZUVtcHR5Rm9sZGVyLFxuICBkZWxldGVFbXB0eUZvbGRlckhpZXJhcmNoeSxcbiAgZ2V0QWJzdHJhY3RGaWxlUGF0aFNhZmUsXG4gIGdldEF2YWlsYWJsZVBhdGgsXG4gIGdldEZpbGVQYXRoU2FmZSxcbiAgZ2V0Rm9sZGVyUGF0aFNhZmUsXG4gIGdldE1hcmtkb3duRmlsZXNTb3J0ZWQsXG4gIGdldE5vdGVGaWxlc1NvcnRlZCxcbiAgZ2V0T3JDcmVhdGVBYnN0cmFjdEZpbGVTYWZlLFxuICBnZXRPckNyZWF0ZUZpbGVTYWZlLFxuICBnZXRPckNyZWF0ZUZvbGRlclNhZmUsXG4gIGdldFNhZmVSZW5hbWVQYXRoLFxuICBJbnZva2VGaWxlQWN0aW9uU2FmZVJlc3VsdCxcbiAgaW52b2tlV2l0aEZpbGVTeXN0ZW1Mb2NrLFxuICBpc0NoaWxkLFxuICBpc0NoaWxkT3JTZWxmLFxuICBpc0VtcHR5Rm9sZGVyLFxuICBsaXN0U2FmZSxcbiAgcHJvY2VzcyxcbiAgcmVhZFNhZmUsXG4gIHJlbmFtZVNhZmUsXG4gIHNhdmVOb3RlLFxuICB0cmFzaFNhZmVcbn0gZnJvbSAnLi9vYnNpZGlhbi92YXVsdC50cyc7XG5leHBvcnQgeyBQbHVnaW5WaWV3UmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBlbnN1cmVMYXlvdXRSZWFkeSxcbiAgZ2V0QWxsQ29udGFpbmVycyxcbiAgZ2V0QWxsRG9tV2luZG93cyxcbiAgZ2V0TWFpbldpbmRvdyxcbiAgc3dpdGNoVG9NYWluV2luZG93LFxuICBzd2l0Y2hUb1dpbmRvd1xufSBmcm9tICcuL29ic2lkaWFuL3dvcmtzcGFjZS50cyc7XG5leHBvcnQge1xuICBiYXNlbmFtZSxcbiAgZGVsaW1pdGVyLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBmb3JtYXQsXG4gIGdldEZpbGVOYW1lLFxuICBnZXRGb2xkZXJOYW1lLFxuICBpc0Fic29sdXRlLFxuICBqb2luLFxuICBtYWtlRmlsZU5hbWUsXG4gIG5vcm1hbGl6ZUlmUmVsYXRpdmUsXG4gIG5vcm1hbGl6ZVBhdGgsXG4gIHBhcnNlLFxuICBwb3NpeCxcbiAgcmVsYXRpdmUsXG4gIHJlc29sdmUsXG4gIHNlcGFyYXRvcixcbiAgdG9Qb3NpeEJ1ZmZlcixcbiAgdG9Qb3NpeFBhdGhcbn0gZnJvbSAnLi9wYXRoLnRzJztcbmV4cG9ydCB7XG4gIEFMV0FZU19NQVRDSF9SRUdfRVhQLFxuICBlc2NhcGVSZWdFeHAsXG4gIGdldE1hbmRhdG9yeU5hbWVkR3JvdXAsXG4gIGdldE9wdGlvbmFsTmFtZWRHcm91cCxcbiAgaXNWYWxpZFJlZ0V4cCxcbiAgTkVWRVJfTUFUQ0hfUkVHX0VYUCxcbiAgb25lT2YsXG4gIFJlZ0V4cE1lcmdlRmxhZ3NDb25mbGljdFN0cmF0ZWd5XG59IGZyb20gJy4vcmVnLWV4cC50cyc7XG5leHBvcnQge1xuICBieXBhc3NTdHJpY3RQcm94eSxcbiAgc3RyaWN0UHJveHlcbn0gZnJvbSAnLi9zdHJpY3QtcHJveHkudHMnO1xuZXhwb3J0IHtcbiAgRU1QVFksXG4gIGVuc3VyZUVuZHNXaXRoLFxuICBlbnN1cmVMZkVuZGluZ3MsXG4gIGVuc3VyZVN0YXJ0c1dpdGgsXG4gIGVzY2FwZSxcbiAgZ2V0TGZOb3JtYWxpemVkT2Zmc2V0VG9PcmlnaW5hbE9mZnNldE1hcHBlcixcbiAgaGFzU2luZ2xlT2NjdXJyZW5jZSxcbiAgaW5kZW50LFxuICBpbnNlcnRBdCxcbiAgbWFrZVZhbGlkVmFyaWFibGVOYW1lLFxuICBub3JtYWxpemVTdHJpbmcsXG4gIHJlcGxhY2UsXG4gIHJlcGxhY2VBbGwsXG4gIHJlcGxhY2VBbGxBc3luYyxcbiAgdHJpbUVuZCxcbiAgdHJpbVN0YXJ0LFxuICB1bmVzY2FwZSxcbiAgdW5pbmRlbnRcbn0gZnJvbSAnLi9zdHJpbmcudHMnO1xuZXhwb3J0IHsgRGF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvZGF0ZS10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBEdXJhdGlvblRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvZHVyYXRpb24tdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgR3JvdXBUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2dyb3VwLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IE1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvbWFwLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFNldFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvc2V0LXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFNraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3NraXAtcHJpdmF0ZS1wcm9wZXJ0eS10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3RyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFR3b1dheU1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHdvLXdheS1tYXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHlwZWRUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3R5cGVkLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFR3b1dheU1hcCB9IGZyb20gJy4vdHdvLXdheS1tYXAudHMnO1xuZXhwb3J0IHtcbiAgYXNzZXJ0LFxuICBhc3NlcnRHZW5lcmljT2JqZWN0LFxuICBhc3NlcnROZXZlcixcbiAgYXNzZXJ0Tm9uTnVsbGFibGUsXG4gIGVuc3VyZUdlbmVyaWNPYmplY3QsXG4gIGVuc3VyZU5vbk51bGxhYmxlXG59IGZyb20gJy4vdHlwZS1ndWFyZHMudHMnO1xuZXhwb3J0IHsgVHlwZUFzc2VydGVyIH0gZnJvbSAnLi90eXBlLnRzJztcbmV4cG9ydCB7XG4gIGlzRmlsZVVybCxcbiAgaXNVcmwsXG4gIG5vcm1hbGl6ZUZpbGVVcmxcbn0gZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi92YWx1ZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICcuL3ZhbHVlLXdyYXBwZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLDhCQU9PO0FBQ1AsbUJBS087QUFDUCwwQkFNTztBQUNQLG1CQWdDTztBQUNQLG9CQUF1QjtBQUN2QixrQkFNTztBQUNQLG1CQU9PO0FBQ1Asd0JBa0JPO0FBQ1Asa0JBR087QUFDUCxtQkFlTztBQUNQLHNCQVNPO0FBQ1Asb0NBR087QUFDUCwwQkFjTztBQUNQLDJCQUdPO0FBQ1AscUJBR087QUFDUCwwQkFrQk87QUFDUCxzQ0FHTztBQUNQLGtDQUFzQztBQUN0QyxpQkFBdUI7QUFDdkIsK0JBR087QUFDUCw2QkFTTztBQUNQLG9DQUdPO0FBQ1Asc0JBSU87QUFDUCxrQ0FBeUM7QUFDekMscUJBSU87QUFDUCxvQkFBb0M7QUFDcEMseUNBS087QUFDUCxnQ0FBc0M7QUFDdEMsMkNBQTJDO0FBQzNDLHVDQUF3QztBQUN4Qyw2QkFBK0I7QUFDL0Isb0NBQXFDO0FBQ3JDLGtDQUFtQztBQUNuQyxvQ0FBcUM7QUFDckMsb0NBQXFDO0FBQ3JDLDZDQUE0QztBQUM1QywyQ0FBMkM7QUFDM0MsZ0RBQStDO0FBQy9DLCtCQUF1QztBQUN2QywrQkFhTztBQUNQLG9DQUFxQztBQUNyQyx5Q0FBeUM7QUFDekMsMkNBQTJDO0FBQzNDLG9DQUFtQztBQUNuQyxtREFBa0Q7QUFDbEQsMEJBQTRCO0FBQzVCLHFDQUFzQztBQUN0QyxrQ0FBc0M7QUFDdEMsd0NBQXlDO0FBQ3pDLDZEQUEyRDtBQUMzRCxvQ0FHTztBQUNQLDRDQUE0QztBQUM1QyxxQ0FJTztBQUNQLCtEQUE2RDtBQUM3RCxzQ0FBdUM7QUFDdkMscUNBR087QUFDUCx1Q0FBNEM7QUFDNUMsMkNBQTJDO0FBQzNDLHdDQUF5QztBQUN6QyxnQ0FBa0M7QUFDbEMsNkNBR087QUFDUCwyQ0FBNEM7QUFDNUMsaURBQWdEO0FBQ2hELHVCQUF5QjtBQUN6QiwwQkFBa0M7QUFDbEMsMkJBR087QUFDUCxzQkFPTztBQUNQLCtCQUFtQztBQUNuQyx1Q0FBOEI7QUFDOUIsbUNBTU87QUFDUCx3Q0FBK0M7QUFDL0Msc0NBQTZDO0FBQzdDLG9CQUdPO0FBQ1Asb0JBSU87QUFDUCxrQ0FBMEM7QUFDMUMseUJBVU87QUFDUCwwQkFLTztBQUNQLHlCQWlDTztBQUNQLHlCQUtPO0FBQ1AsaURBR087QUFDUCx5QkFHTztBQUNQLHlDQUErQztBQUMvQyxJQUFBQSx1QkFBZ0M7QUFDaEMsa0JBSU87QUFDUCxnQkFBbUI7QUFDbkIsOEJBR087QUFDUCw0QkFBNkI7QUFDN0Isa0JBd0JPO0FBQ1Asb0JBQWtDO0FBQ2xDLGtCQUFxQjtBQUNyQixxREFBMEQ7QUFDMUQsMkNBTU87QUFDUCwrQ0FBcUQ7QUFDckQsMkJBQW1DO0FBQ25DLHNCQU1PO0FBQ1AsNEJBY087QUFDUCxtQkFBc0I7QUFDdEIscUJBQXdCO0FBQ3hCLCtCQUFpQztBQUNqQyxtQkFHTztBQUNQLG9CQUF1QjtBQUN2Qix5QkFBMkI7QUFDM0IsMkJBQTZCO0FBQzdCLDJDQUEyQztBQUMzQyxnQ0FJTztBQUNQLGlEQUF1RDtBQUN2RCwrQkFJTztBQUNQLHdCQVVPO0FBQ1AsMkJBR087QUFDUCxpQkFBMkI7QUFDM0IsMENBQTBDO0FBQzFDLHdDQUF3QztBQUN4Qyw0QkFJTztBQUNQLGlDQUFzQztBQUN0QyxpQ0FHTztBQUNQLG9CQUlPO0FBQ1AsMkJBQW9DO0FBQ3BDLDRCQUtPO0FBQ1AscUJBQTRCO0FBQzVCLG1CQUlPO0FBQ1AseUJBR087QUFDUCx1QkFNTztBQUNQLDJCQVFPO0FBQ1AsMEJBQTBDO0FBQzFDLG1DQUEwQztBQUMxQyxnQ0FBa0M7QUFDbEMsd0NBQXlDO0FBQ3pDLDRCQUE4QjtBQUM5QixpQ0FBa0M7QUFDbEMsNkJBQStCO0FBQy9CLDRCQUE4QjtBQUM5Qiw2QkFBK0I7QUFDL0IseUNBQTBDO0FBQzFDLHNDQUF1QztBQUN2QyxxQ0FBc0M7QUFDdEMscUNBQXNDO0FBQ3RDLDhCQUFnQztBQUNoQyxnQ0FBa0M7QUFDbEMsdUNBQThCO0FBQzlCLGlDQUFtQztBQUNuQyxrQ0FBMkM7QUFDM0MsNEJBQThCO0FBQzlCLDBDQUEwQztBQUMxQyxzQ0FBdUM7QUFDdkMsK0NBQStDO0FBQy9DLHdDQUF3QztBQUN4QyxrQ0FBbUM7QUFDbkMsMkJBQTZCO0FBQzdCLGlDQUFzQztBQUN0Qyw0QkFBOEI7QUFDOUIsd0JBR087QUFDUCw4QkFBK0I7QUFDL0IsdUNBQTZDO0FBQzdDLHdCQU9PO0FBQ1AsMEJBR087QUFDUCwrQkFBaUM7QUFDakMsbUJBOEJPO0FBQ1AsNEJBQW9DO0FBQ3BDLHVCQU9PO0FBQ1Asa0JBb0JPO0FBQ1AscUJBU087QUFDUCwwQkFHTztBQUNQLG9CQW1CTztBQUNQLDhCQUFnQztBQUNoQyxrQ0FBb0M7QUFDcEMsK0JBQWlDO0FBQ2pDLDZCQUErQjtBQUMvQiw2QkFBK0I7QUFDL0IsK0NBQStDO0FBQy9DLHlCQUE0QjtBQUM1QixxQ0FBcUM7QUFDckMsK0JBQWlDO0FBQ2pDLHlCQUEwQjtBQUMxQix5QkFPTztBQUNQLGtCQUE2QjtBQUM3QixpQkFJTztBQUNQLDRCQUE2QjtBQUM3QiwyQkFBNkI7IiwKICAibmFtZXMiOiBbImltcG9ydF9odG1sX2VsZW1lbnQiXQp9Cg==
@@ -12,6 +12,7 @@ export { ASYNC_WRAPPER_ERROR_MESSAGE, CustomStackTraceError, emitAsyncErrorEvent
12
12
  export { cloneFunction, createFunction, getFunctionExpressionString, noop, noopAsync, noopAsyncSingletonPromise, omitAsyncReturnType, omitReturnType } from './function.cjs';
13
13
  export { LIBRARY_STYLES, LIBRARY_VERSION } from './generated-during-build.cjs';
14
14
  export { createDivAsync, createElAsync, createFragmentAsync, createSpanAsync, createSvgAsync, ensureLoaded, getDocumentWindow, getZIndex, isElementVisibleInOffsetParent, isLoaded, onAncestorScrollOrResize, toPx, waitUntilConnected } from './html-element.cjs';
15
+ export { extractJpegMetadataSegments, injectJpegMetadataSegments } from './jpeg-metadata.cjs';
15
16
  export { Library, LIBRARY_NAME } from './library.cjs';
16
17
  export { assignWithNonEnumerableProperties, castTo, cloneWithNonEnumerableProperties, deleteProperties, deleteProperty, extractDefaultExportInterop, FunctionHandlingMode, getAllEntries, getAllKeys, getNestedPropertyValue, getPrototypeOf, isDeepEqual, nameof, normalizeOptionalProperties, removeUndefinedProperties, setNestedPropertyValue, toJson } from './object-utils.cjs';
17
18
  export { getObsidianDevUtilsState, resetObsidianDevUtilsState } from './obsidian-dev-utils-state.cjs';
@@ -19,6 +20,7 @@ export { AppActiveFileProvider } from './obsidian/active-file-provider.cjs';
19
20
  export { getApp } from './obsidian/app.cjs';
20
21
  export { retryWithTimeoutNotice, runWithTimeoutNotice } from './obsidian/async-with-notice.cjs';
21
22
  export { AttachmentPathContext, DUMMY_PATH, getAttachmentFilePath, getAttachmentFolderPath, getAttachmentFolderPathSyncOrNull, getAvailablePathForAttachments, hasOwnAttachmentFolder, isAtProperAttachmentPath } from './obsidian/attachment-path.cjs';
23
+ export { findAttachmentUnitFolderPath, rebasePathOntoFolder } from './obsidian/attachment-unit-folder.cjs';
22
24
  export { renderBacklinksTable, renderDelayedBacklinks, renderDelayedBacklinksForFolder } from './obsidian/backlink.cjs';
23
25
  export { PluginBasesViewRegistrar } from './obsidian/bases-view-registrar.cjs';
24
26
  export { CalloutMode, renderCallout, wrapForCallout } from './obsidian/callout.cjs';
@@ -128,6 +128,7 @@ __export(blob_exports, {
128
128
  isImageFile: () => isImageFile
129
129
  });
130
130
  module.exports = __toCommonJS(blob_exports);
131
+ var import_jpeg_metadata = require('./jpeg-metadata.cjs');
131
132
  var import_type_guards = require('./type-guards.cjs');
132
133
  async function blobToArrayBuffer(blob) {
133
134
  return await blob.arrayBuffer();
@@ -142,7 +143,8 @@ async function blobToDataUrl(blob) {
142
143
  }
143
144
  });
144
145
  }
145
- async function blobToJpegArrayBuffer(blob, jpegQuality) {
146
+ async function blobToJpegArrayBuffer(blob, jpegQuality, options) {
147
+ const sourceSegments = options?.shouldPreserveMetadata ? (0, import_jpeg_metadata.extractJpegMetadataSegments)(new Uint8Array(await blob.arrayBuffer())) : [];
146
148
  const dataUrl = await blobToDataUrl(blob);
147
149
  return new Promise((resolve) => {
148
150
  const image = new Image();
@@ -165,7 +167,8 @@ async function blobToJpegArrayBuffer(blob, jpegQuality) {
165
167
  context.restore();
166
168
  const jpegDataUrl = canvas.toDataURL("image/jpeg", jpegQuality);
167
169
  const arrayBuffer = dataUrlToArrayBuffer(jpegDataUrl);
168
- resolve(arrayBuffer);
170
+ const withMetadata = (0, import_jpeg_metadata.injectJpegMetadataSegments)(new Uint8Array(arrayBuffer), sourceSegments);
171
+ resolve(withMetadata.buffer);
169
172
  }
170
173
  });
171
174
  }
@@ -194,4 +197,4 @@ function isImageFile(file) {
194
197
  dataUrlToArrayBuffer,
195
198
  isImageFile
196
199
  });
197
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Jsb2IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgQmxvYiBvYmplY3RzLlxuICovXG5cbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKlxuICogQ29udmVydHMgYSB7QGxpbmsgQmxvYn0gb2JqZWN0IHRvIGFuIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB7QGxpbmsgQmxvYn0gb2JqZWN0IHRvIGEgZGF0YSBVUkwuXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSBkYXRhIFVSTC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0RhdGFVcmwoYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBoYW5kbGVMb2FkRW5kKTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZUxvYWRFbmQoKTogdm9pZCB7XG4gICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEge0BsaW5rIEJsb2J9IG9iamVjdCB0byBhIEpQRUcgQXJyYXlCdWZmZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHF1YWxpdHkuXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEBwYXJhbSBqcGVnUXVhbGl0eSAtIFRoZSBxdWFsaXR5IG9mIHRoZSBKUEVHIGltYWdlICgwIHRvIDEpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhbiB7QGxpbmsgQXJyYXlCdWZmZXJ9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvSnBlZ0FycmF5QnVmZmVyKGJsb2I6IEJsb2IsIGpwZWdRdWFsaXR5OiBudW1iZXIpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIGNvbnN0IGRhdGFVcmwgPSBhd2FpdCBibG9iVG9EYXRhVXJsKGJsb2IpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBoYW5kbGVMb2FkKTtcbiAgICBpbWFnZS5zcmMgPSBkYXRhVXJsO1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlTG9hZCgpOiB2b2lkIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbm1kL3ByZWZlci1jcmVhdGUtZWwgLS0gQWdub3N0aWMgbW9kdWxlLlxuICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICBhc3NlcnROb25OdWxsYWJsZShjb250ZXh0LCAnQ291bGQgbm90IGdldCAyRCBjb250ZXh0LicpO1xuICAgICAgY29uc3QgaW1hZ2VXaWR0aCA9IGltYWdlLndpZHRoO1xuICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG5cbiAgICAgIGNhbnZhcy53aWR0aCA9IGltYWdlV2lkdGg7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7XG5cbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJyNmZmYnO1xuICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7XG4gICAgICBjb250ZXh0LnNhdmUoKTtcblxuICAgICAgY29uc3QgSEFMRiA9IDAuNTtcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGltYWdlV2lkdGggKiBIQUxGLCBpbWFnZUhlaWdodCAqIEhBTEYpO1xuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0LCAtaW1hZ2VXaWR0aCAqIEhBTEYsIC1pbWFnZUhlaWdodCAqIEhBTEYsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTtcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xuXG4gICAgICBjb25zdCBqcGVnRGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBqcGVnUXVhbGl0eSk7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGRhdGFVcmxUb0FycmF5QnVmZmVyKGpwZWdEYXRhVXJsKTtcbiAgICAgIHJlc29sdmUoYXJyYXlCdWZmZXIpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqXG4gKiBAcGFyYW0gZGF0YVVybCAtIFRoZSBkYXRhIFVSTCB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIGRlY29kZWQgQXJyYXlCdWZmZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRhVXJsVG9BcnJheUJ1ZmZlcihkYXRhVXJsOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IHBhcnRzID0gZGF0YVVybC5zcGxpdCgnO2Jhc2U2NCwnKTtcbiAgY29uc3QgYmFzZTY0ID0gcGFydHNbMV07XG4gIGlmICghYmFzZTY0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEgVVJMJyk7XG4gIH1cblxuICBjb25zdCByYXcgPSBhdG9iKGJhc2U2NCk7XG4gIGNvbnN0IHJhd0xlbmd0aCA9IHJhdy5sZW5ndGg7XG5cbiAgY29uc3QgdUludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KHJhd0xlbmd0aCk7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHJhd0xlbmd0aDsgaW5kZXgrKykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1jb2RlLXBvaW50IC0tIGByYXdgIGlzIGEgYmluYXJ5IHN0cmluZywgb25lIGJ5dGUgcGVyIGNvZGUgdW5pdC4gYGNvZGVQb2ludEF0YCB3b3VsZCBjb21iaW5lIGEgc3Vycm9nYXRlIHBhaXIgaW50byBhIHZhbHVlIGFib3ZlIDI1NSBhbmQgY29uc3VtZSB0d28gcG9zaXRpb25zLCB3aGljaCBpcyBleGFjdGx5IHRoZSB3cm9uZyByZWFkaW5nIGhlcmUuXG4gICAgdUludDhBcnJheVtpbmRleF0gPSByYXcuY2hhckNvZGVBdChpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHVJbnQ4QXJyYXkuYnVmZmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIGZpbGUgaXMgYW4gaW1hZ2UuXG4gKlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgZmlsZSBpcyBhbiBpbWFnZSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ltYWdlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gIHJldHVybiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEseUJBQWtDO0FBUWxDLGVBQXNCLGtCQUFrQixNQUFrQztBQUN4RSxTQUFPLE1BQU0sS0FBSyxZQUFZO0FBQ2hDO0FBUUEsZUFBc0IsY0FBYyxNQUE2QjtBQUMvRCxTQUFPLE1BQU0sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUNwQyxVQUFNLFNBQVMsSUFBSSxXQUFXO0FBQzlCLFdBQU8saUJBQWlCLFdBQVcsYUFBYTtBQUNoRCxXQUFPLGNBQWMsSUFBSTtBQUV6QixhQUFTLGdCQUFzQjtBQUM3QixjQUFRLE9BQU8sTUFBZ0I7QUFBQSxJQUNqQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBU0EsZUFBc0Isc0JBQXNCLE1BQVksYUFBMkM7QUFDakcsUUFBTSxVQUFVLE1BQU0sY0FBYyxJQUFJO0FBQ3hDLFNBQU8sSUFBSSxRQUFRLENBQUMsWUFBWTtBQUM5QixVQUFNLFFBQVEsSUFBSSxNQUFNO0FBQ3hCLFVBQU0saUJBQWlCLFFBQVEsVUFBVTtBQUN6QyxVQUFNLE1BQU07QUFFWixhQUFTLGFBQW1CO0FBRTFCLFlBQU0sU0FBUyxTQUFTLGNBQWMsUUFBUTtBQUM5QyxZQUFNLFVBQVUsT0FBTyxXQUFXLElBQUk7QUFDdEMsZ0RBQWtCLFNBQVMsMkJBQTJCO0FBQ3RELFlBQU0sYUFBYSxNQUFNO0FBQ3pCLFlBQU0sY0FBYyxNQUFNO0FBRTFCLGFBQU8sUUFBUTtBQUNmLGFBQU8sU0FBUztBQUVoQixjQUFRLFlBQVk7QUFDcEIsY0FBUSxTQUFTLEdBQUcsR0FBRyxZQUFZLFdBQVc7QUFDOUMsY0FBUSxLQUFLO0FBRWIsWUFBTSxPQUFPO0FBQ2IsY0FBUSxVQUFVLGFBQWEsTUFBTSxjQUFjLElBQUk7QUFDdkQsY0FBUSxVQUFVLE9BQU8sR0FBRyxHQUFHLFlBQVksYUFBYSxDQUFDLGFBQWEsTUFBTSxDQUFDLGNBQWMsTUFBTSxZQUFZLFdBQVc7QUFDeEgsY0FBUSxRQUFRO0FBRWhCLFlBQU0sY0FBYyxPQUFPLFVBQVUsY0FBYyxXQUFXO0FBQzlELFlBQU0sY0FBYyxxQkFBcUIsV0FBVztBQUNwRCxjQUFRLFdBQVc7QUFBQSxJQUNyQjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUU8sU0FBUyxxQkFBcUIsU0FBOEI7QUFDakUsUUFBTSxRQUFRLFFBQVEsTUFBTSxVQUFVO0FBQ3RDLFFBQU0sU0FBUyxNQUFNLENBQUM7QUFDdEIsTUFBSSxDQUFDLFFBQVE7QUFDWCxVQUFNLElBQUksTUFBTSxrQkFBa0I7QUFBQSxFQUNwQztBQUVBLFFBQU0sTUFBTSxLQUFLLE1BQU07QUFDdkIsUUFBTSxZQUFZLElBQUk7QUFFdEIsUUFBTSxhQUFhLElBQUksV0FBVyxTQUFTO0FBRTNDLFdBQVMsUUFBUSxHQUFHLFFBQVEsV0FBVyxTQUFTO0FBRTlDLGVBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLO0FBQUEsRUFDMUM7QUFDQSxTQUFPLFdBQVc7QUFDcEI7QUFRTyxTQUFTLFlBQVksTUFBcUI7QUFDL0MsU0FBTyxLQUFLLEtBQUssV0FBVyxRQUFRO0FBQ3RDOyIsCiAgIm5hbWVzIjogW10KfQo=
200
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Jsb2IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgQmxvYiBvYmplY3RzLlxuICovXG5cbmltcG9ydCB7XG4gIGV4dHJhY3RKcGVnTWV0YWRhdGFTZWdtZW50cyxcbiAgaW5qZWN0SnBlZ01ldGFkYXRhU2VnbWVudHNcbn0gZnJvbSAnLi9qcGVnLW1ldGFkYXRhLnRzJztcbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmxvYlRvSnBlZ0FycmF5QnVmZmVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNhcnJ5IHRoZSBzb3VyY2UgaW1hZ2UncyBtZXRhZGF0YSBzZWdtZW50cyAoRVhJRiwgR1BTLCBYTVAsIElDQyBwcm9maWxlKSBpbnRvIHRoZVxuICAgKiByZS1lbmNvZGVkIEpQRUcuIE9ubHkgaGFzIGFuIGVmZmVjdCB3aGVuIHRoZSBzb3VyY2UgaXMgYSBKUEVHLiBEZWZhdWx0cyB0byBgZmFsc2VgLCB3aGljaCBpcyB0aGVcbiAgICogYmVoYXZpb3IgYSBjYW52YXMgcmUtZW5jb2RlIGhhcyBhbHdheXMgaGFkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUHJlc2VydmVNZXRhZGF0YT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB7QGxpbmsgQmxvYn0gb2JqZWN0IHRvIGFuIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYW4ge0BsaW5rIEFycmF5QnVmZmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gIHJldHVybiBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB7QGxpbmsgQmxvYn0gb2JqZWN0IHRvIGEgZGF0YSBVUkwuXG4gKlxuICogQHBhcmFtIGJsb2IgLSBUaGUgQmxvYiBvYmplY3QgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSBkYXRhIFVSTC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0RhdGFVcmwoYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCBoYW5kbGVMb2FkRW5kKTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcblxuICAgIGZ1bmN0aW9uIGhhbmRsZUxvYWRFbmQoKTogdm9pZCB7XG4gICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEge0BsaW5rIEJsb2J9IG9iamVjdCB0byBhIEpQRUcgQXJyYXlCdWZmZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHF1YWxpdHkuXG4gKlxuICogVGhlIGNvbnZlcnNpb24gaXMgYSBjYW52YXMgcmUtZW5jb2RlLCB3aGljaCBrZWVwcyBvbmx5IHRoZSBwaXhlbHMgXHUyMDE0IEVYSUYsIEdQUywgWE1QIGFuZCB0aGUgSUNDXG4gKiBwcm9maWxlIGFyZSBkcm9wcGVkIGJ5IGNvbnN0cnVjdGlvbi4gUGFzcyB7QGxpbmsgQmxvYlRvSnBlZ0FycmF5QnVmZmVyT3B0aW9ucy5zaG91bGRQcmVzZXJ2ZU1ldGFkYXRhfVxuICogdG8gY2FycnkgdGhvc2Ugc2VnbWVudHMgYWNyb3NzIGZyb20gdGhlIHNvdXJjZSwgd2hpY2ggd29ya3Mgb25seSB3aGVuIHRoZSBzb3VyY2UgaXMgaXRzZWxmIGEgSlBFRzpcbiAqIG5vdGhpbmcgZWxzZSBzdG9yZXMgdGhlbSBpbiBhIGZvcm0gdGhhdCBjYW4gYmUgY29waWVkIHZlcmJhdGltLlxuICpcbiAqIEBwYXJhbSBibG9iIC0gVGhlIEJsb2Igb2JqZWN0IHRvIGNvbnZlcnQuXG4gKiBAcGFyYW0ganBlZ1F1YWxpdHkgLSBUaGUgcXVhbGl0eSBvZiB0aGUgSlBFRyBpbWFnZSAoMCB0byAxKS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29udmVyc2lvbiBvcHRpb25zLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byBhbiB7QGxpbmsgQXJyYXlCdWZmZXJ9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvSnBlZ0FycmF5QnVmZmVyKGJsb2I6IEJsb2IsIGpwZWdRdWFsaXR5OiBudW1iZXIsIG9wdGlvbnM/OiBCbG9iVG9KcGVnQXJyYXlCdWZmZXJPcHRpb25zKTogUHJvbWlzZTxBcnJheUJ1ZmZlcj4ge1xuICBjb25zdCBzb3VyY2VTZWdtZW50cyA9IG9wdGlvbnM/LnNob3VsZFByZXNlcnZlTWV0YWRhdGFcbiAgICA/IGV4dHJhY3RKcGVnTWV0YWRhdGFTZWdtZW50cyhuZXcgVWludDhBcnJheShhd2FpdCBibG9iLmFycmF5QnVmZmVyKCkpKVxuICAgIDogW107XG4gIGNvbnN0IGRhdGFVcmwgPSBhd2FpdCBibG9iVG9EYXRhVXJsKGJsb2IpO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIGltYWdlLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBoYW5kbGVMb2FkKTtcbiAgICBpbWFnZS5zcmMgPSBkYXRhVXJsO1xuXG4gICAgZnVuY3Rpb24gaGFuZGxlTG9hZCgpOiB2b2lkIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbm1kL3ByZWZlci1jcmVhdGUtZWwgLS0gQWdub3N0aWMgbW9kdWxlLlxuICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICBhc3NlcnROb25OdWxsYWJsZShjb250ZXh0LCAnQ291bGQgbm90IGdldCAyRCBjb250ZXh0LicpO1xuICAgICAgY29uc3QgaW1hZ2VXaWR0aCA9IGltYWdlLndpZHRoO1xuICAgICAgY29uc3QgaW1hZ2VIZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG5cbiAgICAgIGNhbnZhcy53aWR0aCA9IGltYWdlV2lkdGg7XG4gICAgICBjYW52YXMuaGVpZ2h0ID0gaW1hZ2VIZWlnaHQ7XG5cbiAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gJyNmZmYnO1xuICAgICAgY29udGV4dC5maWxsUmVjdCgwLCAwLCBpbWFnZVdpZHRoLCBpbWFnZUhlaWdodCk7XG4gICAgICBjb250ZXh0LnNhdmUoKTtcblxuICAgICAgY29uc3QgSEFMRiA9IDAuNTtcbiAgICAgIGNvbnRleHQudHJhbnNsYXRlKGltYWdlV2lkdGggKiBIQUxGLCBpbWFnZUhlaWdodCAqIEhBTEYpO1xuICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0LCAtaW1hZ2VXaWR0aCAqIEhBTEYsIC1pbWFnZUhlaWdodCAqIEhBTEYsIGltYWdlV2lkdGgsIGltYWdlSGVpZ2h0KTtcbiAgICAgIGNvbnRleHQucmVzdG9yZSgpO1xuXG4gICAgICBjb25zdCBqcGVnRGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBqcGVnUXVhbGl0eSk7XG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGRhdGFVcmxUb0FycmF5QnVmZmVyKGpwZWdEYXRhVXJsKTtcbiAgICAgIGNvbnN0IHdpdGhNZXRhZGF0YSA9IGluamVjdEpwZWdNZXRhZGF0YVNlZ21lbnRzKG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSwgc291cmNlU2VnbWVudHMpO1xuICAgICAgcmVzb2x2ZSh3aXRoTWV0YWRhdGEuYnVmZmVyIGFzIEFycmF5QnVmZmVyKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZTY0IGVuY29kZWQgc3RyaW5nIHRvIGFuIHtAbGluayBBcnJheUJ1ZmZlcn0uXG4gKlxuICogQHBhcmFtIGRhdGFVcmwgLSBUaGUgZGF0YSBVUkwgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIEFycmF5QnVmZmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0YVVybFRvQXJyYXlCdWZmZXIoZGF0YVVybDogc3RyaW5nKTogQXJyYXlCdWZmZXIge1xuICBjb25zdCBwYXJ0cyA9IGRhdGFVcmwuc3BsaXQoJztiYXNlNjQsJyk7XG4gIGNvbnN0IGJhc2U2NCA9IHBhcnRzWzFdO1xuICBpZiAoIWJhc2U2NCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhIFVSTCcpO1xuICB9XG5cbiAgY29uc3QgcmF3ID0gYXRvYihiYXNlNjQpO1xuICBjb25zdCByYXdMZW5ndGggPSByYXcubGVuZ3RoO1xuXG4gIGNvbnN0IHVJbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheShyYXdMZW5ndGgpO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCByYXdMZW5ndGg7IGluZGV4KyspIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9wcmVmZXItY29kZS1wb2ludCAtLSBgcmF3YCBpcyBhIGJpbmFyeSBzdHJpbmcsIG9uZSBieXRlIHBlciBjb2RlIHVuaXQuIGBjb2RlUG9pbnRBdGAgd291bGQgY29tYmluZSBhIHN1cnJvZ2F0ZSBwYWlyIGludG8gYSB2YWx1ZSBhYm92ZSAyNTUgYW5kIGNvbnN1bWUgdHdvIHBvc2l0aW9ucywgd2hpY2ggaXMgZXhhY3RseSB0aGUgd3JvbmcgcmVhZGluZyBoZXJlLlxuICAgIHVJbnQ4QXJyYXlbaW5kZXhdID0gcmF3LmNoYXJDb2RlQXQoaW5kZXgpO1xuICB9XG4gIHJldHVybiB1SW50OEFycmF5LmJ1ZmZlcjtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBmaWxlIGlzIGFuIGltYWdlLlxuICpcbiAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGZpbGUgaXMgYW4gaW1hZ2UsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbWFnZUZpbGUoZmlsZTogRmlsZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLDJCQUdPO0FBQ1AseUJBQWtDO0FBb0JsQyxlQUFzQixrQkFBa0IsTUFBa0M7QUFDeEUsU0FBTyxNQUFNLEtBQUssWUFBWTtBQUNoQztBQVFBLGVBQXNCLGNBQWMsTUFBNkI7QUFDL0QsU0FBTyxNQUFNLElBQUksUUFBUSxDQUFDLFlBQVk7QUFDcEMsVUFBTSxTQUFTLElBQUksV0FBVztBQUM5QixXQUFPLGlCQUFpQixXQUFXLGFBQWE7QUFDaEQsV0FBTyxjQUFjLElBQUk7QUFFekIsYUFBUyxnQkFBc0I7QUFDN0IsY0FBUSxPQUFPLE1BQWdCO0FBQUEsSUFDakM7QUFBQSxFQUNGLENBQUM7QUFDSDtBQWVBLGVBQXNCLHNCQUFzQixNQUFZLGFBQXFCLFNBQThEO0FBQ3pJLFFBQU0saUJBQWlCLFNBQVMsNkJBQzVCLGtEQUE0QixJQUFJLFdBQVcsTUFBTSxLQUFLLFlBQVksQ0FBQyxDQUFDLElBQ3BFLENBQUM7QUFDTCxRQUFNLFVBQVUsTUFBTSxjQUFjLElBQUk7QUFDeEMsU0FBTyxJQUFJLFFBQVEsQ0FBQyxZQUFZO0FBQzlCLFVBQU0sUUFBUSxJQUFJLE1BQU07QUFDeEIsVUFBTSxpQkFBaUIsUUFBUSxVQUFVO0FBQ3pDLFVBQU0sTUFBTTtBQUVaLGFBQVMsYUFBbUI7QUFFMUIsWUFBTSxTQUFTLFNBQVMsY0FBYyxRQUFRO0FBQzlDLFlBQU0sVUFBVSxPQUFPLFdBQVcsSUFBSTtBQUN0QyxnREFBa0IsU0FBUywyQkFBMkI7QUFDdEQsWUFBTSxhQUFhLE1BQU07QUFDekIsWUFBTSxjQUFjLE1BQU07QUFFMUIsYUFBTyxRQUFRO0FBQ2YsYUFBTyxTQUFTO0FBRWhCLGNBQVEsWUFBWTtBQUNwQixjQUFRLFNBQVMsR0FBRyxHQUFHLFlBQVksV0FBVztBQUM5QyxjQUFRLEtBQUs7QUFFYixZQUFNLE9BQU87QUFDYixjQUFRLFVBQVUsYUFBYSxNQUFNLGNBQWMsSUFBSTtBQUN2RCxjQUFRLFVBQVUsT0FBTyxHQUFHLEdBQUcsWUFBWSxhQUFhLENBQUMsYUFBYSxNQUFNLENBQUMsY0FBYyxNQUFNLFlBQVksV0FBVztBQUN4SCxjQUFRLFFBQVE7QUFFaEIsWUFBTSxjQUFjLE9BQU8sVUFBVSxjQUFjLFdBQVc7QUFDOUQsWUFBTSxjQUFjLHFCQUFxQixXQUFXO0FBQ3BELFlBQU0sbUJBQWUsaURBQTJCLElBQUksV0FBVyxXQUFXLEdBQUcsY0FBYztBQUMzRixjQUFRLGFBQWEsTUFBcUI7QUFBQSxJQUM1QztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUU8sU0FBUyxxQkFBcUIsU0FBOEI7QUFDakUsUUFBTSxRQUFRLFFBQVEsTUFBTSxVQUFVO0FBQ3RDLFFBQU0sU0FBUyxNQUFNLENBQUM7QUFDdEIsTUFBSSxDQUFDLFFBQVE7QUFDWCxVQUFNLElBQUksTUFBTSxrQkFBa0I7QUFBQSxFQUNwQztBQUVBLFFBQU0sTUFBTSxLQUFLLE1BQU07QUFDdkIsUUFBTSxZQUFZLElBQUk7QUFFdEIsUUFBTSxhQUFhLElBQUksV0FBVyxTQUFTO0FBRTNDLFdBQVMsUUFBUSxHQUFHLFFBQVEsV0FBVyxTQUFTO0FBRTlDLGVBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxLQUFLO0FBQUEsRUFDMUM7QUFDQSxTQUFPLFdBQVc7QUFDcEI7QUFRTyxTQUFTLFlBQVksTUFBcUI7QUFDL0MsU0FBTyxLQUFLLEtBQUssV0FBVyxRQUFRO0FBQ3RDOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -4,6 +4,17 @@
4
4
  *
5
5
  * Contains utility functions for Blob objects.
6
6
  */
7
+ /**
8
+ * Options for {@link blobToJpegArrayBuffer}.
9
+ */
10
+ export interface BlobToJpegArrayBufferOptions {
11
+ /**
12
+ * Whether to carry the source image's metadata segments (EXIF, GPS, XMP, ICC profile) into the
13
+ * re-encoded JPEG. Only has an effect when the source is a JPEG. Defaults to `false`, which is the
14
+ * behavior a canvas re-encode has always had.
15
+ */
16
+ readonly shouldPreserveMetadata?: boolean | undefined;
17
+ }
7
18
  /**
8
19
  * Converts a {@link Blob} object to an {@link ArrayBuffer}.
9
20
  *
@@ -21,11 +32,17 @@ export declare function blobToDataUrl(blob: Blob): Promise<string>;
21
32
  /**
22
33
  * Converts a {@link Blob} object to a JPEG ArrayBuffer with the specified quality.
23
34
  *
35
+ * The conversion is a canvas re-encode, which keeps only the pixels — EXIF, GPS, XMP and the ICC
36
+ * profile are dropped by construction. Pass {@link BlobToJpegArrayBufferOptions.shouldPreserveMetadata}
37
+ * to carry those segments across from the source, which works only when the source is itself a JPEG:
38
+ * nothing else stores them in a form that can be copied verbatim.
39
+ *
24
40
  * @param blob - The Blob object to convert.
25
41
  * @param jpegQuality - The quality of the JPEG image (0 to 1).
42
+ * @param options - Conversion options.
26
43
  * @returns A {@link Promise} that resolves to an {@link ArrayBuffer}.
27
44
  */
28
- export declare function blobToJpegArrayBuffer(blob: Blob, jpegQuality: number): Promise<ArrayBuffer>;
45
+ export declare function blobToJpegArrayBuffer(blob: Blob, jpegQuality: number, options?: BlobToJpegArrayBufferOptions): Promise<ArrayBuffer>;
29
46
  /**
30
47
  * Converts a base64 encoded string to an {@link ArrayBuffer}.
31
48
  *