Full Code of Sevtinge/Cemiuiler for AI

main b66a0b6fc3e0 cached
1002 files
3.2 MB
900.5k tokens
1783 symbols
1 requests
Download .txt
Showing preview only (3,747K chars total). Download the full file or copy to clipboard to get everything.
Repository: Sevtinge/Cemiuiler
Branch: main
Commit: b66a0b6fc3e0
Files: 1002
Total size: 3.2 MB

Directory structure:
gitextract_6q0v22cg/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── BUG-REPORT.yml
│   │   ├── FEATURE-REQUEST.yml
│   │   ├── MIGRATION-REQUEST.yml
│   │   └── config.yml
│   ├── dependabot.yml
│   └── workflows/
│       ├── android.yml
│       ├── androidu.yml
│       └── crowdin.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_en-US.md
├── README_pt-BR.md
├── app/
│   ├── .gitignore
│   ├── build.gradle
│   ├── dict.txt
│   ├── libs/
│   │   ├── animation-release.aar
│   │   ├── appcompat-release.aar
│   │   ├── core-release.aar
│   │   ├── haptic-release.aar
│   │   ├── hyperceiler_expansion_packs-debug.aar
│   │   ├── miui-framework.jar
│   │   ├── miui.jar
│   │   ├── preference-release.aar
│   │   ├── smooth-release.aar
│   │   └── springback-release.aar
│   ├── proguard-log.pro
│   ├── proguard-rules.pro
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── assets/
│           │   └── xposed_init
│           ├── java/
│           │   └── com/
│           │       ├── sevtinge/
│           │       │   └── cemiuiler/
│           │       │       ├── Application.java
│           │       │       ├── CrashRecord.kt
│           │       │       ├── XposedInit.kt
│           │       │       ├── callback/
│           │       │       │   └── IAppSelectCallback.java
│           │       │       ├── data/
│           │       │       │   ├── AppData.java
│           │       │       │   ├── LocationData.java
│           │       │       │   ├── ModData.java
│           │       │       │   ├── SQLiteHelper.java
│           │       │       │   └── adapter/
│           │       │       │       ├── AppDataAdapter.java
│           │       │       │       ├── ModSearchAdapter.java
│           │       │       │       └── MutipleChoiceAdapter.java
│           │       │       ├── module/
│           │       │       │   ├── app/
│           │       │       │   │   ├── AiAsst.java
│           │       │       │   │   ├── Aod.java
│           │       │       │   │   ├── Barrage.java
│           │       │       │   │   ├── Browser.java
│           │       │       │   │   ├── Camera.java
│           │       │       │   │   ├── Clock.java
│           │       │       │   │   ├── ContentExtension.java
│           │       │       │   │   ├── Creation.java
│           │       │       │   │   ├── Downloads.java
│           │       │       │   │   ├── ExternalStorage.java
│           │       │       │   │   ├── FileExplorer.java
│           │       │       │   │   ├── Gallery.java
│           │       │       │   │   ├── GlobalActions.java
│           │       │       │   │   ├── GuardProvider.java
│           │       │       │   │   ├── Home.java
│           │       │       │   │   ├── InCallUi.java
│           │       │       │   │   ├── Joyose.java
│           │       │       │   │   ├── Lbe.java
│           │       │       │   │   ├── Market.java
│           │       │       │   │   ├── MediaEditor.java
│           │       │       │   │   ├── MiLink.java
│           │       │       │   │   ├── MiSettings.java
│           │       │       │   │   ├── MiShare.java
│           │       │       │   │   ├── MiWallpaper.java
│           │       │       │   │   ├── Mirror.java
│           │       │       │   │   ├── Mms.java
│           │       │       │   │   ├── Mtb.java
│           │       │       │   │   ├── Music.java
│           │       │       │   │   ├── NetworkBoost.java
│           │       │       │   │   ├── Nfc.java
│           │       │       │   │   ├── Notes.java
│           │       │       │   │   ├── PackageInstaller.java
│           │       │       │   │   ├── PersonalAssistant.java
│           │       │       │   │   ├── Phone.java
│           │       │       │   │   ├── PowerKeeper.java
│           │       │       │   │   ├── Scanner.java
│           │       │       │   │   ├── ScreenRecorder.java
│           │       │       │   │   ├── ScreenShot.java
│           │       │       │   │   ├── SecurityCenter.java
│           │       │       │   │   ├── Settings.java
│           │       │       │   │   ├── SystemFramework.java
│           │       │       │   │   ├── SystemFrameworkForCorePatch.java
│           │       │       │   │   ├── SystemSettings.java
│           │       │       │   │   ├── SystemUI.java
│           │       │       │   │   ├── ThemeManager.java
│           │       │       │   │   ├── TsmClient.java
│           │       │       │   │   ├── Updater.java
│           │       │       │   │   ├── Various.java
│           │       │       │   │   ├── VoiceAssist.java
│           │       │       │   │   └── Weather.java
│           │       │       │   ├── base/
│           │       │       │   │   ├── BaseHook.java
│           │       │       │   │   ├── BaseModule.java
│           │       │       │   │   ├── BaseXposedInit.java
│           │       │       │   │   ├── HostDir.kt
│           │       │       │   │   └── IXposedHook.java
│           │       │       │   └── hook/
│           │       │       │       ├── aiasst/
│           │       │       │       │   └── AiCaptions.kt
│           │       │       │       ├── aod/
│           │       │       │       │   └── UnlockAlwaysOnDisplay.kt
│           │       │       │       ├── barrage/
│           │       │       │       │   ├── AnyBarrage.kt
│           │       │       │       │   └── CustomBarrageLength.kt
│           │       │       │       ├── browser/
│           │       │       │       │   └── DebugMode.kt
│           │       │       │       ├── camera/
│           │       │       │       │   ├── EnableLabOptions.kt
│           │       │       │       │   ├── Unlock120Fps.java
│           │       │       │       │   ├── Unlock60Fps.java
│           │       │       │       │   ├── UnlockAiEnhance.java
│           │       │       │       │   ├── UnlockAiShutter.java
│           │       │       │       │   ├── UnlockAiWatermark.java
│           │       │       │       │   ├── UnlockAmbilight.java
│           │       │       │       │   ├── UnlockAudioZoom.java
│           │       │       │       │   ├── UnlockClone.java
│           │       │       │       │   ├── UnlockColorEnhance.java
│           │       │       │       │   ├── UnlockCosmeticMirror.java
│           │       │       │       │   ├── UnlockCvlens.java
│           │       │       │       │   ├── UnlockCyberFocusVersion2.java
│           │       │       │       │   ├── UnlockDoc.java
│           │       │       │       │   ├── UnlockDualcam.java
│           │       │       │       │   ├── UnlockDuration.java
│           │       │       │       │   ├── UnlockFilm.java
│           │       │       │       │   ├── UnlockFilmDelay.java
│           │       │       │       │   ├── UnlockFilmDollyZoom.java
│           │       │       │       │   ├── UnlockFilmDream.java
│           │       │       │       │   ├── UnlockFilmSlowShutter.java
│           │       │       │       │   ├── UnlockFilmTimeBackflow.java
│           │       │       │       │   ├── UnlockFilmTimeFreeze.java
│           │       │       │       │   ├── UnlockHandGesture.java
│           │       │       │       │   ├── UnlockHdr.java
│           │       │       │       │   ├── UnlockHeic.java
│           │       │       │       │   ├── UnlockIdcard.java
│           │       │       │       │   ├── UnlockLog.java
│           │       │       │       │   ├── UnlockMakeup.java
│           │       │       │       │   ├── UnlockMenMakeup.java
│           │       │       │       │   ├── UnlockMilive.java
│           │       │       │       │   ├── UnlockMoon.java
│           │       │       │       │   ├── UnlockNevus.java
│           │       │       │       │   ├── UnlockNewBeauty.java
│           │       │       │       │   ├── UnlockPano.java
│           │       │       │       │   ├── UnlockPixel.java
│           │       │       │       │   ├── UnlockPortrait.java
│           │       │       │       │   ├── UnlockRaw.java
│           │       │       │       │   ├── UnlockSlow.java
│           │       │       │       │   ├── UnlockTrackEyes.java
│           │       │       │       │   ├── UnlockTrackFeature.java
│           │       │       │       │   ├── UnlockTrackFocus.java
│           │       │       │       │   ├── UnlockVideosky.java
│           │       │       │       │   ├── UnlockVlog.java
│           │       │       │       │   └── UnlockVlogPro.java
│           │       │       │       ├── clock/
│           │       │       │       │   └── EnableHourGlass.java
│           │       │       │       ├── contentextension/
│           │       │       │       │   ├── DoublePress.kt
│           │       │       │       │   ├── HorizontalContentExtension.kt
│           │       │       │       │   ├── LinkOpenMode.java
│           │       │       │       │   ├── SuperImage.kt
│           │       │       │       │   ├── UnlockTaplus.kt
│           │       │       │       │   └── UseThirdPartyBrowser.java
│           │       │       │       ├── creation/
│           │       │       │       │   └── UnlockCreation.kt
│           │       │       │       ├── downloads/
│           │       │       │       │   └── FuckXlDownload.java
│           │       │       │       ├── externalstorage/
│           │       │       │       │   └── DisableFolderCantUse.java
│           │       │       │       ├── fileexplorer/
│           │       │       │       │   └── SelectName.kt
│           │       │       │       ├── gallery/
│           │       │       │       │   ├── EnableHdrEnhance.java
│           │       │       │       │   ├── EnableIdPhoto.java
│           │       │       │       │   ├── EnableMagicMatting.java
│           │       │       │       │   ├── EnableMagicSky.java
│           │       │       │       │   ├── EnableOcr.java
│           │       │       │       │   ├── EnableOcrForm.java
│           │       │       │       │   ├── EnablePdf.java
│           │       │       │       │   ├── EnablePhotoMovie.java
│           │       │       │       │   ├── EnableRemover2.java
│           │       │       │       │   ├── EnableTextYanhua.java
│           │       │       │       │   ├── EnableVideoEditor.java
│           │       │       │       │   └── EnableVideoPost.java
│           │       │       │       ├── guardprovider/
│           │       │       │       │   ├── DisableUploadAppList.java
│           │       │       │       │   └── DisableUploadAppListNew.kt
│           │       │       │       ├── home/
│           │       │       │       │   ├── AllAppsBlur.java
│           │       │       │       │   ├── AnimDurationRatio.kt
│           │       │       │       │   ├── FreeFormCountForHome.java
│           │       │       │       │   ├── HideNavigationBar.java
│           │       │       │       │   ├── HomePortraitReverse.java
│           │       │       │       │   ├── MaxFreeForm.kt
│           │       │       │       │   ├── ScreenSwipe.java
│           │       │       │       │   ├── SeekPoints.java
│           │       │       │       │   ├── SetDeviceLevel.kt
│           │       │       │       │   ├── StickyFloatingWindowsForHome.java
│           │       │       │       │   ├── ToastSlideAgain.java
│           │       │       │       │   ├── UnlockHotseatIcon.kt
│           │       │       │       │   ├── UserPresentAnimation.java
│           │       │       │       │   ├── WidgetCornerRadius.java
│           │       │       │       │   ├── WidgetCrack.java
│           │       │       │       │   ├── dock/
│           │       │       │       │   │   ├── DisableRecentsIcon.kt
│           │       │       │       │   │   ├── DockCustom.java
│           │       │       │       │   │   ├── FoldDeviceDock.kt
│           │       │       │       │   │   ├── FoldDock.java
│           │       │       │       │   │   ├── HideSeekPoint.kt
│           │       │       │       │   │   └── ShowDockIconTitle.kt
│           │       │       │       │   ├── drawer/
│           │       │       │       │   │   ├── AllAppsContainerViewBlur.kt
│           │       │       │       │   │   ├── AppDrawer.kt
│           │       │       │       │   │   └── PinyinArrangement.java
│           │       │       │       │   ├── folder/
│           │       │       │       │   │   ├── BigFolderIcon.java
│           │       │       │       │   │   ├── BigFolderIconBlur.java
│           │       │       │       │   │   ├── BigFolderIconBlur1x2.java
│           │       │       │       │   │   ├── BigFolderIconBlur2x1.java
│           │       │       │       │   │   ├── BigFolderItemMaxCount.java
│           │       │       │       │   │   ├── FolderAnimation.kt
│           │       │       │       │   │   ├── FolderAutoClose.kt
│           │       │       │       │   │   ├── FolderBlur.kt
│           │       │       │       │   │   ├── FolderColumns.kt
│           │       │       │       │   │   ├── FolderShade.java
│           │       │       │       │   │   ├── FolderVerticalPadding.kt
│           │       │       │       │   │   └── SmallFolderIconBlur.java
│           │       │       │       │   ├── gesture/
│           │       │       │       │   │   ├── DoubleTap.java
│           │       │       │       │   │   ├── DoubleTapController.kt
│           │       │       │       │   │   ├── HotSeatSwipe.java
│           │       │       │       │   │   ├── QuickBack.java
│           │       │       │       │   │   ├── ShakeDevice.java
│           │       │       │       │   │   └── SwipeAndStop.java
│           │       │       │       │   ├── layout/
│           │       │       │       │   │   ├── HotSeatsHeight.java
│           │       │       │       │   │   ├── HotSeatsMarginBottom.java
│           │       │       │       │   │   ├── HotSeatsMarginTop.java
│           │       │       │       │   │   ├── SearchBarMarginBottom.java
│           │       │       │       │   │   ├── ShowClock.java
│           │       │       │       │   │   ├── UnlockGrids.java
│           │       │       │       │   │   ├── UnlockGridsNoWord.java
│           │       │       │       │   │   └── WorkspacePadding.java
│           │       │       │       │   ├── mipad/
│           │       │       │       │   │   ├── EnableHideGestureLine.kt
│           │       │       │       │   │   ├── EnableMoreSetting.kt
│           │       │       │       │   │   └── SetGestureNeedFingerNum.kt
│           │       │       │       │   ├── navigation/
│           │       │       │       │   │   ├── BackGestureAreaHeight.java
│           │       │       │       │   │   └── BackGestureAreaWidth.java
│           │       │       │       │   ├── other/
│           │       │       │       │   │   ├── AlwaysBlurWallpaper.kt
│           │       │       │       │   │   ├── AlwaysShowStatusClock.kt
│           │       │       │       │   │   ├── BlurRadius.kt
│           │       │       │       │   │   ├── BlurWhenShowShortcutMenu.kt
│           │       │       │       │   │   ├── DisableHideGoogle.kt
│           │       │       │       │   │   ├── FixAndroidRS.kt
│           │       │       │       │   │   ├── FreeformShortcutMenu.java
│           │       │       │       │   │   ├── HomeMode.java
│           │       │       │       │   │   ├── InfiniteScroll.java
│           │       │       │       │   │   ├── OverlapMode.kt
│           │       │       │       │   │   ├── ShortcutBackgroundBlur.kt
│           │       │       │       │   │   ├── ShortcutItemCount.kt
│           │       │       │       │   │   └── ShowAllHideApp.kt
│           │       │       │       │   ├── recent/
│           │       │       │       │   │   ├── AlwaysShowCleanUp.kt
│           │       │       │       │   │   ├── BlurLevel.kt
│           │       │       │       │   │   ├── CardTextColor.kt
│           │       │       │       │   │   ├── CardTextSize.kt
│           │       │       │       │   │   ├── DisableRecentViewWallpaperDarken.kt
│           │       │       │       │   │   ├── FreeformCardBackgroundColor.kt
│           │       │       │       │   │   ├── HideCleanUp.kt
│           │       │       │       │   │   ├── HideFreeform.kt
│           │       │       │       │   │   ├── HideStatusBarWhenEnterRecent.kt
│           │       │       │       │   │   ├── MemInfoShow.kt
│           │       │       │       │   │   ├── RealMemory.kt
│           │       │       │       │   │   ├── RecentResource.kt
│           │       │       │       │   │   ├── RecentText.kt
│           │       │       │       │   │   ├── RemoveCardAnim.kt
│           │       │       │       │   │   ├── RemoveIcon.kt
│           │       │       │       │   │   ├── TaskViewHorizontal.kt
│           │       │       │       │   │   └── TaskViewVertical.kt
│           │       │       │       │   ├── title/
│           │       │       │       │   │   ├── AnimParamCustom.java
│           │       │       │       │   │   ├── BigIconCorner.kt
│           │       │       │       │   │   ├── DisableHideFile.kt
│           │       │       │       │   │   ├── DisableHideTheme.kt
│           │       │       │       │   │   ├── DownloadAnimation.java
│           │       │       │       │   │   ├── EnableIconMonetColor.kt
│           │       │       │       │   │   ├── EnableIconMonoChrome.java
│           │       │       │       │   │   ├── FixAnimation.java
│           │       │       │       │   │   ├── HiddenAllTitle.java
│           │       │       │       │   │   ├── IconScaleHook.java
│           │       │       │       │   │   ├── IconTitleColor.kt
│           │       │       │       │   │   ├── LargeIconCornerRadius.java
│           │       │       │       │   │   ├── NewInstallIndicator.java
│           │       │       │       │   │   ├── PerfectIcon.java
│           │       │       │       │   │   ├── TitleFontSize.java
│           │       │       │       │   │   └── TitleMarquee.java
│           │       │       │       │   └── widget/
│           │       │       │       │       ├── AllWidgetAnimation.java
│           │       │       │       │       ├── AllowMoveAllWidgetToMinus.kt
│           │       │       │       │       ├── AlwaysShowMiuiWidget.kt
│           │       │       │       │       ├── HideWidgetTitles.kt
│           │       │       │       │       └── ResizableWidgets.kt
│           │       │       │       ├── incallui/
│           │       │       │       │   ├── AnswerInHeadUp.java
│           │       │       │       │   └── HideCrbt.java
│           │       │       │       ├── joyose/
│           │       │       │       │   ├── DisableCloudControl.java
│           │       │       │       │   ├── DisableCloudControl.kt
│           │       │       │       │   ├── EnableGpuTuner.java
│           │       │       │       │   └── EnableGpuTuner.kt
│           │       │       │       ├── lbe/
│           │       │       │       │   └── DisableClipboardTip.kt
│           │       │       │       ├── market/
│           │       │       │       │   ├── DeviceModify.java
│           │       │       │       │   └── NewIcon.java
│           │       │       │       ├── mediaeditor/
│           │       │       │       │   ├── FilterManagerAll.kt
│           │       │       │       │   └── UnlockMinimumCropLimitNew.kt
│           │       │       │       ├── milink/
│           │       │       │       │   └── UnlockMiShare.java
│           │       │       │       ├── mirror/
│           │       │       │       │   └── UnlockMiuiPlus.java
│           │       │       │       ├── misettings/
│           │       │       │       │   ├── CustomRefreshRate.kt
│           │       │       │       │   └── ShowMoreFpsList.kt
│           │       │       │       ├── mishare/
│           │       │       │       │   ├── NoAutoTurnOff.kt
│           │       │       │       │   └── UnlockTurboMode.kt
│           │       │       │       ├── miwallpaper/
│           │       │       │       │   └── UnlockSuperWallpaper.java
│           │       │       │       ├── mms/
│           │       │       │       │   └── DisableAd.kt
│           │       │       │       ├── mtb/
│           │       │       │       │   ├── BypassAuthentication.kt
│           │       │       │       │   └── IsUserBuild.kt
│           │       │       │       ├── music/
│           │       │       │       │   └── DisableAd.java
│           │       │       │       ├── networkboost/
│           │       │       │       │   └── LinkTurboToast.java
│           │       │       │       ├── nfc/
│           │       │       │       │   ├── AllowInformationScreen.kt
│           │       │       │       │   └── DisableSound.java
│           │       │       │       ├── packageinstaller/
│           │       │       │       │   ├── AllAsSystemApp.kt
│           │       │       │       │   ├── DisableAD.kt
│           │       │       │       │   ├── DisableCountChecking.kt
│           │       │       │       │   ├── DisableSafeModelTip.kt
│           │       │       │       │   ├── DisplayMoreApkInfo.java
│           │       │       │       │   ├── DisplayMoreApkInfoNew.kt
│           │       │       │       │   ├── InstallRiskDisable.kt
│           │       │       │       │   ├── InstallSource.java
│           │       │       │       │   ├── MiuiPackageInstallModify.java
│           │       │       │       │   ├── SafeMode.java
│           │       │       │       │   └── UpdateSystemApp.java
│           │       │       │       ├── personalassistant/
│           │       │       │       │   ├── BlurOverlay.java
│           │       │       │       │   ├── BlurPersonalAssistant.kt
│           │       │       │       │   ├── BlurPersonalAssistantBackGround.kt
│           │       │       │       │   ├── EnableFoldWidget.java
│           │       │       │       │   ├── PadWidgetEnable.java
│           │       │       │       │   └── WidgetCrack.kt
│           │       │       │       ├── phone/
│           │       │       │       │   ├── DualNrSupport.kt
│           │       │       │       │   ├── DualSaSupport.kt
│           │       │       │       │   ├── ModemFeature.kt
│           │       │       │       │   ├── N1BandPhone.kt
│           │       │       │       │   ├── N28BandPhone.kt
│           │       │       │       │   ├── N5N8BandPhone.kt
│           │       │       │       │   └── ViceSlotVolteButton.kt
│           │       │       │       ├── powerkeeper/
│           │       │       │       │   ├── CustomRefreshRate.kt
│           │       │       │       │   ├── DontKillApps.kt
│           │       │       │       │   ├── LockMaxFps.kt
│           │       │       │       │   └── PreventBatteryWitelist.java
│           │       │       │       ├── scanner/
│           │       │       │       │   ├── EnableCard.java
│           │       │       │       │   ├── EnableDocPpt.java
│           │       │       │       │   ├── EnableOcr.java
│           │       │       │       │   ├── EnableTranslation.java
│           │       │       │       │   └── document/
│           │       │       │       │       ├── EnableDocument.java
│           │       │       │       │       ├── EnableExcel.java
│           │       │       │       │       └── EnablePpt.java
│           │       │       │       ├── screenrecorder/
│           │       │       │       │   ├── ForceSupportPlaybackCapture.kt
│           │       │       │       │   ├── SaveToMovies.kt
│           │       │       │       │   ├── ScreenRecorderConfig.kt
│           │       │       │       │   └── UnlockMoreVolumeFrom.java
│           │       │       │       ├── screenshot/
│           │       │       │       │   ├── DeviceShellCustomize.kt
│           │       │       │       │   ├── SaveToPictures.kt
│           │       │       │       │   ├── UnlockMinimumCropLimit.kt
│           │       │       │       │   └── UnlockPrivacyMarking.kt
│           │       │       │       ├── securitycenter/
│           │       │       │       │   ├── AppLockPinScramble.java
│           │       │       │       │   ├── BlurSecurity.kt
│           │       │       │       │   ├── DisableReport.kt
│           │       │       │       │   ├── GetBubbleAppString.kt
│           │       │       │       │   ├── IsSbnBelongToActiveBubbleApp.kt
│           │       │       │       │   ├── NewBoxBlur.java
│           │       │       │       │   ├── RemoveConversationBubbleSettingsRestriction.kt
│           │       │       │       │   ├── RemoveOpenAppConfirmationPopup.kt
│           │       │       │       │   ├── SidebarLineCustom.kt
│           │       │       │       │   ├── VideoDolbyOpen.java
│           │       │       │       │   ├── app/
│           │       │       │       │   │   ├── AppDefaultSort.java
│           │       │       │       │   │   ├── AppDetails.java
│           │       │       │       │   │   ├── AppDisable.java
│           │       │       │       │   │   ├── AppRestrict.java
│           │       │       │       │   │   └── OpenByDefaultSetting.kt
│           │       │       │       │   ├── battery/
│           │       │       │       │   │   ├── ScreenUsedTime.kt
│           │       │       │       │   │   ├── ShowBatteryTemperature.java
│           │       │       │       │   │   ├── ShowBatteryTemperatureNew.kt
│           │       │       │       │   │   ├── UnlockSmartCharge.kt
│           │       │       │       │   │   └── UnlockSuperWirelessCharge.kt
│           │       │       │       │   ├── beauty/
│           │       │       │       │   │   ├── BeautyFace.kt
│           │       │       │       │   │   ├── BeautyLightAuto.kt
│           │       │       │       │   │   ├── BeautyPc.kt
│           │       │       │       │   │   └── BeautyPrivacy.kt
│           │       │       │       │   ├── lab/
│           │       │       │       │   │   ├── AiClipboardEnable.kt
│           │       │       │       │   │   ├── BlurLocationEnable.kt
│           │       │       │       │   │   ├── GetNumberEnable.kt
│           │       │       │       │   │   └── LabUtilsClass.kt
│           │       │       │       │   ├── other/
│           │       │       │       │   │   ├── DisableRootCheck.kt
│           │       │       │       │   │   ├── FuckRiskPkg.kt
│           │       │       │       │   │   ├── LockOneHundredPoints.kt
│           │       │       │       │   │   ├── NoLowBatteryWarning.kt
│           │       │       │       │   │   └── SkipCountDownLimit.java
│           │       │       │       │   └── sidebar/
│           │       │       │       │       ├── AddSideBarExpandReceiver.java
│           │       │       │       │       ├── DisableDockSuggest.java
│           │       │       │       │       ├── game/
│           │       │       │       │       │   ├── RemoveMacroBlackList.kt
│           │       │       │       │       │   └── UnlockGunService.kt
│           │       │       │       │       └── video/
│           │       │       │       │           ├── DisableRemoveScreenHoldOn.kt
│           │       │       │       │           ├── UnlockEnhanceContours.kt
│           │       │       │       │           ├── UnlockMemc.kt
│           │       │       │       │           └── UnlockSuperResolution.kt
│           │       │       │       ├── settings/
│           │       │       │       │   ├── CemiuilerSettings.java
│           │       │       │       │   ├── NotificationImportance.java
│           │       │       │       │   └── VolumeSeparateControlForSettings.java
│           │       │       │       ├── systemframework/
│           │       │       │       │   ├── AllRotations.java
│           │       │       │       │   ├── AllowUninstall.java
│           │       │       │       │   ├── AllowUntrustedTouch.java
│           │       │       │       │   ├── AppDisableService.java
│           │       │       │       │   ├── AppLinkVerify.java
│           │       │       │       │   ├── BackgroundBlurDrawable.kt
│           │       │       │       │   ├── CleanOpenMenu.java
│           │       │       │       │   ├── CleanShareMenu.java
│           │       │       │       │   ├── DeleteOnPostNotification.kt
│           │       │       │       │   ├── DisableCleaner.kt
│           │       │       │       │   ├── DisableFreeformBlackList.java
│           │       │       │       │   ├── DisablePinVerifyPer72h.java
│           │       │       │       │   ├── FlagSecure.java
│           │       │       │       │   ├── FreeFormCount.kt
│           │       │       │       │   ├── FreeformBubble.java
│           │       │       │       │   ├── LocationSimulation.java
│           │       │       │       │   ├── MultiFreeFormSupported.kt
│           │       │       │       │   ├── PackagePermissions.java
│           │       │       │       │   ├── RemoveSmallWindowRestrictions.kt
│           │       │       │       │   ├── ScreenRotation.java
│           │       │       │       │   ├── SpeedInstall.java
│           │       │       │       │   ├── StickyFloatingWindows.java
│           │       │       │       │   ├── ThemeProvider.kt
│           │       │       │       │   ├── ThermalBrightness.java
│           │       │       │       │   ├── UseOriginalAnimation.java
│           │       │       │       │   ├── VolumeDefaultStream.java
│           │       │       │       │   ├── VolumeDisableSafe.java
│           │       │       │       │   ├── VolumeFirstPress.java
│           │       │       │       │   ├── VolumeMediaSteps.kt
│           │       │       │       │   ├── VolumeSeparateControl.java
│           │       │       │       │   ├── VolumeSteps.java
│           │       │       │       │   ├── corepatch/
│           │       │       │       │   │   ├── BypassSignCheckForT.kt
│           │       │       │       │   │   ├── CorePatchForR.java
│           │       │       │       │   │   ├── CorePatchForS.java
│           │       │       │       │   │   ├── CorePatchForT.java
│           │       │       │       │   │   ├── CorePatchForU.java
│           │       │       │       │   │   ├── ReturnConstant.java
│           │       │       │       │   │   └── XposedHelper.java
│           │       │       │       │   ├── display/
│           │       │       │       │   │   ├── AutoBrightness.java
│           │       │       │       │   │   ├── DisplayCutout.kt
│           │       │       │       │   │   └── ToastTime.java
│           │       │       │       │   ├── freeform/
│           │       │       │       │   │   └── OpenAppInFreeForm.java
│           │       │       │       │   ├── mipad/
│           │       │       │       │   │   ├── IgnoreStylusKeyGesture.kt
│           │       │       │       │   │   ├── NoMagicPointer.kt
│           │       │       │       │   │   ├── RemoveStylusBluetoothRestriction.kt
│           │       │       │       │   │   ├── RestoreEsc.kt
│           │       │       │       │   │   └── SetGestureNeedFingerNum.kt
│           │       │       │       │   └── network/
│           │       │       │       │       ├── DualNRSupport.kt
│           │       │       │       │       ├── DualSASupport.kt
│           │       │       │       │       ├── N1Band.kt
│           │       │       │       │       ├── N28Band.kt
│           │       │       │       │       └── N5N8Band.kt
│           │       │       │       ├── systemsettings/
│           │       │       │       │   ├── AddMiuiPlusEntry.java
│           │       │       │       │   ├── AppsFreezerEnable.java
│           │       │       │       │   ├── EnableFoldArea.kt
│           │       │       │       │   ├── EnablePadArea.kt
│           │       │       │       │   ├── EnableSpeedMode.java
│           │       │       │       │   ├── InternationalBuild.java
│           │       │       │       │   ├── NewNFCPage.java
│           │       │       │       │   ├── NoveltyHaptic.kt
│           │       │       │       │   ├── QuickManageOverlayPermission.kt
│           │       │       │       │   ├── QuickManageUnknownAppSources.kt
│           │       │       │       │   ├── UnLockAreaScreenshot.kt
│           │       │       │       │   ├── UnlockTaplusForSettings.kt
│           │       │       │       │   ├── ViewWifiPasswordHook.java
│           │       │       │       │   ├── VoipAssistantController.java
│           │       │       │       │   └── aiimage/
│           │       │       │       │       ├── UnlockAi.java
│           │       │       │       │       ├── UnlockMemc.java
│           │       │       │       │       └── UnlockSuperResolution.java
│           │       │       │       ├── systemui/
│           │       │       │       │   ├── AutoCollapse.java
│           │       │       │       │   ├── BatteryIndicator.java
│           │       │       │       │   ├── BluetoothRestrict.java
│           │       │       │       │   ├── ChargeAnimationStyle.java
│           │       │       │       │   ├── ClockCenterHook.java
│           │       │       │       │   ├── EnableVolumeBlur.kt
│           │       │       │       │   ├── HideNavigationBar.java
│           │       │       │       │   ├── MiuiGxzwSize.java
│           │       │       │       │   ├── MonetThemeOverlay.java
│           │       │       │       │   ├── NotificationFix.java
│           │       │       │       │   ├── NotificationFreeform.java
│           │       │       │       │   ├── NotificationVolumeSeparateSlider.java
│           │       │       │       │   ├── OriginChargeAnimation.java
│           │       │       │       │   ├── QSDetailBackGround.java
│           │       │       │       │   ├── QSLabelsHook.java
│           │       │       │       │   ├── ShouldPlayUnmuteSoundHook.java
│           │       │       │       │   ├── StatusBarActions.java
│           │       │       │       │   ├── SwitchControlPanel.java
│           │       │       │       │   ├── UseNativeRecents.java
│           │       │       │       │   ├── VolumeTimerValuesHook.java
│           │       │       │       │   ├── controlcenter/
│           │       │       │       │   │   ├── AddBlurEffectToNotificationView.kt
│           │       │       │       │   │   ├── BluetoothTileStyle.java
│           │       │       │       │   │   ├── CCGrid.kt
│           │       │       │       │   │   ├── CompactNotificationsHook.kt
│           │       │       │       │   │   ├── ControlCenterStyle.kt
│           │       │       │       │   │   ├── FiveGTile.java
│           │       │       │       │   │   ├── FixMediaControlPanel.kt
│           │       │       │       │   │   ├── FlashLight.java
│           │       │       │       │   │   ├── GmsTile.java
│           │       │       │       │   │   ├── MuteVisibleNotifications.java
│           │       │       │       │   │   ├── NotificationWeather.kt
│           │       │       │       │   │   ├── NotificationWeatherNew.kt
│           │       │       │       │   │   ├── NotificationWeatherOld.kt
│           │       │       │       │   │   ├── QQSGrid.kt
│           │       │       │       │   │   ├── QQSGridOld.java
│           │       │       │       │   │   ├── QSControlDetailBackgroundAlpha.kt
│           │       │       │       │   │   ├── QSGrid.kt
│           │       │       │       │   │   ├── QSGridLabels.java
│           │       │       │       │   │   ├── QSGridOld.java
│           │       │       │       │   │   ├── RedirectToNotificationChannelSetting.kt
│           │       │       │       │   │   ├── SmartHome.java
│           │       │       │       │   │   ├── SunlightMode.java
│           │       │       │       │   │   └── SwitchCCAndNotification.java
│           │       │       │       │   ├── lockscreen/
│           │       │       │       │   │   ├── AddBlurEffectToLockScreen.kt
│           │       │       │       │   │   ├── BlurButton.kt
│           │       │       │       │   │   ├── ChargingCVP.kt
│           │       │       │       │   │   ├── ClockDisplaySeconds.kt
│           │       │       │       │   │   ├── ForceClockUseSystemFontsHook.kt
│           │       │       │       │   │   ├── HideLockScreenHint.kt
│           │       │       │       │   │   ├── HideLockScreenStatusBar.kt
│           │       │       │       │   │   ├── HideLockscreenZenMode.kt
│           │       │       │       │   │   ├── LockScreenDoubleTapToSleep.kt
│           │       │       │       │   │   ├── NoPassword.kt
│           │       │       │       │   │   ├── RemoveCamera.kt
│           │       │       │       │   │   ├── RemoveSmartScreen.kt
│           │       │       │       │   │   └── ScramblePIN.java
│           │       │       │       │   ├── navigation/
│           │       │       │       │   │   ├── HandleLineCustom.kt
│           │       │       │       │   │   └── NavigationCustom.java
│           │       │       │       │   ├── plugin/
│           │       │       │       │   │   ├── EnableVolumeBlur.java
│           │       │       │       │   │   ├── HideDeviceControlEntry.java
│           │       │       │       │   │   ├── HideMiPlayEntry.java
│           │       │       │       │   │   ├── HideMiSmartHubEntry.java
│           │       │       │       │   │   └── PluginHelper.java
│           │       │       │       │   └── statusbar/
│           │       │       │       │       ├── BigMobileNetworkType.java
│           │       │       │       │       ├── DisplayHardwareDetail.java
│           │       │       │       │       ├── DoubleTapToSleep.kt
│           │       │       │       │       ├── DualRowSignalHook.java
│           │       │       │       │       ├── HideStatusBarBeforeScreenshot.java
│           │       │       │       │       ├── MobileNetwork.java
│           │       │       │       │       ├── NotificationIconColumns.kt
│           │       │       │       │       ├── SelectiveHideIconForAlarmClock.java
│           │       │       │       │       ├── WifiStandard.java
│           │       │       │       │       ├── clock/
│           │       │       │       │       │   ├── TimeCustomization.kt
│           │       │       │       │       │   └── TimeStyle.kt
│           │       │       │       │       ├── icon/
│           │       │       │       │       │   ├── all/
│           │       │       │       │       │   │   ├── BatteryStyle.kt
│           │       │       │       │       │   │   ├── BluetoothIcon.java
│           │       │       │       │       │   │   ├── DataSaverIcon.java
│           │       │       │       │       │   │   ├── HideBatteryIcon.kt
│           │       │       │       │       │   │   ├── HideVoWiFiIcon.kt
│           │       │       │       │       │   │   ├── IconsFromSystemManager.kt
│           │       │       │       │       │   │   ├── StatusBarIcon.kt
│           │       │       │       │       │   │   ├── StatusBarIconPositionAdjust.java
│           │       │       │       │       │   │   ├── StatusBarSimIcon.kt
│           │       │       │       │       │   │   └── WifiNetworkIndicator.kt
│           │       │       │       │       │   └── t/
│           │       │       │       │       │       └── UseNewHD.kt
│           │       │       │       │       ├── layout/
│           │       │       │       │       │   └── StatusBarLayout.kt
│           │       │       │       │       ├── model/
│           │       │       │       │       │   ├── MobileTypeSingleHook.kt
│           │       │       │       │       │   └── MobileTypeTextCustom.kt
│           │       │       │       │       └── network/
│           │       │       │       │           ├── NetworkSpeed.kt
│           │       │       │       │           ├── NetworkSpeedSec.kt
│           │       │       │       │           ├── NetworkSpeedSpacing.kt
│           │       │       │       │           ├── NetworkSpeedStyle.kt
│           │       │       │       │           ├── StatusBarNoNetSpeedSep.kt
│           │       │       │       │           └── s/
│           │       │       │       │               └── NetworkSpeedWidth.kt
│           │       │       │       ├── thememanager/
│           │       │       │       │   ├── DisableThemeAd.java
│           │       │       │       │   ├── DisableThemeAdNew.kt
│           │       │       │       │   ├── EnableFoldTheme.java
│           │       │       │       │   ├── EnablePadTheme.java
│           │       │       │       │   ├── ThemeCrackNew.kt
│           │       │       │       │   └── VersionCodeModify.java
│           │       │       │       ├── tsmclient/
│           │       │       │       │   └── AutoNfc.kt
│           │       │       │       ├── updater/
│           │       │       │       │   ├── DeviceModify.kt
│           │       │       │       │   ├── VabUpdate.kt
│           │       │       │       │   ├── VersionCodeModify.java
│           │       │       │       │   └── VersionCodeNew.kt
│           │       │       │       ├── various/
│           │       │       │       │   ├── CollapseMiuiTitle.java
│           │       │       │       │   ├── DialogBlur.java
│           │       │       │       │   ├── DialogCustom.java
│           │       │       │       │   ├── DialogGravity.java
│           │       │       │       │   ├── MiuiAppNoOverScroll.java
│           │       │       │       │   ├── NoAccessDeviceLogsRequest.kt
│           │       │       │       │   ├── NotificationBlur.java
│           │       │       │       │   ├── UnlockIme.kt
│           │       │       │       │   └── UnlockSuperClipboard.kt
│           │       │       │       ├── voiceassist/
│           │       │       │       │   └── UseThirdPartyBrowser.kt
│           │       │       │       └── weather/
│           │       │       │           └── SetDeviceLevel.java
│           │       │       ├── prefs/
│           │       │       │   └── PreferenceHeader.java
│           │       │       ├── provider/
│           │       │       │   └── SharedPrefsProvider.java
│           │       │       ├── ui/
│           │       │       │   ├── CustomHookActivity.java
│           │       │       │   ├── HideAppActivity.java
│           │       │       │   ├── MainActivity.java
│           │       │       │   ├── ModuleSettingsActivity.java
│           │       │       │   ├── SubPickerActivity.java
│           │       │       │   ├── SubSettings.java
│           │       │       │   ├── base/
│           │       │       │   │   ├── BaseSettingsActivity.java
│           │       │       │   │   ├── BaseSettingsProxy.java
│           │       │       │   │   ├── SettingsActivity.java
│           │       │       │   │   └── SettingsProxy.java
│           │       │       │   ├── customhook/
│           │       │       │   │   └── CustomHookConfigActivity.java
│           │       │       │   ├── fragment/
│           │       │       │   │   ├── AboutFragment.kt
│           │       │       │   │   ├── AiAsstFragment.java
│           │       │       │   │   ├── AodFragment.java
│           │       │       │   │   ├── BarrageFragment.java
│           │       │       │   │   ├── BrowserFragment.java
│           │       │       │   │   ├── CameraFragment.java
│           │       │       │   │   ├── ClockFragment.java
│           │       │       │   │   ├── ContentExtensionFragment.java
│           │       │       │   │   ├── CreationFragment.java
│           │       │       │   │   ├── DownloadsFragment.java
│           │       │       │   │   ├── FileExplorerFragment.java
│           │       │       │   │   ├── GalleryFragment.java
│           │       │       │   │   ├── GuardProviderFragment.java
│           │       │       │   │   ├── HomeFragment.java
│           │       │       │   │   ├── InCallUiFragment.java
│           │       │       │   │   ├── JoyoseFragment.java
│           │       │       │   │   ├── LbeFragment.java
│           │       │       │   │   ├── MainFragment.java
│           │       │       │   │   ├── MarketFragment.java
│           │       │       │   │   ├── MediaEditorFragment.java
│           │       │       │   │   ├── MiLinkFragment.java
│           │       │       │   │   ├── MiSettingsFragment.java
│           │       │       │   │   ├── MiShareFragment.java
│           │       │       │   │   ├── MiWallpaperFragment.java
│           │       │       │   │   ├── MirrorFragment.java
│           │       │       │   │   ├── MiuiPackageInstallerFragment.java
│           │       │       │   │   ├── MmsFragment.java
│           │       │       │   │   ├── ModuleSettingsFragment.java
│           │       │       │   │   ├── MtbFragment.java
│           │       │       │   │   ├── MusicFragment.java
│           │       │       │   │   ├── NetworkBoostFragment.java
│           │       │       │   │   ├── NfcFragment.java
│           │       │       │   │   ├── PersonalAssistantFragment.java
│           │       │       │   │   ├── PhoneFragment.java
│           │       │       │   │   ├── PowerKeeperFragment.java
│           │       │       │   │   ├── ScannerFragment.java
│           │       │       │   │   ├── ScreenRecorderFragment.java
│           │       │       │   │   ├── ScreenShotFragment.java
│           │       │       │   │   ├── SecurityCenterFragment.java
│           │       │       │   │   ├── SystemFrameworkFragment.java
│           │       │       │   │   ├── SystemSettingsFragment.java
│           │       │       │   │   ├── SystemUIFragment.java
│           │       │       │   │   ├── ThemeManagerFragment.java
│           │       │       │   │   ├── TsmClientFragment.java
│           │       │       │   │   ├── UpdaterFragment.java
│           │       │       │   │   ├── VariousFragment.java
│           │       │       │   │   ├── WeatherFragment.java
│           │       │       │   │   ├── about/
│           │       │       │   │   │   ├── AboutContributerFragment.java
│           │       │       │   │   │   └── AboutUseFragment.java
│           │       │       │   │   ├── base/
│           │       │       │   │   │   ├── BasePreferenceFragment.java
│           │       │       │   │   │   └── SettingsPreferenceFragment.java
│           │       │       │   │   ├── framework/
│           │       │       │   │   │   ├── DisplaySettings.java
│           │       │       │   │   │   ├── FreeFormSettings.java
│           │       │       │   │   │   ├── NetworkSettings.java
│           │       │       │   │   │   ├── OtherSettings.java
│           │       │       │   │   │   └── VolumeSettings.java
│           │       │       │   │   ├── home/
│           │       │       │   │   │   ├── HomeDockSettings.java
│           │       │       │   │   │   ├── HomeDrawerSettings.java
│           │       │       │   │   │   ├── HomeFolderSettings.java
│           │       │       │   │   │   ├── HomeGestureSettings.java
│           │       │       │   │   │   ├── HomeLayoutSettings.java
│           │       │       │   │   │   ├── HomeOtherSettings.java
│           │       │       │   │   │   ├── HomeRecentSettings.java
│           │       │       │   │   │   ├── HomeTitleAnimSettings.java
│           │       │       │   │   │   ├── HomeTitleSettings.java
│           │       │       │   │   │   ├── HomeWidgetSettings.java
│           │       │       │   │   │   └── anim/
│           │       │       │   │   │       ├── HomeTitleAnim1Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim2Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim3Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim4Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim5Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim6Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim7Settings.java
│           │       │       │   │   │       └── HomeTitleAnim8Settings.java
│           │       │       │   │   ├── settings/
│           │       │       │   │   │   └── SafeModeFragment.java
│           │       │       │   │   ├── sub/
│           │       │       │   │   │   ├── AppPicker.java
│           │       │       │   │   │   ├── CustomBackgroundSettings.java
│           │       │       │   │   │   └── MultiActionSettings.java
│           │       │       │   │   ├── systemui/
│           │       │       │   │   │   ├── ControlCenterSettings.java
│           │       │       │   │   │   ├── LockScreenSettings.java
│           │       │       │   │   │   ├── NavigationSettings.java
│           │       │       │   │   │   ├── StatusBarSettings.java
│           │       │       │   │   │   ├── SystemUIOtherSettings.java
│           │       │       │   │   │   └── statusbar/
│           │       │       │   │   │       ├── BatteryDetailIndicatorSettings.java
│           │       │       │   │   │       ├── BatteryIndicatorSettings.java
│           │       │       │   │   │       ├── BatteryStyleSettings.java
│           │       │       │   │   │       ├── ClockIndicatorSettings.java
│           │       │       │   │   │       ├── DoubleLineNetworkSettings.java
│           │       │       │   │   │       ├── IconManageSettings.java
│           │       │       │   │   │       ├── MobileNetworkTypeSettings.java
│           │       │       │   │   │       └── NetworkSpeedIndicatorSettings.java
│           │       │       │   │   └── various/
│           │       │       │   │       ├── AOSPSettings.java
│           │       │       │   │       ├── AlertDialogSettings.java
│           │       │       │   │       └── MiPadSettings.java
│           │       │       │   └── various/
│           │       │       │       ├── LocationDataActivity.java
│           │       │       │       ├── LocationSimulationActivity.java
│           │       │       │       └── fragment/
│           │       │       │           └── VariousFragment.java
│           │       │       ├── utils/
│           │       │       │   ├── BackupUtils.java
│           │       │       │   ├── BitmapUtils.java
│           │       │       │   ├── BlurUtils.java
│           │       │       │   ├── ColorUtils.kt
│           │       │       │   ├── ColorUtilsStatic.java
│           │       │       │   ├── CtaUtils.java
│           │       │       │   ├── DexKit.kt
│           │       │       │   ├── DialogHelper.java
│           │       │       │   ├── DisplayUtils.java
│           │       │       │   ├── Helpers.java
│           │       │       │   ├── HookUtils.kt
│           │       │       │   ├── KotlinXposedHelper.kt
│           │       │       │   ├── LogcatHelper.java
│           │       │       │   ├── MathUtils.java
│           │       │       │   ├── PrefsMap.java
│           │       │       │   ├── PrefsUtils.java
│           │       │       │   ├── PropertyUtils.kt
│           │       │       │   ├── ResourcesHook.java
│           │       │       │   ├── SearchHelper.java
│           │       │       │   ├── SettingLauncher.java
│           │       │       │   ├── SettingLauncherHelper.java
│           │       │       │   ├── ShakeManager.java
│           │       │       │   ├── ShellUtils.java
│           │       │       │   ├── SystemProperties.kt
│           │       │       │   ├── TileUtils.java
│           │       │       │   ├── ToastHelper.java
│           │       │       │   ├── XposedUtils.java
│           │       │       │   ├── api/
│           │       │       │   │   ├── LinQiqiApis.kt
│           │       │       │   │   ├── VoyagerApis.kt
│           │       │       │   │   └── loadClassByLazy.kt
│           │       │       │   ├── devicesdk/
│           │       │       │   │   ├── AppUtils.kt
│           │       │       │   │   └── SystemSDK.kt
│           │       │       │   └── log/
│           │       │       │       ├── AndroidLogUtils.java
│           │       │       │       ├── XposedLogUtils.java
│           │       │       │       └── XposedLogUtilsKt.kt
│           │       │       └── view/
│           │       │           ├── BatteryIndicatorView.java
│           │       │           ├── BlurFrameLayout.java
│           │       │           ├── CircleImageView.java
│           │       │           ├── MultipleChoiceView.java
│           │       │           ├── RestartAlertDialog.java
│           │       │           ├── SpinnerEx.java
│           │       │           ├── WeatherData.kt
│           │       │           └── WeatherView.kt
│           │       └── zhenxiang/
│           │           └── blur/
│           │               ├── BackgroundBlurDrawableExtensions.kt
│           │               ├── BlurFrameLayout.kt
│           │               ├── BlurLinearLayout.kt
│           │               ├── SystemBlurController.kt
│           │               ├── ViewExtensions.kt
│           │               └── model/
│           │                   └── CornerRadius.kt
│           └── res/
│               ├── color/
│               │   ├── ic_small_window_color.xml
│               │   ├── ic_small_window_color2.xml
│               │   ├── ic_small_window_color3.xml
│               │   ├── ic_small_window_color4.xml
│               │   ├── ic_small_window_color5.xml
│               │   └── visual_check_text_color.xml
│               ├── drawable/
│               │   ├── baseline_wb_sunny_24.xml
│               │   ├── bubble_bar_pop_bg.xml
│               │   ├── ic_android_settings.xml
│               │   ├── ic_arrow_edit.xml
│               │   ├── ic_ationbar_back.xml
│               │   ├── ic_audio_system.xml
│               │   ├── ic_cemiuiler_settings_v130.xml
│               │   ├── ic_cemiuiler_settings_v140.xml
│               │   ├── ic_control_center_5g_toggle_off.xml
│               │   ├── ic_control_center_5g_toggle_on.xml
│               │   ├── ic_control_center_gms_toggle_off.xml
│               │   ├── ic_control_center_gms_toggle_on.xml
│               │   ├── ic_default_icon.xml
│               │   ├── ic_launcher_foreground.xml
│               │   ├── ic_miui_volume_notification.xml
│               │   ├── ic_miui_volume_notification_mute.xml
│               │   ├── ic_packageinstaller_background_dark.xml
│               │   ├── ic_packageinstaller_background_light.xml
│               │   ├── ic_qs_tile_bg_disabled.xml
│               │   ├── ic_qs_tile_bg_enabled.xml
│               │   ├── ic_qs_tile_bg_warning.xml
│               │   ├── ic_reboot_small.xml
│               │   ├── ic_settings.xml
│               │   ├── ic_small_window.xml
│               │   ├── ic_system_framework_new.xml
│               │   ├── ic_system_ui_new.xml
│               │   ├── ic_various.xml
│               │   ├── shutdown_progress.xml
│               │   ├── statusbar_signal_1_0.xml
│               │   ├── statusbar_signal_1_0_dark.xml
│               │   ├── statusbar_signal_1_0_dark_thick.xml
│               │   ├── statusbar_signal_1_0_thick.xml
│               │   ├── statusbar_signal_1_0_tint.xml
│               │   ├── statusbar_signal_1_0_tint_thick.xml
│               │   ├── statusbar_signal_1_1.xml
│               │   ├── statusbar_signal_1_1_dark.xml
│               │   ├── statusbar_signal_1_1_dark_thick.xml
│               │   ├── statusbar_signal_1_1_thick.xml
│               │   ├── statusbar_signal_1_1_tint.xml
│               │   ├── statusbar_signal_1_1_tint_thick.xml
│               │   ├── statusbar_signal_1_2.xml
│               │   ├── statusbar_signal_1_2_dark.xml
│               │   ├── statusbar_signal_1_2_dark_thick.xml
│               │   ├── statusbar_signal_1_2_thick.xml
│               │   ├── statusbar_signal_1_2_tint.xml
│               │   ├── statusbar_signal_1_2_tint_thick.xml
│               │   ├── statusbar_signal_1_3.xml
│               │   ├── statusbar_signal_1_3_dark.xml
│               │   ├── statusbar_signal_1_3_dark_thick.xml
│               │   ├── statusbar_signal_1_3_thick.xml
│               │   ├── statusbar_signal_1_3_tint.xml
│               │   ├── statusbar_signal_1_3_tint_thick.xml
│               │   ├── statusbar_signal_1_4.xml
│               │   ├── statusbar_signal_1_4_dark.xml
│               │   ├── statusbar_signal_1_4_dark_thick.xml
│               │   ├── statusbar_signal_1_4_thick.xml
│               │   ├── statusbar_signal_1_4_tint.xml
│               │   ├── statusbar_signal_1_4_tint_thick.xml
│               │   ├── statusbar_signal_1_5.xml
│               │   ├── statusbar_signal_1_5_dark.xml
│               │   ├── statusbar_signal_1_5_dark_thick.xml
│               │   ├── statusbar_signal_1_5_thick.xml
│               │   ├── statusbar_signal_1_5_tint.xml
│               │   ├── statusbar_signal_1_5_tint_thick.xml
│               │   ├── statusbar_signal_2_0.xml
│               │   ├── statusbar_signal_2_0_dark.xml
│               │   ├── statusbar_signal_2_0_dark_thick.xml
│               │   ├── statusbar_signal_2_0_thick.xml
│               │   ├── statusbar_signal_2_0_tint.xml
│               │   ├── statusbar_signal_2_0_tint_thick.xml
│               │   ├── statusbar_signal_2_1.xml
│               │   ├── statusbar_signal_2_1_dark.xml
│               │   ├── statusbar_signal_2_1_dark_thick.xml
│               │   ├── statusbar_signal_2_1_thick.xml
│               │   ├── statusbar_signal_2_1_tint.xml
│               │   ├── statusbar_signal_2_1_tint_thick.xml
│               │   ├── statusbar_signal_2_2.xml
│               │   ├── statusbar_signal_2_2_dark.xml
│               │   ├── statusbar_signal_2_2_dark_thick.xml
│               │   ├── statusbar_signal_2_2_thick.xml
│               │   ├── statusbar_signal_2_2_tint.xml
│               │   ├── statusbar_signal_2_2_tint_thick.xml
│               │   ├── statusbar_signal_2_3.xml
│               │   ├── statusbar_signal_2_3_dark.xml
│               │   ├── statusbar_signal_2_3_dark_thick.xml
│               │   ├── statusbar_signal_2_3_thick.xml
│               │   ├── statusbar_signal_2_3_tint.xml
│               │   ├── statusbar_signal_2_3_tint_thick.xml
│               │   ├── statusbar_signal_2_4.xml
│               │   ├── statusbar_signal_2_4_dark.xml
│               │   ├── statusbar_signal_2_4_dark_thick.xml
│               │   ├── statusbar_signal_2_4_thick.xml
│               │   ├── statusbar_signal_2_4_tint.xml
│               │   ├── statusbar_signal_2_4_tint_thick.xml
│               │   ├── statusbar_signal_2_5.xml
│               │   ├── statusbar_signal_2_5_dark.xml
│               │   ├── statusbar_signal_2_5_dark_thick.xml
│               │   ├── statusbar_signal_2_5_thick.xml
│               │   ├── statusbar_signal_2_5_tint.xml
│               │   └── statusbar_signal_2_5_tint_thick.xml
│               ├── drawable-v31/
│               │   └── ic_launcher_foreground.xml
│               ├── layout/
│               │   ├── activity_about.xml
│               │   ├── activity_custom_hook.xml
│               │   ├── activity_custom_hook_config.xml
│               │   ├── activity_location.xml
│               │   ├── fragment_app_picker.xml
│               │   ├── fragment_common_padded.xml
│               │   ├── frame_content.xml
│               │   ├── item_app_list.xml
│               │   ├── item_location.xml
│               │   ├── item_mutiplechoice.xml
│               │   ├── item_search_result.xml
│               │   ├── location_edit_dialog.xml
│               │   ├── preference_custom_blur_dark_mode.xml
│               │   ├── preference_custom_blur_light_mode.xml
│               │   ├── preference_dialog_edittext.xml
│               │   ├── preference_divider.xml
│               │   ├── preference_header.xml
│               │   ├── preference_round_layout.xml
│               │   ├── preference_seekbar_no_padding.xml
│               │   ├── preference_text.xml
│               │   ├── settings_main.xml
│               │   ├── statusbar_text_icon.xml
│               │   └── view_mutiplechoice.xml
│               ├── menu/
│               │   ├── menu_location.xml
│               │   ├── menu_location_simulation.xml
│               │   ├── menu_main.xml
│               │   └── menu_system_framework_other.xml
│               ├── mipmap-anydpi-v26/
│               │   └── ic_launcher.xml
│               ├── resources.properties
│               ├── values/
│               │   ├── arrays.xml
│               │   ├── attrs.xml
│               │   ├── bools.xml
│               │   ├── colors.xml
│               │   ├── dimens.xml
│               │   ├── integer.xml
│               │   ├── strings.xml
│               │   └── themes.xml
│               ├── values-ja-rJP/
│               │   └── strings.xml
│               ├── values-night/
│               │   └── themes.xml
│               ├── values-night-v31/
│               │   └── colors.xml
│               ├── values-pt-rBR/
│               │   └── strings.xml
│               ├── values-ru-rRU/
│               │   └── strings.xml
│               ├── values-tr-rTR/
│               │   └── strings.xml
│               ├── values-v31/
│               │   └── colors.xml
│               ├── values-vi-rVN/
│               │   └── strings.xml
│               ├── values-zh-rCN/
│               │   └── strings.xml
│               ├── values-zh-rHK/
│               │   └── strings.xml
│               ├── values-zh-rTW/
│               │   └── strings.xml
│               └── xml/
│                   ├── aiasst.xml
│                   ├── aod.xml
│                   ├── backup_rules.xml
│                   ├── barrage.xml
│                   ├── browser.xml
│                   ├── camera.xml
│                   ├── clock.xml
│                   ├── content_extension.xml
│                   ├── creation.xml
│                   ├── custom_background.xml
│                   ├── data_extraction_rules.xml
│                   ├── downloads.xml
│                   ├── fileexplorer.xml
│                   ├── framework.xml
│                   ├── framework_display.xml
│                   ├── framework_freeform.xml
│                   ├── framework_other.xml
│                   ├── framework_phone.xml
│                   ├── framework_volume.xml
│                   ├── gallery.xml
│                   ├── guard_provider.xml
│                   ├── home.xml
│                   ├── home_dock.xml
│                   ├── home_drawer.xml
│                   ├── home_folder.xml
│                   ├── home_gesture.xml
│                   ├── home_layout.xml
│                   ├── home_multi_action.xml
│                   ├── home_other.xml
│                   ├── home_recent.xml
│                   ├── home_title.xml
│                   ├── home_title_anim.xml
│                   ├── home_title_anim_1.xml
│                   ├── home_title_anim_2.xml
│                   ├── home_title_anim_3.xml
│                   ├── home_title_anim_4.xml
│                   ├── home_title_anim_5.xml
│                   ├── home_title_anim_6.xml
│                   ├── home_title_anim_7.xml
│                   ├── home_title_anim_8.xml
│                   ├── home_widget.xml
│                   ├── incallui.xml
│                   ├── joyose.xml
│                   ├── lbe_security.xml
│                   ├── market.xml
│                   ├── mediaeditor.xml
│                   ├── mi_settings.xml
│                   ├── milink.xml
│                   ├── mirror.xml
│                   ├── mishare.xml
│                   ├── miwallpaper.xml
│                   ├── mms.xml
│                   ├── mtb.xml
│                   ├── music.xml
│                   ├── networkboost.xml
│                   ├── nfc.xml
│                   ├── package_installer.xml
│                   ├── personal_assistant.xml
│                   ├── phone.xml
│                   ├── powerkeeper.xml
│                   ├── prefs_about.xml
│                   ├── prefs_about_contributor.xml
│                   ├── prefs_about_use.xml
│                   ├── prefs_main.xml
│                   ├── prefs_settings.xml
│                   ├── scanner.xml
│                   ├── screenrecorder.xml
│                   ├── screenshot.xml
│                   ├── security_center.xml
│                   ├── settings_safe_mode.xml
│                   ├── system_settings.xml
│                   ├── system_ui.xml
│                   ├── system_ui_control_center.xml
│                   ├── system_ui_lock_screen.xml
│                   ├── system_ui_navigation.xml
│                   ├── system_ui_other.xml
│                   ├── system_ui_status_bar.xml
│                   ├── system_ui_status_bar_battery_indicator.xml
│                   ├── system_ui_status_bar_battery_styles.xml
│                   ├── system_ui_status_bar_clock_indicator.xml
│                   ├── system_ui_status_bar_doubleline_network.xml
│                   ├── system_ui_status_bar_hardware_detail_indicator.xml
│                   ├── system_ui_status_bar_icon_manage.xml
│                   ├── system_ui_status_bar_mobile_network_type.xml
│                   ├── system_ui_status_bar_network_speed_indicator.xml
│                   ├── theme_manager.xml
│                   ├── tsmclient.xml
│                   ├── updater.xml
│                   ├── various.xml
│                   ├── various_aosp.xml
│                   ├── various_dialog.xml
│                   ├── various_location_simulation.xml
│                   ├── various_mipad.xml
│                   └── weather.xml
├── build.gradle
├── config.gradle
├── crowdin.yml
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── hidden-api/
│   ├── .gitignore
│   ├── build.gradle.kts
│   ├── proguard-rules.pro
│   └── src/
│       └── main/
│           └── java/
│               ├── android/
│               │   └── view/
│               │       └── ViewRootImpl.java
│               ├── com/
│               │   └── android/
│               │       └── internal/
│               │           └── graphics/
│               │               └── drawable/
│               │                   └── BackgroundBlurDrawable.java
│               └── miui/
│                   ├── app/
│                   │   └── MiuiFreeFormManager.java
│                   └── drm/
│                       ├── DrmManager.kt
│                       └── ThemeReceiver.kt
├── settings.gradle
└── signing.properties.example

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.xml]
insert_final_newline = false

[*.yml]
indent_size = 2


================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto eol=lf


================================================
FILE: .github/ISSUE_TEMPLATE/BUG-REPORT.yml
================================================
name: "🐛 Bug"
description: 问题报告.
title: "🐛 [BUG] <问题标题>"
labels: [
  "bug"
]
body:
  - type: textarea
    id: description
    attributes:
      label: "问题描述"
      description: 请输入简洁且明确的问题描述。
      placeholder: ...的...功能出现...异常
    validations:
      required: true
  - type: textarea
    id: log
    attributes:
      label: "模块日志"
      description: LSPosed管理器 - 日志 或 软件崩溃日志
      placeholder: ...
    validations:
      required: true
  - type: textarea
    id: repord
    attributes:
      label: "复现步骤"
      description: 输入简明的问题复现步骤。
      value: |
        1. 前往 '...'
        2. 点击 '....'
        
        ....
        出现问题  
      render: bash
    validations:
      required: false
  - type: textarea
    id: screenshot
    attributes:
      label: "问题截图"
      description: 添加问题截图以便我们快速定位.
      value: |
        ![图片注释](图片链接)
    validations:
      required: false
  - type: input
    id: device
    attributes:
      label: "机型"
      description: 填写你的机型,可填型号.
      placeholder: Xiaomi
    validations:
      required: true
  - type: dropdown
    id: miui_version
    attributes:
      label: "MIUI 版本"
      description: 您当前正在使用的 MIUI 版本
      multiple: true
      options:
        - MIUI12 / MIUI12.5
        - MIUI13
        - MIUI14
        - MIUI15
        - 其它
    validations:
      required: true
  - type: dropdown
    id: android_version
    attributes:
      label: "Android 版本"
      description: 您当前正在使用的 Android 版本
      multiple: true
      options:
        - Android 11
        - Android 12
        - Android 13
        - Android 14
    validations:
      required: true
  - type: input
    id: cemiuiler_version
    attributes:
      label: "Cemiuiler 版本"
      description: 填写您的 Cemiuiler 版本.
      placeholder: x.y.z-YYYYMMDD
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml
================================================
name: "💡 需求"
description: 新功能需求
title: "💡 [需求] <标题>"
labels: [
  "enhancement"
]
body:
  - type: textarea
    id: requirement
    attributes:
      label: "需求内容"
      description: "简单说明你的需求"
      placeholder: 请添加...
    validations:
      required: true
  - type: textarea
    id: refs
    attributes:
      label: "实现思路&截图"
      description: 如果可能,请提供实现思路或者相关图片
      placeholder: "![图片描述](图片链接)"
    validations:
      required: false
  - type: textarea
    id: basic_example
    attributes:
      label: "简单例子"
      description: 说明该功能的基本示例
      placeholder: 为...添加...以便...
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/MIGRATION-REQUEST.yml
================================================
name: "🔌 移植"
description: 新功能需求
title: "🔌 [移植] <标题>"
labels: [
  "enhancement"
]
body:
  - type: input
    id: repo
    attributes:
      label: "仓库地址"
      description: "提供仓库地址以便我们更快地工作"
      placeholder: "https://github.com/"
    validations:
      required: false
  - type: textarea
    id: requirement
    attributes:
      label: "移植内容"
      description: "简单说明需要移植的内容"
      placeholder: 移植...软件的...功能
    validations:
      required: true
  - type: textarea
    id: feature_desc
    attributes:
      label: "相关描述&截图"
      description: 如果可能,请提供相关功能描述及图片
      placeholder: "![图片描述](图片链接)"
    validations:
      required: false


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false

================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    schedule:
      interval: "daily"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "daily"


================================================
FILE: .github/workflows/android.yml
================================================
name: Android CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
    paths-ignore:
      - ".github/**"
      - "!.github/workflows/**"
      - ".idea/"
      - "doc/*"
      - "*.md"
      - ".github/workflows/crowdin.yml"
      - "crowdin.yml"
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    name: Build App
    steps:
      - name: Checkout Git Repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          submodules: true

      - name: Set up JDK 20
        uses: actions/setup-java@v3
        with:
          java-version: '20'
          distribution: 'temurin'
          cache: gradle

      - name: Create Sign File
        if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
        run: |
          touch signing.properties
          echo storePassword=${{ secrets.KEY_STORE_PASSWORD }} >> signing.properties
          echo keyAlias=${{ secrets.ALIAS }} >> signing.properties
          echo keyPassword='${{ secrets.KEY_STORE_PASSWORD }}' >> signing.properties
          echo storeFile=key.jks >> signing.properties
          echo ${{ secrets.SIGNING_KEY }} | base64 --decode > key.jks

      - name: Build with Gradle
        shell: bash
        run: ./gradlew assembleCanary

      - name: Find APKs
        run: |
          echo "APK_FILE_CANARY=$(find app/build/outputs/apk/canary -name '*.apk')" >> $GITHUB_ENV

      - name: Show APKs SHA256
        if: success()
        run: |
          echo "### Build Success" >> $GITHUB_STEP_SUMMARY
          echo "|Artifact|SHA256|" >> $GITHUB_STEP_SUMMARY
          echo "|:--------:|:----------|" >> $GITHUB_STEP_SUMMARY
          canary=($(sha256sum '${{ env.APK_FILE_CANARY }}'))
          echo "|Canary|$canary" >> $GITHUB_STEP_SUMMARY

      - name: Upload Canary APK
        if: contains(github.event.head_commit.message, '[upload]') == true
        uses: actions/upload-artifact@v3
        with:
          name: Cemiuiler Canary
          path: ${{ env.APK_FILE_CANARY }}

      - name: Post to Beta Channel & Canary Group
        if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main' && github.ref_type != 'tag' && contains(github.event.head_commit.message, '[skip post]') == false && contains(github.event.head_commit.message, 's#') == false }}
        shell: bash
        env:
          GROUP_ID: ${{ secrets.CANARY_GROUP_ID }}
          GROUP_ID_TEMPORARY: ${{ secrets.GROUP_TEMPORARY_ID }}
          CHANNEL_ID: ${{ secrets.CHANNEL_ID }}
          MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }}
          BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
          CANARY: ${{ env.APK_FILE_CANARY }}
        run: |
          mkdir -p ${{ github.workspace }}/git_clone
          git clone ${{ github.event.repository.url }} ${{ github.workspace }}/git_clone -b ${{ github.ref_name }}
          cd ${{ github.workspace }}/git_clone
          { echo -e 'Github CI\n'; git log ${{ github.event.before }}..${{ github.event.after }} --pretty=format:"%h %s"; } > ${{ github.workspace }}/git_log
          ESCAPED="$(cat ${{ github.workspace }}/git_log | gawk '{gsub(/[_*[\]()~`>#+=\|{}.!-]/,"\\\\\\\\&")}1' | sed -e 's|"|\\"|g' -e 's|^[0-9a-z]\+|__&__|' | hexdump -v -e '/1 "%02X"' | sed 's/\(..\)/%\1/g')"
          cd ${{ github.workspace }}
          curl -v "https://api.telegram.org/bot${BOT_TOKEN}/sendMediaGroup?chat_id=${GROUP_ID}&message_thread_id=${MESSAGE_THREAD_ID}&media=%5B%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Fcanary%22%2C%22parse_mode%22%3A%22MarkdownV2%22%2C%22caption%22%3A%22${ESCAPED}%22%7D%5D" -F canary="@${CANARY}"
          curl -v "https://api.telegram.org/bot${BOT_TOKEN}/sendMediaGroup?chat_id=${CHANNEL_ID}&media=%5B%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Fcanary%22%2C%22parse_mode%22%3A%22MarkdownV2%22%2C%22caption%22%3A%22${ESCAPED}%22%7D%5D" -F canary="@${CANARY}"


================================================
FILE: .github/workflows/androidu.yml
================================================
name: Android U Action

on:
  push:
    branches: [ "Android-U" ]
  pull_request:
    branches: [ "Android-U" ]
    paths-ignore:
      - ".github/**"
      - "!.github/workflows/**"
      - ".idea/"
      - "doc/*"
      - "*.md"
      - ".github/workflows/crowdin.yml"
      - "crowdin.yml"
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    name: Build App
    steps:
      - name: Checkout Git Repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
          submodules: true

      - name: Set up JDK 20
        uses: actions/setup-java@v3
        with:
          java-version: '20'
          distribution: 'temurin'
          cache: gradle

      - name: Create Sign File
        run: |
          touch signing.properties
          echo storePassword=${{ secrets.KEY_STORE_PASSWORD }} >> signing.properties
          echo keyAlias=${{ secrets.ALIAS }} >> signing.properties
          echo keyPassword='${{ secrets.KEY_STORE_PASSWORD }}' >> signing.properties
          echo storeFile=key.jks >> signing.properties
          echo ${{ secrets.SIGNING_KEY }} | base64 --decode > key.jks

      - name: Build with Gradle
        if: contains(github.event.head_commit.message, '[skip]') == false
        shell: bash
        run: ./gradlew assembleCanary

      - name: Find APKs
        if: contains(github.event.head_commit.message, '[skip]') == false
        run: |
          echo "APK_FILE_CANARY=$(find app/build/outputs/apk/canary -name '*.apk')" >> $GITHUB_ENV

      - name: Show APKs SHA256
        if: success() && contains(github.event.head_commit.message, '[skip]') == false
        run: |
          echo "### Build Success" >> $GITHUB_STEP_SUMMARY
          echo "|Artifact|SHA256|" >> $GITHUB_STEP_SUMMARY
          echo "|:--------:|:----------|" >> $GITHUB_STEP_SUMMARY
          canary=($(sha256sum '${{ env.APK_FILE_CANARY }}'))
          echo "|Canary|$canary" >> $GITHUB_STEP_SUMMARY

      - name: Upload Canary APK
        if: contains(github.event.head_commit.message, '[upload]') == true
        uses: actions/upload-artifact@v3
        with:
          name: Cemiuiler Canary
          path: ${{ env.APK_FILE_CANARY }}

      - name: Post to Android 14 Debug Group
        if: contains(github.event.head_commit.message, '[skip]') == false
        shell: bash
        env:
          GROUP_ID: ${{ secrets.DEBUG_GROUP_ID }}
          GROUP_ID_TEMPORARY: ${{ secrets.GROUP_TEMPORARY_ID }}
          BOT_TOKEN: ${{ secrets.BOT_TOKEN }}
          CANARY: ${{ env.APK_FILE_CANARY }}
        run: |
          mkdir -p ${{ github.workspace }}/git_clone
          git clone ${{ github.event.repository.url }} ${{ github.workspace }}/git_clone -b ${{ github.ref_name }}
          cd ${{ github.workspace }}/git_clone
          { echo -e 'Github CI\n'; git log ${{ github.event.before }}..${{ github.event.after }} --pretty=format:"%h %s"; } > ${{ github.workspace }}/git_log
          ESCAPED="$(cat ${{ github.workspace }}/git_log | gawk '{gsub(/[_*[\]()~`>#+=\|{}.!-]/,"\\\\\\\\&")}1' | sed -e 's|"|\\"|g' -e 's|^[0-9a-z]\+|__&__|' | hexdump -v -e '/1 "%02X"' | sed 's/\(..\)/%\1/g')"
          cd ${{ github.workspace }}
          curl -v "https://api.telegram.org/bot${BOT_TOKEN}/sendMediaGroup?chat_id=${GROUP_ID}&media=%5B%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Fcanary%22%2C%22parse_mode%22%3A%22MarkdownV2%22%2C%22caption%22%3A%22${ESCAPED}%22%7D%5D" -F canary="@${CANARY}"


================================================
FILE: .github/workflows/crowdin.yml
================================================
name: Crowdin Action

on:
   workflow_dispatch:
   push:
     branches: [ main ]
     paths:
       - app/src/main/res/values/strings.xml
   schedule:
     - cron: '0 0 * * *'

permissions:
  contents: write
  pull-requests: write

jobs:
   synchronize-with-crowdin:
     runs-on: ubuntu-latest
     steps:
     - name: Checkout
       uses: actions/checkout@v4

     - name: Crowdin Action
       uses: crowdin/github-action@master
       with:
         # Upload and download translation settings
         upload_sources: true
         upload_translations: true
         download_translations: true

         # Pull request settings
         create_pull_request: true
         localization_branch_name: crowdin_branch
         pull_request_labels: 'enhancement, documentation'

         # Global settings
         config: 'crowdin.yml'
         crowdin_branch_name: main
       env:
         GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}
         CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
         CROWDIN_API_TOKEN: ${{ secrets.CROWDIN_API_TOKEN }}


================================================
FILE: .gitignore
================================================
*.iml
.gradle
/local.properties
.idea
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
/app/release
/app/beta
/app/canary
/app/debug


================================================
FILE: LICENSE
================================================
                    GNU AFFERO GENERAL PUBLIC LICENSE
                       Version 3, 19 November 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
our General Public Licenses are 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.

  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.

  Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.

  A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate.  Many developers of free software are heartened and
encouraged by the resulting cooperation.  However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.

  The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community.  It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server.  Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.

  An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals.  This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.

  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 Affero 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. Remote Network Interaction; Use with the GNU General Public License.

  Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software.  This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.

  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 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 work with which it is combined will remain governed by version
3 of the GNU General Public License.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU Affero 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 Affero 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 Affero 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 Affero 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.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero 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 Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source.  For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code.  There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.

  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 AGPL, see
<https://www.gnu.org/licenses/>.


================================================
FILE: README.md
================================================
<div align="center">

<img width="" src="/imgs/icon.png" width=160 height=160 align="center">

# Cemiuiler
### Make MIUI Great Again!

简体中文&nbsp;&nbsp;|&nbsp;&nbsp;[English](/README_en-US.md) |&nbsp;&nbsp;[Português (Brasil)](/README_pt-BR.md)

</div>

## 支持的版本
Android 11 ~ 13 的 MIUI 12.5 ~ 14

> 不支持 修改较多的第三方 MIUI Rom、修改较多的系统软件,以及部分国外 MIUI Rom,
>
> 目前 Cemiuiler 是基于 Android 13 的 MIUI 14 的手机端设备进行适配,覆盖不是很完整,需要不断测试和改进,
>
> 本项目已迁移,请前往[新项目](https://github.com/saraSakuHj/HyperCeiler)


## 作用域包含的应用

<details>
    <summary>点击展开折叠的内容</summary>

| 应用名 | 包名 |
| :---- | :---- |
| 系统框架 | system |
| 系统界面 | com.android.systemui |
| 系统桌面 | com.miui.home |
| 系统更新 | com.android.updater |
| Joyose | com.xiaomi.joyose |
| 小米设置 | com.xiaomi.misettings |
| 手机管家 | com.miui.securitycenter |
| 笔记 | com.miui.notes |
| 壁纸 | com.miui.miwallpaper |
| 传送门 | com.miui.contentextension |
| 弹幕通知 | com.xiaomi.barrage |
| 百度输入法小米版 | com.baidu.input_mi |
| 电话 | com.android.incallui |
| 电话服务 | com.android.phone |
| 电量与性能 | com.miui.powerkeeper |
| 短信 | com.android.mms |
| 截屏 | com.miui.screenshot |
| 垃圾清理 | com.miui.cleanmaster |
| 浏览器 | com.android.browser |
| 鲁班(MTB) | com.xiaomi.mtb |
| 屏幕录制 | com.miui.screenrecorder |
| 权限管理服务 | com.lbe.security.miui |
| 设置 | com.android.settings
| 搜狗输入法小米版 | com.sohu.inputmethod.sogou.xiaomi |
| 天气 | com.miui.weather2 |
| 投屏 | com.milink.service |
| 外部存储设备 | com.android.externalstorage |
| 万象息屏 | com.miui.aod |
| 文件管理 | com.android.fileexplorer |
| 系统服务组件 | com.miui.securityadd |
| 下载管理 | com.android.providers.downloads.ui |
| 下载管理程序 | com.android.providers.downloads |
| 相册 | com.miui.gallery |
| 小米创作 | com.miui.creation |
| 小米互传 | com.miui.mishare.connectivity |
| 小米相册 - 编辑 | com.miui.mediaeditor |
| 小米云服务 | com.miui.cloudservice |
| 小米智能卡 | com.miui.tsmclient |
| 讯飞输入法小米版 | com.iflytek.inputmethod.miui |
| 应用包管理组件 | com.miui.packageinstaller |
| 应用商店 | com.xiaomi.market |
| 智能助理 | com.miui.personalassistant |
| 主题壁纸 | com.android.thememanager |
| com.miui.rom | com.miui.rom |
| MIUI 安全组件 | com.miui.guardprovider |
| 时钟 | com.android.deskclock |
| 相机 | com.android.camera |
| 小爱翻译 | com.xiaomi.aiasst.vision |
| 小爱建议 | com.xiaomi.aireco |
| 小爱视觉 | com.xiaomi.scanner |
| 小爱同学 | com.miui.voiceassist |
| 音乐 | com.miui.player |
| MIUI+ Beta 版 | com.xiaomi.mirror |
| com.xiaomi.NetworkBoost | com.xiaomi.NetworkBoost |
| NFC 服务 | com.android.nfc |

</details>

> 与 LSPosed 中推荐的作用域相同

## 交流 & 反馈群组

加入我们所创建的群组以反馈问题或是了解最新情况。

[![badge_qgroup]][qgroup_url]
[![badge_qguild]][qguild_url]
[![badge_telegram]][telegram_url]

## 为 Cemiuiler 贡献翻译

[![Crowdin](https://badges.crowdin.net/cemiuiler/localized.svg)](https://crowdin.com/project/cemiuiler)

您可以在[这里](https://crwd.in/cemiuiler)为 Cemiuiler 项目贡献翻译。

## 感谢

> Cemiuiler 使用了以下开源项目的部分或全部内容,感谢这些项目的开发者提供的大力支持(排名顺序不分先后)。

- [「Accompanist」 by Android Open Source Project, Google Inc.](https://google.github.io/accompanist)
- [「Android」 by Android Open Source Project, Google Inc.](https://source.android.google.cn/license)
- [「AndroidHiddenApiBypass」 by LSPosed](https://github.com/LSPosed/AndroidHiddenApiBypass)
- [「AndroidX」 by Android Open Source Project, Google Inc.](https://github.com/androidx/androidx)
- [「AntiAntiDefraud」 by MinaMichita](https://github.com/MinaMichita/AntiAntiDefraud)
- [「Auto NFC」 by GSWXXN](https://github.com/GSWXXN/AutoNFC)
- [「BypassSignCheck」 by Weverses](https://github.com/Weverses/BypassSignCheck)
- [「CorePatch」 by LSPosed](https://github.com/LSPosed/CorePatch)
- [「CustoMIUIzer」 by MonwF](https://github.com/MonwF/customiuizer)
- [「CustoMIUIzerMod」 by liyafe1997](https://github.com/liyafe1997/CustoMIUIzerMod)
- [「DexKit」 by LuckyPray](https://github.com/LuckyPray/DexKit)
- [「Disable app link verify」 by tehcneko](https://github.com/Xposed-Modules-Repo/io.github.tehcneko.applinkverify)
- [「DisableFlagSecure」 by LSPosed](https://github.com/LSPosed/DisableFlagSecure)
- [「DisableLogRequest」 by QueallyTech](https://github.com/QueallyTech/DisableLogRequest)
- [「EzXHelper」 by KyuubiRan](https://github.com/KyuubiRan/EzXHelper)
- [「FixMiuiMediaControlPanel」 by qqlittleice](https://github.com/qqlittleice/FixMiuiMediaControlPanel)
- [「FuckNFC」 by xiaowine](https://github.com/xiaowine/FuckNFC)
- [「Gson」 by Android Open Source Project, Google Inc.](https://github.com/google/gson)
- [「HideMiuiClipboardDialog」 by zerorooot](https://github.com/zerorooot/HideMiuiClipboardDialog)
- [「Kotlin」 by JetBrains](https://github.com/JetBrains/kotlin)
- [「MaxFreeForm」 by YifePlayte](https://github.com/YifePlayte/MaxFreeForm)
- [「Miui Feature」 by MoralNorm](https://github.com/moralnorm/miui_feature)
- [「MiuiHomeR」 by qqlittleice](https://github.com/qqlittleice/MiuiHome_R)
- [「MIUI IME Unlock」 by RC1844](https://github.com/RC1844/MIUI_IME_Unlock)
- [「MIUI QOL」 by chsbuffer](https://github.com/chsbuffer/MIUIQOL)
- [「Miui XXL」 by Wine-Network](https://github.com/Wine-Network/Miui_XXL)
- [「Miui XXL」 by YuKongA](https://github.com/YuKongA/Miui_XXL)
- [「MIUI 通知修复」 by tehcneko](https://github.com/Xposed-Modules-Repo/io.github.tehcneko.miuinotificationfix)
- [「ModemPro」 by Weverse](https://github.com/Weverses/ModemPro)
- [「NoStorageRestrict」 by DanGLES3](https://github.com/Xposed-Modules-Repo/com.github.dan.nostoragerestrict)
- [「Portal Hook」 by Haocen2004](https://github.com/Haocen2004/PortalHook)
- [「RemoveMiuiSystemSelfProtection」 by gfbjngjibn](https://github.com/gfbjngjibn/RemoveMiuiSystemSelfProtection)
- [「SettingsDontThroughTheList」 by weixiansen574](https://github.com/weixiansen574/settingsdontthroughthelist)
- [「StarVoyager」 by hosizoraru](https://github.com/hosizoraru/StarVoyager)
- [「WINI」 by ouhoukyo](https://github.com/ouhoukyo/WINI)
- [「WOMMO」 by YifePlayte](https://github.com/YifePlayte/WOMMO)
- [「Woobox For MIUI」 by hosizoraru](https://github.com/hosizoraru/WooBoxForMIUI)
- [「Woobox For MIUI」 by Simplicity-Team](https://github.com/Simplicity-Team/WooBoxForMIUI)
- [「Xposed」 by rovo89, Tungstwenty](https://github.com/rovo89/XposedBridge)
- [「XposedBridge」 by rovo89](https://github.com/rovo89/XposedBridge)
- [「.xlDownload」 by Kr328](https://github.com/Kr328/.xlDownload)

[qgroup_url]: https://jq.qq.com/?_wv=1027&k=TedCJq8V
[badge_qgroup]: https://img.shields.io/badge/QQ-群组-4DB8FF?style=for-the-badge&logo=tencentqq
[qguild_url]: https://pd.qq.com/s/35ooe0ssj
[badge_qguild]: https://img.shields.io/badge/QQ-频道-4991D3?style=for-the-badge&logo=tencentqq
[telegram_url]: https://t.me/cemiuiler
[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dcemiuiler



================================================
FILE: README_en-US.md
================================================
<div align="center">

<img width="" src="/imgs/icon.png" width=160 height=160 align="center">

# Cemiuiler
### Make MIUI Great Again!

English&nbsp;&nbsp;|&nbsp;&nbsp;[简体中文](/README.md) |&nbsp;&nbsp;[Português (Brasil)](/README_pt-BR.md)

</div>

## Supported versions
MIUI 12.5 ~ 14 for Android 11 ~ 13

> Does not support third-party MIUI ROMs with many modifications, system software with many modifications, and some foreign MIUI ROMs
>
> At present, Cemiuiler is based on Android 13 MIUI 14 mobile phone devices for adaptation, the coverage is not very complete, it needs continuous testing and improvement
>
> We have tried our best to support Android 11 devices. After the release of version 1.3.130, the mainline branch will no longer support Android 11, but it will still provide maintenance and porting of old version functions.

## Supported Applications

<details>
    <summary>Click to expand collapsed content</summary>

| App Name | Package Name |
| :---- | :---- |
| System Framework | system |
| System UI | com.android.systemui |
| System Launcher | com.miui.home |
| Updater | com.android.updater |
| Joyose | com.xiaomi.joyose |
| Settings | com.xiaomi.misettings |
| Security | com.miui.securitycenter |
| Notes | com.miui.notes |
| Mi Wallpaper | com.miui.miwallpaper |
| Taplus | com.miui.contentextension |
| Bullet screen notification | com.xiaomi.barrage |
| Baidu IME for MIUI | com.baidu.input_mi |
| Phone | com.android.incallui |
| Phone Services | com.android.phone |
| Battery and performance | com.miui.powerkeeper |
| Messaging | com.android.mms |
| Screenshot | com.miui.screenshot |
| Cleaner | com.miui.cleanmaster |
| Browser | com.android.browser |
| Rueban (MTB) | com.xiaomi.mtb |
| Screen Recorder | com.miui.screenrecorder |
| Permissions | com.lbe.security.miui |
| Settings | com.android.settings
| Sogou Keyboard for MIUI | com.sohu.inputmethod.sogou.xiaomi |
| Weather | com.miui.weather2 |
| Cast | com.milink.service |
| External Storage | com.android.externalstorage |
| Always-on display | com.miui.aod |
| File Manager | com.android.fileexplorer |
| System Service Plugin | com.miui.securityadd |
| Downloads | com.android.providers.downloads.ui |
| Downloads | com.android.providers.downloads |
| Gallery | com.miui.gallery |
| Mi Canvas | com.miui.creation |
| Mi Share | com.miui.mishare.connectivity |
| Gallery Editor | com.miui.mediaeditor |
| Xiaomi Cloud | com.miui.cloudservice |
| Smart Cards | com.miui.tsmclient |
| iFlytek IME for MIUI | com.iflytek.inputmethod.miui |
| Package Installer | com.miui.packageinstaller |
| GetApps | com.xiaomi.market |
| App Vault | com.miui.personalassistant |
| Themes | com.android.thememanager |
| com.miui.rom | com.miui.rom |
| MIUI Security Components | com.miui.guardprovider |
| Clock | com.android.deskclock |
| Camera | com.android.camera |
| Mi AI Translate | com.xiaomi.aiasst.vision |
| Mi AI Suggestions | com.xiaomi.aireco |
| Scanner | com.xiaomi.scanner |
| Mi AI | com.miui.voiceassist |
| Music | com.miui.player |
| MIUI+ Beta | com.xiaomi.mirror |
| com.xiaomi.NetworkBoost | com.xiaomi.NetworkBoost |

</details>

> Same scope as recommended in LSPosed

## Chat & Feedback Group

Join our group to report issues or get the latest updates.

[![badge_qgroup]][qgroup_url]
[![badge_qguild]][qguild_url]
[![badge_telegram]][telegram_url]

## Provide translations for the Cemiuiler project

[![Crowdin](https://badges.crowdin.net/cemiuiler/localized.svg)](https://crowdin.com/project/cemiuiler)

You can provide translations for the Cemiuiler project [here](https://crwd.in/cemiuiler).

## Thank!

> Cemiuiler I have used some or all of the content of the following open source projects. Thank you for the strong support provided by the developers of these projects (in no particular order).

- [「Accompanist」 by Android Open Source Project, Google Inc.](https://google.github.io/accompanist)
- [「Android」 by Android Open Source Project, Google Inc.](https://source.android.google.cn/license)
- [「AndroidHiddenApiBypass」 by LSPosed](https://github.com/LSPosed/AndroidHiddenApiBypass)
- [「AndroidX」 by Android Open Source Project, Google Inc.](https://github.com/androidx/androidx)
- [「AntiAntiDefraud」 by MinaMichita](https://github.com/MinaMichita/AntiAntiDefraud)
- [「Auto NFC」 by GSWXXN](https://github.com/GSWXXN/AutoNFC)
- [「BypassSignCheck」 by Weverses](https://github.com/Weverses/BypassSignCheck)
- [「CorePatch」 by LSPosed](https://github.com/LSPosed/CorePatch)
- [「CustoMIUIzer」 by MonwF](https://github.com/MonwF/customiuizer)
- [「CustoMIUIzerMod」 by liyafe1997](https://github.com/liyafe1997/CustoMIUIzerMod)
- [「DexKit」 by LuckyPray](https://github.com/LuckyPray/DexKit)
- [「Disable app link verify」 by tehcneko](https://github.com/Xposed-Modules-Repo/io.github.tehcneko.applinkverify)
- [「DisableFlagSecure」 by LSPosed](https://github.com/LSPosed/DisableFlagSecure)
- [「DisableLogRequest」 by QueallyTech](https://github.com/QueallyTech/DisableLogRequest)
- [「EzXHelper」 by KyuubiRan](https://github.com/KyuubiRan/EzXHelper)
- [「FixMiuiMediaControlPanel」 by qqlittleice](https://github.com/qqlittleice/FixMiuiMediaControlPanel)
- [「FuckNFC」 by xiaowine](https://github.com/xiaowine/FuckNFC)
- [「Gson」 by Android Open Source Project, Google Inc.](https://github.com/google/gson)
- [「HideMiuiClipboardDialog」 by zerorooot](https://github.com/zerorooot/HideMiuiClipboardDialog)
- [「Kotlin」 by JetBrains](https://github.com/JetBrains/kotlin)
- [「MaxFreeForm」 by YifePlayte](https://github.com/YifePlayte/MaxFreeForm)
- [「Miui Feature」 by MoralNorm](https://github.com/moralnorm/miui_feature)
- [「MiuiHomeR」 by qqlittleice](https://github.com/qqlittleice/MiuiHome_R)
- [「MIUI IME Unlock」 by RC1844](https://github.com/RC1844/MIUI_IME_Unlock)
- [「MIUI QOL」 by chsbuffer](https://github.com/chsbuffer/MIUIQOL)
- [「Miui XXL」 by Wine-Network](https://github.com/Wine-Network/Miui_XXL)
- [「Miui XXL」 by YuKongA](https://github.com/YuKongA/Miui_XXL)
- [「MIUI 通知修复」 by tehcneko](https://github.com/Xposed-Modules-Repo/io.github.tehcneko.miuinotificationfix)
- [「ModemPro」 by Weverse](https://github.com/Weverses/ModemPro)
- [「NoStorageRestrict」 by DanGLES3](https://github.com/Xposed-Modules-Repo/com.github.dan.nostoragerestrict)
- [「Portal Hook」 by Haocen2004](https://github.com/Haocen2004/PortalHook)
- [「RemoveMiuiSystemSelfProtection」 by gfbjngjibn](https://github.com/gfbjngjibn/RemoveMiuiSystemSelfProtection)
- [「SettingsDontThroughTheList」 by weixiansen574](https://github.com/weixiansen574/settingsdontthroughthelist)
- [「StarVoyager」 by hosizoraru](https://github.com/hosizoraru/StarVoyager)
- [「WINI」 by ouhoukyo](https://github.com/ouhoukyo/WINI)
- [「WOMMO」 by YifePlayte](https://github.com/YifePlayte/WOMMO)
- [「Woobox For MIUI」 by hosizoraru](https://github.com/hosizoraru/WooBoxForMIUI)
- [「Woobox For MIUI」 by Simplicity-Team](https://github.com/Simplicity-Team/WooBoxForMIUI)
- [「Xposed」 by rovo89, Tungstwenty](https://github.com/rovo89/XposedBridge)
- [「XposedBridge」 by rovo89](https://github.com/rovo89/XposedBridge)
- [「.xlDownload」 by Kr328](https://github.com/Kr328/.xlDownload)


[qgroup_url]: https://jq.qq.com/?_wv=1027&k=TedCJq8V
[badge_qgroup]: https://img.shields.io/badge/QQ-group-4DB8FF?style=for-the-badge&logo=tencentqq
[qguild_url]: https://pd.qq.com/s/35ooe0ssj
[badge_qguild]: https://img.shields.io/badge/QQ-Channel-4991D3?style=for-the-badge&logo=tencentqq
[telegram_url]: https://t.me/cemiuiler
[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dcemiuiler


================================================
FILE: README_pt-BR.md
================================================
<div align="center">

<img width="" src="/imgs/icon.png" width=160 height=160 align="center">

# Cemiuiler
### Torne a MIUI ótima novamente!

[English](/README_en-US.md)&nbsp;&nbsp;|&nbsp;&nbsp;[简体中文](/README.md) |&nbsp;&nbsp;Português (Brasil)

</div>

## Versões suportadas
MIUI 12.5 ~ 14 para Android 11 ~ 13

> Não suporta ROM MIUI de terceiros com muitas modificações, software de sistema com muitas modificações e algumas ROM MIUI estrangeiras.
>
> Atualmente, o Cemiuiler é baseado em dispositivos Android 13 MIUI 14 para adaptação, a cobertura não é muito completa, precisa de testes e melhorias contínuas.
>
> Tentamos o nosso melhor para oferecer suporte a dispositivos Android 11. Após o lançamento da versão 1.3.130, o branch principal não suportará mais o Android 11, mas ainda fornecerá manutenção e portabilidade de funções de versões antigas.
>
## Apps suportados

<details>
    <summary>Clique para ver os apps suportados</summary>

| Nome do app | Nome do pacote |
| :---- | :---- |
| Framework do Sistema | system |
| Ui do Sistema | com.android.systemui |
| Launcher do sistema | com.miui.home |
| Atualizações | com.android.updater |
| Joyose | com.xiaomi.joyose |
| Configurações | com.xiaomi.misettings |
| Segurança | com.miui.securitycenter |
| Notas | com.miui.notes |
| Papéis de Parede Mi | com.miui.miwallpaper |
| Taplus | com.miui.contentextension |
| Notificação de mensagem em tela | com.xiaomi.barrage |
| Baidu IME para MIUI | com.baidu.input_mi |
| Ui de chamadas | com.android.incallui |
| Serviços do smartphone | com.android.phone |
| Bateria e desempenho | com.miui.powerkeeper |
| Mensagens | com.android.mms |
| Captura de tela | com.miui.screenshot |
| Limpeza | com.miui.cleanmaster |
| Navegador | com.android.browser |
| Rueban (MTB) | com.xiaomi.mtb |
| Gravador de tela | com.miui.screenrecorder |
| Permissões | com.lbe.security.miui |
| Configurações | com.android.settings
| Teclado Sogou para MIUI | com.sohu.inputmethod.sogou.xiaomi |
| Clima | com.miui.weather2 |
| Transmitir | com.milink.service |
| Armazenamento externo | com.android.externalstorage |
| Tela ambiente | com.miui.aod |
| Arquivos | com.android.fileexplorer |
| Plugin de serviço de sistema | com.miui.securityadd |
| Downloads | com.android.providers.downloads.ui |
| Downloads | com.android.providers.downloads |
| Galeria | com.miui.gallery |
| Mi Canvas | com.miui.creation |
| Compartilhamento Mi | com.miui.mishare.connectivity |
| Editor da Galeria | com.miui.mediaeditor |
| MiCloud | com.miui.cloudservice |
| Cartões inteligentes | com.miui.tsmclient |
| iFlytek IME para MIUI | com.iflytek.inputmethod.miui |
| Instalador de Pacotes | com.miui.packageinstaller |
| GetApps | com.xiaomi.market |
| Assistente | com.miui.personalassistant |
| Temas | com.android.thememanager |
| com.miui.rom | com.miui.rom |
| Componentes de segurança da MIUI | com.miui.guardprovider |
| Relógio | com.android.deskclock |
| Câmera | com.android.camera |
| Tradutor IA | com.xiaomi.aiasst.vision |
| AI Reco | com.xiaomi.aireco |
| Scanner | com.xiaomi.scanner |
| Mi IA | com.miui.voiceassist |
| Músicas | com.miui.player |
| MIUI+ | com.xiaomi.mirror |
| com.xiaomi.NetworkBoost | com.xiaomi.NetworkBoost |
| Serviço NFC | com.android.nfc |

</details>

> Todos os escopos acima estão ativos no LSPosed

## Chat e Feedback

Junte-se ao nosso grupo para relatar problemas ou obter as atualizações mais recentes.

[![badge_qgroup]][qgroup_url]
[![badge_qguild]][qguild_url]
[![badge_telegram]][telegram_url]

## Tradução

[![Crowdin](https://badges.crowdin.net/cemiuiler/localized.svg)](https://crowdin.com/project/cemiuiler)

Você pode fornecer traduções para o projeto [aqui](https://crwd.in/cemiuiler).

## Obrigado!

> Usei parte ou todo o conteúdo dos seguintes projetos de código aberto. Obrigado pelo forte apoio fornecido pelos desenvolvedores desses projetos (em nenhuma ordem em particular).

- [「Accompanist」 por Android Open Source Project, Google Inc.](https://google.github.io/accompanist)
- [「Android」 por Android Open Source Project, Google Inc.](https://source.android.google.cn/license)
- [「AndroidHiddenApiBypass」 por LSPosed](https://github.com/LSPosed/AndroidHiddenApiBypass)
- [「AndroidX」 por Android Open Source Project, Google Inc.](https://github.com/androidx/androidx)
- [「AntiAntiDefraud」 por MinaMichita](https://github.com/MinaMichita/AntiAntiDefraud)
- [「Auto NFC」 por GSWXXN](https://github.com/GSWXXN/AutoNFC)
- [「BypassSignCheck」 por Weverses](https://github.com/Weverses/BypassSignCheck)
- [「CorePatch」 por LSPosed](https://github.com/LSPosed/CorePatch)
- [「CustoMIUIzer」 por MonwF](https://github.com/MonwF/customiuizer)
- [「CustoMIUIzerMod」 por liyafe1997](https://github.com/liyafe1997/CustoMIUIzerMod)
- [「DexKit」 por LuckyPray](https://github.com/LuckyPray/DexKit)
- [「Disable app link verify」 por tehcneko](https://github.com/Xposed-Modules-Repo/io.github.tehcneko.applinkverify)
- [「DisableFlagSecure」 por LSPosed](https://github.com/LSPosed/DisableFlagSecure)
- [「DisableLogRequest」 por QueallyTech](https://github.com/QueallyTech/DisableLogRequest)
- [「EzXHelper」 por KyuubiRan](https://github.com/KyuubiRan/EzXHelper)
- [「FixMiuiMediaControlPanel」 por qqlittleice](https://github.com/qqlittleice/FixMiuiMediaControlPanel)
- [「FuckNFC」 por xiaowine](https://github.com/xiaowine/FuckNFC)
- [「Gson」 por Android Open Source Project, Google Inc.](https://github.com/google/gson)
- [「HideMiuiClipboardDialog」 por zerorooot](https://github.com/zerorooot/HideMiuiClipboardDialog)
- [「Kotlin」 por JetBrains](https://github.com/JetBrains/kotlin)
- [「MaxFreeForm」 por YifePlayte](https://github.com/YifePlayte/MaxFreeForm)
- [「Miui Feature」 por MoralNorm](https://github.com/moralnorm/miui_feature)
- [「MiuiHomeR」 por qqlittleice](https://github.com/qqlittleice/MiuiHome_R)
- [「MIUI IME Unlock」 por RC1844](https://github.com/RC1844/MIUI_IME_Unlock)
- [「MIUI QOL」 por chsbuffer](https://github.com/chsbuffer/MIUIQOL)
- [「Miui XXL」 por Wine-Network](https://github.com/Wine-Network/Miui_XXL)
- [「Miui XXL」 por YuKongA](https://github.com/YuKongA/Miui_XXL)
- [「MIUI 通知修复」 por tehcneko](https://github.com/Xposed-Modules-Repo/io.github.tehcneko.miuinotificationfix)
- [「ModemPro」 por Weverse](https://github.com/Weverses/ModemPro)
- [「NoStorageRestrict」 por DanGLES3](https://github.com/Xposed-Modules-Repo/com.github.dan.nostoragerestrict)
- [「Portal Hook」 por Haocen2004](https://github.com/Haocen2004/PortalHook)
- [「RemoveMiuiSystemSelfProtection」 por gfbjngjibn](https://github.com/gfbjngjibn/RemoveMiuiSystemSelfProtection)
- [「SettingsDontThroughTheList」 por weixiansen574](https://github.com/weixiansen574/settingsdontthroughthelist)
- [「StarVoyager」 por hosizoraru](https://github.com/hosizoraru/StarVoyager)
- [「WINI」 por ouhoukyo](https://github.com/ouhoukyo/WINI)
- [「WOMMO」 por YifePlayte](https://github.com/YifePlayte/WOMMO)
- [「Woobox For MIUI」 por hosizoraru](https://github.com/hosizoraru/WooBoxForMIUI)
- [「Woobox For MIUI」 por Simplicity-Team](https://github.com/Simplicity-Team/WooBoxForMIUI)
- [「Xposed」 por rovo89, Tungstwenty](https://github.com/rovo89/XposedBridge)
- [「XposedBridge」 por rovo89](https://github.com/rovo89/XposedBridge)
- [「.xlDownload」 por Kr328](https://github.com/Kr328/.xlDownload)


[qgroup_url]: https://jq.qq.com/?_wv=1027&k=TedCJq8V
[badge_qgroup]: https://img.shields.io/badge/QQ-Grupo-4DB8FF?style=for-the-badge&logo=tencentqq
[qguild_url]: https://pd.qq.com/s/35ooe0ssj
[badge_qguild]: https://img.shields.io/badge/QQ-Canal-4991D3?style=for-the-badge&logo=tencentqq
[telegram_url]: https://t.me/cemiuiler
[badge_telegram]: https://img.shields.io/badge/dynamic/json?style=for-the-badge&color=2CA5E0&label=Telegram&logo=telegram&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3Dtelegram%26queryKey%3Dcemiuiler


================================================
FILE: app/.gitignore
================================================
/build

================================================
FILE: app/build.gradle
================================================
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

static def getGitRevision() {
    return "git rev-parse --short HEAD".execute().text.trim()
}

android {
    compileSdk 34

    defaultConfig {
        namespace 'com.sevtinge.cemiuiler'
        applicationId namespace
        minSdk 30
        targetSdk 34
        versionCode 130
        versionName "1.3.130"
        project.archivesBaseName = "Cemiuiler"
        ndk {
            // noinspection ChromeOsAbiSupport
            abiFilters 'arm64-v8a', 'armeabi-v7a'
        }
        applicationVariants.configureEach { variant ->
            variant.outputs.configureEach {
                outputFileName = project.archivesBaseName + "_" + versionName + "(" + versionCode + ")_" + variant.buildType.name + ".apk"
            }
        }
    }

    buildFeatures {
        buildConfig = true
    }

    androidResources {
        generateLocaleConfig = true
    }

    packagingOptions {
        resources {
            excludes += "/META-INF/**"
            excludes += "/kotlin/**"
            excludes += "/*.txt"
            excludes += "/*.bin"
            excludes += "/*.json"
        }
        dex {
            useLegacyPackaging = true
        }
    }

    def properties
    def propertiesFile = rootProject.file('signing.properties')
    if (propertiesFile.exists()) {
        properties = new Properties()
        properties.load(propertiesFile.newDataInputStream())
    }
    def getString = { String propertyName, String environmentName, String prompt ->
        return properties?.get(propertyName) ?: System.getenv(environmentName) ?:
            System.console()?.readLine('\n' + prompt + ': ')
    }
    def keyStoreFile = getString('storeFile', 'STORE_FILE', 'Store file')?.with(rootProject.&file)

    signingConfigs {
        cemiuiler {
            if (keyStoreFile != null) {
                storeFile keyStoreFile
                storePassword getString('storePassword', 'STORE_PASSWORD', 'Store password')
                keyAlias getString('keyAlias', 'KEY_ALIAS', 'Key alias')
                keyPassword getString('keyPassword', 'KEY_PASSWORD', 'Key password')
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-log.pro'
            versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now())
            if (keyStoreFile != null) {
                signingConfig signingConfigs.cemiuiler
            }
        }
        beta {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now())
            if (keyStoreFile != null) {
                signingConfig signingConfigs.cemiuiler
            }
        }
        canary {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now()) + "_" + getGitRevision()
            if (keyStoreFile != null) {
                signingConfig signingConfigs.cemiuiler
            }
        }
        debug {
            versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now()) + "_" + getGitRevision()
            if (keyStoreFile != null) {
                signingConfig signingConfigs.cemiuiler
            }
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_19
        targetCompatibility JavaVersion.VERSION_19
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_19.toString()
    }

}

dependencies {
    compileOnly(project(":hidden-api"))

    compileOnly files('libs/miui.jar')
    compileOnly files("libs/miui-framework.jar")

    compileOnly(roots.XposedApi)

    implementation 'org.luckypray:dexkit:2.0.0-rc7'
    // implementation 'org.luckypray:DexKit:1.1.8'
    implementation 'io.github.biezhi:TinyPinyin:2.0.3.RELEASE'
    implementation 'com.github.kyuubiran:EzXHelper:2.0.8'
    implementation "com.google.accompanist:accompanist-systemuicontroller:0.32.0"
    implementation "org.lsposed.hiddenapibypass:hiddenapibypass:4.3"
    implementation "com.google.code.gson:gson:2.10.1"
    implementation 'commons-codec:commons-codec:1.16.0'

    implementation roots.AndroidXCore
    implementation roots.AndroidXCollection
    implementation roots.AndroidXRecyclerview
    implementation roots.AndroidXFragment
    implementation roots.AndroidXLifecycle
    implementation roots.AndroidXVectorDrawable
    implementation roots.AndroidXVectorDrawableAnimated
    implementation roots.AndroidXCustomView
    implementation roots.AndroidXCustomViewPoolingContainer
    implementation roots.AndroidXConstraintLayout

    implementation files(roots.animation)
    implementation files(roots.appcompat)
    implementation files(roots.core)
    implementation files(roots.haptic)
    implementation files(roots.preference)
    implementation files(roots.smooth)
    implementation files(roots.springback)

    implementation files("libs/hyperceiler_expansion_packs-debug.aar")
}


================================================
FILE: app/dict.txt
================================================
0000O000000o
000O00000Oo
000O00000o0
000O00000o
000O00000oO
000O00000oo
000O0000O0o
000O0000OOo
000O0000Oo0
000O0000Oo
000O0000OoO
00O0000Ooo
00O0000o00
00O0000o0
00O0000o0O
00O0000o0o
00O0000o
00O0000oO0
00O0000oO
00O0000oOO
000O0000oOo
00O0000oo0
00O0000oo
00O0000ooO
00O0000ooo
00O00oOooO
00O00oOooo
00O000O00o
00O000O0OO
00O000O0Oo
000O00oOoOo
00O000O0o0
00O000O0o
00O000O0oO
00O000O0oo
00O000OO00
00O000OO0o
00O000OO
00O000OOOo
00O000OOo0
000O000OOo
00O000OOoO
00O000OOoo
00O000Oo00
00O000Oo0
00O000Oo0O
00O000Oo0o
00O000OoO0
00O00O0Oo
00O000OoO
000O000OoOO
00O000OoOo
00O000Ooo0
00O000Ooo
00O000OooO
00O000Oooo
00O000o000
00O000o00
00O000o00O
00O000o00o
000O000o0
00O000o0O0
00O000o0O
00O000o0OO
00O000o0Oo
00O000o0o0
00O000o0o
00O000o0oo
00O000o
00O000oO00
000O000oO0
00O000oO0O
00O000oO0o
00O000oO
00O000oOO0
00O000oOO
00O000oOOO
00O000oOOo
00O000oOo0
00O000oOo
000O000oOoO
00O000oOoo
00O000oo0
00O000oo0O
00O000oo0o
00O000oo
00O000ooO0
00O000ooO
00O000ooOO
00O000ooOo
000O000ooo0
00O000ooo
00O000oooO
00O000oooo
00oooOoO
00O00oOOoo
00O00O000o
00O00O00Oo
00O00O00o0
00O00O00o
000O00O00oO
00O00O00oo
00O00O0O0o
00O00O0OO
00O00O0OOo
00O00O0Oo0
00O00O0OoO
00O00O0Ooo
00O00O0o00
00O00O0o0
00O00O0o0O
0O00O0o0o
0O00O0o
0O00O0oO0
0O00O0oOO
0O00O0oOo
0O00O0oo0
0O00O0oo
0O00O0ooO
0O00O0ooo
00O00OO0O
0O00OO0o
0O00OOOo
0O00OOo0
0O00OOo
0O00OOoO
0O00OOoo
0O00Oo00
0O00Oo00o
0O00Oo0
00O00Oo0OO
0O00Oo0Oo
0O00Oo0o0
0O00Oo0o
0O00Oo0oO
0O00OooOO
0O00Oo0oo
0O00Oo
0O00OoO0
0O00OoO0o
00O00OoO0O
0O00Ooo
0O00OoO
0O00OoOO0
0O00OoOO
0O00OoOo0
0O00OoOo
0O00OoOoO
0O00OoOoo
0O00Ooo00
00O00Ooo0
0O00Ooo0O
0O00Ooo0o
0O00OooO0
0O00OooO
0O00OooOo
0O00Oooo0
0O00Oooo
0O00Ooooo
0O00OoooO
00O00o0000
0O00o000
0O00o000O
0O00o000o
0O00o00
0O00o00O0
0O00o00O
0O00o00OO
0O00o00Oo
0O00o00o0
00O00o00o
0O00o00oO
0O00o00oo
0O00o0
0O00o0O00
0O00o0O0
0O00oo000
0O00o0O0O
0O00o0O0o
0O00o0O
00O00o0OO0
0O00o0OO
0O00o0OOO
0O00o0OOo
0O00o0Oo0
0O00o0Oo
0O00o0OoO
0O00o0Ooo
0O00o0o00
0O00o0o0
00O00o0o0O
0O00o0o0o
0O00o0o
0O00o0oO0
0O00o0oO
0O00o0oOO
0O00o0oOo
0O00o0oo0
0O00o0oo
0O00o0ooO
000O00o0ooo
00O00o
00O00oO0O0
00O00oO000
00O00oO00
00O00oO00O
00O00oO0OO
00O00oO00o
00O00oO0
00O00oO0O
00O00ooO00
0O00oO0Oo
0O00oO0o0
0O00oO0o
0O00oO0oO
0O00oO0oo
0O00oO
0O00oOO0o
0O00oOO00
0O00oOO0
00O00oOO0O
0O00oOo
0O00oOO
0O00oOOO0
0O00oOOO
0O00oOOOO
0O00oOOOo
0O00oOOo0
0O00oOOo
0O00oOOoO
00O00oOo00
0O00oOo0
0O00oOo0O
0O00oOo0o
0O00oOoO
0O00oOoOO
0O00oOoo0
0O00oOoo
0O00oo00
0O00oo00O
00O00oo00o
0O00oo0
0O00oo0O0
0O00oo0O
0O00oo0OO
0O00oo0Oo
0O00oo0o0
0O00oo0o
0O00oo0oo
0O00oo
00O00ooO0
0O00ooO0O
0O00ooO0o
0O00ooO
0O00ooOo0
0O00ooOO0
0O00ooOO
0O00ooOOO
0O00ooOOo
0O00ooOo
00O00ooOoO
0O00ooOoo
0O00ooo00
0O00ooo0
0O00ooo0o
0O00ooo
0O00oooO0
0O00oooO
0O00oooOO
0O00oooOo
00O00oooo0
0O00oooo
0O00ooooo
0ooooooo
0O0O00oO
0O0O000o
0O0O00OO
0O0O00Oo
0O0O00o0
0O0O00o
00O0O0O0o
0O0O0O
0O0O0OO0
0O0O0OO
0O0O0OOO
0O0O0OOo
0O0O0Oo0
0O0O0OoO
0O0O0Ooo
0O0O0o00
00O0O0o0
0O0O0o0O
0O0O0o0o
0O0O0o
0O0O0oO0
0O0O0oO
0O0O0oOO
0O0O0oOo
0O0O0oo0
0O0O0oo
000O0O0ooO
00O0O0ooo
00O0OoOo
00O0OoOO
00O0OO00O
00O0OO00o
00O0OO0O
00O0Oo0o0
00O0OO0Oo
00O0OO0o0
00O0OO0oO
0O0OO0oo
0O0OOO00
0O0OOoo
0O0OOoO
0O0OOO0
0O0OOO0O
0O0OOO0o
0OO0oO
0O0OOOO
00O0OOOOO
0O0OOOOo
0O0OOOo0
0O0OOOo
0O0OOOoO
0O0OOOoo
0O0OOo00
0O0OOo0O
0O0OOo0o
0O0OOo
00O0OOoO0
0O0OOoOO
0O0OOoOo
0O0OOoo0
0O0OOooO
0O0OOooo
0O0Oo000
0O0Oo00
0O0Oo00O
0O0Oo00o
00O0Oo0
0O0Oo0O0
0O0Oooo
0O0Oo0O
0O0Oo0OO
0O0Oo0Oo
0O0Oo0o
0O0Oo0oO
0O0Oo0oo
0o00o00O
00O0Oo
0O0OoO00
0O0OoO0
0O0OoO0O
0OooOO
0OoO0o
0O0OoO
0O0OoOO0
0O0OoOOO
0O0OoOOo
00O0OoOo0
0O0OoOoO
0O0OoOoo
0O0Ooo00
0O0Ooo0
0O0Ooo0O
0O0Ooo0o
0O0Ooo
0O0OooO0
0O0OooO
00O0OooOO
0O0OooOo
0O0Oooo0
0O0OoooO
0O0Ooooo
0O0o0000
0O0o000
0O0o000O
0O0o000o
0O0o00
00O0o00O0
0O0o00O
0O0o00OO
0O0o00Oo
0O0o00o0
0O0o00o
0O0o00oO
0O0o00oo
0O0o0
0O0o0O00
00O0o0O0
0O0o0O0O
0O0o0O0o
0O0o0O
0O0o0OO0
0O0oo0o
0O0o0OO
0O0o0OOO
0O0o0OOo
0O0o0Oo0
000O0o0Oo
00O0o0OoO
00O0o0Ooo
00O0o0o00
00O0o0o0
00O0o0o0O
00O0o0o0o
00O0o0oO0
00O0o0oO
00O0o0oOO
00O0o0oOo
0O0o0oo
0O0o0ooO
0oOOoOO
0O0o
0O0oO000
0O0oO00
0O0oO0oO
0O0oO00O
0O0oO00o
00O0oO0
0O0oO0O0
0O0oO0O
0O0oO0OO
0O0oO0Oo
0O0oO0o0
0O0oO0o
0O0oO0oo
0o0Oo0o0
0O0oO
00O0oOO00
0O0oOO0
0o00O00O0
0O0oOO0O
0O0oOO0o
0O0oOO
0O0oOOO0
0O0oOOOo
0O0oOOo0
0Oo0OOo
00O0oOOo
0O0oOOoO
0O0oOOoo
0O0oOo00
0O0oOo0
0ooO0Ooo
0O0oOo0O
0O0oOo0o
0O0oOo
0O0oOoO0
00O0oOoO
0O0oOoOO
0O0oOoOo
0OOoOoo
0O0oOoo0
0O0oOoo
0O0oOooO
0O0oOooo
0O0oo000
0O0oo00
00O0oo00O
0O0oo00o
0O0oo0
0O0oo0O0
0O0oo0O
0O0oo0OO
0O0oo0Oo
0O0oo0o0
0O0oo0oO
0O0oo0oo
00O0oo
0O0ooO00
0O0ooOo
0O0oooo
0O0oooO
0O0ooO0
0O0oooOo
0O0ooO0O
0O0ooO0o
0O0ooO
00O0ooOO0
0O0ooOO
0O0ooOOO
0O0ooOOo
0O0ooOo0
0O0ooOoO
0O0ooOoo
0O0ooo00
0O0ooo0
0O0ooo0O
00O0ooo0o
0O0ooo
0O0oooO0
0O0oooOO
0O0oooo0
0O0ooooO
0O0ooooo
0OO0000
0OO0000o
0OoOOO
000OO000OO
00OO000Oo
00OO000o0
00OO000o
00OO000oO
00OO000oo
00OO00OO
00OO00O0
00OO00O0o
00OO00O
00OO00OOO
0OO00OOo
0OO00Oo0
0OO0ooO
0OO00Oo
0OO00OoO
0OO00Ooo
0OO00o00
0OO00o0O
0OO00o0o
00OO00oO0
0OO00oO
0OO00oOO
0OO00oOo
0OO00oo0
0OO00oo
0OO00ooO
0OO00ooo
0OO0O00o
0OO0O0O
00OO0O0OO
0OO0O0Oo
0OO0O0o0
0OO0oOo
0OO0oOO
0OO0O0o
0OO0O0oO
0OO0O0oo
0oOo00
0OO0OO0o
00OOo00
0OO0OO
0OO0OOO
0OO0OOOO
0OO0OOOo
0OO0OOo0
0OO0OOo
0OO0OOoO
0OO0OOoo
0OO0Oo00
00OO0Oo0
0OO0Oo0O
0OO0Oo0o
0Oo0Oo0O
0OO0OoO0
0OO0OoO
0OO0OoOO
0Oo0Ooo0
0OO0OoOo
0OO0Ooo0
00OO0Ooo
0OO0OooO
0OO0Oooo
0OO0o000
0OO0o00
0OO0o00O
0OO0o00o
0OO0o0
0OO0o0O0
0OO0o0OO
00OO0o0Oo
0OO0o0o0
0OO0o0o
0OO0o0oO
0OO0o0oo
0OO0o
0OO0oO00
0OO0oO0
0OO0oO0O
0OO0oO0o
00OO0oOO0
0OoOOoOo
0OO0oOOO
0OO0oOOo
0OO0oOo0
0OO0oOoO
0OO0oOoo
0OO0oo00
0OO0oo0
0OO0oo0O
00OO0oo0o
0OO0oo
0OO0ooO0
0OO0ooOO
0OO0ooOo
0OO0ooo0
0OO0ooo
0OO0oooO
0OO0oooo
0OOO000o
000OOO00
00OOO00O0
00OOO00Oo
00OOO00o0
00OOO00o
00OOO00oO
00OOO00oo
00OOO0O0O
00OOO0O0o
00OOO0O
00o00OOOOO
0OOO0OO0
0OOO0OOO
0OOO0OOo
0OOO0Oo0
0OOO0oO
0OOO0Oo
0OOO0OoO
0OOO0Ooo
0OOO0o00
00OOO0o0
0OOO0o0O
0OOO0o0o
0OOO0o
0OOO0oO0
0OOO0oOO
0OOO0oOo
0OOO0oo0
0OOO0oo
0OOO0ooO
00OOO0ooo
0OOO
0OOOO00O
0OOOO00o
0OOOO0
0OOOOoO
0OOOOo0
0OOOOoo
0OOOO0O
0OOOO0OO
00OOOO0Oo
0OOOO0o0
0OOOO0oO
0OOOO0oo
0OOOOO00
0OOOOO0
0OOOOO0o
0OOOOO
0OOOOOO
0OOOOOOO
00OOOOOOo
0OOOOOo0
0OOooOo
0OOoooo
0OOOOOo
0OOOOOoO
0OOOOOoo
0OOOOo00
0OOOOo0O
0OOOOo0o
00OOOOo
0OOOOoO0
0OOOOoOO
0OOOOoOo
0OOOOoo0
0OOOOooO
0OOOOooo
0OOOo000
0OOo000
0OOOo00
00OOOo00O
0OOOo00o
0OOOo0
0ooOOo00
0OOOo0O0
0OOOo0O
0OOOo0OO
0OOOo0Oo
0OOOo0o0
0OOOo0o
00OOOo0oO
0OOOo0oo
0OOOo
0OOOoO00
0OOOoO0
0OOOoO0O
0o0ooo0OO
0OOOoO0o
0OOOoO
0OOOoOO0
00OOOoOO
0OOOoOOO
0OOOoOOo
0OOOoOo0
0OOOoOo
0OOOoOoO
0OOOoOoo
0ooO00O0
0OOOoo00
0OOOoo0
000o00O0oO0
00OOOoo0O
00OOOoo0o
00OOOoo
00OOOooO0
00OOOooO
00o0OOoOoo
00OOOooOO
00OOOooOo
00OOOooo0
00OOOooo
0OOOoooO
0OOOoooo
0OOo0000
0OOo000O
0OOo000o
0OOo00O0
0OOo00O
0OOo00OO
0OOo00Oo
00OOo00o0
0OOo00o
0OOo00oO
0OOo00oo
0ooOo
0OOo0
0OOo0O00
0OOo0OO
0OOo0Oo
0OOoo00
00OOo0O0
0OOo0O0O
0OOo0O0o
0OOoOOoO
0OOo0OO0
0OOo0OOO
0OOo0OOo
0OOo0Oo0
0OOo0OoO
0OOo0Ooo
00OOo0o00
0OOo0o0
0OOo0o0O
0OOo0o0o
0OOo0o
0OOo0oO0
0OOo0oO
0OOo0oOO
0OOo0oOo
0OOo0oo0
00OOo0oo
0OOo0ooO
0OOo0ooo
0OOoO000
0OOoO00
0OOoO00O
0OOoO00o
0OOoO0
0OOoO0O0
0OOoO0o
00OOoO0O
0OOoO0OO
0OOoO0Oo
0OOoO0o0
0OOoO0oO
0OOoO0oo
0OOoO
0OOoOO00
0OOoOO0O
0OOoOO0o
00OOoOO
0OOoOOO0
0OOoOOO
0OOoOOOO
0OOoOOOo
0OOoOOo0
0OOoOOo
0OOoOOoo
0OOoOo00
0OOoOo0
00OOoOo0O
0OOoOo0o
0OOoOo
0OOoOoO0
0oO0OO0
0OOoOoO
0OOoOoOO
0OOoOoOo
0OOoOoo0
0OOoOooO
00OOoOooo
0OOoo000
0OOoo00O
0OOoo00o
0OOoo0
0OOoo0O0
0OOoo0O
0OOoo0OO
0OOoo0Oo
0OOoo0o0
000OOoo0o
00OOoo0oO
00OOoo0oo
00OOoo
00OOooO00
00OOooO0
00OOooO0O
00OOooO0o
00OOooO
00OOooOO0
00OOooOO
0OOooOOO
0OOooOOo
0OOooOo0
0OOooOoO
0OOooOoo
0OOooo00
0OOooo0
0OOooo0O
0OOooo0o
00OOooo
0OOoooO0
0OOoooO
0OOoooOO
0OOoooOo
0OOoooo0
0OOooooO
0OOooooo
0Oo00000
0Oo0000O
00Oo0000o
0Oo000
0Oo000O0
0Oo000O
0Oo000OO
0Oo000Oo
0Oo000o0
0Oo000o
0Oo000oO
0Oo000oo
00Oo00
0Oo00O00
0Oo00O0
0Oo0o0Oo
0Oo00O0O
0Oo00O0o
0Oo00O
0Oo00OO0
0Oo0o0o
0Oo00Oo
00Oo00OO
0Oo00OOO
0Oo00OOo
0Oo00Oo0
0Oo0o0O0
0Oo00OoO
0Oo00Ooo
0Oo00o00
0Oo00o0
0Oo00o0O
00Oo00o0o
0Oo00o
0Oo00oO0
0Oo00oOO
0Oo00oo0
0Oo00oo
0Oo00ooO
0Oo00ooo
0Oo0
0Oo0O000
00Oo0O00
0Oo0O00O
0Oo0O00o
0Oo0O0
0Oo0O0O0
0Oo0O0O
0Oo0O0OO
0Oo0O0Oo
0Oo0O0o0
0Oo0O0o
00Oo0O0oO
0Oo0O0oo
0o00oO00
0o00OO00
0Oo0O
0Oo0OO00
0Oo0OO0
0Oo0OO0O
0Oo0OO0o
0Oo0OO
00Oo0OOO0
0Oo0OOOO
0Oo0OOOo
0Oo0OOo0
0Oo0OOoO
0Oo0OOoo
0Oo0Oo00
0Oo0Oo0
0Oo0Oo0o
0Oo0Oo
000Oo0OoO0
00Oo0OoO
00Oo0OoOo
00Oo0Ooo
00Oo0OooO
00Oo0Oooo
00Oo0o000
00Oo0o00
00Oo0o00O
00Oo0o00o
00Oo0o0
0Oo0o0O
0Oo0o0o0
0Oo0o0oO
0Oo0o0oo
0Oo0o
0Oo0oO00
0Oo0ooO
0Oo0oOO
0Oo0oo0
00Oo0ooo
0Oo0oO0
0Oo0oO0O
0Oo0oO0o
0Oo0oO
0Oo0oOO0
0Oo0oOOO
0Oo0oOOo
0Oo0oOo0
0Oo0oOo
00Oo0oOoO
0Oo0oOoo
0Oo0oo00
0Oo0oo0O
0Oo0oo0o
0Oo0oo
0Oo0ooO0
0Oo0ooOO
0Oo0ooOo
0Oo0ooo0
00Oo0oooO
0Oo0oooo
0Oo
0OoO0000
0OoO000
0OoO000O
0OoO000o
0OoO00O0
0OoO00O
0OoO00OO
00OoO00Oo
0OoO00o0
0OoO00o
0OoO00oO
0OoO00oo
0OoO0
0OoO0O00
0OoO0Oo
0OoO0O0
0OoO0O0O
00OoO0O0o
0OoO0O
0OoO0OO0
0OoO0OO
0OoO0OOO
0OoOo00O
0OoO0OOo
0OoO0Oo0
0OoO0OoO
0OoO0Ooo
00OoO0o00
0OoO0o0
0OoO0o0O
0OoO0o0o
0OoO0oO0
0OoO0oo
0OoO0oO
0OoO0oOO
0OoO0oOo
0OoO0oo0
00OoO0ooO
0OoO0ooo
0OoO
0OoOO000
0OoOOo0
0OoOOOO
0OoOO0O
0OoOOoo
0OoOOoO
0OoOOO0
00OoOOOo
0OoOoOo
0OoOoOO
0OoOO00
0OoOO00O
0OoOO00o
0OoOO0
0OoOO0O0
0OoOO0OO
0OoOO0Oo
000OoOO0o0
00OoOO0o
00OoOO0oO
00OoOO0oo
00OoOo
00OoOO
00OoOOO0O
00OoOOO0o
00OoOOOO0
00OoOOOOO
00OoOOOOo
0OoOOOo0
0OoOOOoO
0OoOOOoo
0OoOOo00
0OoOOo0O
0OoOOo0o
0OoOOo
0OoOOoO0
0OoOOoOO
00OoOOoo0
0OoOOooO
0OoOOooo
0OoOo000
0OoOooo
0OoOoo0
0OoOo00
0OoOo00o
0OoOo0
0OoOo0O0
00OoOo0o
0OoOo0O
0OoOo0OO
0OoOo0Oo
0OoOo0o0
0OoOo0oO
0OoOo0oo
0OoOoO00
0OoOoO0
0OoOoO0O
00OoOoO0o
0OoOoO
0OoOoOO0
0OoOoOOO
0OoOoOOo
0OoOoOo0
0OoOoOoO
0OoOoOoo
0OoOoo00
0OoOoo0O
00OoOoo0o
0OoOoo
0OoOooO0
0OoOooO
0OoOooOO
0OoOooOo
0OoOooo0
0OoOoooO
0OoOoooo
0Ooo0000
00Ooo000
0Ooo000O
0Ooo000o
0Ooo00
0Ooo00O0
0Ooo00O
0Ooo00OO
0Ooo00Oo
0Ooo00o0
0Ooo00o
00Ooo00oO
0o00oo00o
0Ooo00oo
0Ooo0
0Ooo0O00
0Ooo0O0
0Ooo0O0O
0Ooo0O0o
0Ooo0O
0Ooo0OO0
00Oooo00
0Ooo0oO
0Ooo0Oo
0Ooo0OO
0o000O0OO
0o000oO0O
0Ooo0OOO
0Ooo0OOo
0Ooo0OoO
0Ooo0Ooo
00Ooo0o00
0Ooo0o0
0Ooo0o0o
0Ooo0o
0Ooo0oO0
0Ooo0oOO
0Ooo0oOo
0Ooo0oo0
0Ooo0oo
0Ooo0ooO
00Ooo0ooo
0o0oo
0Ooo
0OooO000
0OooO0O
0Ooooo0
0OooooO
0OoooOO
0OoooOo
0OooO00
0OooO00O
OooO00o
OooO0O0
OooO0OO
OooO0Oo
OooO0o0
OooO0o
OooO0oO
OooO0oo
OooO
0OooOO00
OooOO0
OooOO0O
OooOO0o
OooOOO0
OooOOO
OooOOOO
OooOOOo
OooOOo0
OooOOo
0OooOOoO
OooOOoo
OooOo00
OooOo0
OooOo0O
OooOo0o
OooOo
OooOoO0
OooOoO
OooOoOO
0OooOoOo
OooOoo0
OooOoo
OooOooO
OooOooo
Oooo000
Oooo00O
Oooo00o
Oooo0
Oooo0O0
0Oooo0O
Oooo0OO
Oooo0o0
Oooo0o
Oooo0oO
Oooo0oo
Oooo
OoooO00
OoooO0
OoooO0O
0OoooO0o
OoooO
OoooOO0
o000oOoO
OoooOOO
OoooOOo
OoooOo0
OoooOoO
OoooOoo
Ooooo00
0Ooooo0O
Ooooo0o
OooooO0
OooooOO
OooooOo
Oooooo0
Oooooo
OoooooO
Ooooooo
o0OoOo0
0o0OoO0O
ooOO
o00O0O
o00Oo0
o00Ooo
o00o0O
o00ooo
oo000o
o00oO0o
o00oO0O
0o0oo000
o0ooOO0
o0ooOOo
o0ooOoO
o0OOO0o
o0Oo0oo
o0OO00O
oo0o0Oo
o0O0O00
o000OOo
00oo0oOoO
0ooo0Ooo
0ooOo00O
0o0OoOO0
0o0O00oo
0o0ooo00
0o000OOoo
0o000OOOo
0o000OOOO
0o000OOO0
0o0000000
o000000
o000000O
o000000o
o00000
o00000O0
o00000O
o00000OO
o00000Oo
o00000o0
0o00000o
o0000Ooo
o00000oO
o00000oo
o0000
o0000O00
o0000oo
o0000oO
o0000O0
o0000O0O
0o0000O0o
o000OO
o0000O
o0000OO0
o0000OO
o0000OOO
o0000OOo
o0000Oo0
o0000Oo
o0000OoO
0o0000o00
o0000o0
o0000o0O
o0000o0o
o0000o
o0000oO0
o0000oOO
o0000oOo
o0000oo0
o0000ooO
0o0000ooo
o000
o000O000
o000OoO
o000O0o
o000Ooo
o000O0O
o000Oo0
o000O00
o000O00O
0o000O00o
o000O0
o000O0Oo
o000OO0O
o000O0O0
o000O0o0
o000O0oO
o000O0oo
o000O
o000OO00
0o000OO0
o0OoO0o
o000OO0o
o000OOO
o000OOo0
o000OOoO
o000Oo00
o000Oo0O
o000Oo0o
o000Oo
0o000OoO0
o000OoOO
o000OoOo
o000Ooo0
o000OooO
o000Oooo
o000o000
o000o00
o000o00O
o000o00o
0o000o0
oooo00o
o000o0O0
o000o0O
o000o0OO
o000o0Oo
o000o0o0
o000o0o
o000o0oO
o000o0oo
00o000o
0o000oO00
0o000oO0
0o000oO0o
0o000oO
0o000oOO0
0o000oOO
0o000oOOO
0o000oOOo
0o000oOo0
0o000oOo
o000oOoo
o000oo00
o000oo0
o000oo0O
o000oo0o
o000oo
o000ooO0
o000ooO
o000ooOO
0o000ooOo
o000ooo0
o000ooo
o000oooO
o000oooo
o00
o00O0000
o0O0ooO
o00oOoo
o00O000
0o00O000O
o00O000o
o00O00
o00O00O
oOO00O
o00O00OO
o00O00Oo
o00O00o0
o00O00o
o00O00oO
0o00O00oo
oo00o
o00O0
o00O0O00
o00O0O0
o00O0O0O
o00O0O0o
o00O0OO0
oo0o0O0
o00O0OO
0o00Oo00O
o00O0OOO
o00O0OOo
o00O0Oo0
oo0oOO0
o00O0Oo
o00O0OoO
o00O0Ooo
o00O0o00
o00oOOo
0o00oOOO
o00O0o0
o00O0o0O
o00O0o0o
o00O0o
o00O0oO
o00O0oOO
o00O0oOo
o00O0oo0
o00O0oo
0o00O0ooO
o00O0ooo
o00O
o00OO000
o00OO00O
o00OO00o
o00OO0
o00OO0O0
o00OO0O
o00OO0OO
0o00OO0Oo
o00OO0o0
o00OO0o
o00OO0oO
o00OO0oo
oo0O
o00OO
o00OOO00
o00OOO0
o00OOO0O
0o00OOO0o
o0o0Oo
o00OOO
o00OOOO0
o00OOOO
o00OOOOo
oOooo0o
o00OOOo0
o00OOOo
o00OOOoO
00o00OOOoo
0o00OOo00
0o00OOo0
0o00OOo0O
0o00OOo0o
0o00OOo
0o00OOoO0
0o00OOoO
0o00OOoOO
0o00OOoOo
0o00OOoo0
o00OOoo
o00OOooO
o00OOooo
o00OoOoO
o00Oo000
o00Oo00
o00Oo00o
o00Oo0O0
o00Oo0O
0o00Oo0OO
o00Oo0Oo
o00Oo0o0
o00Oo0o
o00Oo0oO
o00Oo0oo
o0oOO
o00Oo
o00OoO00
o00OoO0
0o00OoO0O
o00OoO0o
o00OoO
o00OoOO0
o00OoOO
o00OoOOO
o00OoOOo
o00OoOo0
o00OoOo
o00OoOoo
0o00Oooo0
o00Ooo00
o00Ooo0
o00Ooo0O
o00Ooo0o
o00OooO0
o00OooO
o00OooOO
o00OooOo
o0O00o0
0o00Oooo
o00OoooO
o00Ooooo
o00o0000
o00o000
o00o000O
o00o000o
oo00oO
o00o00
o00o00O0
0o00o00OO
o00o00Oo
o00o00o0
o00o00o
o00o00oO
o00o00oo
o00o0
o00o0O00
o00o0O0
o00o0O0O
0o00o0O0o
o00o0OO0
o00o0OO
o00o0OOO
o00o0OOo
o00o0Oo0
o00o0Oo
o00o0OoO
o00o0Ooo
o00o0o00
0o00o0o0
o00o0o0O
o00o0o0o
o00o0o
o00o0oO0
o00o0oO
o00o0oOO
o00o0oOo
o00o0oo0
o00o0oo
0o00o0ooO
o00o0ooo
o00o
o00oo000
o00oO000
o00oO00O
o00oO00o
o00oOo
o00oO0
o00oO0O0
00o00oO0OO
0o00oO0Oo
0o00oO0o0
0o00oO0oO
0o00oO0oo
0o00oO
0o00oOOoo
0o00oOO00
0o00oOO0
0o00oOO0O
0o00oOO0o
o0oOOo
o0ooOO
o00oOO
o00oOOO0
o00oOOOO
o00oOOOo
o00oOOo0
o00oOOoO
o00oOo00
0o00oOo0
o00oOooO
o00oOo0O
o00oOo0o
o00oOoO0
o00oOoO
o00oOoOO
o00oOoOo
o00oOoo0
o00oOooo
0o00oo00
o00oo00O
o00oo0
o00oo0OO
o00oo0O0
o00oo0O
o00oo0Oo
o00oo0o0
o00oo0o
o00oo0oO
0o00oo0oo
o0O0o
o00oo
o00ooO00
o00ooO0
o00ooO0O
o00ooO0o
o00ooO
o00ooOO0
o00ooOO
0o00ooOOO
o00ooOOo
o00ooOo0
o00ooOo
o00ooOoO
o00ooOoo
o00ooo00
o00ooo0
o00ooo0O
o00ooo0o
0o00oooO0
o00oooO
o00oooOO
o00oooOo
o00oooo0
o00oooo
o00ooooO
o00ooooo
o0
o0O00000
0o0O0000
o0O0000O
o0O0000o
o0O000
o0O000O
o0OoOoOo
o0O000Oo
o0OoOoOO
o0O000o0
o0O000o
0o0O000oO
o0ooOoOO
o0O000oo
o0O00
o0O00O0
o0OoO00O
o0O00O0o
o0O00O
o0O00OO
o0O00OOO
0o0O00Oo0
o0O00Oo
o0oO0Ooo
o0O00OoO
o0O00Ooo
o0O00o00
o0O00o0O
o0O00o0o
o0O00o
o0O00oO0
00o0O00oO
0o0O00oOO
0o0O00oOo
0o0O00oo0
0o0Oo0oOO
0o0O00ooO
0o0O00ooo
0o0O0
0o0ooOOOo
0o0O0O00O
0o0O0O0
o0O0O0O
o0oO0O0o
o0O0oo0o
o0O0O0Oo
o0O0O0o0
o0O0O0o
o0O0O0oO
o0O0O0oo
o0ooO
0o0O0O
o0O0OO0
o0O0OO0O
o0O0OO
o0O0OOO0
o0O0OOO
o0O0OOOo
o0O0OOo
o0O0OOoO
o0O0OOoo
0o0O0Oo00
o0OooO0
o0O0Oo0
o0O0Oo0O
o0O0Oo0o
o0O0Oo
o0O0Oooo
o0O0OoO0
oo0OOoo
o0O0OoO
0o0O0OoOO
o0O0OoOo
o0O0Ooo0
o0O0Ooo
o0O0OooO
o0O0o000
o0O0o00
o0O0o00O
o0O0o00o
o0O0o0
0o0O0o0O0
o0O0o0O
o0O0o0OO
o0O0o0Oo
o0O0o0o0
o0O0o0o
o0oOo0O0
o0O0o0oO
o0O0o0oo
o0O0oo0O
0o0O0oO00
oooOO0
o0O0oO0
o0O0oO0O
o0O0oO0o
o0O0oO
o0O0oOO0
o0O0oOO
o0O0oo00
o0O0oOOO
0o0O0oOOo
o0O0oOo0
oo0oOOo
o0O0oOo
o0O0oOoO
o0O0oOoo
o0O0oo0
o0O0oo
o0O0ooO0
o0O0ooOO
0o0O0ooOo
o0O0ooo0
o0O0ooo
o0O0oooO
o0O0oooo
o0O
o0OO000
o0OO000o
oo0oO0
oo0ooO
0o0OO00
o0OO00OO
o0OO00oo
o0OO00Oo
o0OO00o0
o0OoOoO
o0OO00o
o0OO0
o0OO0O0
o0OO0O0O
00o0OO0O0o
0o0OO0O
0o0OOoOOo
0o0OOoOoO
0o0OO0OO0
0o0OO0OO
0o0OOoOO0
0o0OO0OOO
0o0OO0OOo
0o0OO0Oo0
0o0OO0Oo
o0OO0OoO
o0OOooO0
o0OO0Ooo
o0OO0o00
o0OO0o0
o0OO0o0O
o0OO0o0o
o0OO0o
o0OO0oO0
0o0OO0oo
o0OO0oO
o0OO0oOO
o0OOoooO
o0OO0oOo
o0OO0oo0
o0OO0ooO
o0OO0ooo
o0OO
o0OOO00
0o0OOO00O
o0OOO00o
o0OOO0
o0OOO0O0
o0OOO0O
o0OOO0OO
o0OOO0Oo
o0OOO0o0
o0OOO0oO
o0OOO0oo
0o0OOO
o0OOOOoO
o0OOOO00
o0OOOO0
o0OOOO0o
o0OOOO
o0OOOOO0
o0OOOOO
o0OOOOOO
o0OOOOOo
0o0OOOOo0
o0OOOOo
o0OOOOoo
o0OOOo00
o0OOOo0
o0OOOo0O
o0OOOo0o
o0OOOo
o0OOOoO0
o0OOOoO
0o0OOOoOO
o0OOOoOo
o0OOOoo0
o0OOOoo
o0OOOooO
o0OOOooo
o0OOo000
o0OOo00
o0OOo00O
o0OOo00o
0o0OOo0
o0OOo0O0
o0OooOo
o0OOo0O
o0OOo0OO
o0OOo0Oo
o0OOo0o0
o0OOo0o
o0OOo0oO
o0OOo0oo
0o0OOo
o0OOoO00
o0OOoO0
o0OOoO0O
o0OOoO0o
o0OOoO
o0OOoOO
o0OOoOOO
o0OOoOo0
o0OOoOo
0o0OOoo00
o0OOoo0
o0OOoo0O
o0OOoo0o
o0OOoo
o0OOooO
o0OOooOO
o0OOooOo
o0OOooo0
o0OOooo
00o0OOoooo
0o0Oo0000
0o0Oo000
0o0Oooo0O
0o0Oo00O0
0o0Oo000O
0o0Oo000o
0o0Oo00
0o0Oo00OO
0o0Oo00Oo
0o0oooOoo
o0Oo00o0
o0Oo00o
o0Oo00oO
o0Oo00oo
o0Oo0
o0ooO0O0
o0Oo0O00
o0Oo0O0
o0Oo0O0O
0o0Oo0O0o
o0Oo0O
o0Oo0OO0
o0Oo0OO
o0oOooO0
o0ooOOOO
o0oOo000
o0Oo0OOO
o0oOo0o0
o0oOoo00
0o0oO0OOo
o0Oo0OOo
o0Oo0Oo0
o0Oo0Oo
o0Oo0OoO
o0Oo0oOo
o0Oo0Ooo
o0Oo0o00
o0Oo0o0O
o0Oo0o0o
0o0Oo0o
o0Oo0oO0
o0Oo0oO
o0Oo0oo0
o0Oo0ooO
o0Oo0ooo
o0Oo
o0OooOoo
o0OoO000
o0OoO0
0o0OoO0O0
o0oO0O00
o0OoO0OO
o0ooOOO0
o0OoO0Oo
o0OoO0o0
o0OoO0oO
o0OoO0oo
o0OoO
o0OoOO00
0o0OoOO0O
o0OoOO0o
o0OoOO
o0OoOOoO
o0OoOOO0
o0OoOOO
o0OoOOOO
o0OoOOOo
o0OoOOo0
o0OoOOo
0o0OoOOoo
o0OoOo00
o0OoOo0O
o0ooOOoo
o0OoOo0o
o0OoOo
o0OoOoO0
o0OoOoo0
o0OoOoo
o0OoOooO
0o0OoOooo
o0Ooo000
o0Ooo00
o0Ooo00O
o0oOO0Oo
o0oOoOoo
o0Ooo00o
o0Ooo0
o0Ooo0O0
o0Ooo0O
0o0Ooo0OO
o0oOOOoo
o0OoooO0
o0oOOO0o
o0Ooo0Oo
o0Ooo0o0
o0Ooo0o
o0Ooo0oO
o0Ooo0oo
o0Ooo
00o0OooO00
0o0OooO0O
0o0OooO0o
0o0OooO
0o0OooOO0
0o0OooOO
0o0OooOOO
0o0OooOOo
0o0OooOo0
0o0OooOoO
0o0Oooo00
o0Oooo0
o0Oooo0o
o0Oooo
o0OoooO
o0OoooOO
o0OoooOo
o0Ooooo0
o0Ooooo
o0OooooO
0o0Oooooo
o0o0000
o0o0o00O
o0o0000o
o0o000
o0o000O0
o0o000O
o0o000OO
o0o000Oo
o0o000o0
0o0o000o
o0o000oO
o0o000oo
o0o00
o0o00O00
o0o00O0
o0o00O0O
o0o00O0o
o0o00O
o0o00OO0
0o0o00OO
o0o00OOO
o0o00OOo
o0o00Oo0
o0o00Oo
o0o00OoO
o0o00Ooo
o0o00o00
o0o00o0
o0o00o0O
0o0o00o0o
o0o00o
o0o00oO0
o0o00oO
o0o00oOO
o0o00oOo
o0o00oo0
o0o00oo
o0o00ooO
o0o00ooo
0o0o0
o0o0O000
o0o0O00
o0o0O00O
o0o0O00o
o0o0O0
o0o0O0O0
o0o0O0O
o0o0Oo00
o0o0O0OO
0o0o0O0Oo
o0o0O0o0
o0o0O0o
o0o0O0oO
o0o0O0oo
oO0Oo
oO0OO
o0ooo
o0o0O
o0o0OoO0
0o0o0OO00
o0o0OO0
o0o0OO0O
o0o0OO0o
o0o0OO
o0o0OOO0
o0o0OOO
o0o0OOOO
o0o0OOOo
o0o0OOo0
0o0o0OOo
o0o0OOoO
o0o0OOoo
o0o0Oo0
o0o0Oo0O
o0o0Oo0o
o0o0OoO
o0o0OoOO
o0o0OoOo
o0o0Ooo0
000o0o0Ooo
00o0o0OooO
00o0o0Oooo
00o0o0o000
00o0o0o00
00o0o0o00o
00o0o0o0
00o0o0o0O0
00o0o0o0O
00o0o0o0OO
00o0o0o0Oo
0o0o0o0o0
0o0o0o0o
0o0o0o0oO
0o0o0o0oo
0o0o0o
0o0o0oO00
0o0o0oO0
0o0o0oO0O
0o0o0oO0o
00o0oo00
0o0o0oO
0o0o0oOO0
0o0o0oOO
0o0o0oOOO
0o0o0oOOo
0o0o0oOo0
0o0o0oOo
0o0o0oOoO
0o0o0oOoo
00o0o0oo00
0o0o0oo0
0o0o0oo0O
0o0o0oo0o
0o0o0oo
0o0o0ooO0
0o0o0ooO
0o0o0ooOO
0o0o0ooOo
0o0o0ooo0
00o0o0ooo
0o0o0oooO
0o0o0oooo
0o0o
0o0oO0000
0ooooooO
0o0oO000
0o0oO000O
0o0oO000o
0o0oO00
00o0oO00O0
0o0oO00O
0o0oO00Oo
0o0oO00OO
0o0oO00o0
0o0oO00o
0o0oO00oO
0o0oO00oo
0o0oO0
0o0oO0O0
00o0oO0O
0o0oO0OO0
0o0oO0OO
0o0oO0OOO
0o0oO0Oo
0o0oO0OoO
0o0oO0o00
0o0oO0o0
0o0oO0o0o
0o0oO0o0O
00o0oO0o
0o0oO0oO0
0o0oO0oO
0o0oO0oOO
0o0oO0oo0
0o0oO0oo
0o0oO0ooO
0o0oO0ooo
0o0oO
0o0oOO000
00o0oOO00
0o0oOO00O
0o0oOO00o
0o0oOO0
0o0oOO0O0
0o0oOO0O
0o0oOo0oO
0o0oOo0oo
0o0oOO0OO
0o0oOO0o0
00o0oOO0o
0o0oOO0oO
0o0oOO0oo
0o0oOOO00
0o0oOOO0
0o0oOOO0O
0o0oOOO
0o0oOOOO0
0o0oOOOO
0o0oOOOOO
00o0oOOOOo
0o0oOOOo0
0o0oOOOo
0o0oOOOoO
0o0oOOo00
0o0oOOo0
0o0oOOo0O
0o0oOOo0o
0o0oOOoO0
0o0oOOoO
0o0oOoO00
o0oOOoOO
o0oOooOO
o0oOOoOo
o0oOOoo0
o0oOOoo
o0oOOooO
o0oOOooo
o0oOo00
o0oOo00O
0o0oOo00o
o0oOo0
o0oOo0O
o0oOo0OO
o0oOo0Oo
o0oOo0o
o0oOo
o0oOoO0
o0oOoO0o
o0oOoOo0
0o0oOoO0O
o0oOoO
o0oOoOO0
o0oOoOO
o0oOoOOO
o0oOoOOo
o0oOoOo
o0oOoOoO
o0oOoo0
o0oOoo0O
0o0oOoo0o
o0oOoo
o0oOooO
o0oOooOo
o0oOooo0
o0oOooo
o0oOoooO
o0oOoooo
o0oo0000
o0oo000O
0o0oo000o
o0oo00O0
o0oo00O
o0oo00OO
o0oo00Oo
o0oo00o0
o0oo00o
o0oo00oO
o0oo00oo
o0oo0
0o0oo0O00
o0oo0O0
o0oo0O0O
o0oo0O0o
o0oo0o
o0oo0O
o0oo0OO0
o0oo0OO
o0oo0OOO
o0oo0OOo
0o0oo0Oo0
o0oo0Oo
o0oo0OoO
o0oo0Ooo
o0oo0o00
o0oo0o0
o0oo0o0O
o0oo0o0o
o0oo0oO0
o0oo0oO
0o0oo0oOO
o0oo0oOo
o0oo0oo0
o0oo0oo
o0oo0ooO
o0oo0ooo
o0ooO000
o0ooO00
o0ooO00O
o0ooO00o
0o0ooO0
o0ooO0O
o0ooO0OO
o0ooO0Oo
o0ooO0o0
o0ooO0o
o0ooO0oO
o0ooO0oo
o0ooOO0O
o0ooOO0o
00o0ooOOO
0o0ooOOoO
0o0ooOo00
0o0ooOo0
0o0ooOo0o
0o0ooOo0O
0o0ooOo
0o0ooOooO
0o0ooOoO0
0o0ooOoOo
0o0ooOoo0
o0ooOoo
o0ooOooo
o0ooo000
o0ooo00O
o0ooo00o
o0ooo0
o0ooo0O
o0ooo0o0
o0ooo0o
0o0ooo0oO
o0ooo0oo
o0oooO00
o0oooO0
o0oooO0o
o0oooO0O
o0oooO
o0oooOO0
o0oooOO
o0oooOOo
0o0oooOOO
o0oooOo0
o0oooOo
o0oooOoO
o0oooo00
o0oooo0
o0oooo0O
o0oooo0o
o0oooo
o0ooooO0
0o0ooooO
o0ooooOo
o0ooooo0
ooo0Oo0
o0ooooo
o0oooooO
o0oooooo
o
oO00000
oO00000o
0oO0000
oO0000O
oO0000Oo
oO0000o0
oO0000o
oO0000oO
oO0000oo
oO000
oO000O0
oO000O0O
0oO0Ooo00
oO0Ooooo
oO000O0o
oO0o0o
oO000O
oO0OoOO0
oO0OOooo
oO0OoOOO
oO0OOoO0
oO0Oo0oo
0oO000OOO
oO0OO0oo
oO0OOooO
oO000OOo
oO0OoOoO
ooOOOOoo
oO0OOo0o
oO000Oo0
oO000Oo
oO0OO0OO
0oO0OoOoo
oO0OOoo0
oO000OoO
oO0OOo0O
oO000Ooo
oO000o00
oO000o0
ooOOOOOo
oO000o0o
oO000o
0oO0Oo0OO
oO000oO0
oO000oO
oO0Ooo0O
oO000oOO
oO0Ooo0o
oO000oOo
oO000oo0
oO000oo
oO0Oo0Oo
00oO000ooO
0oO0Oo0O0
0oO000ooo
0oO00
0oO00O00
0oO0O0o0o
0ooOOoooO
0oO00O00o
0oO00O0
0oO00O0O
0oO00O0Oo
oO0O0OoO
ooOOooOo
oO00O0o0
oO00O0o
oOo00OO0
oO00O0oO
oO0O0OOo
oO00O0oo
oO00O
0oO00OO0
ooOOoOoO
oO0O0OOO
oO00OO0O
oO00OO
oO00OOO
oO00OOOo
oOo00Oo0
ooOOoOOo
oO00OOo0
0oO00OOo
oO0oOOO0
oO00OOoO
oOOoOoOO
oO00OOoo
oO00Oo00
oO00Oo0
oO00Oo0O
oO00Oo0o
oO00Oo
0oO00oOOO
oO00OoO0
oO00OoO
oOOoOOO0
oO00OoOO
oO0oOOOo
oO00OoOo
oO00Ooo0
oO00Ooo
oO00OooO
0oO00Oooo
oO0OOoOo
oO00o000
oO00o00
oO0OooOO
oO0OoOo0
oO0OOO00
oO00o00O
oO0OOoOO
oO00o00o
0ooOO0O
ooOOo0
oO00o0
oO0OOOoo
oO00o0O0
oO00o0O
oO0OOOOo
oO00o0OO
oO0OOOoO
oO00o0Oo
0oO0OoO0O
oO0OOO0o
oO00o0o0
oO00o0o
oO0OOOo0
oO00o0oO
oO0OOO0O
oO00o0oo
oO00o
oO0OO0oO
0oO0OO000
oOo00o0o
oO00oO00
oO00oO0
oO0OoooO
oOo00ooO
oO00oO0O
oO0OooOo
oOo00ooo
oO00oO0o
0oO00oO
oO00oOO0
oO00oOO
oO0OO00o
oO00oOOo
oOo00oO0
oO00oOo0
oO00oOo
oO0OO00O
ooOOOOoO
00oOo00oOO
0oO00oOoO
0oOo00oOo
0oO00oOoo
0oO0OOOOO
0oO00oo00
0oO00oo0
0oO0OO0o0
0oO00oo0O
0oO00oo0o
0oO00oo
oO00ooO0
oO00ooO
oOo000Oo
oO00ooOO
oO00ooOo
oOo0000O
oO00ooo0
oO00ooo
oOo000oo
0oO00oooO
oOo000o0
oO00oooo
oO0
oO0O000
oO0Oo00O
ooOOoOo0
oO0O000o
oO0O00
oO0O00O
0oO0O00Oo
oO0O00o0
oO0O00o
oO0O00oO
oO0O00oo
oOoo0
oO0O0
oO0O0O00
oO0O0O0
ooOOOoO0
0oO0O0O0O
ooOOOoo0
oO0O0O0o
oO0O0o
oO0O0O
oO0O0OO
oOo0oooO
ooOOOoOo
oO0O0Oo0
oO0O0Oo
0oO0O0o0
oO0O0o0O
oO0O0oO0
oO0O0oO
oOo0o0oO
ooOOO0Oo
oO0O0oOO
oO0O0oOo
oOo00OOo
oO0O0oo0
0oO0O0oo
oOo00OOO
ooOOO00O
oO0O0ooO
oO0O0ooo
ooo0o
oO0O
oO0OO00
oO0OO0O
oO0OO0Oo
0oO0OO0o
oO0OOO0
oO0OOO
oO0OooO0
oO0OOOO0
oO0OOOO
oO0OOOo
oO0OOo0
oO0OOo
oO0OOoO
0oO0OOoo
oO0Oo00
oO0Oo0
oO0Oo0O
oO0Oo0o0
oO0Oo0o
oO0OoO00
oO0OoO0
oO0OoO
oO0OoOO
0oO0OoOo
oO0Ooo0
oO0Ooo
oO0OooO
oO0Oooo
oO0o0000
oO0o000
oO0o000O
ooOOoOoo
oO0o000o
00oO0o00
0oO0o0oo0
0oO0o00O0
0oO0o00O
0oO0o00OO
0oO0o00Oo
0oO0o00o0
0oO0o00o
0oO0o00oO
0oO0o00oo
0oO0o0
oO0o0O00
oO0o0O0
oO0o0O0O
oO0o0O0o
oO0o0O
oO0o0OO0
oO0o0OO
oO0o0OOO
oO0o0OOo
0oO0o0Oo0
oO0o0Oo
oO0o0OoO
oO0o0Ooo
oO0o0o00
oO0o0o0
oO0o0o0O
oO0o0o0o
oO0o0oO0
oO0o0oO
0oO0o0oOO
oO0o0oOo
oO0o0oo
oO0o0ooO
oO0o0ooo
oO0o
oO0oO000
oO0oO00
oOo00O0O
ooOOoOO0
0oO0oO00O
oO0oO00o
oO0oO0
oO0oO0O0
oO0oO0O
oO0oO0OO
oOo00OoO
ooOOoOOO
oO0oO0Oo
oO0oO0o0
0oO0oO0o
oO0oO0oO
oO0oO0oo
oOooo
oO0oO
oO0oOoOO
oO0oOO00
oO0oOO0
oO0oOO0O
oO0oOO0o
0oO0oOO
oO0oOOO
oO0oOOOO
oO0oOOo0
oO0oOOo
oO0oOOoO
oO0oOOoo
oO0oOo00
oO0oOo0
oO0oOo0O
0oO0oOo0o
oO0oOo
oO0oOoO0
oO0oOoO
oO0oOooo
oO0oOoOo
oO0oOoo0
oO0oOoo
oO0oOooO
oO0oo000
0oO0oo00
oO0oo00O
oO0oo00o
oO0oo0
oO0oo0O0
oO0oo0O
oO0oo0OO
oO0oo0Oo
oO0oo0o0
oO0oo0o
0oO0oo0oO
oO0oo0oo
oO0oo
oO0ooO00
oO0ooO0
oO0ooO0O
oO0ooO0o
oO0ooO
oO0ooOO0
oO0ooOO
00oO0ooOOO
0oO0ooOOo
0oO0ooOo0
0oO0ooOo
0oO0ooOoO
0oO0ooOoo
0oO0ooo00
0oO0ooo0
0oO0ooo0O
0oO0ooo0o
0oO0ooo
oOo00o0O
oO0oooO0
oO0oooO
oO0oooOO
oOo00oo0
oO0oooOo
oOo000OO
oO0oooo0
oO0oooo
0oO0ooooO
oOo00o00
oO0ooooo
oO
oOO00000
oOO0000
oOO0000O
oOO0000o
oOO000
oOO000O0
0oOO000O
oOO000OO
oOO000Oo
oOO000o0
oOO000o
oOO000oO
oOO000oo
oOO00
oOO00O00
oOO00O0
0ooooOO00
oOO00O0O
oOO00O0o
oOO00OO0
oOO00OO
oOO00OOO
oOO00OOo
oOO00Oo0
oOO00Oo
ooooO000
0oOO00OoO
ooooOoOo
oOO00Ooo
oOO00o00
oOO00o0
oOO00ooo
oOO00o0O
oOO00o0o
oOO00o
oOO00oO0
0oOO00oO
ooooOOo0
ooooO0oo
oOO00oOO
oOO00oOo
oOO00oo
oOO00ooO
oOO0
ooooOoOO
oOO0O000
0oOO0O00
oOO0O00O
oOO0O00o
oOO0O0
oOO0O0O0
oOO0O0O
oOO0O0OO
oOO0O0Oo
oOO0O0o0
oOO0O0o
0oOO0O0oO
oOO0O0oo
oOO0O
oOO0OO0
oOO0OO0O
oOO0OO0o
oOO0OO
oOO0OOO
oOO0OOOO
oOO0OOOo
0oOO0OOo0
oOO0OOo
oOO0OOoO
oOO0OOoo
oOO0Oo00
oOO0Oo0
oOO0Oo0O
oOO0Oo0o
oOO0Oo
oOO0OoO0
00oOO0OoO
0oOO0OoOO
0oOO0OoOo
0oOO0Ooo0
0oOO0Ooo
0oOO0OooO
0oOO0Oooo
0oOO0o00
0ooooOOoo
0oOO0o00o
0oOO0o0
oOO0o0O0
oOO0o0O
oOO0o0OO
oOO0o0Oo
ooooO0O0
oOO0o0o0
oOO0o0o
oOO0o0oO
oOO0o0oo
0oOO0o
oOO0oO00
oOO0oO0
oOO0oO0O
oOO0oO0o
oOO0oO
oOO0oOO0
oOO0oOO
oOO0oOOO
oOO0oOOo
0oOO0oOo0
oOO0oOo
oOO0oOoO
oOO0oOoo
oOO0oo00
oOO0oo0
oOO0oo0O
oOO0oo0o
oOO0oo
oOO0ooO0
0oOO0ooO
oOO0ooOO
oOO0ooOo
oOO0ooo0
oOO0ooo
oOO0oooO
oOO0oooo
oOO
oOOO000
oOOO000o
0oOOO0O
oOOOoO
oOOO00
oOOO00O
oOOO00Oo
oOOO00o0
oOOO00o
oOOO00oO
oOOO00oo
oOOO0
0oOOO0oOO
oOOO0O0
oOOO0O0o
oOOO0OO0
oOOO0OO
oOOO0OOO
oOOO0OOo
oOOO0Oo
oOOO0OoO
oOOO0Ooo
0oOOO0o00
oOOO0o0
oOOO0o0O
oOOO0o0o
oOOOOO
oOOO0o
oOOO0oO0
oOOO0oO
oOOO0ooo
oOOO0ooO
0oOOO0oOo
oOOO0oo0
oOOO0oo
oOOO
oOOOO0OO
oOOOO000
oOOOO00
oOOOoo00
oOOOO00O
oOOOO00o
0oOOOO0
oOOOO0O0
oOOOO0O
oOOOO0Oo
oOOOO0o0
oOOOO0o
oOOOO0oO
oOOOO0oo
oOo0o
oOOOO
00oOOOOO00
0oOOOOO0
0oOOOOO0O
0oOOOOO0o
0oOOOOOO0
0oOOOOOO
0oOOOOOOO
0oOOOOOOo
0oOOOOOo0
0oOOOOOo
0oOOOOOoO
oOOOOOoo
oOOOOo00
oOOOOo0
oOOOOo0O
oOOOOo0o
oOOOOo
oOOOOoO0
oOOOOoO
oOOOOoOO
0oOOOOoOo
oOOOOoo0
oOOOOoo
oOOOOooO
oOOOOooo
oOOOo000
oOOOo00
oOOOo00O
oOOOo00o
oOOOo0
0oOOOo0O0
oOOOo0O
oOOOo0OO
oOOOo0Oo
oOOOo0o0
oOOOo0o
oOOOo0oO
oOOOo0oo
oOOOo
oOOOoO00
0oOOOoO0
oOOOoO0O
oOOOoO0o
oOOOoOO0
oOOOoOO
oOOOoOOO
oOOOoOOo
oOOOoOo0
oOOOoOo
oOOOoOoO
0oOOOoOoo
oOOOoo0
oOOOoo0O
oOOOoo0o
oOOOoo
oOOOooO0
oOOOooO
oOOOooOO
oOOOooOo
oOOOooo0
0oOOOooo
oOOOoooO
oOOOoooo
oOOo0000
oOOo000
oOOo000O
oOOo000o
oOOo00
oOOo00O0
oOOo00O
0oOOo00OO
oOOo00Oo
oOOo00o0
oOOo00o
oOOo00oO
oOOo00oo
oOOo0
oOOo0O00
oOOo0O0
oOOo0O0O
0oOOo0O0o
oOOo0O
oOOo0OO0
oOOo0OO
oOOo0OOO
oOOo0OOo
oOOo0Oo0
oOOo0Oo
oOOo0OoO
oOOo0Ooo
0oOOo0o00
oOOo0o0
oOOo0o0O
oOOo0o0o
oOOo0o
oOOo0oO0
oOOo0oO
oOOo0oOO
oOOo0oOo
oOOo0oo0
00oOOo0oo
0oOOo0ooO
0oOOo0ooo
0oOOo
0oOOoO000
0oOOoO00
0oOOoO00O
0oOOoO00o
0oOOoO0
0oooO0oOO
0oOOoO0O0
oOOoO0O
oOOoO0OO
oOOoO0Oo
oOOoO0o
oOOoO0oO
oOOoO0oo
oOOoO
oOOoOO0o
oOOoOO00
0oOOoOO0
oOOoOO0O
oOOoOOO
oOOoOOOO
oOOoOOOo
oOOoOOo0
oOOoOOo
oOOoOOoO
oOOoOOoo
oOOoOo00
0oOOoOo0
oOOoOo0O
oOOoOo0o
oOOoOo
oOOoOoO0
oOOoOoO
oOOoOoOo
oOOoOoo0
oOOoOoo
oOOoOooO
0oOOoOooo
oOOoo000
oOOoo00
oOOoo00O
oOOoo00o
oOOoo0
oOOoo0O0
oOOoo0O
oOOoo0OO
oOOoo0Oo
0oOOoo0o0
oOOoo0o
oOOoo0oO
oOOoo0oo
oOOoo
oOOooO00
oOOooO0
oOOooO0O
oOOooO0o
oOOooO
0oOOooOO0
oOOooOO
oOOooOOO
oOOooOOo
oOOooOo0
oOOooOo
oOOooOoO
oOOooOoo
oOOooo00
oOOooo0
0oOOooo0O
oOOooo0o
oOOooo
oOOoooO0
oOOoooO
oOOoooOO
oOOoooOo
oOOoooo0
oOOoooo
oOOooooO
0oOOooooo
oOo0000
oOo000
oOo000O
oOo000o
oOo00O0
oOo00O
oOo00OO
oOo0o00
oOo00Oo
0oOo00o0
oOo00o
oOo00oO
oOo00oo
oOo0
oOo0O000
oOo0O00
oOo0O00O
oOo0oO0o
oOo0O00o
000oOo0oo
00oOo0O0
00oOo0O0O0
00oOo0O0O
00oOo0O0OO
00oOo0O0Oo
00oOo0O0o0
00oOo0O0o
00oOo0O0oO
00oOo0O0oo
00oOo0O
0oOo0OO00
0oOoo00o
0oOo0OO0
0oOo0OO0O
0oOo0OO0o
0oOo0OO
0oOo0OOO0
0oOo0OOO
0oOo0OOOO
00oOo0OOOo
0oOo0OOo0
0oOo0OOo
0oOo0OOoO
0oOo0OOoo
0oOo0Oo00
0oOo0Oo0
0oOo0Oo0O
0oOo0Oo0o
0oOo0Oo
00oOo0OoO0
0oOo0OoO
0oOo0OoOO
0oOo0OoOo
0oOo0Ooo0
0oOo0Ooo
0oOo0OooO
0oOo0Oooo
0oOo0o000
0oOo0o00O
00oOo0o00o
0oOo0o0
0oOo0o0O
0oOo0o0OO
0oOo0o0Oo
0oOo0o0o0
0oOo0o0o
0oOo0oO00
0oOo0oO0
0oOo0oO0O
00oOo0oO
0oOo0oOO0
0oOo0oOO
0oOo0oOOO
0oOo0oOOo
0oOo0oOo0
0oOo0oOo
0oOo0oOoO
0oOo0oOoo
0oOo0oo00
00oOo0oo0
0oOo0oo0O
0oOo0ooO0
0oOo0ooO
0oOo0ooOO
0oOo0ooOo
0oOo0ooo0
0oOo0ooo
0oOo
0oOooOOoO
00oOoO0000
0oOoO000
0oOoO000O
0oOoO000o
0oOoO00
0oOoO00O0
0oOoO00O
0oOoO00OO
0oOoO00Oo
0oOoO00o0
00oOoO00o
0oOoO00oO
0oOoO00oo
0oOoO0
0oOooOo0O
0oOoO0O00
0oOoO0O0
0oOoO0O0O
0oOoO0O0o
0oOoO0o
00oOoO0O
0oOoO0OO0
0oOoO0OO
0oOoO0OOO
0oOoO0OOo
0oOoO0Oo0
0oOoO0Oo
0oOoO0OoO
0oOoO0Ooo
0oOooOo00
00oOoO0o00
0oOoO0o0
0oOoO0o0O
0oOoOoOOO
0oOoO0o0o
0oOoO0oO0
0oOoO0oO
0oOoO0oOO
0oOoO0oOo
0oOooOo0o
0oOoO0oo0
oOoO0oo
oOoO0ooO
oOoO0ooo
oOoO
oOoOO000
oOoOO00
oOoOO00O
oOoOO00o
oOoOO0
0oOoOO0O0
oOoOO0O
oOoOOo0O
oOoOO0OO
oOoOO0Oo
oOoOO0o0
oOoOO0o
oOoOO0oO
oOooOOOO
oOoOO0oo
0oOoOO
oOoOOO00
oOoOOO0
oOoOOO0O
oOoOOO0o
oOoOOO
oOoOOOO0
oOoOOOO
oOoOOOOO
oOoOOOOo
0oOoOOOo0
oOoOOOo
oOoOOOoO
oOooOooO
oOoOOOoo
oOoOOo00
oOoOOo0
oOoOOo0o
oOoOOo
oOoOOoO0
0oOoOOoO
oOoOOoOO
oOoOOoOo
oOoOOoo0
oOoOOoo
oOoOOooO
oOoOOooo
oOoOo000
oOoOo00
oOoOo00O
0oOoOo00o
oOoOo0
oOoOoo0O
oOoOo0O0
oOoOo0O
ooOOO0oo
oOooo0Oo
oOooo0oo
oOoOo0OO
ooOOO0o0
0oOoOo0Oo
oOoOo0o0
oOoOo0o
oOoOo0oO
oOoOo0oo
oOoOo
ooOOOooo
oOoOoO00
oOoOoO0
oOoOoO0O
0ooOOOooO
oOooooOO
oOoOoO0o
oOoOoO
oOoOoOO0
oOoOoOO
oOoOoOOo
oOoOoOo0
oOoOoOo
oOooOOoo
0oOoOoOoO
oOoOoOoo
ooOOO0oO
oOooo0oO
oOoOoo00
oOoOoo0
ooOOO0O0
oOooo0O0
oOoOoo0o
oOoOoo
00ooOOOo0o
0oOoooooo
0oOoOooO0
0oOoOooO
0oOoOooOO
0ooOOOo0O
0oOoooooO
0oOoOooOo
0oOoOooo0
0oOoOooo
0ooOOOo00
oOooooo0
oOoOoooO
oOoOoooo
oOoo0000
oOoo000
oOoo000O
oOoo000o
oOoo00
oOoo00O0
0oOoo00O
oOoo00OO
oOoo00Oo
oOoo00o0
oOoo00oO
oOoo00oo
oOoo0Oo0
oOoo0O00
oOoo0O0
oOoo0O0O
0oOoo0O0o
oOoo0O
oOoo0OO0
oOoo0oO
oOooo00
oOoo0OO
oOoo0OOO
oOoo0OOo
oOoo0Oo
oOoo0OoO
0oOoo0Ooo
oOoo0o00
oOoo0o0
oOoo0o0O
oOoo0o0o
oOoo0o
oOoo0oO0
oOoo0oOO
oOoo0oOo
oOoo0oo0
0oOoo0oo
oOoo0ooO
oOoo0ooo
oOoo
oOooO000
oOooO00
oOooO00O
oOooO00o
oOooO0
oOooO0O0
0oOooO0O
oOooO0OO
oOooO0Oo
oOooO0o0
oOooO0o
oOooO0oO
oOooO0oo
oOooO
oOooOO00
oOooOO0
0oOooOOo0
oOooOO0O
oOooOO0o
oOooOO
oOooOOO0
oOooOOO
oOooOOOo
oOooOOo
oOooOo0
oOooOo
0oOooOoO0
oOooOoO
oOooOoOO
oOooOoOo
oOooOoo0
oOooOoo
oOooOooo
oOooo000
oOooo00O
oOooo00o
0oOoooO
oOooo0
oOooo0O
oOooo0OO
oOooo0o0
oOoooO00
oOoooO0
oOoooO0O
oOoooO0o
oOoooOO0
00oOoooOO
0oOoooOOO
0oOoooOOo
0oOoooOo0
0oOoooOo
0oOoooOoO
0oOoooOoo
0oOoooo00
0oOoooo0
0oOoooo0O
0oOoooo0o
oOoooo
oOooooO0
oOooooO
oOooooOo
oOooooo
oo000000
oo00000
oo00000O
oo00000o
0oo0000
oo0000O0
oo0000O
oo0000OO
oo0000Oo
oo0000o0
oo0000o
oo0000oO
oo0000oo
oo000
0oo000O00
oo000O0
oo000O0O
oo000O0o
oo000O
oo000OO0
oo0OOOO
oo000OO
oo000OOO
oo000OOo
0oo000Oo0
oo000Oo
oo000OoO
oo000Ooo
oo000o00
oo000o0
oo000o0O
oo000o0o
oo000oO0
oo000oO
0oo000oOO
oo000oOo
oo000oo0
oo000oo
oo000ooO
oo00
oo00O00o
oo00O000
oo00O00
oo00O00O
0oo00O0
oo00O0O0
oo00O0O
oo00Oo0O
oo00O0OO
oo00O0Oo
oo00O0o0
oo00O0o
oo00O0oO
oo00O0oo
0oo00O
oo00OO00
oo00OO0
oo00OO0O
oo00OO0o
oo00OO
oo00OOO0
oo00OOO
oo00OOOO
oo00OOOo
0oo00OOo0
oo00OOo
oo00OOoO
oo00OOoo
oo00Oo00
oo00Oo0
oo00Oo0o
oo00Oo
oo00OoO0
oo00OoO
0oo00OoOO
oo00OoOo
oo00Ooo0
oo00Ooo
oo00OooO
oo00Oooo
oo00o000
oo00o00
oo00o0o0
oo00o00O
00oo00o00o
0oo00o0
0oo00o0oo
0oo00ooOO
0oo00o0O0
0oo00o0O
0oo00o0OO
0oo00o0Oo
0oo00o0o
0oo00o0oO
0oo00oO00
oo00oO0
oo00oO0O
oo00oO0o
oo00oOoO
oo00oOO0
oo00oOo
oo00oOO
oo00oOOO
oo00oOOo
0oo00oOo0
oo00oOoo
oo00oo00
oo00oo0
oo00oo0O
oo00oo0o
oo00oo
oo00ooO0
oo00ooO
oo00ooOo
0oo00ooo0
oo00ooo
oo00oooO
oo00oooo
oo0
oo0O0000
oo0O000
oo0O000O
oo0O000o
oo0O00
0oo0oOOOO
oo0O00O0
oo0O00O
oo0O00OO
oo0O00Oo
oo0O00o0
oo0O00o
oo0O00oO
oo0O00oo
oo0O0
0oo0O0O00
oo0O0O0
oo0O0O0O
oo0O0O0o
oo0O0O
oo0O0OO0
oo0O0OO
oo0O0OOO
oo0O0OOo
oo0O0Oo0
0oo0O0Oo
oo0O0OoO
oo0O0Ooo
oo0O0o00
oo0O0o0
oo0O0o0O
oo0O0o0o
oo0O0o
oo0O0oO0
ooo0OoO
0oo0O0oO
oo0oOOoO
oo0O0oOO
oo0O0oOo
oo0O0oo0
oo0O0oo
oo0O0ooO
oo0O0ooo
oo0OoOO0
oo0OO00o
0oo0OO00O
oo0OO000
oo0OO00
oo0Oo0
oo0Ooo
oo0OoO
oo0OO0
oo0OOoOO
oo0OO0Oo
oo0OOo0O
0oo0OOooO
oo0OO0O0
oo0OO0O
oo0OO0OO
oo0OO0o0
oo0OO0o
oo0OO0oO
oo0OO0oo
oo0OO
oo0OOO00
00oo0oOoo
0oo0OOO0
0oo0OOO0O
0ooo000O0
0oo0OOO0o
0oo0OOO
0ooo000o0
0oo0OOOO0
0oo0OOOOO
0oo0OOOOo
0oo0OOOo0
oo0OOOo
oo0OOOoO
ooo0000O
ooo00000
oo0OOOoo
oo0OOo00
oo0OOo0
oo0OOo0o
oo0OOo
0oo0OOoO0
oo0OOoO
oo0OOoOo
oo0OOoo0
oo0OOooo
oo0Oo000
oo0Oo00
oo0Oo00O
oo0Oo00o
oo0Oo0O0
0oo0Oo0O
oo0Oo0OO
oo0Oo0Oo
oo0Oo0o0
oo0Oo0o
oo0Oo0oO
oo0Oo0oo
oo0Oo
oo0OoO00
oo0OoO0
0oo0OoO0O
oo0OoO0o
oo0OoOO
oo0OoOOO
oo0OoOOo
oo0OoOo0
oo0OoOo
oo0OoOoO
oo0OoOoo
oo0Ooo00
0oo0Ooo0
oo0Ooo0O
oo0Ooo0o
oo0OooO
oo0OooOO
oo0OooOo
oo0Oooo0
oo0Oooo
oo0OoooO
0oo0Ooooo
oo0o0000
oo0o000
oo0o000O
oo0o000o
oo0o00
oo0o00O0
oo0o00o
oo0o00O
oo0o00Oo
0oo0o00oO
oo0o00OO
oo0o00o0
oo0o00oo
oo0o0
oo0o0O00
oo0o0O0o
oo0o0o
oo0o0O
oo0o0OO0
0oo0o0OO
oo0o0OOO
oo0o0OOo
oo0o0Oo0
oo0o0OoO
oo0o0Ooo
oo0o0o00
oo0o0o0
oo0o0o0O
oo0o0o0o
0oo0o0oO0
oo0o0oO
oo0o0oOO
oo0o0oOo
oo0o0oo0
oo0o0oo
oo0o0ooO
oo0o0ooo
oo0o
oo0oO000
00oo0oO00
0oo0oO0oO
0oo0oO00O
0oo0oO00o
0oo0oO0O0
0oo0oO0O
0oo0oO0OO
0oo0oO0Oo
0oo0oO0o0
0oo0oO0o
0oo0oO0oo
oo0oO
oo0oOO00
oo0oOO0O
oo0oOO0o
oo0oOO
oo0oOOO0
oo0oOOO
oo0oOOOo
oo0oOOo0
0oo0oOOoo
oo0oOo00
oo0oOo0
oo0oOo0O
oo0oOo0o
oo0oOo
oo0oOoO0
oo0oOoOO
oo0oOoOo
oo0oOoo0
0oo0oOooO
oo0oOooo
oo0oo000
ooo0oOO
oooOooO
oo0oo00
oo0oo00O
oo0oo00o
oo0oo0
oo0oo0O0
0oo0oo0O
oo0oo0OO
oo0oo0Oo
oo0oo0o0
oo0oo0o
oo0oo0oO
oo0oo0oo
oo0oo
oo0ooO00
oo0ooO0
0oo0ooO0O
oo0ooO0o
oo0ooOO0
oo0ooOO
ooo0O0oo
ooo0oooO
oo0ooOOO
oo0ooOOo
oo0ooOo0
oo0ooOo
0oo0ooOoO
oo0ooOoo
oo0ooo00
oo0ooo0
oo0ooo0o
oo0ooo0O
oo0ooo
oo0oooOO
oo0oooO0
oo0oooO
0oo0oooOo
oo0oooo0
oo0oooo
oo0ooooO
oo0ooooo
oo
ooO00000
oooooOo
ooO0000
ooO0000O
0ooOooOOO
ooO0000o
ooO0oo
ooO000
ooO000O0
ooO000O
ooO000OO
ooO000Oo
ooO000o0
ooO000o
0ooO000oO
ooO000oo
ooO00
ooO0OOoo
ooOo000o
ooOo00O0
ooO00O00
ooO00O0O
ooO0OOoO
ooO00O0o
00ooO00O
0ooOo00o0
0ooO00OO0
0ooO00OO
0ooO0OOOO
0ooO00OOO
0ooO00OOo
0ooO00Oo0
0ooO00Oo
0ooO00OoO
0ooOo00OO
ooO00Ooo
ooO00o00
ooO00o0
ooO00o0O
ooO00o0o
ooO00o
ooO00oO0
ooO00oO
ooO00oOO
0ooO00oOo
ooO00oo0
ooO00oo
ooO00ooO
ooO00ooo
ooO0
ooO0O000
oooo000
ooO0O00
ooO0O00O
0ooO0O00o
ooO0O0
ooO0O0O0
ooO0O0O
ooO0O0OO
ooO0O0Oo
ooO0O0o0
ooO0OOO
ooO0O0o
ooO0O0oO
0ooO0O0oo
ooO0O
ooOo000O
ooO0OO00
ooO0OO0
ooO0OO0O
ooO0OO0o
ooO0OO
ooO0OOO0
ooO0OOOo
0ooO0OOo0
ooO0OOo
ooO0Oo00
ooo0oOo
ooO0Oo0
ooO0Oo0O
ooO0Oo0o
ooO0Oo
ooO0OoO0
ooO0OoO
0ooO0OoOO
ooO0OoOo
ooO0Ooo0
ooO0OooO
ooO0Oooo
ooO0o000
ooO0o00
ooO0o00O
ooO0o00o
ooO0o0
0ooO0o0O0
ooO0o0O
ooO0o0OO
ooO0o0Oo
ooO0o0o0
ooO0o0o
ooO0o0oO
ooO0o0oo
ooO0o
ooO0oO00
0ooO0oO0
ooO0oO0O
ooOo00Oo
ooO0oO0o
ooO0oO
ooO0oOO0
ooO0oOO
ooO0oOOO
ooO0oOOo
ooO0oOo0
0ooo0OOo
ooO0oOo
ooO0oOoO
ooO0oOoo
ooO0oo00
ooO0oo0
ooO0oo0O
ooO0oo0o
ooO0ooO0
ooO0ooO
00ooO0ooOO
0ooO0ooOo
0ooO0ooo0
0ooO0ooo
0ooO0oooO
0ooO0oooo
0ooo
0ooO
0ooOO0000
0ooOO000
0ooOO000O
ooOO000o
ooOO00
ooOO00O0
ooOO00O
ooOO00OO
ooOO00Oo
ooOO00o0
ooOO00o
ooOO00oO
0ooOO00oo
ooOO0
ooOO0O00
ooOO0O0
ooOO0O0O
ooOO0O0o
ooOO0OO0
ooOO0OO
ooOO0OOO
ooOOo0OO
0ooOO0OOo
ooOO0Oo0
ooOO0Oo
ooOO0OoO
ooOO0Ooo
ooOO0o00
ooOO0o0
ooOO0o0O
ooOO0o0o
ooOO0o
0ooOO0oO0
ooOO0oO
ooOO0oOO
ooOO0oOo
ooOO0oo0
ooOO0oo
ooOO0ooO
ooOO0ooo
ooOOO00
ooOOoO
0ooOOO0
ooOOO0O
ooOOO0o
ooOOO
ooOOOO00
ooOOOO0
ooOOOO0O
ooOOOO0o
ooOOOO
ooOOOOO0
0ooOOOOO
ooOOOOOO
ooOOOOo
ooOOOo0
ooOOOo
ooOOOoO
ooOOOoo
ooOOo000
ooOOo00O
ooOOo00o
0ooOOo0O0
ooOOo0O
ooOOo0Oo
ooOOo0o0
ooOOo0o
ooOOo0oO
ooOOo0oo
ooOOo
ooOOoO0
ooOOoO0O
0ooOOoO0o
ooOOoOo
ooOOoo00
ooOOoo0
ooOOoo0O
ooOOoo0o
ooOOoo
ooOOooO0
ooOOooO
ooOOooOO
0ooOOooo0
ooOOooo
ooOOoooo
ooOo0000
ooOo000
ooOo00
ooOo00oO
ooOo00oo
ooOo0
ooOo0O00
00ooOo0o0
0ooOo0O0
0ooOo0oOo
0ooOo0O0O
0ooOo0O0o
0ooOo0O
0ooOo0OO0
0ooOo0OO
0ooOoOo0o
0ooOooOOo
0ooOo0OOO
ooOo0OOo
ooOo0Oo0
ooOo0Oo
ooOo0OoO
ooOo0Ooo
ooOo0o00
ooOo0o0O
ooOo0o0o
ooOo0o
0ooOo0oO0
ooOo0oO
ooOo0oOO
ooOo0oo0
ooOo0oo
ooOo0ooO
ooOo0ooo
ooOoO000
ooOoO00
ooOoO00O
0ooOoO00o
ooOoO0
ooOoO0O0
ooOoO0O
ooOoO0OO
ooOoO0Oo
ooOoO0o0
ooOoO0o
ooOoO0oO
ooOoO0oo
0ooOoO
ooOoOoOO
ooOoOO00
ooOoOO0
ooOoOOOo
ooOoOO0O
ooOoOO0o
ooOoOO
ooOoOOO0
ooOoOOO
0ooOoOOOO
ooOoOOo0
ooOoOOo
ooOoOOoO
ooOoOOoo
ooOoOo00
ooOoOo0
ooOoOo0O
ooOoOo
ooOoOoO0
0ooOoOoO
ooOoOoOo
ooOoOoo0
ooOoOoo
ooOoOooO
ooOoOooo
ooOoo000
ooOoo00
ooOooo0o
ooOoo00O
0ooOoo00o
ooOoo0
ooOoo0O0
ooOoo0O
ooOoo0OO
ooOoo0Oo
ooOoo0o0
ooOoo0o
ooOoo0oo
ooOoo0oO
0ooooO
ooOoo
ooOooO00
ooOooO0
ooOooO0O
ooOooO0o
ooOooo
ooOooO
ooOooOO0
ooOooOO
0ooOooOo0
ooOooOo
ooOooOoO
ooOooOoo
ooOooo00
ooOooo0
ooOooo0O
ooOoooO0
ooOoooO
ooOoooOO
000ooOoooOo
00ooOoooo0
00ooOoooo
00ooOooooO
00ooOooooo
00ooo0000
00ooo000oo
00ooo0000o
00ooo000
00ooo000O
00ooo000OO
0ooo000Oo
0ooo000o
0ooo000oO
0ooo00
0ooo00O00
0ooo00oO0
0ooo00O0O
0ooo00O0o
0ooo00O
00ooo00Oo0
0ooo00OO0
0ooo00OO
0ooo00OOO
0ooo00OOo
0ooo00Oo
0ooo00OoO
0ooo00Ooo
0ooo00o00
0ooo00o0
00ooo00o0O
0ooo00o0o
0ooo00o
0ooo00oO
0ooo00oOO
0ooo00oOo
0ooo00oo0
0ooo00oo
0ooo00ooO
0ooo00ooo
00ooo0
0ooo0O000
0ooo0O00
0ooo0O00O
0ooo0O00o
0ooo0oo
0ooo0o0
0ooo0oO
0ooo0O0
0ooo0O0O0
00ooo0O0O
0ooo0O0OO
0ooo0O0Oo
0ooo0O0o0
0ooo0O0o
0ooo0O0oO
0ooo0O
0ooo0OO00
0ooo0OO0
0ooo0OO0O
00ooo0OO0o
0ooo0Oo
0ooo0OO
0ooo0OOO0
0ooo0OOO
0oooo00oo
0ooo0OOoO
0ooo0OOOO
0ooo0OOOo
0ooo0OOo0
00ooo0OOoo
0ooo0Oo00
0ooo0Oo0O
0ooo0Oo0o
0ooo0OoO0
0ooo0OoOO
0ooo0OoOo
0ooo0Ooo0
0ooo0OooO
0ooo0Oooo
00ooo0o000
0ooo0o00
0ooo0o00O
0ooo0o00o
0ooo0o0OO
0ooo0o0O0
0ooo0o0O
0ooo0o0Oo
0ooo0o0o0
0ooo0o0o
00ooo0o0oO
0ooo0o0oo
0ooo0oO00
0ooo0oO0
0ooo0oO0O
0ooo0oO0o
0ooo0oOO0
0ooo0oOOO
0ooo0oOOo
0ooo0oOo0
00ooo0oOoO
0ooo0oOoo
0ooo0oo00
0ooo0oo0
0ooo0oo0O
0ooo0oo0o
0ooo0ooO0
0ooo0ooO
0ooo0ooOO
0ooo0ooOo
0ooo0ooo0
ooo0oooo
oooO0oo0
oooO0000
oooO000
oooO00o0
oooO000O
oooO0ooo
oooO000o
ooooo0
0oooooo
ooooOo
oooO00
oooO00O0
oooO00O
oooO00Oo
oooO00OO
oooO00o
ooooOOOo
ooooOOOO
0ooooOo00
oooO0oO0
oooO00oO
oooO00oo
oooO0
oooO0O00
oooO0O0
oooO0O0O
oooO0O0o
oooO0O
0oooOOo0O
oooO0OO0
oooO0OO
oooO0OOO
oooO0OOo
oooO0Oo0
oooO0Oo
oooO0OoO
oooO0Ooo
oooO0o00
0oooO0o0
oooO0o0O
oooO0o0o
oooooO
oooO0o
oooO0oO
oooO0oo
oooO0ooO
oooO
oooOooOO
0oooOO000
oooOO00
oooOO0o0
oooOO00O
oooOO00o
oooOO0O0
oooOO0O
oooOO0OO
oooOO0Oo
oooOO0o
0oooOO0oO
oooOO0oo
oooOO
oooOOO00
oooOOO0
oooOOO0O
oooOOO0o
oooOOO
oooOOOO0
oooOOOO
0oooOOOOO
oooOOOOo
oooOOOo0
oooOOOo
oooOOOoO
oooOOOoo
oooOOo00
oooOOo0
oooOOo0o
oooOOo
0oooOOoO0
oooOOoO
oooOOoOO
oooOOoOo
oooOOoo0
oooOOoo
oooOOooO
oooOOooo
oooOo000
oooOo00
00oooOo00O
0oooOo00o
0oooOo0
0oooOo0oo
0oooOo0O0
0oooOo0O
0oooOo0OO
0oooOo0Oo
0oooOo0o0
0oooOo0o
0oooOo0oO
oooOo
oooOoO00
oooOoO0
oooOoO0O
oooOoO0o
oooOoOOO
oooOoOO0
oooOoOO
oooOoOOo
0oooOoOo0
oooOoOo
oooOoOoO
oooOoOoo
oooOoo00
oooOoo0
oooOoo0O
oooOoo0o
oooOooO0
oooOooOo
0oooOooo0
oooOooo
oooOoooO
oooOoooo
oooo0000
oooo000O
oooo000o
oooo00
oooo00o0
oooo00O0
0oooo00O
oooo00OO
oooo00Oo
oooo00oO
oooo0
oooo0O00
oooo0O0
oooo0O0O
oooo0O0o
oooo0O
0oooo0OO0
oooo0OO
oooo0OOO
oooo0OOo
oooo0Oo0
oooo0Oo
oooo0OoO
oooo0Ooo
oooo0o00
oooo0o0
0oooo0o0O
oooo0o0o
oooo0o
oooo0oO0
oooo0oO
oooo0oOO
oooo0oOo
oooo0oo0
oooo0oo
oooo0ooO
0oooo0ooo
oooo
ooooO00
ooooOOoO
ooooO00O
ooooO00o
ooooO0
ooooO0O
ooooO0OO
ooooO0Oo
0ooooO0o0
ooooO0o
ooooO0oO
ooooOO0
ooooOO0o
ooooOO
ooooOoo0
ooooOOO0
ooooOOO
ooooOOo
0ooooOo0
ooooOo0O
ooooOo0o
ooooOoO0
ooooOoO
ooooOoo
ooooOooO
ooooOooo
ooooo000
ooooo00
00ooooo00O
0ooooo00o
0ooooo0O0
0ooooo0O
0ooooo0OO
0ooooo0Oo
0ooooo0o0
0ooooo0o
0ooooo0oO
0ooooo0oo
0ooooo
oooooO00
oooooO0
oooooOo0
oooooO0O
oooooO0o
oooooOO0
oooooOO
oooooOOO
oooooOOo
0oooooOoO
oooooOoo
oooooo00
oooooo0
oooooo0O
oooooo0o
ooooooO0
ooooooOO
ooooooOo
ooooooo0
0oooooooO
oooooooo
O
O0
O00
O000
O0000
O00000
O000000
O0000000
O000000O
O00000O
O00000O0
O00000OO
O0000O
O0000O0
O0000O00
O0000O0O
O0000OO
O0000OO0
O0000OOO
O000O
O000O0
O000O00
O000O000
O000O00O
O000O0O
O000O0O0
O000o0oO
O000Oo
O000OO0
O000oo00
O000OO0O
O000OOO
O000OOO0
O000OOOO
O00O
O00O0
O00O00
O00O000
O00O0000
O00O000O
O00O00O
O00O00O0
O00O00OO
O00O0O
O00O0O0
O00O0O00
O00O0O0O
O00O0oO
O00O0OO0
O00O0OOO
O00OO
O00OO0
O00OO00
O00Oo000
O00Oo00O
O00Oo0O
O00Oo0O0
O00oo0oO
O00OOO
O00OOO0
O00OoO00
O00ooo0O
O00OOOO
O00oOoO0
O00ooooO
O0O
O0O0
O0O00
O0O000
O0O0000
o0o00000
o0o0000O
O0O000O
o0O000O0
o0O000OO
O0O00O
O0O00O0
o0O00O00
o0O00O0O
O0O00oo
o0O00OO0
o0O00OOo
O0o0o
O0O0O0
O0O0O00
o0O0O000
o0O0O00o
O0O0O0O
o0O0O0O0
o0O0O0OO
O0O0Oo
O0o0oo0
o0O0OO00
o0O0OO0o
O0o0ooo
o0O0OOo0
o0O0OOOO
O0OO
O0OO0
O0OO00
O0OO000
o0OO0000
o0OO000O
o0Oo00O
o0OO00O0
o0OO00oO
O0OO0o
O0OO0O0
o0OO0O00
o0oO0O0O
O0OO0OO
o0oO0Oo0
o0oO0oOo
O0OOO
O0OOo0
o0OoO00
o0OOO000
o0OoO00o
O0OoO0o
o0ooo0O0
o0ooo0Oo
O0oOOO
O0OOOO0
o0ooOO00
o0OOOO0O
O0oOOOO
o0ooOOo0
o0ooooOO
OO
OO0
OO00
OO000
Oo0000
OO00000
oO000000
oO00000O
OO0000O
oO0000O0
oO0000OO
OO000O
OO000O0
oO000O00
oO000o0O
oO000OO
oO000OO0
oo000ooo
OO00o
OO00o0
OO00O00
oO00O000
oO00O00O
OO00O0O
oO00O0O0
oO00O0OO
Oo00oO
OO00OO0
oO00OO00
oO00OO0o
Oo00oOo
oO00OOO0
oO00OOOO
OO0O
OO0O0
OO0O00
OO0O000
oO0O0000
oO0O000O
OO0O00O
oO0O00O0
oO0O00OO
OO0o0O
OO0O0O0
oO0O0o00
oo0o0O0O
Oo0o0OO
oO0O0OO0
oO0O0Ooo
OO0Oo
OO0OO0
OO0OO00
oO0Oo000
oO0Oo00o
OO0OO0O
oO0OO0O0
oO0Oo0oO
Oo0OOO
OO0OOO0
oO0OOo00
oO0OoO0o
Oo0OoOO
oO0Oooo0
oO0OoOOo
OOo
OOO0
OoO00
OOO000
OOO0000
oOo00000
oOo0000o
OOO000O
oOo000O0
oOo000oO
OOO00O
ooo00O0
oOo00O00
oOo00O0o
OOO00OO
oOO00oo0
oOo00Ooo
OOo0O
OOO0O0
OOO0O00
oOO0o000
oOO0o00O
Ooo0o0O
oOo0o0O0
oOo0o0oo
OOO0OO
Ooo0Oo0
oOO0OO00
oOo0oo0o
ooo0ooo
oOO0OOO0
oOo0oooo
OOOO
OooO0
OOOO00
OOOO000
oOOO0000
oOOO000O
ooOo00o
oOOO00O0
oOOO00OO
OOOO0o
OOOO0O0
oOOO0O00
oOOO0O0O
Oooo0Oo
oOOO0Oo0
oooO0oOo
Ooooo
OOoOO0
OoOOO00
ooOOO000
ooOOO00o
OOOOO0O
oOOoO0o0
ooOOO0OO
oooOoo
OOOOOO0
ooOOoO00
ooooOO0O
ooOOoOO
ooOOOOo0
ooOOOoOO


================================================
FILE: app/proguard-log.pro
================================================
##########################################################################################################
# 作者:Sollyu
# 日期:2020-11-02
# 内容:发布版本移除日志,kotlin编译时带的而外信息,增强反调试难度
# 使用:proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-log.pro'
##########################################################################################################

##########################################################################################################
# 删除安卓日志
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** w(...);
    public static *** e(...);
}

##########################################################################################################
# 删除Kotlin编译时可能生成显示变量的方法
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
    public static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String);
    public static void checkFieldIsNotNull(java.lang.Object, java.lang.String);
    public static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
    public static void checkNotNull(java.lang.Object);
    public static void checkNotNull(java.lang.Object, java.lang.String);
    public static void checkNotNullExpressionValue(java.lang.Object, java.lang.String);
    public static void checkNotNullParameter(java.lang.Object, java.lang.String);
    public static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
    public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String);
    public static void throwUninitializedPropertyAccessException(java.lang.String);
}

##########################################################################################################
# 会暴露变量名称
-assumenosideeffects class java.util.Objects {
    public static java.lang.Object requireNonNull(java.lang.Object, java.lang.String);
}

##########################################################################################################
# 删除slf4j的日志输出
-assumenosideeffects interface org.slf4j.Logger {
    public void trace(...);
    public void debug(...);
    public void info(...);
    public void warn(...);
    public void error(...);

    public boolean isTraceEnabled(...);
    public boolean isDebugEnabled(...);
    public boolean isWarnEnabled(...);
}

-assumenosideeffects class org.slf4j.LoggerFactory {
    public static ** getLogger(...);
}


================================================
FILE: app/proguard-rules.pro
================================================
-keep class com.sevtinge.cemiuiler.XposedInit
-keep class com.sevtinge.cemiuiler.module.app.SystemFrameworkForCorePatch
-keep class moralnorm.**{*;}
-keep class com.sevtinge.cemiuiler.utils.Helpers{boolean isModuleActive;}
-keep class com.sevtinge.cemiuiler.utils.Helpers{int XposedVersion;}
-keep class * extends com.sevtinge.cemiuiler.module.base.BaseHook
-keep class com.sevtinge.cemiuiler.ui.HideAppActivity
-keep class * extends com.sevtinge.cemiuiler.ui.fragment.base.*
-keep class miui.drm.**{*;}
-dontwarn android.app.ActivityTaskManager$RootTaskInfo
-dontwarn miui.app.MiuiFreeFormManager$MiuiFreeFormStackInfo
-dontwarn com.android.internal.view.menu.MenuBuilder
-allowaccessmodification
-overloadaggressively


================================================
FILE: app/src/main/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission
        android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission
        android:name="android.permission.INTERACT_ACROSS_USERS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"
        android:maxSdkVersion="32" />
    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="32"
        tools:ignore="ScopedStorage" />
    <uses-permission
        android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission
        android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />
    <uses-permission
        android:name="android.permission.WRITE_SECURE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission
        android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"
        tools:ignore="ProtectedPermissions" />
    <uses-permission
        android:name="android.permission.MANAGE_USB"
        tools:ignore="ProtectedPermissions" />
    <uses-permission
        android:name="android.permission.SET_ANIMATION_SCALE"
        tools:ignore="ProtectedPermissions" />
    <uses-permission
        android:name="android.permission.MODIFY_DAY_NIGHT_MODE"
        tools:ignore="ProtectedPermissions" />

    <uses-permission android:name="miui.permission.READ_LOGS" />
    <uses-permission android:name="miui.permission.DUMP_CACHED_LOG" />
    <uses-permission android:name="com.miui.securitycenter.permission.SYSTEM_PERMISSION_DECLARE" />
    <uses-permission android:name="com.miui.securitycenter.permission.ACCESS_SECURITY_CENTER_PROVIDER" />

    <uses-permission
        android:name="${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
        tools:node="remove" />

    <permission
        android:name="${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
        tools:node="remove" />

    <application
        android:name=".Application"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:requestLegacyExternalStorage="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".ui.MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" />
            </intent-filter>
        </activity>

        <activity
            android:name=".ui.SubSettings"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name=".ui.ModuleSettingsActivity"
            android:label="@string/settings" />

        <activity-alias
            android:name=".ui.HideAppActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:targetActivity=".ui.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

        <activity android:name=".ui.SubPickerActivity" />

        <provider
            android:name=".provider.SharedPrefsProvider"
            android:authorities="com.sevtinge.cemiuiler.provider.sharedprefs"
            android:defaultToDeviceProtectedStorage="true"
            android:directBootAware="true"
            android:exported="true"
            android:grantUriPermissions="true" />

        <meta-data
            android:name="required_permissions"
            android:value=";" />

        <meta-data
            android:name="xposedmodule"
            android:value="true" />
        <meta-data
            android:name="xposedminversion"
            android:value="93" />
        <meta-data
            android:name="xposeddescription"
            android:value="@string/xposed_description" />
        <meta-data
            android:name="xposedsharedprefs"
            android:value="true" />
        <meta-data
            android:name="xposedscope"
            android:resource="@array/xposed_scope" />

    </application>

</manifest>

================================================
FILE: app/src/main/assets/xposed_init
================================================
com.sevtinge.cemiuiler.XposedInit

================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/Application.java
================================================
package com.sevtinge.cemiuiler;

import android.content.Context;
import android.os.Build;

import com.sevtinge.cemiuiler.utils.PrefsUtils;

public class Application extends android.app.Application {

    @Override
    protected void attachBaseContext(Context base) {
        PrefsUtils.mSharedPreferences = PrefsUtils.getSharedPrefs(base);
        super.attachBaseContext(base);
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/CrashRecord.kt
================================================
package com.sevtinge.cemiuiler

import android.annotation.SuppressLint
import android.content.Context
import com.sevtinge.cemiuiler.utils.PrefsUtils.mPrefsName
import de.robv.android.xposed.XposedBridge

@SuppressLint("StaticFieldLeak")
object CrashRecord : Thread.UncaughtExceptionHandler {

    private var mDefaultHandler: Thread.UncaughtExceptionHandler? = null
    private var mContext: Context? = null

    fun init(context: Context) {
        mContext = context
        mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler()
        Thread.setDefaultUncaughtExceptionHandler(this)
        if (BuildConfig.DEBUG) XposedBridge.log("[Cemiuiler][I]: CrashRecord Loaded")
    }

    override fun uncaughtException(p0: Thread, p1: Throwable) {
        XposedBridge.log("[Cemiuiler][W]: Crash happened")
        mContext?.let {
            val pref = it.createDeviceProtectedStorageContext().getSharedPreferences("Crash_Handler", Context.MODE_PRIVATE)
            if (BuildConfig.DEBUG) {
                XposedBridge.log("${System.currentTimeMillis()}")
                XposedBridge.log("${pref.getLong("last_time", 0L)}")
                XposedBridge.log("${System.currentTimeMillis() - pref.getLong("last_time", 0L)}")
            }
            if (System.currentTimeMillis() - pref.getLong("last_time", 0L) < 60 * 1000L) {
                XposedBridge.log("[Cemiuiler][W]: Crash happened again in one minute")
                if (pref.getInt("times", 0) >= 5) {
                    it.createDeviceProtectedStorageContext().getSharedPreferences(mPrefsName, Context.MODE_PRIVATE).edit().apply {
                        clear()
                        apply()
                    }
                    XposedBridge.log("[Cemiuiler][W]: More than five times, clear MODULE_CONFIG")
                    pref.edit().putInt("times", 0).apply()
                }
                pref.edit().putInt("times", pref.getInt("times", 0) + 1).apply()
            }
            pref.edit().putLong("last_time", System.currentTimeMillis()).apply()
            Thread.sleep(500)
        }
        mDefaultHandler?.uncaughtException(p0, p1)
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/XposedInit.kt
================================================
package com.sevtinge.cemiuiler

import com.github.kyuubiran.ezxhelper.EzXHelper
import com.sevtinge.cemiuiler.module.app.SystemFrameworkForCorePatch
import com.sevtinge.cemiuiler.module.base.BaseXposedInit
import com.sevtinge.cemiuiler.module.hook.home.title.EnableIconMonetColor
import com.sevtinge.cemiuiler.module.hook.securitycenter.SidebarLineCustom
import com.sevtinge.cemiuiler.module.hook.settings.VolumeSeparateControlForSettings
import com.sevtinge.cemiuiler.module.hook.systemframework.*
import com.sevtinge.cemiuiler.module.hook.systemui.navigation.HandleLineCustom
import com.sevtinge.cemiuiler.module.hook.tsmclient.AutoNfc
import de.robv.android.xposed.IXposedHookInitPackageResources
import de.robv.android.xposed.IXposedHookZygoteInit
import de.robv.android.xposed.callbacks.XC_InitPackageResources
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam

private const val TAG = "Cemiuiler"

class XposedInit : BaseXposedInit(), IXposedHookInitPackageResources {
    @Throws(Throwable::class)
    override fun initZygote(startupParam: IXposedHookZygoteInit.StartupParam?) {
        super.initZygote(startupParam)
        if (mPrefsMap.getBoolean("system_framework_allow_uninstall")) AllowUninstall().initZygote(startupParam)
        if (mPrefsMap.getBoolean("system_framework_screen_all_rotations")) ScreenRotation.initRes()
        if (mPrefsMap.getBoolean("system_framework_clean_share_menu")) CleanShareMenu.initRes()
        if (mPrefsMap.getBoolean("system_framework_clean_open_menu")) CleanOpenMenu.initRes()
        if (mPrefsMap.getBoolean("system_framework_volume_separate_control")) VolumeSeparateControlForSettings.initRes()
        // if (mPrefsMap.getBoolean("various_theme_crack")) ThemeCrack.initRes()
        if (startupParam != null) {
            BackgroundBlurDrawable().initZygote(startupParam)
            SystemFrameworkForCorePatch().initZygote(startupParam)
        }
    }

    @Throws(Throwable::class)
    override fun handleLoadPackage(lpparam: LoadPackageParam) {
        // Init EzXHelper
        EzXHelper.apply {
            initHandleLoadPackage(lpparam)
            setLogTag(TAG)
            setToastTag(TAG)
        }

        init(lpparam)
        SystemFrameworkForCorePatch().handleLoadPackage(lpparam)
    }

    override fun handleInitPackageResources(resparam: XC_InitPackageResources.InitPackageResourcesParam) {
        when (resparam.packageName) {
            "com.miui.tsmclient" ->
                if (mPrefsMap.getBoolean("tsmclient_auto_nfc")) {
                    AutoNfc.initResource(resparam)
                }

            "com.miui.home" ->
                if (mPrefsMap.getBoolean("home_other_icon_monet_color")) {
                    EnableIconMonetColor.initResource(resparam)
                }

            "com.miui.securitycenter" ->
                if (mPrefsMap.getBoolean("security_center_sidebar_line_color")) {
                    SidebarLineCustom.initResource(resparam)
                }

            "com.android.systemui" ->
                if (mPrefsMap.getBoolean("system_ui_navigation_handle_custom")) {
                    HandleLineCustom.initResource(resparam)
                }

        }
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/callback/IAppSelectCallback.java
================================================
package com.sevtinge.cemiuiler.callback;

public interface IAppSelectCallback {

    void sendMsgToActivity(byte[] appIcon, String appName, String appPackageName, String appVersion, String appActivityName);

    String getMsgFromActivity(String s);
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/AppData.java
================================================
package com.sevtinge.cemiuiler.data;

import android.graphics.Bitmap;

public class AppData {

    public int user = 0;
    public Bitmap icon;
    public String label;
    public String packageName;
    public String activityName;
    public String versionName;
    public String versionCode;
    public boolean isSystemApp;
    public boolean enabled;
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/LocationData.java
================================================
package com.sevtinge.cemiuiler.data;

public class LocationData {

    private String Title; // 备注
    private Double Longitude; // 经度
    private Double Latitude; // 纬度
    private int Offset;
    private int RegionCode; // 区域代码
    private int BaseStationCode; // 基站代码
    private int f;
    private String Remarks; // 备注

    public LocationData() {
    }

    // 标题,经度,纬度,偏移
    public LocationData(String title, Double longitude, Double latitude, int offset, int regionCode, int baseStationCode, String remarks, int i4) {
        Title = title;
        Longitude = longitude;
        Latitude = latitude;
        Offset = offset;
        RegionCode = regionCode;
        BaseStationCode = baseStationCode;
        Remarks = remarks;
        f = i4;
    }

    public String getTitle() {
        return Title;
    }

    public void setTitle(String title) {
        Title = title;
    }

    public Double getLongitude() {
        return Longitude;
    }

    public void setLongitude(Double longitude) {
        Longitude = longitude;
    }

    public Double getLatitude() {
        return Latitude;
    }

    public void setLatitude(Double latitude) {
        Latitude = latitude;
    }

    public int getOffset() {
        return Offset;
    }

    public void setOffset(int offset) {
        Offset = offset;
    }

    public int getRegionCode() {
        return RegionCode;
    }

    public void setRegionCode(int regionCode) {
        RegionCode = regionCode;
    }

    public int getBaseStationCode() {
        return BaseStationCode;
    }

    public void setBaseStationCode(int baseStationCode) {
        BaseStationCode = baseStationCode;
    }

    public int getF() {
        return f;
    }

    public void setF(int f) {
        this.f = f;
    }

    public String getRemarks() {
        return Remarks;
    }

    public void setRemarks(String remarks) {
        Remarks = remarks;
    }

    public String toString() {
        return String.valueOf(Latitude) + "," + String.valueOf(Longitude) + "," + String.valueOf(Offset) + "," + String.valueOf(RegionCode) + "," + String.valueOf(BaseStationCode) + "," + Remarks;
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/ModData.java
================================================
package com.sevtinge.cemiuiler.data;

public class ModData {
    public String title;
    public String breadcrumbs;
    public String key;
    public ModCat cat;
    public String sub;
    public int order;
    public String fragment;
    public int catTitleResId;

    public enum ModCat {
        pref_key_system,
        pref_key_launcher,
        pref_key_controls,
        pref_key_various
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/SQLiteHelper.java
================================================
package com.sevtinge.cemiuiler.data;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

import com.sevtinge.cemiuiler.utils.ToastHelper;

import java.io.File;

public class SQLiteHelper extends SQLiteOpenHelper {

    public static SQLiteDatabase a = null;

    public SQLiteHelper(@Nullable Context context) {
        super(context, a(context), null, 1);
        try {
            a = getWritableDatabase();
            a.execSQL("create table if not exists location(id integer primary key autoincrement,title text,lng real,lat real,offset integer,lac integer,cid integer,note text)");
        } catch (SQLiteException e) {
            ToastHelper.makeText(context, e.getMessage());
        }

    }

    private static String a(Context context) {
        String str = context.getExternalFilesDir(null) + "/location.db";
        return new File(str).exists() ? str : "location.db";
    }

    public int a(LocationData data) {
        return a.delete("location", "id = ?", new String[]{String.valueOf(data.getF())});
    }


    public long b(LocationData data) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("title", data.getTitle());
        contentValues.put("lat", data.getLatitude());
        contentValues.put("lng", data.getLongitude());
        contentValues.put("offset", data.getOffset());
        contentValues.put("lac", data.getBaseStationCode());
        contentValues.put("cid", data.getRegionCode());
        contentValues.put("note", data.getRemarks());
        return a.insert("location", null, contentValues);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table if not exists location(id integer primary key autoincrement,title text,lng real,lat real,offset integer,lac integer,cid integer,note text)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/adapter/AppDataAdapter.java
================================================
package com.sevtinge.cemiuiler.data.adapter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import com.sevtinge.cemiuiler.R;
import com.sevtinge.cemiuiler.data.AppData;
import com.sevtinge.cemiuiler.utils.PrefsUtils;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class AppDataAdapter extends RecyclerView.Adapter<AppDataAdapter.ViewHolder> {

    private static List<AppData> appInfoList;
    private Set<String> selectedApps;
    private onItemClickListener onItemClickListener;
    private final Context mContext;
    private final String mKey;
    private final int mType;


    @SuppressLint("NotifyDataSetChanged")
    public void setData(List<AppData> appInfoList) {
        AppDataAdapter.appInfoList = appInfoList;
        notifyDataSetChanged();
    }

    public AppDataAdapter(Context context, String key, int type) {
        mContext = context;
        mKey = key;
        mType = type;
    }

    /**
     * 在Adapter中设置一个过滤方法,目的是为了将过滤后的数据传入Adapter中并刷新数据
     *
     * @param locationListModels
     */
    @SuppressLint("NotifyDataSetChanged")
    public void setFilter(List<AppData> locationListModels) {
        appInfoList = new ArrayList<>();
        appInfoList.addAll(locationListModels);
        notifyDataSetChanged();
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View rowItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_app_list, parent, false);
        return new ViewHolder(rowItem);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        AppData appInfo = appInfoList.get(position);
        selectedApps = PrefsUtils.mSharedPreferences.getStringSet(mKey, new LinkedHashSet<>());

        holder.mAppListIcon.setImageBitmap(appInfo.icon);
        holder.mAppName.setText(appInfo.label);
        holder.mAppPackageName.setText(appInfo.packageName);
        holder.mSelecte.setChecked(shouldSelect(appInfo.packageName));

        holder.mSelecte.setVisibility(mType != 0 ? View.GONE : View.VISIBLE);
        holder.itemView.setOnClickListener(v -> onItemClickListener.onItemClick(v, position, appInfo, holder.mSelecte.isChecked()));
    }


    public boolean shouldSelect(String pkgName) {
        return (selectedApps.contains(pkgName));
    }

    public void setOnItemClickListener(onItemClickListener onItemClick) {
        this.onItemClickListener = onItemClick;
    }

    @Override
    public int getItemCount() {
        return appInfoList.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        private final ImageView mAppListIcon;
        private final TextView mAppName;
        private final TextView mAppPackageName;
        private final CheckBox mSelecte;

        public ViewHolder(View itemView) {
            super(itemView);
            mAppListIcon = itemView.findViewById(android.R.id.icon);
            mAppName = itemView.findViewById(android.R.id.title);
            mAppPackageName = itemView.findViewById(android.R.id.summary);
            mSelecte = itemView.findViewById(android.R.id.checkbox);
        }
    }

    public interface onItemClickListener {
        void onItemClick(View view, int position, AppData appData, boolean isCheck);
    }

}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/adapter/ModSearchAdapter.java
================================================
package com.sevtinge.cemiuiler.data.adapter;

import android.annotation.SuppressLint;
import android.content.Context;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import com.sevtinge.cemiuiler.R;
import com.sevtinge.cemiuiler.data.ModData;
import com.sevtinge.cemiuiler.utils.Helpers;
import com.sevtinge.cemiuiler.utils.SearchHelper;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.concurrent.CopyOnWriteArrayList;

public class ModSearchAdapter extends RecyclerView.Adapter<ModSearchAdapter.ViewHolder> implements Filterable {

    private Context mContext;
    private String filterString = "";
    private ItemFilter mFilter;
    private onItemClickListener mItemClickListener;//item点击监听
    private final CopyOnWriteArrayList<ModData> modsList = new CopyOnWriteArrayList<ModData>();

    public void setOnItemClickListener(onItemClickListener onItemClick) {
        mItemClickListener = onItemClick;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) {
        mContext = viewGroup.getContext();
        View view= LayoutInflater.from(mContext).inflate(R.layout.item_search_result, viewGroup,false);
        //创建一个VIewHolder
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {
        ModData ad = modsList.get(position);

        int start = ad.title.toLowerCase().indexOf(filterString);
        if (start >= 0) {
            Spannable spannable = new SpannableString(ad.title);
            spannable.setSpan(new ForegroundColorSpan(SearchHelper.MARK_COLOR_VIBRANT), start, start + filterString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            viewHolder.mName.setText(spannable, TextView.BufferType.SPANNABLE);
        } else {
            viewHolder.mName.setText(ad.title);
        }
        viewHolder.mPackageName.setText(ad.breadcrumbs);
        //设置item点击监听事件
        viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mItemClickListener.onItemClick(view, ad);
            }
        });
    }

    @Override
    public int getItemCount() {
        return modsList.size();
    }

    @Override
    public Filter getFilter() {
        // 如果ItemFilter对象为空,那么重写创建一个
        if (mFilter == null) {
            mFilter = new ItemFilter();
        }
        return mFilter;
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        private ImageView mIcon;
        private TextView mName;
        private TextView mPackageName;

        public ViewHolder(View itemView) {
            super(itemView);
            mIcon = itemView.findViewById(android.R.id.icon);
            mName = itemView.findViewById(android.R.id.title);
            mPackageName = itemView.findViewById(android.R.id.summary);
        }
    }


    public interface onItemClickListener {
        void onItemClick(View view, ModData ad);
    }


    private class ItemFilter extends Filter {
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            filterString = constraint.toString().toLowerCase();
            final ArrayList<ModData> nlist = new ArrayList<ModData>();

            for (ModData filterableData: SearchHelper.allModsList) {
                if (constraint.toString().equals(SearchHelper.NEW_MODS_SEARCH_QUERY)) {
                    if (SearchHelper.NEW_MODS.contains(filterableData.key)) {
                        nlist.add(filterableData);
                    }
                } else if (filterableData.title.toLowerCase().contains(filterString)) {
                    nlist.add(filterableData);
                }
            }

            FilterResults results = new FilterResults();
            results.values = nlist;
            results.count = nlist.size();
            return results;
        }

        @SuppressLint("NotifyDataSetChanged")
        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
            modsList.clear();
            if (results.count > 0 && results.values != null) {
                modsList.addAll((ArrayList<ModData>)results.values);
            }
            sortList();
            notifyDataSetChanged();
        }
    }

    private void sortList() {
        modsList.sort(new Comparator<ModData>() {
            public int compare(ModData app1, ModData app2) {
                int breadcrumbs = app1.breadcrumbs.compareToIgnoreCase(app2.breadcrumbs);
                if (breadcrumbs == 0)
                    return app1.title.compareToIgnoreCase(app2.title);
                else
                    return breadcrumbs;
            }
        });
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/data/adapter/MutipleChoiceAdapter.java
================================================
package com.sevtinge.cemiuiler.data.adapter;

import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.recyclerview.widget.RecyclerView;

import com.sevtinge.cemiuiler.R;

import java.util.List;

import moralnorm.appcompat.widget.CheckedTextView;

public class MutipleChoiceAdapter extends RecyclerView.Adapter<MutipleChoiceAdapter.ViewHolder> {

    // 填充数据的list
    private List<String> mList;
    // 用来控制CheckBox的选中状况
    private SparseBooleanArray mIsChecked;

    private OnCurWillCheckAllChangedListener mListener;
    private boolean curWillCheckAll = true;

    public MutipleChoiceAdapter(List<String> list) {
        mList = list;
        mIsChecked = new SparseBooleanArray();
        // 初始化数据
        initData();
    }

    // 初始化isSelected的数据
    private void initData() {
        for (int i = 0; i < mList.size(); i++) {
            getCheckedArray().put(i, false);
        }
    }

    public interface OnCurWillCheckAllChangedListener {
        void onCurWillCheckAllChanged(boolean curWillCheckAll);
    }

    public void setOnCurWillCheckAllChangedListener(OnCurWillCheckAllChangedListener listener) {
        this.mListener = listener;
    }

    public SparseBooleanArray getCheckedArray() {
        return mIsChecked;
    }

    public void setCheckedArray(SparseBooleanArray isChecked) {
        mIsChecked = isChecked;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_mutiplechoice, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        CheckedTextView mCheckBoxTitle = holder.mCheckBoxTitle;
        // 设置list中TextView的显示
        mCheckBoxTitle.setText(mList.get(position));
        // 根据isSelected来设置checkbox的选中状况
        mCheckBoxTitle.setChecked(getCheckedArray().get(position));
        holder.itemView.setOnClickListener(v -> {
            // 改变CheckBox的状态
            mCheckBoxTitle.toggle();
            // 将CheckBox的选中状况记录下来
            getCheckedArray().put(position, mCheckBoxTitle.isChecked());
            for (int i = 0; i < mIsChecked.size(); i++) {
                if (mIsChecked.valueAt(i)) {
                    curWillCheckAll = false;
                    break;
                } else {
                    curWillCheckAll = true;
                }
            }
            if (mListener != null) {
                mListener.onCurWillCheckAllChanged(curWillCheckAll);
            }
        });
    }

    @Override
    public int getItemCount() {
        return mList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public CheckedTextView mCheckBoxTitle;

        public ViewHolder(View itemView) {
            super(itemView);
            mCheckBoxTitle = itemView.findViewById(android.R.id.text1);
        }
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/AiAsst.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.aiasst.AiCaptions;


public class AiAsst extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(new AiCaptions(), mPrefsMap.getBoolean("aiasst_ai_captions"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Aod.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.hook.aod.UnlockAlwaysOnDisplay;
import com.sevtinge.cemiuiler.module.base.BaseModule;

public class Aod extends BaseModule {
    @Override
    public void handleLoadPackage() {
        initHook(UnlockAlwaysOnDisplay.INSTANCE, mPrefsMap.getBoolean("aod_unlock_always_on_display"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Barrage.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.hook.barrage.*;
import com.sevtinge.cemiuiler.module.base.BaseModule;

public class Barrage extends BaseModule {
    @Override
    public void handleLoadPackage() {
        initHook(AnyBarrage.INSTANCE, mPrefsMap.getBoolean("barrage_any_barrage"));
        initHook(CustomBarrageLength.INSTANCE, mPrefsMap.getInt("barrage_custom_barrage_length", 36) != 36);
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Browser.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.base.CloseHostDir;
import com.sevtinge.cemiuiler.module.base.LoadHostDir;
import com.sevtinge.cemiuiler.module.hook.browser.DebugMode;
import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;

public class Browser extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(DebugMode.INSTANCE, mPrefsMap.getBoolean("browser_debug_mode"));
        // dexKit load
        initHook(LoadHostDir.INSTANCE);
        initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
        // dexKit finish
        initHook(CloseHostDir.INSTANCE);
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Camera.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.camera.EnableLabOptions;
import com.sevtinge.cemiuiler.module.hook.camera.Unlock120Fps;
import com.sevtinge.cemiuiler.module.hook.camera.Unlock60Fps;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockAiEnhance;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockAiShutter;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockAiWatermark;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockAmbilight;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockAudioZoom;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockClone;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockColorEnhance;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockCosmeticMirror;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockCvlens;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockCyberFocusVersion2;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockDoc;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockDualcam;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockDuration;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilm;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilmDelay;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilmDollyZoom;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilmDream;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilmSlowShutter;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilmTimeBackflow;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockFilmTimeFreeze;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockHandGesture;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockHdr;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockHeic;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockIdcard;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockLog;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockMakeup;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockMenMakeup;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockMilive;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockMoon;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockNevus;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockNewBeauty;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockPano;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockPixel;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockPortrait;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockRaw;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockSlow;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockTrackEyes;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockTrackFeature;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockTrackFocus;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockVideosky;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockVlog;
import com.sevtinge.cemiuiler.module.hook.camera.UnlockVlogPro;

public class Camera extends BaseModule {

    @Override
    public void handleLoadPackage() {
        // 功能
        initHook(new UnlockAiWatermark(), mPrefsMap.getBoolean("camera_features_unlock_aiwatermark"));
        initHook(new UnlockAmbilight(), mPrefsMap.getBoolean("camera_features_unlock_ambilight"));
        initHook(new UnlockClone(), mPrefsMap.getBoolean("camera_features_unlock_clone"));
        initHook(new UnlockCosmeticMirror(), mPrefsMap.getBoolean("camera_features_unlock_cosmetic_mirror"));
        initHook(new UnlockDoc(), mPrefsMap.getBoolean("camera_features_unlock_doc"));
        initHook(new UnlockDualcam(), mPrefsMap.getBoolean("camera_features_unlock_dualcam"));
        initHook(new UnlockDuration(), mPrefsMap.getBoolean("camera_features_unlock_duration"));
        initHook(new UnlockIdcard(), mPrefsMap.getBoolean("camera_features_unlock_idcard"));
        initHook(new UnlockMilive(), mPrefsMap.getBoolean("camera_features_unlock_milive"));
        initHook(new UnlockMoon(), mPrefsMap.getBoolean("camera_features_unlock_moon"));
        initHook(new UnlockPano(), mPrefsMap.getBoolean("camera_features_unlock_pano"));
        initHook(new UnlockPixel(), mPrefsMap.getBoolean("camera_features_unlock_pixel"));
        initHook(new UnlockPortrait(), mPrefsMap.getBoolean("camera_features_unlock_portrait"));
        initHook(new UnlockSlow(), mPrefsMap.getBoolean("camera_features_unlock_slow"));
        initHook(new UnlockVideosky(), mPrefsMap.getBoolean("camera_features_unlock_videosky"));
        initHook(new UnlockVlog(), mPrefsMap.getBoolean("camera_features_unlock_vlog"));
        initHook(new UnlockVlogPro(), mPrefsMap.getBoolean("camera_features_unlock_vlog_pro"));
        initHook(new UnlockFilm(), mPrefsMap.getBoolean("camera_features_unlock_film"));
        initHook(new UnlockFilmDelay(), mPrefsMap.getBoolean("camera_features_unlock_film_delay"));
        initHook(new UnlockFilmDollyZoom(), mPrefsMap.getBoolean("camera_features_unlock_film_dollyzoom"));
        initHook(new UnlockFilmDream(), mPrefsMap.getBoolean("camera_features_unlock_film_dream"));
        initHook(new UnlockFilmSlowShutter(), mPrefsMap.getBoolean("camera_features_unlock_film_slowshutter"));
        initHook(new UnlockFilmTimeBackflow(), mPrefsMap.getBoolean("camera_features_unlock_film_timebackflow"));
        initHook(new UnlockFilmTimeFreeze(), mPrefsMap.getBoolean("camera_features_unlock_film_timefreeze"));

        // 拍照
        initHook(new UnlockMakeup(), mPrefsMap.getBoolean("camera_shot_makeup"));
        initHook(new UnlockColorEnhance(), mPrefsMap.getBoolean("camera_shot_color_enhance"));
        initHook(new UnlockHandGesture(), mPrefsMap.getBoolean("camera_shot_hand_gesture"));

        // 录像
        initHook(new Unlock60Fps(), mPrefsMap.getBoolean("camera_record_60fps"));
        initHook(new Unlock120Fps(), mPrefsMap.getBoolean("camera_record_120fps"));
        initHook(new UnlockHdr(), mPrefsMap.getBoolean("camera_record_hdr"));
        initHook(new UnlockAiEnhance(), mPrefsMap.getBoolean("camera_record_ai"));
        initHook(new UnlockAudioZoom(), mPrefsMap.getBoolean("camera_record_audio_zoom"));

        // 人像
        initHook(new UnlockCvlens(), mPrefsMap.getBoolean("camera_portrait_cvlens"));
        initHook(new UnlockNewBeauty(), mPrefsMap.getBoolean("camera_portrait_new_beauty"));

        // 专业
        initHook(new UnlockRaw(), mPrefsMap.getBoolean("camera_pro_raw"));
        initHook(new UnlockLog(), mPrefsMap.getBoolean("camera_pro_log"));

        // 设置
        initHook(new UnlockTrackFeature(), (mPrefsMap.getBoolean("camera_settings_track_eyes") || mPrefsMap.getBoolean("camera_settings_track_focus")));
        initHook(new UnlockHeic(), mPrefsMap.getBoolean("camera_settings_heic"));
        initHook(new UnlockTrackFocus(), mPrefsMap.getBoolean("camera_settings_track_focus"));
        initHook(new UnlockAiShutter(), mPrefsMap.getBoolean("camera_settings_predictive"));
        initHook(new UnlockCyberFocusVersion2(), mPrefsMap.getBoolean("camera_settings_track_focus"));
        initHook(new UnlockNevus(), mPrefsMap.getBoolean("camera_settings_nevus"));
        initHook(new UnlockMenMakeup(), mPrefsMap.getBoolean("camera_settings_men_makeup"));
        initHook(EnableLabOptions.INSTANCE, mPrefsMap.getBoolean("camera_settings_lab_options"));
        initHook(new UnlockTrackEyes(), mPrefsMap.getBoolean("camera_settings_track_eyes"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Clock.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.clock.EnableHourGlass;

public class Clock extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(new EnableHourGlass(), mPrefsMap.getBoolean("clock_enable_hour_glass"));
    }
}




================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ContentExtension.java
================================================
package com.sevtinge.cemiuiler.module.app;

import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.contentextension.DoublePress;
import com.sevtinge.cemiuiler.module.hook.contentextension.HorizontalContentExtension;
import com.sevtinge.cemiuiler.module.hook.contentextension.LinkOpenMode;
import com.sevtinge.cemiuiler.module.hook.contentextension.SuperImage;
import com.sevtinge.cemiuiler.module.hook.contentextension.UnlockTaplus;
import com.sevtinge.cemiuiler.module.hook.contentextension.UseThirdPartyBrowser;

public class ContentExtension extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(new UseThirdPartyBrowser(), mPrefsMap.getBoolean("content_extension_browser"));
        initHook(new DoublePress(), mPrefsMap.getBoolean("content_extension_double_press"));
        initHook(new SuperImage(), mPrefsMap.getBoolean("content_extension_super_image"));
        initHook(new LinkOpenMode());
        initHook(HorizontalContentExtension.INSTANCE, mPrefsMap.getBoolean("content_extension_unlock_taplus_horizontal"));

        if (!isAndroidR()){
            initHook(UnlockTaplus.INSTANCE, mPrefsMap.getBoolean("content_extension_unlock_taplus"));
        }
    }
}



================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Creation.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.creation.UnlockCreation;
import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;

public class Creation extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(UnlockCreation.INSTANCE, mPrefsMap.getBoolean("creation_unlock_enable"));
        initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Downloads.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.downloads.FuckXlDownload;

public class Downloads extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(new FuckXlDownload(), mPrefsMap.getBoolean("various_fuck_xlDownload"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ExternalStorage.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.externalstorage.DisableFolderCantUse;

public class ExternalStorage extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(new DisableFolderCantUse(), mPrefsMap.getBoolean("various_disable_folder_cantuse"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/FileExplorer.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.fileexplorer.SelectName;
import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;

public class FileExplorer extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(SelectName.INSTANCE, mPrefsMap.getBoolean("file_explorer_can_selectable") || mPrefsMap.getBoolean("file_explorer_is_single_line"));
        initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Gallery.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableHdrEnhance;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableIdPhoto;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableMagicSky;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableOcr;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableOcrForm;
import com.sevtinge.cemiuiler.module.hook.gallery.EnablePdf;
import com.sevtinge.cemiuiler.module.hook.gallery.EnablePhotoMovie;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableRemover2;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableTextYanhua;
import com.sevtinge.cemiuiler.module.hook.gallery.EnableVideoPost;
import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;

public class Gallery extends BaseModule {

    @Override
    public void handleLoadPackage() {
        initHook(new EnableHdrEnhance(), mPrefsMap.getBoolean("gallery_enable_hdr_enhanced"));
        initHook(new EnableMagicSky(), mPrefsMap.getBoolean("gallery_enable_magic_sky"));
        initHook(new EnablePdf(), mPrefsMap.getBoolean("gallery_enable_pdf"));
        initHook(new EnablePhotoMovie(), mPrefsMap.getBoolean("gallery_enable_photo_movie"));
        initHook(new EnableRemover2(), mPrefsMap.getBoolean("gallery_enable_remover_2"));
        initHook(new EnableTextYanhua(), mPrefsMap.getBoolean("gallery_enable_text_yanhua"));
        initHook(new EnableIdPhoto(), mPrefsMap.getBoolean("gallery_enable_id_photo"));
        initHook(new EnableIdPhoto(), mPrefsMap.getBoolean("gallery_enable_magic_matting"));
        initHook(new EnableVideoPost(), mPrefsMap.getBoolean("gallery_enable_video_post"));
        initHook(new EnableVideoPost(), mPrefsMap.getBoolean("gallery_enable_video_editor"));
        initHook(new EnableOcr(), mPrefsMap.getBoolean("gallery_enable_ocr"));
        initHook(new EnableOcrForm(), mPrefsMap.getBoolean("gallery_enable_ocr_form"));
        initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
    }
}





================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/GlobalActions.java
================================================
package com.sevtinge.cemiuiler.module.app;

import static com.sevtinge.cemiuiler.utils.log.AndroidLogUtils.LogD;
import static com.sevtinge.cemiuiler.utils.log.AndroidLogUtils.LogE;
import static java.lang.System.currentTimeMillis;

import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings;
import android.view.KeyEvent;

import com.sevtinge.cemiuiler.module.base.BaseHook;
import com.sevtinge.cemiuiler.utils.Helpers;
import com.sevtinge.cemiuiler.utils.PrefsUtils;

import de.robv.android.xposed.XposedHelpers;

@SuppressLint("UnspecifiedRegisterReceiverFlag")
public class GlobalActions extends BaseHook {


    @Override
    public void init() {
        setupGlobalActions();
        setupRestartActions();
    }

    // GlobalActions
    public void setupGlobalActions() {
        hookAllConstructors("com.android.server.accessibility.AccessibilityManagerService", new MethodHook() {
            @Override
            protected void after(MethodHookParam param) {
                Context mGlobalContext = (Context) param.args[0];
                IntentFilter mFilter = new IntentFilter();
                // Actions
                mFilter.addAction(ACTION_PREFIX + "ToggleColorInversion");
                mFilter.addAction(ACTION_PREFIX + "LockScreen");
                mFilter.addAction(ACTION_PREFIX + "GoToSleep");
                mFilter.addAction(ACTION_PREFIX + "ScreenCapture");
                mFilter.addAction(ACTION_PREFIX + "OpenPowerMenu");
                mFilter.addAction(ACTION_PREFIX + "LaunchIntent");
                mGlobalContext.registerReceiver(mGlobalReceiver, mFilter);
            }
        });
    }

    public static void proxySystemProperties(String method, String prop, String val, ClassLoader classLoader) {
        XposedHelpers.callStaticMethod(XposedHelpers.findClassIfExists("android.os.SystemProperties", classLoader),
            method, prop, val);
    }

    @SuppressLint("UnsafeIntentLaunch")
    private final BroadcastReceiver mGlobalReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            try {
                Class<?> clsWMG = findClass("android.view.WindowManagerGlobal", null);
                Object wms = XposedHelpers.callStaticMethod(clsWMG, "getWindowManagerService");

                String action = intent.getAction();

                switch (action) {
                    case ACTION_PREFIX + "ToggleColorInversion" -> {
                        int opt = Settings.Secure.getInt(context.getContentResolver(), "accessibility_display_inversion_enabled");
                        int conflictProp = (int) Helpers.proxySystemProperties("getInt", "ro.df.effect.conflict", 0, null);
                        int conflictProp2 = (int) Helpers.proxySystemProperties("getInt", "ro.vendor.df.effect.conflict", 0, null);
                        boolean hasConflict = conflictProp == 1 || conflictProp2 == 1;
                        Object dfMgr = XposedHelpers.callStaticMethod(XposedHelpers.findClass("miui.hardware.display.DisplayFeatureManager", null), "getInstance");
                        if (hasConflict && opt == 0) {
                            XposedHelpers.callMethod(dfMgr, "setScreenEffect", 15, 1);
                        }
                        Settings.Secure.putInt(context.getContentResolver(), "accessibility_display_inversion_enabled", opt == 0 ? 1 : 0);
                        if (hasConflict && opt != 0) {
                            XposedHelpers.callMethod(dfMgr, "setScreenEffect", 15, 0);
                        }
                    }

                    case ACTION_PREFIX + "LockScreen" -> {
                        XposedHelpers.callMethod(context.getSystemService(Context.POWER_SERVICE), "goToSleep", SystemClock.uptimeMillis());
                        XposedHelpers.callMethod(wms, "lockNow", (Object) null);
                    }
                    case ACTION_PREFIX + "GoToSleep" ->
                        XposedHelpers.callMethod(context.getSystemService(Context.POWER_SERVICE), "goToSleep", SystemClock.uptimeMillis());

                    case ACTION_PREFIX + "ScreenCapture" ->
                        context.sendBroadcast(new Intent("android.intent.action.CAPTURE_SCREENSHOT"));

                    case ACTION_PREFIX + "OpenPowerMenu" -> {
                        clsWMG = findClass("android.view.WindowManagerGlobal");
                        wms = XposedHelpers.callStaticMethod(clsWMG, "getWindowManagerService");
                        XposedHelpers.callMethod(wms, "showGlobalActions");
                    }

                    case ACTION_PREFIX + "LaunchIntent" -> {
                        Intent launchIntent = intent.getParcelableExtra("intent");
                        if (launchIntent != null) {
                            int user = 0;
                            if (launchIntent.hasExtra("user")) {
                                user = launchIntent.getIntExtra("user", 0);
                                launchIntent.removeExtra("user");
                            }
                            if (user != 0) {
                                XposedHelpers.callMethod(context, "startActivityAsUser", launchIntent, XposedHelpers.newInstance(UserHandle.class, user));
                            } else {
                                context.startActivity(launchIntent);
                            }
                        }
                    }
                }
            } catch (Throwable t) {
                LogD(TAG, "onReceive", t);
            }
        }
    };

    /**
     * RestartActions
     */
    public void setupRestartActions() {
        hookAllMethods("com.android.server.policy.PhoneWindowManager", "init", new MethodHook() {
            @Override
            protected void after(MethodHookParam param) {
                Context mContext = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext");
                IntentFilter intentfilter = new IntentFilter();
                intentfilter.addAction(ACTION_PREFIX + "RestartApps");
                mContext.registerReceiver(mRestartReceiver, intentfilter);
            }
        });
    }

    private static void forceStopPackage(Context context, String packageName) {
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        XposedHelpers.callMethod(am, "forceStopPackage", packageName);
    }

    private static final BroadcastReceiver mRestartReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            try {
                String action = intent.getAction();
                if (action == null) {
                    return;
                }

                if ((ACTION_PREFIX + "RestartApps").equals(action)) {
                    forceStopPackage(context, intent.getStringExtra("packageName"));
                }
            } catch (Exception e) {
                LogE("GlobalActions", null, e);
            }
        }
    };


    public static boolean handleAction(Context context, String key) {
        return handleAction(context, key, false);
    }

    public static boolean handleAction(Context context, String key, boolean skipLock) {
        if (key == null || key.isEmpty()) {
            return false;
        }
        int action = PrefsUtils.getSharedIntPrefs(context, key + "_action", 0);
        if (action <= 0) {
            return false;
        }
        if (action >= 85 && action <= 88) {
            if (GlobalActions.isMediaActionsAllowed(context)) {
                GlobalActions.sendDownUpKeyEvent(context, action, false);
            }
            return true;
        }
        return switch (action) {
            case 1 -> setAction(context, "OpenNotificationCenter");
            case 2 -> setAction(context, "ClearMemory");
            case 3 -> setAction(context, "ToggleColorInversion");
            case 4 -> setAction(context, "LockScreen");
            case 5 -> setAction(context, "GoToSleep");
            case 6 -> setAction(context, "ScreenCapture");
            case 7 -> setAction(context, "OpenRecents");
            case 8 -> setAction(context, "OpenVolumeDialog");
            case 12 -> setAction(context, "OpenPowerMenu");
            case 13 -> launchAppIntent(context, key, skipLock);
            /*
            case 3: return expandEQS(context);
            case 6: return takeScreenshot(context);
            case 7: return openRecents(context);
            case 8: return launchAppIntent(context, key, skipLock);
            case 9: return launchShortcutIntent(context, key, skipLock);
            case 20: return launchActivityIntent(context, key, skipLock);
            case 10: return toggleThis(context, Helpers.getSharedIntPref(context, key + "_toggle", 0));
            case 11: return switchToPrevApp(context);
            case 12: return openPowerMenu(context);
            case 15: return goBack(context);
            case 16: return simulateMenu(context);
            case 18: return volumeUp(context);
            case 19: return volumeDown(context);
            case 21: return switchKeyboard(context);
            case 22: return switchOneHandedLeft(context);
            case 23: return switchOneHandedRight(context);
            case 24: return forceClose(context);*/
            default -> false;
        };
    }


    // Actions
    public static boolean setAction(Context context, String action) {
        try {
            context.sendBroadcast(new Intent(ACTION_PREFIX + action));
            return true;
        } catch (Throwable t) {
            LogD("GlobalActions", "setAction", t);
            return false;
        }
    }

    /*public static boolean openNotificationCenter(Context context) {
        try {
            context.sendBroadcast(new Intent(ACTION_PREFIX + "ExpandNotifications"));
            return true;
        } catch (Throwable t) {
            LogUtils.log(t);
            return false;
        }
    }

    public static boolean goToSleep(Context context) {
        try {
            context.sendBroadcast(new Intent(ACTION_PREFIX + "GoToSleep"));
            return true;
        } catch (Throwable t) {
            LogUtils.log(t);
            return false;
        }
    }*/


    public static boolean isMediaActionsAllowed(Context mContext) {
        AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        boolean isMusicActive = am.isMusicActive();
        boolean isMusicActiveRemotely = (Boolean) XposedHelpers.callMethod(am, "isMusicActiveRemotely");
        boolean isAllowed = isMusicActive || isMusicActiveRemotely;
        if (!isAllowed) {
            long mCurrentTime = currentTimeMillis();
            long mLastPauseTime = Settings.System.getLong(mContext.getContentResolver(), "last_music_paused_time", mCurrentTime);
            if (mCurrentTime - mLastPauseTime < 10 * 60 * 1000) {
                isAllowed = true;
            }
        }
        return isAllowed;
    }

    public static void sendDownUpKeyEvent(Context mContext, int keyCode, boolean vibrate) {
        AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        am.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keyCode));
        am.dispatchMediaKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keyCode));

        if (vibrate && PrefsUtils.getSharedBoolPrefs(mContext, "prefs_key_controls_volumemedia_vibrate", true)) ;
        /*Helpers.performStrongVibration(mContext, PrefsUtils.getSharedBoolPrefs(mContext, "prefa_key_controls_volumemedia_vibrate_ignore", false));*/
    }

    public static boolean launchAppIntent(Context context, String key, boolean skipLock) {
        return launchIntent(context, getIntent(context, key, IntentType.APP, skipLock));
    }

    public static boolean launchIntent(Context context, Intent intent) {
        if (intent == null) {
            return false;
        }
        Intent bIntent = new Intent(ACTION_PREFIX + "LaunchIntent");
        bIntent.putExtra("intent", intent);
        context.sendBroadcast(bIntent);
        return true;
    }

    enum IntentType {
        APP, ACTIVITY, SHORTCUT
    }

    public static Intent getIntent(Context context, String prefs, IntentType intentType, boolean skipLock) {
        try {
            if (intentType == IntentType.APP) {
                prefs += "_app";
            } else if (intentType == IntentType.ACTIVITY) {
                prefs += "_activity";
            } else if (intentType == IntentType.SHORTCUT) {
                prefs += "_shortcut_intent";
            }

            String prefValue = PrefsUtils.getSharedStringPrefs(context, prefs, null);
            if (prefValue == null) return null;

            Intent intent = new Intent();
            if (intentType == IntentType.SHORTCUT) {
                intent = Intent.parseUri(prefValue, 0);
            } else {
                String[] pkgAppArray = prefValue.split("\\|");
                if (pkgAppArray.length < 2) {
                    return null;
                }
                ComponentName name = new ComponentName(pkgAppArray[0], pkgAppArray[1]);
                intent.setComponent(name);
                int user = PrefsUtils.getSharedIntPrefs(context, prefs + "_user", 0);
                if (user != 0) {
                    intent.putExtra("user", user);
                }
            }
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

            if (intentType == IntentType.APP) {
                intent.setAction(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
            }

            if (skipLock) {
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                intent.putExtra("ShowCameraWhenLocked", true);
                intent.putExtra("StartActivityWhenLocked", true);
            }

            return intent;
        } catch (Throwable t) {
            LogD("GlobalActions", "getIntent", t);
            return null;
        }
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/GuardProvider.java
================================================
package com.sevtinge.cemiuiler.module.app;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.base.CloseHostDir;
import com.sevtinge.cemiuiler.module.base.LoadHostDir;
import com.sevtinge.cemiuiler.module.hook.guardprovider.DisableUploadAppListNew;

public class GuardProvider extends BaseModule {
    @Override
    public void handleLoadPackage() {
        // dexKit load
        initHook(LoadHostDir.INSTANCE);
        initHook(DisableUploadAppListNew.INSTANCE, mPrefsMap.getBoolean("disable_upload_applist"));
        // dexKit finish
        initHook(CloseHostDir.INSTANCE);
    }
}


================================================
FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Home.java
================================================
package com.sevtinge.cemiuiler.module.app;

import static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.isPad;
import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.base.CloseHostDir;
import com.sevtinge.cemiuiler.module.base.LoadHostDir;
import com.sevtinge.cemiuiler.module.hook.home.AllAppsBlur;
import com.sevtinge.cemiuiler.module.hook.home.AnimDurationRatio;
import com.sevtinge.cemiuiler.module.hook.home.FreeFormCountForHome;
import com.sevtinge.cemiuiler.module.hook.home.HideNavigationBar;
import com.sevtinge.cemiuiler.module.hook.home.HomePortraitReverse;
import com.sevtinge.cemiuiler.module.hook.home.MaxFreeForm;
import com.sevtinge.cemiuiler.module.hook.home.ScreenSwipe;
import com.sevtinge.cemiuiler.module.hook.home.SeekPoints;
import com.sevtinge.cemiuiler.module.hook.home.SetDeviceLevel;
import com.sevtinge.cemiuiler.module.hook.home.StickyFloatingWindowsForHome;
import com.sevtinge.cemiuiler.module.hook.home.ToastSlideAgain;
import com.sevtinge.cemiuiler.module.hook.home.UnlockHotseatIcon;
import com.sevtinge.cemiuiler.module.hook.home.UserPresentAnimation;
import com.sevtinge.cemiuiler.module.hook.home.WidgetCornerRadius;
import com.sevtinge.cemiuiler.module.hook.home.WidgetCrack;
import com.sevtinge.cemiuiler.module.hook.home.dock.DisableRecentsIcon;
import com.sevtinge.cemiuiler.module.hook.home.dock.DockCustom;
import com.sevtinge.cemiuiler.module.hook.home.dock.FoldDeviceDock;
import com.sevtinge.cemiuiler.module.hook.home.dock.FoldDock;
import com.sevtinge.cemiuiler.module.hook.home.dock.HideSeekPoint;
import com.sevtinge.cemiuiler.module.hook.home.dock.ShowDockIconTitle;
import com.sevtinge.cemiuiler.module.hook.home.drawer.AllAppsContainerViewBlur;
import com.sevtinge.cemiuiler.module.hook.home.drawer.AppDrawer;
import com.sevtinge.cemiuiler.module.hook.home.drawer.PinyinArrangement;
import com.sevtinge.cemiuiler.module.hook.home.folder.BigFolderIcon;
import com.sevtinge.cemiuiler.module.hook.home.folder.BigFolderIconBlur;
import com.sevtinge.cemiuiler.module.hook.home.folder.BigFolderIconBlur1x2;
import com.sevtinge.cemiuiler.module.hook.home.folder.BigFolderIconBlur2x1;
import com.sevtinge.cemiuiler.module.hook.home.folder.BigFolderItemMaxCount;
import com.sevtinge.cemiuiler.module.hook.home.folder.FolderAnimation;
import com.sevtinge.cemiuiler.module.hook.home.folder.FolderAutoClose;
import com.sevtinge.cemiuiler.module.hook.home.folder.FolderBlur;
import com.sevtinge.cemiuiler.module.hook.home.folder.FolderColumns;
import com.sevtinge.cemiuiler.module.hook.home.folder.FolderShade;
import com.sevtinge.cemiuiler.module.hook.home.folder.FolderVerticalPadding;
import com.sevtinge.cemiuiler.module.hook.home.folder.SmallFolderIconBlur;
import com.sevtinge.cemiuiler.module.hook.home.gesture.DoubleTap;
import com.sevtinge.cemiuiler.module.hook.home.gesture.HotSeatSwipe;
import com.sevtinge.cemiuiler.module.hook.home.gesture.QuickBack;
import com.sevtinge.cemiuiler.module.hook.home.gesture.ShakeDevice;
import com.sevtinge.cemiuiler.module.hook.home.layout.HotSeatsHeight;
import com.sevtinge.cemiuiler.module.hook.home.layout.HotSeatsMarginBottom;
import com.sevtinge.cemiuiler.module.hook.home.layout.HotSeatsMarginTop;
import com.sevtinge.cemiuiler.module.hook.home.layout.SearchBarMarginBottom;
import com.sevtinge.cemiuiler.module.hook.home.layout.UnlockGrids;
import com.sevtinge.cemiuiler.module.hook.home.layout.WorkspacePadding;
import com.sevtinge.cemiuiler.module.hook.home.mipad.EnableHideGestureLine;
import com.sevtinge.cemiuiler.module.hook.home.mipad.EnableMoreSetting;
import com.sevtinge.cemiuiler.module.hook.home.navigation.BackGestureAreaHeight;
import com.sevtinge.cemiuiler.module.hook.home.navigation.BackGestureAreaWidth;
import com.sevtinge.cemiuiler.module.hook.home.other.AlwaysBlurWallpaper;
import com.sevtinge.cemiuiler.module.hook.home.other.AlwaysShowStatusClock;
import com.sevtinge.cemiuiler.module.hook.home.other.BlurRadius;
import com.sevtinge.cemiuiler.module.hook.home.other.BlurWhenShowShortcutMenu;
import com.sevtinge.cemiuiler.module.hook.home.other.DisableHideGoogle;
import com.sevtinge.cemiuiler.module.hook.home.other.FixAndroidRS;
import com.sevtinge.cemiuiler.module.hook.home.other.FreeformShortcutMenu;
import com.sevtinge.cemiuiler.module.hook.home.other.HomeMode;
import com.sevtinge.cemiuiler.module.hook.home.other.InfiniteScroll;
import com.sevtinge.cemiuiler.module.hook.home.other.OverlapMode;
import com.sevtinge.cemiuiler.module.hook.home.other.ShortcutItemCount;
import com.sevtinge.cemiuiler.module.hook.home.other.ShowAllHideApp;
import com.sevtinge.cemiuiler.module.hook.home.recent.AlwaysShowCleanUp;
import com.sevtinge.cemiuiler.module.hook.home.recent.BlurLevel;
import com.sevtinge.cemiuiler.module.hook.home.recent.CardTextColor;
import com.sevtinge.cemiuiler.module.hook.home.recent.CardTextSize;
import com.sevtinge.cemiuiler.module.hook.home.recent.DisableRecentViewWallpaperDarken;
import com.sevtinge.cemiuiler.module.hook.home.recent.FreeformCardBackgroundColor;
import com.sevtinge.cemiuiler.module.hook.home.recent.HideCleanUp;
import com.sevtinge.cemiuiler.module.hook.home.recent.HideFreeform;
import com.sevtinge.cemiuiler.module.hook.home.recent.HideStatusBarWhenEnterRecent;
import com.sevtinge.cemiuiler.module.hook.home.recent.MemInfoShow;
import com.sevtinge.cemiuiler.module.hook.home.recent.RealMemory;
import com.sevtinge.cemiuiler.module.hook.home.recent.RecentResource;
import com.sevtinge.cemiuiler.module.hook.home.recent.RecentText;
import com.sevtinge.cemiuiler.module.hook.home.recent.RemoveCardAnim;
import com.sevtinge.cemiuiler.module.hook.home.recent.RemoveIcon;
import com.sevtinge.cemiuiler.module.hook.home.recent.TaskViewHorizontal;
import com.sevtinge.cemiuiler.module.hook.home.recent.TaskViewVertical;
import com.sevtinge.cemiuiler.module.hook.home.title.AnimParamCustom;
import com.sevtinge.cemiuiler.module.hook.home.title.BigIconCorner;
import com.sevtinge.cemiuiler.module.hook.home.title.DisableHideFile;
import com.sevtinge.cemiuiler.module.hook.home.title.DisableHideTheme;
import com.sevtinge.cemiuiler.module.hook.home.title.DownloadAnimation;
import com.sevtinge.cemiuiler.module.hook.home.title.EnableIconMonoChrome;
import com.sevtinge.cemiuiler.module.hook.home.title.FixAnimation;
import com.sevtinge.cemiuiler.module.hook.home.title.HiddenAllTitle;
import com.sevtinge.cemiuiler.module.hook.home.title.IconTitleColor;
import com.sevtinge.cemiuiler.module.hook.home.title.LargeIconCornerRadius;
import com.sevtinge.cemiuiler.module.hook.home.title.NewInstallIndicator;
import com.sevtinge.cemiuiler.module.hook.home.title.PerfectIcon;
import com.sevtinge.cemiuiler.module.hook.home.title.TitleFontSize;
import com.sevtinge.cemiuiler.module.hook.home.title.TitleMarquee;
import com.sevtinge.cemiuiler.module.hook.home.widget.AllWidgetAnimation;
import com.sevtinge.cemiuiler.module.hook.home.widget.AllowMoveAllWidgetToMinus;
import com.sevtinge.cemiuiler.module.hook.home.widget.AlwaysShowMiuiWidget;
import com.sevtinge.cemiuiler.module.hook.home.widget.HideWidgetTitles;
import com.sevtinge.cemiuiler.module.hook.home.widget.ResizableWidgets;
import com.sevtinge.cemiuiler.module.hook.systemframework.mipad.SetGestureNeedFingerNum;

import java.util.Objects;

public class Home extends BaseModule {

    @Override
    public void handleLoadPackage() {
        // dexKit load
        initHook(LoadHostDir.INSTANCE);

        // 手势
        initHook(new QuickBack(), mPrefsMap.getBoolean("home_navigation_quick_back"));
        initHook(new DoubleTap(), mPrefsMap.getInt("home_gesture_double_tap_action", 0) > 0);
        initHook(new ScreenSwipe(), mPrefsMap.getInt("home_gesture_up_swipe_action", 0) > 0 ||
            mPrefsMap.getInt("home_gesture_down_swipe_action", 0) > 0 ||
            mPrefsMap.getInt("home_gesture_up_swipe2_action", 0) > 0 ||
            mPrefsMap.getInt("home_gesture_down_swipe2_action", 0) > 0);
        initHook(new HotSeatSwipe(), mPrefsMap.getInt("home_gesture_left_swipe_action", 0) > 0
            || mPrefsMap.getInt("home_gesture_right_swipe_action", 0) > 0);
        initHook(new ShakeDevice(), mPrefsMap.getInt("home_gesture_shake_action", 0) > 0);
        // initHook(new SwipeAndStop(), mPrefsMap.getInt("home_gesture_swipe_and_stop_action" ,0) > 0);

        initHook(new BackGestureAreaHeight(), mPrefsMap.getInt("home_navigation_back_area_height", 60) != 60);
        initHook(new BackGestureAreaWidth(), mPrefsMap.getInt("home_navigation_back_area_width", 100) != 100);

        // 布局
        initHook(new UnlockGrids(), mPrefsMap.getBoolean("home_layout_unlock_grids"));
        // initHook(new UnlockGridsNoWord(), mPrefsMap.getBoolean("home_layout_unlock_grids_no_word"));
        initHook(new WorkspacePadding(), mPrefsMap.getBoolean("home_layout_workspace_padding_bottom_enable") ||
            mPrefsMap.getBoolean("home_layout_workspace_padding_top_enable"));

        initHook(new HotSeatsHeight(), mPrefsMap.getBoolean("home_layout_hotseats_height_enable"));
        initHook(new HotSeatsMarginTop(), mPrefsMap.getBoolean("home_layout_hotseats_margin_top_enable"));
        initHook(new HotSeatsMarginBottom(), mPrefsMap.getBoolean("home_layout_hotseats_margin_bottom_enable"));
        initHook(new SearchBarMarginBottom(), (mPrefsMap.getInt("home_layout_searchbar_margin_bottom", 0) > 0) &&
            mPrefsMap.getBoolean("home_layout_searchbar_margin_bottom_enable"));


        // 文件夹
        initHook(FolderAutoClose.INSTANCE, mPrefsMap.getBoolean("home_folder_auto_close"));
        initHook(new FolderShade(), mPrefsMap.getStringAsInt("home_folder_shade", 1) > 0);
        initHook(FolderColumns.INSTANCE, mPrefsMap.getInt("home_folder_columns", 3) != 3 ||
            mPrefsMap.getBoolean("home_folder_width"));
        initHook(new FolderAnimation(), mPrefsMap.getBoolean("home_folder_animation"));
        initHook(new SmallFolderIconBlur(), mPrefsMap.getBoolean("home_small_folder_icon_bg"));
        initHook(FolderVerticalPadding.INSTANCE, mPrefsMap.getInt("home_folder_vertical_padding", 0) != 0);

        initHook(new BigFolderIcon(), false);
        initHook(new BigFolderIconBlur2x1(), mPrefsMap.getBoolean("home_big_folder_icon_bg_2x1"));
        initHook(new BigFolderIconBlur1x2(), mPrefsMap.getBoolean("home_big_folder_icon_bg_1x2"));
        initHook(new BigFolderIconBlur(), mPrefsMap.getBoolean("home_big_folder_icon_bg"));
        initHook(new BigFolderItemMaxCount(), mPrefsMap.getBoolean("home_big_folder_item_max_count"));

        // 抽屉
        initHook(AppDrawer.INSTANCE, mPrefsMap.getBoolean("home_drawer_all") ||
            mPrefsMap.getBoolean("home_drawer_editor"));
        initHook(AllAppsContainerViewBlur.INSTANCE, mPrefsMap.getBoolean("home_drawer_blur") && !isAndroidR());
        initHook(new PinyinArrangement(), mPrefsMap.getBoolean("home_drawer_pinyin"));

        // 最近任务
        initHook(BlurLevel.INSTANCE, mPrefsMap.getStringAsInt("home_recent_blur_level", 6) != 6);
        initHook(DisableRecentViewWallpaperDarken.INSTANCE, mPrefsMap.getBoolean("home_recent_disable_wallpaper_dimming"));
        initHook(HideStatusBarWhenEnterRecent.INSTANCE, true);
        initHook(RemoveCardAnim.INSTANCE, mPrefsMap.getBoolean("home_recent_modify_animation"));
        initHook(TaskViewHorizontal.INSTANCE);
        initHook(TaskViewVertical.INSTANCE);
        initHook(HideFreeform.INSTANCE, mPrefsMap.getBoolean("home_recent_hide_freeform"));
        initHook(HideCleanUp.INSTANCE, mPrefsMap.getBoolean("home_recent_hide_clean_up"));
        initHook(FreeformCardBackgroundColor.INSTANCE);
        initHook(CardTextColor.INSTANCE);
        initHook(CardTextSize.INSTANCE);
        initHook(RecentText.INSTANCE, !Objects.equals(mPrefsMap.getString("home_recent_text", ""), ""));
        initHook(RemoveIcon.INSTANCE, mPrefsMap.getBoolean("home_recent_remove_icon"));
        initHook(RecentResource.INSTANCE, mPrefsMap.getInt("task_view_corners", 20) != 20 ||
            mPrefsMap.getInt("task_view_header_height", 40) != 40);
        initHook(RealMemory.INSTANCE, mPrefsMap.getBoolean("home_recent_show_real_memory"));
        initHook(MemInfoShow.INSTANCE, mPrefsMap.getBoolean("home_recent_show_memory_info") && isPad());
        initHook(AlwaysShowCleanUp.INSTANCE, mPrefsMap.getBoolean("always_show_clean_up"));

        // 图标
        initHook(BigIconCorner.INSTANCE, mPrefsMap.getBoolean("home_title_big_icon_corner"));
        initHook(new DownloadAnimation(), mPrefsMap.getBoolean("home_title_download_animation"));
        initHook(DisableHideTheme.INSTANCE, mPrefsMap.getBoolean("home_title_disable_hide_theme"));
        initHook(DisableHideFile.INSTANCE, mPrefsMap.getBoolean("home_title_disable_hide_file"));
        initHook(new AnimParamCustom(), mPrefsMap.getBoolean("home_title_custom_anim_param_main"));
        // initHook(new IconScaleHook()/*, mPrefsMap.getInt("home_title_icon_scale", 100) != 100*/);

        // 标题
        initHook(new TitleMarquee(), mPrefsMap.getBoolean("home_title_title_marquee"));
        initHook(new NewInstallIndicator(), mPrefsMap.getBoolean("home_title_title_new_install"));
        initHook(new HiddenAllTitle(), mPrefsMap.getBoolean("home_drawer_font_hidden"));
        initHook(new TitleFontSize(), mPrefsMap.getInt("home_title_font_size", 12) != 12);
        initHook(IconTitleColor.INSTANCE);
        initHook(new UnlockHotseatIcon(), mPrefsMap.getBoolean("home_dock_unlock_hotseat"));

        // 小部件
        initHook(new AllWidgetAnimation(), mPrefsMap.getBoolean("home_widget_all_widget_animation"));
        initHook(AlwaysShowMiuiWidget.INSTANCE, mPrefsMap.getBoolean("home_widget_show_miui_widget"));
        initHook(AllowMoveAllWidgetToMinus.INSTANCE, mPrefsMap.getBoolean("home_widget_allow_moved_to_minus_one_screen"));
        initHook(new WidgetCornerRadius(), mPrefsMap.getInt("home_widget_corner_radius", 0) > 0);
        initHook(HideWidgetTitles.INSTANCE, mPrefsMap.getBoolean("home_widget_hide_title"));
        initHook(ResizableWidgets.INSTANCE, mPrefsMap.getBoolean("home_widget_resizable"));

        // 底栏
        initHook(new DockCustom(), mPrefsMap.getBoolean("home_dock_bg_custom_enable"));
        initHook(new SeekPoints(), mPrefsMap.getStringAsInt("home_other_seek_points", 0) > 0);
        initHook(FoldDeviceDock.INSTANCE, mPrefsMap.getBoolean("home_dock_fold"));
        initHook(HideSeekPoint.INSTANCE, mPrefsMap.getBoolean("home_dock_hide_seekpoint"));
        initHook(ShowDockIconTitle.INSTANCE, mPrefsMap.getBoolean("home_dock_icon_title"));
        initHook(new HideNavigationBar(), mPrefsMap.getBoolean("system_ui_hide_navigation_bar"));
        initHook(DisableRecentsIcon.INSTANCE, mPrefsMap.getBoolean("home_dock_disable_recents_icon"));

        // 其他
        initHook(new HomeMode(), mPrefsMap.getStringAsInt("home_other_home_mode", 0) > 0);
        initHook(AlwaysShowStatusClock.INSTANCE, mPrefsMap.getBoolean("home_other_show_clock"));
        initHook(new InfiniteScroll(), mPrefsMap.getBoolean("home_other_infinite_scroll"));
        initHook(new FreeformShortcutMenu(), (mPrefsMap.getBoolean("home_other_freeform_shortcut_menu") || (mPrefsMap.getBoolean("home_other_tasks_shortcut_menu"))));
        initHook(new UserPresentAnimation(), mPrefsMap.getBoolean("home_other_user_present_animation"));
        initHook(new PerfectIcon(), mPrefsMap.getBoolean("home_other_perfect_icon"));
        initHook(new EnableIconMonoChrome(), mPrefsMap.getBoolean("home_other_icon_mono_chrome"));
        initHook(new HomePortraitReverse(), mPrefsMap.getBoolean("home_other_portrait_reverse"));
        initHook(A
Download .txt
gitextract_6q0v22cg/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── BUG-REPORT.yml
│   │   ├── FEATURE-REQUEST.yml
│   │   ├── MIGRATION-REQUEST.yml
│   │   └── config.yml
│   ├── dependabot.yml
│   └── workflows/
│       ├── android.yml
│       ├── androidu.yml
│       └── crowdin.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_en-US.md
├── README_pt-BR.md
├── app/
│   ├── .gitignore
│   ├── build.gradle
│   ├── dict.txt
│   ├── libs/
│   │   ├── animation-release.aar
│   │   ├── appcompat-release.aar
│   │   ├── core-release.aar
│   │   ├── haptic-release.aar
│   │   ├── hyperceiler_expansion_packs-debug.aar
│   │   ├── miui-framework.jar
│   │   ├── miui.jar
│   │   ├── preference-release.aar
│   │   ├── smooth-release.aar
│   │   └── springback-release.aar
│   ├── proguard-log.pro
│   ├── proguard-rules.pro
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── assets/
│           │   └── xposed_init
│           ├── java/
│           │   └── com/
│           │       ├── sevtinge/
│           │       │   └── cemiuiler/
│           │       │       ├── Application.java
│           │       │       ├── CrashRecord.kt
│           │       │       ├── XposedInit.kt
│           │       │       ├── callback/
│           │       │       │   └── IAppSelectCallback.java
│           │       │       ├── data/
│           │       │       │   ├── AppData.java
│           │       │       │   ├── LocationData.java
│           │       │       │   ├── ModData.java
│           │       │       │   ├── SQLiteHelper.java
│           │       │       │   └── adapter/
│           │       │       │       ├── AppDataAdapter.java
│           │       │       │       ├── ModSearchAdapter.java
│           │       │       │       └── MutipleChoiceAdapter.java
│           │       │       ├── module/
│           │       │       │   ├── app/
│           │       │       │   │   ├── AiAsst.java
│           │       │       │   │   ├── Aod.java
│           │       │       │   │   ├── Barrage.java
│           │       │       │   │   ├── Browser.java
│           │       │       │   │   ├── Camera.java
│           │       │       │   │   ├── Clock.java
│           │       │       │   │   ├── ContentExtension.java
│           │       │       │   │   ├── Creation.java
│           │       │       │   │   ├── Downloads.java
│           │       │       │   │   ├── ExternalStorage.java
│           │       │       │   │   ├── FileExplorer.java
│           │       │       │   │   ├── Gallery.java
│           │       │       │   │   ├── GlobalActions.java
│           │       │       │   │   ├── GuardProvider.java
│           │       │       │   │   ├── Home.java
│           │       │       │   │   ├── InCallUi.java
│           │       │       │   │   ├── Joyose.java
│           │       │       │   │   ├── Lbe.java
│           │       │       │   │   ├── Market.java
│           │       │       │   │   ├── MediaEditor.java
│           │       │       │   │   ├── MiLink.java
│           │       │       │   │   ├── MiSettings.java
│           │       │       │   │   ├── MiShare.java
│           │       │       │   │   ├── MiWallpaper.java
│           │       │       │   │   ├── Mirror.java
│           │       │       │   │   ├── Mms.java
│           │       │       │   │   ├── Mtb.java
│           │       │       │   │   ├── Music.java
│           │       │       │   │   ├── NetworkBoost.java
│           │       │       │   │   ├── Nfc.java
│           │       │       │   │   ├── Notes.java
│           │       │       │   │   ├── PackageInstaller.java
│           │       │       │   │   ├── PersonalAssistant.java
│           │       │       │   │   ├── Phone.java
│           │       │       │   │   ├── PowerKeeper.java
│           │       │       │   │   ├── Scanner.java
│           │       │       │   │   ├── ScreenRecorder.java
│           │       │       │   │   ├── ScreenShot.java
│           │       │       │   │   ├── SecurityCenter.java
│           │       │       │   │   ├── Settings.java
│           │       │       │   │   ├── SystemFramework.java
│           │       │       │   │   ├── SystemFrameworkForCorePatch.java
│           │       │       │   │   ├── SystemSettings.java
│           │       │       │   │   ├── SystemUI.java
│           │       │       │   │   ├── ThemeManager.java
│           │       │       │   │   ├── TsmClient.java
│           │       │       │   │   ├── Updater.java
│           │       │       │   │   ├── Various.java
│           │       │       │   │   ├── VoiceAssist.java
│           │       │       │   │   └── Weather.java
│           │       │       │   ├── base/
│           │       │       │   │   ├── BaseHook.java
│           │       │       │   │   ├── BaseModule.java
│           │       │       │   │   ├── BaseXposedInit.java
│           │       │       │   │   ├── HostDir.kt
│           │       │       │   │   └── IXposedHook.java
│           │       │       │   └── hook/
│           │       │       │       ├── aiasst/
│           │       │       │       │   └── AiCaptions.kt
│           │       │       │       ├── aod/
│           │       │       │       │   └── UnlockAlwaysOnDisplay.kt
│           │       │       │       ├── barrage/
│           │       │       │       │   ├── AnyBarrage.kt
│           │       │       │       │   └── CustomBarrageLength.kt
│           │       │       │       ├── browser/
│           │       │       │       │   └── DebugMode.kt
│           │       │       │       ├── camera/
│           │       │       │       │   ├── EnableLabOptions.kt
│           │       │       │       │   ├── Unlock120Fps.java
│           │       │       │       │   ├── Unlock60Fps.java
│           │       │       │       │   ├── UnlockAiEnhance.java
│           │       │       │       │   ├── UnlockAiShutter.java
│           │       │       │       │   ├── UnlockAiWatermark.java
│           │       │       │       │   ├── UnlockAmbilight.java
│           │       │       │       │   ├── UnlockAudioZoom.java
│           │       │       │       │   ├── UnlockClone.java
│           │       │       │       │   ├── UnlockColorEnhance.java
│           │       │       │       │   ├── UnlockCosmeticMirror.java
│           │       │       │       │   ├── UnlockCvlens.java
│           │       │       │       │   ├── UnlockCyberFocusVersion2.java
│           │       │       │       │   ├── UnlockDoc.java
│           │       │       │       │   ├── UnlockDualcam.java
│           │       │       │       │   ├── UnlockDuration.java
│           │       │       │       │   ├── UnlockFilm.java
│           │       │       │       │   ├── UnlockFilmDelay.java
│           │       │       │       │   ├── UnlockFilmDollyZoom.java
│           │       │       │       │   ├── UnlockFilmDream.java
│           │       │       │       │   ├── UnlockFilmSlowShutter.java
│           │       │       │       │   ├── UnlockFilmTimeBackflow.java
│           │       │       │       │   ├── UnlockFilmTimeFreeze.java
│           │       │       │       │   ├── UnlockHandGesture.java
│           │       │       │       │   ├── UnlockHdr.java
│           │       │       │       │   ├── UnlockHeic.java
│           │       │       │       │   ├── UnlockIdcard.java
│           │       │       │       │   ├── UnlockLog.java
│           │       │       │       │   ├── UnlockMakeup.java
│           │       │       │       │   ├── UnlockMenMakeup.java
│           │       │       │       │   ├── UnlockMilive.java
│           │       │       │       │   ├── UnlockMoon.java
│           │       │       │       │   ├── UnlockNevus.java
│           │       │       │       │   ├── UnlockNewBeauty.java
│           │       │       │       │   ├── UnlockPano.java
│           │       │       │       │   ├── UnlockPixel.java
│           │       │       │       │   ├── UnlockPortrait.java
│           │       │       │       │   ├── UnlockRaw.java
│           │       │       │       │   ├── UnlockSlow.java
│           │       │       │       │   ├── UnlockTrackEyes.java
│           │       │       │       │   ├── UnlockTrackFeature.java
│           │       │       │       │   ├── UnlockTrackFocus.java
│           │       │       │       │   ├── UnlockVideosky.java
│           │       │       │       │   ├── UnlockVlog.java
│           │       │       │       │   └── UnlockVlogPro.java
│           │       │       │       ├── clock/
│           │       │       │       │   └── EnableHourGlass.java
│           │       │       │       ├── contentextension/
│           │       │       │       │   ├── DoublePress.kt
│           │       │       │       │   ├── HorizontalContentExtension.kt
│           │       │       │       │   ├── LinkOpenMode.java
│           │       │       │       │   ├── SuperImage.kt
│           │       │       │       │   ├── UnlockTaplus.kt
│           │       │       │       │   └── UseThirdPartyBrowser.java
│           │       │       │       ├── creation/
│           │       │       │       │   └── UnlockCreation.kt
│           │       │       │       ├── downloads/
│           │       │       │       │   └── FuckXlDownload.java
│           │       │       │       ├── externalstorage/
│           │       │       │       │   └── DisableFolderCantUse.java
│           │       │       │       ├── fileexplorer/
│           │       │       │       │   └── SelectName.kt
│           │       │       │       ├── gallery/
│           │       │       │       │   ├── EnableHdrEnhance.java
│           │       │       │       │   ├── EnableIdPhoto.java
│           │       │       │       │   ├── EnableMagicMatting.java
│           │       │       │       │   ├── EnableMagicSky.java
│           │       │       │       │   ├── EnableOcr.java
│           │       │       │       │   ├── EnableOcrForm.java
│           │       │       │       │   ├── EnablePdf.java
│           │       │       │       │   ├── EnablePhotoMovie.java
│           │       │       │       │   ├── EnableRemover2.java
│           │       │       │       │   ├── EnableTextYanhua.java
│           │       │       │       │   ├── EnableVideoEditor.java
│           │       │       │       │   └── EnableVideoPost.java
│           │       │       │       ├── guardprovider/
│           │       │       │       │   ├── DisableUploadAppList.java
│           │       │       │       │   └── DisableUploadAppListNew.kt
│           │       │       │       ├── home/
│           │       │       │       │   ├── AllAppsBlur.java
│           │       │       │       │   ├── AnimDurationRatio.kt
│           │       │       │       │   ├── FreeFormCountForHome.java
│           │       │       │       │   ├── HideNavigationBar.java
│           │       │       │       │   ├── HomePortraitReverse.java
│           │       │       │       │   ├── MaxFreeForm.kt
│           │       │       │       │   ├── ScreenSwipe.java
│           │       │       │       │   ├── SeekPoints.java
│           │       │       │       │   ├── SetDeviceLevel.kt
│           │       │       │       │   ├── StickyFloatingWindowsForHome.java
│           │       │       │       │   ├── ToastSlideAgain.java
│           │       │       │       │   ├── UnlockHotseatIcon.kt
│           │       │       │       │   ├── UserPresentAnimation.java
│           │       │       │       │   ├── WidgetCornerRadius.java
│           │       │       │       │   ├── WidgetCrack.java
│           │       │       │       │   ├── dock/
│           │       │       │       │   │   ├── DisableRecentsIcon.kt
│           │       │       │       │   │   ├── DockCustom.java
│           │       │       │       │   │   ├── FoldDeviceDock.kt
│           │       │       │       │   │   ├── FoldDock.java
│           │       │       │       │   │   ├── HideSeekPoint.kt
│           │       │       │       │   │   └── ShowDockIconTitle.kt
│           │       │       │       │   ├── drawer/
│           │       │       │       │   │   ├── AllAppsContainerViewBlur.kt
│           │       │       │       │   │   ├── AppDrawer.kt
│           │       │       │       │   │   └── PinyinArrangement.java
│           │       │       │       │   ├── folder/
│           │       │       │       │   │   ├── BigFolderIcon.java
│           │       │       │       │   │   ├── BigFolderIconBlur.java
│           │       │       │       │   │   ├── BigFolderIconBlur1x2.java
│           │       │       │       │   │   ├── BigFolderIconBlur2x1.java
│           │       │       │       │   │   ├── BigFolderItemMaxCount.java
│           │       │       │       │   │   ├── FolderAnimation.kt
│           │       │       │       │   │   ├── FolderAutoClose.kt
│           │       │       │       │   │   ├── FolderBlur.kt
│           │       │       │       │   │   ├── FolderColumns.kt
│           │       │       │       │   │   ├── FolderShade.java
│           │       │       │       │   │   ├── FolderVerticalPadding.kt
│           │       │       │       │   │   └── SmallFolderIconBlur.java
│           │       │       │       │   ├── gesture/
│           │       │       │       │   │   ├── DoubleTap.java
│           │       │       │       │   │   ├── DoubleTapController.kt
│           │       │       │       │   │   ├── HotSeatSwipe.java
│           │       │       │       │   │   ├── QuickBack.java
│           │       │       │       │   │   ├── ShakeDevice.java
│           │       │       │       │   │   └── SwipeAndStop.java
│           │       │       │       │   ├── layout/
│           │       │       │       │   │   ├── HotSeatsHeight.java
│           │       │       │       │   │   ├── HotSeatsMarginBottom.java
│           │       │       │       │   │   ├── HotSeatsMarginTop.java
│           │       │       │       │   │   ├── SearchBarMarginBottom.java
│           │       │       │       │   │   ├── ShowClock.java
│           │       │       │       │   │   ├── UnlockGrids.java
│           │       │       │       │   │   ├── UnlockGridsNoWord.java
│           │       │       │       │   │   └── WorkspacePadding.java
│           │       │       │       │   ├── mipad/
│           │       │       │       │   │   ├── EnableHideGestureLine.kt
│           │       │       │       │   │   ├── EnableMoreSetting.kt
│           │       │       │       │   │   └── SetGestureNeedFingerNum.kt
│           │       │       │       │   ├── navigation/
│           │       │       │       │   │   ├── BackGestureAreaHeight.java
│           │       │       │       │   │   └── BackGestureAreaWidth.java
│           │       │       │       │   ├── other/
│           │       │       │       │   │   ├── AlwaysBlurWallpaper.kt
│           │       │       │       │   │   ├── AlwaysShowStatusClock.kt
│           │       │       │       │   │   ├── BlurRadius.kt
│           │       │       │       │   │   ├── BlurWhenShowShortcutMenu.kt
│           │       │       │       │   │   ├── DisableHideGoogle.kt
│           │       │       │       │   │   ├── FixAndroidRS.kt
│           │       │       │       │   │   ├── FreeformShortcutMenu.java
│           │       │       │       │   │   ├── HomeMode.java
│           │       │       │       │   │   ├── InfiniteScroll.java
│           │       │       │       │   │   ├── OverlapMode.kt
│           │       │       │       │   │   ├── ShortcutBackgroundBlur.kt
│           │       │       │       │   │   ├── ShortcutItemCount.kt
│           │       │       │       │   │   └── ShowAllHideApp.kt
│           │       │       │       │   ├── recent/
│           │       │       │       │   │   ├── AlwaysShowCleanUp.kt
│           │       │       │       │   │   ├── BlurLevel.kt
│           │       │       │       │   │   ├── CardTextColor.kt
│           │       │       │       │   │   ├── CardTextSize.kt
│           │       │       │       │   │   ├── DisableRecentViewWallpaperDarken.kt
│           │       │       │       │   │   ├── FreeformCardBackgroundColor.kt
│           │       │       │       │   │   ├── HideCleanUp.kt
│           │       │       │       │   │   ├── HideFreeform.kt
│           │       │       │       │   │   ├── HideStatusBarWhenEnterRecent.kt
│           │       │       │       │   │   ├── MemInfoShow.kt
│           │       │       │       │   │   ├── RealMemory.kt
│           │       │       │       │   │   ├── RecentResource.kt
│           │       │       │       │   │   ├── RecentText.kt
│           │       │       │       │   │   ├── RemoveCardAnim.kt
│           │       │       │       │   │   ├── RemoveIcon.kt
│           │       │       │       │   │   ├── TaskViewHorizontal.kt
│           │       │       │       │   │   └── TaskViewVertical.kt
│           │       │       │       │   ├── title/
│           │       │       │       │   │   ├── AnimParamCustom.java
│           │       │       │       │   │   ├── BigIconCorner.kt
│           │       │       │       │   │   ├── DisableHideFile.kt
│           │       │       │       │   │   ├── DisableHideTheme.kt
│           │       │       │       │   │   ├── DownloadAnimation.java
│           │       │       │       │   │   ├── EnableIconMonetColor.kt
│           │       │       │       │   │   ├── EnableIconMonoChrome.java
│           │       │       │       │   │   ├── FixAnimation.java
│           │       │       │       │   │   ├── HiddenAllTitle.java
│           │       │       │       │   │   ├── IconScaleHook.java
│           │       │       │       │   │   ├── IconTitleColor.kt
│           │       │       │       │   │   ├── LargeIconCornerRadius.java
│           │       │       │       │   │   ├── NewInstallIndicator.java
│           │       │       │       │   │   ├── PerfectIcon.java
│           │       │       │       │   │   ├── TitleFontSize.java
│           │       │       │       │   │   └── TitleMarquee.java
│           │       │       │       │   └── widget/
│           │       │       │       │       ├── AllWidgetAnimation.java
│           │       │       │       │       ├── AllowMoveAllWidgetToMinus.kt
│           │       │       │       │       ├── AlwaysShowMiuiWidget.kt
│           │       │       │       │       ├── HideWidgetTitles.kt
│           │       │       │       │       └── ResizableWidgets.kt
│           │       │       │       ├── incallui/
│           │       │       │       │   ├── AnswerInHeadUp.java
│           │       │       │       │   └── HideCrbt.java
│           │       │       │       ├── joyose/
│           │       │       │       │   ├── DisableCloudControl.java
│           │       │       │       │   ├── DisableCloudControl.kt
│           │       │       │       │   ├── EnableGpuTuner.java
│           │       │       │       │   └── EnableGpuTuner.kt
│           │       │       │       ├── lbe/
│           │       │       │       │   └── DisableClipboardTip.kt
│           │       │       │       ├── market/
│           │       │       │       │   ├── DeviceModify.java
│           │       │       │       │   └── NewIcon.java
│           │       │       │       ├── mediaeditor/
│           │       │       │       │   ├── FilterManagerAll.kt
│           │       │       │       │   └── UnlockMinimumCropLimitNew.kt
│           │       │       │       ├── milink/
│           │       │       │       │   └── UnlockMiShare.java
│           │       │       │       ├── mirror/
│           │       │       │       │   └── UnlockMiuiPlus.java
│           │       │       │       ├── misettings/
│           │       │       │       │   ├── CustomRefreshRate.kt
│           │       │       │       │   └── ShowMoreFpsList.kt
│           │       │       │       ├── mishare/
│           │       │       │       │   ├── NoAutoTurnOff.kt
│           │       │       │       │   └── UnlockTurboMode.kt
│           │       │       │       ├── miwallpaper/
│           │       │       │       │   └── UnlockSuperWallpaper.java
│           │       │       │       ├── mms/
│           │       │       │       │   └── DisableAd.kt
│           │       │       │       ├── mtb/
│           │       │       │       │   ├── BypassAuthentication.kt
│           │       │       │       │   └── IsUserBuild.kt
│           │       │       │       ├── music/
│           │       │       │       │   └── DisableAd.java
│           │       │       │       ├── networkboost/
│           │       │       │       │   └── LinkTurboToast.java
│           │       │       │       ├── nfc/
│           │       │       │       │   ├── AllowInformationScreen.kt
│           │       │       │       │   └── DisableSound.java
│           │       │       │       ├── packageinstaller/
│           │       │       │       │   ├── AllAsSystemApp.kt
│           │       │       │       │   ├── DisableAD.kt
│           │       │       │       │   ├── DisableCountChecking.kt
│           │       │       │       │   ├── DisableSafeModelTip.kt
│           │       │       │       │   ├── DisplayMoreApkInfo.java
│           │       │       │       │   ├── DisplayMoreApkInfoNew.kt
│           │       │       │       │   ├── InstallRiskDisable.kt
│           │       │       │       │   ├── InstallSource.java
│           │       │       │       │   ├── MiuiPackageInstallModify.java
│           │       │       │       │   ├── SafeMode.java
│           │       │       │       │   └── UpdateSystemApp.java
│           │       │       │       ├── personalassistant/
│           │       │       │       │   ├── BlurOverlay.java
│           │       │       │       │   ├── BlurPersonalAssistant.kt
│           │       │       │       │   ├── BlurPersonalAssistantBackGround.kt
│           │       │       │       │   ├── EnableFoldWidget.java
│           │       │       │       │   ├── PadWidgetEnable.java
│           │       │       │       │   └── WidgetCrack.kt
│           │       │       │       ├── phone/
│           │       │       │       │   ├── DualNrSupport.kt
│           │       │       │       │   ├── DualSaSupport.kt
│           │       │       │       │   ├── ModemFeature.kt
│           │       │       │       │   ├── N1BandPhone.kt
│           │       │       │       │   ├── N28BandPhone.kt
│           │       │       │       │   ├── N5N8BandPhone.kt
│           │       │       │       │   └── ViceSlotVolteButton.kt
│           │       │       │       ├── powerkeeper/
│           │       │       │       │   ├── CustomRefreshRate.kt
│           │       │       │       │   ├── DontKillApps.kt
│           │       │       │       │   ├── LockMaxFps.kt
│           │       │       │       │   └── PreventBatteryWitelist.java
│           │       │       │       ├── scanner/
│           │       │       │       │   ├── EnableCard.java
│           │       │       │       │   ├── EnableDocPpt.java
│           │       │       │       │   ├── EnableOcr.java
│           │       │       │       │   ├── EnableTranslation.java
│           │       │       │       │   └── document/
│           │       │       │       │       ├── EnableDocument.java
│           │       │       │       │       ├── EnableExcel.java
│           │       │       │       │       └── EnablePpt.java
│           │       │       │       ├── screenrecorder/
│           │       │       │       │   ├── ForceSupportPlaybackCapture.kt
│           │       │       │       │   ├── SaveToMovies.kt
│           │       │       │       │   ├── ScreenRecorderConfig.kt
│           │       │       │       │   └── UnlockMoreVolumeFrom.java
│           │       │       │       ├── screenshot/
│           │       │       │       │   ├── DeviceShellCustomize.kt
│           │       │       │       │   ├── SaveToPictures.kt
│           │       │       │       │   ├── UnlockMinimumCropLimit.kt
│           │       │       │       │   └── UnlockPrivacyMarking.kt
│           │       │       │       ├── securitycenter/
│           │       │       │       │   ├── AppLockPinScramble.java
│           │       │       │       │   ├── BlurSecurity.kt
│           │       │       │       │   ├── DisableReport.kt
│           │       │       │       │   ├── GetBubbleAppString.kt
│           │       │       │       │   ├── IsSbnBelongToActiveBubbleApp.kt
│           │       │       │       │   ├── NewBoxBlur.java
│           │       │       │       │   ├── RemoveConversationBubbleSettingsRestriction.kt
│           │       │       │       │   ├── RemoveOpenAppConfirmationPopup.kt
│           │       │       │       │   ├── SidebarLineCustom.kt
│           │       │       │       │   ├── VideoDolbyOpen.java
│           │       │       │       │   ├── app/
│           │       │       │       │   │   ├── AppDefaultSort.java
│           │       │       │       │   │   ├── AppDetails.java
│           │       │       │       │   │   ├── AppDisable.java
│           │       │       │       │   │   ├── AppRestrict.java
│           │       │       │       │   │   └── OpenByDefaultSetting.kt
│           │       │       │       │   ├── battery/
│           │       │       │       │   │   ├── ScreenUsedTime.kt
│           │       │       │       │   │   ├── ShowBatteryTemperature.java
│           │       │       │       │   │   ├── ShowBatteryTemperatureNew.kt
│           │       │       │       │   │   ├── UnlockSmartCharge.kt
│           │       │       │       │   │   └── UnlockSuperWirelessCharge.kt
│           │       │       │       │   ├── beauty/
│           │       │       │       │   │   ├── BeautyFace.kt
│           │       │       │       │   │   ├── BeautyLightAuto.kt
│           │       │       │       │   │   ├── BeautyPc.kt
│           │       │       │       │   │   └── BeautyPrivacy.kt
│           │       │       │       │   ├── lab/
│           │       │       │       │   │   ├── AiClipboardEnable.kt
│           │       │       │       │   │   ├── BlurLocationEnable.kt
│           │       │       │       │   │   ├── GetNumberEnable.kt
│           │       │       │       │   │   └── LabUtilsClass.kt
│           │       │       │       │   ├── other/
│           │       │       │       │   │   ├── DisableRootCheck.kt
│           │       │       │       │   │   ├── FuckRiskPkg.kt
│           │       │       │       │   │   ├── LockOneHundredPoints.kt
│           │       │       │       │   │   ├── NoLowBatteryWarning.kt
│           │       │       │       │   │   └── SkipCountDownLimit.java
│           │       │       │       │   └── sidebar/
│           │       │       │       │       ├── AddSideBarExpandReceiver.java
│           │       │       │       │       ├── DisableDockSuggest.java
│           │       │       │       │       ├── game/
│           │       │       │       │       │   ├── RemoveMacroBlackList.kt
│           │       │       │       │       │   └── UnlockGunService.kt
│           │       │       │       │       └── video/
│           │       │       │       │           ├── DisableRemoveScreenHoldOn.kt
│           │       │       │       │           ├── UnlockEnhanceContours.kt
│           │       │       │       │           ├── UnlockMemc.kt
│           │       │       │       │           └── UnlockSuperResolution.kt
│           │       │       │       ├── settings/
│           │       │       │       │   ├── CemiuilerSettings.java
│           │       │       │       │   ├── NotificationImportance.java
│           │       │       │       │   └── VolumeSeparateControlForSettings.java
│           │       │       │       ├── systemframework/
│           │       │       │       │   ├── AllRotations.java
│           │       │       │       │   ├── AllowUninstall.java
│           │       │       │       │   ├── AllowUntrustedTouch.java
│           │       │       │       │   ├── AppDisableService.java
│           │       │       │       │   ├── AppLinkVerify.java
│           │       │       │       │   ├── BackgroundBlurDrawable.kt
│           │       │       │       │   ├── CleanOpenMenu.java
│           │       │       │       │   ├── CleanShareMenu.java
│           │       │       │       │   ├── DeleteOnPostNotification.kt
│           │       │       │       │   ├── DisableCleaner.kt
│           │       │       │       │   ├── DisableFreeformBlackList.java
│           │       │       │       │   ├── DisablePinVerifyPer72h.java
│           │       │       │       │   ├── FlagSecure.java
│           │       │       │       │   ├── FreeFormCount.kt
│           │       │       │       │   ├── FreeformBubble.java
│           │       │       │       │   ├── LocationSimulation.java
│           │       │       │       │   ├── MultiFreeFormSupported.kt
│           │       │       │       │   ├── PackagePermissions.java
│           │       │       │       │   ├── RemoveSmallWindowRestrictions.kt
│           │       │       │       │   ├── ScreenRotation.java
│           │       │       │       │   ├── SpeedInstall.java
│           │       │       │       │   ├── StickyFloatingWindows.java
│           │       │       │       │   ├── ThemeProvider.kt
│           │       │       │       │   ├── ThermalBrightness.java
│           │       │       │       │   ├── UseOriginalAnimation.java
│           │       │       │       │   ├── VolumeDefaultStream.java
│           │       │       │       │   ├── VolumeDisableSafe.java
│           │       │       │       │   ├── VolumeFirstPress.java
│           │       │       │       │   ├── VolumeMediaSteps.kt
│           │       │       │       │   ├── VolumeSeparateControl.java
│           │       │       │       │   ├── VolumeSteps.java
│           │       │       │       │   ├── corepatch/
│           │       │       │       │   │   ├── BypassSignCheckForT.kt
│           │       │       │       │   │   ├── CorePatchForR.java
│           │       │       │       │   │   ├── CorePatchForS.java
│           │       │       │       │   │   ├── CorePatchForT.java
│           │       │       │       │   │   ├── CorePatchForU.java
│           │       │       │       │   │   ├── ReturnConstant.java
│           │       │       │       │   │   └── XposedHelper.java
│           │       │       │       │   ├── display/
│           │       │       │       │   │   ├── AutoBrightness.java
│           │       │       │       │   │   ├── DisplayCutout.kt
│           │       │       │       │   │   └── ToastTime.java
│           │       │       │       │   ├── freeform/
│           │       │       │       │   │   └── OpenAppInFreeForm.java
│           │       │       │       │   ├── mipad/
│           │       │       │       │   │   ├── IgnoreStylusKeyGesture.kt
│           │       │       │       │   │   ├── NoMagicPointer.kt
│           │       │       │       │   │   ├── RemoveStylusBluetoothRestriction.kt
│           │       │       │       │   │   ├── RestoreEsc.kt
│           │       │       │       │   │   └── SetGestureNeedFingerNum.kt
│           │       │       │       │   └── network/
│           │       │       │       │       ├── DualNRSupport.kt
│           │       │       │       │       ├── DualSASupport.kt
│           │       │       │       │       ├── N1Band.kt
│           │       │       │       │       ├── N28Band.kt
│           │       │       │       │       └── N5N8Band.kt
│           │       │       │       ├── systemsettings/
│           │       │       │       │   ├── AddMiuiPlusEntry.java
│           │       │       │       │   ├── AppsFreezerEnable.java
│           │       │       │       │   ├── EnableFoldArea.kt
│           │       │       │       │   ├── EnablePadArea.kt
│           │       │       │       │   ├── EnableSpeedMode.java
│           │       │       │       │   ├── InternationalBuild.java
│           │       │       │       │   ├── NewNFCPage.java
│           │       │       │       │   ├── NoveltyHaptic.kt
│           │       │       │       │   ├── QuickManageOverlayPermission.kt
│           │       │       │       │   ├── QuickManageUnknownAppSources.kt
│           │       │       │       │   ├── UnLockAreaScreenshot.kt
│           │       │       │       │   ├── UnlockTaplusForSettings.kt
│           │       │       │       │   ├── ViewWifiPasswordHook.java
│           │       │       │       │   ├── VoipAssistantController.java
│           │       │       │       │   └── aiimage/
│           │       │       │       │       ├── UnlockAi.java
│           │       │       │       │       ├── UnlockMemc.java
│           │       │       │       │       └── UnlockSuperResolution.java
│           │       │       │       ├── systemui/
│           │       │       │       │   ├── AutoCollapse.java
│           │       │       │       │   ├── BatteryIndicator.java
│           │       │       │       │   ├── BluetoothRestrict.java
│           │       │       │       │   ├── ChargeAnimationStyle.java
│           │       │       │       │   ├── ClockCenterHook.java
│           │       │       │       │   ├── EnableVolumeBlur.kt
│           │       │       │       │   ├── HideNavigationBar.java
│           │       │       │       │   ├── MiuiGxzwSize.java
│           │       │       │       │   ├── MonetThemeOverlay.java
│           │       │       │       │   ├── NotificationFix.java
│           │       │       │       │   ├── NotificationFreeform.java
│           │       │       │       │   ├── NotificationVolumeSeparateSlider.java
│           │       │       │       │   ├── OriginChargeAnimation.java
│           │       │       │       │   ├── QSDetailBackGround.java
│           │       │       │       │   ├── QSLabelsHook.java
│           │       │       │       │   ├── ShouldPlayUnmuteSoundHook.java
│           │       │       │       │   ├── StatusBarActions.java
│           │       │       │       │   ├── SwitchControlPanel.java
│           │       │       │       │   ├── UseNativeRecents.java
│           │       │       │       │   ├── VolumeTimerValuesHook.java
│           │       │       │       │   ├── controlcenter/
│           │       │       │       │   │   ├── AddBlurEffectToNotificationView.kt
│           │       │       │       │   │   ├── BluetoothTileStyle.java
│           │       │       │       │   │   ├── CCGrid.kt
│           │       │       │       │   │   ├── CompactNotificationsHook.kt
│           │       │       │       │   │   ├── ControlCenterStyle.kt
│           │       │       │       │   │   ├── FiveGTile.java
│           │       │       │       │   │   ├── FixMediaControlPanel.kt
│           │       │       │       │   │   ├── FlashLight.java
│           │       │       │       │   │   ├── GmsTile.java
│           │       │       │       │   │   ├── MuteVisibleNotifications.java
│           │       │       │       │   │   ├── NotificationWeather.kt
│           │       │       │       │   │   ├── NotificationWeatherNew.kt
│           │       │       │       │   │   ├── NotificationWeatherOld.kt
│           │       │       │       │   │   ├── QQSGrid.kt
│           │       │       │       │   │   ├── QQSGridOld.java
│           │       │       │       │   │   ├── QSControlDetailBackgroundAlpha.kt
│           │       │       │       │   │   ├── QSGrid.kt
│           │       │       │       │   │   ├── QSGridLabels.java
│           │       │       │       │   │   ├── QSGridOld.java
│           │       │       │       │   │   ├── RedirectToNotificationChannelSetting.kt
│           │       │       │       │   │   ├── SmartHome.java
│           │       │       │       │   │   ├── SunlightMode.java
│           │       │       │       │   │   └── SwitchCCAndNotification.java
│           │       │       │       │   ├── lockscreen/
│           │       │       │       │   │   ├── AddBlurEffectToLockScreen.kt
│           │       │       │       │   │   ├── BlurButton.kt
│           │       │       │       │   │   ├── ChargingCVP.kt
│           │       │       │       │   │   ├── ClockDisplaySeconds.kt
│           │       │       │       │   │   ├── ForceClockUseSystemFontsHook.kt
│           │       │       │       │   │   ├── HideLockScreenHint.kt
│           │       │       │       │   │   ├── HideLockScreenStatusBar.kt
│           │       │       │       │   │   ├── HideLockscreenZenMode.kt
│           │       │       │       │   │   ├── LockScreenDoubleTapToSleep.kt
│           │       │       │       │   │   ├── NoPassword.kt
│           │       │       │       │   │   ├── RemoveCamera.kt
│           │       │       │       │   │   ├── RemoveSmartScreen.kt
│           │       │       │       │   │   └── ScramblePIN.java
│           │       │       │       │   ├── navigation/
│           │       │       │       │   │   ├── HandleLineCustom.kt
│           │       │       │       │   │   └── NavigationCustom.java
│           │       │       │       │   ├── plugin/
│           │       │       │       │   │   ├── EnableVolumeBlur.java
│           │       │       │       │   │   ├── HideDeviceControlEntry.java
│           │       │       │       │   │   ├── HideMiPlayEntry.java
│           │       │       │       │   │   ├── HideMiSmartHubEntry.java
│           │       │       │       │   │   └── PluginHelper.java
│           │       │       │       │   └── statusbar/
│           │       │       │       │       ├── BigMobileNetworkType.java
│           │       │       │       │       ├── DisplayHardwareDetail.java
│           │       │       │       │       ├── DoubleTapToSleep.kt
│           │       │       │       │       ├── DualRowSignalHook.java
│           │       │       │       │       ├── HideStatusBarBeforeScreenshot.java
│           │       │       │       │       ├── MobileNetwork.java
│           │       │       │       │       ├── NotificationIconColumns.kt
│           │       │       │       │       ├── SelectiveHideIconForAlarmClock.java
│           │       │       │       │       ├── WifiStandard.java
│           │       │       │       │       ├── clock/
│           │       │       │       │       │   ├── TimeCustomization.kt
│           │       │       │       │       │   └── TimeStyle.kt
│           │       │       │       │       ├── icon/
│           │       │       │       │       │   ├── all/
│           │       │       │       │       │   │   ├── BatteryStyle.kt
│           │       │       │       │       │   │   ├── BluetoothIcon.java
│           │       │       │       │       │   │   ├── DataSaverIcon.java
│           │       │       │       │       │   │   ├── HideBatteryIcon.kt
│           │       │       │       │       │   │   ├── HideVoWiFiIcon.kt
│           │       │       │       │       │   │   ├── IconsFromSystemManager.kt
│           │       │       │       │       │   │   ├── StatusBarIcon.kt
│           │       │       │       │       │   │   ├── StatusBarIconPositionAdjust.java
│           │       │       │       │       │   │   ├── StatusBarSimIcon.kt
│           │       │       │       │       │   │   └── WifiNetworkIndicator.kt
│           │       │       │       │       │   └── t/
│           │       │       │       │       │       └── UseNewHD.kt
│           │       │       │       │       ├── layout/
│           │       │       │       │       │   └── StatusBarLayout.kt
│           │       │       │       │       ├── model/
│           │       │       │       │       │   ├── MobileTypeSingleHook.kt
│           │       │       │       │       │   └── MobileTypeTextCustom.kt
│           │       │       │       │       └── network/
│           │       │       │       │           ├── NetworkSpeed.kt
│           │       │       │       │           ├── NetworkSpeedSec.kt
│           │       │       │       │           ├── NetworkSpeedSpacing.kt
│           │       │       │       │           ├── NetworkSpeedStyle.kt
│           │       │       │       │           ├── StatusBarNoNetSpeedSep.kt
│           │       │       │       │           └── s/
│           │       │       │       │               └── NetworkSpeedWidth.kt
│           │       │       │       ├── thememanager/
│           │       │       │       │   ├── DisableThemeAd.java
│           │       │       │       │   ├── DisableThemeAdNew.kt
│           │       │       │       │   ├── EnableFoldTheme.java
│           │       │       │       │   ├── EnablePadTheme.java
│           │       │       │       │   ├── ThemeCrackNew.kt
│           │       │       │       │   └── VersionCodeModify.java
│           │       │       │       ├── tsmclient/
│           │       │       │       │   └── AutoNfc.kt
│           │       │       │       ├── updater/
│           │       │       │       │   ├── DeviceModify.kt
│           │       │       │       │   ├── VabUpdate.kt
│           │       │       │       │   ├── VersionCodeModify.java
│           │       │       │       │   └── VersionCodeNew.kt
│           │       │       │       ├── various/
│           │       │       │       │   ├── CollapseMiuiTitle.java
│           │       │       │       │   ├── DialogBlur.java
│           │       │       │       │   ├── DialogCustom.java
│           │       │       │       │   ├── DialogGravity.java
│           │       │       │       │   ├── MiuiAppNoOverScroll.java
│           │       │       │       │   ├── NoAccessDeviceLogsRequest.kt
│           │       │       │       │   ├── NotificationBlur.java
│           │       │       │       │   ├── UnlockIme.kt
│           │       │       │       │   └── UnlockSuperClipboard.kt
│           │       │       │       ├── voiceassist/
│           │       │       │       │   └── UseThirdPartyBrowser.kt
│           │       │       │       └── weather/
│           │       │       │           └── SetDeviceLevel.java
│           │       │       ├── prefs/
│           │       │       │   └── PreferenceHeader.java
│           │       │       ├── provider/
│           │       │       │   └── SharedPrefsProvider.java
│           │       │       ├── ui/
│           │       │       │   ├── CustomHookActivity.java
│           │       │       │   ├── HideAppActivity.java
│           │       │       │   ├── MainActivity.java
│           │       │       │   ├── ModuleSettingsActivity.java
│           │       │       │   ├── SubPickerActivity.java
│           │       │       │   ├── SubSettings.java
│           │       │       │   ├── base/
│           │       │       │   │   ├── BaseSettingsActivity.java
│           │       │       │   │   ├── BaseSettingsProxy.java
│           │       │       │   │   ├── SettingsActivity.java
│           │       │       │   │   └── SettingsProxy.java
│           │       │       │   ├── customhook/
│           │       │       │   │   └── CustomHookConfigActivity.java
│           │       │       │   ├── fragment/
│           │       │       │   │   ├── AboutFragment.kt
│           │       │       │   │   ├── AiAsstFragment.java
│           │       │       │   │   ├── AodFragment.java
│           │       │       │   │   ├── BarrageFragment.java
│           │       │       │   │   ├── BrowserFragment.java
│           │       │       │   │   ├── CameraFragment.java
│           │       │       │   │   ├── ClockFragment.java
│           │       │       │   │   ├── ContentExtensionFragment.java
│           │       │       │   │   ├── CreationFragment.java
│           │       │       │   │   ├── DownloadsFragment.java
│           │       │       │   │   ├── FileExplorerFragment.java
│           │       │       │   │   ├── GalleryFragment.java
│           │       │       │   │   ├── GuardProviderFragment.java
│           │       │       │   │   ├── HomeFragment.java
│           │       │       │   │   ├── InCallUiFragment.java
│           │       │       │   │   ├── JoyoseFragment.java
│           │       │       │   │   ├── LbeFragment.java
│           │       │       │   │   ├── MainFragment.java
│           │       │       │   │   ├── MarketFragment.java
│           │       │       │   │   ├── MediaEditorFragment.java
│           │       │       │   │   ├── MiLinkFragment.java
│           │       │       │   │   ├── MiSettingsFragment.java
│           │       │       │   │   ├── MiShareFragment.java
│           │       │       │   │   ├── MiWallpaperFragment.java
│           │       │       │   │   ├── MirrorFragment.java
│           │       │       │   │   ├── MiuiPackageInstallerFragment.java
│           │       │       │   │   ├── MmsFragment.java
│           │       │       │   │   ├── ModuleSettingsFragment.java
│           │       │       │   │   ├── MtbFragment.java
│           │       │       │   │   ├── MusicFragment.java
│           │       │       │   │   ├── NetworkBoostFragment.java
│           │       │       │   │   ├── NfcFragment.java
│           │       │       │   │   ├── PersonalAssistantFragment.java
│           │       │       │   │   ├── PhoneFragment.java
│           │       │       │   │   ├── PowerKeeperFragment.java
│           │       │       │   │   ├── ScannerFragment.java
│           │       │       │   │   ├── ScreenRecorderFragment.java
│           │       │       │   │   ├── ScreenShotFragment.java
│           │       │       │   │   ├── SecurityCenterFragment.java
│           │       │       │   │   ├── SystemFrameworkFragment.java
│           │       │       │   │   ├── SystemSettingsFragment.java
│           │       │       │   │   ├── SystemUIFragment.java
│           │       │       │   │   ├── ThemeManagerFragment.java
│           │       │       │   │   ├── TsmClientFragment.java
│           │       │       │   │   ├── UpdaterFragment.java
│           │       │       │   │   ├── VariousFragment.java
│           │       │       │   │   ├── WeatherFragment.java
│           │       │       │   │   ├── about/
│           │       │       │   │   │   ├── AboutContributerFragment.java
│           │       │       │   │   │   └── AboutUseFragment.java
│           │       │       │   │   ├── base/
│           │       │       │   │   │   ├── BasePreferenceFragment.java
│           │       │       │   │   │   └── SettingsPreferenceFragment.java
│           │       │       │   │   ├── framework/
│           │       │       │   │   │   ├── DisplaySettings.java
│           │       │       │   │   │   ├── FreeFormSettings.java
│           │       │       │   │   │   ├── NetworkSettings.java
│           │       │       │   │   │   ├── OtherSettings.java
│           │       │       │   │   │   └── VolumeSettings.java
│           │       │       │   │   ├── home/
│           │       │       │   │   │   ├── HomeDockSettings.java
│           │       │       │   │   │   ├── HomeDrawerSettings.java
│           │       │       │   │   │   ├── HomeFolderSettings.java
│           │       │       │   │   │   ├── HomeGestureSettings.java
│           │       │       │   │   │   ├── HomeLayoutSettings.java
│           │       │       │   │   │   ├── HomeOtherSettings.java
│           │       │       │   │   │   ├── HomeRecentSettings.java
│           │       │       │   │   │   ├── HomeTitleAnimSettings.java
│           │       │       │   │   │   ├── HomeTitleSettings.java
│           │       │       │   │   │   ├── HomeWidgetSettings.java
│           │       │       │   │   │   └── anim/
│           │       │       │   │   │       ├── HomeTitleAnim1Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim2Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim3Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim4Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim5Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim6Settings.java
│           │       │       │   │   │       ├── HomeTitleAnim7Settings.java
│           │       │       │   │   │       └── HomeTitleAnim8Settings.java
│           │       │       │   │   ├── settings/
│           │       │       │   │   │   └── SafeModeFragment.java
│           │       │       │   │   ├── sub/
│           │       │       │   │   │   ├── AppPicker.java
│           │       │       │   │   │   ├── CustomBackgroundSettings.java
│           │       │       │   │   │   └── MultiActionSettings.java
│           │       │       │   │   ├── systemui/
│           │       │       │   │   │   ├── ControlCenterSettings.java
│           │       │       │   │   │   ├── LockScreenSettings.java
│           │       │       │   │   │   ├── NavigationSettings.java
│           │       │       │   │   │   ├── StatusBarSettings.java
│           │       │       │   │   │   ├── SystemUIOtherSettings.java
│           │       │       │   │   │   └── statusbar/
│           │       │       │   │   │       ├── BatteryDetailIndicatorSettings.java
│           │       │       │   │   │       ├── BatteryIndicatorSettings.java
│           │       │       │   │   │       ├── BatteryStyleSettings.java
│           │       │       │   │   │       ├── ClockIndicatorSettings.java
│           │       │       │   │   │       ├── DoubleLineNetworkSettings.java
│           │       │       │   │   │       ├── IconManageSettings.java
│           │       │       │   │   │       ├── MobileNetworkTypeSettings.java
│           │       │       │   │   │       └── NetworkSpeedIndicatorSettings.java
│           │       │       │   │   └── various/
│           │       │       │   │       ├── AOSPSettings.java
│           │       │       │   │       ├── AlertDialogSettings.java
│           │       │       │   │       └── MiPadSettings.java
│           │       │       │   └── various/
│           │       │       │       ├── LocationDataActivity.java
│           │       │       │       ├── LocationSimulationActivity.java
│           │       │       │       └── fragment/
│           │       │       │           └── VariousFragment.java
│           │       │       ├── utils/
│           │       │       │   ├── BackupUtils.java
│           │       │       │   ├── BitmapUtils.java
│           │       │       │   ├── BlurUtils.java
│           │       │       │   ├── ColorUtils.kt
│           │       │       │   ├── ColorUtilsStatic.java
│           │       │       │   ├── CtaUtils.java
│           │       │       │   ├── DexKit.kt
│           │       │       │   ├── DialogHelper.java
│           │       │       │   ├── DisplayUtils.java
│           │       │       │   ├── Helpers.java
│           │       │       │   ├── HookUtils.kt
│           │       │       │   ├── KotlinXposedHelper.kt
│           │       │       │   ├── LogcatHelper.java
│           │       │       │   ├── MathUtils.java
│           │       │       │   ├── PrefsMap.java
│           │       │       │   ├── PrefsUtils.java
│           │       │       │   ├── PropertyUtils.kt
│           │       │       │   ├── ResourcesHook.java
│           │       │       │   ├── SearchHelper.java
│           │       │       │   ├── SettingLauncher.java
│           │       │       │   ├── SettingLauncherHelper.java
│           │       │       │   ├── ShakeManager.java
│           │       │       │   ├── ShellUtils.java
│           │       │       │   ├── SystemProperties.kt
│           │       │       │   ├── TileUtils.java
│           │       │       │   ├── ToastHelper.java
│           │       │       │   ├── XposedUtils.java
│           │       │       │   ├── api/
│           │       │       │   │   ├── LinQiqiApis.kt
│           │       │       │   │   ├── VoyagerApis.kt
│           │       │       │   │   └── loadClassByLazy.kt
│           │       │       │   ├── devicesdk/
│           │       │       │   │   ├── AppUtils.kt
│           │       │       │   │   └── SystemSDK.kt
│           │       │       │   └── log/
│           │       │       │       ├── AndroidLogUtils.java
│           │       │       │       ├── XposedLogUtils.java
│           │       │       │       └── XposedLogUtilsKt.kt
│           │       │       └── view/
│           │       │           ├── BatteryIndicatorView.java
│           │       │           ├── BlurFrameLayout.java
│           │       │           ├── CircleImageView.java
│           │       │           ├── MultipleChoiceView.java
│           │       │           ├── RestartAlertDialog.java
│           │       │           ├── SpinnerEx.java
│           │       │           ├── WeatherData.kt
│           │       │           └── WeatherView.kt
│           │       └── zhenxiang/
│           │           └── blur/
│           │               ├── BackgroundBlurDrawableExtensions.kt
│           │               ├── BlurFrameLayout.kt
│           │               ├── BlurLinearLayout.kt
│           │               ├── SystemBlurController.kt
│           │               ├── ViewExtensions.kt
│           │               └── model/
│           │                   └── CornerRadius.kt
│           └── res/
│               ├── color/
│               │   ├── ic_small_window_color.xml
│               │   ├── ic_small_window_color2.xml
│               │   ├── ic_small_window_color3.xml
│               │   ├── ic_small_window_color4.xml
│               │   ├── ic_small_window_color5.xml
│               │   └── visual_check_text_color.xml
│               ├── drawable/
│               │   ├── baseline_wb_sunny_24.xml
│               │   ├── bubble_bar_pop_bg.xml
│               │   ├── ic_android_settings.xml
│               │   ├── ic_arrow_edit.xml
│               │   ├── ic_ationbar_back.xml
│               │   ├── ic_audio_system.xml
│               │   ├── ic_cemiuiler_settings_v130.xml
│               │   ├── ic_cemiuiler_settings_v140.xml
│               │   ├── ic_control_center_5g_toggle_off.xml
│               │   ├── ic_control_center_5g_toggle_on.xml
│               │   ├── ic_control_center_gms_toggle_off.xml
│               │   ├── ic_control_center_gms_toggle_on.xml
│               │   ├── ic_default_icon.xml
│               │   ├── ic_launcher_foreground.xml
│               │   ├── ic_miui_volume_notification.xml
│               │   ├── ic_miui_volume_notification_mute.xml
│               │   ├── ic_packageinstaller_background_dark.xml
│               │   ├── ic_packageinstaller_background_light.xml
│               │   ├── ic_qs_tile_bg_disabled.xml
│               │   ├── ic_qs_tile_bg_enabled.xml
│               │   ├── ic_qs_tile_bg_warning.xml
│               │   ├── ic_reboot_small.xml
│               │   ├── ic_settings.xml
│               │   ├── ic_small_window.xml
│               │   ├── ic_system_framework_new.xml
│               │   ├── ic_system_ui_new.xml
│               │   ├── ic_various.xml
│               │   ├── shutdown_progress.xml
│               │   ├── statusbar_signal_1_0.xml
│               │   ├── statusbar_signal_1_0_dark.xml
│               │   ├── statusbar_signal_1_0_dark_thick.xml
│               │   ├── statusbar_signal_1_0_thick.xml
│               │   ├── statusbar_signal_1_0_tint.xml
│               │   ├── statusbar_signal_1_0_tint_thick.xml
│               │   ├── statusbar_signal_1_1.xml
│               │   ├── statusbar_signal_1_1_dark.xml
│               │   ├── statusbar_signal_1_1_dark_thick.xml
│               │   ├── statusbar_signal_1_1_thick.xml
│               │   ├── statusbar_signal_1_1_tint.xml
│               │   ├── statusbar_signal_1_1_tint_thick.xml
│               │   ├── statusbar_signal_1_2.xml
│               │   ├── statusbar_signal_1_2_dark.xml
│               │   ├── statusbar_signal_1_2_dark_thick.xml
│               │   ├── statusbar_signal_1_2_thick.xml
│               │   ├── statusbar_signal_1_2_tint.xml
│               │   ├── statusbar_signal_1_2_tint_thick.xml
│               │   ├── statusbar_signal_1_3.xml
│               │   ├── statusbar_signal_1_3_dark.xml
│               │   ├── statusbar_signal_1_3_dark_thick.xml
│               │   ├── statusbar_signal_1_3_thick.xml
│               │   ├── statusbar_signal_1_3_tint.xml
│               │   ├── statusbar_signal_1_3_tint_thick.xml
│               │   ├── statusbar_signal_1_4.xml
│               │   ├── statusbar_signal_1_4_dark.xml
│               │   ├── statusbar_signal_1_4_dark_thick.xml
│               │   ├── statusbar_signal_1_4_thick.xml
│               │   ├── statusbar_signal_1_4_tint.xml
│               │   ├── statusbar_signal_1_4_tint_thick.xml
│               │   ├── statusbar_signal_1_5.xml
│               │   ├── statusbar_signal_1_5_dark.xml
│               │   ├── statusbar_signal_1_5_dark_thick.xml
│               │   ├── statusbar_signal_1_5_thick.xml
│               │   ├── statusbar_signal_1_5_tint.xml
│               │   ├── statusbar_signal_1_5_tint_thick.xml
│               │   ├── statusbar_signal_2_0.xml
│               │   ├── statusbar_signal_2_0_dark.xml
│               │   ├── statusbar_signal_2_0_dark_thick.xml
│               │   ├── statusbar_signal_2_0_thick.xml
│               │   ├── statusbar_signal_2_0_tint.xml
│               │   ├── statusbar_signal_2_0_tint_thick.xml
│               │   ├── statusbar_signal_2_1.xml
│               │   ├── statusbar_signal_2_1_dark.xml
│               │   ├── statusbar_signal_2_1_dark_thick.xml
│               │   ├── statusbar_signal_2_1_thick.xml
│               │   ├── statusbar_signal_2_1_tint.xml
│               │   ├── statusbar_signal_2_1_tint_thick.xml
│               │   ├── statusbar_signal_2_2.xml
│               │   ├── statusbar_signal_2_2_dark.xml
│               │   ├── statusbar_signal_2_2_dark_thick.xml
│               │   ├── statusbar_signal_2_2_thick.xml
│               │   ├── statusbar_signal_2_2_tint.xml
│               │   ├── statusbar_signal_2_2_tint_thick.xml
│               │   ├── statusbar_signal_2_3.xml
│               │   ├── statusbar_signal_2_3_dark.xml
│               │   ├── statusbar_signal_2_3_dark_thick.xml
│               │   ├── statusbar_signal_2_3_thick.xml
│               │   ├── statusbar_signal_2_3_tint.xml
│               │   ├── statusbar_signal_2_3_tint_thick.xml
│               │   ├── statusbar_signal_2_4.xml
│               │   ├── statusbar_signal_2_4_dark.xml
│               │   ├── statusbar_signal_2_4_dark_thick.xml
│               │   ├── statusbar_signal_2_4_thick.xml
│               │   ├── statusbar_signal_2_4_tint.xml
│               │   ├── statusbar_signal_2_4_tint_thick.xml
│               │   ├── statusbar_signal_2_5.xml
│               │   ├── statusbar_signal_2_5_dark.xml
│               │   ├── statusbar_signal_2_5_dark_thick.xml
│               │   ├── statusbar_signal_2_5_thick.xml
│               │   ├── statusbar_signal_2_5_tint.xml
│               │   └── statusbar_signal_2_5_tint_thick.xml
│               ├── drawable-v31/
│               │   └── ic_launcher_foreground.xml
│               ├── layout/
│               │   ├── activity_about.xml
│               │   ├── activity_custom_hook.xml
│               │   ├── activity_custom_hook_config.xml
│               │   ├── activity_location.xml
│               │   ├── fragment_app_picker.xml
│               │   ├── fragment_common_padded.xml
│               │   ├── frame_content.xml
│               │   ├── item_app_list.xml
│               │   ├── item_location.xml
│               │   ├── item_mutiplechoice.xml
│               │   ├── item_search_result.xml
│               │   ├── location_edit_dialog.xml
│               │   ├── preference_custom_blur_dark_mode.xml
│               │   ├── preference_custom_blur_light_mode.xml
│               │   ├── preference_dialog_edittext.xml
│               │   ├── preference_divider.xml
│               │   ├── preference_header.xml
│               │   ├── preference_round_layout.xml
│               │   ├── preference_seekbar_no_padding.xml
│               │   ├── preference_text.xml
│               │   ├── settings_main.xml
│               │   ├── statusbar_text_icon.xml
│               │   └── view_mutiplechoice.xml
│               ├── menu/
│               │   ├── menu_location.xml
│               │   ├── menu_location_simulation.xml
│               │   ├── menu_main.xml
│               │   └── menu_system_framework_other.xml
│               ├── mipmap-anydpi-v26/
│               │   └── ic_launcher.xml
│               ├── resources.properties
│               ├── values/
│               │   ├── arrays.xml
│               │   ├── attrs.xml
│               │   ├── bools.xml
│               │   ├── colors.xml
│               │   ├── dimens.xml
│               │   ├── integer.xml
│               │   ├── strings.xml
│               │   └── themes.xml
│               ├── values-ja-rJP/
│               │   └── strings.xml
│               ├── values-night/
│               │   └── themes.xml
│               ├── values-night-v31/
│               │   └── colors.xml
│               ├── values-pt-rBR/
│               │   └── strings.xml
│               ├── values-ru-rRU/
│               │   └── strings.xml
│               ├── values-tr-rTR/
│               │   └── strings.xml
│               ├── values-v31/
│               │   └── colors.xml
│               ├── values-vi-rVN/
│               │   └── strings.xml
│               ├── values-zh-rCN/
│               │   └── strings.xml
│               ├── values-zh-rHK/
│               │   └── strings.xml
│               ├── values-zh-rTW/
│               │   └── strings.xml
│               └── xml/
│                   ├── aiasst.xml
│                   ├── aod.xml
│                   ├── backup_rules.xml
│                   ├── barrage.xml
│                   ├── browser.xml
│                   ├── camera.xml
│                   ├── clock.xml
│                   ├── content_extension.xml
│                   ├── creation.xml
│                   ├── custom_background.xml
│                   ├── data_extraction_rules.xml
│                   ├── downloads.xml
│                   ├── fileexplorer.xml
│                   ├── framework.xml
│                   ├── framework_display.xml
│                   ├── framework_freeform.xml
│                   ├── framework_other.xml
│                   ├── framework_phone.xml
│                   ├── framework_volume.xml
│                   ├── gallery.xml
│                   ├── guard_provider.xml
│                   ├── home.xml
│                   ├── home_dock.xml
│                   ├── home_drawer.xml
│                   ├── home_folder.xml
│                   ├── home_gesture.xml
│                   ├── home_layout.xml
│                   ├── home_multi_action.xml
│                   ├── home_other.xml
│                   ├── home_recent.xml
│                   ├── home_title.xml
│                   ├── home_title_anim.xml
│                   ├── home_title_anim_1.xml
│                   ├── home_title_anim_2.xml
│                   ├── home_title_anim_3.xml
│                   ├── home_title_anim_4.xml
│                   ├── home_title_anim_5.xml
│                   ├── home_title_anim_6.xml
│                   ├── home_title_anim_7.xml
│                   ├── home_title_anim_8.xml
│                   ├── home_widget.xml
│                   ├── incallui.xml
│                   ├── joyose.xml
│                   ├── lbe_security.xml
│                   ├── market.xml
│                   ├── mediaeditor.xml
│                   ├── mi_settings.xml
│                   ├── milink.xml
│                   ├── mirror.xml
│                   ├── mishare.xml
│                   ├── miwallpaper.xml
│                   ├── mms.xml
│                   ├── mtb.xml
│                   ├── music.xml
│                   ├── networkboost.xml
│                   ├── nfc.xml
│                   ├── package_installer.xml
│                   ├── personal_assistant.xml
│                   ├── phone.xml
│                   ├── powerkeeper.xml
│                   ├── prefs_about.xml
│                   ├── prefs_about_contributor.xml
│                   ├── prefs_about_use.xml
│                   ├── prefs_main.xml
│                   ├── prefs_settings.xml
│                   ├── scanner.xml
│                   ├── screenrecorder.xml
│                   ├── screenshot.xml
│                   ├── security_center.xml
│                   ├── settings_safe_mode.xml
│                   ├── system_settings.xml
│                   ├── system_ui.xml
│                   ├── system_ui_control_center.xml
│                   ├── system_ui_lock_screen.xml
│                   ├── system_ui_navigation.xml
│                   ├── system_ui_other.xml
│                   ├── system_ui_status_bar.xml
│                   ├── system_ui_status_bar_battery_indicator.xml
│                   ├── system_ui_status_bar_battery_styles.xml
│                   ├── system_ui_status_bar_clock_indicator.xml
│                   ├── system_ui_status_bar_doubleline_network.xml
│                   ├── system_ui_status_bar_hardware_detail_indicator.xml
│                   ├── system_ui_status_bar_icon_manage.xml
│                   ├── system_ui_status_bar_mobile_network_type.xml
│                   ├── system_ui_status_bar_network_speed_indicator.xml
│                   ├── theme_manager.xml
│                   ├── tsmclient.xml
│                   ├── updater.xml
│                   ├── various.xml
│                   ├── various_aosp.xml
│                   ├── various_dialog.xml
│                   ├── various_location_simulation.xml
│                   ├── various_mipad.xml
│                   └── weather.xml
├── build.gradle
├── config.gradle
├── crowdin.yml
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── hidden-api/
│   ├── .gitignore
│   ├── build.gradle.kts
│   ├── proguard-rules.pro
│   └── src/
│       └── main/
│           └── java/
│               ├── android/
│               │   └── view/
│               │       └── ViewRootImpl.java
│               ├── com/
│               │   └── android/
│               │       └── internal/
│               │           └── graphics/
│               │               └── drawable/
│               │                   └── BackgroundBlurDrawable.java
│               └── miui/
│                   ├── app/
│                   │   └── MiuiFreeFormManager.java
│                   └── drm/
│                       ├── DrmManager.kt
│                       └── ThemeReceiver.kt
├── settings.gradle
└── signing.properties.example
Download .txt
SYMBOL INDEX (1783 symbols across 459 files)

FILE: app/src/main/java/com/sevtinge/cemiuiler/Application.java
  class Application (line 8) | public class Application extends android.app.Application {
    method attachBaseContext (line 10) | @Override
    method onCreate (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/callback/IAppSelectCallback.java
  type IAppSelectCallback (line 3) | public interface IAppSelectCallback {
    method sendMsgToActivity (line 5) | void sendMsgToActivity(byte[] appIcon, String appName, String appPacka...
    method getMsgFromActivity (line 7) | String getMsgFromActivity(String s);

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/AppData.java
  class AppData (line 5) | public class AppData {

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/LocationData.java
  class LocationData (line 3) | public class LocationData {
    method LocationData (line 14) | public LocationData() {
    method LocationData (line 18) | public LocationData(String title, Double longitude, Double latitude, i...
    method getTitle (line 29) | public String getTitle() {
    method setTitle (line 33) | public void setTitle(String title) {
    method getLongitude (line 37) | public Double getLongitude() {
    method setLongitude (line 41) | public void setLongitude(Double longitude) {
    method getLatitude (line 45) | public Double getLatitude() {
    method setLatitude (line 49) | public void setLatitude(Double latitude) {
    method getOffset (line 53) | public int getOffset() {
    method setOffset (line 57) | public void setOffset(int offset) {
    method getRegionCode (line 61) | public int getRegionCode() {
    method setRegionCode (line 65) | public void setRegionCode(int regionCode) {
    method getBaseStationCode (line 69) | public int getBaseStationCode() {
    method setBaseStationCode (line 73) | public void setBaseStationCode(int baseStationCode) {
    method getF (line 77) | public int getF() {
    method setF (line 81) | public void setF(int f) {
    method getRemarks (line 85) | public String getRemarks() {
    method setRemarks (line 89) | public void setRemarks(String remarks) {
    method toString (line 93) | public String toString() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/ModData.java
  class ModData (line 3) | public class ModData {
    type ModCat (line 13) | public enum ModCat {

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/SQLiteHelper.java
  class SQLiteHelper (line 15) | public class SQLiteHelper extends SQLiteOpenHelper {
    method SQLiteHelper (line 19) | public SQLiteHelper(@Nullable Context context) {
    method a (line 30) | private static String a(Context context) {
    method a (line 35) | public int a(LocationData data) {
    method b (line 40) | public long b(LocationData data) {
    method onCreate (line 52) | @Override
    method onUpgrade (line 57) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/adapter/AppDataAdapter.java
  class AppDataAdapter (line 23) | public class AppDataAdapter extends RecyclerView.Adapter<AppDataAdapter....
    method setData (line 33) | @SuppressLint("NotifyDataSetChanged")
    method AppDataAdapter (line 39) | public AppDataAdapter(Context context, String key, int type) {
    method setFilter (line 50) | @SuppressLint("NotifyDataSetChanged")
    method onCreateViewHolder (line 57) | @Override
    method onBindViewHolder (line 63) | @Override
    method shouldSelect (line 79) | public boolean shouldSelect(String pkgName) {
    method setOnItemClickListener (line 83) | public void setOnItemClickListener(onItemClickListener onItemClick) {
    method getItemCount (line 87) | @Override
    class ViewHolder (line 92) | public static class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 99) | public ViewHolder(View itemView) {
    type onItemClickListener (line 108) | public interface onItemClickListener {
      method onItemClick (line 109) | void onItemClick(View view, int position, AppData appData, boolean i...

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/adapter/ModSearchAdapter.java
  class ModSearchAdapter (line 27) | public class ModSearchAdapter extends RecyclerView.Adapter<ModSearchAdap...
    method setOnItemClickListener (line 35) | public void setOnItemClickListener(onItemClickListener onItemClick) {
    method onCreateViewHolder (line 39) | @Override
    method onBindViewHolder (line 47) | @Override
    method getItemCount (line 69) | @Override
    method getFilter (line 74) | @Override
    class ViewHolder (line 83) | public class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 89) | public ViewHolder(View itemView) {
    type onItemClickListener (line 98) | public interface onItemClickListener {
      method onItemClick (line 99) | void onItemClick(View view, ModData ad);
    class ItemFilter (line 103) | private class ItemFilter extends Filter {
      method performFiltering (line 104) | @Override
      method publishResults (line 125) | @SuppressLint("NotifyDataSetChanged")
    method sortList (line 137) | private void sortList() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/data/adapter/MutipleChoiceAdapter.java
  class MutipleChoiceAdapter (line 16) | public class MutipleChoiceAdapter extends RecyclerView.Adapter<MutipleCh...
    method MutipleChoiceAdapter (line 26) | public MutipleChoiceAdapter(List<String> list) {
    method initData (line 34) | private void initData() {
    type OnCurWillCheckAllChangedListener (line 40) | public interface OnCurWillCheckAllChangedListener {
      method onCurWillCheckAllChanged (line 41) | void onCurWillCheckAllChanged(boolean curWillCheckAll);
    method setOnCurWillCheckAllChangedListener (line 44) | public void setOnCurWillCheckAllChangedListener(OnCurWillCheckAllChang...
    method getCheckedArray (line 48) | public SparseBooleanArray getCheckedArray() {
    method setCheckedArray (line 52) | public void setCheckedArray(SparseBooleanArray isChecked) {
    method onCreateViewHolder (line 56) | @Override
    method onBindViewHolder (line 62) | @Override
    method getItemCount (line 88) | @Override
    class ViewHolder (line 93) | public class ViewHolder extends RecyclerView.ViewHolder {
      method ViewHolder (line 96) | public ViewHolder(View itemView) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/AiAsst.java
  class AiAsst (line 7) | public class AiAsst extends BaseModule {
    method handleLoadPackage (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Aod.java
  class Aod (line 6) | public class Aod extends BaseModule {
    method handleLoadPackage (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Barrage.java
  class Barrage (line 6) | public class Barrage extends BaseModule {
    method handleLoadPackage (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Browser.java
  class Browser (line 9) | public class Browser extends BaseModule {
    method handleLoadPackage (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Camera.java
  class Camera (line 50) | public class Camera extends BaseModule {
    method handleLoadPackage (line 52) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Clock.java
  class Clock (line 6) | public class Clock extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ContentExtension.java
  class ContentExtension (line 13) | public class ContentExtension extends BaseModule {
    method handleLoadPackage (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Creation.java
  class Creation (line 7) | public class Creation extends BaseModule {
    method handleLoadPackage (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Downloads.java
  class Downloads (line 6) | public class Downloads extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ExternalStorage.java
  class ExternalStorage (line 6) | public class ExternalStorage extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/FileExplorer.java
  class FileExplorer (line 7) | public class FileExplorer extends BaseModule {
    method handleLoadPackage (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Gallery.java
  class Gallery (line 16) | public class Gallery extends BaseModule {
    method handleLoadPackage (line 18) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/GlobalActions.java
  class GlobalActions (line 26) | @SuppressLint("UnspecifiedRegisterReceiverFlag")
    method init (line 30) | @Override
    method setupGlobalActions (line 37) | public void setupGlobalActions() {
    method proxySystemProperties (line 55) | public static void proxySystemProperties(String method, String prop, S...
    method onReceive (line 62) | @Override
    method setupRestartActions (line 127) | public void setupRestartActions() {
    method forceStopPackage (line 139) | private static void forceStopPackage(Context context, String packageNa...
    method onReceive (line 145) | @Override
    method handleAction (line 163) | public static boolean handleAction(Context context, String key) {
    method handleAction (line 167) | public static boolean handleAction(Context context, String key, boolea...
    method setAction (line 216) | public static boolean setAction(Context context, String action) {
    method isMediaActionsAllowed (line 247) | public static boolean isMediaActionsAllowed(Context mContext) {
    method sendDownUpKeyEvent (line 262) | public static void sendDownUpKeyEvent(Context mContext, int keyCode, b...
    method launchAppIntent (line 271) | public static boolean launchAppIntent(Context context, String key, boo...
    method launchIntent (line 275) | public static boolean launchIntent(Context context, Intent intent) {
    type IntentType (line 285) | enum IntentType {
    method getIntent (line 289) | public static Intent getIntent(Context context, String prefs, IntentTy...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/GuardProvider.java
  class GuardProvider (line 8) | public class GuardProvider extends BaseModule {
    method handleLoadPackage (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Home.java
  class Home (line 111) | public class Home extends BaseModule {
    method handleLoadPackage (line 113) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/InCallUi.java
  class InCallUi (line 7) | public class InCallUi extends BaseModule {
    method handleLoadPackage (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Joyose.java
  class Joyose (line 9) | public class Joyose extends BaseModule {
    method handleLoadPackage (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Lbe.java
  class Lbe (line 6) | public class Lbe extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Market.java
  class Market (line 6) | public class Market extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/MediaEditor.java
  class MediaEditor (line 9) | public class MediaEditor extends BaseModule {
    method handleLoadPackage (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/MiLink.java
  class MiLink (line 6) | public class MiLink extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/MiSettings.java
  class MiSettings (line 9) | public class MiSettings extends BaseModule {
    method handleLoadPackage (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/MiShare.java
  class MiShare (line 9) | public class MiShare extends BaseModule {
    method handleLoadPackage (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/MiWallpaper.java
  class MiWallpaper (line 6) | public class MiWallpaper extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Mirror.java
  class Mirror (line 6) | public class Mirror extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Mms.java
  class Mms (line 9) | public class Mms extends BaseModule {
    method handleLoadPackage (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Mtb.java
  class Mtb (line 7) | public class Mtb extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Music.java
  class Music (line 6) | public class Music extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/NetworkBoost.java
  class NetworkBoost (line 6) | public class NetworkBoost extends BaseModule {
    method handleLoadPackage (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Nfc.java
  class Nfc (line 6) | public class Nfc extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Notes.java
  class Notes (line 6) | public class Notes extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/PackageInstaller.java
  class PackageInstaller (line 17) | public class PackageInstaller extends BaseModule {
    method handleLoadPackage (line 19) | public void handleLoadPackage() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/PersonalAssistant.java
  class PersonalAssistant (line 14) | public class PersonalAssistant extends BaseModule {
    method handleLoadPackage (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Phone.java
  class Phone (line 12) | public class Phone extends BaseModule {
    method handleLoadPackage (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/PowerKeeper.java
  class PowerKeeper (line 11) | public class PowerKeeper extends BaseModule {
    method handleLoadPackage (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Scanner.java
  class Scanner (line 12) | public class Scanner extends BaseModule {
    method handleLoadPackage (line 14) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ScreenRecorder.java
  class ScreenRecorder (line 11) | public class ScreenRecorder extends BaseModule {
    method handleLoadPackage (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ScreenShot.java
  class ScreenShot (line 14) | public class ScreenShot extends BaseModule {
    method handleLoadPackage (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/SecurityCenter.java
  class SecurityCenter (line 47) | public class SecurityCenter extends BaseModule {
    method handleLoadPackage (line 49) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Settings.java
  class Settings (line 8) | public class Settings extends BaseModule {
    method handleLoadPackage (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemFramework.java
  class SystemFramework (line 53) | public class SystemFramework extends BaseModule {
    method handleLoadPackage (line 55) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemFrameworkForCorePatch.java
  class SystemFrameworkForCorePatch (line 15) | public class SystemFrameworkForCorePatch implements IXposedHookLoadPacka...
    method handleLoadPackage (line 18) | @Override
    method initZygote (line 38) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemSettings.java
  class SystemSettings (line 24) | public class SystemSettings extends BaseModule {
    method handleLoadPackage (line 26) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemUI.java
  class SystemUI (line 87) | public class SystemUI extends BaseModule {
    method handleLoadPackage (line 89) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/ThemeManager.java
  class ThemeManager (line 9) | public class ThemeManager extends BaseModule {
    method handleLoadPackage (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/TsmClient.java
  class TsmClient (line 6) | public class TsmClient extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Updater.java
  class Updater (line 13) | public class Updater extends BaseModule {
    method handleLoadPackage (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Various.java
  class Various (line 12) | public class Various extends BaseModule {
    method handleLoadPackage (line 20) | @Override
    method isMiuiOverScrollApps (line 36) | private boolean isMiuiOverScrollApps() {
    method isMiuiDialogCustom (line 40) | private boolean isMiuiDialogCustom() {
    method isCollapseMiuiTitleApps (line 44) | private boolean isCollapseMiuiTitleApps() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/VoiceAssist.java
  class VoiceAssist (line 8) | public class VoiceAssist extends BaseModule {
    method handleLoadPackage (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/app/Weather.java
  class Weather (line 6) | public class Weather extends BaseModule {
    method handleLoadPackage (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/base/BaseHook.java
  class BaseHook (line 20) | public abstract class BaseHook {
    method init (line 32) | public abstract void init();
    method onCreate (line 34) | public void onCreate(LoadPackageParam lpparam) {
    method setLoadPackageParam (line 46) | public void setLoadPackageParam(LoadPackageParam param) {
    method findClass (line 50) | public Class<?> findClass(String className) {
    method findClass (line 54) | public Class<?> findClass(String className, ClassLoader classLoader) {
    method findClassIfExists (line 58) | public Class<?> findClassIfExists(String className) {
    method findClassIfExists (line 67) | public Class<?> findClassIfExists(String newClassName, String oldClass...
    method findClassIfExists (line 76) | public Class<?> findClassIfExists(String className, ClassLoader classL...
    class MethodHook (line 85) | public static class MethodHook extends XC_MethodHook {
      method before (line 87) | protected void before(MethodHookParam param) throws Throwable {
      method after (line 90) | protected void after(MethodHookParam param) throws Throwable {
      method MethodHook (line 93) | public MethodHook() {
      method MethodHook (line 97) | public MethodHook(int priority) {
      method beforeHookedMethod (line 102) | @Override
      method afterHookedMethod (line 111) | @Override
    method findAndHookMethod (line 122) | public void findAndHookMethod(Class<?> clazz, String methodName, Objec...
    method findAndHookMethod (line 126) | public void findAndHookMethod(String className, String methodName, Obj...
    method findAndHookMethodSilently (line 130) | public boolean findAndHookMethodSilently(String className, String meth...
    method findAndHookMethodSilently (line 140) | public boolean findAndHookMethodSilently(Class<?> clazz, String method...
    method findAndHookConstructor (line 150) | public void findAndHookConstructor(String className, Object... paramet...
    method findAndHookConstructor (line 154) | public void findAndHookConstructor(Class<?> hookClass, Object... param...
    method hookMethod (line 158) | public void hookMethod(Method method, MethodHook callback) {
    method hookAllMethods (line 162) | public void hookAllMethods(String className, String methodName, XC_Met...
    method hookAllMethods (line 174) | public void hookAllMethods(Class<?> hookClass, String methodName, XC_M...
    method hookAllMethodsSilently (line 182) | public void hookAllMethodsSilently(String className, String methodName...
    method hookAllMethodsSilently (line 192) | public boolean hookAllMethodsSilently(Class<?> hookClass, String metho...
    method hookAllConstructors (line 203) | public void hookAllConstructors(String className, MethodHook callback) {
    method hookAllConstructors (line 214) | public void hookAllConstructors(Class<?> hookClass, MethodHook callbac...
    method getStaticObjectFieldSilently (line 223) | public Object getStaticObjectFieldSilently(Class<?> clazz, String fiel...
    method setDeclaredField (line 231) | public void setDeclaredField(XC_MethodHook.MethodHookParam param, Stri...
    method checkLast (line 251) | public void checkLast(String setObject, Object fieldName, Object value...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/base/BaseModule.java
  class BaseModule (line 8) | public abstract class BaseModule implements IXposedHook {
    method init (line 13) | public void init(LoadPackageParam lpparam) {
    method initZygote (line 19) | @Override
    method initHook (line 23) | public void initHook(BaseHook baseHook) {
    method initHook (line 27) | public void initHook(BaseHook baseHook, boolean isInit) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/base/BaseXposedInit.java
  class BaseXposedInit (line 71) | public abstract class BaseXposedInit implements IXposedHookLoadPackage, ...
    method initZygote (line 126) | @Override
    method setXSharedPrefs (line 133) | public void setXSharedPrefs() {
    method init (line 162) | public void init(LoadPackageParam lpparam) {
    method ModuleActiveHook (line 345) | public void ModuleActiveHook(LoadPackageParam lpparam) {
    method isSafeModeEnable (line 353) | public boolean isSafeModeEnable(String key) {
    method isSystemUIModuleEnable (line 357) | public boolean isSystemUIModuleEnable() {
    method isHomeModuleEnable (line 361) | public boolean isHomeModuleEnable() {
    method isSecurityCenterModuleEnable (line 365) | public boolean isSecurityCenterModuleEnable() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/base/IXposedHook.java
  type IXposedHook (line 3) | public interface IXposedHook {
    method initZygote (line 5) | void initZygote();
    method handleLoadPackage (line 7) | void handleLoadPackage();

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/Unlock120Fps.java
  class Unlock120Fps (line 5) | public class Unlock120Fps extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/Unlock60Fps.java
  class Unlock60Fps (line 5) | public class Unlock60Fps extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiEnhance.java
  class UnlockAiEnhance (line 5) | public class UnlockAiEnhance extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiShutter.java
  class UnlockAiShutter (line 5) | public class UnlockAiShutter extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiWatermark.java
  class UnlockAiWatermark (line 5) | public class UnlockAiWatermark extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAmbilight.java
  class UnlockAmbilight (line 5) | public class UnlockAmbilight extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAudioZoom.java
  class UnlockAudioZoom (line 5) | public class UnlockAudioZoom extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockClone.java
  class UnlockClone (line 5) | public class UnlockClone extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockColorEnhance.java
  class UnlockColorEnhance (line 5) | public class UnlockColorEnhance extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCosmeticMirror.java
  class UnlockCosmeticMirror (line 5) | public class UnlockCosmeticMirror extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCvlens.java
  class UnlockCvlens (line 6) | public class UnlockCvlens extends BaseHook {
    method init (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCyberFocusVersion2.java
  class UnlockCyberFocusVersion2 (line 5) | public class UnlockCyberFocusVersion2 extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDoc.java
  class UnlockDoc (line 5) | public class UnlockDoc extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDualcam.java
  class UnlockDualcam (line 5) | public class UnlockDualcam extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDuration.java
  class UnlockDuration (line 5) | public class UnlockDuration extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilm.java
  class UnlockFilm (line 5) | public class UnlockFilm extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDelay.java
  class UnlockFilmDelay (line 5) | public class UnlockFilmDelay extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDollyZoom.java
  class UnlockFilmDollyZoom (line 5) | public class UnlockFilmDollyZoom extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDream.java
  class UnlockFilmDream (line 5) | public class UnlockFilmDream extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmSlowShutter.java
  class UnlockFilmSlowShutter (line 5) | public class UnlockFilmSlowShutter extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmTimeBackflow.java
  class UnlockFilmTimeBackflow (line 5) | public class UnlockFilmTimeBackflow extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmTimeFreeze.java
  class UnlockFilmTimeFreeze (line 5) | public class UnlockFilmTimeFreeze extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHandGesture.java
  class UnlockHandGesture (line 5) | public class UnlockHandGesture extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHdr.java
  class UnlockHdr (line 5) | public class UnlockHdr extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHeic.java
  class UnlockHeic (line 5) | public class UnlockHeic extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockIdcard.java
  class UnlockIdcard (line 5) | public class UnlockIdcard extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockLog.java
  class UnlockLog (line 5) | public class UnlockLog extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMakeup.java
  class UnlockMakeup (line 5) | public class UnlockMakeup extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMenMakeup.java
  class UnlockMenMakeup (line 5) | public class UnlockMenMakeup extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMilive.java
  class UnlockMilive (line 5) | public class UnlockMilive extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMoon.java
  class UnlockMoon (line 5) | public class UnlockMoon extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockNevus.java
  class UnlockNevus (line 5) | public class UnlockNevus extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockNewBeauty.java
  class UnlockNewBeauty (line 5) | public class UnlockNewBeauty extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPano.java
  class UnlockPano (line 5) | public class UnlockPano extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPixel.java
  class UnlockPixel (line 5) | public class UnlockPixel extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPortrait.java
  class UnlockPortrait (line 5) | public class UnlockPortrait extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockRaw.java
  class UnlockRaw (line 5) | public class UnlockRaw extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockSlow.java
  class UnlockSlow (line 5) | public class UnlockSlow extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockTrackEyes.java
  class UnlockTrackEyes (line 5) | public class UnlockTrackEyes extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockTrackFeature.java
  class UnlockTrackFeature (line 5) | public class UnlockTrackFeature extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockTrackFocus.java
  class UnlockTrackFocus (line 5) | public class UnlockTrackFocus extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVideosky.java
  class UnlockVideosky (line 5) | public class UnlockVideosky extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVlog.java
  class UnlockVlog (line 5) | public class UnlockVlog extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVlogPro.java
  class UnlockVlogPro (line 5) | public class UnlockVlogPro extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/clock/EnableHourGlass.java
  class EnableHourGlass (line 8) | public class EnableHourGlass extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/LinkOpenMode.java
  class LinkOpenMode (line 17) | public class LinkOpenMode extends BaseHook {
    method init (line 21) | @Override
    method setOpenIntent (line 43) | private void setOpenIntent(Context context, Uri uri, int mode) {
    method setFreeFormIntent (line 58) | private void setFreeFormIntent(Context context, String packageName) {
    method getDefaultBrowserApp (line 66) | private String getDefaultBrowserApp(Context context) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/UseThirdPartyBrowser.java
  class UseThirdPartyBrowser (line 16) | public class UseThirdPartyBrowser extends BaseHook {
    method init (line 18) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/downloads/FuckXlDownload.java
  class FuckXlDownload (line 14) | public class FuckXlDownload extends BaseHook {
    method init (line 18) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/externalstorage/DisableFolderCantUse.java
  class DisableFolderCantUse (line 5) | public class DisableFolderCantUse extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableHdrEnhance.java
  class EnableHdrEnhance (line 7) | public class EnableHdrEnhance extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableIdPhoto.java
  class EnableIdPhoto (line 7) | public class EnableIdPhoto extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableMagicMatting.java
  class EnableMagicMatting (line 7) | public class EnableMagicMatting extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableMagicSky.java
  class EnableMagicSky (line 7) | public class EnableMagicSky extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableOcr.java
  class EnableOcr (line 7) | public class EnableOcr extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableOcrForm.java
  class EnableOcrForm (line 7) | public class EnableOcrForm extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnablePdf.java
  class EnablePdf (line 7) | public class EnablePdf extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnablePhotoMovie.java
  class EnablePhotoMovie (line 7) | public class EnablePhotoMovie extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableRemover2.java
  class EnableRemover2 (line 7) | public class EnableRemover2 extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableTextYanhua.java
  class EnableTextYanhua (line 7) | public class EnableTextYanhua extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableVideoEditor.java
  class EnableVideoEditor (line 7) | public class EnableVideoEditor extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableVideoPost.java
  class EnableVideoPost (line 7) | public class EnableVideoPost extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/guardprovider/DisableUploadAppList.java
  class DisableUploadAppList (line 17) | public class DisableUploadAppList extends BaseHook {
    method init (line 19) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/AllAppsBlur.java
  class AllAppsBlur (line 7) | public class AllAppsBlur extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/FreeFormCountForHome.java
  class FreeFormCountForHome (line 7) | public class FreeFormCountForHome extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/HideNavigationBar.java
  class HideNavigationBar (line 11) | public class HideNavigationBar extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/HomePortraitReverse.java
  class HomePortraitReverse (line 9) | public class HomePortraitReverse extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/ScreenSwipe.java
  class ScreenSwipe (line 21) | public class ScreenSwipe extends BaseHook {
    method init (line 26) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/SeekPoints.java
  class SeekPoints (line 15) | public class SeekPoints extends BaseHook {
    method init (line 17) | @Override
    method showSeekBar (line 48) | private void showSeekBar(View workspace) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/StickyFloatingWindowsForHome.java
  class StickyFloatingWindowsForHome (line 14) | public class StickyFloatingWindowsForHome extends BaseHook {
    method init (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/ToastSlideAgain.java
  class ToastSlideAgain (line 10) | public class ToastSlideAgain extends BaseHook {
    method init (line 13) | @Override
    method hookToast (line 47) | public XC_MethodHook.Unhook hookToast() {
    method unHook (line 59) | public void unHook(XC_MethodHook.Unhook unhook) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/UserPresentAnimation.java
  class UserPresentAnimation (line 9) | public class UserPresentAnimation extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/WidgetCornerRadius.java
  class WidgetCornerRadius (line 8) | public class WidgetCornerRadius extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/WidgetCrack.java
  class WidgetCrack (line 5) | public class WidgetCrack extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/DockCustom.java
  class DockCustom (line 21) | public class DockCustom extends BaseHook {
    method init (line 35) | @Override
    method getDockBackground (line 137) | public GradientDrawable getDockBackground(Context context) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/FoldDock.java
  class FoldDock (line 9) | public class FoldDock extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/drawer/PinyinArrangement.java
  class PinyinArrangement (line 12) | public class PinyinArrangement extends BaseHook {
    method init (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIcon.java
  class BigFolderIcon (line 5) | public class BigFolderIcon extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIconBlur.java
  class BigFolderIconBlur (line 20) | public class BigFolderIconBlur extends BaseHook {
    method init (line 33) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIconBlur1x2.java
  class BigFolderIconBlur1x2 (line 18) | public class BigFolderIconBlur1x2 extends BaseHook {
    method init (line 29) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIconBlur2x1.java
  class BigFolderIconBlur2x1 (line 18) | public class BigFolderIconBlur2x1 extends BaseHook {
    method init (line 29) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderItemMaxCount.java
  class BigFolderItemMaxCount (line 8) | public class BigFolderItemMaxCount extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderShade.java
  class FolderShade (line 23) | public class FolderShade extends BaseHook {
    method init (line 28) | @Override
    method getPaintDrawable (line 88) | @NonNull

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/SmallFolderIconBlur.java
  class SmallFolderIconBlur (line 16) | public class SmallFolderIconBlur extends BaseHook {
    method init (line 29) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/DoubleTap.java
  class DoubleTap (line 13) | public class DoubleTap extends BaseHook {
    method init (line 17) | @Override
    class DoubleTapController (line 47) | public static class DoubleTapController {
      method DoubleTapController (line 59) | DoubleTapController(Context context, String actionKey) {
      method isDoubleTapEvent (line 65) | boolean isDoubleTapEvent(MotionEvent motionEvent) {
      method onDoubleTapEvent (line 97) | void onDoubleTapEvent() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/HotSeatSwipe.java
  class HotSeatSwipe (line 11) | public class HotSeatSwipe extends BaseHook {
    method init (line 15) | @Override
    class SwipeListenerHorizontal (line 34) | private static class SwipeListenerHorizontal extends GestureDetector.S...
      method SwipeListenerHorizontal (line 41) | SwipeListenerHorizontal(Object cellLayout) {
      method onDown (line 48) | @Override
      method onFling (line 53) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/QuickBack.java
  class QuickBack (line 5) | public class QuickBack extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/ShakeDevice.java
  class ShakeDevice (line 13) | public class ShakeDevice extends BaseHook {
    method init (line 14) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/SwipeAndStop.java
  class SwipeAndStop (line 14) | public class SwipeAndStop extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/HotSeatsHeight.java
  class HotSeatsHeight (line 8) | public class HotSeatsHeight extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/HotSeatsMarginBottom.java
  class HotSeatsMarginBottom (line 8) | public class HotSeatsMarginBottom extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/HotSeatsMarginTop.java
  class HotSeatsMarginTop (line 8) | public class HotSeatsMarginTop extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/SearchBarMarginBottom.java
  class SearchBarMarginBottom (line 8) | public class SearchBarMarginBottom extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/ShowClock.java
  class ShowClock (line 7) | public class ShowClock extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/UnlockGrids.java
  class UnlockGrids (line 15) | public class UnlockGrids extends BaseHook {
    method init (line 19) | @Override
    method UnlockGridsRes (line 111) | public void UnlockGridsRes() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/UnlockGridsNoWord.java
  class UnlockGridsNoWord (line 7) | public class UnlockGridsNoWord extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/WorkspacePadding.java
  class WorkspacePadding (line 8) | public class WorkspacePadding extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/navigation/BackGestureAreaHeight.java
  class BackGestureAreaHeight (line 7) | public class BackGestureAreaHeight extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/navigation/BackGestureAreaWidth.java
  class BackGestureAreaWidth (line 7) | public class BackGestureAreaWidth extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/other/FreeformShortcutMenu.java
  class FreeformShortcutMenu (line 29) | public class FreeformShortcutMenu extends BaseHook {
    method init (line 45) | @Override
    method getFreeformOnClickListener (line 169) | private View.OnClickListener getFreeformOnClickListener(Object obj, bo...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/other/HomeMode.java
  class HomeMode (line 5) | public class HomeMode extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/other/InfiniteScroll.java
  class InfiniteScroll (line 7) | public class InfiniteScroll extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/AnimParamCustom.java
  class AnimParamCustom (line 10) | public class AnimParamCustom extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/DownloadAnimation.java
  class DownloadAnimation (line 5) | public class DownloadAnimation extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/EnableIconMonoChrome.java
  class EnableIconMonoChrome (line 5) | public class EnableIconMonoChrome extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/FixAnimation.java
  class FixAnimation (line 13) | public class FixAnimation extends BaseHook {
    method getMAppToHomeAnim2Bak (line 20) | public final Object getMAppToHomeAnim2Bak() {
    method setMAppToHomeAnim2Bak (line 24) | public final void setMAppToHomeAnim2Bak(Object obj) {
    method getMRunnable (line 28) | public final Runnable getMRunnable() {
    method init (line 32) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/HiddenAllTitle.java
  class HiddenAllTitle (line 5) | public class HiddenAllTitle extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/IconScaleHook.java
  class IconScaleHook (line 17) | public class IconScaleHook extends BaseHook {
    method init (line 18) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/LargeIconCornerRadius.java
  class LargeIconCornerRadius (line 17) | public class LargeIconCornerRadius extends BaseHook {
    method init (line 21) | @Override
    method croppedCorners (line 41) | public final Bitmap croppedCorners(Bitmap bitmap, float radius) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/NewInstallIndicator.java
  class NewInstallIndicator (line 5) | public class NewInstallIndicator extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/PerfectIcon.java
  class PerfectIcon (line 7) | public class PerfectIcon extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/TitleFontSize.java
  class TitleFontSize (line 9) | public class TitleFontSize extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/TitleMarquee.java
  class TitleMarquee (line 10) | public class TitleMarquee extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/widget/AllWidgetAnimation.java
  class AllWidgetAnimation (line 7) | public class AllWidgetAnimation extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/incallui/AnswerInHeadUp.java
  class AnswerInHeadUp (line 10) | public class AnswerInHeadUp extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/incallui/HideCrbt.java
  class HideCrbt (line 6) | public class HideCrbt extends BaseHook {
    method init (line 9) | public void init() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/market/DeviceModify.java
  class DeviceModify (line 9) | public class DeviceModify extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/market/NewIcon.java
  class NewIcon (line 14) | public class NewIcon extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/milink/UnlockMiShare.java
  class UnlockMiShare (line 7) | public class UnlockMiShare extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/mirror/UnlockMiuiPlus.java
  class UnlockMiuiPlus (line 9) | public class UnlockMiuiPlus extends BaseHook {
    method init (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/miwallpaper/UnlockSuperWallpaper.java
  class UnlockSuperWallpaper (line 9) | public class UnlockSuperWallpaper extends BaseHook {
    method init (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/music/DisableAd.java
  class DisableAd (line 7) | public class DisableAd extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/networkboost/LinkTurboToast.java
  class LinkTurboToast (line 5) | public class LinkTurboToast extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/nfc/DisableSound.java
  class DisableSound (line 5) | public class DisableSound extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/DisplayMoreApkInfo.java
  class DisplayMoreApkInfo (line 24) | public class DisplayMoreApkInfo extends BaseHook {
    method init (line 29) | @Override
    method setTextAppearance (line 138) | private void setTextAppearance(TextView textView, TextView textView2) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/InstallSource.java
  class InstallSource (line 7) | public class InstallSource extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/MiuiPackageInstallModify.java
  class MiuiPackageInstallModify (line 7) | public class MiuiPackageInstallModify extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/SafeMode.java
  class SafeMode (line 9) | public class SafeMode extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/UpdateSystemApp.java
  class UpdateSystemApp (line 10) | public class UpdateSystemApp extends BaseHook {
    method init (line 14) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/personalassistant/BlurOverlay.java
  class BlurOverlay (line 12) | public class BlurOverlay extends BaseHook {
    method init (line 22) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/personalassistant/EnableFoldWidget.java
  class EnableFoldWidget (line 9) | public class EnableFoldWidget extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/personalassistant/PadWidgetEnable.java
  class PadWidgetEnable (line 7) | public class PadWidgetEnable extends BaseHook {
    type DeviceType (line 13) | public enum DeviceType {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/powerkeeper/PreventBatteryWitelist.java
  class PreventBatteryWitelist (line 6) | public class PreventBatteryWitelist extends BaseHook {
    method init (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/EnableCard.java
  class EnableCard (line 5) | public class EnableCard extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/EnableDocPpt.java
  class EnableDocPpt (line 5) | public class EnableDocPpt extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/EnableOcr.java
  class EnableOcr (line 5) | public class EnableOcr extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/EnableTranslation.java
  class EnableTranslation (line 5) | public class EnableTranslation extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/document/EnableDocument.java
  class EnableDocument (line 5) | public class EnableDocument extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/document/EnableExcel.java
  class EnableExcel (line 5) | public class EnableExcel extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/document/EnablePpt.java
  class EnablePpt (line 5) | public class EnablePpt extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/screenrecorder/UnlockMoreVolumeFrom.java
  class UnlockMoreVolumeFrom (line 7) | public class UnlockMoreVolumeFrom extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/AppLockPinScramble.java
  class AppLockPinScramble (line 12) | public class AppLockPinScramble extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/NewBoxBlur.java
  class NewBoxBlur (line 16) | public class NewBoxBlur extends BaseHook {
    method init (line 27) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/VideoDolbyOpen.java
  class VideoDolbyOpen (line 20) | public class VideoDolbyOpen extends BaseHook {
    method init (line 21) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/app/AppDefaultSort.java
  class AppDefaultSort (line 16) | public class AppDefaultSort extends BaseHook {
    method init (line 21) | @Override
    method checkBundle (line 54) | public static Bundle checkBundle(Context context, Bundle bundle) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/app/AppDetails.java
  class AppDetails (line 29) | public class AppDetails extends BaseHook {
    method init (line 37) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/app/AppDisable.java
  class AppDisable (line 25) | @SuppressLint("DiscouragedApi")
    method init (line 30) | @Override
    method setAppState (line 110) | private void setAppState(final Activity act, String pkgName, MenuItem ...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/app/AppRestrict.java
  class AppRestrict (line 14) | public class AppRestrict extends BaseHook {
    method init (line 18) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/battery/ShowBatteryTemperature.java
  class ShowBatteryTemperature (line 24) | public class ShowBatteryTemperature extends BaseHook {
    method init (line 29) | @Override
    method applyTextView (line 78) | private void applyTextView(Context context, TextView tv) {
    method applyTemperatureStyle (line 87) | private void applyTemperatureStyle(Context context, TextView tv, boole...
    method getBatteryTemperature (line 100) | private int getBatteryTemperature(Context context) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/other/SkipCountDownLimit.java
  class SkipCountDownLimit (line 11) | public class SkipCountDownLimit extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/sidebar/AddSideBarExpandReceiver.java
  class AddSideBarExpandReceiver (line 23) | public class AddSideBarExpandReceiver extends BaseHook {
    method init (line 24) | @Override
    method showSideBar (line 121) | private static void showSideBar(View view, int dockLocation) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/sidebar/DisableDockSuggest.java
  class DisableDockSuggest (line 7) | public class DisableDockSuggest extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/settings/CemiuilerSettings.java
  class CemiuilerSettings (line 22) | public class CemiuilerSettings extends BaseHook {
    method init (line 30) | @Override
    method addIconResource (line 93) | private void addIconResource() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/settings/NotificationImportance.java
  class NotificationImportance (line 13) | public class NotificationImportance extends BaseHook {
    method init (line 18) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/settings/VolumeSeparateControlForSettings.java
  class VolumeSeparateControlForSettings (line 19) | public class VolumeSeparateControlForSettings extends BaseHook {
    method init (line 29) | @Override
    method initRes (line 97) | public static void initRes() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/AllRotations.java
  class AllRotations (line 7) | public class AllRotations extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/AllowUninstall.java
  class AllowUninstall (line 10) | public class AllowUninstall implements IXposedHookZygoteInit {
    method initZygote (line 20) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/AllowUntrustedTouch.java
  class AllowUntrustedTouch (line 7) | public class AllowUntrustedTouch extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/AppDisableService.java
  class AppDisableService (line 8) | public class AppDisableService extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/AppLinkVerify.java
  class AppLinkVerify (line 6) | public class AppLinkVerify extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/CleanOpenMenu.java
  class CleanOpenMenu (line 27) | public class CleanOpenMenu extends BaseHook {
    method init (line 31) | @Override
    method isRemoveApp (line 122) | private static Pair<Boolean, Boolean> isRemoveApp(boolean dynamic, Con...
    method getContentType (line 138) | private static String getContentType(Context context, Intent intent) {
    method hideMimeType (line 150) | private static boolean hideMimeType(int mimeFlags, String mimeType) {
    method initRes (line 178) | public static void initRes() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/CleanShareMenu.java
  class CleanShareMenu (line 24) | public class CleanShareMenu extends BaseHook {
    method init (line 28) | @Override
    method initRes (line 96) | public static void initRes() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/DisableFreeformBlackList.java
  class DisableFreeformBlackList (line 11) | public class DisableFreeformBlackList extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/DisablePinVerifyPer72h.java
  class DisablePinVerifyPer72h (line 7) | public class DisablePinVerifyPer72h extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/FlagSecure.java
  class FlagSecure (line 19) | public class FlagSecure extends BaseHook {
    method deoptimizeMethod (line 38) | static void deoptimizeMethod(Class<?> c, String n) throws InvocationTa...
    method init (line 47) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/FreeformBubble.java
  class FreeformBubble (line 9) | public class FreeformBubble extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/LocationSimulation.java
  class LocationSimulation (line 6) | public class LocationSimulation extends BaseHook {
    method init (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/PackagePermissions.java
  class PackagePermissions (line 19) | public class PackagePermissions extends BaseHook {
    method init (line 22) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/ScreenRotation.java
  class ScreenRotation (line 11) | public class ScreenRotation extends BaseHook {
    method init (line 13) | @Override
    method initRes (line 26) | public static void initRes() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/SpeedInstall.java
  class SpeedInstall (line 5) | public class SpeedInstall extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/StickyFloatingWindows.java
  class StickyFloatingWindows (line 24) | public class StickyFloatingWindows extends BaseHook {
    method init (line 28) | @Override
    method getTaskPackageName (line 202) | public static String getTaskPackageName(Object thisObject, int taskId) {
    method getTaskPackageName (line 206) | public static String getTaskPackageName(Object thisObject, int taskId,...
    method getTaskPackageName (line 210) | public static String getTaskPackageName(Object thisObject, int taskId,...
    method serializeFwApps (line 221) | public static String serializeFwApps() {
    method unserializeFwApps (line 235) | public static void unserializeFwApps(String data) {
    method storeFwAppsInSetting (line 246) | public static void storeFwAppsInSetting(Context context) {
    method restoreFwAppsInSetting (line 250) | public static void restoreFwAppsInSetting(Context context) {
    method patchActivityOptions (line 254) | private static ActivityOptions patchActivityOptions(Context mContext, ...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/ThermalBrightness.java
  class ThermalBrightness (line 8) | public class ThermalBrightness extends BaseHook {
    method init (line 14) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/UseOriginalAnimation.java
  class UseOriginalAnimation (line 5) | public class UseOriginalAnimation extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/VolumeDefaultStream.java
  class VolumeDefaultStream (line 11) | public class VolumeDefaultStream extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/VolumeDisableSafe.java
  class VolumeDisableSafe (line 7) | public class VolumeDisableSafe extends BaseHook {
    method init (line 11) | @Override
    method returnIntConstant (line 17) | private void returnIntConstant(Class<?> cls, String methodName) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/VolumeFirstPress.java
  class VolumeFirstPress (line 9) | public class VolumeFirstPress extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/VolumeSeparateControl.java
  class VolumeSeparateControl (line 16) | public class VolumeSeparateControl extends BaseHook {
    method init (line 20) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/VolumeSteps.java
  class VolumeSteps (line 7) | public class VolumeSteps extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/CorePatchForR.java
  class CorePatchForR (line 39) | public class CorePatchForR extends XposedHelper implements IXposedHookLo...
    method deoptimizeMethod (line 53) | static void deoptimizeMethod(Class<?> c, String n) throws InvocationTa...
    method handleLoadPackage (line 65) | @Override
    method getSigningDetails (line 308) | Class<?> getSigningDetails(ClassLoader classLoader) {
    method initZygote (line 312) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/CorePatchForS.java
  class CorePatchForS (line 11) | public class CorePatchForS extends CorePatchForR {
    method handleLoadPackage (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/CorePatchForT.java
  class CorePatchForT (line 10) | public class CorePatchForT extends CorePatchForS {
    method handleLoadPackage (line 11) | @Override
    method getSigningDetails (line 101) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/CorePatchForU.java
  class CorePatchForU (line 14) | public class CorePatchForU extends CorePatchForT {
    method handleLoadPackage (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/ReturnConstant.java
  class ReturnConstant (line 6) | public class ReturnConstant extends XC_MethodHook {
    method ReturnConstant (line 11) | public ReturnConstant(XSharedPreferences prefs, String prefsKey, Objec...
    method beforeHookedMethod (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/XposedHelper.java
  class XposedHelper (line 13) | public class XposedHelper {
    method findAndHookMethod (line 16) | public static void findAndHookMethod(String className, ClassLoader cla...
    method findAndHookMethod (line 26) | public static void findAndHookMethod(Class<?> clazz, String methodName...
    method hookAllMethods (line 36) | public static void hookAllMethods(String className, ClassLoader classL...
    method hookAllMethods (line 47) | public void hookAllMethods(Class<?> hookClass, String methodName, XC_M...
    method findClass (line 56) | public static Class<?> findClass(String className, ClassLoader classLo...
    method hookAllConstructors (line 66) | public static void hookAllConstructors(String className, XC_MethodHook...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/display/AutoBrightness.java
  class AutoBrightness (line 17) | public class AutoBrightness extends BaseHook {
    method constrainValue (line 23) | private static float constrainValue(float val) {
    method init (line 41) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/display/ToastTime.java
  class ToastTime (line 14) | public class ToastTime extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/freeform/OpenAppInFreeForm.java
  class OpenAppInFreeForm (line 18) | public class OpenAppInFreeForm extends BaseHook {
    method init (line 23) | @Override
    method shouldOpenInFreeForm (line 87) | private boolean shouldOpenInFreeForm(Intent intent, String callingPack...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/AddMiuiPlusEntry.java
  class AddMiuiPlusEntry (line 7) | public class AddMiuiPlusEntry extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/AppsFreezerEnable.java
  class AppsFreezerEnable (line 6) | public class AppsFreezerEnable extends BaseHook {
    method init (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/EnableSpeedMode.java
  class EnableSpeedMode (line 5) | public class EnableSpeedMode extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/InternationalBuild.java
  class InternationalBuild (line 8) | public class InternationalBuild extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/NewNFCPage.java
  class NewNFCPage (line 5) | public class NewNFCPage extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/ViewWifiPasswordHook.java
  class ViewWifiPasswordHook (line 17) | public class ViewWifiPasswordHook extends BaseHook {
    method init (line 19) | @Override
    method getSharedKey (line 89) | private String getSharedKey(XC_MethodHook.MethodHookParam param, Objec...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/VoipAssistantController.java
  class VoipAssistantController (line 5) | public class VoipAssistantController extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/aiimage/UnlockAi.java
  class UnlockAi (line 7) | public class UnlockAi extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/aiimage/UnlockMemc.java
  class UnlockMemc (line 5) | public class UnlockMemc extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/aiimage/UnlockSuperResolution.java
  class UnlockSuperResolution (line 7) | public class UnlockSuperResolution extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/AutoCollapse.java
  class AutoCollapse (line 10) | public class AutoCollapse extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/BatteryIndicator.java
  class BatteryIndicator (line 14) | public class BatteryIndicator extends BaseHook {
    method init (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/BluetoothRestrict.java
  class BluetoothRestrict (line 9) | public class BluetoothRestrict extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/ChargeAnimationStyle.java
  class ChargeAnimationStyle (line 12) | public class ChargeAnimationStyle extends BaseHook {
    method init (line 20) | @Override
    method setChargeAnimationType (line 31) | public void setChargeAnimationType(int value) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/ClockCenterHook.java
  class ClockCenterHook (line 18) | public class ClockCenterHook extends BaseHook {
    method init (line 27) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/HideNavigationBar.java
  class HideNavigationBar (line 19) | public class HideNavigationBar extends BaseHook {
    method init (line 22) | @Override
    method ContentObserver (line 89) | public void ContentObserver(Context context) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/MiuiGxzwSize.java
  class MiuiGxzwSize (line 5) | public class MiuiGxzwSize extends BaseHook {
    method init (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/MonetThemeOverlay.java
  class MonetThemeOverlay (line 10) | public class MonetThemeOverlay extends BaseHook {
    method init (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/NotificationFix.java
  class NotificationFix (line 7) | public class NotificationFix extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/NotificationFreeform.java
  class NotificationFreeform (line 7) | public class NotificationFreeform extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/NotificationVolumeSeparateSlider.java
  class NotificationVolumeSeparateSlider (line 12) | public class NotificationVolumeSeparateSlider {
    method initHideDeviceControlEntry (line 13) | public static void initHideDeviceControlEntry(ClassLoader pluginLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/OriginChargeAnimation.java
  class OriginChargeAnimation (line 6) | public class OriginChargeAnimation extends BaseHook {
    method init (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/QSDetailBackGround.java
  class QSDetailBackGround (line 11) | public class QSDetailBackGround extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/QSLabelsHook.java
  class QSLabelsHook (line 10) | public class QSLabelsHook extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/ShouldPlayUnmuteSoundHook.java
  class ShouldPlayUnmuteSoundHook (line 10) | public class ShouldPlayUnmuteSoundHook extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/StatusBarActions.java
  class StatusBarActions (line 23) | public class StatusBarActions extends BaseHook {
    method init (line 28) | @Override
    method setupStatusBarAction (line 42) | public void setupStatusBarAction() {
    method onReceive (line 74) | @SuppressLint("WrongConstant")
    method OpenVolumeDialogs (line 123) | public static void OpenVolumeDialogs(Context context) {
    method setupRestartSystemUIAction (line 166) | public void setupRestartSystemUIAction() {
    method onReceive (line 182) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/SwitchControlPanel.java
  class SwitchControlPanel (line 12) | public class SwitchControlPanel extends BaseHook {
    method init (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/UseNativeRecents.java
  class UseNativeRecents (line 4) | public class UseNativeRecents {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/VolumeTimerValuesHook.java
  class VolumeTimerValuesHook (line 11) | public class VolumeTimerValuesHook extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/BluetoothTileStyle.java
  class BluetoothTileStyle (line 22) | public class BluetoothTileStyle {
    method initHideDeviceControlEntry (line 23) | public static void initHideDeviceControlEntry(ClassLoader pluginLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/FiveGTile.java
  class FiveGTile (line 21) | public class FiveGTile extends TileUtils {
    method init (line 27) | @Override
    method customQSFactory (line 32) | @Override
    method customClass (line 37) | @Override
    method customTileProvider (line 42) | @Override
    method customName (line 51) | @Override
    method customValue (line 56) | @Override
    method needCustom (line 61) | @Override
    method needAfter (line 66) | @Override
    method tileCheck (line 71) | @Override
    method tileLongClickIntent (line 77) | @Override
    method tileClick (line 86) | @Override
    method tileListening (line 95) | @Override
    method tileUpdateState (line 115) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/FlashLight.java
  class FlashLight (line 30) | public class FlashLight extends TileUtils {
    method init (line 43) | @Override
    method customQSFactory (line 48) | @Override
    method customClass (line 53) | @Override
    method customTileProvider (line 58) | @Override
    method needCustom (line 67) | @Override
    method needAfter (line 72) | @Override
    method tileClickAfter (line 77) | @Override
    method tileUpdateState (line 82) | @Override
    method listening (line 120) | public void listening(Context mContext, XC_MethodHook.MethodHookParam ...
    method hookFlash (line 136) | public void hookFlash(Object o, Object flash, Context context, int max) {
    method setBrightnessUtils (line 194) | public void setBrightnessUtils(Object o, Object flash, Context context...
    method getFlashLightEnabled (line 253) | public int getFlashLightEnabled(Context context) {
    method setFlashLightEnabled (line 262) | public void setFlashLightEnabled(Context context, int set) {
    method readFile (line 266) | public int readFile() {
    method writeFile (line 299) | public void writeFile(int flashInt) {
    method writeFileModule (line 325) | public void writeFileModule(String filePath, int flashInt) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/GmsTile.java
  class GmsTile (line 19) | public class GmsTile extends TileUtils {
    method init (line 35) | @Override
    method customQSFactory (line 40) | @Override
    method customClass (line 45) | @Override
    method customTileProvider (line 50) | @Override
    method needCustom (line 59) | @Override
    method customName (line 64) | @Override
    method customValue (line 69) | @Override
    method needAfter (line 74) | @Override
    method tileCheck (line 79) | @Override
    method tileHandleLongClick (line 92) | @Override
    method tileClick (line 101) | @Override
    method tileUpdateState (line 132) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/MuteVisibleNotifications.java
  class MuteVisibleNotifications (line 11) | public class MuteVisibleNotifications extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/QQSGridOld.java
  class QQSGridOld (line 6) | public class QQSGridOld extends BaseHook {
    method init (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/QSGridLabels.java
  class QSGridLabels (line 16) | public class QSGridLabels extends BaseHook {
    method init (line 17) | @Override
    method updateLabelsVisibility (line 57) | private static void updateLabelsVisibility(Object mRecord, int mRows, ...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/QSGridOld.java
  class QSGridOld (line 6) | public class QSGridOld extends BaseHook {
    method init (line 8) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/SmartHome.java
  class SmartHome (line 11) | public class SmartHome extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/SunlightMode.java
  class SunlightMode (line 35) | public class SunlightMode extends TileUtils {
    method init (line 53) | @Override
    method modeSwitch (line 64) | public void modeSwitch() {
    method needCustom (line 72) | @Override
    method setPath (line 77) | public void setPath() {
    method customQSFactory (line 109) | @Override
    method customClass (line 114) | @Override
    method customTileProvider (line 119) | @Override
    method customName (line 128) | @Override
    method customValue (line 133) | @Override
    method refreshState (line 138) | public void refreshState(Object o) {
    method tileCheck (line 142) | @Override
    method tileLongClickIntent (line 147) | @Override
    method needAfter (line 152) | @Override
    method tileClick (line 157) | @Override
    method getBrightnessMode (line 234) | public static int getBrightnessMode(Context context) {
    method setBrightnessMode (line 243) | public static void setBrightnessMode(Context context, int value) {
    method getCustomBrightnessMode (line 247) | public static int getCustomBrightnessMode(Context context) {
    method setCustomBrightnessMode (line 257) | public static void setCustomBrightnessMode(Context context, int value) {
    method setBroadcastReceiver (line 261) | public void setBroadcastReceiver(Context mContext, MethodHookParam par...
    method unBroadcastReceiver (line 271) | public void unBroadcastReceiver(Context mContext, MethodHookParam para...
    method tileListening (line 281) | @Override
    method tileUpdateState (line 320) | @Override
    method readAndWrit (line 371) | public static String readAndWrit(String writ, boolean need) {
    class Screen (line 423) | public static class Screen extends BroadcastReceiver {
      method onReceive (line 424) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/controlcenter/SwitchCCAndNotification.java
  class SwitchCCAndNotification (line 11) | public class SwitchCCAndNotification extends BaseHook {
    method init (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/lockscreen/ScramblePIN.java
  class ScramblePIN (line 13) | public class ScramblePIN extends BaseHook {
    method init (line 17) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/navigation/NavigationCustom.java
  class NavigationCustom (line 6) | public class NavigationCustom extends BaseHook {
    method init (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/plugin/EnableVolumeBlur.java
  class EnableVolumeBlur (line 6) | public class EnableVolumeBlur {
    method initEnableVolumeBlur (line 7) | public static void initEnableVolumeBlur(ClassLoader classLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/plugin/HideDeviceControlEntry.java
  class HideDeviceControlEntry (line 8) | public class HideDeviceControlEntry {
    method initHideDeviceControlEntry (line 9) | public static void initHideDeviceControlEntry(ClassLoader classLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/plugin/HideMiPlayEntry.java
  class HideMiPlayEntry (line 8) | public class HideMiPlayEntry {
    method initHideMiPlayEntry (line 9) | public static void initHideMiPlayEntry(ClassLoader classLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/plugin/HideMiSmartHubEntry.java
  class HideMiSmartHubEntry (line 8) | public class HideMiSmartHubEntry {
    method initHideMiSmartHubEntry (line 9) | public static void initHideMiSmartHubEntry(ClassLoader classLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/plugin/PluginHelper.java
  class PluginHelper (line 13) | public class PluginHelper extends BaseHook {
    method init (line 19) | @Override
    method setClassLoader (line 87) | public void setClassLoader(ClassLoader classLoader) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/BigMobileNetworkType.java
  class BigMobileNetworkType (line 18) | public class BigMobileNetworkType extends BaseHook {
    method init (line 20) | @Override
    method old (line 45) | @SuppressLint("DiscouragedApi")

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/DisplayHardwareDetail.java
  class DisplayHardwareDetail (line 37) | public class DisplayHardwareDetail extends BaseHook {
    method getSlotNameByType (line 57) | private String getSlotNameByType(int mIconType) {
    class TextIcon (line 67) | static class TextIcon {
      method TextIcon (line 71) | public TextIcon(boolean mAtRight, int mIconType) {
    class TextIconInfo (line 77) | static class TextIconInfo {
    method init (line 83) | @Override
    method createBatteryDetailView (line 413) | @SuppressLint("DiscouragedApi")

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/DualRowSignalHook.java
  class DualRowSignalHook (line 21) | public class DualRowSignalHook extends BaseHook {
    method init (line 23) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/HideStatusBarBeforeScreenshot.java
  class HideStatusBarBeforeScreenshot (line 13) | public class HideStatusBarBeforeScreenshot extends BaseHook {
    method init (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/MobileNetwork.java
  class MobileNetwork (line 11) | public class MobileNetwork extends BaseHook {
    method init (line 17) | @Override
    method getMobileType (line 82) | private static View getMobileType(MethodHookParam param, int qpt, bool...
    method updateIconState (line 114) | private void updateIconState(MethodHookParam param, String fieldName, ...

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/SelectiveHideIconForAlarmClock.java
  class SelectiveHideIconForAlarmClock (line 26) | public class SelectiveHideIconForAlarmClock extends BaseHook {
    method init (line 32) | @Override
    method updateAlarmVisibility (line 84) | private void updateAlarmVisibility(Object thisObject, boolean state) {
    method getNextMIUIAlarmTime (line 116) | public long getNextMIUIAlarmTime(Context context) {
    method getNextStockAlarmTime (line 149) | public long getNextStockAlarmTime(Context context) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/WifiStandard.java
  class WifiStandard (line 8) | public class WifiStandard extends BaseHook {
    method init (line 13) | @Override
    method setWifiStandardIconState (line 37) | private void setWifiStandardIconState(MethodHookParam param) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/icon/all/BluetoothIcon.java
  class BluetoothIcon (line 9) | public class BluetoothIcon extends BaseHook {
    method init (line 11) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/icon/all/DataSaverIcon.java
  class DataSaverIcon (line 5) | public class DataSaverIcon extends BaseHook {
    method init (line 6) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/icon/all/StatusBarIconPositionAdjust.java
  class StatusBarIconPositionAdjust (line 16) | public class StatusBarIconPositionAdjust extends BaseHook {
    method init (line 40) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/thememanager/DisableThemeAd.java
  class DisableThemeAd (line 7) | public class DisableThemeAd extends BaseHook {
    method init (line 12) | @Override
    method initZygote (line 33) | public void initZygote() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/thememanager/EnableFoldTheme.java
  class EnableFoldTheme (line 8) | public class EnableFoldTheme extends BaseHook {
    method init (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/thememanager/EnablePadTheme.java
  class EnablePadTheme (line 7) | public class EnablePadTheme extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/thememanager/VersionCodeModify.java
  class VersionCodeModify (line 5) | public class VersionCodeModify extends BaseHook {
    method init (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/updater/VersionCodeModify.java
  class VersionCodeModify (line 10) | public class VersionCodeModify extends BaseHook {
    method init (line 14) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/various/CollapseMiuiTitle.java
  class CollapseMiuiTitle (line 8) | public class CollapseMiuiTitle extends BaseHook {
    method init (line 10) | @Override
    method setExpandState (line 40) | private void setExpandState(Object obj, boolean state) {
    method setResizable (line 48) | private void setResizable(Object obj, boolean state) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/various/DialogBlur.java
  class DialogBlur (line 10) | public class DialogBlur extends BaseHook {
    method init (line 14) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/various/DialogCustom.java
  class DialogCustom (line 24) | public class DialogCustom extends BaseHook {
    method init (line 36) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/various/DialogGravity.java
  class DialogGravity (line 26) | public class DialogGravity extends BaseHook {
    method init (line 36) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/various/MiuiAppNoOverScroll.java
  class MiuiAppNoOverScroll (line 10) | public class MiuiAppNoOverScroll extends BaseHook {
    method init (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/various/NotificationBlur.java
  class NotificationBlur (line 14) | public class NotificationBlur extends BaseHook {
    method init (line 25) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/module/hook/weather/SetDeviceLevel.java
  class SetDeviceLevel (line 14) | public class SetDeviceLevel extends BaseHook {
    method init (line 17) | @Override
    method checkBundle (line 23) | public static Bundle checkBundle(Context context, Bundle bundle) {
    method returnIntConstant (line 35) | private void returnIntConstant(Class<?> cls) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/prefs/PreferenceHeader.java
  class PreferenceHeader (line 13) | public class PreferenceHeader extends Preference {
    method PreferenceHeader (line 15) | public PreferenceHeader(@NonNull Context context) {
    method PreferenceHeader (line 20) | public PreferenceHeader(@NonNull Context context, @Nullable AttributeS...
    method init (line 25) | private void init() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/provider/SharedPrefsProvider.java
  class SharedPrefsProvider (line 24) | public class SharedPrefsProvider extends ContentProvider {
    method onCreate (line 41) | @Override
    method query (line 51) | @Override
    method openAssetFile (line 83) | @Override
    method getType (line 113) | @Override
    method insert (line 118) | @Override
    method delete (line 123) | @Override
    method update (line 128) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/CustomHookActivity.java
  class CustomHookActivity (line 12) | public class CustomHookActivity extends AppCompatActivity {
    method onCreate (line 16) | @Override
    method initView (line 23) | private void initView() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/HideAppActivity.java
  class HideAppActivity (line 5) | public class HideAppActivity extends AppCompatActivity {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/MainActivity.java
  class MainActivity (line 41) | public class MainActivity extends SettingsActivity {
    method onCreate (line 55) | @Override
    method onNewIntent (line 76) | @Override
    method requestCta (line 82) | private void requestCta() {
    method initView (line 88) | private void initView() {
    method onCreateOptionsMenu (line 126) | @Override
    method onOptionsItemSelected (line 132) | @Override
    method initData (line 148) | private void initData() {
    method findMod (line 184) | void findMod(String filter) {
    method startSearchMode (line 192) | private void startSearchMode() {
    method exitSearchMode (line 229) | private void exitSearchMode() {
    method requestBackup (line 236) | public void requestBackup() {
    method updateData (line 240) | private void updateData() {
    method onActivityResult (line 244) | @Override
    method PermissionRecord (line 259) | private boolean PermissionRecord(boolean iNeedGet) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/ModuleSettingsActivity.java
  class ModuleSettingsActivity (line 19) | public class ModuleSettingsActivity extends SettingsActivity {
    method onCreate (line 23) | @Override
    method onRequestPermissionsResult (line 29) | @Override
    method onActivityResult (line 59) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/SubPickerActivity.java
  class SubPickerActivity (line 10) | public class SubPickerActivity extends SettingsActivity {
    method onCreate (line 12) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/SubSettings.java
  class SubSettings (line 5) | public class SubSettings extends SettingsActivity {}

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/base/BaseSettingsActivity.java
  class BaseSettingsActivity (line 24) | public class BaseSettingsActivity extends AppCompatActivity {
    method onCreate (line 32) | @Override
    method createUiFromIntent (line 44) | protected void createUiFromIntent(Bundle savedInstanceState, Intent in...
    method initActionBar (line 59) | private void initActionBar() {
    method setDisplayHomeAsUpEnabled (line 63) | private void setDisplayHomeAsUpEnabled() {
    method setActionBarEndView (line 69) | public void setActionBarEndView(View view) {
    method setRestartView (line 73) | public void setRestartView(View.OnClickListener l) {
    method showRestartSystemDialog (line 82) | public void showRestartSystemDialog() {
    method showRestartDialog (line 86) | public void showRestartDialog(String appLabel, String packageName) {
    method showRestartDialog (line 90) | public void showRestartDialog(boolean isRestartSystem, String appLabel...
    method showXposedActiveDialog (line 104) | public void showXposedActiveDialog() {
    method setFragment (line 116) | public void setFragment(Fragment fragment) {
    method doRestart (line 123) | public void doRestart(String packageName, boolean isRestartSystem) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/base/BaseSettingsProxy.java
  class BaseSettingsProxy (line 14) | public abstract class BaseSettingsProxy {
    method setupContentView (line 18) | public abstract void setupContentView();
    method handleIntent (line 20) | public abstract void handleIntent(Intent intent);
    method initView (line 22) | public abstract void initView(Bundle bundle);
    method onBackPressed (line 24) | public abstract boolean onBackPressed();
    method onCreateOptionsMenu (line 26) | public abstract void onCreateOptionsMenu(Menu menu);
    method onDestroyView (line 28) | public abstract void onDestroyView();
    method onOptionsItemSelected (line 30) | public abstract void onOptionsItemSelected(MenuItem menuItem);
    method onPause (line 32) | public abstract void onPause();
    method onPrepareOptionsMenu (line 34) | public abstract void onPrepareOptionsMenu(Menu menu);
    method onResume (line 36) | public abstract void onResume();
    method getInitialFragmentName (line 38) | public abstract String getInitialFragmentName(Intent intent);
    method getTargetFragment (line 40) | public abstract Fragment getTargetFragment(Context context, String ini...
    method getArguments (line 42) | public abstract Bundle getArguments(Intent intent);
    method onStartSettingsForArguments (line 44) | public abstract void onStartSettingsForArguments(Class<?> cls, Prefere...

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/base/SettingsActivity.java
  class SettingsActivity (line 17) | public class SettingsActivity extends BaseSettingsActivity implements Pr...
    method onStartSettingsForArguments (line 19) | public void onStartSettingsForArguments(Preference preference, boolean...
    method onPreferenceStartFragment (line 23) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/base/SettingsProxy.java
  class SettingsProxy (line 19) | public class SettingsProxy extends BaseSettingsProxy {
    method SettingsProxy (line 23) | public SettingsProxy(AppCompatActivity activity) {
    method replaceFragment (line 27) | private void replaceFragment(Fragment fragment, String tag) {
    method setupContentView (line 31) | @Override
    method handleIntent (line 36) | @Override
    method initView (line 41) | @Override
    method onBackPressed (line 46) | @Override
    method onCreateOptionsMenu (line 51) | @Override
    method onDestroyView (line 56) | @Override
    method onOptionsItemSelected (line 61) | @Override
    method onPause (line 66) | @Override
    method onPrepareOptionsMenu (line 71) | @Override
    method onResume (line 76) | @Override
    method getInitialFragmentName (line 81) | @Override
    method getTargetFragment (line 86) | @Override
    method getArguments (line 96) | @Override
    method onStartSettingsForArguments (line 106) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/customhook/CustomHookConfigActivity.java
  class CustomHookConfigActivity (line 8) | public class CustomHookConfigActivity extends SettingsActivity {
    method onCreate (line 10) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/AiAsstFragment.java
  class AiAsstFragment (line 9) | public class AiAsstFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/AodFragment.java
  class AodFragment (line 9) | public class AodFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/BarrageFragment.java
  class BarrageFragment (line 9) | public class BarrageFragment  extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/BrowserFragment.java
  class BrowserFragment (line 9) | public class BrowserFragment extends SettingsPreferenceFragment {
    method getContentResId (line 11) | @Override
    method addRestartListener (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/CameraFragment.java
  class CameraFragment (line 9) | public class CameraFragment extends SettingsPreferenceFragment {
    method getContentResId (line 11) | @Override
    method addRestartListener (line 16) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ClockFragment.java
  class ClockFragment (line 9) | public class ClockFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ContentExtensionFragment.java
  class ContentExtensionFragment (line 13) | public class ContentExtensionFragment extends SettingsPreferenceFragment {
    method getContentResId (line 16) | @Override
    method initPrefs (line 21) | @Override
    method addRestartListener (line 28) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/CreationFragment.java
  class CreationFragment (line 9) | public class CreationFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/DownloadsFragment.java
  class DownloadsFragment (line 9) | public class DownloadsFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/FileExplorerFragment.java
  class FileExplorerFragment (line 9) | public class FileExplorerFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/GalleryFragment.java
  class GalleryFragment (line 9) | public class GalleryFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/GuardProviderFragment.java
  class GuardProviderFragment (line 9) | public class GuardProviderFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/HomeFragment.java
  class HomeFragment (line 6) | public class HomeFragment extends SettingsPreferenceFragment {
    method getContentResId (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/InCallUiFragment.java
  class InCallUiFragment (line 9) | public class InCallUiFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/JoyoseFragment.java
  class JoyoseFragment (line 9) | public class JoyoseFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/LbeFragment.java
  class LbeFragment (line 9) | public class LbeFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java
  class MainFragment (line 13) | public class MainFragment extends SettingsPreferenceFragment {
    method getContentResId (line 46) | @Override
    method initPrefs (line 51) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MarketFragment.java
  class MarketFragment (line 9) | public class MarketFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MediaEditorFragment.java
  class MediaEditorFragment (line 9) | public class MediaEditorFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiLinkFragment.java
  class MiLinkFragment (line 9) | public class MiLinkFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiSettingsFragment.java
  class MiSettingsFragment (line 9) | public class MiSettingsFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiShareFragment.java
  class MiShareFragment (line 11) | public class MiShareFragment extends SettingsPreferenceFragment {
    method getContentResId (line 15) | @Override
    method addRestartListener (line 20) | @Override
    method initPrefs (line 28) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiWallpaperFragment.java
  class MiWallpaperFragment (line 9) | public class MiWallpaperFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MirrorFragment.java
  class MirrorFragment (line 9) | public class MirrorFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiuiPackageInstallerFragment.java
  class MiuiPackageInstallerFragment (line 9) | public class MiuiPackageInstallerFragment extends SettingsPreferenceFrag...
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MmsFragment.java
  class MmsFragment (line 9) | public class MmsFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ModuleSettingsFragment.java
  class ModuleSettingsFragment (line 21) | public class ModuleSettingsFragment extends SettingsPreferenceFragment
    method getContentResId (line 28) | @Override
    method initPrefs (line 33) | @Override
    method onPreferenceChange (line 106) | @Override
    method setIconMode (line 114) | private void setIconMode(int mode) {
    method backupSettings (line 118) | public void backupSettings(Activity activity) {
    method restoreSettings (line 122) | public void restoreSettings(Activity activity) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MtbFragment.java
  class MtbFragment (line 9) | public class MtbFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MusicFragment.java
  class MusicFragment (line 9) | public class MusicFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/NetworkBoostFragment.java
  class NetworkBoostFragment (line 9) | public class NetworkBoostFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/NfcFragment.java
  class NfcFragment (line 9) | public class NfcFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/PersonalAssistantFragment.java
  class PersonalAssistantFragment (line 18) | public class PersonalAssistantFragment extends SettingsPreferenceFragment
    method getContentResId (line 27) | @Override
    method addRestartListener (line 32) | @Override
    method initPrefs (line 40) | @Override
    method onPreferenceChange (line 59) | @Override
    method setBlurMode (line 67) | private void setBlurMode(int mode) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/PhoneFragment.java
  class PhoneFragment (line 9) | public class PhoneFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/PowerKeeperFragment.java
  class PowerKeeperFragment (line 9) | public class PowerKeeperFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ScannerFragment.java
  class ScannerFragment (line 9) | public class ScannerFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ScreenRecorderFragment.java
  class ScreenRecorderFragment (line 9) | public class ScreenRecorderFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ScreenShotFragment.java
  class ScreenShotFragment (line 9) | public class ScreenShotFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SecurityCenterFragment.java
  class SecurityCenterFragment (line 20) | public class SecurityCenterFragment extends SettingsPreferenceFragment {
    method getContentResId (line 29) | @Override
    method addRestartListener (line 34) | @Override
    method initPrefs (line 43) | @Override
    method onPreferenceTreeClick (line 90) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemFrameworkFragment.java
  class SystemFrameworkFragment (line 13) | public class SystemFrameworkFragment extends SettingsPreferenceFragment {
    method getContentResId (line 18) | @Override
    method initPrefs (line 23) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemSettingsFragment.java
  class SystemSettingsFragment (line 21) | public class SystemSettingsFragment extends SettingsPreferenceFragment {
    method getContentResId (line 28) | @Override
    method addRestartListener (line 33) | @Override
    method initPrefs (line 41) | @Override
    method animationScale (line 57) | public void animationScale() {
    method setOnSeekBarChangeListener (line 68) | public void setOnSeekBarChangeListener(SeekBarPreferenceEx mySeekBarPr...
    method setAnimator (line 85) | public void setAnimator(int i, String name) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemUIFragment.java
  class SystemUIFragment (line 6) | public class SystemUIFragment extends SettingsPreferenceFragment {
    method getContentResId (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ThemeManagerFragment.java
  class ThemeManagerFragment (line 14) | public class ThemeManagerFragment extends SettingsPreferenceFragment {
    method getContentResId (line 20) | @Override
    method addRestartListener (line 25) | @Override
    method initPrefs (line 33) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/TsmClientFragment.java
  class TsmClientFragment (line 9) | public class TsmClientFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/UpdaterFragment.java
  class UpdaterFragment (line 16) | public class UpdaterFragment extends SettingsPreferenceFragment
    method getContentResId (line 22) | @Override
    method addRestartListener (line 27) | @Override
    method initPrefs (line 35) | @Override
    method onPreferenceChange (line 45) | @Override
    method setMode (line 53) | private void setMode(int mode) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/VariousFragment.java
  class VariousFragment (line 14) | public class VariousFragment extends SettingsPreferenceFragment {
    method getContentResId (line 20) | @Override
    method initPrefs (line 25) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/WeatherFragment.java
  class WeatherFragment (line 9) | public class WeatherFragment extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/about/AboutContributerFragment.java
  class AboutContributerFragment (line 6) | public class AboutContributerFragment extends SettingsPreferenceFragment {
    method getContentResId (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/about/AboutUseFragment.java
  class AboutUseFragment (line 6) | public class AboutUseFragment extends SettingsPreferenceFragment {
    method getContentResId (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/base/BasePreferenceFragment.java
  class BasePreferenceFragment (line 15) | public class BasePreferenceFragment extends PreferenceFragment {
    method onCreatePreferences (line 19) | @Override
    method setTitle (line 27) | public void setTitle(int titleResId) {
    method setTitle (line 31) | public void setTitle(String title) {
    method getFragmentName (line 37) | public String getFragmentName(Fragment fragment) {
    method getPreferenceTitle (line 41) | public String getPreferenceTitle(Preference preference) {
    method getPreferenceKey (line 45) | public String getPreferenceKey(Preference preference) {
    method finish (line 49) | public void finish() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/base/SettingsPreferenceFragment.java
  class SettingsPreferenceFragment (line 11) | public abstract class SettingsPreferenceFragment extends BasePreferenceF...
    method onCreatePreferences (line 17) | @Override
    method addRestartListener (line 36) | public View.OnClickListener addRestartListener() {
    method getSharedPreferences (line 40) | public SharedPreferences getSharedPreferences() {
    method hasKey (line 44) | public boolean hasKey(String key) {
    method initPrefs (line 48) | public void initPrefs() {}
    method getContentResId (line 49) | public abstract int getContentResId();

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/DisplaySettings.java
  class DisplaySettings (line 11) | public class DisplaySettings extends SettingsPreferenceFragment {
    method getContentResId (line 16) | @Override
    method addRestartListener (line 21) | @Override
    method initPrefs (line 26) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/FreeFormSettings.java
  class FreeFormSettings (line 15) | public class FreeFormSettings extends SettingsPreferenceFragment {
    method getContentResId (line 20) | @Override
    method addRestartListener (line 25) | @Override
    method initPrefs (line 30) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/NetworkSettings.java
  class NetworkSettings (line 9) | public class NetworkSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/OtherSettings.java
  class OtherSettings (line 15) | public class OtherSettings extends SettingsPreferenceFragment {
    method getContentResId (line 22) | @Override
    method initPrefs (line 27) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/VolumeSettings.java
  class VolumeSettings (line 12) | public class VolumeSettings extends SettingsPreferenceFragment {
    method getContentResId (line 15) | @Override
    method addRestartListener (line 20) | @Override
    method initPrefs (line 25) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeDockSettings.java
  class HomeDockSettings (line 15) | public class HomeDockSettings extends SettingsPreferenceFragment {
    method getContentResId (line 20) | @Override
    method addRestartListener (line 25) | @Override
    method initPrefs (line 33) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeDrawerSettings.java
  class HomeDrawerSettings (line 13) | public class HomeDrawerSettings extends SettingsPreferenceFragment {
    method getContentResId (line 17) | @Override
    method addRestartListener (line 22) | @Override
    method initPrefs (line 30) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeFolderSettings.java
  class HomeFolderSettings (line 19) | public class HomeFolderSettings extends SettingsPreferenceFragment {
    method getContentResId (line 32) | @Override
    method addRestartListener (line 37) | @Override
    method initPrefs (line 45) | @Override
    method setBigFolderTextForPad (line 92) | private void setBigFolderTextForPad(){
    method setFolderShadeLevelEnable (line 100) | private void setFolderShadeLevelEnable(int i) {
    method setFolderWidthEnable (line 106) | private void setFolderWidthEnable(int columns) {
    method setFolderSpaceEnable (line 112) | private void setFolderSpaceEnable(int columns) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeGestureSettings.java
  class HomeGestureSettings (line 9) | public class HomeGestureSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeLayoutSettings.java
  class HomeLayoutSettings (line 9) | public class HomeLayoutSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeOtherSettings.java
  class HomeOtherSettings (line 15) | public class HomeOtherSettings extends SettingsPreferenceFragment {
    method getContentResId (line 21) | @Override
    method addRestartListener (line 26) | @Override
    method initPrefs (line 34) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeRecentSettings.java
  class HomeRecentSettings (line 13) | public class HomeRecentSettings extends SettingsPreferenceFragment {
    method getContentResId (line 19) | @Override
    method addRestartListener (line 24) | @Override
    method initPrefs (line 32) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleAnimSettings.java
  class HomeTitleAnimSettings (line 9) | public class HomeTitleAnimSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleSettings.java
  class HomeTitleSettings (line 14) | public class HomeTitleSettings extends SettingsPreferenceFragment {
    method getContentResId (line 20) | @Override
    method addRestartListener (line 25) | @Override
    method initPrefs (line 33) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeWidgetSettings.java
  class HomeWidgetSettings (line 9) | public class HomeWidgetSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim1Settings.java
  class HomeTitleAnim1Settings (line 9) | public class HomeTitleAnim1Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim2Settings.java
  class HomeTitleAnim2Settings (line 9) | public class HomeTitleAnim2Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim3Settings.java
  class HomeTitleAnim3Settings (line 9) | public class HomeTitleAnim3Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim4Settings.java
  class HomeTitleAnim4Settings (line 9) | public class HomeTitleAnim4Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim5Settings.java
  class HomeTitleAnim5Settings (line 9) | public class HomeTitleAnim5Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim6Settings.java
  class HomeTitleAnim6Settings (line 9) | public class HomeTitleAnim6Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim7Settings.java
  class HomeTitleAnim7Settings (line 9) | public class HomeTitleAnim7Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/anim/HomeTitleAnim8Settings.java
  class HomeTitleAnim8Settings (line 9) | public class HomeTitleAnim8Settings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/settings/SafeModeFragment.java
  class SafeModeFragment (line 6) | public class SafeModeFragment extends SettingsPreferenceFragment {
    method getContentResId (line 7) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/sub/AppPicker.java
  class AppPicker (line 34) | public class AppPicker extends Fragment {
    method setAppSelectCallback (line 47) | public void setAppSelectCallback(IAppSelectCallback callback) {
    method onCreateView (line 51) | @Override
    method onCreate (line 58) | @Override
    method initView (line 73) | private void initView() {
    method initData (line 104) | private void initData() {
    method filterApp (line 130) | public static boolean filterApp(ApplicationInfo applicationInfo) {
    method getOpenWithApps (line 140) | public void getOpenWithApps(Context context, List<AppData> appInfoList) {
    method getAppInfo (line 196) | public List<AppData> getAppInfo(Context context) {
    method getAppSelector (line 206) | public void getAppSelector(Context context, List<AppData> appInfoList) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/sub/CustomBackgroundSettings.java
  class CustomBackgroundSettings (line 15) | public class CustomBackgroundSettings extends SettingsPreferenceFragment...
    method getContentResId (line 33) | @Override
    method initPrefs (line 38) | @Override
    method loadData (line 76) | private void loadData() {
    method isCustomEnabled (line 84) | private boolean isCustomEnabled() {
    method setColor (line 88) | private void setColor() {
    method getColor (line 92) | private int getColor(int defValue) {
    method isBackgroundBlurEnabled (line 96) | private boolean isBackgroundBlurEnabled() {
    method getSeekBarValue (line 100) | private int getSeekBarValue(String key, int defValue) {
    method onPreferenceChange (line 104) | @Override
    method setCustomEnable (line 120) | private void setCustomEnable(boolean isCustomEnabled) {
    method setBackgroundColor (line 125) | private void setBackgroundColor(int value) {
    method setBackgroundCornerRadius (line 130) | private void setBackgroundCornerRadius(int value) {
    method setBlurEnabled (line 135) | private void setBlurEnabled(boolean isBlurEnabled) {
    method setBackgroundBlurRadius (line 140) | private void setBackgroundBlurRadius(int value) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/sub/MultiActionSettings.java
  class MultiActionSettings (line 18) | public class MultiActionSettings extends SettingsPreferenceFragment {
    method getContentResId (line 38) | @Override
    method initPrefs (line 43) | @Override
    method updateAction (line 64) | private void updateAction() {
    method onPreferenceTreeClick (line 84) | @Override
    method getAction (line 96) | private int getAction(Preference preference) {
    method editActionIntSharedPrefs (line 122) | private void editActionIntSharedPrefs(int value) {
    method updateAppSelectorTitle (line 126) | public void updateAppSelectorTitle() {
    method getAppName (line 133) | public static String getAppName(Context context, String pkgActName) {
    method getAppName (line 137) | public static String getAppName(Context context, String pkgActName, bo...
    method onActivityResult (line 158) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/ControlCenterSettings.java
  class ControlCenterSettings (line 22) | public class ControlCenterSettings extends SettingsPreferenceFragment {
    method getContentResId (line 36) | @Override
    method addRestartListener (line 41) | @Override
    method initPrefs (line 49) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/LockScreenSettings.java
  class LockScreenSettings (line 17) | public class LockScreenSettings extends SettingsPreferenceFragment {
    method getContentResId (line 23) | @Override
    method initPrefs (line 28) | @Override
    method addRestartListener (line 46) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/NavigationSettings.java
  class NavigationSettings (line 9) | public class NavigationSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/StatusBarSettings.java
  class StatusBarSettings (line 13) | public class StatusBarSettings extends SettingsPreferenceFragment {
    method getContentResId (line 17) | @Override
    method addRestartListener (line 22) | @Override
    method initPrefs (line 30) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/SystemUIOtherSettings.java
  class SystemUIOtherSettings (line 13) | public class SystemUIOtherSettings extends SettingsPreferenceFragment {
    method getContentResId (line 17) | @Override
    method addRestartListener (line 22) | @Override
    method initPrefs (line 30) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/BatteryDetailIndicatorSettings.java
  class BatteryDetailIndicatorSettings (line 9) | public class BatteryDetailIndicatorSettings extends SettingsPreferenceFr...
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/BatteryIndicatorSettings.java
  class BatteryIndicatorSettings (line 15) | public class BatteryIndicatorSettings extends SettingsPreferenceFragment {
    method getContentResId (line 24) | @Override
    method addRestartListener (line 29) | @Override
    method initPrefs (line 37) | @Override
    method showBatteryIndicatorColor (line 61) | private void showBatteryIndicatorColor(int vale) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/BatteryStyleSettings.java
  class BatteryStyleSettings (line 9) | public class BatteryStyleSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/ClockIndicatorSettings.java
  class ClockIndicatorSettings (line 14) | public class ClockIndicatorSettings extends SettingsPreferenceFragment
    method getContentResId (line 21) | @Override
    method addRestartListener (line 26) | @Override
    method initPrefs (line 34) | @Override
    method onPreferenceChange (line 46) | @Override
    method setClockMode (line 54) | private void setClockMode(int mode) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/DoubleLineNetworkSettings.java
  class DoubleLineNetworkSettings (line 9) | public class DoubleLineNetworkSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/IconManageSettings.java
  class IconManageSettings (line 17) | public class IconManageSettings extends SettingsPreferenceFragment {
    method getContentResId (line 27) | @Override
    method addRestartListener (line 32) | @Override
    method initPrefs (line 40) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/MobileNetworkTypeSettings.java
  class MobileNetworkTypeSettings (line 9) | public class MobileNetworkTypeSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 15) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/NetworkSpeedIndicatorSettings.java
  class NetworkSpeedIndicatorSettings (line 13) | public class NetworkSpeedIndicatorSettings extends SettingsPreferenceFra...
    method getContentResId (line 17) | @Override
    method addRestartListener (line 22) | @Override
    method initPrefs (line 30) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/various/AOSPSettings.java
  class AOSPSettings (line 8) | public class AOSPSettings extends SettingsPreferenceFragment {
    method getContentResId (line 9) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/various/AlertDialogSettings.java
  class AlertDialogSettings (line 10) | public class AlertDialogSettings extends SettingsPreferenceFragment {
    method getContentResId (line 16) | @Override
    method initPrefs (line 21) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/various/MiPadSettings.java
  class MiPadSettings (line 9) | public class MiPadSettings extends SettingsPreferenceFragment {
    method getContentResId (line 10) | @Override
    method addRestartListener (line 13) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/various/LocationDataActivity.java
  class LocationDataActivity (line 35) | public class LocationDataActivity extends AppCompatActivity implements V...
    method onCreate (line 52) | @Override
    method onCreateContextMenu (line 77) | @Override
    method onClick (line 87) | @Override
    method onContextItemSelected (line 147) | @SuppressLint("NonConstantResourceId")
    method initEditView (line 193) | private void initEditView(View view) {
    method n (line 202) | public static String n(String str) {
    method e (line 206) | public static boolean e(String str) {
    class LocationAdapter (line 211) | public class LocationAdapter extends ArrayAdapter<LocationData> {
      method LocationAdapter (line 216) | public LocationAdapter(@NonNull Context context, List<LocationData> ...
      method getCount (line 222) | @Override
      method getView (line 227) | @NonNull
      class ViewHolder (line 253) | class ViewHolder {

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/various/LocationSimulationActivity.java
  class LocationSimulationActivity (line 15) | public class LocationSimulationActivity extends SettingsActivity {
    method onCreate (line 19) | @Override
    class LocationSimulationFragment (line 26) | public static class LocationSimulationFragment extends SettingsPrefere...
      method onCreate (line 28) | @Override
      method getContentResId (line 35) | @Override
      method initPrefs (line 40) | @Override
      method onSharedPreferenceChanged (line 46) | @Override
      method setSharedPreferenceChanged (line 51) | private void setSharedPreferenceChanged() {
      method onResume (line 55) | @Override
      method onPause (line 61) | @Override
    method onCreateOptionsMenu (line 68) | @Override
    method onOptionsItemSelected (line 74) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/ui/various/fragment/VariousFragment.java
  class VariousFragment (line 14) | public class VariousFragment extends PreferenceFragmentCompat {
    method onActivityCreated (line 24) | @Override
    method onCreate (line 37) | @Override
    method onCreatePreferences (line 43) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/BackupUtils.java
  class BackupUtils (line 27) | public class BackupUtils {
    method backup (line 32) | public static void backup(Activity activity) {
    method restore (line 41) | public static void restore(Activity activity) {
    method handleCreateDocument (line 49) | public static void handleCreateDocument(Activity activity, @Nullable U...
    method handleReadDocument (line 61) | public static void handleReadDocument(Activity activity, @Nullable Uri...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/BitmapUtils.java
  class BitmapUtils (line 13) | public class BitmapUtils {
    method drawableToBitmap (line 15) | public static Bitmap drawableToBitmap(Drawable drawable) {
    method drawable2Bitmap (line 31) | Bitmap drawable2Bitmap(Drawable drawable) {
    method Bitmap2Bytes (line 51) | public static byte[] Bitmap2Bytes(Bitmap bm) {
    method Bytes2Bimap (line 57) | public static Bitmap Bytes2Bimap(byte[] b) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/BlurUtils.java
  class BlurUtils (line 17) | @RequiresApi(Build.VERSION_CODES.S)
    method BlurUtils (line 31) | public BlurUtils(View view) {
    method BlurUtils (line 35) | public BlurUtils(View view, String key) {
    method setBlurView (line 41) | public void setBlurView(View view) {
    method setBlurEnable (line 45) | public void setBlurEnable(boolean blurEnable) {
    method setKey (line 49) | public void setKey(Context context, String key) {
    method setOnAttachStateChangeListener (line 77) | private void setOnAttachStateChangeListener(View view) {
    method createBackgroundDrawable (line 93) | private Drawable createBackgroundDrawable(Object viewRootImpl, boolean...
    method createBackgroundDrawable (line 106) | private Drawable createBackgroundDrawable(Object viewRootImpl, boolean...
    method createGradientDrawable (line 119) | private GradientDrawable createGradientDrawable(int color, int cornerR...
    method createGradientDrawable (line 133) | private GradientDrawable createGradientDrawable(String color, int corn...
    method setColor (line 141) | public void setColor(Drawable drawable, int color) {
    method setColor (line 149) | public void setColor(Drawable drawable, String color) {
    method setCornerRadius (line 153) | public void setCornerRadius(Drawable drawable, int cornerRadius) {
    method setBlurRadius (line 157) | public void setBlurRadius(Drawable drawable, int blurRadius) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/ColorUtilsStatic.java
  class ColorUtilsStatic (line 7) | public class ColorUtilsStatic {
    method colorToRGBA (line 15) | public static String colorToRGBA(int color) {
    method rgbToHex (line 30) | public static String rgbToHex(int red, int green, int blue) {
    method colorToHexARGB (line 45) | public static String colorToHexARGB(@ColorInt int color) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/CtaUtils.java
  class CtaUtils (line 11) | public class CtaUtils {
    method setCtaEnabled (line 25) | public static void setCtaEnabled(Context context) {
    method isCtaEnabled (line 32) | public static boolean isCtaEnabled(Context context) {
    method showCtaDialog (line 36) | public static boolean showCtaDialog(Activity activity, int requestCode) {
    method getRuntimePermission (line 64) | private static String[] getRuntimePermission() {
    method getRuntimePermissionDesc (line 68) | private static String[] getRuntimePermissionDesc(Activity activity) {
    method getOptionalPermission (line 72) | private static String[] getOptionalPermission() {
    method getOptionalPermissionDesc (line 76) | private static String[] getOptionalPermissionDesc(Activity activity) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/DialogHelper.java
  class DialogHelper (line 8) | public class DialogHelper {
    method showDialog (line 10) | public static void showDialog(Activity activity, String title, String ...
    method showDialog (line 14) | public static void showDialog(Activity activity, String title, String ...
    method showDialog (line 23) | public static void showDialog(Activity activity, int title, int messag...
    method showPositiveButtonDialog (line 33) | public static void showPositiveButtonDialog(Activity activity, String ...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/DisplayUtils.java
  class DisplayUtils (line 7) | public class DisplayUtils {
    method getAndroidScreenProperty (line 17) | public static void getAndroidScreenProperty(Context context) {
    method dip2px (line 29) | public static int dip2px(Context context, float dipValue) {
    method px2dip (line 34) | public static int px2dip(Context context, float pxValue) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/Helpers.java
  class Helpers (line 46) | public class Helpers {
    method sizeOf (line 62) | @Override
    method getProtectedContext (line 72) | public static synchronized Context getProtectedContext(Context context) {
    method checkStorageReadable (line 76) | public static boolean checkStorageReadable(Activity activity) {
    method getStaticObjectFieldSilently (line 86) | public static Object getStaticObjectFieldSilently(Class<?> clazz, Stri...
    class MimeType (line 94) | public static class MimeType {
    method isDackMode (line 105) | public static boolean isDackMode(Context context) {
    method getSystemBackgroundColor (line 109) | @SuppressLint("DiscouragedApi")
    method proxySystemProperties (line 121) | public static Object proxySystemProperties(String method, String prop,...
    method applyShimmer (line 127) | public static void applyShimmer(TextView title) {
    method fixPermissionsAsync (line 139) | @SuppressLint({"SetWorldReadable", "SetWorldWritable"})
    method getCallerMethod (line 168) | private static String getCallerMethod() {
    method hookMethod (line 176) | public static void hookMethod(Method method, MethodHook callback) {
    method findContext (line 184) | public static Context findContext() {
    method getModuleContext (line 199) | public static synchronized Context getModuleContext(Context context) t...
    method getModuleContext (line 203) | public static synchronized Context getModuleContext(Context context, C...
    method getModuleRes (line 209) | public static synchronized Resources getModuleRes(Context context) thr...
    method makeFreeformActivityOptions (line 215) | public static ActivityOptions makeFreeformActivityOptions(Context cont...
    method findAndHookMethodUseUnhook (line 237) | public static XC_MethodHook.Unhook findAndHookMethodUseUnhook(String c...
    method findAndHookMethodUseUnhook (line 246) | public static XC_MethodHook.Unhook findAndHookMethodUseUnhook(Class<?>...
    method findAndHookMethod (line 255) | public static void findAndHookMethod(String className, ClassLoader cla...
    method findAndHookMethod (line 264) | public static void findAndHookMethod(Class<?> clazz, String methodName...
    method findAndHookMethodSilently (line 272) | public static boolean findAndHookMethodSilently(String className, Clas...
    method findAndHookMethodSilently (line 282) | public static boolean findAndHookMethodSilently(Class<?> clazz, String...
    method findAndHookConstructor (line 293) | public static void findAndHookConstructor(String className, ClassLoade...
    method findAndHookConstructor (line 302) | public static void findAndHookConstructor(Class<?> hookClass, Object.....
    method hookAllMethods (line 312) | public static void hookAllMethods(String className, ClassLoader classL...
    method hookAllMethods (line 322) | public static void hookAllMethods(Class<?> hookClass, String methodNam...
    method hookAllConstructors (line 331) | public static void hookAllConstructors(String className, ClassLoader c...
    method hookAllConstructors (line 341) | public static void hookAllConstructors(Class<?> hookClass, MethodHook ...
    method hookAllMethodsSilently (line 356) | public static void hookAllMethodsSilently(String className, ClassLoade...
    method hookAllMethodsSilently (line 368) | public static boolean hookAllMethodsSilently(Class<?> hookClass, Strin...
    class SharedPrefObserver (line 376) | public static class SharedPrefObserver extends ContentObserver {
      type PrefType (line 378) | enum PrefType {
      method SharedPrefObserver (line 389) | public SharedPrefObserver(Context context, android.os.Handler handle...
      method SharedPrefObserver (line 396) | public SharedPrefObserver(Context context, android.os.Handler handle...
      method SharedPrefObserver (line 405) | public SharedPrefObserver(Context context, android.os.Handler handle...
      method SharedPrefObserver (line 413) | public SharedPrefObserver(Context context, android.os.Handler handle...
      method SharedPrefObserver (line 422) | public SharedPrefObserver(Context context, Handler handler, String n...
      method registerObserver (line 431) | void registerObserver() {
      method onChange (line 447) | @Override
      method onChange (line 455) | @Override
      method onChange (line 468) | public void onChange(Uri uri) {
      method onChange (line 471) | public void onChange(String name) {
      method onChange (line 474) | public void onChange(String name, String defValue) {
      method onChange (line 477) | public void onChange(String name, int defValue) {
      method onChange (line 480) | public void onChange(String name, boolean defValue) {
    method getSharedStringSetPref (line 484) | @SuppressWarnings("unchecked")
    method getSharedIntPref (line 511) | public static int getSharedIntPref(Context context, String name, int d...
    method getSharedBoolPref (line 530) | public static boolean getSharedBoolPref(Context context, String name, ...
    method stringPrefToUri (line 549) | public static Uri stringPrefToUri(String name, String defValue) {
    method stringSetPrefToUri (line 553) | public static Uri stringSetPrefToUri(String name) {
    method intPrefToUri (line 557) | public static Uri intPrefToUri(String name, int defValue) {
    method boolPrefToUri (line 561) | public static Uri boolPrefToUri(String name, boolean defValue) {
    method shortcutIconPrefToUri (line 565) | public static Uri shortcutIconPrefToUri(String name) {
    method anyPrefToUri (line 569) | public static Uri anyPrefToUri() {
    class MethodHook (line 573) | public static class MethodHook extends XC_MethodHook {
      method before (line 576) | protected void before(MethodHookParam param) throws Throwable {
      method after (line 579) | protected void after(MethodHookParam param) throws Throwable {
      method MethodHook (line 582) | public MethodHook() {
      method MethodHook (line 586) | public MethodHook(int priority) {
      method beforeHookedMethod (line 590) | @Override
      method afterHookedMethod (line 599) | @Override
    method getPackageVersionName (line 609) | public static String getPackageVersionName(XC_LoadPackage.LoadPackageP...
    method getPackageVersionCode (line 624) | public static int getPackageVersionCode(XC_LoadPackage.LoadPackagePara...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/LogcatHelper.java
  class LogcatHelper (line 16) | public class LogcatHelper {
    method init (line 26) | public void init(Context context) {
    method getInstance (line 39) | public static LogcatHelper getInstance(Context context) {
    method LogcatHelper (line 46) | private LogcatHelper(Context context) {
    method start (line 51) | public void start() {
    method stop (line 57) | public void stop() {
    class LogDumper (line 64) | private static class LogDumper extends Thread {
      method LogDumper (line 73) | public LogDumper(String pid, String dir) {
      method stopLogs (line 98) | public void stopLogs() {
      method run (line 102) | @Override
    method getFileName (line 151) | @SuppressLint("SimpleDateFormat")
    method getDateEN (line 157) | @SuppressLint("SimpleDateFormat")

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/MathUtils.java
  class MathUtils (line 10) | public class MathUtils {
    method MathUtils (line 14) | private MathUtils() {
    method abs (line 17) | public static float abs(float v) {
    method constrain (line 21) | public static int constrain(int amount, int low, int high) {
    method constrain (line 25) | public static long constrain(long amount, long low, long high) {
    method constrain (line 29) | public static float constrain(float amount, float low, float high) {
    method log (line 33) | public static float log(float a) {
    method exp (line 37) | public static float exp(float a) {
    method pow (line 41) | public static float pow(float a, float b) {
    method sqrt (line 45) | public static float sqrt(float a) {
    method max (line 49) | public static float max(float a, float b) {
    method max (line 53) | public static float max(int a, int b) {
    method max (line 57) | public static float max(float a, float b, float c) {
    method max (line 68) | public static float max(int a, int b, int c) {
    method min (line 78) | public static float min(float a, float b) {
    method min (line 82) | public static float min(int a, int b) {
    method min (line 86) | public static float min(float a, float b, float c) {
    method min (line 97) | public static float min(int a, int b, int c) {
    method dist (line 107) | public static float dist(float x1, float y1, float x2, float y2) {
    method dist (line 113) | public static float dist(float x1, float y1, float z1, float x2, float...
    method mag (line 120) | public static float mag(float a, float b) {
    method mag (line 124) | public static float mag(float a, float b, float c) {
    method sq (line 128) | public static float sq(float v) {
    method dot (line 132) | public static float dot(float v1x, float v1y, float v2x, float v2y) {
    method cross (line 136) | public static float cross(float v1x, float v1y, float v2x, float v2y) {
    method radians (line 140) | public static float radians(float degrees) {
    method degrees (line 144) | public static float degrees(float radians) {
    method acos (line 148) | public static float acos(float value) {
    method asin (line 152) | public static float asin(float value) {
    method atan (line 156) | public static float atan(float value) {
    method atan2 (line 160) | public static float atan2(float a, float b) {
    method tan (line 164) | public static float tan(float angle) {
    method lerp (line 168) | public static float lerp(float start, float stop, float amount) {
    method lerpNew (line 172) | public static float lerpNew(float start, float stop, float amount) {
    method lerp (line 177) | public static float lerp(int start, int stop, float amount) {
    method lerpInv (line 181) | public static float lerpInv(float a, float b, float value) {
    method saturate (line 188) | public static float saturate(float value) {
    method lerpInvSat (line 192) | public static float lerpInvSat(float a, float b, float value) {
    method lerpDeg (line 196) | public static float lerpDeg(float start, float end, float amount) {
    method norm (line 201) | public static float norm(float start, float stop, float value) {
    method map (line 205) | public static float map(float minStart, float minStop, float maxStart,...
    method constrainedMap (line 209) | public static float constrainedMap(float rangeMin, float rangeMax, flo...
    method smoothStep (line 213) | public static float smoothStep(float start, float end, float x) {
    method addOrThrow (line 217) | public static int addOrThrow(int a, int b) throws IllegalArgumentExcep...
    method convertGammaToLinearFloat (line 230) | public static float convertGammaToLinearFloat(float i, int max, float ...
    method fitRect (line 239) | public static void fitRect(Rect outToResize, int largestSide) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/PrefsMap.java
  class PrefsMap (line 7) | public class PrefsMap<K, V> extends HashMap<K, V> {
    method getObject (line 9) | public Object getObject(String key, Object defValue) {
    method getInt (line 13) | public int getInt(String key, int defValue) {
    method getString (line 18) | public String getString(String key, String defValue) {
    method getStringAsInt (line 23) | public int getStringAsInt(String key, int defValue) {
    method getStringSet (line 28) | @SuppressWarnings("unchecked")
    method getBoolean (line 34) | public boolean getBoolean(String key) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/PrefsUtils.java
  class PrefsUtils (line 22) | public class PrefsUtils {
    method getSharedPrefs (line 33) | public static SharedPreferences getSharedPrefs(Context context, boolea...
    method getSharedPrefs (line 42) | public static SharedPreferences getSharedPrefs(Context context) {
    method getSharedPrefsPath (line 47) | public static String getSharedPrefsPath() {
    method getSharedPrefsFile (line 60) | public static String getSharedPrefsFile() {
    method contains (line 77) | public static boolean contains(String key) {
    method editor (line 81) | public static SharedPreferences.Editor editor() {
    method getSharedStringPrefs (line 86) | public static String getSharedStringPrefs(Context context, String name...
    method getSharedStringSetPrefs (line 104) | public static Set<String> getSharedStringSetPrefs(Context context, Str...
    method getSharedIntPrefs (line 131) | public static int getSharedIntPrefs(Context context, String name, int ...
    method getSharedBoolPrefs (line 150) | public static boolean getSharedBoolPrefs(Context context, String name,...
    method stringPrefsToUri (line 170) | public static Uri stringPrefsToUri(String name, String defValue) {
    method stringSetPrefsToUri (line 174) | public static Uri stringSetPrefsToUri(String name) {
    method intPrefsToUri (line 178) | public static Uri intPrefsToUri(String name, int defValue) {
    method boolPrefsToUri (line 182) | public static Uri boolPrefsToUri(String name, boolean defValue) {
    method shortcutIconPrefsToUri (line 186) | public static Uri shortcutIconPrefsToUri(String name) {
    method anyPrefsToUri (line 190) | public static Uri anyPrefsToUri() {
    class SharedPrefsObserver (line 195) | public static class SharedPrefsObserver extends ContentObserver {
      type PrefType (line 197) | enum PrefType {
      method SharedPrefsObserver (line 208) | public SharedPrefsObserver(Context context, Handler handler) {
      method SharedPrefsObserver (line 215) | public SharedPrefsObserver(Context context, Handler handler, String ...
      method SharedPrefsObserver (line 224) | public SharedPrefsObserver(Context context, Handler handler, String ...
      method SharedPrefsObserver (line 232) | public SharedPrefsObserver(Context context, Handler handler, String ...
      method SharedPrefsObserver (line 241) | @SuppressLint("SuspiciousIndentation")
      method registerObserver (line 251) | void registerObserver() {
      method onChange (line 267) | @Override
      method onChange (line 275) | @Override
      method onChange (line 288) | public void onChange(Uri uri) {
      method onChange (line 291) | public void onChange(String name) {
      method onChange (line 294) | public void onChange(String name, String defValue) {
      method onChange (line 297) | public void onChange(String name, int defValue) {
      method onChange (line 300) | public void onChange(String name, boolean defValue) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/ResourcesHook.java
  class ResourcesHook (line 15) | public class ResourcesHook {
    type ReplacementType (line 18) | public enum ReplacementType {
    method getFakeResId (line 27) | public static int getFakeResId(String resourceName) {
    method before (line 32) | @Override
    method ResourcesHook (line 49) | public ResourcesHook() {
    method applyHooks (line 52) | private void applyHooks() {
    method addResource (line 71) | public int addResource(String resName, int resId) {
    method getFakeResource (line 83) | private Object getFakeResource(Context context, String method, Object[...
    method setResReplacement (line 104) | public void setResReplacement(String pkg, String type, String name, in...
    method setDensityReplacement (line 113) | public void setDensityReplacement(String pkg, String type, String name...
    method setObjectReplacement (line 122) | public void setObjectReplacement(String pkg, String type, String name,...
    method getResourceReplacement (line 131) | private Object getResourceReplacement(Context context, Resources res, ...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/SearchHelper.java
  class SearchHelper (line 21) | public class SearchHelper {
    method getAllMods (line 36) | public static void getAllMods(Context context, boolean force) {
    method parsePrefXml (line 667) | private static void parsePrefXml(Context context, int xmlResId, int ca...
    method getModTitle (line 709) | private static String getModTitle(Resources res, String title) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/SettingLauncher.java
  class SettingLauncher (line 10) | public class SettingLauncher {
    method SettingLauncher (line 23) | public SettingLauncher(Context context) {
    method setClass (line 30) | public SettingLauncher setClass(Class<?> cls) {
    method setDestination (line 35) | public SettingLauncher setDestination(String name) {
    method setTitleRes (line 40) | public SettingLauncher setTitleRes(int titleResId) {
    method setTitleText (line 45) | public SettingLauncher setTitleText(CharSequence title) {
    method setArguments (line 50) | public SettingLauncher setArguments(Bundle args) {
    method setExtras (line 55) | public SettingLauncher setExtras(Bundle extras) {
    method launch (line 60) | public void launch() {
    method toIntent (line 69) | public Intent toIntent() {
    method launch (line 85) | void launch(Intent intent) {
    method launchForResult (line 89) | void launchForResult(Fragment fragment, Intent intent, int i) {
    method copyExtras (line 93) | private void copyExtras(Intent intent) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/SettingLauncherHelper.java
  class SettingLauncherHelper (line 6) | public class SettingLauncherHelper {
    method onStartSettingsForArguments (line 8) | public static void onStartSettingsForArguments(Context context, Class<...
    method onStartSettingsForArguments (line 12) | public static void onStartSettingsForArguments(Context context, Class<...
    method onStartSettingsForArguments (line 16) | public static void onStartSettingsForArguments(Context context, Class<...
    method onStartSettingsForArguments (line 20) | public static void onStartSettingsForArguments(Context context, Class<...
    method onStartSettingsForArguments (line 24) | public static void onStartSettingsForArguments(Context context, Class<...
    method onStartSettingsForExtras (line 29) | public static void onStartSettingsForExtras(Context context, Class<?> ...
    method onStartSettings (line 34) | public static void onStartSettings(Context context, Class<?> cls, Clas...
    method onStartSettings (line 38) | public static void onStartSettings(Context context, Class<?> cls, Clas...
    method onStartSettings (line 42) | public static void onStartSettings(Context context, Class<?> cls, Clas...
    method onStartSettings (line 47) | public static void onStartSettings(Context context, Class<?> cls, Stri...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/ShakeManager.java
  class ShakeManager (line 10) | public class ShakeManager implements SensorEventListener {
    method ShakeManager (line 26) | public ShakeManager(Context helpercontext) {
    method reset (line 30) | public void reset() {
    method onAccuracyChanged (line 41) | @Override
    method onSensorChanged (line 46) | @Override
    method updateAccelParameters (line 57) | private void updateAccelParameters(float xNewAccel, float yNewAccel, f...
    method isAccelerationChanged (line 73) | private boolean isAccelerationChanged() {
    method executeShakeActionDelayed (line 85) | private void executeShakeActionDelayed() {
    method executeShakeAction (line 94) | private void executeShakeAction() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/ShellUtils.java
  class ShellUtils (line 11) | public class ShellUtils {
    method checkRootPermission (line 17) | public static int checkRootPermission() {
    method execCommand (line 40) | public static CommandResult execCommand(String command, boolean isRoot) {
    method execCommand (line 51) | public static CommandResult execCommand(List<String> commands, boolean...
    method execCommand (line 62) | public static CommandResult execCommand(String[] commands, boolean isR...
    method execCommand (line 75) | public static CommandResult execCommand(String command, boolean isRoot...
    method execCommand (line 87) | public static CommandResult execCommand(List<String> commands, boolean...
    method getResultBoolean (line 99) | public static boolean getResultBoolean(String command, boolean isRoot) {
    method getResultBoolean (line 111) | public static boolean getResultBoolean(List<String> commands, boolean ...
    method execCommand (line 127) | public static CommandResult execCommand(String[] commands, boolean isR...
    class CommandResult (line 214) | public static class CommandResult {
      method CommandResult (line 229) | public CommandResult(int result) {
      method CommandResult (line 233) | public CommandResult(int result, String successMsg, String errorMsg) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/TileUtils.java
  class TileUtils (line 18) | public abstract class TileUtils extends BaseHook {
    method init (line 30) | @Override
    method customQSFactory (line 195) | public Class<?> customQSFactory() {
    method customClass (line 200) | public Class<?> customClass() {
    method customTileProvider (line 205) | public String[] customTileProvider() {
    method customName (line 210) | public String customName() {
    method customValue (line 216) | public int customValue() {
    method needCustom (line 222) | public boolean needCustom() {
    method needAfter (line 227) | public boolean needAfter() {
    method SystemUiHook (line 234) | private void SystemUiHook() {
    method tileAllName (line 269) | private void tileAllName(Class<?> QSFactory) {
    method tileAllName14 (line 293) | private void tileAllName14(Class<?> QSFactory) {
    method showStateMessage (line 324) | private void showStateMessage(Class<?> myTile) {
    method tileCheck (line 343) | public void tileCheck(MethodHookParam param, String tileName) {
    method tileName (line 348) | private void tileName(Class<?> myTile) {
    method tileListening (line 380) | public void tileListening(MethodHookParam param, String tileName) {
    method tileLongClickIntent (line 385) | public void tileLongClickIntent(MethodHookParam param, String tileName) {
    method tileHandleLongClick (line 390) | public Intent tileHandleLongClick(MethodHookParam param, String tileNa...
    method tileClick (line 396) | public void tileClick(MethodHookParam param, String tileName) {
    method tileClickAfter (line 399) | public void tileClickAfter(MethodHookParam param, String tileName) {
    method tileUpdateState (line 404) | public ArrayMap<String, Integer> tileUpdateState(MethodHookParam param...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/ToastHelper.java
  class ToastHelper (line 8) | public class ToastHelper {
    method makeText (line 11) | public static void makeText(Context context, CharSequence text) {
    method makeText (line 17) | public static void makeText(Context context, @StringRes int resId) {
    method clearToast (line 23) | public static void clearToast() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/XposedUtils.java
  class XposedUtils (line 8) | public class XposedUtils {
    method getModuleContext (line 13) | public static synchronized Context getModuleContext(Context context) t...
    method getModuleContext (line 17) | public static synchronized Context getModuleContext(Context context, C...
    method getModuleRes (line 23) | public static synchronized Resources getModuleRes(Context context) thr...

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/log/AndroidLogUtils.java
  class AndroidLogUtils (line 12) | public class AndroidLogUtils {
    method getDisableDetailedLog (line 19) | private static void getDisableDetailedLog() {
    method LogI (line 31) | public static void LogI(String tag, String msg) {
    method deLogI (line 38) | public static void deLogI(String tag, String msg) {
    method LogD (line 42) | public static void LogD(String tag, Throwable tr) {
    method LogD (line 47) | public static void LogD(String tag, String msg, Throwable tr) {
    method LogE (line 52) | public static void LogE(String tag, Throwable tr) {
    method LogE (line 57) | public static void LogE(String tag, String msg, Throwable tr) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/utils/log/XposedLogUtils.java
  class XposedLogUtils (line 11) | public class XposedLogUtils {
    method logI (line 17) | public static void logI(String msg) {
    method logI (line 23) | public static void logI(String tag, String msg) {
    method logW (line 29) | public static void logW(String msg) {
    method logW (line 35) | public static void logW(String tag, String msg) {
    method logW (line 41) | public static void logW(String tag, Throwable log) {
    method logW (line 47) | public static void logW(String tag, String msg, Exception exp) {
    method logW (line 53) | public static void logW(String tag, String msg, Throwable log) {
    method logE (line 59) | public static void logE(String tag, String msg) {
    method logE (line 63) | public static void logE(String tag, Throwable log) {
    method logE (line 67) | public static void logE(String tag, Exception exp) {
    method logE (line 71) | public static void logE(String tag, String msg, Throwable log) {
    method logE (line 75) | public static void logE(String tag, String msg, Exception exp) {
    method logD (line 79) | public static void logD(String msg) {
    method logD (line 84) | public static void logD(String tag, String msg) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/view/BatteryIndicatorView.java
  class BatteryIndicatorView (line 31) | public class BatteryIndicatorView extends ImageView {
    type ColorMode (line 63) | enum ColorMode {
    method BatteryIndicatorView (line 67) | public BatteryIndicatorView(Context context) {
    method BatteryIndicatorView (line 72) | public BatteryIndicatorView(Context context, AttributeSet attributeSet) {
    method init (line 77) | public void init(Object statusBar) {
    method run (line 114) | @Override
    method startTest (line 131) | private void startTest() {
    method postUpdate (line 137) | private void postUpdate() {
    method onExpandingChanged (line 141) | public void onExpandingChanged(boolean expanded) {
    method onKeyguardStateChanged (line 147) | public void onKeyguardStateChanged(boolean showing) {
    method onDarkModeChanged (line 153) | public void onDarkModeChanged(float intensity, int tintColor) {
    method onBatteryLevelChanged (line 160) | public void onBatteryLevelChanged(int powerLevel, boolean isCharging, ...
    method onPowerSaveChanged (line 174) | public void onPowerSaveChanged(boolean isPowerSave) {
    method onExtremePowerSaveChanged (line 180) | public void onExtremePowerSaveChanged(boolean isExtremePowerSave) {
    method onConfigurationChanged (line 186) | @Override
    method onLayout (line 193) | @Override
    method update (line 202) | public void update() {
    method updateDisplaySize (line 208) | public void updateDisplaySize() {
    method updateParameters (line 212) | protected void updateParameters() {
    method updateDrawable (line 245) | @SuppressLint({"InternalInsetResource", "DiscouragedApi"})

FILE: app/src/main/java/com/sevtinge/cemiuiler/view/BlurFrameLayout.java
  class BlurFrameLayout (line 19) | @RequiresApi(Build.VERSION_CODES.S)
    method BlurFrameLayout (line 36) | public BlurFrameLayout(Context context, boolean blurEnable) {
    method BlurFrameLayout (line 40) | public BlurFrameLayout(View view, String key) {
    method setOnAttachStateChangeListener (line 60) | private void setOnAttachStateChangeListener(View view) {
    method setBackgroundDrawable (line 77) | private void setBackgroundDrawable(Context context, View view, boolean...
    method setColor (line 88) | public void setColor(int color, int alpha) {
    method setCornerRadius (line 95) | public void setCornerRadius(int cornerRadius) {
    method setBlurRadius (line 99) | public void setBlurRadius(int blurRadius) {
    method createGradientDrawable (line 103) | private GradientDrawable createGradientDrawable(Context context, int c...

FILE: app/src/main/java/com/sevtinge/cemiuiler/view/CircleImageView.java
  class CircleImageView (line 27) | public class CircleImageView extends ImageView {
    method CircleImageView (line 65) | public CircleImageView(Context context) {
    method CircleImageView (line 70) | public CircleImageView(Context context, AttributeSet attrs) {
    method CircleImageView (line 75) | public CircleImageView(Context context, AttributeSet attrs, int defSty...
    method init (line 89) | private void init() {
    method getScaleType (line 99) | @Override
    method setScaleType (line 104) | @Override
    method setAdjustViewBounds (line 111) | @Override
    method onDraw (line 118) | @Override
    method onSizeChanged (line 132) | @Override
    method getBorderColor (line 138) | public int getBorderColor() {
    method setBorderColor (line 142) | public void setBorderColor(@ColorInt int borderColor) {
    method setBorderColorResource (line 152) | public void setBorderColorResource(@ColorRes int borderColorRes) {
    method getFillColor (line 156) | public int getFillColor() {
    method setFillColor (line 160) | public void setFillColor(@ColorInt int fillColor) {
    method setFillColorResource (line 170) | public void setFillColorResource(@ColorRes int fillColorRes) {
    method getBorderWidth (line 174) | public int getBorderWidth() {
    method setBorderWidth (line 178) | public void setBorderWidth(int borderWidth) {
    method isBorderOverlay (line 187) | public boolean isBorderOverlay() {
    method setBorderOverlay (line 191) | public void setBorderOverlay(boolean borderOverlay) {
    method setImageBitmap (line 200) | @Override
    method setImageDrawable (line 207) | @Override
    method setImageResource (line 214) | @Override
    method setImageURI (line 221) | @Override
    method setColorFilter (line 228) | @Override
    method getBitmapFromDrawable (line 239) | private Bitmap getBitmapFromDrawable(Drawable drawable) {
    method setup (line 267) | private void setup() {
    method updateShaderMatrix (line 312) | private void updateShaderMatrix() {

FILE: app/src/main/java/com/sevtinge/cemiuiler/view/MultipleChoiceView.java
  class MultipleChoiceView (line 19) | public class MultipleChoiceView extends LinearLayout implements MutipleC...
    method MultipleChoiceView (line 31) | public MultipleChoiceView(Context context) {
    method MultipleChoiceView (line 36) | public MultipleChoiceView(Context context, @Nullable AttributeSet attr...
    method initView (line 43) | private void initView(Context context) {
    method setData (line 58) | public void setData(List<String> data, boolean[] isSelected) {
    method setOnCheckedListener (line 80) | public void setOnCheckedListener(onCheckedListener listener) {
    method onCurWillCheckAllChanged (line 84) | @Override
    type onCheckedListener (line 90) | public interface onCheckedListener {
      method onChecked (line 91) | void onChecked(SparseBooleanArray sparseBooleanArray);
    method selectAll (line 97) | public void selectAll() {
    method deselectAll (line 110) | public void deselectAll() {
    method reverseSelect (line 123) | public void reverseSelect() {
    class OnCustomMultipleChoiceCheckedListener (line 133) | private class OnCustomMultipleChoiceCheckedListener implements OnClick...
      method onClick (line 135) | @Override

FILE: app/src/main/java/com/sevtinge/cemiuiler/view/RestartAlertDialog.java
  class RestartAlertDialog (line 16) | public class RestartAlertDialog extends AlertDialog {
    method RestartAlertDialog (line 21) | public RestartAlertDialog(Context context) {
    method createMultipleChoiceView (line 26) | private MultipleChoiceView createMultipleChoiceView(Context context) {
    method restartApp (line 44) | public void restartApp(Context context, String packageName) {
    method restartSystemUI (line 50) | public void restartSystemUI(Context context) {

FILE: app/src/main/java/com/sevtinge/cemiuiler/view/SpinnerEx.java
  class SpinnerEx (line 15) | public class SpinnerEx extends Spinner {
    method SpinnerEx (line 21) | public SpinnerEx(Context context, AttributeSet attrs) {
    method findIndex (line 30) | private int findIndex(int val, int[] vals) {
    method init (line 36) | public void init(int val) {
    method addDisabledItems (line 43) | public void addDisabledItems(int item) {
    method getSelectedArrayValue (line 47) | public int getSelectedArrayValue() {
    class ArrayAdapterEx (line 51) | class ArrayAdapterEx extends ArrayAdapter<CharSequence> {
      method ArrayAdapterEx (line 53) | ArrayAdapterEx(Context context, int resource, CharSequence[] objects) {
      method isEnabled (line 57) | @Override
      method getDropDownView (line 62) | @Override

FILE: hidden-api/src/main/java/android/view/ViewRootImpl.java
  class ViewRootImpl (line 9) | public class ViewRootImpl {
    method createBackgroundBlurDrawable (line 10) | @RequiresApi(Build.VERSION_CODES.S)

FILE: hidden-api/src/main/java/com/android/internal/graphics/drawable/BackgroundBlurDrawable.java
  class BackgroundBlurDrawable (line 8) | @RequiresApi(Build.VERSION_CODES.S)

FILE: hidden-api/src/main/java/miui/app/MiuiFreeFormManager.java
  class MiuiFreeFormManager (line 3) | public class MiuiFreeFormManager {
Condensed preview — 1002 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,715K chars).
[
  {
    "path": ".editorconfig",
    "chars": 210,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 4\nindent_style = space\ninsert_final_newline = true\ntrim_"
  },
  {
    "path": ".gitattributes",
    "chars": 73,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto eol=lf\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/BUG-REPORT.yml",
    "chars": 1796,
    "preview": "name: \"🐛 Bug\"\ndescription: 问题报告.\ntitle: \"🐛 [BUG] <问题标题>\"\nlabels: [\n  \"bug\"\n]\nbody:\n  - type: textarea\n    id: descriptio"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml",
    "chars": 618,
    "preview": "name: \"💡 需求\"\ndescription: 新功能需求\ntitle: \"💡 [需求] <标题>\"\nlabels: [\n  \"enhancement\"\n]\nbody:\n  - type: textarea\n    id: requir"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/MIGRATION-REQUEST.yml",
    "chars": 638,
    "preview": "name: \"🔌 移植\"\ndescription: 新功能需求\ntitle: \"🔌 [移植] <标题>\"\nlabels: [\n  \"enhancement\"\n]\nbody:\n  - type: input\n    id: repo\n    "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 27,
    "preview": "blank_issues_enabled: false"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 530,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/workflows/android.yml",
    "chars": 3940,
    "preview": "name: Android CI\n\non:\n  push:\n    branches: [ \"main\" ]\n  pull_request:\n    branches: [ \"main\" ]\n    paths-ignore:\n      "
  },
  {
    "path": ".github/workflows/androidu.yml",
    "chars": 3469,
    "preview": "name: Android U Action\n\non:\n  push:\n    branches: [ \"Android-U\" ]\n  pull_request:\n    branches: [ \"Android-U\" ]\n    path"
  },
  {
    "path": ".github/workflows/crowdin.yml",
    "chars": 1056,
    "preview": "name: Crowdin Action\n\non:\n   workflow_dispatch:\n   push:\n     branches: [ main ]\n     paths:\n       - app/src/main/res/v"
  },
  {
    "path": ".gitignore",
    "chars": 154,
    "preview": "*.iml\n.gradle\n/local.properties\n.idea\n.DS_Store\n/build\n/captures\n.externalNativeBuild\n.cxx\nlocal.properties\n/app/release"
  },
  {
    "path": "LICENSE",
    "chars": 34523,
    "preview": "                    GNU AFFERO GENERAL PUBLIC LICENSE\n                       Version 3, 19 November 2007\n\n Copyright (C)"
  },
  {
    "path": "README.md",
    "chars": 6681,
    "preview": "<div align=\"center\">\n\n<img width=\"\" src=\"/imgs/icon.png\" width=160 height=160 align=\"center\">\n\n# Cemiuiler\n### Make MIUI"
  },
  {
    "path": "README_en-US.md",
    "chars": 7694,
    "preview": "<div align=\"center\">\n\n<img width=\"\" src=\"/imgs/icon.png\" width=160 height=160 align=\"center\">\n\n# Cemiuiler\n### Make MIUI"
  },
  {
    "path": "README_pt-BR.md",
    "chars": 7846,
    "preview": "<div align=\"center\">\n\n<img width=\"\" src=\"/imgs/icon.png\" width=160 height=160 align=\"center\">\n\n# Cemiuiler\n### Torne a M"
  },
  {
    "path": "app/.gitignore",
    "chars": 6,
    "preview": "/build"
  },
  {
    "path": "app/build.gradle",
    "chars": 5549,
    "preview": "import java.time.LocalDateTime\nimport java.time.format.DateTimeFormatter\n\nplugins {\n    id 'com.android.application'\n   "
  },
  {
    "path": "app/dict.txt",
    "chars": 40376,
    "preview": "0000O000000o\n000O00000Oo\n000O00000o0\n000O00000o\n000O00000oO\n000O00000oo\n000O0000O0o\n000O0000OOo\n000O0000Oo0\n000O0000Oo\n0"
  },
  {
    "path": "app/proguard-log.pro",
    "chars": 2479,
    "preview": "##########################################################################################################\n# 作者:Sollyu\n#"
  },
  {
    "path": "app/proguard-rules.pro",
    "chars": 720,
    "preview": "-keep class com.sevtinge.cemiuiler.XposedInit\n-keep class com.sevtinge.cemiuiler.module.app.SystemFrameworkForCorePatch\n"
  },
  {
    "path": "app/src/main/AndroidManifest.xml",
    "chars": 5545,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:to"
  },
  {
    "path": "app/src/main/assets/xposed_init",
    "chars": 33,
    "preview": "com.sevtinge.cemiuiler.XposedInit"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/Application.java",
    "chars": 463,
    "preview": "package com.sevtinge.cemiuiler;\n\nimport android.content.Context;\nimport android.os.Build;\n\nimport com.sevtinge.cemiuiler"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/CrashRecord.kt",
    "chars": 2140,
    "preview": "package com.sevtinge.cemiuiler\n\nimport android.annotation.SuppressLint\nimport android.content.Context\nimport com.sevting"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/XposedInit.kt",
    "chars": 3209,
    "preview": "package com.sevtinge.cemiuiler\n\nimport com.github.kyuubiran.ezxhelper.EzXHelper\nimport com.sevtinge.cemiuiler.module.app"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/callback/IAppSelectCallback.java",
    "chars": 251,
    "preview": "package com.sevtinge.cemiuiler.callback;\n\npublic interface IAppSelectCallback {\n\n    void sendMsgToActivity(byte[] appIc"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/AppData.java",
    "chars": 356,
    "preview": "package com.sevtinge.cemiuiler.data;\n\nimport android.graphics.Bitmap;\n\npublic class AppData {\n\n    public int user = 0;\n"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/LocationData.java",
    "chars": 2152,
    "preview": "package com.sevtinge.cemiuiler.data;\n\npublic class LocationData {\n\n    private String Title; // 备注\n    private Double Lo"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/ModData.java",
    "chars": 404,
    "preview": "package com.sevtinge.cemiuiler.data;\n\npublic class ModData {\n    public String title;\n    public String breadcrumbs;\n   "
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/SQLiteHelper.java",
    "chars": 2124,
    "preview": "package com.sevtinge.cemiuiler.data;\n\nimport android.content.ContentValues;\nimport android.content.Context;\nimport andro"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/adapter/AppDataAdapter.java",
    "chars": 3597,
    "preview": "package com.sevtinge.cemiuiler.data.adapter;\n\nimport android.annotation.SuppressLint;\nimport android.content.Context;\nim"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/adapter/ModSearchAdapter.java",
    "chars": 5113,
    "preview": "package com.sevtinge.cemiuiler.data.adapter;\n\nimport android.annotation.SuppressLint;\nimport android.content.Context;\nim"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/data/adapter/MutipleChoiceAdapter.java",
    "chars": 3019,
    "preview": "package com.sevtinge.cemiuiler.data.adapter;\n\nimport android.util.SparseBooleanArray;\nimport android.view.LayoutInflater"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/AiAsst.java",
    "chars": 343,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Aod.java",
    "chars": 370,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.hook.aod.UnlockAlwaysOnDisplay;\nimport "
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Barrage.java",
    "chars": 447,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.hook.barrage.*;\nimport com.sevtinge.cem"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Browser.java",
    "chars": 762,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Camera.java",
    "chars": 7465,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Clock.java",
    "chars": 357,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/ContentExtension.java",
    "chars": 1330,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Creation.java",
    "chars": 538,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Downloads.java",
    "chars": 361,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/ExternalStorage.java",
    "chars": 392,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/FileExplorer.java",
    "chars": 600,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Gallery.java",
    "chars": 2113,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/GlobalActions.java",
    "chars": 14472,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.log.AndroidLogUtils.LogD;\nimport "
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/GuardProvider.java",
    "chars": 628,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Home.java",
    "chars": 18131,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.isPad;\nimport s"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/InCallUi.java",
    "chars": 503,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Joyose.java",
    "chars": 771,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Lbe.java",
    "chars": 363,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Market.java",
    "chars": 365,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/MediaEditor.java",
    "chars": 816,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/MiLink.java",
    "chars": 352,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/MiSettings.java",
    "chars": 776,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/MiShare.java",
    "chars": 755,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/MiWallpaper.java",
    "chars": 391,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Mirror.java",
    "chars": 357,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Mms.java",
    "chars": 749,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Mtb.java",
    "chars": 481,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Music.java",
    "chars": 338,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/NetworkBoost.java",
    "chars": 375,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Nfc.java",
    "chars": 430,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Notes.java",
    "chars": 377,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/PackageInstaller.java",
    "chars": 2293,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport android.text.TextUtils;\n\nimport com.sevtinge.cemiuiler.module.base.Ba"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/PersonalAssistant.java",
    "chars": 1542,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Phone.java",
    "chars": 1226,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/PowerKeeper.java",
    "chars": 1150,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Scanner.java",
    "chars": 1220,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/ScreenRecorder.java",
    "chars": 1179,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/ScreenShot.java",
    "chars": 1411,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport android.text.TextUtils;\n\nimport com.sevtinge.cemiuiler.module.base.Ba"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/SecurityCenter.java",
    "chars": 8103,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Settings.java",
    "chars": 867,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemFramework.java",
    "chars": 8818,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.isPad;\nimport s"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemFrameworkForCorePatch.java",
    "chars": 2903,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport android.os.Build;\n\nimport com.sevtinge.cemiuiler.module.hook.systemfr"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemSettings.java",
    "chars": 3403,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/SystemUI.java",
    "chars": 17433,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/ThemeManager.java",
    "chars": 906,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/TsmClient.java",
    "chars": 345,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Updater.java",
    "chars": 1185,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport android.text.TextUtils;\n\nimport com.sevtinge.cemiuiler.module.base.Ba"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Various.java",
    "chars": 2145,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/VoiceAssist.java",
    "chars": 623,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/app/Weather.java",
    "chars": 368,
    "preview": "package com.sevtinge.cemiuiler.module.app;\n\nimport com.sevtinge.cemiuiler.module.base.BaseModule;\nimport com.sevtinge.ce"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/base/BaseHook.java",
    "chars": 9503,
    "preview": "package com.sevtinge.cemiuiler.module.base;\n\nimport static com.sevtinge.cemiuiler.utils.log.AndroidLogUtils.LogD;\n\nimpor"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/base/BaseModule.java",
    "chars": 833,
    "preview": "package com.sevtinge.cemiuiler.module.base;\n\nimport com.sevtinge.cemiuiler.XposedInit;\nimport com.sevtinge.cemiuiler.uti"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/base/BaseXposedInit.java",
    "chars": 15727,
    "preview": "package com.sevtinge.cemiuiler.module.base;\n\nimport static com.sevtinge.cemiuiler.utils.log.AndroidLogUtils.LogD;\n\nimpor"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/base/HostDir.kt",
    "chars": 433,
    "preview": "package com.sevtinge.cemiuiler.module.base\n\nimport com.sevtinge.cemiuiler.utils.DexKit.closeDexKit\nimport com.sevtinge.c"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/base/IXposedHook.java",
    "chars": 133,
    "preview": "package com.sevtinge.cemiuiler.module.base;\n\npublic interface IXposedHook {\n\n    void initZygote();\n\n    void handleLoad"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/aiasst/AiCaptions.kt",
    "chars": 1070,
    "preview": "package com.sevtinge.cemiuiler.module.hook.aiasst\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\nimport com"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/aod/UnlockAlwaysOnDisplay.kt",
    "chars": 578,
    "preview": "package com.sevtinge.cemiuiler.module.hook.aod\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\nimport com.gi"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/barrage/AnyBarrage.kt",
    "chars": 1233,
    "preview": "package com.sevtinge.cemiuiler.module.hook.barrage\n\n\nimport android.service.notification.StatusBarNotification\nimport co"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/barrage/CustomBarrageLength.kt",
    "chars": 2608,
    "preview": "package com.sevtinge.cemiuiler.module.hook.barrage\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\nimport co"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/browser/DebugMode.kt",
    "chars": 4963,
    "preview": "package com.sevtinge.cemiuiler.module.hook.browser\n\nimport com.github.kyuubiran.ezxhelper.EzXHelper.safeClassLoader\nimpo"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/EnableLabOptions.kt",
    "chars": 625,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook\nimport com.sevting"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/Unlock120Fps.java",
    "chars": 480,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/Unlock60Fps.java",
    "chars": 495,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiEnhance.java",
    "chars": 771,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiShutter.java",
    "chars": 1036,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiWatermark.java",
    "chars": 488,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAmbilight.java",
    "chars": 495,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAudioZoom.java",
    "chars": 491,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockClone.java",
    "chars": 779,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockColorEnhance.java",
    "chars": 776,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCosmeticMirror.java",
    "chars": 510,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCvlens.java",
    "chars": 1499,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\nimport com.sevti"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCyberFocusVersion2.java",
    "chars": 776,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDoc.java",
    "chars": 477,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDualcam.java",
    "chars": 489,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDuration.java",
    "chars": 490,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilm.java",
    "chars": 489,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDelay.java",
    "chars": 494,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDollyZoom.java",
    "chars": 504,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDream.java",
    "chars": 492,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmSlowShutter.java",
    "chars": 510,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmTimeBackflow.java",
    "chars": 513,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmTimeFreeze.java",
    "chars": 507,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHandGesture.java",
    "chars": 496,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHdr.java",
    "chars": 1324,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHeic.java",
    "chars": 752,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockIdcard.java",
    "chars": 486,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockLog.java",
    "chars": 771,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMakeup.java",
    "chars": 1317,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMenMakeup.java",
    "chars": 777,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMilive.java",
    "chars": 486,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMoon.java",
    "chars": 480,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockNevus.java",
    "chars": 1057,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockNewBeauty.java",
    "chars": 781,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPano.java",
    "chars": 486,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPixel.java",
    "chars": 483,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPortrait.java",
    "chars": 492,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockRaw.java",
    "chars": 745,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockSlow.java",
    "chars": 486,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockTrackEyes.java",
    "chars": 761,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockTrackFeature.java",
    "chars": 784,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockTrackFocus.java",
    "chars": 1048,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVideosky.java",
    "chars": 492,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVlog.java",
    "chars": 772,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVlogPro.java",
    "chars": 789,
    "preview": "package com.sevtinge.cemiuiler.module.hook.camera;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Un"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/clock/EnableHourGlass.java",
    "chars": 911,
    "preview": "package com.sevtinge.cemiuiler.module.hook.clock;\n\nimport static com.sevtinge.cemiuiler.utils.Helpers.getPackageVersionC"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/DoublePress.kt",
    "chars": 694,
    "preview": "package com.sevtinge.cemiuiler.module.hook.contentextension\n\nimport android.content.Context\nimport com.github.kyuubiran."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/HorizontalContentExtension.kt",
    "chars": 675,
    "preview": "package com.sevtinge.cemiuiler.module.hook.contentextension\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\n"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/LinkOpenMode.java",
    "chars": 2992,
    "preview": "package com.sevtinge.cemiuiler.module.hook.contentextension;\n\nimport android.content.Context;\nimport android.content.Int"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/SuperImage.kt",
    "chars": 888,
    "preview": "package com.sevtinge.cemiuiler.module.hook.contentextension\n\nimport android.graphics.Bitmap\nimport com.github.kyuubiran."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/UnlockTaplus.kt",
    "chars": 858,
    "preview": "package com.sevtinge.cemiuiler.module.hook.contentextension\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\n"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/UseThirdPartyBrowser.java",
    "chars": 2285,
    "preview": "package com.sevtinge.cemiuiler.module.hook.contentextension;\n\nimport android.app.SearchManager;\nimport android.content.C"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/creation/UnlockCreation.kt",
    "chars": 365,
    "preview": "package com.sevtinge.cemiuiler.module.hook.creation\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.setStaticObject\nim"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/downloads/FuckXlDownload.java",
    "chars": 1279,
    "preview": "package com.sevtinge.cemiuiler.module.hook.downloads;\n\nimport android.os.Environment;\n\nimport com.sevtinge.cemiuiler.mod"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/externalstorage/DisableFolderCantUse.java",
    "chars": 498,
    "preview": "package com.sevtinge.cemiuiler.module.hook.externalstorage;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/fileexplorer/SelectName.kt",
    "chars": 950,
    "preview": "package com.sevtinge.cemiuiler.module.hook.fileexplorer\n\nimport android.widget.TextView\nimport com.github.kyuubiran.ezxh"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableHdrEnhance.java",
    "chars": 543,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableIdPhoto.java",
    "chars": 1144,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableMagicMatting.java",
    "chars": 562,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableMagicSky.java",
    "chars": 549,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableOcr.java",
    "chars": 837,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableOcrForm.java",
    "chars": 537,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnablePdf.java",
    "chars": 537,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnablePhotoMovie.java",
    "chars": 855,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableRemover2.java",
    "chars": 568,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableTextYanhua.java",
    "chars": 544,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableVideoEditor.java",
    "chars": 863,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableVideoPost.java",
    "chars": 558,
    "preview": "package com.sevtinge.cemiuiler.module.hook.gallery;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/guardprovider/DisableUploadAppList.java",
    "chars": 13749,
    "preview": "package com.sevtinge.cemiuiler.module.hook.guardprovider;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\nimport co"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/guardprovider/DisableUploadAppListNew.kt",
    "chars": 1177,
    "preview": "package com.sevtinge.cemiuiler.module.hook.guardprovider\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook\nimport com."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/AllAppsBlur.java",
    "chars": 683,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.app.Activity;\n\nimport com.sevtinge.cemiuiler.module.bas"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/AnimDurationRatio.kt",
    "chars": 1072,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\nimport com.g"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/FreeFormCountForHome.java",
    "chars": 680,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\nimport de.robv.an"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/HideNavigationBar.java",
    "chars": 2702,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.provider.Settings;\nimport android.view.MotionEvent;\nimp"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/HomePortraitReverse.java",
    "chars": 682,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.app.Activity;\nimport android.content.pm.ActivityInfo;\ni"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/MaxFreeForm.kt",
    "chars": 2949,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home\n\nimport android.util.ArraySet\nimport com.github.kyuubiran.ezxhelper.Clas"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/ScreenSwipe.java",
    "chars": 7474,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport static com.sevtinge.cemiuiler.utils.log.AndroidLogUtils.LogD;\n\n"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/SeekPoints.java",
    "chars": 3881,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.content.Context;\nimport android.os.Handler;\nimport andr"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/SetDeviceLevel.kt",
    "chars": 3842,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\nimport com.g"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/StickyFloatingWindowsForHome.java",
    "chars": 1622,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.annotation.SuppressLint;\nimport android.content.Broadca"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/ToastSlideAgain.java",
    "chars": 2070,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.view.MotionEvent;\n\nimport com.sevtinge.cemiuiler.module"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/UnlockHotseatIcon.kt",
    "chars": 351,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook\nimport com.sevtinge."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/UserPresentAnimation.java",
    "chars": 965,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.isPad;\n\ni"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/WidgetCornerRadius.java",
    "chars": 1587,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport android.content.Context;\n\nimport com.sevtinge.cemiuiler.module."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/WidgetCrack.java",
    "chars": 765,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic class Widg"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/DisableRecentsIcon.kt",
    "chars": 661,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.dock\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClass\nimport "
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/DockCustom.java",
    "chars": 6465,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.dock;\n\nimport android.app.Activity;\nimport android.content.Context;\nimpo"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/FoldDeviceDock.kt",
    "chars": 2891,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.dock\n\nimport android.content.Context\nimport com.github.kyuubiran.ezxhelp"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/FoldDock.java",
    "chars": 2396,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.dock;\n\nimport android.content.Context;\n\nimport com.sevtinge.cemiuiler.mo"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/HideSeekPoint.kt",
    "chars": 1697,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.dock\n\nimport android.view.View\nimport android.view.ViewGroup\nimport com."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/ShowDockIconTitle.kt",
    "chars": 367,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.dock\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook\nimport com.sevt"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/drawer/AllAppsContainerViewBlur.kt",
    "chars": 2766,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.drawer\n\nimport android.app.Application\nimport android.content.Context\nim"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/drawer/AppDrawer.kt",
    "chars": 2097,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.drawer\n\nimport android.view.View\nimport com.github.kyuubiran.ezxhelper.C"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/drawer/PinyinArrangement.java",
    "chars": 2898,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.drawer;\n\nimport android.app.Activity;\n\nimport com.github.promeg.pinyinhe"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIcon.java",
    "chars": 560,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\n\npublic cla"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIconBlur.java",
    "chars": 7523,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.is"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIconBlur1x2.java",
    "chars": 4916,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.is"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIconBlur2x1.java",
    "chars": 5099,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.is"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderItemMaxCount.java",
    "chars": 2611,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport com.sevtinge.cemiuiler.module.base.BaseHook;\nimport com."
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderAnimation.kt",
    "chars": 3664,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder\n\nimport com.github.kyuubiran.ezxhelper.ClassUtils.loadClassOrNull"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderAutoClose.kt",
    "chars": 701,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder\n\nimport android.view.View\nimport com.sevtinge.cemiuiler.module.ba"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderBlur.kt",
    "chars": 5757,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder\n\nimport android.annotation.SuppressLint\nimport android.app.Activi"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderColumns.kt",
    "chars": 1488,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder\n\nimport android.view.ViewGroup\nimport android.widget.GridView\nimp"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderShade.java",
    "chars": 4866,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport android.content.Context;\nimport android.graphics.LinearG"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/FolderVerticalPadding.kt",
    "chars": 821,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder\n\nimport android.widget.GridView\nimport com.sevtinge.cemiuiler.mod"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/SmallFolderIconBlur.java",
    "chars": 6206,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.folder;\n\nimport android.content.Context;\nimport android.os.Build;\nimport"
  },
  {
    "path": "app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/DoubleTap.java",
    "chars": 4816,
    "preview": "package com.sevtinge.cemiuiler.module.hook.home.gesture;\n\nimport android.content.Context;\nimport android.os.SystemClock;"
  }
]

// ... and 802 more files (download for full content)

About this extraction

This page contains the full source code of the Sevtinge/Cemiuiler GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1002 files (3.2 MB), approximately 900.5k tokens, and a symbol index with 1783 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!