/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.gateway.common.audit.AuditFactory
 *  com.l7tech.util.Config
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.TimeUnit
 *  com.l7tech.util.ValidatedConfig
 *  org.springframework.context.ApplicationEventPublisher
 */
package com.l7tech.server.cluster;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.server.cluster.ClusterMaster;
import com.l7tech.server.cluster.z;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.TimeUnit;
import com.l7tech.util.ValidatedConfig;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Logger;
import javax.sql.DataSource;
import org.springframework.context.ApplicationEventPublisher;

public class DatabaseReplicationMonitor
implements PropertyChangeListener {
    private static final Logger a;
    private static final String b;
    private static final String c;
    private static final String d;
    private static final String e;
    private static final String f;
    private static final String g;
    private static final String h;
    private static final String i;
    private static final String j;
    private static final String k;
    private static final String l;
    private static final long m;
    private final Config n;
    private final ClusterMaster o;
    private final String p;
    private final String q;
    private final DataSource r;
    private final DataSource s;
    private final DataSource t;
    private final ApplicationEventPublisher u;
    private final Audit v;
    private final Timer w;
    private final String x;
    private final String y;
    private final Object z = new Object();
    private z A;
    private final AtomicLong B = new AtomicLong(0L);
    private static final String[] C;

    public DatabaseReplicationMonitor(Config config, ClusterMaster clusterMaster, String string, DataSource dataSource, String string2, DataSource dataSource2, DataSource dataSource3, AuditFactory auditFactory, ApplicationEventPublisher applicationEventPublisher, String string3, String string4, Timer timer) {
        this.n = DatabaseReplicationMonitor.a(config);
        this.o = clusterMaster;
        this.p = string;
        this.q = string2;
        this.r = dataSource;
        this.s = dataSource2;
        this.t = dataSource3;
        this.u = applicationEventPublisher;
        this.v = auditFactory.newInstance((Object)this, a);
        this.x = string3;
        this.y = string4;
        this.w = timer;
    }

    public void init() {
        this.a();
    }

    public long getReplicationDelay() {
        return this.B.get();
    }

    @Override
    public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
        a.config(C[5]);
        this.a();
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void a() {
        Object object = this.z;
        synchronized (object) {
            long l2 = 0L;
            if (this.A != null) {
                this.A.cancel();
                l2 = this.A.g;
                this.A = null;
            }
            String[] stringArray = C;
            long l3 = this.n.getTimeUnitProperty(stringArray[8], 10000L);
            if (stringArray[13].equals(this.y) && l3 > 0L) {
                a.info(stringArray[6]);
                this.A = new z(this, l3, this.n.getTimeUnitProperty(stringArray[0], TimeUnit.SECONDS.toMillis(60L)) / TimeUnit.SECONDS.toMillis(1L), this.n.getTimeUnitProperty(stringArray[20], TimeUnit.HOURS.toMillis(1L)), l2);
                this.w.schedule((TimerTask)this.A, m, l3);
            }
        }
    }

    private static Config a(Config config) {
        ValidatedConfig validatedConfig = new ValidatedConfig(config, a);
        String[] stringArray = C;
        validatedConfig.setMinimumValue(stringArray[1], (Number)0);
        validatedConfig.setMinimumValue(stringArray[15], (Number)0);
        validatedConfig.setMinimumValue(stringArray[4], (Number)0);
        return validatedConfig;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[21];
                var3_1 = 0;
                var2_2 = "8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E} 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTkU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u0015|1Fb2Fw8xG~qOx5uZq4[0 8{\u001bu4Yu5zTs8Fw\u0019kGh#hl8pAN?]|.oTk8\u000e|Yh0Mp2~\u0015c0]x>xFbq[|,u\\d0]p3w\u0015j>Gp(vGn?N9?v[a8Nl.xAn>G7/tKP.\u0002Jq9}@k8G~|}Ts0Kx/|\u0015u4Yu5zTs8Fw|tZi8]v.p[`\u007f?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014( 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTk\u00d2\u0015WfB\u0003}9\u0015WaHq[|,u\\d0]p3wjt%Hm)j\u0015/>Ks9zAn5\u00059/|Dr4Gz95\u0015r!Mx(|Q+qGv8|\\c}\t}9uT~x\tO\u001dU`B\u0002\t1m5\n+n\u0005&p&\u001c'\u001eg9\u0018LeK\u0018jX\b\\\u0015L\u0014p9\tIqF\u0005l9/|Dr4Gz9$cF\u001d|\\\u000f1Fb \\|2zP.}\\i8xAb5\u0014O\u001dU`B\u0002\u0001l,}Ts4M0pwZc4@}aOtK\u0004lJtwZc4@}u5Qb=H`aOtK\u0004lJt}Pk0P0\n.|Ek8Jx(|Q/?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wqb=H`\rlPu(6?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w|i8]p=uvo4Jr\u0018|Yf(\n.|Ek8Jx(|QU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u001c8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E}*?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wdr4[`?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(+?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w`w5Hm9";
                var4_3 = "8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E} 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTkU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u0015|1Fb2Fw8xG~qOx5uZq4[0 8{\u001bu4Yu5zTs8Fw\u0019kGh#hl8pAN?]|.oTk8\u000e|Yh0Mp2~\u0015c0]x>xFbq[|,u\\d0]p3w\u0015j>Gp(vGn?N9?v[a8Nl.xAn>G7/tKP.\u0002Jq9}@k8G~|}Ts0Kx/|\u0015u4Yu5zTs8Fw|tZi8]v.p[`\u007f?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014( 8{\u001bu4Yu5zTs8Fw\u0018|Yf(jq9z^N?]|.oTk\u00d2\u0015WfB\u0003}9\u0015WaHq[|,u\\d0]p3wjt%Hm)j\u0015/>Ks9zAn5\u00059/|Dr4Gz95\u0015r!Mx(|Q+qGv8|\\c}\t}9uT~x\tO\u001dU`B\u0002\t1m5\n+n\u0005&p&\u001c'\u001eg9\u0018LeK\u0018jX\b\\\u0015L\u0014p9\tIqF\u0005l9/|Dr4Gz9$cF\u001d|\\\u000f1Fb \\|2zP.}\\i8xAb5\u0014O\u001dU`B\u0002\u0001l,}Ts4M0pwZc4@}aOtK\u0004lJtwZc4@}u5Qb=H`aOtK\u0004lJt}Pk0P0\n.|Ek8Jx(|Q/?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wqb=H`\rlPu(6?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w|i8]p=uvo4Jr\u0018|Yf(\n.|Ek8Jx(|QU\u000f\\yB\u0012}9/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(|X{CqGv8|\\cl\u00169\u001dWq'$Y}=mPcq\u00179c\u001c8{\u001bu4Yu5zTs8Fw\u0018|Yf(}q.|Fo>E}*?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3wdr4[`?\u000f\\yB\u0012}98|Yf(\u00059/|Dr4Gz99sU\u001ed9.|Ek8Jx(pZi\u000eZm=m@tq~Q\u0019Kp'>Ks9zAn5\u0014(+?vX)=\u001em9z])\"Lk*|G)2El/mPu\u007f[|,u\\d0]p3w`w5Hm9".length();
                var1_4 = 28;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 28;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = DatabaseReplicationMonitor.a(v0, DatabaseReplicationMonitor.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "H\n;\u001f^ dH\n<\u0015,\u0006!q(\u00019m\u0000-n*7)x\u00150t7Hrc\u0016.d'\u001c3hXdr!\u0019/i\u001a'dhH/|\u0010%u!\fv,\u001a+e!\u0001> T d(\t#%T\u0012@\b=\u001f_Tl0hWv3X{-{AzC:dE\u00118\u0016E7\u0005U\u0001H\u0011I-dT\u0014,\u001bX1dr!\u0019/i\u001a'dy>\u001b@!\u0001Rl\u001b?}\u0001!o'\rs \u00014e%\u001c?hI\u0012@\b=\u001f_\\1q \t.i\u0010m-*\u0007>i\u001d <\u0012)\u0016Y1\u0017)*\u0007>i\u001d (h\f?`\u0015=<\u0012)\u0016Y1\u0017) \r6m\rm e&F(i\u0004(h'\t.e\u001b*D6\u001a5~51e-\u001c\u0013b\u0000!s2\t6";
                    var4_3 = "H\n;\u001f^ dH\n<\u0015,\u0006!q(\u00019m\u0000-n*7)x\u00150t7Hrc\u0016.d'\u001c3hXdr!\u0019/i\u001a'dhH/|\u0010%u!\fv,\u001a+e!\u0001> T d(\t#%T\u0012@\b=\u001f_Tl0hWv3X{-{AzC:dE\u00118\u0016E7\u0005U\u0001H\u0011I-dT\u0014,\u001bX1dr!\u0019/i\u001a'dy>\u001b@!\u0001Rl\u001b?}\u0001!o'\rs \u00014e%\u001c?hI\u0012@\b=\u001f_\\1q \t.i\u0010m-*\u0007>i\u001d <\u0012)\u0016Y1\u0017)*\u0007>i\u001d (h\f?`\u0015=<\u0012)\u0016Y1\u0017) \r6m\rm e&F(i\u0004(h'\t.e\u001b*D6\u001a5~51e-\u001c\u0013b\u0000!s2\t6".length();
                    var1_4 = 210;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 65;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = DatabaseReplicationMonitor.a(v0, DatabaseReplicationMonitor.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        DatabaseReplicationMonitor.C = var5;
        DatabaseReplicationMonitor.g = DatabaseReplicationMonitor.C[2];
        DatabaseReplicationMonitor.c = DatabaseReplicationMonitor.C[8];
        DatabaseReplicationMonitor.d = DatabaseReplicationMonitor.C[0];
        DatabaseReplicationMonitor.f = DatabaseReplicationMonitor.C[9];
        DatabaseReplicationMonitor.h = DatabaseReplicationMonitor.C[7];
        DatabaseReplicationMonitor.l = DatabaseReplicationMonitor.C[3];
        DatabaseReplicationMonitor.e = DatabaseReplicationMonitor.C[20];
        DatabaseReplicationMonitor.b = DatabaseReplicationMonitor.C[10];
        DatabaseReplicationMonitor.a = Logger.getLogger(DatabaseReplicationMonitor.class.getName());
        var0_6 = DatabaseReplicationMonitor.C;
        DatabaseReplicationMonitor.i = ConfigFactory.getProperty((String)var0_6[18], (String)var0_6[19]);
        DatabaseReplicationMonitor.j = ConfigFactory.getProperty((String)var0_6[16], (String)var0_6[14]);
        DatabaseReplicationMonitor.k = ConfigFactory.getProperty((String)var0_6[11], (String)var0_6[17]);
        DatabaseReplicationMonitor.m = ConfigFactory.getLongProperty((String)var0_6[12], (long)TimeUnit.MINUTES.toMillis(1L));
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 5);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 64;
                    case 1 -> 5;
                    case 2 -> 41;
                    case 3 -> 27;
                    case 4 -> 77;
                    case 5 -> 53;
                    default -> 5;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

