package kotlinx.coroutines.o2;

import h.l;
import java.util.ArrayDeque;
import java.util.Iterator;
import kotlinx.coroutines.g0;

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

    static {
        Object objA;
        Object objA2;
        try {
            l.a aVar = h.l.b;
            objA = Class.forName("h.u.j.a.a").getCanonicalName();
            h.l.a(objA);
        } catch (Throwable th) {
            l.a aVar2 = h.l.b;
            objA = h.m.a(th);
            h.l.a(objA);
        }
        if (h.l.b(objA) != null) {
            objA = "kotlin.coroutines.jvm.internal.BaseContinuationImpl";
        }
        a = (String) objA;
        try {
            l.a aVar3 = h.l.b;
            objA2 = Class.forName("kotlinx.coroutines.o2.p").getCanonicalName();
            h.l.a(objA2);
        } catch (Throwable th2) {
            l.a aVar4 = h.l.b;
            objA2 = h.m.a(th2);
            h.l.a(objA2);
        }
        if (h.l.b(objA2) != null) {
            objA2 = "kotlinx.coroutines.internal.StackTraceRecoveryKt";
        }
    }

    public static final StackTraceElement b(String str) {
        return new StackTraceElement(h.x.d.k.i("\b\b\b(", str), "\b", "\b", -1);
    }

    private static final <E extends Throwable> h.k<E, StackTraceElement[]> c(E e2) {
        boolean z;
        Throwable cause = e2.getCause();
        if (cause == null || !h.x.d.k.a(cause.getClass(), e2.getClass())) {
            return h.o.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 ? h.o.a(cause, stackTrace) : h.o.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>");
            }
            e3.setStackTrace((StackTraceElement[]) array);
            return e3;
        }
        StackTraceElement[] stackTraceElementArr = new StackTraceElement[arrayDeque.size() + iG];
        if (iG > 0) {
            int i3 = 0;
            while (true) {
                int i4 = i3 + 1;
                stackTraceElementArr[i3] = stackTrace[i3];
                if (i4 >= iG) {
                    break;
                }
                i3 = i4;
            }
        }
        Iterator<StackTraceElement> it = arrayDeque.iterator();
        while (it.hasNext()) {
            int i5 = i2 + 1;
            stackTraceElementArr[i2 + iG] = it.next();
            i2 = i5;
        }
        e3.setStackTrace(stackTraceElementArr);
        return e3;
    }

    private static final ArrayDeque<StackTraceElement> e(h.u.j.a.e eVar) {
        ArrayDeque<StackTraceElement> arrayDeque = new ArrayDeque<>();
        StackTraceElement stackTraceElementK = eVar.k();
        if (stackTraceElementK != null) {
            arrayDeque.add(stackTraceElementK);
        }
        while (true) {
            if (!(eVar instanceof h.u.j.a.e)) {
                eVar = null;
            }
            eVar = eVar == null ? null : eVar.e();
            if (eVar == null) {
                return arrayDeque;
            }
            StackTraceElement stackTraceElementK2 = eVar.k();
            if (stackTraceElementK2 != null) {
                arrayDeque.add(stackTraceElementK2);
            }
        }
    }

    private static final boolean f(StackTraceElement stackTraceElement, StackTraceElement stackTraceElement2) {
        return stackTraceElement.getLineNumber() == stackTraceElement2.getLineNumber() && h.x.d.k.a(stackTraceElement.getMethodName(), stackTraceElement2.getMethodName()) && h.x.d.k.a(stackTraceElement.getFileName(), stackTraceElement2.getFileName()) && h.x.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 (h.x.d.k.a(str, stackTraceElementArr[i2].getClassName())) {
                return i2;
            }
        }
        return -1;
    }

    public static final boolean h(StackTraceElement stackTraceElement) {
        return h.c0.p.z(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) {
            int i4 = length2 - 1;
            if (f(stackTraceElementArr[length2], arrayDeque.getLast())) {
                arrayDeque.removeLast();
            }
            arrayDeque.addFirst(stackTraceElementArr[length2]);
            if (length2 == i3) {
                return;
            } else {
                length2 = i4;
            }
        }
    }

    /* JADX INFO: Access modifiers changed from: private */
    public static final <E extends Throwable> E j(E e2, h.u.j.a.e eVar) {
        h.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) g.e(e2);
        if (e3 == null) {
            return null;
        }
        if ((e2 instanceof g0) || h.x.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 && h.x.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;
    }
}
