content: package kotlin.coroutines;
  
  import kotlin.Metadata;
  import kotlin.coroutines.CoroutineContext;
  import kotlin.jvm.functions.Function2;
  import kotlin.jvm.internal.Intrinsics;
  
  @Metadata(d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\bg\u0018\u0000 \u000f2\u00020\u0001:\u0001\u000fJ(\u0010\u0002\u001a\u0004\u0018\u0001H\u0003\"\b\b\u0000\u0010\u0003*\u00020\u00012\f\u0010\u0004\u001a\b\u0012\u0004\u0012\u0002H\u00030\u0005H\u0002¢\u0006\u0002\u0010\u0006J\"\u0010\u0007\u001a\b\u0012\u0004\u0012\u0002H\t0\b\"\u0004\b\u0000\u0010\t2\f\u0010\n\u001a\b\u0012\u0004\u0012\u0002H\t0\bH&J\u0014\u0010\u000b\u001a\u00020\f2\n\u0010\u0004\u001a\u0006\u0012\u0002\b\u00030\u0005H\u0016J\u0014\u0010\r\u001a\u00020\u000e2\n\u0010\n\u001a\u0006\u0012\u0002\b\u00030\bH\u0016¨\u0006\u0010"}, d2 = {"Lkotlin/coroutines/ContinuationInterceptor;", "Lkotlin/coroutines/CoroutineContext$Element;", "get", "E", "key", "Lkotlin/coroutines/CoroutineContext$Key;", "(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element;", "interceptContinuation", "Lkotlin/coroutines/Continuation;", "T", "continuation", "minusKey", "Lkotlin/coroutines/CoroutineContext;", "releaseInterceptedContinuation", "", "Key", "kotlin-stdlib"}, k = 1, mv = {1, 7, 1}, xi = 48)
  /* compiled from: ContinuationInterceptor.kt */
  public interface ContinuationInterceptor extends CoroutineContext.Element {
      public static final Key Key = Key.$$INSTANCE;
  
      @Metadata(k = 3, mv = {1, 7, 1}, xi = 48)
      /* compiled from: ContinuationInterceptor.kt */
      public static final class DefaultImpls {
          public static <R> R fold(ContinuationInterceptor $this, R initial, Function2<? super R, ? super CoroutineContext.Element, ? extends R> operation) {
              Intrinsics.checkNotNullParameter(operation, "operation");
              return CoroutineContext.Element.DefaultImpls.fold($this, initial, operation);
          }
  
          public static <E extends CoroutineContext.Element> E get(ContinuationInterceptor $this, CoroutineContext.Key<E> key) {
              Intrinsics.checkNotNullParameter(key, "key");
              if (key instanceof AbstractCoroutineContextKey) {
                  if (!((AbstractCoroutineContextKey) key).isSubKey$kotlin_stdlib($this.getKey())) {
                      return null;
                  }
                  E tryCast$kotlin_stdlib = ((AbstractCoroutineContextKey) key).tryCast$kotlin_stdlib($this);
                  if (tryCast$kotlin_stdlib instanceof CoroutineContext.Element) {
                      return tryCast$kotlin_stdlib;
                  }
                  return null;
              } else if (ContinuationInterceptor.Key != key) {
                  return null;
              } else {
                  Intrinsics.checkNotNull($this, "null cannot be cast to non-null type E of kotlin.coroutines.ContinuationInterceptor.get");
                  return $this;
              }
          }
  
          public static CoroutineContext minusKey(ContinuationInterceptor $this, CoroutineContext.Key<?> key) {
              Intrinsics.checkNotNullParameter(key, "key");
              return key instanceof AbstractCoroutineContextKey ? (!((AbstractCoroutineContextKey) key).isSubKey$kotlin_stdlib($this.getKey()) || ((AbstractCoroutineContextKey) key).tryCast$kotlin_stdlib($this) == null) ? $this : EmptyCoroutineContext.INSTANCE : ContinuationInterceptor.Key == key ? EmptyCoroutineContext.INSTANCE : $this;
          }
  
          public static CoroutineContext plus(ContinuationInterceptor $this, CoroutineContext context) {
              Intrinsics.checkNotNullParameter(context, "context");
              return CoroutineContext.Element.DefaultImpls.plus($this, context);
          }
  
          public static void releaseInterceptedContinuation(ContinuationInterceptor $this, Continuation<?> continuation) {
              Intrinsics.checkNotNullParameter(continuation, "continuation");
          }
      }
  
      @Metadata(d1 = {"\u0000\u0010\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0003\u0018\u00002\b\u0012\u0004\u0012\u00020\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0003¨\u0006\u0004"}, d2 = {"Lkotlin/coroutines/ContinuationInterceptor$Key;", "Lkotlin/coroutines/CoroutineContext$Key;", "Lkotlin/coroutines/ContinuationInterceptor;", "()V", "kotlin-stdlib"}, k = 1, mv = {1, 7, 1}, xi = 48)
      /* compiled from: ContinuationInterceptor.kt */
      public static final class Key implements CoroutineContext.Key<ContinuationInterceptor> {
          static final /* synthetic */ Key $$INSTANCE = new Key();
  
          private Key() {
          }
      }
  
      <E extends CoroutineContext.Element> E get(CoroutineContext.Key<E> key);
  
      <T> Continuation<T> interceptContinuation(Continuation<? super T> continuation);
  
      CoroutineContext minusKey(CoroutineContext.Key<?> key);
  
      void releaseInterceptedContinuation(Continuation<?> continuation);
  }
  