diff --git a/osxphotos/adjustmentsinfo.py b/osxphotos/adjustmentsinfo.py index c1217d8b..bc4db9b7 100644 --- a/osxphotos/adjustmentsinfo.py +++ b/osxphotos/adjustmentsinfo.py @@ -1,8 +1,8 @@ """ AdjustmentsInfo class to read adjustments data for photos edited in Apple's Photos.app In Catalina and Big Sur, the adjustments data (data about edits done to the photo) - is stored in a plist file in + is stored in a plist file in ~/Pictures/Photos Library.photoslibrary/resources/renders/X/UUID.plist - where X is first character of the photo's UUID string and UUID is the full UUID, + where X is first character of the photo's UUID string and UUID is the full UUID, e.g.: ~/Pictures/Photos Library.photoslibrary/resources/renders/3/30362C1D-192F-4CCD-9A2A-968F436DC0DE.plist Thanks to @neilpa who figured out how to decode this information: @@ -11,6 +11,7 @@ import datetime import json +import logging import plistlib import zlib @@ -18,6 +19,8 @@ __all__ = ["AdjustmentsDecodeError", "AdjustmentsInfo"] +logger = logging.getLogger("osxphotos") + class AdjustmentsDecodeError(Exception): """Could not decode adjustments plist file""" @@ -44,6 +47,7 @@ def __init__(self, plist_file): try: self._adjustments = self._decode_adjustments_from_plist(self._plist) except Exception as e: + logger.debug(f"Could not decode adjustments data: {plist_file}") self._adjustments = None def _decode_adjustments_from_plist(self, plist): @@ -70,7 +74,11 @@ def _load_plist_file(self, plist_file): plist as dict """ with open(str(plist_file), "rb") as fd: - plist_dict = plistlib.load(fd) + try: + plist_dict = plistlib.load(fd) + except Exception as e: + logger.debug(f"Could not load plist file: {plist_file}") + plist_dict = {} return plist_dict @property @@ -113,7 +121,7 @@ def adjustments(self): """List of adjustment dictionaries (or empty list if none or could not be decoded)""" try: return self._adjustments["adjustments"] if self._adjustments else [] - except KeyError: + except (KeyError, TypeError): return [] @property @@ -121,7 +129,7 @@ def adj_metadata(self): """Metadata dictionary or None if adjustment data could not be decoded""" try: return self._adjustments["metadata"] if self._adjustments else None - except KeyError: + except (KeyError, TypeError): return None @property @@ -129,11 +137,8 @@ def adj_orientation(self): """EXIF orientation of image or 0 if none specified or None if adjustments could not be decoded""" try: return self._adjustments["metadata"]["orientation"] - except KeyError: - # no orientation field - return 0 - except TypeError: - # adjustments is None + except (KeyError, TypeError): + # no orientation field or adjustments is None return 0 @property @@ -141,7 +146,7 @@ def adj_format_version(self): """Format version for adjustments data (formatVersion field from adjustmentData) or None if adjustments could not be decoded""" try: return self._adjustments["formatVersion"] if self._adjustments else None - except KeyError: + except (KeyError, TypeError): return None @property @@ -149,7 +154,7 @@ def adj_version_info(self): """version info for adjustments data or None if adjustments data could not be decoded""" try: return self._adjustments["versionInfo"] if self._adjustments else None - except KeyError: + except (KeyError, TypeError): return None def asdict(self): diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/com.apple.Photos.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/com.apple.Photos.plist new file mode 100644 index 00000000..37a1785b --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/com.apple.Photos.plist @@ -0,0 +1,267 @@ + + + + + ExportDirectory + /Users/mika/Desktop + ExportMastersDirectory + /Users/mika/Desktop + IPXAdjustmentSliderOptionCollapse_SmartColor + + IPXAdjustmentSliderOptionCollapse_SmartTone + + IPXAdjustmentsExpandedIdentifiers + + CinematicDepthEffect + + DGDefinition2Operation + + DGVignetteEffectOperation + + DepthEffect + + RKCurvesOperation + + RKLevelsOperation + + RKNoiseReductionOperation + + RKProSharpenOperation + + RKRetouchOperation + + RKSelectiveColorOperation + + SmartBlackAndWhite + + SmartColor + + SmartTone + + WhiteBalance + + + IPXAspectRatioCustomHeight + 4500 + IPXAspectRatioCustomWidth + 3000 + IPXCurvesRangeDefault + 0 + IPXCurvesShowOverlay + + IPXDefaultAutoplayVideos + + IPXDefaultDidPromoteiCloudPhotosInGettingStarted + + IPXDefaultHasBeenLaunched + + IPXDefaultHasChosenToEnableiCloudPhotosInGettingStarted + + IPXDefaultIsRestoringViewControllers + + IPXDefaultLibraryURLBookmark + + Ym9va6ADAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAIA + AAUAAAABAQAAVXNlcnMAAAAEAAAAAQEAAG1pa2EHAAAAAQEAAERlc2t0b3AAHAAAAAEB + AABQaG90b21hdG9yVGVzdC5waG90b3NsaWJyYXJ5EAAAAAEGAAAEAAAAFAAAACAAAAAw + AAAACAAAAAQDAAAWPgAAAAAAAAgAAAAEAwAAYWMAAAAAAAAIAAAABAMAAGZjAAAAAAAA + CAAAAAQDAAAKttUEAAAAABAAAAABBgAAbAAAAHwAAACMAAAAnAAAAAgAAAAABAAAQcXo + VNRVmd4YAAAAAQIAAAIAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAgAAAAEAwAAAgAAAAAA + AAAEAAAAAwMAAPUBAAAIAAAAAQkAAGZpbGU6Ly8vBgAAAAEBAABTeXN0ZW0AAAgAAAAE + AwAAAJCClucAAAAIAAAAAAQAAEHF1gPBgAAAJAAAAAEBAAA4QzE1QUQ5Ny05OUMwLTQy + NzYtQjgwMS1FODRGQzQ3MzY4NDMYAAAAAQIAAIEAAAABAAAA7xMAAAEAAAAAAAAAAAAA + AAEAAAABAQAALwAAAAAAAAABBQAA4gAAAAECAABlM2IzMjBkMGM2MTllZTkzYjFhY2I3 + ZWMwM2UyMjViOGIwYTNmZDFiNmRmNjgxMmY2OGY3MGRlYWIwZWI5NThiOzAwOzAwMDAw + MDAwOzAwMDAwMDAwOzAwMDAwMDAwOzAwMDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFw + cC1zYW5kYm94LnJlYWQtd3JpdGU7MDE7MDEwMDAwMTE7MDAwMDAwMDAwNGQ1YjYwYTs0 + MTsvdXNlcnMvbWlrYS9kZXNrdG9wL3Bob3RvbWF0b3J0ZXN0LnBob3Rvc2xpYnJhcnkA + AADMAAAA/v///wEAAAAAAAAAEAAAAAQQAABUAAAAAAAAAAUQAACsAAAAAAAAABAQAADU + AAAAAAAAAEAQAADEAAAAAAAAAAIgAACcAQAAAAAAAAUgAAAQAQAAAAAAABAgAAAgAQAA + AAAAABEgAABQAQAAAAAAABIgAAAwAQAAAAAAABMgAABAAQAAAAAAACAgAAB8AQAAAAAA + ADAgAACoAQAAAAAAAAHAAAD0AAAAAAAAABHAAAAUAAAAAAAAABLAAAAEAQAAAAAAAIDw + AACwAQAAAAAAAA== + + IPXDefaultShowEditedBadge + 1 + IPXDefaultShowFaces + + IPXDefaultShowKeywordsBadge + 1 + IPXDefaultShowLibraryChooserOnLaunch + + IPXDefaultShowLocationBadge + 1 + IPXDefaultShowPhotoCellCaptions + 1 + IPXDefaultShowReferencedFileBadge + 1 + IPXDefaultWorkspace + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBULDBEdHiQqMT0+P0BBQkNE + RUlNUFRVJG51bGzSDQ4PEF8QFnJlc3RvcmF0aW9uRGVzdGluYXRpb25WJGNsYXNzgAKA + FNYSExQVFg4XGBkYGxxfEDBJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb25BdXhpbGlhcnlT + dG9yZUFyY2hpdmVLZXlfEDNJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb25QYXJlbnREZXN0 + aW5hdGlvbkFyY2hpdmVLZXlfEEJJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb25SZXF1aXJl + ZERlc3RpbmF0aW9uQXV4aWxpYXJ5S2V5c0FyY2hpdmVLZXlfECdJUFhOYXZpZ2F0aW9u + RGVzdGluYXRpb25UaXRsZUFyY2hpdmVLZXlfECxJUFhOYXZpZ2F0aW9uRGVzdGluYXRp + b25JZGVudGlmaWVyQXJjaGl2ZUtleYAEgACAEYAAgAOAE18QFmNvbS5hcHBsZS5waG90 + b3MuYWxidW3THyAOISIjXxAxVVhBdXhpbGlhcnlOYXZpZ2F0aW9uU3RvcmVOYW1lc3Bh + Y2VEaWN0QXJjaGl2ZUtleV8QLlVYQXV4aWxpYXJ5TmF2aWdhdGlvblN0b3JlR2xvYmFs + RGljdEFyY2hpdmVLZXmABYAHgBDTJSYOJygpV05TLmtleXNaTlMub2JqZWN0c6CggAbS + KywtLlokY2xhc3NuYW1lWCRjbGFzc2VzXxATTlNNdXRhYmxlRGljdGlvbmFyeaMtLzBc + TlNEaWN0aW9uYXJ5WE5TT2JqZWN00yUmDjI3KaQzNDU2gAiACYAKgAukODk6O4AMgA2A + DoAPgAZfECBJUFhDdXJhdGVkTGlicmFyeURlc3RpbmF0aW9uVGltZV8QIklQWFBob3Rv + c09iamVjdFRyYW5zaWVudElkZW50aWZpZXJfEBpJUFhDdXJhdGVkTGlicmFyeVpvb21M + ZXZlbF8QIlVYU291cmNlQ29udHJvbGxlclNlbmRlcklkZW50aWZpZXIjQcXoVxVig1Zf + EBlQWFBob3Rvc1ZpcnR1YWxDb2xsZWN0aW9uEARfEBZJUFhXb3Jrc3BhY2VDb250cm9s + bGVy0issRkdfEBtVWERlc3RpbmF0aW9uQXV4aWxpYXJ5U3RvcmWiSDBfEBtVWERlc3Rp + bmF0aW9uQXV4aWxpYXJ5U3RvcmXSJg5KTKE0gAmAEtIrLE5PVU5TU2V0ok4w0issUVJf + EBhJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb26iUzBfEBhJUFhOYXZpZ2F0aW9uRGVzdGlu + YXRpb27SKyxVVlxJUFhXb3Jrc3BhY2WiVzBcSVBYV29ya3NwYWNlAAgAEQAaACQAKQAy + ADcASQBMAFEAUwBrAHEAdgCPAJYAmACaAKcA2gEQAVUBfwGuAbABsgG0AbYBuAG6AdMB + 2gIOAj8CQQJDAkUCTAJUAl8CYAJhAmMCaAJzAnwCkgKWAqMCrAKzArgCugK8Ar4CwALF + AscCyQLLAs0CzwLyAxcDNANZA2IDfgOAA5kDngO8A78D3QPiA+QD5gPoA+0D8wP2A/sE + FgQZBDQEOQRGBEkAAAAAAAACAQAAAAAAAABYAAAAAAAAAAAAAAAAAAAEVg== + + IPXExportFileNaingPreset_Masters + + AlbumName + Product Selects + CustomString + + FormatString + %f + Name + Untitled + StartingCounterNumber + 1 + + IPXExportFileNaingPreset_Versions + + AlbumName + Export Panel Placeholder + CustomString + + FormatString + %n + Name + Untitled + StartingCounterNumber + 1 + + IPXExportIntoMomentsSubfolders + + IPXExportMastersMetadataMode + 0 + IPXExportPhotosViewExpanded + + IPXExportPreset_Versions + + BlackPointCompensation + + DestinationPixelHeight + 1024 + DestinationPixelWidth + 1024 + ExportColorSpace + 1 + ExportSizeStyle + 2 + ImageFormat + 0 + ImageQuality + 0.75 + IncludeGPS + + IncludeIPTC + + MovieExportQuality + AVAssetExportPreset1280x720 + RenderingIntent + 0 + + IPXExternalEditLastUsedApplicationURLBookmark + + Ym9va0wDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAIA + AAwAAAABAQAAQXBwbGljYXRpb25zFAAAAAEBAABBZG9iZSBQaG90b3Nob3AgMjAyNBgA + AAABAQAAQWRvYmUgUGhvdG9zaG9wIDIwMjQuYXBwDAAAAAEGAAAEAAAAGAAAADQAAAAI + AAAABAMAAEbfLQQAAAAACAAAAAQDAAB4ItAEAAAAAAgAAAAEAwAALFLQBAAAAAAMAAAA + AQYAAGgAAAB4AAAAiAAAAAgAAAAABAAAQcXm5E+NPuEYAAAAAQIAAAIAAAAAAAAADwAA + AAAAAAAAAAAAAAAAAAgAAAABCQAAZmlsZTovLy8GAAAAAQEAAFN5c3RlbQAACAAAAAQD + AAAAkIKW5wAAAAgAAAAABAAAQcXWA8GAAAAkAAAAAQEAADhDMTVBRDk3LTk5QzAtNDI3 + Ni1CODAxLUU4NEZDNDczNjg0MxgAAAABAgAAgQAAAAEAAADvEwAAAQAAAAAAAAAAAAAA + AQAAAAEBAAAvAAAAAAAAAAEFAADnAAAAAQIAADM3M2VjMmYxNThhZGNlNmRjOThiYzY3 + YjAzY2I0YzZmYWJlMGRmNmZlNzlmNmNlNmRiZWIxZDgxYmY1ZmVhMGI7MDA7MDAwMDAw + MDA7MDAwMDAwMDA7MDAwMDAwMDA7MDAwMDAwMDAwMDAwMDAxYTtjb20uYXBwbGUuYXBw + LXNhbmRib3gucmVhZDswMTswMTAwMDAwZjswMDAwMDAwMDA0ZDA1MjJjOzAwOy9hcHBs + aWNhdGlvbnMvYWRvYmUgcGhvdG9zaG9wIDIwMjQvYWRvYmUgcGhvdG9zaG9wIDIwMjQu + YXBwAACoAAAA/v///wEAAAAAAAAADQAAAAQQAABUAAAAAAAAAAUQAACYAAAAAAAAABAQ + AAC8AAAAAAAAAEAQAACsAAAAAAAAAAIgAABoAQAAAAAAAAUgAADcAAAAAAAAABAgAADs + AAAAAAAAABEgAAAcAQAAAAAAABIgAAD8AAAAAAAAABMgAAAMAQAAAAAAACAgAABIAQAA + AAAAADAgAAB0AQAAAAAAAIHwAAB8AQAAAAAAAA== + + IPXInfoPanelFrame + {{968, 393}, {287, 94}} + IPXPhotoEditCropAspectRatioLocked + + IPXPluginHostClearVisualizeConstraints + + IPXWhatsNewCurrentVersion + 6 + IPXWorkspace.UXSourceListWidth + 400 + LastCuratedLibraryFirstTimeExperienceReadinessLogged + 1 + LastKnownHasSharedLibrary + 0 + LastKnownHasSharedLibraryPreview + 0 + NSNavLastRootDirectory + ~/Desktop + NSNavPanelExpandedSizeForOpenMode + {800, 448} + NSPreferencesContentSize + {600, 518} + NSPreferencesSelectedIndex + 0 + NSScrollViewShouldScrollUnderTitlebar + + NSWindow Frame KeywordInspector + 1471 474 762 319 0 0 2560 1415 + NSWindow Frame MainWindow + 637 98 1512 950 0 0 2560 1415 + NSWindow Frame NSNavPanelAutosaveName + 884 483 800 448 0 0 2560 1415 + NSWindow Frame NSSpellCheckerSubstitutionsPanel2 + 691 407 425 137 0 0 2560 1415 + NSWindow Frame Preferences + 980 483 600 546 0 0 2560 1415 + PXRootSettingsHideWIPAlerts + + RecentlyDeletedItemsConfirmed + + RetouchAutoSourceDefaultsKey + + RetouchBrushRadiusDefaultsKey + 27.486760853293411 + StoryExportAspectRatio + 16x9 + allPhotosPreferredIndividualItemsColumns + 9 + curatedLibraryInitialNavigationVersion + 1 + curatedLibraryZoomLevel + 4 + didShowCompletedCurationFooterAnimation + + didShowCurationFooter + + photosGridPreferredIndividualItemsColumns + 7 + storyTitleStyleNextIndex + 80 + userDefaultsPhotosGridVersion + 3 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/DataModelVersion.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/DataModelVersion.plist new file mode 100644 index 00000000..be9740fe --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/DataModelVersion.plist @@ -0,0 +1,10 @@ + + + + + LibrarySchemaVersion + 5001 + MetaSchemaVersion + 3 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite new file mode 100644 index 00000000..0ebce559 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-shm b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-shm new file mode 100644 index 00000000..c396ac70 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-shm differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-wal b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-wal new file mode 100644 index 00000000..674f1d31 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-wal differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite.lock b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite.lock new file mode 100644 index 00000000..2126bfb2 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite.lock @@ -0,0 +1,16 @@ + + + + + hostname + Machine-Max.local + hostuuid + 2AD2CC76-2AE5-5DFB-BC60-18107842D061 + pid + 770 + processname + photolibraryd + uid + 501 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/metaSchema.db b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/metaSchema.db new file mode 100644 index 00000000..2d75bd40 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/metaSchema.db differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/photos.db b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/photos.db new file mode 100644 index 00000000..2d75bd40 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/photos.db differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/protection b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/protection new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/graphDataProgress.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/graphDataProgress.plist new file mode 100644 index 00000000..c4e5e427 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/graphDataProgress.plist differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite new file mode 100644 index 00000000..6b10830d Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-shm b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-shm new file mode 100644 index 00000000..fe9ac284 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-shm differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-wal b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-wal new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchProgress.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchProgress.plist new file mode 100644 index 00000000..d243cc99 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchProgress.plist @@ -0,0 +1,28 @@ + + + + + insertAlbum + + insertAsset + + insertHighlight + + insertMemory + + insertMoment + + removeAlbum + + removeAsset + + removeHighlight + + removeMemory + + removeMoment + + renamePerson + + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchSystemInfo.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchSystemInfo.plist new file mode 100644 index 00000000..313a631c --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchSystemInfo.plist @@ -0,0 +1,18 @@ + + + + + embeddingVersion + 1 + featureFlags + 0 + featuredContentAllowed + 0 + localeIdentifier + en_US + sceneTaxonomySHA + 369901436fd615bca250de71d821f7fbf8ec8691f3eb4712a79087d7201201a3,0c16d1e369b4e72de7d61ab7ebaf163472abb06c991d4330610e46a7400b24b1 + searchIndexVersion + 16046 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/synonyms.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/synonyms.plist new file mode 100644 index 00000000..c4e5e427 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/synonyms.plist differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.jpeg new file mode 100644 index 00000000..6d19c3bd Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.jpeg new file mode 100644 index 00000000..6d19c3bd Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.jpeg new file mode 100644 index 00000000..6d19c3bd Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.Photos/appPrivateData.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.Photos/appPrivateData.plist new file mode 100644 index 00000000..11ffb260 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.Photos/appPrivateData.plist @@ -0,0 +1,19 @@ + + + + + CollapsedSidebarSectionIdentifiers + + ExpandedSidebarItemIdentifiers + + IPXWorkspaceControllerZoomLevelsKey + + kZoomLevelIdentifierPhotosGrid + 2 + + PeoplePetsHomeVisibilitySourceLastKnownHasHumans + + PeoplePetsHomeVisibilitySourceLastKnownHasPets + + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.mediaanalysisd/caches/vision/mediaAnalysisVersionState.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.mediaanalysisd/caches/vision/mediaAnalysisVersionState.plist new file mode 100644 index 00000000..5badb44d --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.mediaanalysisd/caches/vision/mediaAnalysisVersionState.plist @@ -0,0 +1,8 @@ + + + + + FaceProcessingInternalVersion + 15 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServiceFeaturesAnalytics.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServiceFeaturesAnalytics.plist new file mode 100644 index 00000000..5b837684 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServiceFeaturesAnalytics.plist @@ -0,0 +1,1010 @@ + + + + + firstSeenDates_V2 + + com.apple.photos.CPAnalytics.addAssetsToLibrary + 2024-04-17 + com.apple.photos.CPAnalytics.addPeople.addedPeople + 2024-04-17 + com.apple.photos.CPAnalytics.addPeople.openedPicker + 2024-04-17 + com.apple.photos.CPAnalytics.appleMusicPreparationFailed + 2024-04-17 + com.apple.photos.CPAnalytics.appleMusicPreparationSucceeded + 2024-04-17 + com.apple.photos.CPAnalytics.appleMusicPreparedToPlay + 2024-04-17 + com.apple.photos.CPAnalytics.appleMusicSongDownloaded + 2024-04-17 + com.apple.photos.CPAnalytics.assetCollectionBlocked + 2024-04-17 + com.apple.photos.CPAnalytics.assetCollectionDeleted + 2024-04-17 + com.apple.photos.CPAnalytics.assetCollectionFavorited + 2024-04-17 + com.apple.photos.CPAnalytics.assetCollectionMoviePlayed + 2024-04-17 + com.apple.photos.CPAnalytics.assetCollectionUnfavorited + 2024-04-17 + com.apple.photos.CPAnalytics.assetCollectionViewed + 2024-04-17 + com.apple.photos.CPAnalytics.assetExportItemPreparationCompleted + 2024-04-17 + com.apple.photos.CPAnalytics.assetExportPreparationCanceled + 2024-04-17 + com.apple.photos.CPAnalytics.assetExportPreparationCompleted + 2024-04-17 + com.apple.photos.CPAnalytics.assetExportPreparationFailed + 2024-04-17 + com.apple.photos.CPAnalytics.assetFavorited + 2024-04-17 + com.apple.photos.CPAnalytics.assetSharedStandardSelectionSize + 2024-04-17 + com.apple.photos.CPAnalytics.assetUnfavorited + 2024-04-17 + com.apple.photos.CPAnalytics.assetViewed + 2024-04-17 + com.apple.photos.CPAnalytics.assetsDeleted + 2024-04-17 + com.apple.photos.CPAnalytics.assetsDeletedFromTrash + 2024-04-17 + com.apple.photos.CPAnalytics.assetsRestored + 2024-04-17 + com.apple.photos.CPAnalytics.cmmAddAssetToLibrary + 2024-04-17 + com.apple.photos.CPAnalytics.cmmPublishFromDetailViewMenuAction + 2024-04-17 + com.apple.photos.CPAnalytics.cmmPublishFromForYouSuggestion + 2024-04-17 + com.apple.photos.CPAnalytics.cmmPublishFromMessagesSuggestion + 2024-04-17 + com.apple.photos.CPAnalytics.cmmPublishFromShareSheet + 2024-04-17 + com.apple.photos.CPAnalytics.cmmPublishFromUnknown + 2024-04-17 + com.apple.photos.CPAnalytics.cmmReceivedSharesOpened + 2024-04-17 + com.apple.photos.CPAnalytics.cmmReceivedSharesSeen + 2024-04-17 + com.apple.photos.CPAnalytics.cmmSentSharesOpened + 2024-04-17 + com.apple.photos.CPAnalytics.cmmSentSharesSeen + 2024-04-17 + com.apple.photos.CPAnalytics.cropButtonEnabled + 2024-04-17 + com.apple.photos.CPAnalytics.cropButtonPressed + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationEventFailed + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationEventOneUpSelect + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationEventSkip + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationFromAlbumSection + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationFromAlbumSelection + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationFromOneUpMergeAll + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationFromOneUpSelection + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationFromUnspecified + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationMerge1 + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationMerge11+ + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationMerge2 + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationMerge3-5 + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationMerge6-10 + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationMergeAll + 2024-04-17 + com.apple.photos.CPAnalytics.deduplicationSkipPerceptualMerge + 2024-04-17 + com.apple.photos.CPAnalytics.filterAllItemsSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterEditedSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterFavoritedSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterHeaderSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterIncludeSharedWithYouSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterKeywordHeaderSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterKeywordManagerSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterKeywordsSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterPhotosSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterSavedItemsOnlySelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibraryAllDisplayed + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibraryAllSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibraryDismissed + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibraryMineDisplayed + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibraryMineSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibraryPresented + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibrarySharedDisplayed + 2024-04-17 + com.apple.photos.CPAnalytics.filterSharedLibrarySharedSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterShowOnlySharedWithYouSelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterUnsavedItemsOnlySelected + 2024-04-17 + com.apple.photos.CPAnalytics.filterVideosSelected + 2024-04-17 + com.apple.photos.CPAnalytics.firstTimeExperienceNotReady + 2024-04-17 + com.apple.photos.CPAnalytics.firstTimeExperienceReady + 2024-04-17 + com.apple.photos.CPAnalytics.flexMusicDownloadRequiredAtPlaybackTime + 2024-04-17 + com.apple.photos.CPAnalytics.flexMusicSongArtworkDownloaded + 2024-04-17 + com.apple.photos.CPAnalytics.flexMusicSongAudioDownloaded + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelected + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeCMMPublishedShare + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeCMMReceivedShare + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumAccept + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumCoalescedWithComments + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumCoalescedWithCommentsAndLikes + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumComment + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumDecline + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumInvitation + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumLike + 2024-04-17 + com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumPost + 2024-04-17 + com.apple.photos.CPAnalytics.forYouTabOpenedFromInAppUserNavigation + 2024-04-17 + com.apple.photos.CPAnalytics.forYouTabOpenedFromNotification + 2024-04-17 + com.apple.photos.CPAnalytics.forYouTabOpenedFromOtherURL + 2024-04-17 + com.apple.photos.CPAnalytics.forYouTabOpenedFromStateRestoration + 2024-04-17 + com.apple.photos.CPAnalytics.forYouTabOpenedFromUndefined + 2024-04-17 + com.apple.photos.CPAnalytics.forYouTabOpenedFromWidget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeAlbumGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeAlbumListGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeCMMInviteGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeContentSyndication + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeDebugGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeFooterGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeInboxGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeListViewGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeMemoryRowGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeNoContentGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeRecentPhotosGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeRecentSearchesGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSearchZeroKeywordGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSettingsAdvisory + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSharedAlbumActivityGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSharedAlbumGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSharedAlbumInviteGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSuggestedEditGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSuggestionGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSurveyCongratulations + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeSurveyQuestionGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetSeenWithTypeTapToRadarGadget + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetWithTypeMemoryRowGadgetSelectedAccessoryButtonWithTypeSeeAll + 2024-04-17 + com.apple.photos.CPAnalytics.gadgetWithTypeSharedAlbumGadgetSelectedAccessoryButtonWithTypeSeeAll + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelAddLocationTapped + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelAdjustLocationTapped + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelEditChangesCancelled + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelEditChangesConfirmed + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelEditChangesReverted + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelEditDateTapped + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelEditTimezoneTapped + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelLocationTapped + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelNewDateSelected + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelNewTimezoneSelected + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelSavedFromAppsWidgetTapped + 2024-04-17 + com.apple.photos.CPAnalytics.infoPanelSyndicatedWidgetTapped + 2024-04-17 + com.apple.photos.CPAnalytics.mapViewAdjustLocationTapped + 2024-04-17 + com.apple.photos.CPAnalytics.mediaViewed + 2024-04-17 + com.apple.photos.CPAnalytics.memoryCreatedViaAddToMemories + 2024-04-17 + com.apple.photos.CPAnalytics.memoryNotificationResponded + 2024-04-17 + com.apple.photos.CPAnalytics.memoryNotificationSeen + 2024-04-17 + com.apple.photos.CPAnalytics.navigateToFailedToUploadItemsAlbumFailed + 2024-04-17 + com.apple.photos.CPAnalytics.navigateToFailedToUploadItemsAlbumSucceeded + 2024-04-17 + com.apple.photos.CPAnalytics.navigatedToSharedAlbumActivityViewFromCollageView + 2024-04-17 + com.apple.photos.CPAnalytics.navigatedToSharedAlbumActivityViewFromRecentActivityEntry + 2024-04-17 + com.apple.photos.CPAnalytics.navigatedToSharedAlbumActivityViewFromSeeAllButton + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.favorites + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.hidden + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.imports + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.animated + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.bursts + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.cinematicVideos + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.depthEffect + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.livePhotos + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.longExposures + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.panoramas + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.proRes + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.raw + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.screenrecordings + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.screenshots + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.selfPortraits + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.slomoVideos + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.timelapses + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.mediaTypes.videos + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.people + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.places + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.recentlyedited + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.recentlysaved + 2024-04-17 + com.apple.photos.CPAnalytics.navigationList.trashBin + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExited + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith1-10Characters + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith101+Characters + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith11+Hashtags + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith11-20Characters + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith1Hashtags + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith21-30Characters + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith2Hashtags + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith31-50Characters + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith3Hashtags + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith4-5Hashtags + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith51-100Characters + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith6-10Hashtags + 2024-04-17 + com.apple.photos.CPAnalytics.oneUpLivePhotoEffectApplied + 2024-04-17 + com.apple.photos.CPAnalytics.people.addToPeopleHome + 2024-04-17 + com.apple.photos.CPAnalytics.people.bootstrap.inlineControl.dismiss + 2024-04-17 + com.apple.photos.CPAnalytics.people.bootstrap.inlineControl.review + 2024-04-17 + com.apple.photos.CPAnalytics.people.bootstrap.mergeCandidates.confirmedAndRejectedCounts + 2024-04-17 + com.apple.photos.CPAnalytics.people.bootstrap.speedbump.advance + 2024-04-17 + com.apple.photos.CPAnalytics.people.bootstrap.speedbump.cancel + 2024-04-17 + com.apple.photos.CPAnalytics.people.confirmAdditional.mergeCandidates.confirmedAndRejectedCounts + 2024-04-17 + com.apple.photos.CPAnalytics.people.confirmAdditional.personSuggestions.confirmedAndRejectedCounts + 2024-04-17 + com.apple.photos.CPAnalytics.people.confirmAdditional.suggestion + 2024-04-17 + com.apple.photos.CPAnalytics.people.detailView.keyPhotoChanged + 2024-04-17 + com.apple.photos.CPAnalytics.people.detailView.notThisPerson + 2024-04-17 + com.apple.photos.CPAnalytics.people.detailView.showFaces + 2024-04-17 + com.apple.photos.CPAnalytics.people.manageTags.commitTapped + 2024-04-17 + com.apple.photos.CPAnalytics.people.me.confirmed + 2024-04-17 + com.apple.photos.CPAnalytics.people.me.rejected + 2024-04-17 + com.apple.photos.CPAnalytics.people.naming.contactChosen + 2024-04-17 + com.apple.photos.CPAnalytics.people.naming.personChosen + 2024-04-17 + com.apple.photos.CPAnalytics.people.naming.skipped + 2024-04-17 + com.apple.photos.CPAnalytics.people.naming.stringChosen + 2024-04-17 + com.apple.photos.CPAnalytics.people.removeFromPeopleHome + 2024-04-17 + com.apple.photos.CPAnalytics.people.untag.cancelTapped + 2024-04-17 + com.apple.photos.CPAnalytics.people.untag.newTagTapped + 2024-04-17 + com.apple.photos.CPAnalytics.people.untag.untagTapped + 2024-04-17 + com.apple.photos.CPAnalytics.photosCloudQuotaOfferAdded + 2024-04-17 + com.apple.photos.CPAnalytics.photosCloudQuotaOfferRemoved + 2024-04-17 + com.apple.photos.CPAnalytics.photosCloudQuotaOfferReplaced + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsAllAssetsCounted + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth1 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth10 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth11-12 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth13-15 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth16-20 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth2 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth21-30 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth3 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth31-50 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth4 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth5 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth51+ + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth6 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth7 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth8 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth9 + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsShowMoreButtonSelected + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsSummaryAssetsCounted + 2024-04-17 + com.apple.photos.CPAnalytics.photosDetailsSummaryButtonSelected + 2024-04-17 + com.apple.photos.CPAnalytics.places.locationAction + 2024-04-17 + com.apple.photos.CPAnalytics.rendering.livePhotoEffectFailed + 2024-04-17 + com.apple.photos.CPAnalytics.rendering.livePhotoEffectPreviewRenderingDuration + 2024-04-17 + com.apple.photos.CPAnalytics.search.session + 2024-04-17 + com.apple.photos.CPAnalytics.selectModeEntered + 2024-04-17 + com.apple.photos.CPAnalytics.shareCanceled + 2024-04-17 + com.apple.photos.CPAnalytics.shareCompleted + 2024-04-17 + com.apple.photos.CPAnalytics.shareFailed + 2024-04-17 + com.apple.photos.CPAnalytics.sharedAlbumInvitationAccepted + 2024-04-17 + com.apple.photos.CPAnalytics.sharedAlbumInvitationDeclined + 2024-04-17 + com.apple.photos.CPAnalytics.sharedAlbumInvitationReportedAsJunk + 2024-04-17 + com.apple.photos.CPAnalytics.sharedAlbumsActivityFeedPostLiked + 2024-04-17 + com.apple.photos.CPAnalytics.sharedAlbumsActivityFeedPostUnliked + 2024-04-17 + com.apple.photos.CPAnalytics.sharedLibrary.suggestionsBanner.dismissed + 2024-04-17 + com.apple.photos.CPAnalytics.sharedLibrary.suggestionsBanner.presented + 2024-04-17 + com.apple.photos.CPAnalytics.sharedLibrary.suggestionsBanner.reviewed + 2024-04-17 + com.apple.photos.CPAnalytics.showOnlyReceivedICloudLinksSelected + 2024-04-17 + com.apple.photos.CPAnalytics.showOnlySentICloudLinksSelected + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportCancelledAfter10.0-60.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportCancelledAfter2.0-10.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportCancelledAfter<2.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportCancelledAfter>60.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter0.0-1.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter1.0-2.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter10.0-20.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter120.0-300.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter2.0-5.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter20.0-60.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter300.0-600.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter5.0-10.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter60.0-120.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter600.0-3600.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter<0.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter>3600.0Seconds + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportFailed + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowExportStarted + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.0-0.1 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.1-0.2 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.2-0.2 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.3-0.4 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.4-0.5 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.5-0.6 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.6-0.7 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.7-0.8 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.8-0.9 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.9-1.0 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction1.0-1.5 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction1.5-2.0 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction2.0-3.0 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction3.0-5.0 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction<0.0 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction>5.0 + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedByEndReached + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedByUndefined + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackEndedByUser + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStarted + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith0-Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith1-5Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith1001+Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith101-200Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith11-15Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith16-20Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith201-300Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith21-30Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith301-500Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith31-50Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith501-1000Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith51-100Assets + 2024-04-17 + com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith6-10Assets + 2024-04-17 + com.apple.photos.CPAnalytics.syndicatedAssetsFilterTipAnchorButtonTapped + 2024-04-17 + com.apple.photos.CPAnalytics.syndicatedAssetsSaved + 2024-04-17 + com.apple.photos.CPAnalytics.syndicationSuggestionRemoved + 2024-04-17 + com.apple.photos.CPAnalytics.tabIdentifierChanged + 2024-04-17 + com.apple.photos.CPAnalytics.toggleMineAndSharedSelected + 2024-04-17 + com.apple.photos.CPAnalytics.toggleMyPhotosOnlySelected + 2024-04-17 + com.apple.photos.CPAnalytics.tvWelcomeSharedLibrarySelected + 2024-04-17 + com.apple.photos.CPAnalytics.tvWelcomeiCloudSelected + 2024-04-17 + com.apple.photos.CPAnalytics.userChoices.livePhotoEffectBounceSelected + 2024-04-17 + com.apple.photos.CPAnalytics.userChoices.livePhotoEffectLongExposureSelected + 2024-04-17 + com.apple.photos.CPAnalytics.userChoices.livePhotoEffectsAppeared + 2024-04-17 + com.apple.photos.CPAnalytics.viewScrolledToBottom + 2024-04-17 + com.apple.photos.CPAnalytics.viewScrolledToInitialPosition + 2024-04-17 + com.apple.photos.CPAnalytics.visualLookupTriggered + 2024-04-17 + com.apple.photos.CPAnalytics.widget.open + 2024-04-17 + com.apple.photos.cpa.active_user_feature.actionOnSharedLibrarySuggestions + 2024-04-17 + com.apple.photos.cpa.active_user_feature.interactiveMemoryExport + 2024-04-17 + com.apple.photos.cpa.active_user_feature.interactiveMemoryPlayback + 2024-04-17 + com.apple.photos.cpa.active_user_feature.memoryMoviePlayed + 2024-04-17 + com.apple.photos.cpa.active_user_feature.memoryViewed + 2024-04-17 + com.apple.photos.cpa.active_user_feature.mobileSlideShowActive + 2024-04-17 + com.apple.photos.cpa.active_user_feature.slideshowExported + 2024-04-17 + com.apple.photos.cpa.active_user_feature.slideshowPlayed + 2024-04-17 + com.apple.photos.edit.perf.exitedit + 2024-04-17 + com.apple.photos.memory.appleMusicFixation + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurred + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInAdditionalAutoEditDecisionLists + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInAssetsPreloading + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInAutoEditClip + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInAutoEditDecisionLists + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInAutoEditTransitionInfo + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInColorNormalization + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInCuratedSongs + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInInitialStyle + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInMovieHighlights + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInMusicPlayback + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInPersistableRecipe + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInPersistence + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInRecipePersistence + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInStoryModel + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInStyleManager + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInStyles + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInTargetDurationCuration + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInTimelineManager + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInTimelineValidation + 2024-04-17 + com.apple.photos.memory.interactiveMemoryErrorOccurredInTransitions + 2024-04-17 + com.apple.photos.memory.interactiveMemoryExportCancelled + 2024-04-17 + com.apple.photos.memory.interactiveMemoryExportFailed + 2024-04-17 + com.apple.photos.memory.interactiveMemoryExported + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStarted + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedByAutoplayedRelated + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedByUserSelectingRelated + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith1-10CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith10001-20000CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith1001-2000CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith101-200CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith11-50CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith20000+CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith2001-5000CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith201-300CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith301-500CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith5001-10000CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith501-1000CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith51-100CuratedAssets + 2024-04-17 + com.apple.photos.memory.interactiveMemoryMusicFellBackToLocalFlexSong + 2024-04-17 + com.apple.photos.memory.interactiveMemoryMusicUsedFlexMusic + 2024-04-17 + com.apple.photos.memory.interactiveMemoryMusicUseedAppleMusic + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedMuted + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedTruncated + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedUnmuted + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith0Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith1-2Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith101+Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith11-50Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith3-5Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith51-100Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith6-10Pauses + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackMutedDueToExplicitUserAction + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackMutedDueToSilentModeSwitch + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToExplicitUserAction + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToSilentModeSwitch + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToSongPick + 2024-04-17 + com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToVolumeIncrease + 2024-04-17 + com.apple.photos.memory.interactiveMemoryRecipeErrorOccurred + 2024-04-17 + com.apple.photos.memory.interactiveMemorySessionBegan + 2024-04-17 + com.apple.photos.memory.interactiveMemorySessionEnded + 2024-04-17 + com.apple.photos.memory.interactiveMemorySessionPaused + 2024-04-17 + com.apple.photos.memory.interactiveMemorySessionPlayed + 2024-04-17 + com.apple.photos.memory.interactiveMemoryTimelinePlayedWith0-49PercentTransitionsOnBar + 2024-04-17 + com.apple.photos.memory.interactiveMemoryTimelinePlayedWith50-74PercentTransitionsOnBar + 2024-04-17 + com.apple.photos.memory.interactiveMemoryTimelinePlayedWith75-84PercentTransitionsOnBar + 2024-04-17 + com.apple.photos.memory.interactiveMemoryTimelinePlayedWith85-94PercentTransitionsOnBar + 2024-04-17 + com.apple.photos.memory.interactiveMemoryTimelinePlayedWith95-100PercentTransitionsOnBar + 2024-04-17 + com.apple.photos.memory.playbackLaunchPerformance + 2024-04-17 + com.apple.photos.memory.playbackReliability + 2024-04-17 + screen_CuratedLibrary_AllPhotos + 2024-04-17 + screen_CuratedLibrary_Days + 2024-04-17 + screen_CuratedLibrary_Months + 2024-04-17 + screen_CuratedLibrary_Years + 2024-04-17 + screen_DuplicatesAlbum + 2024-04-17 + screen_FavoriteMemories + 2024-04-17 + screen_IPXFeedViewController + 2024-04-17 + screen_InteractiveMemory + 2024-04-17 + screen_InteractiveMemoryBrowserGrid + 2024-04-17 + screen_InteractiveMemoryStyleSwitcher + 2024-04-17 + screen_MFMailComposeViewController + 2024-04-17 + screen_MFMessageComposeViewController + 2024-04-17 + screen_Memories + 2024-04-17 + screen_MemoriesFeed + 2024-04-17 + screen_MemoriesWidget + 2024-04-17 + screen_MiniTipUIPopoverViewController + 2024-04-17 + screen_ObjectManipulationViewController + 2024-04-17 + screen_PMEditorNavigationController + 2024-04-17 + screen_PMiOSMainViewController + 2024-04-17 + screen_PXAssistantController + 2024-04-17 + screen_PXCMMAssetsViewController + 2024-04-17 + screen_PXEducationalTipViewController + 2024-04-17 + screen_PXFeedViewController + 2024-04-17 + screen_PXFeedbackTapToRadarViewController + 2024-04-17 + screen_PXFloatingCardViewController + 2024-04-17 + screen_PXForYouGadgetViewController + 2024-04-17 + screen_PXPeopleBootstrapConfirmationViewController + 2024-04-17 + screen_PXPeopleBootstrapSummaryViewController + 2024-04-17 + screen_PXPeopleCollectionViewController + 2024-04-17 + screen_PXPeopleConfirmationSummaryViewController + 2024-04-17 + screen_PXPeopleDetailViewController + 2024-04-17 + screen_PXPeopleNamePickerViewController + 2024-04-17 + screen_PXPeopleRecoCollectionViewController + 2024-04-17 + screen_PXPlacesMapInfoViewController + 2024-04-17 + screen_PXPlacesMapViewController + 2024-04-17 + screen_PXSharedLibraryAssistantCameraViewController + 2024-04-17 + screen_PXSharedLibraryAssistantHowToViewController + 2024-04-17 + screen_PXSharedLibraryAssistantReviewParticipantsViewController + 2024-04-17 + screen_PXSharedLibraryAssistantRulesViewController + 2024-04-17 + screen_PXSharedLibraryAssistantSummaryViewController + 2024-04-17 + screen_PXSurveyRadarReporterViewController + 2024-04-17 + screen_PXUIPeopleBootstrapNamingViewController + 2024-04-17 + screen_PhotosDetailsEXIFWidgetView + 2024-04-17 + screen_PhotosDetailsSharedWithYouWidgetView + 2024-04-17 + screen_PhotosDetailsTimeWidgetView + 2024-04-17 + screen_PhotosDetailsVisualLookupWidgetView + 2024-04-17 + screen_PhotosDetails_Collection + 2024-04-17 + screen_PhotosDetails_CuratedLibraryDays + 2024-04-17 + screen_PhotosDetails_CuratedLibraryMonths + 2024-04-17 + screen_PhotosDetails_CuratedLibraryYears + 2024-04-17 + screen_PhotosDetails_Memories + 2024-04-17 + screen_PhotosDetails_Moment + 2024-04-17 + screen_PhotosDetails_NonTracking + 2024-04-17 + screen_PhotosDetails_OneUpAccessory + 2024-04-17 + screen_PhotosDetails_OtherAlbums + 2024-04-17 + screen_PhotosDetails_People + 2024-04-17 + screen_PhotosDetails_Places + 2024-04-17 + screen_PhotosDetails_RelatedWidget + 2024-04-17 + screen_PhotosDetails_Search + 2024-04-17 + screen_PhotosDetails_Year + 2024-04-17 + screen_PhotosUIPrivate.StoryColorGradeEditorViewController + 2024-04-17 + screen_PhotosUIPrivate.StoryExportActivityPreviewViewController + 2024-04-17 + screen_PhotosUIPrivate.StoryExportActivityViewController + 2024-04-17 + screen_PhotosUIPrivate.StoryMusicEditorViewController + 2024-04-17 + screen_PhotosView + 2024-04-17 + screen_PhotosView_PXPersonVirtualCollection + 2024-04-17 + screen_PhotosView_PXPetVirtualCollection + 2024-04-17 + screen_PhotosView_PXSocialGroupVirtualCollection + 2024-04-17 + screen_PhotosView_albumCloudShared + 2024-04-17 + screen_PhotosView_albumImported + 2024-04-17 + screen_PhotosView_albumMyPhotoStream + 2024-04-17 + screen_PhotosView_albumRegular + 2024-04-17 + screen_PhotosView_albumSyncedAlbum + 2024-04-17 + screen_PhotosView_albumSyncedEvent + 2024-04-17 + screen_PhotosView_albumSyncedFaces + 2024-04-17 + screen_PhotosView_duplicates + 2024-04-17 + screen_PhotosView_photosHighlightDay + 2024-04-17 + screen_PhotosView_photosHighlightDayGroup + 2024-04-17 + screen_PhotosView_sharedAlbumOwned + 2024-04-17 + screen_PhotosView_smartAlbumActionCam + 2024-04-17 + screen_PhotosView_smartAlbumAllHidden + 2024-04-17 + screen_PhotosView_smartAlbumAnimated + 2024-04-17 + screen_PhotosView_smartAlbumBursts + 2024-04-17 + screen_PhotosView_smartAlbumCinematic + 2024-04-17 + screen_PhotosView_smartAlbumDepthEffect + 2024-04-17 + screen_PhotosView_smartAlbumFavorites + 2024-04-17 + screen_PhotosView_smartAlbumGeneric + 2024-04-17 + screen_PhotosView_smartAlbumLivePhotos + 2024-04-17 + screen_PhotosView_smartAlbumLongExposures + 2024-04-17 + screen_PhotosView_smartAlbumPanoramas + 2024-04-17 + screen_PhotosView_smartAlbumRAW + 2024-04-17 + screen_PhotosView_smartAlbumRecentlyAdded + 2024-04-17 + screen_PhotosView_smartAlbumRecents + 2024-04-17 + screen_PhotosView_smartAlbumScreenshots + 2024-04-17 + screen_PhotosView_smartAlbumSelfPortraits + 2024-04-17 + screen_PhotosView_smartAlbumSlomoVideos + 2024-04-17 + screen_PhotosView_smartAlbumSpatial + 2024-04-17 + screen_PhotosView_smartAlbumTimelapses + 2024-04-17 + screen_PhotosView_smartAlbumUnableToUpload + 2024-04-17 + screen_PhotosView_smartAlbumUserLibrary + 2024-04-17 + screen_PhotosView_smartAlbumVideos + 2024-04-17 + screen_PhotosView_smartImported + 2024-04-17 + screen_PhotosView_smartTrashBin + 2024-04-17 + screen_SBSUIWallpaperPreviewViewController + 2024-04-17 + screen_SLComposeViewController + 2024-04-17 + screen_UIImagePickerController + 2024-04-17 + screen__UIActivityUserDefaultsViewController + 2024-04-17 + + lastSeenDates_v2 + + com.apple.photos.CPAnalytics.assetCollectionViewed + 2024-04-17 + com.apple.photos.CPAnalytics.mediaViewed + 2024-04-17 + screen_CuratedLibrary_AllPhotos + 2024-04-17 + screen_DuplicatesAlbum + 2024-04-17 + + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photolibraryd/caches/CreateDatabase_20230913-105815-07:00 b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photolibraryd/caches/CreateDatabase_20230913-105815-07:00 new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_4_5005_c.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_4_5005_c.jpeg new file mode 100644 index 00000000..b60fb580 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_4_5005_c.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_4_5005_c.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_4_5005_c.jpeg new file mode 100644 index 00000000..041c1630 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_4_5005_c.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_4_5005_c.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_4_5005_c.jpeg new file mode 100644 index 00000000..d6a40c87 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_4_5005_c.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/3356.ithmb b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/3356.ithmb new file mode 100644 index 00000000..8c7232dc Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/3356.ithmb differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4133.ithmb b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4133.ithmb new file mode 100644 index 00000000..a94492a2 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4133.ithmb differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4532.ithmb b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4532.ithmb new file mode 100644 index 00000000..763bf839 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4532.ithmb differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration new file mode 100644 index 00000000..6c331ad1 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration @@ -0,0 +1,17 @@ + + + + + PLThumbnailManagerThumbnailFormatKey + 5005 + PLThumbnailManagerThumbnailFormatsKey + + 5005 + 4532 + 4133 + 3356 + + PLThumbnailManagerVersionKey + 31 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-change.plj new file mode 100644 index 00000000..364f2179 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-change.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-snapshot.plj new file mode 100644 index 00000000..c2ec7c14 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-snapshot.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album.plist new file mode 100644 index 00000000..2250fa4c --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album.plist @@ -0,0 +1,18 @@ + + + + + coalesceDate + 2024-04-18T01:21:17Z + coalescePayloadVersion + 1 + currentPayloadVersion + 1 + snapshotChecksum + + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-change.plj new file mode 100644 index 00000000..4e50a193 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-change.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-snapshot.plj new file mode 100644 index 00000000..56036ef9 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-snapshot.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset.plist new file mode 100644 index 00000000..68746b77 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset.plist @@ -0,0 +1,18 @@ + + + + + coalesceDate + 2024-04-18T01:09:25Z + coalescePayloadVersion + 103 + currentPayloadVersion + 103 + snapshotChecksum + + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 103 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum.plist new file mode 100644 index 00000000..b62fb6a2 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 2 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 2 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-change.plj new file mode 100644 index 00000000..3979045a Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-change.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-snapshot.plj new file mode 100644 index 00000000..a72afc38 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-snapshot.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/HistoryToken.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/HistoryToken.plist new file mode 100644 index 00000000..32600d8e Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/HistoryToken.plist differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-change.plj new file mode 100644 index 00000000..7c81e006 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-change.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-snapshot.plj new file mode 100644 index 00000000..9535aee5 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-snapshot.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession.plist new file mode 100644 index 00000000..9e9d1d03 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession.plist @@ -0,0 +1,18 @@ + + + + + coalesceDate + 2024-04-18T01:09:25Z + coalescePayloadVersion + 1 + currentPayloadVersion + 1 + snapshotChecksum + + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory-change.plj new file mode 100644 index 00000000..c452fcee Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory-change.plj differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory.plist new file mode 100644 index 00000000..e77fe849 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory.plist @@ -0,0 +1,8 @@ + + + + + currentPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum-change.plj new file mode 100644 index 00000000..e69de29b diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum.plist new file mode 100644 index 00000000..7e78b1a6 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum.plist @@ -0,0 +1,12 @@ + + + + + currentPayloadVersion + 1 + snapshotDate + 2023-09-13T17:58:15Z + snapshotPayloadVersion + 1 + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.plist new file mode 100644 index 00000000..b1f308f3 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.plist @@ -0,0 +1,26 @@ + + + + + adjustmentBaseVersion + 0 + adjustmentData + + XZFda8MgFIb/i9dR/Iw2dzExd2ODXZZRrJU1I2lCavZB6X/fSdtBOwQ97wuvx/O4ZtkJ + HVFxQp+o4BkKSzmgAjFJJGEoW3wkiCAK6j3U0eciDwbUDGqct10byMcY38GZwHnZD2no + fRomMHZgPPnAVMYoyIQKLRRd5UYJoplS4ny+9FwLeAacSIu64dqVmDaUYllahksHm6Ta + GcptY4WDi47zGKdb7AAxSWVNObdY17LCUlUKr7S22FgtnXYr4WS9kRtFqdoEyLeQMaoy + ZckkNkZrLCteYZMbgZvaadsYK7iVtynD0JOx/Y7dZa4U/b3E4zIxjrs2kd0Q5j4eEtm2 + Bz/9QDyiIk1zvLL7a3nFCri/YIblB+4hP9D/B9AvyO8Bbx9+BJCwnAuaoRH83ofnV3R+ + y1AHqhuC70At6xc= + + adjustmentEditorBundleID + com.pixelmatorteam.pixelmator.touch.x.photo + adjustmentFormatIdentifier + com.pixelmatorteam.touch.x.photo.PhotosAdjustmentData.SidecarConfigurationInfo.compressed + adjustmentFormatVersion + 1.0 + adjustmentTimestamp + 2024-04-18T01:09:25Z + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_1_201_a.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_1_201_a.jpeg new file mode 100644 index 00000000..0eb8e6fd Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_1_201_a.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.plist new file mode 100644 index 00000000..436bf1eb --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.plist @@ -0,0 +1,367 @@ + + + + + adjustmentBaseVersion + 1 + adjustmentData + + 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 + 8Hi4FmbBAng6LIXVsAG2wXNgDxyCE/Cl8BXwdfBS+E54FfwQ/AT8LPwS/Ba8E/4I/hw+ + Av8AnySRSYWkMtIo0gRSA0lAQkiNJBNpNslD6iB1kxaRbiTdTlpNepS0gfQS6R3Sh6QD + pG9JP5Mh8kByOXksmU4WkMXkJnIL2U2Oki8jX0teTl5Nfpy8mfwG+X3yAfJR8m+UXEop + hUahU6ZQFBQzxUHpoFxGuZ5yJ+VBygbKq5T3KZ9TjlFO5xTljMypzZmco8xpzvHkJHMW + 5yzPWZvzTM5rOR/mHMo5kZubW55bncvPVeTacttz5+Zen3t37rrcrbk7cw/m/pyXlzcs + rzZvWl5THpoXz1ucd0feo3kv5u3KO5T3a/7A/DH5rHxZfkt+KH9h/vL8h/O35O/K/zr/ + VEFJwfiCyQVNBc6CVMFNBWsKNhfsKDhUcGrAoAHVA6YNMA1oH7BgwO0DHh/w2oB9A34c + OHBg5UDhQP1A38D5A28fuH7gmwM/H/hb4eDCSYXiwtbCROGNhQ8Ubi38qPDHoqKiCUUz + i1qK4kU3Fj1U9ErR/qJfi0uL64uVxc7iy4tXFG8o3lX8PbWAOp6KUC+hdlOXU5+i7qAe + LSkomVAiLkFLLitZUfJsyZ6SnweVDmIOahoUHHT9oIcHvTXo8OC8wRMGSwc7By8afN/g + VwYfLCWXjisVlzpKryhdU/pa6aGy3LLqMmVZe9l1ZY+VbS87NmTwEM4Qy5CuISuGvDDk + QDm5fEK5sjxQflP5k+W7y09WjKpAKlwV11Q8XrGr4pehI4bOHOoaeu3QdUM/HHpyGG2Y + dJh/2M3DNg77dDhl+KTh+uHJ4SuHvzb86IiyEVNGOEZcO+LJER+PJI2cNNIwcu7I+0Zu + G/nzqNGj5KMio+4Y9cqoo6PLR88c3T562egto4+MKR0zfYxvzLIxL475hjaEhtACtNtp + r9KOjR05VjE2MXbV2O1jT1VWV5orF1auq/x03IBxgnHuccvGvTzuWNWYKk3VpVWPVH08 + vmC8YLx3/G3j3xj/y4TqCdYJV03YOOFw9dBqZXV39SPV+yYWTZwxsWPi6okf1OTWCGr8 + NXfXvDeJNIk7yTtpxaQdtaRaXq2v9u7anXU5dcK6UN3quj30QjpC76Q/Qv+8vrxeXb+w + fmP99w1VDS0NNze80XCawWUEGGsYnzAHM1XMhczNzB9Yk1gO1grWB+witox9OXsT+zin + luPirOTs5ZZyNdyruC9z/+DxeVHe47wj/Cr+HP5d/D2CMoFOcL3gTWGOUCS8XPi88LfJ + vMnxyU9O/scU+hT/lIenHJ5aPdU1dc3Ug9Mqp6HTVk07MJ02fc70e6cfmDF2Bjpj9Ywv + Zo6b6Zy5dubXSA3SjjyKfC9iiKKiZ0S/iCeL54m3SsgSueRayXbpYKlZeqd0v6xS5pE9 + Ijsm58rnyrcqchSNipsVe5SjlA7lQ8pjKr5qnurVxsJGY+OdjV+oJ6mj6s0akkaluUWz + TzteG9JubIKalE23NH2qq9Z16J7T5+p1+hX6rwxMw6WGN4ylxjbjw8YTJpHpJtMn5onm + hPllC9XSannI8otVYl1qPdDc0Dyv+R3bcJvPtqklr8XSsrbl51nSWbfOOtTKbV3cunt2 + 9eyu2W9dMvySwCUvtFHb0Lan5uTMsc55eM7vaBO6Gv3ZrrTfZT/mEDtuc3zrnOlc5jzi + muZa6vraPc291H3YM81zi+eId4Z3ufeoT+y703e8XdF+T/sv/ib/A/4/A9bAumB+cE7w + 2dDgkD/0anh0uCu8M1IbWRw50DG549aOY9HG6NoYHJsd2xQvA4OpbYmJiSsTn3dO71zR + +WvSknyqa1BXqGtbalLqmtTX3bLu++dS5jrmvnzp2EsXXPr5PGTeqsvgy+yXvXz5uMsX + XX5ovnz+gwsGLPAveHchY+HShT9dYb1i86JRi+YvOnil/MpHFhcvji7ec9WUq+65mnK1 + 7+rt17CvueOa09c6r337OsZ1y6/7/XrH9W/fwLzh9hv+vNF94/abeDetXJK7JLRk980z + bn5w6aCl3UsP3qK5ZcMy2rJrl/10a9utby3nLL/ntgG3JW47cLv69k13VN2x5I7f7/Te + +eEK0Yp1d42865q7frnbefeulTNXPn7PqHuuu+fkvb57966Sr9qwesLq5ffl3td531dr + LGveuF9w/0Nrh6+9bu0fD4QeOPCg4cFXH+I/9NDDIx++6RHSI4lHjjza+uh7j0ke2/Q4 + /fFV68rXXbceWp9Y/80Tc57Y/WTjky8/JXjq8afHP33XM6XPXLsB3pDacGyjd+OBTbZN + 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 + 5i4LVBfm3p1fbel2qp+m7wrllF9ZeIp05IHy135W3b9uwpJF3L3uH6NDDk7+aEbR3i83 + rL159/ROw1e1q73fKK5w7fh8mnE7YzFp0qMnD5dv+un4c/lCzd5Xfj3Rcjz/rrmXCm5a + paOP2vjIhwinbv+WX+lb5HP4T5VUrchhlR/eMrKx4hfayq9/UJU/G6v60Fzm37j3lVS5 + dvrDsZHvfPHCEYSkz3tl7BOPfDlqyc0Qckloz5LyHyhPfrJPFPnqimsfe06wfGslt+zH + evjKZ0z0VTtrBHOO0O995N6Vdx6lDb5tnmav53Nz6XWTJOPNpx+accM9A5qtBTz0w+8S + D9LmFD4n+z5IuXN95eZp9z34cN11v77jWC8KffKN8u5ZysObP5n9QQF6/JpQsmSIZeSG + k6yWHZRfH2nlXT+g9ofLTvmXpFgLTR5dxY9LrL9+NWXO1ydechd9OP/LVS9uz2v5B+cS + 1dgTLOXLlnmR9nsH/7Rkwv6usXfUvxi54a1nyR/UtLUdVt4y6Tnt6W9+W7J32IFDG36n + tE16dG9w++nJS0IPX/a14M5DV7837XT+m2+brDbeqLod/N8Ok+fUNsRJLTe9NvjU7D/u + LKy1P/kO/PCyLV803XJk9zjSPV+WQom3I6yPrhg+X7fhtx+3PAQ/YPxOvva5pVrqz9fZ + BBO+3T/zOTl5aEFs4+cP3P/TkFLF4T+fG/NQdd7tNX80Tftql2nxU7XHjv12FXLHkvt/ + +2nk5Juuf7tl6NCNFbdrfza9u/DB43krUN/Wu1684ovdv/808+llEzSvz/lM8SKlLnea + 8MVJEtUDb63/x9Pr3p4v3bdbLnSsibsoK/f8dDQ6x7Wp/tPTAq5m4vxFq0Bj4Z3ctm74 + ntrDzy9r37X/fei2nK/WPqYaa77ttx/4luULDc5tTx0+PWrdvZZX5/x2eNSQrWvLp+ne + u4Tx2Q0tspK8+rfW5Q0N0zXmWftq4IrlNzXV5jYvF+3QDi1ur5EPc02/+Z7TlLqS5vtk + P5/2keSzy+e+cXnHwNtvenmO5mTsxSVTvqpYuPWD96EhA6787ruuk69UXn7VMvOa2YnS + ujq7t+aj1a/Zi488cNfSIsZ9T2x/7KNjrNrX0VfmdP1QM2rmj098cWLoTQ350eqrxiJd + rxetfQXZbd37q4O1/9Opopl3zl4w9+W3yskj1ty9k/HtNxt8rQpelWndJGTrreuPh33B + aaXf1Xx3U94PeuEzc74db/nyxMkVsWdGS9Z/7V/eOnOrpSRQmCxfe8Oyweib4y81l3YN + uu/Ghx+pmSaTLhp7/NfEz3P+eOIGW8wz97Kly/aOHXTDZ7q8wIqiPdVHHw5PW/5V9RH2 + 2JXR3dstW1fuzN2/s7suRnpxx6Ku/f8Y80Fslf7qlyKeU7O+2cK5++sVy/4c4C1YURLf + c1D81FUHH7ht6mWprb/p1V88s4o3eXjDjl+WfDLBOnTTw4UHLqv4zajZXDtLJOW9c+vr + Rx85uFWOHpsd3LNR88SzrpWV3dZRfON1t4+o/37Wmicee2mf/ZepVY0k53MPrZ3I3jv5 + 2fX2TvjNQ/NHVQSLxqf0rED0ypeO8AXH9UO3HFe+xWcfuv3QgCvY33c4Z3g53ocmr1zz + qv2edxYdbZ+CQC8wny6r3/D9sKs/23fw6PWT3xmz86PEn7+8wlxXN+wW8zusYPWX19/9 + oX/q+qP64Rseu/M6WvjU8pXbl3447lbv9PHF275cMuvpl0+91lX35Wb1tocOvam0Dft+ + //Brt9OPch3J8UmRbLN/xkDZA5YD3GDyhdJRc154RFhbeOWQh9f+4+svAqzjvz1zTw66 + fvrxKcJDJ1y5J5rclYl99XO+vjW//NSIcud9ee0zRP8Y1hY7fH8JORrnYLqHpjzLoc37 + pO2+ne9OX/DGoh0LQsmf39nz8TcPK18aUE3acfX17ZEplcX35tu/bz1y5Unn3nlvL16x + tVMy8cGr33p6P3VgzttvfrhROPBH72Xo9g2jF5V4l88mzx269cZDN1bccfCJPxxP8A4N + qK6ljdi8xblljOWHshvU9V+8N+VO1eAhzfXjhy7vIh3dmTdl7IpJxqtsbHnCPvbNg97O + ex9U3Up//22defmv9E0vv7X648XhLZsZlNrBSlLpDtInzticIS9wyz6+MTd/4eD6Dj3j + yKmFK5c2VU7Tm8trKoaQG36/eVP9jju/qz14/NDH3PtHvnxieejqgcfKtz5+kLdn/uNH + lt7+3R9Nu/fNuVJy7/Vv1x3c1fjpjrtntBT/WaFrhEllpelNzJqBS5s/qhpWBi2BIUwV + QWci6Iqj2LZmPXbeO9vrufY/+1ALArv43dDGnFzMEwn8LQXP7x/FFs7aSiYKWC4WH7UL + WS4hx85zokImk8FxMVx8vpPFdqJ8PpvP4Tu47NUwY+d45mqY9UFeWSmZDYJcDXNWcdtK + qvgSrkSIIAwQvVhK5zAQNl0kBKlhC/hikYDLEnI4rFmRhD3gc9S3R1weECmDz+Xx7CjH + yWEK3Ew+D3WjLgbKcLrZDDaLL2Rx3SyHWyhEx2Ebti2Gw4sHQ/Bjy3cNoYyYsodcllM6 + ZNzYqbxpdTXTJ2Rc3NisQR1Mbh2T0aLzhuPhIBoPRyGci7j4M4zrgIPQaKBoEL4BiG2o + YZtz2KYftjGHLT9CXqDagQoDlQDqLqDuAQq7ov4klD6dvgGoTUBtBup5oLYA9SpQ7wK1 + A6gTEASDcOFqoEC4sBCoKUBNA2oGUAhQYqBUQOmAsgHVBpQdKGwTNwHB6wYBNRWoGUCJ + gJICpQVKD5QRqG6gFgP1BFCbgXoRqFeBeh+ofUAdgnBQ4PQTmgFlA1537P8A + + adjustmentEditorBundleID + com.pixelmatorteam.pixelmator.touch.x.photo + adjustmentFormatIdentifier + com.pixelmatorteam.touch.x.photo.PhotosAdjustmentData.EmbeddedSlimSidecarFileInfo.compressed + adjustmentFormatVersion + 1.0 + adjustmentTimestamp + 2024-04-18T01:09:25Z + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_1_201_a.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_1_201_a.jpeg new file mode 100644 index 00000000..5a68ac85 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_1_201_a.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_p.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_p.jpeg new file mode 100644 index 00000000..5a80d087 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_p.jpeg differ diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.plist new file mode 100644 index 00000000..df42a088 --- /dev/null +++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.plist @@ -0,0 +1,20 @@ + + + + + adjustmentBaseVersion + 0 + adjustmentData + + 89DVBAAAAAAKAAAA + + adjustmentEditorBundleID + com.apple.Photos + adjustmentFormatIdentifier + com.apple.Photos.externalEdit + adjustmentFormatVersion + 1 + adjustmentTimestamp + 2024-04-18T01:09:25Z + + diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_1_201_a.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_1_201_a.jpeg new file mode 100644 index 00000000..ff6f5d23 Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_1_201_a.jpeg differ diff --git a/tests/test_external_adjustments.py b/tests/test_external_adjustments.py new file mode 100644 index 00000000..bd0bdbbf --- /dev/null +++ b/tests/test_external_adjustments.py @@ -0,0 +1,18 @@ +"""Test for external adjustments""" + +import osxphotos + +ADJUSTMENTS_LIBRARY = "tests/ExternalAdjustments-14.4.1.photoslibrary" + + +def test_external_adjustments(): + """Test for external adjustments, #1518""" + photosdb = osxphotos.PhotosDB(dbfile=ADJUSTMENTS_LIBRARY) + photos = photosdb.photos() + assert len(photos) == 1 + photo = photos[0] + assert photo.adjustments is not None + assert ( + photo.adjustments.asdict()["editor"] + == "com.pixelmatorteam.pixelmator.touch.x.photo" + )