/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.audit.AuditDetail
 *  com.l7tech.gateway.common.audit.AuditDetailEvent
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.AuditFactory
 *  com.l7tech.gateway.common.audit.LoggingAudit
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.beans.BeansException
 *  org.springframework.beans.factory.BeanFactory
 *  org.springframework.context.ApplicationContext
 *  org.springframework.context.ApplicationContextAware
 *  org.springframework.context.ApplicationEvent
 *  org.springframework.context.ApplicationEventPublisher
 */
package com.l7tech.server.audit;

import com.l7tech.gateway.common.audit.AuditDetail;
import com.l7tech.gateway.common.audit.AuditDetailEvent;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.gateway.common.audit.LoggingAudit;
import com.l7tech.server.audit.AuditDetailFilter;
import com.l7tech.server.audit.AuditLogFormatter;
import com.l7tech.server.audit.AuditLogListener;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;

public class Auditor
extends LoggingAudit {
    private final ApplicationEventPublisher a;
    private final Object b;
    private final AuditLogListener c;
    private final AuditDetailFilter d;
    private final AuditLogFormatter e;
    private static final String[] f;

    protected Auditor(Logger logger) {
        super(logger);
        this.b = null;
        this.a = null;
        this.c = null;
        this.d = null;
        this.e = new AuditLogFormatter();
    }

    public Auditor(Object object, ApplicationContext applicationContext, Logger logger) {
        this(object, (BeanFactory)applicationContext, (ApplicationEventPublisher)applicationContext, logger);
    }

    public Auditor(Object object, BeanFactory beanFactory, ApplicationEventPublisher applicationEventPublisher, Logger logger) {
        this(object, Auditor.a(beanFactory), Auditor.b(beanFactory), applicationEventPublisher, logger);
    }

    private static AuditLogListener a(BeanFactory beanFactory) {
        AuditLogListener auditLogListener;
        try {
            if (beanFactory == null) {
                return null;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        try {
            auditLogListener = beanFactory.containsBean(f[8]) ? (AuditLogListener)beanFactory.getBean(f[6], AuditLogListener.class) : null;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        return auditLogListener;
    }

    private static AuditDetailFilter b(BeanFactory beanFactory) {
        AuditDetailFilter auditDetailFilter;
        try {
            if (beanFactory == null) {
                return null;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        try {
            auditDetailFilter = beanFactory.containsBean(f[4]) ? (AuditDetailFilter)beanFactory.getBean(f[3], AuditDetailFilter.class) : null;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        return auditDetailFilter;
    }

    public Auditor(Object object, AuditLogListener auditLogListener, AuditDetailFilter auditDetailFilter, ApplicationEventPublisher applicationEventPublisher, Logger logger) {
        super(logger);
        if (object == null) {
            throw new IllegalArgumentException(f[2]);
        }
        this.b = object;
        this.a = applicationEventPublisher;
        this.c = auditLogListener;
        this.d = auditDetailFilter;
        this.e = new AuditLogFormatter();
    }

    public void logAndAudit(@NotNull AuditDetailMessage auditDetailMessage, String[] stringArray, Throwable throwable) {
        block16: {
            String[] stringArray2;
            AuditDetailMessage auditDetailMessage2;
            AuditDetail auditDetail;
            AuditDetail auditDetail2;
            Object object;
            AuditDetailEvent auditDetailEvent;
            AuditDetailEvent auditDetailEvent2;
            ApplicationEventPublisher applicationEventPublisher;
            String string;
            block19: {
                block18: {
                    String string2;
                    try {
                        if (auditDetailMessage == null) {
                            Auditor.a(0);
                        }
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw Auditor.b(illegalArgumentException);
                    }
                    try {
                        string2 = this.logger == null ? null : this.logger.getName();
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw Auditor.b(illegalArgumentException);
                    }
                    string = string2;
                    try {
                        try {
                            AuditDetail auditDetail3;
                            AuditDetailEvent auditDetailEvent3;
                            block17: {
                                try {
                                    try {
                                        if (this.a == null) break block16;
                                        if (this.d == null) break block17;
                                    }
                                    catch (IllegalArgumentException illegalArgumentException) {
                                        throw Auditor.b(illegalArgumentException);
                                    }
                                    if (!this.d.isAuditable(auditDetailMessage)) break block16;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw Auditor.b(illegalArgumentException);
                                }
                            }
                            applicationEventPublisher = this.a;
                            auditDetailEvent2 = auditDetailEvent3;
                            auditDetailEvent = auditDetailEvent3;
                            object = this.b;
                            auditDetail2 = auditDetail3;
                            auditDetail = auditDetail3;
                            auditDetailMessage2 = auditDetailMessage;
                            if (stringArray != null) break block18;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw Auditor.b(illegalArgumentException);
                        }
                        stringArray2 = null;
                        break block19;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw Auditor.b(illegalArgumentException);
                    }
                }
                stringArray2 = stringArray;
            }
            auditDetail2(auditDetailMessage2, stringArray2, throwable);
            auditDetailEvent2(object, auditDetail, throwable, string);
            applicationEventPublisher.publishEvent((ApplicationEvent)auditDetailEvent);
        }
        try {
            if (this.logger == null) {
                return;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        this.log(auditDetailMessage, stringArray, throwable);
    }

    public void logAndAudit(@NotNull AuditDetailMessage auditDetailMessage, String ... stringArray) {
        try {
            if (auditDetailMessage == null) {
                Auditor.a(1);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        this.logAndAudit(auditDetailMessage, stringArray, (Throwable)null);
    }

    public void logAndAudit(@NotNull AuditDetailMessage auditDetailMessage) {
        try {
            if (auditDetailMessage == null) {
                Auditor.a(2);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw Auditor.b(illegalArgumentException);
        }
        this.logAndAudit(auditDetailMessage, (String[])null, (Throwable)null);
    }

    protected void logDetail(AuditDetailMessage auditDetailMessage, String[] stringArray, Throwable throwable) {
        block3: {
            block2: {
                try {
                    if (this.c == null) break block2;
                    this.c.notifyDetailCreated(this.logger.getName(), this.logger.getName(), auditDetailMessage, stringArray, -1L, this.e, throwable);
                    break block3;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw Auditor.b(illegalArgumentException);
                }
            }
            super.logDetail(auditDetailMessage, stringArray, throwable);
        }
    }

    protected String formatDetail(AuditDetailMessage auditDetailMessage) {
        return this.e.a(auditDetailMessage, null, -1L);
    }

    private static /* synthetic */ void a(int n2) {
        String[] stringArray = f;
        throw new IllegalArgumentException(String.format(stringArray[5], stringArray[7], stringArray[1], stringArray[0]));
    }

    private static IllegalArgumentException b(IllegalArgumentException illegalArgumentException) {
        return illegalArgumentException;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[9];
                var3_1 = 0;
                var2_2 = "f\t\u00198Vq6\u007f\u0002\u0017\r\u001fi\t\u0013VT\"\u0003o\u0005\u0016VKp\u0005|\u0003\fVY`\u0013c\u0012Q8Mq\u001e~\t\fAO\u0010\u001b\u0017L5\u0004e\u0013\f\u001a]5\u001eyF0,tYY*%\u001f\u0017Vz\u0003*\u0007\u001a\u001d\u0018T\u0002n\u000f\n=]a\u0016c\n^\rW5\u0003b\u0003^\u0018Mq\u001e~F\f\u001c[z\u0005nH\u0011k\u0013\u001a\u0010LQ\u0012~\u0007\u0017\u0015~|\u001b~\u0003\f\u0011k\u0013\u001a\u0010LQ\u0012~\u0007\u0017\u0015~|\u001b~\u0003\f>K\u0014\u0019\fUp\u0019~F\u0018\u0016J57D\t\n7My\u001b*\u0016\u001f\u000bYx\u0012~\u0003\fY\u001f0\u0004-F\u0011\u001f\u00180\u0004$C\rYU`\u0004~F\u0010\u0016L5\u0015oF\u0010\fTy\u0010k\u0013\u001a\u0010LY\u0018m*\u0017\nLp\u0019o\u0014";
                var4_3 = "f\t\u00198Vq6\u007f\u0002\u0017\r\u001fi\t\u0013VT\"\u0003o\u0005\u0016VKp\u0005|\u0003\fVY`\u0013c\u0012Q8Mq\u001e~\t\fAO\u0010\u001b\u0017L5\u0004e\u0013\f\u001a]5\u001eyF0,tYY*%\u001f\u0017Vz\u0003*\u0007\u001a\u001d\u0018T\u0002n\u000f\n=]a\u0016c\n^\rW5\u0003b\u0003^\u0018Mq\u001e~F\f\u001c[z\u0005nH\u0011k\u0013\u001a\u0010LQ\u0012~\u0007\u0017\u0015~|\u001b~\u0003\f\u0011k\u0013\u001a\u0010LQ\u0012~\u0007\u0017\u0015~|\u001b~\u0003\f>K\u0014\u0019\fUp\u0019~F\u0018\u0016J57D\t\n7My\u001b*\u0016\u001f\u000bYx\u0012~\u0003\fY\u001f0\u0004-F\u0011\u001f\u00180\u0004$C\rYU`\u0004~F\u0010\u0016L5\u0015oF\u0010\fTy\u0010k\u0013\u001a\u0010LY\u0018m*\u0017\nLp\u0019o\u0014".length();
                var1_4 = 11;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = Auditor.b(v0, Auditor.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0013am\u0010\u001fgnd8-l\u0019^c~8\u0004m\u001b`";
                    var4_3 = "\u0013am\u0010\u001fgnd8-l\u0019^c~8\u0004m\u001b`".length();
                    var1_4 = 3;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 41;
                        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++] = Auditor.b(v0, Auditor.b(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;
            }
        }
        Auditor.f = var5;
    }

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

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String b(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 -> 87;
                    case 1 -> 59;
                    case 2 -> 35;
                    case 3 -> 36;
                    case 4 -> 101;
                    case 5 -> 72;
                    default -> 42;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    public static final class DefaultAuditorFactory
    implements ApplicationContextAware,
    AuditFactory {
        private final AuditDetailFilter a;
        private final AuditLogListener b;
        private ApplicationEventPublisher c;
        private static final String d = DefaultAuditorFactory.a(26, DefaultAuditorFactory.a("%#r0|hT\u001f%g|||X\u000f"));

        public Auditor newInstance(Object object, Logger logger) {
            try {
                if (this.c == null) {
                    throw new IllegalStateException(d);
                }
            }
            catch (IllegalStateException illegalStateException) {
                throw DefaultAuditorFactory.a(illegalStateException);
            }
            return new Auditor(object, this.b, this.a, this.c, logger);
        }

        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            this.c = applicationContext;
        }

        DefaultAuditorFactory(AuditDetailFilter auditDetailFilter, AuditLogListener auditLogListener) {
            this.a = auditDetailFilter;
            this.b = auditLogListener;
        }

        private static IllegalStateException a(IllegalStateException illegalStateException) {
            return illegalStateException;
        }

        private static char[] a(String string) {
            char[] cArray = string.toCharArray();
            if (cArray.length < 2) {
                cArray = cArray;
                cArray[0] = (char)(cArray[0] ^ 0x27);
            }
            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 -> 113;
                        case 1 -> 86;
                        case 2 -> 28;
                        case 3 -> 10;
                        case 4 -> 15;
                        case 5 -> 28;
                        default -> 39;
                    })));
                    ++n3;
                    n4 = n4;
                } while (n4 > n3);
            }
            return new String(cArray2).intern();
        }
    }
}

