b.smali

.class public final Lorg/jsoup/a/b;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/jsoup/a/b$a;
    }
.end annotation


# static fields
.field private static final a:Ljava/util/regex/Pattern;

.field private static final b:[C


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

    const-string v0, "(?i)\\bcharset=\\s*(?:[\"\'])?([^\\s,;\"\']*)"

    .line 32
    invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;

    move-result-object v0

    sput-object v0, Lorg/jsoup/a/b;->a:Ljava/util/regex/Pattern;

    const-string v0, "-_1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

    .line 37
    invoke-virtual {v0}, Ljava/lang/String;->toCharArray()[C

    move-result-object v0

    sput-object v0, Lorg/jsoup/a/b;->b:[C

    return-void
.end method

.method static a(Ljava/lang/String;)Ljava/lang/String;
    .registers 3

    const/4 v0, 0x0

    if-nez p0, :cond_4

    return-object v0

    .line 201
    :cond_4
    sget-object v1, Lorg/jsoup/a/b;->a:Ljava/util/regex/Pattern;

    invoke-virtual {v1, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;

    move-result-object p0

    .line 202
    invoke-virtual {p0}, Ljava/util/regex/Matcher;->find()Z

    move-result v1

    if-eqz v1, :cond_26

    const/4 v0, 0x1

    .line 203
    invoke-virtual {p0, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;

    move-result-object p0

    invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object p0

    const-string v0, "charset="

    const-string v1, ""

    .line 204
    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;

    move-result-object p0

    .line 205
    invoke-static {p0}, Lorg/jsoup/a/b;->b(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    return-object p0

    :cond_26
    return-object v0
.end method

.method static a()Ljava/nio/ByteBuffer;
    .registers 1

    const/4 v0, 0x0

    .line 190
    invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;

    move-result-object v0

    return-object v0
.end method

.method static a(Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;Lorg/jsoup/d/g;)Lorg/jsoup/c/f;
    .registers 16
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    if-nez p0, :cond_8

    .line 95
    new-instance p0, Lorg/jsoup/c/f;

    invoke-direct {p0, p2}, Lorg/jsoup/c/f;-><init>(Ljava/lang/String;)V

    return-object p0

    :cond_8
    const/4 v0, 0x0

    .line 96
    invoke-static {p0, v0}, Lorg/jsoup/b/a;->a(Ljava/io/InputStream;I)Lorg/jsoup/b/a;

    move-result-object p0

    const/16 v1, 0x1400

    .line 102
    invoke-virtual {p0, v1}, Ljava/io/InputStream;->mark(I)V

    const-string v1, "maxSize must be 0 (unlimited) or larger"

    const/4 v2, 0x1

    .line 1167
    invoke-static {v2, v1}, Lorg/jsoup/a/e;->a(ZLjava/lang/String;)V

    const/16 v3, 0x13ff

    .line 1168
    invoke-static {p0, v3}, Lorg/jsoup/b/a;->a(Ljava/io/InputStream;I)Lorg/jsoup/b/a;

    move-result-object v4

    .line 2077
    invoke-static {v2, v1}, Lorg/jsoup/a/e;->a(ZLjava/lang/String;)V

    new-array v1, v3, [B

    .line 2081
    new-instance v5, Ljava/io/ByteArrayOutputStream;

    invoke-direct {v5, v3}, Ljava/io/ByteArrayOutputStream;-><init>(I)V

    .line 2087
    :goto_28
    invoke-virtual {v4, v1}, Lorg/jsoup/b/a;->read([B)I

    move-result v6

    const/4 v7, -0x1

    if-eq v6, v7, :cond_3a

    if-lt v6, v3, :cond_35

    .line 2091
    invoke-virtual {v5, v1, v0, v3}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_3a

    :cond_35
    sub-int/2addr v3, v6

    .line 2096
    invoke-virtual {v5, v1, v0, v6}, Ljava/io/ByteArrayOutputStream;->write([BII)V

    goto :goto_28

    .line 2098
    :cond_3a
    :goto_3a
    invoke-virtual {v5}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v1

    invoke-static {v1}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v1

    .line 104
    invoke-virtual {p0}, Ljava/io/InputStream;->read()I

    move-result v3

    if-ne v3, v7, :cond_4a

    const/4 v3, 0x1

    goto :goto_4b

    :cond_4a
    const/4 v3, 0x0

    .line 105
    :goto_4b
    invoke-virtual {p0}, Ljava/io/InputStream;->reset()V

    .line 2237
    invoke-virtual {v1}, Ljava/nio/Buffer;->mark()Ljava/nio/Buffer;

    const/4 v4, 0x4

    new-array v5, v4, [B

    .line 2239
    invoke-virtual {v1}, Ljava/nio/ByteBuffer;->remaining()I

    move-result v6

    if-lt v6, v4, :cond_60

    .line 2240
    invoke-virtual {v1, v5}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;

    .line 2241
    invoke-virtual {v1}, Ljava/nio/Buffer;->rewind()Ljava/nio/Buffer;

    .line 2243
    :cond_60
    aget-byte v4, v5, v0

    const/4 v6, 0x3

    const/4 v8, 0x2

    const-string v9, "UTF-8"

    const/4 v10, -0x2

    const/4 v11, 0x0

    if-nez v4, :cond_76

    aget-byte v4, v5, v2

    if-nez v4, :cond_76

    aget-byte v4, v5, v8

    if-ne v4, v10, :cond_76

    aget-byte v4, v5, v6

    if-eq v4, v7, :cond_86

    :cond_76
    aget-byte v4, v5, v0

    if-ne v4, v7, :cond_8e

    aget-byte v4, v5, v2

    if-ne v4, v10, :cond_8e

    aget-byte v4, v5, v8

    if-nez v4, :cond_8e

    aget-byte v4, v5, v6

    if-nez v4, :cond_8e

    .line 2245
    :cond_86
    new-instance v2, Lorg/jsoup/a/b$a;

    const-string v4, "UTF-32"

    invoke-direct {v2, v4, v0}, Lorg/jsoup/a/b$a;-><init>(Ljava/lang/String;I)V

    goto :goto_bf

    .line 2246
    :cond_8e
    aget-byte v4, v5, v0

    if-ne v4, v10, :cond_96

    aget-byte v4, v5, v2

    if-eq v4, v7, :cond_9e

    :cond_96
    aget-byte v4, v5, v0

    if-ne v4, v7, :cond_a6

    aget-byte v4, v5, v2

    if-ne v4, v10, :cond_a6

    .line 2248
    :cond_9e
    new-instance v2, Lorg/jsoup/a/b$a;

    const-string v4, "UTF-16"

    invoke-direct {v2, v4, v0}, Lorg/jsoup/a/b$a;-><init>(Ljava/lang/String;I)V

    goto :goto_bf

    .line 2249
    :cond_a6
    aget-byte v4, v5, v0

    const/16 v7, -0x11

    if-ne v4, v7, :cond_be

    aget-byte v2, v5, v2

    const/16 v4, -0x45

    if-ne v2, v4, :cond_be

    aget-byte v2, v5, v8

    const/16 v4, -0x41

    if-ne v2, v4, :cond_be

    .line 2250
    new-instance v2, Lorg/jsoup/a/b$a;

    invoke-direct {v2, v9, v6}, Lorg/jsoup/a/b$a;-><init>(Ljava/lang/String;I)V

    goto :goto_bf

    :cond_be
    move-object v2, v11

    :goto_bf
    if-eqz v2, :cond_c9

    .line 2256
    iget-object p1, v2, Lorg/jsoup/a/b$a;->a:Ljava/lang/String;

    .line 3256
    iget v2, v2, Lorg/jsoup/a/b$a;->b:I

    int-to-long v4, v2

    .line 111
    invoke-virtual {p0, v4, v5}, Ljava/io/InputStream;->skip(J)J

    :cond_c9
    if-nez p1, :cond_15a

    .line 115
    invoke-static {v9}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;

    move-result-object v2

    invoke-virtual {v2, v1}, Ljava/nio/charset/Charset;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;

    move-result-object v1

    invoke-virtual {v1}, Ljava/nio/CharBuffer;->toString()Ljava/lang/String;

    move-result-object v1

    .line 116
    invoke-virtual {p3, v1, p2}, Lorg/jsoup/d/g;->a(Ljava/lang/String;Ljava/lang/String;)Lorg/jsoup/c/f;

    move-result-object v1

    const-string v2, "meta[http-equiv=content-type], meta[charset]"

    .line 3363
    invoke-static {v2, v1}, Lorg/jsoup/select/Selector;->a(Ljava/lang/String;Lorg/jsoup/c/h;)Lorg/jsoup/select/c;

    move-result-object v2

    .line 121
    invoke-virtual {v2}, Lorg/jsoup/select/c;->iterator()Ljava/util/Iterator;

    move-result-object v2

    move-object v4, v11

    :cond_e6
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v5

    if-eqz v5, :cond_114

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Lorg/jsoup/c/h;

    const-string v6, "http-equiv"

    .line 122
    invoke-virtual {v5, v6}, Lorg/jsoup/c/h;->b(Ljava/lang/String;)Z

    move-result v6

    if-eqz v6, :cond_104

    const-string v4, "content"

    .line 123
    invoke-virtual {v5, v4}, Lorg/jsoup/c/h;->c(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    invoke-static {v4}, Lorg/jsoup/a/b;->a(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    :cond_104
    if-nez v4, :cond_112

    const-string v6, "charset"

    .line 124
    invoke-virtual {v5, v6}, Lorg/jsoup/c/h;->b(Ljava/lang/String;)Z

    move-result v7

    if-eqz v7, :cond_112

    .line 125
    invoke-virtual {v5, v6}, Lorg/jsoup/c/h;->c(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    :cond_112
    if-eqz v4, :cond_e6

    :cond_114
    if-nez v4, :cond_13c

    .line 131
    invoke-virtual {v1}, Lorg/jsoup/c/f;->b()I

    move-result v2

    if-lez v2, :cond_13c

    invoke-virtual {v1, v0}, Lorg/jsoup/c/f;->a(I)Lorg/jsoup/c/l;

    move-result-object v2

    instance-of v2, v2, Lorg/jsoup/c/n;

    if-eqz v2, :cond_13c

    .line 132
    invoke-virtual {v1, v0}, Lorg/jsoup/c/f;->a(I)Lorg/jsoup/c/l;

    move-result-object v0

    check-cast v0, Lorg/jsoup/c/n;

    .line 4047
    invoke-virtual {v0}, Lorg/jsoup/c/n;->e()Ljava/lang/String;

    move-result-object v2

    const-string v5, "xml"

    .line 133
    invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_13c

    const-string v2, "encoding"

    .line 134
    invoke-virtual {v0, v2}, Lorg/jsoup/c/n;->c(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v4

    .line 136
    :cond_13c
    invoke-static {v4}, Lorg/jsoup/a/b;->b(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    if-eqz v0, :cond_155

    .line 137
    invoke-virtual {v0, v9}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v2

    if-nez v2, :cond_155

    .line 138
    invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object p1

    const-string v0, "[\"\']"

    const-string v1, ""

    invoke-virtual {p1, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    goto :goto_15f

    :cond_155
    if-nez v3, :cond_158

    goto :goto_15f

    :cond_158
    move-object v11, v1

    goto :goto_15f

    :cond_15a
    const-string v0, "Must set charset arg to character set of file to parse. Set to null to attempt to detect from HTML"

    .line 145
    invoke-static {p1, v0}, Lorg/jsoup/a/e;->a(Ljava/lang/String;Ljava/lang/String;)V

    :goto_15f
    if-nez v11, :cond_194

    if-nez p1, :cond_164

    goto :goto_165

    :cond_164
    move-object v9, p1

    .line 150
    :goto_165
    new-instance p1, Ljava/io/BufferedReader;

    new-instance v0, Ljava/io/InputStreamReader;

    invoke-direct {v0, p0, v9}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V

    const v1, 0x8000

    invoke-direct {p1, v0, v1}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;I)V

    .line 5038
    invoke-virtual {p3}, Lorg/jsoup/d/g;->a()Z

    move-result v0

    if-eqz v0, :cond_17f

    iget v0, p3, Lorg/jsoup/d/g;->b:I

    invoke-static {v0}, Lorg/jsoup/d/e;->a(I)Lorg/jsoup/d/e;

    move-result-object v0

    goto :goto_183

    :cond_17f
    invoke-static {}, Lorg/jsoup/d/e;->b()Lorg/jsoup/d/e;

    move-result-object v0

    :goto_183
    iput-object v0, p3, Lorg/jsoup/d/g;->c:Lorg/jsoup/d/e;

    .line 5039
    iget-object v0, p3, Lorg/jsoup/d/g;->a:Lorg/jsoup/d/m;

    iget-object v1, p3, Lorg/jsoup/d/g;->c:Lorg/jsoup/d/e;

    iget-object p3, p3, Lorg/jsoup/d/g;->d:Lorg/jsoup/d/f;

    invoke-virtual {v0, p1, p2, v1, p3}, Lorg/jsoup/d/m;->b(Ljava/io/Reader;Ljava/lang/String;Lorg/jsoup/d/e;Lorg/jsoup/d/f;)Lorg/jsoup/c/f;

    move-result-object v11

    .line 5543
    iget-object p1, v11, Lorg/jsoup/c/f;->a:Lorg/jsoup/c/f$a;

    .line 152
    invoke-virtual {p1, v9}, Lorg/jsoup/c/f$a;->a(Ljava/lang/String;)Lorg/jsoup/c/f$a;

    .line 154
    :cond_194
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V

    return-object v11
.end method

.method static a(Ljava/io/InputStream;Ljava/io/OutputStream;)V
    .registers 5
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    const v0, 0x8000

    new-array v0, v0, [B

    .line 88
    :goto_5
    invoke-virtual {p0, v0}, Ljava/io/InputStream;->read([B)I

    move-result v1

    const/4 v2, -0x1

    if-eq v1, v2, :cond_11

    const/4 v2, 0x0

    .line 89
    invoke-virtual {p1, v0, v2, v1}, Ljava/io/OutputStream;->write([BII)V

    goto :goto_5

    :cond_11
    return-void
.end method

.method static b()Ljava/lang/String;
    .registers 6

    .line 227
    new-instance v0, Ljava/lang/StringBuilder;

    const/16 v1, 0x20

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

    .line 228
    new-instance v2, Ljava/util/Random;

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

    const/4 v3, 0x0

    :goto_d
    if-ge v3, v1, :cond_1e

    .line 230
    sget-object v4, Lorg/jsoup/a/b;->b:[C

    array-length v5, v4

    invoke-virtual {v2, v5}, Ljava/util/Random;->nextInt(I)I

    move-result v5

    aget-char v4, v4, v5

    invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    add-int/lit8 v3, v3, 0x1

    goto :goto_d

    .line 232
    :cond_1e
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method private static b(Ljava/lang/String;)Ljava/lang/String;
    .registers 4

    const/4 v0, 0x0

    if-eqz p0, :cond_2a

    .line 211
    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v1

    if-nez v1, :cond_a

    goto :goto_2a

    .line 212
    :cond_a
    invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object p0

    const-string v1, "[\"\']"

    const-string v2, ""

    invoke-virtual {p0, v1, v2}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    .line 214
    :try_start_16
    invoke-static {p0}, Ljava/nio/charset/Charset;->isSupported(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_1d

    return-object p0

    .line 215
    :cond_1d
    sget-object v1, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale;

    invoke-virtual {p0, v1}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;

    move-result-object p0

    .line 216
    invoke-static {p0}, Ljava/nio/charset/Charset;->isSupported(Ljava/lang/String;)Z

    move-result v1
    :try_end_27
    .catch Ljava/nio/charset/IllegalCharsetNameException; {:try_start_16 .. :try_end_27} :catch_2a

    if-eqz v1, :cond_2a

    return-object p0

    :catch_2a
    :cond_2a
    :goto_2a
    return-object v0
.end method