CrackMe.apk
Download file
package kotlin.reflect.jvm.internal;
import java.lang.annotation.Annotation;
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.WildcardType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import kotlin.Metadata;
import kotlin.collections.ArraysKt;
import kotlin.collections.CollectionsKt;
import kotlin.coroutines.Continuation;
import kotlin.jvm.JvmClassMappingKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.reflect.KCallable;
import kotlin.reflect.KParameter;
import kotlin.reflect.KType;
import kotlin.reflect.KTypeParameter;
import kotlin.reflect.KVisibility;
import kotlin.reflect.full.IllegalCallableAccessException;
import kotlin.reflect.jvm.KTypesJvm;
import kotlin.reflect.jvm.ReflectJvmMapping;
import kotlin.reflect.jvm.internal.ReflectProperties;
import kotlin.reflect.jvm.internal.calls.Caller;
import kotlin.reflect.jvm.internal.impl.descriptors.CallableMemberDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.DescriptorVisibility;
import kotlin.reflect.jvm.internal.impl.descriptors.FunctionDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.Modality;
@Metadata(d1 = {"\u0000\u0001\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0010 \n\u0002\u0010\u001b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\b\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0011\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010$\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\b \u0018\u0000*\u0006\b\u0000\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u00022\u00020\u0003B\u0005¢\u0006\u0002\u0010\u0004J%\u00106\u001a\u00028\u00002\u0016\u00107\u001a\f\u0012\b\b\u0001\u0012\u0004\u0018\u00010908\"\u0004\u0018\u000109H\u0016¢\u0006\u0002\u0010:J#\u0010;\u001a\u00028\u00002\u0014\u00107\u001a\u0010\u0012\u0004\u0012\u00020\f\u0012\u0006\u0012\u0004\u0018\u0001090<H\u0002¢\u0006\u0002\u0010=J#\u0010>\u001a\u00028\u00002\u0014\u00107\u001a\u0010\u0012\u0004\u0012\u00020\f\u0012\u0006\u0012\u0004\u0018\u0001090<H\u0016¢\u0006\u0002\u0010=J3\u0010?\u001a\u00028\u00002\u0014\u00107\u001a\u0010\u0012\u0004\u0012\u00020\f\u0012\u0006\u0012\u0004\u0018\u0001090<2\f\u0010@\u001a\b\u0012\u0002\b\u0003\u0018\u00010AH\u0000¢\u0006\u0004\bB\u0010CJ\u0010\u0010D\u001a\u0002092\u0006\u0010E\u001a\u00020,H\u0002J\n\u0010F\u001a\u0004\u0018\u00010GH\u0002R(\u0010\u0005\u001a\u001c\u0012\u0018\u0012\u0016\u0012\u0004\u0012\u00020\b \t*\n\u0012\u0004\u0012\u00020\b\u0018\u00010\u00070\u00070\u0006X\u0004¢\u0006\u0002\n\u0000R(\u0010\n\u001a\u001c\u0012\u0018\u0012\u0016\u0012\u0004\u0012\u00020\f \t*\n\u0012\u0004\u0012\u00020\f\u0018\u00010\u000b0\u000b0\u0006X\u0004¢\u0006\u0002\n\u0000R\u001c\u0010\r\u001a\u0010\u0012\f\u0012\n \t*\u0004\u0018\u00010\u000e0\u000e0\u0006X\u0004¢\u0006\u0002\n\u0000R(\u0010\u000f\u001a\u001c\u0012\u0018\u0012\u0016\u0012\u0004\u0012\u00020\u0010 \t*\n\u0012\u0004\u0012\u00020\u0010\u0018\u00010\u00070\u00070\u0006X\u0004¢\u0006\u0002\n\u0000R\u001a\u0010\u0011\u001a\b\u0012\u0004\u0012\u00020\b0\u00078VX\u0004¢\u0006\u0006\u001a\u0004\b\u0012\u0010\u0013R\u0016\u0010\u0014\u001a\u0006\u0012\u0002\b\u00030\u0015X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0016\u0010\u0017R\u0012\u0010\u0018\u001a\u00020\u0019X¦\u0004¢\u0006\u0006\u001a\u0004\b\u001a\u0010\u001bR\u0018\u0010\u001c\u001a\b\u0012\u0002\b\u0003\u0018\u00010\u0015X¦\u0004¢\u0006\u0006\u001a\u0004\b\u001d\u0010\u0017R\u0012\u0010\u001e\u001a\u00020\u001fX¦\u0004¢\u0006\u0006\u001a\u0004\b \u0010!R\u0014\u0010\"\u001a\u00020#8VX\u0004¢\u0006\u0006\u001a\u0004\b\"\u0010$R\u0014\u0010%\u001a\u00020#8DX\u0004¢\u0006\u0006\u001a\u0004\b%\u0010$R\u0012\u0010&\u001a\u00020#X¦\u0004¢\u0006\u0006\u001a\u0004\b&\u0010$R\u0014\u0010'\u001a\u00020#8VX\u0004¢\u0006\u0006\u001a\u0004\b'\u0010$R\u0014\u0010(\u001a\u00020#8VX\u0004¢\u0006\u0006\u001a\u0004\b(\u0010$R\u001a\u0010)\u001a\b\u0012\u0004\u0012\u00020\f0\u00078VX\u0004¢\u0006\u0006\u001a\u0004\b*\u0010\u0013R\u0014\u0010+\u001a\u00020,8VX\u0004¢\u0006\u0006\u001a\u0004\b-\u0010.R\u001a\u0010/\u001a\b\u0012\u0004\u0012\u0002000\u00078VX\u0004¢\u0006\u0006\u001a\u0004\b1\u0010\u0013R\u0016\u00102\u001a\u0004\u0018\u0001038VX\u0004¢\u0006\u0006\u001a\u0004\b4\u00105¨\u0006H"}, d2 = {"Lkotlin/reflect/jvm/internal/KCallableImpl;", "R", "Lkotlin/reflect/KCallable;", "Lkotlin/reflect/jvm/internal/KTypeParameterOwnerImpl;", "()V", "_annotations", "Lkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;", "", "", "kotlin.jvm.PlatformType", "_parameters", "Ljava/util/ArrayList;", "Lkotlin/reflect/KParameter;", "_returnType", "Lkotlin/reflect/jvm/internal/KTypeImpl;", "_typeParameters", "Lkotlin/reflect/jvm/internal/KTypeParameterImpl;", "annotations", "getAnnotations", "()Ljava/util/List;", "caller", "Lkotlin/reflect/jvm/internal/calls/Caller;", "getCaller", "()Lkotlin/reflect/jvm/internal/calls/Caller;", "container", "Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;", "getContainer", "()Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;", "defaultCaller", "getDefaultCaller", "descriptor", "Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor;", "getDescriptor", "()Lorg/jetbrains/kotlin/descriptors/CallableMemberDescriptor;", "isAbstract", "", "()Z", "isAnnotationConstructor", "isBound", "isFinal", "isOpen", "parameters", "getParameters", "returnType", "Lkotlin/reflect/KType;", "getReturnType", "()Lkotlin/reflect/KType;", "typeParameters", "Lkotlin/reflect/KTypeParameter;", "getTypeParameters", "visibility", "Lkotlin/reflect/KVisibility;", "getVisibility", "()Lkotlin/reflect/KVisibility;", "call", "args", "", "", "([Ljava/lang/Object;)Ljava/lang/Object;", "callAnnotationConstructor", "", "(Ljava/util/Map;)Ljava/lang/Object;", "callBy", "callDefaultMethod", "continuationArgument", "Lkotlin/coroutines/Continuation;", "callDefaultMethod$kotlin_reflection", "(Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "defaultEmptyArray", "type", "extractContinuationArgument", "Ljava/lang/reflect/Type;", "kotlin-reflection"}, k = 1, mv = {1, 6, 0}, xi = 48)
/* compiled from: KCallableImpl.kt */
public abstract class KCallableImpl<R> implements KCallable<R>, KTypeParameterOwnerImpl {
private final ReflectProperties.LazySoftVal<List<Annotation>> _annotations;
private final ReflectProperties.LazySoftVal<ArrayList<KParameter>> _parameters;
private final ReflectProperties.LazySoftVal<KTypeImpl> _returnType;
private final ReflectProperties.LazySoftVal<List<KTypeParameterImpl>> _typeParameters;
public abstract Caller<?> getCaller();
public abstract KDeclarationContainerImpl getContainer();
public abstract Caller<?> getDefaultCaller();
public abstract CallableMemberDescriptor getDescriptor();
public abstract boolean isBound();
public KCallableImpl() {
ReflectProperties.LazySoftVal<List<Annotation>> lazySoft = ReflectProperties.lazySoft(new KCallableImpl$_annotations$1(this));
Intrinsics.checkNotNullExpressionValue(lazySoft, "lazySoft { descriptor.computeAnnotations() }");
this._annotations = lazySoft;
ReflectProperties.LazySoftVal<ArrayList<KParameter>> lazySoft2 = ReflectProperties.lazySoft(new KCallableImpl$_parameters$1(this));
Intrinsics.checkNotNullExpressionValue(lazySoft2, "lazySoft {\n val d…ze()\n result\n }");
this._parameters = lazySoft2;
ReflectProperties.LazySoftVal<KTypeImpl> lazySoft3 = ReflectProperties.lazySoft(new KCallableImpl$_returnType$1(this));
Intrinsics.checkNotNullExpressionValue(lazySoft3, "lazySoft {\n KType…eturnType\n }\n }");
this._returnType = lazySoft3;
ReflectProperties.LazySoftVal<List<KTypeParameterImpl>> lazySoft4 = ReflectProperties.lazySoft(new KCallableImpl$_typeParameters$1(this));
Intrinsics.checkNotNullExpressionValue(lazySoft4, "lazySoft {\n descr…this, descriptor) }\n }");
this._typeParameters = lazySoft4;
}
public List<Annotation> getAnnotations() {
List<Annotation> invoke = this._annotations.invoke();
Intrinsics.checkNotNullExpressionValue(invoke, "_annotations()");
return invoke;
}
public List<KParameter> getParameters() {
ArrayList<KParameter> invoke = this._parameters.invoke();
Intrinsics.checkNotNullExpressionValue(invoke, "_parameters()");
return invoke;
}
public KType getReturnType() {
KTypeImpl invoke = this._returnType.invoke();
Intrinsics.checkNotNullExpressionValue(invoke, "_returnType()");
return invoke;
}
public List<KTypeParameter> getTypeParameters() {
List<KTypeParameterImpl> invoke = this._typeParameters.invoke();
Intrinsics.checkNotNullExpressionValue(invoke, "_typeParameters()");
return invoke;
}
public KVisibility getVisibility() {
DescriptorVisibility visibility = getDescriptor().getVisibility();
Intrinsics.checkNotNullExpressionValue(visibility, "descriptor.visibility");
return UtilKt.toKVisibility(visibility);
}
public boolean isFinal() {
return getDescriptor().getModality() == Modality.FINAL;
}
public boolean isOpen() {
return getDescriptor().getModality() == Modality.OPEN;
}
public boolean isAbstract() {
return getDescriptor().getModality() == Modality.ABSTRACT;
}
/* access modifiers changed from: protected */
public final boolean isAnnotationConstructor() {
return Intrinsics.areEqual((Object) getName(), (Object) "<init>") && getContainer().getJClass().isAnnotation();
}
public R call(Object... objArr) {
Intrinsics.checkNotNullParameter(objArr, "args");
try {
return getCaller().call(objArr);
} catch (IllegalAccessException e) {
throw new IllegalCallableAccessException(e);
}
}
public R callBy(Map<KParameter, ? extends Object> map) {
Intrinsics.checkNotNullParameter(map, "args");
return isAnnotationConstructor() ? callAnnotationConstructor(map) : callDefaultMethod$kotlin_reflection(map, (Continuation<?>) null);
}
public final R callDefaultMethod$kotlin_reflection(Map<KParameter, ? extends Object> map, Continuation<?> continuation) {
Intrinsics.checkNotNullParameter(map, "args");
List<KParameter> parameters = getParameters();
ArrayList arrayList = new ArrayList(parameters.size());
ArrayList arrayList2 = new ArrayList(1);
Iterator<KParameter> it = parameters.iterator();
int i = 0;
boolean z = false;
int i2 = 0;
while (true) {
Object obj = null;
if (it.hasNext()) {
KParameter next = it.next();
if (i != 0 && i % 32 == 0) {
arrayList2.add(Integer.valueOf(i2));
i2 = 0;
}
if (map.containsKey(next)) {
arrayList.add(map.get(next));
} else if (next.isOptional()) {
if (!UtilKt.isInlineClassType(next.getType())) {
obj = UtilKt.defaultPrimitiveValue(ReflectJvmMapping.getJavaType(next.getType()));
}
arrayList.add(obj);
i2 = (1 << (i % 32)) | i2;
z = true;
} else if (next.isVararg()) {
arrayList.add(defaultEmptyArray(next.getType()));
} else {
throw new IllegalArgumentException(Intrinsics.stringPlus("No argument provided for a required parameter: ", next));
}
if (next.getKind() == KParameter.Kind.VALUE) {
i++;
}
} else {
if (continuation != null) {
arrayList.add(continuation);
}
if (!z) {
Object[] array = arrayList.toArray(new Object[0]);
Objects.requireNonNull(array, "null cannot be cast to non-null type kotlin.Array<T of kotlin.collections.ArraysKt__ArraysJVMKt.toTypedArray>");
return call(Arrays.copyOf(array, array.length));
}
arrayList2.add(Integer.valueOf(i2));
Caller<?> defaultCaller = getDefaultCaller();
if (defaultCaller != null) {
arrayList.addAll(arrayList2);
arrayList.add((Object) null);
try {
Object[] array2 = arrayList.toArray(new Object[0]);
if (array2 != null) {
return defaultCaller.call(array2);
}
throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T of kotlin.collections.ArraysKt__ArraysJVMKt.toTypedArray>");
} catch (IllegalAccessException e) {
throw new IllegalCallableAccessException(e);
}
} else {
throw new KotlinReflectionInternalError(Intrinsics.stringPlus("This callable does not support a default call: ", getDescriptor()));
}
}
}
}
private final R callAnnotationConstructor(Map<KParameter, ? extends Object> map) {
Object obj;
Iterable<KParameter> parameters = getParameters();
Collection arrayList = new ArrayList(CollectionsKt.collectionSizeOrDefault(parameters, 10));
for (KParameter kParameter : parameters) {
if (map.containsKey(kParameter)) {
obj = map.get(kParameter);
if (obj == null) {
throw new IllegalArgumentException("Annotation argument value cannot be null (" + kParameter + ')');
}
} else if (kParameter.isOptional()) {
obj = null;
} else if (kParameter.isVararg()) {
obj = defaultEmptyArray(kParameter.getType());
} else {
throw new IllegalArgumentException(Intrinsics.stringPlus("No argument provided for a required parameter: ", kParameter));
}
arrayList.add(obj);
}
List list = (List) arrayList;
Caller<?> defaultCaller = getDefaultCaller();
if (defaultCaller != null) {
try {
Object[] array = list.toArray(new Object[0]);
if (array != null) {
return defaultCaller.call(array);
}
throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T of kotlin.collections.ArraysKt__ArraysJVMKt.toTypedArray>");
} catch (IllegalAccessException e) {
throw new IllegalCallableAccessException(e);
}
} else {
throw new KotlinReflectionInternalError(Intrinsics.stringPlus("This callable does not support a default call: ", getDescriptor()));
}
}
private final Object defaultEmptyArray(KType kType) {
Class<?> javaClass = JvmClassMappingKt.getJavaClass(KTypesJvm.getJvmErasure(kType));
if (javaClass.isArray()) {
Object newInstance = Array.newInstance(javaClass.getComponentType(), 0);
Intrinsics.checkNotNullExpressionValue(newInstance, "type.jvmErasure.java.run…\"\n )\n }");
return newInstance;
}
throw new KotlinReflectionInternalError("Cannot instantiate the default empty array of type " + javaClass.getSimpleName() + ", because it is not an array type");
}
/* access modifiers changed from: private */
public final Type extractContinuationArgument() {
Type type;
Type[] lowerBounds;
CallableMemberDescriptor descriptor = getDescriptor();
FunctionDescriptor functionDescriptor = descriptor instanceof FunctionDescriptor ? (FunctionDescriptor) descriptor : null;
boolean z = false;
if (functionDescriptor != null && functionDescriptor.isSuspend()) {
z = true;
}
if (!z) {
return null;
}
Object lastOrNull = CollectionsKt.lastOrNull(getCaller().getParameterTypes());
ParameterizedType parameterizedType = lastOrNull instanceof ParameterizedType ? (ParameterizedType) lastOrNull : null;
if (parameterizedType == null) {
type = null;
} else {
type = parameterizedType.getRawType();
}
if (!Intrinsics.areEqual((Object) type, (Object) Continuation.class)) {
return null;
}
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
Intrinsics.checkNotNullExpressionValue(actualTypeArguments, "continuationType.actualTypeArguments");
Object single = ArraysKt.single((T[]) (Object[]) actualTypeArguments);
WildcardType wildcardType = single instanceof WildcardType ? (WildcardType) single : null;
if (wildcardType == null || (lowerBounds = wildcardType.getLowerBounds()) == null) {
return null;
}
return (Type) ArraysKt.first((T[]) lowerBounds);
}
}
Download file