content: package kotlinx.coroutines;
  
  import kotlin.Metadata;
  import kotlin.coroutines.AbstractCoroutineContextElement;
  import kotlin.coroutines.CoroutineContext;
  import kotlin.jvm.internal.DefaultConstructorMarker;
  import kotlin.jvm.internal.Intrinsics;
  import kotlin.text.StringsKt;
  
  @Metadata(d1 = {"\u0000:\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u000e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\t\n\u0002\b\u0006\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\b\b\u0018\u0000 \u00182\b\u0012\u0004\u0012\u00020\u00020\u00012\u00020\u0003:\u0001\u0018B\r\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\t\u0010\t\u001a\u00020\u0005HÆ\u0003J\u0013\u0010\n\u001a\u00020\u00002\b\b\u0002\u0010\u0004\u001a\u00020\u0005HÆ\u0001J\u0013\u0010\u000b\u001a\u00020\f2\b\u0010\r\u001a\u0004\u0018\u00010\u000eHÖ\u0003J\t\u0010\u000f\u001a\u00020\u0010HÖ\u0001J\u0018\u0010\u0011\u001a\u00020\u00122\u0006\u0010\u0013\u001a\u00020\u00142\u0006\u0010\u0015\u001a\u00020\u0002H\u0016J\b\u0010\u0016\u001a\u00020\u0002H\u0016J\u0010\u0010\u0017\u001a\u00020\u00022\u0006\u0010\u0013\u001a\u00020\u0014H\u0016R\u0011\u0010\u0004\u001a\u00020\u0005¢\u0006\b\n\u0000\u001a\u0004\b\u0007\u0010\b¨\u0006\u0019"}, d2 = {"Lkotlinx/coroutines/CoroutineId;", "Lkotlinx/coroutines/ThreadContextElement;", "", "Lkotlin/coroutines/AbstractCoroutineContextElement;", "id", "", "(J)V", "getId", "()J", "component1", "copy", "equals", "", "other", "", "hashCode", "", "restoreThreadContext", "", "context", "Lkotlin/coroutines/CoroutineContext;", "oldState", "toString", "updateThreadContext", "Key", "kotlinx-coroutines-core"}, k = 1, mv = {1, 6, 0}, xi = 48)
  /* compiled from: CoroutineContext.kt */
  public final class CoroutineId extends AbstractCoroutineContextElement implements ThreadContextElement<String> {
      public static final Key Key = new Key((DefaultConstructorMarker) null);
      private final long id;
  
      @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 = {"Lkotlinx/coroutines/CoroutineId$Key;", "Lkotlin/coroutines/CoroutineContext$Key;", "Lkotlinx/coroutines/CoroutineId;", "()V", "kotlinx-coroutines-core"}, k = 1, mv = {1, 6, 0}, xi = 48)
      /* compiled from: CoroutineContext.kt */
      public static final class Key implements CoroutineContext.Key<CoroutineId> {
          private Key() {
          }
  
          public /* synthetic */ Key(DefaultConstructorMarker defaultConstructorMarker) {
              this();
          }
      }
  
      public CoroutineId(long id2) {
          super(Key);
          this.id = id2;
      }
  
      public static /* synthetic */ CoroutineId copy$default(CoroutineId coroutineId, long j, int i, Object obj) {
          if ((i & 1) != 0) {
              j = coroutineId.id;
          }
          return coroutineId.copy(j);
      }
  
      public final long component1() {
          return this.id;
      }
  
      public final CoroutineId copy(long j) {
          return new CoroutineId(j);
      }
  
      public boolean equals(Object obj) {
          if (this == obj) {
              return true;
          }
          return (obj instanceof CoroutineId) && this.id == ((CoroutineId) obj).id;
      }
  
      public final long getId() {
          return this.id;
      }
  
      public int hashCode() {
          return Long.hashCode(this.id);
      }
  
      public void restoreThreadContext(CoroutineContext context, String oldState) {
          Thread.currentThread().setName(oldState);
      }
  
      public String toString() {
          return "CoroutineId(" + this.id + ')';
      }
  
      public String updateThreadContext(CoroutineContext context) {
          String name;
          CoroutineName coroutineName = (CoroutineName) context.get(CoroutineName.Key);
          String str = "coroutine";
          if (!(coroutineName == null || (name = coroutineName.getName()) == null)) {
              str = name;
          }
          String str2 = str;
          Thread currentThread = Thread.currentThread();
          String name2 = currentThread.getName();
          int lastIndexOf$default = StringsKt.lastIndexOf$default((CharSequence) name2, " @", 0, false, 6, (Object) null);
          if (lastIndexOf$default < 0) {
              lastIndexOf$default = name2.length();
          }
          StringBuilder sb = new StringBuilder(str2.length() + lastIndexOf$default + 10);
          StringBuilder sb2 = sb;
          String substring = name2.substring(0, lastIndexOf$default);
          Intrinsics.checkNotNullExpressionValue(substring, "this as java.lang.String…ing(startIndex, endIndex)");
          sb2.append(substring);
          sb2.append(" @");
          sb2.append(str2);
          sb2.append('#');
          sb2.append(getId());
          String sb3 = sb.toString();
          Intrinsics.checkNotNullExpressionValue(sb3, "StringBuilder(capacity).…builderAction).toString()");
          currentThread.setName(sb3);
          return name2;
      }
  }
  