iOpenPod 2.0.4__tar.gz → 2.0.6__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.
- iopenpod-2.0.6/CONTEXT.md +772 -0
- iopenpod-2.0.6/GLOSSARY.md +258 -0
- iopenpod-2.0.6/PKG-INFO +336 -0
- iopenpod-2.0.6/README.md +289 -0
- iopenpod-2.0.6/TODO.md +25 -0
- iopenpod-2.0.6/docs/adr/0030-bind-library-file-transactions-to-issued-reviews.md +46 -0
- iopenpod-2.0.6/docs/adr/0061-support-late-ipod-library-artifact-sets.md +69 -0
- iopenpod-2.0.6/docs/adr/0075-publish-lyrics-with-media-file-tags.md +66 -0
- iopenpod-2.0.6/docs/adr/0076-execute-reviewed-sync-through-storage.md +131 -0
- iopenpod-2.0.6/docs/adr/0115-treat-sysinfo-files-as-optional-metadata.md +41 -0
- iopenpod-2.0.6/docs/adr/0116-retain-bounded-unknown-data-with-log-only-diagnostics.md +34 -0
- iopenpod-2.0.6/docs/adr/0117-spill-prepared-library-content-to-host-storage.md +41 -0
- iopenpod-2.0.6/docs/adr/0118-write-application-artwork-for-non-cover-devices.md +44 -0
- iopenpod-2.0.6/docs/adr/0119-compare-track-tags-and-artwork-after-host-file-changes.md +77 -0
- iopenpod-2.0.6/docs/adr/0120-separate-track-payload-replacement-from-tag-and-artwork-updates.md +83 -0
- iopenpod-2.0.6/docs/adr/0121-preserve-retained-f1061-raster-height.md +44 -0
- iopenpod-2.0.6/docs/adr/0122-match-original-signing-behavior.md +43 -0
- iopenpod-2.0.6/docs/adr/README.md +197 -0
- iopenpod-2.0.6/docs/host-media-tags.md +84 -0
- iopenpod-2.0.6/docs/ipoddb-editing.md +154 -0
- iopenpod-2.0.6/docs/library-writing.md +773 -0
- iopenpod-2.0.6/docs/packaging.md +547 -0
- iopenpod-2.0.6/docs/research/itunescdb-and-sqlite-library.md +99 -0
- iopenpod-2.0.6/docs/source_architecture.md +2598 -0
- iopenpod-2.0.6/packaging/linux/io.github.therealsavi.iOpenPod.metainfo.xml +18 -0
- iopenpod-2.0.6/packaging/macos/dmg-artwork.md +26 -0
- iopenpod-2.0.6/packaging/macos/dmg-backdrop.png +0 -0
- iopenpod-2.0.6/packaging/macos/dmg-background.png +0 -0
- iopenpod-2.0.6/packaging/macos/dmg-background.svg +71 -0
- iopenpod-2.0.6/packaging/macos/dmg-layout.applescript +39 -0
- iopenpod-2.0.6/packaging/windows/store/listing.md +230 -0
- iopenpod-2.0.6/packaging/windows/store/submission-fields.json +163 -0
- iopenpod-2.0.6/pyproject.toml +214 -0
- iopenpod-2.0.6/scripts/render_macos_dmg_background.py +54 -0
- iopenpod-2.0.6/src/device_registry/data/catalog.py +1112 -0
- iopenpod-2.0.6/src/device_registry/models.py +400 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/dialogs/metadata_editor.py +879 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/main_window.py +2123 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/pages/settings_page.py +1035 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.qm +0 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.ts +10160 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.qm +0 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.ts +10160 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/presentation/theme/stylesheet.py +2372 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/sync_workspace.py +804 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/widgets/media_tools_settings.py +152 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/widgets/metadata_field_editor.py +427 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/widgets/sync_storage_bar.py +242 -0
- iopenpod-2.0.6/src/iOpenPod/GUI/widgets/track_actions.py +865 -0
- iopenpod-2.0.6/src/iOpenPod/app/artwork_policy.py +99 -0
- iopenpod-2.0.6/src/iOpenPod/app/core/logging.py +71 -0
- iopenpod-2.0.6/src/iOpenPod/app/core/version.py +14 -0
- iopenpod-2.0.6/src/iOpenPod/app/export_tagging.py +413 -0
- iopenpod-2.0.6/src/iOpenPod/app/host_media_controller.py +299 -0
- iopenpod-2.0.6/src/iOpenPod/app/host_media_library.py +2625 -0
- iopenpod-2.0.6/src/iOpenPod/app/library_sync_helper.py +1187 -0
- iopenpod-2.0.6/src/iOpenPod/app/library_tag_updates.py +74 -0
- iopenpod-2.0.6/src/iOpenPod/app/library_write.py +144 -0
- iopenpod-2.0.6/src/iOpenPod/app/library_write_controller.py +610 -0
- iopenpod-2.0.6/src/iOpenPod/app/library_write_inspection.py +428 -0
- iopenpod-2.0.6/src/iOpenPod/app/lyrics_controller.py +141 -0
- iopenpod-2.0.6/src/iOpenPod/app/lyrics_work.py +44 -0
- iopenpod-2.0.6/src/iOpenPod/app/media/importing.py +252 -0
- iopenpod-2.0.6/src/iOpenPod/app/media/lyrics.py +149 -0
- iopenpod-2.0.6/src/iOpenPod/app/media/transcoding.py +1082 -0
- iopenpod-2.0.6/src/iOpenPod/app/models/library_filter_models.py +425 -0
- iopenpod-2.0.6/src/iOpenPod/app/models/sync_plan_table_model.py +410 -0
- iopenpod-2.0.6/src/iOpenPod/app/models/sync_selection.py +278 -0
- iopenpod-2.0.6/src/iOpenPod/app/scrobbling/clients.py +375 -0
- iopenpod-2.0.6/src/iOpenPod/app/services/device_coordinator.py +4192 -0
- iopenpod-2.0.6/src/iOpenPod/app/services/library_resources.py +813 -0
- iopenpod-2.0.6/src/iOpenPod/app/services/media_tools.py +287 -0
- iopenpod-2.0.6/src/iOpenPod/app/sync_execution.py +2650 -0
- iopenpod-2.0.6/src/iOpenPod/app/sync_plan.py +825 -0
- iopenpod-2.0.6/src/iOpenPod/app/sync_storage.py +233 -0
- iopenpod-2.0.6/src/iOpenPod/app/sync_track_details.py +107 -0
- iopenpod-2.0.6/src/iOpenPod/app/synesthesia/_rhythm.py +170 -0
- iopenpod-2.0.6/src/iOpenPod/app/synesthesia/_signals.py +228 -0
- iopenpod-2.0.6/src/iOpenPod/assets/glyphs/heart.svg +3 -0
- iopenpod-2.0.6/src/iPodDB/ArtworkDB/parser/mhod_parsers/container_mhod.py +53 -0
- iopenpod-2.0.6/src/iPodDB/ArtworkDB/parser/mhod_parsers/opaque_mhod.py +18 -0
- iopenpod-2.0.6/src/iPodDB/ArtworkDB/parser/mhod_parsers/string_mhod.py +42 -0
- iopenpod-2.0.6/src/iPodDB/ArtworkDB/parser/parse_ArtworkDB.py +16 -0
- iopenpod-2.0.6/src/iPodDB/PhotosDB/parser/mhod_parsers/container_mhod.py +53 -0
- iopenpod-2.0.6/src/iPodDB/PhotosDB/parser/mhod_parsers/opaque_mhod.py +18 -0
- iopenpod-2.0.6/src/iPodDB/PhotosDB/parser/mhod_parsers/string_mhod.py +42 -0
- iopenpod-2.0.6/src/iPodDB/PhotosDB/parser/parse_PhotosDB.py +16 -0
- iopenpod-2.0.6/src/iPodDB/SQLiteDB/checksum.py +83 -0
- iopenpod-2.0.6/src/iPodDB/SQLiteDB/database.py +1126 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/cdb.py +164 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/chapter_data_mhod.py +329 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/contextual_100_mhod.py +19 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/library_index_mhod.py +34 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/library_jump_table_mhod.py +39 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/opaque_mhod.py +20 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/plist_mhod.py +59 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/settings_mhod.py +34 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_prefs_mhod.py +19 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_rules_mhod.py +196 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/string_mhod.py +50 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/mhod_parsers/video_details_mhod.py +19 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/parser/parse_iTunesDB.py +25 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/chapter_data_mhod.py +95 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/contextual_100_mhod.py +28 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_prefs_mhod.py +30 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/writer/mhod_encoder.py +607 -0
- iopenpod-2.0.6/src/iPodDB/iTunesDB/writer/signature.py +327 -0
- iopenpod-2.0.6/src/iPodDB/library/__init__.py +234 -0
- iopenpod-2.0.6/src/iPodDB/library/_artwork_verification.py +189 -0
- iopenpod-2.0.6/src/iPodDB/library/_artwork_writing.py +710 -0
- iopenpod-2.0.6/src/iPodDB/library/_photo_resources.py +230 -0
- iopenpod-2.0.6/src/iPodDB/library/_reconcile.py +598 -0
- iopenpod-2.0.6/src/iPodDB/library/_track_writing.py +461 -0
- iopenpod-2.0.6/src/iPodDB/library/_write_analysis.py +445 -0
- iopenpod-2.0.6/src/iPodDB/library/_write_effects.py +371 -0
- iopenpod-2.0.6/src/iPodDB/library/_write_logging.py +202 -0
- iopenpod-2.0.6/src/iPodDB/library/_write_preparation.py +1087 -0
- iopenpod-2.0.6/src/iPodDB/library/_write_verification.py +145 -0
- iopenpod-2.0.6/src/iPodDB/library/database.py +421 -0
- iopenpod-2.0.6/src/iPodDB/library/editing.py +116 -0
- iopenpod-2.0.6/src/iPodDB/library/file_content.py +84 -0
- iopenpod-2.0.6/src/iPodDB/library/signing.py +75 -0
- iopenpod-2.0.6/src/iPodDB/library/writing.py +324 -0
- iopenpod-2.0.6/src/iPodDB/shared/chunk.py +417 -0
- iopenpod-2.0.6/src/iPodDB/shared/chunk_reader.py +492 -0
- iopenpod-2.0.6/src/iPodDB/shared/chunk_writer.py +353 -0
- iopenpod-2.0.6/src/iPodDB/shared/diagnostics.py +94 -0
- iopenpod-2.0.6/src/iPodDB/shared/errors.py +46 -0
- iopenpod-2.0.6/src/iPodDB/sidecars/codec.py +248 -0
- iopenpod-2.0.6/src/iPodDB/sidecars/models.py +65 -0
- iopenpod-2.0.6/src/iPodDB/sidecars/remapping.py +64 -0
- iopenpod-2.0.6/src/storage/content_workspace.py +232 -0
- iopenpod-2.0.6/src/storage/media_processing.py +546 -0
- iopenpod-2.0.6/src/storage/platform/linux.py +668 -0
- iopenpod-2.0.6/tests/device_registry/test_artwork_profiles.py +75 -0
- iopenpod-2.0.6/tests/device_registry/test_registry.py +392 -0
- iopenpod-2.0.6/tests/iOpenPod/GUI/test_media_tools_settings.py +186 -0
- iopenpod-2.0.6/tests/iOpenPod/GUI/test_metadata_actions.py +1194 -0
- iopenpod-2.0.6/tests/iOpenPod/GUI/test_settings_tabs.py +366 -0
- iopenpod-2.0.6/tests/iOpenPod/GUI/test_sync_plan_page.py +814 -0
- iopenpod-2.0.6/tests/iOpenPod/GUI/test_sync_storage_bar.py +87 -0
- iopenpod-2.0.6/tests/iOpenPod/app/media/test_photo_sync.py +522 -0
- iopenpod-2.0.6/tests/iOpenPod/app/services/test_device_coordinator.py +2430 -0
- iopenpod-2.0.6/tests/iOpenPod/app/services/test_library_lyrics.py +361 -0
- iopenpod-2.0.6/tests/iOpenPod/app/services/test_library_resources.py +706 -0
- iopenpod-2.0.6/tests/iOpenPod/app/synesthesia/conftest.py +67 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_artwork_policy.py +66 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_export_tagging.py +202 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_host_media_library.py +1546 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_library_edit_tags.py +276 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_library_sync_helper.py +854 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_lyrics_controller.py +154 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_media_lyrics.py +207 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_media_tools_setup.py +282 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_metadata_editing.py +333 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_music_import.py +360 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_pypi_updates.py +280 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_python_installation.py +331 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_python_update_helper.py +485 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_scrobbling.py +599 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_scrobbling_clients.py +335 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_sync_controller.py +606 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_sync_execution.py +2437 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_sync_plan.py +774 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_sync_storage.py +261 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_sync_updates.py +336 -0
- iopenpod-2.0.6/tests/iOpenPod/app/test_transcoding.py +587 -0
- iopenpod-2.0.6/tests/iOpenPod/app/version_fixtures.py +30 -0
- iopenpod-2.0.6/tests/iPodDB/ArtworkDB/test_parser.py +1092 -0
- iopenpod-2.0.6/tests/iPodDB/SQLiteDB/test_database.py +681 -0
- iopenpod-2.0.6/tests/iPodDB/binary_fixtures.py +129 -0
- iopenpod-2.0.6/tests/iPodDB/iTunesDB/test_cdb.py +53 -0
- iopenpod-2.0.6/tests/iPodDB/iTunesDB/test_definition_driven_parser.py +374 -0
- iopenpod-2.0.6/tests/iPodDB/iTunesDB/test_remaining_mhod_parsers.py +714 -0
- iopenpod-2.0.6/tests/iPodDB/iTunesDB/test_signatures.py +116 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_artwork_creation.py +318 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_artwork_format_repair.py +419 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_artwork_native_verification.py +146 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_file_content.py +49 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_write_artwork.py +367 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_write_resolution.py +466 -0
- iopenpod-2.0.6/tests/iPodDB/library/test_writing.py +551 -0
- iopenpod-2.0.6/tests/iPodDB/sidecars/test_playback_sidecars.py +57 -0
- iopenpod-2.0.6/tests/iPodDB/sidecars/test_sidecar_readers.py +199 -0
- iopenpod-2.0.6/tests/iPodDB/test_unknown_data_preservation.py +313 -0
- iopenpod-2.0.6/tests/storage/test_content_workspace.py +113 -0
- iopenpod-2.0.6/tests/storage/test_media_processing.py +475 -0
- iopenpod-2.0.6/tests/storage/test_platform_facts.py +490 -0
- iopenpod-2.0.6/tests/test_packaging.py +617 -0
- iopenpod-2.0.6/uv.lock +2228 -0
- iopenpod-2.0.6/website/_config.yml +41 -0
- iopenpod-2.0.6/website/robots.txt +4 -0
- iopenpod-2.0.4/CONTEXT.md +0 -729
- iopenpod-2.0.4/GLOSSARY.md +0 -258
- iopenpod-2.0.4/PKG-INFO +0 -327
- iopenpod-2.0.4/README.md +0 -280
- iopenpod-2.0.4/TODO.md +0 -25
- iopenpod-2.0.4/docs/adr/0030-bind-library-file-transactions-to-issued-reviews.md +0 -45
- iopenpod-2.0.4/docs/adr/0061-support-late-ipod-library-artifact-sets.md +0 -68
- iopenpod-2.0.4/docs/adr/0075-publish-lyrics-with-media-file-tags.md +0 -28
- iopenpod-2.0.4/docs/adr/0076-execute-reviewed-sync-through-storage.md +0 -130
- iopenpod-2.0.4/docs/adr/README.md +0 -189
- iopenpod-2.0.4/docs/host-media-tags.md +0 -83
- iopenpod-2.0.4/docs/ipoddb-editing.md +0 -134
- iopenpod-2.0.4/docs/library-writing.md +0 -737
- iopenpod-2.0.4/docs/packaging.md +0 -536
- iopenpod-2.0.4/docs/research/itunescdb-and-sqlite-library.md +0 -65
- iopenpod-2.0.4/docs/source_architecture.md +0 -2545
- iopenpod-2.0.4/packaging/linux/io.github.therealsavi.iOpenPod.metainfo.xml +0 -18
- iopenpod-2.0.4/packaging/macos/dmg-background.png +0 -0
- iopenpod-2.0.4/packaging/macos/dmg-background.svg +0 -24
- iopenpod-2.0.4/packaging/macos/dmg-layout.applescript +0 -36
- iopenpod-2.0.4/packaging/windows/store/listing.md +0 -208
- iopenpod-2.0.4/packaging/windows/store/submission-fields.json +0 -163
- iopenpod-2.0.4/pyproject.toml +0 -216
- iopenpod-2.0.4/src/device_registry/data/catalog.py +0 -1115
- iopenpod-2.0.4/src/device_registry/models.py +0 -403
- iopenpod-2.0.4/src/iOpenPod/GUI/dialogs/metadata_editor.py +0 -819
- iopenpod-2.0.4/src/iOpenPod/GUI/main_window.py +0 -2069
- iopenpod-2.0.4/src/iOpenPod/GUI/pages/settings_page.py +0 -950
- iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.qm +0 -0
- iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_de.ts +0 -10060
- iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.qm +0 -0
- iopenpod-2.0.4/src/iOpenPod/GUI/presentation/i18n/translations/iopenpod_es.ts +0 -10060
- iopenpod-2.0.4/src/iOpenPod/GUI/presentation/theme/stylesheet.py +0 -2322
- iopenpod-2.0.4/src/iOpenPod/GUI/sync_workspace.py +0 -795
- iopenpod-2.0.4/src/iOpenPod/GUI/widgets/media_tools_settings.py +0 -145
- iopenpod-2.0.4/src/iOpenPod/GUI/widgets/metadata_field_editor.py +0 -416
- iopenpod-2.0.4/src/iOpenPod/GUI/widgets/sync_storage_bar.py +0 -241
- iopenpod-2.0.4/src/iOpenPod/GUI/widgets/track_actions.py +0 -861
- iopenpod-2.0.4/src/iOpenPod/app/core/logging.py +0 -63
- iopenpod-2.0.4/src/iOpenPod/app/core/version.py +0 -14
- iopenpod-2.0.4/src/iOpenPod/app/export_tagging.py +0 -301
- iopenpod-2.0.4/src/iOpenPod/app/host_media_controller.py +0 -250
- iopenpod-2.0.4/src/iOpenPod/app/host_media_library.py +0 -2396
- iopenpod-2.0.4/src/iOpenPod/app/library_sync_helper.py +0 -1108
- iopenpod-2.0.4/src/iOpenPod/app/library_write.py +0 -130
- iopenpod-2.0.4/src/iOpenPod/app/library_write_controller.py +0 -608
- iopenpod-2.0.4/src/iOpenPod/app/library_write_inspection.py +0 -424
- iopenpod-2.0.4/src/iOpenPod/app/lyrics_controller.py +0 -161
- iopenpod-2.0.4/src/iOpenPod/app/media/importing.py +0 -252
- iopenpod-2.0.4/src/iOpenPod/app/media/lyrics.py +0 -143
- iopenpod-2.0.4/src/iOpenPod/app/media/transcoding.py +0 -1031
- iopenpod-2.0.4/src/iOpenPod/app/models/library_filter_models.py +0 -425
- iopenpod-2.0.4/src/iOpenPod/app/models/sync_plan_table_model.py +0 -383
- iopenpod-2.0.4/src/iOpenPod/app/models/sync_selection.py +0 -274
- iopenpod-2.0.4/src/iOpenPod/app/scrobbling/clients.py +0 -373
- iopenpod-2.0.4/src/iOpenPod/app/services/device_coordinator.py +0 -4175
- iopenpod-2.0.4/src/iOpenPod/app/services/library_resources.py +0 -677
- iopenpod-2.0.4/src/iOpenPod/app/services/media_tools.py +0 -273
- iopenpod-2.0.4/src/iOpenPod/app/sync_execution.py +0 -2319
- iopenpod-2.0.4/src/iOpenPod/app/sync_plan.py +0 -680
- iopenpod-2.0.4/src/iOpenPod/app/sync_storage.py +0 -131
- iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_rhythm.py +0 -167
- iopenpod-2.0.4/src/iOpenPod/app/synesthesia/_signals.py +0 -226
- iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/container_mhod.py +0 -38
- iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/opaque_mhod.py +0 -12
- iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/mhod_parsers/string_mhod.py +0 -33
- iopenpod-2.0.4/src/iPodDB/ArtworkDB/parser/parse_ArtworkDB.py +0 -14
- iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/container_mhod.py +0 -38
- iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/opaque_mhod.py +0 -12
- iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/mhod_parsers/string_mhod.py +0 -33
- iopenpod-2.0.4/src/iPodDB/PhotosDB/parser/parse_PhotosDB.py +0 -14
- iopenpod-2.0.4/src/iPodDB/SQLiteDB/checksum.py +0 -68
- iopenpod-2.0.4/src/iPodDB/SQLiteDB/database.py +0 -1089
- iopenpod-2.0.4/src/iPodDB/iTunesDB/cdb.py +0 -136
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/chapter_data_mhod.py +0 -327
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/contextual_100_mhod.py +0 -17
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/library_index_mhod.py +0 -31
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/library_jump_table_mhod.py +0 -36
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/opaque_mhod.py +0 -14
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/plist_mhod.py +0 -52
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/settings_mhod.py +0 -28
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_prefs_mhod.py +0 -17
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/smart_rules_mhod.py +0 -180
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/string_mhod.py +0 -40
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/mhod_parsers/video_details_mhod.py +0 -16
- iopenpod-2.0.4/src/iPodDB/iTunesDB/parser/parse_iTunesDB.py +0 -23
- iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/chapter_data_mhod.py +0 -93
- iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/contextual_100_mhod.py +0 -28
- iopenpod-2.0.4/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_prefs_mhod.py +0 -28
- iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/mhod_encoder.py +0 -607
- iopenpod-2.0.4/src/iPodDB/iTunesDB/writer/signature.py +0 -291
- iopenpod-2.0.4/src/iPodDB/library/__init__.py +0 -218
- iopenpod-2.0.4/src/iPodDB/library/_artwork_verification.py +0 -171
- iopenpod-2.0.4/src/iPodDB/library/_artwork_writing.py +0 -652
- iopenpod-2.0.4/src/iPodDB/library/_photo_resources.py +0 -238
- iopenpod-2.0.4/src/iPodDB/library/_reconcile.py +0 -597
- iopenpod-2.0.4/src/iPodDB/library/_track_writing.py +0 -467
- iopenpod-2.0.4/src/iPodDB/library/_write_analysis.py +0 -415
- iopenpod-2.0.4/src/iPodDB/library/_write_effects.py +0 -363
- iopenpod-2.0.4/src/iPodDB/library/_write_logging.py +0 -201
- iopenpod-2.0.4/src/iPodDB/library/_write_preparation.py +0 -1052
- iopenpod-2.0.4/src/iPodDB/library/_write_verification.py +0 -147
- iopenpod-2.0.4/src/iPodDB/library/database.py +0 -414
- iopenpod-2.0.4/src/iPodDB/library/editing.py +0 -114
- iopenpod-2.0.4/src/iPodDB/library/signing.py +0 -64
- iopenpod-2.0.4/src/iPodDB/library/writing.py +0 -305
- iopenpod-2.0.4/src/iPodDB/shared/chunk.py +0 -408
- iopenpod-2.0.4/src/iPodDB/shared/chunk_reader.py +0 -433
- iopenpod-2.0.4/src/iPodDB/shared/chunk_writer.py +0 -325
- iopenpod-2.0.4/src/iPodDB/shared/errors.py +0 -42
- iopenpod-2.0.4/src/iPodDB/sidecars/codec.py +0 -225
- iopenpod-2.0.4/src/iPodDB/sidecars/models.py +0 -63
- iopenpod-2.0.4/src/iPodDB/sidecars/remapping.py +0 -64
- iopenpod-2.0.4/src/storage/media_processing.py +0 -527
- iopenpod-2.0.4/src/storage/platform/linux.py +0 -619
- iopenpod-2.0.4/tests/device_registry/test_artwork_profiles.py +0 -68
- iopenpod-2.0.4/tests/device_registry/test_registry.py +0 -391
- iopenpod-2.0.4/tests/iOpenPod/GUI/test_media_tools_settings.py +0 -163
- iopenpod-2.0.4/tests/iOpenPod/GUI/test_metadata_actions.py +0 -1156
- iopenpod-2.0.4/tests/iOpenPod/GUI/test_settings_tabs.py +0 -274
- iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_plan_page.py +0 -676
- iopenpod-2.0.4/tests/iOpenPod/GUI/test_sync_storage_bar.py +0 -87
- iopenpod-2.0.4/tests/iOpenPod/app/media/test_photo_sync.py +0 -454
- iopenpod-2.0.4/tests/iOpenPod/app/services/test_device_coordinator.py +0 -2158
- iopenpod-2.0.4/tests/iOpenPod/app/services/test_library_lyrics.py +0 -203
- iopenpod-2.0.4/tests/iOpenPod/app/services/test_library_resources.py +0 -610
- iopenpod-2.0.4/tests/iOpenPod/app/synesthesia/conftest.py +0 -61
- iopenpod-2.0.4/tests/iOpenPod/app/test_export_tagging.py +0 -140
- iopenpod-2.0.4/tests/iOpenPod/app/test_host_media_library.py +0 -1209
- iopenpod-2.0.4/tests/iOpenPod/app/test_library_sync_helper.py +0 -676
- iopenpod-2.0.4/tests/iOpenPod/app/test_lyrics_controller.py +0 -131
- iopenpod-2.0.4/tests/iOpenPod/app/test_media_lyrics.py +0 -193
- iopenpod-2.0.4/tests/iOpenPod/app/test_media_tools_setup.py +0 -281
- iopenpod-2.0.4/tests/iOpenPod/app/test_metadata_editing.py +0 -317
- iopenpod-2.0.4/tests/iOpenPod/app/test_music_import.py +0 -347
- iopenpod-2.0.4/tests/iOpenPod/app/test_pypi_updates.py +0 -273
- iopenpod-2.0.4/tests/iOpenPod/app/test_python_installation.py +0 -328
- iopenpod-2.0.4/tests/iOpenPod/app/test_python_update_helper.py +0 -484
- iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling.py +0 -598
- iopenpod-2.0.4/tests/iOpenPod/app/test_scrobbling_clients.py +0 -328
- iopenpod-2.0.4/tests/iOpenPod/app/test_sync_controller.py +0 -548
- iopenpod-2.0.4/tests/iOpenPod/app/test_sync_execution.py +0 -1915
- iopenpod-2.0.4/tests/iOpenPod/app/test_sync_plan.py +0 -518
- iopenpod-2.0.4/tests/iOpenPod/app/test_sync_storage.py +0 -178
- iopenpod-2.0.4/tests/iOpenPod/app/test_transcoding.py +0 -551
- iopenpod-2.0.4/tests/iPodDB/ArtworkDB/test_parser.py +0 -1146
- iopenpod-2.0.4/tests/iPodDB/SQLiteDB/test_database.py +0 -563
- iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_cdb.py +0 -58
- iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_definition_driven_parser.py +0 -339
- iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_remaining_mhod_parsers.py +0 -734
- iopenpod-2.0.4/tests/iPodDB/iTunesDB/test_signatures.py +0 -91
- iopenpod-2.0.4/tests/iPodDB/library/test_artwork_creation.py +0 -317
- iopenpod-2.0.4/tests/iPodDB/library/test_artwork_format_repair.py +0 -315
- iopenpod-2.0.4/tests/iPodDB/library/test_artwork_native_verification.py +0 -145
- iopenpod-2.0.4/tests/iPodDB/library/test_write_artwork.py +0 -364
- iopenpod-2.0.4/tests/iPodDB/library/test_write_resolution.py +0 -382
- iopenpod-2.0.4/tests/iPodDB/library/test_writing.py +0 -517
- iopenpod-2.0.4/tests/iPodDB/sidecars/test_playback_sidecars.py +0 -59
- iopenpod-2.0.4/tests/iPodDB/sidecars/test_sidecar_readers.py +0 -201
- iopenpod-2.0.4/tests/storage/test_media_processing.py +0 -450
- iopenpod-2.0.4/tests/storage/test_platform_facts.py +0 -366
- iopenpod-2.0.4/tests/test_packaging.py +0 -573
- iopenpod-2.0.4/uv.lock +0 -2228
- iopenpod-2.0.4/website/_config.yml +0 -41
- iopenpod-2.0.4/website/robots.txt +0 -4
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.editorconfig +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.gitattributes +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/FUNDING.yml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/workflows/flatpak.yml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/workflows/health.yml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/workflows/pages.yml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/workflows/release.yml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.github/workflows/update-feed.yml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.gitignore +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.hallmark/log.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.hallmark/preflight-web.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.hallmark/preflight.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.python-version +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.vscode/extensions.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.vscode/settings.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/.vscode/tasks.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/ACKNOWLEDGEMENTS.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/AGENTS.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/COPYING.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/LICENSE +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0001-use-python-3-12-and-uv.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0002-separate-the-four-primary-subsystems.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0003-share-quality-configuration-between-cli-and-vs-code.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0004-use-original-iopenpod-as-the-compatibility-baseline.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0005-use-one-active-ipod-and-user-directed-sync.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0006-require-lossless-ipoddb-round-trips.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0007-ship-one-application-with-branded-package-names.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0008-require-one-definition-driven-ipoddb-path.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0009-use-qt-logical-pixels-and-native-display-metrics.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0010-resolve-ranked-device-evidence-in-the-device-registry.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0011-bind-storage-access-to-connection-generations.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0012-load-artwork-lazily-across-existing-boundaries.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0013-reconcile-device-metadata-across-existing-boundaries.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0014-persist-global-settings-through-storage.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0015-isolate-iopenpod-2-settings-from-original-iopenpod.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0016-qualify-device-candidates-and-correlate-macos-hardware.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0017-stream-playback-through-a-replaceable-backend.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0018-publish-playback-through-optional-system-media-sessions.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0019-project-databases-through-a-common-library-contract.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0020-project-playlists-and-isolate-session-edits.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0021-prepare-library-drafts-over-retained-documents.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0022-apply-and-save-playlist-drafts.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0023-capture-write-requests-and-inspect-them-without-replay.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0024-reconcile-and-verify-playlists-by-dataset.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0025-resolve-library-edits-before-reconciliation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0026-share-one-library-workspace-for-metadata-and-playlists.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0027-restore-the-previously-selected-ipod.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0028-record-library-write-debug-diagnostics.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0029-publish-file-transactions-with-retained-recovery.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0031-inspect-captured-host-media-before-planning-imports.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0032-add-inspected-music-through-library-reviews.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0033-create-artworkdb-from-catalog-capabilities.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0034-bind-media-replacement-intent-to-library-drafts.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0035-author-evidence-backed-smart-playlist-choices.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0036-reclassify-retained-media-without-replacement.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0037-persist-a-device-aware-podcast-catalog.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0038-preserve-the-original-backup-archive-contract.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0039-use-backup-format-v4-and-bounded-restore-recovery.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0040-identify-backups-by-serial-with-a-best-effort-fallback.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0041-allow-foreground-reads-during-backup-capture.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0042-analyze-audio-into-ephemeral-world-scores.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0043-render-synesthesia-as-one-continuous-world.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0044-make-synesthesia-topology-and-biography-authoritative.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0045-drive-synesthesia-through-one-coupled-field.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0046-preserve-musical-context-in-synesthesia-evidence.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0047-map-track-analysis-into-one-expressive-field.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0048-direct-synesthesia-through-mood-selected-scenes.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0049-choreograph-synesthesia-scenes-as-music-driven-journeys.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0050-compose-synesthesia-camera-shots-inside-scenes.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0051-make-player-transport-authoritative-for-synesthesia.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0052-model-photosdb-as-a-distinct-artifact.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0053-project-photos-into-library-drafts.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0054-browse-photos-through-a-lazy-three-pane-ui.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0055-export-photos-through-the-active-filesystem-session.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0056-preview-retained-full-resolution-photos-safely.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0057-manage-photo-album-membership-through-collection-cards.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0058-create-empty-photo-albums-through-library-drafts.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0059-delete-photos-through-library-drafts.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0060-use-native-safe-removal-services.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0062-assign-matched-original-backups-to-native-identities.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0063-scan-host-media-into-common-library-snapshots.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0064-browse-host-and-ipod-library-sources-independently.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0065-index-ipod-media-for-sync-correlation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0066-prepare-sync-plans-from-correlated-media.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0067-present-host-media-inside-the-sync-workspace.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0068-render-synesthesia-before-track-analysis-completes.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0069-refresh-devices-while-the-picker-is-open.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0070-select-sync-actions-in-grouped-review.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0071-restore-the-remembered-ipod-at-startup.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0072-open-sync-collections-as-detail-pages.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0073-apply-library-changes-automatically-by-default.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0074-constrain-host-playlist-references-through-storage.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0077-hold-synesthesia-scenes-across-short-sections.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0078-prepare-the-next-synesthesia-playback-entry.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0079-prepare-native-packages-with-explicit-store-gates.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0080-distribute-iopenpod-under-gplv3-or-later.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0081-require-user-installed-media-tools.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0082-tolerate-host-media-scan-source-churn.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0083-tolerate-host-native-media-variants.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0084-keep-optional-media-analysis-out-of-sync-gates.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0085-preserve-positional-playback-sidecars-during-sync.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0086-prepare-bounded-stills-for-oversized-photos.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0087-report-concurrent-host-preparation-progress.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0088-edit-track-classification-in-the-metadata-editor.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0089-make-interrupted-sync-recovery-a-device-scoped-choice.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0090-derive-volume-presentation-from-the-saved-ipod.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0091-sync-podcasts-through-shared-media-publication.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0092-enforce-podcast-and-video-playback-options.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0093-complete-terminal-transaction-cleanup-automatically.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0094-target-macos-12-3-with-platform-specific-native-dependencies.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0095-convert-a-complete-album-to-one-chaptered-track.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0096-publish-status-progress-and-actions-as-source-owned-data.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0097-model-preferences-as-a-lossless-flat-document.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0098-capture-device-time-context-for-library-dates.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0099-share-native-host-tag-interpretation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0100-reconcile-firmware-playback-sidecars-on-device-selection.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0101-retain-account-scoped-scrobble-delivery-on-the-host.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0102-adjust-old-lastfm-submission-dates.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0103-offer-native-media-tool-installation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0104-publish-validated-tagged-github-releases.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0105-route-application-updates-by-install-channel.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0106-run-health-only-on-explicit-dispatch.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0107-publish-only-native-release-archives.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0108-bundle-windows-as-one-executable.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0109-authenticate-and-isolate-github-application-updates.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0110-offer-macos-drag-to-applications-disk-images.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0111-correct-evidenced-artwork-format-sizes-during-preparation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0112-publish-python-distributions-with-github-releases.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0113-update-installed-python-packages-through-pypi.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/adr/0114-distinguish-install-downloads-from-update-archives.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/agents/domain.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/agents/issue-tracker.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/agents/triage-labels.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/app-updates.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/eta.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/gui-design-language.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/ipod-preferences.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/ipod-time.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/library-contract.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/library-writing-audit-2026-09-11.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/licensing.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/media-tools.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/playback-sidecars.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/artworkdb-format.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/ipod-preferences.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/ipod-time-reconciliation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/ithmb-uyvy-format.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/itunesdb-lyrics.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/itunesdb-sort-36.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/macos-catalina-compatibility.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/macos-compatibility.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/photosdb-format.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/safe-native-eject.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/synesthesia-coupled-field.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/synesthesia-world-architecture.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/research/windows-store-requirements.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/scrobbling.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/sync-media-policy.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/sync-validation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/sync-workflow-audit-2026-09-26.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/synesthesia_backend.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/synesthesia_visual_direction.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/translations.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/docs/volume-presentation.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/main.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/github-release.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/hooks/hook-PySide6.QtGui.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/hooks/hook-sklearn.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/iOpenPod.spec +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/linux/flatpak.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/linux/io.github.therealsavi.iOpenPod.desktop +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/linux/snapcraft.yaml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/macos/app-store.entitlements.plist +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/macos/helper.entitlements.plist +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/macos/update_bridge.m +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/Microsoft-runtime-NOTICE.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/Python-Windows-Binary-LICENSE.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/libsndfile-no-version-resource.patch +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/native-build-tools.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/native-evidence.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/audioread-3.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/bzip2-1.0.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/certifi-2026.7.22-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/cffi-2.1.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/charset-normalizer-3.5.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/cloudpickle-3.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/colorama-0.4.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/cpython-3.12-3.12.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/decorator-5.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/expat-2.8.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/feedparser-6.0.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/feedparser-sgmllib-2.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/ffmpeg-7.1.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/hashab-f80d46432204c6238cad7d8ca3b3dd52ea66836b-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/idna-3.19-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/importlib-resources-7.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/joblib-1.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/lazy-loader-0.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/libffi-3.4.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/librosa-0.11.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/libsndfile-1.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/llvm-llvmlite-22.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/llvm-mesa-3.6.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/llvmlite-0.49.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/mesa-11.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/mpdecimal-4.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/msgpack-1.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/mutagen-1.48.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/narwhals-2.26.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/numba-0.67.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/numpy-2.5.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/openblas-numpy-446c436e10450c348169808f1a6b3fae0925c9f7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/openblas-numpy-build-v0.3.34.106.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/openblas-scipy-5ffbf38b41a1fe494d038efcb09cf22f4d527c22-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/openblas-scipy-build-v0.3.31.22.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/openssl-3.5-3.5.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/packaging-26.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pillow-12.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pillow-build-12.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/platformdirs-4.11.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pooch-1.9.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/provenance.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pycparser-3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pycryptodome-3.23.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pyinstaller-6.22.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pyside-setup-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/python-build-standalone-20260825-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/pywinrt-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qtbase-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qtdeclarative-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qtimageformats-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qtmultimedia-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qtshadertools-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qtsvg-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qttools-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/qttranslations-6.11.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/requests-2.34.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-addr2line-0.24.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-addr2line-0.25.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-adler2-2.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-aes-0.8.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-aho-corasick-1.0.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-allocator-api2-0.2.20-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ambient-authority-0.0.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-android_system_properties-0.1.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anes-0.1.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anstream-0.6.15-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anstyle-1.0.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anstyle-parse-0.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anstyle-query-1.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anstyle-wincon-3.0.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-anyhow-1.0.93-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-arbitrary-1.4.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-arbtest-0.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-arrayvec-0.7.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-async-trait-0.1.71-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-autocfg-1.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-backtrace-0.3.75-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-base64-0.22.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-base64ct-1.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-beef-0.5.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bindgen-0.71.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bit-set-0.5.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bit-vec-0.6.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bitflags-1.3.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bitflags-2.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bitmaps-2.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-block-buffer-0.10.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bstr-1.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bumpalo-3.16.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-byteorder-1.4.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bytes-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bytesize-2.0.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bzip2-0.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-bzip2-sys-0.1.11+1.0.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-camino-1.1.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cap-fs-ext-3.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cap-net-ext-3.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cap-primitives-3.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cap-rand-3.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cap-std-3.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cap-time-ext-3.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-capstone-0.13.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-capstone-sys-0.17.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cargo-platform-0.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cargo_metadata-0.19.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cast-0.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cc-1.2.22-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cexpr-0.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cfg-if-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ciborium-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ciborium-io-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ciborium-ll-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cipher-0.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-clang-sys-1.8.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-clap-4.5.36-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-clap_builder-4.5.36-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-clap_complete-4.5.28-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-clap_derive-4.5.32-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-clap_lex-0.7.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cobs-0.2.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-codespan-reporting-0.11.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-colorchoice-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-console-0.15.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-constant_time_eq-0.1.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-core-foundation-0.9.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-core-foundation-sys-0.8.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cpp_demangle-0.4.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cpufeatures-0.2.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-crc32fast-1.3.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-criterion-0.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-criterion-plot-0.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-crossbeam-deque-0.8.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-crossbeam-epoch-0.9.18-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-crossbeam-utils-0.8.20-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-crunchy-0.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-crypto-common-0.1.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-cty-0.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-debugid-0.8.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-deranged-0.3.11-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-derive_arbitrary-1.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-digest-0.10.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-directories-next-2.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-dirs-sys-next-0.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-displaydoc-0.2.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-dlmalloc-0.2.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-downcast-rs-2.0.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-easy-smt-0.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-egg-0.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-either-1.13.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-embedded-io-0.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-encode_unicode-0.3.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-encoding_rs-0.8.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-env_filter-0.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-env_logger-0.10.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-env_logger-0.11.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-equivalent-1.0.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-errno-0.3.10-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-escape8259-0.5.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fallible-iterator-0.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fastrand-2.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fd-lock-4.0.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-file-per-thread-logger-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-filecheck-0.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-filetime-0.2.16-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fixedbitset-0.4.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-flagset-0.4.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-flate2-1.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fnv-1.0.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-foldhash-0.1.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-foreign-types-0.3.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-foreign-types-shared-0.1.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-form_urlencoded-1.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fs-set-times-0.20.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fslock-0.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-channel-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-core-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-executor-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-io-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-macro-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-sink-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-task-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-futures-util-0.3.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-fxprof-processed-profile-0.8.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-generic-array-0.14.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-getrandom-0.2.15-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-getrandom-0.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-gimli-0.31.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-gimli-0.32.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-glob-0.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-gzip-header-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-h2-0.4.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-half-1.8.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-half-2.4.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-hashbrown-0.12.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-hashbrown-0.15.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-heck-0.4.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-heck-0.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-hermit-abi-0.3.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-hmac-0.12.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-home-0.5.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-http-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-http-body-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-http-body-util-0.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-httparse-1.8.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-httpdate-1.0.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-humantime-2.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-hyper-1.0.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-iana-time-zone-0.1.61-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-iana-time-zone-haiku-0.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_collections-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_locid-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_locid_transform-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_locid_transform_data-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_normalizer-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_normalizer_data-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_properties-1.5.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_properties_data-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_provider-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-icu_provider_macros-1.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-id-arena-2.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-idna-1.0.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-idna_adapter-1.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-im-rc-15.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-indexmap-1.9.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-indexmap-2.7.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-indicatif-0.13.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-inout-0.1.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-instant-0.1.12-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-io-extras-0.18.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-io-lifetimes-2.0.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ipnet-2.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-is-terminal-0.4.10-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-is_terminal_polyfill-1.70.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-itertools-0.10.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-itertools-0.13.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-itertools-0.14.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-itoa-1.0.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ittapi-0.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ittapi-sys-0.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-jobserver-0.1.32-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-js-sys-0.3.74-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-json-from-wast-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-lazy_static-1.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-leb128-0.2.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-leb128fmt-0.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-libc-0.2.171-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-libfuzzer-sys-0.4.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-libloading-0.8.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-libm-0.2.11-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-libtest-mimic-0.8.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-linux-raw-sys-0.4.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-linux-raw-sys-0.9.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-listenfd-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-litemap-0.7.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-log-0.4.27-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-logos-0.14.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-logos-codegen-0.14.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-logos-derive-0.14.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-mach2-0.4.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-matchers-0.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-matrixmultiply-0.3.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-maybe-owned-0.3.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-memchr-2.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-memfd-0.6.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-memmap2-0.2.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-minimal-lexical-0.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-miniz_oxide-0.8.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-mio-1.0.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-multi-stash-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-mutatis-0.3.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-native-tls-0.2.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ndarray-0.15.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-nom-7.1.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-nu-ansi-term-0.46.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-num-complex-0.4.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-num-conv-0.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-num-integer-0.1.46-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-num-traits-0.2.19-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-num_cpus-1.16.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-number_prefix-0.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-object-0.36.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-object-0.37.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ocaml-boxroot-sys-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ocaml-interop-0.8.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ocaml-sys-0.22.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-once_cell-1.19.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-oorandom-11.1.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openssl-0.10.73-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openssl-macros-0.1.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openssl-probe-0.1.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openssl-sys-0.9.109-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openvino-0.9.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openvino-finder-0.9.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-openvino-sys-0.9.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ort-2.0.0-rc.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ort-sys-2.0.0-rc.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-overload-0.1.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-password-hash-0.4.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-paste-1.0.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-pbkdf2-0.11.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-percent-encoding-2.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-petgraph-0.6.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-pin-project-lite-0.2.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-pin-utils-0.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-pkg-config-0.3.29-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-postcard-1.0.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-powerfmt-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ppv-lite86-0.2.16-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-prettyplease-0.2.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-proc-macro2-1.0.92-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-proptest-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-quick-error-1.2.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-quick-error-2.0.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-quote-1.0.36-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand-0.8.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand-0.9.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand_chacha-0.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand_chacha-0.9.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand_core-0.6.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand_core-0.9.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand_xorshift-0.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rand_xoshiro-0.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-raw-cpuid-11.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rawpointer-0.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rayon-1.5.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rayon-core-1.12.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-redox_syscall-0.2.13-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-redox_users-0.4.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regalloc2-0.13.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regex-1.9.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regex-automata-0.1.10-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regex-automata-0.3.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regex-syntax-0.6.25-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regex-syntax-0.7.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-regex-syntax-0.8.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-region-3.0.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ring-0.17.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustc-demangle-0.1.24-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustc-hash-2.1.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustix-0.38.43-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustix-1.0.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustix-linux-procfs-0.1.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustls-0.22.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustls-0.23.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustls-pki-types-1.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustls-webpki-0.102.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rustversion-1.0.14-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-rusty-fork-0.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ryu-1.0.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-safetensors-0.3.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-same-file-1.0.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-schannel-0.1.27-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-security-framework-2.11.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-security-framework-sys-2.14.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-semver-1.0.17-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-serde-1.0.215-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-serde_derive-1.0.215-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-serde_json-1.0.140-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-serde_spanned-0.6.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-serde_yaml-0.9.34+deprecated-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-sha1-0.10.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-sha2-0.10.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-sharded-slab-0.1.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-shlex-1.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-shuffling-allocator-1.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-signal-hook-registry-1.4.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-similar-2.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-sized-chunks-0.6.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-slab-0.4.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-smallvec-1.13.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-socket2-0.5.7-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-souper-ir-2.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-spin-0.9.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-stable_deref_trait-1.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-static_assertions-1.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-string-interner-0.19.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-strsim-0.11.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-strum-0.24.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-strum_macros-0.24.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-subtle-2.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-symbolic_expressions-5.0.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-syn-1.0.92-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-syn-2.0.100-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-synstructure-0.13.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-system-interface-0.27.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tar-0.4.41-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-target-lexicon-0.13.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tch-0.17.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tempfile-3.21.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-termcolor-1.4.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-terminal_size-0.4.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-test-log-0.2.11-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-thiserror-1.0.65-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-thiserror-2.0.12-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-thiserror-impl-1.0.65-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-thiserror-impl-2.0.12-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-thread_local-1.1.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-time-0.3.36-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-time-core-0.1.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tinystr-0.7.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tinytemplate-1.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tokio-1.44.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tokio-macros-2.5.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tokio-native-tls-0.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tokio-rustls-0.25.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tokio-util-0.7.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-toml-0.8.10-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-toml_datetime-0.6.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-toml_edit-0.22.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-torch-sys-0.17.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tracing-0.1.37-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tracing-attributes-0.1.26-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tracing-core-0.1.31-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tracing-log-0.1.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-tracing-subscriber-0.3.17-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-try-lock-0.2.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-typenum-1.15.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-unicode-ident-1.0.8-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-unicode-segmentation-1.11.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-unicode-width-0.1.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-unicode-width-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-unicode-xid-0.2.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-unsafe-libyaml-0.2.11-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-untrusted-0.9.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-ureq-2.10.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-url-2.5.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-utf16_iter-1.0.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-utf8_iter-1.0.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-utf8parse-0.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-uuid-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-v8-137.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-valuable-0.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-vcpkg-0.2.15-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-version_check-0.9.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wait-timeout-0.2.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-walkdir-2.3.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-want-0.3.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasi-0.11.0+wasi-snapshot-preview1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasi-0.13.3+wasi-0.2.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasi-nn-0.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasip1-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasip2-1.0.0+wasi-0.2.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-bindgen-0.2.97-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-bindgen-backend-0.2.97-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-bindgen-macro-0.2.97-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-bindgen-macro-support-0.2.97-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-bindgen-shared-0.2.97-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-compose-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-encoder-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-metadata-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-mutate-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-smith-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasm-wave-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmi-0.43.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmi_collections-0.43.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmi_core-0.43.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmi_ir-0.43.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmparser-0.227.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmparser-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wasmprinter-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wast-239.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wast-35.0.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wat-1.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-web-sys-0.3.57-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-webpki-roots-0.26.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-which-6.0.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winapi-0.3.9-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winapi-i686-pc-windows-gnu-0.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winapi-util-0.1.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winapi-x86_64-pc-windows-gnu-0.4.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-0.52.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-core-0.52.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-implement-0.52.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-interface-0.52.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-sys-0.52.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-sys-0.59.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-sys-0.60.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-targets-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows-targets-0.53.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_aarch64_gnullvm-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_aarch64_gnullvm-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_aarch64_msvc-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_aarch64_msvc-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_i686_gnu-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_i686_gnu-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_i686_gnullvm-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_i686_gnullvm-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_i686_msvc-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_i686_msvc-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_x86_64_gnu-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_x86_64_gnu-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_x86_64_gnullvm-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_x86_64_gnullvm-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_x86_64_msvc-0.52.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-windows_x86_64_msvc-0.53.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winnow-0.5.39-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winsafe-0.0.19-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-winx-0.36.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-bindgen-0.45.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-bindgen-0.46.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-bindgen-core-0.46.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-bindgen-rt-0.33.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-bindgen-rust-0.46.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-bindgen-rust-macro-0.46.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-component-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-wit-parser-0.239.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-witx-0.9.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-write16-1.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-writeable-0.5.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-xattr-1.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-yoke-0.7.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-yoke-derive-0.7.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zerofrom-0.1.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zerofrom-derive-0.1.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zeroize-1.7.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zerovec-0.10.4-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zerovec-derive-0.10.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zip-0.6.6-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zstd-0.11.2+zstd.1.5.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zstd-0.13.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zstd-safe-5.0.2+zstd.1.5.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zstd-safe-7.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/rust-zstd-sys-2.0.9+zstd.1.5.5-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/scikit-learn-1.9.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/scipy-1.18.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/soundfile-0.14.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/soxr-1.1.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/sparkle-2.10.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/sqlite-3530100-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/threadpoolctl-3.6.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/tqdm-4.70.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/typing-extensions-4.16.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/urllib3-2.7.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/wasmtime-38.0.0-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/wasmtime-native-38.0.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/winrt-runtime-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/winrt-windows-foundation-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/winrt-windows-foundation-collections-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/winrt-windows-media-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/winrt-windows-media-interop-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/winrt-windows-storage-streams-3.2.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/xz-5.8.3-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/zig-runtime-0.14.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/zlib-1.3.2-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/notices/zlib-ffmpeg-1.3.1-NOTICES.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/third-party/sources.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/update-helper.spec +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/update-keys.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/ActivatePackage.cs +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/AppxManifest.xml.in +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/iOpenPod.manifest.xml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/assets/store-logo-300.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/certification-notes.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/license.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/license.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/privacy.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/privacy.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/01-album-library.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/02-album-details.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/03-playlists.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/04-photo-library.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/05-sync-review.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/06-about-and-credits.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots/manifest.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/screenshots.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/support.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store/support.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/store-identity.toml +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/packaging/windows/test-installed-package.ps1 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/assemble_github_release.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/build_windows_sndfile.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/capture_store_screenshots.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/check_macos_bundle.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/check_macos_dmg.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/check_wheel.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/check_windows_bundle.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/compile_synesthesia_shaders.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/generate_fake_music_library.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/generate_media_fixtures.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/package_app.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/package_updates.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/prepare_release.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/prepare_release_sources.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/prepare_store_kit.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/publish_update_feed.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/sync_macos_build.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/update_feed.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/scripts/update_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/authority.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/data/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/identifiers.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/py.typed +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/device_registry/registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/PROTOTYPE.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/album_card_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/collection_card_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/collection_list_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/photo_album_membership_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/photo_card_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/podcast_delegates.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/selection_group_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/delegates/track_artwork_delegate.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/artwork_editor.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/device_picker.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/external_playlist_files.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/library_review.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/linux_identity_setup.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/media_folders.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/media_tools_setup.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/photo_album_editor.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/photo_album_manager.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/photo_metadata_editor.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/playlist_editor.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/playlist_export.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/podcast_search.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/podcast_sync_settings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/scrobble_report.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/dialogs/tag_normalizer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/host_library_browser.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/navigation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/backup_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/collection_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/library_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/photo_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/placeholder_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/playlist_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/podcast_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/sync_execution_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/sync_plan_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/synesthesia_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/pages/track_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/application_icon.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/artwork_provider.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/backup_messages.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/collection_text.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/device_images.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/display.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/eta.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/i18n/manager.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/i18n/text.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/i18n/workflow.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/icons.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/image_color.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/library_card.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/middle_mouse_scrolling.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/photo.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/photo_provider.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/podcast_artwork_provider.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/podcast_collection_artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/selection_checkbox.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/theme/backup_styles.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/theme/checkbox_style.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/theme/dynamic.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/theme/manager.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/theme/podcast_styles.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/theme/tokens.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/presentation/track_drag_preview.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/conductor.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/motion_phases.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/persistent_world.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/preview.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/render_resolution.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/renderer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/scene_director.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.vert +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/comets.vert.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/events.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/events.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/feedback.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/feedback.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/field_sim.comp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/field_sim.comp.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.vert +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/filaments.vert.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/fullscreen.vert +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/fullscreen.vert.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.vert +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/particles.vert.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/present.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/present.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/scenes.frag +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/shader_sources/scenes.frag.qsb +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/synesthesia/visual_style.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/album_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/app_combo_box.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/artwork_view.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/browser_chrome.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/collection_detail.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/collection_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/elided_label.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/equalized_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/eta_label.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/host_media_drop.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/ipod_preferences.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/library_content.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/library_drag_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/library_toolbar.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/photo_album_membership_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/photo_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/photo_inspector.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/playback_pane.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/player_bar.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/playlist_artwork_banner.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/playlist_tree.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/podcast_artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/scrobbling_settings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/search_field.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/selection_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/selection_group_transition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/setting_group.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/sidebar.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/status_controls.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/status_list.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/sync_preparation_progress.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/sync_review_group.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/sync_selection_actions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/sync_settings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/themed_buttons.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/track_list_header.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/GUI/widgets/track_table.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/__main__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/app.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/artwork_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/artwork_import.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backup_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/_json.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/archive.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/original_archive.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/outcomes.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/recovery.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/repository.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/scope.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/backups/service.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/chaptered_conversion.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/chaptered_conversion_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/context.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/certifi_ssl.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/eta.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/runtime.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/settings/definitions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/settings/paths.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/settings/service.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/settings/stores.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/settings/transcoding.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/core/status.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/device_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/display_text.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/host_media_fingerprint.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/host_media_folders.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/host_playlists.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/ipod_media_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/library_export.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/library_export_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/library_workspace.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/content_type.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/inspection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/lyrics_reader.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/music_paths.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/photo_sync.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/progress.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/sync_artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media/tags.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/media_tools_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/metadata_fields.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/album_list_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/artwork_seed.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/collection_list_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/device.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/filter_compat.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/ipod_preferences.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/keyed_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/library_drag.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/photo_album_membership_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/photo_list_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/photos.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/playback_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/playlist_tree_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/podcast_list_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/selection_grouping.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/track_columns.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/track_order.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/models/track_table_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/music_import_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/photo_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/_qt_io.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/_qt_logging.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/backend.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/qt_backend.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/runtime_check.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/bridge.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/factory.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/linux.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/macos.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/session.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback/system_media/windows.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/playback_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/artwork_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/catalog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/documents.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/feed_client.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/identity.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/media.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/store.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/sync.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/sync_artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/podcasts/sync_preparation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/_json.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/credentials.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/queue.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/reporting.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/service.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/settings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/scrobbling/timestamps.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/services/device_time.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/services/ipod_preferences.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/services/linux_identity.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/services/volume_presentation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/smart_playlist_preview.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/sync_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/_structure.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/audio.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/backend.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/dsp.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/enrichment.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/synesthesia/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/tag_normalization_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/tag_normalizer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/track_conversion.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/track_playback_policy.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/backend.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/bootstrap.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/github.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/helper.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/installation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/platform.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/portable.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/processes.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/processes_windows.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/pypi.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/python_helper.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/python_installation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/releases.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/sparkle.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/transport.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/app/updates/windows.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/album.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/alert.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/bell.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/book.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/box.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/broadcast.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/check-circle.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/chevron-left.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/eject.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/film.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/folder.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/grid.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/list.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/minus.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/monitor.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/music.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/pause.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/photo.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/play-last.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/play-next.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/play.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/playlist.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/plus.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/refresh.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/search.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/settings-sliders.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/skip-back.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/skip-forward.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/smart-playlist.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/synesthesia.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/user.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/video.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/volume.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/glyphs/x.svg +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/DJShott-icon.txt +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-128.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-16.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-24.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-256.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-32.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-48.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon-64.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/icons/icon.ico +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod1.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod11-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod11-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod11B-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod12-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod12-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod12-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod12-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod12-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod12-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Orange.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Purple.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod15-Yellow.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Orange.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Purple.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod16-Yellow.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-DarkGray.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-Orange.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod17-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-DarkGray.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Purple.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-SpaceGray.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18-Yellow.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18A-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18A-Gold.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18A-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18A-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18A-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod18A-SpaceGray.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod2.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3-Gold.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3B-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3B-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod3B-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod4-BlackRed.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod4-White.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod5-BlackRed.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod5-White.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod6-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod6-BlackRed.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod6-White.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod7-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod7-White.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod9-Black.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod9-Blue.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod9-Green.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod9-Pink.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod9-Red.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPod9-Silver.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/ipod_images/iPodGeneric.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iOpenPod/assets/linux/61-iopenpod.rules +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/builder/build_ArtworkDB.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/ithmb.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/ithmb_writer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/parser/mhod_payload_spec_registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/parser/parser_definition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/artwork_index.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhaf.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhba.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhfd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhia.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhif.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhii.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhla.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhlf.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhli.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhni.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/container_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhod_payloads/string_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/chunk_defs/mhsd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/constants.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/database_definition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/shared/mhod_payload_spec_registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/writer/mhod_encoder.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/writer/mhod_serializer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/ArtworkDB/writer/write_ArtworkDB.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/builder/build_PhotosDB.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/parser/mhod_payload_spec_registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/parser/parser_definition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhaf.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhba.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhfd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhia.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhif.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhii.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhla.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhlf.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhli.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhni.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/container_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhod_payloads/string_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/chunk_defs/mhsd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/constants.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/database_definition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/shared/mhod_payload_spec_registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/PhotosDB/writer/write_PhotosDB.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/SQLiteDB/artifacts.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/device_time.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/builder/build_iTunesDB.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/parser/mhod_parsers/url_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/parser/mhod_payload_spec_registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/parser/parser_definition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhbd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhia.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhii.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhip.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhit.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhla.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhli.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhlp.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhlt.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/library_index_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/library_jump_table_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/opaque_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/plist_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/settings_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/smart_rules_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/string_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/url_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhod_payloads/video_details_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhsd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/chunk_defs/mhyp.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/constants.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/database_definition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/device_time.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/field_converters.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/shared/mhod_payload_spec_registry.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/writer/calcHashAB.NOTICE +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/writer/calcHashAB.wasm.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/iTunesDB/writer/write_iTunesDB.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_album_index.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_browse_groups.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_browse_index.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_document_edit.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_field_policy.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_folder_validation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_folder_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_group_verification.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_hidden_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_hierarchy.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_identities.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_index_verification.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_lyrics_resources.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_native_values.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_photo_analysis.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_photo_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_photo_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_playlist_datasets.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_playlist_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_playlist_verification.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_playlist_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_podcast_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_resolve_write.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_resolved_write.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_sidecar_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_smart_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_smart_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_source_warnings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_time_warnings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_track_header_verification.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/_track_verification.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/media.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/photos.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/playlists.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/smart_rules.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/library/sqlite.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/_source.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/codec.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/definitions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/itunes.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/itunes_definitions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/preferences/timezones.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/py.typed +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/shared/binary_struct.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/shared/chunk_builder.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/shared/chunk_field.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/shared/measure_memory.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/shared/to_json.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/shared/types.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/sidecars/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iPodDB/tools/chunk_browser.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iopenpod_launcher.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/iopenpod_update_helper.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/_filesystem.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/_transaction_journal.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/_transactions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/_writer_lock.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/device_capture.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/errors.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_capture.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_directory.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_files.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_input.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_installation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_tools.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/host_usage.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/media_probe.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/paths.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/base.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/common.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/host_install_windows.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/linux_eject.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/macos.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/macos_eject.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/macos_volume_metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/macos_vpd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/native.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/windows.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/platform/windows_eject.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/portal.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/py.typed +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/scsi_vpd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/session.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/testing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/transactions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/src/storage/volume_metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/conftest.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/device_registry/test_authority.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/device_registry/test_metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/ArtworkDB/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/ArtworkDB/original-empty.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/ArtworkDB/original-with-unknown-data.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/PhotosDB/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/PhotosDB/original-photo-library.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/SQLiteDB/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/iTunesDB/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/iTunesDB/original-empty.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/chapters-cover.m4a.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/generator.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/lossless.m4a.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/multi-track.m4v.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/multi-track.mov.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/silent.mp4.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/source.mkv.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/surround.flac.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/tone-vbr.mp3.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/tone.aiff.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/tone.m4a.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/tone.mp3.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/media/tone.wav.b64 +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/normalization/original-cases.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/writing/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/writing/hash58-original.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/writing/original_smart_rules.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/fixtures/writing/playlists-original.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/application_shell_test_support.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/conftest.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_artwork_provider.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_collection_text.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_device_images.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_display.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_german_catalog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_i18n_manager.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_icons.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_image_color.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_library_card.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_middle_mouse_scrolling.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_model_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_photo_provider.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_round_header_colors.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_spanish_catalog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_theme_manager.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/presentation/test_translation_catalog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_motion_phases.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_page_integration.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_persistent_world.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_render_resolution.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_renderer_assets.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_renderer_pixels.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_renderer_timing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_scene_director.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/synesthesia/test_shader_smoothing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_app_updates.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_application_shell.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_artwork_editor.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_backup_messages.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_backup_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_browser_chrome.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_device_auto_refresh.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_eject_messages.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_eta_label.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_external_playlist_files_dialog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_history_track_interactions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_host_library_browser.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_host_media_drop.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_ipod_library_view_mode.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_ipod_preferences_tab.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_library_double_click.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_library_grid_drag.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_library_review_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_library_track_order.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_media_folders_dialog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_media_tools_dialog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_page_count_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_photo_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_photo_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_playback_lyrics.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_playback_ui.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_playlist_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_playlist_tree.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_podcast_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_podcast_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_queue_actions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_scrobbling_ui.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_selection_grid_gestures.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_selection_group_grid.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_selection_group_transition.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_status_list.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_collection_detail.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_execution_page.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_playlist_review.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_recovery_choice.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_scan_i18n.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_selection_actions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_sync_settings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_tag_normalizer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_track_table.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_track_title_bar.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_widget_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/GUI/test_workflow_failure_translations.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/__init__.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/backups/test_backup_service.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/backups/test_json.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/backups/test_original_import.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/backups/test_outcomes.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/backups/test_repository.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/backups/test_restore_recovery.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/core/settings/test_service.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/core/settings/test_transcoding_settings.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/core/test_eta.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/core/test_logging.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/core/test_status.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/media/test_music_paths.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_library_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_library_search_order.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_photo_album_drops.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_photo_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_playback_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_playlist_tree_model.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_podcast_list_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/models/test_selection_grouping.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/podcast_test_support.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_catalog.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_documents.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_feed_client.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_podcast_artwork_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_podcast_sync_artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_store.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_sync.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/podcasts/test_sync_preparation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_artwork_format_repair_save.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_device_time_integration.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_first_artwork_save.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_ipod_preferences_inspection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_linux_identity.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_sidecar_reconciliation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_sync_recovery.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/services/test_volume_presentation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/sync_test_support.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_analysis_core.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_audio.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_backend.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_conductor_mapping.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_conductor_reliability.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_scene_calibration.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/synesthesia/test_synesthesia_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_app.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_artwork_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_artwork_import.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_backup_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_chaptered_conversion.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_device_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_display_text.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_github_updates.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_host_media_fingerprint.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_host_media_folders.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_host_metadata_tags.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_host_playlists.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_install_channel.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_library_export.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_library_export_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_library_write_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_linux_system_media.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_lyrics_reader.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_macos_system_media.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_media_inspection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_music_import_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_photo_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_photo_workspace.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_playback_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_playback_runtime.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_playlist_workspace.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_podcast_now_playing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_podcast_sync_execution.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_podcast_sync_fingerprints.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_podcast_sync_lifecycle.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_portable_updates.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_qt_playback_backend.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_release_metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_scrobbling_credentials.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_scrobbling_sync.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_scrobbling_timestamps.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_smart_playlist_preview.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_startup_imports.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_sync_artwork.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_sync_playback_policy.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_sync_recovery_choices.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_sync_recovery_detection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_system_media_bridge.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_tag_normalization_controller.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_terminal_cleanup_selection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_track_conversion.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_track_playback_policy.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_update_bootstrap.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_update_processes.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_update_transport.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_updates.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/app/test_windows_system_media.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/lyrics_test_support.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/playback_test_support.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/test_host_scan_storage_boundary.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iOpenPod/test_library_boundary.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/ArtworkDB/test_artwork_index.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/ArtworkDB/test_auxiliary_mhod.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/ArtworkDB/test_ithmb.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/ArtworkDB/test_ithmb_writer.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/PhotosDB/test_photosdb.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/iTunesDB/test_device_time.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_album_index.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_album_write_regressions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_browse_relationships.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_device_time_context.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_library.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_lyrics_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_media_content.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_media_lifecycle.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_media_replacement.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_models.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_occurrence_drafts.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_photos.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_playlist_datasets.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_playlists.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_resource_validation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_sidecar_projection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_signing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_smart_writing.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_track_native_verification.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_video_flags.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_write_preservation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_write_progress.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/library/test_write_relationships.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/sidecars/test_sidecar_boundary.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/test_binary_struct_definitions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/test_chunk_browser.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/test_error_contracts.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/test_itunes_preferences.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/test_preferences.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/iPodDB/test_type_contracts.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_device_capture.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_host_capture.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_host_directory.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_host_files.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_host_input.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_host_installation.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_host_tools.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_macos_kernel.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_media_tool_environment.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_paths.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_platform_eject.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_platform_volume_metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_portal.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_private_temp_paths.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_recovery.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_scsi_vpd.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_session.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_transaction_state.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_transactions.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_volume_metadata.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_windows_volume_identity.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/storage/test_writer_lock.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_github_release.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_main.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_native_packaging_collection.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_prepare_release.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_release_sources.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_startup_logging.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_store_kit.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/test_update_publication.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/website/check_seo.py +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/website/navigation.cjs +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/tests/website/screenshot-viewer.cjs +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/MacOS_Install_IMGS/macOS_Step1.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/MacOS_Install_IMGS/macOS_Step2.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/MacOS_Install_IMGS/macOS_Step3.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/MacOS_Install_IMGS/macOS_Step4.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/MacOS_Install_IMGS/macOS_Step5.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/README.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/THEMES.md +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_data/distribution.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_data/faq.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_includes/download-channel.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_includes/platform-icon.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_includes/product-footer.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_includes/product-nav.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_includes/product-shot.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_includes/screenshot-viewer.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/_layouts/default.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/apple-touch-icon.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/favicon-16x16.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/favicon-32x32.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/favicon.ico +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/google9044a61ef03e1fae.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/index.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/install-help-redirect.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/install-help.html +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/iop2.css +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/iopenpod-icon-256.png +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshot-viewer.js +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/backups.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/hero.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/album-library.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/audio-transcoding-settings.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/backups.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/manifest.json +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/media-folders.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/photo-albums.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/smart-playlist.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/sync-change-review.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/sync-media-selection.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/track-artwork.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/iop2/track-metadata.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/podcasts.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/settings.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/smartplaylists.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/syncmedia.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/syncreview.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/syncreview2.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/trackedits.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/screenshots/trackedits2.webp +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/site.css +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/site.min.css +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/site.min.js +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/theme.css +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/theme.js +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/theme.min.css +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/theme.min.js +0 -0
- {iopenpod-2.0.4 → iopenpod-2.0.6}/website/tokens.css +0 -0
|
@@ -0,0 +1,772 @@
|
|
|
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
|
+
Nano 5 now follows Original iOpenPod's HASH72 signing for both iTunesCDB and the
|
|
256
|
+
Locations Checksum Book. Preparation can recover missing HashInfo material from a
|
|
257
|
+
verified retained database or checksum book, while selection still uses only CDB
|
|
258
|
+
for Library state. See ADR-0122.
|
|
259
|
+
Recognized Device Profiles now include typed artwork formats and packaged product
|
|
260
|
+
images. Selection optionally loads ArtworkDB metadata, while visible album covers
|
|
261
|
+
are read from iTHMB ranges and decoded lazily through a generation-scoped,
|
|
262
|
+
memory-bounded artwork pipeline. Missing or malformed artwork falls back to the
|
|
263
|
+
deterministic placeholder without making an otherwise valid iPod Library unusable.
|
|
264
|
+
Known cover-capable Device Profiles also provide the creation policy for a first
|
|
265
|
+
ArtworkDB, so an empty Artwork directory needs no template database or additional
|
|
266
|
+
format files. Profiles without native cover support receive an iOpenPod-only
|
|
267
|
+
`F1060` representation for browsing; this does not claim firmware album-art
|
|
268
|
+
support. Preparation writes every native or application-only layout, preserves
|
|
269
|
+
retained variants, and supports older reverse Track links. See ADR-0033 and
|
|
270
|
+
ADR-0118.
|
|
271
|
+
With Rockbox Metadata Support enabled, Sync and ordinary Library saves embed
|
|
272
|
+
changed metadata and artwork in media files. Metadata-only edits preserve embedded
|
|
273
|
+
covers; artwork removal clears them. Non-cover profiles use a 120x120 grayscale
|
|
274
|
+
JPEG; this file-tag copy is separate from the iOpenPod-only ArtworkDB representation.
|
|
275
|
+
When preparing new cover artwork, conflicting retained MHIF image sizes are
|
|
276
|
+
corrected automatically when the Device Profile, retained image metadata, and
|
|
277
|
+
captured thumbnail ranges establish the correct size. Unverifiable conflicts
|
|
278
|
+
still block preparation; reads and unrelated edits remain lossless. Corrections
|
|
279
|
+
use the existing recoverable Storage Transaction without an additional prompt.
|
|
280
|
+
For F1061, consistent retained images select either 55 or 56 stored rows for
|
|
281
|
+
new artwork and lazy decoding. See ADR-0111 and ADR-0121.
|
|
282
|
+
|
|
283
|
+
Selection also loads an optional `Photos/Photo Database` into the common Library
|
|
284
|
+
Snapshot as an immutable Photo Library. The Application Layer can request a Photo
|
|
285
|
+
thumbnail lazily by semantic Photo identity and Device Profile format; Storage reads
|
|
286
|
+
only the validated range beneath `Photos/`. Malformed optional PhotosDB metadata is
|
|
287
|
+
reported without making an otherwise usable iPod Library unavailable.
|
|
288
|
+
|
|
289
|
+
The Photos route is a three-pane browser with Photo Albums on the left, the shared
|
|
290
|
+
virtualized Library card grid in the center, and a read-only Photo inspector on the
|
|
291
|
+
right. Selecting a Photo loads only its visible device representation through a
|
|
292
|
+
generation-scoped, byte-bounded worker cache. The inspector can request an exact
|
|
293
|
+
format copy and offers a Full res chip when the semantic Photo retains an original.
|
|
294
|
+
That original is read through Storage and downsampled before entering the display
|
|
295
|
+
cache. The inspector shows grouped semantic metadata without receiving a PhotosDB
|
|
296
|
+
Chunk, Mount Point, or Filesystem Session. Selected Photos export to a chosen Host
|
|
297
|
+
folder; Photo Albums and All Photos export into a uniquely named child folder. Readable
|
|
298
|
+
full-resolution files are copied byte-for-byte through Storage. Every exported Photo
|
|
299
|
+
gets its own folder containing that original when available and an ordinary JPEG for
|
|
300
|
+
each retained, supported iTHMB format. Exports never replace existing Host files,
|
|
301
|
+
run outside the GUI thread, and can be cancelled safely between files. See ADR-0054,
|
|
302
|
+
ADR-0055, and ADR-0056. The selected-Photo context menu also opens one Manage Albums
|
|
303
|
+
dialog. Its collection-card grid previews up to four Photos per retained user Photo
|
|
304
|
+
Album and overlays a large circular membership checkbox. Single and bulk membership
|
|
305
|
+
toggles are Library Draft edits persisted through the shared automatic or manual
|
|
306
|
+
review/save workflow. Dragging selected Photos from the grid onto
|
|
307
|
+
a user Photo Album in the sidebar adds only missing memberships through that same
|
|
308
|
+
draft workflow. Existing memberships remain unchanged; All Photos, stale drags, and
|
|
309
|
+
locked workspaces reject drops. The same context menu opens a revision-bound
|
|
310
|
+
Photo metadata editor for rating, original date, and taken date. Mixed values remain
|
|
311
|
+
unchanged unless the user edits that field, and a multi-Photo apply publishes one
|
|
312
|
+
atomic Library Draft revision. See ADR-0053 and ADR-0057.
|
|
313
|
+
|
|
314
|
+
Library Snapshots now use a common immutable Track contract that is constructed by
|
|
315
|
+
both iPod and Host Media Library Sources and can support future remote sources. iPod database translation
|
|
316
|
+
and lossless documents remain inside iPodDB; GUI and application models consume
|
|
317
|
+
semantic values rather than database flags or Chunk trees. Optional iPod Track
|
|
318
|
+
Details retain diagnostic values without requiring other sources to invent them.
|
|
319
|
+
See `docs/library-contract.md` and ADR-0019.
|
|
320
|
+
|
|
321
|
+
Library Snapshots also contain semantic Playlists, Smart Playlists, nested Playlist
|
|
322
|
+
Folders, and the name read from an unambiguous Master Playlist. The browser uses
|
|
323
|
+
saved membership and a sidebar hierarchy, while creation and editing operate on
|
|
324
|
+
internal Library Drafts. Editors use ordinary editing labels. The global
|
|
325
|
+
**Draft all changes** setting defaults to off: Library edits are automatically
|
|
326
|
+
prepared, accepted, and saved through the existing verified Storage Transaction,
|
|
327
|
+
and the sidebar hides Review Changes. On restores Review Changes and manual Save
|
|
328
|
+
to iPod. Turning it off also applies pending changes. Failed or blocked attempts
|
|
329
|
+
retain the draft and open diagnostics without repeatedly retrying that revision.
|
|
330
|
+
See ADR-0073. The internal workspace contracts from ADR-0020 and ADR-0026 remain.
|
|
331
|
+
Typed Playlist Sort Orders and per-occurrence Playlist
|
|
332
|
+
Positions are parsed, shown, edited, recalculated, and written through the same
|
|
333
|
+
lossless path. Applying changed Smart Playlist rules also updates saved matching
|
|
334
|
+
Tracks. Regular Playlists accept Track drags; folders retain nested
|
|
335
|
+
organization. The firmware-maintained Podcasts Playlist remains in the Library
|
|
336
|
+
Snapshot and Library Workspace for reconciliation but is omitted from the sidebar
|
|
337
|
+
tree. Unsaved drafts clear when the Active iPod changes or the application closes.
|
|
338
|
+
See ADR-0020 and ADR-0022 for hierarchy and editor behavior.
|
|
339
|
+
|
|
340
|
+
The Library Workspace retains Photos and Photo Albums in that same desired snapshot.
|
|
341
|
+
Retained Photo rating/dates and retained user Photo Album names, membership,
|
|
342
|
+
slideshow settings, and music Track references use the existing source-bound Library
|
|
343
|
+
Draft, review, preparation, and safe-save contract. The Photos header can create an
|
|
344
|
+
empty user Photo Album using the selected Device Profile's explicit MHBA type policy;
|
|
345
|
+
the new album uses the same automatic or manual safe-save policy. User Photo Album
|
|
346
|
+
deletion requires explicit omission intent. Selected Photos can also be omitted from
|
|
347
|
+
the Photo Library and every Photo Album as one reversible draft edit. Preparation
|
|
348
|
+
removes their MHII/MHIA references, while Save recoverably removes only unshared
|
|
349
|
+
full-resolution files beneath `Photos/Full Resolution` after PhotosDB publication.
|
|
350
|
+
Unused ranges in shared iTHMB files are retained. Sync can now create or replace
|
|
351
|
+
Photos with a captured original and every supported Device Profile thumbnail
|
|
352
|
+
format, including a first Photo Database where the profile declares its creation
|
|
353
|
+
policy. It preserves original image bytes, applies rotation and fitting to viewing
|
|
354
|
+
copies, and removes only fully unreferenced obsolete Photo files after publication.
|
|
355
|
+
Direct arbitrary Master Photo Album edits and deletion remain blocked. See
|
|
356
|
+
ADR-0053, ADR-0058, ADR-0059, and ADR-0076.
|
|
357
|
+
|
|
358
|
+
Library Draft preparation now compares complete desired snapshots with retained
|
|
359
|
+
Database Documents, maintains supported Track/Playlist/Photo/artwork relationships,
|
|
360
|
+
and
|
|
361
|
+
returns verified bytes and structured diagnostics. Preparation runs in the
|
|
362
|
+
background and rejects stale or cancelled results. With Draft all changes on,
|
|
363
|
+
Review Changes labels success Prepared for review and Save to iPod requires manual
|
|
364
|
+
acceptance; with it off, acceptance is automatic. Both modes commit verified
|
|
365
|
+
metadata, device-name, Playlist, Photo, artwork, and Track-removal changes through a
|
|
366
|
+
captured Storage Transaction with retained originals and a recovery journal. General Sync stays
|
|
367
|
+
disabled. Missing device-bound signing material, unsupported ArtworkDB signatures,
|
|
368
|
+
pending positional sidecars, and ambiguous affected structures block preparation.
|
|
369
|
+
See ADR-0021, ADR-0022, ADR-0061, and `docs/library-writing.md`.
|
|
370
|
+
Preparation requests capture source and workspace revisions together. Read-only
|
|
371
|
+
developer inspection exposes changes, requirements, observed stages, output
|
|
372
|
+
fingerprints, and diagnostics without exposing private document bindings or granting
|
|
373
|
+
save authority. See ADR-0023.
|
|
374
|
+
Semantic resolution now accounts for requested edits and generated consequences
|
|
375
|
+
before reconciliation. Explicit field ownership, independent browse-index checks,
|
|
376
|
+
and the existing review's resolved-value inspection strengthen that workflow without
|
|
377
|
+
changing the editing or saving scope. See ADR-0025.
|
|
378
|
+
Library Drafts also accept explicit media replacement intent when projected
|
|
379
|
+
metadata stays unchanged. Preparation validates the supplied media, verifies native
|
|
380
|
+
codec output, and returns captured file dependencies. Application replacement
|
|
381
|
+
capture and publication remain unfinished. See ADR-0034.
|
|
382
|
+
|
|
383
|
+
The Track context action can now turn a complete saved Music Album into one
|
|
384
|
+
Chaptered Track. It copies source media through Storage, encodes and checks one
|
|
385
|
+
Host output in the background, and stages that output with source omissions in one
|
|
386
|
+
reversible Library Draft revision. The ordinary Library save publishes the new
|
|
387
|
+
media and database before recoverably removing unshared originals. See ADR-0095.
|
|
388
|
+
|
|
389
|
+
Lyrics edits now require verified text embedded in the media file as well as the
|
|
390
|
+
iTunesDB presence flag. The Application Layer prepares focused lyric-tag updates;
|
|
391
|
+
Storage publishes them with the database in one recoverable transaction. This is
|
|
392
|
+
independent of optional full metadata writing for Rockbox compatibility. Rockbox-
|
|
393
|
+
enabled Sync also embeds captured Track artwork in prepared media files; non-cover
|
|
394
|
+
devices use an optimized grayscale JPEG fitting within 120x120 pixels. Unrelated
|
|
395
|
+
edits preserve file-only lyrics, and incoming music reads embedded lyrics into its
|
|
396
|
+
draft. Preparation exceeding the whole-media memory budget uses private Host disk
|
|
397
|
+
staging, preserving complete media and lyrics without a warning for normal overflow.
|
|
398
|
+
Sync Add/Update preparation prefers nonempty lyrics in the captured Host file
|
|
399
|
+
over older reviewed text and publishes matching media tags and iTunesDB text.
|
|
400
|
+
This applies with Rockbox Metadata Support on or off. Sync does not inspect
|
|
401
|
+
unchanged iPod media for lyric differences.
|
|
402
|
+
See ADR-0075 and `docs/research/itunesdb-lyrics.md`.
|
|
403
|
+
|
|
404
|
+
Artwork capture, generated artwork, and Photo batches also use private Host disk
|
|
405
|
+
staging when preparation memory budgets are reached. Large valid batches continue
|
|
406
|
+
while retaining complete content, independent
|
|
407
|
+
verification, and recoverable publication. See ADR-0117.
|
|
408
|
+
|
|
409
|
+
Backup Snapshots use Backup Archive format v4, continuing the Original iOpenPod v2
|
|
410
|
+
and v3 format sequence, with lossless
|
|
411
|
+
Device Paths, serial-first Backup Identifiers, checksummed catalogs, and deduplicated
|
|
412
|
+
Host content. A known product or transport serial identifies the iPod; otherwise a
|
|
413
|
+
hashed Volume Identity supplies a best-effort fallback rather than blocking backup or
|
|
414
|
+
restore. Capture hashes new and changed files during their single Device-to-Host
|
|
415
|
+
stream, reuses previously verified content when path, size, and modified time still
|
|
416
|
+
match, and finishes with a metadata-only tree rescan. Original iOpenPod backup formats
|
|
417
|
+
v2 and v3 enter only through a read-only Legacy Backup Import to v4. Restore is
|
|
418
|
+
authorized separately from archive location, first creates a forced Host safety
|
|
419
|
+
snapshot, and executes as one bounded, journaled Storage Transaction whose recovery
|
|
420
|
+
material remains in that Host archive. Verified completion, pre-mutation failure,
|
|
421
|
+
incomplete restore, and durability pending are distinct user-visible outcomes. Backup
|
|
422
|
+
and restore remain independent of Sync and other application workflows. Capture
|
|
423
|
+
blocks Application Layer device writes and Active iPod changes while allowing
|
|
424
|
+
foreground reads such as browsing, artwork, export, and playback; Restore remains
|
|
425
|
+
exclusive. An Original archive whose serial key matches the Active iPod is assigned
|
|
426
|
+
that iPod's native Backup Identifier and Archive Key, preventing imported and native
|
|
427
|
+
snapshots from splitting into separate sidebar devices; unmatched and explicitly
|
|
428
|
+
unstable imports retain their stricter legacy authorization. See ADR-0039, ADR-0040,
|
|
429
|
+
ADR-0041, and ADR-0062.
|
|
430
|
+
|
|
431
|
+
The Podcasts browser now projects a typed Podcast Snapshot from versioned
|
|
432
|
+
subscriptions, independent Listening History, refreshed RSS/Atom metadata, and the
|
|
433
|
+
current Active iPod's Podcast Tracks. Existing device Podcasts are recovered into
|
|
434
|
+
subscriptions automatically; enclosure-based reconciliation exposes current
|
|
435
|
+
on-device membership immediately, while listened state survives later Track removal
|
|
436
|
+
or unsubscription. The GUI can search Apple's public directory, add direct RSS
|
|
437
|
+
feeds, immediately refresh a show when it is opened, mark episodes listened or
|
|
438
|
+
unlistened, and play Tracks already on the iPod. Its All Podcasts view combines
|
|
439
|
+
every subscription's Episodes newest-first while retaining each Episode's source
|
|
440
|
+
identity; it is a runtime projection, not another persisted Podcast Subscription.
|
|
441
|
+
Device files use
|
|
442
|
+
fingerprint-checked Storage writes under
|
|
443
|
+
`iPod_Control/iOpenPod/Podcasts`. Podcast Episodes can be added or removed manually,
|
|
444
|
+
and per-show Sync settings select and retain Episodes during ordinary Sync or the
|
|
445
|
+
Sync Podcast and Sync Podcasts actions. These operations refresh feeds, preserve
|
|
446
|
+
Listening History, prepare compatible media on the Host, and publish through the
|
|
447
|
+
shared verified Library and Storage Transaction workflow. Failed feed refreshes
|
|
448
|
+
leave that show's media unchanged. Publisher covers use the shared ArtworkDB and
|
|
449
|
+
thumbnail preparation; Podcast Sync also fills missing covers on retained Episodes
|
|
450
|
+
without downloading their media again. Episode slots are an automatic filling target;
|
|
451
|
+
manual additions may exceed it. Episode count alone never authorizes removal.
|
|
452
|
+
Both Newest and Next clear by listened state or time on the iPod. Newest replaces
|
|
453
|
+
only clear-eligible Episodes with newer publications. Next starts after the furthest listened
|
|
454
|
+
publication, or with the oldest available Episode when no listened publication is
|
|
455
|
+
known. Replace waits for successful one-for-one replacement, including above the
|
|
456
|
+
target; Remove clears eligible Episodes even without replacements.
|
|
457
|
+
Listening History retains publication chronology and separate automatic-clear
|
|
458
|
+
exclusions. These exclusions prevent automatic re-addition without marking an
|
|
459
|
+
unlistened Episode listened; explicit additions bypass them. Pre-Sync reconciliation
|
|
460
|
+
saves observed history, while new exclusions commit in the same verified Storage
|
|
461
|
+
Transaction as successful media and Library removals. Subscription and Listening
|
|
462
|
+
History documents encode version 2 at their existing paths and still read version 1.
|
|
463
|
+
See ADR-0037 and ADR-0091.
|
|
464
|
+
|
|
465
|
+
The Library Workspace now holds Track metadata, the device name, Playlists, and
|
|
466
|
+
Photos in one session draft. Sidebar naming, shared Track and collection context
|
|
467
|
+
menus, and
|
|
468
|
+
a manual metadata editor apply explicit changes to this draft. Normalize Tags scans
|
|
469
|
+
the Library in the background using Original iOpenPod's grouping and sorting rules,
|
|
470
|
+
previews the results, and applies them only on request. A shared, debounced background
|
|
471
|
+
scan keeps the Normalize Tags Sidebar badge current with the number of suggested
|
|
472
|
+
tag-field edits. Opening or closing the preview reuses that scan; applying changes,
|
|
473
|
+
editing, locking, or switching the Active iPod invalidates old results. Mixed metadata, stale
|
|
474
|
+
dialogs, and cancelled scans cannot silently overwrite current edits. The save
|
|
475
|
+
workflow now stages artwork, Track removals, and full-resolution Photo removals
|
|
476
|
+
alongside database changes. Shared context menus can remove Tracks as reversible
|
|
477
|
+
draft edits; the Photos context menu stages confirmed Photo deletions through the
|
|
478
|
+
same workflow;
|
|
479
|
+
the Track metadata editor can choose, orient, square-crop, replace, clear, or
|
|
480
|
+
consolidate its selection onto one existing cover and submits that intent atomically
|
|
481
|
+
with metadata. Its consolidation grid combines byte-identical decoded artwork.
|
|
482
|
+
Application callers can also supply bounded artwork pixels. Backend music import
|
|
483
|
+
inspects supplied compatible songs, extracts embedded covers, and adds a reversible
|
|
484
|
+
draft for the existing review/save workflow. Music import has no GUI entry point,
|
|
485
|
+
file picker, or progress dialog. Application media replacement remains unfinished.
|
|
486
|
+
The Track context menu can also reclassify retained
|
|
487
|
+
audio or video as a Podcast without replacing its media; the existing review/save
|
|
488
|
+
path writes its firmware classification, playback flags, presentation fields, and
|
|
489
|
+
Podcasts Playlist consequences. The metadata editor's Media type selector also
|
|
490
|
+
reclassifies retained audio or video within its current media family, including
|
|
491
|
+
Movie to TV Show, atomically with explicit metadata and artwork edits. Mixed and
|
|
492
|
+
retained compound classifications stay unchanged until selected for replacement.
|
|
493
|
+
Podcasts and videos always use Remember position and Skip when shuffling in
|
|
494
|
+
application imports, edits, and prepared Library Drafts. Save and Sync repair
|
|
495
|
+
retained Tracks with those flags off. Audio and video Podcasts also enable the
|
|
496
|
+
native Podcast Now Playing marker. Merely loading an iPod preserves its raw
|
|
497
|
+
database state. See ADR-0026, ADR-0030, ADR-0032, ADR-0036, ADR-0088, and ADR-0092.
|
|
498
|
+
|
|
499
|
+
The application can now inspect real incoming audio/video files through FFprobe
|
|
500
|
+
over a temporary Host snapshot captured by Storage. Typed Media Inspection preserves
|
|
501
|
+
all streams, embedded-picture dispositions, exact rational timing, chapters, and
|
|
502
|
+
tags independently of Library classification. Inspection has cancellation, process
|
|
503
|
+
and output limits, and content fingerprints. Music import applies a bounded audio
|
|
504
|
+
compatibility policy and maps observed facts into native codec fields. The same
|
|
505
|
+
reviewed transaction stages the song, thumbnails, ArtworkDB, and iTunesDB before
|
|
506
|
+
publication. Sync preparation accepts Host-native path spelling, chooses marked-
|
|
507
|
+
default or first-probe-order streams from multi-stream video, and scopes encoder
|
|
508
|
+
options to the selected FFmpeg encoder while reporting those choices as warnings.
|
|
509
|
+
Exact gapless analysis, conversion, the Sync engine, video import, and document
|
|
510
|
+
inspection such as PDF/EPUB remain future work. See ADR-0031, ADR-0032, and ADR-0083.
|
|
511
|
+
|
|
512
|
+
Playback is an Application Layer workflow behind a typed, replaceable Playback
|
|
513
|
+
Backend. `PlaybackController` owns runtime Queue, History, current Track, and
|
|
514
|
+
transport policy; the GUI only sends intents and renders reported state. The
|
|
515
|
+
production backend adapts Qt Multimedia. It receives a seekable Playback Source
|
|
516
|
+
rather than a Mount Point or Host path, and each source range is read through the
|
|
517
|
+
Active iPod's identity-bound Filesystem Session. A changed Active iPod, Connection
|
|
518
|
+
Generation, or media-file identity fails closed. Queue, History, volume, and
|
|
519
|
+
transport state remain runtime-only. Monotonic Playback Attempt identities correlate
|
|
520
|
+
backend events with the active start so delayed decoder events cannot mutate a
|
|
521
|
+
successor Track. An optional System Media Session sits above that controller and is
|
|
522
|
+
independent of the Playback Backend. The macOS and Windows adapters publish Track
|
|
523
|
+
metadata, timeline, state, and lazily loaded album artwork through their native media
|
|
524
|
+
surfaces and route media commands back through the controller. Artwork remains bounded
|
|
525
|
+
RGB888 data until each native adapter converts and caches it. Linux publishes the
|
|
526
|
+
same fail-open contract through MPRIS on the desktop session bus.
|
|
527
|
+
|
|
528
|
+
The Library setting **Double click shortcut** applies immediately to Track tables,
|
|
529
|
+
Album cards, and collection grids and lists and persists across restarts. **Add to
|
|
530
|
+
queue** remains the default. **Play next** places the selection atop the Playback
|
|
531
|
+
Queue. **Play now** starts the first selected Track and places the remainder atop
|
|
532
|
+
the Queue. **Edit** opens the metadata editor for the selection. Selections retain
|
|
533
|
+
visible order and Playlist occurrences; explicit queue buttons keep their own
|
|
534
|
+
actions.
|
|
535
|
+
|
|
536
|
+
The Player's Queue/History/Lyrics slideout displays read-only lyrics for the
|
|
537
|
+
current Track. Known Library text appears immediately. When the Lyrics tab is
|
|
538
|
+
visible, a background worker checks that Track's embedded media tags through the
|
|
539
|
+
same identity-bound Playback Source. Nonempty file text wins for display unless
|
|
540
|
+
an explicit Library Draft lyrics edit exists. Reads are bounded, obsolete results
|
|
541
|
+
are discarded, and missing or unreadable tags fall back to Library text without
|
|
542
|
+
interrupting playback. The single-Track metadata editor also reads that file's
|
|
543
|
+
lyrics lazily. Viewing lyrics does not create a draft or device write.
|
|
544
|
+
|
|
545
|
+
Synesthesia is entered from the Player while a Track is current; it has no sidebar
|
|
546
|
+
entry or separate page controls. The Playback Controller and Playback Backend
|
|
547
|
+
remain the only owners of audio and transport, so playback continues while
|
|
548
|
+
Synesthesia analyzes the current Playback Entry and prepares the next entry while
|
|
549
|
+
the page is active. Preparation follows the Player's Queue and forward History,
|
|
550
|
+
retains at most one upcoming result in memory, and is promoted when that entry
|
|
551
|
+
becomes current. Leaving the page releases both analyses. The Qt-facing Synesthesia
|
|
552
|
+
Controller opens a separate,
|
|
553
|
+
identity-bound Playback Source, materializes its encoded bytes only in an
|
|
554
|
+
application-owned temporary Host file, runs one Job at a time outside the GUI
|
|
555
|
+
thread, rejects stale completion, and always removes that temporary copy. It
|
|
556
|
+
publishes one ephemeral, calibrated Track Analysis with absolute and relative
|
|
557
|
+
energy, rhythm, spectrum, timbre, harmony, spatial evidence, structural Sections,
|
|
558
|
+
musical events, and typed Sources behind one sampling interface with explicit
|
|
559
|
+
confidence and provenance. The Field Conductor preserves energy, spectrum, rhythm,
|
|
560
|
+
harmony, stereo space, Sources, and Section development as independent typed Field
|
|
561
|
+
Forcing.
|
|
562
|
+
|
|
563
|
+
The frontend Scene Director derives a presentation-only Mood Signature and directs
|
|
564
|
+
twelve procedural visual Scenes across Sections and bounded subspans. Scene changes
|
|
565
|
+
follow Section boundaries with a two-second minimum hold, grouping only shorter
|
|
566
|
+
Sections. Long Sections retain subspans of at most 22 seconds. Recent Scenes have a
|
|
567
|
+
cooldown, with
|
|
568
|
+
extra spacing for Solar Bloom and radial compositions;
|
|
569
|
+
contours, crystal shards, braided currents, and falling signals expand the visual
|
|
570
|
+
vocabulary. Scene-specific gains change which shared particle, comet, filament, and
|
|
571
|
+
event systems are visible. Particle density and comet visibility build gradually
|
|
572
|
+
with activity, leaving room for musical peaks. Each residence also receives Scene
|
|
573
|
+
Motion for directional travel, orbit, depth,
|
|
574
|
+
waveform deformation, parallax, and world scale. Inside each residence the Scene
|
|
575
|
+
Director composes establishing, tracking, orbital, inspection, fly-through, and
|
|
576
|
+
reveal Camera Shots from interval summaries, upper-transient evidence, and sparse
|
|
577
|
+
event density. The renderer projects both the
|
|
578
|
+
procedural composition and shared three-dimensional field through that directed
|
|
579
|
+
pose, while feedback advects retained light along the journey and erodes during
|
|
580
|
+
meaningful camera travel. Transitions and nearby editorial edit points are
|
|
581
|
+
deterministic and music-weighted rather than a random preset timer or beat-pulsed
|
|
582
|
+
lens. The graphics-only page observes the Playback Controller's current position
|
|
583
|
+
and playing state. Pause freezes the simulation; an explicit Player seek begins a
|
|
584
|
+
new Transport Epoch, preserves live field state, clears view-dependent feedback,
|
|
585
|
+
and does not replay a skipped event backlog. A Synesthesia Preview follows
|
|
586
|
+
the current Playback Entry immediately without reading audio. When Track Analysis
|
|
587
|
+
finishes, the renderer aligns with the Player clock and blends its forcing and
|
|
588
|
+
Scene direction into the existing field without resetting GPU state. The analysis
|
|
589
|
+
backend remains independent of transport and presentation policy, and no
|
|
590
|
+
Track-derived evidence, stems, simulation state, or feedback is persisted. See
|
|
591
|
+
ADR-0042, ADR-0045, ADR-0046, ADR-0047, ADR-0048, ADR-0049, ADR-0050, ADR-0051,
|
|
592
|
+
ADR-0068, ADR-0077, ADR-0078, `docs/synesthesia_backend.md`, and
|
|
593
|
+
`docs/synesthesia_visual_direction.md`.
|
|
594
|
+
|
|
595
|
+
With **Manage iPod drive appearance** enabled (the default), selecting a writable
|
|
596
|
+
iPod also derives desktop names and model icons from its saved
|
|
597
|
+
Master Playlist name and Device Profile. Renames update portable Windows, GVfs,
|
|
598
|
+
KDE, and macOS icon companions through the Library's recoverable save workflow.
|
|
599
|
+
Storage updates native volume labels and the macOS custom icon flag after file
|
|
600
|
+
publication. Native limitations are reported without undoing a saved Library name;
|
|
601
|
+
filesystem label limits never change the full iPod name. Turning this global setting
|
|
602
|
+
off preserves custom companions, icons, native labels, and Finder flags across
|
|
603
|
+
selection and saved renames. See ADR-0090 and
|
|
604
|
+
`docs/volume-presentation.md` for platform limits and verification status.
|
|
605
|
+
|
|
606
|
+
## Product and compatibility target
|
|
607
|
+
|
|
608
|
+
- The Original iOpenPod is the behavioral and research baseline. Its code,
|
|
609
|
+
documentation, tests, fixtures, and accumulated format knowledge are evidence for
|
|
610
|
+
iOpenPod 2.0, not a runtime dependency or an architecture that must be copied.
|
|
611
|
+
- The release target is Windows, macOS, and Linux.
|
|
612
|
+
- The standard native macOS candidate targets 12.3 or later on Apple Silicon and
|
|
613
|
+
Intel with platform-specific Qt and numerical dependencies. Build selection and
|
|
614
|
+
binary deployment checks enforce that target; execution on macOS 12.3 on both
|
|
615
|
+
architectures remains an acceptance gate. See ADR-0094 and `docs/packaging.md`.
|
|
616
|
+
- Planned store channels are the Mac App Store, Microsoft Store, Flatpak/Flathub,
|
|
617
|
+
and Snap. Native packaging candidates are available; store publication remains
|
|
618
|
+
gated on signing, sandbox-compatible Storage access, user-installed media-tool
|
|
619
|
+
integration, and installed-package acceptance. FFmpeg/FFprobe and Chromaprint's
|
|
620
|
+
fpcalc executables are installed separately by the user; Qt's playback libraries
|
|
621
|
+
remain bundled. See `docs/packaging.md`, ADR-0079, and ADR-0081.
|
|
622
|
+
- The release target includes filesystem-accessible iPod families supported by the
|
|
623
|
+
Original iOpenPod: full-size iPod generations 1 through 5.5, iPod Classic, iPod
|
|
624
|
+
Mini, and iPod Nano across their supported generations. iPod touch and iPod
|
|
625
|
+
shuffle are outside this target.
|
|
626
|
+
- iOpenPod ships as one application and one distribution. Device Registry, iPodDB,
|
|
627
|
+
and Storage are internal packages, not separately released products.
|
|
628
|
+
- Development and automated testing use captured database fixtures, virtual device
|
|
629
|
+
volumes, and knowledge from the Original iOpenPod instead of writing to a physical
|
|
630
|
+
iPod as part of routine verification.
|
|
631
|
+
|
|
632
|
+
## System boundaries
|
|
633
|
+
|
|
634
|
+
| Boundary | Responsibility | Must not own |
|
|
635
|
+
| --- | --- | --- |
|
|
636
|
+
| **Storage** | Safe, cross-platform access to devices, volumes, filesystems, and removable-media operations | iPod identity, database formats, application workflows, or GUI behavior |
|
|
637
|
+
| **Device Registry** | Identification and capability descriptions for known iPod models | OS discovery, mounting, filesystem mutation, database parsing, or GUI behavior |
|
|
638
|
+
| **iPodDB** | Parsing, representing, validating, and serializing iPod database formats | Device persistence, application workflows, or GUI behavior |
|
|
639
|
+
| **iOpenPod** | Application orchestration, state, services, and GUI behavior | Platform filesystem implementations or duplicated database-format knowledge |
|
|
640
|
+
|
|
641
|
+
The intended dependency direction is:
|
|
642
|
+
|
|
643
|
+
```text
|
|
644
|
+
iOpenPod ──> Device Registry
|
|
645
|
+
├─> iPodDB
|
|
646
|
+
└─> Storage
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
Storage, Device Registry, and iPodDB do not depend on iOpenPod. iOpenPod coordinates
|
|
650
|
+
them through narrow interfaces.
|
|
651
|
+
|
|
652
|
+
## Application operating model
|
|
653
|
+
|
|
654
|
+
- Storage may discover multiple connected iPods, but the user chooses one in the
|
|
655
|
+
Device Picker and iOpenPod loads only that Active iPod.
|
|
656
|
+
- Only one Active iPod exists in the application at a time. Selecting another iPod
|
|
657
|
+
ends the previous Filesystem Session and begins a new Connection Generation.
|
|
658
|
+
- Sync is primarily Host-to-iPod: the Host Media Library supplies the media and most
|
|
659
|
+
metadata used to update the iPod Library.
|
|
660
|
+
- iPod-to-Host behavior is also supported. This includes Back Sync of ratings and
|
|
661
|
+
other supported metadata, exporting iPod-only tracks, and exporting images.
|
|
662
|
+
- Long-running work occurs outside the GUI thread, reports progress, and supports
|
|
663
|
+
cancellation where stopping is safe. The exact worker mechanism is not yet fixed.
|
|
664
|
+
- If the Active iPod disconnects, iOpenPod invalidates its Filesystem Session and
|
|
665
|
+
stops issuing operations. It cannot guarantee rollback while the Volume is absent;
|
|
666
|
+
it must report that the operation may be incomplete and require a new selection or
|
|
667
|
+
reconnection before continuing.
|
|
668
|
+
|
|
669
|
+
## Data locations
|
|
670
|
+
|
|
671
|
+
- The Host Media Library remains in the folders selected and owned by the user.
|
|
672
|
+
- iPod media and databases remain on the Active iPod and are accessed only through a
|
|
673
|
+
Filesystem Session.
|
|
674
|
+
- Global settings, logs, caches, and temporary files use the standard application
|
|
675
|
+
locations for Windows, macOS, and Linux. Global settings are one typed JSON file;
|
|
676
|
+
Storage resolves its Host location and atomically persists its bytes while
|
|
677
|
+
iOpenPod owns the settings schema. iOpenPod 2.0 uses `settings-v2.json`; it does
|
|
678
|
+
not read or rewrite the Original iOpenPod's `settings.json` file in the same Host
|
|
679
|
+
directory.
|
|
680
|
+
- Global settings remember the previously selected iPod by stable Volume Identity.
|
|
681
|
+
This behavior has no separate visible preference.
|
|
682
|
+
- Sync recovery records and retained originals stay on the iPod. They are
|
|
683
|
+
operational data and do not belong in global settings.
|
|
684
|
+
- Backup Snapshots use the configured backup location, with a platform-appropriate
|
|
685
|
+
application data location as the default.
|
|
686
|
+
- Device-specific settings intended to travel with an iPod are associated with its
|
|
687
|
+
stable Device Identity and stored in an application-owned Device Path on that iPod.
|
|
688
|
+
iOpenPod coordinates their access through Storage. Podcast Subscriptions and
|
|
689
|
+
Listening History use separate version-2 JSON documents under
|
|
690
|
+
`iPod_Control/iOpenPod/Podcasts/`, retaining the existing `-v1.json` filenames and
|
|
691
|
+
backward reads of version 1; other settings retain their own formats.
|
|
692
|
+
|
|
693
|
+
## Core device workflow
|
|
694
|
+
|
|
695
|
+
1. Storage detects removable Physical Devices and their Volumes.
|
|
696
|
+
2. iOpenPod keeps Volumes containing `iPod_Control`, reads device metadata, and
|
|
697
|
+
requests identity-bound Host observations.
|
|
698
|
+
3. iOpenPod passes normalized Device Evidence to Device Registry.
|
|
699
|
+
4. Device Registry returns an Identification Result and, when exact, a Device
|
|
700
|
+
Profile with Device Capabilities.
|
|
701
|
+
5. The GUI presents Device Candidates in the Device Picker.
|
|
702
|
+
6. The user selects one candidate as the Active iPod, or iOpenPod restores the
|
|
703
|
+
previous selection when exactly one ready candidate has the remembered Volume
|
|
704
|
+
Identity.
|
|
705
|
+
7. On a write-safe Volume, iOpenPod analyzes, atomically repairs, and verifies stale
|
|
706
|
+
or missing identity metadata; read-only Volumes remain loadable with an issue.
|
|
707
|
+
8. iOpenPod opens a read-only Filesystem Session through Storage.
|
|
708
|
+
9. iOpenPod reads database bytes through Storage and gives them to iPodDB.
|
|
709
|
+
10. iPodDB parses and retains lossless Database Documents in the iPod Library Source,
|
|
710
|
+
then publishes a common immutable Library Snapshot.
|
|
711
|
+
11. The Application Layer exposes that snapshot and application state to the GUI.
|
|
712
|
+
|
|
713
|
+
For review, iOpenPod submits a Library Draft and asks iPodDB to prepare supported
|
|
714
|
+
semantic changes against its retained Database Documents. Typed Chunk Selections
|
|
715
|
+
and the matching writers remain the one lossless path. Future physical Sync will
|
|
716
|
+
use a Storage Transaction to stage, verify, and commit the resulting filesystem
|
|
717
|
+
changes. Constructing, editing, or preparing a Library Snapshot does not authorize
|
|
718
|
+
or perform device writes.
|
|
719
|
+
|
|
720
|
+
Backup Snapshots are a standalone, user-controlled protection. The implemented
|
|
721
|
+
backup and restore workflow does not participate in Sync, Library save, or any other
|
|
722
|
+
device workflow; those operations retain their own Storage safety requirements.
|
|
723
|
+
|
|
724
|
+
## Safety invariants
|
|
725
|
+
|
|
726
|
+
- A Mount Point is a temporary location, not a Device Identity.
|
|
727
|
+
- A Filesystem Session becomes invalid when its connection ends.
|
|
728
|
+
- Device-facing paths are relative, root-bound, and traversal-safe.
|
|
729
|
+
- iPodDB returns or consumes data and bytes; it does not mutate device files.
|
|
730
|
+
- Parsing and serializing an unchanged database must reproduce its original bytes
|
|
731
|
+
exactly, including unknown fields, unknown Chunks, ordering, and padding.
|
|
732
|
+
- Unknown database data is expected and preserved. It is not treated as corruption
|
|
733
|
+
merely because iPodDB does not understand it.
|
|
734
|
+
- Destructive operations are planned, validated, journaled, verified, and made
|
|
735
|
+
recoverable where practical.
|
|
736
|
+
- Obsolete files are removed only after replacement data has been verified.
|
|
737
|
+
|
|
738
|
+
## Development constraints
|
|
739
|
+
|
|
740
|
+
- iOpenPod uses GPL-3.0-or-later, with free distribution and optional donations.
|
|
741
|
+
Releases must preserve third-party notices and provide corresponding source;
|
|
742
|
+
store compatibility remains a separate release requirement. See ADR-0080 and
|
|
743
|
+
`docs/licensing.md`.
|
|
744
|
+
- Python 3.12 is the only supported development runtime.
|
|
745
|
+
- UV manages Python, the environment, dependencies, the lockfile, and commands.
|
|
746
|
+
- VS Code and Codex Desktop are the development surfaces.
|
|
747
|
+
- Ruff, Mypy, Pytest, and Rumdl provide formatting, linting, type checking, and
|
|
748
|
+
testing from one UV-managed environment.
|
|
749
|
+
- `pyproject.toml`, `.editorconfig`, and `.vscode/` keep terminal and editor behavior
|
|
750
|
+
consistent across development machines.
|
|
751
|
+
- Branded names retain their established capitalization where practical, including
|
|
752
|
+
iOpenPod, iPodDB, iTunesDB, ArtworkDB, and iPod. Generic Python package and module
|
|
753
|
+
names use normal lowercase conventions.
|
|
754
|
+
|
|
755
|
+
## Documentation map
|
|
756
|
+
|
|
757
|
+
- `GLOSSARY.md` defines canonical terms.
|
|
758
|
+
- `docs/source_architecture.md` describes the detailed target architecture.
|
|
759
|
+
- `docs/ipoddb-editing.md` defines the sole typed parse/edit/write workflow.
|
|
760
|
+
- `docs/adr/` records durable decisions.
|
|
761
|
+
- `docs/agents/` configures agent-oriented engineering workflows.
|
|
762
|
+
- `.scratch/` holds private, uncommitted plans and work items.
|
|
763
|
+
|
|
764
|
+
## Open questions
|
|
765
|
+
|
|
766
|
+
- What is the smallest stable public interface for each boundary?
|
|
767
|
+
- Which existing exploratory modules should be retained, rewritten, or removed?
|
|
768
|
+
- Which Original iOpenPod behaviors should be migrated together as complete vertical
|
|
769
|
+
workflows, and in what order?
|
|
770
|
+
|
|
771
|
+
These questions are intentionally unresolved. Resolve them through focused design
|
|
772
|
+
work and ADRs before reorganizing the source tree.
|