/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.http.GenericHttpClientFactory
 *  com.l7tech.common.http.GenericHttpHeader
 *  com.l7tech.common.http.GenericHttpRequestParams
 *  com.l7tech.common.http.HttpHeader
 *  com.l7tech.common.http.HttpMethod
 *  com.l7tech.common.io.ProcUtils
 *  com.l7tech.common.protocol.SecureSpanConstants
 *  com.l7tech.gateway.common.LicenseException
 *  com.l7tech.gateway.common.cluster.ClusterNodeInfo
 *  com.l7tech.gateway.common.security.rbac.OperationType
 *  com.l7tech.gateway.common.transport.SsgConnector$Endpoint
 *  com.l7tech.identity.BadCredentialsException
 *  com.l7tech.identity.IssuedCertNotPresentedException
 *  com.l7tech.identity.MissingCredentialsException
 *  com.l7tech.identity.User
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.util.BuildInfo
 *  com.l7tech.util.SudoUtils
 *  com.l7tech.util.SyspropUtil
 *  com.l7tech.util.TextUtils
 *  jakarta.servlet.ServletConfig
 *  jakarta.servlet.ServletContext
 *  jakarta.servlet.ServletException
 *  jakarta.servlet.http.HttpServletRequest
 *  jakarta.servlet.http.HttpServletResponse
 *  org.springframework.web.context.WebApplicationContext
 *  org.springframework.web.context.support.WebApplicationContextUtils
 */
package com.l7tech.server;

import com.l7tech.common.http.GenericHttpClientFactory;
import com.l7tech.common.http.GenericHttpHeader;
import com.l7tech.common.http.GenericHttpRequestParams;
import com.l7tech.common.http.HttpHeader;
import com.l7tech.common.http.HttpMethod;
import com.l7tech.common.io.ProcUtils;
import com.l7tech.common.protocol.SecureSpanConstants;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.common.cluster.ClusterNodeInfo;
import com.l7tech.gateway.common.security.rbac.OperationType;
import com.l7tech.gateway.common.transport.SsgConnector;
import com.l7tech.identity.BadCredentialsException;
import com.l7tech.identity.IssuedCertNotPresentedException;
import com.l7tech.identity.MissingCredentialsException;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.server.AuthenticatableHttpServlet;
import com.l7tech.server.cluster.ClusterInfoManager;
import com.l7tech.server.identity.AuthenticationResult;
import com.l7tech.server.security.rbac.RoleManager;
import com.l7tech.server.transport.ListenerException;
import com.l7tech.util.BuildInfo;
import com.l7tech.util.SudoUtils;
import com.l7tech.util.SyspropUtil;
import com.l7tech.util.TextUtils;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.PasswordAuthentication;
import java.net.URL;
import java.util.Collection;
import java.util.EnumSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class PingServlet
extends AuthenticatableHttpServlet {
    private static final Logger _logger;
    private static final String MODE_PROP_NAME;
    private static final Mode DEFAULT_MODE;
    private static final String SYSTEM_INFO_SCRIPT_NAME;
    private static final String MAIN_REQUEST_URI;
    private static final String SYSTEM_INFO_REQUEST_URI;
    private ClusterInfoManager _clusterInfoManager;
    private RoleManager _roleManager;
    private GenericHttpClientFactory _httpClientFactory;
    private File _ssgApplianceLibexecDir;
    static final long serialVersionUID = -4160547507963615711L;
    private static final String[] b;

    @Override
    protected String getFeature() {
        return b[141];
    }

    @Override
    protected SsgConnector.Endpoint getRequiredEndpoint() {
        return SsgConnector.Endpoint.PING;
    }

    @Override
    protected boolean isCleartextAllowed() {
        return true;
    }

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        super.init(servletConfig);
        WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext((ServletContext)this.getServletContext());
        try {
            if (webApplicationContext == null) {
                throw new ServletException(b[90]);
            }
        }
        catch (ServletException servletException) {
            throw PingServlet.a((Exception)((Object)servletException));
        }
        String[] stringArray = b;
        this._clusterInfoManager = (ClusterInfoManager)webApplicationContext.getBean(stringArray[140]);
        this._roleManager = (RoleManager)webApplicationContext.getBean(stringArray[33]);
        this._httpClientFactory = (GenericHttpClientFactory)webApplicationContext.getBean(stringArray[95]);
        this._ssgApplianceLibexecDir = new File(this.config.getProperty(stringArray[78]) + File.separator + stringArray[79]);
    }

    /*
     * Loose catch block
     */
    public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        block19: {
            String string;
            block20: {
                Mode mode;
                block18: {
                    block17: {
                        String string2;
                        String[] stringArray;
                        block16: {
                            mode = DEFAULT_MODE;
                            stringArray = b;
                            string2 = this.config.getProperty(stringArray[15]);
                            if (string2 != null) break block16;
                            try {
                                block21: {
                                    if (!_logger.isLoggable(Level.FINE)) break block17;
                                    break block21;
                                    catch (IllegalArgumentException illegalArgumentException) {
                                        throw PingServlet.a(illegalArgumentException);
                                    }
                                }
                                _logger.fine(b[144] + String.valueOf((Object)DEFAULT_MODE) + b[94]);
                                break block17;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw PingServlet.a(illegalArgumentException);
                            }
                        }
                        try {
                            mode = Mode.valueOf(string2.trim());
                            try {
                                if (_logger.isLoggable(Level.FINE)) {
                                    _logger.fine(b[115] + String.valueOf((Object)mode));
                                }
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw PingServlet.a(illegalArgumentException);
                            }
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            stringArray = b;
                            _logger.warning(stringArray[162] + string2 + stringArray[88] + String.valueOf((Object)DEFAULT_MODE) + stringArray[94]);
                            mode = DEFAULT_MODE;
                        }
                    }
                    string = httpServletRequest.getRequestURI();
                    try {
                        if (!b[13].equals(string)) break block18;
                        this.doMainPage(httpServletRequest, httpServletResponse, mode);
                        break block19;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw PingServlet.a(illegalArgumentException);
                    }
                }
                try {
                    if (!b[4].equals(string)) break block20;
                    this.doSystemInfo(httpServletRequest, httpServletResponse, mode);
                    break block19;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw PingServlet.a(illegalArgumentException);
                }
            }
            try {
                if (_logger.isLoggable(Level.FINE)) {
                    _logger.fine(b[111] + string);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw PingServlet.a(illegalArgumentException);
            }
            this.respondError(httpServletResponse, 404, b[52]);
        }
    }

    /*
     * Exception decompiling
     */
    private void doMainPage(HttpServletRequest var1_1, HttpServletResponse var2_2, Mode var3_3) throws IOException {
        /*
         * 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 5[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 doSystemInfo(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Mode mode) throws IOException {
        block28: {
            String string;
            block25: {
                block26: {
                    String[] stringArray;
                    block27: {
                        block23: {
                            block24: {
                                block22: {
                                    block21: {
                                        try {
                                            try {
                                                if (mode != Mode.OFF && mode != Mode.MONITOR) break block21;
                                            }
                                            catch (IOException iOException) {
                                                throw PingServlet.a(iOException);
                                            }
                                            this.respondNone(httpServletRequest, b[124] + String.valueOf((Object)mode));
                                        }
                                        catch (IOException iOException) {
                                            throw PingServlet.a(iOException);
                                        }
                                    }
                                    try {
                                        try {
                                            if (!httpServletRequest.isSecure() || this.findCredentialsBasic(httpServletRequest) != null) break block22;
                                        }
                                        catch (IOException iOException) {
                                            throw PingServlet.a(iOException);
                                        }
                                        this.respondChallenge(httpServletResponse, b[168]);
                                        return;
                                    }
                                    catch (IOException iOException) {
                                        throw PingServlet.a(iOException);
                                    }
                                }
                                try {
                                    if (!this.isSystemInfoPermitted(httpServletRequest)) {
                                        this.respondNone(httpServletRequest, b[174]);
                                        return;
                                    }
                                }
                                catch (IOException iOException) {
                                    throw PingServlet.a(iOException);
                                }
                                stringArray = b;
                                string = httpServletRequest.getParameter(stringArray[83]);
                                try {
                                    try {
                                        if (string != null) break block23;
                                        if (!_logger.isLoggable(Level.FINE)) break block24;
                                    }
                                    catch (IOException iOException) {
                                        throw PingServlet.a(iOException);
                                    }
                                    _logger.fine(b[143]);
                                }
                                catch (IOException iOException) {
                                    throw PingServlet.a(iOException);
                                }
                            }
                            stringArray = b;
                            this.respondError(httpServletResponse, 400, stringArray[62]);
                            return;
                        }
                        String string2 = this._clusterInfoManager.getSelfNodeInf().getName();
                        try {
                            try {
                                try {
                                    if (!string.equals(string2)) break block25;
                                    if (!_logger.isLoggable(Level.FINE)) break block26;
                                }
                                catch (IOException iOException) {
                                    throw PingServlet.a(iOException);
                                }
                                if (httpServletRequest.getHeader(SecureSpanConstants.HEADER_ORIGINAL_HOST) != null) break block27;
                            }
                            catch (IOException iOException) {
                                throw PingServlet.a(iOException);
                            }
                            _logger.fine(b[2]);
                            break block26;
                        }
                        catch (IOException iOException) {
                            throw PingServlet.a(iOException);
                        }
                    }
                    stringArray = b;
                    _logger.fine(stringArray[126] + httpServletRequest.getRemoteHost() + stringArray[94]);
                }
                this.reallyDoSystemInfo(httpServletResponse, string);
                break block28;
            }
            _logger.fine(b[46]);
            this.routeSystemInfoRequest(httpServletRequest, httpServletResponse, string);
        }
    }

    private boolean isSystemInfoPermitted(HttpServletRequest httpServletRequest) {
        AuthenticationResult[] authenticationResultArray;
        try {
            if (!httpServletRequest.isSecure()) {
                return false;
            }
        }
        catch (BadCredentialsException badCredentialsException) {
            throw PingServlet.a((Exception)((Object)badCredentialsException));
        }
        try {
            authenticationResultArray = this.authenticateRequestBasic(httpServletRequest, true);
        }
        catch (BadCredentialsException badCredentialsException) {
            return false;
        }
        catch (MissingCredentialsException missingCredentialsException) {
            return false;
        }
        catch (IssuedCertNotPresentedException issuedCertNotPresentedException) {
            return false;
        }
        catch (LicenseException licenseException) {
            return false;
        }
        catch (ListenerException listenerException) {
            return false;
        }
        try {
            if (authenticationResultArray.length <= 0) {
                return false;
            }
        }
        catch (BadCredentialsException badCredentialsException) {
            throw PingServlet.a((Exception)((Object)badCredentialsException));
        }
        User user = authenticationResultArray[0].getUser();
        EnumSet<EntityType> enumSet = EnumSet.complementOf(EnumSet.of(EntityType.ANY));
        try {
            if (!this._roleManager.isPermittedForEntitiesOfTypes(user, OperationType.READ, enumSet)) {
                return false;
            }
        }
        catch (BadCredentialsException badCredentialsException) {
            throw PingServlet.a((Exception)((Object)badCredentialsException));
        }
        catch (FindException findException) {
            return false;
        }
        return true;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Unable to fully structure code
     */
    private void reallyDoSystemInfo(HttpServletResponse var1_1, String var2_2) throws IOException {
        var12_3 = PingServlet.b;
        var1_1.setContentType(var12_3[149]);
        var3_4 = var1_1.getWriter();
        try {
            var3_4.println(var12_3[120]);
            var3_4.println(var12_3[119]);
            var3_4.println(var12_3[49]);
            var3_4.println(var12_3[42]);
            var3_4.println(var12_3[80]);
            var3_4.println(var12_3[17]);
            var3_4.println(var12_3[37]);
            var3_4.println(var12_3[63]);
            var3_4.println(var12_3[55]);
            var3_4.println(var12_3[28]);
            var3_4.println(var12_3[118]);
            var3_4.println(var12_3[74]);
            var3_4.println(var12_3[71]);
            var3_4.println(var12_3[164]);
            var3_4.println(var12_3[101]);
            var3_4.println(var12_3[56]);
            var3_4.println(var12_3[34]);
            var3_4.println(var12_3[102]);
            var3_4.println(var12_3[134]);
            var3_4.println("}");
            var3_4.println(var12_3[154]);
            var3_4.println(var12_3[6]);
            var3_4.println(var12_3[5]);
            var3_4.println(var12_3[100]);
            var3_4.flush();
            var3_4.print(var12_3[108]);
            var3_4.print(var2_2);
            var3_4.println(var12_3[131]);
            var3_4.print(var12_3[64]);
            var3_4.println(var12_3[44]);
            var3_4.print(var12_3[3]);
            var3_4.print(SyspropUtil.getProperty((String)var12_3[40]));
            var3_4.println(var12_3[81]);
            var3_4.print(var12_3[156]);
            var3_4.print(SyspropUtil.getProperty((String)var12_3[109]));
            var3_4.println(var12_3[77]);
            var3_4.print(var12_3[110]);
            var3_4.print(SyspropUtil.getProperty((String)var12_3[104]));
            var3_4.println(var12_3[77]);
            var3_4.println(var12_3[103]);
            var3_4.print(var12_3[130]);
            var3_4.println(var12_3[65]);
            var3_4.print(var12_3[87]);
            var3_4.print(SyspropUtil.getProperty((String)var12_3[75]));
            var3_4.println(var12_3[77]);
            var3_4.print(var12_3[121]);
            var3_4.print(SyspropUtil.getProperty((String)var12_3[92]));
            var3_4.println(var12_3[77]);
            var3_4.print(var12_3[45]);
            var3_4.print(SyspropUtil.getProperty((String)var12_3[47]));
            var3_4.println(var12_3[77]);
            var3_4.println(var12_3[103]);
            var4_5 = Runtime.getRuntime();
            var3_4.println(var12_3[105]);
            var3_4.println(var12_3[65]);
            var3_4.print(var12_3[173]);
            var3_4.print(var4_5.totalMemory());
            var3_4.println(var12_3[129]);
            var3_4.print(var12_3[1]);
            var3_4.print(var4_5.freeMemory());
            var3_4.println(var12_3[35]);
            var3_4.print(var12_3[10]);
            var3_4.print(var4_5.maxMemory());
            var3_4.println(var12_3[35]);
            var3_4.println(var12_3[103]);
            var5_6 = new File(this._ssgApplianceLibexecDir, var12_3[68]);
            if (var5_6.exists()) {
                var6_7 = null;
                try {
                    var6_7 = SudoUtils.findSudo();
                }
                catch (IOException var7_8) {
                    // empty catch block
                }
                if (var6_7 == null) {
                    var7_9 = var5_6;
                    var8_10 = new String[]{};
                } else {
                    var7_9 = var6_7;
                    var8_10 = new String[]{var5_6.getAbsolutePath()};
                }
                try {
                    try {
                        if (PingServlet._logger.isLoggable(Level.FINE)) {
                            PingServlet._logger.fine(PingServlet.b[160] + var5_6.getAbsolutePath());
                        }
                    }
                    catch (IOException v0) {
                        throw PingServlet.a(v0);
                    }
                    var10_11 = ProcUtils.exec((File)var5_6.getParentFile(), (File)var7_9, (String[])var8_10);
                    if (var10_11.getExitStatus() == 0) {
                        var9_13 = new String(var10_11.getOutput());
                    } else {
                        var12_3 = PingServlet.b;
                        PingServlet._logger.warning(var12_3[24] + var10_11.getExitStatus() + var12_3[60] + TextUtils.tail((String)new String(var10_11.getOutput()), (int)10));
                        var9_13 = var12_3[11] + var10_11.getExitStatus() + var12_3[31];
                    }
                }
                catch (IOException var10_12) {
                    var12_3 = PingServlet.b;
                    PingServlet._logger.warning(var12_3[99] + var10_12.toString());
                    var9_13 = var12_3[29];
                }
                try {
                    if (var9_13 == null) ** GOTO lbl119
                    var3_4.println(PingServlet.b[106]);
                    var3_4.println(PingServlet.b[167]);
                    var3_4.println(var9_13.replace("<", PingServlet.b[146]));
                    var3_4.println(PingServlet.b[127]);
                }
                catch (IOException v1) {
                    throw PingServlet.a(v1);
                }
            } else {
                try {
                    if (PingServlet._logger.isLoggable(Level.FINE)) {
                        PingServlet._logger.fine(PingServlet.b[147]);
                    }
                }
                catch (IOException v2) {
                    throw PingServlet.a(v2);
                }
            }
lbl119:
            // 3 sources

            var12_3 = PingServlet.b;
            var3_4.println(var12_3[48]);
            var3_4.println(var12_3[155]);
            var3_4.println(var12_3[18]);
        }
        finally {
            var3_4.close();
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Unable to fully structure code
     * Could not resolve type clashes
     */
    private void routeSystemInfoRequest(HttpServletRequest var1_1, HttpServletResponse var2_2, String var3_3) throws IOException {
        try {
            var4_4 = null;
            var5_6 = this._clusterInfoManager.retrieveClusterStatus();
            for (ClusterNodeInfo var7_9 : var5_6) {
                if (!var7_9 /* !! */ .getName().equals(var3_3)) continue;
                var4_4 = var7_9 /* !! */ .getAddress();
                break;
            }
            if (var4_4 == null) {
                var20_10 = PingServlet.b;
                PingServlet._logger.warning(var20_10[41] + var3_3);
                this.respondError(var2_2, 400, var20_10[38]);
                return;
            }
            try {
                try {
                    if (PingServlet._logger.isLoggable(Level.FINE)) {
                        PingServlet._logger.fine(PingServlet.b[57] + var3_3 + PingServlet.b[136] + var4_4);
                    }
                }
                catch (IOException v0) {
                    throw PingServlet.a(v0);
                }
                var6_7 = var1_1.getRequestURI() + "?" + var1_1.getQueryString();
                var7_9 /* !! */  = new URL(var1_1.getScheme(), var4_4, var1_1.getLocalPort(), var6_7);
                var8_14 = new GenericHttpRequestParams((URL)var7_9 /* !! */ );
                var9_15 = this.findCredentialsBasic(var1_1);
                var8_14.setPasswordAuthentication(new PasswordAuthentication(var9_15.getName(), var9_15.getCredentials()));
                var8_14.setPreemptiveAuthentication(true);
                var8_14.addExtraHeader((HttpHeader)new GenericHttpHeader(SecureSpanConstants.HEADER_ORIGINAL_HOST, var1_1.getRemoteHost()));
                var8_14.addExtraHeader((HttpHeader)new GenericHttpHeader(SecureSpanConstants.HEADER_ORIGINAL_ADDR, var1_1.getRemoteAddr()));
                var10_16 = this._httpClientFactory.createHttpClient().createRequest(HttpMethod.GET, var8_14);
                var11_17 = var10_16.getResponse();
                for (HttpHeader var15_24 : var11_17.getHeaders().toArray()) {
                    try {
                        var2_2.addHeader(var15_24.getName(), var15_24.getFullValue());
                        if (!PingServlet._logger.isLoggable(Level.FINEST)) continue;
                        PingServlet._logger.finest(PingServlet.b[91] + var15_24.getName() + "=" + var15_24.getFullValue());
                    }
                    catch (IOException v1) {
                        throw PingServlet.a(v1);
                    }
                }
                var12_19 = 0;
                var13_21 = null;
                var14_23 = null;
                try {
                    var13_21 = new BufferedInputStream(var11_17.getInputStream());
                    var14_23 = new BufferedOutputStream((OutputStream)var2_2.getOutputStream());
                    while (true) lbl-1000:
                    // 2 sources

                    {
                        var15_25 = var13_21.read();
                        try {
                            if (var15_25 != -1) {
                                ++var12_19;
                                var14_23.write(var15_25);
                                continue;
                            }
                        }
                        catch (IOException v2) {
                            throw PingServlet.a(v2);
                        }
                        break;
                    }
                }
                catch (Throwable var16_26) {
                    try {
                        if (var13_21 != null) {
                            var13_21.close();
                        }
                    }
                    catch (IOException v3) {
                        throw PingServlet.a(v3);
                    }
                    try {
                        if (var14_23 != null) {
                            var14_23.close();
                        }
                    }
                    catch (IOException v4) {
                        throw PingServlet.a(v4);
                    }
                    throw var16_26;
                }
                {
                    ** while (true)
                }
                try {
                    if (var13_21 != null) {
                        var13_21.close();
                    }
                }
                catch (IOException v5) {
                    throw PingServlet.a(v5);
                }
                try {
                    if (var14_23 == null) ** GOTO lbl83
                    var14_23.close();
                }
                catch (IOException v6) {
                    throw PingServlet.a(v6);
                }
lbl83:
                // 2 sources

                if (PingServlet._logger.isLoggable(Level.FINE)) {
                    var17_27 = var12_19;
                    var18_28 = var4_4;
                    var19_29 = var3_3;
                    var20_11 = PingServlet.b;
                    PingServlet._logger.fine(var20_11[36] + var19_29 + var20_11[23] + var18_28 + var20_11[7] + var17_27 + var20_11[8]);
                }
            }
            catch (IOException var6_8) {
                var20_12 = PingServlet.b;
                PingServlet._logger.log(Level.WARNING, var20_12[86] + var3_3 + var20_12[23] + var4_4, var6_8);
                this.respondError(var2_2, 500, var20_12[21]);
            }
        }
        catch (FindException var4_5) {
            var20_13 = PingServlet.b;
            PingServlet._logger.log(Level.WARNING, var20_13[39], var4_5);
            this.respondError(var2_2, 500, var20_13[153]);
        }
    }

    private void respondNone(HttpServletRequest httpServletRequest, String string) {
        try {
            httpServletRequest.setAttribute(b[98], (Object)b[133]);
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine(b[170] + string + b[94]);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw PingServlet.a(illegalArgumentException);
        }
    }

    private void respondError(HttpServletResponse httpServletResponse, int n2, String string) throws IOException {
        httpServletResponse.setStatus(n2);
        httpServletResponse.setContentType(b[26]);
        PrintWriter printWriter = httpServletResponse.getWriter();
        printWriter.print(n2);
        printWriter.print(" ");
        printWriter.print(string);
        printWriter.close();
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void respondMinimal(HttpServletResponse httpServletResponse, String string) throws IOException {
        String[] stringArray = b;
        httpServletResponse.setContentType(stringArray[149]);
        try (PrintWriter printWriter = httpServletResponse.getWriter();){
            try {
                this._clusterInfoManager.retrieveClusterStatus();
            }
            catch (Exception exception) {
                try {
                    this.respondDatabaseFailureMinimal(httpServletResponse, string);
                    if (_logger.isLoggable(Level.FINE)) {
                        _logger.fine(b[54] + exception.getMessage());
                    }
                }
                catch (Exception exception2) {
                    throw PingServlet.a(exception2);
                }
                printWriter.close();
                return;
            }
            stringArray = b;
            printWriter.println(stringArray[20]);
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine(stringArray[22] + string + stringArray[94]);
            }
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void respondFull(HttpServletResponse httpServletResponse, String string) throws IOException {
        String[] stringArray = b;
        httpServletResponse.setContentType(stringArray[149]);
        try (PrintWriter printWriter = httpServletResponse.getWriter();){
            Collection<ClusterNodeInfo> collection;
            try {
                collection = this._clusterInfoManager.retrieveClusterStatus();
            }
            catch (Exception exception) {
                try {
                    this.respondDatabaseFailureFull(httpServletResponse, string);
                    if (_logger.isLoggable(Level.FINE)) {
                        _logger.fine(b[69] + exception.getMessage());
                    }
                }
                catch (Exception exception2) {
                    throw PingServlet.a(exception2);
                }
                printWriter.close();
                return;
            }
            stringArray = b;
            printWriter.println(stringArray[151]);
            printWriter.println(stringArray[163]);
            printWriter.println(stringArray[58]);
            printWriter.println(stringArray[27]);
            printWriter.println(stringArray[89]);
            printWriter.println(stringArray[97]);
            printWriter.print(stringArray[159]);
            printWriter.println(stringArray[152]);
            for (ClusterNodeInfo clusterNodeInfo : collection) {
                block18: {
                    String string2;
                    String string3;
                    block20: {
                        block19: {
                            long l2;
                            block17: {
                                l2 = System.currentTimeMillis() - clusterNodeInfo.getLastUpdateTimeStamp();
                                try {
                                    if (l2 < 3600000L) break block17;
                                    printWriter.print(b[76] + clusterNodeInfo.getName() + b[158]);
                                    break block18;
                                }
                                catch (Exception exception) {
                                    throw PingServlet.a(exception);
                                }
                            }
                            try {
                                if (l2 < 30000L) break block19;
                                string3 = b[169];
                                break block20;
                            }
                            catch (Exception exception) {
                                throw PingServlet.a(exception);
                            }
                        }
                        stringArray = b;
                        string3 = stringArray[113];
                    }
                    String string4 = string2 = string3;
                    String string5 = this.durationAsString(clusterNodeInfo.getUptime());
                    String string6 = clusterNodeInfo.getName();
                    stringArray = b;
                    printWriter.print(stringArray[70] + string6 + stringArray[14] + string5 + stringArray[93] + string4 + stringArray[82]);
                }
                stringArray = b;
                printWriter.print(stringArray[61] + clusterNodeInfo.getName() + stringArray[116]);
                printWriter.println(stringArray[66]);
            }
            try {
                printWriter.println(b[50]);
                printWriter.println(b[43]);
                printWriter.println(b[51] + BuildInfo.getLongBuildString() + b[25]);
                printWriter.println(b[114]);
                printWriter.println(b[30]);
                if (_logger.isLoggable(Level.FINE)) {
                    _logger.fine(b[166] + string + b[94]);
                }
            }
            catch (Exception exception) {
                throw PingServlet.a(exception);
            }
        }
    }

    private void respondChallenge(HttpServletResponse httpServletResponse, String string) throws IOException {
        try {
            this.doHttpBasicChallenge(httpServletResponse);
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine(b[0] + string + b[94]);
            }
        }
        catch (IOException iOException) {
            throw PingServlet.a(iOException);
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void respondDatabaseFailureMinimal(HttpServletResponse httpServletResponse, String string) throws IOException {
        String[] stringArray = b;
        httpServletResponse.setContentType(stringArray[149]);
        try (PrintWriter printWriter = httpServletResponse.getWriter();){
            printWriter.println(stringArray[67]);
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine(stringArray[135] + string + stringArray[94]);
            }
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    private void respondDatabaseFailureFull(HttpServletResponse httpServletResponse, String string) throws IOException {
        String[] stringArray = b;
        httpServletResponse.setContentType(stringArray[84]);
        try (PrintWriter printWriter = httpServletResponse.getWriter();){
            printWriter.println(stringArray[96] + InetAddress.getLocalHost().getCanonicalHostName() + stringArray[148]);
            if (_logger.isLoggable(Level.FINE)) {
                _logger.fine(stringArray[72] + string + stringArray[171]);
            }
        }
    }

    private String durationAsString(long l2) {
        String string;
        StringBuilder stringBuilder;
        StringBuilder stringBuilder2;
        long l3;
        block15: {
            String string2;
            StringBuilder stringBuilder3;
            block17: {
                String[] stringArray;
                block16: {
                    long l4;
                    long l5;
                    block12: {
                        String string3;
                        StringBuilder stringBuilder4;
                        block14: {
                            block13: {
                                long l6 = l2 / 1000L;
                                l3 = l6 / 60L;
                                l6 %= 60L;
                                l5 = l3 / 60L;
                                l3 %= 60L;
                                l4 = l5 / 24L;
                                l5 %= 24L;
                                stringBuilder2 = new StringBuilder();
                                try {
                                    try {
                                        if (l4 == 0L) break block12;
                                        stringBuilder4 = stringBuilder2.append(l4);
                                        if (Math.abs(l4) > 1L) break block13;
                                    }
                                    catch (IllegalArgumentException illegalArgumentException) {
                                        throw PingServlet.a(illegalArgumentException);
                                    }
                                    string3 = b[73];
                                    break block14;
                                }
                                catch (IllegalArgumentException illegalArgumentException) {
                                    throw PingServlet.a(illegalArgumentException);
                                }
                            }
                            stringArray = b;
                            string3 = stringArray[53];
                        }
                        stringBuilder4.append(string3);
                    }
                    try {
                        try {
                            try {
                                if (l4 == 0L && l5 == 0L) break block15;
                            }
                            catch (IllegalArgumentException illegalArgumentException) {
                                throw PingServlet.a(illegalArgumentException);
                            }
                            stringBuilder3 = stringBuilder2.append(l5);
                            if (Math.abs(l5) > 1L) break block16;
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw PingServlet.a(illegalArgumentException);
                        }
                        string2 = b[138];
                        break block17;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw PingServlet.a(illegalArgumentException);
                    }
                }
                stringArray = b;
                string2 = stringArray[107];
            }
            stringBuilder3.append(string2);
        }
        try {
            stringBuilder = stringBuilder2.append(l3);
            string = Math.abs(l3) <= 1L ? b[139] : b[85];
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw PingServlet.a(illegalArgumentException);
        }
        stringBuilder.append(string);
        return stringBuilder2.toString();
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[175];
                var3_1 = 0;
                var2_2 = "\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=G\b\u001f\u0013y*iO\u001e\n\u000fu+s\u0006\u001e\u0003\u001ap(xH\u001a\u000e[4#xiTCW\u000ftz{T\u0018\u000eG30u\u0018A\u001f\u001f<'qG\u000e\u0018F>6tA\u0015\u001fY\"7\u0017dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[u7=@\u0012\u0019[h,tU]\u0005\u0014x!=\u000e\n\u0002\u000ft+hR]\u0019\u0014i0tH\u001aBU\u0015xiTCW\u000ftzsG\u0010\u000eG30u\u0018A\u001f\u001f\"\u0014knU\u001aD\u000bu*z\t\u000e\u0012\bh!po\u0013\r\u0014\u0006x\u007fI\u0019\u0012E\u0007x2N\u0018\n\u001f\"\u0002~=\u000ed\u007f_\t\u000e\b<-s\u0006\u001f\u0004\u001fe\u000f4tH\u001a8\u001en2qC\t&\u0014x!&xiTCW\u000ftzpG\u0005\u0002\u0016i)!\t\t\u0003E 0y\u0006\u001e\u0007\u001ao7 \u0004\u000f\u0002\u001ct0?\u0018\u0013\u0017~T\u0014\u001b\u000f<!eO\t\u000e\u001f<3tR\u0015K*\u0014tH\u001aK\by6kO\u001e\u000e[u7=S\u0013\u0007\u0012\u007f!sU\u0018\u000f@<6xR\b\u0019\u0015u*z\u0006H[H2\tknU\u001aD\u000bu*z\tx2R\u0019UGh #\u000f4tH\u001a8\u001en2qC\t&\u0014x!\u0010h=G\b\u001f\u0013y*iO\u001e\n\u000fy  ,,/\u0006\u0006K\u0016}6zO\u0013F\u000fs4'\u0006L_\u000bd\u007f=K\u001c\u0019\u001cu*0D\u0012\u001f\u000fs)'\u0006E\u001b\u0003'd`\u0007x2N\t\u0006\u0017\"\u0011\u0011sT\u0018\b\u001cs*t\\\u0018\u000f[q+yCHxuR\u0010\u0007E ,xG\u0019UGh-iJ\u0018U<}0xQ\u001c\u0012G30tR\u0011\u000eE kuC\u001c\u000fE &rB\u0004UGtu#i6WTtu#\u001aR\t\u0014x=#\u001aR\u0003\u000fq(#\u000f\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u0004\u000eh!%\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=K\u0014\u0005\u0012q%q\u0006\u0014\u0005\u001dsd5\u0004d|R]\u001f\u0017dU\t\u000e\u0016<-s@\u0012K\b\u007f6tV\tK\u001ed-iC\u0019K\fu0u\u0006\u000bx2@\u0012\u0005\u000f\"x2OC\n0x^\tD\u000bp%tH\u000bxu\u0017C$0 ku\u0017C\u001djoO\u001a\u0003\u000f<?=R\u0018\u0013\u000f1%qO\u001a\u0005A<6tA\u0015\u001f@<92\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u001e\u0015<7~T\u0014\u001b\u000f2dNC\u0018K<}0xQ\u001c\u0012[p+z\u0006\u001b\u0004\t< xR\u001c\u0002\u0017oj\u0007x2N\t\u0006\u0017\"\u001ej=u\u0018\u000e[[%iC\n\n\u0002<(rA]\r\u0014ndyC\t\n\u0012p73\tknU\u001aD\u000bu*z\u000b6rJ\u0018&\u001ar%zC\u000f\u000ed=\u0006]\u0007\u001ez0'\u0006M\u001b\u0003'\u0010d\u007f_\t\u000e\b kiBCWTh6#!\u0016rS\t\u000e\u001f<7dU\t\u000e\u0016<-s@\u0012K\ty7mI\u0013\u0018\u001e<\"oI\u0010K,,.\u0006\u0006K\u0016}6zO\u0013F\u000fs4'\u0006LY\u000bd\u007f=K\u001c\u0019\u001cu*0D\u0012\u001f\u000fs)'\u0006I\u001b\u0003'd`\f\nr\u0006\u000e\u001e\u0018tdsI\u0019\u000eK\u0002|O\u0011\u000e\u001f<0r\u0006\u0012\t\u000f}-s\u0006\u001e\u0007\u000eo0xT]\u0005\u0014x!=O\u0013\r\u0014n)|R\u0014\u0004\u0015<3uC\u0013K\ts1iO\u0013\f[o=nR\u0018\u0006[u*{I]\u0019\u001em1xU\tE\u0007+n\b\u0013\n\u0016y/\u0016xE\u0018\u0002\ry =U\u0004\u0018\u000fy)=O\u0013\r\u0014<6xW\b\u000e\bhd{I\u000fK\u000er/sI\n\u0005[r+yCGK\u0017xnR\u0004\u0007\u001e<0dV\u0018VYh!eRR\b\bof#\u0007x2@\u0012\u0019\u0016\"\u0007xiG\u001f\u0007\u001e\"\u0018xiTCW\u000ftzkC\u000f\u0018\u0012s*!\t\t\u0003E 0y\u0018(\u0017dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[u7=@\u0012\u0019[}*rR\u0015\u000e\t<*rB\u0018E\u000f.|P\u001cE\rqjkC\u000f\u0018\u0012s*KxnE\u000f\u0002\u000bhzyI\u001e\u001e\u0016y*i\b\u001a\u000e\u000fY(xK\u0018\u0005\u000f^=TBUI\fs6vO\u0013\fY5jnR\u0004\u0007\u001e2 tU\r\u0007\u001aed \u0006_\u0005\u0014r!?\u001dAD\b\u007f6tV\tU\u0016xiO\t\u0007\u001e\"\u0003|R\u0018\u001c\u001aex2R\u0014\u001f\u0017yz\bx2R\u001c\t\u0017yz\u0018xuTRUGuz!@\u0012\u0005\u000f<7t\\\u0018VY1v?\u0018\u0013\u0011sM\u0013\u0004\frdoC\f\u001e\u001eo0=s/\"\u0006dyG\u0004\u0018[#\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u000e\u000fn-xP\u0018K\u0018p1nR\u0018\u0019[o0|R\b\u0018A<i0|D\u0011\u000e[h,1\u0006\t\u000f\u0000<&rT\u0019\u000e\t&d,V\u0005K\bs(tB]\t\u0017}'v\u001d]\u001b\u001ax tH\u001aQ[-4e\u0006I\u001b\u0003<um^]_\u000bd\u007f=R\u0018\u0013\u000f1%qO\u001a\u0005A<(x@\tP[j!oR\u0014\b\u001api|J\u0014\f\u0015&diI\rP[a\u0017d=\u0006]\u001b\u0014o-iO\u0012\u0005A<%\u007fU\u0012\u0007\u000eh!&\u001f\u0016rS\t\u0002\u0015{dn_\u000e\u001f\u001eqdtH\u001b\u0004[n!lS\u0018\u0018\u000f<0r\u0006\u0006x\u007fI\u0019\u0012E\u000bh=V\u000f\u0004\u000fs'rJ@\u001bj=j\u001c\u0018\u000f<u-\u0006\u0011\u0002\u0015y7=I\u001bK\u0014i0mS\tQq,xiBCW\u0012r4hR]\u001f\u0002l! \u0004\u000e\u001e\u0019q-i\u0004]\u0005\u001aq! \u0004\u0013\u0004\u001fyf=P\u001c\u0007\u000eyy?\u0011\ttU\u000e\u0002\u0015{dsI\u0019\u000e[r%pCR0|D\u0011\u000e[gd\u007fI\u000f\u000f\u001en~=\u0014\r\u0013[o+qO\u0019K\u0019p%~MFK\u0019s6yC\u000fF\bl%~O\u0013\fA<vm^FK\u0019s6yC\u000fF\u0018s(qG\r\u0018\u001e&d~I\u0011\u0007\u001al7x\u001d]\u0016\u0019xu\u0014C$\u000by6|R\u0014\u0005\u001c<\u0017dU\t\u000e\u0016 ku\u0014C\u0007xiG\u001f\u0007\u001e\"\u0005x2R\u000fUMxuR\u0010\u0007E ,xG\u0019UGh-iJ\u0018U<}0xQ\u001c\u0012G30tR\u0011\u000eE kuC\u001c\u000fE &rB\u0004UGtu#`<\"7I\u0016X\u001aR\u0003J\"x2D\u0012\u000f\u0002\"x2N\t\u0006\u0017\"\r7dU\t\u000e\u0016u*{IS\u0018\u0013#\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u000e\u000fn-xP\u0018K\u0018p1nR\u0018\u0019[o0|R\b\u0018A<\bxiTCW\u000fxz\u001cd=\u0006]\t\u001a\u007f/zT\u0012\u001e\u0015xi~I\u0011\u0004\t&dzT\u0018\u000e\u0015'.\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=`\u001c\u0002\u0017i6x\u0006\u001c\u0005\u001f<\"hJ\u0011K\u0012r\"r\u0006U\u0005dyG\u0004K\u0011d=\u0006]\b\u0014p+o\u001c]\u001c\u0013u0x\u001d\u000e.|P\u001cE\rqjkC\u0013\u000f\u0014n\bxiTCW\u000fxz\nx2R\u0019UG30o\u0018\f7nA<\u001b\u000bp-|H\u001e\u000e\u0007(tD\u0018\u0013\u001e\u007f-,,\u0006\u0006K\u0016}6zO\u0013F\u000fs4'\u0006LS\u000bd\u007f=K\u001c\u0019\u001cu*0D\u0012\u001f\u000fs)'\u0006LY\u000bd\u007f=[\nx2R\u0019UG30o\u0018\u0005x2R\u0019U\u0004*rB\u0018\t0x^\tD\u0013h)q\u0005dpO\u0013\u0018(\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u0004\u000eh!y\u0006\u000e\u0012\bh!p\u0006\u0014\u0005\u001dsdoC\f\u001e\u001eo0=R\u0012K\u0017xiTCW\u000ftzkC\u0013\u000f\u0014nx2R\u0015UGh #)m3\u0006.\u000e\u000fh-sA]\u001b\u0012r#=U\u0018\u0019\rp!i\u0006\u0010\u0004\u001fydiI]\u000f\u001ez%hJ\tKS1x{I\u000f\u0006[}'iO\u0012\u0005F>knU\u001aD\u000bu*z\t\u000e\u0012\bh!po\u0013\r\u0014>dpC\t\u0003\u0014xy?a8?Y\"6\u0007rH\u001b\u0002\u001ci6|R\u0014\u0004\u0015<!oT\u0012\u0019@<'rS\u0011\u000f[r+i\u0006\u001a\u000e\u000f<%mV\u0011\u0002\u0018}0tI\u0013K\u0018s*iC\u0005\u001f:\u0007rV\u0014\u000e\u001f<+kC\u000fK3H\u0010M\u0006\u0015\u000e\u001ax!o\u0006\u001b\u0019\u0014qdoI\b\u001f\u001exdn_\u000e\u001f\u001eqdtH\u001b\u0004[n!nV\u0012\u0005\by~=\f.|P\u001cE\rqjsG\u0010\u000e\tx2R\u0019UGh #\u0002m3\u001a-sR\u0018\u0019\u0015s xn\t\u001f\u000b_(tC\u0013\u001f=}'iI\u000f\u0012bxuR\u0010\u0007E ,xG\u0019UGh-iJ\u0018U<}0xQ\u001c\u0012G30tR\u0011\u000eE kuC\u001c\u000fE &rB\u0004UGtu#`<\"7I\u0016X\u001aR\u0003J\"xm\u0018>\n\u0015r+i\u0006\u001e\u0004\u0015r!~R]\u001f\u0014< |R\u001c\t\u001ao!=@\u000f\u0004\u0016<|xiG\u001f\u0007\u001e<&rT\u0019\u000e\t!f,\u0004]\b\u001ep(mG\u0019\u000f\u0012r# \u0004NI[\u007f!qJ\u000e\u001b\u001a\u007f-sA@IK>dnR\u0004\u0007\u001e!f\u007fI\u000f\u000f\u001en~zT\u001c\u0012[o+qO\u0019KIl<&\u0006\u001f\u0004\tx!o\u000b\u001e\u0004\u0017p%mU\u0018Q\u0018s(qG\r\u0018\u001e'diC\u0005\u001fV}(tA\u0013Q\u0017y\"i\u001d_U\t/tJ\u0011\u0006\u001er+j\"\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u001e\u0015<7dU\t\u000e\u0016<-s@\u0012K\b\u007f6tV\tQ[#xyO\u000bK\u0012xy?Q\u0012\u0019\u0010u*z\u0004C<\u0014n/tH\u001aKU2j!\t\u0019\u0002\r\"\u001bd=\u0006]\u001f\u001ed00B\u0018\b\u0014n%iO\u0012\u0005A<&qO\u0013\u0000@\rd=\u0006]\u001f\u0014l~=\u0016\r\u0013@\bx2R\u001c\t\u0017yz\n+n\b\u000b\u000e\to-rH\u0019xu\u0015C!-QdpC\u0010\u0004\tedhU\u001c\f\u001e ku\u0015C!xu\u0014C*\u001fx-iO\u0012\u0005\u001apdTH\u001b\u0004[47~T\u0014\u001b\u000f5x2NOU\u0007duI\b\u0019\b<\u0004xu\u0017C\u0007+n\b\u001c\u0019\u0018t\u0018xiTCW\u000ftzkC\u000f\u0018\u0012s*!\t\t\u0003E 0y\u0018^\u0016xU\r\u0004\u0015x-sA]\u001c\u0012h,=\u0012M_[z+o\u0006\b\u0005\u0010r+jH]\u0019\u001em1xU\tK.N\r=\u000e\u000e\u0003\u0014i(y\u0006\u0015\n\ryd\u007fC\u0018\u0005[~(rE\u0016\u000e\u001f<&d\u0006\n\u000e\u00192<pJ]\t\u000ehdjG\u000e\u0005\\hm'\u0006\u0014knU\u001aD\u000bu*z\t\u000e\u0012\bh!po\u0013\r\u0014\u0002\u000bV\u0007x2D\u0012\u000f\u0002\"\u0012\u0014tH\u001aK\by6kJ\u0018\u001f[q+yC@\bf2\u0018AD\u000fxz\u0007h=V\u0012\u0019\u000f!\ngjI\u000f\u0000\u0012r#=]\u0006xuC\u001c\u000fE\u0006xuR\u0010\u0007E\u0015xiTCW\u000ftzsG\u0010\u000eG30u\u0018A\u001f\u001f\"\u0005,iR\r\u0018\u0010h=G\b\u001f\u0013y*iO\u001e\n\u000fy  \u0005)rB\u0018V\r7dU\t\u000e\u0016u*{IS\u0018\u00135\u0017dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[u7=@\u0012\u0019[h,tU]\u0005\u0014x!=\u000e\u000f\u0004\u000eh!y\u0006\t\u0003\ts1zN]\u0006x2V\u000f\u000eE \u0002|O\u0011\u000e\u001f<0r\u0006\u001c\u001e\u000ft!sR\u0014\b\u001ah!=T\u0018\u001a\u000ey7i\u001c]\u0010d\u007f_\t\u000e\b kiBCWTh6#\u001dxu\u0014C!\u001aj%=p\u0014\u0019\u000fi%q\u00060\n\u0018t-sCAD\u0013.z\u0005x2NLU\u0011h=N\u001c\u00188n!yC\u0013\u001f\u0012}(n\u001b\t/tJ\u0011\u0006\u001er+j\u001dd=\u0006]\u001b\u001ax tH\u001aQ[/4e\u0006K\u001b\u0003<wm^]]\u000bd\u007f1\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=`\u001c\u0002\u0017i6x\u0006\u001c\u0005\u001f<)tH\u0014\u0006\u001apdtH\u001b\u0004[4\u0004d|R]\u0007h=V\u0012\u0019\u000f!\u0006duI\b\u0019[\u0004dpO\u0013\u0012'qS\u000e\u001f\u001en\rs@\u0012&\u001ar%zC\u000f\u00187xT\u000b\u0002\u0018y~PC\u000e\u0018\u001a{!MT\u0012\b\u001eo7rT\u000bh=V\u000f\u0004\u000fs'rJ@3\ttU\u000e\u0002\u0015{dsI\u0019\u000e[r%pC]\u001b\u001an%pC\t\u000e\t<-s\u0006\u000e\u0012\bh!p\u0006\u0014\u0005\u001dsdoC\f\u001e\u001eo03L\u0014oI\r\u000e\th==H\u0012\u001f[z+hH\u0019KSl-sA.\u000e\tj(xR0\u0004\u001fym3\u0006.\u000e\u000fh-sA]\u001b\u0012r#=U\u0018\u0019\rp!i\u0006\u0010\u0004\u001fydiI]\u000f\u001ez%hJ\tKS\n\u0011sJ\u0014\b\u001er7xB\u0004bqRFB\u0017vO\r\u001b\u0012r#=U\u0004\u0018\u000fy)=O\u0013\r\u0014<7~T\u0014\u001b\u000f<&xE\u001c\u001e\bydtR]\u0002\b<*rR]\r\u0014i*y\u001c]\u0018\u0002o0xK\u0014\u0005\u001dsjnN\u0013j!\t\rUG3&rB\u0004UG3,iK\u0011U\t0x^\tD\u0013h)q\u0015\u0007rH\u0013\u000e\u0018h+o\u0006\u0013\u0004\u000f<!sG\u001f\u0007\u001ex\u0006xuR\u0010\u0007E\u0005x2R\u000fU\u0010\u0007|H\u0013\u0004\u000f<\"tH\u0019K\u0015s x\bx2U\t\u0012\u0017yz\u0007x2D\u0012\u000f\u0002\"\u001dxiTCW\u000ftz|T\u001e\u0003\u0012h!~R\b\u0019\u001e kiNCW\u000fxz\u0005)rB\u0018VHx2R\u0019UGh #\u0019AD\u000fxz!R\u0019K\bh=qC@I\u0018s(rTG\u001c\u0013u0x\u001d]\t\u001a\u007f/zT\u0012\u001e\u0015x~oC\u0019PY\"x\u007f\u0018;*2Px2DCWTh #sxiTCW\u000ftzSI\u0019\u000eG30u\u0018A\u001f\u0013\"\u0011mR\u0014\u0006\u001e kiNCW\u000ftzNR\u001c\u001f\u000eox2R\u0015UGh,#u\u0004\u0018\u000fy)=o\u0013\r\u0014 &o\tCW\bq%qJCC:x)tH\u000e\u001f\t}0rTR$\u000by6|R\u0012\u0019[s*q_TWTo)|J\u0011UG30u\u0018\u001c\u0016hH\u0013\u0002\u0015{dn_\u000e\u001f\u001eqdtH\u001b\u0004[o'oO\r\u001fA<9\u0014tH\u001aK\by6kO\u001e\u000e[u7=H\u0012\u001f[y*|D\u0011\u000e\u001f<\"rT]\u001f\u0013u7=V\u0012\u0019\u000f'doC\t\u001e\tr-sA]^K/j(\rsP\u001c\u0007\u0012xdmT\u0012\u001b\u001en0d\u0006\u000b\n\u0017i!=\u000e\r\u0002\u0015{\u0017xT\u000b\u0007\u001eh\trB\u0018V#xuC\u001c\u000fE 0tR\u0011\u000eE[%iC\n\n\u0002 kiO\t\u0007\u001e\"x2N\u0018\n\u001f\"\u0016d=\u0006]\r\u0014r00Q\u0018\u0002\u001ct0'\u0006\u001f\u0004\u0017x\u007f\u0004,iR\r\"\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=@\b\u0007\u0017<-s@\u0012KS\u0005xmT\u0018U'7dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[k-iN\u0012\u001e\u000f<'oC\u0019\u000e\u0015h-|J\u000e\u0007\u0013|T\u0013\u0002\u0015{\u0019\u000ftJ\u0011\u000e\u001f<6xU\r\u0004\u0015o!=R\u0012K\u000bu*z\u0006U\u0002m3\u0011h=N\u001c\u00188n!yC\u0013\u001f\u0012}(n\u001b";
                var4_3 = "\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=G\b\u001f\u0013y*iO\u001e\n\u000fu+s\u0006\u001e\u0003\u001ap(xH\u001a\u000e[4#xiTCW\u000ftz{T\u0018\u000eG30u\u0018A\u001f\u001f<'qG\u000e\u0018F>6tA\u0015\u001fY\"7\u0017dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[u7=@\u0012\u0019[h,tU]\u0005\u0014x!=\u000e\n\u0002\u000ft+hR]\u0019\u0014i0tH\u001aBU\u0015xiTCW\u000ftzsG\u0010\u000eG30u\u0018A\u001f\u001f\"\u0014knU\u001aD\u000bu*z\t\u000e\u0012\bh!po\u0013\r\u0014\u0006x\u007fI\u0019\u0012E\u0007x2N\u0018\n\u001f\"\u0002~=\u000ed\u007f_\t\u000e\b<-s\u0006\u001f\u0004\u001fe\u000f4tH\u001a8\u001en2qC\t&\u0014x!&xiTCW\u000ftzpG\u0005\u0002\u0016i)!\t\t\u0003E 0y\u0006\u001e\u0007\u001ao7 \u0004\u000f\u0002\u001ct0?\u0018\u0013\u0017~T\u0014\u001b\u000f<!eO\t\u000e\u001f<3tR\u0015K*\u0014tH\u001aK\by6kO\u001e\u000e[u7=S\u0013\u0007\u0012\u007f!sU\u0018\u000f@<6xR\b\u0019\u0015u*z\u0006H[H2\tknU\u001aD\u000bu*z\tx2R\u0019UGh #\u000f4tH\u001a8\u001en2qC\t&\u0014x!\u0010h=G\b\u001f\u0013y*iO\u001e\n\u000fy  ,,/\u0006\u0006K\u0016}6zO\u0013F\u000fs4'\u0006L_\u000bd\u007f=K\u001c\u0019\u001cu*0D\u0012\u001f\u000fs)'\u0006E\u001b\u0003'd`\u0007x2N\t\u0006\u0017\"\u0011\u0011sT\u0018\b\u001cs*t\\\u0018\u000f[q+yCHxuR\u0010\u0007E ,xG\u0019UGh-iJ\u0018U<}0xQ\u001c\u0012G30tR\u0011\u000eE kuC\u001c\u000fE &rB\u0004UGtu#i6WTtu#\u001aR\t\u0014x=#\u001aR\u0003\u000fq(#\u000f\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u0004\u000eh!%\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=K\u0014\u0005\u0012q%q\u0006\u0014\u0005\u001dsd5\u0004d|R]\u001f\u0017dU\t\u000e\u0016<-s@\u0012K\b\u007f6tV\tK\u001ed-iC\u0019K\fu0u\u0006\u000bx2@\u0012\u0005\u000f\"x2OC\n0x^\tD\u000bp%tH\u000bxu\u0017C$0 ku\u0017C\u001djoO\u001a\u0003\u000f<?=R\u0018\u0013\u000f1%qO\u001a\u0005A<6tA\u0015\u001f@<92\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u001e\u0015<7~T\u0014\u001b\u000f2dNC\u0018K<}0xQ\u001c\u0012[p+z\u0006\u001b\u0004\t< xR\u001c\u0002\u0017oj\u0007x2N\t\u0006\u0017\"\u001ej=u\u0018\u000e[[%iC\n\n\u0002<(rA]\r\u0014ndyC\t\n\u0012p73\tknU\u001aD\u000bu*z\u000b6rJ\u0018&\u001ar%zC\u000f\u000ed=\u0006]\u0007\u001ez0'\u0006M\u001b\u0003'\u0010d\u007f_\t\u000e\b kiBCWTh6#!\u0016rS\t\u000e\u001f<7dU\t\u000e\u0016<-s@\u0012K\ty7mI\u0013\u0018\u001e<\"oI\u0010K,,.\u0006\u0006K\u0016}6zO\u0013F\u000fs4'\u0006LY\u000bd\u007f=K\u001c\u0019\u001cu*0D\u0012\u001f\u000fs)'\u0006I\u001b\u0003'd`\f\nr\u0006\u000e\u001e\u0018tdsI\u0019\u000eK\u0002|O\u0011\u000e\u001f<0r\u0006\u0012\t\u000f}-s\u0006\u001e\u0007\u000eo0xT]\u0005\u0014x!=O\u0013\r\u0014n)|R\u0014\u0004\u0015<3uC\u0013K\ts1iO\u0013\f[o=nR\u0018\u0006[u*{I]\u0019\u001em1xU\tE\u0007+n\b\u0013\n\u0016y/\u0016xE\u0018\u0002\ry =U\u0004\u0018\u000fy)=O\u0013\r\u0014<6xW\b\u000e\bhd{I\u000fK\u000er/sI\n\u0005[r+yCGK\u0017xnR\u0004\u0007\u001e<0dV\u0018VYh!eRR\b\bof#\u0007x2@\u0012\u0019\u0016\"\u0007xiG\u001f\u0007\u001e\"\u0018xiTCW\u000ftzkC\u000f\u0018\u0012s*!\t\t\u0003E 0y\u0018(\u0017dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[u7=@\u0012\u0019[}*rR\u0015\u000e\t<*rB\u0018E\u000f.|P\u001cE\rqjkC\u000f\u0018\u0012s*KxnE\u000f\u0002\u000bhzyI\u001e\u001e\u0016y*i\b\u001a\u000e\u000fY(xK\u0018\u0005\u000f^=TBUI\fs6vO\u0013\fY5jnR\u0004\u0007\u001e2 tU\r\u0007\u001aed \u0006_\u0005\u0014r!?\u001dAD\b\u007f6tV\tU\u0016xiO\t\u0007\u001e\"\u0003|R\u0018\u001c\u001aex2R\u0014\u001f\u0017yz\bx2R\u001c\t\u0017yz\u0018xuTRUGuz!@\u0012\u0005\u000f<7t\\\u0018VY1v?\u0018\u0013\u0011sM\u0013\u0004\frdoC\f\u001e\u001eo0=s/\"\u0006dyG\u0004\u0018[#\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u000e\u000fn-xP\u0018K\u0018p1nR\u0018\u0019[o0|R\b\u0018A<i0|D\u0011\u000e[h,1\u0006\t\u000f\u0000<&rT\u0019\u000e\t&d,V\u0005K\bs(tB]\t\u0017}'v\u001d]\u001b\u001ax tH\u001aQ[-4e\u0006I\u001b\u0003<um^]_\u000bd\u007f=R\u0018\u0013\u000f1%qO\u001a\u0005A<(x@\tP[j!oR\u0014\b\u001api|J\u0014\f\u0015&diI\rP[a\u0017d=\u0006]\u001b\u0014o-iO\u0012\u0005A<%\u007fU\u0012\u0007\u000eh!&\u001f\u0016rS\t\u0002\u0015{dn_\u000e\u001f\u001eqdtH\u001b\u0004[n!lS\u0018\u0018\u000f<0r\u0006\u0006x\u007fI\u0019\u0012E\u000bh=V\u000f\u0004\u000fs'rJ@\u001bj=j\u001c\u0018\u000f<u-\u0006\u0011\u0002\u0015y7=I\u001bK\u0014i0mS\tQq,xiBCW\u0012r4hR]\u001f\u0002l! \u0004\u000e\u001e\u0019q-i\u0004]\u0005\u001aq! \u0004\u0013\u0004\u001fyf=P\u001c\u0007\u000eyy?\u0011\ttU\u000e\u0002\u0015{dsI\u0019\u000e[r%pCR0|D\u0011\u000e[gd\u007fI\u000f\u000f\u001en~=\u0014\r\u0013[o+qO\u0019K\u0019p%~MFK\u0019s6yC\u000fF\bl%~O\u0013\fA<vm^FK\u0019s6yC\u000fF\u0018s(qG\r\u0018\u001e&d~I\u0011\u0007\u001al7x\u001d]\u0016\u0019xu\u0014C$\u000by6|R\u0014\u0005\u001c<\u0017dU\t\u000e\u0016 ku\u0014C\u0007xiG\u001f\u0007\u001e\"\u0005x2R\u000fUMxuR\u0010\u0007E ,xG\u0019UGh-iJ\u0018U<}0xQ\u001c\u0012G30tR\u0011\u000eE kuC\u001c\u000fE &rB\u0004UGtu#`<\"7I\u0016X\u001aR\u0003J\"x2D\u0012\u000f\u0002\"x2N\t\u0006\u0017\"\r7dU\t\u000e\u0016u*{IS\u0018\u0013#\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u000e\u000fn-xP\u0018K\u0018p1nR\u0018\u0019[o0|R\b\u0018A<\bxiTCW\u000fxz\u001cd=\u0006]\t\u001a\u007f/zT\u0012\u001e\u0015xi~I\u0011\u0004\t&dzT\u0018\u000e\u0015'.\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=`\u001c\u0002\u0017i6x\u0006\u001c\u0005\u001f<\"hJ\u0011K\u0012r\"r\u0006U\u0005dyG\u0004K\u0011d=\u0006]\b\u0014p+o\u001c]\u001c\u0013u0x\u001d\u000e.|P\u001cE\rqjkC\u0013\u000f\u0014n\bxiTCW\u000fxz\nx2R\u0019UG30o\u0018\f7nA<\u001b\u000bp-|H\u001e\u000e\u0007(tD\u0018\u0013\u001e\u007f-,,\u0006\u0006K\u0016}6zO\u0013F\u000fs4'\u0006LS\u000bd\u007f=K\u001c\u0019\u001cu*0D\u0012\u001f\u000fs)'\u0006LY\u000bd\u007f=[\nx2R\u0019UG30o\u0018\u0005x2R\u0019U\u0004*rB\u0018\t0x^\tD\u0013h)q\u0005dpO\u0013\u0018(\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u0004\u000eh!y\u0006\u000e\u0012\bh!p\u0006\u0014\u0005\u001dsdoC\f\u001e\u001eo0=R\u0012K\u0017xiTCW\u000ftzkC\u0013\u000f\u0014nx2R\u0015UGh #)m3\u0006.\u000e\u000fh-sA]\u001b\u0012r#=U\u0018\u0019\rp!i\u0006\u0010\u0004\u001fydiI]\u000f\u001ez%hJ\tKS1x{I\u000f\u0006[}'iO\u0012\u0005F>knU\u001aD\u000bu*z\t\u000e\u0012\bh!po\u0013\r\u0014>dpC\t\u0003\u0014xy?a8?Y\"6\u0007rH\u001b\u0002\u001ci6|R\u0014\u0004\u0015<!oT\u0012\u0019@<'rS\u0011\u000f[r+i\u0006\u001a\u000e\u000f<%mV\u0011\u0002\u0018}0tI\u0013K\u0018s*iC\u0005\u001f:\u0007rV\u0014\u000e\u001f<+kC\u000fK3H\u0010M\u0006\u0015\u000e\u001ax!o\u0006\u001b\u0019\u0014qdoI\b\u001f\u001exdn_\u000e\u001f\u001eqdtH\u001b\u0004[n!nV\u0012\u0005\by~=\f.|P\u001cE\rqjsG\u0010\u000e\tx2R\u0019UGh #\u0002m3\u001a-sR\u0018\u0019\u0015s xn\t\u001f\u000b_(tC\u0013\u001f=}'iI\u000f\u0012bxuR\u0010\u0007E ,xG\u0019UGh-iJ\u0018U<}0xQ\u001c\u0012G30tR\u0011\u000eE kuC\u001c\u000fE &rB\u0004UGtu#`<\"7I\u0016X\u001aR\u0003J\"xm\u0018>\n\u0015r+i\u0006\u001e\u0004\u0015r!~R]\u001f\u0014< |R\u001c\t\u001ao!=@\u000f\u0004\u0016<|xiG\u001f\u0007\u001e<&rT\u0019\u000e\t!f,\u0004]\b\u001ep(mG\u0019\u000f\u0012r# \u0004NI[\u007f!qJ\u000e\u001b\u001a\u007f-sA@IK>dnR\u0004\u0007\u001e!f\u007fI\u000f\u000f\u001en~zT\u001c\u0012[o+qO\u0019KIl<&\u0006\u001f\u0004\tx!o\u000b\u001e\u0004\u0017p%mU\u0018Q\u0018s(qG\r\u0018\u001e'diC\u0005\u001fV}(tA\u0013Q\u0017y\"i\u001d_U\t/tJ\u0011\u0006\u001er+j\"\u0002|O\u0011\u000e\u001f<0r\u0006\u000f\u001e\u0015<7dU\t\u000e\u0016<-s@\u0012K\b\u007f6tV\tQ[#xyO\u000bK\u0012xy?Q\u0012\u0019\u0010u*z\u0004C<\u0014n/tH\u001aKU2j!\t\u0019\u0002\r\"\u001bd=\u0006]\u001f\u001ed00B\u0018\b\u0014n%iO\u0012\u0005A<&qO\u0013\u0000@\rd=\u0006]\u001f\u0014l~=\u0016\r\u0013@\bx2R\u001c\t\u0017yz\n+n\b\u000b\u000e\to-rH\u0019xu\u0015C!-QdpC\u0010\u0004\tedhU\u001c\f\u001e ku\u0015C!xu\u0014C*\u001fx-iO\u0012\u0005\u001apdTH\u001b\u0004[47~T\u0014\u001b\u000f5x2NOU\u0007duI\b\u0019\b<\u0004xu\u0017C\u0007+n\b\u001c\u0019\u0018t\u0018xiTCW\u000ftzkC\u000f\u0018\u0012s*!\t\t\u0003E 0y\u0018^\u0016xU\r\u0004\u0015x-sA]\u001c\u0012h,=\u0012M_[z+o\u0006\b\u0005\u0010r+jH]\u0019\u001em1xU\tK.N\r=\u000e\u000e\u0003\u0014i(y\u0006\u0015\n\ryd\u007fC\u0018\u0005[~(rE\u0016\u000e\u001f<&d\u0006\n\u000e\u00192<pJ]\t\u000ehdjG\u000e\u0005\\hm'\u0006\u0014knU\u001aD\u000bu*z\t\u000e\u0012\bh!po\u0013\r\u0014\u0002\u000bV\u0007x2D\u0012\u000f\u0002\"\u0012\u0014tH\u001aK\by6kJ\u0018\u001f[q+yC@\bf2\u0018AD\u000fxz\u0007h=V\u0012\u0019\u000f!\ngjI\u000f\u0000\u0012r#=]\u0006xuC\u001c\u000fE\u0006xuR\u0010\u0007E\u0015xiTCW\u000ftzsG\u0010\u000eG30u\u0018A\u001f\u001f\"\u0005,iR\r\u0018\u0010h=G\b\u001f\u0013y*iO\u001e\n\u000fy  \u0005)rB\u0018V\r7dU\t\u000e\u0016u*{IS\u0018\u00135\u0017dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[u7=@\u0012\u0019[h,tU]\u0005\u0014x!=\u000e\u000f\u0004\u000eh!y\u0006\t\u0003\ts1zN]\u0006x2V\u000f\u000eE \u0002|O\u0011\u000e\u001f<0r\u0006\u001c\u001e\u000ft!sR\u0014\b\u001ah!=T\u0018\u001a\u000ey7i\u001c]\u0010d\u007f_\t\u000e\b kiBCWTh6#\u001dxu\u0014C!\u001aj%=p\u0014\u0019\u000fi%q\u00060\n\u0018t-sCAD\u0013.z\u0005x2NLU\u0011h=N\u001c\u00188n!yC\u0013\u001f\u0012}(n\u001b\t/tJ\u0011\u0006\u001er+j\u001dd=\u0006]\u001b\u001ax tH\u001aQ[/4e\u0006K\u001b\u0003<wm^]]\u000bd\u007f1\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=`\u001c\u0002\u0017i6x\u0006\u001c\u0005\u001f<)tH\u0014\u0006\u001apdtH\u001b\u0004[4\u0004d|R]\u0007h=V\u0012\u0019\u000f!\u0006duI\b\u0019[\u0004dpO\u0013\u0012'qS\u000e\u001f\u001en\rs@\u0012&\u001ar%zC\u000f\u00187xT\u000b\u0002\u0018y~PC\u000e\u0018\u001a{!MT\u0012\b\u001eo7rT\u000bh=V\u000f\u0004\u000fs'rJ@3\ttU\u000e\u0002\u0015{dsI\u0019\u000e[r%pC]\u001b\u001an%pC\t\u000e\t<-s\u0006\u000e\u0012\bh!p\u0006\u0014\u0005\u001dsdoC\f\u001e\u001eo03L\u0014oI\r\u000e\th==H\u0012\u001f[z+hH\u0019KSl-sA.\u000e\tj(xR0\u0004\u001fym3\u0006.\u000e\u000fh-sA]\u001b\u0012r#=U\u0018\u0019\rp!i\u0006\u0010\u0004\u001fydiI]\u000f\u001ez%hJ\tKS\n\u0011sJ\u0014\b\u001er7xB\u0004bqRFB\u0017vO\r\u001b\u0012r#=U\u0004\u0018\u000fy)=O\u0013\r\u0014<7~T\u0014\u001b\u000f<&xE\u001c\u001e\bydtR]\u0002\b<*rR]\r\u0014i*y\u001c]\u0018\u0002o0xK\u0014\u0005\u001dsjnN\u0013j!\t\rUG3&rB\u0004UG3,iK\u0011U\t0x^\tD\u0013h)q\u0015\u0007rH\u0013\u000e\u0018h+o\u0006\u0013\u0004\u000f<!sG\u001f\u0007\u001ex\u0006xuR\u0010\u0007E\u0005x2R\u000fU\u0010\u0007|H\u0013\u0004\u000f<\"tH\u0019K\u0015s x\bx2U\t\u0012\u0017yz\u0007x2D\u0012\u000f\u0002\"\u001dxiTCW\u000ftz|T\u001e\u0003\u0012h!~R\b\u0019\u001e kiNCW\u000fxz\u0005)rB\u0018VHx2R\u0019UGh #\u0019AD\u000fxz!R\u0019K\bh=qC@I\u0018s(rTG\u001c\u0013u0x\u001d]\t\u001a\u007f/zT\u0012\u001e\u0015x~oC\u0019PY\"x\u007f\u0018;*2Px2DCWTh #sxiTCW\u000ftzSI\u0019\u000eG30u\u0018A\u001f\u0013\"\u0011mR\u0014\u0006\u001e kiNCW\u000ftzNR\u001c\u001f\u000eox2R\u0015UGh,#u\u0004\u0018\u000fy)=o\u0013\r\u0014 &o\tCW\bq%qJCC:x)tH\u000e\u001f\t}0rTR$\u000by6|R\u0012\u0019[s*q_TWTo)|J\u0011UG30u\u0018\u001c\u0016hH\u0013\u0002\u0015{dn_\u000e\u001f\u001eqdtH\u001b\u0004[o'oO\r\u001fA<9\u0014tH\u001aK\by6kO\u001e\u000e[u7=H\u0012\u001f[y*|D\u0011\u000e\u001f<\"rT]\u001f\u0013u7=V\u0012\u0019\u000f'doC\t\u001e\tr-sA]^K/j(\rsP\u001c\u0007\u0012xdmT\u0012\u001b\u001en0d\u0006\u000b\n\u0017i!=\u000e\r\u0002\u0015{\u0017xT\u000b\u0007\u001eh\trB\u0018V#xuC\u001c\u000fE 0tR\u0011\u000eE[%iC\n\n\u0002 kiO\t\u0007\u001e\"x2N\u0018\n\u001f\"\u0016d=\u0006]\r\u0014r00Q\u0018\u0002\u001ct0'\u0006\u001f\u0004\u0017x\u007f\u0004,iR\r\"\u0016xU\r\u0004\u0015x!y\u0006\t\u0004[L-sA]\u001c\u0012h,=@\b\u0007\u0017<-s@\u0012KS\u0005xmT\u0018U'7dU\t\u000e\u0016<-s@\u0012K\ty5hC\u000e\u001f[k-iN\u0012\u001e\u000f<'oC\u0019\u000e\u0015h-|J\u000e\u0007\u0013|T\u0013\u0002\u0015{\u0019\u000ftJ\u0011\u000e\u001f<6xU\r\u0004\u0015o!=R\u0012K\u000bu*z\u0006U\u0002m3\u0011h=N\u001c\u00188n!yC\u0013\u001f\u0012}(n\u001b".length();
                var1_4 = 49;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = PingServlet.b(v0, PingServlet.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "Q@}j~&]S@` #>\tB@gj~&QMWc51!\bOFf3*&\u0017S!\u001eM| '?\u0015\u0004Zi;b P\u001cAj'6r[\u0002@/$' X\u0004@{1&";
                    var4_3 = "Q@}j~&]S@` #>\tB@gj~&QMWc51!\bOFf3*&\u0017S!\u001eM| '?\u0015\u0004Zi;b P\u001cAj'6r[\u0002@/$' X\u0004@{1&".length();
                    var1_4 = 36;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 33;
                        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++] = PingServlet.b(v0, PingServlet.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;
            }
        }
        PingServlet.b = var5;
        PingServlet.MODE_PROP_NAME = PingServlet.b[9];
        PingServlet.MAIN_REQUEST_URI = PingServlet.b[32];
        PingServlet.SYSTEM_INFO_SCRIPT_NAME = PingServlet.b[125];
        PingServlet.SYSTEM_INFO_REQUEST_URI = PingServlet.b[112];
        PingServlet._logger = Logger.getLogger(PingServlet.class.getName());
        PingServlet.DEFAULT_MODE = Mode.REQUIRE_CREDS;
    }

    private static Exception a(Exception exception) {
        return exception;
    }

    private static char[] b(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x14);
        }
        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 -> 76;
                    case 1 -> 21;
                    case 2 -> 46;
                    case 3 -> 117;
                    case 4 -> 99;
                    case 5 -> 115;
                    default -> 20;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    private static final class Mode
    extends Enum<Mode> {
        public static final /* enum */ Mode OFF;
        public static final /* enum */ Mode REQUIRE_CREDS;
        public static final /* enum */ Mode OPEN;
        public static final /* enum */ Mode MONITOR;
        private static final /* synthetic */ Mode[] $VALUES;

        public static Mode[] values() {
            return (Mode[])$VALUES.clone();
        }

        public static Mode valueOf(String string) {
            return Enum.valueOf(Mode.class, string);
        }

        private static /* synthetic */ Mode[] $values() {
            return new Mode[]{OFF, REQUIRE_CREDS, OPEN, MONITOR};
        }

        /*
         * Unable to fully structure code
         */
        static {
            block10: {
                block9: {
                    var0 = new String[4];
                    var4_1 = 0;
                    var3_2 = "OdB3=3\u0018BbA#02\u0004RqV(";
                    var5_3 = "OdB3=3\u0018BbA#02\u0004RqV(".length();
                    var2_4 = 13;
                    var1_5 = -1;
lbl7:
                    // 2 sources

                    while (true) {
                        v0 = 21;
                        v1 = ++var1_5;
                        v2 = var3_2.substring(v1, v1 + var2_4);
                        v3 = -1;
                        break block9;
                        break;
                    }
lbl13:
                    // 1 sources

                    while (true) {
                        var0[var4_1++] = Mode.a(v0, Mode.a(v2));
                        if ((var1_5 += var2_4) < var5_3) {
                            var2_4 = var3_2.charAt(var1_5);
                            ** continue;
                        }
                        var3_2 = "bWe\u0007`^m\u001f\u0010\u001e?";
                        var5_3 = "bWe\u0007`^m\u001f\u0010\u001e?".length();
                        var2_4 = 3;
                        var1_5 = -1;
lbl22:
                        // 2 sources

                        while (true) {
                            v0 = 37;
                            v4 = ++var1_5;
                            v2 = var3_2.substring(v4, v4 + var2_4);
                            v3 = 0;
                            break block9;
                            break;
                        }
                        break;
                    }
lbl28:
                    // 1 sources

                    while (true) {
                        var0[var4_1++] = Mode.a(v0, Mode.a(v2));
                        if ((var1_5 += var2_4) < var5_3) {
                            var2_4 = var3_2.charAt(var1_5);
                            ** continue;
                        }
                        break block10;
                        break;
                    }
                }
                switch (v3) {
                    default: {
                        ** continue;
                    }
                    ** case 0:
lbl39:
                    // 1 sources

                    ** continue;
                }
            }
            Mode.OFF = new Mode();
            Mode.REQUIRE_CREDS = new Mode();
            Mode.OPEN = new Mode();
            Mode.MONITOR = new Mode();
            Mode.$VALUES = Mode.$values();
        }

        private static char[] a(String string) {
            char[] cArray = string.toCharArray();
            if (cArray.length < 2) {
                cArray = cArray;
                cArray[0] = (char)(cArray[0] ^ 0x48);
            }
            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 -> 8;
                        case 1 -> 52;
                        case 2 -> 6;
                        case 3 -> 115;
                        case 4 -> 97;
                        case 5 -> 116;
                        default -> 72;
                    })));
                    ++n3;
                    n4 = n4;
                } while (n4 > n3);
            }
            return new String(cArray2).intern();
        }
    }
}

