package kotlin.coroutines; import java.io.Serializable; import kotlin.Unit; import kotlin.coroutines.CoroutineContext; import kotlin.jvm.functions.Function2; import kotlin.jvm.internal.DefaultConstructorMarker; import kotlin.jvm.internal.Intrinsics; import kotlin.jvm.internal.Ref; /* loaded from: classes5.dex */ public final class CombinedContext implements CoroutineContext, Serializable { public final CoroutineContext.Element element; public final CoroutineContext left; public CombinedContext(CoroutineContext left, CoroutineContext.Element element) { Intrinsics.checkNotNullParameter(left, "left"); Intrinsics.checkNotNullParameter(element, "element"); this.left = left; this.element = element; } @Override // kotlin.coroutines.CoroutineContext public CoroutineContext plus(CoroutineContext coroutineContext) { return CoroutineContext.DefaultImpls.plus(this, coroutineContext); } @Override // kotlin.coroutines.CoroutineContext public CoroutineContext.Element get(CoroutineContext.Key key) { Intrinsics.checkNotNullParameter(key, "key"); CombinedContext combinedContext = this; while (true) { CoroutineContext.Element element = combinedContext.element.get(key); if (element != null) { return element; } CoroutineContext coroutineContext = combinedContext.left; if (coroutineContext instanceof CombinedContext) { combinedContext = (CombinedContext) coroutineContext; } else { return coroutineContext.get(key); } } } @Override // kotlin.coroutines.CoroutineContext public Object fold(Object obj, Function2 operation) { Intrinsics.checkNotNullParameter(operation, "operation"); return operation.invoke(this.left.fold(obj, operation), this.element); } @Override // kotlin.coroutines.CoroutineContext public CoroutineContext minusKey(CoroutineContext.Key key) { Intrinsics.checkNotNullParameter(key, "key"); if (this.element.get(key) != null) { return this.left; } CoroutineContext minusKey = this.left.minusKey(key); return minusKey == this.left ? this : minusKey == EmptyCoroutineContext.INSTANCE ? this.element : new CombinedContext(minusKey, this.element); } private final int size() { int i = 2; CombinedContext combinedContext = this; while (true) { CoroutineContext coroutineContext = combinedContext.left; combinedContext = coroutineContext instanceof CombinedContext ? (CombinedContext) coroutineContext : null; if (combinedContext == null) { return i; } i++; } } public final boolean contains(CoroutineContext.Element element) { return Intrinsics.areEqual(get(element.getKey()), element); } public final boolean containsAll(CombinedContext combinedContext) { while (contains(combinedContext.element)) { CoroutineContext coroutineContext = combinedContext.left; if (coroutineContext instanceof CombinedContext) { combinedContext = (CombinedContext) coroutineContext; } else { Intrinsics.checkNotNull(coroutineContext, "null cannot be cast to non-null type kotlin.coroutines.CoroutineContext.Element"); return contains((CoroutineContext.Element) coroutineContext); } } return false; } public boolean equals(Object obj) { if (this != obj) { if (obj instanceof CombinedContext) { CombinedContext combinedContext = (CombinedContext) obj; if (combinedContext.size() != size() || !combinedContext.containsAll(this)) { } } return false; } return true; } public int hashCode() { return this.left.hashCode() + this.element.hashCode(); } public String toString() { return '[' + ((String) fold("", new Function2() { // from class: kotlin.coroutines.CombinedContext$toString$1 @Override // kotlin.jvm.functions.Function2 public final String invoke(String acc, CoroutineContext.Element element) { Intrinsics.checkNotNullParameter(acc, "acc"); Intrinsics.checkNotNullParameter(element, "element"); if (acc.length() == 0) { return element.toString(); } return acc + ", " + element; } })) + ']'; } private final Object writeReplace() { int size = size(); final CoroutineContext[] coroutineContextArr = new CoroutineContext[size]; final Ref.IntRef intRef = new Ref.IntRef(); fold(Unit.INSTANCE, new Function2() { // from class: kotlin.coroutines.CombinedContext$writeReplace$1 /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ { super(2); } @Override // kotlin.jvm.functions.Function2 public /* bridge */ /* synthetic */ Object invoke(Object obj, Object obj2) { invoke((Unit) obj, (CoroutineContext.Element) obj2); return Unit.INSTANCE; } public final void invoke(Unit unit, CoroutineContext.Element element) { Intrinsics.checkNotNullParameter(unit, ""); Intrinsics.checkNotNullParameter(element, "element"); CoroutineContext[] coroutineContextArr2 = coroutineContextArr; Ref.IntRef intRef2 = intRef; int i = intRef2.element; intRef2.element = i + 1; coroutineContextArr2[i] = element; } }); if (intRef.element != size) { throw new IllegalStateException("Check failed.".toString()); } return new Serialized(coroutineContextArr); } public static final class Serialized implements Serializable { public static final Companion Companion = new Companion(null); private static final long serialVersionUID = 0; public final CoroutineContext[] elements; public static final class Companion { public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { this(); } public Companion() { } } public Serialized(CoroutineContext[] elements) { Intrinsics.checkNotNullParameter(elements, "elements"); this.elements = elements; } private final Object readResolve() { CoroutineContext[] coroutineContextArr = this.elements; CoroutineContext coroutineContext = EmptyCoroutineContext.INSTANCE; for (CoroutineContext coroutineContext2 : coroutineContextArr) { coroutineContext = coroutineContext.plus(coroutineContext2); } return coroutineContext; } } }