i.smali

.class public final Lcom/subgraph/orchid/directory/consensus/i;
.super Lcom/subgraph/orchid/directory/consensus/c;
.source "RouterStatusSectionParser.java"


# instance fields
.field private bJo:Lcom/subgraph/orchid/directory/consensus/h;


# direct methods
.method constructor <init>(Lcom/subgraph/orchid/directory/a/b;Lcom/subgraph/orchid/directory/consensus/b;)V
    .registers 4

    .prologue
    .line 15
    invoke-direct {p0, p1, p2}, Lcom/subgraph/orchid/directory/consensus/c;-><init>(Lcom/subgraph/orchid/directory/a/b;Lcom/subgraph/orchid/directory/consensus/b;)V

    .line 12
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    .line 16
    return-void
.end method

.method private NB()V
    .registers 3

    .prologue
    .line 47
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    if-nez v0, :cond_c

    .line 48
    new-instance v0, Lcom/subgraph/orchid/TorParsingException;

    const-string v1, "Router status entry must begin with an \'r\' line"

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 49
    :cond_c
    return-void
.end method

.method private NC()V
    .registers 3

    .prologue
    .line 52
    invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NB()V

    .line 53
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    .line 10120
    iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIO:Ljava/util/List;

    invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 54
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    .line 55
    return-void
.end method

.method private ND()Lcom/subgraph/orchid/d/c;
    .registers 2

    .prologue
    .line 73
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MW()[B

    move-result-object v0

    invoke-static {v0}, Lcom/subgraph/orchid/d/c;->ar([B)Lcom/subgraph/orchid/d/c;

    move-result-object v0

    return-object v0
.end method


# virtual methods
.method final Nx()Ljava/lang/String;
    .registers 2

    .prologue
    .line 129
    const-string v0, "directory-footer"

    return-object v0
.end method

.method final Ny()Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;
    .registers 2

    .prologue
    .line 138
    sget-object v0, Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;->FOOTER:Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;

    return-object v0
.end method

.method final a(Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;)V
    .registers 6

    .prologue
    const/4 v3, 0x1

    .line 20
    sget-object v0, Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;->R:Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;

    invoke-virtual {p1, v0}, Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_c

    .line 21
    invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NB()V

    .line 22
    :cond_c
    sget-object v0, Lcom/subgraph/orchid/directory/consensus/i$1;->bID:[I

    invoke-virtual {p1}, Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;->ordinal()I

    move-result v1

    aget v0, v0, v1

    packed-switch v0, :pswitch_data_166

    .line 44
    :cond_17
    :goto_17
    return-void

    .line 1058
    :pswitch_18
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    if-eqz v0, :cond_24

    .line 1059
    new-instance v0, Lcom/subgraph/orchid/TorParsingException;

    const-string v1, "Unterminated router status entry."

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 1060
    :cond_24
    new-instance v0, Lcom/subgraph/orchid/directory/consensus/h;

    invoke-direct {v0}, Lcom/subgraph/orchid/directory/consensus/h;-><init>()V

    iput-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    .line 1061
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MI()Ljava/lang/String;

    move-result-object v1

    .line 2029
    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHl:Ljava/lang/String;

    .line 1062
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->ND()Lcom/subgraph/orchid/d/c;

    move-result-object v1

    .line 2030
    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bDD:Lcom/subgraph/orchid/d/c;

    .line 1063
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;

    .line 2124
    iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    .line 1063
    sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    if-eq v0, v1, :cond_4d

    .line 1064
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->ND()Lcom/subgraph/orchid/d/c;

    move-result-object v1

    .line 3031
    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bJj:Lcom/subgraph/orchid/d/c;

    .line 1066
    :cond_4d
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MS()Lcom/subgraph/orchid/d/f;

    move-result-object v1

    .line 3033
    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bEf:Lcom/subgraph/orchid/d/f;

    .line 1067
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MX()Lcom/subgraph/orchid/d/d;

    move-result-object v1

    .line 3034
    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bCT:Lcom/subgraph/orchid/d/d;

    .line 1068
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MR()I

    move-result v1

    .line 3035
    iput v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHm:I

    .line 1069
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MR()I

    move-result v1

    .line 3036
    iput v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHn:I

    goto :goto_17

    .line 3077
    :goto_76
    :pswitch_76
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->ML()I

    move-result v0

    if-lez v0, :cond_17

    .line 3078
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;

    move-result-object v1

    .line 4037
    iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHo:Ljava/util/Set;

    invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    goto :goto_76

    .line 4082
    :pswitch_8c
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MN()Ljava/lang/String;

    move-result-object v1

    .line 5038
    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->version:Ljava/lang/String;

    goto :goto_17

    .line 5086
    :cond_97
    :goto_97
    :pswitch_97
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->ML()I

    move-result v0

    if-lez v0, :cond_cf

    .line 5087
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;

    move-result-object v0

    const-string v1, "="

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

    move-result-object v0

    .line 5088
    array-length v1, v0

    const/4 v2, 0x2

    if-ne v1, v2, :cond_97

    .line 5089
    const/4 v1, 0x0

    aget-object v1, v0, v1

    iget-object v2, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    aget-object v0, v0, v3

    invoke-interface {v2, v0}, Lcom/subgraph/orchid/directory/a/b;->ha(Ljava/lang/String;)I

    move-result v0

    .line 5097
    const-string v2, "Bandwidth"

    invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v2

    if-eqz v2, :cond_c9

    .line 5098
    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    .line 6039
    iput v0, v1, Lcom/subgraph/orchid/directory/consensus/h;->bJl:I

    iput-boolean v3, v1, Lcom/subgraph/orchid/directory/consensus/h;->bJm:Z

    goto :goto_97

    .line 5099
    :cond_c9
    const-string v0, "Measured"

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    goto :goto_97

    .line 5091
    :cond_cf
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;

    .line 6124
    iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    .line 5091
    sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    if-ne v0, v1, :cond_17

    .line 5092
    invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NC()V

    goto/16 :goto_17

    .line 7104
    :pswitch_dc
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;

    .line 7124
    iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    .line 7104
    sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    if-ne v0, v1, :cond_ec

    .line 7105
    new-instance v0, Lcom/subgraph/orchid/TorParsingException;

    const-string v1, "\'p\' line does not appear in consensus flavor \'microdesc\'"

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 7107
    :cond_ec
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;

    move-result-object v0

    .line 7108
    const-string v1, "accept"

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_10d

    .line 7109
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;

    move-result-object v1

    .line 8041
    invoke-static {v1}, Lcom/subgraph/orchid/d/a/b;->gS(Ljava/lang/String;)Lcom/subgraph/orchid/d/a/b;

    move-result-object v1

    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bJn:Lcom/subgraph/orchid/d/a/b;

    .line 7113
    :cond_108
    :goto_108
    invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NC()V

    goto/16 :goto_17

    .line 7110
    :cond_10d
    const-string v1, "reject"

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_108

    .line 7111
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;

    move-result-object v1

    .line 8042
    invoke-static {v1}, Lcom/subgraph/orchid/d/a/b;->gT(Ljava/lang/String;)Lcom/subgraph/orchid/d/a/b;

    move-result-object v1

    iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bJn:Lcom/subgraph/orchid/d/a/b;

    goto :goto_108

    .line 8117
    :pswitch_124
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;

    .line 9124
    iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    .line 8117
    sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;

    if-eq v0, v1, :cond_134

    .line 8118
    new-instance v0, Lcom/subgraph/orchid/TorParsingException;

    const-string v1, "\'m\' line is invalid unless consensus flavor is microdesc"

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 8120
    :cond_134
    iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;

    invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MW()[B

    move-result-object v0

    .line 8121
    array-length v1, v0

    const/16 v2, 0x20

    if-eq v1, v2, :cond_15b

    .line 8122
    new-instance v1, Lcom/subgraph/orchid/TorParsingException;

    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "\'m\' line has incorrect digest size "

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    array-length v0, v0

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

    move-result-object v0

    const-string v2, " != 32"

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

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 8124
    :cond_15b
    iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;

    invoke-static {v0}, Lcom/subgraph/orchid/d/c;->ar([B)Lcom/subgraph/orchid/d/c;

    move-result-object v0

    .line 10032
    iput-object v0, v1, Lcom/subgraph/orchid/directory/consensus/h;->bJk:Lcom/subgraph/orchid/d/c;

    goto/16 :goto_17

    .line 22
    nop

    :pswitch_data_166
    .packed-switch 0x1
        :pswitch_18
        :pswitch_76
        :pswitch_8c
        :pswitch_97
        :pswitch_dc
        :pswitch_124
    .end packed-switch
.end method

.method final getSection()Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;
    .registers 2

    .prologue
    .line 134
    sget-object v0, Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;->ROUTER_STATUS:Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;

    return-object v0
.end method