package g.a.n2;

import f.l;
import java.util.ArrayDeque;
import java.util.Iterator;

/* JADX INFO: compiled from: StackTraceRecovery.kt */
/* JADX INFO: loaded from: classes.dex */
public final class a0 {
    private static final String a;

    static {
        Object objA;
        Object objA2;
        try {
            l.a aVar = f.l.f3940b;
            objA = Class.forName("f.w.k.a.a").getCanonicalName();
            f.l.a(objA);
        } catch (Throwable th) {
            l.a aVar2 = f.l.f3940b;
            objA = f.m.a(th);
            f.l.a(objA);
        }
        if (f.l.b(objA) != null) {
            objA = "kotlin.coroutines.jvm.internal.BaseContinuationImpl";
        }
        a = (String) objA;
        try {
            l.a aVar3 = f.l.f3940b;
            objA2 = Class.forName("g.a.n2.a0").getCanonicalName();
            f.l.a(objA2);
        } catch (Throwable th2) {
            l.a aVar4 = f.l.f3940b;
            objA2 = f.m.a(th2);
            f.l.a(objA2);
        }
        if (f.l.b(objA2) != null) {
            objA2 = "kotlinx.coroutines.internal.StackTraceRecoveryKt";
        }
    }

    public static final StackTraceElement b(String str) {
        return new StackTraceElement("\b\b\b(" + str, "\b", "\b", -1);
    }

    private static final <E extends Throwable> f.k<E, StackTraceElement[]> c(E e2) {
        boolean z;
        Throwable cause = e2.getCause();
        if (cause == null || !f.z.d.k.a(cause.getClass(), e2.getClass())) {
            return f.p.a(e2, new StackTraceElement[0]);
        }
        StackTraceElement[] stackTrace = e2.getStackTrace();
        int length = stackTrace.length;
        int i2 = 0;
        while (true) {
            if (i2 >= length) {
                z = false;
                break;
            }
            if (h(stackTrace[i2])) {
                z = true;
                break;
            }
            i2++;
        }
        return z ? f.p.a(cause, stackTrace) : f.p.a(e2, new StackTraceElement[0]);
    }

    private static final <E extends Throwable> E d(E e2, E e3, ArrayDeque<StackTraceElement> arrayDeque) {
        arrayDeque.addFirst(b("Coroutine boundary"));
        StackTraceElement[] stackTrace = e2.getStackTrace();
        int iG = g(stackTrace, a);
        int i2 = 0;
        if (iG == -1) {
            Object[] array = arrayDeque.toArray(new StackTraceElement[0]);
            if (array == null) {
                throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T of kotlin.collections.ArraysKt__ArraysJVMKt.toTypedArray>");
            }
            e3.setStackTrace((StackTraceElement[]) array);
            return e3;
        }
        StackTraceElement[] stackTraceElementArr = new StackTraceElement[arrayDeque.size() + iG];
        for (int i3 = 0; i3 < iG; i3++) {
            stackTraceElementArr[i3] = stackTrace[i3];
        }
        Iterator<StackTraceElement> it = arrayDeque.iterator();
        while (it.hasNext()) {
            stackTraceElementArr[i2 + iG] = it.next();
            i2++;
        }
        e3.setStackTrace(stackTraceElementArr);
        return e3;
    }

    private static final ArrayDeque<StackTraceElement> e(f.w.k.a.e eVar) {
        ArrayDeque<StackTraceElement> arrayDeque = new ArrayDeque<>();
        StackTraceElement stackTraceElement = eVar.getStackTraceElement();
        if (stackTraceElement != null) {
            arrayDeque.add(stackTraceElement);
        }
        while (true) {
            if (!(eVar instanceof f.w.k.a.e)) {
                eVar = null;
            }
            if (eVar == null || (eVar = eVar.getCallerFrame()) == null) {
                break;
            }
            StackTraceElement stackTraceElement2 = eVar.getStackTraceElement();
            if (stackTraceElement2 != null) {
                arrayDeque.add(stackTraceElement2);
            }
        }
        return arrayDeque;
    }

    private static final boolean f(StackTraceElement stackTraceElement, StackTraceElement stackTraceElement2) {
        return stackTraceElement.getLineNumber() == stackTraceElement2.getLineNumber() && f.z.d.k.a(stackTraceElement.getMethodName(), stackTraceElement2.getMethodName()) && f.z.d.k.a(stackTraceElement.getFileName(), stackTraceElement2.getFileName()) && f.z.d.k.a(stackTraceElement.getClassName(), stackTraceElement2.getClassName());
    }

    private static final int g(StackTraceElement[] stackTraceElementArr, String str) {
        int length = stackTraceElementArr.length;
        for (int i2 = 0; i2 < length; i2++) {
            if (f.z.d.k.a(str, stackTraceElementArr[i2].getClassName())) {
                return i2;
            }
        }
        return -1;
    }

    public static final boolean h(StackTraceElement stackTraceElement) {
        return f.e0.s.j(stackTraceElement.getClassName(), "\b\b\b", false, 2, null);
    }

    private static final void i(StackTraceElement[] stackTraceElementArr, ArrayDeque<StackTraceElement> arrayDeque) {
        int length = stackTraceElementArr.length;
        int i2 = 0;
        while (true) {
            if (i2 >= length) {
                i2 = -1;
                break;
            } else if (h(stackTraceElementArr[i2])) {
                break;
            } else {
                i2++;
            }
        }
        int i3 = i2 + 1;
        int length2 = stackTraceElementArr.length - 1;
        if (i3 > length2) {
            return;
        }
        while (true) {
            if (f(stackTraceElementArr[length2], arrayDeque.getLast())) {
                arrayDeque.removeLast();
            }
            arrayDeque.addFirst(stackTraceElementArr[length2]);
            if (length2 == i3) {
                return;
            } else {
                length2--;
            }
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public static final <E extends Throwable> E j(E e2, f.w.k.a.e eVar) {
        f.k kVarC = c(e2);
        Throwable th = (Throwable) kVarC.a();
        StackTraceElement[] stackTraceElementArr = (StackTraceElement[]) kVarC.b();
        E e3 = (E) k(th);
        if (e3 == null) {
            return e2;
        }
        ArrayDeque<StackTraceElement> arrayDequeE = e(eVar);
        if (arrayDequeE.isEmpty()) {
            return e2;
        }
        if (th != e2) {
            i(stackTraceElementArr, arrayDequeE);
        }
        d(th, e3, arrayDequeE);
        return e3;
    }

    private static final <E extends Throwable> E k(E e2) {
        E e3 = (E) i.g(e2);
        if (e3 == null) {
            return null;
        }
        if ((e2 instanceof g.a.z) || f.z.d.k.a(e3.getMessage(), e2.getMessage())) {
            return e3;
        }
        return null;
    }

    public static final <E extends Throwable> E l(E e2) {
        E e3 = (E) e2.getCause();
        if (e3 != null && f.z.d.k.a(e3.getClass(), e2.getClass())) {
            StackTraceElement[] stackTrace = e2.getStackTrace();
            int length = stackTrace.length;
            boolean z = false;
            int i2 = 0;
            while (true) {
                if (i2 >= length) {
                    break;
                }
                if (h(stackTrace[i2])) {
                    z = true;
                    break;
                }
                i2++;
            }
            if (z) {
                return e3;
            }
        }
        return e2;
    }
}
