epstein-files 1.0.7__py3-none-any.whl → 1.0.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,7 +38,6 @@ TIMESTAMP_LINE_REGEX = re.compile(r"\d+:\d+")
38
38
 
39
39
  SUPPRESS_LOGS_FOR_AUTHORS = ['Undisclosed recipients:', 'undisclosed-recipients:', 'Multiple Senders Multiple Senders']
40
40
  REWRITTEN_HEADER_MSG = "(janky OCR header fields were prettified, check source if something seems off)"
41
- IS_JUNK_MAIL = 'is_junk_mail'
42
41
  MAX_CHARS_TO_PRINT = 4000
43
42
  MAX_NUM_HEADER_LINES = 14
44
43
  MAX_QUOTED_REPLIES = 2
@@ -289,9 +288,10 @@ SELF_EMAILS_FILE_IDS = [
289
288
  ]
290
289
 
291
290
  METADATA_FIELDS = [
292
- IS_JUNK_MAIL,
291
+ 'is_junk_mail',
293
292
  'recipients',
294
293
  'sent_from_device',
294
+ 'subject',
295
295
  ]
296
296
 
297
297
 
@@ -352,7 +352,8 @@ class Email(Communication):
352
352
 
353
353
  def metadata(self) -> Metadata:
354
354
  local_metadata = asdict(self)
355
- local_metadata[IS_JUNK_MAIL] = self.is_junk_mail()
355
+ local_metadata['is_junk_mail'] = self.is_junk_mail()
356
+ local_metadata['subject'] = self.subject() or None
356
357
  metadata = super().metadata()
357
358
  metadata.update({k: v for k, v in local_metadata.items() if v and k in METADATA_FIELDS})
358
359
  return metadata
@@ -205,12 +205,12 @@ NAMES_TO_NOT_HIGHLIGHT: list[str] = [name.lower() for name in [
205
205
  'Carolyn', 'Chris', 'Christina',
206
206
  'Dan', 'Daniel', 'Danny', 'Darren', 'Dave', 'David',
207
207
  'Ed', 'Edward', 'Edwards', 'Epstein', 'Eric', 'Erika', 'Etienne',
208
- 'Faith', 'Fred', 'Frost', 'Fuller',
208
+ 'Faith', 'Fred', 'Friendly', 'Frost', 'Fuller',
209
209
  'George',
210
210
  'Heather', 'Henry', 'Hill', 'Hoffman',
211
211
  'Ian',
212
212
  'Jack', 'James', 'Jay', 'Jean', 'Jeff', 'Jeffrey', 'Jennifer', 'Jeremy', 'jessica', 'Joel', 'John', 'Jon', 'Jonathan', 'Joseph', 'Jr',
213
- 'Kahn', 'Katherine', 'Ken', 'Kevin',
213
+ 'Kahn', 'Katherine', 'Kelly', 'Ken', 'Kevin',
214
214
  'Larry', 'Leon', 'Lesley', 'Linda', 'Link', 'Lisa',
215
215
  'Mann', 'Marc', 'Marie', 'Mark', 'Martin', 'Melanie', 'Michael', 'Mike', 'Miller', 'Mitchell', 'Miles', 'Morris', 'Moskowitz',
216
216
  'Nancy', 'Neal', 'New',
epstein_files/util/env.py CHANGED
@@ -4,42 +4,44 @@ from os import environ
4
4
  from pathlib import Path
5
5
  from sys import argv
6
6
 
7
- from epstein_files.util.logging import datefinder_logger, env_log_level, logger
7
+ from rich_argparse_plus import RichHelpFormatterPlus
8
+
9
+ from epstein_files.util.logging import env_log_level, logger
8
10
 
9
11
  COUNT_WORDS_SCRIPT = 'epstein_word_count'
10
12
  DEFAULT_WIDTH = 145
11
13
  HTML_SCRIPTS = ['epstein_generate', COUNT_WORDS_SCRIPT]
12
14
 
13
-
14
- parser = ArgumentParser(description="Parse epstein OCR docs and generate HTML page.")
15
+ RichHelpFormatterPlus.choose_theme('morning_glory')
16
+ parser = ArgumentParser(description="Parse epstein OCR docs and generate HTML pages.", formatter_class=RichHelpFormatterPlus)
15
17
  parser.add_argument('--name', '-n', action='append', dest='names', help='specify the name(s) whose communications should be output')
16
18
  parser.add_argument('--overwrite-pickle', '-op', action='store_true', help='ovewrite cached EpsteinFiles')
17
19
 
18
20
  output = parser.add_argument_group('OUTPUT')
19
21
  output.add_argument('--all-emails', '-ae', action='store_true', help='all the emails instead of just the interesting ones')
20
22
  output.add_argument('--all-other-files', '-ao', action='store_true', help='all the non-email, non-text msg files instead of just the interesting ones')
21
- output.add_argument('--build', '-b', action='store_true', help='write output to HTML file')
23
+ output.add_argument('--build', '-b', action='store_true', help='write output to an HTML file')
24
+ output.add_argument('--json-metadata', '-jm', action='store_true', help='dump JSON metadata for all files and exit')
22
25
  output.add_argument('--make-clean', action='store_true', help='delete all HTML build artifact and write latest URLs to .urls.env')
23
26
  output.add_argument('--output-emails', '-oe', action='store_true', help='generate other files section')
24
- output.add_argument('--output-json-files', action='store_true', help='pretty print all the raw JSON data files in the collection')
27
+ output.add_argument('--output-json-files', action='store_true', help='pretty print all the raw JSON data files in the collection and exit')
25
28
  output.add_argument('--output-other-files', '-oo', action='store_true', help='generate other files section')
26
- output.add_argument('--output-texts', '-ot', action='store_true', help='generate other files section')
29
+ output.add_argument('--output-texts', '-ot', action='store_true', help='generate text messages section')
30
+ output.add_argument('--sort-alphabetical', action='store_true', help='sort emailers alphabetically intead of by email count')
27
31
  output.add_argument('--suppress-output', action='store_true', help='no output to terminal (use with --build)')
28
32
  output.add_argument('--width', '-w', type=int, default=DEFAULT_WIDTH, help='screen width to use (in characters)')
29
33
  output.add_argument('--use-epstein-web-links', action='store_true', help='use epsteinweb.org links instead of epstein.media')
30
34
 
31
35
  scripts = parser.add_argument_group('SCRIPTS', 'Arguments used only by epstein_search, epstein_show, epstein_diff')
32
36
  scripts.add_argument('positional_args', nargs='*', help='strings to searchs for, file IDs to show or diff, etc.')
33
- scripts.add_argument('--raw', '-r', action='store_true', help='show raw contents of file (only used by scripts)')
34
- scripts.add_argument('--whole-file', '-wf', action='store_true', help='print whole file (only used by epstein_search)')
37
+ scripts.add_argument('--raw', '-r', action='store_true', help='show raw contents of file (used by epstein_show)')
38
+ scripts.add_argument('--whole-file', '-wf', action='store_true', help='print whole file (used by epstein_search)')
35
39
 
36
40
  debug = parser.add_argument_group('DEBUG')
37
41
  debug.add_argument('--colors-only', '-c', action='store_true', help='print header with color key table and links and exit')
38
42
  debug.add_argument('--debug', '-d', action='store_true', help='set debug level to INFO')
39
43
  debug.add_argument('--deep-debug', '-dd', action='store_true', help='set debug level to DEBUG')
40
- debug.add_argument('--json-metadata', '-jm', action='store_true', help='dump JSON metadata for all files')
41
- debug.add_argument('--json-stats', '-j', action='store_true', help='print JSON formatted stats at the end')
42
- debug.add_argument('--sort-alphabetical', action='store_true', help='sort emailers alphabetically in counts table')
44
+ debug.add_argument('--json-stats', '-j', action='store_true', help='print JSON formatted stats about the files')
43
45
  debug.add_argument('--suppress-logs', '-sl', action='store_true', help='set debug level to FATAL')
44
46
  args = parser.parse_args()
45
47
 
@@ -52,6 +54,8 @@ args.output_emails = args.output_emails or args.all_emails
52
54
  args.output_other_files = args.output_other_files or args.all_other_files
53
55
  args.overwrite_pickle = args.overwrite_pickle or (is_env_var_set('OVERWRITE_PICKLE') and not is_env_var_set('PICKLED'))
54
56
  args.width = args.width if is_html_script else None
57
+ is_output_selected = any([arg.startswith('output_') and value for arg, value in vars(args).items()])
58
+ is_output_selected = is_output_selected or args.json_metadata or args.colors_only
55
59
  specified_names: list[str | None] = [None if n == 'None' else n for n in (args.names or [])]
56
60
 
57
61
 
@@ -66,14 +70,10 @@ elif not env_log_level:
66
70
  logger.setLevel(logging.WARNING)
67
71
 
68
72
  logger.info(f'Log level set to {logger.level}...')
69
- datefinder_logger.setLevel(logger.level)
70
-
71
73
 
72
74
  # Massage args that depend on other args to the appropriate state
73
- if not (args.json_metadata or args.output_texts or args.output_emails or args.output_other_files):
74
- if is_html_script and current_script != COUNT_WORDS_SCRIPT and not args.make_clean and not args.colors_only:
75
- logger.warning(f"No output section chosen; outputting default selection of texts, selected emails, and other files...")
76
-
75
+ if current_script == 'epstein_generate' and not (is_output_selected or args.make_clean):
76
+ logger.warning(f"No output section chosen; outputting default selection of texts, selected emails, and other files...")
77
77
  args.output_texts = True
78
78
  args.output_emails = True
79
79
  args.output_other_files = True
@@ -82,4 +82,4 @@ if args.use_epstein_web_links:
82
82
  logger.warning(f"Using links to epsteinweb.org links instead of epsteinify.com...")
83
83
 
84
84
  if args.debug:
85
- logger.warning(f"Invocation args:\ncurrent_script={current_script}\nis_html_script={is_html_script},\nspecified_names={specified_names},\nargs={args}")
85
+ logger.warning(f"Invocation args:\ncurrent_script={current_script}\nis_html_script={is_html_script},\nis_output_selected={is_output_selected}\nspecified_names={specified_names},\nargs={args}")
@@ -2,6 +2,8 @@ import logging
2
2
  from os import environ
3
3
  from pathlib import Path
4
4
 
5
+ import datefinder
6
+ import rich_argparse_plus
5
7
  from rich.console import Console
6
8
  from rich.highlighter import ReprHighlighter
7
9
  from rich.logging import RichHandler
@@ -43,8 +45,9 @@ logging.basicConfig(level="NOTSET", format="%(message)s", datefmt="[%X]", handle
43
45
  logger = logging.getLogger("rich")
44
46
 
45
47
 
46
- # Log levels
47
- datefinder_logger = logging.getLogger('datefinder') # Set log level to suppress annoying output
48
+ # Set log levels to suppress annoying output
49
+ logging.getLogger('datefinder').setLevel(logging.FATAL)
50
+ logging.getLogger('rich_argparse').setLevel(logging.FATAL)
48
51
  env_log_level_str = environ.get(LOG_LEVEL_ENV_VAR) or None
49
52
  env_log_level = None
50
53
 
@@ -57,7 +60,6 @@ if env_log_level_str:
57
60
 
58
61
  logger.warning(f"Setting log level to {env_log_level} based on {LOG_LEVEL_ENV_VAR} env var...")
59
62
  logger.setLevel(env_log_level)
60
- datefinder_logger.setLevel(env_log_level)
61
63
 
62
64
 
63
65
  def log_file_write(file_path: str | Path) -> None:
@@ -105,7 +105,9 @@ def print_emails(epstein_files: EpsteinFiles) -> int:
105
105
  if args.all_emails:
106
106
  _verify_all_emails_were_printed(epstein_files, already_printed_emails)
107
107
 
108
- logger.warning(f"Rewrote {len(Email.rewritten_header_ids)} headers of {len(epstein_files.emails)} emails")
108
+ fwded_articles = [e for e in already_printed_emails if e.config and e.config.is_fwded_article]
109
+ logger.warning(f"{len(fwded_articles)} of {len(already_printed_emails)} emails were forwarded articles.")
110
+ logger.warning(f"Rewrote {len(Email.rewritten_header_ids)} headers of {len(epstein_files.emails)} emails.")
109
111
  return len(already_printed_emails)
110
112
 
111
113
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: epstein-files
3
- Version: 1.0.7
3
+ Version: 1.0.9
4
4
  Summary: Tools for working with the Jeffrey Epstein documents released in November 2025.
5
5
  Home-page: https://michelcrypt4d4mus.github.io/epstein_text_messages/
6
6
  License: GPL-3.0-or-later
@@ -23,6 +23,7 @@ Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
23
23
  Requires-Dist: python-dotenv (>=1.2.1,<2.0.0)
24
24
  Requires-Dist: requests (>=2.32.5,<3.0.0)
25
25
  Requires-Dist: rich (>=14.2.0,<15.0.0)
26
+ Requires-Dist: rich-argparse-plus (>=0.3.1.4,<0.4.0.0)
26
27
  Project-URL: Emails, https://michelcrypt4d4mus.github.io/epstein_text_messages/all_emails_epstein_files_nov_2025.html
27
28
  Project-URL: Metadata, https://michelcrypt4d4mus.github.io/epstein_text_messages/file_metadata_epstein_files_nov_2025.json
28
29
  Project-URL: Repository, https://github.com/michelcrypt4d4mus/epstein_text_messages
@@ -34,17 +35,18 @@ Description-Content-Type: text/markdown
34
35
 
35
36
  ![joi](https://github.com/michelcrypt4d4mus/epstein_text_messages/raw/master/docs/joi_ito_gavin_is_clever_epstein_funds_bitcoin_dev_team.png)
36
37
 
37
- * [I Made Epstein's Text Messages Great Again (And You Should Read Them)](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great) post on [Substack](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great)
38
- * The Epstein text messages (and some of the emails along with summary information) generated by this code can be viewed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/).
38
+ * The Epstein text messages (and selected emails and other files) generated by this code can be viewed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/).
39
39
  * All of His Emails along with descriptions of the 496 files that were neither emails nor text messages can be read at [another page also generated by this code](https://michelcrypt4d4mus.github.io/epstein_text_messages/all_emails_epstein_files_nov_2025.html).
40
- * Word counts for the communications are [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/communication_word_count_epstein_files_nov_2025.html).
40
+ * [Word counts for all of the communications](https://michelcrypt4d4mus.github.io/epstein_text_messages/communication_word_count_epstein_files_nov_2025.html).
41
41
  * Metadata containing what I have figured out about who sent or received the communications in a given file (and a brief explanation for how I figured it out for each file) is deployed [here](https://michelcrypt4d4mus.github.io/epstein_text_messages/file_metadata_epstein_files_nov_2025.json)
42
- * Configuration variables assigning specific `HOUSE_OVERSIGHT_XXXXXX.txt` file IDs (the `111111` part) as being emails to or from particular people based on various research and contributions can be found in [constants.py](./epstein_files/util/constants.py). Everything in `constants.py` appears in the JSON metadata linked above.
42
+ * [I Made Epstein's Text Messages Great Again (And You Should Read Them)](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great) post on [Substack](https://cryptadamus.substack.com/p/i-made-epsteins-text-messages-great)
43
43
 
44
44
 
45
45
  ## Usage
46
- 1. Requires you have a local copy of the OCR text files from the House Oversight document release in a directory `/path/to/epstein/ocr_txt_files`. You can download those OCR text files from [the Congressional Google Drive folder](https://drive.google.com/drive/folders/1ldncvdqIf6miiskDp_EDuGSDAaI_fJx8).
47
- 1. Dependencies are in [pyproject.toml](./pyproject.toml). Use `poetry install` for easiest time installing. `pip install epstein-files` should also work, though `pipx install epstein-files` is usually better.
46
+
47
+ #### Installation
48
+ 1. Requires you have a local copy of the OCR text files from the House Oversight document release in a directory `/path/to/epstein/ocr_txt_files`. You can download those OCR text files from [the Congressional Google Drive folder](https://drive.google.com/drive/folders/1ldncvdqIf6miiskDp_EDuGSDAaI_fJx8) (make sure you grab both the `001/` and `002/` folders).
49
+ 1. Use `poetry install` for easiest time installing. `pip install epstein-files` should also work, though `pipx install epstein-files` is usually better.
48
50
 
49
51
  You need to set the `EPSTEIN_DOCS_DIR` environment variable with the path to the folder of files you just downloaded when running. You can either create a `.env` file modeled on [`.env.example`](./.env.example) (which will set it permanently) or you can run with:
50
52
 
@@ -63,11 +65,11 @@ epstein_search Bannon
63
65
  # Or a regex:
64
66
  epstein_search '\bSteve\s*Bannon\b'
65
67
 
66
- # Show a file with color highlighting of keywords
68
+ # Show a file with color highlighting of keywords:
67
69
  epstein_show 030999
68
70
  # Show both the highlighted and raw versions of the file:
69
71
  epstein_show --raw 030999
70
- # This also works:
72
+ # The full filename is also accepted:
71
73
  epstein_show HOUSE_OVERSIGHT_030999
72
74
 
73
75
  # Count words used by Epstein and Bannon
@@ -77,7 +79,7 @@ epstein_word_count --name 'Jeffrey Epstein' --name 'Steve Bannon'
77
79
  epstein_diff 030999 020442
78
80
  ```
79
81
 
80
- The first time you run anything it will take a few minutes to fix all the data, attribute the redacted emails, etc.
82
+ The first time you run anything it will take a few minutes to fix all the janky OCR text, attribute the redacted emails, etc. After that things will be quick.
81
83
  Run `epstein_generate --help` for command line option assistance.
82
84
 
83
85
 
@@ -98,6 +100,10 @@ for email in epstein_files.emails:
98
100
  for imessage_log in epstein_files.imessage_logs:
99
101
  do_stuff(imessage_log)
100
102
 
103
+ # JSON files
104
+ for json_file in epstein_files.json_files:
105
+ do_stuff(json_file)
106
+
101
107
  # Other Files
102
108
  for file in epstein_files.other_files:
103
109
  do_stuff(file)
@@ -2,7 +2,7 @@ epstein_files/__init__.py,sha256=w68EUhAzri8a_c9HggKMfoHTvPbVAO-u3NuHVizDc7U,494
2
2
  epstein_files/count_words.py,sha256=i1pYaQzX7b9S3pyV3RM_8asbQJ1PEk8wJgLOG6Mf0D8,2966
3
3
  epstein_files/documents/communication.py,sha256=SunZdjMhR9v6y8LlQ6jhIu8vYjSndaBK0Su1mKnhfj0,2060
4
4
  epstein_files/documents/document.py,sha256=BUaioSvOmfsR-ULa6hJy3WYg-hBDC-kqafUheMJ-jFY,16665
5
- epstein_files/documents/email.py,sha256=jLr20lJPagAv3USE7GLY6f9neKCFWIBqeXgy1liJ6XE,38414
5
+ epstein_files/documents/email.py,sha256=H34b2zt_TrPUgXHwZXybjmLE9-QNAtezs9NVSCPOSGM,38462
6
6
  epstein_files/documents/emails/email_header.py,sha256=wkPfSLbmzkAeQwvhf0bAeFDLPbQT-EeG0v8vNNLYktM,7502
7
7
  epstein_files/documents/imessage/text_message.py,sha256=wfWPQhwGG5Yzyhbr1NAQAY0bzRjjqVZmh8SPl48XmAM,3025
8
8
  epstein_files/documents/json_file.py,sha256=1Cx_3uM38Dwgrbs8fU55TUZKSrCsmd4QpHKWtfWdudw,1089
@@ -11,24 +11,24 @@ epstein_files/documents/other_file.py,sha256=NdVlCYcyzHvOInReqF-zvHJI1hwtzMWW9ek
11
11
  epstein_files/epstein_files.py,sha256=EEx8Auwv8z0FkRrCi7wE8iuuRQd6K1rQDMc2vdbrsh4,18298
12
12
  epstein_files/util/constant/common_words.py,sha256=aR0UjoWmxyR49XS-DtHECQ1CiA_bK8hNP6CQ1TS9yZA,3696
13
13
  epstein_files/util/constant/html.py,sha256=9U098TGzlghGg4WfxLYHyub5JGR17Dv7VP5i2MSu8Kk,1415
14
- epstein_files/util/constant/names.py,sha256=iwnFqIceffYyLj7AaCsh3uve4Y0WbsZvHukjA1aFJWY,10104
14
+ epstein_files/util/constant/names.py,sha256=flIZCafFXHiaSy-G2QhYH0hNfkeJBH6Gz7p9AdvYgC0,10125
15
15
  epstein_files/util/constant/output_files.py,sha256=BkV4_gmdj46RfGy5SFYp6dgTty3FtlBth5YGmaGutls,1700
16
16
  epstein_files/util/constant/strings.py,sha256=FDtksfH50PSxtSBw9XhmqxtrgRgGxdIvGiAR2bbPpu4,1899
17
17
  epstein_files/util/constant/urls.py,sha256=0IdCVVvXib0i-4TZFkVHoS4zCbjOBZWcr6NkGxsmQWM,4981
18
18
  epstein_files/util/constants.py,sha256=MsWZQs3qd9N1HlgC7MoSKRF6ssbmWlUXX49REsp3qQs,110867
19
19
  epstein_files/util/data.py,sha256=xwTqrbAi7ZDJM0iyFVOevnokP_oIQ2npkRjHzF1KGGY,2908
20
20
  epstein_files/util/doc_cfg.py,sha256=5Pb__bP00mKi9ACv33omZQA-TBzumc7D2Td_Mk4M5DY,9822
21
- epstein_files/util/env.py,sha256=qAj_ueYwlfmw1oeKaW3VYSf0VP_DZcN2CFsu5hab_ig,5011
21
+ epstein_files/util/env.py,sha256=PaPBi27-npU9egt9LHxr5qR65B2DPHwt7Xc9sx5VN-M,5225
22
22
  epstein_files/util/file_helper.py,sha256=v_bE10MHEcXti9DVJo4WqyOsG83Xrv05S3Vc70cYJkk,3082
23
23
  epstein_files/util/highlighted_group.py,sha256=L7R63oyDG_lQ9Vv5gB_rRwJgHS2sdMfXHs9xcuDzqdc,35667
24
- epstein_files/util/logging.py,sha256=b9iCTQkpAxu_3HphM5wm7VuPbWj9tocTuyUvMUTaI5A,2137
25
- epstein_files/util/output.py,sha256=siGbVIudA5hhHjekJw-OONCkrDPCqJXvy1QmkdDF1EU,7699
24
+ epstein_files/util/logging.py,sha256=4hVl1Qw1qRMSVEYKXZxrvdQuSIMBgTPskzvNMNu8268,2185
25
+ epstein_files/util/output.py,sha256=wLjFBGR5ffn4cLep12G3OmUR0H3WtEMXeVMOXtd-6ig,7909
26
26
  epstein_files/util/rich.py,sha256=rdHzn4XRB2erQSf2yYyPakRmd9ixqBUdS8-BVOUAXnE,14603
27
27
  epstein_files/util/search_result.py,sha256=1fxe0KPBQXBk4dLfu6m0QXIzYfZCzvaSkWqvghJGzxY,567
28
28
  epstein_files/util/timer.py,sha256=8hxW4Y1JcTUfnBrHh7sL2pM9xu1sL4HFQM4CmmzTarU,837
29
29
  epstein_files/util/word_count.py,sha256=eGzcsoAvMcutRUFOJnVuEp9_28H74to7T9jTdGUZnuI,6757
30
- epstein_files-1.0.7.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
31
- epstein_files-1.0.7.dist-info/METADATA,sha256=nAeavhZZPr-pitCdDE4tCKXbexZKmZE8r-b9m_FsSiA,5612
32
- epstein_files-1.0.7.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
33
- epstein_files-1.0.7.dist-info/entry_points.txt,sha256=5qYgwAXpxegeAicD_rzda_trDRnUC51F5UVDpcZ7j6Q,240
34
- epstein_files-1.0.7.dist-info/RECORD,,
30
+ epstein_files-1.0.9.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
31
+ epstein_files-1.0.9.dist-info/METADATA,sha256=QTK8iM7ZkD2742Gk9c8yPyG5LV1QLNOrjKguJALSX1c,5479
32
+ epstein_files-1.0.9.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
33
+ epstein_files-1.0.9.dist-info/entry_points.txt,sha256=5qYgwAXpxegeAicD_rzda_trDRnUC51F5UVDpcZ7j6Q,240
34
+ epstein_files-1.0.9.dist-info/RECORD,,