BaseEncoding$a.smali
.class final Lcom/google/common/io/BaseEncoding$a;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/common/io/BaseEncoding;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "a"
.end annotation
# instance fields
.field final a:[C
.field final b:I
.field final c:I
.field final d:I
.field final e:I
.field final f:[B
.field private final g:Ljava/lang/String;
.field private final h:[Z
# direct methods
.method constructor <init>(Ljava/lang/String;[C)V
.registers 11
.line 427
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 428
invoke-static {p1}, Lcom/google/common/base/f;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Ljava/lang/String;
iput-object p1, p0, Lcom/google/common/io/BaseEncoding$a;->g:Ljava/lang/String;
.line 429
invoke-static {p2}, Lcom/google/common/base/f;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, [C
iput-object p1, p0, Lcom/google/common/io/BaseEncoding$a;->a:[C
.line 431
:try_start_13
array-length p1, p2
sget-object v0, Ljava/math/RoundingMode;->UNNECESSARY:Ljava/math/RoundingMode;
invoke-static {p1, v0}, Lcom/google/common/a/a;->a(ILjava/math/RoundingMode;)I
move-result p1
iput p1, p0, Lcom/google/common/io/BaseEncoding$a;->c:I
:try_end_1c
.catch Ljava/lang/ArithmeticException; {:try_start_13 .. :try_end_1c} :catch_94
.line 440
invoke-static {p1}, Ljava/lang/Integer;->lowestOneBit(I)I
move-result p1
const/16 v0, 0x8
invoke-static {v0, p1}, Ljava/lang/Math;->min(II)I
move-result p1
.line 442
:try_start_26
div-int/2addr v0, p1
iput v0, p0, Lcom/google/common/io/BaseEncoding$a;->d:I
.line 443
iget v0, p0, Lcom/google/common/io/BaseEncoding$a;->c:I
div-int/2addr v0, p1
iput v0, p0, Lcom/google/common/io/BaseEncoding$a;->e:I
:try_end_2e
.catch Ljava/lang/ArithmeticException; {:try_start_26 .. :try_end_2e} :catch_7a
.line 448
array-length p1, p2
const/4 v0, 0x1
sub-int/2addr p1, v0
iput p1, p0, Lcom/google/common/io/BaseEncoding$a;->b:I
const/16 p1, 0x80
new-array v1, p1, [B
const/4 v2, -0x1
.line 451
invoke-static {v1, v2}, Ljava/util/Arrays;->fill([BB)V
const/4 v3, 0x0
const/4 v4, 0x0
.line 452
:goto_3d
array-length v5, p2
if-ge v4, v5, :cond_5e
.line 453
aget-char v5, p2, v4
if-ge v5, p1, :cond_46
const/4 v6, 0x1
goto :goto_47
:cond_46
const/4 v6, 0x0
:goto_47
const-string v7, "Non-ASCII character: %s"
.line 454
invoke-static {v6, v7, v5}, Lcom/google/common/base/f;->a(ZLjava/lang/String;C)V
.line 455
aget-byte v6, v1, v5
if-ne v6, v2, :cond_52
const/4 v6, 0x1
goto :goto_53
:cond_52
const/4 v6, 0x0
:goto_53
const-string v7, "Duplicate character: %s"
invoke-static {v6, v7, v5}, Lcom/google/common/base/f;->a(ZLjava/lang/String;C)V
int-to-byte v6, v4
.line 456
aput-byte v6, v1, v5
add-int/lit8 v4, v4, 0x1
goto :goto_3d
.line 458
:cond_5e
iput-object v1, p0, Lcom/google/common/io/BaseEncoding$a;->f:[B
.line 460
iget p1, p0, Lcom/google/common/io/BaseEncoding$a;->d:I
new-array p1, p1, [Z
.line 461
:goto_64
iget p2, p0, Lcom/google/common/io/BaseEncoding$a;->e:I
if-ge v3, p2, :cond_77
mul-int/lit8 p2, v3, 0x8
.line 462
iget v1, p0, Lcom/google/common/io/BaseEncoding$a;->c:I
sget-object v2, Ljava/math/RoundingMode;->CEILING:Ljava/math/RoundingMode;
invoke-static {p2, v1, v2}, Lcom/google/common/a/a;->a(IILjava/math/RoundingMode;)I
move-result p2
aput-boolean v0, p1, p2
add-int/lit8 v3, v3, 0x1
goto :goto_64
.line 464
:cond_77
iput-object p1, p0, Lcom/google/common/io/BaseEncoding$a;->h:[Z
return-void
:catch_7a
move-exception p1
.line 445
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Illegal alphabet "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
new-instance v2, Ljava/lang/String;
invoke-direct {v2, p2}, Ljava/lang/String;-><init>([C)V
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {v0, p2, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
:catch_94
move-exception p1
.line 433
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Illegal alphabet length "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
array-length p2, p2
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {v0, p2, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_ab
:goto_aa
throw v0
:goto_ab
goto :goto_aa
.end method
# virtual methods
.method final a(C)I
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/common/io/BaseEncoding$DecodingException;
}
.end annotation
const-string v0, "Unrecognized character: 0x"
const/16 v1, 0x7f
if-gt p1, v1, :cond_3b
.line 483
iget-object v2, p0, Lcom/google/common/io/BaseEncoding$a;->f:[B
aget-byte v2, v2, p1
const/4 v3, -0x1
if-ne v2, v3, :cond_3a
const/16 v2, 0x20
if-le p1, v2, :cond_24
if-ne p1, v1, :cond_14
goto :goto_24
.line 488
:cond_14
new-instance v0, Lcom/google/common/io/BaseEncoding$DecodingException;
invoke-static {p1}, Ljava/lang/String;->valueOf(C)Ljava/lang/String;
move-result-object p1
const-string v1, "Unrecognized character: "
invoke-virtual {v1, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/google/common/io/BaseEncoding$DecodingException;-><init>(Ljava/lang/String;)V
throw v0
.line 486
:cond_24
:goto_24
new-instance v1, Lcom/google/common/io/BaseEncoding$DecodingException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {p1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p1}, Lcom/google/common/io/BaseEncoding$DecodingException;-><init>(Ljava/lang/String;)V
throw v1
:cond_3a
return v2
.line 481
:cond_3b
new-instance v1, Lcom/google/common/io/BaseEncoding$DecodingException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {p1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p1}, Lcom/google/common/io/BaseEncoding$DecodingException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method final a(I)Z
.registers 4
.line 472
iget-object v0, p0, Lcom/google/common/io/BaseEncoding$a;->h:[Z
iget v1, p0, Lcom/google/common/io/BaseEncoding$a;->d:I
rem-int/2addr p1, v1
aget-boolean p1, v0, p1
return p1
.end method
.method public final equals(Ljava/lang/Object;)Z
.registers 3
.line 549
instance-of v0, p1, Lcom/google/common/io/BaseEncoding$a;
if-eqz v0, :cond_f
.line 550
check-cast p1, Lcom/google/common/io/BaseEncoding$a;
.line 551
iget-object v0, p0, Lcom/google/common/io/BaseEncoding$a;->a:[C
iget-object p1, p1, Lcom/google/common/io/BaseEncoding$a;->a:[C
invoke-static {v0, p1}, Ljava/util/Arrays;->equals([C[C)Z
move-result p1
return p1
:cond_f
const/4 p1, 0x0
return p1
.end method
.method public final hashCode()I
.registers 2
.line 558
iget-object v0, p0, Lcom/google/common/io/BaseEncoding$a;->a:[C
invoke-static {v0}, Ljava/util/Arrays;->hashCode([C)I
move-result v0
return v0
.end method
.method public final toString()Ljava/lang/String;
.registers 2
.line 544
iget-object v0, p0, Lcom/google/common/io/BaseEncoding$a;->g:Ljava/lang/String;
return-object v0
.end method