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