/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.Component
 *  com.l7tech.gateway.common.LicenseManager
 *  com.l7tech.gateway.common.audit.AuditDetail
 *  com.l7tech.gateway.common.audit.AuditDetailEvent
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.SystemMessages
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.gateway.common.transport.SsgConnector
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.util.Background
 *  com.l7tech.util.Config
 *  com.l7tech.util.ExceptionUtils
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 *  org.springframework.context.ApplicationEvent
 */
package com.l7tech.server.transport;

import com.l7tech.gateway.common.Component;
import com.l7tech.gateway.common.LicenseManager;
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.SystemMessages;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.transport.SsgConnector;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.LifecycleBean;
import com.l7tech.server.event.EntityInvalidationEvent;
import com.l7tech.server.event.FaultProcessed;
import com.l7tech.server.event.MessageProcessed;
import com.l7tech.server.event.system.TransportEvent;
import com.l7tech.server.identity.cert.TrustedCertServices;
import com.l7tech.server.transport.ListenerException;
import com.l7tech.server.transport.SsgConnectorManager;
import com.l7tech.server.transport.c;
import com.l7tech.server.transport.d;
import com.l7tech.util.Background;
import com.l7tech.util.Config;
import com.l7tech.util.ExceptionUtils;
import java.io.IOException;
import java.security.KeyStoreException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Set;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationEvent;

/*
 * Exception performing whole class analysis ignored.
 */
public abstract class TransportModule
extends LifecycleBean {
    protected final Logger logger;
    protected final Component component;
    protected final SsgConnectorManager ssgConnectorManager;
    private final TrustedCertServices h;
    private final DefaultKey i;
    private final Config j;
    private final Object k;
    private static final String[] S;

    protected TransportModule(@NotNull String string2, @NotNull Component component, @NotNull Logger logger, @NotNull String string3, @Nullable LicenseManager licenseManager, @NotNull SsgConnectorManager ssgConnectorManager, @NotNull TrustedCertServices trustedCertServices, @NotNull DefaultKey defaultKey, @NotNull Config config) {
        if (string2 == null) {
            TransportModule.b(0);
        }
        if (component == null) {
            TransportModule.b(1);
        }
        if (logger == null) {
            TransportModule.b(2);
        }
        if (string3 == null) {
            TransportModule.b(3);
        }
        if (ssgConnectorManager == null) {
            TransportModule.b(4);
        }
        if (trustedCertServices == null) {
            TransportModule.b(5);
        }
        if (defaultKey == null) {
            TransportModule.b(6);
        }
        if (config == null) {
            TransportModule.b(7);
        }
        super(string2, logger, string3, licenseManager);
        this.k = new Object();
        this.component = component;
        this.logger = logger;
        this.ssgConnectorManager = ssgConnectorManager;
        this.h = trustedCertServices;
        this.i = defaultKey;
        this.j = config;
        defaultKey.addKeyInfoListener(string -> {
            block4: {
                try {
                    try {
                        if (string != null && !S[15].equals(string)) break block4;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw TransportModule.a(illegalArgumentException);
                    }
                    this.onDefaultSslKeyReload();
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TransportModule.a(illegalArgumentException);
                }
            }
        });
    }

    protected boolean isCurrent(Goid goid, int n2) {
        return false;
    }

    protected abstract void addConnector(SsgConnector var1) throws ListenerException;

    protected abstract void removeConnector(Goid var1);

    protected abstract Set<String> getSupportedSchemes();

    protected boolean schemeIsOwnedByThisModule(String string) {
        return this.getSupportedSchemes().contains(string);
    }

    protected boolean connectorIsOwnedByThisModule(SsgConnector ssgConnector) {
        return this.schemeIsOwnedByThisModule(ssgConnector.getScheme());
    }

    protected boolean isValidConnectorConfig(SsgConnector ssgConnector) {
        return true;
    }

    protected static boolean isEventIgnorable(ApplicationEvent applicationEvent) {
        boolean bl2;
        block8: {
            block7: {
                try {
                    block6: {
                        try {
                            try {
                                if (applicationEvent instanceof AuditDetailEvent || applicationEvent instanceof MessageProcessed) break block6;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw TransportModule.a(illegalArgumentException);
                            }
                            if (!(applicationEvent instanceof FaultProcessed)) break block7;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw TransportModule.a(illegalArgumentException);
                        }
                    }
                    bl2 = true;
                    break block8;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw TransportModule.a(illegalArgumentException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    @Override
    public void onApplicationEvent(ApplicationEvent applicationEvent) {
        try {
            if (TransportModule.isEventIgnorable(applicationEvent)) {
                return;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TransportModule.a(illegalArgumentException);
        }
        try {
            super.onApplicationEvent(applicationEvent);
            if (!this.isStarted()) {
                return;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TransportModule.a(illegalArgumentException);
        }
        if (applicationEvent instanceof EntityInvalidationEvent) {
            EntityInvalidationEvent entityInvalidationEvent = (EntityInvalidationEvent)applicationEvent;
            try {
                if (SsgConnector.class.equals(entityInvalidationEvent.getEntityClass())) {
                    Background.scheduleOneShot((TimerTask)new c(this, entityInvalidationEvent), (long)0L);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw TransportModule.a(illegalArgumentException);
            }
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void a(EntityInvalidationEvent entityInvalidationEvent) {
        Object object = this.k;
        synchronized (object) {
            Goid[] goidArray = entityInvalidationEvent.getEntityIds();
            char[] cArray = entityInvalidationEvent.getEntityOperations();
            try {
                for (int i2 = 0; i2 < goidArray.length; ++i2) {
                    this.a(cArray[i2], goidArray[i2]);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw TransportModule.a(illegalArgumentException);
            }
        }
    }

    /*
     * Exception decompiling
     */
    private void a(char var1_1, Goid var2_2) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [1[TRYBLOCK]], but top level block is 2[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private void a(Goid goid) throws FindException, ListenerException {
        block10: {
            SsgConnector ssgConnector = (SsgConnector)this.ssgConnectorManager.findByPrimaryKey(goid);
            try {
                if (ssgConnector == null) {
                    return;
                }
            }
            catch (FindException findException) {
                throw TransportModule.a(findException);
            }
            try {
                if (this.isCurrent(ssgConnector.getGoid(), ssgConnector.getVersion())) {
                    return;
                }
            }
            catch (FindException findException) {
                throw TransportModule.a(findException);
            }
            try {
                try {
                    this.removeConnector(goid);
                    if (!ssgConnector.isEnabled() || !this.connectorIsOwnedByThisModule(ssgConnector)) break block10;
                }
                catch (FindException findException) {
                    throw TransportModule.a(findException);
                }
                if (!this.isValidConnectorConfig(ssgConnector)) break block10;
            }
            catch (FindException findException) {
                throw TransportModule.a(findException);
            }
            SsgConnector ssgConnector2 = ssgConnector.getReadOnlyCopy();
            Background.scheduleOneShot((TimerTask)new d(this, ssgConnector2), (long)200L);
        }
    }

    public Config getServerConfig() {
        return this.j;
    }

    protected void onDefaultSslKeyReload() {
    }

    public SsgKeyEntry getKeyEntry(SsgConnector ssgConnector) throws ListenerException {
        try {
            SsgKeyEntry ssgKeyEntry;
            try {
                ssgKeyEntry = ssgConnector.getKeystoreGoid() == null ? this.i.getServerSslInfo() : this.i.lookupKeyByKeyAlias(ssgConnector.getKeyAlias(), ssgConnector.getKeystoreGoid());
            }
            catch (IOException iOException) {
                throw TransportModule.a(iOException);
            }
            return ssgKeyEntry;
        }
        catch (IOException iOException) {
            String[] stringArray = S;
            throw new ListenerException(stringArray[23] + ExceptionUtils.getMessage((Throwable)iOException), iOException);
        }
        catch (FindException | KeyStoreException throwable) {
            throw new ListenerException(S[31] + ExceptionUtils.getMessage((Throwable)throwable), throwable);
        }
    }

    protected DefaultKey getDefaultKey() {
        return this.i;
    }

    /*
     * Exception decompiling
     */
    public X509Certificate[] getAcceptedIssuersForConnector(SsgConnector var1_1) throws FindException {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [22[CATCHBLOCK]], but top level block is 11[TRYBLOCK]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    public abstract void reportMisconfiguredConnector(Goid var1);

    protected String describe(SsgConnector ssgConnector) {
        int n2 = ssgConnector.getPort();
        int n3 = ssgConnector.getVersion();
        String string = String.valueOf(ssgConnector.getGoid());
        String[] stringArray = S;
        return ssgConnector.getName() + stringArray[21] + string + stringArray[11] + n3 + stringArray[16] + n2;
    }

    protected final void auditStart(String string, String string2) {
        this.auditListenerStateChanged((AuditDetailMessage)SystemMessages.CONNECTOR_START, new String[]{string, string2}, null);
    }

    protected final void auditStop(String string, String string2) {
        this.auditListenerStateChanged((AuditDetailMessage)SystemMessages.CONNECTOR_STOP, new String[]{string, string2}, null);
    }

    protected final void auditError(String string, String string2, @Nullable Throwable throwable) {
        this.auditListenerStateChanged((AuditDetailMessage)SystemMessages.CONNECTOR_ERROR, new String[]{string, string2}, throwable);
    }

    protected final void auditListenerStateChanged(@NotNull AuditDetailMessage auditDetailMessage, @Nullable String[] stringArray, @Nullable Throwable throwable) {
        try {
            if (auditDetailMessage == null) {
                TransportModule.b(8);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TransportModule.a(illegalArgumentException);
        }
        String[] stringArray2 = S;
        TransportEvent transportEvent = new TransportEvent(this, this.component, null, Level.INFO, stringArray2[28], stringArray2[9]);
        this.auditTransportEvent(transportEvent, auditDetailMessage, stringArray, throwable);
    }

    protected void auditTransportEvent(@NotNull TransportEvent transportEvent, @NotNull AuditDetailMessage auditDetailMessage, @Nullable String[] stringArray, @Nullable Throwable throwable) {
        try {
            if (transportEvent == null) {
                TransportModule.b(9);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TransportModule.a(illegalArgumentException);
        }
        try {
            if (auditDetailMessage == null) {
                TransportModule.b(10);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw TransportModule.a(illegalArgumentException);
        }
        transportEvent.setAuditDetails(Arrays.asList(new AuditDetail(auditDetailMessage, stringArray, throwable)));
        this.getApplicationContext().publishEvent((ApplicationEvent)transportEvent);
    }

    /*
     * Exception decompiling
     */
    private static /* synthetic */ void b(int var0) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 2[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1050)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private static Throwable a(Throwable throwable) {
        return throwable;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[35];
                var3_1 = 0;
                var2_2 = "Z*\u0012s\nwbH+\u0013t\u001bIXO>\u0002\u007f=SjU8\u0013~\u0007o\u0013%lO\u00159+X0\u001b5\u0012\f\u007f^<\u001e5\r^yM:\u00045\nIjU,\u0006u\fO$o-\u0017t\rKdI+;u\u001aNg^\u0006X0\u0018|\u0017\\*~-\u0004u\f\u001b{I0\u0015\u007f\rHbU8Vy\u0016Ze\\:V|\u0011I+X0\u0018t\u001bX\u007fT-Vu\u0017_+\u0013O-\u0003i\n^ox:\u0004n-^yM6\u0015\u007f\r\u0005^)\u0013t\n\u000fZ<\u0015\u007f\u000eOn_\u0016\u0005i\u000b^yH>z-\u0011o\u0013^eO\u007f\u0010u\f\u001bKu0\u0002T\u000bWg\u001b/\u0017h\u001fVnO:\u0004:Y\u001ex\u001c\u007f\u0019|^\u001ex\u0015z\u0005:\u0013NxO\u007f\u0018u\n\u001bi^\u007f\u0018o\u0012W\u0016w6\u0005n\u001bUnI\u007f\u0005n\u001fOn\u001b<\u001e{\u0010\\n_\u0003V,\u0011\u0002\u0017)\u0005]>\u001ai\u001b\u0011U07y\u001d^{O:\u0012S\rH~^-\u0005\u0007o\u0013%lO\u00158\u001bP:\u000fI\nTy^\u001b\u0013|\u001fNgO\f\u0013h\b^yh,\u001aQ\u001bB\n\u0012\u007f\u0019t^KdI+V\n_:\u0010{\u000bW\u007fp:\u000f%R1\u0015v\u000b_nh:\u001a|=^yO\u0016\u0010[\u001dXnK+\u0013~7HxN:\u0004i;V{O&\u000fZ<\u0015\u007f\u000eOn_\u0016\u0005i\u000b^yH\u000eW6\u0015\u007f\u0010Hn}:\u0017n\u000bIn\u0003\u001bwU\u0007o\u0013%lO\u0015:2u0V~\u001b]jN3\u0002:-^yM:\u0004:-hG\u001b4\u0013c^Rx\u001b<\u0003h\f^eO3\u000f:\u001fMjR3\u0017x\u0012^1\u001b\u0004U>\u001b\u007f\u0013Z*\u0012s\noyZ1\u0005j\u0011I\u007f~)\u0013t\n\u0002\u0001\u007f\u0006\u00076\u0018s\n\u0005\rh+\u0017n\u001b\u001bHS>\u0018}\u001b_\u0006W0\u0011}\u001bI.n1\u0017x\u0012^+O0V}\u001bO+_:\u0010{\u000bW\u007f\u001b\f\u0013h\b^y\u001b\f%V^XnI+\u001f|\u0017XjO:L:,n1\u0017x\u0012^+O0V{\u001dXnH,Vj\fR}Z+\u0013:\u0015^r\u001b9\u0019h^XdU1\u0013y\nTy\u0001\u007f\tX0\u001bj\u0011UnU+";
                var4_3 = "Z*\u0012s\nwbH+\u0013t\u001bIXO>\u0002\u007f=SjU8\u0013~\u0007o\u0013%lO\u00159+X0\u001b5\u0012\f\u007f^<\u001e5\r^yM:\u00045\nIjU,\u0006u\fO$o-\u0017t\rKdI+;u\u001aNg^\u0006X0\u0018|\u0017\\*~-\u0004u\f\u001b{I0\u0015\u007f\rHbU8Vy\u0016Ze\\:V|\u0011I+X0\u0018t\u001bX\u007fT-Vu\u0017_+\u0013O-\u0003i\n^ox:\u0004n-^yM6\u0015\u007f\r\u0005^)\u0013t\n\u000fZ<\u0015\u007f\u000eOn_\u0016\u0005i\u000b^yH>z-\u0011o\u0013^eO\u007f\u0010u\f\u001bKu0\u0002T\u000bWg\u001b/\u0017h\u001fVnO:\u0004:Y\u001ex\u001c\u007f\u0019|^\u001ex\u0015z\u0005:\u0013NxO\u007f\u0018u\n\u001bi^\u007f\u0018o\u0012W\u0016w6\u0005n\u001bUnI\u007f\u0005n\u001fOn\u001b<\u001e{\u0010\\n_\u0003V,\u0011\u0002\u0017)\u0005]>\u001ai\u001b\u0011U07y\u001d^{O:\u0012S\rH~^-\u0005\u0007o\u0013%lO\u00158\u001bP:\u000fI\nTy^\u001b\u0013|\u001fNgO\f\u0013h\b^yh,\u001aQ\u001bB\n\u0012\u007f\u0019t^KdI+V\n_:\u0010{\u000bW\u007fp:\u000f%R1\u0015v\u000b_nh:\u001a|=^yO\u0016\u0010[\u001dXnK+\u0013~7HxN:\u0004i;V{O&\u000fZ<\u0015\u007f\u000eOn_\u0016\u0005i\u000b^yH\u000eW6\u0015\u007f\u0010Hn}:\u0017n\u000bIn\u0003\u001bwU\u0007o\u0013%lO\u0015:2u0V~\u001b]jN3\u0002:-^yM:\u0004:-hG\u001b4\u0013c^Rx\u001b<\u0003h\f^eO3\u000f:\u001fMjR3\u0017x\u0012^1\u001b\u0004U>\u001b\u007f\u0013Z*\u0012s\noyZ1\u0005j\u0011I\u007f~)\u0013t\n\u0002\u0001\u007f\u0006\u00076\u0018s\n\u0005\rh+\u0017n\u001b\u001bHS>\u0018}\u001b_\u0006W0\u0011}\u001bI.n1\u0017x\u0012^+O0V}\u001bO+_:\u0010{\u000bW\u007f\u001b\f\u0013h\b^y\u001b\f%V^XnI+\u001f|\u0017XjO:L:,n1\u0017x\u0012^+O0V{\u001dXnH,Vj\fR}Z+\u0013:\u0015^r\u001b9\u0019h^XdU1\u0013y\nTy\u0001\u007f\tX0\u001bj\u0011UnU+".length();
                var1_4 = 25;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = TransportModule.b(v0, TransportModule.c(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "W3\u000eF\u000eJzA#\u001dj\u0013iuJ!\u000e`\u0013\u001fq.\u001b`\u0002KsJ)\u0013`\u0005\u0004qJ4\u0000q\u0018\u0004{T%\u001bd\u0015M{JzI";
                    var4_3 = "W3\u000eF\u000eJzA#\u001dj\u0013iuJ!\u000e`\u0013\u001fq.\u001b`\u0002KsJ)\u0013`\u0005\u0004qJ4\u0000q\u0018\u0004{T%\u001bd\u0015M{JzI".length();
                    var1_4 = 19;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 123;
                        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++] = TransportModule.b(v0, TransportModule.c(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;
            }
        }
        TransportModule.S = var5;
    }

    private static char[] c(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x6F);
        }
        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 -> 95;
                    case 1 -> 59;
                    case 2 -> 18;
                    case 3 -> 126;
                    case 4 -> 26;
                    case 5 -> 95;
                    default -> 111;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

