import { c as _c } from "react/compiler-runtime";
import figures from 'figures';
import React, { useMemo } from 'react';
import type { DiffFile } from '../../hooks/useDiffData.js';
import { useTerminalSize } from '../../hooks/useTerminalSize.js';
import { Box, Text } from '../../ink.js';
import { truncateStartToWidth } from '../../utils/format.js';
import { plural } from '../../utils/stringUtils.js';
const MAX_VISIBLE_FILES = 5;
type Props = {
  files: DiffFile[];
  selectedIndex: number;
};
export function DiffFileList(t0) {
  const $ = _c(36);
  const {
    files,
    selectedIndex
  } = t0;
  const {
    columns
  } = useTerminalSize();
  let t1;
  bb0: {
    if (files.length === 0 || files.length <= MAX_VISIBLE_FILES) {
      let t2;
      if ($[0] !== files.length) {
        t2 = {
          startIndex: 0,
          endIndex: files.length
        };
        $[0] = files.length;
        $[1] = t2;
      } else {
        t2 = $[1];
      }
      t1 = t2;
      break bb0;
    }
    let start = Math.max(0, selectedIndex - Math.floor(MAX_VISIBLE_FILES / 2));
    let end = start + MAX_VISIBLE_FILES;
    if (end > files.length) {
      end = files.length;
      start = Math.max(0, end - MAX_VISIBLE_FILES);
    }
    let t2;
    if ($[2] !== end || $[3] !== start) {
      t2 = {
        startIndex: start,
        endIndex: end
      };
      $[2] = end;
      $[3] = start;
      $[4] = t2;
    } else {
      t2 = $[4];
    }
    t1 = t2;
  }
  const {
    startIndex,
    endIndex
  } = t1;
  if (files.length === 0) {
    let t2;
    if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
      t2 = <Text dimColor={true}>No changed files</Text>;
      $[5] = t2;
    } else {
      t2 = $[5];
    }
    return t2;
  }
  let T0;
  let hasMoreBelow;
  let needsPagination;
  let t2;
  let t3;
  let t4;
  if ($[6] !== columns || $[7] !== endIndex || $[8] !== files || $[9] !== selectedIndex || $[10] !== startIndex) {
    const visibleFiles = files.slice(startIndex, endIndex);
    const hasMoreAbove = startIndex > 0;
    hasMoreBelow = endIndex < files.length;
    needsPagination = files.length > MAX_VISIBLE_FILES;
    const maxPathWidth = Math.max(20, columns - 16 - 3 - 4);
    T0 = Box;
    t2 = "column";
    if ($[17] !== hasMoreAbove || $[18] !== needsPagination || $[19] !== startIndex) {
      t3 = needsPagination && <Text dimColor={true}>{hasMoreAbove ? ` ↑ ${startIndex} more ${plural(startIndex, "file")}` : " "}</Text>;
      $[17] = hasMoreAbove;
      $[18] = needsPagination;
      $[19] = startIndex;
      $[20] = t3;
    } else {
      t3 = $[20];
    }
    let t5;
    if ($[21] !== maxPathWidth || $[22] !== selectedIndex || $[23] !== startIndex) {
      t5 = (file, index) => <FileItem key={file.path} file={file} isSelected={startIndex + index === selectedIndex} maxPathWidth={maxPathWidth} />;
      $[21] = maxPathWidth;
      $[22] = selectedIndex;
      $[23] = startIndex;
      $[24] = t5;
    } else {
      t5 = $[24];
    }
    t4 = visibleFiles.map(t5);
    $[6] = columns;
    $[7] = endIndex;
    $[8] = files;
    $[9] = selectedIndex;
    $[10] = startIndex;
    $[11] = T0;
    $[12] = hasMoreBelow;
    $[13] = needsPagination;
    $[14] = t2;
    $[15] = t3;
    $[16] = t4;
  } else {
    T0 = $[11];
    hasMoreBelow = $[12];
    needsPagination = $[13];
    t2 = $[14];
    t3 = $[15];
    t4 = $[16];
  }
  let t5;
  if ($[25] !== endIndex || $[26] !== files.length || $[27] !== hasMoreBelow || $[28] !== needsPagination) {
    t5 = needsPagination && <Text dimColor={true}>{hasMoreBelow ? ` ↓ ${files.length - endIndex} more ${plural(files.length - endIndex, "file")}` : " "}</Text>;
    $[25] = endIndex;
    $[26] = files.length;
    $[27] = hasMoreBelow;
    $[28] = needsPagination;
    $[29] = t5;
  } else {
    t5 = $[29];
  }
  let t6;
  if ($[30] !== T0 || $[31] !== t2 || $[32] !== t3 || $[33] !== t4 || $[34] !== t5) {
    t6 = <T0 flexDirection={t2}>{t3}{t4}{t5}</T0>;
    $[30] = T0;
    $[31] = t2;
    $[32] = t3;
    $[33] = t4;
    $[34] = t5;
    $[35] = t6;
  } else {
    t6 = $[35];
  }
  return t6;
}
function FileItem(t0) {
  const $ = _c(14);
  const {
    file,
    isSelected,
    maxPathWidth
  } = t0;
  let t1;
  if ($[0] !== file.path || $[1] !== maxPathWidth) {
    t1 = truncateStartToWidth(file.path, maxPathWidth);
    $[0] = file.path;
    $[1] = maxPathWidth;
    $[2] = t1;
  } else {
    t1 = $[2];
  }
  const displayPath = t1;
  const pointer = isSelected ? figures.pointer + " " : "  ";
  const line = `${pointer}${displayPath}`;
  const t2 = isSelected ? "background" : undefined;
  let t3;
  if ($[3] !== isSelected || $[4] !== line || $[5] !== t2) {
    t3 = <Text bold={isSelected} color={t2} inverse={isSelected}>{line}</Text>;
    $[3] = isSelected;
    $[4] = line;
    $[5] = t2;
    $[6] = t3;
  } else {
    t3 = $[6];
  }
  let t4;
  if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
    t4 = <Box flexGrow={1} />;
    $[7] = t4;
  } else {
    t4 = $[7];
  }
  let t5;
  if ($[8] !== file || $[9] !== isSelected) {
    t5 = <FileStats file={file} isSelected={isSelected} />;
    $[8] = file;
    $[9] = isSelected;
    $[10] = t5;
  } else {
    t5 = $[10];
  }
  let t6;
  if ($[11] !== t3 || $[12] !== t5) {
    t6 = <Box flexDirection="row">{t3}{t4}{t5}</Box>;
    $[11] = t3;
    $[12] = t5;
    $[13] = t6;
  } else {
    t6 = $[13];
  }
  return t6;
}
function FileStats(t0) {
  const $ = _c(20);
  const {
    file,
    isSelected
  } = t0;
  if (file.isUntracked) {
    const t1 = !isSelected;
    let t2;
    if ($[0] !== t1) {
      t2 = <Text dimColor={t1} italic={true}>untracked</Text>;
      $[0] = t1;
      $[1] = t2;
    } else {
      t2 = $[1];
    }
    return t2;
  }
  if (file.isBinary) {
    const t1 = !isSelected;
    let t2;
    if ($[2] !== t1) {
      t2 = <Text dimColor={t1} italic={true}>Binary file</Text>;
      $[2] = t1;
      $[3] = t2;
    } else {
      t2 = $[3];
    }
    return t2;
  }
  if (file.isLargeFile) {
    const t1 = !isSelected;
    let t2;
    if ($[4] !== t1) {
      t2 = <Text dimColor={t1} italic={true}>Large file modified</Text>;
      $[4] = t1;
      $[5] = t2;
    } else {
      t2 = $[5];
    }
    return t2;
  }
  let t1;
  if ($[6] !== file.linesAdded || $[7] !== isSelected) {
    t1 = file.linesAdded > 0 && <Text color="diffAddedWord" bold={isSelected}>+{file.linesAdded}</Text>;
    $[6] = file.linesAdded;
    $[7] = isSelected;
    $[8] = t1;
  } else {
    t1 = $[8];
  }
  const t2 = file.linesAdded > 0 && file.linesRemoved > 0 && " ";
  let t3;
  if ($[9] !== file.linesRemoved || $[10] !== isSelected) {
    t3 = file.linesRemoved > 0 && <Text color="diffRemovedWord" bold={isSelected}>-{file.linesRemoved}</Text>;
    $[9] = file.linesRemoved;
    $[10] = isSelected;
    $[11] = t3;
  } else {
    t3 = $[11];
  }
  let t4;
  if ($[12] !== file.isTruncated || $[13] !== isSelected) {
    t4 = file.isTruncated && <Text dimColor={!isSelected}> (truncated)</Text>;
    $[12] = file.isTruncated;
    $[13] = isSelected;
    $[14] = t4;
  } else {
    t4 = $[14];
  }
  let t5;
  if ($[15] !== t1 || $[16] !== t2 || $[17] !== t3 || $[18] !== t4) {
    t5 = <Text>{t1}{t2}{t3}{t4}</Text>;
    $[15] = t1;
    $[16] = t2;
    $[17] = t3;
    $[18] = t4;
    $[19] = t5;
  } else {
    t5 = $[19];
  }
  return t5;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VNZW1vIiwiRGlmZkZpbGUiLCJ1c2VUZXJtaW5hbFNpemUiLCJCb3giLCJUZXh0IiwidHJ1bmNhdGVTdGFydFRvV2lkdGgiLCJwbHVyYWwiLCJNQVhfVklTSUJMRV9GSUxFUyIsIlByb3BzIiwiZmlsZXMiLCJzZWxlY3RlZEluZGV4IiwiRGlmZkZpbGVMaXN0IiwidDAiLCIkIiwiX2MiLCJjb2x1bW5zIiwidDEiLCJiYjAiLCJsZW5ndGgiLCJ0MiIsInN0YXJ0SW5kZXgiLCJlbmRJbmRleCIsInN0YXJ0IiwiTWF0aCIsIm1heCIsImZsb29yIiwiZW5kIiwiU3ltYm9sIiwiZm9yIiwiVDAiLCJoYXNNb3JlQmVsb3ciLCJuZWVkc1BhZ2luYXRpb24iLCJ0MyIsInQ0IiwidmlzaWJsZUZpbGVzIiwic2xpY2UiLCJoYXNNb3JlQWJvdmUiLCJtYXhQYXRoV2lkdGgiLCJ0NSIsImZpbGUiLCJpbmRleCIsInBhdGgiLCJtYXAiLCJ0NiIsIkZpbGVJdGVtIiwiaXNTZWxlY3RlZCIsImRpc3BsYXlQYXRoIiwicG9pbnRlciIsImxpbmUiLCJ1bmRlZmluZWQiLCJGaWxlU3RhdHMiLCJpc1VudHJhY2tlZCIsImlzQmluYXJ5IiwiaXNMYXJnZUZpbGUiLCJsaW5lc0FkZGVkIiwibGluZXNSZW1vdmVkIiwiaXNUcnVuY2F0ZWQiXSwic291cmNlcyI6WyJEaWZmRmlsZUxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWd1cmVzIGZyb20gJ2ZpZ3VyZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBEaWZmRmlsZSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURpZmZEYXRhLmpzJ1xuaW1wb3J0IHsgdXNlVGVybWluYWxTaXplIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlVGVybWluYWxTaXplLmpzJ1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgdHJ1bmNhdGVTdGFydFRvV2lkdGggfSBmcm9tICcuLi8uLi91dGlscy9mb3JtYXQuanMnXG5pbXBvcnQgeyBwbHVyYWwgfSBmcm9tICcuLi8uLi91dGlscy9zdHJpbmdVdGlscy5qcydcblxuY29uc3QgTUFYX1ZJU0lCTEVfRklMRVMgPSA1XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGZpbGVzOiBEaWZmRmlsZVtdXG4gIHNlbGVjdGVkSW5kZXg6IG51bWJlclxufVxuXG5leHBvcnQgZnVuY3Rpb24gRGlmZkZpbGVMaXN0KHsgZmlsZXMsIHNlbGVjdGVkSW5kZXggfTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCB7IGNvbHVtbnMgfSA9IHVzZVRlcm1pbmFsU2l6ZSgpXG5cbiAgLy8gQ2FsY3VsYXRlIHNjcm9sbCB3aW5kb3cgLSBtdXN0IGJlIGJlZm9yZSBlYXJseSByZXR1cm4gZm9yIGhvb2tzIHJ1bGVzXG4gIGNvbnN0IHsgc3RhcnRJbmRleCwgZW5kSW5kZXggfSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDAgfHwgZmlsZXMubGVuZ3RoIDw9IE1BWF9WSVNJQkxFX0ZJTEVTKSB7XG4gICAgICByZXR1cm4geyBzdGFydEluZGV4OiAwLCBlbmRJbmRleDogZmlsZXMubGVuZ3RoIH1cbiAgICB9XG5cbiAgICAvLyBLZWVwIHNlbGVjdGVkIGl0ZW0gcm91Z2hseSBpbiB0aGUgbWlkZGxlXG4gICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgc2VsZWN0ZWRJbmRleCAtIE1hdGguZmxvb3IoTUFYX1ZJU0lCTEVfRklMRVMgLyAyKSlcbiAgICBsZXQgZW5kID0gc3RhcnQgKyBNQVhfVklTSUJMRV9GSUxFU1xuXG4gICAgLy8gQWRqdXN0IGlmIHdlJ3JlIGF0IHRoZSBlbmRcbiAgICBpZiAoZW5kID4gZmlsZXMubGVuZ3RoKSB7XG4gICAgICBlbmQgPSBmaWxlcy5sZW5ndGhcbiAgICAgIHN0YXJ0ID0gTWF0aC5tYXgoMCwgZW5kIC0gTUFYX1ZJU0lCTEVfRklMRVMpXG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhcnRJbmRleDogc3RhcnQsIGVuZEluZGV4OiBlbmQgfVxuICB9LCBbZmlsZXMubGVuZ3RoLCBzZWxlY3RlZEluZGV4XSlcblxuICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIDxUZXh0IGRpbUNvbG9yPk5vIGNoYW5nZWQgZmlsZXM8L1RleHQ+XG4gIH1cblxuICBjb25zdCB2aXNpYmxlRmlsZXMgPSBmaWxlcy5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleClcbiAgY29uc3QgaGFzTW9yZUFib3ZlID0gc3RhcnRJbmRleCA+IDBcbiAgY29uc3QgaGFzTW9yZUJlbG93ID0gZW5kSW5kZXggPCBmaWxlcy5sZW5ndGhcbiAgY29uc3QgbmVlZHNQYWdpbmF0aW9uID0gZmlsZXMubGVuZ3RoID4gTUFYX1ZJU0lCTEVfRklMRVNcblxuICBjb25zdCBzdGF0c1dpZHRoID0gMTZcbiAgY29uc3QgcG9pbnRlcldpZHRoID0gM1xuICBjb25zdCBtYXhQYXRoV2lkdGggPSBNYXRoLm1heCgyMCwgY29sdW1ucyAtIHN0YXRzV2lkdGggLSBwb2ludGVyV2lkdGggLSA0KVxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICB7bmVlZHNQYWdpbmF0aW9uICYmIChcbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAge2hhc01vcmVBYm92ZVxuICAgICAgICAgICAgPyBgIOKGkSAke3N0YXJ0SW5kZXh9IG1vcmUgJHtwbHVyYWwoc3RhcnRJbmRleCwgJ2ZpbGUnKX1gXG4gICAgICAgICAgICA6ICcgJ31cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKX1cbiAgICAgIHt2aXNpYmxlRmlsZXMubWFwKChmaWxlLCBpbmRleCkgPT4gKFxuICAgICAgICA8RmlsZUl0ZW1cbiAgICAgICAgICBrZXk9e2ZpbGUucGF0aH1cbiAgICAgICAgICBmaWxlPXtmaWxlfVxuICAgICAgICAgIGlzU2VsZWN0ZWQ9e3N0YXJ0SW5kZXggKyBpbmRleCA9PT0gc2VsZWN0ZWRJbmRleH1cbiAgICAgICAgICBtYXhQYXRoV2lkdGg9e21heFBhdGhXaWR0aH1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgICAge25lZWRzUGFnaW5hdGlvbiAmJiAoXG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICAgIHtoYXNNb3JlQmVsb3dcbiAgICAgICAgICAgID8gYCDihpMgJHtmaWxlcy5sZW5ndGggLSBlbmRJbmRleH0gbW9yZSAke3BsdXJhbChmaWxlcy5sZW5ndGggLSBlbmRJbmRleCwgJ2ZpbGUnKX1gXG4gICAgICAgICAgICA6ICcgJ31cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKX1cbiAgICA8L0JveD5cbiAgKVxufVxuXG5mdW5jdGlvbiBGaWxlSXRlbSh7XG4gIGZpbGUsXG4gIGlzU2VsZWN0ZWQsXG4gIG1heFBhdGhXaWR0aCxcbn06IHtcbiAgZmlsZTogRGlmZkZpbGVcbiAgaXNTZWxlY3RlZDogYm9vbGVhblxuICBtYXhQYXRoV2lkdGg6IG51bWJlclxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGRpc3BsYXlQYXRoID0gdHJ1bmNhdGVTdGFydFRvV2lkdGgoZmlsZS5wYXRoLCBtYXhQYXRoV2lkdGgpXG5cbiAgY29uc3QgcG9pbnRlciA9IGlzU2VsZWN0ZWQgPyBmaWd1cmVzLnBvaW50ZXIgKyAnICcgOiAnICAnXG4gIGNvbnN0IGxpbmUgPSBgJHtwb2ludGVyfSR7ZGlzcGxheVBhdGh9YFxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCI+XG4gICAgICA8VGV4dFxuICAgICAgICBib2xkPXtpc1NlbGVjdGVkfVxuICAgICAgICBjb2xvcj17aXNTZWxlY3RlZCA/ICdiYWNrZ3JvdW5kJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgaW52ZXJzZT17aXNTZWxlY3RlZH1cbiAgICAgID5cbiAgICAgICAge2xpbmV9XG4gICAgICA8L1RleHQ+XG4gICAgICA8Qm94IGZsZXhHcm93PXsxfSAvPlxuICAgICAgPEZpbGVTdGF0cyBmaWxlPXtmaWxlfSBpc1NlbGVjdGVkPXtpc1NlbGVjdGVkfSAvPlxuICAgIDwvQm94PlxuICApXG59XG5cbmZ1bmN0aW9uIEZpbGVTdGF0cyh7XG4gIGZpbGUsXG4gIGlzU2VsZWN0ZWQsXG59OiB7XG4gIGZpbGU6IERpZmZGaWxlXG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW5cbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBpZiAoZmlsZS5pc1VudHJhY2tlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9IGl0YWxpYz5cbiAgICAgICAgdW50cmFja2VkXG4gICAgICA8L1RleHQ+XG4gICAgKVxuICB9XG4gIGlmIChmaWxlLmlzQmluYXJ5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUZXh0IGRpbUNvbG9yPXshaXNTZWxlY3RlZH0gaXRhbGljPlxuICAgICAgICBCaW5hcnkgZmlsZVxuICAgICAgPC9UZXh0PlxuICAgIClcbiAgfVxuICBpZiAoZmlsZS5pc0xhcmdlRmlsZSkge1xuICAgIHJldHVybiAoXG4gICAgICA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9IGl0YWxpYz5cbiAgICAgICAgTGFyZ2UgZmlsZSBtb2RpZmllZFxuICAgICAgPC9UZXh0PlxuICAgIClcbiAgfVxuICAvLyBOb3JtYWwgb3IgdHJ1bmNhdGVkIGZpbGUgLSBzaG93IGxpbmUgY291bnRzXG4gIHJldHVybiAoXG4gICAgPFRleHQ+XG4gICAgICB7ZmlsZS5saW5lc0FkZGVkID4gMCAmJiAoXG4gICAgICAgIDxUZXh0IGNvbG9yPVwiZGlmZkFkZGVkV29yZFwiIGJvbGQ9e2lzU2VsZWN0ZWR9PlxuICAgICAgICAgICt7ZmlsZS5saW5lc0FkZGVkfVxuICAgICAgICA8L1RleHQ+XG4gICAgICApfVxuICAgICAge2ZpbGUubGluZXNBZGRlZCA+IDAgJiYgZmlsZS5saW5lc1JlbW92ZWQgPiAwICYmICcgJ31cbiAgICAgIHtmaWxlLmxpbmVzUmVtb3ZlZCA+IDAgJiYgKFxuICAgICAgICA8VGV4dCBjb2xvcj1cImRpZmZSZW1vdmVkV29yZFwiIGJvbGQ9e2lzU2VsZWN0ZWR9PlxuICAgICAgICAgIC17ZmlsZS5saW5lc1JlbW92ZWR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICl9XG4gICAgICB7ZmlsZS5pc1RydW5jYXRlZCAmJiA8VGV4dCBkaW1Db2xvcj17IWlzU2VsZWN0ZWR9PiAodHJ1bmNhdGVkKTwvVGV4dD59XG4gICAgPC9UZXh0PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxPQUFPLE1BQU0sU0FBUztBQUM3QixPQUFPQyxLQUFLLElBQUlDLE9BQU8sUUFBUSxPQUFPO0FBQ3RDLGNBQWNDLFFBQVEsUUFBUSw0QkFBNEI7QUFDMUQsU0FBU0MsZUFBZSxRQUFRLGdDQUFnQztBQUNoRSxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLFNBQVNDLG9CQUFvQixRQUFRLHVCQUF1QjtBQUM1RCxTQUFTQyxNQUFNLFFBQVEsNEJBQTRCO0FBRW5ELE1BQU1DLGlCQUFpQixHQUFHLENBQUM7QUFFM0IsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLEtBQUssRUFBRVIsUUFBUSxFQUFFO0VBQ2pCUyxhQUFhLEVBQUUsTUFBTTtBQUN2QixDQUFDO0FBRUQsT0FBTyxTQUFBQyxhQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQXNCO0lBQUFMLEtBQUE7SUFBQUM7RUFBQSxJQUFBRSxFQUErQjtFQUMxRDtJQUFBRztFQUFBLElBQW9CYixlQUFlLENBQUMsQ0FBQztFQUFBLElBQUFjLEVBQUE7RUFBQUMsR0FBQTtJQUluQyxJQUFJUixLQUFLLENBQUFTLE1BQU8sS0FBSyxDQUFzQyxJQUFqQ1QsS0FBSyxDQUFBUyxNQUFPLElBQUlYLGlCQUFpQjtNQUFBLElBQUFZLEVBQUE7TUFBQSxJQUFBTixDQUFBLFFBQUFKLEtBQUEsQ0FB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