/*
 * Decompiled with CFR 0.152.
 */
public final class jd
extends a {
    private int w;

    public final void e(int n) {
        this.d = true;
        this.a(n, false, true);
    }

    public jd(pv pv2) {
        super(pv2, false);
        this.a(pv2);
    }

    public final void a(int n, az az2, boolean bl2) {
        if (!this.c || n != this.e || az2 != null) {
            this.c = true;
            this.e = n;
            this.a(n, bl2, false);
            if (az2 != null) {
                az2.b(this.k);
            }
        }
    }

    private void a(pv pv2) {
        for (int i = 0; i < pv2.a(); ++i) {
            if (pv2.a(i) != 1) continue;
            pv pv3 = pv2.b(i);
            int n = pv3.d.c(5);
            if (n == 1214) {
                this.n.addElement(new a(pv3, new boolean[]{false, true}));
                continue;
            }
            if (n == 1208) {
                this.n.insertElementAt(new a(pv3, false), this.w++);
            }
            this.a(pv3);
        }
    }

    private static int a(a[] aArray, StringBuffer stringBuffer, int[] nArray) {
        a a2;
        char c;
        int n;
        int n2 = 0;
        for (n = 0; n < aArray.length; ++n) {
            c = stringBuffer.charAt(n);
            a2 = aArray[n];
            if (c != '\u0001' || a2 == null) continue;
            n2 = Math.max(n2, a2.k - nArray[n]);
        }
        for (n = 0; n < aArray.length; ++n) {
            c = stringBuffer.charAt(n);
            a2 = aArray[n];
            if (c == '\u0001' && a2 != null) {
                int n3 = a2.k;
                a2.k = n2 + nArray[n];
                a2.a(a2.k - n3);
                a2.m(a2.s + a2.k - n3);
                aArray[n] = null;
            }
            if (c <= '\u0000') continue;
            stringBuffer.setCharAt(n, (char)(c - '\u0001'));
            nArray[n] = nArray[n] + n2;
        }
        return n2;
    }

    private void a(int n, boolean n2, boolean bl2) {
        int n3;
        a a2;
        int n4;
        int n5;
        int n6;
        int n7;
        StringBuffer stringBuffer = new StringBuffer();
        on on2 = this.b.d;
        int n8 = on2.a(41, n) + on2.a(46, n) + on2.a(27, n);
        int n9 = on2.a(39, n) + on2.a(44, n) + on2.a(25, n);
        int n10 = on2.a(38, n) + on2.a(43, n) + on2.a(24, n);
        int n11 = on2.a(40, n) + on2.a(45, n) + on2.a(26, n);
        int n12 = n2 == 0 ? (!on2.a(52, true) ? n - n8 - n9 : on2.a(52, n)) : this.c(n);
        int n13 = 0;
        pv pv2 = null;
        int n14 = this.n.size() - this.w;
        int[] nArray = new int[n14];
        int[] nArray2 = new int[n14];
        int[] nArray3 = new int[n14];
        int[] nArray4 = new int[n14];
        int n15 = 0;
        for (n7 = 0; n7 < n14; ++n7) {
            pv pv3 = ((a)this.n.elementAt((int)(this.w + n7))).b;
            if (pv2 != null) {
                if (pv2 != pv3.b) {
                    ++n15;
                    n13 = 0;
                    pv2 = pv3.b;
                    for (n6 = 0; n6 < stringBuffer.length(); ++n6) {
                        n5 = stringBuffer.charAt(n6);
                        if (n5 <= 0) continue;
                        stringBuffer.setCharAt(n6, (char)(n5 - 1));
                    }
                }
            } else {
                pv2 = pv3.b;
            }
            while (n13 < stringBuffer.length() && stringBuffer.charAt(n13) > '\u0000') {
                ++n13;
            }
            n5 = Math.max(pv3.a("rowspan", 1), 1);
            n4 = Math.max(pv3.a("colspan", 1), 1);
            nArray[n7] = n13;
            nArray2[n7] = n15;
            nArray3[n7] = n4;
            nArray4[n7] = n5;
            while (stringBuffer.length() < n13 + n4) {
                stringBuffer.append(1);
            }
            n6 = 0;
            while (n6 < n4) {
                ++n6;
                stringBuffer.setCharAt(n13, (char)n5);
                ++n13;
            }
        }
        n4 = stringBuffer.length();
        int[] nArray5 = new int[n4];
        int[] nArray6 = new int[n4];
        int[] nArray7 = new int[n4];
        boolean[] blArray = new boolean[n4];
        for (n13 = 0; n13 < n14; ++n13) {
            if (nArray3[n13] != 1) continue;
            a2 = (a)this.n.elementAt(this.w + n13);
            n15 = nArray[n13];
            nArray5[n15] = Math.max(nArray5[n15], a2.b(n12));
            nArray6[n15] = Math.max(nArray6[n15], a2.d(n12));
            nArray7[n15] = Math.max(nArray7[n15], a2.c(n12));
            on on3 = a2.b.d;
            blArray[n15] = blArray[n15] | on3.a(52, false);
        }
        for (n6 = 0; n6 < n14; ++n6) {
            a2 = (a)this.n.elementAt(this.w + n6);
            if (nArray3[n6] <= 1) continue;
            n7 = 0;
            n3 = nArray[n6];
            int n16 = nArray3[n6];
            n5 = 0;
            n15 = 0;
            for (n13 = 0; n13 < n16; ++n13) {
                n5 += nArray5[n3 + n13];
                n15 += nArray7[n3 + n13];
                if (blArray[n3 + n13]) continue;
                ++n7;
            }
            n13 = n7 != 0 ? n7 : n16;
            n5 = Math.max((a2.b(n12) - n5 + n13 - 1) / n13, 0);
            n15 = Math.max((a2.c(n12) - n15 + n13 - 1) / n13, 0);
            for (n7 = 0; n7 < n16; ++n7) {
                if (n13 != n16 && blArray[n3 + n7]) continue;
                int n17 = n3 + n7;
                nArray5[n17] = nArray5[n17] + n5;
                int n18 = n3 + n7;
                nArray7[n18] = nArray7[n18] + n15;
            }
        }
        n7 = 0;
        n5 = 0;
        n6 = 0;
        for (n15 = 0; n15 < n4; ++n15) {
            n6 += nArray5[n15];
            nArray6[n15] = Math.max(nArray5[n15], nArray6[n15]);
            n5 += nArray6[n15];
            n13 = !blArray[n15] ? nArray7[n15] : nArray6[n15];
            nArray7[n15] = n13;
            n7 += nArray7[n15];
        }
        if (!bl2) {
            if (n7 < n12) {
                n6 = n7;
                System.arraycopy(nArray7, 0, nArray5, 0, n4);
            }
            if (n12 > n6 && n5 > n6) {
                n15 = n6;
                int n19 = n12 - n6;
                for (n13 = 0; n13 < n4; ++n13) {
                    n3 = (nArray6[n13] - nArray5[n13]) * n19 / (n5 - n6);
                    n15 += n3;
                    nArray5[n13] = nArray5[n13] + n3;
                }
            } else {
                n15 = n6;
            }
            if (n12 > n5 && n7 > n6) {
                int n20 = n12 - n5;
                for (n13 = 0; n13 < n4; ++n13) {
                    if (blArray[n13]) continue;
                    int n21 = nArray7[n13] * n20 / n7;
                    n15 += n21;
                    nArray5[n13] = n21 + nArray5[n13];
                }
            }
            if (on2.a(52, true) && n7 > 0 && n12 > n15) {
                int n22 = (n12 - n15) / n4;
                for (n13 = 0; n13 < n4; ++n13) {
                    n15 += n22;
                    nArray5[n13] = nArray5[n13] + n22;
                }
            }
            this.j = n15 + n8 + n9;
            this.f = on2.a(41, n);
            this.g = on2.a(39, n);
            if (n2 == 0 && on2.c(41) == 1001 && on2.c(39) == 1001) {
                this.f = this.g = (n - n8 - n9 - n15) / 2;
                this.j += this.f + this.g;
            }
            a[] aArray = new a[n4];
            n12 = 0;
            nArray6 = new int[n4];
            n7 = 0;
            n = this.f;
            n13 = 0;
            for (n6 = 0; n6 < stringBuffer.length(); ++n6) {
                stringBuffer.setCharAt(n6, '\u0000');
            }
            this.j();
            StringBuffer stringBuffer2 = new StringBuffer();
            for (n5 = 0; n5 < n14; ++n5) {
                a2 = (a)this.n.elementAt(this.w + n5);
                this.d(a2);
                if (n7 != nArray2[n5]) {
                    int n23 = jd.a(aArray, stringBuffer, nArray6);
                    stringBuffer2.append((char)n23);
                    n12 += n23;
                    n13 = 0;
                    n = this.f;
                    n7 = nArray2[n5];
                }
                while (nArray[n5] > (n2 = n13)) {
                    n13 = n2 + 1;
                    n += nArray5[n2];
                }
                aArray[n2] = a2;
                nArray6[n2] = 0;
                a2.j(n8 + n);
                n6 = 0;
                a2.k(n10 + n12);
                for (n13 = 0; n13 < nArray3[n5]; ++n13) {
                    n6 += nArray5[n2 + n13];
                    stringBuffer.setCharAt(n2 + n13, (char)nArray4[n5]);
                }
                a2.a(n6, (az)null, false);
                n13 = n2 + nArray3[n5];
                n += n6;
            }
            n6 = 0;
            stringBuffer2.append((char)jd.a(aArray, stringBuffer, nArray6));
            for (n13 = 0; n13 < stringBuffer2.length(); ++n13) {
                n = stringBuffer2.charAt(n13);
                if (n13 < this.w) {
                    a a3 = (a)this.n.elementAt(n13);
                    a3.h = 0;
                    a3.i = 0;
                    a3.j = n15;
                    a3.k = n;
                    a3.d(0, n6, n15, n);
                    this.a(a3, n13);
                }
                n6 += n;
            }
            this.k = n10 + n6 + n11;
            this.l(this.j);
            this.m(this.k);
            return;
        }
        this.l = n6;
        this.m = n7;
    }
}

