From 9278119bb382103f1cb5062de05fe8224b9dbfe9 Mon Sep 17 00:00:00 2001 From: afourney Date: Tue, 26 Aug 2025 14:20:29 -0700 Subject: [PATCH 01/26] Resolved an issue with linked images in docx [mammoth] (#1405) --- packages/markitdown/pyproject.toml | 2 +- packages/markitdown/src/markitdown/__about__.py | 2 +- .../src/markitdown/converters/_docx_converter.py | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index afb5d3197..0d9bb6167 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -36,7 +36,7 @@ dependencies = [ [project.optional-dependencies] all = [ "python-pptx", - "mammoth", + "mammoth~=1.10.0", "pandas", "openpyxl", "xlrd", diff --git a/packages/markitdown/src/markitdown/__about__.py b/packages/markitdown/src/markitdown/__about__.py index d2336ca4c..4441f3f98 100644 --- a/packages/markitdown/src/markitdown/__about__.py +++ b/packages/markitdown/src/markitdown/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2024-present Adam Fourney # # SPDX-License-Identifier: MIT -__version__ = "0.1.2" +__version__ = "0.1.3" diff --git a/packages/markitdown/src/markitdown/converters/_docx_converter.py b/packages/markitdown/src/markitdown/converters/_docx_converter.py index 69c1ea833..9cb2cbd5b 100644 --- a/packages/markitdown/src/markitdown/converters/_docx_converter.py +++ b/packages/markitdown/src/markitdown/converters/_docx_converter.py @@ -1,4 +1,6 @@ import sys +import io +from warnings import warn from typing import BinaryIO, Any @@ -13,6 +15,14 @@ _dependency_exc_info = None try: import mammoth + import mammoth.docx.files + + def mammoth_files_open(self, uri): + warn("DOCX: processing of r:link resources (e.g., linked images) is disabled.") + return io.BytesIO(b"") + + mammoth.docx.files.Files.open = mammoth_files_open + except ImportError: # Preserve the error and stack trace for later _dependency_exc_info = sys.exc_info() From 1178c2e21182eb26504589170e5916f537137070 Mon Sep 17 00:00:00 2001 From: JonahDelman Date: Tue, 26 Aug 2025 17:23:10 -0400 Subject: [PATCH 02/26] Fixed documentation typos in _base_converter.py (#1393) --- packages/markitdown/src/markitdown/_base_converter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/markitdown/src/markitdown/_base_converter.py b/packages/markitdown/src/markitdown/_base_converter.py index a6f2a2d91..fa2b11145 100644 --- a/packages/markitdown/src/markitdown/_base_converter.py +++ b/packages/markitdown/src/markitdown/_base_converter.py @@ -69,7 +69,7 @@ def accepts( data = file_stream.read(100) # ... peek at the first 100 bytes, etc. file_stream.seek(cur_pos) # Reset the position to the original position - Prameters: + Parameters: - file_stream: The file-like object to convert. Must support seek(), tell(), and read() methods. - stream_info: The StreamInfo object containing metadata about the file (mimetype, extension, charset, set) - kwargs: Additional keyword arguments for the converter. @@ -90,7 +90,7 @@ def convert( """ Convert a document to Markdown text. - Prameters: + Parameters: - file_stream: The file-like object to convert. Must support seek(), tell(), and read() methods. - stream_info: The StreamInfo object containing metadata about the file (mimetype, extension, charset, set) - kwargs: Additional keyword arguments for the converter. From fb1ad2483303022c75e6b620a69df17e944fc4b0 Mon Sep 17 00:00:00 2001 From: t3tra Date: Wed, 27 Aug 2025 06:25:13 +0900 Subject: [PATCH 03/26] Ensure safe ExifTool usage: require >= 12.24 (#1399) * feat: add version verification for ExifTool to ensure security compliance * fix: improve ExifTool version verification --------- --- .../src/markitdown/converters/_exiftool.py | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/markitdown/src/markitdown/converters/_exiftool.py b/packages/markitdown/src/markitdown/converters/_exiftool.py index 1af155f28..f605024fd 100644 --- a/packages/markitdown/src/markitdown/converters/_exiftool.py +++ b/packages/markitdown/src/markitdown/converters/_exiftool.py @@ -1,7 +1,11 @@ import json -import subprocess import locale -from typing import BinaryIO, Any, Union +import subprocess +from typing import Any, BinaryIO, Union + + +def _parse_version(version: str) -> tuple: + return tuple(map(int, (version.split(".")))) def exiftool_metadata( @@ -13,6 +17,24 @@ def exiftool_metadata( if not exiftool_path: return {} + # Verify exiftool version + try: + version_output = subprocess.run( + [exiftool_path, "-ver"], + capture_output=True, + text=True, + check=True, + ).stdout.strip() + version = _parse_version(version_output) + min_version = (12, 24) + if version < min_version: + raise RuntimeError( + f"ExifTool version {version_output} is vulnerable to CVE-2021-22204. " + "Please upgrade to version 12.24 or later." + ) + except (subprocess.CalledProcessError, ValueError) as e: + raise RuntimeError("Failed to verify ExifTool version.") from e + # Run exiftool cur_pos = file_stream.tell() try: From b6e5da88740fd07d5a36054a451f06c35c7f5fd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:27:38 -0700 Subject: [PATCH 04/26] Bump actions/checkout from 4 to 5 (#1394) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. --- .github/workflows/pre-commit.yml | 2 +- .github/workflows/tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 321f82336..09454647b 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -5,7 +5,7 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python uses: actions/setup-python@v5 with: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 78c7cdc1a..4785bba1a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -5,7 +5,7 @@ jobs: tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions/setup-python@v5 with: python-version: | From ea1a3dfb60fde71c4b2fb0a6cfa1f46e9e741f7f Mon Sep 17 00:00:00 2001 From: safen0s <99965118+safen0s@users.noreply.github.com> Date: Tue, 26 Aug 2025 22:34:43 +0100 Subject: [PATCH 05/26] Add HTML support to DocumentIntelligenceConverter (#1352) --- .../converters/_doc_intel_converter.py | 5 ++++ .../markitdown/tests/test_docintel_html.py | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 packages/markitdown/tests/test_docintel_html.py diff --git a/packages/markitdown/src/markitdown/converters/_doc_intel_converter.py b/packages/markitdown/src/markitdown/converters/_doc_intel_converter.py index ba66b5b5a..fd843f231 100644 --- a/packages/markitdown/src/markitdown/converters/_doc_intel_converter.py +++ b/packages/markitdown/src/markitdown/converters/_doc_intel_converter.py @@ -84,6 +84,9 @@ def _get_mime_type_prefixes(types: List[DocumentIntelligenceFileType]) -> List[s prefixes.append( "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ) + elif type_ == DocumentIntelligenceFileType.HTML: + prefixes.append("text/html") + prefixes.append("application/xhtml+xml") elif type_ == DocumentIntelligenceFileType.PDF: prefixes.append("application/pdf") prefixes.append("application/x-pdf") @@ -119,6 +122,8 @@ def _get_file_extensions(types: List[DocumentIntelligenceFileType]) -> List[str] extensions.append(".bmp") elif type_ == DocumentIntelligenceFileType.TIFF: extensions.append(".tiff") + elif type_ == DocumentIntelligenceFileType.HTML: + extensions.append(".html") return extensions diff --git a/packages/markitdown/tests/test_docintel_html.py b/packages/markitdown/tests/test_docintel_html.py new file mode 100644 index 000000000..d0b4caa3e --- /dev/null +++ b/packages/markitdown/tests/test_docintel_html.py @@ -0,0 +1,26 @@ +import io +from markitdown.converters._doc_intel_converter import ( + DocumentIntelligenceConverter, + DocumentIntelligenceFileType, +) +from markitdown._stream_info import StreamInfo + + +def _make_converter(file_types): + conv = DocumentIntelligenceConverter.__new__(DocumentIntelligenceConverter) + conv._file_types = file_types + return conv + + +def test_docintel_accepts_html_extension(): + conv = _make_converter([DocumentIntelligenceFileType.HTML]) + stream_info = StreamInfo(mimetype=None, extension=".html") + assert conv.accepts(io.BytesIO(b""), stream_info) + + +def test_docintel_accepts_html_mimetype(): + conv = _make_converter([DocumentIntelligenceFileType.HTML]) + stream_info = StreamInfo(mimetype="text/html", extension=None) + assert conv.accepts(io.BytesIO(b""), stream_info) + stream_info = StreamInfo(mimetype="application/xhtml+xml", extension=None) + assert conv.accepts(io.BytesIO(b""), stream_info) From b81a3876162373108eb14c4c0075096548239fc1 Mon Sep 17 00:00:00 2001 From: Stefan Rink Date: Tue, 26 Aug 2025 23:51:10 +0200 Subject: [PATCH 06/26] fix: correctly pass custom llm prompt parameter (#1319) * fix: correctly pass custom llm prompt parameter --- README.md | 4 +- .../markitdown/src/markitdown/_markitdown.py | 5 ++ packages/markitdown/tests/test_module_misc.py | 46 +++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e030c408a..51efedbe0 100644 --- a/README.md +++ b/README.md @@ -164,14 +164,14 @@ result = md.convert("test.pdf") print(result.text_content) ``` -To use Large Language Models for image descriptions, provide `llm_client` and `llm_model`: +To use Large Language Models for image descriptions (currently only for pptx and image files), provide `llm_client` and `llm_model`: ```python from markitdown import MarkItDown from openai import OpenAI client = OpenAI() -md = MarkItDown(llm_client=client, llm_model="gpt-4o") +md = MarkItDown(llm_client=client, llm_model="gpt-4o", llm_prompt="optional custom prompt") result = md.convert("example.jpg") print(result.text_content) ``` diff --git a/packages/markitdown/src/markitdown/_markitdown.py b/packages/markitdown/src/markitdown/_markitdown.py index 3027efc65..702b10c68 100644 --- a/packages/markitdown/src/markitdown/_markitdown.py +++ b/packages/markitdown/src/markitdown/_markitdown.py @@ -115,6 +115,7 @@ def __init__( # TODO - remove these (see enable_builtins) self._llm_client: Any = None self._llm_model: Union[str | None] = None + self._llm_prompt: Union[str | None] = None self._exiftool_path: Union[str | None] = None self._style_map: Union[str | None] = None @@ -139,6 +140,7 @@ def enable_builtins(self, **kwargs) -> None: # TODO: Move these into converter constructors self._llm_client = kwargs.get("llm_client") self._llm_model = kwargs.get("llm_model") + self._llm_prompt = kwargs.get("llm_prompt") self._exiftool_path = kwargs.get("exiftool_path") self._style_map = kwargs.get("style_map") @@ -559,6 +561,9 @@ def _convert( if "llm_model" not in _kwargs and self._llm_model is not None: _kwargs["llm_model"] = self._llm_model + if "llm_prompt" not in _kwargs and self._llm_prompt is not None: + _kwargs["llm_prompt"] = self._llm_prompt + if "style_map" not in _kwargs and self._style_map is not None: _kwargs["style_map"] = self._style_map diff --git a/packages/markitdown/tests/test_module_misc.py b/packages/markitdown/tests/test_module_misc.py index 447e28ab0..03e123d50 100644 --- a/packages/markitdown/tests/test_module_misc.py +++ b/packages/markitdown/tests/test_module_misc.py @@ -4,6 +4,7 @@ import re import shutil import pytest +from unittest.mock import MagicMock from markitdown._uri_utils import parse_data_uri, file_uri_to_path @@ -370,6 +371,50 @@ def test_markitdown_exiftool() -> None: assert target in result.text_content +def test_markitdown_llm_parameters() -> None: + """Test that LLM parameters are correctly passed to the client.""" + mock_client = MagicMock() + mock_response = MagicMock() + mock_response.choices = [ + MagicMock( + message=MagicMock( + content="Test caption with red circle and blue square 5bda1dd6" + ) + ) + ] + mock_client.chat.completions.create.return_value = mock_response + + test_prompt = "You are a professional test prompt." + markitdown = MarkItDown( + llm_client=mock_client, llm_model="gpt-4o", llm_prompt=test_prompt + ) + + # Test image file + markitdown.convert(os.path.join(TEST_FILES_DIR, "test_llm.jpg")) + + # Verify the prompt was passed to the OpenAI API + assert mock_client.chat.completions.create.called + call_args = mock_client.chat.completions.create.call_args + messages = call_args[1]["messages"] + assert len(messages) == 1 + assert messages[0]["content"][0]["text"] == test_prompt + + # Reset the mock for the next test + mock_client.chat.completions.create.reset_mock() + + # TODO: may only use one test after the llm caption method duplicate has been removed: + # https://github.com/microsoft/markitdown/pull/1254 + # Test PPTX file + markitdown.convert(os.path.join(TEST_FILES_DIR, "test.pptx")) + + # Verify the prompt was passed to the OpenAI API for PPTX images too + assert mock_client.chat.completions.create.called + call_args = mock_client.chat.completions.create.call_args + messages = call_args[1]["messages"] + assert len(messages) == 1 + assert messages[0]["content"][0]["text"] == test_prompt + + @pytest.mark.skipif( skip_llm, reason="do not run llm tests without a key", @@ -408,6 +453,7 @@ def test_markitdown_llm() -> None: test_speech_transcription, test_exceptions, test_markitdown_exiftool, + test_markitdown_llm_parameters, test_markitdown_llm, ]: print(f"Running {test.__name__}...", end="") From 16ca285d3073bbe90c7eca8ce63ae9347a57536b Mon Sep 17 00:00:00 2001 From: "[W]DOS_" <40659600+W-DOS0@users.noreply.github.com> Date: Tue, 26 Aug 2025 23:55:58 +0200 Subject: [PATCH 07/26] Update README.md (#1335) Fix typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 51efedbe0..652afc057 100644 --- a/README.md +++ b/README.md @@ -199,7 +199,7 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio ### How to Contribute -You can help by looking at issues or helping review PRs. Any issue or PR is welcome, but we have also marked some as 'open for contribution' and 'open for reviewing' to help facilitate community contributions. These are ofcourse just suggestions and you are welcome to contribute in any way you like. +You can help by looking at issues or helping review PRs. Any issue or PR is welcome, but we have also marked some as 'open for contribution' and 'open for reviewing' to help facilitate community contributions. These are of course just suggestions and you are welcome to contribute in any way you like.
From f8b60b54031c0292d20d9d7dd7275973d0121f3c Mon Sep 17 00:00:00 2001 From: Utkarsh kumar Date: Wed, 27 Aug 2025 03:32:56 +0530 Subject: [PATCH 08/26] Update README.md (#1350) ISSUE #1339 --- packages/markitdown-mcp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/markitdown-mcp/README.md b/packages/markitdown-mcp/README.md index 4c9cff836..fd5fc4184 100644 --- a/packages/markitdown-mcp/README.md +++ b/packages/markitdown-mcp/README.md @@ -102,7 +102,7 @@ To debug the MCP server you can use the `mcpinspector` tool. npx @modelcontextprotocol/inspector ``` -You can then connect to the insepctor through the specified host and port (e.g., `http://localhost:5173/`). +You can then connect to the inspector through the specified host and port (e.g., `http://localhost:5173/`). If using STDIO: * select `STDIO` as the transport type, From 0c4d3945a0a8d947615130dc91ceaa227c4d8841 Mon Sep 17 00:00:00 2001 From: Ebrahim Tayabali <47640402+ebrahimHakimuddin@users.noreply.github.com> Date: Wed, 27 Aug 2025 01:07:27 +0300 Subject: [PATCH 09/26] Update README.md (#1191) Fix: Subtle spelling mistake fixed. --- packages/markitdown-mcp/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/markitdown-mcp/README.md b/packages/markitdown-mcp/README.md index fd5fc4184..022ba8dd8 100644 --- a/packages/markitdown-mcp/README.md +++ b/packages/markitdown-mcp/README.md @@ -127,8 +127,7 @@ Finally: ## Security Considerations -The server does not support authentication, and runs with the privileges if the user running it. For this reason, when running in SSE or Streamable HTTP mode, it is recommended to run the server bound to `localhost` (default). - +The server does not support authentication, and runs with the privileges of the user running it. For this reason, when running in SSE or Streamable HTTP mode, it is recommended to run the server bound to `localhost` (default). ## Trademarks From c3f6cb356c9e722098212e9f8b7a879e5c3eb23b Mon Sep 17 00:00:00 2001 From: Noah Zhu <118643158+Noah-Zhuhaotian@users.noreply.github.com> Date: Wed, 27 Aug 2025 10:11:53 +1200 Subject: [PATCH 10/26] Adding support for data-src Attribute (#1226) * supportfordata-src --- packages/markitdown/src/markitdown/converters/_markdownify.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/markitdown/src/markitdown/converters/_markdownify.py b/packages/markitdown/src/markitdown/converters/_markdownify.py index d98bdfbd7..ee78541af 100644 --- a/packages/markitdown/src/markitdown/converters/_markdownify.py +++ b/packages/markitdown/src/markitdown/converters/_markdownify.py @@ -92,7 +92,7 @@ def convert_img( """Same as usual converter, but removes data URIs""" alt = el.attrs.get("alt", None) or "" - src = el.attrs.get("src", None) or "" + src = el.attrs.get("src", None) or el.attrs.get("data-src", None) or "" title = el.attrs.get("title", None) or "" title_part = ' "%s"' % title.replace('"', r"\"") if title else "" if ( From 459d462f29c672866e140594daafadfbdc7e30e4 Mon Sep 17 00:00:00 2001 From: Dmitry <98899785+mdqst@users.noreply.github.com> Date: Wed, 27 Aug 2025 01:15:23 +0300 Subject: [PATCH 11/26] docs: correct minor typos (#1173) --- packages/markitdown-mcp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/markitdown-mcp/README.md b/packages/markitdown-mcp/README.md index 022ba8dd8..9e03f1057 100644 --- a/packages/markitdown-mcp/README.md +++ b/packages/markitdown-mcp/README.md @@ -54,7 +54,7 @@ Once mounted, all files under data will be accessible under `/workdir` in the co It is recommended to use the Docker image when running the MCP server for Claude Desktop. -Follow [these instrutions](https://modelcontextprotocol.io/quickstart/user#for-claude-desktop-users) to access Claude's `claude_desktop_config.json` file. +Follow [these instructions](https://modelcontextprotocol.io/quickstart/user#for-claude-desktop-users) to access Claude's `claude_desktop_config.json` file. Edit it to include the following JSON entry: From 59eb60f8cba78103dd0004ec68785587d02d4f2a Mon Sep 17 00:00:00 2001 From: Yuzhong Zhang <141388234+BetterAndBetterII@users.noreply.github.com> Date: Wed, 27 Aug 2025 06:20:17 +0800 Subject: [PATCH 12/26] fix docx parse error(\n in alt) (#1163) --- packages/markitdown/src/markitdown/converters/_markdownify.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/markitdown/src/markitdown/converters/_markdownify.py b/packages/markitdown/src/markitdown/converters/_markdownify.py index ee78541af..e6a0dee54 100644 --- a/packages/markitdown/src/markitdown/converters/_markdownify.py +++ b/packages/markitdown/src/markitdown/converters/_markdownify.py @@ -95,6 +95,8 @@ def convert_img( src = el.attrs.get("src", None) or el.attrs.get("data-src", None) or "" title = el.attrs.get("title", None) or "" title_part = ' "%s"' % title.replace('"', r"\"") if title else "" + # Remove all line breaks from alt + alt = alt.replace("\n", " ") if ( convert_as_inline and el.parent.name not in self.options["keep_inline_images_in"] From 17365654c93c0002971cca7b171eafb8ef6e39e1 Mon Sep 17 00:00:00 2001 From: Richard Ye <33409792+richardye101@users.noreply.github.com> Date: Tue, 26 Aug 2025 18:28:17 -0400 Subject: [PATCH 13/26] Handle PPTX shapes where position is None (#1161) * Handle shapes where position is None * Fixed recursion error, and place no-coord shapes at front --- .../src/markitdown/converters/_pptx_converter.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/markitdown/src/markitdown/converters/_pptx_converter.py b/packages/markitdown/src/markitdown/converters/_pptx_converter.py index 087da32c5..360f17706 100644 --- a/packages/markitdown/src/markitdown/converters/_pptx_converter.py +++ b/packages/markitdown/src/markitdown/converters/_pptx_converter.py @@ -168,11 +168,23 @@ def get_shape_content(shape, **kwargs): # Group Shapes if shape.shape_type == pptx.enum.shapes.MSO_SHAPE_TYPE.GROUP: - sorted_shapes = sorted(shape.shapes, key=attrgetter("top", "left")) + sorted_shapes = sorted( + shape.shapes, + key=lambda x: ( + float("-inf") if not x.top else x.top, + float("-inf") if not x.left else x.left, + ), + ) for subshape in sorted_shapes: get_shape_content(subshape, **kwargs) - sorted_shapes = sorted(slide.shapes, key=attrgetter("top", "left")) + sorted_shapes = sorted( + slide.shapes, + key=lambda x: ( + float("-inf") if not x.top else x.top, + float("-inf") if not x.left else x.left, + ), + ) for shape in sorted_shapes: get_shape_content(shape, **kwargs) From 8a9d8f15936b2068bcb39ccc8d3b317f93784d86 Mon Sep 17 00:00:00 2001 From: Meirna <61427701+Meirna-kamal@users.noreply.github.com> Date: Wed, 27 Aug 2025 01:30:47 +0300 Subject: [PATCH 14/26] feat: add checkbox support to Markdown converter (#1208) This change introduces functionality to convert HTML checkbox input elements () into Markdown checkbox syntax ([ ] or [x]). Co-authored-by: Meirna Kamal --- .../src/markitdown/converters/_markdownify.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/markitdown/src/markitdown/converters/_markdownify.py b/packages/markitdown/src/markitdown/converters/_markdownify.py index e6a0dee54..19e8a2984 100644 --- a/packages/markitdown/src/markitdown/converters/_markdownify.py +++ b/packages/markitdown/src/markitdown/converters/_markdownify.py @@ -109,5 +109,18 @@ def convert_img( return "![%s](%s%s)" % (alt, src, title_part) + def convert_input( + self, + el: Any, + text: str, + convert_as_inline: Optional[bool] = False, + **kwargs, + ) -> str: + """Convert checkboxes to Markdown [x]/[ ] syntax.""" + + if el.get("type") == "checkbox": + return "[x] " if el.has_attr("checked") else "[ ] " + return "" + def convert_soup(self, soup: Any) -> str: return super().convert_soup(soup) # type: ignore From 447c047731974efc82257770b4e9308a6607425b Mon Sep 17 00:00:00 2001 From: afourney Date: Mon, 20 Oct 2025 15:54:05 -0700 Subject: [PATCH 15/26] Test if mammoth resolves rlinks. (#1451) --- packages/markitdown/pyproject.toml | 2 +- .../markitdown/tests/test_files/rlink.docx | Bin 0 -> 13708 bytes packages/markitdown/tests/test_module_misc.py | 48 ++++++++++++++++-- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100755 packages/markitdown/tests/test_files/rlink.docx diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index 0d9bb6167..3056c1c14 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -50,7 +50,7 @@ all = [ "azure-identity" ] pptx = ["python-pptx"] -docx = ["mammoth", "lxml"] +docx = ["mammoth~=1.10.0", "lxml"] xlsx = ["pandas", "openpyxl"] xls = ["pandas", "xlrd"] pdf = ["pdfminer.six"] diff --git a/packages/markitdown/tests/test_files/rlink.docx b/packages/markitdown/tests/test_files/rlink.docx new file mode 100755 index 0000000000000000000000000000000000000000..5afb49d2195393466d82f8732ac4c67a3669c671 GIT binary patch literal 13708 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 None: assert "# Test" in result.text_content +def test_doc_rlink() -> None: + # Test for: CVE-2025-11849 + markitdown = MarkItDown() + + # Document with rlink + docx_file = os.path.join(TEST_FILES_DIR, "rlink.docx") + + # Directory containing the target rlink file + rlink_tmp_dir = os.path.abspath(os.sep + "tmp") + + # Ensure the tmp directory exists + if not os.path.exists(rlink_tmp_dir): + pytest.skip(f"Skipping rlink test; {rlink_tmp_dir} directory does not exist.") + return + + rlink_file_path = os.path.join(rlink_tmp_dir, "test_rlink.txt") + rlink_content = "de658225-569e-4e3d-9ed2-cfb6abf927fc" + b64_prefix = ( + "ZGU2NTgyMjUtNTY5ZS00ZTNkLTllZDItY2ZiNmFiZjk" # base64 prefix of rlink_content + ) + + if os.path.exists(rlink_file_path): + with open(rlink_file_path, "r", encoding="utf-8") as f: + existing_content = f.read() + if existing_content != rlink_content: + raise ValueError( + f"Existing {rlink_file_path} content does not match expected content." + ) + else: + with open(rlink_file_path, "w", encoding="utf-8") as f: + f.write(rlink_content) + + try: + result = markitdown.convert(docx_file, keep_data_uris=True).text_content + assert ( + b64_prefix not in result + ) # Make sure the target file was NOT embedded in the output + finally: + os.remove(rlink_file_path) + + @pytest.mark.skipif( skip_remote, reason="do not run tests that query external urls", @@ -301,9 +342,9 @@ def test_markitdown_remote() -> None: assert test_string in result.text_content # Youtube - result = markitdown.convert(YOUTUBE_TEST_URL) - for test_string in YOUTUBE_TEST_STRINGS: - assert test_string in result.text_content + # result = markitdown.convert(YOUTUBE_TEST_URL) + # for test_string in YOUTUBE_TEST_STRINGS: + # assert test_string in result.text_content @pytest.mark.skipif( @@ -452,6 +493,7 @@ def test_markitdown_llm() -> None: test_markitdown_remote, test_speech_transcription, test_exceptions, + test_doc_rlink, test_markitdown_exiftool, test_markitdown_llm_parameters, test_markitdown_llm, From 3d4fe3cdcced195c7f6ce6d266dbf508aa147e54 Mon Sep 17 00:00:00 2001 From: afourney Date: Mon, 20 Oct 2025 16:07:39 -0700 Subject: [PATCH 16/26] Upgrade mammoth to 1.11.0 (#1452) --- packages/markitdown/pyproject.toml | 4 ++-- .../src/markitdown/converters/_docx_converter.py | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index 3056c1c14..8fe43ad62 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -36,7 +36,7 @@ dependencies = [ [project.optional-dependencies] all = [ "python-pptx", - "mammoth~=1.10.0", + "mammoth~=1.11.0", "pandas", "openpyxl", "xlrd", @@ -50,7 +50,7 @@ all = [ "azure-identity" ] pptx = ["python-pptx"] -docx = ["mammoth~=1.10.0", "lxml"] +docx = ["mammoth~=1.11.0", "lxml"] xlsx = ["pandas", "openpyxl"] xls = ["pandas", "xlrd"] pdf = ["pdfminer.six"] diff --git a/packages/markitdown/src/markitdown/converters/_docx_converter.py b/packages/markitdown/src/markitdown/converters/_docx_converter.py index 9cb2cbd5b..3975107b1 100644 --- a/packages/markitdown/src/markitdown/converters/_docx_converter.py +++ b/packages/markitdown/src/markitdown/converters/_docx_converter.py @@ -15,13 +15,6 @@ _dependency_exc_info = None try: import mammoth - import mammoth.docx.files - - def mammoth_files_open(self, uri): - warn("DOCX: processing of r:link resources (e.g., linked images) is disabled.") - return io.BytesIO(b"") - - mammoth.docx.files.Files.open = mammoth_files_open except ImportError: # Preserve the error and stack trace for later From dde250a456d178fe344fce17ef10d00fe929f680 Mon Sep 17 00:00:00 2001 From: afourney Date: Mon, 1 Dec 2025 10:11:24 -0800 Subject: [PATCH 17/26] Bump versions of mammoth and pdfminer.six (#1492) * Updated pyproject to require a minimum version of pdfminer.six to ensure CVE-2025-64512 is patched. --- packages/markitdown/pyproject.toml | 2 +- packages/markitdown/src/markitdown/__about__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index 8fe43ad62..8ca9b11b9 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -41,7 +41,7 @@ all = [ "openpyxl", "xlrd", "lxml", - "pdfminer.six", + "pdfminer.six>=20251107", "olefile", "pydub", "SpeechRecognition", diff --git a/packages/markitdown/src/markitdown/__about__.py b/packages/markitdown/src/markitdown/__about__.py index 4441f3f98..4c8b68f6d 100644 --- a/packages/markitdown/src/markitdown/__about__.py +++ b/packages/markitdown/src/markitdown/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2024-present Adam Fourney # # SPDX-License-Identifier: MIT -__version__ = "0.1.3" +__version__ = "0.1.4" From 251dddcf0cffec467d72837fc5dd0b10f08df98e Mon Sep 17 00:00:00 2001 From: lesyk Date: Thu, 8 Jan 2026 01:38:45 +0100 Subject: [PATCH 18/26] [MS] Update PDF table extraction to support aligned Markdown (#1499) * Added PDF table extraction feature with aligned Markdown (#1419) * Add PDF test files and enhance extraction tests - Added a medical report scan PDF for testing scanned PDF handling. - Included a retail purchase receipt PDF to validate receipt extraction functionality. - Introduced a multipage invoice PDF to test extraction of complex invoice structures. - Added a borderless table PDF for testing inventory reconciliation report extraction. - Implemented comprehensive tests for PDF table extraction, ensuring proper structure and data integrity. - Enhanced existing tests to validate the order and presence of extracted content across various PDF types. * fix: update dependencies for PDF processing and improve table extraction logic * Bumped version of pdfminer.six --------- Authored-by: Ashok --- .gitignore | 1 + packages/markitdown/pyproject.toml | 7 +- .../markitdown/converters/_pdf_converter.py | 431 ++++++++- ...DRPT-2024-PAT-3847_medical_report_scan.pdf | Bin 0 -> 282554 bytes ...RECEIPT-2024-TXN-98765_retail_purchase.pdf | Bin 0 -> 8459 bytes .../REPAIR-2022-INV-001_multipage.pdf | Bin 0 -> 176629 bytes .../SPARSE-2024-INV-1234_borderless_table.pdf | Bin 0 -> 19649 bytes packages/markitdown/tests/test_pdf_tables.py | 871 ++++++++++++++++++ 8 files changed, 1289 insertions(+), 21 deletions(-) create mode 100644 packages/markitdown/tests/test_files/MEDRPT-2024-PAT-3847_medical_report_scan.pdf create mode 100644 packages/markitdown/tests/test_files/RECEIPT-2024-TXN-98765_retail_purchase.pdf create mode 100644 packages/markitdown/tests/test_files/REPAIR-2022-INV-001_multipage.pdf create mode 100644 packages/markitdown/tests/test_files/SPARSE-2024-INV-1234_borderless_table.pdf create mode 100644 packages/markitdown/tests/test_pdf_tables.py diff --git a/.gitignore b/.gitignore index aa4abd389..15613ea8a 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ coverage.xml .hypothesis/ .pytest_cache/ cover/ +.test-logs/ # Translations *.mo diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index 8ca9b11b9..701a461f2 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -41,19 +41,20 @@ all = [ "openpyxl", "xlrd", "lxml", - "pdfminer.six>=20251107", + "pdfminer.six>=20251230", + "pdfplumber>=0.11.9", "olefile", "pydub", "SpeechRecognition", "youtube-transcript-api~=1.0.0", "azure-ai-documentintelligence", - "azure-identity" + "azure-identity", ] pptx = ["python-pptx"] docx = ["mammoth~=1.11.0", "lxml"] xlsx = ["pandas", "openpyxl"] xls = ["pandas", "xlrd"] -pdf = ["pdfminer.six"] +pdf = ["pdfminer.six>=20251230", "pdfplumber>=0.11.9"] outlook = ["olefile"] audio-transcription = ["pydub", "SpeechRecognition"] youtube-transcription = ["youtube-transcript-api"] diff --git a/packages/markitdown/src/markitdown/converters/_pdf_converter.py b/packages/markitdown/src/markitdown/converters/_pdf_converter.py index 63162d523..b692f169f 100644 --- a/packages/markitdown/src/markitdown/converters/_pdf_converter.py +++ b/packages/markitdown/src/markitdown/converters/_pdf_converter.py @@ -1,22 +1,18 @@ import sys import io - from typing import BinaryIO, Any - from .._base_converter import DocumentConverter, DocumentConverterResult from .._stream_info import StreamInfo from .._exceptions import MissingDependencyException, MISSING_DEPENDENCY_MESSAGE - -# Try loading optional (but in this case, required) dependencies -# Save reporting of any exceptions for later +# Load dependencies _dependency_exc_info = None try: import pdfminer import pdfminer.high_level + import pdfplumber except ImportError: - # Preserve the error and stack trace for later _dependency_exc_info = sys.exc_info() @@ -28,16 +24,374 @@ ACCEPTED_FILE_EXTENSIONS = [".pdf"] +def _to_markdown_table(table: list[list[str]], include_separator: bool = True) -> str: + """Convert a 2D list (rows/columns) into a nicely aligned Markdown table. + + Args: + table: 2D list of cell values + include_separator: If True, include header separator row (standard markdown). + If False, output simple pipe-separated rows. + """ + if not table: + return "" + + # Normalize None → "" + table = [[cell if cell is not None else "" for cell in row] for row in table] + + # Filter out empty rows + table = [row for row in table if any(cell.strip() for cell in row)] + + if not table: + return "" + + # Column widths + col_widths = [max(len(str(cell)) for cell in col) for col in zip(*table)] + + def fmt_row(row: list[str]) -> str: + return ( + "|" + + "|".join(str(cell).ljust(width) for cell, width in zip(row, col_widths)) + + "|" + ) + + if include_separator: + header, *rows = table + md = [fmt_row(header)] + md.append("|" + "|".join("-" * w for w in col_widths) + "|") + for row in rows: + md.append(fmt_row(row)) + else: + md = [fmt_row(row) for row in table] + + return "\n".join(md) + + +def _extract_form_content_from_words(page: Any) -> str | None: + """ + Extract form-style content from a PDF page by analyzing word positions. + This handles borderless forms/tables where words are aligned in columns. + + Returns markdown with proper table formatting: + - Tables have pipe-separated columns with header separator rows + - Non-table content is rendered as plain text + + Returns None if the page doesn't appear to be a form-style document, + indicating that pdfminer should be used instead for better text spacing. + """ + words = page.extract_words(keep_blank_chars=True, x_tolerance=3, y_tolerance=3) + if not words: + return None + + # Group words by their Y position (rows) + y_tolerance = 5 + rows_by_y: dict[float, list[dict]] = {} + for word in words: + y_key = round(word["top"] / y_tolerance) * y_tolerance + if y_key not in rows_by_y: + rows_by_y[y_key] = [] + rows_by_y[y_key].append(word) + + # Sort rows by Y position + sorted_y_keys = sorted(rows_by_y.keys()) + page_width = page.width if hasattr(page, "width") else 612 + + # First pass: analyze each row + row_info: list[dict] = [] + for y_key in sorted_y_keys: + row_words = sorted(rows_by_y[y_key], key=lambda w: w["x0"]) + if not row_words: + continue + + first_x0 = row_words[0]["x0"] + last_x1 = row_words[-1]["x1"] + line_width = last_x1 - first_x0 + combined_text = " ".join(w["text"] for w in row_words) + + # Count distinct x-position groups (columns) + x_positions = [w["x0"] for w in row_words] + x_groups: list[float] = [] + for x in sorted(x_positions): + if not x_groups or x - x_groups[-1] > 50: + x_groups.append(x) + + # Determine row type + is_paragraph = line_width > page_width * 0.55 and len(combined_text) > 60 + + row_info.append( + { + "y_key": y_key, + "words": row_words, + "text": combined_text, + "x_groups": x_groups, + "is_paragraph": is_paragraph, + "num_columns": len(x_groups), + } + ) + + # Collect ALL x-positions from rows with 3+ columns (table-like rows) + # This gives us the global column structure + all_table_x_positions: list[float] = [] + for info in row_info: + if info["num_columns"] >= 3 and not info["is_paragraph"]: + all_table_x_positions.extend(info["x_groups"]) + + if not all_table_x_positions: + return None + + # Compute global column boundaries + all_table_x_positions.sort() + global_columns: list[float] = [] + for x in all_table_x_positions: + if not global_columns or x - global_columns[-1] > 30: + global_columns.append(x) + + # Too many columns suggests dense text, not a form + if len(global_columns) > 8: + return None + + # Now classify each row as table row or not + # A row is a table row if it has words that align with 2+ of the global columns + for info in row_info: + if info["is_paragraph"]: + info["is_table_row"] = False + continue + + # Count how many global columns this row's words align with + aligned_columns: set[int] = set() + for word in info["words"]: + word_x = word["x0"] + for col_idx, col_x in enumerate(global_columns): + if abs(word_x - col_x) < 40: + aligned_columns.add(col_idx) + break + + # If row uses 2+ of the established columns, it's a table row + info["is_table_row"] = len(aligned_columns) >= 2 + + # Find table regions (consecutive table rows) + table_regions: list[tuple[int, int]] = [] # (start_idx, end_idx) + i = 0 + while i < len(row_info): + if row_info[i]["is_table_row"]: + start_idx = i + while i < len(row_info) and row_info[i]["is_table_row"]: + i += 1 + end_idx = i + table_regions.append((start_idx, end_idx)) + else: + i += 1 + + # Check if enough rows are table rows (at least 20%) + total_table_rows = sum(end - start for start, end in table_regions) + if len(row_info) > 0 and total_table_rows / len(row_info) < 0.2: + return None + + # Build output - collect table data first, then format with proper column widths + result_lines: list[str] = [] + num_cols = len(global_columns) + + # Helper function to extract cells from a row + def extract_cells(info: dict) -> list[str]: + cells: list[str] = ["" for _ in range(num_cols)] + for word in info["words"]: + word_x = word["x0"] + # Find the correct column using boundary ranges + assigned_col = num_cols - 1 # Default to last column + for col_idx in range(num_cols - 1): + col_end = global_columns[col_idx + 1] + if word_x < col_end - 20: + assigned_col = col_idx + break + if cells[assigned_col]: + cells[assigned_col] += " " + word["text"] + else: + cells[assigned_col] = word["text"] + return cells + + # Process rows, collecting table data for proper formatting + idx = 0 + while idx < len(row_info): + info = row_info[idx] + + # Check if this row starts a table region + table_region = None + for start, end in table_regions: + if idx == start: + table_region = (start, end) + break + + if table_region: + start, end = table_region + # Collect all rows in this table + table_data: list[list[str]] = [] + for table_idx in range(start, end): + cells = extract_cells(row_info[table_idx]) + table_data.append(cells) + + # Calculate column widths for this table + if table_data: + col_widths = [ + max(len(row[col]) for row in table_data) for col in range(num_cols) + ] + # Ensure minimum width of 3 for separator dashes + col_widths = [max(w, 3) for w in col_widths] + + # Format header row + header = table_data[0] + header_str = ( + "| " + + " | ".join( + cell.ljust(col_widths[i]) for i, cell in enumerate(header) + ) + + " |" + ) + result_lines.append(header_str) + + # Format separator row + separator = ( + "| " + + " | ".join("-" * col_widths[i] for i in range(num_cols)) + + " |" + ) + result_lines.append(separator) + + # Format data rows + for row in table_data[1:]: + row_str = ( + "| " + + " | ".join( + cell.ljust(col_widths[i]) for i, cell in enumerate(row) + ) + + " |" + ) + result_lines.append(row_str) + + idx = end # Skip to end of table region + else: + # Check if we're inside a table region (not at start) + in_table = False + for start, end in table_regions: + if start < idx < end: + in_table = True + break + + if not in_table: + # Non-table content + result_lines.append(info["text"]) + idx += 1 + + return "\n".join(result_lines) + + +def _extract_tables_from_words(page: Any) -> list[list[list[str]]]: + """ + Extract tables from a PDF page by analyzing word positions. + This handles borderless tables where words are aligned in columns. + + This function is designed for structured tabular data (like invoices), + not for multi-column text layouts in scientific documents. + """ + words = page.extract_words(keep_blank_chars=True, x_tolerance=3, y_tolerance=3) + if not words: + return [] + + # Group words by their Y position (rows) + y_tolerance = 5 + rows_by_y: dict[float, list[dict]] = {} + for word in words: + y_key = round(word["top"] / y_tolerance) * y_tolerance + if y_key not in rows_by_y: + rows_by_y[y_key] = [] + rows_by_y[y_key].append(word) + + # Sort rows by Y position + sorted_y_keys = sorted(rows_by_y.keys()) + + # Find potential column boundaries by analyzing x positions across all rows + all_x_positions = [] + for words_in_row in rows_by_y.values(): + for word in words_in_row: + all_x_positions.append(word["x0"]) + + if not all_x_positions: + return [] + + # Cluster x positions to find column starts + all_x_positions.sort() + x_tolerance_col = 20 + column_starts: list[float] = [] + for x in all_x_positions: + if not column_starts or x - column_starts[-1] > x_tolerance_col: + column_starts.append(x) + + # Need at least 3 columns but not too many (likely text layout, not table) + if len(column_starts) < 3 or len(column_starts) > 10: + return [] + + # Find rows that span multiple columns (potential table rows) + table_rows = [] + for y_key in sorted_y_keys: + words_in_row = sorted(rows_by_y[y_key], key=lambda w: w["x0"]) + + # Assign words to columns + row_data = [""] * len(column_starts) + for word in words_in_row: + # Find the closest column + best_col = 0 + min_dist = float("inf") + for i, col_x in enumerate(column_starts): + dist = abs(word["x0"] - col_x) + if dist < min_dist: + min_dist = dist + best_col = i + + if row_data[best_col]: + row_data[best_col] += " " + word["text"] + else: + row_data[best_col] = word["text"] + + # Only include rows that have content in multiple columns + non_empty = sum(1 for cell in row_data if cell.strip()) + if non_empty >= 2: + table_rows.append(row_data) + + # Validate table quality - tables should have: + # 1. Enough rows (at least 3 including header) + # 2. Short cell content (tables have concise data, not paragraphs) + # 3. Consistent structure across rows + if len(table_rows) < 3: + return [] + + # Check if cells contain short, structured data (not long text) + long_cell_count = 0 + total_cell_count = 0 + for row in table_rows: + for cell in row: + if cell.strip(): + total_cell_count += 1 + # If cell has more than 30 chars, it's likely prose text + if len(cell.strip()) > 30: + long_cell_count += 1 + + # If more than 30% of cells are long, this is probably not a table + if total_cell_count > 0 and long_cell_count / total_cell_count > 0.3: + return [] + + return [table_rows] + + class PdfConverter(DocumentConverter): """ - Converts PDFs to Markdown. Most style information is ignored, so the results are essentially plain-text. + Converts PDFs to Markdown. + Supports extracting tables into aligned Markdown format (via pdfplumber). + Falls back to pdfminer if pdfplumber is missing or fails. """ def accepts( self, file_stream: BinaryIO, stream_info: StreamInfo, - **kwargs: Any, # Options to pass to the converter + **kwargs: Any, ) -> bool: mimetype = (stream_info.mimetype or "").lower() extension = (stream_info.extension or "").lower() @@ -55,9 +409,8 @@ def convert( self, file_stream: BinaryIO, stream_info: StreamInfo, - **kwargs: Any, # Options to pass to the converter + **kwargs: Any, ) -> DocumentConverterResult: - # Check the dependencies if _dependency_exc_info is not None: raise MissingDependencyException( MISSING_DEPENDENCY_MESSAGE.format( @@ -65,13 +418,55 @@ def convert( extension=".pdf", feature="pdf", ) - ) from _dependency_exc_info[ - 1 - ].with_traceback( # type: ignore[union-attr] + ) from _dependency_exc_info[1].with_traceback( _dependency_exc_info[2] - ) + ) # type: ignore[union-attr] - assert isinstance(file_stream, io.IOBase) # for mypy - return DocumentConverterResult( - markdown=pdfminer.high_level.extract_text(file_stream), - ) + assert isinstance(file_stream, io.IOBase) + + markdown_chunks: list[str] = [] + + # Read file stream into BytesIO for compatibility with pdfplumber + pdf_bytes = io.BytesIO(file_stream.read()) + + try: + # Track how many pages are form-style vs plain text + form_pages = 0 + plain_pages = 0 + + with pdfplumber.open(pdf_bytes) as pdf: + for page in pdf.pages: + # Try form-style word position extraction + page_content = _extract_form_content_from_words(page) + + # If extraction returns None, this page is not form-style + if page_content is None: + plain_pages += 1 + # Extract text using pdfplumber's basic extraction for this page + text = page.extract_text() + if text and text.strip(): + markdown_chunks.append(text.strip()) + else: + form_pages += 1 + if page_content.strip(): + markdown_chunks.append(page_content) + + # If most pages are plain text, use pdfminer for better text handling + if plain_pages > form_pages and plain_pages > 0: + pdf_bytes.seek(0) + markdown = pdfminer.high_level.extract_text(pdf_bytes) + else: + # Build markdown from chunks + markdown = "\n\n".join(markdown_chunks).strip() + + except Exception: + # Fallback if pdfplumber fails + pdf_bytes.seek(0) + markdown = pdfminer.high_level.extract_text(pdf_bytes) + + # Fallback if still empty + if not markdown: + pdf_bytes.seek(0) + markdown = pdfminer.high_level.extract_text(pdf_bytes) + + return DocumentConverterResult(markdown=markdown) diff --git a/packages/markitdown/tests/test_files/MEDRPT-2024-PAT-3847_medical_report_scan.pdf b/packages/markitdown/tests/test_files/MEDRPT-2024-PAT-3847_medical_report_scan.pdf new file mode 100644 index 0000000000000000000000000000000000000000..30e1960a09e84a0b067f4388436958abe5f6ce40 GIT binary patch literal 282554 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�K~o`F+5hwsCLYlX;J1 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 P0!;}41=!e>w3PoB5pwN8 literal 0 HcmV?d00001 diff --git a/packages/markitdown/tests/test_files/RECEIPT-2024-TXN-98765_retail_purchase.pdf b/packages/markitdown/tests/test_files/RECEIPT-2024-TXN-98765_retail_purchase.pdf new file mode 100644 index 0000000000000000000000000000000000000000..34842dc78b8c21b6cc0e534d6374b66ec0770ccc GIT binary patch literal 8459 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 literal 0 HcmV?d00001 diff --git a/packages/markitdown/tests/test_files/REPAIR-2022-INV-001_multipage.pdf b/packages/markitdown/tests/test_files/REPAIR-2022-INV-001_multipage.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c795d9e1b8f618b9544c8b6ab19fbc618c877021 GIT binary patch literal 176629 zcmcG#1z4O(@;E$r@Zc6CxDW15aCe6wgS!NG4ekVo5Zp;{cM0yUAy^=|%Qs|qZ+E}D z``L55=@E z3hQ5}$f-yv8ps+NfvgR1~z6xQwDBkLn8(j6Ha3jCT3<6BR0$4#vn)P$0vXszye?la0J)^oWR8t z;0&k$kO0I0Zs1lB!1~vdDY(ZG-1^V3Bmhpd=Sco_Z9Ol(e_Ekn3ji-^ z=ig008RTT=;s{>gU^@|WbCytX22T^XE}_Cs@@vt8YuqH<&+Aq|04NUD2e?z5ndFx> z0L58In3L@o5s-vN;ll`-t#_m8-72q4tI}2lwvV;hjuBxGt6Hw)^)ATIo-=^sw69E*F1IpVu z+89~`jSWed|BCcH`X5N*7S_%nN1(Vhc<$bSjO|Q7Kv|HjnX@@~*I;FP#&U87uR3^O7B>TMf8smbd!a0zTRf0 zuI^YC!L!0|gV9}G+it$sd`{6w;Y{N<>6b8kX*DQvUGL2$5bi<}Wkf3#pvaQ?L8v#f zA0lR+gI}QO35KUinl}&XH6AA)Q-A{=`A2gqQ4I1Lb99<}b-PXRIJA3UDm;{NRdBef z6XqN_0#t?S=O|+FG@)b2b4DrMGm?rIwEfptCul7RXe!k&*vzEEI^IMg-Xjxu-vpP( z#OSXP5x07L#X}7ouUfj>B9mWsz=o0Ykt(zOa2VF*h-z88f?Zts0$G zw`WZ+Va<=%pNGYlzvWxKZOT3o$*MYrg_hUl0F#0iF79Ymo{wy9_=VAMK+R3{MPEWCJ867xcv1E%L&_Yj;gn|$663vikb-g7_}s2SSToYphn_fcPdjbR~H6-4+j5q9#2jMh%7IqRD7wA&sjI7( zOFJ(Zs!=5!j0>K=I)5I87=eAPkppC_utE47vULmbwCw3L2#_Ia!g_NtVXPiAy#Kbi z^Ah7^7ek=UGa{xEt)BvB5N`Y_V=LxdZ8MbiBh`Kv-ad)DuwIZDgWW7b`gXx*(nV2y zVjzRN!S{$3Gl67y==Eb#Axivajc*);Sa~%2nWg`_=s8>gc46nRgXxa+a53C%OkN$!XKTeRFuA zBk68AO6cS_LSs%j9K3>$UezLLr^wso-O5`Jd152I=${z$l813+l6 zH{Yt|H$lt#ll&cOs`u!0yi}ZXSGF7nDTD&9zRggq@m2Wx94_l;;vWy!Y^3==Zv)JU zPnyp!QI^ryYCjRt4tUy%D!RNLyO04d5X%@vymtufOeaX$0zu64-YIvJWx`1W+8RF% zSNLrfpv4zfqF(nUk&;0k4Dbhaz8abXxn znu5#A(|`ZCi4GGak=yV>9^1$2z5gTHnQH<#_&D?z8X@g6Ne} zf{_7s#^OHs*%N0zQRGxXqJ}I`56bRBw1#r;n!-BN0-M2-Tky z<7qwMalI5)ZQc_lGzRNaeZCBE{NBgU4*GJR{Q z=+!iflLnHU7hk6aG%H!Sj8h(Ry6M(?r}av481T`l<6dZJ|etaLx* zrs!*V~O2Rf+#t0_7R;+)DEEiN;&;RNi-umh(nlojdfO(F&=FHqNy~a1$ z7LiSDrWC$)j*k-Ii*nL*E#nWnOqcLLw-48o;WVu0U-k#idugK$K4YZ47+r0rYHc2m z=e$0*A#@RgQu?GhYHkt}xX3q+G}}*@uf$dxBN~J_MY0gY^Da`q;p0E;9U+ z)JoQ@bjlb=0YSuj(5UY7D;PvF0wOR~6zy5`?^b0>bzKwd?xU}OhK(;Q%8lbm!gVO< ziK6&Gj4ITw1TQsyYJ3nqDo$Ie(B(!{n`?rpaGXHz6hlD#-Z~*gI2m_m>zw@%?%4K$ zad2M~VN$No6CugRyls@j@TFMWD0W=Cymo&G8~X>DT|e>k`8nj#v?snhuRfvUg*Ax5 zL-spo2m^sEJ@5TDFQr}#8eO2lZH)E`lmR~8o|4JN>JZ{--cKuh315x{9^ugVWL7&N zRgFyAa)1V2P#^|VRY8)$Ld|ADxss}(9nsyhDHDAag4dk1N6Ow$Th_OJ>x?>Pi(HeQ zQSvGA?N01Wb=3g^iO^DaS2cK5w({N1^EbF zw-w(r?jt|Q`hwPu--Wz_cWrzh{CX2bLG+&e2bW9fvgP-tZ0)v$Me;D@sazzZRfM>h z#P|8lE8ku5G@Lsv_&XIt1V7}HX_ik~q9C%rUC|2_vTX0nfbm|vA7Zq%?ZhrzE-_w4 zt|$I>A%tGUs?MPsS~{1{-RE{-&FOxI@$iUI$8dvPA1kr)XB#5&+2@R z2mMW*zufA7lK0;k9P8gSBk`wZ7=ByC|8oWXV&vZ{=ueyb-L?OVg8mxP`o|9OZxr+| zIQ*A-Vqj+eUmM=vG{w!u_E*FEpJu<@lSXevgFwLs`G# zA-^qcaA<%V_`BsZbFhNL8rF7>D)xrPpg*G(z~{i1BFItH&c@!(_IcCc0xRTKtl^EQ z>hF;TDR79)(cbPk_CWF+2>c`Tz`@D+x6s4W{L?z%rL?$|H~<0y0uT%S13WDOL;=X~ z2#5$TkP#6PQBjazV!p=0L`TP@CM3dr%|r{HLRv-!HeMMaHZBQn21XGr5ea!kRW(&s zK|Nz#Wg{6CRi$Sl5Gbgqm}r<(SXfj_9E==F|Lf0F2LSB_AP)iu3W5{>i3S0M2JzGb zAO-*+V8GlyGyMAp0ul-u1{UrGm}xLT?Mnb81QZk`G!zUBG&C668{7|oMuS0r%`6Oy zp=1b0>VV1OAD8=rOr*LKOL^j$oYlxN03HDw2Nw^Yf|81whL(+;gOiJ!2mE>xmync_ zR#8<`*U;3`HZ}p7nweWzIyt+%b9Hm~2n-4i2@QK69-okyl$`P*HSJ^Gr~HD#qT-U8 z&tGcm>KhuHy1ILM`}zk4hbE_{XJ+T-7Zx`*x4vzE-`U;UKRG=+zqq`*zPWvt3jzT3 zn^^yl?Efbh8dxq!XlN*CxM#T_AYH))3Jn_OH8U)_uo9f10|qIJ{|ii!xZLVacrsSy zV=N=b2?T6%whfAtXVHF1_CFIW;Qu7qKLqN{ zc9c&VDg|7$r*~AYV(xn4seBe5c~?!m*;kH&`9zcCEm)wb6A243M~kg6xZ4MwP3D^?K(K|yBh4gm zo>bRe-h)2R?qIT59$1`MHDgq{>jYmjb!h}Hm(eHm&%0>+IswTQ3icv1{UIa44 zXcNdd=HbaL(*Bq#;VCFL%NPE>B8?;H0!P0ltegJ?h>;SPAZ?c?hCp#kSh z_V~N4)2&}$p$>hqxhO~HnxqDjyn#Z<^P}zBzqNuCduS)BfshmDt#{&{DM?}AI;}h? z?y;OruDM>ElKrv0YvBzQEJuB2#< zG?{DP9`2jMwqC*Kq9=fv1rAPiQBoct7;f7C#z`9cvvrFGPXU%SVG zKz`b|u_m_UgkEkLYW{&6ZcodJy1C!DeqOayVPW>ViFN)R@JeD^y!UbUzLZSt1S`7O zvJ50y*guBB@j_trnFfVT(VtD-?~NA8;{V(M+Aj>ttY_PGV#^1;*T!A6ITuHoj{G_oiXzf-@@ps`n5<; z_0gmvueAC3{L*S5E-JGoB{8ma}j+-WRuX_3DY= zcRVv1hS}`zTPp28hSP}#QGW~v{I$>xdMVk@36Qp$TK|ac;}1A_pqnKO5FhoRCZCJY z9iGEc9$oX$VD$O)y{h6|^1^XoRXL6jtJKEK(9S#sKO_Dq(Ugm{@34K9{G2FB{*n%4 zNRbgeUT;Rsk}Z00QQ=9{Rg_*sr>s1wOs^=pD|xHZvcM#M*}2au_bCVFW4JUxQIZ=D zHpSD|?a}$p%DrMo(`M6x+%`NfZL;ZjwbTkCO~$$;vPv9DW1r^JYLE0M(nG4^q{j9Z zUmn?P73IY@2`jxw@nLbxG>%+~o^wX40Ha1ZG4IdB#G@rlj`O4C9?oeh@3=Cuwdsnp zJDSp*Fsmd5^5sl*udOue20d{=7qXnExm_|j5@^yoQh02T!UJ4|GMKS#gU06bzKBTp zAmO&{133ew8nPc(jydNm{o8sd*;~y6VLJ2ZE=ONa>#sFliz#O$4|f$1B`JhcRqXLx zW|t!AjJ#(aw(Iu2*dK1n3}Rt(TosBggwg6CZAq7?Z)%!h*!XOekbI--i^4s&p$F_C zB&(i32gRx!*8-~#S>K1l7*Q#FgU8OxN;(eXj{$s>|8!yGOdP6v*C9lUmoj!H2HRLEz+2mp~_0rnCC#}e~kCz zG;XpX5RcT!tgp{$mgM>5-T^hmMfo|<5<4=*U=PifTk8dxV3gG!_F#!y$t>92XYNZ? znR*czGwf5l>k%Bud5OL#9cWwuN9=q_S|9l;?z>t~Ur@Z|)l8P46Lp#~wNP;5TUc1n z&3ZOF?6ti(dK8!*#10L<%JDgY-HCyLZlq6vQd%@@N6|Nv!IGzgdW7G61pQ)GHMs;P zp&qEy`;WuM5{$O*Y<=hgKUOXde7_AwJiJbJA=ta1TVSjpU=b`7;)PJNu%P1~?MYON z1#bo+3TCeSNnOi2lEz6+Ay^X&3XFvt$a;*KpWMi`X6CT3$Z9Z zBhUy9Ld`a>T?;X^@7x;PeNz)h(ZN&iQOUD)ZS0t<+7&znOtl{@3O+zxUfAgfvoeICXgp(_c54=lYqRKJOC% z$?8mZ5j}QThRm2&n0wJDDcINBp=hOcWIFwu?PK6%YqI24(z}81gWYa+xOw^~z|Ji2 zZe5)*!IK|VIZJ?9YKYTQcl{piW5iN@OOqdenWdU&WT^2Y*4)>Pa(w+dG~itx@ldT2 z7A7sV8X*9))*(Q;pTSynUm=zE)sHsB34^0va= zMMgdA%stSS9~3--fo9I5#Y(rEQIhSHN(~944avI3p2_{w)6M`X08+wYD_NHharl}f zs<(9v+ekY~BP}oL!SyUtL^?mh#a3wW!uNBHs!Re|+dAx>M*y`Rfs8@3p{?NIhjRYF zBL`oL?i;Od@C5D4;&wSB^s!&@L*l8#sPI4}8eb?{n2S{3W1@75sm+|1dTYqXkAgaE z)%>;+@)**)hJ~j0GNgz|TA(Vu@dU;?H0%XEB+a_ZPl*yHlH1 zsriy0Er=vus|jJQq_xMXpEWcpuz1-cFitGw)9mmqECWjy z9#p>>0@JPt(o9G)1((H3wD~x-^U~`Je#XUHU?ZR5$*yNi$2X14dyOfRkfSBFpeiYe zBudm16ybYuUs{N|D}H9v_e+)ok={^H3YCE4%W}qqibefY+)s|kTl}iWYq{({hdQTO zVpSspc*kE`l#^1ex)>Dq^0a7dqEsw~hMP%#5>P8T#er+MTPqe!0(dfIp$nnsQu%Qr z#J2=)WTjK)ZeqC7n1+nFp1Lu*8SMKaT-*XghFUdIi*tAq{5rDB-CUzw3TM1zoamM7 z+ojg(|)zW9R>8 zE&f%rgSpXe`gn0BQGIxtCTI#D{a6Jzh$eh@ajc#IKEWWjcw&@YeA$!)i+7PvfOpjQ z)hV`JO)~E{YwP1TUD0~+lTG;nSQ~AOCzx%oXVPrd7x~K2vbv}5(g3|#Dr`ULV3dDo z2IE2r1hi6Z6b4_?9;8&?4+~Djg$h4B0gfxII#%&)d{xefLbf!2%KJ@5cVz1IH%IFSzD*>b#?U=k1QU?sp-9LAUkkAg50QYiv{_VZ=vS zdB=jIO=FmQqFTonE6J>6l)DcZj)L7MmAJ(&~4y9@Wi&+NkR6)p|l?@%{{>|E_#KWyCW zoM9Com#W-x)N^DV1~tiooemrKN3HuJsL6{JVdrw}qlfCd4}*%H^+JMt8e{RiQe=`p zv_8a39a&8a(C=sIB^4w_oyo3R2R_7g+>iRwuHOUm3C()2li!$fcu)E^a0_l+kHeLD z2~7Id+%rSC^voHw`|A7b-dEqG)owB9+!1$cXwc55&J9I8eBToE8@#8p2IK&k-~bwl z_i8h3QzhN`eGAbut^;saOZTvXtU|A7$z(|T!nKzD0Q*v-&^ogkCH%2|`9sX6j!vje)qq#AH%Gm1$ND4I(KG;jF8D8s(<5(d zL)CHAkIPBi?Hfg=eJCclb2f+`FYyzNr5zj6K8175^sCXr2V;~q;roNwi7(BWW-1|l zGmfW3IyKSX9%xgvy;#3OVTXuEh4ra!`UwO~d?~ddkOhO-$3;u+_cyY8w7q+rY9JnPtU2Sep_bf^>=)AXaDsm;3 z7(Ekm?rd@OYG&m4mpa5SyY`x$NVi_-LvbZ7ku9H%6KfAFB)fFWiX^EB2&5M&};_t*|Kl@%?IGArar;fhk%&3a7{7x{eGY2t?9{jGTyBBuy z_;kY!|B^q^`Tj;Q>fI9n{ydv;_CO=f$3h_i?FnGw*nie>Pd9wH5&wOYi&Sq?vJ*?f zQ69z{F3;j*Pg|@!$ScekL817_7b8Ik!$7as*qDF0AFV5RX&1)p!q=7I;r=S&)gWt% zUC&(6^8z0EBw8RoAHP>GAlT5p>2QO8hRiW4C!thV6Y+D5MEEda)(_9d-NjsUNmmNx zXKQuXh`^RoTVur6tRo8*?!_a?N*e_@H+LnCJ4Pt~$fR$RPk^r18$WMhbih6a8^i|I zQ5O76d+j}|6)T5nm^;f8pr!Q*fEIW?m+W>RAxF@YAPQ~Bkgr59%>(d=8OEQ#)++T* z(Mpkvt0r9BW_`E-1A{|FaOMBi(pK}lBd`&lD7W3zGW5b0-?ew7?Zt!$1|I_KLc#ku z>bAuF>s7)hK#nePlEdv2AlyasUe3W4L?0?MRS=CAr!cgfv9m8soa6zU>k@_V{b*6) z=A8wZ!{Z*wIIQoVxWvbyZmy61_C9LF{=lPJLBviMcba5VSC|+tX2>EpDCKFFO2kze z7v~YDofe0o?xXu~iEr}eP`T4=dYmen$(NJdK_o#)to4No18P>ji00~ZXk#epkTL|Y z>WBkmxfL8&kLVE!m|Es$Juq4OESpM1kPk--;7H3wMT**V#XZ9Y6#rpIYpY7N37y|? z&lcIdFD+otyaJYxsxL*`ZCbv;xWVNNd+wEo|E?hI%CUYsWozD-6k6;fxYGiFF;#W{ z4R~8gOHL@sS7Q)v~jwskKCoov()`z zi4UjFf&6#n^TplHl(S58LtK_>dG)%(1$(YAAQCMNa9U2++m^flm_6Q%ZRtt9p`s8L z_@q1zhgB|0=cP13p_$QF^-`Cn;|ZWOJzE*gW>GtaB4cAWd{ULn{&<47bxPTUgtP<2 zrU(aRwY53CC?Ic@CceVg6a z#efKXUiJc#v!4FFh&5PG%a zmj!!V+azi^J4U3g3L;54TD};AZMhP|SF2o{)0_Y@=3BfMmmGzhs{z0X!A(ZJf0(#Y zgcG!Ig83Oxft>WI?zsF*wFFW`2(B`Z2Hl1rY(e41Zb3^+Tc9VCl?$&1;1(^*YSItz z79v~`fD45QG2qsyA$+Vf#a8Mr=y?~UIb97n?RgOQ<@s)RPqry}&s2A+V0&4YGg?J@ zzkVu@!lFRgs_5t8XJHPNUe}tgdhN@0+PAq;_DKpWF@zB_u)p1)FYnqHGtP~2fjla% zGiBQ_@M^Ki9)JrlN(8_HI&x5nC-^8ha@UuZdaa(Pp-#lHWSurEtB_p7bDf674pE0( zy-_vV%tj6Pe^8*F7XD=l!LM}qzx`15oI3yiBr*9v zmX0iJYis8WPUvU;mH7<*3I4y$PiFp)B`E)*^v8Vt7sxZE3JP&3VFYRw}h9Bgn+DRYWydF+9xv)YeQQsYEI~6}dPVmMi>n z>@#p)4{*ORQ%mU@GXa3 z$98!mJIHECY(+u(DD;J%vP2{QF1mP}vf@^lTyd~4Ci}j9?0C01?GND?OC(Af1*YNtkjpEv`6k351lg9>U|1XHBZSJkHc0s_#aS(-5YXSDJi-#w#k4 z%z%?b>}ly5P0@CZxr%9^JA3ARa>m$q+J#}&Q?B%gZ-~p*W=^T!SW}m~h)ohkCQUNO z9;L7a6{yVo&JS4K-=pX+e=53!trXgEz5^8`q-T(nyDn&at4V#GeFEKtN!Cdc@A~rE zGiwBCcfH|M+U)Dq<;IJ^Xi|!Z^fmO(py*s_u}mU6ZwsZ_kXXT7Z4I|Up(U9XEsPeQ zD`cdmZ`g~9j59`-?st%qM zV8s_yyubcV1btp`VcII}EEpjf3lori?`SeXcUEUV(L&AN z#}H{yN`|Pb)d-`jbwdOshH!7(N7Ry4>F-a^;0{+QG&~&>K90ii;Cvb#vc5@f2)fmD@1jXbS{`9|Aitd%dr>C%fbXAlg_ zB*Z5bMSOO{vDpvJ2Z}^zcdr}x8OM9_BYB~ebhTxw6lJ{QW+%M1;WsmmoqFDqs}5#A z4Yb*wQmn3aFd7U$E{v-JHM@Zp*!-GO08m@TLA0u)S|2}F!0dgzC!&@C+Fwa zLd_t8(&Kf5%&HGO6c_?7ZN5(eAsP6VSLmr~WAXDWv?ek}2AtFIuy#hllO&MdHLe(3 zdZ2YW&h~!As2oQx={Us!f;q_6mf-N0!FoGlL|ASB=j@i1alR1PpkB_Pmlj1d{1IgM zz=?`exY(L#G6BDMnJ0rJmHO8Fo|oF*Xr>aS#X+TC8-+AOaFh((yiZVn#Hp#>ys0l4 zB|`hGxp{72*2_;H|1pbMnI_51nQq&RLAx&G}%;H!`>?woDvz3X-aZ3^Jf> zg8|#OHMCd>h)*07NhtfWvu!9`vzisZO4S{@D%!`VShuH2C2Vnv&Ld8HXwiRNPMxMP z%+eiTACoQSM`(2WHDblax|b5^&EZLYIn%NDBFb&jD)WmZtJFEQ&NJr3Hl=#vjv}WG z{N=XvI4&0L?Oi?dky@6yAM*p9*9xy?u*K8`oTBO)9TRK2)32^TjdywR0XeM(#!CsX z#6pE*>nqM)X}Q%8sns8n7Mhvh(!A*%neJ2uNSmlA$gc>}jYk-*%d3R|LN!3=a!EUa~RB z1->~W#7KDV+#753lp?XMhT(YsG`n(7IFtfvtXSdtWGUS{5(j-~fHoI4tu z`TEj>-(&AneRhdaNAaiO$anfE6GHDV_p7dvj;eJC9;T7>+V+m5qL4^t3*#7#?rz9n z%NU4aqh`Z4zUVQle}>6(^hZ%KS>^0g*-dCo=(1JY1p;MT%_G$+bZLfq+~kT9rI(7s zc?^<>02|OL)}TAzHh(zJn3nY1ZnmFcu~ z@Y_`(+KjbUxHRULvr9!gHas-7(b5WD{*?3PntgK-u@9WNaZybbOQB(-paJ5x84T zK0n;GF^?TGT=$I(-z!R%_&CSpLvs#DXY@@T5uT;o^z_1tAfpI}c-o z2=z?b#R}&qhtta-Kzc$u1LNS#0znIZd$_V9Hk1$(0aKM8k21qo_~7(zZJA-0LvM;{ z;p+P@!w*zA$K3^sOA$8WXK5Owy$AOkiI=7$milX~GVso*+0`G8K2eO|y+*L<|qnh%H zOeVBlve3-ijV6R4*+7-%yonKl(ejmC|ENgxU;K2|WLdMpl8JiuJsfbnR^{K5@qENlagS zZ9nCET?r?ceh|9i#ihmHdiztb1YbQi8@}j=fk{AmIv|Rm`DLb%MXo>MJ*+i*rf!Pd z&<*8Fcy;(i|0gG?njdYAv=maWrOj0c>=fep2M@j|OQTd0JEKBLs}ns*hB(<)!W~cU z((oP?!Ndx(C4Os#tS%IxVK9Z$O=s0ZRE`OaZTp^xyZ3G@IK;7~198dTLg_Rh!cg{0 zD7uedpCYLHQ88cNRTQFhWyke(O2?u+!pF=@$ga0E>T)$3TDcPnu&)On2{^BV7jJl) zzjh+)uVUa{va2;*!~A}kB9iNt3{PDXzk^5bI{W>WGBoOa z9=El5;r$U$v~2=K`t~3{qfVV9lC_rY99B95I#*4qth`$>K})-FK-r~vTURjAV<+8s z!J+l8QfaQhJaVd#m1x+T?mT{Z|2kPpSM#~~%nw*t>g|k0@&jU4mqVg1EG`bzOl?QDys~zh{tyU}pE+TuF;q8fW*}^)s&2?!i zWK!JUATr_2$I|#gsK@)blZBG7FnNm9dq>(sGwN+#D6mj3lS6MV*-?b z5aVi2wnY6QHz<>IqI}Df9CY~JFrxVBlJ;iQHlG1LYm87w7bzlfpkDj|a{fudUpL{Kt0TGU<4rHi-wfW&}- zJD2CaKV91mt@lpV07)=$%~a8E&q$?mqm39c2!4;f{AcUXWtnedlsE5;Z*g{O#ybzd zw+FtC*%r|)<&)`@jyMqpsUOXIOt{okQGRKRt+QV%dM}CPBM*s$KRE495jAdS6(QI$ zM>LD``nM$%f5Ek|5*HuG%&FgNfjUIAcAXXCw%9Lh5CotBwxdEwzkQu{#e0Dz|ZCRiG>}!buvBsmP{nWFz5V2Sb4= zu(Ljo%??gKXX6AHZgy}FD+xRIa}qbW9n3x(=bzmEqQK1t#^NMl18?-t-|XP5XI8Ku z%LbH!IXIBvcJ56jUgl(Ay9_ zp#(GtC0!w0sO1g@24oQjnJMfk$!4!*>fQKhH9DGCJM4I{-p4K!hSXM*5OlQ?vPZZzbvh(8P3% zuei@U)bmiQ$ff{ZKa6Q@@Y3Z`WFg;{R;jN{b6-T+aPFu<4l{P$GpOv0v10M5c|*P> zl&-ZD-vT)uJ=NF~bSwh__qTc+o)eM$%{31Y9K%pteCFTJZ!K&`E+wk@8R}A4F)*C( zKCbp~)xn*x?hNa=^(Swj8ofF&5HNh#J$;+=b&VLpx(Va0pQZdmS0A~H8{_w}p3?&E zsht_S2HP{QxBYe<*T@>PW2srSj&e*@o=bp9bxw}q%pH!7C@$jFw&H3F4`bWuG*N(z z59|vYxFbZhjm3s@S7}N(Bpzh6who&$4H^B7`}KY}1A#kzi8`Li`d43X{Q)ML3NV=+ zD8-!F-am(<_9Ywh^|7m?3UMm}?}Skig?rLGs)Pys={l-F6VeJZ@a=H$X(GPn6fdLCD(B-*Sv-jDF`22$X`D^QwsI%A z49AV85_!!$`ZoJ4N9@F>WC6@z{zK{t{(e;7kO0K!1JCixJyuk8183hml5?ChbO*D{ zrMdLjg~DMbMFVSt6&J@1@e`(LeWsrZZgLk#b~bC*z*J3SPTHg3{jOo+iyf7a?q7xGI7<_k4X#tPkRp1k9r_N{vXH=UvJEVgW^m;RnleC^r1 z8VZZ-dWM%!x+hk~9V~OY)Oudc3cNV-*e zx}FId(M z)-h;Gkq%Rsk;T9b{&eBsCB-u0MweC*C}NL@=2g$JSCQIqUyWd{yeLs6)ec18nc+*` zz>Cq#jM6USx9CKVhgaX92#~MXs}vr0mE1RF=b%GU6H{$l-hw+HH@yPVjeO9 zBoF)94fAySm=f1dJBU_7&115_jSDG>uKvn^DBCsnft4N^_0lr9Qn48fC{c00b70XRCD%a6q1eM&1>>|h&q>@#`Q&x|#rosJM zTla;=DM#~xb)b;pX7Cg2CVQp(^Ms|%wS51rdguGKX%+SKDwV~z`%boT_~HDD?a@cY zr*h9d`=;HO@~^OeK|5fndyFCS{|A}BbUjyR=Yqr~CDd|%6p<=ur-lZ)J^nm0hW+-@ zQn6c+jL!m#2s`)Gr?KvCVr{AY-_iJ;!9OYEa9pYQp1*kJ{DD#>=Zz|#_Zik5k+E!a z#C>x}4@S;gySFU}KXQWJBJBwUkV^*34ut3qgc{+ZY%`%)8e+4Fu+j&NR1v=G(oeRP zW!8?`>$5g)bBJ{a8yx$@$)1)bhbT9fuKqzi)t0&4QGFx1{U?GByD;e|A^bWXfDR#K z_gnJFVEm#`x*T}yq4K6C9XVE0e5dM}&XsaTCWc;hjkMXfrGDisR~E0HxTbw>`rVGE z7tF6zH(;vYyh2(qDF5*=m36$As9^U^5RhH5E=YXx^f|qapiK8tJS8gGOaO*4bfN0o zW*a}e>AO%~OQar;_;``3aT`ocW@^SeTiG z7ic!R?C~AB)pQiuY|RXJ#~pIY;|9{0$ZjCtzy$a()bi+t0j$6^7>Te;9Lcd`z*ypg z&+{~cY=4yWT9G3h zW}hT`Y}L-=6Ii#2ItlY_t6U}%2&pDI`FUM@ZjL@aGscd*eH>;mwZ*r|Tich{n{}(} zwKJQ5d&T+`?O%+Ga{MLOC~jbnyzj~P0gt@T+Y9e~lIN``^Xd^j`r6&;mAYPMB}C2? zOfP<{lcI)E1Kxs=kxX0^xlg_j#{2TiVTfK^u~D*WZDa8md@T+mx4o+P&5yakqCa2) zfp~08f1tJFGe_;woJq!+SQ^)2 z&EV>*kk5R`ICOMNe5J1WEewUMx>~ba^_9Tqfo~=*1x99r_o)oME@JcgrQ-am_&j=< zX^`cX$gu3Vj+D|-<@63r2~Z+N4nC!THlEdT6*inX1*c>URU8~VBV(&?Y`C=b+p5Se zw*xk*rYFqZBL%aGfefWf=S=yGTD)>;>Vmn8G_%I}*wqdBpnO)Qg;a7Z?gVUK>}Zv& zBiXp{@XSGU4t0*YW~lF~X&3Ru+idIW`Ii{pD*OC2w4Wc@j!CkO>eHFp>5#ZMUcDX# zawNxWf9K$p?F@5r7h~_0W9nUpY-VWeqnSR*2-M?#jgs}bg|4vKBNOv$N=d`$8LzKt zgVPPBiY0=F!6W+?@Oyg3$9&tN>C}viDVmDtgN;IOq)wLK8mp zt|%%UevyhAeOnxh@HXImWoOxtWn*|@8mn6o#(sf^CAUqln3rzBW^xlLK8c-7Nzp1| z>XC7|7G?LS>_7m%0E*eJqAsS4gUrPjywMLl-E7O*tgfD;i{K3Y8nB=hSJ0#TFcVynadyXB?8PtWBDI2jF_A0NRfK^HRG*!wbi)=WTRarWX1-G zR+DTjPm+dcb= z)j7@KKY6Za0a-vpJ;GS%&@G0L{hqOJt8Shx3OE*@mdfD5e!m%@s4IOBlBYz5EhIs< z1qDbSsLD(sX5tse7UCSALrQC$I1?}9(kJFRU8hbfQ*Ceu6O`a1Mb>>BNN1~UTv3|= z{{()>{{I13K&QX4xYZ`0YO9@o$$0iF%_FefFs?dG9_Cy=wVsay9M!z8k9qji8r-&B z4PueuPCsnH&(i{yD3R;%?TD48;@aQ>%Jr9H#JRl2S(D5=t)5jQZ)d#|N~L^Uc4|{; z;T_p(T7sku`P#%wL2X{i;fG^`%4$k6U=%y6At(80apY4a%$izfLT@WzY9(%UI!o0C zN|}yFqQWv=mfGOS1U@a%tkJ2RepYM{e|cDA<(H(=>{C-igO_6~Jq56Dy;FlDvh;GL zrviEhvxf7r;O|NtDlhshZ>FLR#!3tEWZ{FBTk^qdr_MaQ9uI%2ufY^4x2v)*KO;1r zHV#p$51+Xf{VtlT+T4#wi(-3OYKp{f4t!&R0Uz<~P}6d5f^&RwYKrfmZpOZbLxlJGU*UsST4aDo!QB78|WPWXcGIpLp#e-J)%Mf)K>rPwEgk6p$f z#4(pK0`ZZ{XhVER_<-)cDSN45l;}d6Sfhy5*~L&r6V3AJWBN*Av{cYh_Hq5AmIV3em`L| zVH05^;XcB>)bu@s4OD$S;cmiRggXg$P`%p;>j<|I{zSNyu$FKOHNA$auO{3~Xd&E0 zSVa|95^f}{AlyK>o^YMZkcGIGu$-`ra1CK8VF}@C!eYWA!a~9V!hAwAVIE;Fp^0!6 zp^?zwip)k_Nti>JO}K(^IbjxICgC!|48nB6G{RKE6hb|rjxd=pi7=5cfiRv>OQ>;0 z3_w&9E+vd3I0#jQO2Sw|1)-cUhA^5iiZGH;Mi@aDPADY|Ba{$|2}OjVghIj)f}K!6 z7)-c?Fo-aakWa{Sh36r12?Gc@gls|b zNJt=92xeE2<_g6P z#y%x{;tI`0d`vjz3LT30$Q4?I_>k}c;qR`{V#NEd&=SOZgm($=P}6S{-lE3-MvWaM zyh(V28v85Nd!6ta;Z?#B!YhQsRPSYK`Y(h()8Jnsyh#1M;0i579HI)(Q%BFysGp_A z4icUr93VVR*iYC;c#4|dOHH>?(@#>w-dGzwh|sE zJmw0)bC*5p3K@cUgz&H{WEA2dSIB6@7FWm^#DlJov4{s;A$G+5RAe(1*+fM)Qjz;8 z?_Mf-55+c6$@PT0slr`^J6$2=h&!nI?SyrN+h|CCqLQ~#$+d)ATp<;RHB@pn;buaM zE4UhQlPkCevC0)Z0kP5*JP~oDD|iHAg)4YG;s(mQo=RRvMXt5)K%NXJj``ZZH0GFg zbj)+8XHf@H&uGTQxKOPqCu#@k3DkDfHq=(sH*aKsLiNN zsEz8GF&j|pQFo*6LfwhF19dxU9qKmJpHR2@&5T)#x&^fcwHh_VPxx6l1LGh@IE$PK zF>INuAHN*0aRu?MHIFdY709<%6X7aCBcXwCC1DO>HsK1w<%B_mfi68qJ|T~gOBg`N zA!HM>2$_ToR{-Cq>4Y>w5FwDDCj=1u2|5=pN*mJ>Gz2xlkKjx2aq0L{tL)>E|3bB+ zPN2R*eTh1b%lQ%NL(~VTzoXtqy@z@im*pMQ+o%Jmr&0S+`%q7z?!%?H7uCj=lcyKE z0{NC-M9x`ASU{LhXeJCL6p|l?5bT5k!eGKBH02ONFrgpEUQrYUmpx|70a3s=cLE$j zi6YQgt|nB{s*k0SRS?PvV+f-OqX;7jWrPug;e=AcFhU8Tm{3HBBgE3+O@tUiG{H!S zA{Ypfga|@7O*4!TYQG2Bf%+MB7Ig;o6E5(Ns2@<@qfVnvp}xaa{TB5N>T}dTQU5@F zhWZrs3F>29-6N=1P=`@3qyB>WGwLPOi>Mb+hfvR>+E7p8itj<~M(slFMBT$zU+5qo zFC{D?%yI?dqY#@(xQyH~gD{;ijWCrkg-}nZBTObtB1|MqAdDx}5^4z5gi8tI2o6FO z!A7u>t5XRngk(a0LJ}d7kU+2y%(OP~1c{&|CEYK3Tyxk0qXT+ggA*Oe}JT)TC-V_E4^$2D7*Iy6fME-hOs zYL*%hS1;YV^!=r(C8diUS8rYHP%I8!ET|WiE^sW|y1=1Xz_jyAn;linpEaLq7K59s znx{3-YrehtC?@!9Y2MX*s99`tAG8NG=MF4c-h6Ab5RCZ(G_wGn9NVn%FPT@`cgt#ypwTI-0Z zEvOZ0tksT7vF12ymBX>M%28>paE#qr;TU5b?HG;eqpW3)kz30gBdn#4;af``<)v(x zwZu^@=EUH=1fub`F?xCQ$!LY9&e&)a8jZ({Cyiob)X6AenSljFE{j|nDF)z+Kraz7 z5o;qhMeK-B2FL+X+ZePwNN5aP9w?**+5=w?JQk>cz|Da|z}kRK0XqW3F#(eUz7B8) zD0T#}9sbYwzveHF@t^G9;4cRF^SEfQ(A)j3=_LWW7@bWg4zlSAbYpblS{<|NtQjSC zU3@}Gfp&~`vR2%rWp=G4spM<5TP@htnDMor+fQ)&F%X%FF<^Rx=!>hgi-p9Lh)*;A z@c<<-b}LjRm$mu0$Cf#L%f~y}DyO-UzuGHmovKw%aMX^kZe{G2npP$Zt#StQzp~5m z6>HXjv9Qc(tgLp4n>QN^Ys#FRk}x$~0eCgTfg(p*fL*Nne1 z7``H#=kc6*a{-Ga_p-Ttfo0}$G|NeInWeg|H}=1phVbyk0p6bmBo!K^TDhjQe=!WA5X4K=}7cS%~-Y=!<0-z8O}-8n^}4!maQpxDD39?QjR&33tKWupTzR zJ?O{#U?Xhuw_M=>2W*1g236#kXV1X1E_y zAI4N(il^=A-25-UJ@GiU$AHqj) z3_ihKcjCPKcd*2JSmpyysgJSLKj1i)Y{!yRj>`O9&iz7e;V9NU2A?rsIL!n&3vLYY z)w@$(q4n}Q^3~(3vqknZUymIa=PUF`_u6bnA8*I?a(Jm-kV7cY5Mg12*^yY68*&n4G;uDjJ9kJ1eP*2_D8@8!dPz&~ZrkoPFJ z$9ufQXIO@NnYYo`x1V5L@;$t&>{eBK@Y+>_r9|AMdK zwETJ!zQOb4J2-{$?=j^h#?DVYH{}QX`4N7CGq{33Lr1Sz$2mD2(1~k|j~Gl~B6RkI zdQxR6n3AdRO!H-aOwF`R$Nc3_fBKx0qv_5GJTFIkfjmDsC5ZK7!FXPVv2Yg240vuD zSu~4bu`I4vUPO0}33DVC&&-~@P`PGAcik8)5!S105=&zX@RffK*M{MAmc_E!0G5X- zsTj||cs}N($t;9&m;$rmjPeWN6>L8kPnFjH^wd^94k57F{iD0E^MQ{2;vQDTUO|ue zgBw@sN@j=6%1LmAveErLi*tXY9OgcuIO9IS(%q*(Ep8TP;C1k^Vk9iV=RoM3E545> zwg^6u2cuv#RP6^HyAO}`e0F$OQIT(|&jE}IU}A^C7nkoodq0JsGZ+e_Y}IP9B5-(t z&uXCx3OYXg;6;2n5|n2Gspq6IOyD`l|2<4k=2=P_b&N4&5oc3@??k|mqNV*2^| ziZRhTbEYYvY?PFf7^zhFszjx)PeM+iN^`k(n$>3{Z8 zMbX*)!WVhfgX2|;bQ(eF=X+mbbVz)9)FoxQ0G-m`5EdEb;~VI&?q6Epu|CoqrdEfU zBcsf`Epx{}^hlWdjN*A^FvNicKHyKuj_SP-@BU(!CV-8U+T35*jXY%5>ZEWTgfjn7 zi$*QQsX-yJK*?gpccAuYy9Tr@NYrW*jPa5bt=5Ht6c_FjWE>mhP&y#Ipr9ZqEH5`O zGY}m+dD6tp$o32tVVg8D{76RT(v^n}vG7BaCQ>jh9iO2MeaEny2YyFiY3a$yHRjMz zTC)T(*2iCz;w+Y&0gM(Z%tsPq6|GuTXl{CDUbI$mX=mhEh0d6rY|RQ*Y1vwpUK*S^ zup}W+^&ESWHB5=`AEFff^g5>K@b9NlsKWY7iY0*|8d21Q_It78J=}|H02Dd6E2AM9 za^b!%-^K{*c1LPLLNvht{V~Oo$^S)86PbW-!gr>p`^2|-<{gi3-0gn)imY%R%i?eG z?LJjFzsUCFg7##bTzej~wP)DcaeoHo;r=wV{%5VErPtt=R!FgNmh8Z+oXl8sNC@BK z(IU&T3X&AaH+a9Epd!aIbYkPO(VdURrl!WS;sp;~H7MLVG6Bv;c3G!S+Op! zC^d9wbbf8=y$1%A4Txbk6gQ3=oY*fRMKLoaA+cgfm94TUORvrtb2GOvS%kS zI^*!dyT}T(YlJ?#M%inR9Gv*XPun^V%R6M`_HP~<*LgB|@*Rs-+%)_4sp-N7SI6cu z+6)z&zI<@P#(6`2zBTu%M{(70M&fFmQ3^ak^WocCxXm8m*U!|?gfof^*WrL7pThSL zxPW_fY?Q^Kis;($5%REg6$$dN6Zl`x?5aLHKAF!JFPS`>P0!B;!=C>_i?lU_^DZJO zHt?JvPEH-**D;@aM!3<>U#(Q)hUm;-EByj^IKZ!S5qpD&FT+D$LrzjhBt+xUujxFb z3B#L#B~0D9P7|KMuae>JFBSJF#~JO^ z$vnAJ%gGXU#l_{>2Jd4wypO6q6IQpe@piww%3yiI!TfKVcH215g!y&AkJfg4Hz;3E z?HK9WIR7KPbnUc07g^4LKs>?a8>{T!Kz@St+-eo*5sJ+}UimKBAvGWJuj*v$F3w{djGi^QZMyEteG;w2ES5{|I$_|M(#b9+}?oSW|v* zFiT0ziL!)gG@&uU9UalBkx{|wn#aD|u&JYUQdq1dDwFS7yo)ZwyQmG0be;1y_c87b za~m<s92_p&afn88g-pf+USe~ zOJ=lA7oBNI$cWam&veGj1WQJ=E?%uyt5oW&?;sU8>U*j<>QyfQk;pvBAm zuC8I7{aO=|M4nJxg(u=5c$>y%*XYvH!fZCRH9S1BO_;VTK3%I-W8g`M#eYQp!i zR9tGS`{XXYB#cbQOVMuPp)fsv)zNDhUbj|NOkzchqkH}N!xP^(_|%kBq<8;UJL$7-6623%_>jh=UOSFIW8+gA%jC~%vL{tnX^d&+__Qdk(0P+0 zC?+i~E-fZV?7UOZMB6aksL4s)W-UxJX<4{}#pz;_a?P!Vgos|tZ#?^%E>JBhHF}LA z>g=c8>DOlF1W0-Pf9?=j|NQs>f2;+bYrIVv1ed^0T7^9c0cvYNKrsKjO|&%wu?wPe z$0l(<1O-@xkx7ZxIIW(Cv>H`F8(aD$p5t*95e_T=C#bHi!mqhJe2B|S#se>}=L)t3 zlCxdEzsW8SlVdHG1SvE$xlZ5$XwHc-;7#3o?X>IZFqYt{vGiUai-tR2p>c z%{H4ZIy<2=A-S@$Jh9~NVqvmcuT?6wcnu0r?mn)JP@171B=kJX1PjmMvrII;sv)B1 zjywS`yh#dsnDAVhaP8m_Y@%Z|?KEAUIxnbSMca7>i zVH&l(uKv36SkuVm^_;?;_jk5V9P_}Lt@oXEP8$8d4|`@jvS7&Y#Sf0Z{IP`vrAr>- z&uh4gM7)-xAPKJVJm18t_6h4C5RAgJc0UL-%Y(#sJIOm$Dy`Jk{YHo-@3MzfXyt1t zk{;fZ`EKz%#r&pvT~qFRmErNE==~5U7G3xB^4XpfRGXg2(yf*A7F4Blwx^YhN@|>6 z;K+#*SIl{I?x4>9Ma*|Vw{@LqzJ~VRL+`ym^bP_9D_BH;AiyfBQ&b^UZL6EIEZcIC zT+$qu^lUs%W|NscDH17)judASYm!Z3&t@HuJ;{z!cDyI+Ot_mk-eh8n(BAtVnn+5P z<;?EEImF{5h|q?A-%|Fxp~jY z!g3#Z5rbRx(%5Iu`8wrnPi0tE9l8uuFSFUKw!M0z9TYJ0S^J2#8cC|tVN0P`7Fp1c zfu+zbeMv(k^59{7g>W=l3tp*=v|5b@O)?&asmiJ(w6w(iaWhREReNJu|7cZg000jq zx{ZVPtPk6>TieWukXL!Tlq`R>rCXH<-Fc>YZL`TiNlD;aavHVAiU~tmS(D}`gB}8> zQtM|*UHjK|C?(!ZfA}in#HX?w6g+_E&}yIv0GK6-;RF5AVv{La+OcOx zDZ1v^7dD2s40osmJPa3zDJt5xB^}5H)RCd7JyU~G^r2m!*`3r_9fnxg>Nik!uU+f! zV1k{oK(u}Q=*YxJCc+Y(MJ3TX4Q8)_Hrb78chVf-{(b~Voxb`G{u^M`4rHw2%Lsn~ zdumoE=PRmWPyn1emo?Y@FOEhoFTDhf^hO`5)mL>Jv{&O3iz0r*mI{|3hJf&~Y|W8h}7) zk{Oka)=IxE4QlJGhSw~0{m(Q;)H?d9#L|WY^VPmb{__JTzI!G|TjMN7WO6&(J9hNC zX*jJIK#%`@=F$Vb?I)i*iPwB$i6|W^xS9U_y*O2aa9~Cn5M%x$n2`$^tndYh9>Am0 zoJ&vZwF?l=WyN~ysE((oKt@HT6V*p_uNZ(q%U%aRz_czb`v43IEG8jf>ST-lDiVon zG<*Rr=gC|hac{<}my3wx;5ip<*s9`y*6F-HPgyP--;VL@Je5R;Pk}ibJGUy8IuMl(r)sPTQn{$JIVHrt~U5 z%9C1>flQ~CR-pe{&Qv9jejode+XrStDJ13ZhIcimc7@S4nUW@WYQGE43GT7~3h)vi za({JBGVFiM+ce;XFmR)W$RV$Kf_woT&yvOwx>jzluk#M^PS$-EU*e($^r83jpN*It zI#L>Ka4C(N4ecnn0;7c`I?o&6(ONnB$FhW$Q#>9B&)AQA9-deuFDo#!QnknI)sx|1 zP-S;`O}L5Dc}*6dp7b*@qsQ$rUisf}_YVm)+CcHkDXFg=Yo3k2{RvMXw5q`bqHa4E}gDI76i!JDrBEB+y(6=_1+&*>1)MeHXC zjcCxOIhz?ZJJ?>!UDyJun2*FdV^}P>fbKsl*o$;7y)v=L{-`jI?qw{+^~gi~Ln3n` zzq#qyx6b5CkN(}!z*w%?MDv7VA?<1z&2((*a(MfvJCdbl4=o`1_?LW9vq>lIedNW5 zA9?ws{SvLk6pNb~9ci=~W1H?RZhCOcqc`h?8Xx2gffk7tphd_TdLUc)MV2kR53+@5 z^qgc0MDy5L9;c;Bw7((O*D~_-KR#amIjez|kG}NLLivyO{LyXu_is2{Vlc^dhd}DlRdvN_JAXjKlAuy64($2Dc_gxU#lr|+IGAy8yc^QMUJRB-NC!PY{ zAwSEnSXSh1Vy;?T{uvz1zZvY_))$eT_co;2tp(gmM@|Yf?K@p zMz@ya#w^k>CZkJBz5y`#KxJCVd$9>A`jzhI&$BVsc0fGNz% z2;pdxBebsTR<-v(dd3A=mI8WclQfEd0R(jZmd zZ}n)Q0Y^8T8d>+ihM-vdGg9p`7+h+R*Ipjfy9Hv6Oq74@NB2MY@)ISc$*c-hv_fbI zcxq4bEM(PAaje?s=Mb%bnqEL}&x%~GWihsaHoIxcO9LQ^8>*u`0~EtvK?S)X<@G3g z1+c%Bye6>>D=^tod@%yWS09=OT}5b>MK&(Iq81$g zXR$Tq^(Ad`LHWfMvhxZQ)+pmmTE&D&CNBR5O$%uO&dv)L%EaiO$^vNX>>U56h_iZ8 zxrm;lr9y%SyhSKe8x`ee%OeI0H@oS6*M++Zo&NR3tU{c6;hGNELt zF^!t{0%eT4nW%}x%0D5RJ8dD86feJqfx8S7F_K~C>!EDeO8=Djh1eQs@qE=2tQ$@2 z$`9pI08xc_>dJqq-96_E${ZQ*(q$~;Z*fY4zN(*f0jahk;j?xH+`eTZqTme}j43ru z`L!_c;kz3Rrs`pQCqOG691>9~j=Ntz8;DH9ctfGk6<~hgiz;5XXDuj(p(35%;RxwP zVdlpQt3f0Bp}WV1p%{va^nQmkpcjq%f{Y*iUf;*NEPeT$rHnOBMx->W%3Fq>$UBEe zhh6C3RTo}BZX5?u^E8N>kc09-_UX$k`}7saK7kM^-Q|RK!`r(eH{O6dB2MQX`_Y5< z|NWUY{owuN3yZy7tL`-{6ejmD0t{=)983A3O1$rHu42mkAn_y73grH%(*{LJvF z&C&Ga$u;8-ZH}ZTPrSBJfc;9NalX4$`A|mdB&r@LfGcH>8|b zYPf18-2)j7UL%cxUuZq_*GKlTUYRh{VFnF)i>~fHc~ANGv9Qvw-*+t0=2c=ppZwTl zwETRdRQUobIkazGdQi&amCqZ(ok(TOzXoGYfIQUw90(|XI~S7$_?`kQ&s+7Dt8k4N6*#Y;C^691IWm8NH=!!JdNDe-q4_{>Dpj^T__ z$j5LYP12FvwhniTU+e8&yJ2mYw{`c2hr{do;xYjb#|4y#^0yC1?FpB{*E7CxyxWJi z4&JjqBGa1{QngiM_3B8I!zi-`O^%qy?oH%&b{CEg`z30kJgbosvIR6fYn&okgRN2{5F0gU*Le-`u}v7-aM63Yff?UT*mg_imo@AzF z)5f}6cP@A98xa`Zj+w6?zWu8+?X)@WhRa=+%uqO7N}DK4l<`H(6#C4u&)(LO*!7wF zv3=EivGnD!wP~X{Jve|(SMPE1AxvO=4kUIC(SqEOnR94Kt$G1FnI$Q$d0NA(z=0}n zQKv23)n$`gk~5zG|kXT>$I{FIp`yahz<;!9eIXbiRTEwh7KK%0I!v_czsIRI#+?? z-_fI{&Oof$CgCqo%$ODx{+?woA}Om_@MQ`03{PT;1rr$+C4Xx=>XP#b zkz9-xO{VfJEh7oO+!;VGqhE6QlmJ!8=<;h83+j?6z+Y58M|l#=oB}g{fvw>qkdL|J zoR~Jiz2z<)D0okSqTM>J<1425Roz5bGUj!*X>2v(r9m~7P-_yGFDu2Wwsbgc74yE2 ze;ZWmi9o7FO)Jnd^7GH%SX~C5HU!FUfQm)TAcc&3y>MfU40Y3 z6Mqfn2Gmnw>_l3S8aB@%9uLy8fUU{O3LrIwBgVFPRK?`4>=K z*7!>Yir?e-hy%+yh8^1+xYS{FU^L-y5axxezsyQ#DOxn^WN69!PPhP<0kR_SOZyvH zxC^^L^O?_JrwC;U+ zTkucY+SjG@xz47IVXH(Y5XdCC)^2zIZTZ0?1Fn?6)2}i)OcDd5wYtnsi_$lKX3NhM zu7tfgn@YlrfA7^d350hL@gwcXQx&a}_S8je8z^f6*h5(nq9#*Kc7hkJGI!AhbRa8c z3dTNJF~gE~8MvV_%PUp+WY}k;%~Y@qRK@%)enkT@?NP4`@LZ)*1#kknM#BO)B)Q{b zn?r-SH7-i;w^)68k~T-(?x>k|^!DbxJ0Dx`Ex#-G_ayYuM9R{%y(!ikQlY<{dHzgZ z&b0Wpv#UF#l;Sz7OQB_@BWjflotZtB**6-KI8xs7KlSF~!@Gbd=K*rCyIsT;`-cnDKM#RHaGC7mX$9L>8Bua_o zKrKS{IWoI@a%3M29ntg%Vp_l^XFZ-t)$`aSA_VB`C^CrzP;-_#kW2nsOXnZrQ~B|W zV6sIdhxTR3O(n#HJBkvxP+U5T7g!holhx8Ii=7GhgTwj|kj8)h3cJh*VmlYk8|xQ# z{(|}qhN(a>Vs-JTuMwg~%PQYC}ok(x$_RH}N+0M2- zAKJO}I?0tkB)Zg9XfpTpEPcIthj&UtokE9iHPDA`fprIM$f!TF~*^N*`Rwk=C`aFmS(+Capqd|6I z^YaHa;5A5I#Ng?@G3@C4;55bC-)~reTHBg){+loS2m4sQ7iz5)Nuhn``%Cg7uLxm9 zT}x1D6-{xlc`5#etfsKlSc(szp*pd_7oaG}=8Kd$;q@l%3V!+3Woj}qbv13@`##i! ziUcZqjBOK=Ny_h_VVbssQWYWN~wY(->GzG+|Fi?TI&+=FqKT^i1x;o#k0ofm)&<7C>NjCcLlo+jYT7y z9$Gg@YQ5%kqy;+ktmyygqgk-TciOM(GT?Vliq(<; zpZB?zer0T(=<1&8k4iyc!!bfAZrOCSduH}{YsZ~`v+v*+c17RDH%~@$5j}>!6Aor3 zx*STaQlPNwHCByOqSMOTPJHv8nQx!&>pu3(R@=V2TWMvsC1qKFM8U!+ZOmn&wb4l0#AaO;4pG&ADq^TNvREwfW8 z5C{cwcWYpj3kgf%YGlV==HkG>=0`V&#Zs}}1MF0P^-cZ^kjON0963Da_p4nID2@!d zyA}Z0rjXu_40-6_7J|1QK;*gYg>`)vD6m2<+ydsD74_zmMOR){JPPpg zSpb(I^yy^FL&(5E(0w_2{dtGz| za}%_Hbo+vuP@7Zo6c?YLrp>Wygz8;?daJRcIiQo^s7N34xj+hb^{mNzcW@Zp*BjTz z;%RFNVDvS?)i647hR+uYaD}_gcU@JKHa)sILG`HJr%pbT{~S=*+=u%P z?mP)KCO?zEv$(goF~6qRNs$2}DuIT|3n7g-&4aw?5;iyesy zJYsWfhHLL-Yg|sX%M^iLM`7ysZ36b|S_9WuS4+`q!GhdZDW;M;nxa5a@3#9`&8CAo zF@Xw=F>kH<+VP?F-p2aOYN^-?<7I6{`ZOt_cxuHbs*tRF9$dK_t;StCHXQ8J)4&(S zQh`EeSGB~^pDj})rXSk;2&;CXm|CIsomE5HK}jK30}SagK5%JV&b0c*R~phvqw3!D z$mTHkU*O>8m>1Y!|5%QTeZ((-?QBOj&*gHCF&8`xF-&V9{vy{p6b=QFNrZ*aL^kEd z@XrnE zflvisYEZ#4$6Zwg15D}INFb-Dq(XvtI|_ut&yU@*Fj@71@0aMjoLu?+AcEeGOwA<{ z>1h>=o0}|_9tsNh_D~wU&6jdL(@MPzRE2YU3X^>v7&*ss=^p5ZWGUZX4CVEeBBUNO zVF~h5f?KtKGG=qP`}#%VEl18u{mJiV#TvCx3O6hf(^V;R0W+YzCSWcz{nY|y_rv{L zPL>>w8x)4O8YH=z6XE19d>q*I)5zml-9#cw)5$oNj4sK&>cI$ z>tF!t!+PTA!Kd<%LmNNUH?{sC)PwXyeqV8-SjuY+nW7sqL8UoELEe{xVUSl1gOHcK zUJzUv0#_IG4GR6gSm?83|7W#G*Y$8e%LSOD92eluFwq@NRTc^;TI38~Kib7_!qo`r zYSHaxID)@Gm}7G!?2JEwD3Nhw`0N_wBKA#$M6AFU$46|?Hd4{xNWKI;uq|f`0?p5* zqEb}4fZjdNOXZoOo^``l7AItjRUHH5464e1Sh+-t--Kqap|sSnxrM;RwzSXJY!{2| z%|2h+CRW}crxcG4X+mBLCE#I{j4xH2)J;+J9fl!(=uTM0Vr#pO}@ zOn5^X-$2~NDrsb;4)_CNd)n_y+a(fv+UHN(fetEOP@a1an_t6JOkQtSWngvzDpE&0 zbrqRasVMp`dNm|;jL&&0rMXMf3SM~y~rU>aJK%hs*3m zco)>DFJV{m%db_P5onZja~i$rl;plPBXM~!!ztXr%>wiG$)#}ud3}^ z%1Yu!w=HdYY;zdqLz=GU!&R+~vl9Gwz>kNKo;j=4*+)VMIjna=Gsz?(1AR*9u$?() z4V3HiylQl<<*HXIPU-%@$PoYCjU8(h2v~P476LjxfZISxRS+J(8Tif&az|D)HWrOo ztrRDdZIMXZ?XcWEH!~T9H~O+|hgl)b?aEE&H^Yl!U)0&g;_SYBs@Nd0x^L9P#^G!r zJh|e13GkL(fZtq$UZjY0{Uz)iK=8)O_AhA2tCX#*c76-$O2{Bhp3N2@I-sYWP9!-! zP4{g`ATX|JWc1(yn#+=trEETtZ)wqlpk_?D0zyMZUz6t-k%~Tm;5$3HTmw{c8EQmP z?R37OlpEQ#s+`}G?ln8N1zVYRHyB2QuMMt^X$V^um{ZLzl(HHP2 zr6ZCuK}H{Y`#O9Zm&qIHx$l!QxEDl5e!s%qPxRNhdxezZGegHm(I0RU7BIm6A4fhk z*U@1ZgoNdJ&z3FX+awUD8HNmZJqYEl7T+#5fS2b!Bo^@8mA@^2*Q*ihDDU+#Z7Gw!p+07)l~HUG$&x7 ztkb3eAnWqiukRm_6ZPd?kP~gBP|*Q*@y=1E&jZyfpn!UHc8v-CVU#j+-_@vIy_{XJ zInk((8+%O_>YDSK23_Y$n;+d05=$gHui4~OfCah+P`98x!L0o~>=&$JWJN*^N#1wsc&p9g4JW_c(X-58gcUqjjfE|@$Qw+t^}Tjvmo1nGmz zNMf%U8Ex*5cMMwyXBRw{J5(50K-XkRXOaA)O6gK!%7v@Hyr59$mAXIkhTv|Zz@fz| zqbpA&8hex6t967nU9%Gd)7E@+<2GX5cIly< z%+=zbth!(M=e@bu$W*d<-$-2QNU`VH+zYVO%e;d~9NAypEl2@075A$EUYND`^^H5b zOIcAiRB-jNBpiFR1iP7=>lucJC*0J>uRS?rIki)34yv#~_{-J!rF31x!c^ZYT+I#W zv&KH4DkFv=`>(!(euOuOs1ZBTQ$7DcgMAw@u@xbSSkb%BXZ5mvZt$-f7V9S+toYNa zr=chzrh&c&SG!LvAGfk&?RabZ_}aGG$ng^Z=z?*AIYf&s&HcsJ45uOV1pdA1E|qO_ zB>UX!?^0Rur1}F+RBZt5J$VDH0VUC`ABJwhbPD)5pz)I{=4m6Pz&4R`0HU z49@jcP#;)j415uYS;NTRRCcrjSPr0|#S-U=nhp=_#`bNRm59r9Sdp_aebHI2%$alSm?_STD)sbv!iGV_B7^5@QD}*cYjicPQ6R4Q^{)P!h!m`VD(8b# z#r!`0@#bQp`n_UeO<BG&_47I>!rbT|ZsJ53f@nLjaQDnNjyAWSxN!IJZyaeZFR9~Woy{O=YGP|UGHX)? z^v%PU9w~I+yKv{>Z#`V-x_9CJ?gOJ?-_U^^cn|po55Rue^3wzY=GfRTYfq8Ye%aGE z>X+@84Smpl+4uO0#(vpV)PKExSpXKcdb--%Y&AR3``C3^&%oeVgk6h&NABy1>tnEA zc3U#GCa6XiXTE(VFSUlPTI4pusR>>?o)lR}l=qEP!oz(tn1hO?u&*(A2ubQF)k@BvrYK*IXN)fQZO zWu!nJc>db1#V5@9s_Mj9j$^4Ico7Dj-y zEsf#qX)V$=v<;pvWn@omc>|u-QUGPY7%d_iR7Pmts#*j*6^=WyWrE$3G&vEF!KIdo zYmS4-+WvhXb_=J(U~gsid~__nIUm)~gpd|df$Vt7(d1FN+e;&*c6WU1!)yIR*`QKL z;JAPmikQqm)DgGIn2w>5p$-PM6ps#iq*|Ri6f`^40=>l`F?bD@fX(CxW;b;fdDaKNQNX}zXbAt z1hBikG}r@vg9GzIoJj&7_4D~ncIB#UCGEzgvV>YsZ7>D$es5!l z<3$Qrso^m6)eghe2Qj^HOV;es^VamnZ>_)PYpW8oxdTKGtJO_A1ggoE9WjoTGOk!o zXb8=cMH-R&%d_+(!)TjAh!;lX z#x2@d6_#Vrt>*2vYpZW);rLp*>tNz+L0O(10GZFpq*i|+bvDIR>u<*XhR-Oo{NCBynRjVY)=K4dMj;`nf}m|9ye z&yE36N+Br^cxgum)^@L0LDowHuw$d$S+S{qM}HpH^hlSUR#s?B75FTTWbV# zWohDPW^(>yzm%4`LWW?i6Y?tJMy95qd=(wU04AZ212amA`Q?mzS?-D?(9t5&I-V#R zpocQza76Sl?E+6nirt0?RIH|Sw;9NL!rxEHzTeh!=V6`5a*8S}TL^=SwbcbbyYPM= zc29c-x7P@WHu|n8AfM-x$7dHqjJ>iL%37vU{02bra?o4oj~$N;j6zN0v~5}uypVJN zU_hV0WC1eJUF`1eZW`6WzK^H7jc^Y6`^RS7udHH|sPNS=ES8baQ&G z?n*-Zs9FH(qbneu@|$25--p~ezGhE5l<$gL15l~j_O=-WC}@jxn>5sxmN-sIw+#`< zh85fPZ`;2Crt=o)FL&MAy{Ef9Agq9b-_YF!1wYykhN0_tbHALWTb|)%?{{mZUJ0D( zWs<9Lepj^e)AD#{SJcm}zV6F!70PcyZ#8sdbG9-JR5F1pTE4Yr6ljxgwo#>x{!blK z^Z^Jv{_cRD!apsSxOR#}x#=nL8E4MSpwC1{%9uhvFJsEFGNur9RZJnD1hZ@ta_zWt z&U`t@v?;Yow`uwEO*-5*0M(+c4#t|s{k9PpYSOLk@9vw^UDutcjq{o8%-)V4!v&!`WTodlG(2`wzgrd?SQN>LZL71@JsqA}pTLH@ z)??FelvJIv0|6VV@gTaUKF03_y-pwpsx=Kg*xiT~@nPWt6}N&HVo_@*vDF3nFbkYh zClIe!O;2LS3p%8r4)u7|jJ=1MafZkn)&(o1Hy&8dR>NCxql7VUoGDysoBj8oM7YY* z8OO`6_^hdBH+#)q_5&(ZY)r#}qnyLpa)CMX8T|N1;N#E}C}eh(nLy8X*>l zrY)%Y?FNR^5jdr#(U#JSw3fmN9mk+2(Qg}h9f^}#y7W34R%w70qT|h_&2n|b(u4Rh zAR8ZYO{IP@N>MsQ0IS5dV?KcvtdrR8g1(>=oIN~k>Y;lT^O4@FyX}%XiSU3F*m2FQ zKMQ*9#>+a8HAzwcl^SYxzQZ*FXI5gjZ=nYJgGno>maFe(-2=MfCaV5hNlgae5I`+Cl}l5Lzs zpFW1bSoS3PRKcWoxoqq`i3Dx?MsR2LL3$6q8)>bS5ra-hc@umkjDnUOVlOi#%dr3=tpwS(if8G2vZ4JAEEior;@CCTVN2Alh#F__Uz=h>UP&3A@)=Z-?AtCe6>&0iTamL%krowEABnE?7hKGxeH@W zj)r8E^CjW=G&CoPc0Z>IFRU*v&GWBN7QZOg`y6S9&2LrXA9n8^j;cAYHLWu!RB9z| zAZZfE!I#n>yzb=i=1xZ@!n-2h@cH;~1JJ}A_D`5Vh)5Dik6RJ{BzmHtquEFP71q*w zRKF8{EIK)L2FAUj!6%e^Hl2=A z+4_UNl5AyTq`&ZMM?mdT%ZiD%QIJ zaM3m?(-}K_C_K1(-n`8nuG4sZgDoiNF#IE@!ya|$DGhD$`s_L|ZudXby>~DY>{^|- zN8akp-}Y%HEHr>B5L z^Gv$x^rDZOEw?H&lLdjkgb_-DbQ>9qo?NEW>$J-$&TqH-EmWHhJQn$ep)8*gXc8mN zn0YNhtBiI_!VwO+OV=vZa6PD2q7S)4VMjbOlCvvSG-HD`HLd6e*j_?Fnvp(a8M3da zMuyO@AVI{49z-I@T=c6*9nyjxEYQkGol;pB!TtU4_;|#&0HT}AulPoOdvNGMw)=j4 zT#09nXwGObjmA~DKeKc3LDzNDBL?iG^KYNew^r);mCYuD>;aMsm3(TPK66=^9{g8c z9;PSB$`iI%r*2kL-ojYU64t3`yKrZEep(0)>>cRaJl7Qq*zA4>@9?*cW$pFcX|?X% zXpnW7>1cp;nrWxxT_Z3JDNk6S6+iMiH8y>`JH@M1Dn_kmFaooNnth?pw4IgGZhyO= zsS`ad7IRBH(bHffN#{R$gIdrt559HT?Gy#pRL%$De1_CK^h!=ehFfon(8#J+C^mT{0m8nXyBFJ*>z#3}8XOUud zCJL)GaU6C(1x!XKfN|n~T`J1E2{q@l+k;kGWBTHwTB_Q5jSA&Uzn?{(^*@m}sDkg% zcJb?_PXtT3PpAm`RE}!{IHV0*<#wZqSw)G8m$qX@YBPVUA}s|2u(lH^9L;#)^o=(& zWu@yxpDCDW-O=Js*U|jW=1eHHBedI6Bdf4O8l6}EaTYG2E6 zzM?IMK>wpi?5K~KnQb~m)Ex=z^jTaxs$Dk92vrGMUZt}$or5#&5UkQFO68g60KhDk zdy?=bugNrzq%0TpAPZXj_+>4Y+lnE1z>B9rTTOr&J*N>fdIClpfsI1Z{2~2L?{~{q z)|HC?DK82W0@F0Q;D&*b>j!+H;r%1?uNw&bi&~6(oe76tZHs%Giui|}yNBb!z8yWC zyN05{zU_V9rYLWTG)q!b*wP1Q{8IEo>=bAbv;ec?&Lj;5$jTO=8DZ&U!l@vj5op_C z*jsA^T4px_FH+-a8D4G#wytd9!xFH#D|(?aIW0+VVr@%dSx%6RKwHM+NCQbjBd}-p zP?TZ>=0BmU9VYK#e^7#H03;hvCWf|jK^xE$`nu0wwgKT>dt0{Ir3sIK=)s&QXaxHI z1a^A#tYZhe8>uKinz(S*n7`P4bGaUr%U+{zV+5^K(ppBVwF(ZVR-?Iq-(%F-%}N|q zydb#2l~AaRPOkJ%7b`*&_ytO#R2f~MmCZmG2++z_WbU&_9{t*JSJV~N@RR71#}G~U zzB>8zd5-U{%N*qMgnuV}kl_vzvdJo!B7v6cEOq;8A}1NJx=>u~h^|<&4h2R8=dQ|o z=F~YgptUNJa)h&9Z#2+6w<+i=EXg=?Q9BSZsUk>Qu--1Y!!6w{A$)(LE6J;MdX3#- zvg!yuqqB+@fwhE+nP^+gqEc(sqSIv2Dl`U-XtoM07c9z_)M@l3;t-NTq7#VM8Gs{V zFzMCK?SaR5^<$>(ktda9%|9n+UZ1^i_N^LYJbj75RAW??t#bGt`jSd(^+={`R~2+x zovsy5RER%2b>MNA;O3nKp#-pLw|lgdl30DsC(vHn0~AT20AKb%Yw8`pPebT=S%*$z zhY2&VUt>opZ`l;LLsVhB6du}P+2I-zOh9Cr@l2ra9^=#rH9d*G2hh>04(;%&3HuIa8Xe`8_zz`&L}evD?T0|C-iCm( z>TL)}mDE2=g-w-8>^2hPVv;vvrLl#}aCj<2AkJarL-&#>8K?o!B)P#RWZ{kQpU0hS4f$gZc*;X0aPcj50E%vnbk5>nR1Hw{Z|x z5&VptZ>L5yh#6+Gy>N`AaJX6e?Q<2%ud$WTd#mYjrQM1jSF+(s--n;0kkI|a<1?T0 zGx>AYUg2~0Hw_LpHV+QwO9zNpS1vOb{4X5?pY#8w{)8dK26*Bb;sll*Hi@_p7Q63+ zn(*8D4RBl6TR*ANPNm)>K9kyaF%O}?L1{kXbcJ~u6*SIt5LQ$swC;?&Z&BXIm~m^- z$E%qZ_&r*)mQ-p@+W(m!%6as9Pc9VBd-Zy+Y<2$Y)Vt^}6x-ysL8}w{j@-8IoKPFW zpmiG&&@{u@OF0prnOT>#?s?i0a=F76N}$AaBvNmuG>-a!RNi$b1?n9dbUmeojy+(_ zy{0pPrfE#NPa6E?{dj(<0bU`KSW3S_zlXXJ8^RtnAd}dA6GpW~L=3M%*}qiIM^sKv zi0KA=Ph}L@FDV(TN3i=0C~>2~)8O}}-1^C2u`z2uL+e!Fj~mpe`4LZ;Q!2SIkiy}q zKcmm#&&c^mwxfu75}Q0pJG^`!p$A%XuJxSklfK+2xUBon>EJ+Q+!{^!s=M?V=fXLk zUhm6=BaJ?T!Pj`9JDi7awmkbtz3IhFxSKoMZ=Z-hucx@x0 zQsPP-2imh5w8seA<3@aNj_n>dvcxISEIr~x|7U^~=yHSLna!_Pbg*(PMng7ZOgCWD zSjZVMqmZ7T!S%MF7>aS^$l^r{37n7lok2m3Z`gtfJKucc)eVq#RG>*`(L-y zmeYa8sED7JMnHSEP8revQoI7><9-1#U>uN)fPu9okk96EARi=A7SC%n;;G>CMbbh4 z*xu1u1lSvw#Gs(ZV#TPLjTECmJVA#)W>qM@{&4B(Sj-p>B*k5h83-m!S*b-MN(9 z23ShP zi{E2e&^mGIWBk{E$(De&e&d8=+0q^bOvm~8$xyf<-J%H1nM7Yb+07`)MT&(+crV(= zmd{g&z2LqOTbK`Ziwo82g<^LoPa^Tb;YBSyuP#lKOB@^QD(ny6U}@fZs*! zQX(m#z6$uON^hb*m9BapxTEx2)DA{RnEF^@S45Hd$Osr6VQ8?ZDA*=3>q);9Ph=JT z9K0`R2}PfxS2v0AC$0SONSngi4&E=sdh7iKYcEChS_}Sq5(#&%>&q7ZeK4UIj1xoW z1xYImf|sjlooj<>!{0GF!1z^Gt>7vJWozy#BQkSSS&J!a?!d@^M}?hbZnbTP(mudr zYFo(R3Rx*sco#hIVW%s|Q<$)gVOitt;%;zZ?&Q%_t21a(q5Qj6ELm`bz^!$Q(R|?{ z@jV;%`(*HUp?F>Njp|su@kVtd-iRi_Hv@^f=*x^5iv3?+Hn8$Fdgt$c2V_4m^{!&6 zqGhH={!uv}_lR60zinJU=AA^_j}j|CSB?Co?RWg}*1P|Cf3E$&S@~M}lf7j{p=qqu z?I>Sen04Q|uP+$>+K;Y>*P#dg@9hikSel3}zIkNf?aSiP(VHuk!WtDxz!J`*7WE|d z)C9t4)RX8f6XG&r1sKW;=j4+JYWFE9NwVzI%=#;C60EUufQRmqC;{9 z;=IxgEBxS;UV|%lt4Ssz30{jqc~n8-D6Ue&O5XDU3p@cNGzaN^7T8K3ov8PN7m`1P z{S`o52yK~gx$?G2bYFqWF&s|D#|-&N^!lUZa=9=wbk#C)?f%QkGgmfD0q(e@<}X=^ zR|A!itE4|csu}u%k8_zQQZJa^&(Di6ra)7$acNsrtJKnfHz-rn^8Gz453Z>bI`%F- zivAH|-zGcYK$SJ(^Co?w{>6A-A#bzSdCfML4Ia8+wsQu?<>rF(clRV$t>4xD6^(pG zZF^}7|2F9HQe?xkNImveK|8oGIM@~(91OPMu@esXZ)=Bibqr~cR@%zMiIFl}_e_xLEgN4HRD{Og^tNu@i?yB$1CMMQ_ zq7?+qXty*jZFX^y_IP?(S4vH) zRRmZKu`Of!x>p=rld?B0&bMwJh#nlee_N5Y+jRze%+0%ur05cDskxCzSIVa1B&Wm2 zD#g^?u%|i7yZkOCD>*H0jxqbad~{@Af7AN;c^yV3=gZOB`BMmfP$2;gn)@u0#eBzu zsi2(E`>Sz8XK>=8e z6$dtcu=|e5?Ts5pavZIoG%B^!y0SetR`3cf*Ywy^(J*W0ogQqMf|O}4bvb$*8xL>J zKEL^UyPEW@l}p#zBr9zZEkb%IS2wR-P!PBnz#0NxjSz7*rAzN)c-^XdKyMRMTDiAQ zBm`@h|9XNXEzBhL_5@-fm`U`;31O*vRpo$y=_R6Ele}ueR8Dd$cLIEtN~0>RAWfch zFx_ldp)X$eJuJV>nXtbyR=pBGDMo!B(t?J7F(uHJ+$8@qdXA~f>Fh1u03 zJ#Mkkzbw;t%kp%5!JfJ4vH9(yt9xVx*3sVA-{H#C#rg2H7smZ9>6DGH&$M_4hKHbE z6v*WDTGW3=M*U}G)Zbf1{p&s_>f^6B?3}pet|RLL^}8l+2G?NeBU7wD-_V=njPX8j zt>Z9m-;W;zsQ=2oedqoGqW^76ZXb3Rs#jr}=UTCR;Dl(0*7CaDYJv$%Rwppsj{*IM5opyXC)HMYuj43a_h}&0 zMx+RN;=fNMyx@hTpO<+;0%+*~!rga*OOW9)L%NnCpmXul2tvB7Cj1OPoF?E&npVzb zrbq*C{-CKRr0*TbFY8QdfgwO@h3>UC7S`OqDk*eczx+7*A$2zW`pC z3+#o7rY0@}>7ZvM3hBV*B6`MT!nhdOrfDH@HAcw%jf8Mw-W`)$+x9GJVgMl+40K)J z`eJrLlifRaW7iI?Q6nD$xwCO;3!sCJc*9svy+$RMaHb5c%Ws;u;{I#u9gU0g9b0;X z53K(BwHdR`!5Hl!G3mECMO$4*FxFE)O$N49SJd4I$-qgPB`5FZ^o-=Q&5!||p1%&r zaMcvl?n}4;aw^~gT_fZIz?~H?piiOKfhlVJ3|w$IaeBxrQo)g)1E+R1Z&{RKC<23I zK!@5_wKuM8^EnFZdm2}UWhz)#p@IhQTxsKXw>O^N_}H#y#$weOc}Wn#eBkX?pK=h!h7`lAc)uqwcPmZO}8B1USIl)Gdq~f z4CX{fZhk5~loc`Ij-TD%+x3+n-|?lN9qjG8``mpSzC7%XF1};*+Pj84(b3ysR0gbP zL`7nHJ@fE{TVBuHJRz2k0)p$Ax309FsfN%o5v*qd@OZtGoM0d@rB?m6p0@+gj$2hO zO5U!lr*Xp?T44(LcrVY8cTzB2N~u=Ka}w~>LPayu3=xRK{&QwM^Jl^o%F%t()HzQmfP|7>6*= zS-d&F?9L@IzPNkzcJzOn*>x~5sboVQcQWWRolXsRGzxsg$?y&ya2Qz0um+RcVGj3h zXlYoz_2%I(WI<2+r{2RmK~G1Ky^yaSyNs`X0r~0_YDAh43e6QX%vYNZHDOIm69ehX zSTF$odf(tex4TeCVe7d`G&y~o7d-H`x~5q^>!JqzyD6-*6b5e@jR~pl7+i3p*#$R^ zgmf&=7=@r1ak2ty_BJ@(X`hKS`y4i}k!1a8ClIQMcUS?&+F1w37#w!9r+r;V-Ec9X z!O2Kr0g&s;srP|gC8Q0WhL*>;X%72d!HnqU{L$b#;=*>g4ucC0SH`H!)tF=c-td`uEdgVWrNgAr(;zj> zvEwBArBaG9nGM*}dR9l`&x>KNo%!Swok4{YT2_xc>hp~$k_`i1YXmy}5YTbRYrSxF zlf*X4G`69Z#!g}T0SvZb`wI-6Yimg-gCr4ok6+*QUIhu|{DQw_byG&kS|+Hh1|DkO z`RKK4AKsc5a*Lai^HM@)<2To?e_&zB-tn8ezLx9|Se@<8bmqm&Q8fSbwRD24NG9md`ElY@QU;_4e8 zSaADKzS`G+@Rcubxo6lN8NGdUbNLGM`vD>s6mb~)hAW<%PC6K{*ioB+h4jSe~R zF;o#4QpDMFuteI`mOI&tmOBN4)+#SNsMJy4b`Q#~@lVFT#5VUy#kSU4(bP7I?02%km z&p(s1q}J48L=$E?9&QNBCni27W5jub=ZFW};W-R0IIwsdAx6a40*hB8V+8a0F=96V zhYS)GtGBad*P|PnS9L`+D$o}tt)yMqk*2!7v}ggQikJ)si~?(OV1eo}grz;!v~S_T zH4W&J1$VBh*BVV~gViVU9;1?Bjix|z2w<*Rp-}K{^p^l8tPm!6^(z<_7}yJC&;?Lp z!Hg&57Zp#)>lIJPwh7_WQKH5XvH(WYO5Y@m?)pHw#g41c1EnM&Q-zVi#`UaLSp|v@ z)!@Di6dGH|-dG2r0$@cBjL~{9MqZ>2DMG9WV+#=@;=>jcXi@7Fjo_t9odN)YAkEmO z0;5VbXA{0Ki3i@ZtZ#iEzdBZsvqA-Vbw9}ZpZ$2{gV$#G^l(1jmE==kmAdBMrJ=Ev z>7k6R^yiMQ_D+MZDLkizg<&jz#>)&1_70(ehYvg3H}!@G<~G~7bZc+CV@qF9>b$0T zxru0o3H{qQG6D0V_z#!7Dla6 zi^BwrEYDCa{`%|x|N5(|I`!`7ae8|hPEJG9fu(-G1v$O_RLCHWcS0LvhJL@q(F#B07C8$2WFt zxJ!=jU$qTHIAe7#lv&&sWzqMdNr_zBGJN^0@%<|k=HBbq?r^SK+V%?_WFvDSDEE|Xdl@LN(#cXj1<|J!%g-GLk&_&cw^qrL%ay%>4E z6Xf$Bvl!puEyhLIVjOu?U9uGy@~#dMc6H2$cH*GGJ)h|L{`^MbH=1@H-`&1tFpK;g zoQjF}tSY;`FI8yKD8T* zsMqSUTH>=Jk&dKIVhB3zex1~s>sN6G`S0K5Kzypo&mH^Epx_BQxYPsqb2#NGz{@yoLBgZFo6U=}hL zA(IoNjv!I;)~SCkU4E}DnCkg<_Yuty%p&TQ>HP=79s;c;*T<@&T zdKza(HHMm=bg(Jv&`QWJ-|^8SBTFCn@Ef=P9iQ)CcH^3^h^BtacQ$|V$l8cG*|&0c z$wN&Wp}jUK?CqtHg$P*{Aq^6QhKS=Yi9+h-;{*jlQ{=u$hlx>7oq6jBj8r4DZdYFB z9SCtMf}vGYMC4E&icMj!6yC&(ym&H&KAyaMI0CR=#+o;Us)!KGW=2jZgHMqh^7jmb zl6&XB*GW$Gl%3>CDRPoyjq>-OASb!tBS%^V8nis+l%i@v6d_~{gsh%m@>2pI<_W_T z`Cdus97Rg!%MyFA2@_S8KHC}n+1Do#XAyn?t38BLy_GVYSp0LeZ|&429nraW_Vw!gon@0f*UbP-z1`bM^ck zeZ0b#*3RQ+Hhu@Cq7qt+|0!??ogwJjvpRL%6tn|)Z_!cmB=)Q`Sj}LLXb_BonM7ZC zsJdS^MXY#CYr>>9%^)@UcrEs5*YIt9DpEEUO0BF7XNYheA(RC7;LnlE***5c2FWK+ zz0|3tpJD2S_}>%vY;NL=MoyS}K@;(&+Ii3xNn6m|%d{o(2N9Xz?T~)F11GXWzENrq z4MD33#$9R;H=&v${{#E3j*&lr#(}=n9(qV8Y5x88w*VzX!!_pKG5=c0U%4L znLJ8vo6h-j#XZhya({RU5@QV21#$vm-FyaC2&gqThkvjfLyQ4F-rn$P&j56F3V_5!b0 zdIzspdIzmnI>7Dl9-yz9IVAO;WB5qU8Ih77L>67QWcbW4$l!@}*oV zov+sEOSx4~EdTmMwtmg6!z24I&DKxcGB#&Ly}=3@a?V&5o<|TT+0Vp@{bUaukJ{mQ zlz2QZ$K%oWZCB7cg;@(cAf+!dYeDRn8LAu(XenHw*0VGzmdhTbS)J2t_i99kOY17g zmIf)QaG14bsHxVFB9fqJ3609oawbFWf|SXCy2pWzY&sHkN8KPbMGoaPGVlGHYSEF*WFH)fW_W6pHQDHF>j zltdS6ofByvZ+9zemh^TJVODch*hi}z7L(g%QeETCCL+2(OrzIGb#ANOtuq@qXZ^ey z@2vUb?FF}j!U=Z5g#Gmtuj&5H^*4NSD%Th}76xoos0cG>OwRxSnt2X{% zYft!F4hP-3L-vT;@DO5x>FM+Gx}=NFo@dV0F_{@&^|FEyBmF{du3fsbBi5UB%OoO_ zVI}rxlRsC`R5eGM85V8Y&dTy#9r3igzS=2O$VrN3t6TbO+E%u@x_YbHYb^HsaI=F^ zaWaM0Wp>(>YGo{H@S9n&+HTNWIB_cG3#$w&M-Yx*x^AUsGo>lE_+yOday(z zB%vaa&HwbAxjvJ`uf1=KFW%YfE7S!QViAcJa7j#|#;~{6uT}f9L4T7?$7#*PE$B6K zPFei5wp!n|x+9RzkI(W;6)KihTeLc>TFi0^)*7;z;jl)cF%qLzgH-D@M1t3l*80V$ z=CLzzauck%69nPtk@zouW`Xz{+BuZcoUmNZ?EK_;1wnw4nS|LFe0uh5#C#BUcm{xOxsx;2OW^hO=U)(TRc&o1MH6bD3$25v zyeW@L*Y4e$L;il6;n;2eb;I?4-GX-IA!(Xw-E;M|P)pUE`4jmC^6S%D z>M+()hxt{td%Sni*L?a_wNOia!P~QS-oh>IHc$7~{v})6EYGo~DytbbqY}2IJz$g* z-E;R0C6i08>h0aNER|VyWl!DgxItgjn`xOFRU6~I{G1$dH~BTRk{)TPqj}b--pdfk zak_`TT5y~WU(j<}R#bOOja5!Z2r4R#ffW&AM*4_|(YVYGpO)51pv8^0;2>VgN<@s+ ztTt&FdW&#Dg{&Efb3*T)1&|bq-2kRk*9JpAd6gN5CagyR90F zUa#0-t@3)b_JC5uNi}+c73gwY@^1}A*f_3Nz+mUv9KdCm`s(cc#wY4D-SH($Pe18Fi2t#O}ljC&2sdAF_?>mV{oP^U!7xtXc{ZL2h zzK&U97^$qyTSkWQP9r13=pXMra(?Y4y2ubIb2fpd2S`wVb;agy>j-sbt29zZF0+Oj z!p>@|Lg}ds<>U$p-Waw$-x5yR(-DUhl8hoKF%xc?7i%8QIn|z&C!7oEzMGs=Ym+I} z8lTgpQ>YZI*1~D*IytR0YqchYDCD*JIWULh=XuoHJ0c?=e*Wv>4J*B=C07L6NVoe zNW-lH;YxaJ_>*4*4xFXO41yZtH_|DD=WXk)?o2sZDJhnSW#(WuY_E2y8(TvyRvo7^ z64xn|3T5%HnwY9-wB7fk)ci)5lu@z{C*(IVt7PPQmmyds;q*kcLE{Kkxh6=$5bNdb z#E-}(SYJD@yZ$E3iU*MHqBY+#?P9JzpYAFzZ<)Emt%(%LC4ZolmXIToG*k4M;(xL# zrGj`JZ6r;$sm%t1vY3|0(I`qOCw}e>h8-fM73wSpr22Zuy=a!J07j34F!2b`0Uy#? z4$jTbh$oK`N6;)6@o3&9KN5X5`qL;Ct)nM{&jf!Gq=Nru-t)s&;&?03`cci*NWfzzvN7^hXXfw2F!&x)r8FIb9cT;cI`tE?nllEGpE{%8ArCnVU1y^fbzUwFc zcr+MGaTXoJDy&sDjl-xwuNtPpldbOLknFMA=l>tO z$7Qv^al2Y)D4ycX20bg+8!bwOQNwu9D5!?qPJV%Q!cm6~%BmY+jGw%kxSO`X7`+e^ zCvPAN_#T50QBw8w( z10;Y0Mr7rH8c+vvpcBjmi@NA|QTy*^3_t z^n~WKJb@VA>#0qrl0o6D70yQCT>4#d&h@$HbAOi@&c61alYS{b>Qp?Pj^B(9AEpwi zgb#&^bxHX5P%4o~kpt*>+JYj;Ys>eZJ`hhQlRhGmPA7=x(T~Mt==dSJ`(_lPZiR<9 zyej@Il}h{qUJ(0XU=XFY6CQ{sk~OubyI|;+csxzIgqw;I82BxE?6q_}9fJYLH74=} z^6&I-NwIVikK3;xe?&e_zYVXC;GHNJkk63M(0>8-pnftEQNUrrp*#oVhg7jcRVoOR z>qPAodFGJm1U*F-u_-dcDfsS5w6~;I*!IZ5f3P)a5h2CND4fBhGu2aL7#;DY12zStk#HIjqvJSFv>`Zj<5*fWu=KW#&2F`fGq}ug z7aTF@Gzx#)Q0-+`D>OQ(Sn7(KT}DnO({Qr%s$2MaQU+Yl$IA8IjIXEg^+NI)N=g3( zULO^He}ViHrqi*~HIc>F$IH*R1tKu3TMAfgC^#EAyl~Vhv4+ z?!oRvb>CRl+LR7TL}C#kQA(Y$29G0PlqGr=^(3gHEyK-DF{_fxRC<>+VAGj&QMV`J z57aMgtzTGglPWcGF{?J~0uGf{r8JmXPsHoX%*QhA1#%yz!tn9AS7R1vrr z>YwamMyo;wfR%WXco4{dmv|Id;q%2qK&&|m=^#ejiT6z4)k<>>+5-a8g5MnhsSv8P zH$WgDki|&sdx(w%)*M^r|Dp=r^+a$sBe=lnLJ(pEV zNK(Qn$VXVCST8HR2dXAtByWf1^nv{2fFK?|LeqM^#Bz+-2cy))ck(icSdZLUPWC7) zCxzNAhrR=-sZW*5n=)ZFu14ZTJ-xq!(O@v9G8x{e#=AT`wtVzwETsv1Y<_4w&1J1D z!I%}ZDVf%7@kR{tnmRJ=B^pM9U<&Fa)p2?Ef)_C{LlkW=OG)5+NE!NZ1@89Wh zFDH;$-KA!V?j(ucm53Ezb6d<3@ zgsazg{m|s`n4Z~pVHC-7oJwb&Gh~(&;>o5(S*vK(`rB7T`O-ke_2se5q9#|-XK7ppIaQF| zzyq2N>YP)=8+o0?#F;oC(H-CGxXD2}93t&;29?QqTyz!%p;=H9nj+rJYigXwfKg?HT{#`Df0ANeO{1b}UkeLGJ-zFciT_TZpi))S zo$PFFnyD*oCsf*-S#s8nnGT9l@+viuX!d0WTilnec7>I@IIWf=Bt|FN2w=(B$~)F( z8#ms$V$No)gXv|wMpd!i{L<{sE2YwXuIh-}VJ$wT)~gi~OJ?=WBbVI1uEBxzFTgE= zwI#GU8x9&}u(pRdlNdFO5^$#1HcIwL;OLsNX;BYld2yG*@@^PA50mBgK+WM*>&jy+ zRI8K_ApcaAtq*<}%+^;`)n{R#K3hfp5sQ*g@n`5vzNu8JmBkMT1v>NPLRuRrfbmIK z&NqM<$jkC}=9V);7DN_hQI#zv%qIv0o`d=xXpoP38eErPS>?syTZz2>n87XK zC?;sZTtYE8zZ9Zh`DH;Q<9O{RR0r=W96;Lzil_TuX)k3|Fp8mh=GR3C(k`y&Z1qX?B}czHa{O_4T>jV--&-&opH;0NSdNaOu@!f$tv~t0OKw|R|MX8U z-{WgtlG$~YuWc!ow%9&|TEhe42c42*ka-oT7sEsvK{1@m&e#F z)z75kwCu&|;6S+liaE8xhHTJhpQ>9O&g7oA1Y+7)qR=S%LvBrX)jPPUA)(X;`|1Hl z&>(v&4}@|-I~8iOG?Z;Vm0LbV{OS+@;VI&+L+*qMb$YeImpJ-e?nm4&If~=7@#7ZM z`ZUn;t&iV2epmSRWU2;9x)~;FFc9#1)#nx+>osKhP}6mIU91oL96p_l>M$mwHdGmp z>69a)8r{;<*%EGJ==Ti%xH-{SS0H~cWh5fBr1YVNMDcgHZco`QB&l3CJbT>YAHB`2 zCq*`oR&pqexLL46fdRM<0vguoh>8)huWAv&r98o*^>gy{Nr8Jy<((GB_OO+X|v=bXI zU9b))_Y3*MchA0ZVJuRcuI_7})eYrMSj2qmzQDX43y70gGUk@__RS@JfQ1?f5=1qb z6D@%n-3v@7fSD=)j%ovLc&4dF%-|RDFpEo`mYlP7yt8Ml$?Rwy@9G_EG=EL$h&pm9 zbZm>0&t8J2KqqcpCY)C;+T3ROUpEbIYO{U`jW&rKX%h_q2QVFEjZeVL8DNFkQ#ku% zE_K%SOz3?oY^n)ENGx1!a%J&Kg@R+Qxk0OuEA}%UUs%6|Q4m+S%x0I@L`nx(W58~g zuab%x`RVNz)V_J5m8=nsfEaKdQjn?>FiRKATm~XAL<*U|%k!m>dmZoYFHh@b%G<7% zJjXSb;yjgJWx2MHuFcxx0josDGAbsJYVkD;HrUmXzQ%1t9m5gVv|1w3I?GLc-XEpM1L zJK5w+1?^I~T*k4!L@u;uQ-9C!7-?x<*5YE-TCvpRHaj^D*P3m}nOt^bAzR&~g$l>* za4<5hni(1GU857p$5G9C2_NYfwL=-=dmJ_RWIRqsP{n-bsn|v8RdU9D%opnq_N*-g z8>%c4sZ1u5nte6S?t$*b_P9x>3=#_zDo$Da&{$)v8_Ijgc+*&CK*}g++Tk@?83mK? zY;0!?W@2vC=Jh&`kd(cC5bbhF#K^R$3(92e6R@WgfDZ8t;+9<5--`7v|DI_rE*6=l z#4`FlSukpIaWo+-p0wME!#b^q*4a&P2zk_~kSf%2a7oX(IfH(a;#hS`fcdw1>14b@v` z^$hgiR$HH`W9>0dGOoyVHe_7+{3-ZEO~9H}?in@8I_ zm)9G=th9yg&2erbs#*>ySi=)A zcMD)({vw<|6e};5CWXp!Fs?)Aypo8)d!m2N%5{>`p8*z9`Z=qz2c z*(6;I^|0*ps|LIx1w2nWsr4X=YOR5}xnRB#cqYrW_D>6w8M9D0LfD{J5GJJ4TpZ{0 zD$_1^#KI&q)~L@Skuh>kKQ^mwpw6lab!9gYRpv8UgFhHE>~z&e1DZgB({d)4(ZZ2?>DrZ>C)ITds z1iv0HOstWf@dj^0)G3yVl}I+lzO zdsB03t#VF9OLR7!O~EPZYLXe9)vT?L`%@~dN@X`$WSqOdKet3Jk}bsRZ4Zz-YEem! zjC}))XHC=Z@ISV-W81dPotYim_Kt1a+|iD0+qP}ncb?~czvSNB; zKp*hKDr#To)kQ3)XiV=X5AOhtS}kE2mzP&k{-R&Ngw&k2YRb4GkaWz48FRkIJSh&A zav%X5NWhQAy}#^-HqwZ{n+-MVN`EY<77MA+bXwIRxtiA}YFf`)uH{OInOhV;;fOC)CUVmNkDUL+5?#0)b1D}(z0z8|_{#c05x7B2F1*?E4N?bldI z-Kfhrv&iT%*{MR7BzLfoPODDk|vev(Y`Af2q>N%^*+$I&j5BXjN@@EWjsZyrE<}c^iT)50~(_W5rF9C`*EM=W;(puE1}^9iCv@`vO)S`9d|u zo9%3~IglIYGlykxGQ~9M)Zx07`lPy2j*U)*;!y?XZa=_4eXekp{!btxdnt= zzQ71}iTSu=2d6|r$mlY8jo>0)AI0=J6gF%%&e$|`T|PJ5{f+5k^(1UI%vPO(;c0h$ zenouG^6O;Uq$F%cHas{$a^3kXNKs>pKA^-n~@7<2OYL0Umtfpcf;XDhyGz>4fj zj;W6hennT?Cq5huW42}e2fsk4y)ii2JB-~iP3F#w3QWyePHz`GubqzP^t$?B!vwuv zriJ%juUVL`7EaFvt7js!_A9zjP zo}Ov$-N9r^+o7;$2RE#}@l)v~d+XMvcbh3%zuzWmKWhj1n}b)^$=k%aV(6PGex{e* zWOpY2gqQwi#@*(5SMgW2AJC_j(}sX|t_RQuZIC)=b!X%Ss0YBCAt$TL85q00Y4UIYAQF~14D4Ff-rqxCs$fS%@)vR@PNipIOk|LX;lh#%>eaANv0 zj~>*oIze~}t^@35boR4QIyst-*S|ValTAwy98E<*5c~^&ce&QE zPcAg6Pdqp#QbgP(ay{&(_jdWVO0d25JxQ7;W!+)qNxbl1?f%Jo)YX zNJ9I*z+fi;D0;9~z&Jgs&t1?~0rudSs~~JUdlZprzIkv203UPkGXgC=puq}&<+iQn z%>oBcOkZ15-=36PF^E&oG&CkNJY9(Ecu;9n9}BuK9>+e27sCM_!^W6h^qHO+D_t1O zr)}WVx$ji+tzFU>E(B$L)6bW`@G5)n;`-1T+Z}YNR}|wAg^Ykj=%>f-GFArk4|gn@ ztwjef^zLUUtq^Annkgz72n@4;CF*T@3Kvx6opY|+6Dw4U)7};>fDc~Z1Fhnd!}B>h zt|L~vC23JQ%wScIeVrgX4NCqbn70jRktMOWH|`cA{9+#uQj*$kfi#8Ui4I2eR`{9| zNOIx4``m*-mu)~{s;|6FkP5~2s?2t}OyU_M^w&}!`7`qE1J=Or=D@~mU&?$H@f|OU z3cTx62h7#rHGS&xEoe-gkg1&b#I{XpRG_si!5~RV4##P&b8Ii+xUu`ma{VQZ2xP2$!O_9&GwTkKNx2Vp%g(D=F>007bEZLv>d%$yZ$rPhYx^onUl-Z{ObN>ZW{2 z=*;MryoB3xL8#~;At^v=5Bd7WfeQM@Ihd`28I&~AOAC{e9*FBi>$GO)Pm2pE)Z>bZ z;*@qatF#oPYslQD?$$j_0rQ`q-dAgHK3`Wu9{PuTYriL7vadL&99x(zhTM-CxZ~s; zH@t5|&N^C{LylSpHgIav4E>;9&lqz)ulDr@3TWQ>$zaHR$u#o$quYT!xrO@;R8wnA zTsRcraU@~=ltXGniSI7;j<6Wu#R68;HR+!0 zYcGcsaSmI+*Cz7_B87Fb!jHCVcmg(KPsS3WgE-F>}4qv(YwN*8J^R zZ#V-I@{h)_`Q*>+lNt43I4^3efB2_pdW=uTY(E=z6qBu43vUY>gV+>K>&slchxZSV zv)kr+WG|xIr8OY#{TaA%;va|pEe*#p8_7}BJluuh!4j-#{VMzgOpEF1bCL=FMcKG{ z(^K&b+hwv=b5u{eIJt=KraHRl9(B75R2x_qv?d7IGJCoib$sn^)%#oIPC%OT(p;lD zd1pz!E3J7;d zYhkyvI?aPgV9$H^+91;q0<*iTayf(+YzA$O5eY;i2JH>2Y*6RS9I!<@Zgk?VaJS_T zHR{anQHUysVaJin;hNtUiX1+UG}CvE_E>BEZ@h?WRtIYM`no+ANe*uOFg%BD#yd}f z>#!#67)yHG;6-MTQ&d}AIUjJHcEo>r8j06oJu8=PYW^NPZIP9iJ*As>b35T2l2z>m zc)=`{(k}hJegvYAbkcE!+q}7+zJ;91ik^P^T%oQ0>4H*i%exwSg$i47j(&f8-ovA~ z_bUtxAAsD8httZ8GU`qrtbWa#hIB`}WEpf&KiS)Q{E|eqbs>GF)%#)xd1a3ija;A! zL0GBjaI&NLptHkC-JzDAocTzg7-~QMhVVgA4tRNvP7oHmD)fWz%ID;59{2m9QPt4* ziSd#;_ReMHSG^l$6*thbp$^>HxmCFqxCE)6bkk{yvKaPukeFOx#i3@`Il6n%`ITPw z+gH58=FB>^kc=iPBH!aG_)8f8d8Uc`eGzCvD3roz-~to)Qok@B=r0y<4W?XFxP}>p zIRy7Vw-+DP#Y{I`s1P5sH`qfX5`Ie}6!HU{HXuFQOjNS|pJ4?bFOqvT`V1*QlGqRyz3%QKiMhq$qG%J z5-6R?o^MA9_Xgbnxb2kbajDN{MPX(HJcak87q?>FANOi^r#st$PkPZMH&| zn|u<9aZn0*a9y2v*bA138_2}!lwPLclVBM*5~K76gE1$-X_T#)Og1trnv@M#EiA*C zC?lenvoKKxXKJ-YNzSa@FM@Q?4U@~|7%yNjNuqa9RxIb6BC`w}dU6}G9AVZ+E?QAG z<|DzzkHZ_k<~LOfkck@B?=#tBCoGm{!8D*uw2+a}>6!}P{W-w4ik#7uYg`$PWH-Ws z(};@OF%9H1NlmOtyQ|RP4Vb5$SAUS{lq_yydeq`&=H!c#WH5Um%kV}uoIAtv(n;1S zo;$-NRvSCMXRBDy6Fl7EbaHPS)T;-75iySprYQrK&DXyjCqN>bO|>Ezv=}z2W&I5> zWK=e*K4NNor)g81QlDU`=}83D5L9d9Ll8@M^7UQ#)3oZJ>c*W=v9x?w;f`at5P${X z9?xq4XKLhu11eik-^PX;8Dn3CLq{|poto3kE0(n#03j4%TB!>b~6AbvRYZH13z)X^Tz7V&~Er=fVE!fl)MNNPf zELNq|1T0&&QzjtnKrb@|2?||)%!MZ3Et`eo``_4ST1GIBWf|F=zOCRtEhm8dMsl0L zN%t+^EUiGhlVr*ltQwD2FVNS935A_ZDrhO>F|oivgO?*{4{^%|<289i62OgwweyM@ zb<1juGh~6d?r&vG#+uY40eT1)Fa|~Gcfbt>WcY4I;*p{Ykg&APOO*&lPJj$>^>NMx z16F}D^w#4YZP3bj%{y2Z?$9x+K~<2ZkOLIz@E=(%(?%?oPP8*~b_&34-MDu6t;0>41ZcxXrHDe~a55j?$S@}xu7n=DKyHYlfR%t4#;}nl;awi0pWZld2GXD}nj2~`^C8W! z8yQ$Qz|_*u6u}l;Ny4x$tpNbH3(=4Dhc-dGkMw5%QtU|#Nn>@gdousS+~d6Or)oP$uppWP%*J1jv~A zXz3_eeN#_ygz>K zS2y8_l$P-y_=b%}3M?XJG!xQM@sy!LX5%CyrGgKS+uK9goht$`eb>lw<4^=F@siOp zk`Xad@}V;N@pH=Y2}*`~uV#oDm^mDT;3i>dxCyC%F&mp4eC@G1Ec%Vsph5~iNH&Bf0Dtam^LPqcV0%Tkc4n|h6Ka#+dlfpN_G53QWObvXOY)#iqG3_}%5EZ#n&ZCksr$W3thB+*Pl?*6Tn*Wz*k8 zd>nylQk%B~Z*u0zhd-~Wdvl(@%7jTy%ar1#L!dpEKl%7d_$T83zXewaAENi#AYP7wfo}!&1=nYWz7CrC%t%1L%V8K{O&bNS#}Ey; z7y%9zEJm}K29*0{DLu?Mq2~Q;2Iw^ywa+Qj8ZcPTM2tDjl8HzYB%*(Z*^IkC5NwfP#Af8xM`(%tAW@4KA5j~b z+n2jV{w2CeP$r4N8y7!!q5{E{a4M%+>gPl`Fl#)o{%TAWw<&5otwurXl~g;uR04kQ zY(eQ2;GWhgYMtv-*f`@_(&0qxoZ2ak2jR2S(C_>AD}(VE6tmj52eX^t2g5KJtdp-F z8iO4WU<^3G*|!J6x5uVC7n$K1n}GuqQws#v1{fe~#JbFnbS_`)4hjeW4zTOigVl?L z#2g2Ktpx_f(c1=s&4z&00f*fLhjjr0ya5Lg`wG(P*}+?N&LV@_M_~Z)fCKn^dlb3} zkQpREU`;>(j=%v1-P>5*+i=}_%zD>QdUlu$9N?H*K(IE*Y>4bR=Mss28>pP9445#O zBp`q}AW%@fSOiQSxWb>lJ?`Cl-$nyh3w(PxySK6RuDM$x;}fV$ANR{t5FE%^1IzQp zfB`kWf&jf-2v`~49?$M>V9a(P%yJ0WO$gXWAi#oek7V~YkDeVUgISSJq1Q3@{hkx? zMo6bLf*;3^8D!9wWtadtUqPR40$7GrAk06Y05g0GP}ou601Ti2Szkd?Jp~BNcM!~X zxnl{=IB5V7-~%YY-d7M=j{$}u6%=zE0u~(oMuY!eH`%W0r%!Zi2uzg8V0RJu$vL zXx-cL4%i36lYd&{#Hd19lnsFcjJgF7Fx7zrn7Z}8=LgTQ42gLTfQ1JJ3;_o?`u5Ov zcZ+J8V`)P-CeL&nr<^djWAH|I3Xy{XEV{cvFgbt%lKx%Tcdmf|SpQ9sJW_x+rw*nQ zIII{5AkEhgk3k*mpCCN~19U+FroaJY2FNcQdWi6t{h)vqU*L7(*eMWzEhqp2C;-J* z5L9nk&Jcd5G)G*vWbvE{R{|a2pJ+{i{u3>2yGsaIZy?ypxg`-WFYS9wFX8!wPEu^C zFRJjOtI*jKvAEz)>d^q>T+E6bCi6NOY(&Hv?lu-~O)@_RLs_`@d6v=sKp6wh^T54o zQ8H4a+QD=xj^|{tVifPpsOG|b-?`s^{{98S$dyMqr6_>Jy4XiZ3ylqXIRm6+#!^0V zPxk#DvY)-_*mLA)sY#*B;&R@XKqGH}#wT^_3|?Jb1&~Ng*Pth&I$2Rbt6K`vB4do< z`IBV=u>e|!(9i^7PF0ly=<6z+#}5z?cOrVd_bk zgz}rc0C<^7ZY=!xxDp7R=nQewfg&nXaQiA1P1O%dighae=KZ^I4L=G6L5AaQ8b;6= zbj9MBkdlE{!;VeDgZ<>7L?vQ-6~t$&b4t{v17-S4hVr8K=3(i$wxOf#-)Et;VJ7NV$&lCxfqI1EgkhW4*LXBMf0eVrC+WhZ`z zCS;lUh^@Nz0VGEBwr57S9XO%l=T3<|G$h2s+2?Y@oKgk$Efd5{^!FKoFl z2t;kUIEU!tCkE~P2`AEBq$wv6XRX81=$7bm&^+3fXj}!7W&ql{))4KO$~Hnno5CL@ z+Pzlb@u+NnDxhK#L2P7ouy)nyQ}tg z8!6GnZmm$L#XIDZHBEJC~>3RFaep0V4O zP|?T)kke?re~>J(qrvB|(ItT)hVf%5%21!vrO5;Y|0Gpg?CB9wAVH&3ib~m6Z<`T{ z?z$&Iy668y#YYUI$}Pgw-Uh`MF<`)?_aBDo@L+$q#9Kne2+7hQF=E!*6%KZ`x7Hfx z;3dUn#l^ClZs8snlna5uk3ml`{{qXVe&@C{S zG2R(kB@_`9ydmk6Nn#X6e}r}{{)(NK1*`5`Vkkj)ZaeHOG8&s^iN~mB)8hn0l$bg) zyIUVv`awPW)=(+!Xxf_l?zL4M^Njv5F56ZamJGTr-veZB^}L{EF4(DZ+4W(DKHo)u zy#L-*1hoBZg39%QiSVWS`BVLfXi3o2Fw7#YOoEUYwf683=+o{DcF4F|O^!li00Tqc zO}&u2-;Gjfi*6^`-EC;!N$|Q^Dp5&^Qk-p3Kk8H=Rx;vRNHcJa#13`45hQw>E|dwA z9H1M70qn|o>yM@Mi}JP{MRi8ipr<_9J~&+wm8*z^Jl z2OaEAx*n+{iuDIsXEPEhWV5HE=z2hLx^;IP*-is3^bkljMfE86tWn^66wVk?L!g9* zUWpl&J7yA4aa68$7Z#(kg#xuaMT3iGU6`uFDO$yCg>Vp zYqM>l$$=)ikaV`+Xg}W_4wAK${7IzEg$4$)G-%O~sA}A) zSHoGh&)k~>%l{;zNCj0}1??I~Xf{7`Co(COZto&cEbj{$bB0qoWzymlBqm51qs+*t zwEpVC_s_$+oT#3vNe_LLm2Ey#&mUL3080VK=xV;a~70& z3@n?A5=a{R`Sa(mFw|~fP2G8L(Q+j*iVh;S+#p(7Wl4cibC{nUwz0&RtZ#*jCIsj29#iOK@ci!#6gXD^CH zTpt#IDoli#f!mpAqEEiQxu8qw_V%$yNs&>U7w~NxldU%16<(*s58?>7SFDQ()vY4L zf6c|=aAGD$L*ZMW_=c30k}Of_45Yu|;0wU(iDoiQL$OlfUZ4UmRboRCTK}!x(;y}H z7j=VBb)Lf}NEt3}ElYs-r)+ZykH z_dp~ekh&uVkYZTdM@e`f8oySUo(RY(TUutqGW%O#IN>dKlZZf697u3ti|~}pu7to4 zcLIY-$QAH9H3c%MM0<9KiM>#@6m-Qj!-}}t2N396fSfU;dhNO4hDw;$b=bn&cquxx zRw8HH5e$-C7Zu8;Rq>f9;^0gvkpxS2(EMg)5)m&?yv_KgtaaSJS`tE0oO{fRUL~{* z4L9OWrSQY=&36onwM0kP>L-bRuJeXy)@mxY3oGTtuSt-*nv$T!L%AA)h9Nt!OKq6h zyR508UOF=?Z@iQEbQ#k?(KD+4EWLEKEbwOrlEV+bz4?P-RG3Oe$tXv7EYGFoFNh^3 zB1HlR=S}20N8PvG?@!&K1Z#r
7Mj&p8pGa~Sb2VGt8WOWWS4hIj$4o@X2ptz?I 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 DCw5@| literal 0 HcmV?d00001 diff --git a/packages/markitdown/tests/test_files/SPARSE-2024-INV-1234_borderless_table.pdf b/packages/markitdown/tests/test_files/SPARSE-2024-INV-1234_borderless_table.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e8ba29fe908c289b4ed0cbc3c3ee104ed403a3bf GIT binary patch literal 19649 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 1000, "Academic PDF should have substantial content" + + # Scientific documents should NOT have tables or pipe characters + assert ( + "|" not in text_content + ), "Scientific document should not contain pipe characters (no tables)" + + # Verify no markdown tables were extracted + tables = extract_markdown_tables(text_content) + assert ( + len(tables) == 0 + ), f"Scientific document should have no tables, found {len(tables)}" + + # Verify text is properly formatted with spaces between words + # Check that common phrases are NOT joined together (which would indicate bad extraction) + assert ( + "Largelanguagemodels" not in text_content + ), "Text should have proper spacing, not joined words" + assert ( + "multiagentconversations" not in text_content.lower() + ), "Text should have proper spacing between words" + + def test_scanned_pdf_handling(self, markitdown): + """Test handling of scanned/image-based PDF (no text layer). + + Expected output: Empty - scanned PDFs without OCR have no text layer. + """ + pdf_path = os.path.join( + TEST_FILES_DIR, "MEDRPT-2024-PAT-3847_medical_report_scan.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + + # Scanned PDFs without OCR have no text layer, so extraction should be empty + assert ( + result is not None + ), "Converter should return a result even for scanned PDFs" + assert result.text_content is not None, "text_content should not be None" + + # Verify extraction is empty (no text layer in scanned PDF) + assert ( + result.text_content.strip() == "" + ), f"Scanned PDF should have empty extraction, got: '{result.text_content[:100]}...'" + + +class TestPdfTableMarkdownFormat: + """Test that extracted tables have proper markdown formatting.""" + + @pytest.fixture + def markitdown(self): + """Create MarkItDown instance.""" + return MarkItDown() + + def test_markdown_table_has_pipe_format(self, markitdown): + """Test that form-style PDFs have pipe-separated format.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "SPARSE-2024-INV-1234_borderless_table.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Find rows with pipes + lines = text_content.split("\n") + pipe_rows = [ + line for line in lines if line.startswith("|") and line.endswith("|") + ] + + assert len(pipe_rows) > 0, "Should have pipe-separated rows" + + # Check that Product Code appears in a pipe-separated row + product_code_found = any("Product Code" in row for row in pipe_rows) + assert product_code_found, "Product Code should be in pipe-separated format" + + def test_markdown_table_columns_have_pipes(self, markitdown): + """Test that form-style PDF columns are separated with pipes.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "SPARSE-2024-INV-1234_borderless_table.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Find table rows and verify column structure + lines = text_content.split("\n") + table_rows = [ + line for line in lines if line.startswith("|") and line.endswith("|") + ] + + assert len(table_rows) > 0, "Should have markdown table rows" + + # Check that at least some rows have multiple columns (pipes) + multi_col_rows = [row for row in table_rows if row.count("|") >= 3] + assert ( + len(multi_col_rows) > 5 + ), f"Should have rows with multiple columns, found {len(multi_col_rows)}" + + +class TestPdfTableStructureConsistency: + """Test that extracted tables have consistent structure across all PDF types.""" + + @pytest.fixture + def markitdown(self): + """Create MarkItDown instance.""" + return MarkItDown() + + def test_borderless_table_structure(self, markitdown): + """Test that borderless table PDF has pipe-separated structure.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "SPARSE-2024-INV-1234_borderless_table.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Should have pipe-separated content + assert "|" in text_content, "Borderless table PDF should have pipe separators" + + # Check that key content is present + assert "Product Code" in text_content, "Should contain Product Code" + assert "SKU-8847" in text_content, "Should contain first SKU" + assert "SKU-9201" in text_content, "Should contain second SKU" + + def test_multipage_invoice_table_structure(self, markitdown): + """Test that multipage invoice PDF has pipe-separated format.""" + pdf_path = os.path.join(TEST_FILES_DIR, "REPAIR-2022-INV-001_multipage.pdf") + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Should have pipe-separated content + assert "|" in text_content, "Invoice PDF should have pipe separators" + + # Find rows with pipes + lines = text_content.split("\n") + pipe_rows = [ + line for line in lines if line.startswith("|") and line.endswith("|") + ] + + assert ( + len(pipe_rows) > 10 + ), f"Should have multiple pipe-separated rows, found {len(pipe_rows)}" + + # Check that some rows have multiple columns + multi_col_rows = [row for row in pipe_rows if row.count("|") >= 4] + assert len(multi_col_rows) > 5, "Should have rows with 3+ columns" + + def test_receipt_has_no_tables(self, markitdown): + """Test that receipt PDF doesn't incorrectly extract tables from formatted text.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "RECEIPT-2024-TXN-98765_retail_purchase.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + tables = extract_markdown_tables(result.text_content) + + # Receipt should not have markdown tables extracted + # (it's formatted text, not tabular data) + # If tables are extracted, they should be minimal/empty + total_table_rows = sum(len(t) for t in tables) + assert ( + total_table_rows < 5 + ), f"Receipt should not have significant tables, found {total_table_rows} rows" + + def test_scanned_pdf_no_tables(self, markitdown): + """Test that scanned PDF has empty extraction and no tables.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "MEDRPT-2024-PAT-3847_medical_report_scan.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + + # Scanned PDF with no text layer should have empty extraction + assert ( + result.text_content.strip() == "" + ), "Scanned PDF should have empty extraction" + + tables = extract_markdown_tables(result.text_content) + + # Scanned PDF with no text layer should have no tables + assert len(tables) == 0, "Scanned PDF should have no extracted tables" + + def test_all_pdfs_table_rows_consistent(self, markitdown): + """Test that all PDF tables have rows with pipe-separated content. + + Note: With gap-based column detection, rows may have different column counts + depending on how content is spaced in the PDF. What's important is that each + row has pipe separators and the content is readable. + """ + pdf_files = [ + "SPARSE-2024-INV-1234_borderless_table.pdf", + "REPAIR-2022-INV-001_multipage.pdf", + "RECEIPT-2024-TXN-98765_retail_purchase.pdf", + "test.pdf", + ] + + for pdf_file in pdf_files: + pdf_path = os.path.join(TEST_FILES_DIR, pdf_file) + if not os.path.exists(pdf_path): + continue + + result = markitdown.convert(pdf_path) + tables = extract_markdown_tables(result.text_content) + + for table_idx, table in enumerate(tables): + if not table: + continue + + # Verify each row has at least one column (pipe-separated content) + for row_idx, row in enumerate(table): + assert ( + len(row) >= 1 + ), f"{pdf_file}: Table {table_idx}, row {row_idx} has no columns" + + # Verify the row has non-empty content + row_content = " ".join(cell.strip() for cell in row) + assert ( + len(row_content.strip()) > 0 + ), f"{pdf_file}: Table {table_idx}, row {row_idx} is empty" + + def test_borderless_table_data_integrity(self, markitdown): + """Test that borderless table extraction preserves data integrity.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "SPARSE-2024-INV-1234_borderless_table.pdf" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + tables = extract_markdown_tables(result.text_content) + + assert len(tables) >= 2, "Should have at least 2 tables" + + # Check first table has expected SKU data + first_table = tables[0] + table_text = str(first_table) + assert "SKU-8847" in table_text, "First table should contain SKU-8847" + assert "SKU-9201" in table_text, "First table should contain SKU-9201" + + # Check second table has expected category data + second_table = tables[1] + table_text = str(second_table) + assert "Electronics" in table_text, "Second table should contain Electronics" + assert "Hardware" in table_text, "Second table should contain Hardware" From 7fdaefb724d08a999f8d30647e8ce8f2ad1c5795 Mon Sep 17 00:00:00 2001 From: lesyk Date: Fri, 9 Jan 2026 00:15:22 +0100 Subject: [PATCH 19/26] Fix: PDF parsing doesn't support partially numbered lists (#1525) * Fix: PDF parsing doesn't support partially numbered lists * Refactor: Move import of PARTIAL_NUMBERING_PATTERN to the top of the test file * Refactor: Improve assertion formatting in partial numbering tests --- .../markitdown/src/markitdown/__about__.py | 2 +- .../markitdown/converters/_pdf_converter.py | 68 +++++++ .../masterformat_partial_numbering.pdf | Bin 0 -> 2114 bytes .../markitdown/tests/test_pdf_masterformat.py | 171 ++++++++++++++++++ 4 files changed, 240 insertions(+), 1 deletion(-) create mode 100644 packages/markitdown/tests/test_files/masterformat_partial_numbering.pdf create mode 100644 packages/markitdown/tests/test_pdf_masterformat.py diff --git a/packages/markitdown/src/markitdown/__about__.py b/packages/markitdown/src/markitdown/__about__.py index 4c8b68f6d..659cf6ba2 100644 --- a/packages/markitdown/src/markitdown/__about__.py +++ b/packages/markitdown/src/markitdown/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2024-present Adam Fourney # # SPDX-License-Identifier: MIT -__version__ = "0.1.4" +__version__ = "0.1.5b1" diff --git a/packages/markitdown/src/markitdown/converters/_pdf_converter.py b/packages/markitdown/src/markitdown/converters/_pdf_converter.py index b692f169f..76d17a670 100644 --- a/packages/markitdown/src/markitdown/converters/_pdf_converter.py +++ b/packages/markitdown/src/markitdown/converters/_pdf_converter.py @@ -1,11 +1,62 @@ import sys import io +import re from typing import BinaryIO, Any from .._base_converter import DocumentConverter, DocumentConverterResult from .._stream_info import StreamInfo from .._exceptions import MissingDependencyException, MISSING_DEPENDENCY_MESSAGE +# Pattern for MasterFormat-style partial numbering (e.g., ".1", ".2", ".10") +PARTIAL_NUMBERING_PATTERN = re.compile(r"^\.\d+$") + + +def _merge_partial_numbering_lines(text: str) -> str: + """ + Post-process extracted text to merge MasterFormat-style partial numbering + with the following text line. + + MasterFormat documents use partial numbering like: + .1 The intent of this Request for Proposal... + .2 Available information relative to... + + Some PDF extractors split these into separate lines: + .1 + The intent of this Request for Proposal... + + This function merges them back together. + """ + lines = text.split("\n") + result_lines: list[str] = [] + i = 0 + + while i < len(lines): + line = lines[i] + stripped = line.strip() + + # Check if this line is ONLY a partial numbering + if PARTIAL_NUMBERING_PATTERN.match(stripped): + # Look for the next non-empty line to merge with + j = i + 1 + while j < len(lines) and not lines[j].strip(): + j += 1 + + if j < len(lines): + # Merge the partial numbering with the next line + next_line = lines[j].strip() + result_lines.append(f"{stripped} {next_line}") + i = j + 1 # Skip past the merged line + else: + # No next line to merge with, keep as is + result_lines.append(line) + i += 1 + else: + result_lines.append(line) + i += 1 + + return "\n".join(result_lines) + + # Load dependencies _dependency_exc_info = None try: @@ -117,6 +168,14 @@ def _extract_form_content_from_words(page: Any) -> str | None: # Determine row type is_paragraph = line_width > page_width * 0.55 and len(combined_text) > 60 + # Check for MasterFormat-style partial numbering (e.g., ".1", ".2") + # These should be treated as list items, not table rows + has_partial_numbering = False + if row_words: + first_word = row_words[0]["text"].strip() + if PARTIAL_NUMBERING_PATTERN.match(first_word): + has_partial_numbering = True + row_info.append( { "y_key": y_key, @@ -125,6 +184,7 @@ def _extract_form_content_from_words(page: Any) -> str | None: "x_groups": x_groups, "is_paragraph": is_paragraph, "num_columns": len(x_groups), + "has_partial_numbering": has_partial_numbering, } ) @@ -156,6 +216,11 @@ def _extract_form_content_from_words(page: Any) -> str | None: info["is_table_row"] = False continue + # Rows with partial numbering (e.g., ".1", ".2") are list items, not table rows + if info["has_partial_numbering"]: + info["is_table_row"] = False + continue + # Count how many global columns this row's words align with aligned_columns: set[int] = set() for word in info["words"]: @@ -469,4 +534,7 @@ def convert( pdf_bytes.seek(0) markdown = pdfminer.high_level.extract_text(pdf_bytes) + # Post-process to merge MasterFormat-style partial numbering with following text + markdown = _merge_partial_numbering_lines(markdown) + return DocumentConverterResult(markdown=markdown) diff --git a/packages/markitdown/tests/test_files/masterformat_partial_numbering.pdf b/packages/markitdown/tests/test_files/masterformat_partial_numbering.pdf new file mode 100644 index 0000000000000000000000000000000000000000..246639a831813b1b6081aa5bdc0c0838c1bf3dfe GIT binary patch literal 2114 zcmb7F$$H{O5Wedv+AL;A8(OeI7y)9(?ATz8wX}q=kYp|KIETDIa?3r>nigZv@XaKd zi4N+n>e~9R>Z;_pDHX^fjV1s5YaqIZ(DWTmJ&M~nmnaFhd9sbIK70t%5+fJ+phqa7v)7__xWAUgRF6lEVu4l;{( zp!Ew3OjQPW%T^uDv<-l-OuKIT=2yl@K0;)a1o$jef;SftbM!}aw4f7Y>&#W;`afJ1 zM90#8#vk>Q{z_;58YmP5m=E~q{s13B&6Gvw6WAb{04zxXu1tX~z{j!|Av0GUmNdh7i0G~PmN+D9m=bmhz zOh$YRd;m5^%4dKvNc01+=xFF@2-SrTM~;m)5zGGw^fTfOIgl;KIJ3c?*{FxX-tjZQq5eshdzkF6U-op<9J^ z5N%EzPj+4Oif~D`{Bx|Me1BlwaF7PdGu}5*>>Cgj(ln}#&mf<0KZ7_bsSj1jv;q`A zDvJ87(e3g~6Qbu6y#)&a{7xWC185t;9^g(KFMgG8WRckiv#R4=${&-K?h z#Vt3T-KyoR;t!0!oKao67i??S)7(>H=x6n!z*eeseY_a$=f}yQQkL?r6uPN?`?)%w z=D9}!4=>`+^;XWht}Q0KWTbP2TjBbVDRox8?DL&wrIwoC-QGVY3hi`zHJ)b7_7JWV zgU(2)+(BQt4JGC+YFdr2z3jY;7Bxx{{xH)Ms&~!e!3b?JG~|bsSsLCYR!dyTkkXCP z;712OO=L5%b)R6x*^3pDiOnO;)vs~6Up?x^i;=iAGkNN^bD4a6h>2uUe9*MrQb;hj z!PqlPp4x)+z!4X4z)tF8+nsp1X(1r=?Rs{v*2H*kJIYqs>s0Ng;bsLn zJP@(`zB!|nPHD4W`t)rzcBwpHE^dSzuacK4Wi}0VnoYhW&DQ!QRk)BwGm(!svMJYL z%TqovOJ5bMg~W(WUFV+GEjs?2Kgn&~YnFo*Y(Jsgc0@N>vl%QiB;jaf31$6B{=T zy`?^n;nR@0y^3E*heUttr`ta7tr9|qGy1;?Xkfh8>HFyTS)_Kh4<{@xy6Ms58YxpJxel^1xjX+iHa zAiGU~Z7NKO<#bhJh%&8{JV8(jWM!S!6_QpVtJ1=cCAL`dY-St(JhKZ0pqZ$1qi*$Y v<2!?4c-Ph)5OwbJ-U#ll@} literal 0 HcmV?d00001 diff --git a/packages/markitdown/tests/test_pdf_masterformat.py b/packages/markitdown/tests/test_pdf_masterformat.py new file mode 100644 index 000000000..8d3eb0739 --- /dev/null +++ b/packages/markitdown/tests/test_pdf_masterformat.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 -m pytest +"""Tests for MasterFormat-style partial numbering in PDF conversion.""" + +import os +import re +import pytest + +from markitdown import MarkItDown +from markitdown.converters._pdf_converter import PARTIAL_NUMBERING_PATTERN + +TEST_FILES_DIR = os.path.join(os.path.dirname(__file__), "test_files") + + +class TestMasterFormatPartialNumbering: + """Test handling of MasterFormat-style partial numbering (.1, .2, etc.).""" + + def test_partial_numbering_pattern_regex(self): + """Test that the partial numbering regex pattern correctly matches.""" + + # Should match partial numbering patterns + assert PARTIAL_NUMBERING_PATTERN.match(".1") is not None + assert PARTIAL_NUMBERING_PATTERN.match(".2") is not None + assert PARTIAL_NUMBERING_PATTERN.match(".10") is not None + assert PARTIAL_NUMBERING_PATTERN.match(".99") is not None + + # Should NOT match other patterns + assert PARTIAL_NUMBERING_PATTERN.match("1.") is None + assert PARTIAL_NUMBERING_PATTERN.match("1.2") is None + assert PARTIAL_NUMBERING_PATTERN.match(".1.2") is None + assert PARTIAL_NUMBERING_PATTERN.match("text") is None + assert PARTIAL_NUMBERING_PATTERN.match(".a") is None + assert PARTIAL_NUMBERING_PATTERN.match("") is None + + def test_masterformat_partial_numbering_not_split(self): + """Test that MasterFormat partial numbering stays with associated text. + + MasterFormat documents use partial numbering like: + .1 The intent of this Request for Proposal... + .2 Available information relative to... + + These should NOT be split into separate table columns, but kept + as coherent text lines with the number followed by its description. + """ + pdf_path = os.path.join(TEST_FILES_DIR, "masterformat_partial_numbering.pdf") + + markitdown = MarkItDown() + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Partial numberings should NOT appear isolated on their own lines + # If they're isolated, it means the parser incorrectly split them from their text + lines = text_content.split("\n") + isolated_numberings = [] + for line in lines: + stripped = line.strip() + # Check if line contains ONLY a partial numbering (with possible whitespace/pipes) + cleaned = stripped.replace("|", "").strip() + if cleaned in [".1", ".2", ".3", ".4", ".5", ".6", ".7", ".8", ".9", ".10"]: + isolated_numberings.append(stripped) + + assert len(isolated_numberings) == 0, ( + f"Partial numberings should not be isolated from their text. " + f"Found isolated: {isolated_numberings}" + ) + + # Verify that partial numberings appear WITH following text on the same line + # Look for patterns like ".1 The intent" or ".1 Some text" + partial_with_text = re.findall(r"\.\d+\s+\w+", text_content) + assert ( + len(partial_with_text) > 0 + ), "Expected to find partial numberings followed by text on the same line" + + def test_masterformat_content_preserved(self): + """Test that MasterFormat document content is fully preserved.""" + pdf_path = os.path.join(TEST_FILES_DIR, "masterformat_partial_numbering.pdf") + + markitdown = MarkItDown() + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Verify key content from the MasterFormat document is preserved + expected_content = [ + "RFP for Construction Management Services", + "Section 00 00 43", + "Instructions to Respondents", + "Ken Sargent House", + "INTENT", + "Request for Proposal", + "KEN SARGENT HOUSE", + "GRANDE PRAIRIE, ALBERTA", + "Section 00 00 45", + ] + + for content in expected_content: + assert ( + content in text_content + ), f"Expected content '{content}' not found in extracted text" + + # Verify partial numbering is followed by text on the same line + # .1 should be followed by "The intent" on the same line + assert re.search( + r"\.1\s+The intent", text_content + ), "Partial numbering .1 should be followed by 'The intent' text" + + # .2 should be followed by "Available information" on the same line + assert re.search( + r"\.2\s+Available information", text_content + ), "Partial numbering .2 should be followed by 'Available information' text" + + # Ensure text content is not empty and has reasonable length + assert ( + len(text_content.strip()) > 100 + ), "MasterFormat document should have substantial text content" + + def test_merge_partial_numbering_with_empty_lines_between(self): + """Test that partial numberings merge correctly even with empty lines between. + + When PDF extractors produce output like: + .1 + + The intent of this Request... + + The merge logic should still combine them properly. + """ + pdf_path = os.path.join(TEST_FILES_DIR, "masterformat_partial_numbering.pdf") + + markitdown = MarkItDown() + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # The merged result should have .1 and .2 followed by text + # Check that we don't have patterns like ".1\n\nThe intent" (unmerged) + lines = text_content.split("\n") + + for i, line in enumerate(lines): + stripped = line.strip() + # If we find an isolated partial numbering, the merge failed + if stripped in [".1", ".2", ".3", ".4", ".5", ".6", ".7", ".8"]: + # Check if next non-empty line exists and wasn't merged + for j in range(i + 1, min(i + 3, len(lines))): + if lines[j].strip(): + pytest.fail( + f"Partial numbering '{stripped}' on line {i} was not " + f"merged with following text '{lines[j].strip()[:30]}...'" + ) + break + + def test_multiple_partial_numberings_all_merged(self): + """Test that all partial numberings in a document are properly merged.""" + pdf_path = os.path.join(TEST_FILES_DIR, "masterformat_partial_numbering.pdf") + + markitdown = MarkItDown() + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Count occurrences of merged partial numberings (number followed by text) + merged_count = len(re.findall(r"\.\d+\s+[A-Za-z]", text_content)) + + # Count isolated partial numberings (number alone on a line) + isolated_count = 0 + for line in text_content.split("\n"): + stripped = line.strip() + if re.match(r"^\.\d+$", stripped): + isolated_count += 1 + + assert ( + merged_count >= 2 + ), f"Expected at least 2 merged partial numberings, found {merged_count}" + assert ( + isolated_count == 0 + ), f"Found {isolated_count} isolated partial numberings that weren't merged" From c83de14a9c87698ac41b5c433fb7e82df938abcf Mon Sep 17 00:00:00 2001 From: lesyk Date: Fri, 13 Feb 2026 19:45:39 +0100 Subject: [PATCH 20/26] [MS] Extend table support for wide tables (#1552) * feat: enhance PDF table extraction to support complex forms and add new test cases * feat: enhance PDF table extraction with adaptive column clustering and add comprehensive test cases * fix: correct formatting and improve assertions in PDF table tests --- .gitattributes | 3 + .../markitdown/src/markitdown/__about__.py | 2 +- .../markitdown/converters/_pdf_converter.py | 55 ++- ...EDRPT-2024-PAT-3847_medical_report_scan.md | 0 .../RECEIPT-2024-TXN-98765_retail_purchase.md | 81 +++++ .../REPAIR-2022-INV-001_multipage.md | 76 ++++ .../SPARSE-2024-INV-1234_borderless_table.md | 44 +++ .../movie-theater-booking-2024.md | 62 ++++ .../tests/test_files/expected_outputs/test.md | 65 ++++ .../test_files/movie-theater-booking-2024.pdf | Bin 0 -> 3798 bytes packages/markitdown/tests/test_pdf_tables.py | 327 ++++++++++++++++++ 11 files changed, 710 insertions(+), 5 deletions(-) create mode 100644 packages/markitdown/tests/test_files/expected_outputs/MEDRPT-2024-PAT-3847_medical_report_scan.md create mode 100644 packages/markitdown/tests/test_files/expected_outputs/RECEIPT-2024-TXN-98765_retail_purchase.md create mode 100644 packages/markitdown/tests/test_files/expected_outputs/REPAIR-2022-INV-001_multipage.md create mode 100644 packages/markitdown/tests/test_files/expected_outputs/SPARSE-2024-INV-1234_borderless_table.md create mode 100644 packages/markitdown/tests/test_files/expected_outputs/movie-theater-booking-2024.md create mode 100644 packages/markitdown/tests/test_files/expected_outputs/test.md create mode 100644 packages/markitdown/tests/test_files/movie-theater-booking-2024.pdf diff --git a/.gitattributes b/.gitattributes index f787c0e47..304de55dd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,5 @@ packages/markitdown/tests/test_files/** linguist-vendored packages/markitdown-sample-plugin/tests/test_files/** linguist-vendored + +# Treat PDF files as binary to prevent line ending conversion +*.pdf binary diff --git a/packages/markitdown/src/markitdown/__about__.py b/packages/markitdown/src/markitdown/__about__.py index 659cf6ba2..e49b8c4d6 100644 --- a/packages/markitdown/src/markitdown/__about__.py +++ b/packages/markitdown/src/markitdown/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2024-present Adam Fourney # # SPDX-License-Identifier: MIT -__version__ = "0.1.5b1" +__version__ = "0.1.5b2" diff --git a/packages/markitdown/src/markitdown/converters/_pdf_converter.py b/packages/markitdown/src/markitdown/converters/_pdf_converter.py index 76d17a670..9c610038e 100644 --- a/packages/markitdown/src/markitdown/converters/_pdf_converter.py +++ b/packages/markitdown/src/markitdown/converters/_pdf_converter.py @@ -198,15 +198,62 @@ def _extract_form_content_from_words(page: Any) -> str | None: if not all_table_x_positions: return None - # Compute global column boundaries + # Compute adaptive column clustering tolerance based on gap analysis all_table_x_positions.sort() + + # Calculate gaps between consecutive x-positions + gaps = [] + for i in range(len(all_table_x_positions) - 1): + gap = all_table_x_positions[i + 1] - all_table_x_positions[i] + if gap > 5: # Only significant gaps + gaps.append(gap) + + # Determine optimal tolerance using statistical analysis + if gaps and len(gaps) >= 3: + # Use 70th percentile of gaps as threshold (balances precision/recall) + sorted_gaps = sorted(gaps) + percentile_70_idx = int(len(sorted_gaps) * 0.70) + adaptive_tolerance = sorted_gaps[percentile_70_idx] + + # Clamp tolerance to reasonable range [25, 50] + adaptive_tolerance = max(25, min(50, adaptive_tolerance)) + else: + # Fallback to conservative value + adaptive_tolerance = 35 + + # Compute global column boundaries using adaptive tolerance global_columns: list[float] = [] for x in all_table_x_positions: - if not global_columns or x - global_columns[-1] > 30: + if not global_columns or x - global_columns[-1] > adaptive_tolerance: global_columns.append(x) - # Too many columns suggests dense text, not a form - if len(global_columns) > 8: + # Adaptive max column check based on page characteristics + # Calculate average column width + if len(global_columns) > 1: + content_width = global_columns[-1] - global_columns[0] + avg_col_width = content_width / len(global_columns) + + # Forms with very narrow columns (< 30px) are likely dense text + if avg_col_width < 30: + return None + + # Compute adaptive max based on columns per inch + # Typical forms have 3-8 columns per inch + columns_per_inch = len(global_columns) / (content_width / 72) + + # If density is too high (> 10 cols/inch), likely not a form + if columns_per_inch > 10: + return None + + # Adaptive max: allow more columns for wider pages + # Standard letter is 612pt wide, so scale accordingly + adaptive_max_columns = int(20 * (page_width / 612)) + adaptive_max_columns = max(15, adaptive_max_columns) # At least 15 + + if len(global_columns) > adaptive_max_columns: + return None + else: + # Single column, not a form return None # Now classify each row as table row or not diff --git a/packages/markitdown/tests/test_files/expected_outputs/MEDRPT-2024-PAT-3847_medical_report_scan.md b/packages/markitdown/tests/test_files/expected_outputs/MEDRPT-2024-PAT-3847_medical_report_scan.md new file mode 100644 index 000000000..e69de29bb diff --git a/packages/markitdown/tests/test_files/expected_outputs/RECEIPT-2024-TXN-98765_retail_purchase.md b/packages/markitdown/tests/test_files/expected_outputs/RECEIPT-2024-TXN-98765_retail_purchase.md new file mode 100644 index 000000000..379de4df7 --- /dev/null +++ b/packages/markitdown/tests/test_files/expected_outputs/RECEIPT-2024-TXN-98765_retail_purchase.md @@ -0,0 +1,81 @@ +TECHMART ELECTRONICS +4567 Innovation Blvd +San Francisco, CA 94103 +(415) 555-0199 + +=================================== + +Store #0342 - Downtown SF +11/23/2024 14:32:18 PST +TXN: TXN-98765-2024 +Cashier: Emily Rodriguez +Register: POS-07 + +----------------------------------- + +Wireless Noise-Cancelling +Headphones - Premium Black +AUDIO-5521 1 @ $349.99 +Member Discount $-50.00 +$299.99 +USB-C Hub 7-in-1 Adapter +with HDMI & Ethernet +ACC-8834 2 @ $79.99 +$159.98 +Portable SSD 2TB +Thunderbolt 3 Compatible +STOR-2241 1 @ $289.00 +Member Discount $-29.00 +$260.00 +Ergonomic Wireless Mouse +Rechargeable Battery +ACC-9012 1 @ $59.99 +$59.99 +Screen Cleaning Kit +Professional Grade +CARE-1156 3 @ $12.99 +$38.97 +HDMI 2.1 Cable 6ft +8K Resolution Support +CABLE-7789 2 @ $24.99 +Member Discount $-5.00 +$44.98 +----------------------------------- + +SUBTOTAL $863.91 +Member Discount (15%)-$84.00 +Sales Tax (8.5%) $66.23 +Rewards Applied -$25.00 +=================================== +TOTAL $821.14 +=================================== + +PAYMENT METHOD +Visa Card ending in 4782 +Auth: 847392 +Ref: REF-20241123-98765 + +----------------------------------- + +REWARDS MEMBER +Sarah Mitchell +ID: TM-447821 +Points Earned: 821 +Total Points: 3,247 +Next Reward: $50 gift card +at 5,000 pts (1,753 to go) + +----------------------------------- + +RETURN POLICY +Returns within 30 days +Receipt required +Electronics must be unopened + +*TXN98765202411231432* + +Thank you for shopping! +www.techmart.example.com + +=================================== + diff --git a/packages/markitdown/tests/test_files/expected_outputs/REPAIR-2022-INV-001_multipage.md b/packages/markitdown/tests/test_files/expected_outputs/REPAIR-2022-INV-001_multipage.md new file mode 100644 index 000000000..e80967b45 --- /dev/null +++ b/packages/markitdown/tests/test_files/expected_outputs/REPAIR-2022-INV-001_multipage.md @@ -0,0 +1,76 @@ +ZAVA AUTO REPAIR +Certified Collision Repair +123 Main Street, Redmond, WA 98052 +Phone: (425) 000-0000 +Preliminary Estimate (ID: EST-1008) +| Customer Information | | | Vehicle Information | | +| -------------------- | ------------------- | --- | ------------------- | ----------------- | +| Insured name | Gabriel Diaz | | Year | 2022 | +| Claim # | SF-1008 | | Make | Jeep | +| Policy # | POL-2022-555 | | Model | Grand Cherokee | +| Phone | (425) 111-1111 | | Trim | Limited | +| Email | gabriel@contoso.com | | VIN | 1C4RJFBG2NC123456 | +| | | | Color | White | +| | | | Odometer | 9,800 | +| Repair Order # | RO-20221108 | | Estimator | Ellis Turner | +Estimate Totals +| | | Hours | Rate | Cost | +| ---------------- | --- | ----- | ---- | ----- | +| Parts | | | | 2,100 | +| Body Labor | | 2 | 150 | 300 | +| Paint Labor | | 1.5 | 150 | 225 | +| Mechanical Labor | | - | - | - | +Supplies +| | Paint Supplies | | | 60 | +| ------------- | ------------------------ | --- | ------ | ------ | +| | Body Supplies | | | 30 | +| Other Charges | | | | 15 | +| Subtotal | | | | 2,730 | +| Sales Tax | | | 10.20% | 278.46 | +| GRAND TOTAL | | | | 5,738 | +| Note | Minor rear bumper repair | | | | +This is a preliminary estimate for the visible damage of the vehicle. Additional damage / repairs / parts may be found +after the vehicle has been disassembled and damaged parts have been removed. Suspension damages may be +present, but can not be determined until an alignment on the vehicle has been done. Parts Prices may vary due to +models and vehicle maker price updates. Please be advised if vehicle owner elects to have vehicle sent to service for +any mechanical concerns, ALL service departments charge a vehicle diagnostic charge. If the mechanical concern is +deemed not related to an insurance claim, vehicle owner will be reponsible for charges. + +ZAVA AUTO REPAIR +Certified Collision Repair +123 Main Street, Redmond, WA 98052 +Phone: (425) 000-0000 +Preliminary Estimate (ID: EST-1008) +Customer Information Vehicle Information +| Insured name | Bruce Wayne | | Year | 2025 | +| -------------- | -------------------------- | --- | --------- | ------------ | +| Claim # | | 999 | Make | Batman | +| Policy # | IM-BATMAN | | Model | Batmobile | +| Phone | (416) 555-1234 | | Trim | Limited | +| Email | batman@wayneindustries.com | | VIN | XXX | +| | | | Color | Black | +| | | | Odometer | 1 | +| Repair Order # | RO-20221108 | | Estimator | Ellis Turner | +Estimate Totals +| | | Hours | Rate | Cost | +| ---------------- | --- | ----- | ---- | ------ | +| Parts | | | | 99,999 | +| Body Labor | | 2 | 150 | 300 | +| Paint Labor | | 1.5 | 150 | 225 | +| Mechanical Labor | | - | - | - | +Supplies +| | Paint Supplies | | | 60 | +| ------------- | ------------------------ | --- | ------ | --------- | +| | Body Supplies | | | 30 | +| Other Charges | | | | 15 | +| Subtotal | | | | 100,629 | +| Sales Tax | | | 10.20% | 10264.158 | +| GRAND TOTAL | | | | 211,522 | +| Note | Minor rear bumper repair | | | | + +This is a preliminary estimate for the visible damage of the vehicle. Additional damage / repairs / parts may be found +after the vehicle has been disassembled and damaged parts have been removed. Suspension damages may be +present, but can not be determined until an alignment on the vehicle has been done. Parts Prices may vary due to +models and vehicle maker price updates. Please be advised if vehicle owner elects to have vehicle sent to service for +any mechanical concerns, ALL service departments charge a vehicle diagnostic charge. If the mechanical concern is +deemed not related to an insurance claim, vehicle owner will be reponsible for charges. \ No newline at end of file diff --git a/packages/markitdown/tests/test_files/expected_outputs/SPARSE-2024-INV-1234_borderless_table.md b/packages/markitdown/tests/test_files/expected_outputs/SPARSE-2024-INV-1234_borderless_table.md new file mode 100644 index 000000000..797496452 --- /dev/null +++ b/packages/markitdown/tests/test_files/expected_outputs/SPARSE-2024-INV-1234_borderless_table.md @@ -0,0 +1,44 @@ +INVENTORY RECONCILIATION REPORT +Report ID: SPARSE-2024-INV-1234 +Warehouse: Distribution Center East +Report Date: 2024-11-15 +Prepared By: Sarah Martinez +| Product Code | Location | Expected | Actual | Variance | Status | +| ------------ | -------- | -------- | ------ | -------- | -------- | +| SKU-8847 | A-12 | 450 | | | | +| | B-07 | | 289 | -23 | | +| SKU-9201 | | 780 | 778 | | OK | +| | C-15 | | | +15 | | +| SKU-4563 | D-22 | | 156 | | CRITICAL | +| | | 180 | | -24 | | +| SKU-7728 | A-08 | 920 | | | | +| | | | 935 | +15 | OK | +Variance Analysis: +Summary Statistics: +Total Variance Cost: $4,287.50 +Critical Items: 1 +Overall Accuracy: 97.2% +Detailed Analysis by Category: +The inventory reconciliation reveals several key findings. The primary variance driver is SKU-4563, +which shows a -24 unit discrepancy requiring immediate investigation. Location B-07 handling of +SKU-8847 also demonstrates significant variance. Cross-location verification protocols should be + +reviewed to prevent future discrepancies. The overall accuracy rate of 97.2% meets our target +threshold, but critical items require expedited resolution to maintain operational efficiency. +Extended Inventory Review: +| Product Code | Category | Unit Cost | Total Value | Last Audit | Notes | +| ------------ | ----------- | --------- | ----------- | ---------- | ---------- | +| SKU-8847 | Electronics | $45.00 | $13,005.00 | 2024-10-15 | | +| SKU-9201 | Hardware | $32.50 | $25,285.00 | 2024-10-22 | Verified | +| SKU-4563 | Software | $120.00 | $18,720.00 | | Critical | +| SKU-7728 | Accessories | $15.75 | $14,726.25 | 2024-11-01 | | +| SKU-3345 | Electronics | $67.00 | $22,445.00 | 2024-10-18 | | +| SKU-5512 | Hardware | $89.00 | $31,150.00 | | Pending | +| SKU-6678 | Software | $200.00 | $42,000.00 | 2024-10-25 | High Value | +| SKU-7789 | Accessories | $8.50 | $5,950.00 | 2024-11-05 | | +| SKU-2234 | Electronics | $125.00 | $35,000.00 | | | +| SKU-1123 | Hardware | $55.00 | $27,500.00 | 2024-10-30 | Verified | +Recommendations: +1. Immediate review of SKU-4563 handling procedures. 2. Implement additional verification for critical +items. 3. Schedule follow-up audit for high-value products (SKU-6678, SKU-2234). +Approval: \ No newline at end of file diff --git a/packages/markitdown/tests/test_files/expected_outputs/movie-theater-booking-2024.md b/packages/markitdown/tests/test_files/expected_outputs/movie-theater-booking-2024.md new file mode 100644 index 000000000..371cee776 --- /dev/null +++ b/packages/markitdown/tests/test_files/expected_outputs/movie-theater-booking-2024.md @@ -0,0 +1,62 @@ +BOOKING ORDER +Print Date 12/15/2024 14:30:22 +Page 1 of 1 +STARLIGHT CINEMAS +Orders +| Order / Rev: | 2024-12-5678 | | | Cinema: | | Downtown Multiplex | +| ------------ | -------------- | --- | --- | ---------------- | --- | ------------------ | +| Alt Order #: | SC-WINTER-2024 | | | Primary Contact: | | Sarah Johnson | +Product Desc: Holiday Movie Marathon Package Location: NYC-01 +| Estimate: | EST-456 | | | Region: | | NORTHEAST | +| -------------------- | ----------------------- | --- | --- | ------- | --- | --------- | +| Booking Dates: | 12/20/2024 - 12/31/2024 | | | | | | +| Original Date / Rev: | 12/01/24 / 12/10/24 | | | | | | +| Order Type: | Premium Package | | | | | | +Booking Agency +| Name: | Premier Entertainment Group | | | | | | +| ---------------- | --------------------------- | --- | --- | -------------- | --- | --------- | +| | | | | Billing Type: | | Net 30 | +| Contact: | Michael Chen | | | | | | +| | | | | Payment Terms: | | Corporate | +| Billing Contact: | accounting@premierent.com | | | | | | +| | | | | Commission: | | 10% | +555 Broadway Suite 1200 +New York, NY 10012 +Customer +| Name: | Universal Studios Distribution | | | | | | +| -------------- | ------------------------------ | --- | --- | --- | --- | --- | +| Category: | Film Distributor | | | | | | +| Contact Email: | bookings@universalstudios.com | | | | | | +| Customer ID: | CUST-98765 | | | | | | +| Revenue Code: | FILM-PREMIUM | | | | | | +Booking Summary +| Start Date | End Date | # Shows | Gross Amount | Net Amount | | | +| ---------- | -------- | ------- | ------------ | ---------- | --- | --- | +| 12/20/24 | 12/31/24 | 48 | $12,500.00 | $11,250.00 | | | +Totals +| Month | # Shows | Gross Amount | | Net Amount | | Occupancy | +| ------------- | ------- | ------------ | --- | ---------- | --- | --------- | +| December 2024 | 48 | $12,500.00 | | $11,250.00 | | 85% | +| Totals | 48 | $12,500.00 | | $11,250.00 | | 85% | +Account Representatives +Representative Territory Region Start Date / End Date Commission % +| Sarah Johnson | NYC Metro | NORTHEAST | 12/20/24 - 12/31/24 | | 100% | | +| ------------- | --------- | --------- | ------------------- | --- | ---- | --- | +Show Schedule Details +Ln Screen Start End Movie Title Format Showtime Days Shows Rate Type Total +1 SCR-1 12/20/24 12/25/24 Holiday Spectacular IMAX 3D 7:00 PM Daily 12 $250 PM $3,000 +(Runtime: 142 min); Holiday Season Premium +2 SCR-2 12/20/24 12/31/24 Winter Wonderland Standard 4:30 PM Daily 24 $150 MT $3,600 +(Runtime: 98 min); Matinee Special +3 SCR-1 12/26/24 12/31/24 New Year Mystery 4DX 9:30 PM Daily 12 $300 PM $3,600 +(Runtime: 116 min); Premium Experience +Show Details +| Show Screen | Date Range | Title | Showtime | Days Type | Rate | Revenue | +| ----------- | ---------- | ----- | -------- | --------- | ---- | ------- | +1 SCR-1 12/20-12/25 Holiday Spectacular 7:00 PM Daily PM $250 $3,000 +This booking order is subject to cinema availability and standard terms. +2 SCR-2 12/20-12/31 Winter Wonderland 4:30 PM Daily MT $150 $3,600 +All showtimes are approximate and subject to change. +3 SCR-1 12/26-12/31 New Year Mystery 9:30 PM Daily PM $300 $3,600 +| Total Revenue: | | | | | | $12,500.00 | +| -------------- | --- | --- | --- | --- | --- | ---------- | \ No newline at end of file diff --git a/packages/markitdown/tests/test_files/expected_outputs/test.md b/packages/markitdown/tests/test_files/expected_outputs/test.md new file mode 100644 index 000000000..2d9c90c07 --- /dev/null +++ b/packages/markitdown/tests/test_files/expected_outputs/test.md @@ -0,0 +1,65 @@ +1 + +Introduction + +Large language models (LLMs) are becoming a crucial building block in developing powerful agents +that utilize LLMs for reasoning, tool usage, and adapting to new observations (Yao et al., 2022; Xi +et al., 2023; Wang et al., 2023b) in many real-world tasks. Given the expanding tasks that could +benefit from LLMs and the growing task complexity, an intuitive approach to scale up the power of +agents is to use multiple agents that cooperate. Prior work suggests that multiple agents can help +encourage divergent thinking (Liang et al., 2023), improve factuality and reasoning (Du et al., 2023), +and provide validation (Wu et al., 2023). In light of the intuition and early evidence of promise, it is +intriguing to ask the following question: how can we facilitate the development of LLM applications +that could span a broad spectrum of domains and complexities based on the multi-agent approach? + +Our insight is to use multi-agent conversations to achieve it. There are at least three reasons con- +firming its general feasibility and utility thanks to recent advances in LLMs: First, because chat- +optimized LLMs (e.g., GPT-4) show the ability to incorporate feedback, LLM agents can cooperate +through conversations with each other or human(s), e.g., a dialog where agents provide and seek rea- +soning, observations, critiques, and validation. Second, because a single LLM can exhibit a broad +range of capabilities (especially when configured with the correct prompt and inference settings), +conversations between differently configured agents can help combine these broad LLM capabilities +in a modular and complementary manner. Third, LLMs have demonstrated ability to solve complex +tasks when the tasks are broken into simpler subtasks. Multi-agent conversations can enable this +partitioning and integration in an intuitive manner. How can we leverage the above insights and +support different applications with the common requirement of coordinating multiple agents, poten- +tially backed by LLMs, humans, or tools exhibiting different capacities? We desire a multi-agent +conversation framework with generic abstraction and effective implementation that has the flexibil- +ity to satisfy different application needs. Achieving this requires addressing two critical questions: +(1) How can we design individual agents that are capable, reusable, customizable, and effective in +multi-agent collaboration? (2) How can we develop a straightforward, unified interface that can +accommodate a wide range of agent conversation patterns? In practice, applications of varying +complexities may need distinct sets of agents with specific capabilities, and may require different +conversation patterns, such as single- or multi-turn dialogs, different human involvement modes, and +static vs. dynamic conversation. Moreover, developers may prefer the flexibility to program agent +interactions in natural language or code. Failing to adequately address these two questions would +limit the framework’s scope of applicability and generality. +While there is contemporaneous exploration of multi-agent approaches,3 we present AutoGen, a +generalized multi-agent conversation framework (Figure 1), based on the following new concepts. +1 Customizable and conversable agents. AutoGen uses a generic design of agents that can lever- +age LLMs, human inputs, tools, or a combination of them. The result is that developers can +easily and quickly create agents with different roles (e.g., agents to write code, execute code, +wire in human feedback, validate outputs, etc.) by selecting and configuring a subset of built-in +capabilities. The agent’s backend can also be readily extended to allow more custom behaviors. +To make these agents suitable for multi-agent conversation, every agent is made conversable – +they can receive, react, and respond to messages. When configured properly, an agent can hold +multiple turns of conversations with other agents autonomously or solicit human inputs at cer- +tain rounds, enabling human agency and automation. The conversable agent design leverages the +strong capability of the most advanced LLMs in taking feedback and making progress via chat +and also allows combining capabilities of LLMs in a modular fashion. (Section 2.1) + +2 Conversation programming. A fundamental insight of AutoGen is to simplify and unify com- +plex LLM application workflows as multi-agent conversations. So AutoGen adopts a program- +ming paradigm centered around these inter-agent conversations. We refer to this paradigm as +conversation programming, which streamlines the development of intricate applications via two +primary steps: (1) defining a set of conversable agents with specific capabilities and roles (as +described above); (2) programming the interaction behavior between agents via conversation- +centric computation and control. Both steps can be achieved via a fusion of natural and pro- +gramming languages to build applications with a wide range of conversation patterns and agent +behaviors. AutoGen provides ready-to-use implementations and also allows easy extension and +experimentation for both steps. (Section 2.2) + +3We refer to Appendix A for a detailed discussion. + +2 + diff --git a/packages/markitdown/tests/test_files/movie-theater-booking-2024.pdf b/packages/markitdown/tests/test_files/movie-theater-booking-2024.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8555bb833d5edb63aee640e9c201288fbbeb9d46 GIT binary patch literal 3798 zcma)9*|w_66@A}dfel+xkw#Edut8MB9vc+w=v0(mNbb!;ejs_vd%iVz?m0JmoSTt^ z2diq;T5~ODEf_Vy1vh}Pa^(a3$KU_}p2AOjqzyk{S+)`#gDZ-@8J4@XvgnFB9@LU_~u zlNnjM3Lt$~_YBLu0f=O|UH4`E+b~ldGXcc_WEE@CuYR&vC%?)1JtR8`)|XW8)c++F z%zC!*|K!8}&wRv}e7&TUgrpZhz5hReOija5S??D>N!BP(#c-fj$AKe&EY$GLX6-jW z(fp0k7x0bAH#u)=6NE+R=_@lz0Fd`FAZzoNgt(ET-c0uU*!wo{_M+d6_fMO(t*C>qnu#G2T-n)%I>*FsffL zx^Z;(LLjfYp8Kog#V-gzdZDRCmgjQs%JN(TNAW6(Vi!oUhxyZKGt#L_}F{1t$K!}}@`fyB70sEksKm2wvxgX;N2zS``~|L z@EfUL_7GjqO|lm>@z)Wf#Ly6Hdj)FkoeW*UI$`f6Q1!A@4%ABA zrttfQKtisnIp-5z_Q=Dq+Tm#uISeVX{Mo>v!?k1|FNo7^z$iZ`q)ugUZ=mfkq|Xzs zki#C-^1zIQU7VYx8Gh0luXd+nrBc5ap%u7d6^_~*aFz-uXJ4!xrn~t}0(n!a*NY|e z&S$%u%xS#udNNd9z<93ekou!$%W>{Gifd_!6}3Od4#@(!eN|jFMmIrqQ9sRBxl_ zsJJJ~3a#>I?qW^V@oedPUeLaQqC@aes3=|70o09uEK@|5hfffk%l6oMH8u(nRAO_h@LsV{z!4twUzJ_lU|#Y(2Ym3D*#5(|97&40ytuZm(D}b4FM1&;52pj-O4U zSiTa|O$T2`Lx zxTV}Qq_6Wdtmp{*>}#vsrNHh*a>dryi#?4!0xYvc`jX!h!aeh9YRfBsV&Zj!TZ@%4 zh0IzK6jJBapinDbn*@Q8Zl%=kS@@#*sXZJQt3}0NLp8Z0bXZ1ZYB{l>_EWf&qoVzk za(lw0YE>J?4GY@0%ay|zqx0w}>|Y&>Zp`&l+^(^WM$nwQS%EzFYHK3SK(l|x)Swf0A2Gk<>SjDw%( z{dSA%8!u2UG%dl$>3Y;7(Xky@!#OE#wsQJ@$)pL@h$1|Ayl@S}?@KGy5m=uPY`4|G zxJb_zQZsf_;LL6`xyMrcDNLln(rPrHYNp-gs@rn+thC(hx>P<=1`}PcLaCkOwBC3L zv+g)pyXOWr8R}G(+#Ux5i|KX;7jAf$@`EFO^4hJfHk>t@ObUKAO|^EM*oSM;v}9^0 zYiPldeUK`Q&;GTDrSa=Ho@4%O4A!payt7zy9rV+FthQ}0OS1mPvCaMKG*E-{YMOiO z%HF{!RKZ8SAMMMtw1cy`en%6HK@=Envx4}3d+*>2^qOqgfJJ3gP-m`6?zuaTzFvnvY81@(DQFu{&=x>Obd{7^VD-K{>d z_L;Ud?XE&S%lZ)EFf(H`7d}foQ>3Ro=2Sbj*IH|u=Bu)?TkmjIZ4P}#fSqHuM9IAk zQcLO-N+4EN5YBd=e8V4&w%Pf;+-yW`(yWyA*GU;Rc*bm6Exp)c8L0PZ*VfRAW^E&V zmLN8|jq=FgGBKN*$+DChOj9SC8b8~Us&;M-DZz)=!)9uWVFZ!E>md#{U08Hxd^j}3 zRIU2Sr^Pb|A1`_u8}x3nT}YQ|tIakJbktLQZpoZ3?jti8JUck3jFl}xW>e$kh*y~A zYU8i_)H=1C*jA4r;rh{iE`4@u@Y5=MgQ7j#UBvSsJOxizk?usVS)EXIp~a4a%tYFT1N80I|@6NKS-|(s$_B$ObW|M3(^1DO61M= zd)IfN^Gj%6KTx3lf&TsgRg$cbz!mu2R!uJV?+0*yw_#`^k$$q_X#Eei3jW7f5=(BE zKgE*NAMq$6(MCV{)xYMALe;X(@SB_)alnT{n-#2Xka`6rO+%w}^r}@gvu+ZEUd3wE zRc-xmkK+gUMOEJZv#Nw)z_1dX@sqy%Kt}G>1K#RF{78h27XfdzlFV1uU(AH%Z}(m` SjK0xcA<)_f2=?cLkADHZ|4*9$ literal 0 HcmV?d00001 diff --git a/packages/markitdown/tests/test_pdf_tables.py b/packages/markitdown/tests/test_pdf_tables.py index 92a79ddc9..d26de0cb9 100644 --- a/packages/markitdown/tests/test_pdf_tables.py +++ b/packages/markitdown/tests/test_pdf_tables.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 -m pytest """Tests for PDF table extraction functionality.""" + import os import re import pytest @@ -650,6 +651,332 @@ def test_scanned_pdf_handling(self, markitdown): result.text_content.strip() == "" ), f"Scanned PDF should have empty extraction, got: '{result.text_content[:100]}...'" + def test_movie_theater_booking_pdf_extraction(self, markitdown): + """Test extraction of movie theater booking PDF with complex tables. + + Expected output: Pipe-separated format with booking details, agency info, + customer details, and show schedules in structured tables. + """ + pdf_path = os.path.join(TEST_FILES_DIR, "movie-theater-booking-2024.pdf") + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + result = markitdown.convert(pdf_path) + text_content = result.text_content + + # Validate pipe-separated table format + assert "|" in text_content, "Booking order should contain pipe separators" + + # Validate key booking information + expected_strings = [ + "BOOKING ORDER", + "2024-12-5678", # Order number + "Holiday Movie Marathon Package", # Product description + "12/20/2024 - 12/31/2024", # Booking dates + "SC-WINTER-2024", # Alt order number + "STARLIGHT CINEMAS", # Cinema brand + ] + validate_strings(result, expected_strings) + + # Validate agency information + agency_strings = [ + "Premier Entertainment Group", # Agency name + "Michael Chen", # Contact + "Sarah Johnson", # Primary contact + "Downtown Multiplex", # Cinema name + ] + validate_strings(result, agency_strings) + + # Validate customer information + customer_strings = [ + "Universal Studios Distribution", # Customer name + "Film Distributor", # Category + "CUST-98765", # Customer ID + ] + validate_strings(result, customer_strings) + + # Validate booking summary totals + booking_strings = [ + "$12,500.00", # Gross amount + "$11,250.00", # Net amount + "December 2024", # Month + "48", # Number of shows + ] + validate_strings(result, booking_strings) + + # Validate show schedule details + show_strings = [ + "Holiday Spectacular", # Movie title + "Winter Wonderland", # Movie title + "New Year Mystery", # Movie title + "IMAX 3D", # Format + "$250", # Rate + "$300", # Rate + "$3,000", # Revenue + "$3,600", # Revenue + ] + validate_strings(result, show_strings) + + +class TestPdfFullOutputComparison: + """Test that PDF extraction produces expected complete outputs.""" + + @pytest.fixture + def markitdown(self): + """Create MarkItDown instance.""" + return MarkItDown() + + def test_movie_theater_full_output(self, markitdown): + """Test complete output for movie theater booking PDF.""" + pdf_path = os.path.join(TEST_FILES_DIR, "movie-theater-booking-2024.pdf") + expected_path = os.path.join( + TEST_FILES_DIR, "expected_outputs", "movie-theater-booking-2024.md" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + if not os.path.exists(expected_path): + pytest.skip(f"Expected output not found: {expected_path}") + + result = markitdown.convert(pdf_path) + actual_output = result.text_content + + with open(expected_path, "r", encoding="utf-8") as f: + expected_output = f.read() + + # Compare outputs + actual_lines = [line.rstrip() for line in actual_output.split("\n")] + expected_lines = [line.rstrip() for line in expected_output.split("\n")] + + # Check line count + assert abs(len(actual_lines) - len(expected_lines)) <= 2, ( + f"Line count mismatch: actual={len(actual_lines)}, " + f"expected={len(expected_lines)}" + ) + + # Check structural elements + assert actual_output.count("|") > 80, "Should have many pipe separators" + assert actual_output.count("---") > 8, "Should have table separators" + + # Validate critical sections + for section in [ + "BOOKING ORDER", + "STARLIGHT CINEMAS", + "2024-12-5678", + "Holiday Spectacular", + "$12,500.00", + ]: + assert section in actual_output, f"Missing section: {section}" + + # Check table structure + table_rows = [line for line in actual_lines if line.startswith("|")] + assert ( + len(table_rows) > 15 + ), f"Should have >15 table rows, got {len(table_rows)}" + + def test_sparse_borderless_table_full_output(self, markitdown): + """Test complete output for SPARSE borderless table PDF.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "SPARSE-2024-INV-1234_borderless_table.pdf" + ) + expected_path = os.path.join( + TEST_FILES_DIR, + "expected_outputs", + "SPARSE-2024-INV-1234_borderless_table.md", + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + if not os.path.exists(expected_path): + pytest.skip(f"Expected output not found: {expected_path}") + + result = markitdown.convert(pdf_path) + actual_output = result.text_content + + with open(expected_path, "r", encoding="utf-8") as f: + expected_output = f.read() + + # Compare outputs + actual_lines = [line.rstrip() for line in actual_output.split("\n")] + expected_lines = [line.rstrip() for line in expected_output.split("\n")] + + # Check line count is close + assert abs(len(actual_lines) - len(expected_lines)) <= 2, ( + f"Line count mismatch: actual={len(actual_lines)}, " + f"expected={len(expected_lines)}" + ) + + # Check structural elements + assert actual_output.count("|") > 50, "Should have many pipe separators" + + # Validate critical sections + for section in [ + "INVENTORY RECONCILIATION REPORT", + "SPARSE-2024-INV-1234", + "SKU-8847", + "SKU-9201", + "Variance Analysis", + ]: + assert section in actual_output, f"Missing section: {section}" + + def test_repair_multipage_full_output(self, markitdown): + """Test complete output for REPAIR multipage invoice PDF.""" + pdf_path = os.path.join(TEST_FILES_DIR, "REPAIR-2022-INV-001_multipage.pdf") + expected_path = os.path.join( + TEST_FILES_DIR, "expected_outputs", "REPAIR-2022-INV-001_multipage.md" + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + if not os.path.exists(expected_path): + pytest.skip(f"Expected output not found: {expected_path}") + + result = markitdown.convert(pdf_path) + actual_output = result.text_content + + with open(expected_path, "r", encoding="utf-8") as f: + expected_output = f.read() + + # Compare outputs + actual_lines = [line.rstrip() for line in actual_output.split("\n")] + expected_lines = [line.rstrip() for line in expected_output.split("\n")] + + # Check line count is close + assert abs(len(actual_lines) - len(expected_lines)) <= 2, ( + f"Line count mismatch: actual={len(actual_lines)}, " + f"expected={len(expected_lines)}" + ) + + # Check structural elements + assert actual_output.count("|") > 40, "Should have many pipe separators" + + # Validate critical sections + for section in [ + "ZAVA AUTO REPAIR", + "Gabriel Diaz", + "Jeep", + "Grand Cherokee", + "GRAND TOTAL", + ]: + assert section in actual_output, f"Missing section: {section}" + + def test_receipt_full_output(self, markitdown): + """Test complete output for RECEIPT retail purchase PDF.""" + pdf_path = os.path.join( + TEST_FILES_DIR, "RECEIPT-2024-TXN-98765_retail_purchase.pdf" + ) + expected_path = os.path.join( + TEST_FILES_DIR, + "expected_outputs", + "RECEIPT-2024-TXN-98765_retail_purchase.md", + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + if not os.path.exists(expected_path): + pytest.skip(f"Expected output not found: {expected_path}") + + result = markitdown.convert(pdf_path) + actual_output = result.text_content + + with open(expected_path, "r", encoding="utf-8") as f: + expected_output = f.read() + + # Compare outputs + actual_lines = [line.rstrip() for line in actual_output.split("\n")] + expected_lines = [line.rstrip() for line in expected_output.split("\n")] + + # Check line count is close + assert abs(len(actual_lines) - len(expected_lines)) <= 2, ( + f"Line count mismatch: actual={len(actual_lines)}, " + f"expected={len(expected_lines)}" + ) + + # Validate critical sections + for section in [ + "TECHMART ELECTRONICS", + "TXN-98765-2024", + "Sarah Mitchell", + "$821.14", + "RETURN POLICY", + ]: + assert section in actual_output, f"Missing section: {section}" + + def test_academic_paper_full_output(self, markitdown): + """Test complete output for academic paper PDF.""" + pdf_path = os.path.join(TEST_FILES_DIR, "test.pdf") + expected_path = os.path.join(TEST_FILES_DIR, "expected_outputs", "test.md") + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + if not os.path.exists(expected_path): + pytest.skip(f"Expected output not found: {expected_path}") + + result = markitdown.convert(pdf_path) + actual_output = result.text_content + + with open(expected_path, "r", encoding="utf-8") as f: + expected_output = f.read() + + # Compare outputs + actual_lines = [line.rstrip() for line in actual_output.split("\n")] + expected_lines = [line.rstrip() for line in expected_output.split("\n")] + + # Check line count is close + assert abs(len(actual_lines) - len(expected_lines)) <= 2, ( + f"Line count mismatch: actual={len(actual_lines)}, " + f"expected={len(expected_lines)}" + ) + + # Academic paper should not have pipe separators + assert ( + actual_output.count("|") == 0 + ), "Academic paper should not have pipe separators" + + # Validate critical sections + for section in [ + "Introduction", + "Large language models", + "agents", + "multi-agent", + ]: + assert section in actual_output, f"Missing section: {section}" + + def test_medical_scan_full_output(self, markitdown): + """Test complete output for medical report scan PDF (empty, no text layer).""" + pdf_path = os.path.join( + TEST_FILES_DIR, "MEDRPT-2024-PAT-3847_medical_report_scan.pdf" + ) + expected_path = os.path.join( + TEST_FILES_DIR, + "expected_outputs", + "MEDRPT-2024-PAT-3847_medical_report_scan.md", + ) + + if not os.path.exists(pdf_path): + pytest.skip(f"Test file not found: {pdf_path}") + + if not os.path.exists(expected_path): + pytest.skip(f"Expected output not found: {expected_path}") + + result = markitdown.convert(pdf_path) + actual_output = result.text_content + + with open(expected_path, "r", encoding="utf-8") as f: + expected_output = f.read() + + # Both should be empty (scanned PDF with no text layer) + assert actual_output.strip() == "", "Scanned PDF should produce empty output" + assert ( + expected_output.strip() == "" + ), "Expected output should be empty for scanned PDF" + class TestPdfTableMarkdownFormat: """Test that extracted tables have proper markdown formatting.""" From 2b6ec9f315654aea1190f09f9bbebd617021d171 Mon Sep 17 00:00:00 2001 From: afourney Date: Fri, 13 Feb 2026 11:53:01 -0800 Subject: [PATCH 21/26] Add text/markdown to Accept header (#1554) --- packages/markitdown/src/markitdown/_markitdown.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/markitdown/src/markitdown/_markitdown.py b/packages/markitdown/src/markitdown/_markitdown.py index 702b10c68..f342a614b 100644 --- a/packages/markitdown/src/markitdown/_markitdown.py +++ b/packages/markitdown/src/markitdown/_markitdown.py @@ -107,6 +107,13 @@ def __init__( requests_session = kwargs.get("requests_session") if requests_session is None: self._requests_session = requests.Session() + # Signal that we prefer markdown over HTML, etc. if the server supports it. + # e.g., https://blog.cloudflare.com/markdown-for-agents/ + self._requests_session.headers.update( + { + "Accept": "text/markdown, text/html;q=0.9, text/plain;q=0.8, */*;q=0.1" + } + ) else: self._requests_session = requests_session From 6b0fd15e6002039dacac6779c417ea9f80eb842c Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Mon, 16 Feb 2026 15:05:37 -0800 Subject: [PATCH 22/26] Remove onnxruntime<=1.20.1 Windows pin (#1551) --- packages/markitdown/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index 701a461f2..dc836e511 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "magika~=0.6.1", "charset-normalizer", "defusedxml", - "onnxruntime<=1.20.1; sys_platform == 'win32'", + ] [project.optional-dependencies] From 4a5340f93b2bf1dc11641f921fbfd6d5f016924b Mon Sep 17 00:00:00 2001 From: afourney Date: Fri, 20 Feb 2026 11:40:57 -0800 Subject: [PATCH 23/26] Bump version for release. (#1564) --- packages/markitdown/pyproject.toml | 1 - packages/markitdown/src/markitdown/__about__.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/markitdown/pyproject.toml b/packages/markitdown/pyproject.toml index dc836e511..ac3c8d947 100644 --- a/packages/markitdown/pyproject.toml +++ b/packages/markitdown/pyproject.toml @@ -30,7 +30,6 @@ dependencies = [ "magika~=0.6.1", "charset-normalizer", "defusedxml", - ] [project.optional-dependencies] diff --git a/packages/markitdown/src/markitdown/__about__.py b/packages/markitdown/src/markitdown/__about__.py index e49b8c4d6..3de6ec29f 100644 --- a/packages/markitdown/src/markitdown/__about__.py +++ b/packages/markitdown/src/markitdown/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2024-present Adam Fourney # # SPDX-License-Identifier: MIT -__version__ = "0.1.5b2" +__version__ = "0.1.5" From c6308dc8227cb496f981c8451350fdc2cecd017a Mon Sep 17 00:00:00 2001 From: lesyk Date: Tue, 10 Mar 2026 16:17:17 +0000 Subject: [PATCH 24/26] [MS] Add OCR layer service for embedded images and PDF scans (#1541) * Add OCR test data and implement tests for various document formats - Created HTML file with multiple images for testing OCR extraction. - Added several PDF files with different layouts and image placements to validate OCR functionality. - Introduced PPTX files with complex layouts and images at various positions for comprehensive testing. - Included XLSX files with multiple images and complex layouts to ensure accurate OCR extraction. - Implemented a new test suite in `test_ocr.py` to validate OCR functionality across all document types, ensuring context preservation and accuracy. * Enhance OCR functionality and validation in document converters - Refactor image extraction and processing in PDF, PPTX, and XLSX converters for improved readability and consistency. - Implement detailed validation for OCR text positioning relative to surrounding text in test cases. - Introduce comprehensive tests for expected OCR results across various document types, ensuring no base64 images are present. - Improve error handling and logging for better debugging during OCR extraction. * Add support for scanned PDFs with full-page OCR fallback and implement tests * Bump version to 0.1.6b1 in __about__.py * Refactor OCR services to support LLM Vision, update README and tests accordingly * Add OCR-enabled converters and ensure consistent OCR format across document types * Refactor converters to improve import organization and enhance OCR functionality across DOCX, PDF, PPTX, and XLSX converters * Refactor exception imports for consistency across converters and tests * Fix OCR tests to match MockOCRService output and fix cross-platform file URI handling * Bump version to 0.1.6b1 in __about__.py * Skip DOCX/XLSX/PPTX OCR tests when optional dependencies are missing * Add comprehensive OCR test suite for various document formats - Introduced multiple test documents for PDF, DOCX, XLSX, and PPTX formats, covering scenarios with images at the start, middle, and end. - Implemented tests for complex layouts, multi-page documents, and documents with multiple images. - Created a new test script `test_ocr.py` to validate OCR functionality, ensuring context preservation and accurate text extraction. - Added expected OCR results for validation against ground truth. - Included tests for scanned documents to verify OCR fallback mechanisms. * Remove obsolete HTML test files and refactor test cases for file URIs and OCR format consistency - Deleted `html_image_start.html` and `html_multiple_images.html` as they are no longer needed. - Updated `test_file_uris` in `test_module_misc.py` to simplify assertions by removing unnecessary `url2pathname` usage. - Removed `test_ocr_format_consistency.py` as it is no longer relevant to the current testing framework. * Refactor OCR processing in PdfConverterWithOCR and enhance unit tests for multipage PDFs * Revert * Revert * Update REDMEs * Refactor import statements for consistency and improve formatting in converter and test files --- README.md | 34 +- packages/markitdown-ocr/LICENSE | 21 + packages/markitdown-ocr/README.md | 200 +++++++++ packages/markitdown-ocr/pyproject.toml | 57 +++ .../src/markitdown_ocr/__about__.py | 4 + .../src/markitdown_ocr/__init__.py | 31 ++ .../_docx_converter_with_ocr.py | 189 ++++++++ .../src/markitdown_ocr/_ocr_service.py | 110 +++++ .../markitdown_ocr/_pdf_converter_with_ocr.py | 422 ++++++++++++++++++ .../src/markitdown_ocr/_plugin.py | 68 +++ .../_pptx_converter_with_ocr.py | 249 +++++++++++ .../_xlsx_converter_with_ocr.py | 225 ++++++++++ packages/markitdown-ocr/tests/__init__.py | 0 .../ocr_test_data/docx_complex_layout.docx | Bin 0 -> 42547 bytes .../tests/ocr_test_data/docx_image_end.docx | Bin 0 -> 41358 bytes .../ocr_test_data/docx_image_middle.docx | Bin 0 -> 41465 bytes .../tests/ocr_test_data/docx_image_start.docx | Bin 0 -> 41476 bytes .../tests/ocr_test_data/docx_multipage.docx | Bin 0 -> 48583 bytes .../ocr_test_data/docx_multiple_images.docx | Bin 0 -> 45052 bytes .../ocr_test_data/pdf_complex_layout.pdf | Bin 0 -> 6117 bytes .../tests/ocr_test_data/pdf_image_end.pdf | Bin 0 -> 7616 bytes .../tests/ocr_test_data/pdf_image_middle.pdf | Bin 0 -> 7291 bytes .../tests/ocr_test_data/pdf_image_start.pdf | Bin 0 -> 6546 bytes .../tests/ocr_test_data/pdf_multipage.pdf | Bin 0 -> 14418 bytes .../ocr_test_data/pdf_multiple_images.pdf | Bin 0 -> 10815 bytes .../ocr_test_data/pdf_scanned_invoice.pdf | Bin 0 -> 2643519 bytes .../pdf_scanned_meeting_minutes.pdf | Bin 0 -> 2643519 bytes .../ocr_test_data/pdf_scanned_minimal.pdf | Bin 0 -> 2643519 bytes .../ocr_test_data/pdf_scanned_report.pdf | Bin 0 -> 7924511 bytes .../pdf_scanned_sales_report.pdf | Bin 0 -> 2643519 bytes .../ocr_test_data/pptx_complex_layout.pptx | Bin 0 -> 32130 bytes .../tests/ocr_test_data/pptx_image_end.pptx | Bin 0 -> 33401 bytes .../ocr_test_data/pptx_image_middle.pptx | Bin 0 -> 34563 bytes .../tests/ocr_test_data/pptx_image_start.pptx | Bin 0 -> 31880 bytes .../ocr_test_data/pptx_multiple_images.pptx | Bin 0 -> 35461 bytes .../ocr_test_data/xlsx_complex_layout.xlsx | Bin 0 -> 22744 bytes .../tests/ocr_test_data/xlsx_image_end.xlsx | Bin 0 -> 15993 bytes .../ocr_test_data/xlsx_image_middle.xlsx | Bin 0 -> 15455 bytes .../tests/ocr_test_data/xlsx_image_start.xlsx | Bin 0 -> 15221 bytes .../ocr_test_data/xlsx_multiple_images.xlsx | Bin 0 -> 23398 bytes .../tests/test_docx_converter.py | 223 +++++++++ .../tests/test_pdf_converter.py | 234 ++++++++++ .../tests/test_pptx_converter.py | 148 ++++++ .../tests/test_xlsx_converter.py | 249 +++++++++++ .../markitdown/src/markitdown/__about__.py | 2 +- 45 files changed, 2464 insertions(+), 2 deletions(-) create mode 100644 packages/markitdown-ocr/LICENSE create mode 100644 packages/markitdown-ocr/README.md create mode 100644 packages/markitdown-ocr/pyproject.toml create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/__about__.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/__init__.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/_docx_converter_with_ocr.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/_pdf_converter_with_ocr.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/_plugin.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_with_ocr.py create mode 100644 packages/markitdown-ocr/src/markitdown_ocr/_xlsx_converter_with_ocr.py create mode 100644 packages/markitdown-ocr/tests/__init__.py create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/docx_complex_layout.docx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/docx_image_end.docx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/docx_image_middle.docx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/docx_image_start.docx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/docx_multipage.docx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/docx_multiple_images.docx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_complex_layout.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_image_end.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_image_middle.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_image_start.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_multipage.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_multiple_images.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_scanned_invoice.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_scanned_meeting_minutes.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_scanned_minimal.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_scanned_report.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pdf_scanned_sales_report.pdf create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pptx_complex_layout.pptx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pptx_image_end.pptx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pptx_image_middle.pptx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pptx_image_start.pptx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/pptx_multiple_images.pptx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/xlsx_complex_layout.xlsx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/xlsx_image_end.xlsx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/xlsx_image_middle.xlsx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/xlsx_image_start.xlsx create mode 100644 packages/markitdown-ocr/tests/ocr_test_data/xlsx_multiple_images.xlsx create mode 100644 packages/markitdown-ocr/tests/test_docx_converter.py create mode 100644 packages/markitdown-ocr/tests/test_pdf_converter.py create mode 100644 packages/markitdown-ocr/tests/test_pptx_converter.py create mode 100644 packages/markitdown-ocr/tests/test_xlsx_converter.py diff --git a/README.md b/README.md index 652afc057..6da3ee1d9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ > [!IMPORTANT] > Breaking changes between 0.0.1 to 0.1.0: -> * Dependencies are now organized into optional feature-groups (further details below). Use `pip install 'markitdown[all]'` to have backward-compatible behavior. +> * Dependencies are now organized into optional feature-groups (further details below). Use `pip install 'markitdown[all]'` to have backward-compatible behavior. > * convert\_stream() now requires a binary file-like object (e.g., a file opened in binary mode, or an io.BytesIO object). This is a breaking change from the previous version, where it previously also accepted text file-like objects, like io.StringIO. > * The DocumentConverter class interface has changed to read from file-like streams rather than file paths. *No temporary files are created anymore*. If you are the maintainer of a plugin, or custom DocumentConverter, you likely need to update your code. Otherwise, if only using the MarkItDown class or CLI (as in these examples), you should not need to change anything. @@ -132,6 +132,38 @@ markitdown --use-plugins path-to-file.pdf To find available plugins, search GitHub for the hashtag `#markitdown-plugin`. To develop a plugin, see `packages/markitdown-sample-plugin`. +#### markitdown-ocr Plugin + +The `markitdown-ocr` plugin adds OCR support to PDF, DOCX, PPTX, and XLSX converters, extracting text from embedded images using LLM Vision — the same `llm_client` / `llm_model` pattern that MarkItDown already uses for image descriptions. No new ML libraries or binary dependencies required. + +**Installation:** + +```bash +pip install markitdown-ocr +pip install openai # or any OpenAI-compatible client +``` + +**Usage:** + +Pass the same `llm_client` and `llm_model` you would use for image descriptions: + +```python +from markitdown import MarkItDown +from openai import OpenAI + +md = MarkItDown( + enable_plugins=True, + llm_client=OpenAI(), + llm_model="gpt-4o", +) +result = md.convert("document_with_images.pdf") +print(result.text_content) +``` + +If no `llm_client` is provided the plugin still loads, but OCR is silently skipped and the standard built-in converter is used instead. + +See [`packages/markitdown-ocr/README.md`](packages/markitdown-ocr/README.md) for detailed documentation. + ### Azure Document Intelligence To use Microsoft Document Intelligence for conversion: diff --git a/packages/markitdown-ocr/LICENSE b/packages/markitdown-ocr/LICENSE new file mode 100644 index 000000000..9e841e7a2 --- /dev/null +++ b/packages/markitdown-ocr/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/packages/markitdown-ocr/README.md b/packages/markitdown-ocr/README.md new file mode 100644 index 000000000..d0883db4a --- /dev/null +++ b/packages/markitdown-ocr/README.md @@ -0,0 +1,200 @@ +# MarkItDown OCR Plugin + +LLM Vision plugin for MarkItDown that extracts text from images embedded in PDF, DOCX, PPTX, and XLSX files. + +Uses the same `llm_client` / `llm_model` pattern that MarkItDown already supports for image descriptions — no new ML libraries or binary dependencies required. + +## Features + +- **Enhanced PDF Converter**: Extracts text from images within PDFs, with full-page OCR fallback for scanned documents +- **Enhanced DOCX Converter**: OCR for images in Word documents +- **Enhanced PPTX Converter**: OCR for images in PowerPoint presentations +- **Enhanced XLSX Converter**: OCR for images in Excel spreadsheets +- **Context Preservation**: Maintains document structure and flow when inserting extracted text + +## Installation + +```bash +pip install markitdown-ocr +``` + +The plugin uses whatever OpenAI-compatible client you already have. Install one if you don't have it yet: + +```bash +pip install openai +``` + +## Usage + +### Command Line + +```bash +markitdown document.pdf --use-plugins --llm-client openai --llm-model gpt-4o +``` + +### Python API + +Pass `llm_client` and `llm_model` to `MarkItDown()` exactly as you would for image descriptions: + +```python +from markitdown import MarkItDown +from openai import OpenAI + +md = MarkItDown( + enable_plugins=True, + llm_client=OpenAI(), + llm_model="gpt-4o", +) + +result = md.convert("document_with_images.pdf") +print(result.text_content) +``` + +If no `llm_client` is provided the plugin still loads, but OCR is silently skipped — falling back to the standard built-in converter. + +### Custom Prompt + +Override the default extraction prompt for specialized documents: + +```python +md = MarkItDown( + enable_plugins=True, + llm_client=OpenAI(), + llm_model="gpt-4o", + llm_prompt="Extract all text from this image, preserving table structure.", +) +``` + +### Any OpenAI-Compatible Client + +Works with any client that follows the OpenAI API: + +```python +from openai import AzureOpenAI + +md = MarkItDown( + enable_plugins=True, + llm_client=AzureOpenAI( + api_key="...", + azure_endpoint="https://your-resource.openai.azure.com/", + api_version="2024-02-01", + ), + llm_model="gpt-4o", +) +``` + +## How It Works + +When `MarkItDown(enable_plugins=True, llm_client=..., llm_model=...)` is called: + +1. MarkItDown discovers the plugin via the `markitdown.plugin` entry point group +2. It calls `register_converters()`, forwarding all kwargs including `llm_client` and `llm_model` +3. The plugin creates an `LLMVisionOCRService` from those kwargs +4. Four OCR-enhanced converters are registered at **priority -1.0** — before the built-in converters at priority 0.0 + +When a file is converted: + +1. The OCR converter accepts the file +2. It extracts embedded images from the document +3. Each image is sent to the LLM with an extraction prompt +4. The returned text is inserted inline, preserving document structure +5. If the LLM call fails, conversion continues without that image's text + +## Supported File Formats + +### PDF + +- Embedded images are extracted by position (via `page.images` / page XObjects) and OCR'd inline, interleaved with the surrounding text in vertical reading order. +- **Scanned PDFs** (pages with no extractable text) are detected automatically: each page is rendered at 300 DPI and sent to the LLM as a full-page image. +- **Malformed PDFs** that pdfplumber/pdfminer cannot open (e.g. truncated EOF) are retried with PyMuPDF page rendering, so content is still recovered. + +### DOCX + +- Images are extracted via document part relationships (`doc.part.rels`). +- OCR is run before the DOCX→HTML→Markdown pipeline executes: placeholder tokens are injected into the HTML so that the markdown converter does not escape the OCR markers, and the final placeholders are replaced with the formatted `*[Image OCR]...[End OCR]*` blocks after conversion. +- Document flow (headings, paragraphs, tables) is fully preserved around the OCR blocks. + +### PPTX + +- Picture shapes, placeholder shapes with images, and images inside groups are all supported. +- Shapes are processed in top-to-left reading order per slide. +- If an `llm_client` is configured, the LLM is asked for a description first; OCR is used as the fallback when no description is returned. + +### XLSX + +- Images embedded in worksheets (`sheet._images`) are extracted per sheet. +- Cell position is calculated from the image anchor coordinates (column/row → Excel letter notation). +- Images are listed under a `### Images in this sheet:` section after the sheet's data table — they are not interleaved into the table rows. + +### Output format + +Every extracted OCR block is wrapped as: + +```text +*[Image OCR] + +[End OCR]* +``` + +## Troubleshooting + +### OCR text missing from output + +The most likely cause is a missing `llm_client` or `llm_model`. Verify: + +```python +from openai import OpenAI +from markitdown import MarkItDown + +md = MarkItDown( + enable_plugins=True, + llm_client=OpenAI(), # required + llm_model="gpt-4o", # required +) +``` + +### Plugin not loading + +Confirm the plugin is installed and discovered: + +```bash +markitdown --list-plugins # should show: ocr +``` + +### API errors + +The plugin propagates LLM API errors as warnings and continues conversion. Check your API key, quota, and that the chosen model supports vision inputs. + +## Development + +### Running Tests + +```bash +cd packages/markitdown-ocr +pytest tests/ -v +``` + +### Building from Source + +```bash +git clone https://github.com/microsoft/markitdown.git +cd markitdown/packages/markitdown-ocr +pip install -e . +``` + +## Contributing + +Contributions are welcome! See the [MarkItDown repository](https://github.com/microsoft/markitdown) for guidelines. + +## License + +MIT — see [LICENSE](LICENSE). + +## Changelog + +### 0.1.0 (Initial Release) + +- LLM Vision OCR for PDF, DOCX, PPTX, XLSX +- Full-page OCR fallback for scanned PDFs +- Context-aware inline text insertion +- Priority-based converter replacement (no code changes required) diff --git a/packages/markitdown-ocr/pyproject.toml b/packages/markitdown-ocr/pyproject.toml new file mode 100644 index 000000000..eda3cdda5 --- /dev/null +++ b/packages/markitdown-ocr/pyproject.toml @@ -0,0 +1,57 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "markitdown-ocr" +dynamic = ["version"] +description = 'OCR plugin for MarkItDown - Extracts text from images in PDF, DOCX, PPTX, and XLSX via LLM Vision' +readme = "README.md" +requires-python = ">=3.10" +license = "MIT" +keywords = ["markitdown", "ocr", "pdf", "docx", "xlsx", "pptx", "llm", "vision"] +authors = [ + { name = "Contributors", email = "noreply@github.com" }, +] +classifiers = [ + "Development Status :: 4 - Beta", + "Programming Language :: Python", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: Implementation :: CPython", +] + +# Core dependencies — matches the file-format libraries markitdown already uses +dependencies = [ + "markitdown>=0.1.0", + "pdfminer.six>=20251230", + "pdfplumber>=0.11.9", + "PyMuPDF>=1.24.0", + "mammoth~=1.11.0", + "python-docx", + "python-pptx", + "pandas", + "openpyxl", + "Pillow>=9.0.0", +] + +# llm_client is passed in by the user (same as for markitdown image descriptions); +# install openai or any OpenAI-compatible SDK separately. +[project.optional-dependencies] +llm = [ + "openai>=1.0.0", +] + +[project.urls] +Documentation = "https://github.com/microsoft/markitdown#readme" +Issues = "https://github.com/microsoft/markitdown/issues" +Source = "https://github.com/microsoft/markitdown" + +[tool.hatch.version] +path = "src/markitdown_ocr/__about__.py" + +# CRITICAL: Plugin entry point - MarkItDown will discover this plugin through this entry point +[project.entry-points."markitdown.plugin"] +ocr = "markitdown_ocr" diff --git a/packages/markitdown-ocr/src/markitdown_ocr/__about__.py b/packages/markitdown-ocr/src/markitdown_ocr/__about__.py new file mode 100644 index 000000000..1c700dc50 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/__about__.py @@ -0,0 +1,4 @@ +# SPDX-FileCopyrightText: 2025-present Contributors +# SPDX-License-Identifier: MIT + +__version__ = "0.1.0" diff --git a/packages/markitdown-ocr/src/markitdown_ocr/__init__.py b/packages/markitdown-ocr/src/markitdown_ocr/__init__.py new file mode 100644 index 000000000..f608e9625 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/__init__.py @@ -0,0 +1,31 @@ +# SPDX-FileCopyrightText: 2025-present Contributors +# SPDX-License-Identifier: MIT + +""" +markitdown-ocr: OCR plugin for MarkItDown + +Adds LLM Vision-based text extraction from images embedded in PDF, DOCX, PPTX, and XLSX files. +""" + +from ._plugin import __plugin_interface_version__, register_converters +from .__about__ import __version__ +from ._ocr_service import ( + OCRResult, + LLMVisionOCRService, +) +from ._pdf_converter_with_ocr import PdfConverterWithOCR +from ._docx_converter_with_ocr import DocxConverterWithOCR +from ._pptx_converter_with_ocr import PptxConverterWithOCR +from ._xlsx_converter_with_ocr import XlsxConverterWithOCR + +__all__ = [ + "__version__", + "__plugin_interface_version__", + "register_converters", + "OCRResult", + "LLMVisionOCRService", + "PdfConverterWithOCR", + "DocxConverterWithOCR", + "PptxConverterWithOCR", + "XlsxConverterWithOCR", +] diff --git a/packages/markitdown-ocr/src/markitdown_ocr/_docx_converter_with_ocr.py b/packages/markitdown-ocr/src/markitdown_ocr/_docx_converter_with_ocr.py new file mode 100644 index 000000000..f2463de11 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/_docx_converter_with_ocr.py @@ -0,0 +1,189 @@ +""" +Enhanced DOCX Converter with OCR support for embedded images. +Extracts images from Word documents and performs OCR while maintaining context. +""" + +import io +import re +import sys +from typing import Any, BinaryIO, Optional + +from markitdown.converters import HtmlConverter +from markitdown.converter_utils.docx.pre_process import pre_process_docx +from markitdown import DocumentConverterResult, StreamInfo +from markitdown._exceptions import ( + MissingDependencyException, + MISSING_DEPENDENCY_MESSAGE, +) +from ._ocr_service import LLMVisionOCRService + +# Try loading dependencies +_dependency_exc_info = None +try: + import mammoth + from docx import Document +except ImportError: + _dependency_exc_info = sys.exc_info() + +# Placeholder injected into HTML so that mammoth never sees the OCR markers. +# Must be a single token with no special markdown characters. +_PLACEHOLDER = "MARKITDOWNOCRBLOCK{}" + + +class DocxConverterWithOCR(HtmlConverter): + """ + Enhanced DOCX Converter with OCR support for embedded images. + Maintains document flow while extracting text from images inline. + """ + + def __init__(self, ocr_service: Optional[LLMVisionOCRService] = None): + super().__init__() + self._html_converter = HtmlConverter() + self.ocr_service = ocr_service + + def accepts( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> bool: + mimetype = (stream_info.mimetype or "").lower() + extension = (stream_info.extension or "").lower() + + if extension == ".docx": + return True + + if mimetype.startswith( + "application/vnd.openxmlformats-officedocument.wordprocessingml" + ): + return True + + return False + + def convert( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> DocumentConverterResult: + if _dependency_exc_info is not None: + raise MissingDependencyException( + MISSING_DEPENDENCY_MESSAGE.format( + converter=type(self).__name__, + extension=".docx", + feature="docx", + ) + ) from _dependency_exc_info[1].with_traceback( + _dependency_exc_info[2] + ) # type: ignore[union-attr] + + # Get OCR service if available (from kwargs or instance) + ocr_service: Optional[LLMVisionOCRService] = ( + kwargs.get("ocr_service") or self.ocr_service + ) + + if ocr_service: + # 1. Extract and OCR images — returns raw text per image + file_stream.seek(0) + image_ocr_map = self._extract_and_ocr_images(file_stream, ocr_service) + + # 2. Convert DOCX → HTML via mammoth + file_stream.seek(0) + pre_process_stream = pre_process_docx(file_stream) + html_result = mammoth.convert_to_html( + pre_process_stream, style_map=kwargs.get("style_map") + ).value + + # 3. Replace tags with plain placeholder tokens so that + # mammoth's HTML→markdown step never escapes our OCR markers. + html_with_placeholders, ocr_texts = self._inject_placeholders( + html_result, image_ocr_map + ) + + # 4. Convert HTML → markdown + md_result = self._html_converter.convert_string( + html_with_placeholders, **kwargs + ) + md = md_result.markdown + + # 5. Swap placeholders for the actual OCR blocks (post-conversion + # so * and _ are never escaped by the markdown converter). + for i, raw_text in enumerate(ocr_texts): + placeholder = _PLACEHOLDER.format(i) + ocr_block = f"*[Image OCR]\n{raw_text}\n[End OCR]*" + md = md.replace(placeholder, ocr_block) + + return DocumentConverterResult(markdown=md) + else: + # Standard conversion without OCR + style_map = kwargs.get("style_map", None) + pre_process_stream = pre_process_docx(file_stream) + return self._html_converter.convert_string( + mammoth.convert_to_html(pre_process_stream, style_map=style_map).value, + **kwargs, + ) + + def _extract_and_ocr_images( + self, file_stream: BinaryIO, ocr_service: LLMVisionOCRService + ) -> dict[str, str]: + """ + Extract images from DOCX and OCR them. + + Returns: + Dict mapping image relationship IDs to raw OCR text (no markers). + """ + ocr_map = {} + + try: + file_stream.seek(0) + doc = Document(file_stream) + + for rel in doc.part.rels.values(): + if "image" in rel.target_ref.lower(): + try: + image_bytes = rel.target_part.blob + image_stream = io.BytesIO(image_bytes) + ocr_result = ocr_service.extract_text(image_stream) + + if ocr_result.text.strip(): + # Store raw text only — markers added later + ocr_map[rel.rId] = ocr_result.text.strip() + + except Exception: + continue + + except Exception: + pass + + return ocr_map + + def _inject_placeholders( + self, html: str, ocr_map: dict[str, str] + ) -> tuple[str, list[str]]: + """ + Replace tags with numbered placeholder tokens. + + Returns: + (html_with_placeholders, ordered list of raw OCR texts) + """ + if not ocr_map: + return html, [] + + ocr_texts = list(ocr_map.values()) + used: list[int] = [] + + def replace_img(match: re.Match) -> str: # type: ignore[type-arg] + for i in range(len(ocr_texts)): + if i not in used: + used.append(i) + return f"

{_PLACEHOLDER.format(i)}

" + return "" # remove image if all OCR texts already used + + result = re.sub(r"]*>", replace_img, html) + + # Any OCR texts that had no matching tag go at the end + for i in range(len(ocr_texts)): + if i not in used: + result += f"

{_PLACEHOLDER.format(i)}

" + + return result, ocr_texts diff --git a/packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py b/packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py new file mode 100644 index 000000000..2885e1f47 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/_ocr_service.py @@ -0,0 +1,110 @@ +""" +OCR Service Layer for MarkItDown +Provides LLM Vision-based image text extraction. +""" + +import base64 +from typing import Any, BinaryIO +from dataclasses import dataclass + +from markitdown import StreamInfo + + +@dataclass +class OCRResult: + """Result from OCR extraction.""" + + text: str + confidence: float | None = None + backend_used: str | None = None + error: str | None = None + + +class LLMVisionOCRService: + """OCR service using LLM vision models (OpenAI-compatible).""" + + def __init__( + self, + client: Any, + model: str, + default_prompt: str | None = None, + ) -> None: + """ + Initialize LLM Vision OCR service. + + Args: + client: OpenAI-compatible client + model: Model name (e.g., 'gpt-4o', 'gemini-2.0-flash') + default_prompt: Default prompt for OCR extraction + """ + self.client = client + self.model = model + self.default_prompt = default_prompt or ( + "Extract all text from this image. " + "Return ONLY the extracted text, maintaining the original " + "layout and order. Do not add any commentary or description." + ) + + def extract_text( + self, + image_stream: BinaryIO, + prompt: str | None = None, + stream_info: StreamInfo | None = None, + **kwargs: Any, + ) -> OCRResult: + """Extract text using LLM vision.""" + if self.client is None: + return OCRResult( + text="", + backend_used="llm_vision", + error="LLM client not configured", + ) + + try: + image_stream.seek(0) + + content_type: str | None = None + if stream_info: + content_type = stream_info.mimetype + + if not content_type: + try: + from PIL import Image + + image_stream.seek(0) + img = Image.open(image_stream) + fmt = img.format.lower() if img.format else "png" + content_type = f"image/{fmt}" + except Exception: + content_type = "image/png" + + image_stream.seek(0) + base64_image = base64.b64encode(image_stream.read()).decode("utf-8") + data_uri = f"data:{content_type};base64,{base64_image}" + + actual_prompt = prompt or self.default_prompt + response = self.client.chat.completions.create( + model=self.model, + messages=[ + { + "role": "user", + "content": [ + {"type": "text", "text": actual_prompt}, + { + "type": "image_url", + "image_url": {"url": data_uri}, + }, + ], + } + ], + ) + + text = response.choices[0].message.content + return OCRResult( + text=text.strip() if text else "", + backend_used="llm_vision", + ) + except Exception as e: + return OCRResult(text="", backend_used="llm_vision", error=str(e)) + finally: + image_stream.seek(0) diff --git a/packages/markitdown-ocr/src/markitdown_ocr/_pdf_converter_with_ocr.py b/packages/markitdown-ocr/src/markitdown_ocr/_pdf_converter_with_ocr.py new file mode 100644 index 000000000..c1dc0f613 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/_pdf_converter_with_ocr.py @@ -0,0 +1,422 @@ +""" +Enhanced PDF Converter with OCR support for embedded images. +Extracts images from PDFs and performs OCR while maintaining document context. +""" + +import io +import sys +from typing import Any, BinaryIO, Optional + +from markitdown import DocumentConverter, DocumentConverterResult, StreamInfo +from markitdown._exceptions import ( + MissingDependencyException, + MISSING_DEPENDENCY_MESSAGE, +) +from ._ocr_service import LLMVisionOCRService + +# Import dependencies +_dependency_exc_info = None +try: + import pdfminer + import pdfminer.high_level + import pdfplumber + from PIL import Image +except ImportError: + _dependency_exc_info = sys.exc_info() + + +def _extract_images_from_page(page: Any) -> list[dict]: + """ + Extract images from a PDF page by rendering page regions. + + Returns: + List of dicts with 'stream', 'bbox', 'name', 'y_pos' keys + """ + images_info = [] + + try: + # Try multiple methods to detect images + images = [] + + # Method 1: Use page.images (standard approach) + if hasattr(page, "images") and page.images: + images = page.images + + # Method 2: If no images found, try underlying PDF objects + if not images and hasattr(page, "objects") and "image" in page.objects: + images = page.objects.get("image", []) + + # Method 3: Try filtering all objects for image types + if not images and hasattr(page, "objects"): + all_objs = page.objects + for obj_type in all_objs.keys(): + if "image" in obj_type.lower() or "xobject" in obj_type.lower(): + potential_imgs = all_objs.get(obj_type, []) + if potential_imgs: + images = potential_imgs + break + + for i, img_dict in enumerate(images): + try: + # Try to get the actual image stream from the PDF + img_stream = None + y_pos = 0 + + # Method A: If img_dict has 'stream' key, use it directly + if "stream" in img_dict and hasattr(img_dict["stream"], "get_data"): + try: + img_bytes = img_dict["stream"].get_data() + + # Try to open as PIL Image to validate/decode + pil_img = Image.open(io.BytesIO(img_bytes)) + + # Convert to RGB if needed (handle CMYK, etc.) + if pil_img.mode not in ("RGB", "L"): + pil_img = pil_img.convert("RGB") + + # Save to stream as PNG + img_stream = io.BytesIO() + pil_img.save(img_stream, format="PNG") + img_stream.seek(0) + + y_pos = img_dict.get("top", 0) + except Exception: + pass + + # Method B: Fallback to rendering page region + if img_stream is None: + x0 = img_dict.get("x0", 0) + y0 = img_dict.get("top", 0) + x1 = img_dict.get("x1", 0) + y1 = img_dict.get("bottom", 0) + y_pos = y0 + + # Check if dimensions are valid + if x1 <= x0 or y1 <= y0: + continue + + # Use pdfplumber's within_bbox to crop, then render + # This preserves coordinate system correctly + bbox = (x0, y0, x1, y1) + cropped_page = page.within_bbox(bbox) + + # Render at 150 DPI (balance between quality and size) + page_img = cropped_page.to_image(resolution=150) + + # Save to stream + img_stream = io.BytesIO() + page_img.original.save(img_stream, format="PNG") + img_stream.seek(0) + + if img_stream: + images_info.append( + { + "stream": img_stream, + "name": f"page_{page.page_number}_img_{i}", + "y_pos": y_pos, + } + ) + + except Exception: + continue + + except Exception: + pass + + return images_info + + +class PdfConverterWithOCR(DocumentConverter): + """ + Enhanced PDF Converter with OCR support for embedded images. + Maintains document structure while extracting text from images inline. + """ + + def __init__(self, ocr_service: Optional[LLMVisionOCRService] = None): + super().__init__() + self.ocr_service = ocr_service + + def accepts( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> bool: + mimetype = (stream_info.mimetype or "").lower() + extension = (stream_info.extension or "").lower() + + if extension == ".pdf": + return True + + if mimetype.startswith("application/pdf") or mimetype.startswith( + "application/x-pdf" + ): + return True + + return False + + def convert( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> DocumentConverterResult: + if _dependency_exc_info is not None: + raise MissingDependencyException( + MISSING_DEPENDENCY_MESSAGE.format( + converter=type(self).__name__, + extension=".pdf", + feature="pdf", + ) + ) from _dependency_exc_info[1].with_traceback( + _dependency_exc_info[2] + ) # type: ignore[union-attr] + + # Get OCR service if available (from kwargs or instance) + ocr_service: LLMVisionOCRService | None = ( + kwargs.get("ocr_service") or self.ocr_service + ) + + # Read PDF into BytesIO + file_stream.seek(0) + pdf_bytes = io.BytesIO(file_stream.read()) + + markdown_content = [] + + try: + with pdfplumber.open(pdf_bytes) as pdf: + for page_num, page in enumerate(pdf.pages, 1): + markdown_content.append(f"\n## Page {page_num}\n") + + # If OCR is enabled, interleave text and images by position + if ocr_service: + images_on_page = self._extract_page_images(pdf_bytes, page_num) + + if images_on_page: + # Extract text lines with Y positions + chars = page.chars + if chars: + # Group chars into lines based on Y position + lines_with_y = [] + current_line = [] + current_y = None + + for char in sorted( + chars, key=lambda c: (c["top"], c["x0"]) + ): + y = char["top"] + if current_y is None: + current_y = y + elif abs(y - current_y) > 2: # New line threshold + if current_line: + text = "".join( + [c["text"] for c in current_line] + ) + lines_with_y.append( + {"y": current_y, "text": text.strip()} + ) + current_line = [] + current_y = y + current_line.append(char) + + # Add last line + if current_line: + text = "".join([c["text"] for c in current_line]) + lines_with_y.append( + {"y": current_y, "text": text.strip()} + ) + else: + # Fallback: use simple text extraction + text_content = page.extract_text() or "" + lines_with_y = [ + {"y": i * 10, "text": line} + for i, line in enumerate(text_content.split("\n")) + ] + + # OCR all images + image_data = [] + for img_info in images_on_page: + ocr_result = ocr_service.extract_text( + img_info["stream"] + ) + if ocr_result.text.strip(): + image_data.append( + { + "y_pos": img_info["y_pos"], + "name": img_info["name"], + "ocr_text": ocr_result.text, + "backend": ocr_result.backend_used, + "type": "image", + } + ) + + # Add text items + content_items = [ + { + "y_pos": item["y"], + "text": item["text"], + "type": "text", + } + for item in lines_with_y + if item["text"] + ] + content_items.extend(image_data) + + # Sort all items by Y position (top to bottom) + content_items.sort(key=lambda x: x["y_pos"]) + + # Build markdown by interleaving text and images + for item in content_items: + if item["type"] == "text": + markdown_content.append(item["text"]) + else: # image + ocr_text = item["ocr_text"] + img_marker = ( + f"\n\n*[Image OCR]\n{ocr_text}\n[End OCR]*\n" + ) + markdown_content.append(img_marker) + else: + # No images detected - just extract regular text + text_content = page.extract_text() or "" + if text_content.strip(): + markdown_content.append(text_content.strip()) + else: + # No OCR, just extract text + text_content = page.extract_text() or "" + if text_content.strip(): + markdown_content.append(text_content.strip()) + + # Build final markdown + markdown = "\n\n".join(markdown_content).strip() + + # Fallback to pdfminer if empty + if not markdown: + pdf_bytes.seek(0) + markdown = pdfminer.high_level.extract_text(pdf_bytes) + + except Exception: + # Fallback to pdfminer + try: + pdf_bytes.seek(0) + markdown = pdfminer.high_level.extract_text(pdf_bytes) + except Exception: + markdown = "" + + # Final fallback: If still empty/whitespace and OCR is available, + # treat as scanned PDF and OCR full pages + if ocr_service and (not markdown or not markdown.strip()): + pdf_bytes.seek(0) + markdown = self._ocr_full_pages(pdf_bytes, ocr_service) + + return DocumentConverterResult(markdown=markdown) + + def _extract_page_images(self, pdf_bytes: io.BytesIO, page_num: int) -> list[dict]: + """ + Extract images from a PDF page using pdfplumber. + + Args: + pdf_bytes: PDF file as BytesIO + page_num: Page number (1-indexed) + + Returns: + List of image info dicts with 'stream', 'bbox', 'name', 'y_pos' + """ + images = [] + + try: + pdf_bytes.seek(0) + with pdfplumber.open(pdf_bytes) as pdf: + if page_num <= len(pdf.pages): + page = pdf.pages[page_num - 1] # 0-indexed + images = _extract_images_from_page(page) + except Exception: + pass + + # Sort by vertical position (top to bottom) + images.sort(key=lambda x: x["y_pos"]) + + return images + + def _ocr_full_pages( + self, pdf_bytes: io.BytesIO, ocr_service: LLMVisionOCRService + ) -> str: + """ + Fallback for scanned PDFs: Convert entire pages to images and OCR them. + Used when text extraction returns empty/whitespace results. + + Args: + pdf_bytes: PDF file as BytesIO + ocr_service: OCR service to use + + Returns: + Markdown text extracted from OCR of full pages + """ + markdown_parts = [] + + try: + pdf_bytes.seek(0) + with pdfplumber.open(pdf_bytes) as pdf: + for page_num, page in enumerate(pdf.pages, 1): + try: + markdown_parts.append(f"\n## Page {page_num}\n") + + # Render page to image + page_img = page.to_image(resolution=300) + img_stream = io.BytesIO() + page_img.original.save(img_stream, format="PNG") + img_stream.seek(0) + + # Run OCR + ocr_result = ocr_service.extract_text(img_stream) + + if ocr_result.text.strip(): + text = ocr_result.text.strip() + markdown_parts.append(f"*[Image OCR]\n{text}\n[End OCR]*") + else: + markdown_parts.append( + "*[No text could be extracted from this page]*" + ) + + except Exception as e: + markdown_parts.append( + f"*[Error processing page {page_num}: {str(e)}]*" + ) + continue + + except Exception: + # pdfplumber failed (e.g. malformed EOF) — try PyMuPDF for rendering + markdown_parts = [] + try: + import fitz # PyMuPDF + + pdf_bytes.seek(0) + doc = fitz.open(stream=pdf_bytes.read(), filetype="pdf") + for page_num in range(1, doc.page_count + 1): + try: + markdown_parts.append(f"\n## Page {page_num}\n") + page = doc[page_num - 1] + mat = fitz.Matrix(300 / 72, 300 / 72) # 300 DPI + pix = page.get_pixmap(matrix=mat) + img_stream = io.BytesIO(pix.tobytes("png")) + img_stream.seek(0) + + ocr_result = ocr_service.extract_text(img_stream) + + if ocr_result.text.strip(): + text = ocr_result.text.strip() + markdown_parts.append(f"*[Image OCR]\n{text}\n[End OCR]*") + else: + markdown_parts.append( + "*[No text could be extracted from this page]*" + ) + + except Exception as e: + markdown_parts.append( + f"*[Error processing page {page_num}: {str(e)}]*" + ) + continue + doc.close() + except Exception: + return "*[Error: Could not process scanned PDF]*" + + return "\n\n".join(markdown_parts).strip() diff --git a/packages/markitdown-ocr/src/markitdown_ocr/_plugin.py b/packages/markitdown-ocr/src/markitdown_ocr/_plugin.py new file mode 100644 index 000000000..f4d7bcf5a --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/_plugin.py @@ -0,0 +1,68 @@ +""" +Plugin registration for markitdown-ocr. +Registers OCR-enhanced converters with priority-based replacement strategy. +""" + +from typing import Any +from markitdown import MarkItDown + +from ._ocr_service import LLMVisionOCRService +from ._pdf_converter_with_ocr import PdfConverterWithOCR +from ._docx_converter_with_ocr import DocxConverterWithOCR +from ._pptx_converter_with_ocr import PptxConverterWithOCR +from ._xlsx_converter_with_ocr import XlsxConverterWithOCR + + +__plugin_interface_version__ = 1 + + +def register_converters(markitdown: MarkItDown, **kwargs: Any) -> None: + """ + Register OCR-enhanced converters with MarkItDown. + + This plugin provides OCR support for PDF, DOCX, PPTX, and XLSX files. + The converters are registered with priority -1.0 to run BEFORE built-in + converters (which have priority 0.0), effectively replacing them when + the plugin is enabled. + + Args: + markitdown: MarkItDown instance to register converters with + **kwargs: Additional keyword arguments that may include: + - llm_client: OpenAI-compatible client for LLM-based OCR (required for OCR to work) + - llm_model: Model name (e.g., 'gpt-4o') + - llm_prompt: Custom prompt for text extraction + """ + # Create OCR service — reads the same llm_client/llm_model kwargs + # that MarkItDown itself already accepts for image descriptions + llm_client = kwargs.get("llm_client") + llm_model = kwargs.get("llm_model") + llm_prompt = kwargs.get("llm_prompt") + + ocr_service: LLMVisionOCRService | None = None + if llm_client and llm_model: + ocr_service = LLMVisionOCRService( + client=llm_client, + model=llm_model, + default_prompt=llm_prompt, + ) + + # Register converters with priority -1.0 (before built-ins at 0.0) + # This effectively "replaces" the built-in converters when plugin is installed + # Pass the OCR service to each converter's constructor + PRIORITY_OCR_ENHANCED = -1.0 + + markitdown.register_converter( + PdfConverterWithOCR(ocr_service=ocr_service), priority=PRIORITY_OCR_ENHANCED + ) + + markitdown.register_converter( + DocxConverterWithOCR(ocr_service=ocr_service), priority=PRIORITY_OCR_ENHANCED + ) + + markitdown.register_converter( + PptxConverterWithOCR(ocr_service=ocr_service), priority=PRIORITY_OCR_ENHANCED + ) + + markitdown.register_converter( + XlsxConverterWithOCR(ocr_service=ocr_service), priority=PRIORITY_OCR_ENHANCED + ) diff --git a/packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_with_ocr.py b/packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_with_ocr.py new file mode 100644 index 000000000..7e91ed6b4 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/_pptx_converter_with_ocr.py @@ -0,0 +1,249 @@ +""" +Enhanced PPTX Converter with improved OCR support. +Already has LLM-based image description, this enhances it with traditional OCR fallback. +""" + +import io +import sys +from typing import Any, BinaryIO, Optional + +from typing import BinaryIO, Any, Optional + +from markitdown.converters import HtmlConverter +from markitdown import DocumentConverter, DocumentConverterResult, StreamInfo +from markitdown._exceptions import ( + MissingDependencyException, + MISSING_DEPENDENCY_MESSAGE, +) +from ._ocr_service import LLMVisionOCRService + +_dependency_exc_info = None +try: + import pptx +except ImportError: + _dependency_exc_info = sys.exc_info() + + +class PptxConverterWithOCR(DocumentConverter): + """Enhanced PPTX Converter with OCR fallback.""" + + def __init__(self, ocr_service: Optional[LLMVisionOCRService] = None): + super().__init__() + self._html_converter = HtmlConverter() + self.ocr_service = ocr_service + + def accepts( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> bool: + mimetype = (stream_info.mimetype or "").lower() + extension = (stream_info.extension or "").lower() + + if extension == ".pptx": + return True + + if mimetype.startswith( + "application/vnd.openxmlformats-officedocument.presentationml" + ): + return True + + return False + + def convert( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> DocumentConverterResult: + if _dependency_exc_info is not None: + raise MissingDependencyException( + MISSING_DEPENDENCY_MESSAGE.format( + converter=type(self).__name__, + extension=".pptx", + feature="pptx", + ) + ) from _dependency_exc_info[1].with_traceback( + _dependency_exc_info[2] + ) # type: ignore[union-attr] + + # Get OCR service (from kwargs or instance) + ocr_service: Optional[LLMVisionOCRService] = ( + kwargs.get("ocr_service") or self.ocr_service + ) + llm_client = kwargs.get("llm_client") + + presentation = pptx.Presentation(file_stream) + md_content = "" + slide_num = 0 + + for slide in presentation.slides: + slide_num += 1 + md_content += f"\\n\\n\\n" + + title = slide.shapes.title + + def get_shape_content(shape, **kwargs): + nonlocal md_content + + # Pictures + if self._is_picture(shape): + # Get image data + image_stream = io.BytesIO(shape.image.blob) + + # Try LLM description first if available + llm_description = "" + if llm_client and kwargs.get("llm_model"): + try: + from ._llm_caption import llm_caption + + image_filename = shape.image.filename + image_extension = None + if image_filename: + import os + + image_extension = os.path.splitext(image_filename)[1] + + image_stream_info = StreamInfo( + mimetype=shape.image.content_type, + extension=image_extension, + filename=image_filename, + ) + + llm_description = llm_caption( + image_stream, + image_stream_info, + client=llm_client, + model=kwargs.get("llm_model"), + prompt=kwargs.get("llm_prompt"), + ) + except Exception: + pass + + # Try OCR if LLM failed or not available + ocr_text = "" + if not llm_description and ocr_service: + try: + image_stream.seek(0) + ocr_result = ocr_service.extract_text(image_stream) + if ocr_result.text.strip(): + ocr_text = ocr_result.text.strip() + except Exception: + pass + + # Format extracted content using unified OCR block format + content = (llm_description or ocr_text or "").strip() + if content: + md_content += f"\n*[Image OCR]\n{content}\n[End OCR]*\n" + + # Tables + if self._is_table(shape): + md_content += self._convert_table_to_markdown(shape.table, **kwargs) + + # Charts + if shape.has_chart: + md_content += self._convert_chart_to_markdown(shape.chart) + + # Text areas + elif shape.has_text_frame: + if shape == title: + md_content += "# " + shape.text.lstrip() + "\\n" + else: + md_content += shape.text + "\\n" + + # Group Shapes + if shape.shape_type == pptx.enum.shapes.MSO_SHAPE_TYPE.GROUP: + sorted_shapes = sorted( + shape.shapes, + key=lambda x: ( + float("-inf") if not x.top else x.top, + float("-inf") if not x.left else x.left, + ), + ) + for subshape in sorted_shapes: + get_shape_content(subshape, **kwargs) + + sorted_shapes = sorted( + slide.shapes, + key=lambda x: ( + float("-inf") if not x.top else x.top, + float("-inf") if not x.left else x.left, + ), + ) + for shape in sorted_shapes: + get_shape_content(shape, **kwargs) + + md_content = md_content.strip() + + if slide.has_notes_slide: + md_content += "\\n\\n### Notes:\\n" + notes_frame = slide.notes_slide.notes_text_frame + if notes_frame is not None: + md_content += notes_frame.text + md_content = md_content.strip() + + return DocumentConverterResult(markdown=md_content.strip()) + + def _is_picture(self, shape): + if shape.shape_type == pptx.enum.shapes.MSO_SHAPE_TYPE.PICTURE: + return True + if shape.shape_type == pptx.enum.shapes.MSO_SHAPE_TYPE.PLACEHOLDER: + if hasattr(shape, "image"): + return True + return False + + def _is_table(self, shape): + if shape.shape_type == pptx.enum.shapes.MSO_SHAPE_TYPE.TABLE: + return True + return False + + def _convert_table_to_markdown(self, table, **kwargs): + import html + + html_table = "" + first_row = True + for row in table.rows: + html_table += "" + for cell in row.cells: + if first_row: + html_table += "" + else: + html_table += "" + html_table += "" + first_row = False + html_table += "
" + html.escape(cell.text) + "" + html.escape(cell.text) + "
" + + return ( + self._html_converter.convert_string(html_table, **kwargs).markdown.strip() + + "\\n" + ) + + def _convert_chart_to_markdown(self, chart): + try: + md = "\\n\\n### Chart" + if chart.has_title: + md += f": {chart.chart_title.text_frame.text}" + md += "\\n\\n" + data = [] + category_names = [c.label for c in chart.plots[0].categories] + series_names = [s.name for s in chart.series] + data.append(["Category"] + series_names) + + for idx, category in enumerate(category_names): + row = [category] + for series in chart.series: + row.append(series.values[idx]) + data.append(row) + + markdown_table = [] + for row in data: + markdown_table.append("| " + " | ".join(map(str, row)) + " |") + header = markdown_table[0] + separator = "|" + "|".join(["---"] * len(data[0])) + "|" + return md + "\\n".join([header, separator] + markdown_table[1:]) + except ValueError as e: + if "unsupported plot type" in str(e): + return "\\n\\n[unsupported chart]\\n\\n" + except Exception: + return "\\n\\n[unsupported chart]\\n\\n" diff --git a/packages/markitdown-ocr/src/markitdown_ocr/_xlsx_converter_with_ocr.py b/packages/markitdown-ocr/src/markitdown_ocr/_xlsx_converter_with_ocr.py new file mode 100644 index 000000000..481e07195 --- /dev/null +++ b/packages/markitdown-ocr/src/markitdown_ocr/_xlsx_converter_with_ocr.py @@ -0,0 +1,225 @@ +""" +Enhanced XLSX Converter with OCR support for embedded images. +Extracts images from Excel spreadsheets and performs OCR while maintaining cell context. +""" + +import io +import sys +from typing import Any, BinaryIO, Optional + +from markitdown.converters import HtmlConverter +from markitdown import DocumentConverter, DocumentConverterResult, StreamInfo +from markitdown._exceptions import ( + MissingDependencyException, + MISSING_DEPENDENCY_MESSAGE, +) +from ._ocr_service import LLMVisionOCRService + +# Try loading dependencies +_xlsx_dependency_exc_info = None +try: + import pandas as pd + from openpyxl import load_workbook +except ImportError: + _xlsx_dependency_exc_info = sys.exc_info() + + +class XlsxConverterWithOCR(DocumentConverter): + """ + Enhanced XLSX Converter with OCR support for embedded images. + Extracts images with their cell positions and performs OCR. + """ + + def __init__(self, ocr_service: Optional[LLMVisionOCRService] = None): + super().__init__() + self._html_converter = HtmlConverter() + self.ocr_service = ocr_service + + def accepts( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> bool: + mimetype = (stream_info.mimetype or "").lower() + extension = (stream_info.extension or "").lower() + + if extension == ".xlsx": + return True + + if mimetype.startswith( + "application/vnd.openxmlformats-officedocument.spreadsheetml" + ): + return True + + return False + + def convert( + self, + file_stream: BinaryIO, + stream_info: StreamInfo, + **kwargs: Any, + ) -> DocumentConverterResult: + if _xlsx_dependency_exc_info is not None: + raise MissingDependencyException( + MISSING_DEPENDENCY_MESSAGE.format( + converter=type(self).__name__, + extension=".xlsx", + feature="xlsx", + ) + ) from _xlsx_dependency_exc_info[1].with_traceback( + _xlsx_dependency_exc_info[2] + ) # type: ignore[union-attr] + + # Get OCR service if available (from kwargs or instance) + ocr_service: Optional[LLMVisionOCRService] = ( + kwargs.get("ocr_service") or self.ocr_service + ) + + if ocr_service: + # Remove ocr_service from kwargs to avoid duplicate argument error + kwargs_without_ocr = {k: v for k, v in kwargs.items() if k != "ocr_service"} + return self._convert_with_ocr( + file_stream, ocr_service, **kwargs_without_ocr + ) + else: + return self._convert_standard(file_stream, **kwargs) + + def _convert_standard( + self, file_stream: BinaryIO, **kwargs: Any + ) -> DocumentConverterResult: + """Standard conversion without OCR.""" + file_stream.seek(0) + sheets = pd.read_excel(file_stream, sheet_name=None, engine="openpyxl") + md_content = "" + + for sheet_name in sheets: + md_content += f"## {sheet_name}\n" + html_content = sheets[sheet_name].to_html(index=False) + md_content += ( + self._html_converter.convert_string( + html_content, **kwargs + ).markdown.strip() + + "\n\n" + ) + + return DocumentConverterResult(markdown=md_content.strip()) + + def _convert_with_ocr( + self, file_stream: BinaryIO, ocr_service: LLMVisionOCRService, **kwargs: Any + ) -> DocumentConverterResult: + """Convert XLSX with image OCR.""" + file_stream.seek(0) + wb = load_workbook(file_stream) + + md_content = "" + + for sheet_name in wb.sheetnames: + sheet = wb[sheet_name] + md_content += f"## {sheet_name}\n\n" + + # Convert sheet data to markdown table + file_stream.seek(0) + try: + df = pd.read_excel( + file_stream, sheet_name=sheet_name, engine="openpyxl" + ) + html_content = df.to_html(index=False) + md_content += ( + self._html_converter.convert_string( + html_content, **kwargs + ).markdown.strip() + + "\n\n" + ) + except Exception: + # If pandas fails, just skip the table + pass + + # Extract and OCR images in this sheet + images_with_ocr = self._extract_and_ocr_sheet_images(sheet, ocr_service) + + if images_with_ocr: + md_content += "### Images in this sheet:\n\n" + for img_info in images_with_ocr: + ocr_text = img_info["ocr_text"] + md_content += f"*[Image OCR]\n{ocr_text}\n[End OCR]*\n\n" + + return DocumentConverterResult(markdown=md_content.strip()) + + def _extract_and_ocr_sheet_images( + self, sheet: Any, ocr_service: LLMVisionOCRService + ) -> list[dict]: + """ + Extract and OCR images from an Excel sheet. + + Args: + sheet: openpyxl worksheet + ocr_service: OCR service + + Returns: + List of dicts with 'cell_ref' and 'ocr_text' + """ + results = [] + + try: + # Check if sheet has images + if hasattr(sheet, "_images"): + for img in sheet._images: + try: + # Get image data + if hasattr(img, "_data"): + image_data = img._data() + elif hasattr(img, "image"): + # Some versions store it differently + image_data = img.image + else: + continue + + # Create image stream + image_stream = io.BytesIO(image_data) + + # Get cell reference + cell_ref = "unknown" + if hasattr(img, "anchor"): + anchor = img.anchor + if hasattr(anchor, "_from"): + from_cell = anchor._from + if hasattr(from_cell, "col") and hasattr( + from_cell, "row" + ): + # Convert column number to letter + col_letter = self._column_number_to_letter( + from_cell.col + ) + cell_ref = f"{col_letter}{from_cell.row + 1}" + + # Perform OCR + ocr_result = ocr_service.extract_text(image_stream) + + if ocr_result.text.strip(): + results.append( + { + "cell_ref": cell_ref, + "ocr_text": ocr_result.text.strip(), + "backend": ocr_result.backend_used, + } + ) + + except Exception: + continue + + except Exception: + pass + + return results + + @staticmethod + def _column_number_to_letter(n: int) -> str: + """Convert column number to Excel column letter (0-indexed).""" + result = "" + n = n + 1 # Make 1-indexed + while n > 0: + n -= 1 + result = chr(65 + (n % 26)) + result + n //= 26 + return result diff --git a/packages/markitdown-ocr/tests/__init__.py b/packages/markitdown-ocr/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/packages/markitdown-ocr/tests/ocr_test_data/docx_complex_layout.docx b/packages/markitdown-ocr/tests/ocr_test_data/docx_complex_layout.docx new file mode 100644 index 0000000000000000000000000000000000000000..4ddd6974670012e50baaad53a097b25254c123f2 GIT binary patch literal 42547 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 literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/docx_image_end.docx b/packages/markitdown-ocr/tests/ocr_test_data/docx_image_end.docx new file mode 100644 index 0000000000000000000000000000000000000000..f2a9a8694c6c39baa3f3334f22e5297a841e9db7 GIT binary patch literal 41358 zcmagEWmp}_wm*!!1`SSdcXxLQF2UX1VdKFi5ZooWySoHWaDux#8<+pi%$aj%&bjw} zzcde3YyD(ZcUSG|QkH{+!UO{Yg9D3-Xw zS9j(t2MEI<<1n|b4+uh`!i^AgwO8N-nmWXl`B@az5wLL^h7JabiA0v{D8WpeGHJA>t2O% z^jo%uj?uIkODN+~0HDc;O$iS4v@vQqj;<}mbAAgfLdqG_5bWFUZ{Ghp%SS2rxEN04 zvF?W9F#CPUI&eIrdm#akT2qg zww#5N_sahmOD{?};d{^+u0eo-A%gxIIGfqJFfsnVRwhiyLb9L*oC`{Przo~>QWq~= z(icBaC=~2T9X~6w2S^wF>gxO`uBV0FOSFH!ZDKy3QGmZlS7aNkX{?CB`R(}YbT9T5>lFo zeuL;rt?A~+FyjE@ASvI(5m{W>x?}4Rc`wxDDs31bd=&49u9~K3%7VjPh$7>JaU&+P zKNVXR-pegiYn@os?IqJh8oXUn$K9s@bqgr@hTx!YRs zM}NmDq7&xYlyjZNxJ5s>k)OJp=l?8F_-8~_E6~mU6I38{P=QPxOq87+99@`99GuO5 z-|ATjV~YLEXcBk660-^#5!YyN5;C;lN0GA9n1PF}x9l7Wwqx0x6YJZBb~?Fq?nLW+ z!`F_2t6YuEkS3uCp~PWd&I3&&5w)>imyNMkp0Xuqc`B1a`p$bEXRatMcuhuoqCVmw zA=G3;%4D$U$){PTtozxiC&Ti9+5m?BtNMSHM3X_AMCto3+0YirK7ZUu%^p`x7>uh>{`?IXmZ8k z4&pmDK<0s}+)`?wf6I{q;%YGd}x%xE1?bWnP(kyfxGA8`|c=0$#rt>V=r zWH!%^evthF)ylF3@Oucy;`z)3jNq&1dukYcS`aaZZBVpS#~ORc|E}z`iqKdcIlQ+# zvH!sZstmdmOJfjS&&gnFv~muH0p2xDQ@Lu?=R>{m_$3jnql*&VlzqIN|` z-yhFr!V)L$wf6%TNy?3jYpEZZl_JX_U#cz3y-KD8IHb0LN7~6r$S9H!MlWnoV_xM} z)Jx%#I0_{AEQXyIG+C0hkwfnddX84$ic@^c zZG9k}?+q{PZANGC*3RM1~-1aOt5+;z5y?=10N&=@c6SoSv_+yoGhJYcv1E%oq3DW~wZFC)=o zM1d`~>nTZs6PoMfd|{b5>OQtgUs48^WrV&dNp*H)Fg-I7UBG8NT;spZ0Z)kkd1HKQ zlZ)1Y1Or1s`167FaBwzd0zI{EcAzQh_nq-gW90Xp(RoJ)r{^08xDb8X|4Q-@7LHw^!$X9pb=W) z7jGT?ajEaT^oZk0g%1b9rw7MdGeAZ<%q2KlLI^0U`YcK>HNN6{?xw;bh~-+t0qSyD zE=t*fGWz#ZjsCEFyN2&sT&k?fo43UNP8m;N_Wt1ZS$-%V*{$+f4ckB`cIC z%+$nrxsCrv6!NaHmW(c&-_5emPs92%VMTpU$E7UAVq(O{%3eO)*ns^XOn79y_sgIFU11e}GAf8G|k^>XEDf8>`- zfcqjwq&HDbc{n}{{dFTo`~5&9zbqMfZ2)yO9@^I?+MWH|NkcuhI`-TR$cTFDnk&68 z7Ey(5rL`3YT;()QL`>qZ4KKnSgD3?tUV7qhE_U%9$9N+4o3yXoLg3h^5{YN|u?R2t z1T{Ia95?m%B?lAyPny&=lQ#)YXI?(<)1o6epw(Oqd@s?s>nD|^teKK?5#I0e&l{2f z;CC%FxByEjlK1GN7^jd6!EZ2za0jK9LsB+&73~GGBurpjxoB>8R*I26N`p)vm@~OH zZKiq2{c}#4#(E+6@3H6U>4*aC>pIf>T0cpyPLJLXnkJ7kItfwyz*V>KPmG724r8Lq$$nH?s#;?vuXA>m|T6?{$9 zeTM$$gUHF(QXm0(Ln}dpff0b-(0@FLf37e7{y6@*)|eGh>Lfx?3Y=h=f-!r`!%Wtqo#WmyDRW{nS!wj60hWdy`qFR z#`=`G?Ok>`0#?1+c}wbgh8A0v?ouUQ)V-yc3(n%7l~&N7ylvuoS&-A~z)h3q&w+)D-yv0=?_HbL)G zvFbu5AKEKCXMWAD?tU%Mm$8pwgMjCr0w)$PBOlI;r)j$?I>jwcI>1f|@v;QI;n9j16`vPwwSgZd+4;~E z92_tB?VSiTM?orH=SQ2GSEU1vFzS$&n27jMA$0*^5sD>7dg*fATT}53(wk)BJuP+;0nPyirD^bntn9gqO!e=FrR;8wEgv_R zzlIDDt+b&kFI;Wv8vbcd74`u^Y(}odUMor=tsY6-@e`hdcHp` z|88k;7goH`4`>u5>bC$aWe@vk+q*9qeO5HeO_?~V5jqpfdc_u$cb2+T-W(1KzBgc6 zegcW|SodE$MI9SHeO&e9{_!FtIw5eXxdvL9+4=BF`V#>J$^9w)2j38H+h;D%jy=Y< zt?M6fWszY$mqJWBb53J3o-UGrSDxvFTw^y;0A~j87ani2>%{VH8aJ;luU{)d;-Yc> zp-it`D_!l)6=O+*EdF-wD}G&{bkDn9fMSp4Dk(($PV1{osOx}K31VOA>{HUWf$E2D zHAb*1_DTlg6e3uG=NEy`BODFWP#sT!- z9{tOJ_4_xy`*G<-SV4QmWj8YjJldi*^3(N~4t{ze;^gWnkDn_#@hYr+Va>ydi)0s!d zJExanncHij({sVhkCKggbF&xyd)L>8XZ~x{61m84c-um}E%ZM_ssnvrKmwxQt zQ}|yHFDPX+r$kvp{Rp?Ai>xV=;1)*z0xnKuRLI)Z^U~gPNroS_@}_0x8~Bt{678TF z$CPE&5#Jmcx}e4Dj`MW-dU0q+mq|1-3JBBgmD>_&*3cx?wUgk8v zl;Wl8MAE-Lty*>RRh=)&CJotB_Z?7uppHpv~pMgA3E z)rd#I2*u=u_`OeN4dO5CQ}zT0?g z!XGMbspzncnO#2O~u+q*FIvw6jJ=197TG~E2oAHe;!{dI`v+mm`^5hMarsJ_OR zv^05kt^2oP=q}p15QuBd?m4wD4UgHr(nkw0>Lx#*53W7|-CFhR2Yp1I`xnOD^DGxV zuXXQ-W^$@GJ*yAr1eNx8_eSzJ?_<`5^qPU<#Ig2Uj7!2vpJLBBzTmw*IUbZN-D{YA zi6Op`dfUm@gF6j&pNs0LQ*mtAY6xu_i9s|G?$m)_NeHB6ZMkMyR@yHbIX?v{t;PZ4#2O|SCrh{t{$qElPDui zp~tdyo-+``wCdQKr3UjEK`*ZZ7ez|@W2|egL=hb_qZul)V;LLIp#2tT8nO9v1sMb) z*7_MQKH(&}(|P|)@pqc!MYBr-Y!`DQT@?$}LZMg0jQ-DP>96atg+-<(gNY9?H=UdO><#3St zXVdOdz3lE2_XRA1NG}2~pPR?fp<>Ms#cfI_1{24UX7{#au6Dw%lxcwEQO7daMO4}l z*#qBofIOOYTy3MRpC!3dFyueG#O;6b(sX`bwez7RVZx09e{x20Oo@`8f;D{kNt~5wa@S7-j*>S!7h_o6Fqj6s=go%x)319n*8(ZTEf$$;W#InJTNbsG(0xcqZOITk!RF@HQnTNggMBe$vbiPJ{{C=QE1CAmOAt z>RARIiYD5({LmuCQQ7ze3A2w!azFj`SWZ>mAl=V-9N|^t8afylIh`=zRn{2mSThzLWdVi(+#mqJ*O_7j&_qxRE3rDF(&iTz@ z-0sV6Occ=lY5VH=?1k>Fav4}W^Dwt**ys7;9~- zcPw@#L2_5#-r^+radrPQUSxW*LbA{)lU@`qm#bIlioiGL6qxl~z4E&UDuDk(KG?QR z!+m-9l~rIhy~SYEIB>F9NUVGj&}#GoM!^I?DSQis*+E6E9tg>qSF37aJp zk`gYb2QpfH@v(i_Io0kHv8g*H{~?Cx>nZ$BM|=BEz!IyJPNcB94rfk$Z;a{=a^?nB z#D!ThzH6vY-%38;s-I%h9tghCZH#q(Yix;v_=0Ro9v* z3BtgNpiM_XX`(%8Q@>Pw7NF9_7_s3!Fq(}f;{NFbs9ig#DXJ0xLaA+X79c3Pl9!cm z@P??fROwo_VsL3T zvJ>(cTSsi-w&?>tRiXHpzZ_9`fBRlgMJ!BOhGfUg2_}UQe#X1D%!fx+5q0+&v_m@w zb4R#6wm{n9p>^9+>Ny-zi^y}0vix3sr4(bbN(R6$_KaDwKq2W$05^oMkMqEdQEhSHds z2ne~ZMBD+PlimChdk-JhqFc321~Z7R>1bs&b5vt}%@iO%%Ct987=EVAj_HER(L>Vm z_Ct4!E#udQt&-VDGIF}uHp9WkW^7S?ZB?o$ZMViI(2p_Q2k@$oMS z_BX=?oUg2dViA2b0u^PugxVxl4Qy7V&*5;R^)$8n?UJ zE(M3L4d(JHVf*P9D`pkcsAi(YG(5x9F1X4j$3^!}(=&vx{JyAPe@APz=6WxmU`C|w zA{hR0*Dt!fSX9VjH-xScTA0nF4d}afKXZy)=3PhX&HK64A0LAKvpII~&z?=oy*fd* zl-9Y`$m(ii96Phn(jZKAU@g}Z2`$GFJeI1g(SXq41Hrj^QTuICo9%$O_4Tm z9y!>h(}Q>9h1s_hgL`B%?2PCK=1!`zt`xjdxh07QN%!I4MY7W|Ox#LBWzYK11>XWc zSwug)UNi`1c1OkXnW*JXh#=UlHKkGdu?gp34Yr;r8SvT%2zD%mCTn$TKHWRi#0g=} zIyh$}7?TWAK~fY)GbiU4DvAVsPSlOaaq2sC)SjWZ2kz|}n?D`(yJfn%4$1GPyevF8 z-`yBpFQ^Ok+xQNh!-eg4Lz4AT5m;2-V{7_uw-4k}!VFEQ2@zKjKQ{0XDCIewr&W29 zt}f~8fOVTDeNMpVYww|Ltt*?um{#qvudkdCaHe^qrA--gS@0jz^Z$OZy_x?ltbvrr ze3fyeY_;B+pkh;RRdZ2zRxJLrH`2`OMKf@-!@0KaS>9yxn4{tR+O1E|ZedJ}Xf4Da z@XOXDALm8Cl4t;@zTVXJ^pj635ed0{qn5z=U0AnwH4!!YlY8=47g^F@yUHB5fmG=x z9KvxdY(LX`7R=*k8B}1%2Z~l#7&nkD>)Qk9MeR(rMeT=#F{W-I)~7@gpEH*%PCl2B zNZbtlf*2NdILUHMFK8|`X>aO(swxpXP}q=Tk%p)yNdA!#>(UXxl{;|>Q3u!g#SFgl zJ*46@NeET*5(~0oo#s>Inle^l_?i|U@cltdr;&ln4X1l?a;G5`NxR&E9dFK*lW;zH%t|-w~KqwyM4KZqe3C(6N|;D*dJos9aU&lw zrLAV4Dw?X%cpkW>peih=RH@Y#Zs(#g(e&D|^_%rV21$uZ}R`R85(w zdO;o!*oQyC{PEma&{40rx7D;d*Z(VBO6hm{ z4cd|VX?>nYB2oN;>TwQZ{#vGbeI?yvv^UL0C`7h0(*&t^i&|$%ifx!FAJ**HvE5h6 z&Wj<*5O4LT#DmopxE z^xH?K4pPiK{kbkiZ?4dw%Huo@RYLJjo^o^DZ#VCODm{qM{CWE6VmFSZ=?lPwQ%Bq4 zAaAeEhUpTVHR&kjYHJ~a&J3%-j%*!QH+0}$MYgBr+s21`UatgRug<5&DRZ{jdiWTyuB`|Hw#Zlc* ztn~4xn%Y%3#LA{o&B z-#OUBzIKIoXw;F+s^lsyl$!WVLr`}eTs6o-d-m~y<2}->iZ0!<45ktPGNSJruk)>C zz>T`XnBNY5rHVj|UscyM@k1u1pr#ah`~pBw4=SWNr}%?m@7^px!%$5bUD@-~2=zDj z2elh!p0-vAVZA=x%A=1KRL-;z(@Th$C`%6_3m@>Xz-jK&kzja@#D7znKKIlMxZjPR zs4GMT{F~a6&O*kpa*ds$76TkR@S|rGl@DsQLL}BR?k?AdcRxS*yqK zqMGM@$Tdb+9`?+2%>9u2`EEUKM7n-srU_2EDX}3-UStU9=io}nji$;*u5~Jh4_F8et2O0 zZ*yt~C3dtB?i~k4_O32b0c|18I&)&w{H1Ve=a~!OQ32qQe*AyvCFL;$gRa$1T()kjbaI^x1>%0VRLEqp@BpI7hXIA8cX%n^}PD z>9h(-l7|&(4KO&txMYh;b5r^{OZ*TA68cg}9~d__mogRhq6=4WcC1G&a=B>9e-(*8 z;>O&CHz360>(<4jO)@9{vpP@0b7$?bt=ah$xfThAu&fN>13^!e$juni#!aI+wU?Mo zd4vUaQHYx-Yvxz-F^sa25wkB4wV2|`tl3jAh-XGgS{Sh62&P8?-@)aH&{#;CJ}`yf z%WB>uNSO0|(Z+%LPKcN(z}z-99!jtZCPf7^bH8-n=7c+;*s+i>h>5DdUyFNxc|2f@ zu;hpyy>FsepoeIO5GW0vtn zashb}K8RVj$(}mCmzf?L%o!?N7=V%q^*u0C7#(s=|pQlq?eqqZGan3nQK2LRyIo7`OEqQ?o8djJF93S2bHS9ozg3v1n6)g1PgT zhRvWctp~85>zeO{f?;JQlCc?;|AZQN1C<;DF$O{OZF>?h8pt?~O+k5ARCNsJsy|#R<((Uw{nGmiBfLxvEV-j3I zRl!uQ3)Zkvw`PKsNZt1#~ecz`pVtos$O#;ToqJii+Uc-oT_$SG|g zbtN(OK}k-EejBDV#IYQWUaFxX)$Q)`H7(kgT0$95981w$DH zsK0)hB$&Gx(5AVUnIr|SbtDCjwom@M-G)ZSxQ?@ikk3hxej8(-ebV&cQZ}<5d+r^m zf5|RhBvVyrmCj{yG#H;A7>pn8@<)5)SMvIZk&eBG0iN1urOX-b#JpiTr%4?(x!+2f zMPQs1UtFuldFbMnYG&h>NdB!5>6H1r1ad3W@=t{||E(}(KU2sy_SwAgXA}amwbVqs zT(a0MZ#)%BlD$Z_JHH2N+G{8@#Dv4?#DF;)4vm5_6#wji(d^2|4M87~Dfr;C)pWDoiMJ91> z#Mp|?3k=rdJn@xxyi$C2_AKE57v>w^utS^1ERKbt7zh?A^@3-%TjlcvB@!r{kR9Gr zO4KClMnuH3Q6uuaFaY!VIO8RSSCLx!=@Ue^4ibsQI=2Sba|do9t_# zuK%DW(*;p4*P{PHoy?e~<@$e7-%%)nmfO!)dt(Ae&~nNS>d48C8MmfJ@Es3|_Q9 z$Yb(AXo*|E)_7-RT zR6jVmUy#t$cvm^xjXiwALBUP2YSHVgEbrhO^^N_k9|l?F=VWa<(TmN|sjYfkcRfd# zDUT{J8|Fu(b+wuIQAs=gT36Yr-+jVdNL4A-+^I|`z7Zd=_N0kco^r@05J|oSC+OQ6 zVj#6PEOlCsx%q>3btU06NzKf;K03@tHtlPC)Qlr?iv%a78+kHsN<%(Xj&*L4#OyNO zqpQ!V4YyATmWtCynrJ`S(G<$>`{X;hkbX9x{9q5&?O`j&MjW=bV16us@vlt z;+>P3A>YonOqXO==y5Ny?s7_}6i|1Y-9;|8I=!=+&Mca%Cds!VN!M7T8&f$?l3=fd zWLL;tig{jH(10aGJ2>=UVhOfPuXuUpUYHM_)WO1XIj*mr$V2ldyZ~Mxrr*nLjCa-A#rT@S~WO!6de~~ zGV*ikn(^e4D6X*bVn1c@f##3?AqJw3V9x?!YUR0`2PF8}3_%P|YN%&VL45ia2J+e; z;Nl2S#KJpZXb|E^aAZBuGWk$mA_Bee)|FIz(U^urVp@TRX7!i+7XzIY3Jn3?<<_2o z%YN)pI2)@{@JyIKY0%pbsr52z#-9aBOz?z3(09`Mnkj~_`w^E z148o*tmm@i%x>+|pQqFp?o{XK=&=h<8AQC`^bEm4FcNCUiGsIiE}B5{fzuC=4%~na zCjiqA2nXMUZXuEBAYm$D@)Rk3uM~C(F>V6KRMUNW#qZFBc3a1J32{_ewh3)7R79^I zaA)$NL)o?uN8a28MZq!E2-O-08xLWviWm=h2mxAV^dUNmBzTJGD=S?D>1c+dY(u9G zqv;!ZFY%|M@|06(|4kfH0!Z8tNeE7)ftVsT3OJm|tw14J|w zsXN9gga$%0QQIk{QIuI;Fp10tq2mwm=*;hU}Z1n&~dx)62h zUUn74b?I9(`z&CoNhpk9Da9>}V%ksfAH{px`Kx%RX4iwZL)jsJDa6&MHrR(VSmU;W zAyS6S;00G06chO&w;PXEqQXNBmZBC54?!AKAp0TKdjA-*!_s&8n+ig}1a24p3xeRb zBdtKAx*DGLZd_X}EVS&A0^SUFf^nOTFyYA8QYQ(x*z&cN_Dfj+aJv1wSpoqw+S6Nu- z&2}jf)_j1J>!+nyKK1R}kmJT0w=U$SeQ1py{dg(gxO<{Y0lR2nU(`XywH0C~4a~!# z`(F;_d6N%n9}zr1)dbI0yUnB-4B~hn#mI#}xCJ~gz!U`bM<^qXK10DkbEuROVNY{? z^H$T!!2IcC)}F5xvy8E~Ad2x7JJo>sQeYheAZrYO3D7kL=&?hv2obbvt*vB46$7!; z44#k^X47(LWx?YRnUH6ze)D)C(#my0W3hCjFn1sN3KBcr)-5aVQ881O3`ziN;$yMr z3i|N0!ei-{tMjc_x|qB7mbDvupCw7}OftX4oFBY5 z^fA|Q`0~)W-k_HCP@0c<(P9W&YVZeDQ%$nBuGSw^lfF$_Ehlh*sGt^Dm#chqXUW~%Y(Q1eYY-~D}9lwzn!@BbJo&(~R#l(tl>PKmvRR}qN6>c=O2 zs>7A^kaT_?>~NgHDRvW`ub{n6d6rer7|t7kjFhirEG9<%b@6)*6a`z8ZNj_v?NqL1 zq5bHbJj@L=VN&_?D&!=TpF4JO-(B<1hEro8(K}!85rQ9N>L@K}x{;-yeFv7?pjSQu z>=<>nq{@uu(5@vX{U0BN)%~Crym_&;(G>L56%H8>SpBv>x_zjOZ6KYp&gw0QuEe4j zy>T>@P&#NJ(tT+lqP_eWl>5$LSkAXHGok=-noH=Q^m`cdw|&Lz??Yfo4>v%7YEj1; zw-DB&Ji|@izOY|sfUIB1P?2#?=}cT1zLk6W`v;9<+b*A7K{aAcy89&JY4dX8X-Q}y zS#-6FW6$2|q=Fx=y-$0v0$9&zl)#lhu_fHxpq#EXhtaPK`1{2{Ii=7-Hv}csILf`K zbBk&hY;KPq&w2_MNRxMTE9)Q5u%4CuK2>gL)_Q2Z*ecTAe~ioxGFU(a*kuNkBCh=w zyb;D+x<8pVHUx(C{6B)92?p`Z#5u2ORo6$2H0xMguhQM;J+|odRzFLd z>%K^v{|k5+5l~6sTk#k0^fxk>4ogm$l8xf(yA0M{;LtQ^+L;x~}o%-V;`ZHnZZj?t2koOY7 zDvb-5K?DFJ)-y<&1E?g#+dvpZK;S-KrUSFqaF%MXQgv=|5OH52QFL)t|DF&ilKu9t z!TjH9Q-?o+!!{}U5!(Y)Us%8LV`w2Y;uM;Dud)6VV$NaJyiuG^N1Sd5`jZ&g3C!Ds zB`q&XhZ@esUWh4@*AbqJhj^=9SrojTHhp@z2(j_ZMfRO{?7_C7;Jg%NM=Cv@-omTz zI*Y6QJoN=DMbIe3ypG`^n<$--%f9jKUF}J$Dyb2blo?(JLmDDebE(C}+Lyf(4t=bY zh1*i>G9bSCa<|(Kl(WQuqJoQcl4J~YgxJ)B+DtZqW%T(1-h07m*m4>hMB|fz1Ad7O zQ3&pH0~^WpZCpRV>6004&*j#aIcRPa!K(BP&zy~x3wU>^Vfa`N^w{>~T`f*3Fu2%e z$Lt``jz5__TF~~;a)FRz2aVY+MC>-LDtIgo>R0+6rwgM5sNpB5;n1lRQf@`Zjwr{K z%hkL=`#OhuXWrh+bYxc0UO$6#G-B^%)#85u#QD&I06r@H3DDk+K|sa5Cc$kFd+Rvx zIy7Un>l(Dpfp3b*J##6)LIO1$(=6q`;i)=$0!=WiUIanFL^Pxvu)PtC3m1C_AB%Wr zPVp}Vc+r$+sTg2T!@630f|=Yitt}#OvG@*guRWJVUzZTMW6R~Cx%F+6K7q11NB*Se zD@Om5UXYM)8=MJbo(px@Z&?p%k%Ot|ztZ1x6AhmiH+ya{gJb@<-vzdh;pb{S2g&R7 zZ1D&u6jrc*u!0YzbMv1%O_I;1ZPc!#@4SYoR95G)hDOz4oeLhOxBDD9eV;Ldq;7Q* z7G&U>Q2tFa;cDE3^mPrPJyrE%h?AJ6AEbi2v z8Zc~1X4*^UEU#1?EpQ)yIu;gVV?s0I`9AIFr7Yg?s8Z+JOlKF>zFp@|+X`?<4C0v) zJj-ZXL2Y{9FFtlTi4#NDJ=dWQNm^0Y+#hPXLQKK#;A6ohxv)>9bKYyHP7xI#IbX$zQ%k&U_{cPDKfjp zUffdjYz z2E@W_5N4BK1LhnvVA3EuIYmj)#m&Ob)(kbbp&IxRUYTX}S%3{&NFwUr;Ph~RCbeYy}2HhedNfK17m!(?I zv|j;w?(P^bM>pUKFYcU_3 z_h`F$=Q&8p>BGlAL<+NmHhhIFmg!-BRvQ-8U7|L9(eA-~4PPtKb1zVqS6=Pm_Dd$~ z@L>rI0R)8X@lC&zCrK4%4m1pEkPui#Ib9I*K{Ws?v`=pi5hyjI4}ar-9$qZG#so-z|OBFmGg*| z^B&gp{DKjT2JSH;{Bjz_LRXN@az%}7SVf?N5ZZ*H7w$U0I96F>(B9V@9@M_az1BDm zL7)&wnpOs1Q;x_L70MO8R&aiV!5VsX-IQi;EhnViv8RT_Lh!?dr$tly0Y&Q>$hCR$ z)nvC!Bd_l}BKH$bYO@ZN8nxBUm(K_njKok_pqW+YVC4r_37VFPPmkcYkXF$y_mcSb zyekC)C@eVI0|=~&@CwBJGK~e=abKaDL5D`g66Lxleq^i--6?q58wlElnyeNFz1#+i-+$CX%dk>|l z^8DALt}_}`uaB!Cg-l`C6 z9Z^O)FkUoETEwnd*+;sUc!KJ>_QKBtf@bz@9FH^<^lh9IADgAQ3NHo|&r_?zq#$_7 zb4cHC;;N7H%fEms{{TYxH&8tYDDTze3@C;G6snh$Habyc(A_a=5BLLNTU!A1Zt*e7 zkOl{8V0{rCQT)!X5^x?uUMMV`r%{;OpjjeNsQl(M{YV=6+eaZYLgry=Cw}PCcAsV8 zkDmT5!uMKFhX>w7J5}MBvYettUm$$R$Vs6^5!^mNH&%+Cg7V_H=TQH20PVx=RCH23 zn40l1S`qplfg(w#{4GVK@91SZC|F{-V2tO&+4UD zB^=4pHiJ&<3+Dv9`yMC#J>(RSN+bL}zLm{o7$yAv)&JGgtLw?Hb+wZ7_--BPjq`rb zz7?>@Up1ez?tgu5uD~9s@Ly&+nd@w%XoV@e|vmA_Go{}nHpQwyLtki zwO3c8o}cI3f{yU7buJ6=GZs&Ad9GW~6vzDCKCNj(HexEf0H48gg?# zcQ2go8MQ7`4DCe$&!bjfN?TKq4Q!aA!mi)kV1i|??yUW+wr^uOtH<1&uV&1j>K3W| z?S-hi7Xe;AFPv7_ZnXw}p9HFJ{fq1#Qp^GV{%=is{vOub%VU0p-4Bedf#(2!FF}Kj z(zaXAg5o!xH{&sv#NnKfjIidEU2p%EPLJhX7w7&A;F%TB`;=>GJ|R(QUy_!X`?|)! zAT0Y=ZrJkR!j69x^3}@g_N5fl)G%MQy%YBa?w5v$F(yxYQip3_D(wruq~mnkeSpUC za<>DQL-oSEhIQpj%d4{$oi>d4FW#7sw?Eyjxvn>@F4N_6Q^L*x&mC*FIK(-Le6rrp zj1oI9{%;GbdUgB)_C$TV#e>V&fD|Ggg5}pb0YW|^USj??w`ab!io5pq>U9Qp)bhFN zkr#@}?uvI}LgVx8bAHa|t&67??Q>)4yfW(7dwk(aBcee% z+HAcW`Ea}0fdJ-lTnAN!vt$1QBX;S=w@l@5kYEPMO==E}heoD&rY5hYh2=4XDY z(=Y6Qc6lt{zoBZ6t`);~C_iQ(M8%XRMtOa!U)^ji7?l@bz&Wh)a6O zrm!9+v$hbQja8bROfAWR|H!90=zg0KMy674*P@!8vnm{WZovh&{j`Lfdk=6AChp2v z?Fj`n9c+M_a6wIMw?H8uErQpshfQfDj_#`4sj*)`JL%fY?Ax?<1MKC&{nIVrA>%GI zSJ6@W!^N%Bl*f!%P{wP`y1mM+uF04aoUH^?wNliowWdRiF*iU#du?^SxqMj1ry${_ za;T4KDk^MuX79nNwe!jCVOYQHOAeO@aV$Xzpa?A_~G(fArTFNB)RvV{$^@ zY^wKk_?w;y5q0RzYvC)jSd2{u_j_Af_Dxet0q8%$4 zOj>zzbVJU~QBfnrMj_4S=Cpdg9@WtsMw4)k0T{Fs#1mymtM{f^WWW zIcM!?zQtZmKtVTVeS2zJT1Yev6K%V9>NKeG7~>O6WQ6vaI4y(-R;u}iphdQ*3tfS3 zTL&?Z>7fgd6JM?h5D9wG?7{1mq&JLll-k?yQ{!U|qbVay>&HBe9XE=1m$DxUdsid5 zArG%bwgSOjfo=~zajy+AAKnz;EjOSG7ADfi5YUgeiQQuqY(`r z>L57e_zfl@~!~cQu_kh2n z{O>AoIhvszQ}cg8aLfO+2Pc5BY6e3I4grC2{6p)%B>jRoVnBBQg~5ZuZ2lG2<6w`t z!7S1E8)p@Q8)^DC&ff$6=D9|)0eV*V!x|{;9VqO#H541?a+ybz+v}^?r_f!}U0urO zYMI0iFo5r@KZ6iM^B53v_?Q7xV`_@lFnJ64#<2dudH7ByKsShh#iu-Os(fPeTZxbZ zQnbyw;oJW6S=jDw)@a`yMl`;Rkmnd+&7Ir*@r<|C_if*1`pD*%qjGqg3$fT^3>D|~ z-tz(O)Y<3oWhJW%i$AMpK+OwM?GP2o6m1n$}80K^|=&ZkoNT31BR$VOKd zD%Vr|mfP-?2AeAnN2VQgUAj8}%jrau{>$mHCTDS8XP3m&FB{MFRYH-)uu#Om_)f6S z&vC*Ow!FDlac6km??;;o=44?inhIuTnfe^hiXj-fm-U`lLe-N&?L9wQfPGiWfprP; zT_lb7xirNMF(Y9LY%oBv%E6wt=P1;RiFbd3vMP3nFA6NyL{?HF;};{)?6u-z5Bc#am{De_nix8*k-qY3xcCVMRoJph-jM&_B1-kaD(=4mS!G#C0= zWK&$y68DFwmk#o7sU)@16UuJHgYtYEu8qWt7(~^e7%K`^V47-d=~(e?7?SGvgK|Pl z8A6Ac(}jl6PeFxVwM+IeOa)+VQG37J+_j?n)~S%-es0F|%QkP8mw{4m*LEWRYwdSr zH|Hhahv(-w3BinAz_rfH%=T#AbAymRCxLt!<8#Z>ITsTFgFULl?JRp*tomh_(y-@7 zE5PTWWhLAA%QvTfG5h3%T7F9VJR-@o%ANfQo_&p_%IvA@Nt{OLXG+8)qXs1&<<2qU zW*%j>nWtBWQ%N4Icv94Tg;D^vGL)cx>dJtHpqlcw=+WzIf?&JL9vSvHgQrfzVm zXl#lC<^;~;+yX=LPv{~dAuT{SrxElm2+}#YkFH~})v7G8Ku_6VA$QA``S({Ew zxdy?*{4?#!_5J5F1lPqLqpz}^h3(tP*}$=f4@3 z<7#mwGaYG7NskOp?MZjNP3f1U zh^_Ow+V=?J4BmY=>t(iRGU9=Kc55sc@{Z3n|1$Z>!cB33Q7OIP;A-s_Ni7gCfq%A2 zjpZek`w&3zvw#~sFB;$N#jlXGfO7}gEmr}#9&b-xXi!!kr%$kXoc^Gi`p}cHy9P2! zgs`^jv|hIm|1A0Bwnv?t@tWolB*v6^`C9+L~9&{w4PPTPy-6*Eek9|cq5X)~o=wmcclD;5JAcXy4(&fB?6 zELBhTZgGd>@##D1@Psq27R#HT^o=$#YEPBRj)-cqzLybk+J&v&mv3mtzx#Tcl@y98 zVrwqv7NvDHSx*wzS^7=#tM25cq3321J?LD`SJL{Q&5xFKYsbgwoX>kL+*`k?qe1ez zo*tn!bv94BnJzqpc`kNzRUW@R;~kjyDwS~+e>3NAu|6~4TW+3UUaEke+!3yOH@T_b zN{QZPK0QT)-M>{O3{qAwxWXp(=y2oUb$oaF9(c;$YwteMD)h}(HB|#CeBIIIq2$1J zyz^FNjL@??9ndJI?^SUg>q$H%=c($a)A5)qt;Rh=`PiyQ2-zUkeCbV5hpeXy_NDGw z1IF1)jZNfBdk7DRQ?68!_a@@50ujQawsZB}*v0Ju?fXN{|-d(NhYW#yn5bGc+QGV3tyBWE6cuV{8{y_4atMAd#(6HQSn}`o3oosn1gxs=xtg*eEYp_> zLuc=<#<;VJNeGE%ji*}$E&M?{xg#Hys=zNb*{Y!z=bv4_TrE62Gp*a^p`RIS7u*e4 z?xwn0z9*lx4f;vLU1x3gGMbC8ZGG>cdsb5OW2&>rS?B~{dP%dH<-tge+Buj`c4~5_ zP6_?^;jKFDH;q+HcPTB&#;ok$oy(BbcFI(??sw$PeVTN0{k`lovDs2jCcU%_S>kfi zha;P+p>jtOOvL)-)g?UaaFG@&`|`k9#}oT30njiygKN5(#Cm^`-x9f!hjx@uU4bs06Vx?ycg+{J_hj(MpN=||ux%rMf zMpnG!-DmEEgxF`xT;r>4=kXgt@+lK(Ts~=#gE!jf`C{GIrIf`c>aJ86)ZIIZ2|^bSz%U7SF8D4hj^mk zsyoM*cQ-W!5FoA;to+c!d{h&Ui}9~!mR!E9()(-_^<5$U&|z8VV)?1V<>;`xtt6(7 z--6KvK2=V+iEmhMhcMW4%2^i&+;z!7ODj#|NBm$6Q7#8%IqE%6oNCcg8yby1qJhaqlDhz~eIYph5+_uKKZA4VuS zRh_$w)ZVrxACOxt_3pMQd%XKX5AMjetANQ*sMUPH$7c3K|C2dDtFOF^JLht!C(uU> zNy~2OFR5vc4u45~DqZd7iy4yPFuJv7_Q1G`Eg2Ht-Hw6S%(mrP1axv=IqoZfKiWIG zDgFMj?Kxm8`1JqJ4!{w8m*=tR%-PP3g$y3(a{%AYy$+|G>*_$Znujb~$i1pi=zpak z@byK1f=P>kjJ^rpr4{)J>I#w9v_)C2fxkXRd$0!-YGagSGh6@ej3=hMKBK-0*b>{o zmQcBxQLNhPoh;+c(Reaxv|5Rg`DNdhK9CpRA<)!4(DBuwi~~*PX_>P#m1uv+e?`@;sMjkeE+)~6LSk$VQ-Dttk6~>q#ck^SI)b>g-7QqzoX^Fpd@9=9IUL#E z^Pz3#C2e86h9?A;8#>@D+E8JYZR(kd0_Qc#6zJh?X+709YCHRjvkBt+jjG6AlY2Fs zr!|<@X|pwO4mGe23WDKnaR^(8KS0X#UH59VPHT*iaQL9VKdykpqy-k7)qF0Mn)SB9 z=$PNDF=Mt7aOwDU&rZSId9ft+-ObZR!P^G1`$%V2PG*dSxeGlg}sMrtTjcvSuc{Ucco|ehO2Q7zKGM7)? zEf;37KT@&t{K8CY(sR9~qmUhHWE^S&+I-0jfD}D#Zeb7Hih~_^_5>aZ;T>jV9S~jm z=XmE@+n@}a5fEq{E`M$;o1~_@^VD7Cn4u^4^NR7kr!C$P<1wrKm|J{xz{?7kv-&F6 z5zBr4#$@O7RImM(g|z+qclwAw*9NgUEXu-YI;>vKrF!(m#EC1zr;il<@z4#eG{JTo*ph~SybpAvQ>@5t8CW*pad}Qi~u7H zr6Gi{d*oAM*Z$F#VpUQQ5HWU^VT{E&!~>enwaL|*8KO%73kb}Ts0-c^i+Vu!Oh1UQ zz0kN@I1HU!l(`rL2Bicl*|>gKQejvMhS~FJCjtx;5lvK<&My?QdOh^|vPwOxi2j^L zcWuZ~_ev%*@wt5r$z}a%!w?u0G7!RgC&p8?2$23c1O(Oxjwms1Q*74>;!8lpe}_Z? z{ddUoH49)!w~N0*@;!zvHCX&BWDXPxnQ%lul0yGimB|uPFc)iD8%&%H+J{&ak!aNn zW^uz=j8O!8BPeol!yEEoq_wUzS2}SJLrbWzeD59;e4#DMVjyi zutU2r7!c>*BDMVDyEkDljW3@>Ax1-Bent08O*suC|3+)lDfX&B32X-)7zthk z5ru$3T`PcfoWYL| z)g(YD3<$zZKZ>g25KoSHa&%3#_t{aLJGD3ngmnRLtTPV1@V0pb2uU09VW$`b`8LV` z3@I487=%7c_N<(>dOVz8kT@M{;7SQvBy2NtvZQ>zSBEylAe4Ah$_=h?1PCb@KL_X) zZjsMOrC!sd4Ju6LT!*a{CeHIJR|pIrTPUv$swR6VYp_nn01T?;>v%r+V=ZMa94ZJ- zRv>BlSH5|MZ`7uJS(CuC;lG<^SsMbR-5$}KUkrjh5rgCM{(T0?KZ$Tstijz0$MG5?*io@O> ziW`FxI1-P*XZTZlp#lXopa2)g_{@qxQlF>&PlNgWpBoH7NcL;&*6HE#7C7&lvH1$j z3V8HgJUUOV$O7phpc_*WPzds${R|V{>G!SsUddJc-rCb3od%2&BA_Pmli?62vy&sy zCv}p4KMGG04T2npg3<~6910u?$QwW+x*e>p&IvLKQJ|(?EBza|u+R{zT5SdY!3~ zag|0R_0iUpc8EXnM=$D!zMm{d?|5_lG)LbYj@Wj$CmTX-d;((Pz@o$G;@IZJ%x1{g zPUjeLrxAe!CA|J4jj!LGH>$q>_o29q)x0-pWc@x?{SN^m=z}CjjX7c)N zDuS%-FWJZ9Za=N)>zBO;?)`@;#mG_YOsurbV{AN=lMP=MJWt!Y9c2sa>lfZ`zv-Fn zX$8->8lN}i9M5XNL{R!CxVoKg{gBnX$9nqX2a8Yco^PX`Z-M-Iin3>N?Wy=FOQm(D z0P`sgHkyV#`t{`77c<7e^YGQ3h*f4GN<0HoZB6qm1Iw5KheZ+?NsS*gayz9npJrS=}OSAk3yi5`c$->c=2>UMDI{P7gcMIsq4Kiey*WcMcV zW-=N~-W8;So$Vf8D(1e6|jc&V$$LLkh2;(cNqLnl+IP+ z(LIW+6b8@rqU)ELa|zG4F*Z?A{g09}ly1M|?)Mv0L6}dEP@I*U`NdpcC|y*DA1ZKC zo{JSnzHWNFC1LG70P%*;)AP_`nb{Z_*k_nIM(5f@69;|Wn??7$CoS}t=?h7K8hE~~Pg%nK0t64Vn+D&~bJJ8P7)<1-eL=zuW;^0j zyO_WPO>6$Y=s80=g4ZATryd7?TsiVq#Pf3s?URQ)vzsF6?evHJy+e53=b=VKT15?O z50!83yCQ?Z6b~dFH$Gy5T5>d?gYY1gS~bexHK-9kNPK@EtoYIfqy%>zY2=Vg%VFnW zZDOKh%dAL)YQ!@65rU`@8hZ{L9 zW7({~=knIVqn;|?{N*bM22H-O0wH>(jl+y2=fd+xZ>=8FkU(aqgnfjFdIWH&6(v%vqU(WT%ONCiup+QP6(|c%#S1FP-f0R zq1X`T5olOsIS%L*uawfL!!3a#3jf0RmxwcAF^)eXfUN%CB4UTdo8)@*{}#ZS4?B-Q z-%Vt`QN(tJGIJ41`-hf0lRsgA8Z`w$4>{ueG=UQ^$N1DQTuPb+3Mm!H8_4-wN%k&X6lQmP_h5k z*5*IcBx>Zn#;(-P>(8UN$p!D3(bmEJ&ifKz!baPIq*p7SPS3Qp;n}qPbAh+PN3+IH zq3izbZE9aA`x3dy)Jev{DwE}7-M(e~YYbp);ZE^1blO1h;xTh*;LK?`Dz6;Td>Efm z%t*z#A*_L$FudBr5pO#f(`UU>Sq;PBc0)|;idR?|0ZfKio21I?rEa&4keJrzVs+X3 z<9$1J#zVa2Qvz7t5gnxeVM~hJu81Q%c9x_gyc>_=7f00yRqug)TVe`qiZ;~zz+*Z# zf-ApPTM7|3&=AQJ`;#yy3|4UcRy6(C_+o%p6@14rEwcoshSK(6XsPnHC}z!O<35U# z{XkB)4KQ?OJ1sJNwLBm7&17ifsNzHP*i zjN0q_?W>Zz%D;4|=Klcdcz5}?j`xYpMmDnl2MM=AtsMW6hZm(Z75y)NS%IGM$BIXl ze?vT$1Fb;+e^@bUbQn5v2=ybpG5OZom%?ju>Si5pWYxOY2%+thABcNR!W%=j^<37p zHLq+;vz=WBL|5Opt)CbM)9Y`XI}HFX>Eq8ymV96F1ROxEtpP@FUc0!pvca~>rv1Yx zCU$tI?kXSnY_m2}u|(=`I4)sQ>*ERMfS=)3`h17u^Zpy>t%u?i%F?VbCF`fOpOG%n zy{Mgj?}H?%Okudj`H?tt1*zk}nC20=b-6EKM zvxwkCv5~%2h;|_qYt))bvZ0s?)BJbNM=GuaOS`;V%iL& zP3nlycQLI*AmR?=MQ~~dEXONz>r^Y#LI+jo^PQmB;LrtfVybmAu5bwbhpV#1SV46Y zcmtF%qD(BYQ>}?KB&n8jESLmP45~KWN<^w?Ly)?=UNtH{+aE>EAXUUg_N|&lD&ugf zJ+5=4D=fWz4W*A7Wg}TwVW7r{&>`ArHav90yeXLbBrC$zq!j?_n~65umY=2*oU-R4 z)qCQWUf=Kv$n@3cCTpWPjm4mV!DF!uA54~Jux!+1S&S>wk@$x3!ek8^~bT&t_aH$3PxcVMHY~FkIKB;R2%GQz4zH`{?WuN90 z?jbJt+kXDxd(Gn!%md9*VHnrVT9K}LI5RPfbyS0?ej9f2wi41KSosP0xkbuFZ)C8N zsfOzd!~Lf3n0ji8E38&gr+6&s^F`9Sr-bjTd0358QIa6i(_t3Ef`3l3&F0s(xp#2d zdg0ovd?_wzEp&`#79U(#MuI=dUb7koFRL0GwHP8W14|I2^ijD_=r1G@Noj$JD)0M> zE^Q1YWJ;lI6cd_Z2II&v0e>QyPNoQR;t>VvC5Sm#L)Bj-%a zw;Y|XriXy(qLSLHhA^38t=vE@feFh1ry`*hogej5B@;krek~@6iFu4uUYMxH8e?&g zIs0kAHb3f5|3#<1DmI}i5#>#jAGJOuU2eSl?MHIbw4D6|8I2fb>hy$?1Z6Oqn)1X~ zjL#JHG}4%6j6rl~vu22u83V|;pVcx<@}neGM!aysns}cengZ#7J%L-LW^U{!MNHbp zhG05#<|0}i>_3@W-^FLk7A>WaE`K~S5QuH?ZFEsA&xgSH7;7sliiOyc`o{Y^Z*ED9s@L>RLveg4oP8!Fgo zg6u>CNEtX6JS}7938b7{DD^)mlY#w{GEc^=xvl<4mLZptL~J~TA||h(MZvEqvjskO z@i=1>UM4BxoGdKr=2yF^dX4uL%5pmY1C?&IW-k%6$z=f?3uxy{X+~@380ACA`9oq0 z2gI_oLy_1|+-srx#T&{x!uDA96w2!TnT63tSaW#No0|s3*X^O$C>Y$MHns2jv;k#b zuBVYdZk$0i2<67z)Dfp-!LHCR@=`H$=RrV8@QH=wROskW*j_VF2_~mqQLIUpQmB_= zsfY48d{Qda$QL@*oXr9s%^GRpIhfN0wblYGdrbwwQSA5<-@Zw&Q^n+Fyfr|D;KOjg z2++ZBiwd7N{6yS?+D)v(AQUf3;-0okwZE7UlBL^rOm^~m4$J#l1>O{@d=VQmbQgta zHmWJjli)acmw_Y+UT3Q81Q#Phwp=58u99g7`8{36lzy&TcU#*CywJ+}89{jPR9syf zoifK0EmV1Y%OJs#WKTD2+i{El4JiQ(w(RGw(;x}Lujc?rw75@R12U8Z_H0bdd)Ieg z!0Z~H|B9J7u~jgAhy)9b2Jl)K2M#nSY410|OcKWF>E=4s@Ra{34TA$JrBDMZ1t*W#FO%i4;+GHN%K4|os*VYzI?>Qq3l9c{sGc1tLiMK0K&I-bb%U9pq&tdhrzbj! ze@{$yOBH42-jEYV~i$fn_<;NL5WB%h5lbA!h36Q>YV927&wRjOr z+}c;RWMoZ}y){*-XtlvTs)JiJB%vJ*Xmj|YHGJ6cqT5U{t!D%@B#N9{Q`$chx$DuB z<^4Dm&U-M;OsViv`Cl@1dBA3-js{V=NV4F=XF(`(0BRcS%7c-EYw=~9Z;(KT6R*C>V|FK8GTVxqWZr2-qC{jazn88h+5KPU;}2zW3m97;16FKM{87I|+^ zcxMEtd`(-BMBr7t!}AewXT;`0HdW} bSXxWV3v=sDXp%yhj*WQrh_i?)uaGs_eh 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�<7aQzDAB@0OS0b?Z4%(Hwg`$gI9? z?+b)E?X|a`PNn*V`Kq-1U7N5dHB6Hb&yII`kiq$x?E>8Z39_0lz8Tx+#}g)o7IEN& zJv$s8r%vIExpx#Wtd;1rBiv&=5e6cO2c_Z1_-E9{S=^LqTnS0}_J?9cQnuN5L&&si zd+EB%qD#mg4seQC6>H+eg2zv1=RfbhUTgk|jUGo~^W-@ROSVD>?}bh8SdDr7TRx2s z%JHx(*5mh$JhbY^OzR4jp`=#!Ph5vs5lZ7?s{tg1;T@}wybL@z`Qj}5>SAYk&UUkm~0Vf?^*aVX?2gO0$O1d)gLl7)I%yp;YBUO-T+p)E!; z8mLGq5aV6H5rrq1KpypgKl*G{N-&Zord_m2SUjle@q#_D zA})b5!$+^xM#|=Tde&^-ZrzO%7;$;EgCoK)=yEV`RyDx06!53$E4P+GXot_h-cC5tMvUlyP7)Y`h<%;%WKa zPLtF(A0tL`GgaX0Djvp@P-Ve40mzF*fECuze!7>Ou^Z=tDBE|LRyID2_ZRr7y4Ylu zYozc=R(N3|u0B!f8)hSn&7`%6*D9q#X{L>UsQNR{?GiWqRF&M1!(kpqTcT(N^CaQd zb9cgx<^vAZ&~}OBE@UbzP8$IDR3n-UPvQL2&7;#EgJufE2e;XB=)nRVClekGw9aeLc z&vnT-^6~t8WP^eGeT&*IudCd7hPr9wjPTc zzc0KVxb{sX82MVv6qGcaP0WbTdsf+Q z6h}(UfA5+1xsblv?Q1jsNel8SJn>lAavbo!m^-<$@)Pr0S}tiaJim&RzWE3hXeNx6 zdSN()5zHFM?4?K5c3;y!`e4Nc+7?Q=Wmpg#IjA4=&UE^-C+s8&_iVtGdAt2#ULu** zu?kpCS(CG_q7`wYX@MTZx(z1UqID2swhBCRLM}Gt_L(>*0PF6HbpQYSxDk4N+={&7 z-$En*6%E7zgoT0)E^~{Al9BG*B{FaHm*x7;21o7#0Q4UsgK!oOZpP0%oh)1p|8k~K z0iJBiGN;Hx=aCsY{D0KQZ}_c#B;x=5&0n@As_=C%zNR(ukYS{d^ba9267>7tW9I1c zD}{$D|1mQ|wS$z~VE_Qg`TGBD@LNI1J^#CPnL0WB*I8%RD!jS zD>aEkK<$xz|1bG{@#;)@WaDbcyCv=an*OWP>`34*`TzI)-;n>T0`^!*qAMTL283V& zi2oqvAglR{WXYnhljamcL#WeoW!*3~w{~<7Ngn>dKhNLHL(7ejAX59L!@WfBpJDP(ol2 literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/docx_image_middle.docx b/packages/markitdown-ocr/tests/ocr_test_data/docx_image_middle.docx new file mode 100644 index 0000000000000000000000000000000000000000..200f3c6c796e30a81dba677df629752f48b167b3 GIT binary patch literal 41465 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 literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/docx_image_start.docx b/packages/markitdown-ocr/tests/ocr_test_data/docx_image_start.docx new file mode 100644 index 0000000000000000000000000000000000000000..7855bd16606fd42062bcdc56078629f9f9877b96 GIT binary patch literal 41476 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

F;bZ-j!{PdUYS|uO0>8PN4hH-Ya;E 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 YBsu@CO(lxIZvsX@@K-)RT#UZ{3ob?SRR910 literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/pdf_image_end.pdf b/packages/markitdown-ocr/tests/ocr_test_data/pdf_image_end.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8b020edf69894f3aebd16a54ffbaedd4959b77a0 GIT binary patch literal 7616 zcmdUUS=XvemgfEW6|b`>%A^9$fD9_&i~~-9Ov)@)X4XahfvUT@@88%_vM#QPaP8GcXe^H6LG@#@8b> zKE4^GUrw4vT?qQqpZ?TLe(HLf-ZVo02l54fh5GYHzyAZ`kS{bVu73=NKg{6qE&eY5 zs;0HK$%UCQNHD#BGE>*kz92R*!iO8!U(ntSsNn7Xhd|bR^XuCvwE5`iU!ttA&Hl6U z_bsc*Z2i_1_Ip=u`d*p|6Z%mYeEUy)K}_g{$tKc_tm(x3C)Y67Je^r_z0^#;)GvtI zFw-f~o|u_O-{!q641W|Z-#)vxlYSvE`~`_-V5iPk8^_7toSXWZZGQdu`sLqYp+8L{ z8}8nHd~3t-x3}*!F*W}Ouje6;|1`yMt%IiTMzB%dq8VNGGdL>PASmQb1(U*VC2mv# zjS-EubXNG=py%(Qece1)nPTpN(C(Ee4nC#xeOJZ$Yhd5ol>k2KfrfOy6TUuO2|l2Y$}k!mh6Gn4qw$KU@DFRqSu* zEVuyodOil)`N|#o6r)GUA|&ZPh{GZBvggN}(6~J4D)J^sOcMJih%GK_`h-~4TV;3F z@{e{-Y1n(Y4=*7^n>u88tUX(sF;)gibJ#nvCSYwkL>O5O5t8xsMZ@_DQL2!ReaGt1 z3`Cw!@@yZ<#&C>6omy8IeaeGL&ED?U-Vg_CBc_puJp+3w`-JgsAP4$$PZ~D$q@%TG z$#WJvF||Pw(m{>Z>b~#$gpmr#&WiT04i_+DyUJR%hoB6WL%ch{cQDeg9MAkfJ)Ih7 z`NRi!5}WCQ=K)o#J+YpZ^a}FqhFQ1HZWu3RoqhBMwx!Jm1A3-bdVE|TH2Bx<=5wz` zyWrcwu3fD)<&8Y?Cz>(Ft%y2Rt2WD%Sk&aIwejw{AlFr)TDGYxOIDwYWB;qr`)vV#UUtG^Ksh0pX1y0(wqvaqUn195leGR9z7Dl zKJ)F3{HzG7HN-bViPq}RHp!S8BGz2`h~%jwmK15|jWZ)B>D^yl;eg$4VTIZjuubLV zMUX3La&Hxav{=&Z6>zsEln(dvqp;Z>nz~l(tl7%=ZdHvQi4Y^>O-Q~E)%+Es&TLS1 z;u+8gN4qM0@sfwI{)nx#v^;!Ps6`{k)uEkJEoR1OY8F<754pk~kx0QBs^}eTL-PSA zUTZ1y1WonkPY3)f-s|8DZb1q{Hs^Qj37#AH+4+DW+??@6#ArQx;b_+F^4QC~3kJO4 z_dqwFH0q7{GtS*^B=KmU$7L9O$Ur(AM#YqR`H$Xdm+~7iX==0m!j@gEQ#Xq_Fjy4X zY*t-q&pHPUryFs7xf)D>ch}{4^|S_$z=f2hO^`SuZRy2R(+4O7K-rTLhL7z$ z?BkFJ5bXA_#Ya!sH7#O?`xkjKvmff|C{<=42c*U*aWB~NJXv$v_L?@~!eBZo4a$cF z5ZAf!no>7!;ZWAM-03rLn?y9D-h8*kMx62zpSKE05Afo%rrLEurHOt7OxHH}R0Nfu ztqN~uZ9D_g)x{<^dQ9IdZW)grr-Fk|eQaX9k3n-*`(SkU0G;p73cH%aDg;jhE0Nhc zxKdA};asC%x2`G{4A)kPwm72Iv0o^xV0E_CZ=(lnBG;%F=Q*L`6m0?+hIGn^yZd{n zL|faWY?2z~)`0^yph-2_MBxfr*B8*5&wG1)ijp+ga&Qlj>|Fak{|K|7n%>j63oX}s zb~o1_ij69>hZz@Og!wL0!v|zQ(LU`h6huRf_O9$#29?cS`+yoo;35T z82zDnn;5pldkOC(%4!7H%VKbMaH03~>t(2-7x#O`zpyJuL-)Yr41zP1po=Uu+u(I! z2pq^*o*f?6{a{4Lb`{CX-F8Bt%6utz#a+(c^Sbo7)oN=@*gEQ)o;UWD)#*uCxKz!z z6k@cmv(2n~c7jdp=k;u-+>Wn_d}VuXZi>s4y%(8)$Mq0>?F9)a-ucDT=`I^vxy{A$ zuIXPr{IGVQ<%{AT!TZWf`0Luj`nd?MIo`24>cJJ(nfYctX_Xf_N%ba0F|2zJ7cJfM zU=0cA{sljUJEckV3BjTaA^yk}0`=DAq= zbPNrSZY;#=og%}Y(^;rIW+O`&d-Xwc0TjViA-!JEg0!L^H_wS4Ma2ZhchdYE_g!vt z2bta8d?=MRz_ql?dl-fvqw(^YZcQUrX|2>1Vz)O{sD1xFJ0iksPW2kTh%ImSvy=TTt2SD(_(f5R&aW-Hk<94fH(JAAl?wqf1J5jS_LRz!WAdEZPzM6#N}9| zdX>%5Dk$!@<|qqkdR~Cxp+g8luENWYiObeRPI8+|v_D5VTr{`K+s@mz3R-?yxK!zP zqJYA2TvL(+xFwWj87f}hHO~D2s}FD|FvC|ZBJro5uQuA(GX*j8#qiPr*j%NI-sBw) zPB=r?Y#Z~6;M7~LH!HV3s;$Cm>GaR5}oC zw{R&#yfv0pWn8$1TE}b5;%Sqo!Na?|zh&ug-aOqKei6)3d2!fHN6S%Lt@qmS{Na~( zvcah?O?chZH!et(XnpdzMP;~!Ar|Y!;X{1r)7d0Gmg!EL8f|1XC3>~qv|icy$_eSS zZVtUJ+|zNo#qrVS>W}HcAy|KbD(|N@S7Og$g%zCo(SV z)Sm7lZD&vkpN9h#ugm7qIijPt)>&Tosa4E_ui>fQ>?Z?X@|32NF(dF-n3e z=DR_QK$$pEH@Cxb`_F3H-tVIUdn!8B!_*sDyBB|KN@?4w+Xw=`iv7EF1J~<9fDCU? zDW&8C4CxnLyI$zy`Ic)l>iJ{Dsy=&Fq=h%j4dR(5RpzI-E9Gfagw2t^Cqva91U}bbqYI;lMchyyekHWmFr_Oz_rB=^8 zg##naboMHF@klRKl_URDJ{$RbRkSWHDX~3&3_1Wnu7`b@rq)b(=+-K&IZ>Jp3PW~Q zou(4dU++HMG7aQRE4POi=&O9#@T#zB`E_sOt(a&8M2TBNY>T z*5eh*Uj7+NC;j;Ff@(wD4!{CwH|yNva9v$T(`ZziUV0D3Gi_Y$5}vUlr_A#Kk7xuC z!22W?DOqxBbkBinOg>=D#aR}{6@XpLB^^(w{01&9s_)$jJTIqm6AjG5QJyQD*&vD@ zbMC+=W{axYE3M;io{s>FMM@SUT-N?IXyu;rda8lp8An8BIe<#fGL@QzY8N4#!o?Am zJ_cW|*Bc10a!n2&vD#;TNkaL?KaPaLas7+N_xqoQrNh;G#DO<{Uf?!VS(|EEmQqM} zu(WpgZAG`_LfRd(IGNM0-617$D|$avl-rG^{bNB;_n>p0gm`ZtQoV(naG#^P?oW?? zZ+Tl38oddH3(hGCvTs>ui?9&!?0D)Olk!e>5`SGeeD=AH8cy@Q2UMQs;voWTC%O47 zl7!30+Sy&F+LHrh&;{PDZT%=Uu4LGnH1$UWCFhVo;ee9qig#LpB#ERLr35tT-xGTj??^0$BbFDpHz;(Zohr{4W&C&RiU=sZ3bdl zK25pN8+jEEl#&PpKsC3ul{}r6)uL5!W&|5~G@PhI40IavDK+VK^cM*38Yf^ZFLYSX zV@FPG1AZg_9OXB!y46QcE6a!Q^w!JYZ|A9p-X6Y%Y!QiBYTGU_n9QnyBLe-6JQNtN z;?0l8{DM)SHcC%cny*z8F2}-)_GX=~PbOa-7t93&hNOx<>n*SPzUr^)b(g2x%QWT(1(y8FH+PFNisEJ+|cPNgBo%yKBA%|*qPKWdcgGsA9 zJF~>+xd+Y4R(yCj9|Se4t<3Ai2AQR^z-wo#n!g+m397f%AgJG^p6?C!ouc=6%fMzQ zEpp9rs|6Q6P0BdDd#&bXT%nEJrm}z4#}L}a<=F?TL~C;(-Nw1rvpQXq46u=i0^2%Q z&|M)r*4_fvd{sP;)eQB$ySyso#sxO=jozFut3zLYsx#w;m8g$`KGu9NJ+&us=yu1e zfM0-}+T86&h2ryk=ZaQSZm6+?p=1G9wo^wAq*$NhPtUb;n?a2dMJ;DY<0|2yAZULo&Tl^4R~C?7cMQ* z8ApQz^`>|JwZ+Tz!#*gjlnOISy5rJGB$a2qS4Qq8xJyPeV<{KDfr{JyI#z*D<;OvB z(gPYX{`vTITR69Pl?kDv@WKimT{e)!aGxatr^@W$m3%xj0ZUVM+>+K&scC##5;_Lf z9*k>F2{>=A!=d!Lt`0+#MU{1{$pOydb?;c zFaj=fIPS<|zKyMhzQ*URdZBlHh|8jKil|P0<%8LD>^|&qo{q9p{V->=v#&XrsrC{z z0b)c|4hkIijt;zVJMY<9Zz{DqpT)N}O9#92!{DYbo16#4$dArXqmuOA<+58W=g3dg zt__p1rMLJ2-{>)U=f=Gt+~2>-!=Zd{sqZHhFxUrrsdX)`Oh0^hGiLeTqNv}=sd4pJ zAwHdsF067|7jk-&N9VPbVwjB;_TGpqS~~U9aa>%!y6M3-uVKVR#nGUiXJnav&AQNf z1XNq~3+aiw($ZN;&TciL;$Epdm!bx;pw1xC#;ABBNW1QHuLZ@$6bRX7PW$x7%JZ>U zfvz1V)BE#d*x|^h`f`bcSKz6JR>|s&AGXdxO*%}UH!aD(4L;bP5boL{?PJi%j^YJK z%B_XXE8tqtD31GdX|0s=PZ!w=N2k(6=3t~f4-!5tw?SkbM!IIa|I}FKw?L(-1=yB5vH&yY{=uSzgTZ*>UM|UO@av5X~A;ZCZ}xT8)@&3 zVWBzId zOx@n8M(4ZpS4fOmu3a&&twO+A?~z|yL>_w@iG6Wd8w-L`h^FA7Oi)JNPV*qxEF$FO zc0Uk61#GP2Rkp>(3*+@#v~hCeBYZ>3mz-%@TZ8AmgB9s4)5dlMWl(&3Akn-(3&}QJ z%672%E@+YmL9miD#{nNECSFpz1PsXn`psLk1|C5 zH^hFK0r?Dc5hS8NQLi#+S#!F80TLp2}VmbFSLKN(fQ2=^+}yD z`KoF`82rT#KW`voB{DW3b;Drt?OAowMPal9BWMS~vnR9;BNZ5~{L=ew{2x@!chp2z zPqgGOUyZMSpk}g0bMr5M3X{kCtC|%u@Bgb#vRCr>7#SP#Kk4P0@W=?7pHxTn6TBnS za4pw-WL<9E)XPTo3DWO}pOQq2qKsUEIL&+i9_#Ng{)#mdW-YR50?pmbclGOg9Gw#2I_PAt;ilU4_DKUuT)}WV&`-9S%bHpg3LfITlEIP`oV7+jx@A0`QUX-D! zI>sZ<-Z-1an@6X5)BJO;_etJS`hH1!Tb_Z_XR&`PLa(?LbK9Um`*FVPlx~C8=+%5S zr=C6;R=V_6UncLw>-P3;sf(TSOL$kDk7}0#YP_pOyj<*={-7)-f&(NpkxUjRBdmMz_S{kM~Qi~jvb&^u!7wEa`;cOz@HP-`T>8DKj6PzU!8UvYkyf^ zf0NE!E&+9xbh!%zYtFb&mp6UI;zGh3vAVVGg!L~Hn8Yg~Smeq&7S|C}*x zG`=2gmLSrv>i>;A1%CX1GT=7+`c4w-A6b41)35KOlRaSt2|D2p!lKy-Ncox1N Kr4qZ~e*ABhm#u>U literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/pdf_image_middle.pdf b/packages/markitdown-ocr/tests/ocr_test_data/pdf_image_middle.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d90bc9d3edf3834f7e141f89ff0414e17ba0cdd3 GIT binary patch literal 7291 zcmdU!+19Gga=`Dur*J?;K>-y|P*GIG89@YbViZvjL_9+-@&d_S?(?kS+vmT}*=NW) z$z7sr3Ef>?U0vOj&94f=h^u0?##iA#{{7$nGb1`t7$*zE%uJl86B~(RXHtob9a^8j zc_x`#l0+1O{Qmd9uf;!PeZ#C-Veo}z&`fCFzdD^Sgu^oRv?zY{dSA}d{;vKm|7>QB zx5I_0GK6>h-#LkA85v~!v_ji^x*0_Ao`dJx`%A^j2%OBfQbhWg$seP%uuXr{^7kce zNp<})RO8p7yyPu7@h}Xc@cC_jD}xL}Ka8cwu+pw0=Xajvh!Zx|;`xaaXAT);APuL} z7Cv%Pi@w$SsT+PPoW5=L+*^{tP&9)qoTr=IGI$gH)wpS3xK8FP^V2?cZQdO#ovz~9 z-_j`hZS6aW9V7Ufm^tJzjoXuH-r4tQHhn4m|G9FVpj>kg(T}NeZV^Uad*o;Y^hJ%3-{8bBjR)oSltQm!jz1 zTJAJ;n9YZGO0Ew!9f|0#a3#E$Y~eJHU&6u&o)5vOt*7zDeTr;eeqPC76Smw|@7&|! zkcB91at|x-GBVY3z1C?b92*eKfap1Rl;_uFwjVY&d9jbY=g3wN8lJd=C?>0x>}jhW zMkEZG>a|maSL{;1cv$^_8|_+PTAr}zxWEDGbt?~#A5~}E-QYZf)f)^}qutvJ*^-3>`&qei z$dy5-U0)6tV8a-x?8hJ6N>wr-t4?xB9ksTjVa-;}8&~yGyg{hihq=s!KKJDwFr;N$jKiZNvYy}{`d zaLDvBgjC?sEup+e*8#k=d*pX!c(+uhU-IkG zkb=>ns8fwWz>J*NEye(h-DzqcN})~Je2tD|I?D0j7eUDU^Lau*a{?N27VD_0+swEVeEDC_JlKyU93 zRjojZ8@*m+ylxLTepwY!Ypc+tmu2i>jr-~+5A1iIt$qj|68ogRh3L|JZaIYPL zdexdXpt#7gB3@=TnMJcpi?m@vbRS!ljAGdlZ)&dtL)9_AdYIIC*ySInR zYdCWc416!6=J-+b032q0cSJ82t6F2*#kTsUj&CZX#}X*GwhMyQi=zA1Fgs%|98Y$x z$!>ER;yAwJO3bQMuqfVPuYk0rvW-yCE6|o*62ux~V_mCs$6kIM%?5+V^D~{A^Xiiw ziCPKiJaJcl{_T!X<4g2%H+ikReM`oRp)a@mAYOGqUD32|A@Dly zF<*8&x!2N&+DAoQ_w<5Ba8i|>EgKK?&K9_WJtW)yRO+-|=F?+MiCn+E1wP}p5J8&R z@d`Ym^J5QK<+prXp`!iB;2zD|@StC@Xz6gs!@mi+2_c!UGg4L`3`T)xXIjdlm0@>L z=10YwdAMA9PNQ)!hgHFER;H`SEMdM`-MR=Hq1$nfv2)wmwYe4?4PUO>$L(Sq?ZrC$ z^lp4SE}?C;mX$Y!`BN!uH=Yc3RwdW}mh6+sKfP!_ho%qq^C$$YaBAP&tXK(d+p#xE+ zZez+plTXr8(^++K7?+XqS=tR=^tsx_5qh$%1=|606&Y zgK}?Lciy{MwN+P9VRwOVx1kFJgGCT#NARPoGVOcajDcI~^KPufeidXuSDLz7iK! zwF`KinA`4hIlKZjvy0}WS+!*4&s79q*m>QZz`Mop-Bo>EE3*MT*U4&g*3wCylez$= zF2mghL!k95cjri}@~GaPD|;qhJMD|vd&B@FEFX-e*6aBlK3~lw$<8m8su&62s6j%T zz}32v8!zn}fT}P;H~eK(qb8BZ-HPXF3+iThK#1AN_=7|@5gK5p$7jES{QRdo&&DNQ zn4OMTF3kK5eJ*Sk2LY|!unsgs;DEjIG}sM&26 z?nY4`m>u~NR4&%^N|x%c%a(V{dT#uvN|B7*>r7_=SkgUU6JeK|k&|QVMZD!_r8u*? zs<0`K(aEgowqU$`^^zyBgibm5)G4+1#UuIdiCQ<^HmiQYY}OW{Ry28@d#v0ufJu*C zzGLg1KE4?YvuZMY^s~xl2yC^nh>RMq+!c)a4dJ1EUeeB;^{J;p<#_AWdwp6CJ$aQe z;*bWHK%F1??B_gQ`eIR0^DvtpBucunv^Va$zx&kSCjB~`P7PW>pG)h~??tuEKM>uF7zWlRDUTGy=~bZd6(o`&&jSOoY1W&Bi0TSziHT z+SCCdsLo5*MoZpqIdOm9V;z0xl(-dQQ^7Jo0s%mGz_imN3%0unYzNVUT$mf{Ou7ey z)sZ3zj#5P{Sx+!^fIf*BuD|lcVmiPz**EdG7wmmeqwtncwv8rj|} zchT!m0pTYReZ&FazJbJp`<`z7-1JzG!ho0CzB{QqO3~7U!7>}-qe=elze;me?P;~; zd5@y&wH@y9sM|WV19pE}xV1x7=&efwv0XaIt&95c6mTpiPoiFFMngltUazSltZ>a{ zo69*E&0~^m6;J8g5{XYaZKJebx%>e${NtLgmU_(*a0fdvEvv$O*?gIXc1{N zV;GZimABnr%y+x&Vc$m=UThHs8#-T{Gdx(bpl#ALh3WCa;*snHCmRP)Y19b3aM<)d zy=-;`p8M`g(Q`!1Sk)150TZo})C%$d;xPL(dIi zbGzY~n|p`%G2O}K=S8`^Z&VrjZneSD?LP6>^`$i!GYZ;@dts}f6q^gpB34DYjX5<6 z#CSPipRKn@LS?*MDF(w%*=F^N(QiZ)P3)eh>d0=y(tbJCsAbi7e%8s%^(Jq!o4)ok zOpi%?GCeUM*2T|`X0Q==gYk|u)Kj{w&bcm)>$_G&6+yvx^!nPW9vs`Cg^b78n4To> zUIY+R?{X?v6nTKjqgEN30oTiCpZ#3b7CR*!U7v5rDBzcc%A6M5wK8N4kRnI8f!D+ZC z1?GD9@uw5ti$B=h6sCRra~G^nb4QMkyb<&dM7z`-+x_4U1xg$a7sF)S=x~)RQ&yV> zoAn=*F(9)WY=0xSC!yhRGv*jN$XTd@oamea)w*?bZ!{vb|6rVx{Um z*1$l&%~ydw)mjiD2&YW|#(lDL#MJS4e%Y~SGJWA$2U4pYIOr<^_VqXD)~W<T7M6>?HKqu-d(~&Jw#^NiNoLt|)aZ^c!)vJbxFH>n+y_ zLB2g1&BehmbY$-e>({zDj##gh%Zg2Xx8P6kd>qcSl z9+;_m_w+pNWm380>YN}}v>+{?@$t*&XU*jyg!XJkAr(x)5n;HHBPT3J6Y7Ft6fUMwayh zJs{dLTwuuk|31Up$CBkWl2vYR=l->qg5%#1>2Cl)yPipLtzg98+?V{5oans6Pi#5w%nwfe4WYlm zb*e##LrZd!Z~prYypgT*hm_d<{M4_pyIt=1`)#~1RGs-u1PtycHfIIkkz9Yx-uAXD3LvFpqPiOUc zCf_$dYGNab(i8{68UFiMUw^ytr>}=$+9Ta2$lOb9KV-i5q4>Q8{^aBze*eYA-#hYW z*Z*lw;kP_O18aUO`k5Ip;;?gp3-JSt&4fkD9Bgy5{jGn4%qA`>uY)%+W9-G|^YPrC z1uJ&ba&?rEKb`b+_+U6HtO`qHiM`JIFl%=TqtSzcgMmYd%YE}G5n1BWHsG-ozWAJU zTZqKWYpIY3-IC_}_B2S$SD5&=vT7&;MWOa=mfc;>IZPV5~1HEQYzK6+rUt98KC-lAK3clpAZ-Vezb>fzwWFIAmM??k!F z&2WwutlgGI4y3&AwRd{rAHqc1&o+uOv)PG4ZJd0iig=qcjozH~Ywh}seUt|3lCq|L ziOrS8!|Ij)2chE+v2*=GGwm<*&z}r|;|)A>&HTBJOrOs0Pv-gOIt)!0`)}&%SQ;_@ zx(;ulf7h2l@%G=!rC}-ESbyD@Xx9I}Z?l!=%YMowvElhn{3EkA9c8`_oo3r2>ZsMU z+bxX148yb?48JyT(=iFOZKJ(^E^+!Q{F3Z*|8cUfTFuyA8dZ`E_}}II%3oi|^mz?4 p-;qW9N`qRMWWFO+dM|nZ;-o(Rv7?PR`LPH@t3`Yj3gb2R^RQ3P> literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/pdf_image_start.pdf b/packages/markitdown-ocr/tests/ocr_test_data/pdf_image_start.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0b57b7f96bd08a76759f7b510563540f9faad1fe GIT binary patch literal 6546 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 F{{S9LZpQ!s literal 0 HcmV?d00001 diff --git a/packages/markitdown-ocr/tests/ocr_test_data/pdf_multiple_images.pdf b/packages/markitdown-ocr/tests/ocr_test_data/pdf_multiple_images.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8a5e47416812f7bba8250ca69c0202e6ac1aa16c GIT binary patch literal 10815 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