From 4b878eeeda7d8b97ddd0911077b701c36dec5e43 Mon Sep 17 00:00:00 2001
From: oSumAtrIX <johan.melkonyan1@web.de>
Date: Sat, 2 Dec 2023 22:35:13 +0100
Subject: [PATCH] feat: Publish as a library (#3356)

---
 api/revanced-patches.api                      | 1639 +++++++++++++++++
 build.gradle.kts                              |    1 +
 gradle/libs.versions.toml                     |    4 +
 .../connectivity/wifi/spoof/SpoofWifiPatch.kt |   10 +-
 .../AbstractTransformInstructionsPatch.kt     |   17 +-
 .../all/misc/transformation}/MethodCall.kt    |    2 +-
 .../RemoveCaptureRestrictionPatch.kt          |    8 +-
 .../RemoveScreenshotRestrictionPatch.kt       |    8 +-
 .../sim/spoof/SpoofSimCountryPatch.kt         |    2 +-
 .../backdrops/misc/pro/ProUnlockPatch.kt      |    2 +-
 .../pro/fingerprints/ProUnlockFingerprint.kt  |    2 +-
 .../patches/candylinkvpn/UnlockProPatch.kt    |    2 +-
 .../IsPremiumPurchasedFingerprint.kt          |    2 +-
 .../root/BypassRootChecksPatch.kt             |    2 +-
 .../root/fingerprints/CheckRootFingerprint.kt |    2 +-
 .../facebook/ads/story/HideStoryAdsPatch.kt   |    2 +-
 .../fingerprints/AdsInsertionFingerprint.kt   |    2 +-
 .../fingerprints/FetchMoreAdsFingerprint.kt   |    2 +-
 .../fingerprints/FieldMethodFingerprint.kt    |    2 +-
 .../bootloader/BootloaderDetectionPatch.kt    |    2 +-
 .../fingerprints/BootStateFingerprint.kt      |    2 +-
 .../fingerprints/CreateKeyFingerprint.kt      |    2 +-
 .../detection/root/RootDetectionPatch.kt      |    2 +-
 .../fingerprints/RootDetectionFingerprint.kt  |    2 +-
 .../restrictions/RemoveDeviceRestrictions.kt  |    2 +-
 .../OnApplicationCreateFingerprint.kt         |    2 +-
 .../patches/hexeditor/ad/DisableAdsPatch.kt   |    2 +-
 .../ad/fingerprints/PrimaryAdsFingerprint.kt  |    2 +-
 .../pro/fingerprints/CheckProFingerprint.kt   |    2 +-
 .../detection/root/RootDetectionPatch.kt      |    2 +-
 .../AttestationSupportedCheckFingerprint.kt   |    2 +-
 .../BootloaderCheckFingerprint.kt             |    2 +-
 .../root/fingerprints/RootCheckFingerprint.kt |    2 +-
 .../fingerprints/SpoofSignatureFingerprint.kt |    2 +-
 .../patches/inshorts/ad/InshortsAdsPatch.kt   |    2 +-
 .../ad/fingerprints/InshortsAdsFingerprint.kt |    2 +-
 .../ads/timeline/HideTimelineAdsPatch.kt      |    2 +-
 .../timeline/fingerprints/MediaFingerprint.kt |    2 +-
 .../fingerprints/ShowAdFingerprint.kt         |    2 +-
 .../ads/GenericMediaAdFingerprint.kt          |    2 +-
 .../fingerprints/ads/MediaAdFingerprint.kt    |    2 +-
 .../ads/PaidPartnershipAdFingerprint.kt       |    2 +-
 .../fingerprints/ads/ShoppingAdFingerprint.kt |    2 +-
 .../ad/fingerprints/IrplusAdsFingerprint.kt   |    2 +-
 .../misc/login/DisableMandatoryLoginPatch.kt  |    2 +-
 .../fingerprints/IsLoggedInFingerprint.kt     |    2 +-
 .../misc/premium/UnlockPremiumPatch.kt        |    2 +-
 .../fingerprints/HasPurchasedFingerprint.kt   |    2 +-
 .../license/LicenseValidationPatch.kt         |    2 +-
 .../LicenseValidationFingerprint.kt           |    2 +-
 .../signature/SignatureVerificationPatch.kt   |    2 +-
 .../VerifySignatureFingerprint.kt             |    2 +-
 .../misc/pro/UnlockProVersionPatch.kt         |    2 +-
 .../fingerprints/IsFreeVersionFingerprint.kt  |    2 +-
 .../fingerprints/LoadInboxAdsFingerprint.kt   |    2 +-
 .../ads/inbox/patch/HideInboxAdsPatch.kt      |    2 +-
 .../SendTypingIndicatorFingerprint.kt         |    2 +-
 ...itchMessangeInputEmojiButtonFingerprint.kt |    2 +-
 .../DisableSwitchingEmojiToStickerPatch.kt    |    2 +-
 .../patch/DisableTypingIndicatorPatch.kt      |    2 +-
 .../fingerprints/UnlockProFingerprint.kt      |    2 +-
 ...ShowMusicVideoAdsConstructorFingerprint.kt |    2 +-
 .../ShowMusicVideoAdsFingerprint.kt           |    2 +-
 .../AllCodecsReferenceFingerprint.kt          |    2 +-
 .../fingerprints/CodecsLockFingerprint.kt     |    2 +-
 .../exclusiveaudio/ExclusiveAudioPatch.kt     |    2 +-
 .../AllowExclusiveAudioPlaybackFingerprint.kt |    2 +-
 .../fingerprints/ExclusiveAudioFingerprint.kt |    2 +-
 .../permanentrepeat/PermanentRepeatPatch.kt   |    2 +-
 .../fingerprints/RepeatTrackFingerprint.kt    |    2 +-
 .../permanentshuffle/PermanentShufflePatch.kt |    2 +-
 .../fingerprints/DisableShuffleFingerprint.kt |    2 +-
 .../CompactHeaderConstructorFingerprint.kt    |    2 +-
 .../MinimizedPlaybackPatch.kt                 |    2 +-
 .../MinimizedPlaybackManagerFingerprint.kt    |    2 +-
 .../fingerprints/HideGetPremiumFingerprint.kt |    2 +-
 .../HideGetPremiumParentFingerprint.kt        |    2 +-
 .../PivotBarConstructorFingerprint.kt         |    2 +-
 .../BypassCertificateChecksPatch.kt           |    2 +-
 .../CheckCertificateFingerprint.kt            |    2 +-
 .../CastContextFetchFingerprint.kt            |    2 +-
 .../CastDynamiteModuleFingerprint.kt          |    2 +-
 .../CastDynamiteModuleV2Fingerprint.kt        |    2 +-
 .../GooglePlayUtilityFingerprint.kt           |    2 +-
 .../microg/fingerprints/PrimeFingerprint.kt   |    2 +-
 .../fingerprints/ServiceCheckFingerprint.kt   |    2 +-
 .../backgroundplay/BackgroundPlayPatch.kt     |    2 +-
 .../BackgroundPlaybackDisableFingerprint.kt   |    2 +-
 .../myexpenses/misc/pro/UnlockProPatch.kt     |    2 +-
 .../pro/fingerprints/IsEnabledFingerprint.kt  |    2 +-
 .../nfctoolsse/misc/pro/UnlockProPatch.kt     |    2 +-
 .../IsLicenseRegisteredFingerprint.kt         |    2 +-
 .../patches/nyx/misc/pro/UnlockProPatch.kt    |    2 +-
 .../pro/fingerprints/CheckProFingerprint.kt   |    2 +-
 .../detection/deviceid/SpoofDeviceIdPatch.kt  |    2 +-
 .../fingerprints/GetDeviceIdFingerprint.kt    |    2 +-
 .../signature/SignatureDetectionPatch.kt      |    2 +-
 .../fingerprints/CheckSignatureFingerprint.kt |    2 +-
 .../misc/bookpoint/EnableBookpointPatch.kt    |    4 +-
 .../IsBookpointEnabledFingerprint.kt          |    2 +-
 .../misc/unlockplus/UnlockPlusPatch.kt        |    2 +-
 .../fingerprints/IsPlusUnlockedFingerprint.kt |    2 +-
 .../patches/pixiv/ads/HideAdsPatch.kt         |    2 +-
 .../fingerprints/IsNotPremiumFingerprint.kt   |    2 +-
 .../reddit/ad/comments/HideCommentAdsPatch.kt |    2 +-
 .../fingerprints/HideCommentAdsFingerprint.kt |    2 +-
 .../general/fingerprints/AdPostFingerprint.kt |    2 +-
 .../fingerprints/NewAdPostFingerprint.kt      |    2 +-
 .../customclients/AbstractSpoofClientPatch.kt |    2 +-
 .../GetAuthorizationUrlFingerprint.kt         |    2 +-
 .../fingerprints/GetClientIdFingerprint.kt    |    2 +-
 .../fingerprints/RequestTokenFingerprint.kt   |    2 +-
 .../fingerprints/GetClientIdFingerprint.kt    |    2 +-
 .../LoginActivityOnCreateFingerprint.kt       |    2 +-
 .../api/fingerprints/APIUtilsFingerprint.kt   |    2 +-
 .../AbstractClientIdFingerprint.kt            |    0
 .../GetHttpBasicAuthHeaderFingerprint.kt      |    0
 .../LoginActivityOnCreateFingerprint.kt       |    0
 .../subscription/UnlockSubscriptionPatch.kt   |    2 +-
 .../joeyforreddit/ads/DisableAdsPatch.kt      |    2 +-
 .../fingerprints/IsAdFreeUserFingerprint.kt   |    2 +-
 .../fingerprints/GetClientIdFingerprint.kt    |    2 +-
 .../piracy/DisablePiracyDetectionPatch.kt     |    2 +-
 .../PiracyDetectionFingerprint.kt             |    2 +-
 .../AbstractClientIdFingerprint.kt            |    2 +-
 .../BasicAuthorizationFingerprint.kt          |    2 +-
 .../BuildAuthorizationStringFingerprint.kt    |    2 +-
 .../fingerprints/GetUserAgentFingerprint.kt   |    2 +-
 .../AbstractClientIdFingerprint.kt            |    2 +-
 .../GetLoggedInBearerTokenFingerprint.kt      |    2 +-
 .../GetLoggedOutBearerTokenFingerprint.kt     |    2 +-
 .../GetRefreshTokenFingerprint.kt             |    2 +-
 .../LoginActivityClientIdFingerprint.kt       |    2 +-
 .../RedditCheckDisableAPIFingerprint.kt       |    2 +-
 .../SetRemoteConfigFingerprint.kt             |    2 +-
 .../fingerprints/GetClientIdFingerprint.kt    |    2 +-
 .../syncforreddit/ads/DisableAdsPatch.kt      |    2 +-
 .../fingerprints/IsAdsEnabledFingerprint.kt   |    2 +-
 .../DisableSyncForLemmyBottomSheetPatch.kt    |   10 +-
 ....kt => MainActivityOnCreateFingerprint.kt} |    2 +-
 .../syncforreddit/api/SpoofClientPatch.kt     |    2 +-
 .../GetAuthorizationStringFingerprint.kt      |    2 +-
 .../fingerprints/GetBearerTokenFingerprint.kt |    2 +-
 .../fingerprints/ImgurImageAPIFingerprint.kt  |    2 +-
 .../fingerprints/LoadBrowserURLFingerprint.kt |    2 +-
 .../PiracyDetectionFingerprint.kt             |    2 +-
 .../DisableScreenshotPopupPatch.kt            |    2 +-
 .../DisableScreenshotPopupFingerprint.kt      |    2 +-
 .../premiumicon/UnlockPremiumIconPatch.kt     |    2 +-
 .../HasPremiumIconAccessFingerprint.kt        |    2 +-
 .../tracking/url/SanitizeUrlQueryPatch.kt     |    2 +-
 .../ShareLinkFormatterFingerprint.kt          |    2 +-
 .../RemoveDebuggingDetectionPatch.kt          |    2 +-
 .../DebuggingDetectionFingerprint.kt          |    2 +-
 .../fingerprints/RootDetectionFingerprint.kt  |    2 +-
 .../fix/verticalscroll/VerticalScrollPatch.kt |    2 +-
 .../CanScrollVerticallyFingerprint.kt         |    2 +-
 .../settings/AbstractSettingsResourcePatch.kt |    6 +-
 .../filesize/RemoveFileSizeLimitPatch.kt      |    2 +-
 .../fingerprints/OnReadyFingerprint.kt        |    2 +-
 .../patches/songpal/badge/BadgeTabPatch.kt    |    2 +-
 .../badge/RemoveNotificationBadgePatch.kt     |    2 +-
 .../fingerprints/CreateTabsFingerprint.kt     |    2 +-
 .../ShowNotificationFingerprint.kt            |    2 +-
 .../spotify/lite/ondemand/OnDemandPatch.kt    |    2 +-
 .../fingerprints/OnDemandFingerprint.kt       |    2 +-
 .../spotify/navbar/PremiumNavbarTabPatch.kt   |    2 +-
 .../fingerprints/AddNavBarItemFingerprint.kt  |    2 +-
 .../subscription/UnlockSubscriptionPatch.kt   |    2 +-
 .../fingerprints/GetSubscribedFingerprint.kt  |    2 +-
 .../DisableSubscriptionSuggestionsPatch.kt    |    2 +-
 .../fingerprints/GetModulesFingerprint.kt     |    2 +-
 .../CheckLockedThemesFingerprint.kt           |    2 +-
 .../fingerprints/SetThemeFingerprint.kt       |    2 +-
 .../ConvertHelpFeedItemListFingerprint.kt     |    2 +-
 .../FeedItemListCloneFingerprint.kt           |    2 +-
 .../tiktok/feedfilter/FeedFilterPatch.kt      |    2 +-
 .../FeedApiServiceLIZFingerprint.kt           |    2 +-
 .../fingerprints/ACLCommonShareFingerprint.kt |    2 +-
 .../ACLCommonShareFingerprint2.kt             |    2 +-
 .../ACLCommonShareFingerprint3.kt             |    2 +-
 .../DownloadPathParentFingerprint.kt          |    2 +-
 .../interaction/seekbar/ShowSeekbarPatch.kt   |    2 +-
 .../SetSeekBarShowTypeFingerprint.kt          |    2 +-
 .../ShouldShowSeekBarFingerprint.kt           |    2 +-
 .../SpeedControlParentFingerprint.kt          |    2 +-
 .../fingerprints/InitFingerprint.kt           |    2 +-
 .../MandatoryLoginServiceFingerprint.kt       |    2 +-
 .../MandatoryLoginServiceFingerprint2.kt      |    2 +-
 .../GoogleAuthAvailableFingerprint.kt         |    2 +-
 .../GoogleOneTapAuthAvailableFingerprint.kt   |    2 +-
 .../tiktok/misc/settings/SettingsPatch.kt     |    2 +-
 ...sonalizationActivityOnCreateFingerprint.kt |    2 +-
 .../AddSettingsEntryFingerprint.kt            |    2 +-
 .../fingerprints/SettingsEntryFingerprint.kt  |    2 +-
 .../SettingsEntryInfoFingerprint.kt           |    2 +-
 .../SettingsStatusLoadFingerprint.kt          |    2 +-
 .../tiktok/misc/spoof/sim/SpoofSimPatch.kt    |    2 +-
 .../revanced/patches/trakt/UnlockProPatch.kt  |    2 +-
 .../trakt/fingerprints/IsVIPEPFingerprint.kt  |    2 +-
 .../trakt/fingerprints/IsVIPFingerprint.kt    |    2 +-
 .../fingerprints/RemoteUserFingerprint.kt     |    2 +-
 .../fingerprints/BrightnessFingerprint.kt     |    2 +-
 .../lockscreen/patch/ShowOnLockscreenPatch.kt |    4 +-
 .../DisableBlogNotificationReminderPatch.kt   |    2 +-
 .../IsBlogNotifyEnabledFingerprint.kt         |    2 +-
 .../popups/DisableGiftMessagePopupPatch.kt    |    2 +-
 .../ShowGiftMessagePopupFingerprint.kt        |    2 +-
 .../featureflags/OverrideFeatureFlagsPatch.kt |    2 +-
 .../GetFeatureValueFingerprint.kt             |    2 +-
 .../timelinefilter/TimelineFilterPatch.kt     |    2 +-
 .../PostsResponseConstructorFingerprint.kt    |    2 +-
 .../TimelineConstructorFingerprint.kt         |    2 +-
 .../TimelineFilterIntegrationFingerprint.kt   |    2 +-
 .../AudioAdsPresenterPlayFingerprint.kt       |    2 +-
 .../twitch/ad/embedded/EmbeddedAdsPatch.kt    |    2 +-
 .../CreateUsherClientFingerprint.kt           |    2 +-
 .../patches/twitch/ad/video/VideoAdsPatch.kt  |    2 +-
 .../CheckAdEligibilityLambdaFingerprint.kt    |    2 +-
 .../ContentConfigShowAdsFingerprint.kt        |    2 +-
 .../GetReadyToShowAdFingerprint.kt            |    2 +-
 .../antidelete/ShowDeletedMessagesPatch.kt    |    2 +-
 .../ChatUtilCreateDeletedSpanFingerprint.kt   |    2 +-
 ...etedMessageClickableSpanCtorFingerprint.kt |    2 +-
 .../SetHasModAccessFingerprint.kt             |    2 +-
 .../autoclaim/AutoClaimChannelPointsPatch.kt  |    2 +-
 ...nityPointsButtonViewDelegateFingerprint.kt |    2 +-
 .../patches/twitch/debug/DebugModePatch.kt    |    2 +-
 .../IsDebugConfigEnabledFingerprint.kt        |    2 +-
 .../IsOmVerificationEnabledFingerprint.kt     |    2 +-
 .../ShouldShowDebugOptionsFingerprint.kt      |    2 +-
 .../fingerprints/InitFingerprint.kt           |    2 +-
 .../twitch/misc/settings/SettingsPatch.kt     |    2 +-
 .../MenuGroupsOnClickFingerprint.kt           |    2 +-
 .../MenuGroupsUpdatedFingerprint.kt           |    2 +-
 .../SettingsActivityOnCreateFingerprint.kt    |    2 +-
 .../SettingsMenuItemEnumFingerprint.kt        |    2 +-
 .../fingerprints/JsonHookPatchFingerprint.kt  |    2 +-
 .../JsonInputStreamFingerprint.kt             |    2 +-
 .../fingerprints/LoganSquareFingerprint.kt    |    2 +-
 .../patches/vsco/misc/pro/UnlockProPatch.kt   |    2 +-
 .../RevCatSubscriptionFingerprint.kt          |    2 +-
 .../GetCertMessagingFingerprint.kt            |    2 +-
 .../GetCertRegistrationFingerprint.kt         |    2 +-
 .../PromoCodeUnlockFingerprint.kt             |    2 +-
 .../fingerprints/CheckProFingerprint.kt       |    2 +-
 .../youtube/ad/general/HideAdsPatch.kt        |    4 +-
 .../ad/getpremium/HideGetPremiumPatch.kt      |    2 +-
 .../fingerprints/GetPremiumViewFingerprint.kt |    2 +-
 .../fingerprints/LoadVideoAdsFingerprint.kt   |    2 +-
 .../copyvideourl/CopyVideoUrlResourcePatch.kt |   13 +-
 .../ExternalDownloadsResourcePatch.kt         |   10 +-
 .../DisablePreciseSeekingGesturePatch.kt      |    2 +-
 .../seekbar/EnableSeekbarTappingPatch.kt      |    2 +-
 .../seekbar/EnableSlideToSeekPatch.kt         |    4 +-
 .../DoubleSpeedSeekNoticeFingerprint.kt       |    2 +-
 .../fingerprints/IsSwipingUpFingerprint.kt    |    2 +-
 .../OnTouchEventHandlerFingerprint.kt         |    2 +-
 .../fingerprints/SeekbarTappingFingerprint.kt |    2 +-
 .../fingerprints/SlideToSeekFingerprint.kt    |    2 +-
 .../SwipeControlsBytecodePatch.kt             |    4 +-
 .../SwipeControlsResourcePatch.kt             |    8 +-
 .../SwipeControlsHostActivityFingerprint.kt   |    2 +-
 .../layout/autocaptions/AutoCaptionsPatch.kt  |    2 +-
 .../StartVideoInformerFingerprint.kt          |    2 +-
 .../SubtitleButtonControllerFingerprint.kt    |    2 +-
 .../fingerprints/SubtitleTrackFingerprint.kt  |    2 +-
 .../layout/branding/CustomBrandingPatch.kt    |    6 +-
 .../autoplay/HideAutoplayButtonPatch.kt       |    4 +-
 .../navigation/NavigationButtonsPatch.kt      |    2 +-
 .../ResolvePivotBarFingerprintsPatch.kt       |    4 +-
 .../AddCreateButtonViewFingerprint.kt         |    2 +-
 .../InitializeButtonsFingerprint.kt           |    2 +-
 .../PivotBarButtonsViewFingerprint.kt         |    2 +-
 .../PivotBarConstructorFingerprint.kt         |    2 +-
 .../PivotBarCreateButtonViewFingerprint.kt    |    2 +-
 .../fingerprints/PivotBarEnumFingerprint.kt   |    2 +-
 .../player/hide/HidePlayerButtonsPatch.kt     |    2 +-
 ...layerControlsVisibilityModelFingerprint.kt |    2 +-
 .../layout/hide/albumcards/AlbumCardsPatch.kt |    2 +-
 .../albumcards/AlbumCardsResourcePatch.kt     |    2 +-
 .../fingerprints/AlbumCardsFingerprint.kt     |    2 +-
 .../hide/breakingnews/BreakingNewsPatch.kt    |    2 +-
 .../breakingnews/BreakingNewsResourcePatch.kt |    2 +-
 .../fingerprints/BreakingNewsFingerprint.kt   |    2 +-
 .../crowdfundingbox/CrowdfundingBoxPatch.kt   |    2 +-
 .../CrowdfundingBoxResourcePatch.kt           |    2 +-
 .../CrowdfundingBoxFingerprint.kt             |    2 +-
 .../endscreencards/HideEndscreenCardsPatch.kt |    2 +-
 .../HideEndscreenCardsResourcePatch.kt        |    2 +-
 .../fingerprints/LayoutCircleFingerprint.kt   |    2 +-
 .../fingerprints/LayoutIconFingerprint.kt     |    2 +-
 .../fingerprints/LayoutVideoFingerprint.kt    |    2 +-
 .../hide/filterbar/HideFilterBarPatch.kt      |    2 +-
 .../filterbar/HideFilterBarResourcePatch.kt   |    2 +-
 .../FilterBarHeightFingerprint.kt             |    2 +-
 .../RelatedChipCloudFingerprint.kt            |    2 +-
 .../SearchResultsChipBarFingerprint.kt        |    2 +-
 .../HideFloatingMicrophoneButtonPatch.kt      |    2 +-
 ...deFloatingMicrophoneButtonResourcePatch.kt |    2 +-
 ...ShowFloatingMicrophoneButtonFingerprint.kt |    2 +-
 .../DisableFullscreenAmbientModePatch.kt      |    2 +-
 .../InitializeAmbientModeFingerprint.kt       |    2 +-
 .../hide/general/HideLayoutComponentsPatch.kt |    2 +-
 .../ParseElementFromBufferFingerprint.kt      |    2 +-
 .../fingerprints/PlayerOverlayFingerprint.kt  |    2 +-
 .../fingerprints/ShowWatermarkFingerprint.kt  |    2 +-
 .../InfocardsIncognitoFingerprint.kt          |    2 +-
 .../InfocardsIncognitoParentFingerprint.kt    |    2 +-
 .../InfocardsMethodCallFingerprint.kt         |    2 +-
 .../loadmorebutton/HideLoadMoreButtonPatch.kt |    2 +-
 .../HideLoadMoreButtonResourcePatch.kt        |    2 +-
 .../HideLoadMoreButtonFingerprint.kt          |    2 +-
 .../HideEmailAddressPatch.kt                  |    2 +-
 .../HideEmailAddressResourcePatch.kt          |    2 +-
 ...ntSwitcherAccessibilityLabelFingerprint.kt |    2 +-
 .../DisableRollingNumberAnimationPatch.kt     |    2 +-
 .../hide/shorts/HideShortsComponentsPatch.kt  |    6 +-
 .../BottomNavigationBarFingerprint.kt         |    2 +-
 .../CreateShortsButtonsFingerprint.kt         |    2 +-
 .../ReelConstructorFingerprint.kt             |    2 +-
 .../RenderBottomNavigationBarFingerprint.kt   |    2 +-
 ...derBottomNavigationBarParentFingerprint.kt |    2 +-
 .../SetPivotBarVisibilityFingerprint.kt       |    2 +-
 .../SetPivotBarVisibilityParentFingerprint.kt |    2 +-
 .../DisableSuggestedVideoEndScreenPatch.kt    |    2 +-
 ...bleSuggestedVideoEndScreenResourcePatch.kt |    2 +-
 .../CreateEndScreenViewFingerprint.kt         |    2 +-
 .../layout/hide/time/HideTimestampPatch.kt    |    2 +-
 .../fingerprints/TimeCounterFingerprint.kt    |    2 +-
 .../panels/popup/PlayerPopupPanelsPatch.kt    |    2 +-
 .../EngagementPanelControllerFingerprint.kt   |    2 +-
 .../PlayerControlsBackgroundPatch.kt          |    2 +-
 .../CustomPlayerOverlayOpacityPatch.kt        |    4 +-
 ...CustomPlayerOverlayOpacityResourcePatch.kt |    2 +-
 .../CreatePlayerOverviewFingerprint.kt        |    4 +-
 .../ReturnYouTubeDislikePatch.kt              |    6 +-
 .../ReturnYouTubeDislikeResourcePatch.kt      |    4 +-
 .../fingerprints/DislikeFingerprint.kt        |    2 +-
 .../DislikesOldLayoutTextViewFingerprint.kt   |    2 +-
 .../fingerprints/LikeFingerprint.kt           |    2 +-
 .../fingerprints/RemoveLikeFingerprint.kt     |    2 +-
 ...ingNumberMeasureAnimatedTextFingerprint.kt |    2 +-
 ...lingNumberMeasureStaticLabelFingerprint.kt |    2 +-
 ...llingNumberMeasureTextParentFingerprint.kt |    2 +-
 .../RollingNumberSetterFingerprint.kt         |    2 +-
 .../RollingNumberTextViewFingerprint.kt       |    2 +-
 .../fingerprints/ShortsTextViewFingerprint.kt |    2 +-
 ...TextComponentAtomicReferenceFingerprint.kt |    2 +-
 .../TextComponentConstructorFingerprint.kt    |    2 +-
 .../TextComponentContextFingerprint.kt        |    2 +-
 .../layout/searchbar/WideSearchbarPatch.kt    |    2 +-
 .../CreateSearchSuggestionsFingerprint.kt     |    2 +-
 .../SetWordmarkHeaderFingerprint.kt           |    2 +-
 .../RestoreOldSeekbarThumbnailsPatch.kt       |    2 +-
 .../seekbar/SeekbarColorBytecodePatch.kt      |    6 +-
 .../seekbar/SeekbarColorResourcePatch.kt      |    2 +-
 .../layout/seekbar/SeekbarPreferencesPatch.kt |    2 +-
 .../FullscreenSeekbarThumbnailsFingerprint.kt |    2 +-
 .../PlayerSeekbarColorFingerprint.kt          |    4 +-
 .../SetSeekbarClickedColorFingerprint.kt      |    2 +-
 .../ShortsSeekbarColorFingerprint.kt          |    2 +-
 .../sponsorblock/SponsorBlockBytecodePatch.kt |    2 +-
 .../sponsorblock/SponsorBlockResourcePatch.kt |   16 +-
 .../fingerprints/AppendTimeFingerprint.kt     |    2 +-
 .../ControlsOverlayFingerprint.kt             |    2 +-
 .../RectangleFieldInvalidatorFingerprint.kt   |    2 +-
 .../spoofappversion/SpoofAppVersionPatch.kt   |    2 +-
 .../SpoofAppVersionFingerprint.kt             |    2 +-
 .../DisableResumingShortsOnStartupPatch.kt    |    2 +-
 .../UserWasInShortsFingerprint.kt             |    2 +-
 .../layout/tablet/EnableTabletLayoutPatch.kt  |    2 +-
 .../fingerprints/GetFormFactorFingerprint.kt  |    2 +-
 .../tabletminiplayer/TabletMiniPlayerPatch.kt |    2 +-
 ...erDimensionsCalculatorParentFingerprint.kt |    2 +-
 .../MiniPlayerOverrideFingerprint.kt          |    2 +-
 .../MiniPlayerOverrideNoContextFingerprint.kt |    2 +-
 ...PlayerResponseModelSizeCheckFingerprint.kt |    2 +-
 .../layout/theme/LithoColorHookPatch.kt       |    4 +-
 .../layout/theme/ThemeBytecodePatch.kt        |    4 +-
 .../layout/theme/ThemeResourcePatch.kt        |    2 +-
 .../fingerprints/LithoThemeFingerprint.kt     |    2 +-
 .../UseGradientLoadingScreenFingerprint.kt    |    2 +-
 .../thumbnails/AlternativeThumbnailsPatch.kt  |    2 +-
 ...tURLRequestCallbackOnFailureFingerprint.kt |    2 +-
 ...estCallbackOnResponseStartedFingerprint.kt |    2 +-
 ...RLRequestCallbackOnSucceededFingerprint.kt |    2 +-
 .../MessageDigestImageUrlFingerprint.kt       |    2 +-
 .../MessageDigestImageUrlParentFingerprint.kt |    2 +-
 .../misc/announcements/AnnouncementsPatch.kt  |    2 +-
 .../fingerprints/AutoRepeatFingerprint.kt     |    2 +-
 .../AutoRepeatParentFingerprint.kt            |    2 +-
 .../spoof/SpoofDeviceDimensionsPatch.kt       |    2 +-
 ...eviceDimensionsModelToStringFingerprint.kt |    2 +-
 .../FixBackToExitGesturePatch.kt              |    8 +-
 .../fingerprints/OnBackPressedFingerprint.kt  |    2 +-
 .../RecyclerViewScrollingFingerprint.kt       |    2 +-
 .../RecyclerViewTopScrollingFingerprint.kt    |    2 +-
 ...cyclerViewTopScrollingParentFingerprint.kt |    2 +-
 .../misc/fix/playback/ClientSpoofPatch.kt     |    2 +-
 .../misc/fix/playback/SpoofSignaturePatch.kt  |    8 +-
 ...ayerResponseModelImplGeneralFingerprint.kt |    4 +-
 ...rResponseModelImplLiveStreamFingerprint.kt |    4 +-
 ...seModelImplRecommendedLevelFingerprint.kt} |    4 +-
 .../ScrubbedPreviewLayoutFingerprint.kt       |    2 +-
 ...dererDecoderRecommendedLevelFingerprint.kt |    2 +-
 ...toryboardRendererDecoderSpecFingerprint.kt |    2 +-
 .../StoryboardRendererSpecFingerprint.kt      |    2 +-
 .../StoryboardThumbnailFingerprint.kt         |    2 +-
 .../StoryboardThumbnailParentFingerprint.kt   |    2 +-
 .../UserAgentHeaderBuilderFingerprint.kt      |    2 +-
 .../APIPlayerServiceFingerprint.kt            |    2 +-
 .../ApplicationInitFingerprint.kt             |    2 +-
 ...mbeddedPlayerControlsOverlayFingerprint.kt |    2 +-
 .../fingerprints/EmbeddedPlayerFingerprint.kt |    2 +-
 .../RemoteEmbedFragmentFingerprint.kt         |    2 +-
 .../RemoteEmbeddedPlayerFingerprint.kt        |    2 +-
 .../StandalonePlayerActivityFingerprint.kt    |    2 +-
 .../misc/links/BypassURLRedirectsPatch.kt     |    2 +-
 .../misc/links/OpenLinksExternallyPatch.kt    |    2 +-
 .../fingerprints/ABUriParserFingerprint.kt    |    2 +-
 .../fingerprints/HTTPUriParserFingerprint.kt  |    2 +-
 .../misc/litho/filter/LithoFilterPatch.kt     |    4 +-
 .../ComponentContextParserFingerprint.kt      |    2 +-
 .../EmptyComponentBuilderFingerprint.kt       |    2 +-
 .../fingerprints/LithoFilterFingerprint.kt    |    2 +-
 .../ProtobufBufferReferenceFingerprint.kt     |    2 +-
 .../ReadComponentIdentifierFingerprint.kt     |    2 +-
 .../CastContextFetchFingerprint.kt            |    2 +-
 .../CastDynamiteModuleFingerprint.kt          |    2 +-
 .../CastDynamiteModuleV2Fingerprint.kt        |    2 +-
 .../GooglePlayUtilityFingerprint.kt           |    2 +-
 .../microg/fingerprints/PrimeFingerprint.kt   |    2 +-
 .../fingerprints/ServiceCheckFingerprint.kt   |    2 +-
 .../MinimizedPlaybackPatch.kt                 |    4 +-
 ...izedPlaybackPolicyControllerFingerprint.kt |    2 +-
 .../MinimizedPlaybackManagerFingerprint.kt    |    2 +-
 .../MinimizedPlaybackSettingsFingerprint.kt   |    2 +-
 ...imizedPlaybackSettingsParentFingerprint.kt |    2 +-
 .../PlayerControlsBytecodePatch.kt            |    2 +-
 .../BottomControlsInflateFingerprint.kt       |    2 +-
 .../PlayerControlsVisibilityFingerprint.kt    |    2 +-
 ...layerOverlaysOnFinishInflateFingerprint.kt |    2 +-
 .../misc/playertype/PlayerTypeHookPatch.kt    |    2 +-
 .../fingerprint/PlayerTypeFingerprint.kt      |    2 +-
 .../fingerprint/VideoStateFingerprint.kt      |    2 +-
 .../RemoveTrackingQueryParameterPatch.kt      |    4 +-
 .../fingerprints/CopyTextFingerprint.kt       |    2 +-
 .../SystemShareSheetFingerprint.kt            |    2 +-
 .../YouTubeShareSheetFingerprint.kt           |    2 +-
 .../hook/RecyclerViewTreeHookPatch.kt         |    4 +-
 .../RecyclerViewTreeObserverFingerprint.kt    |    2 +-
 .../youtube/misc/settings/SettingsPatch.kt    |    2 +-
 .../misc/settings/SettingsResourcePatch.kt    |    8 +-
 .../LicenseActivityFingerprint.kt             |    2 +-
 .../fingerprints/SetThemeFingerprint.kt       |    2 +-
 .../fingerprints/ZoomHapticsFingerprint.kt    |    2 +-
 .../LayoutConstructorFingerprint.kt           |    2 +-
 ...umberTextViewAnimationUpdateFingerprint.kt |    2 +-
 .../shared/fingerprints/SeekbarFingerprint.kt |    2 +-
 .../fingerprints/SeekbarOnDrawFingerprint.kt  |    2 +-
 .../WatchWhileActivityFingerprint.kt          |    2 +-
 .../fingerprints/HDRBrightnessFingerprint.kt  |    2 +-
 .../information/VideoInformationPatch.kt      |    2 +-
 .../CreateVideoPlayerSeekbarFingerprint.kt    |    2 +-
 .../OnPlaybackSpeedItemClickFingerprint.kt    |    2 +-
 ...erControllerSetTimeReferenceFingerprint.kt |    2 +-
 .../fingerprints/PlayerInitFingerprint.kt     |    2 +-
 .../fingerprints/SeekFingerprint.kt           |    2 +-
 .../fingerprints/VideoLengthFingerprint.kt    |    2 +-
 .../PlayerResponseMethodHookPatch.kt          |    2 +-
 .../PlayerParameterBuilderFingerprint.kt      |    2 +-
 .../quality/RememberVideoQualityPatch.kt      |    2 +-
 .../NewVideoQualityChangedFingerprint.kt      |    2 +-
 ...dexMethodClassFieldReferenceFingerprint.kt |    2 +-
 ...ideoQualityItemOnClickParentFingerprint.kt |    2 +-
 .../VideoQualitySetterFingerprint.kt          |    2 +-
 .../speed/custom/CustomPlaybackSpeedPatch.kt  |    2 +-
 .../GetOldPlaybackSpeedsFingerprint.kt        |    2 +-
 .../ShowOldPlaybackSpeedMenuFingerprint.kt    |    2 +-
 ...laybackSpeedMenuIntegrationsFingerprint.kt |    2 +-
 .../SpeedArrayGeneratorFingerprint.kt         |    2 +-
 .../fingerprints/SpeedLimiterFingerprint.kt   |    2 +-
 .../remember/RememberPlaybackSpeedPatch.kt    |    4 +-
 ...nitializePlaybackSpeedValuesFingerprint.kt |    2 +-
 .../youtube/video/videoid/VideoIdPatch.kt     |    2 +-
 .../videoid/fingerprint/VideoIdFingerprint.kt |    2 +-
 .../VideoIdFingerprintBackgroundPlay.kt       |    2 +-
 .../VideoQualityMenuViewInflateFingerprint.kt |    2 +-
 .../youtubevanced/ad/general/HideAdsPatch.kt  |    2 +-
 .../fingerprints/ContainsAdFingerprint.kt     |    2 +-
 .../fingerprints/IsPremiumFingerprint.kt      |    2 +-
 .../YukaUserConstructorFingerprint.kt         |    2 +-
 .../Extensions.kt => util/BytecodeUtils.kt}   |   50 +-
 .../kotlin/app/revanced/util/ResourceUtils.kt |  108 ++
 src/main/kotlin/app/revanced/util/Utils.kt    |   32 -
 .../util/microg/MicroGBytecodeHelper.kt       |    2 +-
 .../util/microg/MicroGResourceHelper.kt       |    2 +-
 .../util/patch/LiteralValueFingerprint.kt     |   12 +-
 .../revanced/util/resources/ResourceUtils.kt  |  102 -
 500 files changed, 2369 insertions(+), 719 deletions(-)
 create mode 100644 api/revanced-patches.api
 rename src/main/kotlin/app/revanced/{util/patch => patches/all/misc/transformation}/AbstractTransformInstructionsPatch.kt (79%)
 rename src/main/kotlin/app/revanced/{util/patch => patches/all/misc/transformation}/MethodCall.kt (98%)
 create mode 100644 src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/AbstractClientIdFingerprint.kt
 create mode 100644 src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/GetHttpBasicAuthHeaderFingerprint.kt
 create mode 100644 src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt
 rename src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/{MainActivityOnCreate.kt => MainActivityOnCreateFingerprint.kt} (80%)
 rename src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/{PlayerResponseModelImplRecommendedLevel.kt => PlayerResponseModelImplRecommendedLevelFingerprint.kt} (82%)
 rename src/main/kotlin/app/revanced/{extensions/Extensions.kt => util/BytecodeUtils.kt} (72%)
 create mode 100644 src/main/kotlin/app/revanced/util/ResourceUtils.kt
 delete mode 100644 src/main/kotlin/app/revanced/util/Utils.kt
 delete mode 100644 src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt

diff --git a/api/revanced-patches.api b/api/revanced-patches.api
new file mode 100644
index 0000000000..3d72f40d18
--- /dev/null
+++ b/api/revanced-patches.api
@@ -0,0 +1,1639 @@
+public final class app/revanced/patches/all/activity/exportall/ExportAllActivitiesPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/activity/exportall/ExportAllActivitiesPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/all/connectivity/wifi/spoof/SpoofWifiPatch : app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/connectivity/wifi/spoof/SpoofWifiPatch;
+	public synthetic fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object;
+	public fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Lkotlin/Triple;
+	public synthetic fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V
+	public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Triple;)V
+}
+
+public final class app/revanced/patches/all/interaction/gestures/PredictiveBackGesturePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/interaction/gestures/PredictiveBackGesturePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/all/misc/debugging/EnableAndroidDebuggingPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/misc/debugging/EnableAndroidDebuggingPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/all/misc/network/OverrideCertificatePinningPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/misc/network/OverrideCertificatePinningPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/all/misc/packagename/ChangePackageNamePatch : app/revanced/patcher/patch/ResourcePatch, java/io/Closeable {
+	public static final field INSTANCE Lapp/revanced/patches/all/misc/packagename/ChangePackageNamePatch;
+	public fun close ()V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+	public final fun setOrGetFallbackPackageName (Ljava/lang/String;)Ljava/lang/String;
+}
+
+public abstract class app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public fun <init> ()V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public abstract fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object;
+	public final fun findPatchIndices (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;)Lkotlin/sequences/Sequence;
+	public abstract fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V
+}
+
+public abstract interface class app/revanced/patches/all/misc/transformation/IMethodCall {
+	public abstract fun getDefinedClassName ()Ljava/lang/String;
+	public abstract fun getMethodName ()Ljava/lang/String;
+	public abstract fun getMethodParams ()[Ljava/lang/String;
+	public abstract fun getReturnType ()Ljava/lang/String;
+	public abstract fun replaceInvokeVirtualWithIntegrations (Ljava/lang/String;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lcom/android/tools/smali/dexlib2/iface/instruction/formats/Instruction35c;I)V
+}
+
+public final class app/revanced/patches/all/misc/transformation/IMethodCall$DefaultImpls {
+	public static fun replaceInvokeVirtualWithIntegrations (Lapp/revanced/patches/all/misc/transformation/IMethodCall;Ljava/lang/String;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lcom/android/tools/smali/dexlib2/iface/instruction/formats/Instruction35c;I)V
+}
+
+public final class app/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch : app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch;
+	public synthetic fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object;
+	public fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Lkotlin/Triple;
+	public synthetic fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V
+	public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Triple;)V
+}
+
+public final class app/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch$MethodCall : java/lang/Enum, app/revanced/patches/all/misc/transformation/IMethodCall {
+	public static final field SetAllowedCapturePolicyGlobal Lapp/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch$MethodCall;
+	public static final field SetAllowedCapturePolicySingle Lapp/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch$MethodCall;
+	public fun getDefinedClassName ()Ljava/lang/String;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public fun getMethodName ()Ljava/lang/String;
+	public fun getMethodParams ()[Ljava/lang/String;
+	public fun getReturnType ()Ljava/lang/String;
+	public fun replaceInvokeVirtualWithIntegrations (Ljava/lang/String;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lcom/android/tools/smali/dexlib2/iface/instruction/formats/Instruction35c;I)V
+	public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch$MethodCall;
+	public static fun values ()[Lapp/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch$MethodCall;
+}
+
+public final class app/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch : app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public synthetic fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object;
+	public fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Lkotlin/Triple;
+	public synthetic fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V
+	public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Triple;)V
+}
+
+public final class app/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch$MethodCall : java/lang/Enum, app/revanced/patches/all/misc/transformation/IMethodCall {
+	public static final field AddFlags Lapp/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch$MethodCall;
+	public static final field SetFlags Lapp/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch$MethodCall;
+	public fun getDefinedClassName ()Ljava/lang/String;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public fun getMethodName ()Ljava/lang/String;
+	public fun getMethodParams ()[Ljava/lang/String;
+	public fun getReturnType ()Ljava/lang/String;
+	public fun replaceInvokeVirtualWithIntegrations (Ljava/lang/String;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lcom/android/tools/smali/dexlib2/iface/instruction/formats/Instruction35c;I)V
+	public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch$MethodCall;
+	public static fun values ()[Lapp/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch$MethodCall;
+}
+
+public final class app/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryPatch : app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryPatch;
+	public synthetic fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object;
+	public fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Lkotlin/Pair;
+	public synthetic fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V
+	public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Pair;)V
+}
+
+public final class app/revanced/patches/backdrops/misc/pro/ProUnlockPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/backdrops/misc/pro/ProUnlockPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/candylinkvpn/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/candylinkvpn/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/cieid/restrictions/root/BypassRootChecksPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/cieid/restrictions/root/BypassRootChecksPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/facebook/ads/story/HideStoryAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/facebook/ads/story/HideStoryAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/finanzonline/detection/bootloader/BootloaderDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/finanzonline/detection/bootloader/BootloaderDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/finanzonline/detection/root/RootDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/finanzonline/detection/root/RootDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/hexeditor/ad/DisableAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/hexeditor/ad/DisableAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/iconpackstudio/misc/pro/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/iconpackstudio/misc/pro/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/idaustria/detection/root/RootDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/idaustria/detection/root/RootDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/idaustria/detection/signature/SpoofSignaturePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/idaustria/detection/signature/SpoofSignaturePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/inshorts/ad/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/inshorts/ad/HideAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/instagram/patches/ads/timeline/HideTimelineAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/instagram/patches/ads/timeline/HideTimelineAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/irplus/ad/RemoveAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/irplus/ad/RemoveAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/lightroom/misc/premium/UnlockPremiumPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/lightroom/misc/premium/UnlockPremiumPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/memegenerator/detection/license/LicenseValidationPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/memegenerator/detection/license/LicenseValidationPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/memegenerator/detection/signature/SignatureVerificationPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/memegenerator/detection/signature/SignatureVerificationPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/memegenerator/misc/pro/UnlockProVersionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/memegenerator/misc/pro/UnlockProVersionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/moneymanager/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/moneymanager/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/ad/video/MusicVideoAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/ad/video/MusicVideoAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/audio/codecs/CodecsUnlockPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/audio/codecs/CodecsUnlockPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/audio/exclusiveaudio/ExclusiveAudioPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/audio/exclusiveaudio/ExclusiveAudioPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/interaction/permanentshuffle/PermanentShuffleTogglePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/interaction/permanentshuffle/PermanentShuffleTogglePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/layout/compactheader/CompactHeaderPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/layout/compactheader/CompactHeaderPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/layout/minimizedplayback/MinimizedPlaybackPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/layout/minimizedplayback/MinimizedPlaybackPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/layout/premium/HideGetPremiumPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/layout/premium/HideGetPremiumPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/layout/upgradebutton/RemoveUpgradeButtonPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/layout/upgradebutton/RemoveUpgradeButtonPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/misc/androidauto/BypassCertificateChecksPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/misc/androidauto/BypassCertificateChecksPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/misc/microg/MicroGBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/misc/microg/MicroGBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/music/misc/microg/MicroGResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/misc/microg/MicroGResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/music/misc/microg/shared/Constants {
+	public static final field INSTANCE Lapp/revanced/patches/music/misc/microg/shared/Constants;
+}
+
+public final class app/revanced/patches/music/premium/backgroundplay/BackgroundPlayPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/music/premium/backgroundplay/BackgroundPlayPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/myexpenses/misc/pro/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/myexpenses/misc/pro/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/netguard/broadcasts/removerestriction/RemoveBroadcastsRestrictionPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/netguard/broadcasts/removerestriction/RemoveBroadcastsRestrictionPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/nfctoolsse/misc/pro/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/nfctoolsse/misc/pro/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/nyx/misc/pro/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/nyx/misc/pro/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/photomath/detection/deviceid/SpoofDeviceIdPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/photomath/detection/deviceid/SpoofDeviceIdPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/photomath/detection/signature/SignatureDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/photomath/detection/signature/SignatureDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/photomath/misc/unlockplus/UnlockPlusPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/photomath/misc/unlockplus/UnlockPlusPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/pixiv/ads/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/pixiv/ads/HideAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/ad/banner/HideBannerPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/ad/banner/HideBannerPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/reddit/ad/comments/HideCommentAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/ad/comments/HideCommentAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/ad/general/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/ad/general/HideAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public abstract class app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch : app/revanced/patcher/patch/BytecodePatch {
+	public fun <init> (Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public final fun getClientId ()Ljava/lang/String;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchMiscellaneous (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchUserAgent (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public final fun setClientId (Ljava/lang/String;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/Constants {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/Constants;
+	public static final field OAUTH_USER_AGENT Ljava/lang/String;
+}
+
+public final class app/revanced/patches/reddit/customclients/baconreader/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/baconreader/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/boostforreddit/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchUserAgent (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/infinityforreddit/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/infinityforreddit/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/infinityforreddit/subscription/UnlockSubscriptionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/infinityforreddit/subscription/UnlockSubscriptionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/joeyforreddit/ads/DisableAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/joeyforreddit/ads/DisableAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/joeyforreddit/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/joeyforreddit/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/DisablePiracyDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/DisablePiracyDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/redditisfun/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/redditisfun/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchUserAgent (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/relayforreddit/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/relayforreddit/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchMiscellaneous (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/slide/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/slide/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/syncforreddit/ads/DisableAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/syncforreddit/ads/DisableAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/DisableSyncForLemmyBottomSheetPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/DisableSyncForLemmyBottomSheetPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/syncforreddit/api/SpoofClientPatch : app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/syncforreddit/api/SpoofClientPatch;
+	public fun patchClientId (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchMiscellaneous (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+	public fun patchUserAgent (Ljava/util/Set;Lapp/revanced/patcher/data/BytecodeContext;)V
+}
+
+public final class app/revanced/patches/reddit/customclients/syncforreddit/detection/piracy/DisablePiracyDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/customclients/syncforreddit/detection/piracy/DisablePiracyDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/layout/disablescreenshotpopup/DisableScreenshotPopupPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/layout/disablescreenshotpopup/DisableScreenshotPopupPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/layout/premiumicon/UnlockPremiumIconPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/layout/premiumicon/UnlockPremiumIconPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/scbeasy/detection/debugging/RemoveDebuggingDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/scbeasy/detection/debugging/RemoveDebuggingDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/serviceportalbund/detection/root/RootDetectionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/serviceportalbund/detection/root/RootDetectionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public abstract class app/revanced/patches/shared/integrations/AbstractIntegrationsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public fun <init> (Ljava/lang/String;Ljava/util/Set;)V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public abstract class app/revanced/patches/shared/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint {
+	public fun <init> ()V
+	public fun <init> (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun invoke (Ljava/lang/String;)V
+}
+
+public abstract interface class app/revanced/patches/shared/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint$RegisterResolver : kotlin/jvm/functions/Function1 {
+	public abstract fun invoke (Lcom/android/tools/smali/dexlib2/iface/Method;)Ljava/lang/Integer;
+}
+
+public final class app/revanced/patches/shared/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint$RegisterResolver$DefaultImpls {
+	public static fun invoke (Lapp/revanced/patches/shared/integrations/AbstractIntegrationsPatch$IntegrationsFingerprint$RegisterResolver;Lcom/android/tools/smali/dexlib2/iface/Method;)Ljava/lang/Integer;
+}
+
+public final class app/revanced/patches/shared/mapping/misc/ResourceMappingPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/shared/mapping/misc/ResourceMappingPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/shared/mapping/misc/ResourceMappingPatch$ResourceElement {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;J)V
+	public final fun component1 ()Ljava/lang/String;
+	public final fun component2 ()Ljava/lang/String;
+	public final fun component3 ()J
+	public final fun copy (Ljava/lang/String;Ljava/lang/String;J)Lapp/revanced/patches/shared/mapping/misc/ResourceMappingPatch$ResourceElement;
+	public static synthetic fun copy$default (Lapp/revanced/patches/shared/mapping/misc/ResourceMappingPatch$ResourceElement;Ljava/lang/String;Ljava/lang/String;JILjava/lang/Object;)Lapp/revanced/patches/shared/mapping/misc/ResourceMappingPatch$ResourceElement;
+	public fun equals (Ljava/lang/Object;)Z
+	public final fun getId ()J
+	public final fun getName ()Ljava/lang/String;
+	public final fun getType ()Ljava/lang/String;
+	public fun hashCode ()I
+	public fun toString ()Ljava/lang/String;
+}
+
+public final class app/revanced/patches/shared/misc/fix/verticalscroll/VerticalScrollPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/shared/misc/fix/verticalscroll/VerticalScrollPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public abstract class app/revanced/patches/shared/settings/AbstractSettingsResourcePatch : app/revanced/patcher/patch/ResourcePatch, java/io/Closeable {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+	public fun close ()V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public abstract class app/revanced/patches/shared/settings/preference/BasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/lang/String;)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getKey ()Ljava/lang/String;
+	public final fun getSummary ()Lapp/revanced/patches/shared/settings/preference/impl/StringResource;
+	public final fun getTag ()Ljava/lang/String;
+	public final fun getTitle ()Lapp/revanced/patches/shared/settings/preference/impl/StringResource;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public abstract class app/revanced/patches/shared/settings/preference/BaseResource {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;)V
+	public final fun getName ()Ljava/lang/String;
+	public final fun getTag ()Ljava/lang/String;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+	public static synthetic fun serialize$default (Lapp/revanced/patches/shared/settings/preference/BaseResource;Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/w3c/dom/Element;
+}
+
+public abstract class app/revanced/patches/shared/settings/preference/DefaultBasePreference : app/revanced/patches/shared/settings/preference/BasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/lang/String;Ljava/lang/Object;)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/lang/String;Ljava/lang/Object;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getDefault ()Ljava/lang/Object;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/SummaryType : java/lang/Enum {
+	public static final field DEFAULT Lapp/revanced/patches/shared/settings/preference/SummaryType;
+	public static final field OFF Lapp/revanced/patches/shared/settings/preference/SummaryType;
+	public static final field ON Lapp/revanced/patches/shared/settings/preference/SummaryType;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public final fun getType ()Ljava/lang/String;
+	public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/shared/settings/preference/SummaryType;
+	public static fun values ()[Lapp/revanced/patches/shared/settings/preference/SummaryType;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/ArrayResource : app/revanced/patches/shared/settings/preference/BaseResource {
+	public fun <init> (Ljava/lang/String;Ljava/util/List;)V
+	public final fun getItems ()Ljava/util/List;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/InputType : java/lang/Enum {
+	public static final field NUMBER Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+	public static final field TEXT Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+	public static final field TEXT_CAP_CHARACTERS Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+	public static final field TEXT_MULTI_LINE Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+	public static fun getEntries ()Lkotlin/enums/EnumEntries;
+	public final fun getType ()Ljava/lang/String;
+	public static fun valueOf (Ljava/lang/String;)Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+	public static fun values ()[Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/ListPreference : app/revanced/patches/shared/settings/preference/DefaultBasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/lang/String;)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getEntries ()Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;
+	public final fun getEntryValues ()Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/NonInteractivePreference : app/revanced/patches/shared/settings/preference/BasePreference {
+	public fun <init> (Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;)V
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/Preference : app/revanced/patches/shared/settings/preference/BasePreference {
+	public fun <init> (Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/Preference$Intent;)V
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/Preference$Intent;)V
+	public final fun getIntent ()Lapp/revanced/patches/shared/settings/preference/impl/Preference$Intent;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/Preference$Intent {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+}
+
+public class app/revanced/patches/shared/settings/preference/impl/PreferenceCategory : app/revanced/patches/shared/settings/preference/BasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/util/List;Ljava/lang/String;)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getPreferences ()Ljava/util/List;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+	public final fun setPreferences (Ljava/util/List;)V
+}
+
+public class app/revanced/patches/shared/settings/preference/impl/PreferenceScreen : app/revanced/patches/shared/settings/preference/BasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/util/List;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Ljava/util/List;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getPreferences ()Ljava/util/List;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+	public final fun setPreferences (Ljava/util/List;)V
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/StringResource : app/revanced/patches/shared/settings/preference/BaseResource {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;Z)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getFormatted ()Z
+	public final fun getValue ()Ljava/lang/String;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/SwitchPreference : app/revanced/patches/shared/settings/preference/DefaultBasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Z)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getSummaryOff ()Lapp/revanced/patches/shared/settings/preference/impl/StringResource;
+	public final fun getSummaryOn ()Lapp/revanced/patches/shared/settings/preference/impl/StringResource;
+	public final fun getUserDialogMessage ()Lapp/revanced/patches/shared/settings/preference/impl/StringResource;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public final class app/revanced/patches/shared/settings/preference/impl/TextPreference : app/revanced/patches/shared/settings/preference/DefaultBasePreference {
+	public fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/InputType;Ljava/lang/String;Ljava/lang/String;)V
+	public synthetic fun <init> (Ljava/lang/String;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/StringResource;Lapp/revanced/patches/shared/settings/preference/impl/InputType;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getInputType ()Lapp/revanced/patches/shared/settings/preference/impl/InputType;
+	public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
+}
+
+public abstract class app/revanced/patches/shared/settings/util/AbstractPreferenceScreen : java/io/Closeable {
+	public fun <init> ()V
+	public fun <init> (Ljava/util/List;)V
+	public synthetic fun <init> (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public fun close ()V
+	public abstract fun commit (Lapp/revanced/patches/shared/settings/preference/impl/PreferenceScreen;)V
+}
+
+public abstract class app/revanced/patches/shared/settings/util/AbstractPreferenceScreen$BasePreferenceCollection {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun getKey ()Ljava/lang/String;
+	public final fun getPreferences ()Ljava/util/List;
+	public final fun getTitle ()Ljava/lang/String;
+	public abstract fun transform ()Lapp/revanced/patches/shared/settings/preference/BasePreference;
+}
+
+public class app/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen : app/revanced/patches/shared/settings/util/AbstractPreferenceScreen$BasePreferenceCollection {
+	public fun <init> (Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
+	public synthetic fun <init> (Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun addPreferences ([Lapp/revanced/patches/shared/settings/preference/BasePreference;)V
+	public final fun getCategories ()Ljava/util/List;
+	public final fun getSummary ()Ljava/lang/String;
+	public synthetic fun transform ()Lapp/revanced/patches/shared/settings/preference/BasePreference;
+	public fun transform ()Lapp/revanced/patches/shared/settings/preference/impl/PreferenceScreen;
+}
+
+public class app/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen$Category : app/revanced/patches/shared/settings/util/AbstractPreferenceScreen$BasePreferenceCollection {
+	public fun <init> (Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+	public synthetic fun <init> (Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun addPreferences ([Lapp/revanced/patches/shared/settings/preference/BasePreference;)V
+	public synthetic fun transform ()Lapp/revanced/patches/shared/settings/preference/BasePreference;
+	public fun transform ()Lapp/revanced/patches/shared/settings/preference/impl/PreferenceCategory;
+}
+
+public final class app/revanced/patches/solidexplorer2/functionality/filesize/RemoveFileSizeLimitPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/solidexplorer2/functionality/filesize/RemoveFileSizeLimitPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/songpal/badge/BadgeTabPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field ACTIVITY_TAB_DESCRIPTOR Ljava/lang/String;
+	public static final field INSTANCE Lapp/revanced/patches/songpal/badge/BadgeTabPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/songpal/badge/RemoveNotificationBadgePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/songpal/badge/RemoveNotificationBadgePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/spotify/layout/theme/CustomThemePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/spotify/layout/theme/CustomThemePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/spotify/lite/ondemand/OnDemandPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/spotify/lite/ondemand/OnDemandPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/spotify/navbar/PremiumNavbarTabPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/spotify/navbar/PremiumNavbarTabPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/spotify/navbar/PremiumNavbarTabResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/spotify/navbar/PremiumNavbarTabResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/strava/subscription/UnlockSubscriptionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/strava/subscription/UnlockSubscriptionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/strava/upselling/DisableSubscriptionSuggestionsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/strava/upselling/DisableSubscriptionSuggestionsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/ticktick/misc/themeunlock/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/ticktick/misc/themeunlock/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/ad/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/ad/HideAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/feedfilter/FeedFilterPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/feedfilter/FeedFilterPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/interaction/downloads/DownloadsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/interaction/downloads/DownloadsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/interaction/seekbar/ShowSeekbarPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/interaction/seekbar/ShowSeekbarPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/interaction/speed/PlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/interaction/speed/PlaybackSpeedPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/misc/integrations/IntegrationsPatch : app/revanced/patches/shared/integrations/AbstractIntegrationsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/misc/integrations/IntegrationsPatch;
+}
+
+public final class app/revanced/patches/tiktok/misc/login/disablerequirement/DisableLoginRequirementPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/misc/login/disablerequirement/DisableLoginRequirementPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/misc/login/fixgoogle/FixGoogleLoginPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/misc/login/fixgoogle/FixGoogleLoginPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/misc/settings/SettingsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/misc/settings/SettingsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/trakt/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/trakt/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tudortmund/lockscreen/patch/ShowOnLockscreenPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tudortmund/lockscreen/patch/ShowOnLockscreenPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/ads/DisableDashboardAds : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/ads/DisableDashboardAds;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/annoyances/inappupdate/DisableInAppUpdatePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/annoyances/inappupdate/DisableInAppUpdatePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/annoyances/notifications/DisableBlogNotificationReminderPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/annoyances/notifications/DisableBlogNotificationReminderPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/annoyances/popups/DisableGiftMessagePopupPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/annoyances/popups/DisableGiftMessagePopupPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/featureflags/OverrideFeatureFlagsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/featureflags/OverrideFeatureFlagsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/live/DisableTumblrLivePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/live/DisableTumblrLivePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/tumblr/timelinefilter/TimelineFilterPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/tumblr/timelinefilter/TimelineFilterPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/ad/audio/AudioAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/ad/audio/AudioAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public abstract class app/revanced/patches/twitch/ad/shared/util/AbstractAdPatch : app/revanced/patcher/patch/BytecodePatch {
+	public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	protected final fun blockMethods (Lapp/revanced/patcher/data/BytecodeContext;Ljava/lang/String;[Ljava/lang/String;Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch$ReturnMethod;)Z
+	public static synthetic fun blockMethods$default (Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch;Lapp/revanced/patcher/data/BytecodeContext;Ljava/lang/String;[Ljava/lang/String;Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch$ReturnMethod;ILjava/lang/Object;)Z
+	protected final fun createConditionInstructions (Ljava/lang/String;)Ljava/lang/String;
+	public static synthetic fun createConditionInstructions$default (Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
+	public final fun getConditionCall ()Ljava/lang/String;
+	public final fun getSkipLabelName ()Ljava/lang/String;
+}
+
+protected final class app/revanced/patches/twitch/ad/shared/util/AbstractAdPatch$ReturnMethod {
+	public fun <init> ()V
+	public fun <init> (CLjava/lang/String;)V
+	public synthetic fun <init> (CLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+	public final fun component1 ()C
+	public final fun component2 ()Ljava/lang/String;
+	public final fun copy (CLjava/lang/String;)Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch$ReturnMethod;
+	public static synthetic fun copy$default (Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch$ReturnMethod;CLjava/lang/String;ILjava/lang/Object;)Lapp/revanced/patches/twitch/ad/shared/util/AbstractAdPatch$ReturnMethod;
+	public fun equals (Ljava/lang/Object;)Z
+	public final fun getReturnType ()C
+	public final fun getValue ()Ljava/lang/String;
+	public fun hashCode ()I
+	public fun toString ()Ljava/lang/String;
+}
+
+public final class app/revanced/patches/twitch/ad/video/VideoAdsPatch : app/revanced/patches/twitch/ad/shared/util/AbstractAdPatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/ad/video/VideoAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/debug/DebugModePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/debug/DebugModePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/misc/integrations/IntegrationsPatch : app/revanced/patches/shared/integrations/AbstractIntegrationsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/misc/integrations/IntegrationsPatch;
+}
+
+public final class app/revanced/patches/twitch/misc/settings/SettingsPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/misc/settings/SettingsPatch;
+	public final fun addPreferenceScreen (Lapp/revanced/patches/shared/settings/preference/impl/PreferenceScreen;)V
+	public final fun addString (Ljava/lang/String;Ljava/lang/String;Z)V
+	public static synthetic fun addString$default (Lapp/revanced/patches/twitch/misc/settings/SettingsPatch;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)V
+	public fun close ()V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitch/misc/settings/SettingsResourcePatch : app/revanced/patches/shared/settings/AbstractSettingsResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitch/misc/settings/SettingsResourcePatch;
+	public final fun addArray (Lapp/revanced/patches/shared/settings/preference/impl/ArrayResource;)V
+	public final fun addPreferenceScreen (Lapp/revanced/patches/shared/settings/preference/impl/PreferenceScreen;)V
+	public final fun addString (Ljava/lang/String;Ljava/lang/String;Z)V
+}
+
+public final class app/revanced/patches/twitter/misc/dynamiccolor/DynamicColorPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitter/misc/dynamiccolor/DynamicColorPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/twitter/misc/hook/json/JsonHookPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable {
+	public static final field INSTANCE Lapp/revanced/patches/twitter/misc/hook/json/JsonHookPatch;
+	public fun close ()V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public abstract class app/revanced/patches/twitter/misc/hook/patch/BaseHookPatchPatch : app/revanced/patcher/patch/BytecodePatch {
+	public fun <init> (Ljava/lang/String;)V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/twitter/misc/hook/patch/ads/HideAdsPatch : app/revanced/patches/twitter/misc/hook/patch/BaseHookPatchPatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitter/misc/hook/patch/ads/HideAdsPatch;
+}
+
+public final class app/revanced/patches/twitter/misc/hook/patch/recommendation/HideRecommendedUsersPatch : app/revanced/patches/twitter/misc/hook/patch/BaseHookPatchPatch {
+	public static final field INSTANCE Lapp/revanced/patches/twitter/misc/hook/patch/recommendation/HideRecommendedUsersPatch;
+}
+
+public final class app/revanced/patches/vsco/misc/pro/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/vsco/misc/pro/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/warnwetter/misc/firebasegetcert/FirebaseGetCertPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/warnwetter/misc/firebasegetcert/FirebaseGetCertPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/warnwetter/misc/promocode/PromoCodeUnlockPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/warnwetter/misc/promocode/PromoCodeUnlockPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/windyapp/misc/unlockpro/UnlockProPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/windyapp/misc/unlockpro/UnlockProPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/ad/general/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/ad/general/HideAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/ad/general/HideAdsResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/ad/general/HideAdsResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/ad/video/VideoAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/ad/video/VideoAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/interaction/downloads/ExternalDownloadsBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/downloads/ExternalDownloadsBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/branding/CustomBrandingPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/branding/CustomBrandingPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/branding/header/PremiumHeadingPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/branding/header/PremiumHeadingPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/buttons/autoplay/HideAutoplayButtonPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/buttons/autoplay/HideAutoplayButtonPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/buttons/captions/HideCaptionsButtonPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/buttons/captions/HideCaptionsButtonPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/buttons/cast/HideCastButtonPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/buttons/cast/HideCastButtonPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/buttons/player/hide/HidePlayerButtonsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/buttons/player/hide/HidePlayerButtonsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/comments/CommentsPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/comments/CommentsPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/infocards/HideInfocardsResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/infocards/HideInfocardsResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/seekbar/HideSeekbarPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/seekbar/HideSeekbarPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/hide/time/HideTimestampPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/seekbar/RestoreOldSeekbarThumbnailsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/seekbar/RestoreOldSeekbarThumbnailsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/tabletminiplayer/TabletMiniPlayerPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/tabletminiplayer/TabletMiniPlayerPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public final fun unwrap (Lapp/revanced/patcher/fingerprint/MethodFingerprint;)Lkotlin/Triple;
+}
+
+public final class app/revanced/patches/youtube/layout/theme/ThemeBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/theme/ThemeBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch;
+	public final fun addImageUrlErrorCallbackHook (Ljava/lang/String;)V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/announcements/AnnouncementsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/autorepeat/AutoRepeatPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/autorepeat/AutoRepeatPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/debugging/DebuggingPatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/debugging/DebuggingPatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/fix/playback/ClientSpoofPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/fix/playback/ClientSpoofPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/fix/playback/SpoofSignaturePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/fix/playback/SpoofSignaturePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/fix/playback/SpoofSignatureResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/fix/playback/SpoofSignatureResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/misc/integrations/IntegrationsPatch : app/revanced/patches/shared/integrations/AbstractIntegrationsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/integrations/IntegrationsPatch;
+}
+
+public final class app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch : app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public synthetic fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Ljava/lang/Object;
+	public fun filterMap (Lcom/android/tools/smali/dexlib2/iface/ClassDef;Lcom/android/tools/smali/dexlib2/iface/Method;Lcom/android/tools/smali/dexlib2/iface/instruction/Instruction;I)Lkotlin/Pair;
+	public synthetic fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Ljava/lang/Object;)V
+	public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Pair;)V
+}
+
+public final class app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch;
+	public fun close ()V
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/microg/MicroGBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/microg/MicroGBytecodePatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/microg/MicroGResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/microg/MicroGResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/playercontrols/BottomControlsResourcePatch : app/revanced/patcher/patch/ResourcePatch, java/io/Closeable {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/playercontrols/BottomControlsResourcePatch;
+	public fun close ()V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch;
+	public static field showPlayerControlsFingerprintResult Lapp/revanced/patcher/fingerprint/MethodFingerprintResult;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public final fun getShowPlayerControlsFingerprintResult ()Lapp/revanced/patcher/fingerprint/MethodFingerprintResult;
+	public final fun initializeControl (Ljava/lang/String;)V
+	public final fun injectVisibilityCheckCall (Ljava/lang/String;)V
+	public final fun setShowPlayerControlsFingerprintResult (Lapp/revanced/patcher/fingerprint/MethodFingerprintResult;)V
+}
+
+public final class app/revanced/patches/youtube/misc/playeroverlay/PlayerOverlaysHookPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/playeroverlay/PlayerOverlaysHookPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/playertype/PlayerTypeHookPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/playertype/PlayerTypeHookPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/misc/settings/SettingsPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/settings/SettingsPatch;
+	public final fun addPreference (Lapp/revanced/patches/shared/settings/preference/impl/Preference;)V
+	public final fun addPreferenceScreen (Lapp/revanced/patches/shared/settings/preference/impl/PreferenceScreen;)V
+	public final fun addString (Ljava/lang/String;Ljava/lang/String;Z)V
+	public static synthetic fun addString$default (Lapp/revanced/patches/youtube/misc/settings/SettingsPatch;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)V
+	public fun close ()V
+	public final fun createReVancedSettingsIntent (Ljava/lang/String;)Lapp/revanced/patches/shared/settings/preference/impl/Preference$Intent;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public final fun renameIntentsTargetPackage (Ljava/lang/String;)V
+}
+
+public final class app/revanced/patches/youtube/misc/settings/SettingsPatch$PreferenceScreen : app/revanced/patches/shared/settings/util/AbstractPreferenceScreen {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/settings/SettingsPatch$PreferenceScreen;
+	public fun commit (Lapp/revanced/patches/shared/settings/preference/impl/PreferenceScreen;)V
+	public final fun getADS ()Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;
+	public final fun getINTERACTIONS ()Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;
+	public final fun getLAYOUT ()Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;
+	public final fun getMISC ()Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;
+	public final fun getVIDEO ()Lapp/revanced/patches/shared/settings/util/AbstractPreferenceScreen$Screen;
+}
+
+public final class app/revanced/patches/youtube/misc/settings/SettingsResourcePatch : app/revanced/patches/shared/settings/AbstractSettingsResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/settings/SettingsResourcePatch;
+	public fun close ()V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/misc/zoomhaptics/ZoomHapticsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/hdrbrightness/HDRBrightnessPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/hdrbrightness/HDRBrightnessPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/information/VideoInformationPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/information/VideoInformationPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch : app/revanced/patcher/patch/BytecodePatch, java/io/Closeable, java/util/Set, kotlin/jvm/internal/markers/KMutableSet {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch;
+	public fun add (Lapp/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch$Hook;)Z
+	public synthetic fun add (Ljava/lang/Object;)Z
+	public fun addAll (Ljava/util/Collection;)Z
+	public fun clear ()V
+	public fun close ()V
+	public fun contains (Lapp/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch$Hook;)Z
+	public final fun contains (Ljava/lang/Object;)Z
+	public fun containsAll (Ljava/util/Collection;)Z
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun getSize ()I
+	public fun isEmpty ()Z
+	public fun iterator ()Ljava/util/Iterator;
+	public fun remove (Lapp/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch$Hook;)Z
+	public final fun remove (Ljava/lang/Object;)Z
+	public fun removeAll (Ljava/util/Collection;)Z
+	public fun retainAll (Ljava/util/Collection;)Z
+	public final fun size ()I
+	public fun toArray ()[Ljava/lang/Object;
+	public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
+}
+
+public final class app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/quality/RememberVideoQualityPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/PlaybackSpeedPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/videoid/VideoIdPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/videoid/VideoIdPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public final fun hookBackgroundPlayVideoId (Ljava/lang/String;)V
+	public final fun hookPlayerResponseVideoId (Ljava/lang/String;)V
+	public final fun hookVideoId (Ljava/lang/String;)V
+}
+
+public final class app/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuResourcePatch : app/revanced/patcher/patch/ResourcePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtube/video/videoqualitymenu/RestoreOldVideoQualityMenuResourcePatch;
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+	public fun execute (Lapp/revanced/patcher/data/ResourceContext;)V
+}
+
+public final class app/revanced/patches/youtubevanced/ad/general/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/youtubevanced/ad/general/HideAdsPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/patches/yuka/misc/unlockpremium/UnlockPremiumPatch : app/revanced/patcher/patch/BytecodePatch {
+	public static final field INSTANCE Lapp/revanced/patches/yuka/misc/unlockpremium/UnlockPremiumPatch;
+	public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
+	public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
+}
+
+public final class app/revanced/util/BytecodeUtilsKt {
+	public static final fun containsWideLiteralInstructionValue (Lcom/android/tools/smali/dexlib2/iface/Method;J)Z
+	public static final fun findIndexForIdResource (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I
+	public static final fun findMutableMethodOf (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lcom/android/tools/smali/dexlib2/iface/Method;)Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;
+	public static final fun getException (Lapp/revanced/patcher/fingerprint/MethodFingerprint;)Lapp/revanced/patcher/patch/PatchException;
+	public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;Lkotlin/jvm/functions/Function1;)I
+	public static final fun indexOfFirstWideLiteralInstructionValue (Lcom/android/tools/smali/dexlib2/iface/Method;J)I
+	public static final fun injectHideViewCall (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;IILjava/lang/String;Ljava/lang/String;)V
+	public static final fun returnEarly (Ljava/util/List;Z)V
+	public static synthetic fun returnEarly$default (Ljava/util/List;ZILjava/lang/Object;)V
+	public static final fun transformMethods (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V
+	public static final fun traverseClassHierarchy (Lapp/revanced/patcher/data/BytecodeContext;Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lkotlin/jvm/functions/Function1;)V
+}
+
+public final class app/revanced/util/ResourceGroup {
+	public fun <init> (Ljava/lang/String;[Ljava/lang/String;)V
+	public final fun getResourceDirectoryName ()Ljava/lang/String;
+	public final fun getResources ()[Ljava/lang/String;
+}
+
+public final class app/revanced/util/ResourceUtilsKt {
+	public static final fun copyResources (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;[Lapp/revanced/util/ResourceGroup;)V
+	public static final fun copyXmlNode (Ljava/lang/String;Lapp/revanced/patcher/util/DomFileEditor;Lapp/revanced/patcher/util/DomFileEditor;)Ljava/lang/AutoCloseable;
+	public static final fun doRecursively (Lorg/w3c/dom/Node;Lkotlin/jvm/functions/Function1;)V
+	public static final fun iterateXmlNodeChildren (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
+	public static final fun mergeStrings (Lapp/revanced/patcher/data/ResourceContext;Ljava/lang/String;)V
+}
+
+public abstract class app/revanced/util/patch/LiteralValueFingerprint : app/revanced/patcher/fingerprint/MethodFingerprint {
+	public fun <init> (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function0;)V
+	public synthetic fun <init> (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Iterable;Ljava/lang/Iterable;Ljava/lang/Iterable;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+}
+
diff --git a/build.gradle.kts b/build.gradle.kts
index 85deb26d00..0281ddcf8f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,6 +2,7 @@ import org.gradle.kotlin.dsl.support.listFilesOrdered
 
 plugins {
     kotlin("jvm") version "1.9.10"
+    alias(libs.plugins.binary.compatibility.validator)
     `maven-publish`
 }
 
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 649f32f1c7..f04025738e 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -3,9 +3,13 @@ revanced-patcher = "19.1.0"
 smali = "3.0.3"
 guava = "32.1.2-jre"
 gson = "2.10.1"
+binary-compatibility-validator = "0.13.2"
 
 [libraries]
 revanced-patcher = { module = "app.revanced:revanced-patcher", version.ref = "revanced-patcher" }
 smali = { module = "com.android.tools.smali:smali", version.ref = "smali" }
 guava = { module = "com.google.guava:guava", version.ref = "guava" }
 gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
+
+[plugins]
+binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary-compatibility-validator" }
diff --git a/src/main/kotlin/app/revanced/patches/all/connectivity/wifi/spoof/SpoofWifiPatch.kt b/src/main/kotlin/app/revanced/patches/all/connectivity/wifi/spoof/SpoofWifiPatch.kt
index b304d39536..c25f803093 100644
--- a/src/main/kotlin/app/revanced/patches/all/connectivity/wifi/spoof/SpoofWifiPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/all/connectivity/wifi/spoof/SpoofWifiPatch.kt
@@ -2,10 +2,10 @@ package app.revanced.patches.all.connectivity.wifi.spoof
 
 import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
-import app.revanced.util.patch.AbstractTransformInstructionsPatch
-import app.revanced.util.patch.IMethodCall
-import app.revanced.util.patch.Instruction35cInfo
-import app.revanced.util.patch.filterMapInstruction35c
+import app.revanced.patches.all.misc.transformation.AbstractTransformInstructionsPatch
+import app.revanced.patches.all.misc.transformation.IMethodCall
+import app.revanced.patches.all.misc.transformation.Instruction35cInfo
+import app.revanced.patches.all.misc.transformation.filterMapInstruction35c
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
 import com.android.tools.smali.dexlib2.iface.instruction.Instruction
@@ -40,7 +40,7 @@ object SpoofWifiPatch : AbstractTransformInstructionsPatch<Instruction35cInfo>()
 
 
     // Information about method calls we want to replace
-    enum class MethodCall(
+    private enum class MethodCall(
         override val definedClassName: String,
         override val methodName: String,
         override val methodParams: Array<String>,
diff --git a/src/main/kotlin/app/revanced/util/patch/AbstractTransformInstructionsPatch.kt b/src/main/kotlin/app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch.kt
similarity index 79%
rename from src/main/kotlin/app/revanced/util/patch/AbstractTransformInstructionsPatch.kt
rename to src/main/kotlin/app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch.kt
index 54123cb3b1..71699f1983 100644
--- a/src/main/kotlin/app/revanced/util/patch/AbstractTransformInstructionsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/all/misc/transformation/AbstractTransformInstructionsPatch.kt
@@ -1,13 +1,14 @@
-package app.revanced.util.patch
+package app.revanced.patches.all.misc.transformation
 
-import app.revanced.extensions.findMutableMethodOf
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.patch.BytecodePatch
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
+import app.revanced.util.findMutableMethodOf
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
 import com.android.tools.smali.dexlib2.iface.instruction.Instruction
 
+@Suppress("MemberVisibilityCanBePrivate")
 abstract class AbstractTransformInstructionsPatch<T> : BytecodePatch() {
 
     abstract fun filterMap(
@@ -20,7 +21,7 @@ abstract class AbstractTransformInstructionsPatch<T> : BytecodePatch() {
     abstract fun transform(mutableMethod: MutableMethod, entry: T)
 
     // Returns the patch indices as a Sequence, which will execute lazily.
-    private fun findPatchIndices(classDef: ClassDef, method: Method): Sequence<T>? {
+    fun findPatchIndices(classDef: ClassDef, method: Method): Sequence<T>? {
         return method.implementation?.instructions?.asSequence()?.withIndex()?.mapNotNull { (index, instruction) ->
             filterMap(classDef, method, instruction, index)
         }
@@ -35,11 +36,7 @@ abstract class AbstractTransformInstructionsPatch<T> : BytecodePatch() {
                         // Since the Sequence executes lazily,
                         // using any() results in only calling
                         // filterMap until the first index has been found.
-                        val patchIndices = findPatchIndices(classDef, method)
-
-                        if (patchIndices?.any() == true) {
-                            add(method)
-                        }
+                        if (findPatchIndices(classDef, method)?.any() == true) add(method)
                     }
                 }
 
@@ -55,9 +52,7 @@ abstract class AbstractTransformInstructionsPatch<T> : BytecodePatch() {
                 val patchIndices = findPatchIndices(mutableClass, mutableMethod)?.toCollection(ArrayDeque())
                     ?: return@methods
 
-                while (!patchIndices.isEmpty()) {
-                    transform(mutableMethod, patchIndices.removeLast())
-                }
+                while (!patchIndices.isEmpty()) transform(mutableMethod, patchIndices.removeLast())
             }
         }
     }
diff --git a/src/main/kotlin/app/revanced/util/patch/MethodCall.kt b/src/main/kotlin/app/revanced/patches/all/misc/transformation/MethodCall.kt
similarity index 98%
rename from src/main/kotlin/app/revanced/util/patch/MethodCall.kt
rename to src/main/kotlin/app/revanced/patches/all/misc/transformation/MethodCall.kt
index 1533c1ca7f..5736ff247e 100644
--- a/src/main/kotlin/app/revanced/util/patch/MethodCall.kt
+++ b/src/main/kotlin/app/revanced/patches/all/misc/transformation/MethodCall.kt
@@ -1,4 +1,4 @@
-package app.revanced.util.patch
+package app.revanced.patches.all.misc.transformation
 
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
diff --git a/src/main/kotlin/app/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch.kt b/src/main/kotlin/app/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch.kt
index 3b5bc35968..4815f52320 100644
--- a/src/main/kotlin/app/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/all/screencapture/removerestriction/RemoveCaptureRestrictionPatch.kt
@@ -2,10 +2,10 @@ package app.revanced.patches.all.screencapture.removerestriction
 
 import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
-import app.revanced.util.patch.AbstractTransformInstructionsPatch
-import app.revanced.util.patch.IMethodCall
-import app.revanced.util.patch.Instruction35cInfo
-import app.revanced.util.patch.filterMapInstruction35c
+import app.revanced.patches.all.misc.transformation.AbstractTransformInstructionsPatch
+import app.revanced.patches.all.misc.transformation.IMethodCall
+import app.revanced.patches.all.misc.transformation.Instruction35cInfo
+import app.revanced.patches.all.misc.transformation.filterMapInstruction35c
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
 import com.android.tools.smali.dexlib2.iface.instruction.Instruction
diff --git a/src/main/kotlin/app/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch.kt b/src/main/kotlin/app/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch.kt
index a161876816..4f1db9ef58 100644
--- a/src/main/kotlin/app/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/all/screenshot/removerestriction/RemoveScreenshotRestrictionPatch.kt
@@ -4,10 +4,10 @@ import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
-import app.revanced.util.patch.AbstractTransformInstructionsPatch
-import app.revanced.util.patch.IMethodCall
-import app.revanced.util.patch.Instruction35cInfo
-import app.revanced.util.patch.filterMapInstruction35c
+import app.revanced.patches.all.misc.transformation.AbstractTransformInstructionsPatch
+import app.revanced.patches.all.misc.transformation.IMethodCall
+import app.revanced.patches.all.misc.transformation.Instruction35cInfo
+import app.revanced.patches.all.misc.transformation.filterMapInstruction35c
 import com.android.tools.smali.dexlib2.Opcode
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
diff --git a/src/main/kotlin/app/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryPatch.kt b/src/main/kotlin/app/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryPatch.kt
index cd7362864c..02e67a68c8 100644
--- a/src/main/kotlin/app/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryPatch.kt
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patcher.patch.options.PatchOption
 import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
-import app.revanced.util.patch.AbstractTransformInstructionsPatch
+import app.revanced.patches.all.misc.transformation.AbstractTransformInstructionsPatch
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
 import com.android.tools.smali.dexlib2.iface.instruction.Instruction
diff --git a/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/ProUnlockPatch.kt b/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/ProUnlockPatch.kt
index a108b0f04d..d6351172f0 100644
--- a/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/ProUnlockPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/ProUnlockPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.backdrops.misc.pro
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/fingerprints/ProUnlockFingerprint.kt b/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/fingerprints/ProUnlockFingerprint.kt
index 4d822dbf63..8be75daff4 100644
--- a/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/fingerprints/ProUnlockFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/backdrops/misc/pro/fingerprints/ProUnlockFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.backdrops.misc.pro.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object ProUnlockFingerprint : MethodFingerprint(
+internal object ProUnlockFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_VIRTUAL,
         Opcode.MOVE_RESULT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/candylinkvpn/UnlockProPatch.kt b/src/main/kotlin/app/revanced/patches/candylinkvpn/UnlockProPatch.kt
index 810256533e..3a878ddf7c 100644
--- a/src/main/kotlin/app/revanced/patches/candylinkvpn/UnlockProPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/candylinkvpn/UnlockProPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.candylinkvpn
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/candylinkvpn/fingerprints/IsPremiumPurchasedFingerprint.kt b/src/main/kotlin/app/revanced/patches/candylinkvpn/fingerprints/IsPremiumPurchasedFingerprint.kt
index 2709cf9ec5..b53b85af8d 100644
--- a/src/main/kotlin/app/revanced/patches/candylinkvpn/fingerprints/IsPremiumPurchasedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/candylinkvpn/fingerprints/IsPremiumPurchasedFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.candylinkvpn.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object IsPremiumPurchasedFingerprint : MethodFingerprint(
+internal object IsPremiumPurchasedFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("PreferenceProvider;") &&
                 methodDef.name == "isPremiumPurchased"
diff --git a/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/BypassRootChecksPatch.kt b/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/BypassRootChecksPatch.kt
index 2beffb5718..41d5adfcc3 100644
--- a/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/BypassRootChecksPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/BypassRootChecksPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.cieid.restrictions.root
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/fingerprints/CheckRootFingerprint.kt b/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/fingerprints/CheckRootFingerprint.kt
index 2f4bb65cb9..76cbebf358 100644
--- a/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/fingerprints/CheckRootFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/cieid/restrictions/root/fingerprints/CheckRootFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.cieid.restrictions.root.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CheckRootFingerprint : MethodFingerprint(
+internal object CheckRootFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass == "Lit/ipzs/cieid/BaseActivity;" && methodDef.name == "onResume"
     }
diff --git a/src/main/kotlin/app/revanced/patches/facebook/ads/story/HideStoryAdsPatch.kt b/src/main/kotlin/app/revanced/patches/facebook/ads/story/HideStoryAdsPatch.kt
index 68aa845792..f34b7465df 100644
--- a/src/main/kotlin/app/revanced/patches/facebook/ads/story/HideStoryAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/facebook/ads/story/HideStoryAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.facebook.ads.story
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/AdsInsertionFingerprint.kt b/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/AdsInsertionFingerprint.kt
index 04ffce2361..e57e169fe4 100644
--- a/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/AdsInsertionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/AdsInsertionFingerprint.kt
@@ -1,3 +1,3 @@
 package app.revanced.patches.facebook.ads.story.fingerprints
 
-object AdsInsertionFingerprint : FieldMethodFingerprint(fieldValue = "AdBucketDataSourceUtil\$attemptAdsInsertion\$1")
\ No newline at end of file
+internal object AdsInsertionFingerprint : FieldMethodFingerprint(fieldValue = "AdBucketDataSourceUtil\$attemptAdsInsertion\$1")
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FetchMoreAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FetchMoreAdsFingerprint.kt
index d02c8cc921..9103ba65c6 100644
--- a/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FetchMoreAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FetchMoreAdsFingerprint.kt
@@ -1,3 +1,3 @@
 package app.revanced.patches.facebook.ads.story.fingerprints
 
-object FetchMoreAdsFingerprint : FieldMethodFingerprint(fieldValue = "AdBucketDataSourceUtil\$attemptFetchMoreAds\$1")
+internal object FetchMoreAdsFingerprint : FieldMethodFingerprint(fieldValue = "AdBucketDataSourceUtil\$attemptFetchMoreAds\$1")
diff --git a/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FieldMethodFingerprint.kt b/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FieldMethodFingerprint.kt
index 52d6419beb..923f654c87 100644
--- a/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FieldMethodFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/facebook/ads/story/fingerprints/FieldMethodFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.facebook.ads.story.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.iface.value.StringEncodedValue
 
-abstract class FieldMethodFingerprint(fieldValue: String) : MethodFingerprint(
+internal abstract class FieldMethodFingerprint(fieldValue: String) : MethodFingerprint(
     returnType = "V",
     parameters = listOf(),
     customFingerprint = { methodDef, classDef ->
diff --git a/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/BootloaderDetectionPatch.kt b/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/BootloaderDetectionPatch.kt
index 180f26f7c3..c3e13bb4c6 100644
--- a/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/BootloaderDetectionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/BootloaderDetectionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.finanzonline.detection.bootloader
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/BootStateFingerprint.kt b/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/BootStateFingerprint.kt
index 4666d4b87d..f76ab78aa9 100644
--- a/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/BootStateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/BootStateFingerprint.kt
@@ -5,7 +5,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
 // Located @ at.gv.bmf.bmf2go.taxequalization.tools.utils.AttestationHelper#isBootStateOk (3.0.1)
-object BootStateFingerprint : MethodFingerprint(
+internal object BootStateFingerprint : MethodFingerprint(
     "Z",
     accessFlags = AccessFlags.PUBLIC.value,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/CreateKeyFingerprint.kt b/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/CreateKeyFingerprint.kt
index d2f66bf0b3..5af1866f75 100644
--- a/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/CreateKeyFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/finanzonline/detection/bootloader/fingerprints/CreateKeyFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
 // Located @ at.gv.bmf.bmf2go.taxequalization.tools.utils.AttestationHelper#createKey (3.0.1)
-object CreateKeyFingerprint : MethodFingerprint(
+internal object CreateKeyFingerprint : MethodFingerprint(
     "Z",
     accessFlags = AccessFlags.PUBLIC.value,
     strings = listOf("attestation", "SHA-256", "random", "EC", "AndroidKeyStore")
diff --git a/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt b/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt
index 6de93017a5..c03c73abdc 100644
--- a/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/RootDetectionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.finanzonline.detection.root
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/fingerprints/RootDetectionFingerprint.kt b/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/fingerprints/RootDetectionFingerprint.kt
index 78d4c65d69..50c7f76a8e 100644
--- a/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/fingerprints/RootDetectionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/finanzonline/detection/root/fingerprints/RootDetectionFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
 // Located @ at.gv.bmf.bmf2go.taxequalization.tools.utils.RootDetection#isRooted (3.0.1)
-object RootDetectionFingerprint : MethodFingerprint(
+internal object RootDetectionFingerprint : MethodFingerprint(
     "L",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt b/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt
index 22f69b85de..da0c9ac0d7 100644
--- a/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt
+++ b/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/RemoveDeviceRestrictions.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.googlerecorder.restrictions
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/fingerprints/OnApplicationCreateFingerprint.kt b/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/fingerprints/OnApplicationCreateFingerprint.kt
index 86860dffb3..13494fe2d1 100644
--- a/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/fingerprints/OnApplicationCreateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/googlerecorder/restrictions/fingerprints/OnApplicationCreateFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.googlerecorder.restrictions.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object OnApplicationCreateFingerprint : MethodFingerprint(
+internal object OnApplicationCreateFingerprint : MethodFingerprint(
     strings = listOf("com.google.android.feature.PIXEL_2017_EXPERIENCE"),
     customFingerprint = custom@{ methodDef, classDef ->
         if (methodDef.name != "onCreate") return@custom false
diff --git a/src/main/kotlin/app/revanced/patches/hexeditor/ad/DisableAdsPatch.kt b/src/main/kotlin/app/revanced/patches/hexeditor/ad/DisableAdsPatch.kt
index bd6ae8a35f..b0f092002d 100644
--- a/src/main/kotlin/app/revanced/patches/hexeditor/ad/DisableAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/hexeditor/ad/DisableAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.hexeditor.ad
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/hexeditor/ad/fingerprints/PrimaryAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/hexeditor/ad/fingerprints/PrimaryAdsFingerprint.kt
index b144726c8c..317b676d54 100644
--- a/src/main/kotlin/app/revanced/patches/hexeditor/ad/fingerprints/PrimaryAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/hexeditor/ad/fingerprints/PrimaryAdsFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.hexeditor.ad.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object PrimaryAdsFingerprint : MethodFingerprint(
+internal object PrimaryAdsFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("PreferencesHelper;") && methodDef.name == "isAdsDisabled"
     }
diff --git a/src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/fingerprints/CheckProFingerprint.kt b/src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/fingerprints/CheckProFingerprint.kt
index adc9c1efd3..84b8a7ecaf 100644
--- a/src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/fingerprints/CheckProFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/fingerprints/CheckProFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.iconpackstudio.misc.pro.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CheckProFingerprint : MethodFingerprint(
+internal object CheckProFingerprint : MethodFingerprint(
     "Z",
     customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("IPSPurchaseRepository;")}
 )
diff --git a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt
index 5173e11dc9..0c47f8dad7 100644
--- a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/RootDetectionPatch.kt
@@ -7,7 +7,7 @@ import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patches.idaustria.detection.root.fingerprints.AttestationSupportedCheckFingerprint
 import app.revanced.patches.idaustria.detection.root.fingerprints.BootloaderCheckFingerprint
 import app.revanced.patches.idaustria.detection.root.fingerprints.RootCheckFingerprint
-import app.revanced.util.Utils.returnEarly
+import app.revanced.util.returnEarly
 
 @Patch(
     name = "Remove root detection",
diff --git a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/AttestationSupportedCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/AttestationSupportedCheckFingerprint.kt
index 56bcfe515e..a03115d395 100644
--- a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/AttestationSupportedCheckFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/AttestationSupportedCheckFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.root.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object AttestationSupportedCheckFingerprint : MethodFingerprint(
+internal object AttestationSupportedCheckFingerprint : MethodFingerprint(
     "V",
     accessFlags = AccessFlags.PUBLIC.value,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/BootloaderCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/BootloaderCheckFingerprint.kt
index 9fee20dfd5..f400d85335 100644
--- a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/BootloaderCheckFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/BootloaderCheckFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.root.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object BootloaderCheckFingerprint : MethodFingerprint(
+internal object BootloaderCheckFingerprint : MethodFingerprint(
     "Z",
     accessFlags = AccessFlags.PUBLIC.value,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/RootCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/RootCheckFingerprint.kt
index 174a28b76a..5a36bcbd43 100644
--- a/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/RootCheckFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/idaustria/detection/root/fingerprints/RootCheckFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.root.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object RootCheckFingerprint : MethodFingerprint(
+internal object RootCheckFingerprint : MethodFingerprint(
     "V",
     accessFlags = AccessFlags.PUBLIC.value,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/idaustria/detection/signature/fingerprints/SpoofSignatureFingerprint.kt b/src/main/kotlin/app/revanced/patches/idaustria/detection/signature/fingerprints/SpoofSignatureFingerprint.kt
index 3ba548eb11..13c5b1fb81 100644
--- a/src/main/kotlin/app/revanced/patches/idaustria/detection/signature/fingerprints/SpoofSignatureFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/idaustria/detection/signature/fingerprints/SpoofSignatureFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.signature.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object SpoofSignatureFingerprint : MethodFingerprint(
+internal object SpoofSignatureFingerprint : MethodFingerprint(
     "L",
     parameters = listOf("L"),
     accessFlags = AccessFlags.PRIVATE.value,
diff --git a/src/main/kotlin/app/revanced/patches/inshorts/ad/InshortsAdsPatch.kt b/src/main/kotlin/app/revanced/patches/inshorts/ad/InshortsAdsPatch.kt
index 2ec7536e88..75c051e64b 100644
--- a/src/main/kotlin/app/revanced/patches/inshorts/ad/InshortsAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/inshorts/ad/InshortsAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.inshorts.ad
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/inshorts/ad/fingerprints/InshortsAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/inshorts/ad/fingerprints/InshortsAdsFingerprint.kt
index 1c1064cacc..51930848a7 100644
--- a/src/main/kotlin/app/revanced/patches/inshorts/ad/fingerprints/InshortsAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/inshorts/ad/fingerprints/InshortsAdsFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.inshorts.ad.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object InshortsAdsFingerprint : MethodFingerprint(
+internal object InshortsAdsFingerprint : MethodFingerprint(
     "V",
     strings = listOf("GoogleAdLoader","exception in requestAd"),
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/HideTimelineAdsPatch.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/HideTimelineAdsPatch.kt
index 235697820f..fdae0ddba5 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/HideTimelineAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/HideTimelineAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.instagram.patches.ads.timeline
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/MediaFingerprint.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/MediaFingerprint.kt
index cd0f30a2b2..9959811d84 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/MediaFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/MediaFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.instagram.patches.ads.timeline.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object MediaFingerprint : MethodFingerprint(
+internal object MediaFingerprint : MethodFingerprint(
     strings = listOf("force_overlay", "Media#updateFields", "live_reels_metadata")
 )
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ShowAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ShowAdFingerprint.kt
index 153436e8e0..53ab5ee97b 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ShowAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ShowAdFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ShowAdFingerprint : MethodFingerprint(
+internal object ShowAdFingerprint : MethodFingerprint(
     "Z",
     AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.FINAL,
     listOf("L", "L", "Z", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/GenericMediaAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/GenericMediaAdFingerprint.kt
index ebfc11bde5..8a2d75b487 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/GenericMediaAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/GenericMediaAdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.instagram.patches.ads.timeline.fingerprints.ads
 
 import com.android.tools.smali.dexlib2.Opcode
 
-object GenericMediaAdFingerprint : MediaAdFingerprint(
+internal object GenericMediaAdFingerprint : MediaAdFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_INTERFACE,
         Opcode.MOVE_RESULT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/MediaAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/MediaAdFingerprint.kt
index 446850ac31..11f21b3fb8 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/MediaAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/MediaAdFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.Opcode
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
 
-abstract class MediaAdFingerprint(
+internal abstract class MediaAdFingerprint(
     returnType: String? = "Z",
     accessFlags: Int? = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters: Iterable<String>? = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/PaidPartnershipAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/PaidPartnershipAdFingerprint.kt
index db31e5e450..2a39002278 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/PaidPartnershipAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/PaidPartnershipAdFingerprint.kt
@@ -4,7 +4,7 @@ import com.android.tools.smali.dexlib2.Opcode
 import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
 import com.android.tools.smali.dexlib2.iface.reference.MethodReference
 
-object PaidPartnershipAdFingerprint : MediaAdFingerprint(
+internal object PaidPartnershipAdFingerprint : MediaAdFingerprint(
     "V",
     null,
     listOf("L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/ShoppingAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/ShoppingAdFingerprint.kt
index 643ffad9a7..9dd1232c9e 100644
--- a/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/ShoppingAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/instagram/patches/ads/timeline/fingerprints/ads/ShoppingAdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.instagram.patches.ads.timeline.fingerprints.ads
 
 import com.android.tools.smali.dexlib2.Opcode
 
-object ShoppingAdFingerprint : MediaAdFingerprint(
+internal object ShoppingAdFingerprint : MediaAdFingerprint(
     opcodes = listOf(
         Opcode.IF_EQZ,
         Opcode.IGET_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/irplus/ad/fingerprints/IrplusAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/irplus/ad/fingerprints/IrplusAdsFingerprint.kt
index 34910a9af7..6279dc3b4e 100644
--- a/src/main/kotlin/app/revanced/patches/irplus/ad/fingerprints/IrplusAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/irplus/ad/fingerprints/IrplusAdsFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object IrplusAdsFingerprint : MethodFingerprint(
+internal object IrplusAdsFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     listOf("L", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatch.kt b/src/main/kotlin/app/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatch.kt
index e2eb41f10d..d286f3f8f1 100644
--- a/src/main/kotlin/app/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/lightroom/misc/login/DisableMandatoryLoginPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.lightroom.misc.login
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/lightroom/misc/login/fingerprints/IsLoggedInFingerprint.kt b/src/main/kotlin/app/revanced/patches/lightroom/misc/login/fingerprints/IsLoggedInFingerprint.kt
index cc5f7866e1..f89406060b 100644
--- a/src/main/kotlin/app/revanced/patches/lightroom/misc/login/fingerprints/IsLoggedInFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/lightroom/misc/login/fingerprints/IsLoggedInFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object IsLoggedInFingerprint : MethodFingerprint(
+internal object IsLoggedInFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.FINAL,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/UnlockPremiumPatch.kt b/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/UnlockPremiumPatch.kt
index f747dcbd4e..084837ff0d 100644
--- a/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/UnlockPremiumPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/UnlockPremiumPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.lightroom.misc.premium
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/fingerprints/HasPurchasedFingerprint.kt b/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/fingerprints/HasPurchasedFingerprint.kt
index 801cb398d4..1b32fe8636 100644
--- a/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/fingerprints/HasPurchasedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/lightroom/misc/premium/fingerprints/HasPurchasedFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object HasPurchasedFingerprint : MethodFingerprint(
+internal object HasPurchasedFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     strings = listOf("isPurchaseDoneRecently = true, access platform profile present? = "),
diff --git a/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/LicenseValidationPatch.kt b/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/LicenseValidationPatch.kt
index 8347de8148..2ab5f04476 100644
--- a/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/LicenseValidationPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/LicenseValidationPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.memegenerator.detection.license
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/fingerprints/LicenseValidationFingerprint.kt b/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/fingerprints/LicenseValidationFingerprint.kt
index d30208d862..e5cfaae6f9 100644
--- a/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/fingerprints/LicenseValidationFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/memegenerator/detection/license/fingerprints/LicenseValidationFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object LicenseValidationFingerprint : MethodFingerprint(
+internal object LicenseValidationFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("Landroid/content/Context;"),
diff --git a/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/SignatureVerificationPatch.kt b/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/SignatureVerificationPatch.kt
index 3c00f93ef4..736649ba28 100644
--- a/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/SignatureVerificationPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/SignatureVerificationPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.memegenerator.detection.signature
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/fingerprints/VerifySignatureFingerprint.kt b/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/fingerprints/VerifySignatureFingerprint.kt
index daf2ab71b1..b77fd051fd 100644
--- a/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/fingerprints/VerifySignatureFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/memegenerator/detection/signature/fingerprints/VerifySignatureFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
 @FuzzyPatternScanMethod(2)
-object VerifySignatureFingerprint : MethodFingerprint(
+internal object VerifySignatureFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("Landroid/app/Activity;"),
diff --git a/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/UnlockProVersionPatch.kt b/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/UnlockProVersionPatch.kt
index 4b07f24283..28b9638f6c 100644
--- a/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/UnlockProVersionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/UnlockProVersionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.memegenerator.misc.pro
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/fingerprints/IsFreeVersionFingerprint.kt b/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/fingerprints/IsFreeVersionFingerprint.kt
index 0060fd50b2..b3a3aa2c70 100644
--- a/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/fingerprints/IsFreeVersionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/memegenerator/misc/pro/fingerprints/IsFreeVersionFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object IsFreeVersionFingerprint : MethodFingerprint(
+internal object IsFreeVersionFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/Boolean;",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     strings = listOf("free"),
diff --git a/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/fingerprints/LoadInboxAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/fingerprints/LoadInboxAdsFingerprint.kt
index 02262d66fd..9c45dc97aa 100644
--- a/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/fingerprints/LoadInboxAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/fingerprints/LoadInboxAdsFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object LoadInboxAdsFingerprint : MethodFingerprint(
+internal object LoadInboxAdsFingerprint : MethodFingerprint(
     returnType = "V",
     strings = listOf(
         "ads_load_begin",
diff --git a/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch.kt b/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch.kt
index a7ff651eb9..c512ca9806 100644
--- a/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.messenger.ads.inbox.patch
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SendTypingIndicatorFingerprint.kt b/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SendTypingIndicatorFingerprint.kt
index f6da50952f..2376575bc6 100644
--- a/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SendTypingIndicatorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SendTypingIndicatorFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.messenger.inputfield.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.dexbacked.value.DexBackedStringEncodedValue
 
-object SendTypingIndicatorFingerprint : MethodFingerprint(
+internal object SendTypingIndicatorFingerprint : MethodFingerprint(
     returnType = "V",
     parameters = listOf(),
     customFingerprint = { methodDef, classDef ->
diff --git a/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SwitchMessangeInputEmojiButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SwitchMessangeInputEmojiButtonFingerprint.kt
index 009064b177..0184a9a017 100644
--- a/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SwitchMessangeInputEmojiButtonFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/messenger/inputfield/fingerprints/SwitchMessangeInputEmojiButtonFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.messenger.inputfield.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object SwitchMessangeInputEmojiButtonFingerprint : MethodFingerprint(
+internal object SwitchMessangeInputEmojiButtonFingerprint : MethodFingerprint(
     returnType = "V",
     parameters = listOf("L", "Z"),
     strings = listOf("afterTextChanged", "expression_search"),
diff --git a/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch.kt b/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch.kt
index 0ae8faabe6..19e445fdad 100644
--- a/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.messenger.inputfield.patch
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
diff --git a/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch.kt b/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch.kt
index 03334b4ba6..5bdbb50c12 100644
--- a/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.messenger.inputfield.patch
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/moneymanager/fingerprints/UnlockProFingerprint.kt b/src/main/kotlin/app/revanced/patches/moneymanager/fingerprints/UnlockProFingerprint.kt
index 7f5c4f8deb..087b2af565 100644
--- a/src/main/kotlin/app/revanced/patches/moneymanager/fingerprints/UnlockProFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/moneymanager/fingerprints/UnlockProFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object UnlockProFingerprint : MethodFingerprint(
+internal object UnlockProFingerprint : MethodFingerprint(
     "Z",
     AccessFlags.STATIC or AccessFlags.SYNTHETIC,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsConstructorFingerprint.kt
index be003731e6..1a1b9be84d 100644
--- a/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsConstructorFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object ShowMusicVideoAdsConstructorFingerprint : MethodFingerprint(
+internal object ShowMusicVideoAdsConstructorFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, listOf("L", "L", "L"), listOf(
         Opcode.INVOKE_DIRECT,
         Opcode.NEW_INSTANCE,
diff --git a/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsFingerprint.kt
index 2f06e7fcf7..952b866dcc 100644
--- a/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ShowMusicVideoAdsFingerprint : MethodFingerprint(
+internal object ShowMusicVideoAdsFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("Z"), listOf(
         Opcode.IPUT_BOOLEAN,
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt
index 61230eb16d..4b7bc37372 100644
--- a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object AllCodecsReferenceFingerprint : MethodFingerprint(
+internal object AllCodecsReferenceFingerprint : MethodFingerprint(
     "J", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L"), listOf(
         Opcode.INVOKE_STATIC,
         Opcode.MOVE_RESULT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt
index 88f0f42277..fb007dc3a1 100644
--- a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object CodecsLockFingerprint : MethodFingerprint(
+internal object CodecsLockFingerprint : MethodFingerprint(
     "L", AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf(
         Opcode.INVOKE_DIRECT,
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/ExclusiveAudioPatch.kt b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/ExclusiveAudioPatch.kt
index 8b211b007f..8955c77cc5 100644
--- a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/ExclusiveAudioPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/ExclusiveAudioPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.music.audio.exclusiveaudio
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AllowExclusiveAudioPlaybackFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AllowExclusiveAudioPlaybackFingerprint.kt
index 048301d730..c86f794272 100644
--- a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AllowExclusiveAudioPlaybackFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AllowExclusiveAudioPlaybackFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object AllowExclusiveAudioPlaybackFingerprint: MethodFingerprint(
+internal object AllowExclusiveAudioPlaybackFingerprint: MethodFingerprint(
     "Z",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/ExclusiveAudioFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/ExclusiveAudioFingerprint.kt
index 2c0825609b..db2e2f0e42 100644
--- a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/ExclusiveAudioFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/ExclusiveAudioFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object ExclusiveAudioFingerprint : MethodFingerprint(
+internal object ExclusiveAudioFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("L", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch.kt b/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch.kt
index 37565f977a..257f43eef8 100644
--- a/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/PermanentRepeatPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.music.interaction.permanentrepeat
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/fingerprints/RepeatTrackFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/fingerprints/RepeatTrackFingerprint.kt
index 2d4548f431..4567f0fe78 100644
--- a/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/fingerprints/RepeatTrackFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/interaction/permanentrepeat/fingerprints/RepeatTrackFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RepeatTrackFingerprint : MethodFingerprint(
+internal object RepeatTrackFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/PermanentShufflePatch.kt b/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/PermanentShufflePatch.kt
index 15f688bc2c..70eb16a6b4 100644
--- a/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/PermanentShufflePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/PermanentShufflePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.music.interaction.permanentshuffle
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/fingerprints/DisableShuffleFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/fingerprints/DisableShuffleFingerprint.kt
index 70cb9df649..b358905602 100644
--- a/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/fingerprints/DisableShuffleFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/interaction/permanentshuffle/fingerprints/DisableShuffleFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object DisableShuffleFingerprint : MethodFingerprint(
+internal object DisableShuffleFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt
index 942dcb50e5..98587cc93b 100644
--- a/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object CompactHeaderConstructorFingerprint : MethodFingerprint(
+internal object CompactHeaderConstructorFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, listOf("L", "L", "L", "L", "L"), listOf(
         Opcode.INVOKE_DIRECT,
         Opcode.IPUT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/MinimizedPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/MinimizedPlaybackPatch.kt
index f34ca7dec2..2b692d2628 100644
--- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/MinimizedPlaybackPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/MinimizedPlaybackPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.music.layout.minimizedplayback
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
index 9919a08b0b..bfa47932d1 100644
--- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object MinimizedPlaybackManagerFingerprint : MethodFingerprint(
+internal object MinimizedPlaybackManagerFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("I", "L", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt
index 06e8cb7ed7..6a29e7add9 100644
--- a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object HideGetPremiumFingerprint : MethodFingerprint(
+internal object HideGetPremiumFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf(
         Opcode.IF_NEZ,
         Opcode.CONST_16,
diff --git a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt
index 3927d08fe4..3463fcfcd3 100644
--- a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object HideGetPremiumParentFingerprint : MethodFingerprint(
+internal object HideGetPremiumParentFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf(
         Opcode.IGET_BOOLEAN,
         Opcode.CONST_4,
diff --git a/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt
index 771520cf79..36ec43f58d 100644
--- a/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object PivotBarConstructorFingerprint : MethodFingerprint(
+internal object PivotBarConstructorFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     listOf("L", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/androidauto/BypassCertificateChecksPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/androidauto/BypassCertificateChecksPatch.kt
index af54e3c2c8..a06203de57 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/androidauto/BypassCertificateChecksPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/androidauto/BypassCertificateChecksPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.music.misc.androidauto
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/androidauto/fingerprints/CheckCertificateFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/androidauto/fingerprints/CheckCertificateFingerprint.kt
index 5f4d39bd02..8059a0dcd4 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/androidauto/fingerprints/CheckCertificateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/androidauto/fingerprints/CheckCertificateFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object CheckCertificateFingerprint : MethodFingerprint(
+internal object CheckCertificateFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "Z",
     parameters = listOf("Ljava/lang/String;"),
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastContextFetchFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastContextFetchFingerprint.kt
index 4267ebb298..a15e6a8a04 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastContextFetchFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastContextFetchFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.music.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CastContextFetchFingerprint : MethodFingerprint(
+internal object CastContextFetchFingerprint : MethodFingerprint(
     strings = listOf("Error fetching CastContext.")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
index 203d1cff09..26106538d6 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.music.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CastDynamiteModuleFingerprint : MethodFingerprint(
+internal object CastDynamiteModuleFingerprint : MethodFingerprint(
     strings = listOf("com.google.android.gms.cast.framework.internal.CastDynamiteModuleImpl")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
index 0c93d63632..e9abd36191 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.music.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
+internal object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
     strings = listOf("Failed to load module via V2: ")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
index ae7148c594..c2cfb14d5e 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object GooglePlayUtilityFingerprint : MethodFingerprint(
+internal object GooglePlayUtilityFingerprint : MethodFingerprint(
     "I",
     AccessFlags.PUBLIC or AccessFlags.STATIC,
     listOf("L", "I"),
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/PrimeFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/PrimeFingerprint.kt
index a3f3959890..3e85a6e95f 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/PrimeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/PrimeFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.music.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object PrimeFingerprint : MethodFingerprint(
+internal object PrimeFingerprint : MethodFingerprint(
     strings = listOf("com.google.android.GoogleCamera", "com.android.vending")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/ServiceCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/ServiceCheckFingerprint.kt
index 2f2805a2f9..397232cec1 100644
--- a/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/ServiceCheckFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/ServiceCheckFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object ServiceCheckFingerprint : MethodFingerprint(
+internal object ServiceCheckFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.STATIC,
     listOf("L", "I"),
diff --git a/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/BackgroundPlayPatch.kt b/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/BackgroundPlayPatch.kt
index 3af1deb02c..5850528f9d 100644
--- a/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/BackgroundPlayPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/BackgroundPlayPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.music.premium.backgroundplay
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt
index c721c30b5e..68779590a7 100644
--- a/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 
 
 @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value.
-object BackgroundPlaybackDisableFingerprint : MethodFingerprint(
+internal object BackgroundPlaybackDisableFingerprint : MethodFingerprint(
     "Z", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L"), listOf(
         Opcode.CONST_4,
         Opcode.IF_EQZ,
diff --git a/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/UnlockProPatch.kt b/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/UnlockProPatch.kt
index c7a8e031cb..c52bef3de0 100644
--- a/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/UnlockProPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/UnlockProPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.myexpenses.misc.pro
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/fingerprints/IsEnabledFingerprint.kt b/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/fingerprints/IsEnabledFingerprint.kt
index b986b002b0..6aba37ff9f 100644
--- a/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/fingerprints/IsEnabledFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/myexpenses/misc/pro/fingerprints/IsEnabledFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.myexpenses.misc.pro.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object IsEnabledFingerprint : MethodFingerprint(
+internal object IsEnabledFingerprint : MethodFingerprint(
     "Z",
     strings = listOf("feature", "feature.licenceStatus")
 )
diff --git a/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/UnlockProPatch.kt b/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/UnlockProPatch.kt
index 3e8d17008b..630192ed52 100644
--- a/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/UnlockProPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/UnlockProPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.nfctoolsse.misc.pro
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/fingerprints/IsLicenseRegisteredFingerprint.kt b/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/fingerprints/IsLicenseRegisteredFingerprint.kt
index be7728d44f..372b7be07e 100644
--- a/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/fingerprints/IsLicenseRegisteredFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/nfctoolsse/misc/pro/fingerprints/IsLicenseRegisteredFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.nfctoolsse.misc.pro.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object IsLicenseRegisteredFingerprint : MethodFingerprint(
+internal object IsLicenseRegisteredFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC.value,
     strings = listOf("kLicenseCheck")
diff --git a/src/main/kotlin/app/revanced/patches/nyx/misc/pro/UnlockProPatch.kt b/src/main/kotlin/app/revanced/patches/nyx/misc/pro/UnlockProPatch.kt
index 4be7e77c66..1d496d1294 100644
--- a/src/main/kotlin/app/revanced/patches/nyx/misc/pro/UnlockProPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/nyx/misc/pro/UnlockProPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.nyx.misc.pro
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/nyx/misc/pro/fingerprints/CheckProFingerprint.kt b/src/main/kotlin/app/revanced/patches/nyx/misc/pro/fingerprints/CheckProFingerprint.kt
index e6c919e3ca..f5318ef82f 100644
--- a/src/main/kotlin/app/revanced/patches/nyx/misc/pro/fingerprints/CheckProFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/nyx/misc/pro/fingerprints/CheckProFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.nyx.misc.pro.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CheckProFingerprint : MethodFingerprint(
+internal object CheckProFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("BillingManager;") && methodDef.name == "isProVersion"
     }
diff --git a/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/SpoofDeviceIdPatch.kt b/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/SpoofDeviceIdPatch.kt
index cd5d6196a0..1c57b8d055 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/SpoofDeviceIdPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/SpoofDeviceIdPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.photomath.detection.deviceid
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/fingerprints/GetDeviceIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/fingerprints/GetDeviceIdFingerprint.kt
index 525c285dae..ef3e29f68b 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/fingerprints/GetDeviceIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/detection/deviceid/fingerprints/GetDeviceIdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.photomath.detection.deviceid.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetDeviceIdFingerprint : MethodFingerprint(
+internal object GetDeviceIdFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/String;",
     strings = listOf("androidId", "android_id"),
     parameters = listOf()
diff --git a/src/main/kotlin/app/revanced/patches/photomath/detection/signature/SignatureDetectionPatch.kt b/src/main/kotlin/app/revanced/patches/photomath/detection/signature/SignatureDetectionPatch.kt
index a322efac27..c752badd30 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/detection/signature/SignatureDetectionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/detection/signature/SignatureDetectionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.photomath.detection.signature
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
diff --git a/src/main/kotlin/app/revanced/patches/photomath/detection/signature/fingerprints/CheckSignatureFingerprint.kt b/src/main/kotlin/app/revanced/patches/photomath/detection/signature/fingerprints/CheckSignatureFingerprint.kt
index 7d071de167..97c42de2bb 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/detection/signature/fingerprints/CheckSignatureFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/detection/signature/fingerprints/CheckSignatureFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.photomath.detection.signature.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object CheckSignatureFingerprint : MethodFingerprint(
+internal object CheckSignatureFingerprint : MethodFingerprint(
     strings = listOf(
         "packageInfo.signatures",
         "currentSignature"
diff --git a/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/EnableBookpointPatch.kt b/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/EnableBookpointPatch.kt
index 0ce19ed106..f3dc575e03 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/EnableBookpointPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/EnableBookpointPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.photomath.misc.bookpoint
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
 import app.revanced.patcher.patch.BytecodePatch
@@ -8,7 +8,7 @@ import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patches.photomath.misc.bookpoint.fingerprints.IsBookpointEnabledFingerprint
 
 @Patch(description = "Enables textbook access")
-object EnableBookpointPatch : BytecodePatch(
+internal object EnableBookpointPatch : BytecodePatch(
     setOf(IsBookpointEnabledFingerprint)
 ) {
     override fun execute(context: BytecodeContext) =
diff --git a/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/fingerprints/IsBookpointEnabledFingerprint.kt b/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/fingerprints/IsBookpointEnabledFingerprint.kt
index 4fd4c6d1d7..0a60647a42 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/fingerprints/IsBookpointEnabledFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/misc/bookpoint/fingerprints/IsBookpointEnabledFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object IsBookpointEnabledFingerprint : MethodFingerprint(
+internal object IsBookpointEnabledFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/UnlockPlusPatch.kt b/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/UnlockPlusPatch.kt
index 36970d4221..e9e7f539b6 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/UnlockPlusPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/UnlockPlusPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.photomath.misc.unlockplus
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/fingerprints/IsPlusUnlockedFingerprint.kt b/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/fingerprints/IsPlusUnlockedFingerprint.kt
index bb98614670..72db0e6bf5 100644
--- a/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/fingerprints/IsPlusUnlockedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/photomath/misc/unlockplus/fingerprints/IsPlusUnlockedFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object IsPlusUnlockedFingerprint : MethodFingerprint(
+internal object IsPlusUnlockedFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     strings = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/pixiv/ads/HideAdsPatch.kt b/src/main/kotlin/app/revanced/patches/pixiv/ads/HideAdsPatch.kt
index f827e27c0a..b0479749ce 100644
--- a/src/main/kotlin/app/revanced/patches/pixiv/ads/HideAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/pixiv/ads/HideAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.pixiv.ads
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/pixiv/ads/fingerprints/IsNotPremiumFingerprint.kt b/src/main/kotlin/app/revanced/patches/pixiv/ads/fingerprints/IsNotPremiumFingerprint.kt
index 1b351cbacc..6618af0ed7 100644
--- a/src/main/kotlin/app/revanced/patches/pixiv/ads/fingerprints/IsNotPremiumFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/pixiv/ads/fingerprints/IsNotPremiumFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
 
-object IsNotPremiumFingerprint : MethodFingerprint(
+internal object IsNotPremiumFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/reddit/ad/comments/HideCommentAdsPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/ad/comments/HideCommentAdsPatch.kt
index cdfda6b464..298f701774 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/ad/comments/HideCommentAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/ad/comments/HideCommentAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.ad.comments
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/ad/comments/fingerprints/HideCommentAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/ad/comments/fingerprints/HideCommentAdsFingerprint.kt
index 4964f84a97..b6ce15145a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/ad/comments/fingerprints/HideCommentAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/ad/comments/fingerprints/HideCommentAdsFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.ad.comments.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object HideCommentAdsFingerprint : MethodFingerprint(
+internal object HideCommentAdsFingerprint : MethodFingerprint(
     strings = listOf(
         "link",
         // CommentPageRepository is not returning a link object
diff --git a/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/AdPostFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/AdPostFingerprint.kt
index 91734ec563..c848845729 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/AdPostFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/AdPostFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.ad.general.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object AdPostFingerprint : MethodFingerprint(
+internal object AdPostFingerprint : MethodFingerprint(
     "V",
     // "children" are present throughout multiple versions
     strings = listOf("children"),
diff --git a/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/NewAdPostFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/NewAdPostFingerprint.kt
index d3f21ec860..2f37b8a71d 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/NewAdPostFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/ad/general/fingerprints/NewAdPostFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.ad.general.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object NewAdPostFingerprint : MethodFingerprint(
+internal object NewAdPostFingerprint : MethodFingerprint(
     opcodes = listOf(Opcode.INVOKE_VIRTUAL),
     strings = listOf("chain", "feedElement"),
     customFingerprint = { _, classDef -> classDef.sourceFile == "AdElementConverter.kt" },
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch.kt
index d96ba285aa..228703d337 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/AbstractSpoofClientPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.customclients
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.PatchClass
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.fingerprint.MethodFingerprint
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetAuthorizationUrlFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetAuthorizationUrlFingerprint.kt
index e17243c7df..8a0f5dc78a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetAuthorizationUrlFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetAuthorizationUrlFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.baconreader.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetAuthorizationUrlFingerprint: MethodFingerprint(
+internal object GetAuthorizationUrlFingerprint: MethodFingerprint(
     strings = listOf("client_id=zACVn0dSFGdWqQ"),
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetClientIdFingerprint.kt
index 836a284947..e974c19f4a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/GetClientIdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.baconreader.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetClientIdFingerprint : MethodFingerprint(
+internal object GetClientIdFingerprint : MethodFingerprint(
     strings = listOf("client_id=zACVn0dSFGdWqQ"),
     customFingerprint = custom@{ methodDef, classDef ->
         if (!classDef.type.endsWith("RedditOAuth;")) return@custom false
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/RequestTokenFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/RequestTokenFingerprint.kt
index d90a8bab95..2aa46db9c5 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/RequestTokenFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/baconreader/api/fingerprints/RequestTokenFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.baconreader.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object RequestTokenFingerprint : MethodFingerprint(
+internal object RequestTokenFingerprint : MethodFingerprint(
     strings = listOf("zACVn0dSFGdWqQ", "kDm2tYpu9DqyWFFyPlNcXGEni4k"), // App ID and secret.
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/GetClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/GetClientIdFingerprint.kt
index bcc4b70f8c..8f85cd7beb 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/GetClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/GetClientIdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.boostforreddit.api.fingerprint
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetClientIdFingerprint : MethodFingerprint(
+internal object GetClientIdFingerprint : MethodFingerprint(
     customFingerprint = custom@{ methodDef, classDef ->
         if (!classDef.type.endsWith("Credentials;")) return@custom false
 
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt
index fc51a7076a..be328cdbee 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.boostforreddit.api.fingerprint
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object LoginActivityOnCreateFingerprint : MethodFingerprint(
+internal object LoginActivityOnCreateFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.MOVE_RESULT_OBJECT,
         Opcode.CONST_4
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/APIUtilsFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/APIUtilsFingerprint.kt
index 13d9595b64..c309b4dd53 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/APIUtilsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/APIUtilsFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.infinityforreddit.api.fingerpr
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object APIUtilsFingerprint : MethodFingerprint(
+internal object APIUtilsFingerprint : MethodFingerprint(
     strings = listOf("native-lib")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/AbstractClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/AbstractClientIdFingerprint.kt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/GetHttpBasicAuthHeaderFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/GetHttpBasicAuthHeaderFingerprint.kt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/api/fingerprints/LoginActivityOnCreateFingerprint.kt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/subscription/UnlockSubscriptionPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/subscription/UnlockSubscriptionPatch.kt
index 5be443b44e..9de0f38356 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/subscription/UnlockSubscriptionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/infinityforreddit/subscription/UnlockSubscriptionPatch.kt
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.annotation.CompatiblePackage
 import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patches.reddit.customclients.infinityforreddit.api.SpoofClientPatch
 import app.revanced.patches.reddit.customclients.infinityforreddit.subscription.fingerprints.StartSubscriptionActivityFingerprint
-import app.revanced.util.Utils.returnEarly
+import app.revanced.util.returnEarly
 
 @Patch(
     name = "Unlock subscription",
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/DisableAdsPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/DisableAdsPatch.kt
index b1ae513754..6dc76ed0cf 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/DisableAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/DisableAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.customclients.joeyforreddit.ads
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/fingerprints/IsAdFreeUserFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/fingerprints/IsAdFreeUserFingerprint.kt
index 065e6c3152..46a01b11bc 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/fingerprints/IsAdFreeUserFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/ads/fingerprints/IsAdFreeUserFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.joeyforreddit.ads.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object IsAdFreeUserFingerprint : MethodFingerprint(
+internal object IsAdFreeUserFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC.value,
     strings = listOf("AD_FREE_USER")
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/api/fingerprints/GetClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/api/fingerprints/GetClientIdFingerprint.kt
index 9a31e2fbce..480db1426a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/api/fingerprints/GetClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/api/fingerprints/GetClientIdFingerprint.kt
@@ -5,7 +5,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetClientIdFingerprint : MethodFingerprint(
+internal object GetClientIdFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/DisablePiracyDetectionPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/DisablePiracyDetectionPatch.kt
index b03b2a838d..e2a60686ef 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/DisablePiracyDetectionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/DisablePiracyDetectionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.customclients.joeyforreddit.detection.piracy
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt
index 7f7d832a00..a6ba8806f6 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/joeyforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object PiracyDetectionFingerprint : MethodFingerprint(
+internal object PiracyDetectionFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.STATIC,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/AbstractClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/AbstractClientIdFingerprint.kt
index 1bdf1b0a8b..761987ba2d 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/AbstractClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/AbstractClientIdFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.redditisfun.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
+internal abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
     strings = listOfNotNull("yyOCBp.RHJhDKd", string),
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BasicAuthorizationFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BasicAuthorizationFingerprint.kt
index 9e4b3530a4..d524097fe2 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BasicAuthorizationFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BasicAuthorizationFingerprint.kt
@@ -1,5 +1,5 @@
 package app.revanced.patches.reddit.customclients.redditisfun.api.fingerprints
 
-object BasicAuthorizationFingerprint : AbstractClientIdFingerprint(
+internal object BasicAuthorizationFingerprint : AbstractClientIdFingerprint(
     string = "fJOxVwBUyo*=f:<OoejWs:AqmIJ", // Encrypted basic authorization string.
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BuildAuthorizationStringFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BuildAuthorizationStringFingerprint.kt
index 514a91ae31..5253d3675c 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BuildAuthorizationStringFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/BuildAuthorizationStringFingerprint.kt
@@ -1,5 +1,5 @@
 package app.revanced.patches.reddit.customclients.redditisfun.api.fingerprints
 
-object BuildAuthorizationStringFingerprint : AbstractClientIdFingerprint(
+internal object BuildAuthorizationStringFingerprint : AbstractClientIdFingerprint(
     string = "client_id"
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/GetUserAgentFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/GetUserAgentFingerprint.kt
index 14f1908ff1..cc87b874b7 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/GetUserAgentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/redditisfun/api/fingerprints/GetUserAgentFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object GetUserAgentFingerprint : MethodFingerprint(
+internal object GetUserAgentFingerprint : MethodFingerprint(
     "Ljava/lang/String;",
     AccessFlags.PUBLIC or AccessFlags.STATIC,
     emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/AbstractClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/AbstractClientIdFingerprint.kt
index 70894cd16a..05278a1914 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/AbstractClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/AbstractClientIdFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprint
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
+internal abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
     strings = listOfNotNull("dj-xCIZQYiLbEg", string),
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedInBearerTokenFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedInBearerTokenFingerprint.kt
index 9ba4ec6286..7347ca8640 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedInBearerTokenFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedInBearerTokenFingerprint.kt
@@ -1,3 +1,3 @@
 package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
 
-object GetLoggedInBearerTokenFingerprint : AbstractClientIdFingerprint("authorization_code")
\ No newline at end of file
+internal object GetLoggedInBearerTokenFingerprint : AbstractClientIdFingerprint("authorization_code")
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedOutBearerTokenFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedOutBearerTokenFingerprint.kt
index 74e479c586..3164fa6b43 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedOutBearerTokenFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetLoggedOutBearerTokenFingerprint.kt
@@ -1,3 +1,3 @@
 package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
 
-object GetLoggedOutBearerTokenFingerprint : AbstractClientIdFingerprint("https://oauth.reddit.com/grants/installed_client")
\ No newline at end of file
+internal object GetLoggedOutBearerTokenFingerprint : AbstractClientIdFingerprint("https://oauth.reddit.com/grants/installed_client")
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetRefreshTokenFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetRefreshTokenFingerprint.kt
index 492a5554c9..6ee7b22d2a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetRefreshTokenFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/GetRefreshTokenFingerprint.kt
@@ -1,3 +1,3 @@
 package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
 
-object GetRefreshTokenFingerprint : AbstractClientIdFingerprint("refresh_token")
\ No newline at end of file
+internal object GetRefreshTokenFingerprint : AbstractClientIdFingerprint("refresh_token")
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/LoginActivityClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/LoginActivityClientIdFingerprint.kt
index ba260ee195..b5c960a42e 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/LoginActivityClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/LoginActivityClientIdFingerprint.kt
@@ -1,3 +1,3 @@
 package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
 
-object LoginActivityClientIdFingerprint : AbstractClientIdFingerprint("&duration=permanent")
\ No newline at end of file
+internal object LoginActivityClientIdFingerprint : AbstractClientIdFingerprint("&duration=permanent")
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/RedditCheckDisableAPIFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/RedditCheckDisableAPIFingerprint.kt
index 5afadca9e9..1889580f71 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/RedditCheckDisableAPIFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/RedditCheckDisableAPIFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprint
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object RedditCheckDisableAPIFingerprint : MethodFingerprint(
+internal object RedditCheckDisableAPIFingerprint : MethodFingerprint(
     strings = listOf("Reddit Disabled"),
     opcodes = listOf(Opcode.IF_EQZ)
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/SetRemoteConfigFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/SetRemoteConfigFingerprint.kt
index f793061c2a..981613337f 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/SetRemoteConfigFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/relayforreddit/api/fingerprints/SetRemoteConfigFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprint
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SetRemoteConfigFingerprint : MethodFingerprint(
+internal object SetRemoteConfigFingerprint : MethodFingerprint(
     strings = listOf("reddit_oauth_url"),
     parameters = listOf("Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/slide/api/fingerprints/GetClientIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/slide/api/fingerprints/GetClientIdFingerprint.kt
index 742ca18da9..31b28b4003 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/slide/api/fingerprints/GetClientIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/slide/api/fingerprints/GetClientIdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.slide.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetClientIdFingerprint : MethodFingerprint(
+internal object GetClientIdFingerprint : MethodFingerprint(
     customFingerprint = custom@{ methodDef, classDef ->
         if (!classDef.type.endsWith("Credentials;")) return@custom false
 
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/DisableAdsPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/DisableAdsPatch.kt
index 43bad8f974..75c57b646a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/DisableAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/DisableAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.customclients.syncforreddit.ads
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/fingerprints/IsAdsEnabledFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/fingerprints/IsAdsEnabledFingerprint.kt
index 31cc0a67cb..2c15da4edc 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/fingerprints/IsAdsEnabledFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/ads/fingerprints/IsAdsEnabledFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object IsAdsEnabledFingerprint : MethodFingerprint(
+internal object IsAdsEnabledFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     strings = listOf("SyncIapHelper")
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/DisableSyncForLemmyBottomSheetPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/DisableSyncForLemmyBottomSheetPatch.kt
index 7f4ac4afc5..7f161a16cc 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/DisableSyncForLemmyBottomSheetPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/DisableSyncForLemmyBottomSheetPatch.kt
@@ -1,12 +1,12 @@
 package app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startup
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
 import app.revanced.patcher.patch.BytecodePatch
 import app.revanced.patcher.patch.annotation.CompatiblePackage
 import app.revanced.patcher.patch.annotation.Patch
-import app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startup.fingerprints.MainActivityOnCreate
+import app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startup.fingerprints.MainActivityOnCreateFingerprint
 
 
 @Patch(
@@ -19,12 +19,12 @@ import app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startu
     ]
 )
 @Suppress("unused")
-object DisableSyncForLemmyBottomSheetPatch : BytecodePatch(setOf(MainActivityOnCreate)) {
+object DisableSyncForLemmyBottomSheetPatch : BytecodePatch(setOf(MainActivityOnCreateFingerprint)) {
     override fun execute(context: BytecodeContext) {
-        MainActivityOnCreate.result?.mutableMethod?.apply {
+        MainActivityOnCreateFingerprint.result?.mutableMethod?.apply {
             val showBottomSheetIndex = implementation!!.instructions.lastIndex - 1
 
             removeInstruction(showBottomSheetIndex)
-        }  ?: throw MainActivityOnCreate.exception
+        }  ?: throw MainActivityOnCreateFingerprint.exception
     }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/MainActivityOnCreate.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/MainActivityOnCreateFingerprint.kt
similarity index 80%
rename from src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/MainActivityOnCreate.kt
rename to src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/MainActivityOnCreateFingerprint.kt
index 1c26cef19d..887df3cc7a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/MainActivityOnCreate.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/annoyances/startup/fingerprints/MainActivityOnCreateFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.syncforreddit.annoyances.start
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object MainActivityOnCreate : MethodFingerprint(
+internal object MainActivityOnCreateFingerprint : MethodFingerprint(
     customFingerprint = custom@{ method, classDef ->
         classDef.type.endsWith("MainActivity;") && method.name == "onCreate"
     }
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/SpoofClientPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/SpoofClientPatch.kt
index a9b6d462d5..f98a2c20c4 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/SpoofClientPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/SpoofClientPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.customclients.syncforreddit.api
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetAuthorizationStringFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetAuthorizationStringFingerprint.kt
index 964d85b191..391d21b38d 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetAuthorizationStringFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetAuthorizationStringFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetAuthorizationStringFingerprint : MethodFingerprint(
+internal object GetAuthorizationStringFingerprint : MethodFingerprint(
     strings = listOf("authorize.compact?client_id")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetBearerTokenFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetBearerTokenFingerprint.kt
index 918042bed3..937e616516 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetBearerTokenFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/GetBearerTokenFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetBearerTokenFingerprint : MethodFingerprint(
+internal object GetBearerTokenFingerprint : MethodFingerprint(
     strings = listOf("Basic")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/ImgurImageAPIFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/ImgurImageAPIFingerprint.kt
index a2980664ba..2815d84c7a 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/ImgurImageAPIFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/ImgurImageAPIFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ImgurImageAPIFingerprint : MethodFingerprint(
+internal object ImgurImageAPIFingerprint : MethodFingerprint(
     strings = listOf(
         "https://imgur-apiv3.p.rapidapi.com/3/image",
     )
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/LoadBrowserURLFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/LoadBrowserURLFingerprint.kt
index 21a2c7bbd9..7673c92ba5 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/LoadBrowserURLFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/api/fingerprints/LoadBrowserURLFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object LoadBrowserURLFingerprint : MethodFingerprint(
+internal object LoadBrowserURLFingerprint : MethodFingerprint(
     parameters = listOf("Landroid/view/View;", "Landroid/os/Bundle;"),
     opcodes = listOf(Opcode.CONST_4),
     strings = listOf("CustomInterface")
diff --git a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt
index 51eff7016d..f7cbc87716 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/customclients/syncforreddit/detection/piracy/fingerprints/PiracyDetectionFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
 
-object PiracyDetectionFingerprint : MethodFingerprint(
+internal object PiracyDetectionFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/DisableScreenshotPopupPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/DisableScreenshotPopupPatch.kt
index 404a0f854b..b7dabcfc74 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/DisableScreenshotPopupPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/DisableScreenshotPopupPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.layout.disablescreenshotpopup
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/fingerprints/DisableScreenshotPopupFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/fingerprints/DisableScreenshotPopupFingerprint.kt
index 4a09de03c5..95ef4d8730 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/fingerprints/DisableScreenshotPopupFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/layout/disablescreenshotpopup/fingerprints/DisableScreenshotPopupFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.layout.disablescreenshotpopup.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object DisableScreenshotPopupFingerprint : MethodFingerprint(
+internal object DisableScreenshotPopupFingerprint : MethodFingerprint(
     "V",
     parameters = listOf("Landroidx/compose/runtime/", "I"),
     customFingerprint = custom@{ methodDef, classDef ->
diff --git a/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/UnlockPremiumIconPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/UnlockPremiumIconPatch.kt
index 2ee20c6388..ee2ad4c9f8 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/UnlockPremiumIconPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/UnlockPremiumIconPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.layout.premiumicon
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/fingerprints/HasPremiumIconAccessFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/fingerprints/HasPremiumIconAccessFingerprint.kt
index fee3b774a2..19b4b295d8 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/fingerprints/HasPremiumIconAccessFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/fingerprints/HasPremiumIconAccessFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.layout.premiumicon.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object HasPremiumIconAccessFingerprint : MethodFingerprint(
+internal object HasPremiumIconAccessFingerprint : MethodFingerprint(
     "Z",
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("MyAccount;") && methodDef.name == "isPremiumSubscriber"
diff --git a/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt b/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt
index 5043bebadf..da5979aa37 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/SanitizeUrlQueryPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.reddit.misc.tracking.url
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/fingerprints/ShareLinkFormatterFingerprint.kt b/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/fingerprints/ShareLinkFormatterFingerprint.kt
index a80fb6b905..710dbb4587 100644
--- a/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/fingerprints/ShareLinkFormatterFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/reddit/misc/tracking/url/fingerprints/ShareLinkFormatterFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.misc.tracking.url.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ShareLinkFormatterFingerprint : MethodFingerprint(
+internal object ShareLinkFormatterFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, classDef ->
         methodDef.definingClass.startsWith("Lcom/reddit/sharing/") && classDef.sourceFile == "UrlUtil.kt"
     }
diff --git a/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/RemoveDebuggingDetectionPatch.kt b/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/RemoveDebuggingDetectionPatch.kt
index 8edec2f80f..600abb3434 100644
--- a/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/RemoveDebuggingDetectionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/RemoveDebuggingDetectionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.scbeasy.detection.debugging
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/fingerprints/DebuggingDetectionFingerprint.kt b/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/fingerprints/DebuggingDetectionFingerprint.kt
index 9ed9f2b0ab..8012b007ff 100644
--- a/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/fingerprints/DebuggingDetectionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/scbeasy/detection/debugging/fingerprints/DebuggingDetectionFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.scbeasy.detection.debugging.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object DebuggingDetectionFingerprint : MethodFingerprint(
+internal object DebuggingDetectionFingerprint : MethodFingerprint(
     returnType = "Z",
     strings = listOf("adb_enabled")
 )
diff --git a/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/fingerprints/RootDetectionFingerprint.kt b/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/fingerprints/RootDetectionFingerprint.kt
index d8340bbf3b..8673ffa750 100644
--- a/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/fingerprints/RootDetectionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/serviceportalbund/detection/root/fingerprints/RootDetectionFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.serviceportalbund.detection.root.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object RootDetectionFingerprint : MethodFingerprint(
+internal object RootDetectionFingerprint : MethodFingerprint(
     "V",
     accessFlags = AccessFlags.PUBLIC.value,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/VerticalScrollPatch.kt b/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/VerticalScrollPatch.kt
index 60949f08dc..5956b1558e 100644
--- a/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/VerticalScrollPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/VerticalScrollPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.shared.misc.fix.verticalscroll
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/fingerprints/CanScrollVerticallyFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/fingerprints/CanScrollVerticallyFingerprint.kt
index c063b5759d..7bd11b5084 100644
--- a/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/fingerprints/CanScrollVerticallyFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/shared/misc/fix/verticalscroll/fingerprints/CanScrollVerticallyFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object CanScrollVerticallyFingerprint : MethodFingerprint(
+internal object CanScrollVerticallyFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "Z",
     parameters = emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/AbstractSettingsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/shared/settings/AbstractSettingsResourcePatch.kt
index 952967b293..4935370d8c 100644
--- a/src/main/kotlin/app/revanced/patches/shared/settings/AbstractSettingsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/shared/settings/AbstractSettingsResourcePatch.kt
@@ -9,8 +9,8 @@ import app.revanced.patches.shared.settings.preference.addPreference
 import app.revanced.patches.shared.settings.preference.addResource
 import app.revanced.patches.shared.settings.preference.impl.ArrayResource
 import app.revanced.patches.shared.settings.preference.impl.StringResource
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
 import org.w3c.dom.Node
 import java.io.Closeable
 
@@ -28,7 +28,7 @@ abstract class AbstractSettingsResourcePatch(
         /* copy preference template from source dir */
         context.copyResources(
             sourceDirectory,
-            ResourceUtils.ResourceGroup(
+            ResourceGroup(
                 "xml", "$preferenceFileName.xml"
             )
         )
diff --git a/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/RemoveFileSizeLimitPatch.kt b/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/RemoveFileSizeLimitPatch.kt
index 88502cc1be..e042ec0098 100644
--- a/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/RemoveFileSizeLimitPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/RemoveFileSizeLimitPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.solidexplorer2.functionality.filesize
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
diff --git a/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/fingerprints/OnReadyFingerprint.kt b/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/fingerprints/OnReadyFingerprint.kt
index 676baab8fb..6117badb3d 100644
--- a/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/fingerprints/OnReadyFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/solidexplorer2/functionality/filesize/fingerprints/OnReadyFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.solidexplorer2.functionality.filesize.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object OnReadyFingerprint : MethodFingerprint(
+internal object OnReadyFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.CONST_WIDE_32, // Constant storing the 2MB limit
         Opcode.CMP_LONG,
diff --git a/src/main/kotlin/app/revanced/patches/songpal/badge/BadgeTabPatch.kt b/src/main/kotlin/app/revanced/patches/songpal/badge/BadgeTabPatch.kt
index f542cd8489..c32a7b0971 100644
--- a/src/main/kotlin/app/revanced/patches/songpal/badge/BadgeTabPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/songpal/badge/BadgeTabPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.songpal.badge
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions
diff --git a/src/main/kotlin/app/revanced/patches/songpal/badge/RemoveNotificationBadgePatch.kt b/src/main/kotlin/app/revanced/patches/songpal/badge/RemoveNotificationBadgePatch.kt
index 66c3bb5f26..f1dc8b7d2e 100644
--- a/src/main/kotlin/app/revanced/patches/songpal/badge/RemoveNotificationBadgePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/songpal/badge/RemoveNotificationBadgePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.songpal.badge
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/CreateTabsFingerprint.kt b/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/CreateTabsFingerprint.kt
index 4de209e33c..94639c4511 100644
--- a/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/CreateTabsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/CreateTabsFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
 import com.android.tools.smali.dexlib2.iface.reference.MethodReference
 
 // Located @ ub.i0.h#p (9.5.0)
-object CreateTabsFingerprint : MethodFingerprint(
+internal object CreateTabsFingerprint : MethodFingerprint(
     "Ljava/util/List",
     accessFlags = AccessFlags.PRIVATE.value,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/ShowNotificationFingerprint.kt b/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/ShowNotificationFingerprint.kt
index 96f434a4e4..016f7a88b8 100644
--- a/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/ShowNotificationFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/songpal/badge/fingerprints/ShowNotificationFingerprint.kt
@@ -9,7 +9,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
 import com.android.tools.smali.dexlib2.immutable.reference.ImmutableMethodReference
 
 // Located @ com.sony.songpal.mdr.vim.activity.MdrRemoteBaseActivity.e#run (9.5.0)
-object ShowNotificationFingerprint : MethodFingerprint(
+internal object ShowNotificationFingerprint : MethodFingerprint(
     "V",
     accessFlags = AccessFlags.PUBLIC.value,
     customFingerprint = custom@{ methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/OnDemandPatch.kt b/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/OnDemandPatch.kt
index 0edb23e9be..5e82eb2e09 100644
--- a/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/OnDemandPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/OnDemandPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.spotify.lite.ondemand
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/fingerprints/OnDemandFingerprint.kt b/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/fingerprints/OnDemandFingerprint.kt
index d153812adc..a67c34e1a2 100644
--- a/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/fingerprints/OnDemandFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/spotify/lite/ondemand/fingerprints/OnDemandFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
 @FuzzyPatternScanMethod(2)
-object OnDemandFingerprint : MethodFingerprint(
+internal object OnDemandFingerprint : MethodFingerprint(
     "L",
     parameters = listOf(),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/spotify/navbar/PremiumNavbarTabPatch.kt b/src/main/kotlin/app/revanced/patches/spotify/navbar/PremiumNavbarTabPatch.kt
index 4f88d89396..5b2ad2f4c4 100644
--- a/src/main/kotlin/app/revanced/patches/spotify/navbar/PremiumNavbarTabPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/spotify/navbar/PremiumNavbarTabPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.spotify.navbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/spotify/navbar/fingerprints/AddNavBarItemFingerprint.kt b/src/main/kotlin/app/revanced/patches/spotify/navbar/fingerprints/AddNavBarItemFingerprint.kt
index 41f2ca7693..74e296e124 100644
--- a/src/main/kotlin/app/revanced/patches/spotify/navbar/fingerprints/AddNavBarItemFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/spotify/navbar/fingerprints/AddNavBarItemFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patches.spotify.navbar.PremiumNavbarTabResourcePatch
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object AddNavBarItemFingerprint : LiteralValueFingerprint(
+internal object AddNavBarItemFingerprint : LiteralValueFingerprint(
      returnType = "V",
      accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
      literalSupplier = { PremiumNavbarTabResourcePatch.showBottomNavigationItemsTextId },
diff --git a/src/main/kotlin/app/revanced/patches/strava/subscription/UnlockSubscriptionPatch.kt b/src/main/kotlin/app/revanced/patches/strava/subscription/UnlockSubscriptionPatch.kt
index 965077ff9b..173abd9988 100644
--- a/src/main/kotlin/app/revanced/patches/strava/subscription/UnlockSubscriptionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/strava/subscription/UnlockSubscriptionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.strava.subscription
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/strava/subscription/fingerprints/GetSubscribedFingerprint.kt b/src/main/kotlin/app/revanced/patches/strava/subscription/fingerprints/GetSubscribedFingerprint.kt
index 5cb5ad4e5a..9d025a6af6 100644
--- a/src/main/kotlin/app/revanced/patches/strava/subscription/fingerprints/GetSubscribedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/strava/subscription/fingerprints/GetSubscribedFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.strava.subscription.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object GetSubscribedFingerprint : MethodFingerprint(
+internal object GetSubscribedFingerprint : MethodFingerprint(
     opcodes = listOf(Opcode.IGET_BOOLEAN),
     customFingerprint = { methodDef, classDef ->
         classDef.type.endsWith("/SubscriptionDetailResponse;") && methodDef.name == "getSubscribed"
diff --git a/src/main/kotlin/app/revanced/patches/strava/upselling/DisableSubscriptionSuggestionsPatch.kt b/src/main/kotlin/app/revanced/patches/strava/upselling/DisableSubscriptionSuggestionsPatch.kt
index 22e50c8548..222e6bf4c1 100644
--- a/src/main/kotlin/app/revanced/patches/strava/upselling/DisableSubscriptionSuggestionsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/strava/upselling/DisableSubscriptionSuggestionsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.strava.upselling
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
diff --git a/src/main/kotlin/app/revanced/patches/strava/upselling/fingerprints/GetModulesFingerprint.kt b/src/main/kotlin/app/revanced/patches/strava/upselling/fingerprints/GetModulesFingerprint.kt
index 461690e2b9..5d4ff59598 100644
--- a/src/main/kotlin/app/revanced/patches/strava/upselling/fingerprints/GetModulesFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/strava/upselling/fingerprints/GetModulesFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.strava.upselling.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object GetModulesFingerprint : MethodFingerprint(
+internal object GetModulesFingerprint : MethodFingerprint(
     opcodes = listOf(Opcode.IGET_OBJECT),
     customFingerprint = { methodDef, classDef ->
         classDef.type.endsWith("/GenericLayoutEntry;") && methodDef.name == "getModules"
diff --git a/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/CheckLockedThemesFingerprint.kt b/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/CheckLockedThemesFingerprint.kt
index 103cb04954..fcf7e056f6 100644
--- a/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/CheckLockedThemesFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/CheckLockedThemesFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.ticktick.misc.themeunlock.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CheckLockedThemesFingerprint : MethodFingerprint(
+internal object CheckLockedThemesFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("Theme;") && methodDef.name == "isLockedTheme"
     }
diff --git a/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/SetThemeFingerprint.kt b/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/SetThemeFingerprint.kt
index 804a925293..d54b61ed92 100644
--- a/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/SetThemeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/SetThemeFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.ticktick.misc.themeunlock.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SetThemeFingerprint : MethodFingerprint(
+internal object SetThemeFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("ThemePreviewActivity;") && methodDef.name == "lambda\$updateUserBtn\$1"
     }
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/ConvertHelpFeedItemListFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/ConvertHelpFeedItemListFingerprint.kt
index a7eb49b099..9fab703ff0 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/ConvertHelpFeedItemListFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/ConvertHelpFeedItemListFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.ad.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ConvertHelpFeedItemListFingerprint : MethodFingerprint(
+internal object ConvertHelpFeedItemListFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/ConvertHelp;") &&
                 methodDef.name.endsWith("${'$'}FeedItemList")
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/FeedItemListCloneFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/FeedItemListCloneFingerprint.kt
index 580c071102..181b88d714 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/FeedItemListCloneFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/FeedItemListCloneFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.ad.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object FeedItemListCloneFingerprint : MethodFingerprint(
+internal object FeedItemListCloneFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/FeedItemList;") && methodDef.name == "clone"
     }
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/FeedFilterPatch.kt b/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/FeedFilterPatch.kt
index 98ed1c2358..ea5d855e70 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/FeedFilterPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/FeedFilterPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tiktok.feedfilter
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/fingerprints/FeedApiServiceLIZFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/fingerprints/FeedApiServiceLIZFingerprint.kt
index 1dd37dd78c..1084d67eab 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/fingerprints/FeedApiServiceLIZFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/feedfilter/fingerprints/FeedApiServiceLIZFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object FeedApiServiceLIZFingerprint : MethodFingerprint(
+internal object FeedApiServiceLIZFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.SYNTHETIC,
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/FeedApiService;") && methodDef.name == "LIZ"
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint.kt
index 08ece99bf7..1a71c4e725 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object ACLCommonShareFingerprint : MethodFingerprint(
+internal object ACLCommonShareFingerprint : MethodFingerprint(
     "I",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint2.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint2.kt
index 5e9788c0ed..f58de3305e 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint2.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint2.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object ACLCommonShareFingerprint2 : MethodFingerprint(
+internal object ACLCommonShareFingerprint2 : MethodFingerprint(
     "I",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint3.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint3.kt
index 119190040b..2c6fd0970a 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint3.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint3.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object ACLCommonShareFingerprint3 : MethodFingerprint(
+internal object ACLCommonShareFingerprint3 : MethodFingerprint(
     "I",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/DownloadPathParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/DownloadPathParentFingerprint.kt
index 6f0ca43665..150e70bea2 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/DownloadPathParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/DownloadPathParentFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object DownloadPathParentFingerprint : MethodFingerprint(
+internal object DownloadPathParentFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     strings = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/ShowSeekbarPatch.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/ShowSeekbarPatch.kt
index 60fed08ce2..ec0005858f 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/ShowSeekbarPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/ShowSeekbarPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tiktok.interaction.seekbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/SetSeekBarShowTypeFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/SetSeekBarShowTypeFingerprint.kt
index ac0f73f3aa..bf0f292534 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/SetSeekBarShowTypeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/SetSeekBarShowTypeFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.interaction.seekbar.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SetSeekBarShowTypeFingerprint : MethodFingerprint(
+internal object SetSeekBarShowTypeFingerprint : MethodFingerprint(
     strings = listOf(
         "seekbar show type change, change to:"
     ),
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/ShouldShowSeekBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/ShouldShowSeekBarFingerprint.kt
index 428165bf73..9f9d43546e 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/ShouldShowSeekBarFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/ShouldShowSeekBarFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.interaction.seekbar.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ShouldShowSeekBarFingerprint : MethodFingerprint(
+internal object ShouldShowSeekBarFingerprint : MethodFingerprint(
     strings = listOf(
         "can not show seekbar, state: 1, not in resume"
     ),
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/fingerprints/SpeedControlParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/fingerprints/SpeedControlParentFingerprint.kt
index fc1ffe5472..61159b029a 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/fingerprints/SpeedControlParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/fingerprints/SpeedControlParentFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object SpeedControlParentFingerprint : MethodFingerprint(
+internal object SpeedControlParentFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     parameters = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/fingerprints/InitFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/fingerprints/InitFingerprint.kt
index 896637884d..03b12c2149 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/fingerprints/InitFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/fingerprints/InitFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.misc.integrations.fingerprints
 
 import app.revanced.patches.shared.integrations.AbstractIntegrationsPatch.IntegrationsFingerprint
 
-object InitFingerprint : IntegrationsFingerprint(
+internal object InitFingerprint : IntegrationsFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/AwemeHostApplication;") &&
                 methodDef.name == "onCreate"
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint.kt
index ef296cd2ca..ec5a8efea7 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.tiktok.misc.login.disablerequirement.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
-object MandatoryLoginServiceFingerprint : MethodFingerprint(
+internal object MandatoryLoginServiceFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/MandatoryLoginService;") &&
                 methodDef.name == "enableForcedLogin"
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint2.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint2.kt
index ad52c7f7ce..3a3f3107be 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint2.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/disablerequirement/fingerprints/MandatoryLoginServiceFingerprint2.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.misc.login.disablerequirement.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object MandatoryLoginServiceFingerprint2 : MethodFingerprint(
+internal object MandatoryLoginServiceFingerprint2 : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/MandatoryLoginService;") &&
                 methodDef.name == "shouldShowForcedLogin"
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleAuthAvailableFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleAuthAvailableFingerprint.kt
index 6b9d23c92a..8c60ee89f5 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleAuthAvailableFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleAuthAvailableFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object GoogleAuthAvailableFingerprint : MethodFingerprint(
+internal object GoogleAuthAvailableFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleOneTapAuthAvailableFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleOneTapAuthAvailableFingerprint.kt
index e949ddb6e0..5644e7e419 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleOneTapAuthAvailableFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/login/fixgoogle/fingerprints/GoogleOneTapAuthAvailableFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object GoogleOneTapAuthAvailableFingerprint : MethodFingerprint(
+internal object GoogleOneTapAuthAvailableFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt
index 95707830dd..9c4e37d937 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/SettingsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tiktok.misc.settings
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AdPersonalizationActivityOnCreateFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AdPersonalizationActivityOnCreateFingerprint.kt
index 4ba18bdc9b..deccbaadc5 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AdPersonalizationActivityOnCreateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AdPersonalizationActivityOnCreateFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object AdPersonalizationActivityOnCreateFingerprint : MethodFingerprint(
+internal object AdPersonalizationActivityOnCreateFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/AdPersonalizationActivity;") &&
                 methodDef.name == "onCreate"
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AddSettingsEntryFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AddSettingsEntryFingerprint.kt
index 1ee21b119e..ce1fd77853 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AddSettingsEntryFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AddSettingsEntryFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.tiktok.misc.settings.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object AddSettingsEntryFingerprint : MethodFingerprint(
+internal object AddSettingsEntryFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.CONST_CLASS,
         Opcode.APUT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryFingerprint.kt
index 1e544c285d..0b7d89df6b 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SettingsEntryFingerprint : MethodFingerprint(
+internal object SettingsEntryFingerprint : MethodFingerprint(
     strings = listOf(
         "pls pass item or extends the EventUnit"
     )
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryInfoFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryInfoFingerprint.kt
index 37e61b345a..5ccfc4a4db 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryInfoFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsEntryInfoFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SettingsEntryInfoFingerprint : MethodFingerprint(
+internal object SettingsEntryInfoFingerprint : MethodFingerprint(
     strings = listOf(
         "ExposeItem(title=",
         ", icon="
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsStatusLoadFingerprint.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsStatusLoadFingerprint.kt
index 345c69e1b3..2f390f238d 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsStatusLoadFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsStatusLoadFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.tiktok.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SettingsStatusLoadFingerprint : MethodFingerprint(
+internal object SettingsStatusLoadFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("Lapp/revanced/tiktok/settingsmenu/SettingsStatus;") &&
                 methodDef.name == "load"
diff --git a/src/main/kotlin/app/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatch.kt b/src/main/kotlin/app/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatch.kt
index 3e243d863c..4434575c7e 100644
--- a/src/main/kotlin/app/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tiktok/misc/spoof/sim/SpoofSimPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tiktok.misc.spoof.sim
 
-import app.revanced.extensions.findMutableMethodOf
+import app.revanced.util.findMutableMethodOf
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/trakt/UnlockProPatch.kt b/src/main/kotlin/app/revanced/patches/trakt/UnlockProPatch.kt
index 27f300efbd..d3bfc2ae60 100644
--- a/src/main/kotlin/app/revanced/patches/trakt/UnlockProPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/trakt/UnlockProPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.trakt
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPEPFingerprint.kt b/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPEPFingerprint.kt
index efee9014de..b4ade95bd0 100644
--- a/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPEPFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPEPFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.trakt.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object IsVIPEPFingerprint : MethodFingerprint(
+internal object IsVIPEPFingerprint : MethodFingerprint(
     customFingerprint = custom@{ methodDef, _ ->
         if (!methodDef.definingClass.endsWith("RemoteUser;")) return@custom false
 
diff --git a/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPFingerprint.kt b/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPFingerprint.kt
index 64a19615c9..251a264b14 100644
--- a/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/trakt/fingerprints/IsVIPFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.trakt.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object IsVIPFingerprint : MethodFingerprint(
+internal object IsVIPFingerprint : MethodFingerprint(
     customFingerprint = custom@{ methodDef, _ ->
         if (!methodDef.definingClass.endsWith("RemoteUser;")) return@custom false
 
diff --git a/src/main/kotlin/app/revanced/patches/trakt/fingerprints/RemoteUserFingerprint.kt b/src/main/kotlin/app/revanced/patches/trakt/fingerprints/RemoteUserFingerprint.kt
index 23c651ff14..b46e2387cf 100644
--- a/src/main/kotlin/app/revanced/patches/trakt/fingerprints/RemoteUserFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/trakt/fingerprints/RemoteUserFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.trakt.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object RemoteUserFingerprint : MethodFingerprint(
+internal object RemoteUserFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("RemoteUser;")
     }
diff --git a/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/fingerprints/BrightnessFingerprint.kt b/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/fingerprints/BrightnessFingerprint.kt
index ab51002c91..a055790964 100644
--- a/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/fingerprints/BrightnessFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/fingerprints/BrightnessFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.tudortmund.lockscreen.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object BrightnessFingerprint : MethodFingerprint(
+internal object BrightnessFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC.value,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/patch/ShowOnLockscreenPatch.kt b/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/patch/ShowOnLockscreenPatch.kt
index d9f704a527..9e335aefa1 100644
--- a/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/patch/ShowOnLockscreenPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tudortmund/lockscreen/patch/ShowOnLockscreenPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tudortmund.lockscreen.patch
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
@@ -25,7 +25,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
 object ShowOnLockscreenPatch : BytecodePatch(
     setOf(BrightnessFingerprint)
 ) {
-    const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/tudortmund/lockscreen/ShowOnLockscreenPatch;"
+    private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/tudortmund/lockscreen/ShowOnLockscreenPatch;"
 
     override fun execute(context: BytecodeContext) {
         BrightnessFingerprint.result?.mutableMethod?.apply {
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/DisableBlogNotificationReminderPatch.kt b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/DisableBlogNotificationReminderPatch.kt
index e073da5f15..5150a0f5c7 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/DisableBlogNotificationReminderPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/DisableBlogNotificationReminderPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tumblr.annoyances.notifications
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/fingerprints/IsBlogNotifyEnabledFingerprint.kt b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/fingerprints/IsBlogNotifyEnabledFingerprint.kt
index 7f7c0060ac..55b67f2fa8 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/fingerprints/IsBlogNotifyEnabledFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/notifications/fingerprints/IsBlogNotifyEnabledFingerprint.kt
@@ -6,4 +6,4 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 // It shows whenever you visit a certain blog for the second time and disables itself
 // if it was shown a total of 3 times (stored in app storage).
 // This targets the BlogNotifyCtaDialog.isEnabled() method to let it always return false.
-object IsBlogNotifyEnabledFingerprint : MethodFingerprint(strings = listOf("isEnabled --> ", "blog_notify_enabled"))
\ No newline at end of file
+internal object IsBlogNotifyEnabledFingerprint : MethodFingerprint(strings = listOf("isEnabled --> ", "blog_notify_enabled"))
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/DisableGiftMessagePopupPatch.kt b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/DisableGiftMessagePopupPatch.kt
index 17c15a792f..debc95b324 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/DisableGiftMessagePopupPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/DisableGiftMessagePopupPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tumblr.annoyances.popups
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/fingerprints/ShowGiftMessagePopupFingerprint.kt b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/fingerprints/ShowGiftMessagePopupFingerprint.kt
index 0dd27b3686..c65cd0291c 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/fingerprints/ShowGiftMessagePopupFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/annoyances/popups/fingerprints/ShowGiftMessagePopupFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.tumblr.annoyances.popups.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
 // This method is responsible for loading and displaying the visual Layout of the Gift Message Popup.
-object ShowGiftMessagePopupFingerprint : MethodFingerprint(
+internal object ShowGiftMessagePopupFingerprint : MethodFingerprint(
     strings = listOf("activity", "anchorView"),
     customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("GiftMessagePopup;") }
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/featureflags/OverrideFeatureFlagsPatch.kt b/src/main/kotlin/app/revanced/patches/tumblr/featureflags/OverrideFeatureFlagsPatch.kt
index 77202534d7..267ab358a9 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/featureflags/OverrideFeatureFlagsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/featureflags/OverrideFeatureFlagsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tumblr.featureflags
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/featureflags/fingerprints/GetFeatureValueFingerprint.kt b/src/main/kotlin/app/revanced/patches/tumblr/featureflags/fingerprints/GetFeatureValueFingerprint.kt
index 0b5e565af0..d0274125d1 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/featureflags/fingerprints/GetFeatureValueFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/featureflags/fingerprints/GetFeatureValueFingerprint.kt
@@ -12,7 +12,7 @@ import com.android.tools.smali.dexlib2.Opcode
 // Some features seem to be very old and never removed, though, such as Google Login.
 // The startIndex of the opcode pattern is at the start of the function after the arg null check.
 // we want to insert our instructions there.
-object GetFeatureValueFingerprint : MethodFingerprint(
+internal object GetFeatureValueFingerprint : MethodFingerprint(
     strings = listOf("feature"),
     opcodes = listOf(
         Opcode.IF_EQZ,
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/TimelineFilterPatch.kt b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/TimelineFilterPatch.kt
index f82bb84612..6b47bc1e55 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/TimelineFilterPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/TimelineFilterPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.tumblr.timelinefilter
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/PostsResponseConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/PostsResponseConstructorFingerprint.kt
index 317c0adb30..0969e59b40 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/PostsResponseConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/PostsResponseConstructorFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 
 // This is the constructor of the PostsResponse class.
 // The same applies here as with the TimelineConstructorFingerprint.
-object PostsResponseConstructorFingerprint : MethodFingerprint(
+internal object PostsResponseConstructorFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.CONSTRUCTOR or AccessFlags.PUBLIC,
     customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("/PostsResponse;") && methodDef.parameters.size == 4 },
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineConstructorFingerprint.kt
index 0cbaac995e..77392950fc 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineConstructorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 // This is the constructor of the Timeline class.
 // It receives the List<TimelineObject> as an argument with a @Json annotation, so this should be the first time
 // that the List<TimelineObject> is exposed in non-library code.
-object TimelineConstructorFingerprint : MethodFingerprint(
+internal object TimelineConstructorFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/Timeline;") && methodDef.parameters[0].type == "Ljava/util/List;"
     }, strings = listOf("timelineObjectsList")
diff --git a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineFilterIntegrationFingerprint.kt b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineFilterIntegrationFingerprint.kt
index f0c15da37e..39d5ee9462 100644
--- a/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineFilterIntegrationFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/tumblr/timelinefilter/fingerprints/TimelineFilterIntegrationFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.Opcode
 // This fingerprints the Integration TimelineFilterPatch.filterTimeline method.
 // The opcode fingerprint is searching for
 //   if ("BLOCKED_OBJECT_DUMMY".equals(elementType)) iterator.remove();
-object TimelineFilterIntegrationFingerprint : MethodFingerprint(
+internal object TimelineFilterIntegrationFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("/TimelineFilterPatch;") },
     strings = listOf("BLOCKED_OBJECT_DUMMY"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/audio/fingerprints/AudioAdsPresenterPlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/audio/fingerprints/AudioAdsPresenterPlayFingerprint.kt
index 8df31275fd..2d65f59039 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/audio/fingerprints/AudioAdsPresenterPlayFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/audio/fingerprints/AudioAdsPresenterPlayFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.twitch.ad.audio.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object AudioAdsPresenterPlayFingerprint : MethodFingerprint(
+internal object AudioAdsPresenterPlayFingerprint : MethodFingerprint(
     customFingerprint = { method, _ ->
         method.definingClass.endsWith("AudioAdsPlayerPresenter;") && method.name == "playAd"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt
index 75c951fdf4..5b7f6d8d83 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/EmbeddedAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.twitch.ad.embedded
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/fingerprints/CreateUsherClientFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/fingerprints/CreateUsherClientFingerprint.kt
index 3da90e2677..ad7c4eb2cc 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/fingerprints/CreateUsherClientFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/embedded/fingerprints/CreateUsherClientFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.ad.embedded.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CreateUsherClientFingerprint : MethodFingerprint(
+internal object CreateUsherClientFingerprint : MethodFingerprint(
     customFingerprint = { method, _ ->
         method.definingClass.endsWith("Ltv/twitch/android/network/OkHttpClientFactory;") && method.name == "buildOkHttpClient"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/video/VideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/video/VideoAdsPatch.kt
index 74604eff5b..00b134774b 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/video/VideoAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/video/VideoAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.twitch.ad.video
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/CheckAdEligibilityLambdaFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/CheckAdEligibilityLambdaFingerprint.kt
index d7ebe839a7..fa17d9a248 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/CheckAdEligibilityLambdaFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/CheckAdEligibilityLambdaFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.ad.video.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CheckAdEligibilityLambdaFingerprint : MethodFingerprint(
+internal object CheckAdEligibilityLambdaFingerprint : MethodFingerprint(
     returnType = "Lio/reactivex/Single;",
     parameters = listOf("L"),
     customFingerprint = { method, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/ContentConfigShowAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/ContentConfigShowAdsFingerprint.kt
index e36b7bbbd8..56955974c2 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/ContentConfigShowAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/ContentConfigShowAdsFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.ad.video.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ContentConfigShowAdsFingerprint : MethodFingerprint(
+internal object ContentConfigShowAdsFingerprint : MethodFingerprint(
     returnType = "Z",
     parameters = listOf(),
     customFingerprint = { method, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/GetReadyToShowAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/GetReadyToShowAdFingerprint.kt
index 421f755941..4081a458ae 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/GetReadyToShowAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/GetReadyToShowAdFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.ad.video.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetReadyToShowAdFingerprint : MethodFingerprint(
+internal object GetReadyToShowAdFingerprint : MethodFingerprint(
     returnType = "Ltv/twitch/android/core/mvp/presenter/StateAndAction;",
     parameters = listOf("L", "L"),
     customFingerprint = { method, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt
index 3ae1eb9004..d5224f60d2 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/ShowDeletedMessagesPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.twitch.chat.antidelete
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/ChatUtilCreateDeletedSpanFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/ChatUtilCreateDeletedSpanFingerprint.kt
index 68b21a6635..5e1c735995 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/ChatUtilCreateDeletedSpanFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/ChatUtilCreateDeletedSpanFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.chat.antidelete.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ChatUtilCreateDeletedSpanFingerprint : MethodFingerprint(
+internal object ChatUtilCreateDeletedSpanFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/ChatUtil\$Companion;") && methodDef.name == "createDeletedSpanFromChatMessageSpan"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/DeletedMessageClickableSpanCtorFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/DeletedMessageClickableSpanCtorFingerprint.kt
index 20a4c88d26..049d6ca107 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/DeletedMessageClickableSpanCtorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/DeletedMessageClickableSpanCtorFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object DeletedMessageClickableSpanCtorFingerprint : MethodFingerprint(
+internal object DeletedMessageClickableSpanCtorFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("DeletedMessageClickableSpan;")
diff --git a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/SetHasModAccessFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/SetHasModAccessFingerprint.kt
index 07b0e5d74d..6ddf388fe7 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/SetHasModAccessFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/SetHasModAccessFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.twitch.chat.antidelete.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SetHasModAccessFingerprint : MethodFingerprint(
+internal object SetHasModAccessFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("DeletedMessageClickableSpan;") && methodDef.name == "setHasModAccess"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt b/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt
index bad5e62f28..a119669683 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/AutoClaimChannelPointsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.twitch.chat.autoclaim
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/fingerprints/CommunityPointsButtonViewDelegateFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/fingerprints/CommunityPointsButtonViewDelegateFingerprint.kt
index 5cbc8b3825..621c47d9a1 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/fingerprints/CommunityPointsButtonViewDelegateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/chat/autoclaim/fingerprints/CommunityPointsButtonViewDelegateFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.chat.autoclaim.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CommunityPointsButtonViewDelegateFingerprint : MethodFingerprint(
+internal object CommunityPointsButtonViewDelegateFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("CommunityPointsButtonViewDelegate;")
                 && methodDef.name == "showClaimAvailable"
diff --git a/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt b/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt
index ecfe0c5d35..ac07bdc572 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/debug/DebugModePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.twitch.debug
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsDebugConfigEnabledFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsDebugConfigEnabledFingerprint.kt
index 6093021f81..f4f498a6b0 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsDebugConfigEnabledFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsDebugConfigEnabledFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.debug.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object IsDebugConfigEnabledFingerprint : MethodFingerprint(
+internal object IsDebugConfigEnabledFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/BuildConfigUtil;") && methodDef.name == "isDebugConfigEnabled"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsOmVerificationEnabledFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsOmVerificationEnabledFingerprint.kt
index b0ea587a63..a8dd3e4e8b 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsOmVerificationEnabledFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsOmVerificationEnabledFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.debug.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object IsOmVerificationEnabledFingerprint : MethodFingerprint(
+internal object IsOmVerificationEnabledFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/BuildConfigUtil;") && methodDef.name == "isOmVerificationEnabled"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/ShouldShowDebugOptionsFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/ShouldShowDebugOptionsFingerprint.kt
index a31d51e281..6e4aeda828 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/ShouldShowDebugOptionsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/ShouldShowDebugOptionsFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.debug.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ShouldShowDebugOptionsFingerprint : MethodFingerprint(
+internal object ShouldShowDebugOptionsFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/BuildConfigUtil;") && methodDef.name == "shouldShowDebugOptions"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitch/misc/integrations/fingerprints/InitFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/misc/integrations/fingerprints/InitFingerprint.kt
index a508206a69..6ae7150d82 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/misc/integrations/fingerprints/InitFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/misc/integrations/fingerprints/InitFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.misc.integrations.fingerprints
 
 import app.revanced.patches.shared.integrations.AbstractIntegrationsPatch.IntegrationsFingerprint
 
-object InitFingerprint : IntegrationsFingerprint(
+internal object InitFingerprint : IntegrationsFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/TwitchApplication;") &&
                 methodDef.name == "onCreate"
diff --git a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/SettingsPatch.kt b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/SettingsPatch.kt
index ec33ec0ca7..9dc707d417 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/SettingsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/SettingsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.twitch.misc.settings
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsOnClickFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsOnClickFingerprint.kt
index 489b437a5c..33962474bb 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsOnClickFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsOnClickFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object MenuGroupsOnClickFingerprint : MethodFingerprint(
+internal object MenuGroupsOnClickFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PRIVATE or AccessFlags.STATIC or AccessFlags.FINAL,
     listOf("L", "L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsUpdatedFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsUpdatedFingerprint.kt
index 642184ec2b..7eba63a31c 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsUpdatedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/MenuGroupsUpdatedFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object MenuGroupsUpdatedFingerprint : MethodFingerprint(
+internal object MenuGroupsUpdatedFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/SettingsMenuPresenter\$Event\$MenuGroupsUpdated;")
                 && methodDef.name == "<init>"
diff --git a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsActivityOnCreateFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsActivityOnCreateFingerprint.kt
index 6eab8d6837..5b1c637e4d 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsActivityOnCreateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsActivityOnCreateFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SettingsActivityOnCreateFingerprint : MethodFingerprint(
+internal object SettingsActivityOnCreateFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/SettingsActivity;") &&
                 methodDef.name == "onCreate"
diff --git a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsMenuItemEnumFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsMenuItemEnumFingerprint.kt
index ac0774c519..1f9cd51dac 100644
--- a/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsMenuItemEnumFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitch/misc/settings/fingerprints/SettingsMenuItemEnumFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitch.misc.settings.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SettingsMenuItemEnumFingerprint : MethodFingerprint(
+internal object SettingsMenuItemEnumFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("/SettingsMenuItem;") && methodDef.name == "<clinit>"
     }
diff --git a/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonHookPatchFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonHookPatchFingerprint.kt
index 3b7c55cefd..efe0a6e7c2 100644
--- a/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonHookPatchFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonHookPatchFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.twitter.misc.hook.json.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object JsonHookPatchFingerprint : MethodFingerprint(
+internal object JsonHookPatchFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ -> methodDef.name == "<clinit>" },
     opcodes = listOf(
         Opcode.INVOKE_INTERFACE, // Add dummy hook to hooks list.
diff --git a/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonInputStreamFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonInputStreamFingerprint.kt
index 46e616febe..b7dcb9df24 100644
--- a/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonInputStreamFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/JsonInputStreamFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.twitter.misc.hook.json.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object JsonInputStreamFingerprint : MethodFingerprint(
+internal object JsonInputStreamFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         if (methodDef.parameterTypes.size == 0) false
         else methodDef.parameterTypes.first() == "Ljava/io/InputStream;"
diff --git a/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/LoganSquareFingerprint.kt b/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/LoganSquareFingerprint.kt
index ced9eec245..6662d97f05 100644
--- a/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/LoganSquareFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/twitter/misc/hook/json/fingerprints/LoganSquareFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.twitter.misc.hook.json.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object LoganSquareFingerprint : MethodFingerprint(
+internal object LoganSquareFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("LoganSquare;") }
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/vsco/misc/pro/UnlockProPatch.kt b/src/main/kotlin/app/revanced/patches/vsco/misc/pro/UnlockProPatch.kt
index 5d2ebb9efa..d07dec1268 100644
--- a/src/main/kotlin/app/revanced/patches/vsco/misc/pro/UnlockProPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/vsco/misc/pro/UnlockProPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.vsco.misc.pro
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/vsco/misc/pro/fingerprints/RevCatSubscriptionFingerprint.kt b/src/main/kotlin/app/revanced/patches/vsco/misc/pro/fingerprints/RevCatSubscriptionFingerprint.kt
index 864142a374..10cab31812 100644
--- a/src/main/kotlin/app/revanced/patches/vsco/misc/pro/fingerprints/RevCatSubscriptionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/vsco/misc/pro/fingerprints/RevCatSubscriptionFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.vsco.misc.pro.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object RevCatSubscriptionFingerprint : MethodFingerprint(
+internal object RevCatSubscriptionFingerprint : MethodFingerprint(
     returnType = "V",
     strings = listOf("use_debug_subscription_settings"),
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertMessagingFingerprint.kt b/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertMessagingFingerprint.kt
index 41ec7c1e98..f8b0e8dd7a 100644
--- a/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertMessagingFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertMessagingFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.warnwetter.misc.firebasegetcert.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetMessagingCertFingerprint : MethodFingerprint(
+internal object GetMessagingCertFingerprint : MethodFingerprint(
     "Ljava/lang/String;",
     strings = listOf(
         "ContentValues",
diff --git a/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertRegistrationFingerprint.kt b/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertRegistrationFingerprint.kt
index 27957e5e0e..868faf028d 100644
--- a/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertRegistrationFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertRegistrationFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.warnwetter.misc.firebasegetcert.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetReqistrationCertFingerprint : MethodFingerprint(
+internal object GetReqistrationCertFingerprint : MethodFingerprint(
     "Ljava/lang/String;",
     strings = listOf(
         "FirebaseRemoteConfig",
diff --git a/src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/fingerprints/PromoCodeUnlockFingerprint.kt b/src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/fingerprints/PromoCodeUnlockFingerprint.kt
index 62ee9f5c61..caa8b2d865 100644
--- a/src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/fingerprints/PromoCodeUnlockFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/fingerprints/PromoCodeUnlockFingerprint.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.warnwetter.misc.promocode.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object PromoCodeUnlockFingerprint : MethodFingerprint(
+internal object PromoCodeUnlockFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("PromoTokenVerification;") && methodDef.name == "isValid"
     }
diff --git a/src/main/kotlin/app/revanced/patches/windyapp/misc/unlockpro/fingerprints/CheckProFingerprint.kt b/src/main/kotlin/app/revanced/patches/windyapp/misc/unlockpro/fingerprints/CheckProFingerprint.kt
index 93766651ce..ccf5433448 100644
--- a/src/main/kotlin/app/revanced/patches/windyapp/misc/unlockpro/fingerprints/CheckProFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/windyapp/misc/unlockpro/fingerprints/CheckProFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.windyapp.misc.unlockpro.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CheckProFingerprint : MethodFingerprint(
+internal object CheckProFingerprint : MethodFingerprint(
     "I",
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("RawUserData;") && methodDef.name == "isPro"
diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt
index b24d521d87..521d3ac9e4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.ad.general
 
-import app.revanced.extensions.findMutableMethodOf
-import app.revanced.extensions.injectHideViewCall
+import app.revanced.util.findMutableMethodOf
+import app.revanced.util.injectHideViewCall
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.patch.BytecodePatch
 import app.revanced.patcher.patch.annotation.CompatiblePackage
diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt
index a40f6f8c8a..0969c8e39f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/HideGetPremiumPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.ad.getpremium
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/fingerprints/GetPremiumViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/fingerprints/GetPremiumViewFingerprint.kt
index cd9ca99ce2..ca7abe1cb1 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/fingerprints/GetPremiumViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/ad/getpremium/fingerprints/GetPremiumViewFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object GetPremiumViewFingerprint : MethodFingerprint(
+internal object GetPremiumViewFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("I", "I"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt
index 44eb5c4941..240886f012 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.ad.video.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object LoadVideoAdsFingerprint : MethodFingerprint(
+internal object LoadVideoAdsFingerprint : MethodFingerprint(
     strings = listOf(
         "TriggerBundle doesn't have the required metadata specified by the trigger ",
         "Tried to enter slot with no assigned slotAdapter",
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt
index 7720265eb6..f057096a6c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/copyvideourl/CopyVideoUrlResourcePatch.kt
@@ -8,9 +8,9 @@ import app.revanced.patches.shared.settings.preference.impl.StringResource
 import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
 import app.revanced.patches.youtube.misc.playercontrols.BottomControlsResourcePatch
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
-import app.revanced.util.resources.ResourceUtils.mergeStrings
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
+import app.revanced.util.mergeStrings
 
 @Patch(
     dependencies = [
@@ -18,7 +18,7 @@ import app.revanced.util.resources.ResourceUtils.mergeStrings
         BottomControlsResourcePatch::class
     ]
 )
-object CopyVideoUrlResourcePatch : ResourcePatch() {
+internal object CopyVideoUrlResourcePatch : ResourcePatch() {
     override fun execute(context: ResourceContext) {
         SettingsPatch.PreferenceScreen.INTERACTIONS.addPreferences(
             PreferenceScreen(
@@ -42,11 +42,12 @@ object CopyVideoUrlResourcePatch : ResourcePatch() {
             )
         )
 
-        context.copyResources("copyvideourl", ResourceUtils.ResourceGroup(
+        context.copyResources("copyvideourl", ResourceGroup(
             resourceDirectoryName = "drawable",
             "revanced_yt_copy.xml",
             "revanced_yt_copy_timestamp.xml"
-        ))
+        )
+        )
 
         // merge strings
         context.mergeStrings("copyvideourl/host/values/strings.xml")
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/ExternalDownloadsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/ExternalDownloadsResourcePatch.kt
index 2d085528db..852693b3da 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/ExternalDownloadsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/ExternalDownloadsResourcePatch.kt
@@ -6,9 +6,9 @@ import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patches.shared.settings.preference.impl.*
 import app.revanced.patches.youtube.misc.playercontrols.BottomControlsResourcePatch
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
-import app.revanced.util.resources.ResourceUtils.mergeStrings
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
+import app.revanced.util.mergeStrings
 
 @Patch(
     dependencies = [
@@ -16,7 +16,7 @@ import app.revanced.util.resources.ResourceUtils.mergeStrings
         SettingsPatch::class
     ]
 )
-object ExternalDownloadsResourcePatch : ResourcePatch() {
+internal object ExternalDownloadsResourcePatch : ResourcePatch() {
 
     override fun execute(context: ResourceContext) {
         SettingsPatch.PreferenceScreen.INTERACTIONS.addPreferences(
@@ -46,7 +46,7 @@ object ExternalDownloadsResourcePatch : ResourcePatch() {
         context.mergeStrings("downloads/host/values/strings.xml")
 
         // Copy resources
-        context.copyResources("downloads", ResourceUtils.ResourceGroup("drawable", "revanced_yt_download_button.xml"))
+        context.copyResources("downloads", ResourceGroup("drawable", "revanced_yt_download_button.xml"))
 
         // Add download button node
         BottomControlsResourcePatch.addControls("downloads/host/layout/${BottomControlsResourcePatch.TARGET_RESOURCE_NAME}")
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt
index df3a7dd1d1..4578915f4b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/DisablePreciseSeekingGesturePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.interaction.seekbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt
index d9af400ef2..de7bb5082f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSeekbarTappingPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.interaction.seekbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt
index d88ca7c0ac..7972655732 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/EnableSlideToSeekPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.interaction.seekbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
@@ -38,7 +38,7 @@ object EnableSlideToSeekPatch : BytecodePatch(
         DoubleSpeedSeekNoticeFingerprint
     )
 ) {
-    const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/SlideToSeekPatch;"
+    private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/SlideToSeekPatch;"
 
     override fun execute(context: BytecodeContext) {
         SettingsPatch.PreferenceScreen.INTERACTIONS.addPreferences(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/DoubleSpeedSeekNoticeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/DoubleSpeedSeekNoticeFingerprint.kt
index c02ca6b457..eee74fde59 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/DoubleSpeedSeekNoticeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/DoubleSpeedSeekNoticeFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.interaction.seekbar.fingerprints
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object DoubleSpeedSeekNoticeFingerprint : LiteralValueFingerprint(
+internal object DoubleSpeedSeekNoticeFingerprint : LiteralValueFingerprint(
     returnType = "Z",
     parameters = emptyList(),
     opcodes = listOf(Opcode.MOVE_RESULT),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt
index 0a750f715c..3029925adc 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/IsSwipingUpFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.interaction.seekbar.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object IsSwipingUpFingerprint : MethodFingerprint(
+internal object IsSwipingUpFingerprint : MethodFingerprint(
     returnType = "Z",
     parameters = listOf("Landroid/view/MotionEvent;", "J"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/OnTouchEventHandlerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/OnTouchEventHandlerFingerprint.kt
index 2c355e0868..8c2c47649a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/OnTouchEventHandlerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/OnTouchEventHandlerFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
 @FuzzyPatternScanMethod(3)
-object OnTouchEventHandlerFingerprint : MethodFingerprint(
+internal object OnTouchEventHandlerFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.PUBLIC,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SeekbarTappingFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SeekbarTappingFingerprint.kt
index 51110a5b1a..ddb8bf47d9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SeekbarTappingFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SeekbarTappingFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.Opcode
 import com.android.tools.smali.dexlib2.iface.instruction.NarrowLiteralInstruction
 
 
-object SeekbarTappingFingerprint : MethodFingerprint(
+internal object SeekbarTappingFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SlideToSeekFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SlideToSeekFingerprint.kt
index 76a97d08aa..b618ea50f1 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SlideToSeekFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SlideToSeekFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.interaction.seekbar.fingerprints
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object SlideToSeekFingerprint : LiteralValueFingerprint(
+internal object SlideToSeekFingerprint : LiteralValueFingerprint(
     returnType = "Z",
     parameters = emptyList(),
     opcodes = listOf(Opcode.MOVE_RESULT),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsBytecodePatch.kt
index b897b8f359..08f6dc5ced 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsBytecodePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsBytecodePatch.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.interaction.swipecontrols
 
-import app.revanced.extensions.transformMethods
-import app.revanced.extensions.traverseClassHierarchy
+import app.revanced.util.transformMethods
+import app.revanced.util.traverseClassHierarchy
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.patch.BytecodePatch
 import app.revanced.patcher.patch.annotation.CompatiblePackage
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsResourcePatch.kt
index f4538da290..58c6a2146a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsResourcePatch.kt
@@ -5,13 +5,13 @@ import app.revanced.patcher.patch.ResourcePatch
 import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patches.shared.settings.preference.impl.*
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
 
 @Patch(
     dependencies = [SettingsPatch::class]
 )
-object SwipeControlsResourcePatch : ResourcePatch() {
+internal object SwipeControlsResourcePatch : ResourcePatch() {
     override fun execute(context: ResourceContext) {
         SettingsPatch.PreferenceScreen.INTERACTIONS.addPreferences(
             PreferenceScreen(
@@ -94,7 +94,7 @@ object SwipeControlsResourcePatch : ResourcePatch() {
 
         context.copyResources(
             "swipecontrols",
-            ResourceUtils.ResourceGroup(
+            ResourceGroup(
                 "drawable",
                 "ic_sc_brightness_auto.xml",
                 "ic_sc_brightness_manual.xml",
diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/fingerprints/SwipeControlsHostActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/fingerprints/SwipeControlsHostActivityFingerprint.kt
index 54709889c9..14bdfb9ba4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/fingerprints/SwipeControlsHostActivityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/fingerprints/SwipeControlsHostActivityFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object SwipeControlsHostActivityFingerprint : MethodFingerprint(
+internal object SwipeControlsHostActivityFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     parameters = listOf(),
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt
index 5fadfac0c2..c0f0f396c2 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/AutoCaptionsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.autocaptions
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/StartVideoInformerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/StartVideoInformerFingerprint.kt
index b7bb11b11b..aa95f3ffd0 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/StartVideoInformerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/StartVideoInformerFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object StartVideoInformerFingerprint : MethodFingerprint(
+internal object StartVideoInformerFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleButtonControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleButtonControllerFingerprint.kt
index 75ff0eabf3..6379cb6707 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleButtonControllerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleButtonControllerFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SubtitleButtonControllerFingerprint : MethodFingerprint(
+internal object SubtitleButtonControllerFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Lcom/google/android/libraries/youtube/player/subtitles/model/SubtitleTrack;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleTrackFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleTrackFingerprint.kt
index bc2b685093..8efb95b5fb 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleTrackFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleTrackFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SubtitleTrackFingerprint : MethodFingerprint(
+internal object SubtitleTrackFingerprint : MethodFingerprint(
     "Z", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf(
         Opcode.CONST_STRING,
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt
index f305500b4e..e71decb1d8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/branding/CustomBrandingPatch.kt
@@ -5,8 +5,8 @@ import app.revanced.patcher.patch.ResourcePatch
 import app.revanced.patcher.patch.annotation.CompatiblePackage
 import app.revanced.patcher.patch.annotation.Patch
 import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
 import java.io.File
 import java.nio.file.Files
 
@@ -74,7 +74,7 @@ object CustomBrandingPatch : ResourcePatch() {
         icon?.let { icon ->
             // Change the app icon.
             mipmapDirectories.map { directory ->
-                ResourceUtils.ResourceGroup(
+                ResourceGroup(
                     directory, *iconResourceFileNames
                 )
             }.let { resourceGroups ->
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/autoplay/HideAutoplayButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/autoplay/HideAutoplayButtonPatch.kt
index 0b0dab1df9..0d2e40cf98 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/autoplay/HideAutoplayButtonPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/autoplay/HideAutoplayButtonPatch.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.layout.buttons.autoplay
 
-import app.revanced.extensions.exception
-import app.revanced.extensions.findIndexForIdResource
+import app.revanced.util.exception
+import app.revanced.util.findIndexForIdResource
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt
index 7f1c5da1ec..5727bb93b9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/NavigationButtonsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.buttons.navigation
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/ResolvePivotBarFingerprintsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/ResolvePivotBarFingerprintsPatch.kt
index 7ade80fe1f..393f65a8a0 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/ResolvePivotBarFingerprintsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/ResolvePivotBarFingerprintsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.buttons.navigation
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.patch.BytecodePatch
 import app.revanced.patcher.patch.PatchException
@@ -13,7 +13,7 @@ import app.revanced.patches.youtube.layout.buttons.navigation.fingerprints.Pivot
     description = "Resolves necessary fingerprints.",
     dependencies = [ResourceMappingPatch::class]
 )
-object ResolvePivotBarFingerprintsPatch : BytecodePatch(
+internal object ResolvePivotBarFingerprintsPatch : BytecodePatch(
     setOf(PivotBarConstructorFingerprint)
 ) {
     internal var imageOnlyTabResourceId: Long = -1
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/AddCreateButtonViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/AddCreateButtonViewFingerprint.kt
index 51d664a343..40bf1cb8dc 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/AddCreateButtonViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/AddCreateButtonViewFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 
 internal const val ANDROID_AUTOMOTIVE_STRING = "Android Automotive"
 
-object AddCreateButtonViewFingerprint : MethodFingerprint(
+internal object AddCreateButtonViewFingerprint : MethodFingerprint(
     strings = listOf(
         "Android Wear",
         ANDROID_AUTOMOTIVE_STRING,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/InitializeButtonsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/InitializeButtonsFingerprint.kt
index 80f6618b95..f64015c78a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/InitializeButtonsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/InitializeButtonsFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patches.youtube.layout.buttons.navigation.ResolvePivotBarFin
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object InitializeButtonsFingerprint : LiteralValueFingerprint(
+internal object InitializeButtonsFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarButtonsViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarButtonsViewFingerprint.kt
index 7ee7b1ed16..7827a4f4f4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarButtonsViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarButtonsViewFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.buttons.navigation.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object PivotBarButtonsViewFingerprint : MethodFingerprint(
+internal object PivotBarButtonsViewFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_VIRTUAL_RANGE,
         Opcode.MOVE_RESULT_OBJECT, // target reference
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarConstructorFingerprint.kt
index fb42ffcee3..37674a2bfc 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarConstructorFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object PivotBarConstructorFingerprint : MethodFingerprint(
+internal object PivotBarConstructorFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     strings = listOf("com.google.android.apps.youtube.app.endpoint.flags")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarCreateButtonViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarCreateButtonViewFingerprint.kt
index 2b209b94f4..a32ee0cb71 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarCreateButtonViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarCreateButtonViewFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.buttons.navigation.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object PivotBarCreateButtonViewFingerprint : MethodFingerprint(
+internal object PivotBarCreateButtonViewFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_DIRECT_RANGE,
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarEnumFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarEnumFingerprint.kt
index f705842099..df40cc9eb8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarEnumFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/navigation/fingerprints/PivotBarEnumFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.buttons.navigation.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object PivotBarEnumFingerprint : MethodFingerprint(
+internal object PivotBarEnumFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_STATIC,
         Opcode.MOVE_RESULT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/HidePlayerButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/HidePlayerButtonsPatch.kt
index 3c6aa6d8a0..130ad4ea03 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/HidePlayerButtonsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/HidePlayerButtonsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.buttons.player.hide
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/fingerprints/PlayerControlsVisibilityModelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/fingerprints/PlayerControlsVisibilityModelFingerprint.kt
index 6cb44857b8..4aae5c27ed 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/fingerprints/PlayerControlsVisibilityModelFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/player/hide/fingerprints/PlayerControlsVisibilityModelFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.buttons.player.hide.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object PlayerControlsVisibilityModelFingerprint : MethodFingerprint(
+internal object PlayerControlsVisibilityModelFingerprint : MethodFingerprint(
     opcodes = listOf(Opcode.INVOKE_DIRECT_RANGE),
     strings = listOf("Missing required properties:", "hasNext", "hasPrevious")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsPatch.kt
index c4a06cea5e..7286431a6b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.albumcards
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsResourcePatch.kt
index e409364044..2501d47923 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/AlbumCardsResourcePatch.kt
@@ -14,7 +14,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ],
 )
-object AlbumCardsResourcePatch : ResourcePatch() {
+internal object AlbumCardsResourcePatch : ResourcePatch() {
     internal var albumCardId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/fingerprints/AlbumCardsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/fingerprints/AlbumCardsFingerprint.kt
index 60deb9ee77..6bbabdf520 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/fingerprints/AlbumCardsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/albumcards/fingerprints/AlbumCardsFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object AlbumCardsFingerprint : LiteralValueFingerprint(
+internal object AlbumCardsFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
         Opcode.MOVE_RESULT_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsPatch.kt
index e105fd8e11..9ca0ae798a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.breakingnews
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsResourcePatch.kt
index cbfafb1709..9de7b83dd4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/BreakingNewsResourcePatch.kt
@@ -14,7 +14,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ],
 )
-object BreakingNewsResourcePatch : ResourcePatch() {
+internal object BreakingNewsResourcePatch : ResourcePatch() {
     internal var horizontalCardListId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/fingerprints/BreakingNewsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/fingerprints/BreakingNewsFingerprint.kt
index e693354885..a67ad6f05a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/fingerprints/BreakingNewsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/breakingnews/fingerprints/BreakingNewsFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object BreakingNewsFingerprint : LiteralValueFingerprint(
+internal object BreakingNewsFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
         Opcode.CONST,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxPatch.kt
index 36120174d0..075a59e625 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.crowdfundingbox
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxResourcePatch.kt
index 0bfb0f2f55..4df6484aa4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/CrowdfundingBoxResourcePatch.kt
@@ -14,7 +14,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ],
 )
-object CrowdfundingBoxResourcePatch : ResourcePatch() {
+internal object CrowdfundingBoxResourcePatch : ResourcePatch() {
     internal var crowdfundingBoxId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt
index 31039bd036..465b10bfe5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/crowdfundingbox/fingerprints/CrowdfundingBoxFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object CrowdfundingBoxFingerprint : LiteralValueFingerprint(
+internal object CrowdfundingBoxFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt
index 13c34e8abe..b29f410b6d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.endscreencards
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsResourcePatch.kt
index 790c141c1e..87e65d6330 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/HideEndscreenCardsResourcePatch.kt
@@ -14,7 +14,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ],
 )
-object HideEndscreenCardsResourcePatch : ResourcePatch() {
+internal object HideEndscreenCardsResourcePatch : ResourcePatch() {
     internal var layoutCircle: Long = -1
     internal var layoutIcon: Long = -1
     internal var layoutVideo: Long = -1
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutCircleFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutCircleFingerprint.kt
index 36f245bf0d..553bc61834 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutCircleFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutCircleFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patches.youtube.layout.hide.endscreencards.HideEndscreenCard
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object LayoutCircleFingerprint : LiteralValueFingerprint(
+internal object LayoutCircleFingerprint : LiteralValueFingerprint(
     returnType = "Landroid/view/View;",
     opcodes = listOf(
         Opcode.CONST,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutIconFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutIconFingerprint.kt
index c9e2dbf4de..60c751c7d1 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutIconFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutIconFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patches.youtube.layout.hide.endscreencards.HideEndscreenCard
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object LayoutIconFingerprint : LiteralValueFingerprint(
+internal object LayoutIconFingerprint : LiteralValueFingerprint(
     returnType = "Landroid/view/View;",
     opcodes = listOf(
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutVideoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutVideoFingerprint.kt
index 57b2847898..0b082fedb6 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutVideoFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/endscreencards/fingerprints/LayoutVideoFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patches.youtube.layout.hide.endscreencards.HideEndscreenCard
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object LayoutVideoFingerprint : LiteralValueFingerprint(
+internal object LayoutVideoFingerprint : LiteralValueFingerprint(
     returnType = "Landroid/view/View;",
     opcodes = listOf(
         Opcode.CONST,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarPatch.kt
index 9fe7dde7be..85a6495500 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.filterbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarResourcePatch.kt
index b726c25ac2..dedc114276 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/HideFilterBarResourcePatch.kt
@@ -10,7 +10,7 @@ import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
 
 @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class])
-object HideFilterBarResourcePatch : ResourcePatch() {
+internal object HideFilterBarResourcePatch : ResourcePatch() {
     internal var filterBarHeightId = -1L
     internal var relatedChipCloudMarginId = -1L
     internal var barContainerHeightId = -1L
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/FilterBarHeightFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/FilterBarHeightFingerprint.kt
index 2f7f36a2b6..b15abf5bb9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/FilterBarHeightFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/FilterBarHeightFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object FilterBarHeightFingerprint : LiteralValueFingerprint(
+internal object FilterBarHeightFingerprint : LiteralValueFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/RelatedChipCloudFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/RelatedChipCloudFingerprint.kt
index cafd605d06..d9efa6c49d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/RelatedChipCloudFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/RelatedChipCloudFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RelatedChipCloudFingerprint : LiteralValueFingerprint(
+internal object RelatedChipCloudFingerprint : LiteralValueFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/SearchResultsChipBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/SearchResultsChipBarFingerprint.kt
index da4a1c9433..ed1179ba72 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/SearchResultsChipBarFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/filterbar/fingerprints/SearchResultsChipBarFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SearchResultsChipBarFingerprint : LiteralValueFingerprint(
+internal object SearchResultsChipBarFingerprint : LiteralValueFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonPatch.kt
index 05c276e345..75fa8290ef 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.floatingmicrophone
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonResourcePatch.kt
index ba5b0372b0..865462615a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/HideFloatingMicrophoneButtonResourcePatch.kt
@@ -15,7 +15,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ]
 )
-object HideFloatingMicrophoneButtonResourcePatch : ResourcePatch() {
+internal object HideFloatingMicrophoneButtonResourcePatch : ResourcePatch() {
     internal var fabButtonId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/fingerprints/ShowFloatingMicrophoneButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/fingerprints/ShowFloatingMicrophoneButtonFingerprint.kt
index bc1e4efba5..4abde10606 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/fingerprints/ShowFloatingMicrophoneButtonFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/floatingmicrophone/fingerprints/ShowFloatingMicrophoneButtonFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ShowFloatingMicrophoneButtonFingerprint : LiteralValueFingerprint(
+internal object ShowFloatingMicrophoneButtonFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt
index 37bfa55a70..6240eba9ad 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/DisableFullscreenAmbientModePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.fullscreenambientmode
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/fingerprints/InitializeAmbientModeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/fingerprints/InitializeAmbientModeFingerprint.kt
index 0bd78d8dec..f5c8ddf4f8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/fingerprints/InitializeAmbientModeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/fullscreenambientmode/fingerprints/InitializeAmbientModeFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object InitializeAmbientModeFingerprint : LiteralValueFingerprint(
+internal object InitializeAmbientModeFingerprint : LiteralValueFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.CONSTRUCTOR or AccessFlags.PUBLIC,
     opcodes = listOf(Opcode.MOVE_RESULT),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt
index 419338a28c..f9775cf881 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.general
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ParseElementFromBufferFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ParseElementFromBufferFingerprint.kt
index c1ed66b86f..f978acd746 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ParseElementFromBufferFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ParseElementFromBufferFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.hide.general.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object ParseElementFromBufferFingerprint : MethodFingerprint(
+internal object ParseElementFromBufferFingerprint : MethodFingerprint(
     parameters = listOf("L","L","[B", "L","L"),
     opcodes = listOf(Opcode.INVOKE_INTERFACE, Opcode.MOVE_RESULT_OBJECT),
     strings = listOf("Failed to parse Element")
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/PlayerOverlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/PlayerOverlayFingerprint.kt
index b08c588e5f..3738d41880 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/PlayerOverlayFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/PlayerOverlayFingerprint.kt
@@ -4,6 +4,6 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object PlayerOverlayFingerprint : MethodFingerprint(
+internal object PlayerOverlayFingerprint : MethodFingerprint(
     "L", AccessFlags.PUBLIC or AccessFlags.FINAL, strings = listOf("player_overlay_in_video_programming")
 )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ShowWatermarkFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ShowWatermarkFingerprint.kt
index 3b66314ec2..430382140e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ShowWatermarkFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/fingerprints/ShowWatermarkFingerprint.kt
@@ -4,6 +4,6 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object ShowWatermarkFingerprint : MethodFingerprint(
+internal object ShowWatermarkFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoFingerprint.kt
index 0c9a4c3d36..740ec00c7b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object InfocardsIncognitoFingerprint : MethodFingerprint(
+internal object InfocardsIncognitoFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "Ljava/lang/Boolean;",
     parameters = listOf("L", "J"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt
index b3f1c373e4..2fabd6aa3a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsIncognitoParentFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object InfocardsIncognitoParentFingerprint : MethodFingerprint(
+internal object InfocardsIncognitoParentFingerprint : MethodFingerprint(
     "Ljava/lang/String;",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     strings = listOf("player_overlay_info_card_teaser"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsMethodCallFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsMethodCallFingerprint.kt
index 1336de5e40..370ec7d8b8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsMethodCallFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/fingerprints/InfocardsMethodCallFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patches.youtube.layout.hide.infocards.HideInfocardsResourceP
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object InfocardsMethodCallFingerprint : LiteralValueFingerprint(
+internal object InfocardsMethodCallFingerprint : LiteralValueFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_VIRTUAL,
         Opcode.IGET_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonPatch.kt
index b38f190362..47d4ff3fca 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.loadmorebutton
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonResourcePatch.kt
index 65f733afed..1d07c57026 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/HideLoadMoreButtonResourcePatch.kt
@@ -14,7 +14,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ]
 )
-object HideLoadMoreButtonResourcePatch : ResourcePatch() {
+internal object HideLoadMoreButtonResourcePatch : ResourcePatch() {
     internal var expandButtonDownId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/fingerprints/HideLoadMoreButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/fingerprints/HideLoadMoreButtonFingerprint.kt
index 49894a271d..2433ae38b8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/fingerprints/HideLoadMoreButtonFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/loadmorebutton/fingerprints/HideLoadMoreButtonFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patches.youtube.layout.hide.loadmorebutton.HideLoadMoreButto
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object HideLoadMoreButtonFingerprint : LiteralValueFingerprint(
+internal object HideLoadMoreButtonFingerprint : LiteralValueFingerprint(
     opcodes = listOf(
         Opcode.CONST,
         Opcode.CONST_4,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressPatch.kt
index 07dbcc7d84..ed5766b99a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.personalinformation
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressResourcePatch.kt
index 8044a32e31..3838d0dc42 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/HideEmailAddressResourcePatch.kt
@@ -10,7 +10,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
 
 @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class])
 @Suppress("unused")
-object HideEmailAddressResourcePatch : ResourcePatch() {
+internal object HideEmailAddressResourcePatch : ResourcePatch() {
     internal var accountSwitcherAccessibilityLabelId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt
index 7c2bec781b..6ea89a8df0 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/personalinformation/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patches.youtube.layout.hide.personalinformation.HideEmailAdd
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object AccountSwitcherAccessibilityLabelFingerprint : LiteralValueFingerprint(
+internal object AccountSwitcherAccessibilityLabelFingerprint : LiteralValueFingerprint(
     returnType = "V",
     parameters = listOf("L", "Ljava/lang/Object;"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt
index af3aa6c9df..adca1b9f4d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/rollingnumber/DisableRollingNumberAnimationPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.rollingnumber
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt
index 43701440d5..e59040085b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt
@@ -1,8 +1,8 @@
 package app.revanced.patches.youtube.layout.hide.shorts
 
-import app.revanced.extensions.exception
-import app.revanced.extensions.findIndexForIdResource
-import app.revanced.extensions.injectHideViewCall
+import app.revanced.util.exception
+import app.revanced.util.findIndexForIdResource
+import app.revanced.util.injectHideViewCall
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/BottomNavigationBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/BottomNavigationBarFingerprint.kt
index 0baeeea024..12ca03fb13 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/BottomNavigationBarFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/BottomNavigationBarFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object BottomNavigationBarFingerprint : MethodFingerprint(
+internal object BottomNavigationBarFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Landroid/view/View;", "Landroid/os/Bundle;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/CreateShortsButtonsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/CreateShortsButtonsFingerprint.kt
index 3a3222d227..97ac691213 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/CreateShortsButtonsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/CreateShortsButtonsFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patches.youtube.layout.hide.shorts.HideShortsComponentsResou
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object CreateShortsButtonsFingerprint : LiteralValueFingerprint(
+internal object CreateShortsButtonsFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("Z", "Z", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/ReelConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/ReelConstructorFingerprint.kt
index 215d297ca6..912aa9704c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/ReelConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/ReelConstructorFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ReelConstructorFingerprint : LiteralValueFingerprint(
+internal object ReelConstructorFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(Opcode.INVOKE_VIRTUAL),
     literalSupplier = { HideShortsComponentsResourcePatch.reelMultipleItemShelfId }
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarFingerprint.kt
index dd5a34642a..d6d74b1e83 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.hide.shorts.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object RenderBottomNavigationBarFingerprint : MethodFingerprint(
+internal object RenderBottomNavigationBarFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.IGET_OBJECT,
         Opcode.MONITOR_ENTER,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarParentFingerprint.kt
index 15e095a0bf..cb606d5c31 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/RenderBottomNavigationBarParentFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.layout.hide.shorts.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object RenderBottomNavigationBarParentFingerprint : MethodFingerprint(
+internal object RenderBottomNavigationBarParentFingerprint : MethodFingerprint(
     parameters = listOf("I", "I", "L", "L", "J", "L"),
     strings = listOf("aa")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityFingerprint.kt
index 0b02ff8ed9..51e73b5e0a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SetPivotBarVisibilityFingerprint : MethodFingerprint(
+internal object SetPivotBarVisibilityFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     parameters = listOf("Z"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityParentFingerprint.kt
index c4f0f982f5..31bf72d85e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/fingerprints/SetPivotBarVisibilityParentFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.layout.hide.shorts.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SetPivotBarVisibilityParentFingerprint : MethodFingerprint(
+internal object SetPivotBarVisibilityParentFingerprint : MethodFingerprint(
     parameters = listOf("Z"),
     strings = listOf("FEnotifications_inbox")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt
index 2a89d343ae..b51a02f4f7 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.suggestedvideoendscreen
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenResourcePatch.kt
index cd35317c9c..f43faaee32 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/DisableSuggestedVideoEndScreenResourcePatch.kt
@@ -14,7 +14,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
         ResourceMappingPatch::class
     ],
 )
-object DisableSuggestedVideoEndScreenResourcePatch : ResourcePatch() {
+internal object DisableSuggestedVideoEndScreenResourcePatch : ResourcePatch() {
     internal var sizeAdjustableLiteAutoNavOverlay: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/fingerprints/CreateEndScreenViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/fingerprints/CreateEndScreenViewFingerprint.kt
index c0091620fa..6e747ac7e9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/fingerprints/CreateEndScreenViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/suggestedvideoendscreen/fingerprints/CreateEndScreenViewFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object CreateEndScreenViewFingerprint : LiteralValueFingerprint(
+internal object CreateEndScreenViewFingerprint : LiteralValueFingerprint(
     returnType= "Landroid/view/View;",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Landroid/content/Context;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt
index dac9de831d..0712c6cc8c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/HideTimestampPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.hide.time
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/fingerprints/TimeCounterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/fingerprints/TimeCounterFingerprint.kt
index 4cf61b2091..86618bf63e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/fingerprints/TimeCounterFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hide/time/fingerprints/TimeCounterFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
 @FuzzyPatternScanMethod(1)
-object TimeCounterFingerprint : MethodFingerprint(
+internal object TimeCounterFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt
index ceed15e375..2ab361ff29 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/PlayerPopupPanelsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.panels.popup
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/fingerprints/EngagementPanelControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/fingerprints/EngagementPanelControllerFingerprint.kt
index c833ab8645..4ee031e493 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/fingerprints/EngagementPanelControllerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/panels/popup/fingerprints/EngagementPanelControllerFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object EngagementPanelControllerFingerprint : MethodFingerprint(
+internal object EngagementPanelControllerFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     strings = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt
index 56df609b38..b465b0a881 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/background/PlayerControlsBackgroundPatch.kt
@@ -1,10 +1,10 @@
 package app.revanced.patches.youtube.layout.player.background
 
-import app.revanced.extensions.doRecursively
 import app.revanced.patcher.data.ResourceContext
 import app.revanced.patcher.patch.ResourcePatch
 import app.revanced.patcher.patch.annotation.CompatiblePackage
 import app.revanced.patcher.patch.annotation.Patch
+import app.revanced.util.doRecursively
 import org.w3c.dom.Element
 
 @Patch(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt
index e297732467..73e581e1f7 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityPatch.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.layout.player.overlay
 
-import app.revanced.extensions.exception
-import app.revanced.extensions.indexOfFirstWideLiteralInstructionValue
+import app.revanced.util.exception
+import app.revanced.util.indexOfFirstWideLiteralInstructionValue
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityResourcePatch.kt
index b7eba42dd0..78649a6ae4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/CustomPlayerOverlayOpacityResourcePatch.kt
@@ -12,7 +12,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
 @Patch(
     dependencies = [SettingsPatch::class, ResourceMappingPatch::class]
 )
-object CustomPlayerOverlayOpacityResourcePatch : ResourcePatch() {
+internal object CustomPlayerOverlayOpacityResourcePatch : ResourcePatch() {
     internal var scrimOverlayId = -1L
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/fingerprints/CreatePlayerOverviewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/fingerprints/CreatePlayerOverviewFingerprint.kt
index 202eed70f1..23641d6c0a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/fingerprints/CreatePlayerOverviewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/player/overlay/fingerprints/CreatePlayerOverviewFingerprint.kt
@@ -1,13 +1,13 @@
 package app.revanced.patches.youtube.layout.player.overlay.fingerprints
 
-import app.revanced.extensions.containsWideLiteralInstructionValue
+import app.revanced.util.containsWideLiteralInstructionValue
 import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import app.revanced.patches.youtube.layout.player.overlay.CustomPlayerOverlayOpacityResourcePatch
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object CreatePlayerOverviewFingerprint : MethodFingerprint(
+internal object CreatePlayerOverviewFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt
index 4cf98c1553..ef19a1c123 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt
@@ -1,8 +1,8 @@
 package app.revanced.patches.youtube.layout.returnyoutubedislike
 
-import app.revanced.extensions.exception
-import app.revanced.extensions.getReference
-import app.revanced.extensions.indexOfFirstInstruction
+import app.revanced.util.exception
+import app.revanced.util.getReference
+import app.revanced.util.indexOfFirstInstruction
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikeResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikeResourcePatch.kt
index 491cfd265e..de38d67141 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikeResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikeResourcePatch.kt
@@ -7,12 +7,12 @@ import app.revanced.patches.shared.mapping.misc.ResourceMappingPatch
 import app.revanced.patches.shared.settings.preference.impl.Preference
 import app.revanced.patches.shared.settings.preference.impl.StringResource
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import app.revanced.util.resources.ResourceUtils.mergeStrings
+import app.revanced.util.mergeStrings
 
 @Patch(
     dependencies = [SettingsPatch::class]
 )
-object ReturnYouTubeDislikeResourcePatch : ResourcePatch() {
+internal object ReturnYouTubeDislikeResourcePatch : ResourcePatch() {
     internal var oldUIDislikeId: Long = -1
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikeFingerprint.kt
index c1fc77c757..8e80cd83e5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikeFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.layout.returnyoutubedislike.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object DislikeFingerprint : MethodFingerprint(
+internal object DislikeFingerprint : MethodFingerprint(
     "V",
     strings = listOf("like/dislike")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikesOldLayoutTextViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikesOldLayoutTextViewFingerprint.kt
index 4afcb86943..ef7cc5e7cd 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikesOldLayoutTextViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikesOldLayoutTextViewFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object DislikesOldLayoutTextViewFingerprint : LiteralValueFingerprint(
+internal object DislikesOldLayoutTextViewFingerprint : LiteralValueFingerprint(
     returnType = "V",
     parameters = listOf("L"),
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/LikeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/LikeFingerprint.kt
index b4de5ac6e7..2803f74815 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/LikeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/LikeFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.layout.returnyoutubedislike.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object LikeFingerprint : MethodFingerprint(
+internal object LikeFingerprint : MethodFingerprint(
     "V",
     strings = listOf("like/like")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RemoveLikeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RemoveLikeFingerprint.kt
index 9ded9f83e4..01babf54e8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RemoveLikeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RemoveLikeFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.layout.returnyoutubedislike.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object RemoveLikeFingerprint : MethodFingerprint(
+internal object RemoveLikeFingerprint : MethodFingerprint(
     "V",
     strings = listOf("like/removelike")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureAnimatedTextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureAnimatedTextFingerprint.kt
index 8a44416acf..717131ff59 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureAnimatedTextFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureAnimatedTextFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves to class found in [RollingNumberMeasureTextParentFingerprint].
  */
-object RollingNumberMeasureAnimatedTextFingerprint : MethodFingerprint(
+internal object RollingNumberMeasureAnimatedTextFingerprint : MethodFingerprint(
     returnType = "F",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Ljava/lang/String;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureStaticLabelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureStaticLabelFingerprint.kt
index 4c35f9bb35..612b711d7d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureStaticLabelFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureStaticLabelFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves to class found in [RollingNumberMeasureTextParentFingerprint].
  */
-object RollingNumberMeasureStaticLabelFingerprint : MethodFingerprint(
+internal object RollingNumberMeasureStaticLabelFingerprint : MethodFingerprint(
     returnType = "F",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Ljava/lang/String;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureTextParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureTextParentFingerprint.kt
index 1d8b16e856..319605bebf 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureTextParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberMeasureTextParentFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object RollingNumberMeasureTextParentFingerprint : MethodFingerprint(
+internal object RollingNumberMeasureTextParentFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/String;",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberSetterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberSetterFingerprint.kt
index cf0857c618..e79cf27292 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberSetterFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberSetterFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.returnyoutubedislike.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object RollingNumberSetterFingerprint : MethodFingerprint(
+internal object RollingNumberSetterFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_DIRECT,
         Opcode.IGET_OBJECT
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberTextViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberTextViewFingerprint.kt
index 2a67f7bf6f..54fe00865f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberTextViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RollingNumberTextViewFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RollingNumberTextViewFingerprint : MethodFingerprint(
+internal object RollingNumberTextViewFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L", "F", "F"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/ShortsTextViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/ShortsTextViewFingerprint.kt
index 5f8521dd64..a326a6ced8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/ShortsTextViewFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/ShortsTextViewFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ShortsTextViewFingerprint : MethodFingerprint(
+internal object ShortsTextViewFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentAtomicReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentAtomicReferenceFingerprint.kt
index 41f20e8b3c..6a852c9f57 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentAtomicReferenceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentAtomicReferenceFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves against the same method that [TextComponentContextFingerprint] resolves to.
  */
-object TextComponentAtomicReferenceFingerprint : MethodFingerprint(
+internal object TextComponentAtomicReferenceFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentConstructorFingerprint.kt
index 4f7b55bcab..deb485b1aa 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentConstructorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object TextComponentConstructorFingerprint : MethodFingerprint(
+internal object TextComponentConstructorFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.CONSTRUCTOR or AccessFlags.PRIVATE,
     strings = listOf("TextComponent")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentContextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentContextFingerprint.kt
index 5c175b7262..3377a37112 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentContextFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentContextFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves against the same class that [TextComponentConstructorFingerprint] resolves to.
  */
-object TextComponentContextFingerprint : MethodFingerprint(
+internal object TextComponentContextFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt
index c7dfd7839d..bc25906863 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/WideSearchbarPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.searchbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.fingerprint.MethodFingerprint
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/CreateSearchSuggestionsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/CreateSearchSuggestionsFingerprint.kt
index 9ddd0872cd..7c00445e1c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/CreateSearchSuggestionsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/CreateSearchSuggestionsFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.searchbar.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object CreateSearchSuggestionsFingerprint : MethodFingerprint(
+internal object CreateSearchSuggestionsFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_STATIC,
         Opcode.MOVE_RESULT,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/SetWordmarkHeaderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/SetWordmarkHeaderFingerprint.kt
index 4db156b56d..bc5f29ff8e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/SetWordmarkHeaderFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/searchbar/fingerprints/SetWordmarkHeaderFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SetWordmarkHeaderFingerprint : MethodFingerprint(
+internal object SetWordmarkHeaderFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("Landroid/widget/ImageView;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/RestoreOldSeekbarThumbnailsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/RestoreOldSeekbarThumbnailsPatch.kt
index 0a6a5def85..bebf677cf1 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/RestoreOldSeekbarThumbnailsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/RestoreOldSeekbarThumbnailsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.seekbar
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorBytecodePatch.kt
index 6c7100755f..84aae5b8ab 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorBytecodePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorBytecodePatch.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.layout.seekbar
 
-import app.revanced.extensions.exception
-import app.revanced.extensions.indexOfFirstWideLiteralInstructionValue
+import app.revanced.util.exception
+import app.revanced.util.indexOfFirstWideLiteralInstructionValue
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
@@ -23,7 +23,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
     dependencies = [IntegrationsPatch::class, LithoColorHookPatch::class, SeekbarColorResourcePatch::class],
     compatiblePackages = [CompatiblePackage("com.google.android.youtube")]
 )
-object SeekbarColorBytecodePatch : BytecodePatch(
+internal object SeekbarColorBytecodePatch : BytecodePatch(
     setOf(PlayerSeekbarColorFingerprint, ShortsSeekbarColorFingerprint, SetSeekbarClickedColorFingerprint)
 ) {
     private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/theme/SeekbarColorPatch;"
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorResourcePatch.kt
index 581748b5c4..ae968743c2 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarColorResourcePatch.kt
@@ -9,7 +9,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
 import org.w3c.dom.Element
 
 @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class])
-object SeekbarColorResourcePatch : ResourcePatch(){
+internal object SeekbarColorResourcePatch : ResourcePatch(){
     internal var reelTimeBarPlayedColorId = -1L
     internal var inlineTimeBarColorizedBarPlayedColorDarkId = -1L
     internal var inlineTimeBarPlayedNotHighlightedColorId = -1L
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarPreferencesPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarPreferencesPatch.kt
index dc7a4dd55b..dcdf6f672a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarPreferencesPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/SeekbarPreferencesPatch.kt
@@ -11,7 +11,7 @@ import app.revanced.patches.youtube.misc.settings.SettingsPatch
 import java.io.Closeable
 
 @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class])
-object SeekbarPreferencesPatch : ResourcePatch(), Closeable {
+internal object SeekbarPreferencesPatch : ResourcePatch(), Closeable {
     private val seekbarPreferences = mutableListOf<BasePreference>()
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/FullscreenSeekbarThumbnailsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/FullscreenSeekbarThumbnailsFingerprint.kt
index 96610fe04e..bd056d4963 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/FullscreenSeekbarThumbnailsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/FullscreenSeekbarThumbnailsFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object FullscreenSeekbarThumbnailsFingerprint : LiteralValueFingerprint(
+internal object FullscreenSeekbarThumbnailsFingerprint : LiteralValueFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/PlayerSeekbarColorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/PlayerSeekbarColorFingerprint.kt
index 68d86745df..77faf1213b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/PlayerSeekbarColorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/PlayerSeekbarColorFingerprint.kt
@@ -1,12 +1,12 @@
 package app.revanced.patches.youtube.layout.seekbar.fingerprints
 
-import app.revanced.extensions.containsWideLiteralInstructionValue
+import app.revanced.util.containsWideLiteralInstructionValue
 import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import app.revanced.patches.youtube.layout.seekbar.SeekbarColorResourcePatch
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object PlayerSeekbarColorFingerprint : MethodFingerprint(
+internal object PlayerSeekbarColorFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     customFingerprint = { method, _ ->
         method.containsWideLiteralInstructionValue(SeekbarColorResourcePatch.inlineTimeBarColorizedBarPlayedColorDarkId)
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/SetSeekbarClickedColorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/SetSeekbarClickedColorFingerprint.kt
index d7437c4b2c..47877a633c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/SetSeekbarClickedColorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/SetSeekbarClickedColorFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.layout.seekbar.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object SetSeekbarClickedColorFingerprint : MethodFingerprint(
+internal object SetSeekbarClickedColorFingerprint : MethodFingerprint(
     opcodes = listOf(Opcode.CONST_HIGH16),
     strings = listOf("YOUTUBE", "PREROLL", "POSTROLL"),
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/ShortsSeekbarColorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/ShortsSeekbarColorFingerprint.kt
index 8b9554c2d1..81ef82897a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/ShortsSeekbarColorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/seekbar/fingerprints/ShortsSeekbarColorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patches.youtube.layout.seekbar.SeekbarColorResourcePatch
 import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object ShortsSeekbarColorFingerprint : LiteralValueFingerprint(
+internal object ShortsSeekbarColorFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     literalSupplier = { SeekbarColorResourcePatch.reelTimeBarPlayedColorId },
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt
index 7a3bd2189a..aa5dfeb90c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockBytecodePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.sponsorblock
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt
index 57bbb2afc0..c3cb068e20 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/SponsorBlockResourcePatch.kt
@@ -7,13 +7,13 @@ import app.revanced.patches.shared.mapping.misc.ResourceMappingPatch
 import app.revanced.patches.shared.settings.preference.impl.Preference
 import app.revanced.patches.shared.settings.preference.impl.StringResource
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
-import app.revanced.util.resources.ResourceUtils.copyXmlNode
-import app.revanced.util.resources.ResourceUtils.mergeStrings
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
+import app.revanced.util.copyXmlNode
+import app.revanced.util.mergeStrings
 
 @Patch(dependencies = [SettingsPatch::class, ResourceMappingPatch::class])
-object SponsorBlockResourcePatch : ResourcePatch() {
+internal object SponsorBlockResourcePatch : ResourcePatch() {
 
     override fun execute(context: ResourceContext) {
         SettingsPatch.addPreference(
@@ -35,13 +35,13 @@ object SponsorBlockResourcePatch : ResourcePatch() {
          */
 
         arrayOf(
-            ResourceUtils.ResourceGroup(
+            ResourceGroup(
                 "layout",
                 "inline_sponsor_overlay.xml",
                 "new_segment.xml",
                 "skip_sponsor_button.xml"
             ),
-            ResourceUtils.ResourceGroup(
+            ResourceGroup(
                 // required resource for back button, because when the base APK is used, this resource will not exist
                 "drawable",
                 "ic_sb_adjust.xml",
@@ -51,7 +51,7 @@ object SponsorBlockResourcePatch : ResourcePatch() {
                 "ic_sb_publish.xml",
                 "ic_sb_voting.xml"
             ),
-            ResourceUtils.ResourceGroup(
+            ResourceGroup(
                 // required resource for back button, because when the base APK is used, this resource will not exist
                 "drawable-xxxhdpi", "quantum_ic_skip_next_white_24.png"
             )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/AppendTimeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/AppendTimeFingerprint.kt
index 9074baa607..921792715b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/AppendTimeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/AppendTimeFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object AppendTimeFingerprint : MethodFingerprint(
+internal object AppendTimeFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("Ljava/lang/CharSequence;", "Ljava/lang/CharSequence;", "Ljava/lang/CharSequence;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/ControlsOverlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/ControlsOverlayFingerprint.kt
index 0bd505f363..9f22ba7c52 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/ControlsOverlayFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/ControlsOverlayFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ControlsOverlayFingerprint : MethodFingerprint(
+internal object ControlsOverlayFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/RectangleFieldInvalidatorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/RectangleFieldInvalidatorFingerprint.kt
index 3bff34c65a..c9830b66ed 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/RectangleFieldInvalidatorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/fingerprints/RectangleFieldInvalidatorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
 import com.android.tools.smali.dexlib2.iface.reference.MethodReference
 
-object RectangleFieldInvalidatorFingerprint : MethodFingerprint(
+internal object RectangleFieldInvalidatorFingerprint : MethodFingerprint(
     "V",
     customFingerprint = custom@{ methodDef, _ ->
         val instructions = methodDef.implementation?.instructions!!
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt
index 91950aa359..e28b973622 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.spoofappversion
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/fingerprints/SpoofAppVersionFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/fingerprints/SpoofAppVersionFingerprint.kt
index 87b8aedd34..ebf5b4aae8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/fingerprints/SpoofAppVersionFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/fingerprints/SpoofAppVersionFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SpoofAppVersionFingerprint : MethodFingerprint(
+internal object SpoofAppVersionFingerprint : MethodFingerprint(
     "L", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L"), listOf(
         Opcode.IGET_OBJECT,
         Opcode.GOTO,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt
index 18f7607d37..0bef8144ba 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/DisableResumingShortsOnStartupPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.startupshortsreset
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt
index 2db0e6d566..8d414a6c7a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 
 
 @FuzzyPatternScanMethod(3)
-object UserWasInShortsFingerprint : MethodFingerprint(
+internal object UserWasInShortsFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L"),
     opcodes = listOf(
         Opcode.IGET_OBJECT,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt
index 2bece0ab71..9b785d668a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/EnableTabletLayoutPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.tablet
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/fingerprints/GetFormFactorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/fingerprints/GetFormFactorFingerprint.kt
index 621bd170be..c7cb6d1e77 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/fingerprints/GetFormFactorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tablet/fingerprints/GetFormFactorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object GetFormFactorFingerprint : MethodFingerprint(
+internal object GetFormFactorFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     returnType = "L",
     parameters = listOf("Landroid/content/Context;", "Ljava/util/List;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/TabletMiniPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/TabletMiniPlayerPatch.kt
index 111114566a..5a22ce5bdb 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/TabletMiniPlayerPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/TabletMiniPlayerPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.tabletminiplayer
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.fingerprint.MethodFingerprint
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorParentFingerprint.kt
index 22c84ff747..244bf33d0f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorParentFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object MiniPlayerDimensionsCalculatorParentFingerprint : MethodFingerprint(
+internal object MiniPlayerDimensionsCalculatorParentFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("F"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt
index 016c4f02aa..9e80c81a2e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object MiniPlayerOverrideFingerprint : MethodFingerprint(
+internal object MiniPlayerOverrideFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt
index fc26fe949e..c6ea61f3f9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object MiniPlayerOverrideNoContextFingerprint : MethodFingerprint(
+internal object MiniPlayerOverrideNoContextFingerprint : MethodFingerprint(
     "Z", AccessFlags.FINAL or AccessFlags.PRIVATE,
     opcodes = listOf(Opcode.RETURN), // anchor to insert the instruction
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt
index 6424bf15cd..4ac508edc5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object MiniPlayerResponseModelSizeCheckFingerprint : MethodFingerprint(
+internal object MiniPlayerResponseModelSizeCheckFingerprint : MethodFingerprint(
     "L",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("Ljava/lang/Object;", "Ljava/lang/Object;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/LithoColorHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/LithoColorHookPatch.kt
index 2d96f8fe88..878ca9ae6e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/LithoColorHookPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/LithoColorHookPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.theme
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
@@ -15,7 +15,7 @@ import app.revanced.patches.youtube.layout.theme.fingerprints.LithoThemeFingerpr
         CompatiblePackage("com.google.android.youtube"),
     ]
 )
-object LithoColorHookPatch : BytecodePatch(setOf(LithoThemeFingerprint)) {
+internal object LithoColorHookPatch : BytecodePatch(setOf(LithoThemeFingerprint)) {
     private var insertionIndex : Int = -1
     private lateinit var colorRegister : String
     private lateinit var insertionMethod : MutableMethod
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeBytecodePatch.kt
index 64244d6752..19e6aea2f3 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeBytecodePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeBytecodePatch.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.layout.theme
 
-import app.revanced.extensions.exception
-import app.revanced.extensions.indexOfFirstWideLiteralInstructionValue
+import app.revanced.util.exception
+import app.revanced.util.indexOfFirstWideLiteralInstructionValue
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeResourcePatch.kt
index 6406f49000..f6fc643358 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/ThemeResourcePatch.kt
@@ -18,7 +18,7 @@ import org.w3c.dom.Element
 @Patch(
     dependencies = [SettingsPatch::class, ResourceMappingPatch::class, SeekbarPreferencesPatch::class]
 )
-object ThemeResourcePatch : ResourcePatch() {
+internal object ThemeResourcePatch : ResourcePatch() {
     private const val SPLASH_BACKGROUND_COLOR = "revanced_splash_background_color"
 
     override fun execute(context: ResourceContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/LithoThemeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/LithoThemeFingerprint.kt
index 6a089d4c17..83b56c7ccb 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/LithoThemeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/LithoThemeFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object LithoThemeFingerprint : MethodFingerprint(
+internal object LithoThemeFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PROTECTED or AccessFlags.FINAL,
     parameters = listOf("Landroid/graphics/Rect;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/UseGradientLoadingScreenFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/UseGradientLoadingScreenFingerprint.kt
index f8085fa1b0..821e051b41 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/UseGradientLoadingScreenFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/UseGradientLoadingScreenFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.youtube.layout.theme.fingerprints
 import app.revanced.patches.youtube.layout.theme.ThemeBytecodePatch.GRADIENT_LOADING_SCREEN_AB_CONSTANT
 import app.revanced.util.patch.LiteralValueFingerprint
 
-object UseGradientLoadingScreenFingerprint : LiteralValueFingerprint(
+internal object UseGradientLoadingScreenFingerprint : LiteralValueFingerprint(
     literalSupplier = { GRADIENT_LOADING_SCREEN_AB_CONSTANT }
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt
index ee3a67fb6b..27d19981ee 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/AlternativeThumbnailsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.layout.thumbnails
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnFailureFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnFailureFingerprint.kt
index de6e74817f..7780c13370 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnFailureFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnFailureFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object CronetURLRequestCallbackOnFailureFingerprint : MethodFingerprint(
+internal object CronetURLRequestCallbackOnFailureFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters =  listOf("Lorg/chromium/net/UrlRequest;", "Lorg/chromium/net/UrlResponseInfo;", "Lorg/chromium/net/CronetException;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnResponseStartedFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnResponseStartedFingerprint.kt
index 703e30bab3..b53275d5fd 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnResponseStartedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnResponseStartedFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
 // Acts as a parent fingerprint.
-object CronetURLRequestCallbackOnResponseStartedFingerprint : MethodFingerprint(
+internal object CronetURLRequestCallbackOnResponseStartedFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters =  listOf("Lorg/chromium/net/UrlRequest;", "Lorg/chromium/net/UrlResponseInfo;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnSucceededFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnSucceededFingerprint.kt
index e2fb261719..eb0a1a7d8c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnSucceededFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/CronetURLRequestCallbackOnSucceededFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object CronetURLRequestCallbackOnSucceededFingerprint : MethodFingerprint(
+internal object CronetURLRequestCallbackOnSucceededFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters =  listOf("Lorg/chromium/net/UrlRequest;", "Lorg/chromium/net/UrlResponseInfo;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlFingerprint.kt
index 9fcc537732..52f9005bbe 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object MessageDigestImageUrlFingerprint : MethodFingerprint(
+internal object MessageDigestImageUrlFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     parameters =  listOf("Ljava/lang/String;", "L")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlParentFingerprint.kt
index 204f1748c0..44902cb06b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/layout/thumbnails/fingerprints/MessageDigestImageUrlParentFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object MessageDigestImageUrlParentFingerprint : MethodFingerprint(
+internal object MessageDigestImageUrlParentFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType =  "Ljava/lang/String;",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt
index ad4c193ffd..1636a9d65d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/announcements/AnnouncementsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.announcements
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatFingerprint.kt
index 7b4c97cd92..9b07f4c545 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object AutoRepeatFingerprint : MethodFingerprint(
+internal object AutoRepeatFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatParentFingerprint.kt
index e25ab414d8..f40e16f29d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatParentFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object AutoRepeatParentFingerprint : MethodFingerprint(
+internal object AutoRepeatParentFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     strings = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt
index f4b9e91814..974a344d81 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/SpoofDeviceDimensionsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.dimensions.spoof
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.patch.BytecodePatch
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/fingerprints/DeviceDimensionsModelToStringFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/fingerprints/DeviceDimensionsModelToStringFingerprint.kt
index aab451995a..fffdbb924a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/fingerprints/DeviceDimensionsModelToStringFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/dimensions/spoof/fingerprints/DeviceDimensionsModelToStringFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.misc.dimensions.spoof.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object DeviceDimensionsModelToStringFingerprint : MethodFingerprint(
+internal object DeviceDimensionsModelToStringFingerprint : MethodFingerprint(
     returnType = "L",
     strings = listOf("minh.", ";maxh.")
 )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/FixBackToExitGesturePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/FixBackToExitGesturePatch.kt
index 8011336bde..e5c736835c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/FixBackToExitGesturePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/FixBackToExitGesturePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.fix.backtoexitgesture
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.fingerprint.MethodFingerprint
@@ -13,7 +13,7 @@ import app.revanced.patches.youtube.misc.fix.backtoexitgesture.fingerprints.Recy
 
 @Patch(description = "Fixes the swipe back to exit gesture.")
 @Suppress("unused")
-object FixBackToExitGesturePatch : BytecodePatch(
+internal object FixBackToExitGesturePatch : BytecodePatch(
     setOf(
         RecyclerViewTopScrollingParentFingerprint,
         RecyclerViewScrollingFingerprint,
@@ -47,7 +47,7 @@ object FixBackToExitGesturePatch : BytecodePatch(
      *
      * @param targetMethod The target method to call.
      */
-    fun MethodFingerprint.injectCall(targetMethod: IntegrationsMethod) = result?.apply {
+    private fun MethodFingerprint.injectCall(targetMethod: IntegrationsMethod) = result?.apply {
         mutableMethod.addInstruction(
             scanResult.patternScanResult!!.endIndex, targetMethod.toString()
         )
@@ -60,7 +60,7 @@ object FixBackToExitGesturePatch : BytecodePatch(
      * @param methodName The method name.
      * @param parameterTypes The parameters of the method.
      */
-    data class IntegrationsMethod(
+    internal data class IntegrationsMethod(
         val register: String = "", val methodName: String, val parameterTypes: String = ""
     ) {
         override fun toString() =
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/OnBackPressedFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/OnBackPressedFingerprint.kt
index 12291d1c2d..d44ddfe794 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/OnBackPressedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/OnBackPressedFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object OnBackPressedFingerprint : MethodFingerprint(
+internal object OnBackPressedFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewScrollingFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewScrollingFingerprint.kt
index 3e6d0cb081..6e2c79d892 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewScrollingFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewScrollingFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RecyclerViewScrollingFingerprint : MethodFingerprint(
+internal object RecyclerViewScrollingFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingFingerprint.kt
index 018e6a7558..ffd4ac18cd 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RecyclerViewTopScrollingFingerprint : MethodFingerprint(
+internal object RecyclerViewTopScrollingFingerprint : MethodFingerprint(
     "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf(
         Opcode.IGET_OBJECT,
         Opcode.IF_EQZ,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingParentFingerprint.kt
index a11cf8dbd0..076058bcaf 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/backtoexitgesture/fingerprints/RecyclerViewTopScrollingParentFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RecyclerViewTopScrollingParentFingerprint : MethodFingerprint(
+internal object RecyclerViewTopScrollingParentFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     parameters = listOf("L", "L", "Landroid/view/ViewGroup;", "Landroid/view/ViewGroup;"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/ClientSpoofPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/ClientSpoofPatch.kt
index c1b70fdf68..6d330051bb 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/ClientSpoofPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/ClientSpoofPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.fix.playback
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofSignaturePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofSignaturePatch.kt
index 1346f746a1..2b28869afa 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofSignaturePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/SpoofSignaturePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.fix.playback
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
@@ -34,7 +34,7 @@ object SpoofSignaturePatch : BytecodePatch(
     setOf(
         PlayerResponseModelImplGeneralFingerprint,
         PlayerResponseModelImplLiveStreamFingerprint,
-        PlayerResponseModelImplRecommendedLevel,
+        PlayerResponseModelImplRecommendedLevelFingerprint,
         StoryboardRendererSpecFingerprint,
         StoryboardRendererDecoderSpecFingerprint,
         StoryboardRendererDecoderRecommendedLevelFingerprint,
@@ -201,7 +201,7 @@ object SpoofSignaturePatch : BytecodePatch(
         } ?: throw StoryboardRendererDecoderRecommendedLevelFingerprint.exception
 
         // Hook the recommended precise seeking thumbnails quality level.
-        PlayerResponseModelImplRecommendedLevel.result?.let {
+        PlayerResponseModelImplRecommendedLevelFingerprint.result?.let {
             it.mutableMethod.apply {
                 val moveOriginalRecommendedValueIndex = it.scanResult.patternScanResult!!.endIndex
                 val originalValueRegister =
@@ -214,7 +214,7 @@ object SpoofSignaturePatch : BytecodePatch(
                         """
                 )
             }
-        } ?: throw PlayerResponseModelImplRecommendedLevel.exception
+        } ?: throw PlayerResponseModelImplRecommendedLevelFingerprint.exception
 
         StoryboardRendererSpecFingerprint.result?.let {
             it.mutableMethod.apply {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplGeneralFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplGeneralFingerprint.kt
index fb4eadced2..fbf360fb8d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplGeneralFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplGeneralFingerprint.kt
@@ -1,12 +1,12 @@
 package app.revanced.patches.youtube.misc.fix.playback.fingerprints
 
-import app.revanced.extensions.containsWideLiteralInstructionValue
+import app.revanced.util.containsWideLiteralInstructionValue
 import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object PlayerResponseModelImplGeneralFingerprint : MethodFingerprint(
+internal object PlayerResponseModelImplGeneralFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/String;",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplLiveStreamFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplLiveStreamFingerprint.kt
index 5dbd60c98a..0ee384140d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplLiveStreamFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplLiveStreamFingerprint.kt
@@ -1,12 +1,12 @@
 package app.revanced.patches.youtube.misc.fix.playback.fingerprints
 
-import app.revanced.extensions.containsWideLiteralInstructionValue
+import app.revanced.util.containsWideLiteralInstructionValue
 import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object PlayerResponseModelImplLiveStreamFingerprint : MethodFingerprint(
+internal object PlayerResponseModelImplLiveStreamFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/String;",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplRecommendedLevel.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplRecommendedLevelFingerprint.kt
similarity index 82%
rename from src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplRecommendedLevel.kt
rename to src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplRecommendedLevelFingerprint.kt
index 4b7165a323..9dd826bfb2 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplRecommendedLevel.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/PlayerResponseModelImplRecommendedLevelFingerprint.kt
@@ -1,12 +1,12 @@
 package app.revanced.patches.youtube.misc.fix.playback.fingerprints
 
-import app.revanced.extensions.containsWideLiteralInstructionValue
+import app.revanced.util.containsWideLiteralInstructionValue
 import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object PlayerResponseModelImplRecommendedLevel : MethodFingerprint(
+internal object PlayerResponseModelImplRecommendedLevelFingerprint : MethodFingerprint(
     returnType = "I",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/ScrubbedPreviewLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/ScrubbedPreviewLayoutFingerprint.kt
index 36bce605d7..2781a67161 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/ScrubbedPreviewLayoutFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/ScrubbedPreviewLayoutFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ScrubbedPreviewLayoutFingerprint : LiteralValueFingerprint(
+internal object ScrubbedPreviewLayoutFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("Landroid/content/Context;", "Landroid/util/AttributeSet;", "I", "I"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt
index 6ced904018..32dd4b19ae 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderRecommendedLevelFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves to the same method as [StoryboardRendererDecoderSpecFingerprint].
  */
-object StoryboardRendererDecoderRecommendedLevelFingerprint : MethodFingerprint(
+internal object StoryboardRendererDecoderRecommendedLevelFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderSpecFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderSpecFingerprint.kt
index f0905e8831..5d47a9bcf9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderSpecFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererDecoderSpecFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
 * Resolves to the same method as [StoryboardRendererDecoderRecommendedLevelFingerprint].
 */
-object StoryboardRendererDecoderSpecFingerprint : MethodFingerprint(
+internal object StoryboardRendererDecoderSpecFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererSpecFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererSpecFingerprint.kt
index fa77e8f837..c453d6b54a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererSpecFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardRendererSpecFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object StoryboardRendererSpecFingerprint : MethodFingerprint(
+internal object StoryboardRendererSpecFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     returnType = "L",
     parameters = listOf("Ljava/lang/String;", "J"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailFingerprint.kt
index e581edea16..dad3eb2919 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailFingerprint.kt
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves using the class found in [StoryboardThumbnailParentFingerprint].
  */
-object StoryboardThumbnailFingerprint : MethodFingerprint(
+internal object StoryboardThumbnailFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "Z",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailParentFingerprint.kt
index e45b17d850..8a151246df 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/StoryboardThumbnailParentFingerprint.kt
@@ -10,7 +10,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
  * An additional change here might force the thumbnails to be created,
  * or possibly a change somewhere else (maybe involving YouTube 18.23.35 class `hte`)
  */
-object StoryboardThumbnailParentFingerprint : MethodFingerprint(
+internal object StoryboardThumbnailParentFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "Landroid/graphics/Bitmap;",
     strings = listOf("Storyboard regionDecoder.decodeRegion exception - "),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/UserAgentHeaderBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/UserAgentHeaderBuilderFingerprint.kt
index 4c09cfe3fd..0d593ab852 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/UserAgentHeaderBuilderFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/fix/playback/fingerprints/UserAgentHeaderBuilderFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.fix.playback.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object UserAgentHeaderBuilderFingerprint : MethodFingerprint(
+internal object UserAgentHeaderBuilderFingerprint : MethodFingerprint(
     parameters = listOf("L", "L", "L"),
     opcodes = listOf(Opcode.MOVE_RESULT_OBJECT, Opcode.INVOKE_VIRTUAL),
     strings = listOf("(Linux; U; Android "),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/APIPlayerServiceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/APIPlayerServiceFingerprint.kt
index 173887a0a5..5249509177 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/APIPlayerServiceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/APIPlayerServiceFingerprint.kt
@@ -9,7 +9,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
  * It appears this hook may no longer be needed as one of the constructor parameters is the already hooked
  * [EmbeddedPlayerControlsOverlayFingerprint]
  */
-object APIPlayerServiceFingerprint : IntegrationsFingerprint(
+internal object APIPlayerServiceFingerprint : IntegrationsFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     customFingerprint = { methodDef, _ -> methodDef.definingClass == "Lcom/google/android/apps/youtube/embeddedplayer/service/service/jar/ApiPlayerService;" },
     // Integrations context is the first method parameter.
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ApplicationInitFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ApplicationInitFingerprint.kt
index 2c1427327f..346fb9168f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ApplicationInitFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ApplicationInitFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patches.shared.integrations.AbstractIntegrationsPatch.Integr
 /**
  * Hooks the context when the app is launched as a regular application (and is not an embedded video playback).
  */
-object ApplicationInitFingerprint : IntegrationsFingerprint(
+internal object ApplicationInitFingerprint : IntegrationsFingerprint(
     strings = listOf("Application creation", "Application.onCreate"),
     // Integrations context is the Activity itself.
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerControlsOverlayFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerControlsOverlayFingerprint.kt
index 19c53ed24a..65b7d08977 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerControlsOverlayFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerControlsOverlayFingerprint.kt
@@ -10,7 +10,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
  * Note: this fingerprint may no longer be needed, as it appears
  * [RemoteEmbedFragmentFingerprint] may be set before this hook is called.
  */
-object EmbeddedPlayerControlsOverlayFingerprint : IntegrationsFingerprint(
+internal object EmbeddedPlayerControlsOverlayFingerprint : IntegrationsFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.CONSTRUCTOR,
     returnType = "V",
     parameters = listOf("Landroid/content/Context;", "L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerFingerprint.kt
index 2ca241bd31..0e6ddaf6bd 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/EmbeddedPlayerFingerprint.kt
@@ -10,7 +10,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
  * Note: this fingerprint may or may not be needed, as
  * [RemoteEmbedFragmentFingerprint] might be set before this is called.
  */
-object EmbeddedPlayerFingerprint : IntegrationsFingerprint(
+internal object EmbeddedPlayerFingerprint : IntegrationsFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     returnType = "L",
     parameters = listOf("L", "L", "Landroid/content/Context;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbedFragmentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbedFragmentFingerprint.kt
index d699102474..4079d7e3c5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbedFragmentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbedFragmentFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 /**
  * For embedded playback.  Likely covers Google Play store and other Google products.
  */
-object RemoteEmbedFragmentFingerprint : IntegrationsFingerprint(
+internal object RemoteEmbedFragmentFingerprint : IntegrationsFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     returnType = "V",
     parameters = listOf("Landroid/content/Context;", "L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbeddedPlayerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbeddedPlayerFingerprint.kt
index bcc7a1baaf..6b3961d547 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbeddedPlayerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/RemoteEmbeddedPlayerFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 /**
  * For embedded playback inside 3rd party android app (such as 3rd party Reddit apps).
  */
-object RemoteEmbeddedPlayerFingerprint : IntegrationsFingerprint(
+internal object RemoteEmbeddedPlayerFingerprint : IntegrationsFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.CONSTRUCTOR,
     returnType = "V",
     parameters = listOf("Landroid/content/Context;", "L", "L", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/StandalonePlayerActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/StandalonePlayerActivityFingerprint.kt
index 99fc9acfee..dbe1d9bc01 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/StandalonePlayerActivityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/StandalonePlayerActivityFingerprint.kt
@@ -11,7 +11,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
  * but this may still be used by older apps:
  * https://developers.google.com/youtube/android/player
  */
-object StandalonePlayerActivityFingerprint : IntegrationsFingerprint(
+internal object StandalonePlayerActivityFingerprint : IntegrationsFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt
index 49dce2fb1d..143d595417 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/links/BypassURLRedirectsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.links
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt
index 7455322019..b8508db019 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/links/OpenLinksExternallyPatch.kt
@@ -8,7 +8,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
 import app.revanced.patches.shared.settings.preference.impl.StringResource
 import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
 import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import app.revanced.util.patch.AbstractTransformInstructionsPatch
+import app.revanced.patches.all.misc.transformation.AbstractTransformInstructionsPatch
 import com.android.tools.smali.dexlib2.iface.ClassDef
 import com.android.tools.smali.dexlib2.iface.Method
 import com.android.tools.smali.dexlib2.iface.instruction.Instruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/ABUriParserFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/ABUriParserFingerprint.kt
index 3bd70fbbd1..77fea68f86 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/ABUriParserFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/ABUriParserFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ABUriParserFingerprint : MethodFingerprint(
+internal object ABUriParserFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/Object",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Ljava/lang/Object"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/HTTPUriParserFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/HTTPUriParserFingerprint.kt
index b9dd490cda..66fcccaac4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/HTTPUriParserFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/links/fingerprints/HTTPUriParserFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object HTTPUriParserFingerprint : MethodFingerprint(
+internal object HTTPUriParserFingerprint : MethodFingerprint(
     returnType = "Landroid/net/Uri",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("Ljava/lang/String"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt
index 878d15d165..b19466aab8 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.litho.filter
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
@@ -37,7 +37,7 @@ object LithoFilterPatch : BytecodePatch(
     private val Instruction.descriptor
         get() = (this as ReferenceInstruction).reference.toString()
 
-    const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/components/LithoFilterPatch;"
+    private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/components/LithoFilterPatch;"
 
     internal lateinit var addFilter: (String) -> Unit
         private set
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ComponentContextParserFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ComponentContextParserFingerprint.kt
index 1d557ee591..e8ad437f7d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ComponentContextParserFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ComponentContextParserFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.litho.filter.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object ComponentContextParserFingerprint : MethodFingerprint(
+internal object ComponentContextParserFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_VIRTUAL,
         Opcode.INVOKE_VIRTUAL,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/EmptyComponentBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/EmptyComponentBuilderFingerprint.kt
index 293a457365..ec6a1f0c6f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/EmptyComponentBuilderFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/EmptyComponentBuilderFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.litho.filter.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object EmptyComponentBuilderFingerprint : MethodFingerprint(
+internal object EmptyComponentBuilderFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.INVOKE_INTERFACE,
         Opcode.INVOKE_STATIC_RANGE
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/LithoFilterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/LithoFilterFingerprint.kt
index f68325621b..aa0eb00c23 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/LithoFilterFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/LithoFilterFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object LithoFilterFingerprint : MethodFingerprint(
+internal object LithoFilterFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.CONSTRUCTOR,
     returnType = "V",
     customFingerprint = { _, classDef ->
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ProtobufBufferReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ProtobufBufferReferenceFingerprint.kt
index 53a3440682..f72b0667ff 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ProtobufBufferReferenceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ProtobufBufferReferenceFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ProtobufBufferReferenceFingerprint : MethodFingerprint(
+internal object ProtobufBufferReferenceFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("I", "Ljava/nio/ByteBuffer;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ReadComponentIdentifierFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ReadComponentIdentifierFingerprint.kt
index d73d615ffc..0a6adfda3d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ReadComponentIdentifierFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ReadComponentIdentifierFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.litho.filter.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object ReadComponentIdentifierFingerprint : MethodFingerprint(
+internal object ReadComponentIdentifierFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.IF_NEZ,
         null,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastContextFetchFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastContextFetchFingerprint.kt
index 99a4c20979..c22ff48b6b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastContextFetchFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastContextFetchFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CastContextFetchFingerprint : MethodFingerprint(
+internal object CastContextFetchFingerprint : MethodFingerprint(
     strings = listOf("Error fetching CastContext.")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
index 421dcc8a6e..722ea085f7 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CastDynamiteModuleFingerprint : MethodFingerprint(
+internal object CastDynamiteModuleFingerprint : MethodFingerprint(
     strings = listOf("com.google.android.gms.cast.framework.internal.CastDynamiteModuleImpl")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
index 51765bd520..64301b9aa4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
+internal object CastDynamiteModuleV2Fingerprint : MethodFingerprint(
     strings = listOf("Failed to load module via V2: ")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
index c32249b0ef..8393c3ec4b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object GooglePlayUtilityFingerprint : MethodFingerprint(
+internal object GooglePlayUtilityFingerprint : MethodFingerprint(
     returnType = "I",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("L", "I"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/PrimeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/PrimeFingerprint.kt
index 9ae3967c07..00e10d7034 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/PrimeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/PrimeFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.youtube.misc.microg.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object PrimeFingerprint : MethodFingerprint(
+internal object PrimeFingerprint : MethodFingerprint(
     strings = listOf("com.google.android.GoogleCamera", "com.android.vending")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/ServiceCheckFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/ServiceCheckFingerprint.kt
index 56c58badee..7c4cf94430 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/ServiceCheckFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/ServiceCheckFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object ServiceCheckFingerprint : MethodFingerprint(
+internal object ServiceCheckFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("L", "I"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt
index 3afae5678f..95e9d8d7f5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/MinimizedPlaybackPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.minimizedplayback
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
@@ -47,7 +47,7 @@ object MinimizedPlaybackPatch : BytecodePatch(
         KidsMinimizedPlaybackPolicyControllerFingerprint
     )
 ) {
-    const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/MinimizedPlaybackPatch;"
+    private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/MinimizedPlaybackPatch;"
 
     override fun execute(context: BytecodeContext) {
         // TODO: remove this empty preference sometime after mid 2023
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt
index fe86d104eb..af992d609a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/KidsMinimizedPlaybackPolicyControllerFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 import com.android.tools.smali.dexlib2.iface.instruction.NarrowLiteralInstruction
 
-object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint(
+internal object KidsMinimizedPlaybackPolicyControllerFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("I", "L", "L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
index 33ab965d7d..2be2ec0d7f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object MinimizedPlaybackManagerFingerprint : MethodFingerprint(
+internal object MinimizedPlaybackManagerFingerprint : MethodFingerprint(
     "Z",
     AccessFlags.PUBLIC or AccessFlags.STATIC,
     listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt
index d8c82b5025..47c311f3a3 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object MinimizedPlaybackSettingsFingerprint : MethodFingerprint(
+internal object MinimizedPlaybackSettingsFingerprint : MethodFingerprint(
     returnType = "Ljava/lang/String;",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsParentFingerprint.kt
index 55830b77ae..03061183fa 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsParentFingerprint.kt
@@ -7,7 +7,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
 /**
  * Class fingerprint for [MinimizedPlaybackSettingsFingerprint]
  */
-object MinimizedPlaybackSettingsParentFingerprint : MethodFingerprint(
+internal object MinimizedPlaybackSettingsParentFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     returnType = "I",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt
index 0968f1013d..1cc2cfcf0f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsBytecodePatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.playercontrols
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.fingerprint.MethodFingerprintResult
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt
index b4e3256c4c..9480c6a1e4 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object BottomControlsInflateFingerprint : LiteralValueFingerprint(
+internal object BottomControlsInflateFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL or AccessFlags.SYNTHETIC,
     returnType = "L",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt
index 36eb66b127..672086f60d 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object PlayerControlsVisibilityFingerprint : MethodFingerprint(
+internal object PlayerControlsVisibilityFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("Z", "Z")
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt
index 14ca8546df..1d40fc3646 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.playeroverlay.fingerprint
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object PlayerOverlaysOnFinishInflateFingerprint : MethodFingerprint(
+internal object PlayerOverlaysOnFinishInflateFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ ->
         methodDef.definingClass.endsWith("YouTubePlayerOverlaysLayout;") && methodDef.name == "onFinishInflate"
     }
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/PlayerTypeHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/PlayerTypeHookPatch.kt
index 9c7586c876..186e3b1121 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/PlayerTypeHookPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/PlayerTypeHookPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.playertype
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/PlayerTypeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/PlayerTypeFingerprint.kt
index d0aee94e5d..2f1e100470 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/PlayerTypeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/PlayerTypeFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object PlayerTypeFingerprint : MethodFingerprint(
+internal object PlayerTypeFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/VideoStateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/VideoStateFingerprint.kt
index ab5463e53a..7df451a4a3 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/VideoStateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/VideoStateFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object VideoStateFingerprint : MethodFingerprint(
+internal object VideoStateFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt
index 7a9639fe2a..fca83689ba 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/RemoveTrackingQueryParameterPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.privacy
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
@@ -40,7 +40,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
 object RemoveTrackingQueryParameterPatch : BytecodePatch(
     setOf(CopyTextFingerprint, SystemShareSheetFingerprint, YouTubeShareSheetFingerprint)
 ) {
-    const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/RemoveTrackingQueryParameterPatch;"
+    private const val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/patches/RemoveTrackingQueryParameterPatch;"
 
     override fun execute(context: BytecodeContext) {
         SettingsPatch.PreferenceScreen.MISC.addPreferences(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/CopyTextFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/CopyTextFingerprint.kt
index 0375bf4827..1c25519511 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/CopyTextFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/CopyTextFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.privacy.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object CopyTextFingerprint : MethodFingerprint(
+internal object CopyTextFingerprint : MethodFingerprint(
     returnType = "V",
     parameters = listOf("L", "Ljava/util/Map;"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/SystemShareSheetFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/SystemShareSheetFingerprint.kt
index 2927e614a5..668f1cc30a 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/SystemShareSheetFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/SystemShareSheetFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.misc.privacy.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object SystemShareSheetFingerprint : MethodFingerprint(
+internal object SystemShareSheetFingerprint : MethodFingerprint(
     returnType = "V",
     parameters = listOf("L", "Ljava/util/Map;"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/YouTubeShareSheetFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/YouTubeShareSheetFingerprint.kt
index 4aae6f9b02..9183313d2e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/YouTubeShareSheetFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/privacy/fingerprints/YouTubeShareSheetFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object YouTubeShareSheetFingerprint : MethodFingerprint(
+internal object YouTubeShareSheetFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L", "Ljava/util/Map;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/RecyclerViewTreeHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/RecyclerViewTreeHookPatch.kt
index 4752c0e1b2..9e5e4f8b87 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/RecyclerViewTreeHookPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/RecyclerViewTreeHookPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.recyclerviewtree.hook
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.patch.BytecodePatch
@@ -11,7 +11,7 @@ import app.revanced.patches.youtube.misc.recyclerviewtree.hook.fingerprints.Recy
 @Patch(
     dependencies = [IntegrationsPatch::class]
 )
-object RecyclerViewTreeHookPatch : BytecodePatch(
+internal object RecyclerViewTreeHookPatch : BytecodePatch(
     setOf(RecyclerViewTreeObserverFingerprint)
 ) {
     internal lateinit var addHook: (String) -> Unit
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/fingerprints/RecyclerViewTreeObserverFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/fingerprints/RecyclerViewTreeObserverFingerprint.kt
index ab1579453f..f40fd09c9c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/fingerprints/RecyclerViewTreeObserverFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/recyclerviewtree/hook/fingerprints/RecyclerViewTreeObserverFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RecyclerViewTreeObserverFingerprint : MethodFingerprint(
+internal object RecyclerViewTreeObserverFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsPatch.kt
index 03c9668618..67ad2c00e5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.misc.settings
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsResourcePatch.kt
index 848e3ab3c0..a95eb31a1c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsResourcePatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/SettingsResourcePatch.kt
@@ -7,9 +7,9 @@ import app.revanced.patches.shared.mapping.misc.ResourceMappingPatch
 import app.revanced.patches.shared.settings.AbstractSettingsResourcePatch
 import app.revanced.patches.shared.settings.preference.addPreference
 import app.revanced.patches.shared.settings.preference.impl.*
-import app.revanced.util.resources.ResourceUtils
-import app.revanced.util.resources.ResourceUtils.copyResources
-import app.revanced.util.resources.ResourceUtils.mergeStrings
+import app.revanced.util.ResourceGroup
+import app.revanced.util.copyResources
+import app.revanced.util.mergeStrings
 import org.w3c.dom.Element
 import org.w3c.dom.Node
 
@@ -46,7 +46,7 @@ object SettingsResourcePatch : AbstractSettingsResourcePatch(
          * copy layout resources
          */
         arrayOf(
-            ResourceUtils.ResourceGroup("layout", "revanced_settings_with_toolbar.xml")
+            ResourceGroup("layout", "revanced_settings_with_toolbar.xml")
         ).forEach { resourceGroup ->
             context.copyResources("settings", resourceGroup)
         }
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/LicenseActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/LicenseActivityFingerprint.kt
index 0d99f611a7..87534b5830 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/LicenseActivityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/LicenseActivityFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object LicenseActivityFingerprint : MethodFingerprint(
+internal object LicenseActivityFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/SetThemeFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/SetThemeFingerprint.kt
index 2a2a6ce9ab..28d9d41199 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/SetThemeFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/fingerprints/SetThemeFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SetThemeFingerprint : LiteralValueFingerprint(
+internal object SetThemeFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "L",
     parameters = listOf(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/fingerprints/ZoomHapticsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/fingerprints/ZoomHapticsFingerprint.kt
index 4ffeab8ca5..5958f84928 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/fingerprints/ZoomHapticsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/fingerprints/ZoomHapticsFingerprint.kt
@@ -1,7 +1,7 @@
 package app.revanced.patches.youtube.misc.zoomhaptics.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ZoomHapticsFingerprint : MethodFingerprint(
+internal object ZoomHapticsFingerprint : MethodFingerprint(
     strings = listOf(
         "Failed to haptics vibrate for video zoom"
     )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/LayoutConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/LayoutConstructorFingerprint.kt
index 107339044e..7f24e99330 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/LayoutConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/LayoutConstructorFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object LayoutConstructorFingerprint : MethodFingerprint(
+internal object LayoutConstructorFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = emptyList(),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/RollingNumberTextViewAnimationUpdateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/RollingNumberTextViewAnimationUpdateFingerprint.kt
index 536bb03eb3..14b224eea9 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/RollingNumberTextViewAnimationUpdateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/RollingNumberTextViewAnimationUpdateFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object RollingNumberTextViewAnimationUpdateFingerprint : MethodFingerprint(
+internal object RollingNumberTextViewAnimationUpdateFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("Landroid/graphics/Bitmap;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarFingerprint.kt
index f24a481da0..a6cbe72e7e 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.shared.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SeekbarFingerprint : MethodFingerprint(
+internal object SeekbarFingerprint : MethodFingerprint(
     "V",
     strings = listOf("timed_markers_width")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarOnDrawFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarOnDrawFingerprint.kt
index 3903fd4262..61ee24ff99 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarOnDrawFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/SeekbarOnDrawFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.youtube.shared.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SeekbarOnDrawFingerprint : MethodFingerprint(
+internal object SeekbarOnDrawFingerprint : MethodFingerprint(
     customFingerprint = { methodDef, _ -> methodDef.name == "onDraw" }
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/WatchWhileActivityFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/WatchWhileActivityFingerprint.kt
index 84d8be836e..b7567b5692 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/WatchWhileActivityFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/shared/fingerprints/WatchWhileActivityFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object WatchWhileActivityFingerprint : MethodFingerprint(
+internal object WatchWhileActivityFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     parameters = listOf(),
     customFingerprint = { methodDef, _ ->
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/hdrbrightness/fingerprints/HDRBrightnessFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/hdrbrightness/fingerprints/HDRBrightnessFingerprint.kt
index 7cea1ac8b3..3be7354ae3 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/hdrbrightness/fingerprints/HDRBrightnessFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/hdrbrightness/fingerprints/HDRBrightnessFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.video.hdrbrightness.fingerprints
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
-object HDRBrightnessFingerprint : MethodFingerprint(
+internal object HDRBrightnessFingerprint : MethodFingerprint(
     "V",
     opcodes = listOf(Opcode.CMPL_FLOAT),
     strings = listOf("c.SettingNotFound;", "screen_brightness", "android.mediaview"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt
index becfb4dfdf..b06c4cb9dd 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/VideoInformationPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.video.information
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/CreateVideoPlayerSeekbarFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/CreateVideoPlayerSeekbarFingerprint.kt
index c9d44d8946..6c16caf53f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/CreateVideoPlayerSeekbarFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/CreateVideoPlayerSeekbarFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.video.information.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object CreateVideoPlayerSeekbarFingerprint : MethodFingerprint(
+internal object CreateVideoPlayerSeekbarFingerprint : MethodFingerprint(
     "V",
     strings = listOf("timed_markers_width")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/OnPlaybackSpeedItemClickFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/OnPlaybackSpeedItemClickFingerprint.kt
index eb091eb14f..8a3a700afc 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/OnPlaybackSpeedItemClickFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/OnPlaybackSpeedItemClickFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object OnPlaybackSpeedItemClickFingerprint : MethodFingerprint(
+internal object OnPlaybackSpeedItemClickFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "V",
     parameters = listOf("L", "L", "I", "J"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint.kt
index 569b1671cb..220e8f999b 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 
 import com.android.tools.smali.dexlib2.Opcode
 
-object PlayerControllerSetTimeReferenceFingerprint : MethodFingerprint(
+internal object PlayerControllerSetTimeReferenceFingerprint : MethodFingerprint(
     opcodes = listOf(Opcode.INVOKE_DIRECT_RANGE, Opcode.IGET_OBJECT),
     strings = listOf("Media progress reported outside media playback: ")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerInitFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerInitFingerprint.kt
index 23940def5b..e5b4835dc3 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerInitFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/PlayerInitFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.video.information.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object PlayerInitFingerprint : MethodFingerprint(
+internal object PlayerInitFingerprint : MethodFingerprint(
     strings = listOf(
         "playVideo called on player response with no videoStreamingData."
     ),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/SeekFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/SeekFingerprint.kt
index 5637c93742..5747810e52 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/SeekFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/SeekFingerprint.kt
@@ -3,6 +3,6 @@ package app.revanced.patches.youtube.video.information.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object SeekFingerprint : MethodFingerprint(
+internal object SeekFingerprint : MethodFingerprint(
     strings = listOf("Attempting to seek during an ad")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoLengthFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoLengthFingerprint.kt
index e3b5b8aa75..20fde9692c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoLengthFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/information/fingerprints/VideoLengthFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 
 import com.android.tools.smali.dexlib2.Opcode
 
-object VideoLengthFingerprint : MethodFingerprint(
+internal object VideoLengthFingerprint : MethodFingerprint(
     opcodes = listOf(
         Opcode.MOVE_RESULT_WIDE,
         Opcode.CMP_LONG,
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt
index d1e43c6718..352d88865f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/PlayerResponseMethodHookPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.video.playerresponse
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/fingerprint/PlayerParameterBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/fingerprint/PlayerParameterBuilderFingerprint.kt
index 1004e8bb54..2694940fd6 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/fingerprint/PlayerParameterBuilderFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/playerresponse/fingerprint/PlayerParameterBuilderFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object PlayerParameterBuilderFingerprint : MethodFingerprint(
+internal object PlayerParameterBuilderFingerprint : MethodFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     returnType = "L",
     parameters = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt
index ccb2a8fff7..adde865eff 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/RememberVideoQualityPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.video.quality
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/NewVideoQualityChangedFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/NewVideoQualityChangedFingerprint.kt
index d09af0e7b6..f0fc4e9e38 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/NewVideoQualityChangedFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/NewVideoQualityChangedFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object NewVideoQualityChangedFingerprint : MethodFingerprint(
+internal object NewVideoQualityChangedFingerprint : MethodFingerprint(
     returnType = "L",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/SetQualityByIndexMethodClassFieldReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/SetQualityByIndexMethodClassFieldReferenceFingerprint.kt
index 2328057c03..a6aa1e0427 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/SetQualityByIndexMethodClassFieldReferenceFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/SetQualityByIndexMethodClassFieldReferenceFingerprint.kt
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.Opcode
 /**
  * Resolves with the class found in [VideoQualitySetterFingerprint].
  */
-object SetQualityByIndexMethodClassFieldReferenceFingerprint : MethodFingerprint(
+internal object SetQualityByIndexMethodClassFieldReferenceFingerprint : MethodFingerprint(
     returnType = "V",
     parameters = listOf("L"),
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualityItemOnClickParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualityItemOnClickParentFingerprint.kt
index d0222e11ad..09eb677ea0 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualityItemOnClickParentFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualityItemOnClickParentFingerprint.kt
@@ -3,7 +3,7 @@ package app.revanced.patches.youtube.video.quality.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object VideoQualityItemOnClickParentFingerprint : MethodFingerprint(
+internal object VideoQualityItemOnClickParentFingerprint : MethodFingerprint(
     "V",
     strings = listOf("VIDEO_QUALITIES_MENU_BOTTOM_SHEET_FRAGMENT")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualitySetterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualitySetterFingerprint.kt
index 0c2a75b6b2..7db5b19f17 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualitySetterFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/quality/fingerprints/VideoQualitySetterFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object VideoQualitySetterFingerprint : MethodFingerprint(
+internal object VideoQualitySetterFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("[L", "I", "Z"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt
index 1751f13b1c..4c572ffa6c 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.video.speed.custom
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/GetOldPlaybackSpeedsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/GetOldPlaybackSpeedsFingerprint.kt
index 579f4ce47a..d5e3760c74 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/GetOldPlaybackSpeedsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/GetOldPlaybackSpeedsFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.video.speed.custom.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object GetOldPlaybackSpeedsFingerprint : MethodFingerprint(
+internal object GetOldPlaybackSpeedsFingerprint : MethodFingerprint(
     parameters = listOf("[L", "I"),
     strings = listOf("menu_item_playback_speed")
 )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuFingerprint.kt
index 16ed3f9210..4df113decc 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.youtube.video.speed.custom.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ShowOldPlaybackSpeedMenuFingerprint : MethodFingerprint(
+internal object ShowOldPlaybackSpeedMenuFingerprint : MethodFingerprint(
     strings = listOf("PLAYBACK_RATE_MENU_BOTTOM_SHEET_FRAGMENT")
 )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuIntegrationsFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuIntegrationsFingerprint.kt
index 99bcc7891e..161acc21bf 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuIntegrationsFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/ShowOldPlaybackSpeedMenuIntegrationsFingerprint.kt
@@ -2,6 +2,6 @@ package app.revanced.patches.youtube.video.speed.custom.fingerprints
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object ShowOldPlaybackSpeedMenuIntegrationsFingerprint : MethodFingerprint(
+internal object ShowOldPlaybackSpeedMenuIntegrationsFingerprint : MethodFingerprint(
     customFingerprint = { method, _ -> method.name == "showOldPlaybackSpeedMenu" }
 )
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedArrayGeneratorFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedArrayGeneratorFingerprint.kt
index 5d0bbbb82e..5dac958d64 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedArrayGeneratorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedArrayGeneratorFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SpeedArrayGeneratorFingerprint : MethodFingerprint(
+internal object SpeedArrayGeneratorFingerprint : MethodFingerprint(
     returnType = "[L",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
     parameters = listOf("Lcom/google/android/libraries/youtube/innertube/model/player/PlayerResponseModel;"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedLimiterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedLimiterFingerprint.kt
index afe780cd11..a381793557 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedLimiterFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/fingerprints/SpeedLimiterFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object SpeedLimiterFingerprint : MethodFingerprint(
+internal object SpeedLimiterFingerprint : MethodFingerprint(
     "V",
     AccessFlags.PUBLIC or AccessFlags.FINAL,
     listOf("F"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt
index 94dde1eb0d..f1343b78dc 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/RememberPlaybackSpeedPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.video.speed.remember
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
@@ -25,7 +25,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
 object RememberPlaybackSpeedPatch : BytecodePatch(
     setOf(InitializePlaybackSpeedValuesFingerprint)
 ){
-    const val INTEGRATIONS_CLASS_DESCRIPTOR =
+    private const val INTEGRATIONS_CLASS_DESCRIPTOR =
         "Lapp/revanced/integrations/patches/playback/speed/RememberPlaybackSpeedPatch;"
 
     override fun execute(context: BytecodeContext) {
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/fingerprint/InitializePlaybackSpeedValuesFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/fingerprint/InitializePlaybackSpeedValuesFingerprint.kt
index 477ea53938..44dfac7466 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/fingerprint/InitializePlaybackSpeedValuesFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/speed/remember/fingerprint/InitializePlaybackSpeedValuesFingerprint.kt
@@ -2,7 +2,7 @@ package app.revanced.patches.youtube.video.speed.remember.fingerprint
 
 import app.revanced.patcher.fingerprint.MethodFingerprint
 
-object InitializePlaybackSpeedValuesFingerprint : MethodFingerprint(
+internal object InitializePlaybackSpeedValuesFingerprint : MethodFingerprint(
     parameters = listOf("[L", "I"),
     strings = listOf("menu_item_playback_speed")
 )
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/videoid/VideoIdPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/video/videoid/VideoIdPatch.kt
index 30a1646b15..eb517a6f29 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/videoid/VideoIdPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/videoid/VideoIdPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtube.video.videoid
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprint.kt
index 6111f7a901..dfc90619c5 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object VideoIdFingerprint : MethodFingerprint(
+internal object VideoIdFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprintBackgroundPlay.kt b/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprintBackgroundPlay.kt
index 2b9e89d0dd..8a265c915f 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprintBackgroundPlay.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/videoid/fingerprint/VideoIdFingerprintBackgroundPlay.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object VideoIdFingerprintBackgroundPlay : MethodFingerprint(
+internal object VideoIdFingerprintBackgroundPlay : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.DECLARED_SYNCHRONIZED or AccessFlags.FINAL or AccessFlags.PUBLIC,
     parameters = listOf("L"),
diff --git a/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/fingerprints/VideoQualityMenuViewInflateFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/fingerprints/VideoQualityMenuViewInflateFingerprint.kt
index 9bd5046a90..20f18a3e41 100644
--- a/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/fingerprints/VideoQualityMenuViewInflateFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtube/video/videoqualitymenu/fingerprints/VideoQualityMenuViewInflateFingerprint.kt
@@ -6,7 +6,7 @@ import app.revanced.util.patch.LiteralValueFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object VideoQualityMenuViewInflateFingerprint : LiteralValueFingerprint(
+internal object VideoQualityMenuViewInflateFingerprint : LiteralValueFingerprint(
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     parameters = listOf("L", "L", "L"),
     returnType = "L",
diff --git a/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/HideAdsPatch.kt b/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/HideAdsPatch.kt
index 4402a1a53a..229a5b9a5f 100644
--- a/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/HideAdsPatch.kt
+++ b/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/HideAdsPatch.kt
@@ -1,6 +1,6 @@
 package app.revanced.patches.youtubevanced.ad.general
 
-import app.revanced.extensions.exception
+import app.revanced.util.exception
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
diff --git a/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/fingerprints/ContainsAdFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/fingerprints/ContainsAdFingerprint.kt
index f1fa35f0bf..75420f9429 100644
--- a/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/fingerprints/ContainsAdFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/youtubevanced/ad/general/fingerprints/ContainsAdFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object ContainsAdFingerprint: MethodFingerprint(
+internal object ContainsAdFingerprint: MethodFingerprint(
     returnType = "Z",
     parameters = listOf("L", "L"),
     accessFlags = AccessFlags.STATIC or AccessFlags.PUBLIC,
diff --git a/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/IsPremiumFingerprint.kt b/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/IsPremiumFingerprint.kt
index 6c0b6d8d67..9659d92616 100644
--- a/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/IsPremiumFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/IsPremiumFingerprint.kt
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 import com.android.tools.smali.dexlib2.Opcode
 
-object IsPremiumFingerprint : MethodFingerprint(
+internal object IsPremiumFingerprint : MethodFingerprint(
     returnType = "Z",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
     opcodes = listOf(
diff --git a/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/YukaUserConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/YukaUserConstructorFingerprint.kt
index 3b671a4183..d93ca63c7d 100644
--- a/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/YukaUserConstructorFingerprint.kt
+++ b/src/main/kotlin/app/revanced/patches/yuka/misc/unlockpremium/fingerprints/YukaUserConstructorFingerprint.kt
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.AccessFlags
 
-object YukaUserConstructorFingerprint : MethodFingerprint(
+internal object YukaUserConstructorFingerprint : MethodFingerprint(
     returnType = "V",
     accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
     strings = listOf(
diff --git a/src/main/kotlin/app/revanced/extensions/Extensions.kt b/src/main/kotlin/app/revanced/util/BytecodeUtils.kt
similarity index 72%
rename from src/main/kotlin/app/revanced/extensions/Extensions.kt
rename to src/main/kotlin/app/revanced/util/BytecodeUtils.kt
index 309dc5396d..ea7e88d14c 100644
--- a/src/main/kotlin/app/revanced/extensions/Extensions.kt
+++ b/src/main/kotlin/app/revanced/util/BytecodeUtils.kt
@@ -1,7 +1,8 @@
-package app.revanced.extensions
+package app.revanced.util
 
 import app.revanced.patcher.data.BytecodeContext
 import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
+import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import app.revanced.patcher.patch.PatchException
 import app.revanced.patcher.util.proxy.mutableTypes.MutableClass
@@ -13,7 +14,6 @@ import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
 import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction
 import com.android.tools.smali.dexlib2.iface.reference.Reference
 import com.android.tools.smali.dexlib2.util.MethodUtil
-import org.w3c.dom.Node
 
 /**
  * The [PatchException] of failing to resolve a [MethodFingerprint].
@@ -34,9 +34,9 @@ fun MutableClass.findMutableMethodOf(method: Method) = this.methods.first {
 }
 
 /**
- * apply a transform to all methods of the class.
+ * Apply a transform to all methods of the class.
  *
- * @param transform the transformation function. original method goes in, transformed method goes out.
+ * @param transform The transformation function. Accepts a [MutableMethod] and returns a transformed [MutableMethod].
  */
 fun MutableClass.transformMethods(transform: MutableMethod.() -> MutableMethod) {
     val transformedMethods = methods.map { it.transform() }
@@ -44,11 +44,14 @@ fun MutableClass.transformMethods(transform: MutableMethod.() -> MutableMethod)
     methods.addAll(transformedMethods)
 }
 
-fun Node.doRecursively(action: (Node) -> Unit) {
-    action(this)
-    for (i in 0 until this.childNodes.length) this.childNodes.item(i).doRecursively(action)
-}
-
+/**
+ * Inject a call to a method that hides a view.
+ *
+ * @param insertIndex The index to insert the call at.
+ * @param viewRegister The register of the view to hide.
+ * @param classDescriptor The descriptor of the class that contains the method.
+ * @param targetMethod The name of the method to call.
+ */
 fun MutableMethod.injectHideViewCall(
     insertIndex: Int,
     viewRegister: Int,
@@ -84,7 +87,6 @@ fun Method.indexOfFirstWideLiteralInstructionValue(literal: Long) = implementati
     }
 } ?: -1
 
-
 /**
  * Check if the method contains a literal with the given value.
  *
@@ -93,7 +95,6 @@ fun Method.indexOfFirstWideLiteralInstructionValue(literal: Long) = implementati
 fun Method.containsWideLiteralInstructionValue(literal: Long) =
     indexOfFirstWideLiteralInstructionValue(literal) >= 0
 
-
 /**
  * Traverse the class hierarchy starting from the given root class.
  *
@@ -124,4 +125,29 @@ inline fun <reified T : Reference> Instruction.getReference() = (this as? Refere
  * @return The index of the first [Instruction] that matches the predicate.
  */
 fun Method.indexOfFirstInstruction(predicate: Instruction.() -> Boolean) =
-    this.implementation!!.instructions.indexOfFirst(predicate)
\ No newline at end of file
+    this.implementation!!.instructions.indexOfFirst(predicate)
+
+    /**
+     * Return the resolved methods of [MethodFingerprint]s early.
+     */
+    fun List<MethodFingerprint>.returnEarly(bool: Boolean = false) {
+        val const = if (bool) "0x1" else "0x0"
+        this.forEach { fingerprint ->
+            fingerprint.result?.let { result ->
+                val stringInstructions = when (result.method.returnType.first()) {
+                    'L' -> """
+                        const/4 v0, $const
+                        return-object v0
+                        """
+                    'V' -> "return-void"
+                    'I', 'Z' -> """
+                        const/4 v0, $const
+                        return v0
+                        """
+                    else -> throw Exception("This case should never happen.")
+                }
+
+                result.mutableMethod.addInstructions(0, stringInstructions)
+            } ?: throw fingerprint.exception
+        }
+    }
diff --git a/src/main/kotlin/app/revanced/util/ResourceUtils.kt b/src/main/kotlin/app/revanced/util/ResourceUtils.kt
new file mode 100644
index 0000000000..e3ccc7bfb1
--- /dev/null
+++ b/src/main/kotlin/app/revanced/util/ResourceUtils.kt
@@ -0,0 +1,108 @@
+package app.revanced.util
+
+import app.revanced.patcher.data.ResourceContext
+import app.revanced.patcher.util.DomFileEditor
+import app.revanced.patches.shared.settings.preference.impl.StringResource
+import app.revanced.patches.youtube.misc.settings.SettingsPatch
+import org.w3c.dom.Node
+import java.nio.file.Files
+import java.nio.file.StandardCopyOption
+
+/**
+ * Recursively traverse the DOM tree starting from the given root node.
+ *
+ * @param action function that is called for every node in the tree.
+ */
+fun Node.doRecursively(action: (Node) -> Unit) {
+    action(this)
+    for (i in 0 until this.childNodes.length) this.childNodes.item(i).doRecursively(action)
+}
+
+/**
+ * Merge strings. This manages [StringResource]s automatically.
+ *
+ * @param host The hosting xml resource. Needs to be a valid strings.xml resource.
+ */
+fun ResourceContext.mergeStrings(host: String) {
+    this.iterateXmlNodeChildren(host, "resources") {
+        // TODO: figure out why this is needed
+        if (!it.hasAttributes()) return@iterateXmlNodeChildren
+
+        val attributes = it.attributes
+        val key = attributes.getNamedItem("name")!!.nodeValue!!
+        val value = it.textContent!!
+
+        val formatted = attributes.getNamedItem("formatted") == null
+
+        SettingsPatch.addString(key, value, formatted)
+    }
+}
+
+/**
+ * Copy resources from the current class loader to the resource directory.
+ *
+ * @param sourceResourceDirectory The source resource directory name.
+ * @param resources The resources to copy.
+ */
+fun ResourceContext.copyResources(sourceResourceDirectory: String, vararg resources: ResourceGroup) {
+    val classLoader = javaClass.classLoader
+    val targetResourceDirectory = this["res"]
+
+    for (resourceGroup in resources) {
+        resourceGroup.resources.forEach { resource ->
+            val resourceFile = "${resourceGroup.resourceDirectoryName}/$resource"
+            Files.copy(
+                classLoader.getResourceAsStream("$sourceResourceDirectory/$resourceFile")!!,
+                targetResourceDirectory.resolve(resourceFile).toPath(), StandardCopyOption.REPLACE_EXISTING
+            )
+        }
+    }
+}
+
+/**
+ * Resource names mapped to their corresponding resource data.
+ * @param resourceDirectoryName The name of the directory of the resource.
+ * @param resources A list of resource names.
+ */
+class ResourceGroup(val resourceDirectoryName: String, vararg val resources: String)
+
+/**
+ * Iterate through the children of a node by its tag.
+ * @param resource The xml resource.
+ * @param targetTag The target xml node.
+ * @param callback The callback to call when iterating over the nodes.
+ */
+fun ResourceContext.iterateXmlNodeChildren(
+    resource: String,
+    targetTag: String,
+    callback: (node: Node) -> Unit
+) =
+    xmlEditor[javaClass.classLoader.getResourceAsStream(resource)!!].use {
+        val stringsNode = it.file.getElementsByTagName(targetTag).item(0).childNodes
+        for (i in 1 until stringsNode.length - 1) callback(stringsNode.item(i))
+    }
+
+
+/**
+ * Copies the specified node of the source [DomFileEditor] to the target [DomFileEditor].
+ * @param source the source [DomFileEditor].
+ * @param target the target [DomFileEditor]-
+ * @return AutoCloseable that closes the target [DomFileEditor]s.
+ */
+fun String.copyXmlNode(source: DomFileEditor, target: DomFileEditor): AutoCloseable {
+    val hostNodes = source.file.getElementsByTagName(this).item(0).childNodes
+
+    val destinationResourceFile = target.file
+    val destinationNode = destinationResourceFile.getElementsByTagName(this).item(0)
+
+    for (index in 0 until hostNodes.length) {
+        val node = hostNodes.item(index).cloneNode(true)
+        destinationResourceFile.adoptNode(node)
+        destinationNode.appendChild(node)
+    }
+
+    return AutoCloseable {
+        source.close()
+        target.close()
+    }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/util/Utils.kt b/src/main/kotlin/app/revanced/util/Utils.kt
deleted file mode 100644
index fde3b77e97..0000000000
--- a/src/main/kotlin/app/revanced/util/Utils.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-package app.revanced.util
-
-import app.revanced.extensions.exception
-import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
-import app.revanced.patcher.fingerprint.MethodFingerprint
-
-object Utils {
-    /**
-     * Return the resolved methods of [MethodFingerprint]s early.
-     */
-    fun List<MethodFingerprint>.returnEarly(bool: Boolean = false) {
-        val const = if (bool) "0x1" else "0x0"
-        this.forEach { fingerprint ->
-            fingerprint.result?.let { result ->
-                val stringInstructions = when (result.method.returnType.first()) {
-                    'L' -> """
-                        const/4 v0, $const
-                        return-object v0
-                        """
-                    'V' -> "return-void"
-                    'I', 'Z' -> """
-                        const/4 v0, $const
-                        return v0
-                        """
-                    else -> throw Exception("This case should never happen.")
-                }
-
-                result.mutableMethod.addInstructions(0, stringInstructions)
-            } ?: throw fingerprint.exception
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt b/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt
index 458cb0cbd6..646a146aa7 100644
--- a/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt
+++ b/src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt
@@ -6,7 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import app.revanced.patcher.util.proxy.mutableTypes.MutableClass
 import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
-import app.revanced.util.Utils.returnEarly
+import app.revanced.util.returnEarly
 import app.revanced.util.microg.Constants.ACTIONS
 import app.revanced.util.microg.Constants.AUTHORITIES
 import app.revanced.util.microg.Constants.MICROG_VENDOR
diff --git a/src/main/kotlin/app/revanced/util/microg/MicroGResourceHelper.kt b/src/main/kotlin/app/revanced/util/microg/MicroGResourceHelper.kt
index 5bf530967f..23ff09d829 100644
--- a/src/main/kotlin/app/revanced/util/microg/MicroGResourceHelper.kt
+++ b/src/main/kotlin/app/revanced/util/microg/MicroGResourceHelper.kt
@@ -1,7 +1,7 @@
 package app.revanced.util.microg
 
 import app.revanced.patcher.data.ResourceContext
-import app.revanced.util.resources.ResourceUtils.mergeStrings
+import app.revanced.util.mergeStrings
 
 /**
  * Helper class for applying resource patches needed for the microg-support patches.
diff --git a/src/main/kotlin/app/revanced/util/patch/LiteralValueFingerprint.kt b/src/main/kotlin/app/revanced/util/patch/LiteralValueFingerprint.kt
index ce6f6cae84..6b1b67174e 100644
--- a/src/main/kotlin/app/revanced/util/patch/LiteralValueFingerprint.kt
+++ b/src/main/kotlin/app/revanced/util/patch/LiteralValueFingerprint.kt
@@ -1,9 +1,19 @@
 package app.revanced.util.patch
 
-import app.revanced.extensions.containsWideLiteralInstructionValue
+import app.revanced.util.containsWideLiteralInstructionValue
 import app.revanced.patcher.fingerprint.MethodFingerprint
 import com.android.tools.smali.dexlib2.Opcode
 
+/**
+ * A fingerprint to resolve methods that contain a specific literal value.
+ *
+ * @param returnType The method's return type compared using String.startsWith.
+ * @param accessFlags The method's exact access flags using values of AccessFlags.
+ * @param parameters The parameters of the method. Partial matches allowed and follow the same rules as returnType.
+ * @param opcodes An opcode pattern of the method's instructions. Wildcard or unknown opcodes can be specified by null.
+ * @param strings A list of the method's strings compared each using String.contains.
+ * @param literalSupplier A supplier for the literal value to check for.
+ */
 abstract class LiteralValueFingerprint(
     returnType: String? = null,
     accessFlags: Int? = null,
diff --git a/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt b/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt
deleted file mode 100644
index f253b055cc..0000000000
--- a/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-package app.revanced.util.resources
-
-import app.revanced.patcher.data.ResourceContext
-import app.revanced.patcher.util.DomFileEditor
-import app.revanced.patches.shared.settings.preference.impl.StringResource
-import app.revanced.patches.youtube.misc.settings.SettingsPatch
-import org.w3c.dom.Node
-import java.nio.file.Files
-import java.nio.file.StandardCopyOption
-
-@Suppress("MemberVisibilityCanBePrivate")
-object ResourceUtils {
-
-    /**
-     * Merge strings. This manages [StringResource]s automatically.
-     *
-     * @param host The hosting xml resource. Needs to be a valid strings.xml resource.
-     */
-    fun ResourceContext.mergeStrings(host: String) {
-        this.iterateXmlNodeChildren(host, "resources") {
-            // TODO: figure out why this is needed
-            if (!it.hasAttributes()) return@iterateXmlNodeChildren
-
-            val attributes = it.attributes
-            val key = attributes.getNamedItem("name")!!.nodeValue!!
-            val value = it.textContent!!
-
-            val formatted = attributes.getNamedItem("formatted") == null
-
-            SettingsPatch.addString(key, value, formatted)
-        }
-    }
-
-    /**
-     * Copy resources from the current class loader to the resource directory.
-     *
-     * @param sourceResourceDirectory The source resource directory name.
-     * @param resources The resources to copy.
-     */
-    fun ResourceContext.copyResources(sourceResourceDirectory: String, vararg resources: ResourceGroup) {
-        val classLoader = ResourceUtils.javaClass.classLoader
-        val targetResourceDirectory = this["res"]
-
-        for (resourceGroup in resources) {
-            resourceGroup.resources.forEach { resource ->
-                val resourceFile = "${resourceGroup.resourceDirectoryName}/$resource"
-                Files.copy(
-                    classLoader.getResourceAsStream("$sourceResourceDirectory/$resourceFile")!!,
-                    targetResourceDirectory.resolve(resourceFile).toPath(), StandardCopyOption.REPLACE_EXISTING
-                )
-            }
-        }
-    }
-
-    /**
-     * Resource names mapped to their corresponding resource data.
-     * @param resourceDirectoryName The name of the directory of the resource.
-     * @param resources A list of resource names.
-     */
-    class ResourceGroup(val resourceDirectoryName: String, vararg val resources: String)
-
-    /**
-     * Iterate through the children of a node by its tag.
-     * @param resource The xml resource.
-     * @param targetTag The target xml node.
-     * @param callback The callback to call when iterating over the nodes.
-     */
-    fun ResourceContext.iterateXmlNodeChildren(
-        resource: String,
-        targetTag: String,
-        callback: (node: Node) -> Unit
-    ) =
-        xmlEditor[ResourceUtils.javaClass.classLoader.getResourceAsStream(resource)!!].use {
-            val stringsNode = it.file.getElementsByTagName(targetTag).item(0).childNodes
-            for (i in 1 until stringsNode.length - 1) callback(stringsNode.item(i))
-        }
-
-
-    /**
-     * Copies the specified node of the source [DomFileEditor] to the target [DomFileEditor].
-     * @param source the source [DomFileEditor].
-     * @param target the target [DomFileEditor]-
-     * @return AutoCloseable that closes the target [DomFileEditor]s.
-     */
-    fun String.copyXmlNode(source: DomFileEditor, target: DomFileEditor): AutoCloseable {
-        val hostNodes = source.file.getElementsByTagName(this).item(0).childNodes
-
-        val destinationResourceFile = target.file
-        val destinationNode = destinationResourceFile.getElementsByTagName(this).item(0)
-
-        for (index in 0 until hostNodes.length) {
-            val node = hostNodes.item(index).cloneNode(true)
-            destinationResourceFile.adoptNode(node)
-            destinationNode.appendChild(node)
-        }
-
-        return AutoCloseable {
-            source.close()
-            target.close()
-        }
-    }
-}
\ No newline at end of file