crimera / piko

revanced-patches for twitter
GNU General Public License v3.0
777 stars 30 forks source link

Pretty much nothing works. #351

Closed just-ero closed 1 month ago

just-ero commented 1 month ago

Not sure how else to put it. Most of the patches fail entirely. The APK I'm using is twitter-piko-material-you-v10.53.2-release.0.

There are so many errors, ReVanced manager won't even let me copy the full logs.

Logs ``` - Device Info ReVanced Manager: 1.21.2 Model: IN2023 Android version: 13 Supported architectures: arm64-v8a, armeabi-v7a, armeabi Root permissions: No - Patch Info App: com.twitter.android v10.53.2-release.0 (Suggested: Any) Patches version: v1.36.0 Patches added: Bring back twitter, Control video auto scroll, Customize Navigation Bar items, Disable chirp font, Hide Banner, Hide FAB, Hide promote button Patches removed: Remove Detailed posts, Remove message prompts Banner, Custom download folder, Open browser chooser on opening links, No shortened URL, Enable debug menu for posts, Custom downloader, Round off numbers, Selectable Text, Show sensitive media, Enable PiP mode automatically, Enable Reader Mode, Enable Undo Posts, Hide hidden replies Default patch options changed: None - Settings Allow changing patch selection: true Version compatibility check: true Show universal patches: false Patches source: crimera/piko Integration source: crimera/revanced-integrations - Logs Reading APK Decoding app manifest Loading patches Merging integrations Deleting existing temporary files directory Decoding resources Executing patches Applied 26 patches Control video auto scroll failed: app.revanced.patcher.patch.PatchException: com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c cannot be cast to com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:242) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Caused by: java.lang.ClassCastException: com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c cannot be cast to com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction at crimera.patches.twitter.timeline.enableVidAutoAdvance.EnableVidAutoAdvancePatch.execute(EnableVidAutoAdvancePatch.kt:52) at crimera.patches.twitter.timeline.enableVidAutoAdvance.EnableVidAutoAdvancePatch.execute(EnableVidAutoAdvancePatch.kt:21) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:190) ... 18 more Customize Navigation Bar items failed: app.revanced.patcher.patch.PatchException: Collection contains no element matching the predicate. at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:242) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate. at crimera.patches.twitter.misc.customize.navbar.CustomiseNavBarPatch.execute(CustomiseNavBarPatch.kt:98) at crimera.patches.twitter.misc.customize.navbar.CustomiseNavBarPatch.execute(CustomiseNavBarPatch.kt:35) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:190) ... 18 more Customize reply sort filter failed: app.revanced.patcher.patch.PatchException: com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c cannot be cast to com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:242) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Caused by: java.lang.ClassCastException: com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction35c cannot be cast to com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction at crimera.patches.twitter.misc.customize.replySorting.DefaultReplySortingPatch.execute(DefaultReplySortingPatch.kt:71) at crimera.patches.twitter.misc.customize.replySorting.DefaultReplySortingPatch.execute(DefaultReplySortingPatch.kt:35) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:190) ... 18 more Disable chirp font failed: app.revanced.patcher.patch.PatchException: 'Disable chirp font' depends on 'Hook feature flag' that raised an exception: app.revanced.patcher.patch.PatchException: getCount Method of CustomAdapter not found at crimera.patches.twitter.featureFlag.FeatureFlagPatch.execute(FeatureFlagPatch.kt:58) at crimera.patches.twitter.featureFlag.FeatureFlagPatch.execute(FeatureFlagPatch.kt:17) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:190) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:91) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:148) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Download patch failed: app.revanced.patcher.patch.PatchException: Collection contains no element matching the predicate. at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:242) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate. at crimera.patches.twitter.premium.unlockdownloads.DownloadPatch.execute(DownloadPatch.kt:115) at crimera.patches.twitter.premium.unlockdownloads.DownloadPatch.execute(DownloadPatch.kt:25) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:190) ... 18 more Hide FAB Menu Buttons failed: app.revanced.patcher.patch.PatchException: 'Hide FAB Menu Buttons' depends on 'Hook feature flag' that raised an exception: app.revanced.patcher.patch.PatchException: 'Hook feature flag' did not succeed previously at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:45) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:91) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:148) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Hide bookmark icon in timeline failed: app.revanced.patcher.patch.PatchException: 'Hide bookmark icon in timeline' depends on 'Hook feature flag' that raised an exception: app.revanced.patcher.patch.PatchException: 'Hook feature flag' did not succeed previously at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:45) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:91) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:148) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at app.revanced.patcher.Patcher$apply$1.invoke(SourceFile:0) at kotlinx.coroutines.flow.SafeFlow.collectSafely(Unknown Source:2) at kotlinx.coroutines.flow.AbstractFlow.collect(Unknown Source:71) at app.revanced.manager.flutter.MainActivity$runPatcher$1$patcherResult$1$2.invokeSuspend(Unknown Source:76) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11) at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(Unknown Source:23) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:26) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:73) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:0) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Unknown Source:6) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:0) at app.revanced.manager.flutter.MainActivity.runPatcher$lambda$35(Unknown Source:437) at app.revanced.manager.flutter.MainActivity.$r8$lambda$t9VOe3aFJZkCMY59Ya4Pcinu-pA(SourceFile:0) at app.revanced.manager.flutter.MainActivity$$ExternalSyntheticLambda6.run(SourceFile:0) at java.lang.Thread.run(Thread.java:1012) Hide immersive player failed: app.revanced.patcher.patch.PatchException: 'Hide immersive player' depends on 'Hook feature flag' that raised an exception: app.revanced.patcher.patch.PatchException: 'Hook feature flag' did not succeed previously at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:45) at app.revanced.patcher.Patcher$apply$1.invokeSuspend$executePatch(Unknown Source:91) at app.revanced.patcher.Patcher$apply$1.invokeSuspend(Unknown Source:282) at app.revanced.patcher.Patcher$appl ```
crimera commented 1 month ago

You're not meant to patch releases from twitter-apk. Those apks are already patched.

just-ero commented 1 month ago

Does it say that anywhere? Did I miss it? If so I'm really sorry. If it doesn't, it may be good to add in an obvious spot. And which patches exactly are applied?

crimera commented 4 weeks ago

And which patches exactly are applied?

All of them

Does it say that anywhere?

Yes at the top of the repo, it's description says "Apk builds of piko patches"