From 4b529477b0ac8a165bbfe68190fe3dc2ddeff62c Mon Sep 17 00:00:00 2001
From: Cuynu <90895715+cuynu@users.noreply.github.com>
Date: Fri, 23 Dec 2022 18:38:49 +0700
Subject: [PATCH] Delete old
---
.gitignore | 120 ----
.idea/.gitignore | 9 -
.idea/discord.xml | 7 -
.idea/git_toolbox_prj.xml | 15 -
.idea/misc.xml | 8 -
.idea/vcs.xml | 12 -
.releaserc | 43 --
LICENSE | 674 ------------------
build.gradle.kts | 66 --
gradle.properties | 2 -
gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 0 bytes
gradle/wrapper/gradle-wrapper.properties | 5 -
gradlew | 185 -----
gradlew.bat | 89 ---
patches.json | 1 -
settings.gradle.kts | 1 -
.../app/revanced/extensions/Extensions.kt | 201 ------
src/main/kotlin/app/revanced/meta/Meta.kt | 27 -
.../app/revanced/meta/json/Generator.kt | 50 --
.../app/revanced/meta/json/JsonPatch.kt | 27 -
.../app/revanced/meta/readme/Extensions.kt | 10 -
.../app/revanced/meta/readme/Generator.kt | 42 --
.../revanced/meta/readme/SemanticVersion.kt | 22 -
.../app/revanced/meta/readme/Template.kt | 12 -
.../SubscriptionUnlockCompatibility.kt | 13 -
.../SubscriptionUnlockFingerprint.kt | 16 -
.../patch/SubscriptionUnlockPatch.kt | 47 --
.../annotations/HexEditorAdsCompatibility.kt | 13 -
.../ad/fingerprints/PrimaryAdsFingerprint.kt | 15 -
.../hexeditor/ad/patch/HexEditorAdsPatch.kt | 39 -
.../pro/annotations/UnlockProCompatibility.kt | 9 -
.../pro/fingerprints/CheckProFingerprint.kt | 14 -
.../misc/pro/patch/UnlockProPatch.kt | 38 -
.../annotations/MusicVideoAdsCompatibility.kt | 13 -
...ShowMusicVideoAdsConstructorFingerprint.kt | 34 -
.../ShowMusicVideoAdsFingerprint.kt | 22 -
.../ad/video/patch/MusicVideoAdsPatch.kt | 40 --
.../annotations/CodecsUnlockCompatibility.kt | 13 -
.../AllCodecsReferenceFingerprint.kt | 57 --
.../fingerprints/CodecsLockFingerprint.kt | 34 -
.../audio/codecs/patch/CodecsUnlockPatch.kt | 56 --
.../ExclusiveAudioCompatibility.kt | 13 -
.../AudioOnlyEnablerFingerprint.kt | 38 -
.../fingerprints/ExclusiveAudioFingerprint.kt | 56 --
.../patch/ExclusiveAudioPatch.kt | 33 -
.../annotations/CompactHeaderCompatibility.kt | 13 -
.../CompactHeaderConstructorFingerprint.kt | 29 -
.../compactheader/patch/CompactHeaderPatch.kt | 41 --
.../MinimizedPlaybackCompatibility.kt | 13 -
.../MinimizedPlaybackManagerFingerprint.kt | 32 -
.../patch/MinimizedPlaybackPatch.kt | 34 -
.../HideGetPremiumCompatibility.kt | 13 -
.../fingerprints/HideGetPremiumFingerprint.kt | 22 -
.../HideGetPremiumParentFingerprint.kt | 25 -
.../premium/patch/HideGetPremiumPatch.kt | 51 --
.../RemoveTasteBuilderCompatibility.kt | 18 -
.../TasteBuilderConstructorFingerprint.kt | 39 -
.../patch/RemoveTasteBuilderPatch.kt | 41 --
.../RemoveUpgradeButtonCompatibility.kt | 13 -
.../PivotBarConstructorFingerprint.kt | 67 --
.../patch/RemoveUpgradeButtonPatch.kt | 78 --
.../MusicMicroGPatchCompatibility.kt | 13 -
.../CastContextFetchFingerprint.kt | 15 -
.../CastDynamiteModuleFingerprint.kt | 15 -
.../CastDynamiteModuleV2Fingerprint.kt | 15 -
.../GooglePlayUtilityFingerprint.kt | 26 -
.../microg/fingerprints/PrimeFingerprint.kt | 15 -
.../fingerprints/ServiceCheckFingerprint.kt | 20 -
.../bytecode/MusicMicroGBytecodePatch.kt | 65 --
.../resource/MusicMicroGResourcePatch.kt | 41 --
.../music/misc/microg/shared/Constants.kt | 9 -
.../BackgroundPlayCompatibility.kt | 13 -
.../BackgroundPlaybackDisableFingerprint.kt | 48 --
.../patch/BackgroundPlayPatch.kt | 36 -
.../pro/annotations/UnlockProCompatibility.kt | 9 -
.../pro/fingerprints/CheckProFingerprint.kt | 15 -
.../nyx/misc/pro/patch/UnlockProPatch.kt | 38 -
.../annotations/GeneralAdsCompatibility.kt | 9 -
.../ad/general/patch/GeneralAdsPatch.kt | 54 --
.../annotations/PremiumIconCompatibility.kt | 9 -
.../fingerprints/PremiumIconFingerprint.kt | 16 -
.../premiumicon/patch/PremiumIconPatch.kt | 36 -
.../DisableCaptureRestrictionCompatibility.kt | 12 -
.../DisableCaptureRestrictionBytecodePatch.kt | 86 ---
...aptureRestrictionAudioDriverFingerprint.kt | 17 -
.../DisableCaptureRestrictionResourcePatch.kt | 33 -
.../theme/annotations/ThemeCompatibility.kt | 9 -
.../spotify/layout/theme/patch/ThemePatch.kt | 66 --
.../PremiumNavbarTabCompatibility.kt | 9 -
.../AddPremiumNavbarTabFingerprint.kt | 13 -
.../AddPremiumNavbarTabParentFingerprint.kt | 13 -
.../patch/PremiumNavbarTabPatch.kt | 63 --
.../annotations/UnlockThemesCompatibility.kt | 9 -
.../CheckLockedThemesFingerprint.kt | 15 -
.../fingerprints/SetThemeFingerprint.kt | 15 -
.../themeunlock/patch/UnlockThemePatch.kt | 43 --
.../ad/annotations/TiktokAdsCompatibility.kt | 14 -
.../ConvertHelpFeedItemListFingerprint.kt | 16 -
.../FeedItemListCloneFingerprint.kt | 15 -
.../patches/tiktok/ad/patch/TiktokAdsPatch.kt | 57 --
.../annotations/FeedFilterCompatibility.kt | 14 -
.../FeedApiServiceLIZFingerprint.kt | 18 -
.../feedfilter/patch/TiktokFeedFilter.kt | 51 --
.../annotations/DownloadsCompatibility.kt | 14 -
.../fingerprints/ACLCommonShareFingerprint.kt | 20 -
.../ACLCommonShareFingerprint2.kt | 20 -
.../ACLCommonShareFingerprint3.kt | 20 -
.../DownloadPathParentFingerprint.kt | 21 -
.../downloads/patch/DownloadsPatch.kt | 131 ----
.../annotations/SeekbarCompatibility.kt | 14 -
.../AwemeGetVideoControlFingerprint.kt | 18 -
.../seekbar/patch/TiktokSeekbarPatch.kt | 47 --
.../speed/annotations/SpeedCompatibility.kt | 14 -
.../SpeedControlParentFingerprint.kt | 22 -
.../interaction/speed/patch/SpeedPatch.kt | 48 --
.../DisableForceLoginCompatibility.kt | 14 -
.../MandatoryLoginServiceFingerprint.kt | 16 -
.../MandatoryLoginServiceFingerprint2.kt | 16 -
.../patch/DisableForceLoginPatch.kt | 43 --
.../TikTokIntegrationsCompatibility.kt | 14 -
.../fingerprints/InitFingerprint.kt | 16 -
.../patch/TikTokIntegrationsPatch.kt | 38 -
.../TikTokSettingsCompatibility.kt | 14 -
.../AdPersonalizationActivityFingerprint.kt | 16 -
.../CopyRightSettingsStringFingerprint.kt | 16 -
.../SettingsStatusLoadFingerprint.kt | 16 -
.../settings/patch/TikTokSettingsPatch.kt | 98 ---
.../annotations/AudioAdsCompatibility.kt | 10 -
.../AudioAdsPresenterPlayFingerprint.kt | 16 -
.../twitch/ad/audio/patch/AudioAdsPatch.kt | 31 -
.../annotations/VideoAdsCompatibility.kt | 10 -
.../fingerprints/AdsManagerFingerprint.kt | 16 -
.../CheckAdEligibilityLambdaFingerprint.kt | 22 -
.../ContentConfigShowAdsFingerprint.kt | 16 -
.../twitch/ad/video/patch/VideoAdsPatch.kt | 60 --
.../ShowDeletedMessagesCompatibility.kt | 10 -
...etedMessageClickableSpanCtorFingerprint.kt | 19 -
.../SetHasModAccessFingerprint.kt | 16 -
.../patch/ShowDeletedMessagesPatch.kt | 45 --
.../annotations/DebugModeCompatibility.kt | 10 -
.../IsDebugConfigEnabledFingerprint.kt | 16 -
.../IsOmVerificationEnabledFingerprint.kt | 16 -
.../ShouldShowDebugOptionsFingerprint.kt | 16 -
.../twitch/debug/patch/DebugModePatch.kt | 49 --
.../annotations/TimelineAdsCompatibility.kt | 9 -
.../TimelineTweetJsonParserFingerprint.kt | 24 -
.../ad/timeline/patch/TimelineAdsPatch.kt | 77 --
.../annotations/DynamicColorCompatibility.kt | 9 -
.../dynamiccolor/patch/DynamicColorPatch.kt | 87 ---
.../MonochromeIconCompatibility.kt | 9 -
.../monochrome/patch/MonochromeIconPatch.kt | 55 --
.../FirebaseGetCertPatchCompatibility.kt | 9 -
.../GetCertMessagingFingerprint.kt | 18 -
.../GetCertRegistrationFingerprint.kt | 18 -
.../patch/FirebaseGetCertPatch.kt | 46 --
.../PromoCodeUnlockCompatibility.kt | 9 -
.../PromoCodeUnlockFingerprint.kt | 15 -
.../promocode/patch/PromoCodeUnlockPatch.kt | 47 --
.../annotation/GeneralAdsCompatibility.kt | 14 -
.../bytecode/patch/GeneralBytecodeAdsPatch.kt | 0
.../ad/general/patch/GeneralAdsPatch.kt | 179 -----
.../annotations/VideoAdsCompatibility.kt | 14 -
.../fingerprints/LoadVideoAdsFingerprint.kt | 18 -
.../youtube/ad/video/patch/VideoAdsPatch.kt | 58 --
.../annotation/DownloadsCompatibility.kt | 14 -
.../bytecode/patch/DownloadsBytecodePatch.kt | 52 --
.../resource/patch/DownloadsResourcePatch.kt | 72 --
.../annotation/SeekbarTappingCompatibility.kt | 14 -
.../fingerprints/SeekbarTappingFingerprint.kt | 39 -
.../SeekbarTappingParentFingerprint.kt | 49 --
.../patch/EnableSeekbarTappingPatch.kt | 110 ---
.../annotation/SwipeControlsCompatibility.kt | 13 -
.../SwipeControlsHostActivityFingerprint.kt | 17 -
.../bytecode/SwipeControlsBytecodePatch.kt | 68 --
.../resource/SwipeControlsResourcePatch.kt | 107 ---
.../annotations/AutoCaptionsCompatibility.kt | 13 -
.../StartVideoInformerFingerprint.kt | 38 -
.../SubtitleButtonControllerFingerprint.kt | 26 -
.../fingerprints/SubtitleTrackFingerprint.kt | 24 -
.../autocaptions/patch/AutoCaptionsPatch.kt | 80 ---
.../AutoplayButtonCompatibility.kt | 13 -
.../AutoNavInformerFingerprint.kt | 26 -
.../LayoutConstructorFingerprint.kt | 16 -
.../patch/HideAutoplayButtonPatch.kt | 92 ---
.../PremiumHeadingCompatibility.kt | 9 -
.../header/patch/PremiumHeadingPatch.kt | 51 --
.../CustomBrandingCompatibility.kt | 9 -
.../icon/patch/CustomBrandingPatch.kt | 94 ---
.../annotations/HideButtonsCompatibility.kt | 13 -
.../layout/buttons/patch/HideButtonsPatch.kt | 81 ---
.../annotations/CastPatchCompatibility.kt | 9 -
.../castbutton/patch/HideCastButtonPatch.kt | 55 --
.../annotations/CommentsCompatibility.kt | 13 -
.../ShortsCommentsButtonFingerprint.kt | 23 -
.../comments/bytecode/patch/CommentsPatch.kt | 62 --
.../resource/patch/CommentsResourcePatch.kt | 64 --
.../FullscreenPanelsCompatibility.kt | 13 -
.../FullscreenViewAdderFingerprint.kt | 17 -
.../FullscreenViewAdderParentFingerprint.kt | 24 -
.../patch/FullscreenPanelsRemoverPatch.kt | 65 --
.../annotations/AlbumCardsCompatibility.kt | 13 -
.../fingerprints/AlbumCardsFingerprint.kt | 29 -
.../bytecode/patch/AlbumCardsPatch.kt | 45 --
.../resource/patch/AlbumCardsResourcePatch.kt | 42 --
.../HideArtistCardCompatibility.kt | 13 -
.../patch/HideArtistCardPatch.kt | 38 -
.../patch/HideCaptionsButtonPatch.kt | 56 --
.../CrowdfundingBoxCompatibility.kt | 13 -
.../CrowdfundingBoxFingerprint.kt | 29 -
.../bytecode/patch/CrowdfundingBoxPatch.kt | 46 --
.../patch/CrowdfundingBoxResourcePatch.kt | 42 --
.../HideEndScreenCardsCompatibility.kt | 13 -
.../fingerprints/LayoutCircleFingerprint.kt | 28 -
.../fingerprints/LayoutIconFingerprint.kt | 28 -
.../fingerprints/LayoutVideoFingerprint.kt | 28 -
.../bytecode/patch/HideEndscreenCardsPatch.kt | 57 --
.../patch/HideEndscreenCardsResourcePatch.kt | 48 --
.../annotations/HideInfocardsCompatibility.kt | 13 -
.../InfocardsIncognitoFingerprint.kt | 17 -
.../InfocardsIncognitoParentFingerprint.kt | 17 -
.../InfocardsMethodCallFingerprint.kt | 25 -
.../hideinfocards/patch/HideInfocardsPatch.kt | 77 --
.../patch/HideInfocardsResourcePatch.kt | 40 --
.../MixPlaylistsPatchCompatibility.kt | 13 -
.../CreateMixPlaylistFingerprint.kt | 30 -
.../SecondCreateMixPlaylistFingerprint.kt | 30 -
.../patch/MixPlaylistsPatch.kt | 64 --
.../HideTimeAndSeekbarCompatibility.kt | 13 -
.../fingerprints/TimeCounterFingerprint.kt | 30 -
.../patch/HideTimeAndSeekbarPatch.kt | 72 --
.../OldQualityLayoutCompatibility.kt | 13 -
.../QualityMenuViewInflateFingerprint.kt | 37 -
.../patch/OldQualityLayoutPatch.kt | 59 --
.../HideEmailAddressCompatibility.kt | 13 -
...ntSwitcherAccessibilityLabelFingerprint.kt | 30 -
.../bytecode/patch/HideEmailAddressPatch.kt | 53 --
.../patch/HideEmailAddressResourcePatch.kt | 42 --
.../annotations/CreateButtonCompatibility.kt | 13 -
.../PivotBarCreateButtonViewFingerprint.kt | 20 -
.../patch/CreateButtonRemoverPatch.kt | 72 --
.../fingerprints/PivotBarFingerprint.kt | 50 --
.../annotations/ShortsButtonCompatibility.kt | 13 -
.../fingerprints/PivotBarEnumFingerprint.kt | 21 -
.../PivotBarShortsButtonViewFingerprint.kt | 18 -
.../patch/ShortsButtonRemoverPatch.kt | 90 ---
.../layout/pivotbar/utils/InjectionUtils.kt | 30 -
.../PlayerPopupPanelsCompatibility.kt | 13 -
.../EngagementPanelControllerFingerprint.kt | 41 --
.../patch/PlayerPopupPanelsPatch.kt | 59 --
.../annotations/HideReelsCompatibility.kt | 13 -
.../fingerprints/HideReelsFingerprint.kt | 16 -
.../layout/reels/patch/HideReelsPatch.kt | 51 --
.../ReturnYouTubeDislikeCompatibility.kt | 13 -
.../fingerprints/DislikeFingerprint.kt | 17 -
.../fingerprints/LikeFingerprint.kt | 19 -
.../fingerprints/RemoveLikeFingerprint.kt | 17 -
.../fingerprints/TextComponentFingerprint.kt | 14 -
.../TextComponentSpecParentFingerprint.kt | 14 -
.../patch/ReturnYouTubeDislikePatch.kt | 84 ---
.../ReturnYouTubeDislikeResourcePatch.kt | 42 --
.../annotations/SponsorBlockCompatibility.kt | 13 -
.../fingerprints/AppendTimeFingerprint.kt | 36 -
.../CreateVideoPlayerSeekbarFingerprint.kt | 15 -
.../NextGenWatchLayoutFingerprint.kt | 17 -
.../PlayerOverlaysLayoutInitFingerprint.kt | 16 -
.../RectangleFieldInvalidatorFingerprint.kt | 28 -
.../ShortsPlayerConstructorFingerprint.kt | 46 --
.../patch/SponsorBlockBytecodePatch.kt | 289 --------
.../patch/SponsorBlockResourcePatch.kt | 116 ---
.../StartupShortsResetCompatibility.kt | 13 -
.../UserWasInShortsFingerprint.kt | 29 -
.../patch/DisableShortsOnStartupPatch.kt | 59 --
.../TabletMiniPlayerCompatibility.kt | 13 -
...niPlayerDimensionsCalculatorFingerprint.kt | 28 -
.../MiniPlayerOverrideFingerprint.kt | 17 -
.../MiniPlayerOverrideNoContextFingerprint.kt | 17 -
...PlayerResponseModelSizeCheckFingerprint.kt | 26 -
.../patch/TabletMiniPlayerPatch.kt | 105 ---
.../theme/annotations/ThemeCompatibility.kt | 9 -
.../fingerprints/LithoThemeFingerprint.kt | 32 -
.../layout/theme/patch/LithoThemePatch.kt | 38 -
.../youtube/layout/theme/patch/ThemePatch.kt | 74 --
.../annotations/WatchinVRCompatibility.kt | 13 -
.../fingerprints/WatchinVRFingerprint.kt | 16 -
.../layout/watchinvr/patch/WatchinVRPatch.kt | 55 --
.../annotations/HideWaterwarkCompatibility.kt | 13 -
.../fingerprints/HideWatermarkFingerprint.kt | 15 -
.../HideWatermarkParentFingerprint.kt | 15 -
.../watermark/patch/HideWatermarkPatch.kt | 63 --
.../annotations/WideSearchbarCompatibility.kt | 13 -
.../WideSearchbarOneFingerprint.kt | 18 -
.../WideSearchbarOneParentFingerprint.kt | 16 -
.../WideSearchbarTwoFingerprint.kt | 19 -
.../WideSearchbarTwoParentFingerprint.kt | 16 -
.../widesearchbar/patch/WideSearchbarPatch.kt | 120 ----
.../annotations/AutoRepeatCompatibility.kt | 13 -
.../fingerprints/AutoRepeatFingerprint.kt | 18 -
.../AutoRepeatParentFingerprint.kt | 20 -
.../misc/autorepeat/patch/AutoRepeatPatch.kt | 88 ---
.../annotations/ClientSpoofCompatibility.kt | 14 -
.../UserAgentHeaderBuilderFingerprint.kt | 18 -
.../clientspoof/patch/ClientSpoofPatch.kt | 37 -
.../annotations/DebuggingCompatibility.kt | 9 -
.../misc/debugging/patch/DebuggingPatch.kt | 60 --
.../annotations/HDRBrightnessCompatibility.kt | 13 -
.../fingerprints/HDRBrightnessFingerprint.kt | 16 -
.../hdrbrightness/patch/HDRBrightnessPatch.kt | 64 --
.../annotations/IntegrationsCompatibility.kt | 13 -
.../fingerprints/InitFingerprint.kt | 13 -
.../fingerprints/ServiceFingerprint.kt | 13 -
.../StandalonePlayerFingerprint.kt | 16 -
.../integrations/patch/IntegrationsPatch.kt | 59 --
.../annotation/LithoFilterCompatibility.kt | 14 -
.../ComponentContextParserFingerprint.kt | 26 -
.../EmptyComponentBuilderFingerprint.kt | 16 -
.../litho/filter/patch/LithoFilterPatch.kt | 86 ---
.../FixLocaleConfigErrorCompatibility.kt | 9 -
.../patch/FixLocaleConfigErrorPatch.kt | 36 -
.../patch/ResourceMappingResourcePatch.kt | 73 --
.../annotations/MicroGPatchCompatibility.kt | 13 -
.../CastContextFetchFingerprint.kt | 14 -
.../CastDynamiteModuleFingerprint.kt | 14 -
.../CastDynamiteModuleV2Fingerprint.kt | 14 -
.../GooglePlayUtilityFingerprint.kt | 18 -
.../fingerprints/IntegrityCheckFingerprint.kt | 16 -
.../microg/fingerprints/PrimeFingerprint.kt | 14 -
.../fingerprints/ServiceCheckFingerprint.kt | 16 -
.../patch/bytecode/MicroGBytecodePatch.kt | 76 --
.../patch/resource/MicroGResourcePatch.kt | 62 --
.../youtube/misc/microg/shared/Constants.kt | 9 -
.../MinimizedPlaybackCompatibility.kt | 13 -
.../MinimizedPlaybackKidsFingerprint.kt | 29 -
.../MinimizedPlaybackManagerFingerprint.kt | 47 --
.../MinimizedPlaybackSettingsFingerprint.kt | 30 -
.../patch/MinimizedPlaybackPatch.kt | 88 ---
.../OpenLinksDirectlyCompatibility.kt | 13 -
.../OpenLinksDirectlyFingerprintPrimary.kt | 23 -
.../OpenLinksDirectlyFingerprintSecondary.kt | 28 -
.../patch/OpenLinksDirectlyPatch.kt | 72 --
.../annotations/FixPlaybackCompatibility.kt | 13 -
.../playback/fix/patch/FixPlaybackPatch.kt | 52 --
.../annotation/PlayerControlsCompatibility.kt | 13 -
.../patch/PlayerControlsBytecodePatch.kt | 83 ---
.../BottomControlsInflateFingerprint.kt | 27 -
.../PlayerControlsVisibilityFingerprint.kt | 18 -
.../patch/BottomControlsResourcePatch.kt | 85 ---
.../PlayerOverlaysHookCompatibility.kt | 13 -
...layerOverlaysOnFinishInflateFingerprint.kt | 16 -
.../patch/PlayerOverlaysHookPatch.kt | 35 -
.../annotation/PlayerTypeHookCompatibility.kt | 13 -
.../UpdatePlayerTypeFingerprint.kt | 40 --
.../playertype/patch/PlayerTypeHookPatch.kt | 34 -
.../annotations/SettingsCompatibility.kt | 9 -
.../LicenseActivityFingerprint.kt | 17 -
.../fingerprints/ThemeSetterAppFingerprint.kt | 39 -
.../ThemeSetterSystemFingerprint.kt | 23 -
.../settings/bytecode/patch/SettingsPatch.kt | 185 -----
.../framework/components/BasePreference.kt | 14 -
.../framework/components/IPreference.kt | 23 -
.../components/impl/ArrayResource.kt | 9 -
.../framework/components/impl/InputType.kt | 6 -
.../framework/components/impl/Preference.kt | 18 -
.../components/impl/PreferenceScreen.kt | 20 -
.../components/impl/StringResource.kt | 10 -
.../components/impl/SwitchPreference.kt | 21 -
.../components/impl/TextPreference.kt | 22 -
.../resource/patch/SettingsResourcePatch.kt | 302 --------
.../VideoInformationCompatibility.kt | 13 -
.../CreateVideoPlayerSeekbarFingerprint.kt | 16 -
...erControllerSetTimeReferenceFingerprint.kt | 17 -
.../fingerprints/PlayerInitFingerprint.kt | 17 -
.../fingerprints/SeekFingerprint.kt | 15 -
.../fingerprints/VideoLengthFingerprint.kt | 29 -
.../fingerprints/VideoTimeFingerprint.kt | 15 -
.../patch/VideoInformationPatch.kt | 178 -----
.../RememberVideoQualityCompatibility.kt | 13 -
.../VideoQualityReferenceFingerprint.kt | 18 -
.../VideoQualitySetterFingerprint.kt | 27 -
.../VideoUserQualityChangeFingerprint.kt | 26 -
.../patch/RememberVideoQualityPatch.kt | 88 ---
.../CustomPlaybackSpeedCompatibility.kt | 13 -
.../SpeedArrayGeneratorFingerprint.kt | 28 -
.../fingerprints/SpeedLimiterFingerprint.kt | 30 -
.../VideoSpeedPatchFingerprint.kt | 17 -
.../custom/patch/CustomVideoSpeedPatch.kt | 195 -----
.../annotation/VideoIdCompatibility.kt | 13 -
.../videoid/fingerprint/VideoIdFingerprint.kt | 23 -
.../misc/video/videoid/patch/VideoIdPatch.kt | 58 --
.../CustomVideoBufferCompatibility.kt | 13 -
.../fingerprints/MaxBufferFingerprint.kt | 26 -
.../fingerprints/PlaybackBufferFingerprint.kt | 25 -
.../fingerprints/ReBufferFingerprint.kt | 25 -
.../patch/CustomVideoBufferPatch.kt | 137 ----
.../WatchWhileActivityFingerprint.kt | 17 -
.../app/revanced/util/microg/Constants.kt | 130 ----
.../util/microg/MicroGBytecodeHelper.kt | 241 -------
.../util/microg/MicroGManifestHelper.kt | 58 --
.../util/microg/MicroGResourceHelper.kt | 59 --
.../revanced/util/resources/ResourceUtils.kt | 104 ---
...veproduct_youtube_background_color_108.png | Bin 3044 -> 0 bytes
...veproduct_youtube_foreground_color_108.png | Bin 5129 -> 0 bytes
.../branding/mipmap-hdpi/ic_launcher.png | Bin 4571 -> 0 bytes
.../mipmap-hdpi/ic_launcher_round.png | Bin 4571 -> 0 bytes
...veproduct_youtube_background_color_108.png | Bin 2937 -> 0 bytes
...veproduct_youtube_foreground_color_108.png | Bin 4366 -> 0 bytes
.../branding/mipmap-mdpi/ic_launcher.png | Bin 3919 -> 0 bytes
.../mipmap-mdpi/ic_launcher_round.png | Bin 3919 -> 0 bytes
...veproduct_youtube_background_color_108.png | Bin 3188 -> 0 bytes
...veproduct_youtube_foreground_color_108.png | Bin 6199 -> 0 bytes
.../branding/mipmap-xhdpi/ic_launcher.png | Bin 5255 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_round.png | Bin 5255 -> 0 bytes
...veproduct_youtube_background_color_108.png | Bin 3481 -> 0 bytes
...veproduct_youtube_foreground_color_108.png | Bin 7429 -> 0 bytes
.../branding/mipmap-xxhdpi/ic_launcher.png | Bin 6719 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_round.png | Bin 6719 -> 0 bytes
...veproduct_youtube_background_color_108.png | Bin 3893 -> 0 bytes
...veproduct_youtube_foreground_color_108.png | Bin 7945 -> 0 bytes
.../branding/mipmap-xxxhdpi/ic_launcher.png | Bin 8086 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin 8086 -> 0 bytes
.../drawable/revanced_yt_download_button.xml | 4 -
.../youtube_controls_bottom_ui_container.xml | 4 -
.../downloads/host/values/strings.xml | 4 -
.../resources/microg/host/values/strings.xml | 4 -
.../host/values/strings.xml | 6 -
.../quantum_ic_arrow_back_white_24.png | Bin 200 -> 0 bytes
.../quantum_ic_arrow_back_white_24.png | Bin 194 -> 0 bytes
.../layout/revanced_settings_toolbar.xml | 4 -
.../layout/revanced_settings_with_toolbar.xml | 4 -
.../revanced_settings_with_toolbar_layout.xml | 5 -
.../resources/settings/xml/revanced_prefs.xml | 4 -
.../quantum_ic_skip_next_white_24.png | Bin 357 -> 0 bytes
.../sponsorblock/drawable/ic_sb_adjust.xml | 10 -
.../sponsorblock/drawable/ic_sb_compare.xml | 10 -
.../sponsorblock/drawable/ic_sb_edit.xml | 10 -
.../sponsorblock/drawable/ic_sb_logo.xml | 19 -
.../sponsorblock/drawable/ic_sb_publish.xml | 10 -
.../sponsorblock/drawable/ic_sb_voting.xml | 10 -
.../host/layout/youtube_controls_layout.xml | 4 -
.../sponsorblock/host/values/strings.xml | 142 ----
.../layout/inline_sponsor_overlay.xml | 5 -
.../sponsorblock/layout/new_segment.xml | 107 ---
.../layout/skip_sponsor_button.xml | 7 -
.../drawable/ic_sc_brightness_auto.xml | 5 -
.../drawable/ic_sc_brightness_manual.xml | 5 -
.../drawable/ic_sc_volume_mute.xml | 5 -
.../drawable/ic_sc_volume_normal.xml | 5 -
.../theme/values-night-v31/styles.xml | 8 -
447 files changed, 15181 deletions(-)
delete mode 100644 .gitignore
delete mode 100644 .idea/.gitignore
delete mode 100644 .idea/discord.xml
delete mode 100644 .idea/git_toolbox_prj.xml
delete mode 100644 .idea/misc.xml
delete mode 100644 .idea/vcs.xml
delete mode 100644 .releaserc
delete mode 100644 LICENSE
delete mode 100644 build.gradle.kts
delete mode 100644 gradle.properties
delete mode 100644 gradle/wrapper/gradle-wrapper.jar
delete mode 100644 gradle/wrapper/gradle-wrapper.properties
delete mode 100644 gradlew
delete mode 100644 gradlew.bat
delete mode 100644 patches.json
delete mode 100644 settings.gradle.kts
delete mode 100644 src/main/kotlin/app/revanced/extensions/Extensions.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/Meta.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/json/Generator.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/json/JsonPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/readme/Extensions.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/readme/Generator.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/readme/SemanticVersion.kt
delete mode 100644 src/main/kotlin/app/revanced/meta/readme/Template.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ecmwf/misc/subscription/annotations/SubscriptionUnlockCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ecmwf/misc/subscription/fingerprints/SubscriptionUnlockFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ecmwf/misc/subscription/patch/SubscriptionUnlockPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/hexeditor/ad/annotations/HexEditorAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/hexeditor/ad/fingerprints/PrimaryAdsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/hexeditor/ad/patch/HexEditorAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/annotations/UnlockProCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/fingerprints/CheckProFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/iconpackstudio/misc/pro/patch/UnlockProPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/ad/video/annotations/MusicVideoAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsConstructorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/ad/video/fingerprints/ShowMusicVideoAdsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/ad/video/patch/MusicVideoAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/codecs/annotations/CodecsUnlockCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/codecs/patch/CodecsUnlockPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/annotations/ExclusiveAudioCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/ExclusiveAudioFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/patch/ExclusiveAudioPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/compactheader/annotations/CompactHeaderCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/compactheader/patch/CompactHeaderPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/annotations/MinimizedPlaybackCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/patch/MinimizedPlaybackPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/premium/annotations/HideGetPremiumCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/premium/patch/HideGetPremiumPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/annotations/RemoveTasteBuilderCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/patch/RemoveTasteBuilderPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/annotations/RemoveUpgradeButtonCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/patch/RemoveUpgradeButtonPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/annotations/MusicMicroGPatchCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastContextFetchFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/PrimeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/fingerprints/ServiceCheckFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/patch/bytecode/MusicMicroGBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/patch/resource/MusicMicroGResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/misc/microg/shared/Constants.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/annotations/BackgroundPlayCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/patch/BackgroundPlayPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/nyx/misc/pro/annotations/UnlockProCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/nyx/misc/pro/fingerprints/CheckProFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/nyx/misc/pro/patch/UnlockProPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/reddit/ad/general/annotations/GeneralAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/reddit/ad/general/patch/GeneralAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/annotations/PremiumIconCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/fingerprints/PremiumIconFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/reddit/layout/premiumicon/patch/PremiumIconPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/audio/annotation/DisableCaptureRestrictionCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/audio/bytecode/patch/DisableCaptureRestrictionBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/audio/fingerprints/DisableCaptureRestrictionAudioDriverFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/audio/resource/patch/DisableCaptureRestrictionResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/layout/theme/annotations/ThemeCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/layout/theme/patch/ThemePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/premium_navbar_tab/annotations/PremiumNavbarTabCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/premium_navbar_tab/fingerprints/AddPremiumNavbarTabFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/premium_navbar_tab/fingerprints/AddPremiumNavbarTabParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/spotify/premium_navbar_tab/patch/PremiumNavbarTabPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/annotations/UnlockThemesCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/CheckLockedThemesFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/fingerprints/SetThemeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/ticktick/misc/themeunlock/patch/UnlockThemePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/ad/annotations/TiktokAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/ConvertHelpFeedItemListFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/ad/fingerprints/FeedItemListCloneFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/ad/patch/TiktokAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/feedfilter/annotations/FeedFilterCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/feedfilter/fingerprints/FeedApiServiceLIZFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/feedfilter/patch/TiktokFeedFilter.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/annotations/DownloadsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint2.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/ACLCommonShareFingerprint3.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/fingerprints/DownloadPathParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/downloads/patch/DownloadsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/annotations/SeekbarCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/fingerprints/AwemeGetVideoControlFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/seekbar/patch/TiktokSeekbarPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/annotations/SpeedCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/fingerprints/SpeedControlParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/interaction/speed/patch/SpeedPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/forcelogin/annotations/DisableForceLoginCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/forcelogin/fingerprints/MandatoryLoginServiceFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/forcelogin/fingerprints/MandatoryLoginServiceFingerprint2.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/forcelogin/patch/DisableForceLoginPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/annotations/TikTokIntegrationsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/fingerprints/InitFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/integrations/patch/TikTokIntegrationsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/settings/annotations/TikTokSettingsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/AdPersonalizationActivityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/CopyRightSettingsStringFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/settings/fingerprints/SettingsStatusLoadFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/tiktok/misc/settings/patch/TikTokSettingsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/audio/annotations/AudioAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/audio/fingerprints/AudioAdsPresenterPlayFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/audio/patch/AudioAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/video/annotations/VideoAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/AdsManagerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/CheckAdEligibilityLambdaFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/video/fingerprints/ContentConfigShowAdsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/ad/video/patch/VideoAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/annotations/ShowDeletedMessagesCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/DeletedMessageClickableSpanCtorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/fingerprints/SetHasModAccessFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/chat/antidelete/patch/ShowDeletedMessagesPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/debug/annotations/DebugModeCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsDebugConfigEnabledFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/IsOmVerificationEnabledFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/debug/fingerprints/ShouldShowDebugOptionsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitch/debug/patch/DebugModePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/ad/timeline/annotations/TimelineAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/ad/timeline/fingerprints/TimelineTweetJsonParserFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/ad/timeline/patch/TimelineAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/misc/dynamiccolor/annotations/DynamicColorCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/misc/dynamiccolor/patch/DynamicColorPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/misc/monochrome/annotations/MonochromeIconCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/twitter/misc/monochrome/patch/MonochromeIconPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/annotations/FirebaseGetCertPatchCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertMessagingFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/fingerprints/GetCertRegistrationFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/firebasegetcert/patch/FirebaseGetCertPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/annotations/PromoCodeUnlockCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/fingerprints/PromoCodeUnlockFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/warnwetter/misc/promocode/patch/PromoCodeUnlockPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/general/annotation/GeneralAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/general/bytecode/patch/GeneralBytecodeAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/general/patch/GeneralAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/video/annotations/VideoAdsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/video/fingerprints/LoadVideoAdsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/annotation/DownloadsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/bytecode/patch/DownloadsBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/resource/patch/DownloadsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/annotation/SeekbarTappingCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SeekbarTappingFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/fingerprints/SeekbarTappingParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/patch/EnableSeekbarTappingPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/annotation/SwipeControlsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/fingerprints/SwipeControlsHostActivityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/patch/bytecode/SwipeControlsBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/patch/resource/SwipeControlsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/annotations/AutoCaptionsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/StartVideoInformerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleButtonControllerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/fingerprints/SubtitleTrackFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/patch/AutoCaptionsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/annotations/AutoplayButtonCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/fingerprints/AutoNavInformerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/fingerprints/LayoutConstructorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/patch/HideAutoplayButtonPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/annotations/PremiumHeadingCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/branding/header/patch/PremiumHeadingPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/branding/icon/annotations/CustomBrandingCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/branding/icon/patch/CustomBrandingPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/buttons/annotations/HideButtonsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/buttons/patch/HideButtonsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/castbutton/annotations/CastPatchCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/castbutton/patch/HideCastButtonPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/comments/annotations/CommentsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/comments/bytecode/fingerprints/ShortsCommentsButtonFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/comments/bytecode/patch/CommentsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/comments/resource/patch/CommentsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/annotations/FullscreenPanelsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/fingerprints/FullscreenViewAdderFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/fingerprints/FullscreenViewAdderParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/patch/FullscreenPanelsRemoverPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/annotations/AlbumCardsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/bytecode/fingerprints/AlbumCardsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/bytecode/patch/AlbumCardsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/resource/patch/AlbumCardsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideartistcard/annotations/HideArtistCardCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideartistcard/patch/HideArtistCardPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidecaptionsbutton/patch/HideCaptionsButtonPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/annotations/CrowdfundingBoxCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/bytecode/fingerprints/CrowdfundingBoxFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/bytecode/patch/CrowdfundingBoxPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/resource/patch/CrowdfundingBoxResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/annotations/HideEndScreenCardsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/bytecode/fingerprints/LayoutCircleFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/bytecode/fingerprints/LayoutIconFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/bytecode/fingerprints/LayoutVideoFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/bytecode/patch/HideEndscreenCardsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/resource/patch/HideEndscreenCardsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/annotations/HideInfocardsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/fingerprints/InfocardsIncognitoFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/fingerprints/InfocardsIncognitoParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/fingerprints/InfocardsMethodCallFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/patch/HideInfocardsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/resource/patch/HideInfocardsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/annotations/MixPlaylistsPatchCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/fingerprints/CreateMixPlaylistFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/fingerprints/SecondCreateMixPlaylistFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/patch/MixPlaylistsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/annotations/HideTimeAndSeekbarCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/fingerprints/TimeCounterFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/patch/HideTimeAndSeekbarPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/annotations/OldQualityLayoutCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/fingerprints/QualityMenuViewInflateFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/annotations/HideEmailAddressCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/bytecode/fingerprints/AccountSwitcherAccessibilityLabelFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/bytecode/patch/HideEmailAddressPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/resource/patch/HideEmailAddressResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/annotations/CreateButtonCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/fingerprints/PivotBarCreateButtonViewFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/patch/CreateButtonRemoverPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/fingerprints/PivotBarFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/annotations/ShortsButtonCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/fingerprints/PivotBarEnumFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/fingerprints/PivotBarShortsButtonViewFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/patch/ShortsButtonRemoverPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/utils/InjectionUtils.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/annotations/PlayerPopupPanelsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/fingerprints/EngagementPanelControllerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/patch/PlayerPopupPanelsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/reels/annotations/HideReelsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/reels/fingerprints/HideReelsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/reels/patch/HideReelsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/annotations/ReturnYouTubeDislikeCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/DislikeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/LikeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/RemoveLikeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/fingerprints/TextComponentSpecParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/patch/ReturnYouTubeDislikePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/resource/patch/ReturnYouTubeDislikeResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/annotations/SponsorBlockCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/fingerprints/AppendTimeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/fingerprints/CreateVideoPlayerSeekbarFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/fingerprints/NextGenWatchLayoutFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/fingerprints/PlayerOverlaysLayoutInitFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/fingerprints/RectangleFieldInvalidatorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/fingerprints/ShortsPlayerConstructorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/bytecode/patch/SponsorBlockBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/resource/patch/SponsorBlockResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/annotations/StartupShortsResetCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/fingerprints/UserWasInShortsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/patch/DisableShortsOnStartupPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/annotations/TabletMiniPlayerCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerDimensionsCalculatorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerOverrideNoContextFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/fingerprints/MiniPlayerResponseModelSizeCheckFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/patch/TabletMiniPlayerPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/theme/annotations/ThemeCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/theme/fingerprints/LithoThemeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/theme/patch/LithoThemePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/theme/patch/ThemePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/annotations/WatchinVRCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/fingerprints/WatchinVRFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/patch/WatchinVRPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watermark/annotations/HideWaterwarkCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watermark/fingerprints/HideWatermarkFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watermark/fingerprints/HideWatermarkParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/watermark/patch/HideWatermarkPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/annotations/WideSearchbarCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/fingerprints/WideSearchbarOneFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/fingerprints/WideSearchbarOneParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/fingerprints/WideSearchbarTwoFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/fingerprints/WideSearchbarTwoParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/patch/WideSearchbarPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/annotations/AutoRepeatCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/fingerprints/AutoRepeatParentFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/patch/AutoRepeatPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/annotations/ClientSpoofCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/clientspoof/patch/ClientSpoofPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/debugging/annotations/DebuggingCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/debugging/patch/DebuggingPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/annotations/HDRBrightnessCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/fingerprints/HDRBrightnessFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/integrations/annotations/IntegrationsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/InitFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/ServiceFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/integrations/fingerprints/StandalonePlayerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/integrations/patch/IntegrationsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/annotation/LithoFilterCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/ComponentContextParserFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/fingerprints/EmptyComponentBuilderFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/patch/LithoFilterPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/manifest/annotations/FixLocaleConfigErrorCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/manifest/patch/FixLocaleConfigErrorPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/mapping/patch/ResourceMappingResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/annotations/MicroGPatchCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastContextFetchFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/CastDynamiteModuleV2Fingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/GooglePlayUtilityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/IntegrityCheckFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/PrimeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/fingerprints/ServiceCheckFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/patch/bytecode/MicroGBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/patch/resource/MicroGResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/microg/shared/Constants.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/annotations/MinimizedPlaybackCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackKidsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/fingerprints/MinimizedPlaybackSettingsFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/annotations/OpenLinksDirectlyCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintPrimary.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/fingerprints/OpenLinksDirectlyFingerprintSecondary.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playback/fix/annotations/FixPlaybackCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playback/fix/patch/FixPlaybackPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/annotation/PlayerControlsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/bytecode/patch/PlayerControlsBytecodePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/BottomControlsInflateFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/fingerprints/PlayerControlsVisibilityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/resource/patch/BottomControlsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/annotation/PlayerOverlaysHookCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/fingerprint/PlayerOverlaysOnFinishInflateFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playeroverlay/patch/PlayerOverlaysHookPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playertype/annotation/PlayerTypeHookCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playertype/fingerprint/UpdatePlayerTypeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/playertype/patch/PlayerTypeHookPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/annotations/SettingsCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/LicenseActivityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/ThemeSetterAppFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/fingerprints/ThemeSetterSystemFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/BasePreference.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/IPreference.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/ArrayResource.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/InputType.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/Preference.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/PreferenceScreen.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/StringResource.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/SwitchPreference.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/framework/components/impl/TextPreference.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/settings/resource/patch/SettingsResourcePatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/annotation/VideoInformationCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/fingerprints/CreateVideoPlayerSeekbarFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/fingerprints/PlayerControllerSetTimeReferenceFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/fingerprints/PlayerInitFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/fingerprints/SeekFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/fingerprints/VideoLengthFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/fingerprints/VideoTimeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/information/patch/VideoInformationPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/annotations/RememberVideoQualityCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/fingerprints/VideoQualityReferenceFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/fingerprints/VideoQualitySetterFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/fingerprints/VideoUserQualityChangeFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/patch/RememberVideoQualityPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/speed/custom/annotations/CustomPlaybackSpeedCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/speed/custom/fingerprints/SpeedArrayGeneratorFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/speed/custom/fingerprints/SpeedLimiterFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/speed/custom/fingerprints/VideoSpeedPatchFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/speed/custom/patch/CustomVideoSpeedPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/videoid/annotation/VideoIdCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/videoid/fingerprint/VideoIdFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/video/videoid/patch/VideoIdPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/annotations/CustomVideoBufferCompatibility.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/fingerprints/MaxBufferFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/fingerprints/PlaybackBufferFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/fingerprints/ReBufferFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/patch/CustomVideoBufferPatch.kt
delete mode 100644 src/main/kotlin/app/revanced/shared/fingerprints/WatchWhileActivityFingerprint.kt
delete mode 100644 src/main/kotlin/app/revanced/util/microg/Constants.kt
delete mode 100644 src/main/kotlin/app/revanced/util/microg/MicroGBytecodeHelper.kt
delete mode 100644 src/main/kotlin/app/revanced/util/microg/MicroGManifestHelper.kt
delete mode 100644 src/main/kotlin/app/revanced/util/microg/MicroGResourceHelper.kt
delete mode 100644 src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt
delete mode 100644 src/main/resources/branding/mipmap-hdpi/adaptiveproduct_youtube_background_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-hdpi/adaptiveproduct_youtube_foreground_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-hdpi/ic_launcher.png
delete mode 100644 src/main/resources/branding/mipmap-hdpi/ic_launcher_round.png
delete mode 100644 src/main/resources/branding/mipmap-mdpi/adaptiveproduct_youtube_background_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-mdpi/adaptiveproduct_youtube_foreground_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-mdpi/ic_launcher.png
delete mode 100644 src/main/resources/branding/mipmap-mdpi/ic_launcher_round.png
delete mode 100644 src/main/resources/branding/mipmap-xhdpi/adaptiveproduct_youtube_background_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-xhdpi/adaptiveproduct_youtube_foreground_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-xhdpi/ic_launcher.png
delete mode 100644 src/main/resources/branding/mipmap-xhdpi/ic_launcher_round.png
delete mode 100644 src/main/resources/branding/mipmap-xxhdpi/adaptiveproduct_youtube_background_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-xxhdpi/adaptiveproduct_youtube_foreground_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 src/main/resources/branding/mipmap-xxhdpi/ic_launcher_round.png
delete mode 100644 src/main/resources/branding/mipmap-xxxhdpi/adaptiveproduct_youtube_background_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-xxxhdpi/adaptiveproduct_youtube_foreground_color_108.png
delete mode 100644 src/main/resources/branding/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 src/main/resources/branding/mipmap-xxxhdpi/ic_launcher_round.png
delete mode 100644 src/main/resources/downloads/drawable/revanced_yt_download_button.xml
delete mode 100644 src/main/resources/downloads/host/layout/youtube_controls_bottom_ui_container.xml
delete mode 100644 src/main/resources/downloads/host/values/strings.xml
delete mode 100644 src/main/resources/microg/host/values/strings.xml
delete mode 100644 src/main/resources/returnyoutubedislike/host/values/strings.xml
delete mode 100644 src/main/resources/settings/drawable-ldrtl-xxxhdpi/quantum_ic_arrow_back_white_24.png
delete mode 100644 src/main/resources/settings/drawable-xxxhdpi/quantum_ic_arrow_back_white_24.png
delete mode 100644 src/main/resources/settings/layout/revanced_settings_toolbar.xml
delete mode 100644 src/main/resources/settings/layout/revanced_settings_with_toolbar.xml
delete mode 100644 src/main/resources/settings/layout/revanced_settings_with_toolbar_layout.xml
delete mode 100644 src/main/resources/settings/xml/revanced_prefs.xml
delete mode 100644 src/main/resources/sponsorblock/drawable-xxxhdpi/quantum_ic_skip_next_white_24.png
delete mode 100644 src/main/resources/sponsorblock/drawable/ic_sb_adjust.xml
delete mode 100644 src/main/resources/sponsorblock/drawable/ic_sb_compare.xml
delete mode 100644 src/main/resources/sponsorblock/drawable/ic_sb_edit.xml
delete mode 100644 src/main/resources/sponsorblock/drawable/ic_sb_logo.xml
delete mode 100644 src/main/resources/sponsorblock/drawable/ic_sb_publish.xml
delete mode 100644 src/main/resources/sponsorblock/drawable/ic_sb_voting.xml
delete mode 100644 src/main/resources/sponsorblock/host/layout/youtube_controls_layout.xml
delete mode 100644 src/main/resources/sponsorblock/host/values/strings.xml
delete mode 100644 src/main/resources/sponsorblock/layout/inline_sponsor_overlay.xml
delete mode 100644 src/main/resources/sponsorblock/layout/new_segment.xml
delete mode 100644 src/main/resources/sponsorblock/layout/skip_sponsor_button.xml
delete mode 100644 src/main/resources/swipecontrols/drawable/ic_sc_brightness_auto.xml
delete mode 100644 src/main/resources/swipecontrols/drawable/ic_sc_brightness_manual.xml
delete mode 100644 src/main/resources/swipecontrols/drawable/ic_sc_volume_mute.xml
delete mode 100644 src/main/resources/swipecontrols/drawable/ic_sc_volume_normal.xml
delete mode 100644 src/main/resources/theme/values-night-v31/styles.xml
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index f0dfac3..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,120 +0,0 @@
-### Java template
-# Compiled class file
-*.class
-
-# Log file
-*.log
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-
-### JetBrains template
-# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# User-specific stuff
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-.idea/**/usage.statistics.xml
-.idea/**/dictionaries
-.idea/**/shelf
-
-# Generated files
-.idea/**/contentModel.xml
-
-# Sensitive or high-churn files
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-.idea/**/dbnavigator.xml
-
-# Gradle
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# Gradle and Maven with auto-import
-# When using Gradle or Maven with auto-import, you should exclude module files,
-# since they will be recreated, and may cause churn. Uncomment if using
-# auto-import.
-.idea/artifacts
-.idea/compiler.xml
-.idea/jarRepositories.xml
-.idea/modules.xml
-.idea/*.iml
-.idea/modules
-*.iml
-*.ipr
-
-# CMake
-cmake-build-*/
-
-# Mongo Explorer plugin
-.idea/**/mongoSettings.xml
-
-# File-based project format
-*.iws
-
-# IntelliJ
-out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Cursive Clojure plugin
-.idea/replstate.xml
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-
-# Editor-based Rest Client
-.idea/httpRequests
-
-# Android studio 3.1+ serialized cache file
-.idea/caches/build_file_checksums.ser
-
-### Gradle template
-.gradle
-**/build/
-!src/**/build/
-
-# Ignore Gradle GUI config
-gradle-app.setting
-
-# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
-!gradle-wrapper.jar
-
-# Cache of project
-.gradletasknamecache
-
-# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
-# gradle/wrapper/gradle-wrapper.properties
-
-# Potentially copyrighted test APK
-*.apk
-
-# Ignore vscode config
-.vscode/
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 877c6d9..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-/kotlinc.xml
diff --git a/.idea/discord.xml b/.idea/discord.xml
deleted file mode 100644
index d8e9561..0000000
--- a/.idea/discord.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml
deleted file mode 100644
index 02b915b..0000000
--- a/.idea/git_toolbox_prj.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index f1854e4..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 7ddfc9e..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.releaserc b/.releaserc
deleted file mode 100644
index 1d2937b..0000000
--- a/.releaserc
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "branches": [
- "main",
- {
- "name": "dev",
- "prerelease": true
- }
- ],
- "plugins": [
- ["@semantic-release/commit-analyzer", {
- "releaseRules": [
- {"type": "build", "release": "patch"}
- ]
- }],
- "@semantic-release/release-notes-generator",
- "@semantic-release/changelog",
- "gradle-semantic-release-plugin",
- [
- "@semantic-release/git",
- {
- "assets": [
- "README.md",
- "CHANGELOG.md",
- "gradle.properties",
- "patches.json"
- ]
- }
- ],
- [
- "@semantic-release/github",
- {
- "assets": [
- {
- "path": "build/libs/*.jar"
- },
- {
- "path": "patches.json"
- }
- ]
- }
- ]
- ]
-}
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index f288702..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
diff --git a/build.gradle.kts b/build.gradle.kts
deleted file mode 100644
index 07265f8..0000000
--- a/build.gradle.kts
+++ /dev/null
@@ -1,66 +0,0 @@
-plugins {
- kotlin("jvm") version "1.7.0"
-}
-
-group = "app.revanced"
-
-val githubUsername: String = project.findProperty("gpr.user") as? String ?: System.getenv("GITHUB_ACTOR")
-val githubPassword: String = project.findProperty("gpr.key") as? String ?: System.getenv("GITHUB_TOKEN")
-
-repositories {
- mavenCentral()
- mavenLocal()
- maven {
- url = uri("https://maven.pkg.github.com/revanced/revanced-patcher")
- credentials {
- username = githubUsername
- password = githubPassword
- }
- }
-}
-
-dependencies {
- implementation("app.revanced:revanced-patcher:6.0.2")
- implementation("app.revanced:multidexlib2:2.5.2.r2")
- // Required for meta
- implementation("com.google.code.gson:gson:2.9.1")
-}
-
-tasks {
- register("generateBundle") {
- description = "Generate dex files from build and bundle them in the jar file"
- dependsOn(build)
-
- doLast {
- val androidHome = System.getenv("ANDROID_HOME") ?: throw GradleException("ANDROID_HOME not found")
- val d8 = "${androidHome}/build-tools/32.0.0/d8"
- val input = configurations.archives.get().allArtifacts.files.files.first().absolutePath
- val work = File("${buildDir}/libs")
-
- exec {
- workingDir = work
- commandLine = listOf(d8, input)
- }
-
- exec {
- workingDir = work
- commandLine = listOf("zip", "-u", input, "classes.dex")
- }
- }
- }
- register("generateMeta") {
- description = "Generate metadata for this bundle"
- dependsOn(build)
-
- classpath = sourceSets["main"].runtimeClasspath
- mainClass.set("app.revanced.meta.Meta")
- }
- // Dummy task to fix the Gradle semantic-release plugin.
- // Remove this if you forked it to support building only.
- // Tracking issue: https://github.com/KengoTODA/gradle-semantic-release-plugin/issues/435
- register("publish") {
- group = "publish"
- description = "Dummy task"
- dependsOn(named("generateBundle"), named("generateMeta"))
- }
-}
diff --git a/gradle.properties b/gradle.properties
deleted file mode 100644
index 7874ced..0000000
--- a/gradle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-kotlin.code.style = official
-version = 2.111.2
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 59536
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