h.smali

.class public final Lokhttp3/internal/http2/h;
.super Ljava/lang/Object;
.source "Http2Connection.java"

# interfaces
.implements Ljava/io/Closeable;


# static fields
.field private static synthetic $assertionsDisabled:Z

.field private static final bXO:Ljava/util/concurrent/ExecutorService;


# instance fields
.field final bXP:Lokhttp3/internal/http2/j;

.field private final bXQ:Ljava/util/concurrent/ScheduledExecutorService;

.field final bXR:Lokhttp3/internal/http2/w;

.field bXS:Z

.field public bXT:Lokhttp3/internal/http2/x;

.field final bXU:Lokhttp3/internal/http2/x;

.field public final bXV:Lokhttp3/internal/http2/t;

.field public final bXW:Lokhttp3/internal/http2/l;

.field final bxT:Z

.field final bxV:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map",
            "<",
            "Ljava/lang/Integer;",
            "Lokhttp3/internal/http2/p;",
            ">;"
        }
    .end annotation
.end field

.field bxX:I

.field bxY:I

.field final bxZ:Ljava/util/concurrent/ExecutorService;

.field byb:J

.field byc:J

.field byf:Z

.field final byj:Ljava/util/Set;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Set",
            "<",
            "Ljava/lang/Integer;",
            ">;"
        }
    .end annotation
.end field

.field final hostname:Ljava/lang/String;

.field shutdown:Z

.field private socket:Ljava/net/Socket;


# direct methods
.method static constructor <clinit>()V
    .registers 9

    .prologue
    const/4 v8, 0x1

    const/4 v2, 0x0

    .line 60
    const-class v0, Lokhttp3/internal/http2/h;

    invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z

    move-result v0

    if-nez v0, :cond_27

    move v0, v8

    :goto_b
    sput-boolean v0, Lokhttp3/internal/http2/h;->$assertionsDisabled:Z

    .line 80
    new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;

    const v3, 0x7fffffff

    const-wide/16 v4, 0x3c

    sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;

    new-instance v7, Ljava/util/concurrent/SynchronousQueue;

    invoke-direct {v7}, Ljava/util/concurrent/SynchronousQueue;-><init>()V

    const-string v0, "OkHttp Http2Connection"

    .line 82
    invoke-static {v0, v8}, Lokhttp3/internal/c;->h(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;

    move-result-object v8

    invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V

    sput-object v1, Lokhttp3/internal/http2/h;->bXO:Ljava/util/concurrent/ExecutorService;

    .line 80
    return-void

    :cond_27
    move v0, v2

    .line 60
    goto :goto_b
.end method

.method public constructor <init>(Lokhttp3/internal/http2/i;)V
    .registers 14

    .prologue
    const/4 v11, 0x7

    const/4 v9, 0x1

    const/4 v10, 0x0

    .line 137
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 92
    new-instance v0, Ljava/util/LinkedHashMap;

    invoke-direct {v0}, Ljava/util/LinkedHashMap;-><init>()V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    .line 115
    const-wide/16 v0, 0x0

    iput-wide v0, p0, Lokhttp3/internal/http2/h;->byb:J

    .line 124
    new-instance v0, Lokhttp3/internal/http2/x;

    invoke-direct {v0}, Lokhttp3/internal/http2/x;-><init>()V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXT:Lokhttp3/internal/http2/x;

    .line 128
    new-instance v0, Lokhttp3/internal/http2/x;

    invoke-direct {v0}, Lokhttp3/internal/http2/x;-><init>()V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;

    .line 130
    iput-boolean v10, p0, Lokhttp3/internal/http2/h;->byf:Z

    .line 828
    new-instance v0, Ljava/util/LinkedHashSet;

    invoke-direct {v0}, Ljava/util/LinkedHashSet;-><init>()V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->byj:Ljava/util/Set;

    .line 138
    iget-object v0, p1, Lokhttp3/internal/http2/i;->bXR:Lokhttp3/internal/http2/w;

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXR:Lokhttp3/internal/http2/w;

    .line 139
    iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z

    iput-boolean v0, p0, Lokhttp3/internal/http2/h;->bxT:Z

    .line 140
    iget-object v0, p1, Lokhttp3/internal/http2/i;->bXP:Lokhttp3/internal/http2/j;

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXP:Lokhttp3/internal/http2/j;

    .line 142
    iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z

    if-eqz v0, :cond_dc

    move v0, v9

    :goto_39
    iput v0, p0, Lokhttp3/internal/http2/h;->bxY:I

    .line 143
    iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z

    if-eqz v0, :cond_45

    .line 144
    iget v0, p0, Lokhttp3/internal/http2/h;->bxY:I

    add-int/lit8 v0, v0, 0x2

    iput v0, p0, Lokhttp3/internal/http2/h;->bxY:I

    .line 151
    :cond_45
    iget-boolean v0, p1, Lokhttp3/internal/http2/i;->bxT:Z

    if-eqz v0, :cond_50

    .line 152
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXT:Lokhttp3/internal/http2/x;

    const/high16 v1, 0x1000000

    invoke-virtual {v0, v11, v1}, Lokhttp3/internal/http2/x;->aN(II)Lokhttp3/internal/http2/x;

    .line 155
    :cond_50
    iget-object v0, p1, Lokhttp3/internal/http2/i;->hostname:Ljava/lang/String;

    iput-object v0, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;

    .line 157
    new-instance v0, Ljava/util/concurrent/ScheduledThreadPoolExecutor;

    const-string v1, "OkHttp %s Writer"

    new-array v2, v9, [Ljava/lang/Object;

    iget-object v3, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;

    aput-object v3, v2, v10

    .line 158
    invoke-static {v1, v2}, Lokhttp3/internal/c;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v1

    invoke-static {v1, v10}, Lokhttp3/internal/c;->h(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;

    move-result-object v1

    invoke-direct {v0, v9, v1}, Ljava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(ILjava/util/concurrent/ThreadFactory;)V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;

    .line 159
    iget v0, p1, Lokhttp3/internal/http2/i;->bXZ:I

    if-eqz v0, :cond_81

    .line 160
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;

    new-instance v1, Lokhttp3/internal/http2/k;

    invoke-direct {v1, p0, v10, v10, v10}, Lokhttp3/internal/http2/k;-><init>(Lokhttp3/internal/http2/h;ZII)V

    iget v2, p1, Lokhttp3/internal/http2/i;->bXZ:I

    int-to-long v2, v2

    iget v4, p1, Lokhttp3/internal/http2/i;->bXZ:I

    int-to-long v4, v4

    sget-object v6, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;

    invoke-interface/range {v0 .. v6}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;

    .line 165
    :cond_81
    new-instance v1, Ljava/util/concurrent/ThreadPoolExecutor;

    const-wide/16 v4, 0x3c

    sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;

    new-instance v7, Ljava/util/concurrent/LinkedBlockingQueue;

    invoke-direct {v7}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V

    const-string v0, "OkHttp %s Push Observer"

    new-array v2, v9, [Ljava/lang/Object;

    iget-object v3, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;

    aput-object v3, v2, v10

    .line 167
    invoke-static {v0, v2}, Lokhttp3/internal/c;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0, v9}, Lokhttp3/internal/c;->h(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;

    move-result-object v8

    move v2, v10

    move v3, v9

    invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V

    iput-object v1, p0, Lokhttp3/internal/http2/h;->bxZ:Ljava/util/concurrent/ExecutorService;

    .line 168
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;

    const v1, 0xffff

    invoke-virtual {v0, v11, v1}, Lokhttp3/internal/http2/x;->aN(II)Lokhttp3/internal/http2/x;

    .line 169
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;

    const/4 v1, 0x5

    const/16 v2, 0x4000

    invoke-virtual {v0, v1, v2}, Lokhttp3/internal/http2/x;->aN(II)Lokhttp3/internal/http2/x;

    .line 170
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;

    invoke-virtual {v0}, Lokhttp3/internal/http2/x;->RW()I

    move-result v0

    int-to-long v0, v0

    iput-wide v0, p0, Lokhttp3/internal/http2/h;->byc:J

    .line 171
    iget-object v0, p1, Lokhttp3/internal/http2/i;->socket:Ljava/net/Socket;

    iput-object v0, p0, Lokhttp3/internal/http2/h;->socket:Ljava/net/Socket;

    .line 172
    new-instance v0, Lokhttp3/internal/http2/t;

    iget-object v1, p1, Lokhttp3/internal/http2/i;->byu:Lokio/e;

    iget-boolean v2, p0, Lokhttp3/internal/http2/h;->bxT:Z

    invoke-direct {v0, v1, v2}, Lokhttp3/internal/http2/t;-><init>(Lokio/e;Z)V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    .line 174
    new-instance v0, Lokhttp3/internal/http2/l;

    new-instance v1, Lokhttp3/internal/http2/m;

    iget-object v2, p1, Lokhttp3/internal/http2/i;->byt:Lokio/f;

    iget-boolean v3, p0, Lokhttp3/internal/http2/h;->bxT:Z

    invoke-direct {v1, v2, v3}, Lokhttp3/internal/http2/m;-><init>(Lokio/f;Z)V

    invoke-direct {v0, p0, v1}, Lokhttp3/internal/http2/l;-><init>(Lokhttp3/internal/http2/h;Lokhttp3/internal/http2/m;)V

    iput-object v0, p0, Lokhttp3/internal/http2/h;->bXW:Lokhttp3/internal/http2/l;

    .line 175
    return-void

    .line 142
    :cond_dc
    const/4 v0, 0x2

    goto/16 :goto_39
.end method

.method static synthetic RP()Ljava/util/concurrent/ExecutorService;
    .registers 1

    .prologue
    .line 60
    sget-object v0, Lokhttp3/internal/http2/h;->bXO:Ljava/util/concurrent/ExecutorService;

    return-object v0
.end method

.method private a(Lokhttp3/internal/http2/ErrorCode;)V
    .registers 6

    .prologue
    .line 420
    iget-object v1, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    monitor-enter v1

    .line 422
    :try_start_3
    monitor-enter p0
    :try_end_4
    .catchall {:try_start_3 .. :try_end_4} :catchall_1a

    .line 423
    :try_start_4
    iget-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z

    if-eqz v0, :cond_b

    .line 424
    monitor-exit p0
    :try_end_9
    .catchall {:try_start_4 .. :try_end_9} :catchall_1d

    :try_start_9
    monitor-exit v1
    :try_end_a
    .catchall {:try_start_9 .. :try_end_a} :catchall_1a

    .line 432
    :goto_a
    return-void

    .line 426
    :cond_b
    const/4 v0, 0x1

    :try_start_c
    iput-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z

    .line 427
    iget v0, p0, Lokhttp3/internal/http2/h;->bxX:I

    .line 428
    monitor-exit p0
    :try_end_11
    .catchall {:try_start_c .. :try_end_11} :catchall_1d

    .line 431
    :try_start_11
    iget-object v2, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    sget-object v3, Lokhttp3/internal/c;->EMPTY_BYTE_ARRAY:[B

    invoke-virtual {v2, v0, p1, v3}, Lokhttp3/internal/http2/t;->a(ILokhttp3/internal/http2/ErrorCode;[B)V

    .line 432
    monitor-exit v1

    goto :goto_a

    :catchall_1a
    move-exception v0

    monitor-exit v1
    :try_end_1c
    .catchall {:try_start_11 .. :try_end_1c} :catchall_1a

    throw v0

    .line 428
    :catchall_1d
    move-exception v0

    :try_start_1e
    monitor-exit p0
    :try_end_1f
    .catchall {:try_start_1e .. :try_end_1f} :catchall_1d

    :try_start_1f
    throw v0
    :try_end_20
    .catchall {:try_start_1f .. :try_end_20} :catchall_1a
.end method

.method static synthetic b(Lokhttp3/internal/http2/h;)V
    .registers 1

    .prologue
    .line 60
    invoke-virtual {p0}, Lokhttp3/internal/http2/h;->RO()V

    return-void
.end method

.method static synthetic c(Lokhttp3/internal/http2/h;)Ljava/util/concurrent/ScheduledExecutorService;
    .registers 2

    .prologue
    .line 60
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;

    return-object v0
.end method

.method static synthetic d(Lokhttp3/internal/http2/h;)Z
    .registers 2

    .prologue
    .line 60
    const/4 v0, 0x0

    iput-boolean v0, p0, Lokhttp3/internal/http2/h;->bXS:Z

    return v0
.end method

.method static ft(I)Z
    .registers 2

    .prologue
    .line 824
    if-eqz p0, :cond_8

    and-int/lit8 v0, p0, 0x1

    if-nez v0, :cond_8

    const/4 v0, 0x1

    :goto_7
    return v0

    :cond_8
    const/4 v0, 0x0

    goto :goto_7
.end method


# virtual methods
.method public final declared-synchronized Hn()I
    .registers 3

    .prologue
    .line 200
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXU:Lokhttp3/internal/http2/x;

    .line 1099
    iget v1, v0, Lokhttp3/internal/http2/x;->set:I

    and-int/lit8 v1, v1, 0x10

    if-eqz v1, :cond_10

    iget-object v0, v0, Lokhttp3/internal/http2/x;->values:[I

    const/4 v1, 0x4

    aget v0, v0, v1
    :try_end_e
    .catchall {:try_start_1 .. :try_end_e} :catchall_14

    :goto_e
    monitor-exit p0

    return v0

    :cond_10
    const v0, 0x7fffffff

    .line 200
    goto :goto_e

    :catchall_14
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method final RO()V
    .registers 3

    .prologue
    .line 493
    :try_start_0
    sget-object v0, Lokhttp3/internal/http2/ErrorCode;->PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;

    sget-object v1, Lokhttp3/internal/http2/ErrorCode;->PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;

    invoke-virtual {p0, v0, v1}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
    :try_end_7
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_7} :catch_8

    .line 496
    :goto_7
    return-void

    :catch_8
    move-exception v0

    goto :goto_7
.end method

.method final a(ILokhttp3/internal/http2/ErrorCode;)V
    .registers 10

    .prologue
    .line 325
    :try_start_0
    iget-object v6, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;

    new-instance v0, Lokhttp3/internal/http2/h$1;

    const-string v2, "OkHttp %s stream %d"

    const/4 v1, 0x2

    new-array v3, v1, [Ljava/lang/Object;

    const/4 v1, 0x0

    iget-object v4, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;

    aput-object v4, v3, v1

    const/4 v1, 0x1

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    aput-object v4, v3, v1

    move-object v1, p0

    move v4, p1

    move-object v5, p2

    invoke-direct/range {v0 .. v5}, Lokhttp3/internal/http2/h$1;-><init>(Lokhttp3/internal/http2/h;Ljava/lang/String;[Ljava/lang/Object;ILokhttp3/internal/http2/ErrorCode;)V

    invoke-interface {v6, v0}, Ljava/util/concurrent/ScheduledExecutorService;->execute(Ljava/lang/Runnable;)V
    :try_end_1e
    .catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_1e} :catch_1f

    .line 337
    :goto_1e
    return-void

    :catch_1f
    move-exception v0

    goto :goto_1e
.end method

.method public final a(IZLokio/d;J)V
    .registers 16

    .prologue
    const/4 v1, 0x0

    const-wide/16 v8, 0x0

    .line 284
    cmp-long v0, p4, v8

    if-nez v0, :cond_31

    .line 285
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    invoke-virtual {v0, p2, p1, p3, v1}, Lokhttp3/internal/http2/t;->a(ZILokio/d;I)V

    .line 313
    :cond_c
    return-void

    .line 305
    :cond_d
    :try_start_d
    iget-wide v2, p0, Lokhttp3/internal/http2/h;->byc:J

    invoke-static {p4, p5, v2, v3}, Ljava/lang/Math;->min(JJ)J

    move-result-wide v2

    long-to-int v0, v2

    .line 306
    iget-object v2, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    .line 1157
    iget v2, v2, Lokhttp3/internal/http2/t;->bzs:I

    .line 306
    invoke-static {v0, v2}, Ljava/lang/Math;->min(II)I

    move-result v2

    .line 307
    iget-wide v4, p0, Lokhttp3/internal/http2/h;->byc:J

    int-to-long v6, v2

    sub-long/2addr v4, v6

    iput-wide v4, p0, Lokhttp3/internal/http2/h;->byc:J

    .line 308
    monitor-exit p0
    :try_end_23
    .catchall {:try_start_d .. :try_end_23} :catchall_57

    .line 310
    int-to-long v4, v2

    sub-long/2addr p4, v4

    .line 311
    iget-object v3, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    if-eqz p2, :cond_5e

    cmp-long v0, p4, v8

    if-nez v0, :cond_5e

    const/4 v0, 0x1

    :goto_2e
    invoke-virtual {v3, v0, p1, p3, v2}, Lokhttp3/internal/http2/t;->a(ZILokio/d;I)V

    .line 289
    :cond_31
    cmp-long v0, p4, v8

    if-lez v0, :cond_c

    .line 291
    monitor-enter p0

    .line 293
    :goto_36
    :try_start_36
    iget-wide v2, p0, Lokhttp3/internal/http2/h;->byc:J

    cmp-long v0, v2, v8

    if-gtz v0, :cond_d

    .line 296
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-interface {v0, v2}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_5a

    .line 297
    new-instance v0, Ljava/io/IOException;

    const-string v1, "stream closed"

    invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v0
    :try_end_50
    .catch Ljava/lang/InterruptedException; {:try_start_36 .. :try_end_50} :catch_50
    .catchall {:try_start_36 .. :try_end_50} :catchall_57

    .line 302
    :catch_50
    move-exception v0

    :try_start_51
    new-instance v0, Ljava/io/InterruptedIOException;

    invoke-direct {v0}, Ljava/io/InterruptedIOException;-><init>()V

    throw v0

    .line 308
    :catchall_57
    move-exception v0

    monitor-exit p0
    :try_end_59
    .catchall {:try_start_51 .. :try_end_59} :catchall_57

    throw v0

    .line 299
    :cond_5a
    :try_start_5a
    invoke-virtual {p0}, Ljava/lang/Object;->wait()V
    :try_end_5d
    .catch Ljava/lang/InterruptedException; {:try_start_5a .. :try_end_5d} :catch_50
    .catchall {:try_start_5a .. :try_end_5d} :catchall_57

    goto :goto_36

    :cond_5e
    move v0, v1

    .line 311
    goto :goto_2e
.end method

.method final a(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
    .registers 8

    .prologue
    const/4 v0, 0x0

    .line 444
    sget-boolean v1, Lokhttp3/internal/http2/h;->$assertionsDisabled:Z

    if-nez v1, :cond_11

    invoke-static {p0}, Ljava/lang/Thread;->holdsLock(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_11

    new-instance v0, Ljava/lang/AssertionError;

    invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V

    throw v0

    .line 447
    :cond_11
    :try_start_11
    invoke-direct {p0, p1}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;)V
    :try_end_14
    .catch Ljava/io/IOException; {:try_start_11 .. :try_end_14} :catch_70

    move-object v1, v0

    .line 453
    :goto_15
    monitor-enter p0

    .line 454
    :try_start_16
    iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-interface {v2}, Ljava/util/Map;->isEmpty()Z

    move-result v2

    if-nez v2, :cond_75

    .line 455
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection;

    move-result-object v0

    iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-interface {v2}, Ljava/util/Map;->size()I

    move-result v2

    new-array v2, v2, [Lokhttp3/internal/http2/p;

    invoke-interface {v0, v2}, Ljava/util/Collection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;

    move-result-object v0

    check-cast v0, [Lokhttp3/internal/http2/p;

    .line 456
    iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-interface {v2}, Ljava/util/Map;->clear()V

    move-object v3, v0

    .line 458
    :goto_38
    monitor-exit p0
    :try_end_39
    .catchall {:try_start_16 .. :try_end_39} :catchall_4a

    .line 460
    if-eqz v3, :cond_53

    .line 461
    array-length v4, v3

    const/4 v0, 0x0

    move v2, v0

    move-object v0, v1

    :goto_3f
    if-ge v2, v4, :cond_52

    aget-object v1, v3, v2

    .line 463
    :try_start_43
    invoke-virtual {v1, p2}, Lokhttp3/internal/http2/p;->b(Lokhttp3/internal/http2/ErrorCode;)V
    :try_end_46
    .catch Ljava/io/IOException; {:try_start_43 .. :try_end_46} :catch_4d

    .line 461
    :cond_46
    :goto_46
    add-int/lit8 v1, v2, 0x1

    move v2, v1

    goto :goto_3f

    .line 458
    :catchall_4a
    move-exception v0

    :try_start_4b
    monitor-exit p0
    :try_end_4c
    .catchall {:try_start_4b .. :try_end_4c} :catchall_4a

    throw v0

    .line 464
    :catch_4d
    move-exception v1

    .line 465
    if-eqz v0, :cond_46

    move-object v0, v1

    goto :goto_46

    :cond_52
    move-object v1, v0

    .line 472
    :cond_53
    :try_start_53
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    invoke-virtual {v0}, Lokhttp3/internal/http2/t;->close()V
    :try_end_58
    .catch Ljava/io/IOException; {:try_start_53 .. :try_end_58} :catch_6b

    move-object v0, v1

    .line 479
    :cond_59
    :goto_59
    :try_start_59
    iget-object v1, p0, Lokhttp3/internal/http2/h;->socket:Ljava/net/Socket;

    invoke-virtual {v1}, Ljava/net/Socket;->close()V
    :try_end_5e
    .catch Ljava/io/IOException; {:try_start_59 .. :try_end_5e} :catch_73

    .line 485
    :goto_5e
    iget-object v1, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;

    invoke-interface {v1}, Ljava/util/concurrent/ScheduledExecutorService;->shutdown()V

    .line 486
    iget-object v1, p0, Lokhttp3/internal/http2/h;->bxZ:Ljava/util/concurrent/ExecutorService;

    invoke-interface {v1}, Ljava/util/concurrent/ExecutorService;->shutdown()V

    .line 488
    if-eqz v0, :cond_72

    throw v0

    .line 473
    :catch_6b
    move-exception v0

    .line 474
    if-eqz v1, :cond_59

    move-object v0, v1

    goto :goto_59

    .line 449
    :catch_70
    move-exception v1

    goto :goto_15

    .line 489
    :cond_72
    return-void

    .line 481
    :catch_73
    move-exception v0

    goto :goto_5e

    :cond_75
    move-object v3, v0

    goto :goto_38
.end method

.method final b(ILokhttp3/internal/http2/ErrorCode;)V
    .registers 4

    .prologue
    .line 340
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    invoke-virtual {v0, p1, p2}, Lokhttp3/internal/http2/t;->c(ILokhttp3/internal/http2/ErrorCode;)V

    .line 341
    return-void
.end method

.method public final close()V
    .registers 3

    .prologue
    .line 440
    sget-object v0, Lokhttp3/internal/http2/ErrorCode;->NO_ERROR:Lokhttp3/internal/http2/ErrorCode;

    sget-object v1, Lokhttp3/internal/http2/ErrorCode;->CANCEL:Lokhttp3/internal/http2/ErrorCode;

    invoke-virtual {p0, v0, v1}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V

    .line 441
    return-void
.end method

.method final f(Ljava/util/List;Z)Lokhttp3/internal/http2/p;
    .registers 15
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List",
            "<",
            "Lokhttp3/internal/http2/a;",
            ">;Z)",
            "Lokhttp3/internal/http2/p;"
        }
    .end annotation

    .prologue
    const-wide/16 v10, 0x0

    const/4 v6, 0x1

    const/4 v7, 0x0

    .line 227
    if-nez p2, :cond_27

    move v3, v6

    .line 233
    :goto_7
    iget-object v8, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    monitor-enter v8

    .line 234
    :try_start_a
    monitor-enter p0
    :try_end_b
    .catchall {:try_start_a .. :try_end_b} :catchall_24

    .line 235
    :try_start_b
    iget v0, p0, Lokhttp3/internal/http2/h;->bxY:I

    const v1, 0x3fffffff    # 1.9999999f

    if-le v0, v1, :cond_17

    .line 236
    sget-object v0, Lokhttp3/internal/http2/ErrorCode;->REFUSED_STREAM:Lokhttp3/internal/http2/ErrorCode;

    invoke-direct {p0, v0}, Lokhttp3/internal/http2/h;->a(Lokhttp3/internal/http2/ErrorCode;)V

    .line 238
    :cond_17
    iget-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z

    if-eqz v0, :cond_29

    .line 239
    new-instance v0, Lokhttp3/internal/http2/ConnectionShutdownException;

    invoke-direct {v0}, Lokhttp3/internal/http2/ConnectionShutdownException;-><init>()V

    throw v0

    .line 248
    :catchall_21
    move-exception v0

    monitor-exit p0
    :try_end_23
    .catchall {:try_start_b .. :try_end_23} :catchall_21

    :try_start_23
    throw v0

    .line 256
    :catchall_24
    move-exception v0

    monitor-exit v8
    :try_end_26
    .catchall {:try_start_23 .. :try_end_26} :catchall_24

    throw v0

    :cond_27
    move v3, v7

    .line 227
    goto :goto_7

    .line 241
    :cond_29
    :try_start_29
    iget v1, p0, Lokhttp3/internal/http2/h;->bxY:I

    .line 242
    iget v0, p0, Lokhttp3/internal/http2/h;->bxY:I

    add-int/lit8 v0, v0, 0x2

    iput v0, p0, Lokhttp3/internal/http2/h;->bxY:I

    .line 243
    new-instance v0, Lokhttp3/internal/http2/p;

    const/4 v4, 0x0

    move-object v2, p0

    move-object v5, p1

    invoke-direct/range {v0 .. v5}, Lokhttp3/internal/http2/p;-><init>(ILokhttp3/internal/http2/h;ZZLjava/util/List;)V

    .line 244
    if-eqz p2, :cond_47

    iget-wide v4, p0, Lokhttp3/internal/http2/h;->byc:J

    cmp-long v2, v4, v10

    if-eqz v2, :cond_47

    iget-wide v4, v0, Lokhttp3/internal/http2/p;->byc:J

    cmp-long v2, v4, v10

    if-nez v2, :cond_48

    :cond_47
    move v7, v6

    .line 245
    :cond_48
    invoke-virtual {v0}, Lokhttp3/internal/http2/p;->isOpen()Z

    move-result v2

    if-eqz v2, :cond_57

    .line 246
    iget-object v2, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    invoke-interface {v2, v4, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 248
    :cond_57
    monitor-exit p0
    :try_end_58
    .catchall {:try_start_29 .. :try_end_58} :catchall_21

    .line 250
    :try_start_58
    iget-object v2, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    invoke-virtual {v2, v3, v1, p1}, Lokhttp3/internal/http2/t;->c(ZILjava/util/List;)V

    .line 256
    monitor-exit v8
    :try_end_5e
    .catchall {:try_start_58 .. :try_end_5e} :catchall_24

    .line 258
    if-eqz v7, :cond_65

    .line 259
    iget-object v1, p0, Lokhttp3/internal/http2/h;->bXV:Lokhttp3/internal/http2/t;

    invoke-virtual {v1}, Lokhttp3/internal/http2/t;->flush()V

    .line 262
    :cond_65
    return-object v0
.end method

.method final declared-synchronized fr(I)Lokhttp3/internal/http2/p;
    .registers 4

    .prologue
    .line 190
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lokhttp3/internal/http2/p;
    :try_end_d
    .catchall {:try_start_1 .. :try_end_d} :catchall_f

    monitor-exit p0

    return-object v0

    :catchall_f
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method final declared-synchronized fs(I)Lokhttp3/internal/http2/p;
    .registers 4

    .prologue
    .line 194
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bxV:Ljava/util/Map;

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lokhttp3/internal/http2/p;

    .line 195
    invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
    :try_end_10
    .catchall {:try_start_1 .. :try_end_10} :catchall_12

    .line 196
    monitor-exit p0

    return-object v0

    .line 194
    :catchall_12
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method final g(IJ)V
    .registers 12

    .prologue
    .line 345
    :try_start_0
    iget-object v0, p0, Lokhttp3/internal/http2/h;->bXQ:Ljava/util/concurrent/ScheduledExecutorService;

    new-instance v1, Lokhttp3/internal/http2/h$2;

    const-string v3, "OkHttp Window Update %s stream %d"

    const/4 v2, 0x2

    new-array v4, v2, [Ljava/lang/Object;

    const/4 v2, 0x0

    iget-object v5, p0, Lokhttp3/internal/http2/h;->hostname:Ljava/lang/String;

    aput-object v5, v4, v2

    const/4 v2, 0x1

    .line 346
    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v5

    aput-object v5, v4, v2

    move-object v2, p0

    move v5, p1

    move-wide v6, p2

    invoke-direct/range {v1 .. v7}, Lokhttp3/internal/http2/h$2;-><init>(Lokhttp3/internal/http2/h;Ljava/lang/String;[Ljava/lang/Object;IJ)V

    .line 345
    invoke-interface {v0, v1}, Ljava/util/concurrent/ScheduledExecutorService;->execute(Ljava/lang/Runnable;)V
    :try_end_1e
    .catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_0 .. :try_end_1e} :catch_1f

    .line 358
    :goto_1e
    return-void

    :catch_1f
    move-exception v0

    goto :goto_1e
.end method

.method public final declared-synchronized isShutdown()Z
    .registers 2

    .prologue
    .line 536
    monitor-enter p0

    :try_start_1
    iget-boolean v0, p0, Lokhttp3/internal/http2/h;->shutdown:Z
    :try_end_3
    .catchall {:try_start_1 .. :try_end_3} :catchall_5

    monitor-exit p0

    return v0

    :catchall_5
    move-exception v0

    monitor-exit p0

    throw v0
.end method