iOpenPod 2.0.4__tar.gz → 2.0.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2032) hide show
  1. iopenpod-2.0.5/CONTEXT.md +767 -0
  2. iopenpod-2.0.5/GLOSSARY.md +258 -0
  3. iopenpod-2.0.5/PKG-INFO +327 -0
  4. iopenpod-2.0.5/TODO.md +24 -0
  5. iopenpod-2.0.5/docs/adr/0030-bind-library-file-transactions-to-issued-reviews.md +46 -0
  6. iopenpod-2.0.5/docs/adr/0061-support-late-ipod-library-artifact-sets.md +69 -0
  7. iopenpod-2.0.5/docs/adr/0075-publish-lyrics-with-media-file-tags.md +66 -0
  8. iopenpod-2.0.5/docs/adr/0076-execute-reviewed-sync-through-storage.md +131 -0
  9. iopenpod-2.0.5/docs/adr/0115-treat-sysinfo-files-as-optional-metadata.md +41 -0
  10. iopenpod-2.0.5/docs/adr/0116-retain-bounded-unknown-data-with-log-only-diagnostics.md +34 -0
  11. iopenpod-2.0.5/docs/adr/0117-spill-prepared-library-content-to-host-storage.md +41 -0
  12. iopenpod-2.0.5/docs/adr/0118-write-application-artwork-for-non-cover-devices.md +44 -0
  13. iopenpod-2.0.5/docs/adr/0119-compare-track-tags-and-artwork-after-host-file-changes.md +77 -0
  14. iopenpod-2.0.5/docs/adr/0120-separate-track-payload-replacement-from-tag-and-artwork-updates.md +83 -0
  15. iopenpod-2.0.5/docs/adr/README.md +195 -0
  16. iopenpod-2.0.5/docs/host-media-tags.md +84 -0
  17. iopenpod-2.0.5/docs/ipoddb-editing.md +154 -0
  18. iopenpod-2.0.5/docs/library-writing.md +765 -0
  19. iopenpod-2.0.5/docs/packaging.md +547 -0
  20. iopenpod-2.0.5/docs/research/itunescdb-and-sqlite-library.md +99 -0
  21. iopenpod-2.0.5/docs/source_architecture.md +2591 -0
  22. iopenpod-2.0.5/packaging/macos/dmg-artwork.md +26 -0
  23. iopenpod-2.0.5/packaging/macos/dmg-backdrop.png +0 -0
  24. iopenpod-2.0.5/packaging/macos/dmg-background.png +0 -0
  25. iopenpod-2.0.5/packaging/macos/dmg-background.svg +71 -0
  26. iopenpod-2.0.5/packaging/macos/dmg-layout.applescript +39 -0
  27. iopenpod-2.0.5/packaging/windows/store/listing.md +230 -0
  28. iopenpod-2.0.5/packaging/windows/store/submission-fields.json +163 -0
  29. iopenpod-2.0.5/pyproject.toml +214 -0
  30. iopenpod-2.0.5/scripts/render_macos_dmg_background.py +54 -0
  31. iopenpod-2.0.5/src/device_registry/data/catalog.py +1110 -0
  32. iopenpod-2.0.5/src/device_registry/models.py +400 -0
  33. iopenpod-2.0.5/src/iOpenPod/GUI/dialogs/metadata_editor.py +879 -0
  34. iopenpod-2.0.5/src/iOpenPod/GUI/main_window.py +2123 -0
  35. iopenpod-2.0.5/src/iOpenPod/GUI/pages/settings_page.py +1035 -0
  36. iopenpod-2.0.5/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.qm +0 -0
  37. iopenpod-2.0.5/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.ts +10144 -0
  38. iopenpod-2.0.5/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.qm +0 -0
  39. iopenpod-2.0.5/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.ts +10144 -0
  40. iopenpod-2.0.5/src/iOpenPod/GUI/presentation/theme/stylesheet.py +2372 -0
  41. iopenpod-2.0.5/src/iOpenPod/GUI/widgets/media_tools_settings.py +152 -0
  42. iopenpod-2.0.5/src/iOpenPod/GUI/widgets/metadata_field_editor.py +427 -0
  43. iopenpod-2.0.5/src/iOpenPod/GUI/widgets/track_actions.py +865 -0
  44. iopenpod-2.0.5/src/iOpenPod/app/artwork_policy.py +99 -0
  45. iopenpod-2.0.5/src/iOpenPod/app/core/logging.py +71 -0
  46. iopenpod-2.0.5/src/iOpenPod/app/core/version.py +14 -0
  47. iopenpod-2.0.5/src/iOpenPod/app/export_tagging.py +413 -0
  48. iopenpod-2.0.5/src/iOpenPod/app/host_media_controller.py +299 -0
  49. iopenpod-2.0.5/src/iOpenPod/app/host_media_library.py +2625 -0
  50. iopenpod-2.0.5/src/iOpenPod/app/library_sync_helper.py +1187 -0
  51. iopenpod-2.0.5/src/iOpenPod/app/library_tag_updates.py +74 -0
  52. iopenpod-2.0.5/src/iOpenPod/app/library_write.py +144 -0
  53. iopenpod-2.0.5/src/iOpenPod/app/library_write_controller.py +610 -0
  54. iopenpod-2.0.5/src/iOpenPod/app/library_write_inspection.py +428 -0
  55. iopenpod-2.0.5/src/iOpenPod/app/lyrics_controller.py +141 -0
  56. iopenpod-2.0.5/src/iOpenPod/app/lyrics_work.py +44 -0
  57. iopenpod-2.0.5/src/iOpenPod/app/media/importing.py +252 -0
  58. iopenpod-2.0.5/src/iOpenPod/app/media/lyrics.py +149 -0
  59. iopenpod-2.0.5/src/iOpenPod/app/media/transcoding.py +1074 -0
  60. iopenpod-2.0.5/src/iOpenPod/app/models/library_filter_models.py +425 -0
  61. iopenpod-2.0.5/src/iOpenPod/app/models/sync_plan_table_model.py +410 -0
  62. iopenpod-2.0.5/src/iOpenPod/app/models/sync_selection.py +278 -0
  63. iopenpod-2.0.5/src/iOpenPod/app/scrobbling/clients.py +375 -0
  64. iopenpod-2.0.5/src/iOpenPod/app/services/device_coordinator.py +4172 -0
  65. iopenpod-2.0.5/src/iOpenPod/app/services/library_resources.py +813 -0
  66. iopenpod-2.0.5/src/iOpenPod/app/services/media_tools.py +287 -0
  67. iopenpod-2.0.5/src/iOpenPod/app/sync_execution.py +2650 -0
  68. iopenpod-2.0.5/src/iOpenPod/app/sync_plan.py +825 -0
  69. iopenpod-2.0.5/src/iOpenPod/app/sync_track_details.py +107 -0
  70. iopenpod-2.0.5/src/iOpenPod/app/synesthesia/_rhythm.py +170 -0
  71. iopenpod-2.0.5/src/iOpenPod/app/synesthesia/_signals.py +228 -0
  72. iopenpod-2.0.5/src/iOpenPod/assets/glyphs/heart.svg +3 -0
  73. iopenpod-2.0.5/src/iPodDB/ArtworkDB/parser/mhod_parsers/container_mhod.py +53 -0
  74. iopenpod-2.0.5/src/iPodDB/ArtworkDB/parser/mhod_parsers/opaque_mhod.py +18 -0
  75. iopenpod-2.0.5/src/iPodDB/ArtworkDB/parser/mhod_parsers/string_mhod.py +42 -0
  76. iopenpod-2.0.5/src/iPodDB/ArtworkDB/parser/parse_ArtworkDB.py +16 -0
  77. iopenpod-2.0.5/src/iPodDB/PhotosDB/parser/mhod_parsers/container_mhod.py +53 -0
  78. iopenpod-2.0.5/src/iPodDB/PhotosDB/parser/mhod_parsers/opaque_mhod.py +18 -0
  79. iopenpod-2.0.5/src/iPodDB/PhotosDB/parser/mhod_parsers/string_mhod.py +42 -0
  80. iopenpod-2.0.5/src/iPodDB/PhotosDB/parser/parse_PhotosDB.py +16 -0
  81. iopenpod-2.0.5/src/iPodDB/SQLiteDB/database.py +1126 -0
  82. iopenpod-2.0.5/src/iPodDB/iTunesDB/cdb.py +164 -0
  83. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/chapter_data_mhod.py +329 -0
  84. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/contextual_100_mhod.py +19 -0
  85. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/library_index_mhod.py +34 -0
  86. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/library_jump_table_mhod.py +39 -0
  87. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/opaque_mhod.py +20 -0
  88. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/plist_mhod.py +59 -0
  89. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/settings_mhod.py +34 -0
  90. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_prefs_mhod.py +19 -0
  91. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_rules_mhod.py +196 -0
  92. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/string_mhod.py +50 -0
  93. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/mhod_parsers/video_details_mhod.py +19 -0
  94. iopenpod-2.0.5/src/iPodDB/iTunesDB/parser/parse_iTunesDB.py +25 -0
  95. iopenpod-2.0.5/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/chapter_data_mhod.py +95 -0
  96. iopenpod-2.0.5/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/contextual_100_mhod.py +28 -0
  97. iopenpod-2.0.5/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_prefs_mhod.py +30 -0
  98. iopenpod-2.0.5/src/iPodDB/iTunesDB/writer/mhod_encoder.py +607 -0
  99. iopenpod-2.0.5/src/iPodDB/library/__init__.py +232 -0
  100. iopenpod-2.0.5/src/iPodDB/library/_artwork_verification.py +172 -0
  101. iopenpod-2.0.5/src/iPodDB/library/_artwork_writing.py +660 -0
  102. iopenpod-2.0.5/src/iPodDB/library/_photo_resources.py +230 -0
  103. iopenpod-2.0.5/src/iPodDB/library/_reconcile.py +598 -0
  104. iopenpod-2.0.5/src/iPodDB/library/_track_writing.py +461 -0
  105. iopenpod-2.0.5/src/iPodDB/library/_write_analysis.py +445 -0
  106. iopenpod-2.0.5/src/iPodDB/library/_write_effects.py +371 -0
  107. iopenpod-2.0.5/src/iPodDB/library/_write_logging.py +202 -0
  108. iopenpod-2.0.5/src/iPodDB/library/_write_preparation.py +1067 -0
  109. iopenpod-2.0.5/src/iPodDB/library/_write_verification.py +145 -0
  110. iopenpod-2.0.5/src/iPodDB/library/database.py +421 -0
  111. iopenpod-2.0.5/src/iPodDB/library/editing.py +116 -0
  112. iopenpod-2.0.5/src/iPodDB/library/file_content.py +84 -0
  113. iopenpod-2.0.5/src/iPodDB/library/writing.py +324 -0
  114. iopenpod-2.0.5/src/iPodDB/shared/chunk.py +417 -0
  115. iopenpod-2.0.5/src/iPodDB/shared/chunk_reader.py +492 -0
  116. iopenpod-2.0.5/src/iPodDB/shared/chunk_writer.py +353 -0
  117. iopenpod-2.0.5/src/iPodDB/shared/diagnostics.py +94 -0
  118. iopenpod-2.0.5/src/iPodDB/shared/errors.py +46 -0
  119. iopenpod-2.0.5/src/iPodDB/sidecars/codec.py +248 -0
  120. iopenpod-2.0.5/src/iPodDB/sidecars/models.py +65 -0
  121. iopenpod-2.0.5/src/iPodDB/sidecars/remapping.py +64 -0
  122. iopenpod-2.0.5/src/storage/content_workspace.py +232 -0
  123. iopenpod-2.0.5/src/storage/media_processing.py +546 -0
  124. iopenpod-2.0.5/tests/device_registry/test_registry.py +392 -0
  125. iopenpod-2.0.5/tests/iOpenPod/GUI/test_media_tools_settings.py +186 -0
  126. iopenpod-2.0.5/tests/iOpenPod/GUI/test_metadata_actions.py +1194 -0
  127. iopenpod-2.0.5/tests/iOpenPod/GUI/test_settings_tabs.py +366 -0
  128. iopenpod-2.0.5/tests/iOpenPod/GUI/test_sync_plan_page.py +809 -0
  129. iopenpod-2.0.5/tests/iOpenPod/app/media/test_photo_sync.py +522 -0
  130. iopenpod-2.0.5/tests/iOpenPod/app/services/test_device_coordinator.py +2313 -0
  131. iopenpod-2.0.5/tests/iOpenPod/app/services/test_library_lyrics.py +361 -0
  132. iopenpod-2.0.5/tests/iOpenPod/app/services/test_library_resources.py +706 -0
  133. iopenpod-2.0.5/tests/iOpenPod/app/synesthesia/conftest.py +67 -0
  134. iopenpod-2.0.5/tests/iOpenPod/app/test_artwork_policy.py +66 -0
  135. iopenpod-2.0.5/tests/iOpenPod/app/test_export_tagging.py +202 -0
  136. iopenpod-2.0.5/tests/iOpenPod/app/test_host_media_library.py +1546 -0
  137. iopenpod-2.0.5/tests/iOpenPod/app/test_library_edit_tags.py +276 -0
  138. iopenpod-2.0.5/tests/iOpenPod/app/test_library_sync_helper.py +854 -0
  139. iopenpod-2.0.5/tests/iOpenPod/app/test_lyrics_controller.py +154 -0
  140. iopenpod-2.0.5/tests/iOpenPod/app/test_media_lyrics.py +207 -0
  141. iopenpod-2.0.5/tests/iOpenPod/app/test_media_tools_setup.py +282 -0
  142. iopenpod-2.0.5/tests/iOpenPod/app/test_metadata_editing.py +333 -0
  143. iopenpod-2.0.5/tests/iOpenPod/app/test_music_import.py +360 -0
  144. iopenpod-2.0.5/tests/iOpenPod/app/test_pypi_updates.py +280 -0
  145. iopenpod-2.0.5/tests/iOpenPod/app/test_python_installation.py +331 -0
  146. iopenpod-2.0.5/tests/iOpenPod/app/test_python_update_helper.py +485 -0
  147. iopenpod-2.0.5/tests/iOpenPod/app/test_scrobbling.py +599 -0
  148. iopenpod-2.0.5/tests/iOpenPod/app/test_scrobbling_clients.py +335 -0
  149. iopenpod-2.0.5/tests/iOpenPod/app/test_sync_controller.py +606 -0
  150. iopenpod-2.0.5/tests/iOpenPod/app/test_sync_execution.py +2437 -0
  151. iopenpod-2.0.5/tests/iOpenPod/app/test_sync_plan.py +774 -0
  152. iopenpod-2.0.5/tests/iOpenPod/app/test_sync_updates.py +336 -0
  153. iopenpod-2.0.5/tests/iOpenPod/app/test_transcoding.py +587 -0
  154. iopenpod-2.0.5/tests/iOpenPod/app/version_fixtures.py +30 -0
  155. iopenpod-2.0.5/tests/iPodDB/ArtworkDB/test_parser.py +1092 -0
  156. iopenpod-2.0.5/tests/iPodDB/SQLiteDB/test_database.py +664 -0
  157. iopenpod-2.0.5/tests/iPodDB/binary_fixtures.py +129 -0
  158. iopenpod-2.0.5/tests/iPodDB/iTunesDB/test_cdb.py +53 -0
  159. iopenpod-2.0.5/tests/iPodDB/iTunesDB/test_definition_driven_parser.py +374 -0
  160. iopenpod-2.0.5/tests/iPodDB/iTunesDB/test_remaining_mhod_parsers.py +714 -0
  161. iopenpod-2.0.5/tests/iPodDB/library/test_artwork_creation.py +318 -0
  162. iopenpod-2.0.5/tests/iPodDB/library/test_artwork_format_repair.py +313 -0
  163. iopenpod-2.0.5/tests/iPodDB/library/test_artwork_native_verification.py +146 -0
  164. iopenpod-2.0.5/tests/iPodDB/library/test_file_content.py +49 -0
  165. iopenpod-2.0.5/tests/iPodDB/library/test_write_artwork.py +367 -0
  166. iopenpod-2.0.5/tests/iPodDB/library/test_write_resolution.py +466 -0
  167. iopenpod-2.0.5/tests/iPodDB/library/test_writing.py +519 -0
  168. iopenpod-2.0.5/tests/iPodDB/sidecars/test_playback_sidecars.py +57 -0
  169. iopenpod-2.0.5/tests/iPodDB/sidecars/test_sidecar_readers.py +199 -0
  170. iopenpod-2.0.5/tests/iPodDB/test_unknown_data_preservation.py +313 -0
  171. iopenpod-2.0.5/tests/storage/test_content_workspace.py +113 -0
  172. iopenpod-2.0.5/tests/storage/test_media_processing.py +475 -0
  173. iopenpod-2.0.5/tests/test_packaging.py +617 -0
  174. iopenpod-2.0.5/uv.lock +2228 -0
  175. iopenpod-2.0.4/CONTEXT.md +0 -729
  176. iopenpod-2.0.4/GLOSSARY.md +0 -258
  177. iopenpod-2.0.4/PKG-INFO +0 -327
  178. iopenpod-2.0.4/TODO.md +0 -25
  179. iopenpod-2.0.4/docs/adr/0030-bind-library-file-transactions-to-issued-reviews.md +0 -45
  180. iopenpod-2.0.4/docs/adr/0061-support-late-ipod-library-artifact-sets.md +0 -68
  181. iopenpod-2.0.4/docs/adr/0075-publish-lyrics-with-media-file-tags.md +0 -28
  182. iopenpod-2.0.4/docs/adr/0076-execute-reviewed-sync-through-storage.md +0 -130
  183. iopenpod-2.0.4/docs/adr/README.md +0 -189
  184. iopenpod-2.0.4/docs/host-media-tags.md +0 -83
  185. iopenpod-2.0.4/docs/ipoddb-editing.md +0 -134
  186. iopenpod-2.0.4/docs/library-writing.md +0 -737
  187. iopenpod-2.0.4/docs/packaging.md +0 -536
  188. iopenpod-2.0.4/docs/research/itunescdb-and-sqlite-library.md +0 -65
  189. iopenpod-2.0.4/docs/source_architecture.md +0 -2545
  190. iopenpod-2.0.4/packaging/macos/dmg-background.png +0 -0
  191. iopenpod-2.0.4/packaging/macos/dmg-background.svg +0 -24
  192. iopenpod-2.0.4/packaging/macos/dmg-layout.applescript +0 -36
  193. iopenpod-2.0.4/packaging/windows/store/listing.md +0 -208
  194. iopenpod-2.0.4/packaging/windows/store/submission-fields.json +0 -163
  195. iopenpod-2.0.4/pyproject.toml +0 -216
  196. iopenpod-2.0.4/src/device_registry/data/catalog.py +0 -1115
  197. iopenpod-2.0.4/src/device_registry/models.py +0 -403
  198. iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/metadata_editor.py +0 -819
  199. iopenpod-2.0.4/src/iOpenPod/GUI/main_window.py +0 -2069
  200. iopenpod-2.0.4/src/iOpenPod/GUI/pages/settings_page.py +0 -950
  201. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.qm +0 -0
  202. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.ts +0 -10060
  203. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.qm +0 -0
  204. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.ts +0 -10060
  205. iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/stylesheet.py +0 -2322
  206. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/media_tools_settings.py +0 -145
  207. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/metadata_field_editor.py +0 -416
  208. iopenpod-2.0.4/src/iOpenPod/GUI/widgets/track_actions.py +0 -861
  209. iopenpod-2.0.4/src/iOpenPod/app/core/logging.py +0 -63
  210. iopenpod-2.0.4/src/iOpenPod/app/core/version.py +0 -14
  211. iopenpod-2.0.4/src/iOpenPod/app/export_tagging.py +0 -301
  212. iopenpod-2.0.4/src/iOpenPod/app/host_media_controller.py +0 -250
  213. iopenpod-2.0.4/src/iOpenPod/app/host_media_library.py +0 -2396
  214. iopenpod-2.0.4/src/iOpenPod/app/library_sync_helper.py +0 -1108
  215. iopenpod-2.0.4/src/iOpenPod/app/library_write.py +0 -130
  216. iopenpod-2.0.4/src/iOpenPod/app/library_write_controller.py +0 -608
  217. iopenpod-2.0.4/src/iOpenPod/app/library_write_inspection.py +0 -424
  218. iopenpod-2.0.4/src/iOpenPod/app/lyrics_controller.py +0 -161
  219. iopenpod-2.0.4/src/iOpenPod/app/media/importing.py +0 -252
  220. iopenpod-2.0.4/src/iOpenPod/app/media/lyrics.py +0 -143
  221. iopenpod-2.0.4/src/iOpenPod/app/media/transcoding.py +0 -1031
  222. iopenpod-2.0.4/src/iOpenPod/app/models/library_filter_models.py +0 -425
  223. iopenpod-2.0.4/src/iOpenPod/app/models/sync_plan_table_model.py +0 -383
  224. iopenpod-2.0.4/src/iOpenPod/app/models/sync_selection.py +0 -274
  225. iopenpod-2.0.4/src/iOpenPod/app/scrobbling/clients.py +0 -373
  226. iopenpod-2.0.4/src/iOpenPod/app/services/device_coordinator.py +0 -4175
  227. iopenpod-2.0.4/src/iOpenPod/app/services/library_resources.py +0 -677
  228. iopenpod-2.0.4/src/iOpenPod/app/services/media_tools.py +0 -273
  229. iopenpod-2.0.4/src/iOpenPod/app/sync_execution.py +0 -2319
  230. iopenpod-2.0.4/src/iOpenPod/app/sync_plan.py +0 -680
  231. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_rhythm.py +0 -167
  232. iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_signals.py +0 -226
  233. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/container_mhod.py +0 -38
  234. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/opaque_mhod.py +0 -12
  235. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/string_mhod.py +0 -33
  236. iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/parse_ArtworkDB.py +0 -14
  237. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/container_mhod.py +0 -38
  238. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/opaque_mhod.py +0 -12
  239. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/string_mhod.py +0 -33
  240. iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/parse_PhotosDB.py +0 -14
  241. iopenpod-2.0.4/src/iPodDB/SQLiteDB/database.py +0 -1089
  242. iopenpod-2.0.4/src/iPodDB/iTunesDB/cdb.py +0 -136
  243. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/chapter_data_mhod.py +0 -327
  244. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/contextual_100_mhod.py +0 -17
  245. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/library_index_mhod.py +0 -31
  246. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/library_jump_table_mhod.py +0 -36
  247. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/opaque_mhod.py +0 -14
  248. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/plist_mhod.py +0 -52
  249. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/settings_mhod.py +0 -28
  250. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_prefs_mhod.py +0 -17
  251. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_rules_mhod.py +0 -180
  252. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/string_mhod.py +0 -40
  253. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/video_details_mhod.py +0 -16
  254. iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/parse_iTunesDB.py +0 -23
  255. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/chapter_data_mhod.py +0 -93
  256. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/contextual_100_mhod.py +0 -28
  257. iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_prefs_mhod.py +0 -28
  258. iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/mhod_encoder.py +0 -607
  259. iopenpod-2.0.4/src/iPodDB/library/__init__.py +0 -218
  260. iopenpod-2.0.4/src/iPodDB/library/_artwork_verification.py +0 -171
  261. iopenpod-2.0.4/src/iPodDB/library/_artwork_writing.py +0 -652
  262. iopenpod-2.0.4/src/iPodDB/library/_photo_resources.py +0 -238
  263. iopenpod-2.0.4/src/iPodDB/library/_reconcile.py +0 -597
  264. iopenpod-2.0.4/src/iPodDB/library/_track_writing.py +0 -467
  265. iopenpod-2.0.4/src/iPodDB/library/_write_analysis.py +0 -415
  266. iopenpod-2.0.4/src/iPodDB/library/_write_effects.py +0 -363
  267. iopenpod-2.0.4/src/iPodDB/library/_write_logging.py +0 -201
  268. iopenpod-2.0.4/src/iPodDB/library/_write_preparation.py +0 -1052
  269. iopenpod-2.0.4/src/iPodDB/library/_write_verification.py +0 -147
  270. iopenpod-2.0.4/src/iPodDB/library/database.py +0 -414
  271. iopenpod-2.0.4/src/iPodDB/library/editing.py +0 -114
  272. iopenpod-2.0.4/src/iPodDB/library/writing.py +0 -305
  273. iopenpod-2.0.4/src/iPodDB/shared/chunk.py +0 -408
  274. iopenpod-2.0.4/src/iPodDB/shared/chunk_reader.py +0 -433
  275. iopenpod-2.0.4/src/iPodDB/shared/chunk_writer.py +0 -325
  276. iopenpod-2.0.4/src/iPodDB/shared/errors.py +0 -42
  277. iopenpod-2.0.4/src/iPodDB/sidecars/codec.py +0 -225
  278. iopenpod-2.0.4/src/iPodDB/sidecars/models.py +0 -63
  279. iopenpod-2.0.4/src/iPodDB/sidecars/remapping.py +0 -64
  280. iopenpod-2.0.4/src/storage/media_processing.py +0 -527
  281. iopenpod-2.0.4/tests/device_registry/test_registry.py +0 -391
  282. iopenpod-2.0.4/tests/iOpenPod/GUI/test_media_tools_settings.py +0 -163
  283. iopenpod-2.0.4/tests/iOpenPod/GUI/test_metadata_actions.py +0 -1156
  284. iopenpod-2.0.4/tests/iOpenPod/GUI/test_settings_tabs.py +0 -274
  285. iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_plan_page.py +0 -676
  286. iopenpod-2.0.4/tests/iOpenPod/app/media/test_photo_sync.py +0 -454
  287. iopenpod-2.0.4/tests/iOpenPod/app/services/test_device_coordinator.py +0 -2158
  288. iopenpod-2.0.4/tests/iOpenPod/app/services/test_library_lyrics.py +0 -203
  289. iopenpod-2.0.4/tests/iOpenPod/app/services/test_library_resources.py +0 -610
  290. iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/conftest.py +0 -61
  291. iopenpod-2.0.4/tests/iOpenPod/app/test_export_tagging.py +0 -140
  292. iopenpod-2.0.4/tests/iOpenPod/app/test_host_media_library.py +0 -1209
  293. iopenpod-2.0.4/tests/iOpenPod/app/test_library_sync_helper.py +0 -676
  294. iopenpod-2.0.4/tests/iOpenPod/app/test_lyrics_controller.py +0 -131
  295. iopenpod-2.0.4/tests/iOpenPod/app/test_media_lyrics.py +0 -193
  296. iopenpod-2.0.4/tests/iOpenPod/app/test_media_tools_setup.py +0 -281
  297. iopenpod-2.0.4/tests/iOpenPod/app/test_metadata_editing.py +0 -317
  298. iopenpod-2.0.4/tests/iOpenPod/app/test_music_import.py +0 -347
  299. iopenpod-2.0.4/tests/iOpenPod/app/test_pypi_updates.py +0 -273
  300. iopenpod-2.0.4/tests/iOpenPod/app/test_python_installation.py +0 -328
  301. iopenpod-2.0.4/tests/iOpenPod/app/test_python_update_helper.py +0 -484
  302. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling.py +0 -598
  303. iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling_clients.py +0 -328
  304. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_controller.py +0 -548
  305. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_execution.py +0 -1915
  306. iopenpod-2.0.4/tests/iOpenPod/app/test_sync_plan.py +0 -518
  307. iopenpod-2.0.4/tests/iOpenPod/app/test_transcoding.py +0 -551
  308. iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_parser.py +0 -1146
  309. iopenpod-2.0.4/tests/iPodDB/SQLiteDB/test_database.py +0 -563
  310. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_cdb.py +0 -58
  311. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_definition_driven_parser.py +0 -339
  312. iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_remaining_mhod_parsers.py +0 -734
  313. iopenpod-2.0.4/tests/iPodDB/library/test_artwork_creation.py +0 -317
  314. iopenpod-2.0.4/tests/iPodDB/library/test_artwork_format_repair.py +0 -315
  315. iopenpod-2.0.4/tests/iPodDB/library/test_artwork_native_verification.py +0 -145
  316. iopenpod-2.0.4/tests/iPodDB/library/test_write_artwork.py +0 -364
  317. iopenpod-2.0.4/tests/iPodDB/library/test_write_resolution.py +0 -382
  318. iopenpod-2.0.4/tests/iPodDB/library/test_writing.py +0 -517
  319. iopenpod-2.0.4/tests/iPodDB/sidecars/test_playback_sidecars.py +0 -59
  320. iopenpod-2.0.4/tests/iPodDB/sidecars/test_sidecar_readers.py +0 -201
  321. iopenpod-2.0.4/tests/storage/test_media_processing.py +0 -450
  322. iopenpod-2.0.4/tests/test_packaging.py +0 -573
  323. iopenpod-2.0.4/uv.lock +0 -2228
  324. {iopenpod-2.0.4 → iopenpod-2.0.5}/.editorconfig +0 -0
  325. {iopenpod-2.0.4 → iopenpod-2.0.5}/.gitattributes +0 -0
  326. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/FUNDING.yml +0 -0
  327. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  328. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  329. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/workflows/flatpak.yml +0 -0
  330. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/workflows/health.yml +0 -0
  331. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/workflows/pages.yml +0 -0
  332. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/workflows/release.yml +0 -0
  333. {iopenpod-2.0.4 → iopenpod-2.0.5}/.github/workflows/update-feed.yml +0 -0
  334. {iopenpod-2.0.4 → iopenpod-2.0.5}/.gitignore +0 -0
  335. {iopenpod-2.0.4 → iopenpod-2.0.5}/.hallmark/log.json +0 -0
  336. {iopenpod-2.0.4 → iopenpod-2.0.5}/.hallmark/preflight-web.json +0 -0
  337. {iopenpod-2.0.4 → iopenpod-2.0.5}/.hallmark/preflight.json +0 -0
  338. {iopenpod-2.0.4 → iopenpod-2.0.5}/.python-version +0 -0
  339. {iopenpod-2.0.4 → iopenpod-2.0.5}/.vscode/extensions.json +0 -0
  340. {iopenpod-2.0.4 → iopenpod-2.0.5}/.vscode/settings.json +0 -0
  341. {iopenpod-2.0.4 → iopenpod-2.0.5}/.vscode/tasks.json +0 -0
  342. {iopenpod-2.0.4 → iopenpod-2.0.5}/ACKNOWLEDGEMENTS.md +0 -0
  343. {iopenpod-2.0.4 → iopenpod-2.0.5}/AGENTS.md +0 -0
  344. {iopenpod-2.0.4 → iopenpod-2.0.5}/COPYING.md +0 -0
  345. {iopenpod-2.0.4 → iopenpod-2.0.5}/LICENSE +0 -0
  346. {iopenpod-2.0.4 → iopenpod-2.0.5}/README.md +0 -0
  347. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/README.md +0 -0
  348. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0001-use-python-3-12-and-uv.md +0 -0
  349. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0002-separate-the-four-primary-subsystems.md +0 -0
  350. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0003-share-quality-configuration-between-cli-and-vs-code.md +0 -0
  351. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0004-use-original-iopenpod-as-the-compatibility-baseline.md +0 -0
  352. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0005-use-one-active-ipod-and-user-directed-sync.md +0 -0
  353. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0006-require-lossless-ipoddb-round-trips.md +0 -0
  354. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0007-ship-one-application-with-branded-package-names.md +0 -0
  355. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0008-require-one-definition-driven-ipoddb-path.md +0 -0
  356. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0009-use-qt-logical-pixels-and-native-display-metrics.md +0 -0
  357. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0010-resolve-ranked-device-evidence-in-the-device-registry.md +0 -0
  358. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0011-bind-storage-access-to-connection-generations.md +0 -0
  359. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0012-load-artwork-lazily-across-existing-boundaries.md +0 -0
  360. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0013-reconcile-device-metadata-across-existing-boundaries.md +0 -0
  361. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0014-persist-global-settings-through-storage.md +0 -0
  362. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0015-isolate-iopenpod-2-settings-from-original-iopenpod.md +0 -0
  363. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0016-qualify-device-candidates-and-correlate-macos-hardware.md +0 -0
  364. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0017-stream-playback-through-a-replaceable-backend.md +0 -0
  365. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0018-publish-playback-through-optional-system-media-sessions.md +0 -0
  366. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0019-project-databases-through-a-common-library-contract.md +0 -0
  367. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0020-project-playlists-and-isolate-session-edits.md +0 -0
  368. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0021-prepare-library-drafts-over-retained-documents.md +0 -0
  369. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0022-apply-and-save-playlist-drafts.md +0 -0
  370. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0023-capture-write-requests-and-inspect-them-without-replay.md +0 -0
  371. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0024-reconcile-and-verify-playlists-by-dataset.md +0 -0
  372. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0025-resolve-library-edits-before-reconciliation.md +0 -0
  373. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0026-share-one-library-workspace-for-metadata-and-playlists.md +0 -0
  374. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0027-restore-the-previously-selected-ipod.md +0 -0
  375. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0028-record-library-write-debug-diagnostics.md +0 -0
  376. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0029-publish-file-transactions-with-retained-recovery.md +0 -0
  377. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0031-inspect-captured-host-media-before-planning-imports.md +0 -0
  378. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0032-add-inspected-music-through-library-reviews.md +0 -0
  379. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0033-create-artworkdb-from-catalog-capabilities.md +0 -0
  380. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0034-bind-media-replacement-intent-to-library-drafts.md +0 -0
  381. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0035-author-evidence-backed-smart-playlist-choices.md +0 -0
  382. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0036-reclassify-retained-media-without-replacement.md +0 -0
  383. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0037-persist-a-device-aware-podcast-catalog.md +0 -0
  384. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0038-preserve-the-original-backup-archive-contract.md +0 -0
  385. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0039-use-backup-format-v4-and-bounded-restore-recovery.md +0 -0
  386. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0040-identify-backups-by-serial-with-a-best-effort-fallback.md +0 -0
  387. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0041-allow-foreground-reads-during-backup-capture.md +0 -0
  388. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0042-analyze-audio-into-ephemeral-world-scores.md +0 -0
  389. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0043-render-synesthesia-as-one-continuous-world.md +0 -0
  390. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0044-make-synesthesia-topology-and-biography-authoritative.md +0 -0
  391. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0045-drive-synesthesia-through-one-coupled-field.md +0 -0
  392. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0046-preserve-musical-context-in-synesthesia-evidence.md +0 -0
  393. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0047-map-track-analysis-into-one-expressive-field.md +0 -0
  394. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0048-direct-synesthesia-through-mood-selected-scenes.md +0 -0
  395. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0049-choreograph-synesthesia-scenes-as-music-driven-journeys.md +0 -0
  396. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0050-compose-synesthesia-camera-shots-inside-scenes.md +0 -0
  397. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0051-make-player-transport-authoritative-for-synesthesia.md +0 -0
  398. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0052-model-photosdb-as-a-distinct-artifact.md +0 -0
  399. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0053-project-photos-into-library-drafts.md +0 -0
  400. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0054-browse-photos-through-a-lazy-three-pane-ui.md +0 -0
  401. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0055-export-photos-through-the-active-filesystem-session.md +0 -0
  402. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0056-preview-retained-full-resolution-photos-safely.md +0 -0
  403. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0057-manage-photo-album-membership-through-collection-cards.md +0 -0
  404. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0058-create-empty-photo-albums-through-library-drafts.md +0 -0
  405. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0059-delete-photos-through-library-drafts.md +0 -0
  406. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0060-use-native-safe-removal-services.md +0 -0
  407. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0062-assign-matched-original-backups-to-native-identities.md +0 -0
  408. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0063-scan-host-media-into-common-library-snapshots.md +0 -0
  409. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0064-browse-host-and-ipod-library-sources-independently.md +0 -0
  410. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0065-index-ipod-media-for-sync-correlation.md +0 -0
  411. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0066-prepare-sync-plans-from-correlated-media.md +0 -0
  412. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0067-present-host-media-inside-the-sync-workspace.md +0 -0
  413. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0068-render-synesthesia-before-track-analysis-completes.md +0 -0
  414. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0069-refresh-devices-while-the-picker-is-open.md +0 -0
  415. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0070-select-sync-actions-in-grouped-review.md +0 -0
  416. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0071-restore-the-remembered-ipod-at-startup.md +0 -0
  417. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0072-open-sync-collections-as-detail-pages.md +0 -0
  418. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0073-apply-library-changes-automatically-by-default.md +0 -0
  419. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0074-constrain-host-playlist-references-through-storage.md +0 -0
  420. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0077-hold-synesthesia-scenes-across-short-sections.md +0 -0
  421. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0078-prepare-the-next-synesthesia-playback-entry.md +0 -0
  422. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0079-prepare-native-packages-with-explicit-store-gates.md +0 -0
  423. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0080-distribute-iopenpod-under-gplv3-or-later.md +0 -0
  424. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0081-require-user-installed-media-tools.md +0 -0
  425. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0082-tolerate-host-media-scan-source-churn.md +0 -0
  426. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0083-tolerate-host-native-media-variants.md +0 -0
  427. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0084-keep-optional-media-analysis-out-of-sync-gates.md +0 -0
  428. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0085-preserve-positional-playback-sidecars-during-sync.md +0 -0
  429. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0086-prepare-bounded-stills-for-oversized-photos.md +0 -0
  430. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0087-report-concurrent-host-preparation-progress.md +0 -0
  431. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0088-edit-track-classification-in-the-metadata-editor.md +0 -0
  432. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0089-make-interrupted-sync-recovery-a-device-scoped-choice.md +0 -0
  433. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0090-derive-volume-presentation-from-the-saved-ipod.md +0 -0
  434. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0091-sync-podcasts-through-shared-media-publication.md +0 -0
  435. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0092-enforce-podcast-and-video-playback-options.md +0 -0
  436. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0093-complete-terminal-transaction-cleanup-automatically.md +0 -0
  437. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0094-target-macos-12-3-with-platform-specific-native-dependencies.md +0 -0
  438. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0095-convert-a-complete-album-to-one-chaptered-track.md +0 -0
  439. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0096-publish-status-progress-and-actions-as-source-owned-data.md +0 -0
  440. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0097-model-preferences-as-a-lossless-flat-document.md +0 -0
  441. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0098-capture-device-time-context-for-library-dates.md +0 -0
  442. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0099-share-native-host-tag-interpretation.md +0 -0
  443. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0100-reconcile-firmware-playback-sidecars-on-device-selection.md +0 -0
  444. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0101-retain-account-scoped-scrobble-delivery-on-the-host.md +0 -0
  445. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0102-adjust-old-lastfm-submission-dates.md +0 -0
  446. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0103-offer-native-media-tool-installation.md +0 -0
  447. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0104-publish-validated-tagged-github-releases.md +0 -0
  448. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0105-route-application-updates-by-install-channel.md +0 -0
  449. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0106-run-health-only-on-explicit-dispatch.md +0 -0
  450. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0107-publish-only-native-release-archives.md +0 -0
  451. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0108-bundle-windows-as-one-executable.md +0 -0
  452. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0109-authenticate-and-isolate-github-application-updates.md +0 -0
  453. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0110-offer-macos-drag-to-applications-disk-images.md +0 -0
  454. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0111-correct-evidenced-artwork-format-sizes-during-preparation.md +0 -0
  455. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0112-publish-python-distributions-with-github-releases.md +0 -0
  456. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0113-update-installed-python-packages-through-pypi.md +0 -0
  457. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/adr/0114-distinguish-install-downloads-from-update-archives.md +0 -0
  458. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/agents/domain.md +0 -0
  459. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/agents/issue-tracker.md +0 -0
  460. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/agents/triage-labels.md +0 -0
  461. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/app-updates.md +0 -0
  462. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/eta.md +0 -0
  463. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/gui-design-language.md +0 -0
  464. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/ipod-preferences.md +0 -0
  465. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/ipod-time.md +0 -0
  466. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/library-contract.md +0 -0
  467. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/library-writing-audit-2026-09-11.md +0 -0
  468. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/licensing.md +0 -0
  469. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/media-tools.md +0 -0
  470. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/playback-sidecars.md +0 -0
  471. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/artworkdb-format.md +0 -0
  472. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/ipod-preferences.md +0 -0
  473. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/ipod-time-reconciliation.md +0 -0
  474. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/ithmb-uyvy-format.md +0 -0
  475. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/itunesdb-lyrics.md +0 -0
  476. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/itunesdb-sort-36.md +0 -0
  477. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/macos-catalina-compatibility.md +0 -0
  478. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/macos-compatibility.md +0 -0
  479. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/photosdb-format.md +0 -0
  480. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/safe-native-eject.md +0 -0
  481. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/synesthesia-coupled-field.md +0 -0
  482. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/synesthesia-world-architecture.md +0 -0
  483. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/research/windows-store-requirements.md +0 -0
  484. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/scrobbling.md +0 -0
  485. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/sync-media-policy.md +0 -0
  486. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/sync-validation.md +0 -0
  487. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/sync-workflow-audit-2026-09-26.md +0 -0
  488. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/synesthesia_backend.md +0 -0
  489. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/synesthesia_visual_direction.md +0 -0
  490. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/translations.md +0 -0
  491. {iopenpod-2.0.4 → iopenpod-2.0.5}/docs/volume-presentation.md +0 -0
  492. {iopenpod-2.0.4 → iopenpod-2.0.5}/main.py +0 -0
  493. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/github-release.md +0 -0
  494. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/hooks/hook-PySide6.QtGui.py +0 -0
  495. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/hooks/hook-sklearn.py +0 -0
  496. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/iOpenPod.spec +0 -0
  497. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/linux/flatpak.json +0 -0
  498. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/linux/io.github.therealsavi.iOpenPod.desktop +0 -0
  499. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/linux/io.github.therealsavi.iOpenPod.metainfo.xml +0 -0
  500. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/linux/snapcraft.yaml +0 -0
  501. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/macos/app-store.entitlements.plist +0 -0
  502. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/macos/helper.entitlements.plist +0 -0
  503. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/macos/update_bridge.m +0 -0
  504. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/Microsoft-runtime-NOTICE.txt +0 -0
  505. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/Python-Windows-Binary-LICENSE.txt +0 -0
  506. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/README.md +0 -0
  507. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/libsndfile-no-version-resource.patch +0 -0
  508. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/native-build-tools.json +0 -0
  509. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/native-evidence.json +0 -0
  510. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/audioread-3.1.0-NOTICES.txt +0 -0
  511. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/bzip2-1.0.8-NOTICES.txt +0 -0
  512. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/certifi-2026.7.22-NOTICES.txt +0 -0
  513. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/cffi-2.1.1-NOTICES.txt +0 -0
  514. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/charset-normalizer-3.5.1-NOTICES.txt +0 -0
  515. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/cloudpickle-3.1.2-NOTICES.txt +0 -0
  516. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/colorama-0.4.6-NOTICES.txt +0 -0
  517. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/cpython-3.12-3.12.14-NOTICES.txt +0 -0
  518. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/decorator-5.3.1-NOTICES.txt +0 -0
  519. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/expat-2.8.3-NOTICES.txt +0 -0
  520. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/feedparser-6.0.14-NOTICES.txt +0 -0
  521. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/feedparser-sgmllib-2.1.0-NOTICES.txt +0 -0
  522. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/ffmpeg-7.1.5-NOTICES.txt +0 -0
  523. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/hashab-f80d46432204c6238cad7d8ca3b3dd52ea66836b-NOTICES.txt +0 -0
  524. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/idna-3.19-NOTICES.txt +0 -0
  525. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/importlib-resources-7.1.0-NOTICES.txt +0 -0
  526. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/joblib-1.6.0-NOTICES.txt +0 -0
  527. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/lazy-loader-0.5-NOTICES.txt +0 -0
  528. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/libffi-3.4.8-NOTICES.txt +0 -0
  529. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/librosa-0.11.0-NOTICES.txt +0 -0
  530. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/libsndfile-1.2.2-NOTICES.txt +0 -0
  531. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/llvm-llvmlite-22.1.0-NOTICES.txt +0 -0
  532. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/llvm-mesa-3.6.2-NOTICES.txt +0 -0
  533. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/llvmlite-0.49.0-NOTICES.txt +0 -0
  534. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/mesa-11.2.2-NOTICES.txt +0 -0
  535. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/mpdecimal-4.0.0-NOTICES.txt +0 -0
  536. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/msgpack-1.2.2-NOTICES.txt +0 -0
  537. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/mutagen-1.48.1-NOTICES.txt +0 -0
  538. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/narwhals-2.26.0-NOTICES.txt +0 -0
  539. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/numba-0.67.0-NOTICES.txt +0 -0
  540. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/numpy-2.5.3-NOTICES.txt +0 -0
  541. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/openblas-numpy-446c436e10450c348169808f1a6b3fae0925c9f7-NOTICES.txt +0 -0
  542. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/openblas-numpy-build-v0.3.34.106.0-NOTICES.txt +0 -0
  543. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/openblas-scipy-5ffbf38b41a1fe494d038efcb09cf22f4d527c22-NOTICES.txt +0 -0
  544. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/openblas-scipy-build-v0.3.31.22.0-NOTICES.txt +0 -0
  545. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/openssl-3.5-3.5.8-NOTICES.txt +0 -0
  546. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/packaging-26.3-NOTICES.txt +0 -0
  547. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pillow-12.3.0-NOTICES.txt +0 -0
  548. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pillow-build-12.3.0-NOTICES.txt +0 -0
  549. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/platformdirs-4.11.8-NOTICES.txt +0 -0
  550. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pooch-1.9.0-NOTICES.txt +0 -0
  551. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/provenance.json +0 -0
  552. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pycparser-3.0-NOTICES.txt +0 -0
  553. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pycryptodome-3.23.0-NOTICES.txt +0 -0
  554. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pyinstaller-6.22.3-NOTICES.txt +0 -0
  555. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pyside-setup-6.11.2-NOTICES.txt +0 -0
  556. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/python-build-standalone-20260825-NOTICES.txt +0 -0
  557. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/pywinrt-3.2.1-NOTICES.txt +0 -0
  558. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qtbase-6.11.2-NOTICES.txt +0 -0
  559. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qtdeclarative-6.11.2-NOTICES.txt +0 -0
  560. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qtimageformats-6.11.2-NOTICES.txt +0 -0
  561. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qtmultimedia-6.11.2-NOTICES.txt +0 -0
  562. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qtshadertools-6.11.2-NOTICES.txt +0 -0
  563. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qtsvg-6.11.2-NOTICES.txt +0 -0
  564. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qttools-6.11.2-NOTICES.txt +0 -0
  565. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/qttranslations-6.11.2-NOTICES.txt +0 -0
  566. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/requests-2.34.2-NOTICES.txt +0 -0
  567. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-addr2line-0.24.1-NOTICES.txt +0 -0
  568. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-addr2line-0.25.0-NOTICES.txt +0 -0
  569. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-adler2-2.0.0-NOTICES.txt +0 -0
  570. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-aes-0.8.4-NOTICES.txt +0 -0
  571. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-aho-corasick-1.0.2-NOTICES.txt +0 -0
  572. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-allocator-api2-0.2.20-NOTICES.txt +0 -0
  573. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ambient-authority-0.0.2-NOTICES.txt +0 -0
  574. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-android_system_properties-0.1.5-NOTICES.txt +0 -0
  575. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anes-0.1.6-NOTICES.txt +0 -0
  576. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anstream-0.6.15-NOTICES.txt +0 -0
  577. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anstyle-1.0.8-NOTICES.txt +0 -0
  578. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anstyle-parse-0.2.1-NOTICES.txt +0 -0
  579. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anstyle-query-1.1.2-NOTICES.txt +0 -0
  580. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anstyle-wincon-3.0.4-NOTICES.txt +0 -0
  581. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-anyhow-1.0.93-NOTICES.txt +0 -0
  582. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-arbitrary-1.4.1-NOTICES.txt +0 -0
  583. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-arbtest-0.3.1-NOTICES.txt +0 -0
  584. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-arrayvec-0.7.6-NOTICES.txt +0 -0
  585. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-async-trait-0.1.71-NOTICES.txt +0 -0
  586. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-autocfg-1.1.0-NOTICES.txt +0 -0
  587. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-backtrace-0.3.75-NOTICES.txt +0 -0
  588. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-base64-0.22.1-NOTICES.txt +0 -0
  589. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-base64ct-1.6.0-NOTICES.txt +0 -0
  590. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-beef-0.5.2-NOTICES.txt +0 -0
  591. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bindgen-0.71.1-NOTICES.txt +0 -0
  592. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bit-set-0.5.2-NOTICES.txt +0 -0
  593. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bit-vec-0.6.3-NOTICES.txt +0 -0
  594. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bitflags-1.3.2-NOTICES.txt +0 -0
  595. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bitflags-2.6.0-NOTICES.txt +0 -0
  596. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bitmaps-2.1.0-NOTICES.txt +0 -0
  597. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-block-buffer-0.10.2-NOTICES.txt +0 -0
  598. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bstr-1.6.0-NOTICES.txt +0 -0
  599. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bumpalo-3.16.0-NOTICES.txt +0 -0
  600. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-byteorder-1.4.3-NOTICES.txt +0 -0
  601. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bytes-1.5.0-NOTICES.txt +0 -0
  602. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bytesize-2.0.1-NOTICES.txt +0 -0
  603. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bzip2-0.4.4-NOTICES.txt +0 -0
  604. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-bzip2-sys-0.1.11+1.0.8-NOTICES.txt +0 -0
  605. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-camino-1.1.4-NOTICES.txt +0 -0
  606. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cap-fs-ext-3.4.4-NOTICES.txt +0 -0
  607. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cap-net-ext-3.4.4-NOTICES.txt +0 -0
  608. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cap-primitives-3.4.4-NOTICES.txt +0 -0
  609. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cap-rand-3.4.4-NOTICES.txt +0 -0
  610. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cap-std-3.4.4-NOTICES.txt +0 -0
  611. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cap-time-ext-3.4.4-NOTICES.txt +0 -0
  612. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-capstone-0.13.0-NOTICES.txt +0 -0
  613. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-capstone-sys-0.17.0-NOTICES.txt +0 -0
  614. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cargo-platform-0.1.2-NOTICES.txt +0 -0
  615. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cargo_metadata-0.19.2-NOTICES.txt +0 -0
  616. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cast-0.3.0-NOTICES.txt +0 -0
  617. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cc-1.2.22-NOTICES.txt +0 -0
  618. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cexpr-0.6.0-NOTICES.txt +0 -0
  619. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cfg-if-1.0.0-NOTICES.txt +0 -0
  620. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ciborium-0.2.0-NOTICES.txt +0 -0
  621. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ciborium-io-0.2.0-NOTICES.txt +0 -0
  622. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ciborium-ll-0.2.0-NOTICES.txt +0 -0
  623. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cipher-0.4.4-NOTICES.txt +0 -0
  624. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-clang-sys-1.8.1-NOTICES.txt +0 -0
  625. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-clap-4.5.36-NOTICES.txt +0 -0
  626. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-clap_builder-4.5.36-NOTICES.txt +0 -0
  627. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-clap_complete-4.5.28-NOTICES.txt +0 -0
  628. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-clap_derive-4.5.32-NOTICES.txt +0 -0
  629. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-clap_lex-0.7.4-NOTICES.txt +0 -0
  630. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cobs-0.2.3-NOTICES.txt +0 -0
  631. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-codespan-reporting-0.11.1-NOTICES.txt +0 -0
  632. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-colorchoice-1.0.0-NOTICES.txt +0 -0
  633. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-console-0.15.8-NOTICES.txt +0 -0
  634. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-constant_time_eq-0.1.5-NOTICES.txt +0 -0
  635. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-core-foundation-0.9.4-NOTICES.txt +0 -0
  636. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-core-foundation-sys-0.8.6-NOTICES.txt +0 -0
  637. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cpp_demangle-0.4.3-NOTICES.txt +0 -0
  638. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cpufeatures-0.2.7-NOTICES.txt +0 -0
  639. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-crc32fast-1.3.2-NOTICES.txt +0 -0
  640. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-criterion-0.6.0-NOTICES.txt +0 -0
  641. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-criterion-plot-0.5.0-NOTICES.txt +0 -0
  642. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-crossbeam-deque-0.8.1-NOTICES.txt +0 -0
  643. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-crossbeam-epoch-0.9.18-NOTICES.txt +0 -0
  644. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-crossbeam-utils-0.8.20-NOTICES.txt +0 -0
  645. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-crunchy-0.2.2-NOTICES.txt +0 -0
  646. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-crypto-common-0.1.6-NOTICES.txt +0 -0
  647. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-cty-0.2.2-NOTICES.txt +0 -0
  648. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-debugid-0.8.0-NOTICES.txt +0 -0
  649. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-deranged-0.3.11-NOTICES.txt +0 -0
  650. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-derive_arbitrary-1.4.0-NOTICES.txt +0 -0
  651. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-digest-0.10.7-NOTICES.txt +0 -0
  652. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-directories-next-2.0.0-NOTICES.txt +0 -0
  653. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-dirs-sys-next-0.1.2-NOTICES.txt +0 -0
  654. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-displaydoc-0.2.5-NOTICES.txt +0 -0
  655. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-dlmalloc-0.2.4-NOTICES.txt +0 -0
  656. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-downcast-rs-2.0.1-NOTICES.txt +0 -0
  657. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-easy-smt-0.2.2-NOTICES.txt +0 -0
  658. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-egg-0.6.0-NOTICES.txt +0 -0
  659. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-either-1.13.0-NOTICES.txt +0 -0
  660. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-embedded-io-0.4.0-NOTICES.txt +0 -0
  661. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-encode_unicode-0.3.6-NOTICES.txt +0 -0
  662. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-encoding_rs-0.8.31-NOTICES.txt +0 -0
  663. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-env_filter-0.1.2-NOTICES.txt +0 -0
  664. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-env_logger-0.10.0-NOTICES.txt +0 -0
  665. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-env_logger-0.11.5-NOTICES.txt +0 -0
  666. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-equivalent-1.0.1-NOTICES.txt +0 -0
  667. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-errno-0.3.10-NOTICES.txt +0 -0
  668. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-escape8259-0.5.2-NOTICES.txt +0 -0
  669. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fallible-iterator-0.3.0-NOTICES.txt +0 -0
  670. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fastrand-2.3.0-NOTICES.txt +0 -0
  671. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fd-lock-4.0.2-NOTICES.txt +0 -0
  672. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-file-per-thread-logger-0.2.0-NOTICES.txt +0 -0
  673. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-filecheck-0.5.0-NOTICES.txt +0 -0
  674. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-filetime-0.2.16-NOTICES.txt +0 -0
  675. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fixedbitset-0.4.2-NOTICES.txt +0 -0
  676. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-flagset-0.4.3-NOTICES.txt +0 -0
  677. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-flate2-1.1.0-NOTICES.txt +0 -0
  678. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fnv-1.0.7-NOTICES.txt +0 -0
  679. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-foldhash-0.1.3-NOTICES.txt +0 -0
  680. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-foreign-types-0.3.2-NOTICES.txt +0 -0
  681. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-foreign-types-shared-0.1.1-NOTICES.txt +0 -0
  682. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-form_urlencoded-1.2.1-NOTICES.txt +0 -0
  683. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fs-set-times-0.20.1-NOTICES.txt +0 -0
  684. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fslock-0.2.1-NOTICES.txt +0 -0
  685. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-0.3.31-NOTICES.txt +0 -0
  686. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-channel-0.3.31-NOTICES.txt +0 -0
  687. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-core-0.3.31-NOTICES.txt +0 -0
  688. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-executor-0.3.31-NOTICES.txt +0 -0
  689. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-io-0.3.31-NOTICES.txt +0 -0
  690. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-macro-0.3.31-NOTICES.txt +0 -0
  691. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-sink-0.3.31-NOTICES.txt +0 -0
  692. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-task-0.3.31-NOTICES.txt +0 -0
  693. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-futures-util-0.3.31-NOTICES.txt +0 -0
  694. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-fxprof-processed-profile-0.8.1-NOTICES.txt +0 -0
  695. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-generic-array-0.14.5-NOTICES.txt +0 -0
  696. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-getrandom-0.2.15-NOTICES.txt +0 -0
  697. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-getrandom-0.3.1-NOTICES.txt +0 -0
  698. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-gimli-0.31.1-NOTICES.txt +0 -0
  699. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-gimli-0.32.0-NOTICES.txt +0 -0
  700. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-glob-0.3.1-NOTICES.txt +0 -0
  701. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-gzip-header-1.0.0-NOTICES.txt +0 -0
  702. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-h2-0.4.4-NOTICES.txt +0 -0
  703. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-half-1.8.2-NOTICES.txt +0 -0
  704. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-half-2.4.1-NOTICES.txt +0 -0
  705. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-hashbrown-0.12.3-NOTICES.txt +0 -0
  706. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-hashbrown-0.15.2-NOTICES.txt +0 -0
  707. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-heck-0.4.1-NOTICES.txt +0 -0
  708. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-heck-0.5.0-NOTICES.txt +0 -0
  709. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-hermit-abi-0.3.9-NOTICES.txt +0 -0
  710. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-hmac-0.12.1-NOTICES.txt +0 -0
  711. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-home-0.5.9-NOTICES.txt +0 -0
  712. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-http-1.0.0-NOTICES.txt +0 -0
  713. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-http-body-1.0.0-NOTICES.txt +0 -0
  714. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-http-body-util-0.1.0-NOTICES.txt +0 -0
  715. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-httparse-1.8.0-NOTICES.txt +0 -0
  716. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-httpdate-1.0.2-NOTICES.txt +0 -0
  717. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-humantime-2.1.0-NOTICES.txt +0 -0
  718. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-hyper-1.0.1-NOTICES.txt +0 -0
  719. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-iana-time-zone-0.1.61-NOTICES.txt +0 -0
  720. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-iana-time-zone-haiku-0.1.2-NOTICES.txt +0 -0
  721. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_collections-1.5.0-NOTICES.txt +0 -0
  722. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_locid-1.5.0-NOTICES.txt +0 -0
  723. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_locid_transform-1.5.0-NOTICES.txt +0 -0
  724. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_locid_transform_data-1.5.0-NOTICES.txt +0 -0
  725. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_normalizer-1.5.0-NOTICES.txt +0 -0
  726. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_normalizer_data-1.5.0-NOTICES.txt +0 -0
  727. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_properties-1.5.1-NOTICES.txt +0 -0
  728. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_properties_data-1.5.0-NOTICES.txt +0 -0
  729. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_provider-1.5.0-NOTICES.txt +0 -0
  730. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-icu_provider_macros-1.5.0-NOTICES.txt +0 -0
  731. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-id-arena-2.2.1-NOTICES.txt +0 -0
  732. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-idna-1.0.3-NOTICES.txt +0 -0
  733. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-idna_adapter-1.2.0-NOTICES.txt +0 -0
  734. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-im-rc-15.1.0-NOTICES.txt +0 -0
  735. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-indexmap-1.9.1-NOTICES.txt +0 -0
  736. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-indexmap-2.7.0-NOTICES.txt +0 -0
  737. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-indicatif-0.13.0-NOTICES.txt +0 -0
  738. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-inout-0.1.3-NOTICES.txt +0 -0
  739. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-instant-0.1.12-NOTICES.txt +0 -0
  740. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-io-extras-0.18.3-NOTICES.txt +0 -0
  741. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-io-lifetimes-2.0.3-NOTICES.txt +0 -0
  742. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ipnet-2.5.0-NOTICES.txt +0 -0
  743. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-is-terminal-0.4.10-NOTICES.txt +0 -0
  744. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-is_terminal_polyfill-1.70.1-NOTICES.txt +0 -0
  745. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-itertools-0.10.5-NOTICES.txt +0 -0
  746. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-itertools-0.13.0-NOTICES.txt +0 -0
  747. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-itertools-0.14.0-NOTICES.txt +0 -0
  748. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-itoa-1.0.14-NOTICES.txt +0 -0
  749. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ittapi-0.4.0-NOTICES.txt +0 -0
  750. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ittapi-sys-0.4.0-NOTICES.txt +0 -0
  751. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-jobserver-0.1.32-NOTICES.txt +0 -0
  752. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-js-sys-0.3.74-NOTICES.txt +0 -0
  753. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-json-from-wast-0.239.0-NOTICES.txt +0 -0
  754. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-lazy_static-1.4.0-NOTICES.txt +0 -0
  755. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-leb128-0.2.5-NOTICES.txt +0 -0
  756. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-leb128fmt-0.1.0-NOTICES.txt +0 -0
  757. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-libc-0.2.171-NOTICES.txt +0 -0
  758. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-libfuzzer-sys-0.4.8-NOTICES.txt +0 -0
  759. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-libloading-0.8.6-NOTICES.txt +0 -0
  760. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-libm-0.2.11-NOTICES.txt +0 -0
  761. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-libtest-mimic-0.8.1-NOTICES.txt +0 -0
  762. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-linux-raw-sys-0.4.14-NOTICES.txt +0 -0
  763. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-linux-raw-sys-0.9.3-NOTICES.txt +0 -0
  764. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-listenfd-1.0.0-NOTICES.txt +0 -0
  765. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-litemap-0.7.4-NOTICES.txt +0 -0
  766. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-log-0.4.27-NOTICES.txt +0 -0
  767. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-logos-0.14.2-NOTICES.txt +0 -0
  768. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-logos-codegen-0.14.2-NOTICES.txt +0 -0
  769. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-logos-derive-0.14.2-NOTICES.txt +0 -0
  770. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-mach2-0.4.2-NOTICES.txt +0 -0
  771. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-matchers-0.1.0-NOTICES.txt +0 -0
  772. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-matrixmultiply-0.3.9-NOTICES.txt +0 -0
  773. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-maybe-owned-0.3.4-NOTICES.txt +0 -0
  774. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-memchr-2.5.0-NOTICES.txt +0 -0
  775. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-memfd-0.6.4-NOTICES.txt +0 -0
  776. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-memmap2-0.2.3-NOTICES.txt +0 -0
  777. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-minimal-lexical-0.2.1-NOTICES.txt +0 -0
  778. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-miniz_oxide-0.8.9-NOTICES.txt +0 -0
  779. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-mio-1.0.3-NOTICES.txt +0 -0
  780. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-multi-stash-0.2.0-NOTICES.txt +0 -0
  781. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-mutatis-0.3.2-NOTICES.txt +0 -0
  782. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-native-tls-0.2.14-NOTICES.txt +0 -0
  783. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ndarray-0.15.6-NOTICES.txt +0 -0
  784. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-nom-7.1.3-NOTICES.txt +0 -0
  785. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-nu-ansi-term-0.46.0-NOTICES.txt +0 -0
  786. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-num-complex-0.4.6-NOTICES.txt +0 -0
  787. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-num-conv-0.1.0-NOTICES.txt +0 -0
  788. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-num-integer-0.1.46-NOTICES.txt +0 -0
  789. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-num-traits-0.2.19-NOTICES.txt +0 -0
  790. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-num_cpus-1.16.0-NOTICES.txt +0 -0
  791. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-number_prefix-0.3.0-NOTICES.txt +0 -0
  792. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-object-0.36.5-NOTICES.txt +0 -0
  793. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-object-0.37.3-NOTICES.txt +0 -0
  794. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ocaml-boxroot-sys-0.2.0-NOTICES.txt +0 -0
  795. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ocaml-interop-0.8.8-NOTICES.txt +0 -0
  796. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ocaml-sys-0.22.3-NOTICES.txt +0 -0
  797. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-once_cell-1.19.0-NOTICES.txt +0 -0
  798. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-oorandom-11.1.3-NOTICES.txt +0 -0
  799. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openssl-0.10.73-NOTICES.txt +0 -0
  800. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openssl-macros-0.1.1-NOTICES.txt +0 -0
  801. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openssl-probe-0.1.6-NOTICES.txt +0 -0
  802. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openssl-sys-0.9.109-NOTICES.txt +0 -0
  803. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openvino-0.9.0-NOTICES.txt +0 -0
  804. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openvino-finder-0.9.0-NOTICES.txt +0 -0
  805. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-openvino-sys-0.9.0-NOTICES.txt +0 -0
  806. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ort-2.0.0-rc.2-NOTICES.txt +0 -0
  807. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ort-sys-2.0.0-rc.2-NOTICES.txt +0 -0
  808. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-overload-0.1.1-NOTICES.txt +0 -0
  809. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-password-hash-0.4.2-NOTICES.txt +0 -0
  810. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-paste-1.0.7-NOTICES.txt +0 -0
  811. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-pbkdf2-0.11.0-NOTICES.txt +0 -0
  812. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-percent-encoding-2.3.1-NOTICES.txt +0 -0
  813. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-petgraph-0.6.5-NOTICES.txt +0 -0
  814. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-pin-project-lite-0.2.14-NOTICES.txt +0 -0
  815. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-pin-utils-0.1.0-NOTICES.txt +0 -0
  816. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-pkg-config-0.3.29-NOTICES.txt +0 -0
  817. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-postcard-1.0.8-NOTICES.txt +0 -0
  818. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-powerfmt-0.2.0-NOTICES.txt +0 -0
  819. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ppv-lite86-0.2.16-NOTICES.txt +0 -0
  820. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-prettyplease-0.2.31-NOTICES.txt +0 -0
  821. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-proc-macro2-1.0.92-NOTICES.txt +0 -0
  822. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-proptest-1.0.0-NOTICES.txt +0 -0
  823. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-quick-error-1.2.3-NOTICES.txt +0 -0
  824. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-quick-error-2.0.1-NOTICES.txt +0 -0
  825. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-quote-1.0.36-NOTICES.txt +0 -0
  826. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand-0.8.5-NOTICES.txt +0 -0
  827. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand-0.9.2-NOTICES.txt +0 -0
  828. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand_chacha-0.3.1-NOTICES.txt +0 -0
  829. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand_chacha-0.9.0-NOTICES.txt +0 -0
  830. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand_core-0.6.3-NOTICES.txt +0 -0
  831. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand_core-0.9.3-NOTICES.txt +0 -0
  832. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand_xorshift-0.3.0-NOTICES.txt +0 -0
  833. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rand_xoshiro-0.6.0-NOTICES.txt +0 -0
  834. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-raw-cpuid-11.5.0-NOTICES.txt +0 -0
  835. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rawpointer-0.2.1-NOTICES.txt +0 -0
  836. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rayon-1.5.3-NOTICES.txt +0 -0
  837. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rayon-core-1.12.0-NOTICES.txt +0 -0
  838. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-redox_syscall-0.2.13-NOTICES.txt +0 -0
  839. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-redox_users-0.4.3-NOTICES.txt +0 -0
  840. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regalloc2-0.13.2-NOTICES.txt +0 -0
  841. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regex-1.9.1-NOTICES.txt +0 -0
  842. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regex-automata-0.1.10-NOTICES.txt +0 -0
  843. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regex-automata-0.3.3-NOTICES.txt +0 -0
  844. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regex-syntax-0.6.25-NOTICES.txt +0 -0
  845. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regex-syntax-0.7.4-NOTICES.txt +0 -0
  846. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-regex-syntax-0.8.5-NOTICES.txt +0 -0
  847. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-region-3.0.2-NOTICES.txt +0 -0
  848. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ring-0.17.14-NOTICES.txt +0 -0
  849. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustc-demangle-0.1.24-NOTICES.txt +0 -0
  850. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustc-hash-2.1.1-NOTICES.txt +0 -0
  851. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustix-0.38.43-NOTICES.txt +0 -0
  852. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustix-1.0.3-NOTICES.txt +0 -0
  853. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustix-linux-procfs-0.1.1-NOTICES.txt +0 -0
  854. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustls-0.22.4-NOTICES.txt +0 -0
  855. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustls-0.23.7-NOTICES.txt +0 -0
  856. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustls-pki-types-1.3.1-NOTICES.txt +0 -0
  857. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustls-webpki-0.102.2-NOTICES.txt +0 -0
  858. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rustversion-1.0.14-NOTICES.txt +0 -0
  859. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-rusty-fork-0.3.0-NOTICES.txt +0 -0
  860. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ryu-1.0.9-NOTICES.txt +0 -0
  861. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-safetensors-0.3.3-NOTICES.txt +0 -0
  862. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-same-file-1.0.6-NOTICES.txt +0 -0
  863. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-schannel-0.1.27-NOTICES.txt +0 -0
  864. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-security-framework-2.11.1-NOTICES.txt +0 -0
  865. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-security-framework-sys-2.14.0-NOTICES.txt +0 -0
  866. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-semver-1.0.17-NOTICES.txt +0 -0
  867. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-serde-1.0.215-NOTICES.txt +0 -0
  868. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-serde_derive-1.0.215-NOTICES.txt +0 -0
  869. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-serde_json-1.0.140-NOTICES.txt +0 -0
  870. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-serde_spanned-0.6.5-NOTICES.txt +0 -0
  871. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-serde_yaml-0.9.34+deprecated-NOTICES.txt +0 -0
  872. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-sha1-0.10.6-NOTICES.txt +0 -0
  873. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-sha2-0.10.2-NOTICES.txt +0 -0
  874. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-sharded-slab-0.1.4-NOTICES.txt +0 -0
  875. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-shlex-1.3.0-NOTICES.txt +0 -0
  876. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-shuffling-allocator-1.1.2-NOTICES.txt +0 -0
  877. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-signal-hook-registry-1.4.1-NOTICES.txt +0 -0
  878. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-similar-2.2.0-NOTICES.txt +0 -0
  879. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-sized-chunks-0.6.5-NOTICES.txt +0 -0
  880. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-slab-0.4.7-NOTICES.txt +0 -0
  881. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-smallvec-1.13.2-NOTICES.txt +0 -0
  882. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-socket2-0.5.7-NOTICES.txt +0 -0
  883. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-souper-ir-2.1.0-NOTICES.txt +0 -0
  884. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-spin-0.9.8-NOTICES.txt +0 -0
  885. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-stable_deref_trait-1.2.0-NOTICES.txt +0 -0
  886. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-static_assertions-1.1.0-NOTICES.txt +0 -0
  887. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-string-interner-0.19.0-NOTICES.txt +0 -0
  888. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-strsim-0.11.1-NOTICES.txt +0 -0
  889. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-strum-0.24.1-NOTICES.txt +0 -0
  890. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-strum_macros-0.24.3-NOTICES.txt +0 -0
  891. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-subtle-2.5.0-NOTICES.txt +0 -0
  892. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-symbolic_expressions-5.0.3-NOTICES.txt +0 -0
  893. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-syn-1.0.92-NOTICES.txt +0 -0
  894. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-syn-2.0.100-NOTICES.txt +0 -0
  895. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-synstructure-0.13.1-NOTICES.txt +0 -0
  896. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-system-interface-0.27.1-NOTICES.txt +0 -0
  897. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tar-0.4.41-NOTICES.txt +0 -0
  898. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-target-lexicon-0.13.0-NOTICES.txt +0 -0
  899. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tch-0.17.0-NOTICES.txt +0 -0
  900. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tempfile-3.21.0-NOTICES.txt +0 -0
  901. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-termcolor-1.4.1-NOTICES.txt +0 -0
  902. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-terminal_size-0.4.2-NOTICES.txt +0 -0
  903. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-test-log-0.2.11-NOTICES.txt +0 -0
  904. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-thiserror-1.0.65-NOTICES.txt +0 -0
  905. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-thiserror-2.0.12-NOTICES.txt +0 -0
  906. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-thiserror-impl-1.0.65-NOTICES.txt +0 -0
  907. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-thiserror-impl-2.0.12-NOTICES.txt +0 -0
  908. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-thread_local-1.1.4-NOTICES.txt +0 -0
  909. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-time-0.3.36-NOTICES.txt +0 -0
  910. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-time-core-0.1.2-NOTICES.txt +0 -0
  911. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tinystr-0.7.6-NOTICES.txt +0 -0
  912. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tinytemplate-1.2.1-NOTICES.txt +0 -0
  913. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tokio-1.44.2-NOTICES.txt +0 -0
  914. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tokio-macros-2.5.0-NOTICES.txt +0 -0
  915. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tokio-native-tls-0.3.1-NOTICES.txt +0 -0
  916. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tokio-rustls-0.25.0-NOTICES.txt +0 -0
  917. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tokio-util-0.7.4-NOTICES.txt +0 -0
  918. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-toml-0.8.10-NOTICES.txt +0 -0
  919. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-toml_datetime-0.6.5-NOTICES.txt +0 -0
  920. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-toml_edit-0.22.4-NOTICES.txt +0 -0
  921. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-torch-sys-0.17.0-NOTICES.txt +0 -0
  922. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tracing-0.1.37-NOTICES.txt +0 -0
  923. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tracing-attributes-0.1.26-NOTICES.txt +0 -0
  924. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tracing-core-0.1.31-NOTICES.txt +0 -0
  925. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tracing-log-0.1.3-NOTICES.txt +0 -0
  926. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-tracing-subscriber-0.3.17-NOTICES.txt +0 -0
  927. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-try-lock-0.2.4-NOTICES.txt +0 -0
  928. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-typenum-1.15.0-NOTICES.txt +0 -0
  929. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-unicode-ident-1.0.8-NOTICES.txt +0 -0
  930. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-unicode-segmentation-1.11.0-NOTICES.txt +0 -0
  931. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-unicode-width-0.1.9-NOTICES.txt +0 -0
  932. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-unicode-width-0.2.0-NOTICES.txt +0 -0
  933. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-unicode-xid-0.2.3-NOTICES.txt +0 -0
  934. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-unsafe-libyaml-0.2.11-NOTICES.txt +0 -0
  935. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-untrusted-0.9.0-NOTICES.txt +0 -0
  936. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-ureq-2.10.0-NOTICES.txt +0 -0
  937. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-url-2.5.4-NOTICES.txt +0 -0
  938. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-utf16_iter-1.0.5-NOTICES.txt +0 -0
  939. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-utf8_iter-1.0.4-NOTICES.txt +0 -0
  940. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-utf8parse-0.2.1-NOTICES.txt +0 -0
  941. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-uuid-1.0.0-NOTICES.txt +0 -0
  942. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-v8-137.2.0-NOTICES.txt +0 -0
  943. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-valuable-0.1.0-NOTICES.txt +0 -0
  944. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-vcpkg-0.2.15-NOTICES.txt +0 -0
  945. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-version_check-0.9.4-NOTICES.txt +0 -0
  946. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wait-timeout-0.2.0-NOTICES.txt +0 -0
  947. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-walkdir-2.3.3-NOTICES.txt +0 -0
  948. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-want-0.3.0-NOTICES.txt +0 -0
  949. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasi-0.11.0+wasi-snapshot-preview1-NOTICES.txt +0 -0
  950. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasi-0.13.3+wasi-0.2.2-NOTICES.txt +0 -0
  951. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasi-nn-0.6.0-NOTICES.txt +0 -0
  952. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasip1-1.0.0-NOTICES.txt +0 -0
  953. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasip2-1.0.0+wasi-0.2.4-NOTICES.txt +0 -0
  954. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-bindgen-0.2.97-NOTICES.txt +0 -0
  955. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-bindgen-backend-0.2.97-NOTICES.txt +0 -0
  956. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-bindgen-macro-0.2.97-NOTICES.txt +0 -0
  957. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-bindgen-macro-support-0.2.97-NOTICES.txt +0 -0
  958. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-bindgen-shared-0.2.97-NOTICES.txt +0 -0
  959. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-compose-0.239.0-NOTICES.txt +0 -0
  960. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-encoder-0.239.0-NOTICES.txt +0 -0
  961. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-metadata-0.239.0-NOTICES.txt +0 -0
  962. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-mutate-0.239.0-NOTICES.txt +0 -0
  963. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-smith-0.239.0-NOTICES.txt +0 -0
  964. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasm-wave-0.239.0-NOTICES.txt +0 -0
  965. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmi-0.43.1-NOTICES.txt +0 -0
  966. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmi_collections-0.43.1-NOTICES.txt +0 -0
  967. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmi_core-0.43.1-NOTICES.txt +0 -0
  968. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmi_ir-0.43.1-NOTICES.txt +0 -0
  969. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmparser-0.227.1-NOTICES.txt +0 -0
  970. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmparser-0.239.0-NOTICES.txt +0 -0
  971. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wasmprinter-0.239.0-NOTICES.txt +0 -0
  972. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wast-239.0.0-NOTICES.txt +0 -0
  973. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wast-35.0.2-NOTICES.txt +0 -0
  974. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wat-1.239.0-NOTICES.txt +0 -0
  975. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-web-sys-0.3.57-NOTICES.txt +0 -0
  976. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-webpki-roots-0.26.1-NOTICES.txt +0 -0
  977. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-which-6.0.3-NOTICES.txt +0 -0
  978. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winapi-0.3.9-NOTICES.txt +0 -0
  979. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winapi-i686-pc-windows-gnu-0.4.0-NOTICES.txt +0 -0
  980. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winapi-util-0.1.5-NOTICES.txt +0 -0
  981. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winapi-x86_64-pc-windows-gnu-0.4.0-NOTICES.txt +0 -0
  982. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-0.52.0-NOTICES.txt +0 -0
  983. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-core-0.52.0-NOTICES.txt +0 -0
  984. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-implement-0.52.0-NOTICES.txt +0 -0
  985. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-interface-0.52.0-NOTICES.txt +0 -0
  986. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-sys-0.52.0-NOTICES.txt +0 -0
  987. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-sys-0.59.0-NOTICES.txt +0 -0
  988. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-sys-0.60.2-NOTICES.txt +0 -0
  989. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-targets-0.52.6-NOTICES.txt +0 -0
  990. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows-targets-0.53.2-NOTICES.txt +0 -0
  991. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_aarch64_gnullvm-0.52.6-NOTICES.txt +0 -0
  992. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_aarch64_gnullvm-0.53.0-NOTICES.txt +0 -0
  993. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_aarch64_msvc-0.52.6-NOTICES.txt +0 -0
  994. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_aarch64_msvc-0.53.0-NOTICES.txt +0 -0
  995. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_i686_gnu-0.52.6-NOTICES.txt +0 -0
  996. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_i686_gnu-0.53.0-NOTICES.txt +0 -0
  997. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_i686_gnullvm-0.52.6-NOTICES.txt +0 -0
  998. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_i686_gnullvm-0.53.0-NOTICES.txt +0 -0
  999. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_i686_msvc-0.52.6-NOTICES.txt +0 -0
  1000. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_i686_msvc-0.53.0-NOTICES.txt +0 -0
  1001. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_x86_64_gnu-0.52.6-NOTICES.txt +0 -0
  1002. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_x86_64_gnu-0.53.0-NOTICES.txt +0 -0
  1003. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_x86_64_gnullvm-0.52.6-NOTICES.txt +0 -0
  1004. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_x86_64_gnullvm-0.53.0-NOTICES.txt +0 -0
  1005. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_x86_64_msvc-0.52.6-NOTICES.txt +0 -0
  1006. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-windows_x86_64_msvc-0.53.0-NOTICES.txt +0 -0
  1007. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winnow-0.5.39-NOTICES.txt +0 -0
  1008. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winsafe-0.0.19-NOTICES.txt +0 -0
  1009. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-winx-0.36.3-NOTICES.txt +0 -0
  1010. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-bindgen-0.45.1-NOTICES.txt +0 -0
  1011. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-bindgen-0.46.0-NOTICES.txt +0 -0
  1012. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-bindgen-core-0.46.0-NOTICES.txt +0 -0
  1013. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-bindgen-rt-0.33.0-NOTICES.txt +0 -0
  1014. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-bindgen-rust-0.46.0-NOTICES.txt +0 -0
  1015. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-bindgen-rust-macro-0.46.0-NOTICES.txt +0 -0
  1016. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-component-0.239.0-NOTICES.txt +0 -0
  1017. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-wit-parser-0.239.0-NOTICES.txt +0 -0
  1018. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-witx-0.9.1-NOTICES.txt +0 -0
  1019. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-write16-1.0.0-NOTICES.txt +0 -0
  1020. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-writeable-0.5.5-NOTICES.txt +0 -0
  1021. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-xattr-1.3.1-NOTICES.txt +0 -0
  1022. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-yoke-0.7.5-NOTICES.txt +0 -0
  1023. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-yoke-derive-0.7.5-NOTICES.txt +0 -0
  1024. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zerofrom-0.1.5-NOTICES.txt +0 -0
  1025. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zerofrom-derive-0.1.5-NOTICES.txt +0 -0
  1026. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zeroize-1.7.0-NOTICES.txt +0 -0
  1027. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zerovec-0.10.4-NOTICES.txt +0 -0
  1028. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zerovec-derive-0.10.3-NOTICES.txt +0 -0
  1029. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zip-0.6.6-NOTICES.txt +0 -0
  1030. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zstd-0.11.2+zstd.1.5.2-NOTICES.txt +0 -0
  1031. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zstd-0.13.0-NOTICES.txt +0 -0
  1032. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zstd-safe-5.0.2+zstd.1.5.2-NOTICES.txt +0 -0
  1033. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zstd-safe-7.0.0-NOTICES.txt +0 -0
  1034. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/rust-zstd-sys-2.0.9+zstd.1.5.5-NOTICES.txt +0 -0
  1035. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/scikit-learn-1.9.1-NOTICES.txt +0 -0
  1036. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/scipy-1.18.1-NOTICES.txt +0 -0
  1037. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/soundfile-0.14.0-NOTICES.txt +0 -0
  1038. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/soxr-1.1.0-NOTICES.txt +0 -0
  1039. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/sparkle-2.10.0-NOTICES.txt +0 -0
  1040. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/sqlite-3530100-NOTICES.txt +0 -0
  1041. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/threadpoolctl-3.6.0-NOTICES.txt +0 -0
  1042. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/tqdm-4.70.0-NOTICES.txt +0 -0
  1043. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/typing-extensions-4.16.0-NOTICES.txt +0 -0
  1044. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/urllib3-2.7.0-NOTICES.txt +0 -0
  1045. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/wasmtime-38.0.0-NOTICES.txt +0 -0
  1046. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/wasmtime-native-38.0.1-NOTICES.txt +0 -0
  1047. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/winrt-runtime-3.2.1-NOTICES.txt +0 -0
  1048. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/winrt-windows-foundation-3.2.1-NOTICES.txt +0 -0
  1049. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/winrt-windows-foundation-collections-3.2.1-NOTICES.txt +0 -0
  1050. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/winrt-windows-media-3.2.1-NOTICES.txt +0 -0
  1051. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/winrt-windows-media-interop-3.2.1-NOTICES.txt +0 -0
  1052. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/winrt-windows-storage-streams-3.2.1-NOTICES.txt +0 -0
  1053. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/xz-5.8.3-NOTICES.txt +0 -0
  1054. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/zig-runtime-0.14.1-NOTICES.txt +0 -0
  1055. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/zlib-1.3.2-NOTICES.txt +0 -0
  1056. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/notices/zlib-ffmpeg-1.3.1-NOTICES.txt +0 -0
  1057. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/third-party/sources.json +0 -0
  1058. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/update-helper.spec +0 -0
  1059. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/update-keys.json +0 -0
  1060. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/ActivatePackage.cs +0 -0
  1061. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/AppxManifest.xml.in +0 -0
  1062. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/iOpenPod.manifest.xml +0 -0
  1063. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/assets/store-logo-300.png +0 -0
  1064. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/certification-notes.md +0 -0
  1065. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/license.html +0 -0
  1066. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/license.md +0 -0
  1067. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/privacy.html +0 -0
  1068. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/privacy.md +0 -0
  1069. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/01-album-library.png +0 -0
  1070. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/02-album-details.png +0 -0
  1071. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/03-playlists.png +0 -0
  1072. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/04-photo-library.png +0 -0
  1073. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/05-sync-review.png +0 -0
  1074. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/06-about-and-credits.png +0 -0
  1075. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots/manifest.json +0 -0
  1076. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/screenshots.md +0 -0
  1077. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/support.html +0 -0
  1078. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store/support.md +0 -0
  1079. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/store-identity.toml +0 -0
  1080. {iopenpod-2.0.4 → iopenpod-2.0.5}/packaging/windows/test-installed-package.ps1 +0 -0
  1081. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/assemble_github_release.py +0 -0
  1082. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/build_windows_sndfile.py +0 -0
  1083. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/capture_store_screenshots.py +0 -0
  1084. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/check_macos_bundle.py +0 -0
  1085. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/check_macos_dmg.py +0 -0
  1086. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/check_wheel.py +0 -0
  1087. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/check_windows_bundle.py +0 -0
  1088. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/compile_synesthesia_shaders.py +0 -0
  1089. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/generate_fake_music_library.py +0 -0
  1090. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/generate_media_fixtures.py +0 -0
  1091. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/package_app.py +0 -0
  1092. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/package_updates.py +0 -0
  1093. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/prepare_release.py +0 -0
  1094. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/prepare_release_sources.py +0 -0
  1095. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/prepare_store_kit.py +0 -0
  1096. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/publish_update_feed.py +0 -0
  1097. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/sync_macos_build.py +0 -0
  1098. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/update_feed.py +0 -0
  1099. {iopenpod-2.0.4 → iopenpod-2.0.5}/scripts/update_translations.py +0 -0
  1100. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/__init__.py +0 -0
  1101. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/authority.py +0 -0
  1102. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/data/__init__.py +0 -0
  1103. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/identifiers.py +0 -0
  1104. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/metadata.py +0 -0
  1105. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/py.typed +0 -0
  1106. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/device_registry/registry.py +0 -0
  1107. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/PROTOTYPE.md +0 -0
  1108. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/album_card_delegate.py +0 -0
  1109. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/collection_card_delegate.py +0 -0
  1110. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/collection_list_delegate.py +0 -0
  1111. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/photo_album_membership_delegate.py +0 -0
  1112. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/photo_card_delegate.py +0 -0
  1113. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/podcast_delegates.py +0 -0
  1114. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/selection_group_delegate.py +0 -0
  1115. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/delegates/track_artwork_delegate.py +0 -0
  1116. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/artwork_editor.py +0 -0
  1117. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/device_picker.py +0 -0
  1118. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/external_playlist_files.py +0 -0
  1119. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/library_review.py +0 -0
  1120. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/linux_identity_setup.py +0 -0
  1121. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/media_folders.py +0 -0
  1122. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/media_tools_setup.py +0 -0
  1123. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/photo_album_editor.py +0 -0
  1124. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/photo_album_manager.py +0 -0
  1125. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/photo_metadata_editor.py +0 -0
  1126. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/playlist_editor.py +0 -0
  1127. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/playlist_export.py +0 -0
  1128. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/podcast_search.py +0 -0
  1129. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/podcast_sync_settings.py +0 -0
  1130. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/scrobble_report.py +0 -0
  1131. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/dialogs/tag_normalizer.py +0 -0
  1132. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/host_library_browser.py +0 -0
  1133. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/navigation.py +0 -0
  1134. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/backup_page.py +0 -0
  1135. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/collection_page.py +0 -0
  1136. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/library_page.py +0 -0
  1137. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/photo_page.py +0 -0
  1138. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/placeholder_page.py +0 -0
  1139. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/playlist_page.py +0 -0
  1140. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/podcast_page.py +0 -0
  1141. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/sync_execution_page.py +0 -0
  1142. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/sync_plan_page.py +0 -0
  1143. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/synesthesia_page.py +0 -0
  1144. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/pages/track_page.py +0 -0
  1145. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/application_icon.py +0 -0
  1146. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/artwork.py +0 -0
  1147. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/artwork_provider.py +0 -0
  1148. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/backup_messages.py +0 -0
  1149. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/collection_text.py +0 -0
  1150. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/device_images.py +0 -0
  1151. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/display.py +0 -0
  1152. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/eta.py +0 -0
  1153. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/i18n/manager.py +0 -0
  1154. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/i18n/text.py +0 -0
  1155. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/i18n/workflow.py +0 -0
  1156. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/icons.py +0 -0
  1157. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/image_color.py +0 -0
  1158. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/library_card.py +0 -0
  1159. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/middle_mouse_scrolling.py +0 -0
  1160. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/photo.py +0 -0
  1161. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/photo_provider.py +0 -0
  1162. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/podcast_artwork_provider.py +0 -0
  1163. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/podcast_collection_artwork.py +0 -0
  1164. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/selection_checkbox.py +0 -0
  1165. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/theme/backup_styles.py +0 -0
  1166. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/theme/checkbox_style.py +0 -0
  1167. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/theme/dynamic.py +0 -0
  1168. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/theme/manager.py +0 -0
  1169. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/theme/podcast_styles.py +0 -0
  1170. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/theme/tokens.py +0 -0
  1171. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/presentation/track_drag_preview.py +0 -0
  1172. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/sync_workspace.py +0 -0
  1173. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/__init__.py +0 -0
  1174. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/conductor.py +0 -0
  1175. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/motion_phases.py +0 -0
  1176. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/persistent_world.py +0 -0
  1177. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/preview.py +0 -0
  1178. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/render_resolution.py +0 -0
  1179. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/renderer.py +0 -0
  1180. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/scene_director.py +0 -0
  1181. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.frag +0 -0
  1182. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.frag.qsb +0 -0
  1183. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.vert +0 -0
  1184. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.vert.qsb +0 -0
  1185. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/events.frag +0 -0
  1186. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/events.frag.qsb +0 -0
  1187. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/feedback.frag +0 -0
  1188. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/feedback.frag.qsb +0 -0
  1189. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/field_sim.comp +0 -0
  1190. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/field_sim.comp.qsb +0 -0
  1191. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.frag +0 -0
  1192. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.frag.qsb +0 -0
  1193. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.vert +0 -0
  1194. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.vert.qsb +0 -0
  1195. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/fullscreen.vert +0 -0
  1196. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/fullscreen.vert.qsb +0 -0
  1197. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.frag +0 -0
  1198. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.frag.qsb +0 -0
  1199. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.vert +0 -0
  1200. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.vert.qsb +0 -0
  1201. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/present.frag +0 -0
  1202. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/present.frag.qsb +0 -0
  1203. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/scenes.frag +0 -0
  1204. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/shader_sources/scenes.frag.qsb +0 -0
  1205. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/synesthesia/visual_style.py +0 -0
  1206. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/album_grid.py +0 -0
  1207. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/app_combo_box.py +0 -0
  1208. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/artwork_view.py +0 -0
  1209. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/browser_chrome.py +0 -0
  1210. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/collection_detail.py +0 -0
  1211. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/collection_grid.py +0 -0
  1212. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/elided_label.py +0 -0
  1213. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/equalized_grid.py +0 -0
  1214. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/eta_label.py +0 -0
  1215. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/host_media_drop.py +0 -0
  1216. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/ipod_preferences.py +0 -0
  1217. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/library_content.py +0 -0
  1218. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/library_drag_grid.py +0 -0
  1219. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/library_toolbar.py +0 -0
  1220. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/photo_album_membership_grid.py +0 -0
  1221. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/photo_grid.py +0 -0
  1222. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/photo_inspector.py +0 -0
  1223. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/playback_pane.py +0 -0
  1224. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/player_bar.py +0 -0
  1225. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/playlist_artwork_banner.py +0 -0
  1226. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/playlist_tree.py +0 -0
  1227. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/podcast_artwork.py +0 -0
  1228. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/scrobbling_settings.py +0 -0
  1229. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/search_field.py +0 -0
  1230. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/selection_grid.py +0 -0
  1231. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/selection_group_transition.py +0 -0
  1232. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/setting_group.py +0 -0
  1233. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/sidebar.py +0 -0
  1234. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/status_controls.py +0 -0
  1235. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/status_list.py +0 -0
  1236. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/sync_preparation_progress.py +0 -0
  1237. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/sync_review_group.py +0 -0
  1238. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/sync_selection_actions.py +0 -0
  1239. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/sync_settings.py +0 -0
  1240. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/sync_storage_bar.py +0 -0
  1241. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/themed_buttons.py +0 -0
  1242. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/track_list_header.py +0 -0
  1243. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/GUI/widgets/track_table.py +0 -0
  1244. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/__main__.py +0 -0
  1245. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/app.py +0 -0
  1246. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/artwork_controller.py +0 -0
  1247. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/artwork_import.py +0 -0
  1248. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backup_controller.py +0 -0
  1249. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/__init__.py +0 -0
  1250. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/_json.py +0 -0
  1251. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/archive.py +0 -0
  1252. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/models.py +0 -0
  1253. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/original_archive.py +0 -0
  1254. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/outcomes.py +0 -0
  1255. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/recovery.py +0 -0
  1256. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/repository.py +0 -0
  1257. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/scope.py +0 -0
  1258. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/backups/service.py +0 -0
  1259. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/chaptered_conversion.py +0 -0
  1260. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/chaptered_conversion_controller.py +0 -0
  1261. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/context.py +0 -0
  1262. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/certifi_ssl.py +0 -0
  1263. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/eta.py +0 -0
  1264. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/runtime.py +0 -0
  1265. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/settings/definitions.py +0 -0
  1266. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/settings/paths.py +0 -0
  1267. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/settings/service.py +0 -0
  1268. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/settings/stores.py +0 -0
  1269. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/settings/transcoding.py +0 -0
  1270. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/core/status.py +0 -0
  1271. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/device_controller.py +0 -0
  1272. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/display_text.py +0 -0
  1273. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/host_media_fingerprint.py +0 -0
  1274. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/host_media_folders.py +0 -0
  1275. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/host_playlists.py +0 -0
  1276. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/ipod_media_controller.py +0 -0
  1277. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/library_export.py +0 -0
  1278. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/library_export_controller.py +0 -0
  1279. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/library_workspace.py +0 -0
  1280. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/__init__.py +0 -0
  1281. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/content_type.py +0 -0
  1282. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/inspection.py +0 -0
  1283. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/lyrics_reader.py +0 -0
  1284. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/models.py +0 -0
  1285. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/music_paths.py +0 -0
  1286. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/photo_sync.py +0 -0
  1287. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/progress.py +0 -0
  1288. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/sync_artwork.py +0 -0
  1289. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media/tags.py +0 -0
  1290. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/media_tools_controller.py +0 -0
  1291. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/metadata_fields.py +0 -0
  1292. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/album_list_model.py +0 -0
  1293. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/artwork.py +0 -0
  1294. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/artwork_seed.py +0 -0
  1295. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/collection_list_model.py +0 -0
  1296. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/device.py +0 -0
  1297. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/filter_compat.py +0 -0
  1298. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/ipod_preferences.py +0 -0
  1299. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/keyed_projection.py +0 -0
  1300. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/library_drag.py +0 -0
  1301. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/photo_album_membership_model.py +0 -0
  1302. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/photo_list_model.py +0 -0
  1303. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/photos.py +0 -0
  1304. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/playback_models.py +0 -0
  1305. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/playlist_tree_model.py +0 -0
  1306. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/podcast_list_models.py +0 -0
  1307. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/selection_grouping.py +0 -0
  1308. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/track_columns.py +0 -0
  1309. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/track_order.py +0 -0
  1310. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/models/track_table_model.py +0 -0
  1311. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/music_import_controller.py +0 -0
  1312. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/photo_controller.py +0 -0
  1313. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/__init__.py +0 -0
  1314. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/_qt_io.py +0 -0
  1315. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/_qt_logging.py +0 -0
  1316. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/backend.py +0 -0
  1317. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/qt_backend.py +0 -0
  1318. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/runtime_check.py +0 -0
  1319. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/__init__.py +0 -0
  1320. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/bridge.py +0 -0
  1321. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/factory.py +0 -0
  1322. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/linux.py +0 -0
  1323. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/macos.py +0 -0
  1324. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/session.py +0 -0
  1325. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback/system_media/windows.py +0 -0
  1326. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/playback_controller.py +0 -0
  1327. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/__init__.py +0 -0
  1328. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/artwork_controller.py +0 -0
  1329. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/catalog.py +0 -0
  1330. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/controller.py +0 -0
  1331. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/documents.py +0 -0
  1332. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/feed_client.py +0 -0
  1333. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/identity.py +0 -0
  1334. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/media.py +0 -0
  1335. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/models.py +0 -0
  1336. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/store.py +0 -0
  1337. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/sync.py +0 -0
  1338. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/sync_artwork.py +0 -0
  1339. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/podcasts/sync_preparation.py +0 -0
  1340. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/__init__.py +0 -0
  1341. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/_json.py +0 -0
  1342. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/controller.py +0 -0
  1343. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/credentials.py +0 -0
  1344. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/models.py +0 -0
  1345. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/queue.py +0 -0
  1346. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/reporting.py +0 -0
  1347. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/service.py +0 -0
  1348. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/settings.py +0 -0
  1349. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/scrobbling/timestamps.py +0 -0
  1350. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/services/device_time.py +0 -0
  1351. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/services/ipod_preferences.py +0 -0
  1352. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/services/linux_identity.py +0 -0
  1353. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/services/volume_presentation.py +0 -0
  1354. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/smart_playlist_preview.py +0 -0
  1355. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/sync_controller.py +0 -0
  1356. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/sync_storage.py +0 -0
  1357. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/__init__.py +0 -0
  1358. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/_structure.py +0 -0
  1359. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/audio.py +0 -0
  1360. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/backend.py +0 -0
  1361. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/controller.py +0 -0
  1362. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/dsp.py +0 -0
  1363. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/enrichment.py +0 -0
  1364. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/synesthesia/models.py +0 -0
  1365. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/tag_normalization_controller.py +0 -0
  1366. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/tag_normalizer.py +0 -0
  1367. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/track_conversion.py +0 -0
  1368. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/track_playback_policy.py +0 -0
  1369. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/__init__.py +0 -0
  1370. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/backend.py +0 -0
  1371. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/bootstrap.py +0 -0
  1372. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/controller.py +0 -0
  1373. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/github.py +0 -0
  1374. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/helper.py +0 -0
  1375. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/installation.py +0 -0
  1376. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/platform.py +0 -0
  1377. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/portable.py +0 -0
  1378. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/processes.py +0 -0
  1379. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/processes_windows.py +0 -0
  1380. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/pypi.py +0 -0
  1381. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/python_helper.py +0 -0
  1382. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/python_installation.py +0 -0
  1383. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/releases.py +0 -0
  1384. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/sparkle.py +0 -0
  1385. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/transport.py +0 -0
  1386. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/app/updates/windows.py +0 -0
  1387. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/README.md +0 -0
  1388. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/album.svg +0 -0
  1389. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/alert.svg +0 -0
  1390. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/bell.svg +0 -0
  1391. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/book.svg +0 -0
  1392. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/box.svg +0 -0
  1393. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/broadcast.svg +0 -0
  1394. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/check-circle.svg +0 -0
  1395. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/chevron-left.svg +0 -0
  1396. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/eject.svg +0 -0
  1397. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/film.svg +0 -0
  1398. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/folder.svg +0 -0
  1399. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/grid.svg +0 -0
  1400. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/list.svg +0 -0
  1401. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/minus.svg +0 -0
  1402. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/monitor.svg +0 -0
  1403. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/music.svg +0 -0
  1404. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/pause.svg +0 -0
  1405. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/photo.svg +0 -0
  1406. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/play-last.svg +0 -0
  1407. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/play-next.svg +0 -0
  1408. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/play.svg +0 -0
  1409. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/playlist.svg +0 -0
  1410. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/plus.svg +0 -0
  1411. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/refresh.svg +0 -0
  1412. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/search.svg +0 -0
  1413. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/settings-sliders.svg +0 -0
  1414. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/skip-back.svg +0 -0
  1415. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/skip-forward.svg +0 -0
  1416. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/smart-playlist.svg +0 -0
  1417. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/synesthesia.svg +0 -0
  1418. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/user.svg +0 -0
  1419. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/video.svg +0 -0
  1420. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/volume.svg +0 -0
  1421. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/glyphs/x.svg +0 -0
  1422. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/DJShott-icon.txt +0 -0
  1423. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/README.md +0 -0
  1424. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-128.png +0 -0
  1425. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-16.png +0 -0
  1426. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-24.png +0 -0
  1427. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-256.png +0 -0
  1428. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-32.png +0 -0
  1429. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-48.png +0 -0
  1430. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon-64.png +0 -0
  1431. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/icons/icon.ico +0 -0
  1432. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod1.png +0 -0
  1433. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod11-Black.png +0 -0
  1434. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod11-Silver.png +0 -0
  1435. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod11B-Black.png +0 -0
  1436. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod12-Black.png +0 -0
  1437. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod12-Blue.png +0 -0
  1438. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod12-Green.png +0 -0
  1439. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod12-Pink.png +0 -0
  1440. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod12-Red.png +0 -0
  1441. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod12-Silver.png +0 -0
  1442. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Black.png +0 -0
  1443. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Blue.png +0 -0
  1444. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Green.png +0 -0
  1445. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Orange.png +0 -0
  1446. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Pink.png +0 -0
  1447. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Purple.png +0 -0
  1448. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Red.png +0 -0
  1449. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Silver.png +0 -0
  1450. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod15-Yellow.png +0 -0
  1451. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Black.png +0 -0
  1452. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Blue.png +0 -0
  1453. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Green.png +0 -0
  1454. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Orange.png +0 -0
  1455. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Pink.png +0 -0
  1456. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Purple.png +0 -0
  1457. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Red.png +0 -0
  1458. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Silver.png +0 -0
  1459. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod16-Yellow.png +0 -0
  1460. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-Blue.png +0 -0
  1461. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-DarkGray.png +0 -0
  1462. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-Green.png +0 -0
  1463. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-Orange.png +0 -0
  1464. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-Pink.png +0 -0
  1465. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-Red.png +0 -0
  1466. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod17-Silver.png +0 -0
  1467. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Blue.png +0 -0
  1468. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-DarkGray.png +0 -0
  1469. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Green.png +0 -0
  1470. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Pink.png +0 -0
  1471. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Purple.png +0 -0
  1472. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Red.png +0 -0
  1473. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Silver.png +0 -0
  1474. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-SpaceGray.png +0 -0
  1475. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18-Yellow.png +0 -0
  1476. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18A-Blue.png +0 -0
  1477. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18A-Gold.png +0 -0
  1478. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18A-Pink.png +0 -0
  1479. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18A-Red.png +0 -0
  1480. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18A-Silver.png +0 -0
  1481. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod18A-SpaceGray.png +0 -0
  1482. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod2.png +0 -0
  1483. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3-Blue.png +0 -0
  1484. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3-Gold.png +0 -0
  1485. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3-Green.png +0 -0
  1486. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3-Pink.png +0 -0
  1487. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3-Silver.png +0 -0
  1488. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3B-Blue.png +0 -0
  1489. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3B-Green.png +0 -0
  1490. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod3B-Pink.png +0 -0
  1491. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod4-BlackRed.png +0 -0
  1492. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod4-White.png +0 -0
  1493. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod5-BlackRed.png +0 -0
  1494. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod5-White.png +0 -0
  1495. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod6-Black.png +0 -0
  1496. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod6-BlackRed.png +0 -0
  1497. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod6-White.png +0 -0
  1498. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod7-Black.png +0 -0
  1499. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod7-White.png +0 -0
  1500. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod9-Black.png +0 -0
  1501. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod9-Blue.png +0 -0
  1502. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod9-Green.png +0 -0
  1503. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod9-Pink.png +0 -0
  1504. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod9-Red.png +0 -0
  1505. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPod9-Silver.png +0 -0
  1506. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/ipod_images/iPodGeneric.png +0 -0
  1507. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iOpenPod/assets/linux/61-iopenpod.rules +0 -0
  1508. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/builder/build_ArtworkDB.py +0 -0
  1509. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/ithmb.py +0 -0
  1510. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/ithmb_writer.py +0 -0
  1511. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/parser/mhod_payload_spec_registry.py +0 -0
  1512. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/parser/parser_definition.py +0 -0
  1513. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/artwork_index.py +0 -0
  1514. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhaf.py +0 -0
  1515. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhba.py +0 -0
  1516. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhfd.py +0 -0
  1517. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhia.py +0 -0
  1518. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhif.py +0 -0
  1519. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhii.py +0 -0
  1520. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhla.py +0 -0
  1521. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhlf.py +0 -0
  1522. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhli.py +0 -0
  1523. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhni.py +0 -0
  1524. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod.py +0 -0
  1525. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/container_mhod.py +0 -0
  1526. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +0 -0
  1527. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/string_mhod.py +0 -0
  1528. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhsd.py +0 -0
  1529. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/constants.py +0 -0
  1530. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/database_definition.py +0 -0
  1531. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/shared/mhod_payload_spec_registry.py +0 -0
  1532. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/writer/mhod_encoder.py +0 -0
  1533. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/writer/mhod_serializer.py +0 -0
  1534. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/ArtworkDB/writer/write_ArtworkDB.py +0 -0
  1535. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/builder/build_PhotosDB.py +0 -0
  1536. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/parser/mhod_payload_spec_registry.py +0 -0
  1537. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/parser/parser_definition.py +0 -0
  1538. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhaf.py +0 -0
  1539. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhba.py +0 -0
  1540. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhfd.py +0 -0
  1541. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhia.py +0 -0
  1542. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhif.py +0 -0
  1543. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhii.py +0 -0
  1544. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhla.py +0 -0
  1545. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhlf.py +0 -0
  1546. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhli.py +0 -0
  1547. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhni.py +0 -0
  1548. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod.py +0 -0
  1549. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/container_mhod.py +0 -0
  1550. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +0 -0
  1551. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/string_mhod.py +0 -0
  1552. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/chunk_defs/mhsd.py +0 -0
  1553. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/constants.py +0 -0
  1554. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/database_definition.py +0 -0
  1555. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/shared/mhod_payload_spec_registry.py +0 -0
  1556. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/PhotosDB/writer/write_PhotosDB.py +0 -0
  1557. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/SQLiteDB/artifacts.py +0 -0
  1558. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/SQLiteDB/checksum.py +0 -0
  1559. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/device_time.py +0 -0
  1560. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/builder/build_iTunesDB.py +0 -0
  1561. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/parser/mhod_parsers/url_mhod.py +0 -0
  1562. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/parser/mhod_payload_spec_registry.py +0 -0
  1563. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/parser/parser_definition.py +0 -0
  1564. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhbd.py +0 -0
  1565. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhia.py +0 -0
  1566. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhii.py +0 -0
  1567. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhip.py +0 -0
  1568. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhit.py +0 -0
  1569. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhla.py +0 -0
  1570. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhli.py +0 -0
  1571. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhlp.py +0 -0
  1572. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhlt.py +0 -0
  1573. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod.py +0 -0
  1574. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/library_index_mhod.py +0 -0
  1575. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/library_jump_table_mhod.py +0 -0
  1576. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +0 -0
  1577. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/plist_mhod.py +0 -0
  1578. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/settings_mhod.py +0 -0
  1579. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_rules_mhod.py +0 -0
  1580. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/string_mhod.py +0 -0
  1581. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/url_mhod.py +0 -0
  1582. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/video_details_mhod.py +0 -0
  1583. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhsd.py +0 -0
  1584. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/chunk_defs/mhyp.py +0 -0
  1585. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/constants.py +0 -0
  1586. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/database_definition.py +0 -0
  1587. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/device_time.py +0 -0
  1588. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/field_converters.py +0 -0
  1589. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/shared/mhod_payload_spec_registry.py +0 -0
  1590. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/writer/calcHashAB.NOTICE +0 -0
  1591. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/writer/calcHashAB.wasm.b64 +0 -0
  1592. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/writer/signature.py +0 -0
  1593. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/iTunesDB/writer/write_iTunesDB.py +0 -0
  1594. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_album_index.py +0 -0
  1595. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_browse_groups.py +0 -0
  1596. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_browse_index.py +0 -0
  1597. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_document_edit.py +0 -0
  1598. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_field_policy.py +0 -0
  1599. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_folder_validation.py +0 -0
  1600. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_folder_writing.py +0 -0
  1601. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_group_verification.py +0 -0
  1602. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_hidden_writing.py +0 -0
  1603. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_hierarchy.py +0 -0
  1604. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_identities.py +0 -0
  1605. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_index_verification.py +0 -0
  1606. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_lyrics_resources.py +0 -0
  1607. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_native_values.py +0 -0
  1608. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_photo_analysis.py +0 -0
  1609. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_photo_projection.py +0 -0
  1610. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_photo_writing.py +0 -0
  1611. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_playlist_datasets.py +0 -0
  1612. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_playlist_projection.py +0 -0
  1613. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_playlist_verification.py +0 -0
  1614. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_playlist_writing.py +0 -0
  1615. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_podcast_writing.py +0 -0
  1616. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_projection.py +0 -0
  1617. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_resolve_write.py +0 -0
  1618. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_resolved_write.py +0 -0
  1619. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_sidecar_projection.py +0 -0
  1620. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_smart_projection.py +0 -0
  1621. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_smart_writing.py +0 -0
  1622. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_source_warnings.py +0 -0
  1623. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_time_warnings.py +0 -0
  1624. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_track_header_verification.py +0 -0
  1625. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/_track_verification.py +0 -0
  1626. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/artwork.py +0 -0
  1627. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/media.py +0 -0
  1628. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/models.py +0 -0
  1629. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/photos.py +0 -0
  1630. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/playlists.py +0 -0
  1631. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/signing.py +0 -0
  1632. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/smart_rules.py +0 -0
  1633. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/library/sqlite.py +0 -0
  1634. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/__init__.py +0 -0
  1635. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/_source.py +0 -0
  1636. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/codec.py +0 -0
  1637. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/definitions.py +0 -0
  1638. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/itunes.py +0 -0
  1639. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/itunes_definitions.py +0 -0
  1640. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/models.py +0 -0
  1641. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/preferences/timezones.py +0 -0
  1642. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/py.typed +0 -0
  1643. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/shared/binary_struct.py +0 -0
  1644. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/shared/chunk_builder.py +0 -0
  1645. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/shared/chunk_field.py +0 -0
  1646. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/shared/measure_memory.py +0 -0
  1647. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/shared/to_json.py +0 -0
  1648. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/shared/types.py +0 -0
  1649. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/sidecars/__init__.py +0 -0
  1650. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iPodDB/tools/chunk_browser.py +0 -0
  1651. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iopenpod_launcher.py +0 -0
  1652. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/iopenpod_update_helper.py +0 -0
  1653. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/__init__.py +0 -0
  1654. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/_filesystem.py +0 -0
  1655. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/_transaction_journal.py +0 -0
  1656. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/_transactions.py +0 -0
  1657. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/_writer_lock.py +0 -0
  1658. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/device_capture.py +0 -0
  1659. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/errors.py +0 -0
  1660. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_capture.py +0 -0
  1661. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_directory.py +0 -0
  1662. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_files.py +0 -0
  1663. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_input.py +0 -0
  1664. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_installation.py +0 -0
  1665. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_tools.py +0 -0
  1666. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/host_usage.py +0 -0
  1667. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/media_probe.py +0 -0
  1668. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/models.py +0 -0
  1669. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/paths.py +0 -0
  1670. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/__init__.py +0 -0
  1671. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/base.py +0 -0
  1672. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/common.py +0 -0
  1673. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/host_install_windows.py +0 -0
  1674. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/linux.py +0 -0
  1675. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/linux_eject.py +0 -0
  1676. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/macos.py +0 -0
  1677. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/macos_eject.py +0 -0
  1678. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/macos_volume_metadata.py +0 -0
  1679. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/macos_vpd.py +0 -0
  1680. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/native.py +0 -0
  1681. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/windows.py +0 -0
  1682. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/platform/windows_eject.py +0 -0
  1683. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/portal.py +0 -0
  1684. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/py.typed +0 -0
  1685. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/scsi_vpd.py +0 -0
  1686. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/session.py +0 -0
  1687. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/testing.py +0 -0
  1688. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/transactions.py +0 -0
  1689. {iopenpod-2.0.4 → iopenpod-2.0.5}/src/storage/volume_metadata.py +0 -0
  1690. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/README.md +0 -0
  1691. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/__init__.py +0 -0
  1692. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/conftest.py +0 -0
  1693. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/device_registry/test_artwork_profiles.py +0 -0
  1694. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/device_registry/test_authority.py +0 -0
  1695. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/device_registry/test_metadata.py +0 -0
  1696. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/ArtworkDB/README.md +0 -0
  1697. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/ArtworkDB/original-empty.b64 +0 -0
  1698. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/ArtworkDB/original-with-unknown-data.b64 +0 -0
  1699. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/PhotosDB/README.md +0 -0
  1700. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/PhotosDB/original-photo-library.b64 +0 -0
  1701. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/SQLiteDB/README.md +0 -0
  1702. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/iTunesDB/README.md +0 -0
  1703. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/iTunesDB/original-empty.b64 +0 -0
  1704. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/README.md +0 -0
  1705. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/chapters-cover.m4a.b64 +0 -0
  1706. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/generator.json +0 -0
  1707. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/lossless.m4a.b64 +0 -0
  1708. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/multi-track.m4v.b64 +0 -0
  1709. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/multi-track.mov.b64 +0 -0
  1710. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/silent.mp4.b64 +0 -0
  1711. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/source.mkv.b64 +0 -0
  1712. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/surround.flac.b64 +0 -0
  1713. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/tone-vbr.mp3.b64 +0 -0
  1714. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/tone.aiff.b64 +0 -0
  1715. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/tone.m4a.b64 +0 -0
  1716. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/tone.mp3.b64 +0 -0
  1717. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/media/tone.wav.b64 +0 -0
  1718. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/normalization/original-cases.json +0 -0
  1719. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/writing/README.md +0 -0
  1720. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/writing/hash58-original.json +0 -0
  1721. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/writing/original_smart_rules.json +0 -0
  1722. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/fixtures/writing/playlists-original.json +0 -0
  1723. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/application_shell_test_support.py +0 -0
  1724. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/conftest.py +0 -0
  1725. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_artwork_provider.py +0 -0
  1726. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_collection_text.py +0 -0
  1727. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_device_images.py +0 -0
  1728. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_display.py +0 -0
  1729. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_german_catalog.py +0 -0
  1730. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_i18n_manager.py +0 -0
  1731. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_icons.py +0 -0
  1732. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_image_color.py +0 -0
  1733. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_library_card.py +0 -0
  1734. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_middle_mouse_scrolling.py +0 -0
  1735. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_model_translations.py +0 -0
  1736. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_photo_provider.py +0 -0
  1737. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_round_header_colors.py +0 -0
  1738. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_spanish_catalog.py +0 -0
  1739. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_theme_manager.py +0 -0
  1740. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/presentation/test_translation_catalog.py +0 -0
  1741. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_motion_phases.py +0 -0
  1742. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_page.py +0 -0
  1743. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_page_integration.py +0 -0
  1744. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_persistent_world.py +0 -0
  1745. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_render_resolution.py +0 -0
  1746. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_renderer_assets.py +0 -0
  1747. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_renderer_pixels.py +0 -0
  1748. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_renderer_timing.py +0 -0
  1749. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_scene_director.py +0 -0
  1750. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/synesthesia/test_shader_smoothing.py +0 -0
  1751. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_app_updates.py +0 -0
  1752. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_application_shell.py +0 -0
  1753. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_artwork_editor.py +0 -0
  1754. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_backup_messages.py +0 -0
  1755. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_backup_page.py +0 -0
  1756. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_browser_chrome.py +0 -0
  1757. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_device_auto_refresh.py +0 -0
  1758. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_eject_messages.py +0 -0
  1759. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_eta_label.py +0 -0
  1760. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_external_playlist_files_dialog.py +0 -0
  1761. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_history_track_interactions.py +0 -0
  1762. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_host_library_browser.py +0 -0
  1763. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_host_media_drop.py +0 -0
  1764. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_ipod_library_view_mode.py +0 -0
  1765. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_ipod_preferences_tab.py +0 -0
  1766. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_library_double_click.py +0 -0
  1767. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_library_grid_drag.py +0 -0
  1768. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_library_review_translations.py +0 -0
  1769. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_library_track_order.py +0 -0
  1770. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_media_folders_dialog.py +0 -0
  1771. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_media_tools_dialog.py +0 -0
  1772. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_page_count_translations.py +0 -0
  1773. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_photo_grid.py +0 -0
  1774. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_photo_page.py +0 -0
  1775. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_playback_lyrics.py +0 -0
  1776. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_playback_ui.py +0 -0
  1777. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_playlist_page.py +0 -0
  1778. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_playlist_tree.py +0 -0
  1779. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_podcast_page.py +0 -0
  1780. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_podcast_translations.py +0 -0
  1781. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_queue_actions.py +0 -0
  1782. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_scrobbling_ui.py +0 -0
  1783. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_selection_grid_gestures.py +0 -0
  1784. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_selection_group_grid.py +0 -0
  1785. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_selection_group_transition.py +0 -0
  1786. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_status_list.py +0 -0
  1787. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_collection_detail.py +0 -0
  1788. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_execution_page.py +0 -0
  1789. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_playlist_review.py +0 -0
  1790. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_recovery_choice.py +0 -0
  1791. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_scan_i18n.py +0 -0
  1792. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_selection_actions.py +0 -0
  1793. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_settings.py +0 -0
  1794. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_sync_storage_bar.py +0 -0
  1795. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_tag_normalizer.py +0 -0
  1796. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_track_table.py +0 -0
  1797. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_track_title_bar.py +0 -0
  1798. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_widget_translations.py +0 -0
  1799. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/GUI/test_workflow_failure_translations.py +0 -0
  1800. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/__init__.py +0 -0
  1801. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/backups/test_backup_service.py +0 -0
  1802. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/backups/test_json.py +0 -0
  1803. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/backups/test_original_import.py +0 -0
  1804. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/backups/test_outcomes.py +0 -0
  1805. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/backups/test_repository.py +0 -0
  1806. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/backups/test_restore_recovery.py +0 -0
  1807. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/core/settings/test_service.py +0 -0
  1808. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/core/settings/test_transcoding_settings.py +0 -0
  1809. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/core/test_eta.py +0 -0
  1810. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/core/test_logging.py +0 -0
  1811. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/core/test_status.py +0 -0
  1812. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/media/test_music_paths.py +0 -0
  1813. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_library_models.py +0 -0
  1814. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_library_search_order.py +0 -0
  1815. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_photo_album_drops.py +0 -0
  1816. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_photo_models.py +0 -0
  1817. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_playback_models.py +0 -0
  1818. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_playlist_tree_model.py +0 -0
  1819. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_podcast_list_models.py +0 -0
  1820. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/models/test_selection_grouping.py +0 -0
  1821. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/podcast_test_support.py +0 -0
  1822. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_catalog.py +0 -0
  1823. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_controller.py +0 -0
  1824. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_documents.py +0 -0
  1825. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_feed_client.py +0 -0
  1826. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_podcast_artwork_controller.py +0 -0
  1827. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_podcast_sync_artwork.py +0 -0
  1828. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_store.py +0 -0
  1829. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_sync.py +0 -0
  1830. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/podcasts/test_sync_preparation.py +0 -0
  1831. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_artwork_format_repair_save.py +0 -0
  1832. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_device_time_integration.py +0 -0
  1833. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_first_artwork_save.py +0 -0
  1834. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_ipod_preferences_inspection.py +0 -0
  1835. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_linux_identity.py +0 -0
  1836. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_sidecar_reconciliation.py +0 -0
  1837. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_sync_recovery.py +0 -0
  1838. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/services/test_volume_presentation.py +0 -0
  1839. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/sync_test_support.py +0 -0
  1840. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_analysis_core.py +0 -0
  1841. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_audio.py +0 -0
  1842. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_backend.py +0 -0
  1843. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_conductor_mapping.py +0 -0
  1844. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_conductor_reliability.py +0 -0
  1845. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_scene_calibration.py +0 -0
  1846. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/synesthesia/test_synesthesia_controller.py +0 -0
  1847. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_app.py +0 -0
  1848. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_artwork_controller.py +0 -0
  1849. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_artwork_import.py +0 -0
  1850. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_backup_controller.py +0 -0
  1851. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_chaptered_conversion.py +0 -0
  1852. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_device_controller.py +0 -0
  1853. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_display_text.py +0 -0
  1854. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_github_updates.py +0 -0
  1855. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_host_media_fingerprint.py +0 -0
  1856. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_host_media_folders.py +0 -0
  1857. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_host_metadata_tags.py +0 -0
  1858. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_host_playlists.py +0 -0
  1859. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_install_channel.py +0 -0
  1860. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_library_export.py +0 -0
  1861. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_library_export_controller.py +0 -0
  1862. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_library_write_controller.py +0 -0
  1863. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_linux_system_media.py +0 -0
  1864. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_lyrics_reader.py +0 -0
  1865. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_macos_system_media.py +0 -0
  1866. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_media_inspection.py +0 -0
  1867. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_music_import_controller.py +0 -0
  1868. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_photo_controller.py +0 -0
  1869. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_photo_workspace.py +0 -0
  1870. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_playback_controller.py +0 -0
  1871. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_playback_runtime.py +0 -0
  1872. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_playlist_workspace.py +0 -0
  1873. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_podcast_now_playing.py +0 -0
  1874. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_podcast_sync_execution.py +0 -0
  1875. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_podcast_sync_fingerprints.py +0 -0
  1876. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_podcast_sync_lifecycle.py +0 -0
  1877. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_portable_updates.py +0 -0
  1878. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_qt_playback_backend.py +0 -0
  1879. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_release_metadata.py +0 -0
  1880. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_scrobbling_credentials.py +0 -0
  1881. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_scrobbling_sync.py +0 -0
  1882. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_scrobbling_timestamps.py +0 -0
  1883. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_smart_playlist_preview.py +0 -0
  1884. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_startup_imports.py +0 -0
  1885. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_sync_artwork.py +0 -0
  1886. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_sync_playback_policy.py +0 -0
  1887. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_sync_recovery_choices.py +0 -0
  1888. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_sync_recovery_detection.py +0 -0
  1889. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_sync_storage.py +0 -0
  1890. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_system_media_bridge.py +0 -0
  1891. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_tag_normalization_controller.py +0 -0
  1892. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_terminal_cleanup_selection.py +0 -0
  1893. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_track_conversion.py +0 -0
  1894. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_track_playback_policy.py +0 -0
  1895. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_update_bootstrap.py +0 -0
  1896. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_update_processes.py +0 -0
  1897. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_update_transport.py +0 -0
  1898. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_updates.py +0 -0
  1899. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/app/test_windows_system_media.py +0 -0
  1900. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/lyrics_test_support.py +0 -0
  1901. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/playback_test_support.py +0 -0
  1902. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/test_host_scan_storage_boundary.py +0 -0
  1903. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iOpenPod/test_library_boundary.py +0 -0
  1904. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/ArtworkDB/test_artwork_index.py +0 -0
  1905. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/ArtworkDB/test_auxiliary_mhod.py +0 -0
  1906. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/ArtworkDB/test_ithmb.py +0 -0
  1907. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/ArtworkDB/test_ithmb_writer.py +0 -0
  1908. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/PhotosDB/test_photosdb.py +0 -0
  1909. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/iTunesDB/test_device_time.py +0 -0
  1910. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/iTunesDB/test_signatures.py +0 -0
  1911. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_album_index.py +0 -0
  1912. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_album_write_regressions.py +0 -0
  1913. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_browse_relationships.py +0 -0
  1914. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_device_time_context.py +0 -0
  1915. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_library.py +0 -0
  1916. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_lyrics_writing.py +0 -0
  1917. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_media_content.py +0 -0
  1918. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_media_lifecycle.py +0 -0
  1919. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_media_replacement.py +0 -0
  1920. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_models.py +0 -0
  1921. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_occurrence_drafts.py +0 -0
  1922. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_photos.py +0 -0
  1923. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_playlist_datasets.py +0 -0
  1924. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_playlists.py +0 -0
  1925. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_resource_validation.py +0 -0
  1926. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_sidecar_projection.py +0 -0
  1927. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_signing.py +0 -0
  1928. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_smart_writing.py +0 -0
  1929. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_track_native_verification.py +0 -0
  1930. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_video_flags.py +0 -0
  1931. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_write_preservation.py +0 -0
  1932. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_write_progress.py +0 -0
  1933. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/library/test_write_relationships.py +0 -0
  1934. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/sidecars/test_sidecar_boundary.py +0 -0
  1935. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/test_binary_struct_definitions.py +0 -0
  1936. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/test_chunk_browser.py +0 -0
  1937. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/test_error_contracts.py +0 -0
  1938. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/test_itunes_preferences.py +0 -0
  1939. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/test_preferences.py +0 -0
  1940. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/iPodDB/test_type_contracts.py +0 -0
  1941. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_device_capture.py +0 -0
  1942. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_host_capture.py +0 -0
  1943. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_host_directory.py +0 -0
  1944. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_host_files.py +0 -0
  1945. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_host_input.py +0 -0
  1946. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_host_installation.py +0 -0
  1947. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_host_tools.py +0 -0
  1948. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_macos_kernel.py +0 -0
  1949. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_media_tool_environment.py +0 -0
  1950. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_paths.py +0 -0
  1951. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_platform_eject.py +0 -0
  1952. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_platform_facts.py +0 -0
  1953. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_platform_volume_metadata.py +0 -0
  1954. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_portal.py +0 -0
  1955. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_private_temp_paths.py +0 -0
  1956. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_recovery.py +0 -0
  1957. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_scsi_vpd.py +0 -0
  1958. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_session.py +0 -0
  1959. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_transaction_state.py +0 -0
  1960. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_transactions.py +0 -0
  1961. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_volume_metadata.py +0 -0
  1962. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_windows_volume_identity.py +0 -0
  1963. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/storage/test_writer_lock.py +0 -0
  1964. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_github_release.py +0 -0
  1965. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_main.py +0 -0
  1966. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_native_packaging_collection.py +0 -0
  1967. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_prepare_release.py +0 -0
  1968. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_release_sources.py +0 -0
  1969. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_startup_logging.py +0 -0
  1970. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_store_kit.py +0 -0
  1971. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/test_update_publication.py +0 -0
  1972. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/website/check_seo.py +0 -0
  1973. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/website/navigation.cjs +0 -0
  1974. {iopenpod-2.0.4 → iopenpod-2.0.5}/tests/website/screenshot-viewer.cjs +0 -0
  1975. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/MacOS_Install_IMGS/macOS_Step1.webp +0 -0
  1976. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/MacOS_Install_IMGS/macOS_Step2.webp +0 -0
  1977. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/MacOS_Install_IMGS/macOS_Step3.webp +0 -0
  1978. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/MacOS_Install_IMGS/macOS_Step4.webp +0 -0
  1979. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/MacOS_Install_IMGS/macOS_Step5.webp +0 -0
  1980. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/README.md +0 -0
  1981. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/THEMES.md +0 -0
  1982. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_config.yml +0 -0
  1983. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_data/distribution.json +0 -0
  1984. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_data/faq.json +0 -0
  1985. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_includes/download-channel.html +0 -0
  1986. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_includes/platform-icon.html +0 -0
  1987. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_includes/product-footer.html +0 -0
  1988. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_includes/product-nav.html +0 -0
  1989. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_includes/product-shot.html +0 -0
  1990. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_includes/screenshot-viewer.html +0 -0
  1991. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/_layouts/default.html +0 -0
  1992. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/apple-touch-icon.png +0 -0
  1993. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/favicon-16x16.png +0 -0
  1994. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/favicon-32x32.png +0 -0
  1995. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/favicon.ico +0 -0
  1996. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/google9044a61ef03e1fae.html +0 -0
  1997. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/index.html +0 -0
  1998. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/install-help-redirect.html +0 -0
  1999. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/install-help.html +0 -0
  2000. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/iop2.css +0 -0
  2001. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/iopenpod-icon-256.png +0 -0
  2002. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/robots.txt +0 -0
  2003. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshot-viewer.js +0 -0
  2004. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/backups.webp +0 -0
  2005. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/hero.webp +0 -0
  2006. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/album-library.webp +0 -0
  2007. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/audio-transcoding-settings.webp +0 -0
  2008. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/backups.webp +0 -0
  2009. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/manifest.json +0 -0
  2010. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/media-folders.webp +0 -0
  2011. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/photo-albums.webp +0 -0
  2012. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/smart-playlist.webp +0 -0
  2013. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/sync-change-review.webp +0 -0
  2014. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/sync-media-selection.webp +0 -0
  2015. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/track-artwork.webp +0 -0
  2016. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/iop2/track-metadata.webp +0 -0
  2017. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/podcasts.webp +0 -0
  2018. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/settings.webp +0 -0
  2019. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/smartplaylists.webp +0 -0
  2020. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/syncmedia.webp +0 -0
  2021. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/syncreview.webp +0 -0
  2022. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/syncreview2.webp +0 -0
  2023. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/trackedits.webp +0 -0
  2024. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/screenshots/trackedits2.webp +0 -0
  2025. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/site.css +0 -0
  2026. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/site.min.css +0 -0
  2027. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/site.min.js +0 -0
  2028. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/theme.css +0 -0
  2029. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/theme.js +0 -0
  2030. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/theme.min.css +0 -0
  2031. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/theme.min.js +0 -0
  2032. {iopenpod-2.0.4 → iopenpod-2.0.5}/website/tokens.css +0 -0
@@ -0,0 +1,767 @@
1
+ # iOpenPod Context
2
+
3
+ ## Purpose
4
+
5
+ iOpenPod is a cross-platform desktop application for managing filesystem-accessible
6
+ iPods without iTunes. The long-term product will browse and edit an iPod library,
7
+ plan and apply media synchronization, preserve device-specific database behavior,
8
+ and protect removable media from unsafe writes.
9
+
10
+ iOpenPod 2.0 is a deliberate rebuild of the Original iOpenPod. There is no reduced
11
+ "first usable version" that defines the product's final scope. Development may be
12
+ incremental, but it continues toward feature parity with the Original iOpenPod and
13
+ then beyond it.
14
+
15
+ ## Current stage
16
+
17
+ Microsoft Store installs now check for application updates at launch and expose
18
+ progress and an Update now action through the status bar. Installation waits for
19
+ unsaved Library Drafts and running workflows to be resolved, then hands consent and
20
+ package replacement to Windows. Install Channel detection and typed Update Backends
21
+ also route standalone GitHub releases through signed metadata and an independent
22
+ portable helper or Sparkle on macOS. The public trust key and repository signing
23
+ secret are configured for future releases; existing downloads still need a manual
24
+ bootstrap upgrade. Store eligibility and a full signed-release A-to-B upgrade still
25
+ require native release validation. See [Application updates](docs/app-updates.md)
26
+ and ADR-0105.
27
+ Settings > About also shows the detected Install Channel beside the version and
28
+ offers a manual check using the same update workflow. Other channels are identified
29
+ where runtime evidence permits. Mac App Store, Flatpak and Snap remain managed by
30
+ their installation source. See ADR-0109 for standalone trust and recovery policy.
31
+ Installed Python packages also check PyPI. **Update now** stages a compatible,
32
+ non-yanked stable wheel; **Restart to install** protects pending work, closes the
33
+ app, upgrades that same Python environment, verifies the runtime and relaunches.
34
+ Standard UV tool installs upgrade through UV's tool manager. Editable checkouts
35
+ are excluded. Customized UV tools, pipx, locked, externally managed and read-only
36
+ environments retain manual update guidance. See ADR-0113 for package
37
+ identity, ownership and failure limits; Python package replacement has no automatic
38
+ rollback.
39
+
40
+ Startup checks media tools and offers a skippable setup popup for missing FFmpeg,
41
+ FFprobe, or fpcalc. Settings > Media Tools shows tool and FFmpeg encoder status,
42
+ with setup offered when a tool is missing. Installation is explicitly user-directed
43
+ through WinGet, architecture-specific Homebrew, or supported Linux
44
+ package managers, with progress and subsequent executable verification. Tools stay
45
+ outside the app distribution; fpcalc remains optional. See
46
+ [Media-tool setup](docs/media-tools.md) and ADR-0103 for platform prerequisites.
47
+
48
+ Scrobbling now submits committed iPod music plays to Last.fm and ListenBrainz from
49
+ Maintenance or an optional Sync step. Account-specific Host receipts prevent
50
+ normal retries from replaying accepted listens; pending submissions survive Sync
51
+ removals. Credentials use the native OS keyring. The iPod's aggregate playback
52
+ counters remain evidence rather than per-service delivery state. See
53
+ [Scrobbling](docs/scrobbling.md) and ADR-0101 for timestamp estimates and limits.
54
+ Last.fm dates older than its backdating window are moved to the current day for
55
+ submission, with original evidence retained separately while pending (ADR-0102).
56
+
57
+ iPodDB also provides lossless typed readers/writers for firmware Preferences and
58
+ binary iTunesPrefs. They expose documented device and iTunes settings while
59
+ retaining Unknown Data. Model-specific fields require explicit caller assertions;
60
+ layout recognition remains separate from Device Identity. Companion plist modeling
61
+ and physical preferences editing remain separate work.
62
+ Library dates now use a captured Device Time Context: historical city rules or an
63
+ explicit fixed-offset fallback, UTC-only release/purchase fields, and local Mac
64
+ conversion for Photo dates. Preferences are checked again before publication;
65
+ ambiguous dates remain unavailable and losslessly retained. See ADR-0098 and
66
+ [the time contract](docs/ipod-time.md).
67
+ Settings now includes a read-only iPod Preferences tab. Device selection captures
68
+ both binary preference files through Storage and publishes display summaries with
69
+ the Active iPod; switching or disconnecting clears the previous device's values.
70
+ See [the Preferences contract](docs/ipod-preferences.md) and ADR-0097.
71
+
72
+ iOpenPod 2.0 is in its foundation and binary-format implementation stage. Current
73
+ binary-format work includes definition-driven, lossless parser/writer foundations
74
+ for iTunesDB, ArtworkDB, and PhotosDB. PhotosDB exposes the on-device Photo Database
75
+ as a root-typed artifact over the evidenced ArtworkDB-format nested Chunk and MHOD
76
+ layouts. Every database artifact uses the same mandatory, header-typed Chunk
77
+ Definition contract, one root-typed Database Definition, and the same shared
78
+ structural reader/writer path. These
79
+ foundations remain subject to review as broader application workflows establish
80
+ their stable public interfaces. The repository also contains an architecture draft
81
+ and exploratory application settings and database-definition code whose public
82
+ interfaces and internal layout are not yet settled. Treat
83
+ `docs/source_architecture.md` as the target direction and untested source as evidence
84
+ and experimentation, not as completed implementation.
85
+
86
+ This stage prioritizes shared language, documented decisions, a reproducible Python
87
+ environment, consistent verification tools, and careful implementation of the iPod
88
+ database formats as device-writing workflows become available.
89
+
90
+ Storage now has a generic mounted-volume and Filesystem Session foundation with
91
+ native snapshot discovery for Windows, macOS, and Linux, plus a virtual-volume test
92
+ adapter. It can also return generic SCSI VPD and Host property observations from an
93
+ identity-bound Physical Device without interpreting them as iPod facts. Its current
94
+ macOS adapter correlates each `diskutil` BSD whole-disk identity with generic USB
95
+ identifiers from IOKit before the Application Layer interprets that evidence. Its
96
+ mutation surface includes verified single-file operations, recoverable trash, and
97
+ ordered multi-file Storage Transactions with retained originals and durable Operation
98
+ Journals. Transactions validate unchanged dependencies, stage verified content,
99
+ publish writes before removals, and support explicit restoration after reconnecting.
100
+ Storage now also performs user-directed native safe removal through Windows Plug and
101
+ Play, macOS Disk Arbitration's `diskutil` client, and Linux UDisks2. It never forces
102
+ an unmount, preserves native refusal details, and models an unmounted-but-not-ejected
103
+ partial result by expiring the Connection Generation. Incoming-media planning/import
104
+ and event-driven connection monitoring remain prerequisites for general Sync and
105
+ destructive maintenance workflows. See ADR-0029 and ADR-0060.
106
+
107
+ The Application Layer now coordinates device discovery and selection through
108
+ `DeviceCoordinator`. It reads identity metadata and iTunesDB snapshots only through
109
+ Storage, translates generic Host observations into Device Evidence, asks Device
110
+ Registry to identify each Device Candidate, gives already-read database bytes to
111
+ iPodDB, and owns one Active iPod Filesystem Session. Discovery never writes. When the
112
+ Application Layer builds a discovery snapshot, only mounted Volumes containing the
113
+ `iPod_Control` marker become Device Candidates; ordinary removable media stays a
114
+ Storage observation and never reaches the Device Picker. When the user selects an
115
+ exactly identified iPod, a narrow metadata-reconciliation workflow
116
+ can atomically repair SysInfo, SysInfoExtended, and the version-1
117
+ iOpenPodSysInfoAuthority record on a write-safe Volume before the Library is loaded.
118
+ The repair is verified, flushed, idempotent, and does not authorize Sync or any
119
+ destructive workflow.
120
+ SysInfo and SysInfoExtended remain optional metadata, never the sole required
121
+ source of device knowledge. Signing can use current hardware evidence directly,
122
+ and every SQLite-capable profile can use the built-in Library projection without
123
+ device-supplied postprocess commands. See ADR-0115.
124
+ `DeviceController` runs discovery and selection outside the Qt GUI thread and
125
+ publishes immutable results to the shared library models. If a previous Volume
126
+ Identity is saved, startup makes one background discovery pass to restore that iPod.
127
+ On Windows, macOS, and Linux, opening the Device Picker starts discovery immediately
128
+ and repeats it two seconds after each pass while the picker stays open. Closing it
129
+ stops further picker passes. Searching feedback stays inside the picker, and
130
+ unchanged observations preserve the Active iPod and Library Draft. Native
131
+ event-driven connection monitoring remains separate future work. See ADR-0069 and
132
+ ADR-0071. After a successful selection, it stores the selected Volume Identity in
133
+ global settings. Discovery automatically restores that choice only when exactly one
134
+ matching Device Candidate is ready; the connection-scoped Device Candidate ID is
135
+ never persisted.
136
+ The GUI first opens a modal folder dialog that stages Host Media Library folders and
137
+ their recursive, per-media-type scan settings. Accepting the dialog persists that
138
+ configuration in global settings, starts a cancellable background Host Media Scan,
139
+ and opens the full-window Sync Workspace for scan progress, media selection, and
140
+ Review. The scan covers audio, video, Photos, and Playlists and projects the result
141
+ through the common Library Snapshot API,
142
+ calculates and caches bounded raw Chromaprint fingerprints for Host Tracks and
143
+ SHA-256 content fingerprints for Host Photos, discovers embedded or common
144
+ folder-level Track artwork for lazy source-validated display, and
145
+ explicitly reviews Playlist references outside the selected media catalog, including
146
+ excluded media types and subfolders. M3U/M3U8, PLS, XSPF, WPL, and ASX/WAX/WVX
147
+ documents use bounded Storage reads; only explicitly accepted local audio/video
148
+ references can extend the scan, through identity-checked private Storage captures.
149
+ Network references, nested Playlists, links, and XML entity declarations cannot
150
+ expand access. Host file and folder-artwork churn during scanning is retained as a
151
+ diagnostic instead of failing the best-effort scan; Sync revalidates current source
152
+ facts before writing. See ADR-0074 and ADR-0082. On completion,
153
+ the workspace presents a read-only, source-isolated Host browser made from the same
154
+ Album, collection, Track, Playlist, Photo, and media-category pages as the iPod
155
+ browser. The normal sidebar stays iPod-focused, and the Active iPod Library Draft is
156
+ never replaced. See ADR-0063, ADR-0064, and ADR-0067.
157
+ The main Library browser also accepts dropped Host folders, audio, video, Photos,
158
+ and Playlist files while an Active iPod is available. A drop-zone overlay marks
159
+ accepted drags; each folder opens the shared folder settings to choose recursion
160
+ and audio, video, Photo, and Playlist scanning. Drops enter the
161
+ same Sync Workspace with temporary sources and leave saved media-folder settings
162
+ unchanged. Individual files do not scan sibling media, and Playlist references
163
+ outside the dropped selection retain their explicit review step. Settings,
164
+ Backups, Podcasts management, Synesthesia, and the Sync Workspace reject these drops.
165
+ When an Active iPod is available, the pre-Sync workflow next runs an iPod Media Scan.
166
+ It reads a checksummed Library Sync Helper from
167
+ `iPod_Control/iOpenPod/library-sync-helper.json`, reuses entries whose persistent
168
+ identity and cheap device-file facts still match, and fingerprints only missing or
169
+ stale Tracks and full-resolution Photos. Newly discovered media gets no invented Sync
170
+ history; Sync Details are written only after a successful Sync commit. The
171
+ helper remains matching evidence rather than Library or mutation authority. The
172
+ pre-Review scan does not persist it; successful Sync publishes its new provenance
173
+ after the verified Library commit. The Application Layer then
174
+ prepares an immutable Sync Plan for Tracks and full-resolution Photos. Proven Host
175
+ path relationships are considered before unique content identities; current Host
176
+ size and modification time are compared with the Host facts recorded by a successful
177
+ prior Sync. With unchanged Host file facts, current iPod Track details are compared
178
+ with the committed Sync Details tag fingerprint; a difference prompts a targeted
179
+ Host reread before the plan is finalized. Artwork is checked independently so a
180
+ changed folder cover can also produce Update. Cached Acoustic Fingerprints decide
181
+ whether media must be replaced, accepting their bounded and encoding-insensitive
182
+ comparison. Tag and artwork updates retain existing payloads, with one verified
183
+ file-tag rewrite for lyrics and optional Rockbox tags. Unchanged covers retain
184
+ their iTHMB bytes. Legacy caches migrate without media rereads. When acoustic
185
+ evidence is unavailable, changed Host file facts conservatively need replacement.
186
+ Separate Host and iPod tag baselines prevent normalization from causing repeated
187
+ Updates. Photos retain the file-fact Update rule. See ADR-0120. The
188
+ initial comparison classifies Host-only media as Add and iPod-only media as Remove,
189
+ while missing or ambiguous identities remain Needs attention. The Select Media stage
190
+ defaults correlated Host items on and Host-only items off, supports aggregate Album
191
+ and collection selection,
192
+ and can group grid items as Selected, Mixed, or Deselected. Opening an Album or
193
+ collection card in Select Media replaces the browser with a full detail page,
194
+ including artwork, metadata, bulk selection, and the shared Track table with its
195
+ own search. Back returns to the retained browser; these Sync pages have no split
196
+ Track pane. The global **iPod Library View Mode** setting also offers this shared
197
+ presentation in the iPod browser as **Whole Page Table**, without Sync Selection
198
+ controls. **Split Table** remains its default. Changes apply immediately and are
199
+ saved across restarts. See ADR-0072. Review derives an
200
+ immutable selected Sync Plan in collapsible change groups; iPod-only removal
201
+ candidates start unchecked. Review can exclude individual actions or whole groups
202
+ without changing desired Host membership. Sync Selected validates that plan, checks
203
+ required media tools, prepares compatible media on the Host, and builds an isolated
204
+ Library Draft. Failed independent items are reported and excluded while successful
205
+ items can still commit. The verified Library and media publish through Storage;
206
+ successful Sync Details follow the commit. Cancellation and interrupted publication
207
+ have explicit cleanup/recovery results. See ADR-0065 through ADR-0067, ADR-0070,
208
+ and ADR-0076.
209
+ Interrupted Sync recovery is a choice for the selected iPod: restore the previous
210
+ Library or explicitly keep current contents after a warning about incomplete
211
+ changes. Recovery and cleanup are discovered from device journals, never persisted
212
+ as Host settings. Declining restoration retains recovery copies and leaves media
213
+ and databases untouched; unrelated iPods remain usable. Successful Library saves
214
+ automatically clean their committed recovery files; Sync does so after attempting
215
+ its Library Sync Helper update. Selection also cleans matching completed
216
+ transactions after checking all journals for unfinished recovery. Discovery stays
217
+ read-only, and foreign or declined journals remain untouched. Only actual cleanup
218
+ failures require a cleanup warning and retry. See ADR-0089 and ADR-0093.
219
+ Host tag interpretation now shares native ID3, MP4, Vorbis/APE, ASF, and FFprobe
220
+ aliases across scanning and import. Media classification, TV and Podcast fields,
221
+ lyrics, sorting, advisory, and normalization metadata survive Scan Cache v9.
222
+ See [Host tag coverage](docs/host-media-tags.md) and ADR-0099 for precedence and limits.
223
+
224
+ Optional acoustic analysis no longer gates readable Host media or explicit Adds.
225
+ Sync checks media tools only for incoming Tracks and preserves committed Host-path
226
+ provenance independently of Acoustic Fingerprints in Library Sync Helper v4.
227
+ Embedded artwork uses seekable reads, including for large audiobooks. Successful
228
+ FFprobe output remains usable with incidental metadata diagnostics. Preparation
229
+ reports all concurrent Tracks with separate phase progress measured from FFmpeg's
230
+ output time and speed, and groups repeated informational conversion notices.
231
+ Device selection immediately commits captured Play Counts, iTunesStats,
232
+ PlayCounts.plist, and On-The-Go Playlists before exposing the Active iPod. The
233
+ verified Storage Transaction archives consumed files as inactive `.bak` companions
234
+ and removes the active inputs. iPodDB itself retains original source bytes and
235
+ performs no file I/O. Discovery and explicit recovery reloads remain read-only
236
+ with respect to playback evidence. Invalid evidence or a failed commit stops
237
+ selection; no pending projected Library is published. Unsupported
238
+ positional data retains the conservative preservation/remapping policy. See
239
+ [the sidecar contract](docs/playback-sidecars.md) and ADR-0100.
240
+ Oversized Photo containers become bounded PNG stills, with separate Host and iPod
241
+ content digests. Publication verification and automatic recovery report their
242
+ current files; verified restoration cleanup retries do not repeat media reads.
243
+ macOS AppleDouble companions are excluded from artwork dependencies, and cleanup
244
+ tolerates entries already removed by filesystem metadata maintenance.
245
+ See ADR-0084 through ADR-0087 and `docs/sync-workflow-audit-2026-09-26.md`.
246
+ Compressed iTunesCDB and SQLite-backed iPod Library variants are selected from the
247
+ identified Device Profile. iPodDB unwraps and reproduces CDB framing and treats the
248
+ CDB as the sole readable Library authority. It generates all five SQLite databases
249
+ and the Locations checksum book from the checked CDB snapshot and supports HASH58,
250
+ HASH72, and HASHAB finalization. Selection neither requires nor reads SQLite
251
+ companions. When a CDB change is prepared, the Application Layer captures the
252
+ current companion paths as write preconditions and publishes the CDB, the complete
253
+ replacement SQLite set, and compatibility iTunesDB truncation in one recoverable
254
+ Storage Transaction. See ADR-0061.
255
+ Recognized Device Profiles now include typed artwork formats and packaged product
256
+ images. Selection optionally loads ArtworkDB metadata, while visible album covers
257
+ are read from iTHMB ranges and decoded lazily through a generation-scoped,
258
+ memory-bounded artwork pipeline. Missing or malformed artwork falls back to the
259
+ deterministic placeholder without making an otherwise valid iPod Library unusable.
260
+ Known cover-capable Device Profiles also provide the creation policy for a first
261
+ ArtworkDB, so an empty Artwork directory needs no template database or additional
262
+ format files. Profiles without native cover support receive an iOpenPod-only
263
+ `F1060` representation for browsing; this does not claim firmware album-art
264
+ support. Preparation writes every native or application-only layout, preserves
265
+ retained variants, and supports older reverse Track links. See ADR-0033 and
266
+ ADR-0118.
267
+ With Rockbox Metadata Support enabled, Sync and ordinary Library saves embed
268
+ changed metadata and artwork in media files. Metadata-only edits preserve embedded
269
+ covers; artwork removal clears them. Non-cover profiles use a 120x120 grayscale
270
+ JPEG; this file-tag copy is separate from the iOpenPod-only ArtworkDB representation.
271
+ When preparing new cover artwork, conflicting retained MHIF image sizes are
272
+ corrected automatically when the Device Profile, retained image metadata, and
273
+ captured thumbnail ranges establish the correct size. Unverifiable conflicts
274
+ still block preparation; reads and unrelated edits remain lossless. Corrections
275
+ use the existing recoverable Storage Transaction without an additional prompt.
276
+ See ADR-0111.
277
+
278
+ Selection also loads an optional `Photos/Photo Database` into the common Library
279
+ Snapshot as an immutable Photo Library. The Application Layer can request a Photo
280
+ thumbnail lazily by semantic Photo identity and Device Profile format; Storage reads
281
+ only the validated range beneath `Photos/`. Malformed optional PhotosDB metadata is
282
+ reported without making an otherwise usable iPod Library unavailable.
283
+
284
+ The Photos route is a three-pane browser with Photo Albums on the left, the shared
285
+ virtualized Library card grid in the center, and a read-only Photo inspector on the
286
+ right. Selecting a Photo loads only its visible device representation through a
287
+ generation-scoped, byte-bounded worker cache. The inspector can request an exact
288
+ format copy and offers a Full res chip when the semantic Photo retains an original.
289
+ That original is read through Storage and downsampled before entering the display
290
+ cache. The inspector shows grouped semantic metadata without receiving a PhotosDB
291
+ Chunk, Mount Point, or Filesystem Session. Selected Photos export to a chosen Host
292
+ folder; Photo Albums and All Photos export into a uniquely named child folder. Readable
293
+ full-resolution files are copied byte-for-byte through Storage. Every exported Photo
294
+ gets its own folder containing that original when available and an ordinary JPEG for
295
+ each retained, supported iTHMB format. Exports never replace existing Host files,
296
+ run outside the GUI thread, and can be cancelled safely between files. See ADR-0054,
297
+ ADR-0055, and ADR-0056. The selected-Photo context menu also opens one Manage Albums
298
+ dialog. Its collection-card grid previews up to four Photos per retained user Photo
299
+ Album and overlays a large circular membership checkbox. Single and bulk membership
300
+ toggles are Library Draft edits persisted through the shared automatic or manual
301
+ review/save workflow. Dragging selected Photos from the grid onto
302
+ a user Photo Album in the sidebar adds only missing memberships through that same
303
+ draft workflow. Existing memberships remain unchanged; All Photos, stale drags, and
304
+ locked workspaces reject drops. The same context menu opens a revision-bound
305
+ Photo metadata editor for rating, original date, and taken date. Mixed values remain
306
+ unchanged unless the user edits that field, and a multi-Photo apply publishes one
307
+ atomic Library Draft revision. See ADR-0053 and ADR-0057.
308
+
309
+ Library Snapshots now use a common immutable Track contract that is constructed by
310
+ both iPod and Host Media Library Sources and can support future remote sources. iPod database translation
311
+ and lossless documents remain inside iPodDB; GUI and application models consume
312
+ semantic values rather than database flags or Chunk trees. Optional iPod Track
313
+ Details retain diagnostic values without requiring other sources to invent them.
314
+ See `docs/library-contract.md` and ADR-0019.
315
+
316
+ Library Snapshots also contain semantic Playlists, Smart Playlists, nested Playlist
317
+ Folders, and the name read from an unambiguous Master Playlist. The browser uses
318
+ saved membership and a sidebar hierarchy, while creation and editing operate on
319
+ internal Library Drafts. Editors use ordinary editing labels. The global
320
+ **Draft all changes** setting defaults to off: Library edits are automatically
321
+ prepared, accepted, and saved through the existing verified Storage Transaction,
322
+ and the sidebar hides Review Changes. On restores Review Changes and manual Save
323
+ to iPod. Turning it off also applies pending changes. Failed or blocked attempts
324
+ retain the draft and open diagnostics without repeatedly retrying that revision.
325
+ See ADR-0073. The internal workspace contracts from ADR-0020 and ADR-0026 remain.
326
+ Typed Playlist Sort Orders and per-occurrence Playlist
327
+ Positions are parsed, shown, edited, recalculated, and written through the same
328
+ lossless path. Applying changed Smart Playlist rules also updates saved matching
329
+ Tracks. Regular Playlists accept Track drags; folders retain nested
330
+ organization. The firmware-maintained Podcasts Playlist remains in the Library
331
+ Snapshot and Library Workspace for reconciliation but is omitted from the sidebar
332
+ tree. Unsaved drafts clear when the Active iPod changes or the application closes.
333
+ See ADR-0020 and ADR-0022 for hierarchy and editor behavior.
334
+
335
+ The Library Workspace retains Photos and Photo Albums in that same desired snapshot.
336
+ Retained Photo rating/dates and retained user Photo Album names, membership,
337
+ slideshow settings, and music Track references use the existing source-bound Library
338
+ Draft, review, preparation, and safe-save contract. The Photos header can create an
339
+ empty user Photo Album using the selected Device Profile's explicit MHBA type policy;
340
+ the new album uses the same automatic or manual safe-save policy. User Photo Album
341
+ deletion requires explicit omission intent. Selected Photos can also be omitted from
342
+ the Photo Library and every Photo Album as one reversible draft edit. Preparation
343
+ removes their MHII/MHIA references, while Save recoverably removes only unshared
344
+ full-resolution files beneath `Photos/Full Resolution` after PhotosDB publication.
345
+ Unused ranges in shared iTHMB files are retained. Sync can now create or replace
346
+ Photos with a captured original and every supported Device Profile thumbnail
347
+ format, including a first Photo Database where the profile declares its creation
348
+ policy. It preserves original image bytes, applies rotation and fitting to viewing
349
+ copies, and removes only fully unreferenced obsolete Photo files after publication.
350
+ Direct arbitrary Master Photo Album edits and deletion remain blocked. See
351
+ ADR-0053, ADR-0058, ADR-0059, and ADR-0076.
352
+
353
+ Library Draft preparation now compares complete desired snapshots with retained
354
+ Database Documents, maintains supported Track/Playlist/Photo/artwork relationships,
355
+ and
356
+ returns verified bytes and structured diagnostics. Preparation runs in the
357
+ background and rejects stale or cancelled results. With Draft all changes on,
358
+ Review Changes labels success Prepared for review and Save to iPod requires manual
359
+ acceptance; with it off, acceptance is automatic. Both modes commit verified
360
+ metadata, device-name, Playlist, Photo, artwork, and Track-removal changes through a
361
+ captured Storage Transaction with retained originals and a recovery journal. General Sync stays
362
+ disabled. Missing device-bound signing material, unsupported ArtworkDB signatures,
363
+ pending positional sidecars, and ambiguous affected structures block preparation.
364
+ See ADR-0021, ADR-0022, ADR-0061, and `docs/library-writing.md`.
365
+ Preparation requests capture source and workspace revisions together. Read-only
366
+ developer inspection exposes changes, requirements, observed stages, output
367
+ fingerprints, and diagnostics without exposing private document bindings or granting
368
+ save authority. See ADR-0023.
369
+ Semantic resolution now accounts for requested edits and generated consequences
370
+ before reconciliation. Explicit field ownership, independent browse-index checks,
371
+ and the existing review's resolved-value inspection strengthen that workflow without
372
+ changing the editing or saving scope. See ADR-0025.
373
+ Library Drafts also accept explicit media replacement intent when projected
374
+ metadata stays unchanged. Preparation validates the supplied media, verifies native
375
+ codec output, and returns captured file dependencies. Application replacement
376
+ capture and publication remain unfinished. See ADR-0034.
377
+
378
+ The Track context action can now turn a complete saved Music Album into one
379
+ Chaptered Track. It copies source media through Storage, encodes and checks one
380
+ Host output in the background, and stages that output with source omissions in one
381
+ reversible Library Draft revision. The ordinary Library save publishes the new
382
+ media and database before recoverably removing unshared originals. See ADR-0095.
383
+
384
+ Lyrics edits now require verified text embedded in the media file as well as the
385
+ iTunesDB presence flag. The Application Layer prepares focused lyric-tag updates;
386
+ Storage publishes them with the database in one recoverable transaction. This is
387
+ independent of optional full metadata writing for Rockbox compatibility. Rockbox-
388
+ enabled Sync also embeds captured Track artwork in prepared media files; non-cover
389
+ devices use an optimized grayscale JPEG fitting within 120x120 pixels. Unrelated
390
+ edits preserve file-only lyrics, and incoming music reads embedded lyrics into its
391
+ draft. Preparation exceeding the whole-media memory budget uses private Host disk
392
+ staging, preserving complete media and lyrics without a warning for normal overflow.
393
+ Sync Add/Update preparation prefers nonempty lyrics in the captured Host file
394
+ over older reviewed text and publishes matching media tags and iTunesDB text.
395
+ This applies with Rockbox Metadata Support on or off. Sync does not inspect
396
+ unchanged iPod media for lyric differences.
397
+ See ADR-0075 and `docs/research/itunesdb-lyrics.md`.
398
+
399
+ Artwork capture, generated artwork, and Photo batches also use private Host disk
400
+ staging when preparation memory budgets are reached. Large valid batches continue
401
+ while retaining complete content, independent
402
+ verification, and recoverable publication. See ADR-0117.
403
+
404
+ Backup Snapshots use Backup Archive format v4, continuing the Original iOpenPod v2
405
+ and v3 format sequence, with lossless
406
+ Device Paths, serial-first Backup Identifiers, checksummed catalogs, and deduplicated
407
+ Host content. A known product or transport serial identifies the iPod; otherwise a
408
+ hashed Volume Identity supplies a best-effort fallback rather than blocking backup or
409
+ restore. Capture hashes new and changed files during their single Device-to-Host
410
+ stream, reuses previously verified content when path, size, and modified time still
411
+ match, and finishes with a metadata-only tree rescan. Original iOpenPod backup formats
412
+ v2 and v3 enter only through a read-only Legacy Backup Import to v4. Restore is
413
+ authorized separately from archive location, first creates a forced Host safety
414
+ snapshot, and executes as one bounded, journaled Storage Transaction whose recovery
415
+ material remains in that Host archive. Verified completion, pre-mutation failure,
416
+ incomplete restore, and durability pending are distinct user-visible outcomes. Backup
417
+ and restore remain independent of Sync and other application workflows. Capture
418
+ blocks Application Layer device writes and Active iPod changes while allowing
419
+ foreground reads such as browsing, artwork, export, and playback; Restore remains
420
+ exclusive. An Original archive whose serial key matches the Active iPod is assigned
421
+ that iPod's native Backup Identifier and Archive Key, preventing imported and native
422
+ snapshots from splitting into separate sidebar devices; unmatched and explicitly
423
+ unstable imports retain their stricter legacy authorization. See ADR-0039, ADR-0040,
424
+ ADR-0041, and ADR-0062.
425
+
426
+ The Podcasts browser now projects a typed Podcast Snapshot from versioned
427
+ subscriptions, independent Listening History, refreshed RSS/Atom metadata, and the
428
+ current Active iPod's Podcast Tracks. Existing device Podcasts are recovered into
429
+ subscriptions automatically; enclosure-based reconciliation exposes current
430
+ on-device membership immediately, while listened state survives later Track removal
431
+ or unsubscription. The GUI can search Apple's public directory, add direct RSS
432
+ feeds, immediately refresh a show when it is opened, mark episodes listened or
433
+ unlistened, and play Tracks already on the iPod. Its All Podcasts view combines
434
+ every subscription's Episodes newest-first while retaining each Episode's source
435
+ identity; it is a runtime projection, not another persisted Podcast Subscription.
436
+ Device files use
437
+ fingerprint-checked Storage writes under
438
+ `iPod_Control/iOpenPod/Podcasts`. Podcast Episodes can be added or removed manually,
439
+ and per-show Sync settings select and retain Episodes during ordinary Sync or the
440
+ Sync Podcast and Sync Podcasts actions. These operations refresh feeds, preserve
441
+ Listening History, prepare compatible media on the Host, and publish through the
442
+ shared verified Library and Storage Transaction workflow. Failed feed refreshes
443
+ leave that show's media unchanged. Publisher covers use the shared ArtworkDB and
444
+ thumbnail preparation; Podcast Sync also fills missing covers on retained Episodes
445
+ without downloading their media again. Episode slots are an automatic filling target;
446
+ manual additions may exceed it. Episode count alone never authorizes removal.
447
+ Both Newest and Next clear by listened state or time on the iPod. Newest replaces
448
+ only clear-eligible Episodes with newer publications. Next starts after the furthest listened
449
+ publication, or with the oldest available Episode when no listened publication is
450
+ known. Replace waits for successful one-for-one replacement, including above the
451
+ target; Remove clears eligible Episodes even without replacements.
452
+ Listening History retains publication chronology and separate automatic-clear
453
+ exclusions. These exclusions prevent automatic re-addition without marking an
454
+ unlistened Episode listened; explicit additions bypass them. Pre-Sync reconciliation
455
+ saves observed history, while new exclusions commit in the same verified Storage
456
+ Transaction as successful media and Library removals. Subscription and Listening
457
+ History documents encode version 2 at their existing paths and still read version 1.
458
+ See ADR-0037 and ADR-0091.
459
+
460
+ The Library Workspace now holds Track metadata, the device name, Playlists, and
461
+ Photos in one session draft. Sidebar naming, shared Track and collection context
462
+ menus, and
463
+ a manual metadata editor apply explicit changes to this draft. Normalize Tags scans
464
+ the Library in the background using Original iOpenPod's grouping and sorting rules,
465
+ previews the results, and applies them only on request. A shared, debounced background
466
+ scan keeps the Normalize Tags Sidebar badge current with the number of suggested
467
+ tag-field edits. Opening or closing the preview reuses that scan; applying changes,
468
+ editing, locking, or switching the Active iPod invalidates old results. Mixed metadata, stale
469
+ dialogs, and cancelled scans cannot silently overwrite current edits. The save
470
+ workflow now stages artwork, Track removals, and full-resolution Photo removals
471
+ alongside database changes. Shared context menus can remove Tracks as reversible
472
+ draft edits; the Photos context menu stages confirmed Photo deletions through the
473
+ same workflow;
474
+ the Track metadata editor can choose, orient, square-crop, replace, clear, or
475
+ consolidate its selection onto one existing cover and submits that intent atomically
476
+ with metadata. Its consolidation grid combines byte-identical decoded artwork.
477
+ Application callers can also supply bounded artwork pixels. Backend music import
478
+ inspects supplied compatible songs, extracts embedded covers, and adds a reversible
479
+ draft for the existing review/save workflow. Music import has no GUI entry point,
480
+ file picker, or progress dialog. Application media replacement remains unfinished.
481
+ The Track context menu can also reclassify retained
482
+ audio or video as a Podcast without replacing its media; the existing review/save
483
+ path writes its firmware classification, playback flags, presentation fields, and
484
+ Podcasts Playlist consequences. The metadata editor's Media type selector also
485
+ reclassifies retained audio or video within its current media family, including
486
+ Movie to TV Show, atomically with explicit metadata and artwork edits. Mixed and
487
+ retained compound classifications stay unchanged until selected for replacement.
488
+ Podcasts and videos always use Remember position and Skip when shuffling in
489
+ application imports, edits, and prepared Library Drafts. Save and Sync repair
490
+ retained Tracks with those flags off. Audio and video Podcasts also enable the
491
+ native Podcast Now Playing marker. Merely loading an iPod preserves its raw
492
+ database state. See ADR-0026, ADR-0030, ADR-0032, ADR-0036, ADR-0088, and ADR-0092.
493
+
494
+ The application can now inspect real incoming audio/video files through FFprobe
495
+ over a temporary Host snapshot captured by Storage. Typed Media Inspection preserves
496
+ all streams, embedded-picture dispositions, exact rational timing, chapters, and
497
+ tags independently of Library classification. Inspection has cancellation, process
498
+ and output limits, and content fingerprints. Music import applies a bounded audio
499
+ compatibility policy and maps observed facts into native codec fields. The same
500
+ reviewed transaction stages the song, thumbnails, ArtworkDB, and iTunesDB before
501
+ publication. Sync preparation accepts Host-native path spelling, chooses marked-
502
+ default or first-probe-order streams from multi-stream video, and scopes encoder
503
+ options to the selected FFmpeg encoder while reporting those choices as warnings.
504
+ Exact gapless analysis, conversion, the Sync engine, video import, and document
505
+ inspection such as PDF/EPUB remain future work. See ADR-0031, ADR-0032, and ADR-0083.
506
+
507
+ Playback is an Application Layer workflow behind a typed, replaceable Playback
508
+ Backend. `PlaybackController` owns runtime Queue, History, current Track, and
509
+ transport policy; the GUI only sends intents and renders reported state. The
510
+ production backend adapts Qt Multimedia. It receives a seekable Playback Source
511
+ rather than a Mount Point or Host path, and each source range is read through the
512
+ Active iPod's identity-bound Filesystem Session. A changed Active iPod, Connection
513
+ Generation, or media-file identity fails closed. Queue, History, volume, and
514
+ transport state remain runtime-only. Monotonic Playback Attempt identities correlate
515
+ backend events with the active start so delayed decoder events cannot mutate a
516
+ successor Track. An optional System Media Session sits above that controller and is
517
+ independent of the Playback Backend. The macOS and Windows adapters publish Track
518
+ metadata, timeline, state, and lazily loaded album artwork through their native media
519
+ surfaces and route media commands back through the controller. Artwork remains bounded
520
+ RGB888 data until each native adapter converts and caches it. Linux publishes the
521
+ same fail-open contract through MPRIS on the desktop session bus.
522
+
523
+ The Library setting **Double click shortcut** applies immediately to Track tables,
524
+ Album cards, and collection grids and lists and persists across restarts. **Add to
525
+ queue** remains the default. **Play next** places the selection atop the Playback
526
+ Queue. **Play now** starts the first selected Track and places the remainder atop
527
+ the Queue. **Edit** opens the metadata editor for the selection. Selections retain
528
+ visible order and Playlist occurrences; explicit queue buttons keep their own
529
+ actions.
530
+
531
+ The Player's Queue/History/Lyrics slideout displays read-only lyrics for the
532
+ current Track. Known Library text appears immediately. When the Lyrics tab is
533
+ visible, a background worker checks that Track's embedded media tags through the
534
+ same identity-bound Playback Source. Nonempty file text wins for display unless
535
+ an explicit Library Draft lyrics edit exists. Reads are bounded, obsolete results
536
+ are discarded, and missing or unreadable tags fall back to Library text without
537
+ interrupting playback. The single-Track metadata editor also reads that file's
538
+ lyrics lazily. Viewing lyrics does not create a draft or device write.
539
+
540
+ Synesthesia is entered from the Player while a Track is current; it has no sidebar
541
+ entry or separate page controls. The Playback Controller and Playback Backend
542
+ remain the only owners of audio and transport, so playback continues while
543
+ Synesthesia analyzes the current Playback Entry and prepares the next entry while
544
+ the page is active. Preparation follows the Player's Queue and forward History,
545
+ retains at most one upcoming result in memory, and is promoted when that entry
546
+ becomes current. Leaving the page releases both analyses. The Qt-facing Synesthesia
547
+ Controller opens a separate,
548
+ identity-bound Playback Source, materializes its encoded bytes only in an
549
+ application-owned temporary Host file, runs one Job at a time outside the GUI
550
+ thread, rejects stale completion, and always removes that temporary copy. It
551
+ publishes one ephemeral, calibrated Track Analysis with absolute and relative
552
+ energy, rhythm, spectrum, timbre, harmony, spatial evidence, structural Sections,
553
+ musical events, and typed Sources behind one sampling interface with explicit
554
+ confidence and provenance. The Field Conductor preserves energy, spectrum, rhythm,
555
+ harmony, stereo space, Sources, and Section development as independent typed Field
556
+ Forcing.
557
+
558
+ The frontend Scene Director derives a presentation-only Mood Signature and directs
559
+ twelve procedural visual Scenes across Sections and bounded subspans. Scene changes
560
+ follow Section boundaries with a two-second minimum hold, grouping only shorter
561
+ Sections. Long Sections retain subspans of at most 22 seconds. Recent Scenes have a
562
+ cooldown, with
563
+ extra spacing for Solar Bloom and radial compositions;
564
+ contours, crystal shards, braided currents, and falling signals expand the visual
565
+ vocabulary. Scene-specific gains change which shared particle, comet, filament, and
566
+ event systems are visible. Particle density and comet visibility build gradually
567
+ with activity, leaving room for musical peaks. Each residence also receives Scene
568
+ Motion for directional travel, orbit, depth,
569
+ waveform deformation, parallax, and world scale. Inside each residence the Scene
570
+ Director composes establishing, tracking, orbital, inspection, fly-through, and
571
+ reveal Camera Shots from interval summaries, upper-transient evidence, and sparse
572
+ event density. The renderer projects both the
573
+ procedural composition and shared three-dimensional field through that directed
574
+ pose, while feedback advects retained light along the journey and erodes during
575
+ meaningful camera travel. Transitions and nearby editorial edit points are
576
+ deterministic and music-weighted rather than a random preset timer or beat-pulsed
577
+ lens. The graphics-only page observes the Playback Controller's current position
578
+ and playing state. Pause freezes the simulation; an explicit Player seek begins a
579
+ new Transport Epoch, preserves live field state, clears view-dependent feedback,
580
+ and does not replay a skipped event backlog. A Synesthesia Preview follows
581
+ the current Playback Entry immediately without reading audio. When Track Analysis
582
+ finishes, the renderer aligns with the Player clock and blends its forcing and
583
+ Scene direction into the existing field without resetting GPU state. The analysis
584
+ backend remains independent of transport and presentation policy, and no
585
+ Track-derived evidence, stems, simulation state, or feedback is persisted. See
586
+ ADR-0042, ADR-0045, ADR-0046, ADR-0047, ADR-0048, ADR-0049, ADR-0050, ADR-0051,
587
+ ADR-0068, ADR-0077, ADR-0078, `docs/synesthesia_backend.md`, and
588
+ `docs/synesthesia_visual_direction.md`.
589
+
590
+ With **Manage iPod drive appearance** enabled (the default), selecting a writable
591
+ iPod also derives desktop names and model icons from its saved
592
+ Master Playlist name and Device Profile. Renames update portable Windows, GVfs,
593
+ KDE, and macOS icon companions through the Library's recoverable save workflow.
594
+ Storage updates native volume labels and the macOS custom icon flag after file
595
+ publication. Native limitations are reported without undoing a saved Library name;
596
+ filesystem label limits never change the full iPod name. Turning this global setting
597
+ off preserves custom companions, icons, native labels, and Finder flags across
598
+ selection and saved renames. See ADR-0090 and
599
+ `docs/volume-presentation.md` for platform limits and verification status.
600
+
601
+ ## Product and compatibility target
602
+
603
+ - The Original iOpenPod is the behavioral and research baseline. Its code,
604
+ documentation, tests, fixtures, and accumulated format knowledge are evidence for
605
+ iOpenPod 2.0, not a runtime dependency or an architecture that must be copied.
606
+ - The release target is Windows, macOS, and Linux.
607
+ - The standard native macOS candidate targets 12.3 or later on Apple Silicon and
608
+ Intel with platform-specific Qt and numerical dependencies. Build selection and
609
+ binary deployment checks enforce that target; execution on macOS 12.3 on both
610
+ architectures remains an acceptance gate. See ADR-0094 and `docs/packaging.md`.
611
+ - Planned store channels are the Mac App Store, Microsoft Store, Flatpak/Flathub,
612
+ and Snap. Native packaging candidates are available; store publication remains
613
+ gated on signing, sandbox-compatible Storage access, user-installed media-tool
614
+ integration, and installed-package acceptance. FFmpeg/FFprobe and Chromaprint's
615
+ fpcalc executables are installed separately by the user; Qt's playback libraries
616
+ remain bundled. See `docs/packaging.md`, ADR-0079, and ADR-0081.
617
+ - The release target includes filesystem-accessible iPod families supported by the
618
+ Original iOpenPod: full-size iPod generations 1 through 5.5, iPod Classic, iPod
619
+ Mini, and iPod Nano across their supported generations. iPod touch and iPod
620
+ shuffle are outside this target.
621
+ - iOpenPod ships as one application and one distribution. Device Registry, iPodDB,
622
+ and Storage are internal packages, not separately released products.
623
+ - Development and automated testing use captured database fixtures, virtual device
624
+ volumes, and knowledge from the Original iOpenPod instead of writing to a physical
625
+ iPod as part of routine verification.
626
+
627
+ ## System boundaries
628
+
629
+ | Boundary | Responsibility | Must not own |
630
+ | --- | --- | --- |
631
+ | **Storage** | Safe, cross-platform access to devices, volumes, filesystems, and removable-media operations | iPod identity, database formats, application workflows, or GUI behavior |
632
+ | **Device Registry** | Identification and capability descriptions for known iPod models | OS discovery, mounting, filesystem mutation, database parsing, or GUI behavior |
633
+ | **iPodDB** | Parsing, representing, validating, and serializing iPod database formats | Device persistence, application workflows, or GUI behavior |
634
+ | **iOpenPod** | Application orchestration, state, services, and GUI behavior | Platform filesystem implementations or duplicated database-format knowledge |
635
+
636
+ The intended dependency direction is:
637
+
638
+ ```text
639
+ iOpenPod ──> Device Registry
640
+ ├─> iPodDB
641
+ └─> Storage
642
+ ```
643
+
644
+ Storage, Device Registry, and iPodDB do not depend on iOpenPod. iOpenPod coordinates
645
+ them through narrow interfaces.
646
+
647
+ ## Application operating model
648
+
649
+ - Storage may discover multiple connected iPods, but the user chooses one in the
650
+ Device Picker and iOpenPod loads only that Active iPod.
651
+ - Only one Active iPod exists in the application at a time. Selecting another iPod
652
+ ends the previous Filesystem Session and begins a new Connection Generation.
653
+ - Sync is primarily Host-to-iPod: the Host Media Library supplies the media and most
654
+ metadata used to update the iPod Library.
655
+ - iPod-to-Host behavior is also supported. This includes Back Sync of ratings and
656
+ other supported metadata, exporting iPod-only tracks, and exporting images.
657
+ - Long-running work occurs outside the GUI thread, reports progress, and supports
658
+ cancellation where stopping is safe. The exact worker mechanism is not yet fixed.
659
+ - If the Active iPod disconnects, iOpenPod invalidates its Filesystem Session and
660
+ stops issuing operations. It cannot guarantee rollback while the Volume is absent;
661
+ it must report that the operation may be incomplete and require a new selection or
662
+ reconnection before continuing.
663
+
664
+ ## Data locations
665
+
666
+ - The Host Media Library remains in the folders selected and owned by the user.
667
+ - iPod media and databases remain on the Active iPod and are accessed only through a
668
+ Filesystem Session.
669
+ - Global settings, logs, caches, and temporary files use the standard application
670
+ locations for Windows, macOS, and Linux. Global settings are one typed JSON file;
671
+ Storage resolves its Host location and atomically persists its bytes while
672
+ iOpenPod owns the settings schema. iOpenPod 2.0 uses `settings-v2.json`; it does
673
+ not read or rewrite the Original iOpenPod's `settings.json` file in the same Host
674
+ directory.
675
+ - Global settings remember the previously selected iPod by stable Volume Identity.
676
+ This behavior has no separate visible preference.
677
+ - Sync recovery records and retained originals stay on the iPod. They are
678
+ operational data and do not belong in global settings.
679
+ - Backup Snapshots use the configured backup location, with a platform-appropriate
680
+ application data location as the default.
681
+ - Device-specific settings intended to travel with an iPod are associated with its
682
+ stable Device Identity and stored in an application-owned Device Path on that iPod.
683
+ iOpenPod coordinates their access through Storage. Podcast Subscriptions and
684
+ Listening History use separate version-2 JSON documents under
685
+ `iPod_Control/iOpenPod/Podcasts/`, retaining the existing `-v1.json` filenames and
686
+ backward reads of version 1; other settings retain their own formats.
687
+
688
+ ## Core device workflow
689
+
690
+ 1. Storage detects removable Physical Devices and their Volumes.
691
+ 2. iOpenPod keeps Volumes containing `iPod_Control`, reads device metadata, and
692
+ requests identity-bound Host observations.
693
+ 3. iOpenPod passes normalized Device Evidence to Device Registry.
694
+ 4. Device Registry returns an Identification Result and, when exact, a Device
695
+ Profile with Device Capabilities.
696
+ 5. The GUI presents Device Candidates in the Device Picker.
697
+ 6. The user selects one candidate as the Active iPod, or iOpenPod restores the
698
+ previous selection when exactly one ready candidate has the remembered Volume
699
+ Identity.
700
+ 7. On a write-safe Volume, iOpenPod analyzes, atomically repairs, and verifies stale
701
+ or missing identity metadata; read-only Volumes remain loadable with an issue.
702
+ 8. iOpenPod opens a read-only Filesystem Session through Storage.
703
+ 9. iOpenPod reads database bytes through Storage and gives them to iPodDB.
704
+ 10. iPodDB parses and retains lossless Database Documents in the iPod Library Source,
705
+ then publishes a common immutable Library Snapshot.
706
+ 11. The Application Layer exposes that snapshot and application state to the GUI.
707
+
708
+ For review, iOpenPod submits a Library Draft and asks iPodDB to prepare supported
709
+ semantic changes against its retained Database Documents. Typed Chunk Selections
710
+ and the matching writers remain the one lossless path. Future physical Sync will
711
+ use a Storage Transaction to stage, verify, and commit the resulting filesystem
712
+ changes. Constructing, editing, or preparing a Library Snapshot does not authorize
713
+ or perform device writes.
714
+
715
+ Backup Snapshots are a standalone, user-controlled protection. The implemented
716
+ backup and restore workflow does not participate in Sync, Library save, or any other
717
+ device workflow; those operations retain their own Storage safety requirements.
718
+
719
+ ## Safety invariants
720
+
721
+ - A Mount Point is a temporary location, not a Device Identity.
722
+ - A Filesystem Session becomes invalid when its connection ends.
723
+ - Device-facing paths are relative, root-bound, and traversal-safe.
724
+ - iPodDB returns or consumes data and bytes; it does not mutate device files.
725
+ - Parsing and serializing an unchanged database must reproduce its original bytes
726
+ exactly, including unknown fields, unknown Chunks, ordering, and padding.
727
+ - Unknown database data is expected and preserved. It is not treated as corruption
728
+ merely because iPodDB does not understand it.
729
+ - Destructive operations are planned, validated, journaled, verified, and made
730
+ recoverable where practical.
731
+ - Obsolete files are removed only after replacement data has been verified.
732
+
733
+ ## Development constraints
734
+
735
+ - iOpenPod uses GPL-3.0-or-later, with free distribution and optional donations.
736
+ Releases must preserve third-party notices and provide corresponding source;
737
+ store compatibility remains a separate release requirement. See ADR-0080 and
738
+ `docs/licensing.md`.
739
+ - Python 3.12 is the only supported development runtime.
740
+ - UV manages Python, the environment, dependencies, the lockfile, and commands.
741
+ - VS Code and Codex Desktop are the development surfaces.
742
+ - Ruff, Mypy, Pytest, and Rumdl provide formatting, linting, type checking, and
743
+ testing from one UV-managed environment.
744
+ - `pyproject.toml`, `.editorconfig`, and `.vscode/` keep terminal and editor behavior
745
+ consistent across development machines.
746
+ - Branded names retain their established capitalization where practical, including
747
+ iOpenPod, iPodDB, iTunesDB, ArtworkDB, and iPod. Generic Python package and module
748
+ names use normal lowercase conventions.
749
+
750
+ ## Documentation map
751
+
752
+ - `GLOSSARY.md` defines canonical terms.
753
+ - `docs/source_architecture.md` describes the detailed target architecture.
754
+ - `docs/ipoddb-editing.md` defines the sole typed parse/edit/write workflow.
755
+ - `docs/adr/` records durable decisions.
756
+ - `docs/agents/` configures agent-oriented engineering workflows.
757
+ - `.scratch/` holds private, uncommitted plans and work items.
758
+
759
+ ## Open questions
760
+
761
+ - What is the smallest stable public interface for each boundary?
762
+ - Which existing exploratory modules should be retained, rewritten, or removed?
763
+ - Which Original iOpenPod behaviors should be migrated together as complete vertical
764
+ workflows, and in what order?
765
+
766
+ These questions are intentionally unresolved. Resolve them through focused design
767
+ work and ADRs before reorganizing the source tree.