/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.gateway.common.audit.LoggingAudit
 *  com.l7tech.gateway.common.security.password.SecurePasswordReferenceExpander
 *  com.l7tech.gateway.common.transport.jms.JmsConnection
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.util.ConfigFactory
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Functions$Unary
 *  com.l7tech.util.Pair
 *  com.l7tech.util.TextUtils
 *  javax.jms.Connection
 *  javax.jms.ConnectionFactory
 *  javax.jms.Destination
 *  javax.jms.InvalidClientIDException
 *  javax.jms.InvalidDestinationException
 *  javax.jms.JMSException
 *  javax.jms.JMSSecurityException
 *  javax.jms.Message
 *  javax.jms.MessageConsumer
 *  javax.jms.MessageProducer
 *  javax.jms.Queue
 *  javax.jms.QueueConnection
 *  javax.jms.QueueConnectionFactory
 *  javax.jms.QueueSession
 *  javax.jms.ResourceAllocationException
 *  javax.jms.Session
 *  javax.jms.Topic
 *  javax.jms.TopicConnection
 *  javax.jms.TopicConnectionFactory
 *  javax.jms.TopicSession
 */
package com.l7tech.server.transport.jms;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.LoggingAudit;
import com.l7tech.gateway.common.security.password.SecurePasswordReferenceExpander;
import com.l7tech.gateway.common.transport.jms.JmsConnection;
import com.l7tech.objectmodel.FindException;
import com.l7tech.server.policy.variable.GatewaySecurePasswordReferenceExpander;
import com.l7tech.server.policy.variable.ServerVariables;
import com.l7tech.server.transport.jms.ConnectionFactoryCustomizer;
import com.l7tech.server.transport.jms.JmsBag;
import com.l7tech.server.transport.jms.JmsConfigException;
import com.l7tech.server.transport.jms.JmsHeaderFormatException;
import com.l7tech.server.transport.jms.JmsMessageExpiredException;
import com.l7tech.server.transport.jms.JmsPropertyMapper;
import com.l7tech.server.transport.jms.JmsServiceLocator;
import com.l7tech.server.transport.jms.b;
import com.l7tech.server.transport.jms.c;
import com.l7tech.server.transport.jms.d;
import com.l7tech.server.transport.jms.e;
import com.l7tech.server.transport.jms2.JmsEndpointConfig;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import com.l7tech.util.Pair;
import com.l7tech.util.TextUtils;
import java.net.PasswordAuthentication;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.URI;
import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.InvalidClientIDException;
import javax.jms.InvalidDestinationException;
import javax.jms.JMSException;
import javax.jms.JMSSecurityException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.ResourceAllocationException;
import javax.jms.Session;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.naming.CommunicationException;
import javax.naming.InsufficientResourcesException;
import javax.naming.InvalidNameException;
import javax.naming.LimitExceededException;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import javax.naming.NamingSecurityException;
import javax.naming.NoInitialContextException;
import javax.naming.Reference;
import javax.naming.ServiceUnavailableException;

public class JmsUtil {
    private static final Logger a;
    public static final String DEFAULT_ENCODING;
    private static final int b = 25;
    public static final String JMS_DESTINATION;
    public static final String JMS_DELIVERY_MODE;
    public static final String JMS_EXPIRATION;
    public static final String JMS_PRIORITY;
    public static final String JMS_MESSAGE_ID;
    public static final String JMS_TIMESTAMP;
    public static final String JMS_CORRELATION_ID;
    public static final String JMS_REPLY_TO;
    public static final String JMS_TYPE;
    public static final String JMS_REDELIVERED;
    public static final String DELIVERY_MODE_PERSISTENT;
    public static final String DELIVERY_MODE_NON_PERSISTENT;
    public static final String CAST_ERROR_MESSAGE;
    public static final String CAST_NULL_ERROR_MESSAGE;
    public static final boolean detectTypes;
    public static final boolean useTopicTypes;
    public static final String JMS_PROP_SKIP_JNDI_PROVIDER_URL;
    public static final String PROP_JNDI_ALLOWED_SCHEMES;
    static final Set<String> c;
    private static ClassLoader d;
    private static final String[] e;

    public static void setContextClassLoader(ClassLoader classLoader) {
        try {
            if (d == null) {
                d = classLoader;
            }
        }
        catch (RuntimeException runtimeException) {
            throw JmsUtil.a(runtimeException);
        }
    }

    /*
     * Loose catch block
     */
    public static JmsBag connect(JmsConnection jmsConnection, PasswordAuthentication passwordAuthentication, JmsPropertyMapper jmsPropertyMapper, boolean bl2, boolean bl3, boolean bl4, int n2) throws JmsConfigException, JMSException, NamingException {
        String string;
        String string2;
        Object object;
        String string3;
        String string4;
        String string5;
        String string6;
        String string7;
        String string8;
        String string9;
        String[] stringArray;
        block84: {
            stringArray = e;
            a.fine(stringArray[28] + jmsConnection.toString());
            string9 = jmsConnection.getInitialContextFactoryClassname();
            string8 = jmsConnection.getJndiUrl();
            string7 = jmsConnection.getDestinationFactoryUrl();
            string6 = jmsConnection.getQueueFactoryUrl();
            string5 = jmsConnection.getTopicFactoryUrl();
            string4 = null;
            string3 = null;
            if (passwordAuthentication != null) {
                String string10;
                string4 = passwordAuthentication.getUserName();
                object = passwordAuthentication.getPassword();
                try {
                    string10 = object == null ? null : new String((char[])object);
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
                string3 = string10;
            }
            try {
                if (string4 != null && string3 != null) break block84;
            }
            catch (JMSException jMSException) {
                throw JmsUtil.a((Exception)((Object)jMSException));
            }
            string4 = jmsConnection.getUsername();
            string3 = JmsUtil.c(jmsConnection.getPassword());
        }
        try {
            string2 = e[61].equals(string4) ? "" : string4;
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        string4 = string2;
        try {
            string = e[71].equals(string3) ? "" : string3;
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        string3 = string;
        Connection connection = null;
        Session session = null;
        Properties properties = JmsUtil.a(string8, string9, jmsConnection.properties());
        try {
            if (jmsPropertyMapper != null) {
                jmsPropertyMapper.substitutePropertyValues(properties);
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        JmsServiceLocator jmsServiceLocator = null;
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        try {
            if (d != null) {
                Thread.currentThread().setContextClassLoader(d);
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        try {
            Object object2;
            Object object3;
            block90: {
                block92: {
                    Object object4;
                    block104: {
                        block91: {
                            block102: {
                                block96: {
                                    block89: {
                                        block100: {
                                            block88: {
                                                block85: {
                                                    block87: {
                                                        block97: {
                                                            block86: {
                                                                block94: {
                                                                    block93: {
                                                                        jmsServiceLocator = new JmsServiceLocator(properties);
                                                                        String string11 = string7;
                                                                        if (string11 == null) {
                                                                            string11 = string6;
                                                                        }
                                                                        if (string11 == null) {
                                                                            string11 = string5;
                                                                        }
                                                                        if (string11 == null) {
                                                                            stringArray = e;
                                                                            String string12 = stringArray[13];
                                                                            a.warning(string12);
                                                                            throw new JmsConfigException(string12);
                                                                        }
                                                                        stringArray = e;
                                                                        a.fine(stringArray[32] + string11);
                                                                        Object object5 = jmsServiceLocator.lookup(string11);
                                                                        if (object5 instanceof Reference) {
                                                                            String string13 = stringArray[33] + ((Reference)object5).getClassName() + stringArray[77];
                                                                            a.warning(string13);
                                                                            throw new JmsConfigException(string13);
                                                                        }
                                                                        try {
                                                                            object = JmsUtil.cast(object5, ConnectionFactory.class);
                                                                        }
                                                                        catch (JMSException jMSException) {
                                                                            stringArray = e;
                                                                            String string14 = stringArray[14] + object5.getClass().getName() + stringArray[69];
                                                                            a.warning(string14);
                                                                            throw new JmsConfigException(string14);
                                                                        }
                                                                        String string15 = (String)jmsServiceLocator.getEnvironment().get(JmsConnection.PROP_CUSTOMIZER);
                                                                        if (string15 != null) {
                                                                            try {
                                                                                object4 = Class.forName(string15);
                                                                                object3 = ((Class)object4).newInstance();
                                                                                if (!(object3 instanceof ConnectionFactoryCustomizer)) {
                                                                                    stringArray = e;
                                                                                    throw new JmsConfigException(stringArray[34]);
                                                                                }
                                                                                object2 = (ConnectionFactoryCustomizer)object3;
                                                                                object2.configureConnectionFactory(jmsConnection, (ConnectionFactory)object, jmsServiceLocator);
                                                                            }
                                                                            catch (ClassNotFoundException classNotFoundException) {
                                                                                stringArray = e;
                                                                                throw new JmsConfigException(stringArray[42] + ExceptionUtils.getMessage((Throwable)classNotFoundException), classNotFoundException);
                                                                            }
                                                                            catch (InstantiationException instantiationException) {
                                                                                stringArray = e;
                                                                                throw new JmsConfigException(stringArray[73] + ExceptionUtils.getMessage((Throwable)instantiationException), instantiationException);
                                                                            }
                                                                            catch (IllegalAccessException illegalAccessException) {
                                                                                stringArray = e;
                                                                                throw new JmsConfigException(stringArray[73] + ExceptionUtils.getMessage((Throwable)illegalAccessException), illegalAccessException);
                                                                            }
                                                                        }
                                                                        object4 = JmsUtil.a((ConnectionFactory)object);
                                                                        if (string4 == null) break block85;
                                                                        if (string3 == null) break block85;
                                                                        break block93;
                                                                        catch (JMSException jMSException) {
                                                                            throw JmsUtil.a((Exception)((Object)jMSException));
                                                                        }
                                                                    }
                                                                    if (!bl3) break block86;
                                                                    break block94;
                                                                    catch (JMSException jMSException) {
                                                                        throw JmsUtil.a((Exception)((Object)jMSException));
                                                                    }
                                                                }
                                                                try {
                                                                    block95: {
                                                                        if (!detectTypes) break block86;
                                                                        break block95;
                                                                        catch (JMSException jMSException) {
                                                                            throw JmsUtil.a((Exception)((Object)jMSException));
                                                                        }
                                                                    }
                                                                    if (object4 != TYPE.QUEUE) break block86;
                                                                }
                                                                catch (JMSException jMSException) {
                                                                    throw JmsUtil.a((Exception)((Object)jMSException));
                                                                }
                                                                connection = ((QueueConnectionFactory)object).createQueueConnection(string4, string3);
                                                                break block96;
                                                            }
                                                            if (bl3) break block87;
                                                            if (!detectTypes) break block87;
                                                            break block97;
                                                            catch (JMSException jMSException) {
                                                                throw JmsUtil.a((Exception)((Object)jMSException));
                                                            }
                                                        }
                                                        try {
                                                            block98: {
                                                                if (!useTopicTypes) break block87;
                                                                break block98;
                                                                catch (JMSException jMSException) {
                                                                    throw JmsUtil.a((Exception)((Object)jMSException));
                                                                }
                                                            }
                                                            if (object4 != TYPE.TOPIC) break block87;
                                                        }
                                                        catch (JMSException jMSException) {
                                                            throw JmsUtil.a((Exception)((Object)jMSException));
                                                        }
                                                        connection = ((TopicConnectionFactory)object).createTopicConnection(string4, string3);
                                                        break block96;
                                                    }
                                                    connection = object.createConnection(string4, string3);
                                                    break block96;
                                                }
                                                if (!bl3) break block88;
                                                try {
                                                    block99: {
                                                        if (!detectTypes) break block88;
                                                        break block99;
                                                        catch (JMSException jMSException) {
                                                            throw JmsUtil.a((Exception)((Object)jMSException));
                                                        }
                                                    }
                                                    if (object4 != TYPE.QUEUE) break block88;
                                                }
                                                catch (JMSException jMSException) {
                                                    throw JmsUtil.a((Exception)((Object)jMSException));
                                                }
                                                connection = ((QueueConnectionFactory)object).createQueueConnection();
                                                break block96;
                                            }
                                            if (bl3) break block89;
                                            if (!detectTypes) break block89;
                                            break block100;
                                            catch (JMSException jMSException) {
                                                throw JmsUtil.a((Exception)((Object)jMSException));
                                            }
                                        }
                                        try {
                                            block101: {
                                                if (!useTopicTypes) break block89;
                                                break block101;
                                                catch (JMSException jMSException) {
                                                    throw JmsUtil.a((Exception)((Object)jMSException));
                                                }
                                            }
                                            if (object4 != TYPE.TOPIC) break block89;
                                        }
                                        catch (JMSException jMSException) {
                                            throw JmsUtil.a((Exception)((Object)jMSException));
                                        }
                                        connection = ((TopicConnectionFactory)object).createTopicConnection();
                                        break block96;
                                    }
                                    connection = object.createConnection(string4, string3);
                                }
                                if (!bl2) break block90;
                                if (!bl3) break block91;
                                break block102;
                                catch (JMSException jMSException) {
                                    throw JmsUtil.a((Exception)((Object)jMSException));
                                }
                            }
                            try {
                                block103: {
                                    if (!detectTypes) break block91;
                                    break block103;
                                    catch (JMSException jMSException) {
                                        throw JmsUtil.a((Exception)((Object)jMSException));
                                    }
                                }
                                if (object4 != TYPE.QUEUE) break block91;
                            }
                            catch (JMSException jMSException) {
                                throw JmsUtil.a((Exception)((Object)jMSException));
                            }
                            session = ((QueueConnection)connection).createQueueSession(bl4, n2);
                            break block90;
                        }
                        if (bl3) break block92;
                        if (!detectTypes) break block92;
                        break block104;
                        catch (JMSException jMSException) {
                            throw JmsUtil.a((Exception)((Object)jMSException));
                        }
                    }
                    try {
                        block105: {
                            if (!useTopicTypes) break block92;
                            break block105;
                            catch (JMSException jMSException) {
                                throw JmsUtil.a((Exception)((Object)jMSException));
                            }
                        }
                        if (object4 != TYPE.TOPIC) break block92;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    session = ((TopicConnection)connection).createTopicSession(bl4, n2);
                    break block90;
                }
                session = connection.createSession(bl4, n2);
            }
            object3 = new JmsBag(jmsServiceLocator, (ConnectionFactory)object, connection, session, null);
            connection = null;
            session = null;
            jmsServiceLocator = null;
            stringArray = e;
            a.fine(stringArray[6] + jmsConnection.toString());
            object2 = object3;
            return object2;
        }
        catch (NoInitialContextException noInitialContextException) {
            stringArray = e;
            throw new JmsConfigException(stringArray[39] + ExceptionUtils.getMessage((Throwable)noInitialContextException), noInitialContextException);
        }
        catch (RuntimeException runtimeException) {
            a.log(Level.WARNING, e[66], ExceptionUtils.getDebugException((Throwable)runtimeException));
            throw (JmsConfigException)new JmsConfigException(runtimeException.toString()).initCause(runtimeException);
        }
        finally {
            Thread.currentThread().setContextClassLoader(classLoader);
            try {
                if (session != null) {
                    session.close();
                }
            }
            catch (Throwable throwable) {
                JmsUtil.a(throwable);
            }
            try {
                if (connection != null) {
                    connection.close();
                }
            }
            catch (Throwable throwable) {
                JmsUtil.a(throwable);
            }
            try {
                if (jmsServiceLocator != null) {
                    jmsServiceLocator.close();
                }
            }
            catch (Throwable throwable) {
                JmsUtil.a(throwable);
            }
        }
    }

    static Properties a(String string, String string2, Properties properties) throws JmsConfigException {
        String[] stringArray;
        Properties properties2;
        block8: {
            properties2 = new Properties();
            try {
                if (string == null || properties == null) break block8;
            }
            catch (JmsConfigException jmsConfigException) {
                throw JmsUtil.a(jmsConfigException);
            }
            stringArray = e;
            boolean bl2 = Boolean.parseBoolean(properties.getProperty(stringArray[2]));
            try {
                if (!bl2) {
                    properties2.setProperty(stringArray[0], string);
                }
            }
            catch (JmsConfigException jmsConfigException) {
                throw JmsUtil.a(jmsConfigException);
            }
        }
        try {
            properties2.setProperty(e[72], string2);
            properties2.putAll((Map<?, ?>)Objects.requireNonNull(properties));
            if (properties2.getProperty(e[55]) != null) {
                properties2.put(e[87], Objects.requireNonNull(JmsUtil.c(properties2.getProperty(e[87]))));
            }
        }
        catch (JmsConfigException jmsConfigException) {
            throw JmsUtil.a(jmsConfigException);
        }
        stringArray = e;
        JmsUtil.a(properties2.getProperty(stringArray[22]));
        properties2.put(stringArray[5], stringArray[7]);
        properties2.put(stringArray[90], stringArray[91]);
        properties2.put(stringArray[16], stringArray[91]);
        return properties2;
    }

    /*
     * Loose catch block
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    static void a(String string) throws JmsConfigException {
        String string2;
        block11: {
            if (string == null) return;
            try {
                if (!string.trim().isEmpty()) break block11;
                return;
                catch (IllegalArgumentException illegalArgumentException) {
                    throw JmsUtil.a(illegalArgumentException);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw JmsUtil.a(illegalArgumentException);
            }
        }
        String string3 = string.trim();
        try {
            string2 = URI.create(string3).getScheme();
        }
        catch (IllegalArgumentException illegalArgumentException) {
            String[] stringArray = e;
            JmsUtil.b(stringArray[51]);
            return;
        }
        try {
            if (string2 == null) {
                JmsUtil.b(e[10]);
                return;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw JmsUtil.a(illegalArgumentException);
        }
        String string4 = string2.toLowerCase(Locale.ROOT);
        try {
            if (JmsUtil.a().contains(string4)) return;
            JmsUtil.b(e[15] + string4 + e[83]);
            return;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw JmsUtil.a(illegalArgumentException);
        }
    }

    private static void b(String string) throws JmsConfigException {
        a.warning(string);
        throw new JmsConfigException(string);
    }

    static Set<String> a() {
        block4: {
            String string2 = ConfigFactory.getProperty((String)e[78], null);
            try {
                try {
                    if (string2 == null || string2.trim().isEmpty()) break block4;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
                return Arrays.stream(TextUtils.CSV_STRING_SPLIT_PATTERN.split(string2.trim())).filter(string -> {
                    boolean bl2;
                    try {
                        bl2 = !string.isEmpty();
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                    return bl2;
                }).map(string -> string.toLowerCase(Locale.ROOT)).collect(Collectors.toUnmodifiableSet());
            }
            catch (RuntimeException runtimeException) {
                throw JmsUtil.a(runtimeException);
            }
        }
        return c;
    }

    public static JmsBag connect(JmsEndpointConfig jmsEndpointConfig) throws JmsConfigException, JMSException, NamingException {
        try {
            return JmsUtil.connect(jmsEndpointConfig.getConnection(), jmsEndpointConfig.getEndpoint().getPasswordAuthentication((SecurePasswordReferenceExpander)new GatewaySecurePasswordReferenceExpander((Audit)new LoggingAudit(a))), jmsEndpointConfig.getPropertyMapper(), false, jmsEndpointConfig.isQueue(), false, 2);
        }
        catch (FindException findException) {
            throw new JmsConfigException(e[20] + ExceptionUtils.getMessage((Throwable)findException), findException);
        }
    }

    public static JmsBag connect(JmsEndpointConfig jmsEndpointConfig, boolean bl2, int n2) throws JmsConfigException, JMSException, NamingException {
        try {
            return JmsUtil.connect(jmsEndpointConfig.getConnection(), jmsEndpointConfig.getEndpoint().getPasswordAuthentication((SecurePasswordReferenceExpander)new GatewaySecurePasswordReferenceExpander((Audit)new LoggingAudit(a))), jmsEndpointConfig.getPropertyMapper(), true, jmsEndpointConfig.isQueue(), bl2, n2);
        }
        catch (FindException findException) {
            throw new JmsConfigException(e[30] + ExceptionUtils.getMessage((Throwable)findException), findException);
        }
    }

    private static void a(Throwable throwable) {
        a.log(Level.WARNING, e[38], throwable);
    }

    public static JmsBag connect(JmsConnection jmsConnection) throws JMSException, NamingException, JmsConfigException {
        return JmsUtil.connect(jmsConnection, null, null, true, true, false, 1);
    }

    public static MessageConsumer createMessageConsumer(Session session, Destination destination) throws JMSException {
        MessageConsumer messageConsumer;
        block8: {
            block7: {
                TYPE tYPE;
                block6: {
                    tYPE = JmsUtil.a(session, destination);
                    try {
                        if (!detectTypes || tYPE != TYPE.QUEUE) break block6;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    messageConsumer = ((QueueSession)session).createReceiver((Queue)destination);
                    break block8;
                }
                try {
                    try {
                        if (!detectTypes || !useTopicTypes) break block7;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    if (tYPE != TYPE.TOPIC) break block7;
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
                messageConsumer = ((TopicSession)session).createSubscriber((Topic)destination);
                break block8;
            }
            messageConsumer = session.createConsumer(destination);
        }
        return messageConsumer;
    }

    public static MessageConsumer createMessageConsumer(Session session, Destination destination, String string) throws JMSException {
        MessageConsumer messageConsumer;
        block8: {
            block7: {
                TYPE tYPE;
                block6: {
                    tYPE = JmsUtil.a(session, destination);
                    try {
                        if (!detectTypes || tYPE != TYPE.QUEUE) break block6;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    messageConsumer = ((QueueSession)session).createReceiver((Queue)destination, string);
                    break block8;
                }
                try {
                    try {
                        if (!detectTypes || !useTopicTypes) break block7;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    if (tYPE != TYPE.TOPIC) break block7;
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
                messageConsumer = ((TopicSession)session).createSubscriber((Topic)destination, string, false);
                break block8;
            }
            messageConsumer = session.createConsumer(destination, string);
        }
        return messageConsumer;
    }

    public static MessageProducer createMessageProducer(Session session, Destination destination) throws JMSException {
        MessageProducer messageProducer;
        block8: {
            block7: {
                TYPE tYPE;
                block6: {
                    tYPE = JmsUtil.a(session, destination);
                    try {
                        if (!detectTypes || tYPE != TYPE.QUEUE) break block6;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    messageProducer = ((QueueSession)session).createSender((Queue)destination);
                    break block8;
                }
                try {
                    try {
                        if (!detectTypes || !useTopicTypes) break block7;
                    }
                    catch (JMSException jMSException) {
                        throw JmsUtil.a((Exception)((Object)jMSException));
                    }
                    if (tYPE != TYPE.TOPIC) break block7;
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
                messageProducer = ((TopicSession)session).createPublisher((Topic)destination);
                break block8;
            }
            messageProducer = session.createProducer(destination);
        }
        return messageProducer;
    }

    private static TYPE a(Session session, Destination destination) {
        TYPE tYPE;
        block7: {
            block8: {
                block6: {
                    tYPE = TYPE.UNKNOWN;
                    try {
                        if (!(session instanceof QueueSession) || !(destination instanceof Queue)) break block6;
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                    tYPE = TYPE.QUEUE;
                }
                try {
                    try {
                        if (!(session instanceof TopicSession) || !(destination instanceof Topic)) break block7;
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                    if (tYPE != TYPE.UNKNOWN) break block8;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
                tYPE = TYPE.TOPIC;
                break block7;
            }
            tYPE = TYPE.UNKNOWN;
        }
        return tYPE;
    }

    private static TYPE a(ConnectionFactory connectionFactory) {
        TYPE tYPE;
        block3: {
            block4: {
                tYPE = TYPE.UNKNOWN;
                if (connectionFactory instanceof QueueConnectionFactory) {
                    tYPE = TYPE.QUEUE;
                }
                try {
                    if (!(connectionFactory instanceof TopicConnectionFactory)) break block3;
                    if (tYPE != TYPE.UNKNOWN) break block4;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
                tYPE = TYPE.TOPIC;
                break block3;
            }
            tYPE = TYPE.UNKNOWN;
        }
        return tYPE;
    }

    public static <T> T cast(Object object, Class<T> clazz) throws JMSException {
        block7: {
            try {
                try {
                    if (object != null && clazz != null) break block7;
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
                throw new JMSException(e[63]);
            }
            catch (JMSException jMSException) {
                throw JmsUtil.a((Exception)((Object)jMSException));
            }
        }
        try {
            if (clazz.isAssignableFrom(object.getClass())) {
                return (T)object;
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        throw new JMSException(e[45] + clazz.getName());
    }

    public static Throwable getCause(Throwable throwable) {
        Throwable throwable2 = null;
        if (throwable instanceof JMSException) {
            throwable2 = ((JMSException)throwable).getLinkedException();
        }
        if (throwable2 == null) {
            throwable2 = throwable.getCause();
        }
        return throwable2;
    }

    public static boolean isCausedByExpectedJMSException(Throwable throwable) {
        boolean bl2 = false;
        int n2 = 0;
        Throwable throwable2 = throwable;
        while (true) {
            block25: {
                block24: {
                    block23: {
                        try {
                            try {
                                try {
                                    try {
                                        try {
                                            try {
                                                try {
                                                    if (throwable2 == null || n2++ >= 25) break;
                                                }
                                                catch (RuntimeException runtimeException) {
                                                    throw JmsUtil.a(runtimeException);
                                                }
                                                if (throwable2 instanceof InvalidClientIDException) break block23;
                                            }
                                            catch (RuntimeException runtimeException) {
                                                throw JmsUtil.a(runtimeException);
                                            }
                                            if (throwable2 instanceof InvalidDestinationException) break block23;
                                        }
                                        catch (RuntimeException runtimeException) {
                                            throw JmsUtil.a(runtimeException);
                                        }
                                        if (throwable2 instanceof JMSSecurityException) break block23;
                                    }
                                    catch (RuntimeException runtimeException) {
                                        throw JmsUtil.a(runtimeException);
                                    }
                                    if (throwable2 instanceof ResourceAllocationException) break block23;
                                }
                                catch (RuntimeException runtimeException) {
                                    throw JmsUtil.a(runtimeException);
                                }
                                if (throwable2 instanceof JmsMessageExpiredException) break block23;
                            }
                            catch (RuntimeException runtimeException) {
                                throw JmsUtil.a(runtimeException);
                            }
                            if (!(throwable2 instanceof JmsHeaderFormatException)) break block24;
                        }
                        catch (RuntimeException runtimeException) {
                            throw JmsUtil.a(runtimeException);
                        }
                    }
                    bl2 = true;
                    break;
                }
                boolean bl3 = throwable2 instanceof JMSException;
                throwable2 = JmsUtil.getCause(throwable2);
                try {
                    try {
                        try {
                            try {
                                if (!bl3) continue;
                                if (throwable2 instanceof UnknownHostException) break block25;
                            }
                            catch (RuntimeException runtimeException) {
                                throw JmsUtil.a(runtimeException);
                            }
                            if (throwable2 instanceof SocketException) break block25;
                        }
                        catch (RuntimeException runtimeException) {
                            throw JmsUtil.a(runtimeException);
                        }
                        if (throwable2 instanceof SocketTimeoutException) break block25;
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                    if (!(throwable2 instanceof ClassCastException)) continue;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
            }
            bl2 = true;
        }
        return bl2;
    }

    public static boolean isCausedByExpectedNamingException(Throwable throwable) {
        boolean bl2 = false;
        int n2 = 0;
        Throwable throwable2 = throwable;
        while (true) {
            block20: {
                block19: {
                    try {
                        try {
                            try {
                                try {
                                    try {
                                        try {
                                            try {
                                                try {
                                                    try {
                                                        if (throwable2 == null || n2++ >= 25) break;
                                                    }
                                                    catch (RuntimeException runtimeException) {
                                                        throw JmsUtil.a(runtimeException);
                                                    }
                                                    if (throwable2 instanceof CommunicationException) break block19;
                                                }
                                                catch (RuntimeException runtimeException) {
                                                    throw JmsUtil.a(runtimeException);
                                                }
                                                if (throwable2 instanceof InsufficientResourcesException) break block19;
                                            }
                                            catch (RuntimeException runtimeException) {
                                                throw JmsUtil.a(runtimeException);
                                            }
                                            if (throwable2 instanceof InvalidNameException) break block19;
                                        }
                                        catch (RuntimeException runtimeException) {
                                            throw JmsUtil.a(runtimeException);
                                        }
                                        if (throwable2 instanceof LimitExceededException) break block19;
                                    }
                                    catch (RuntimeException runtimeException) {
                                        throw JmsUtil.a(runtimeException);
                                    }
                                    if (throwable2 instanceof NameNotFoundException) break block19;
                                }
                                catch (RuntimeException runtimeException) {
                                    throw JmsUtil.a(runtimeException);
                                }
                                if (throwable2 instanceof NamingSecurityException) break block19;
                            }
                            catch (RuntimeException runtimeException) {
                                throw JmsUtil.a(runtimeException);
                            }
                            if (throwable2 instanceof NoInitialContextException) break block19;
                        }
                        catch (RuntimeException runtimeException) {
                            throw JmsUtil.a(runtimeException);
                        }
                        if (!(throwable2 instanceof ServiceUnavailableException)) break block20;
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                }
                bl2 = true;
                break;
            }
            throwable2 = JmsUtil.getCause(throwable2);
        }
        return bl2;
    }

    public static String getJMSErrorMessage(JMSException jMSException) {
        StringBuilder stringBuilder;
        block13: {
            block15: {
                block14: {
                    block12: {
                        stringBuilder = new StringBuilder();
                        try {
                            if (!(jMSException instanceof InvalidClientIDException)) break block12;
                            stringBuilder.append(e[93]);
                            break block13;
                        }
                        catch (RuntimeException runtimeException) {
                            throw JmsUtil.a(runtimeException);
                        }
                    }
                    try {
                        if (!(jMSException instanceof InvalidDestinationException)) break block14;
                        stringBuilder.append(e[54]);
                        break block13;
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                }
                try {
                    if (!(jMSException instanceof JMSSecurityException)) break block15;
                    stringBuilder.append(e[9]);
                    break block13;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
            }
            try {
                if (jMSException instanceof ResourceAllocationException) {
                    stringBuilder.append(e[84]);
                }
            }
            catch (RuntimeException runtimeException) {
                throw JmsUtil.a(runtimeException);
            }
        }
        try {
            stringBuilder.append(ExceptionUtils.getMessage((Throwable)jMSException));
            if (jMSException.getErrorCode() != null) {
                stringBuilder.append(e[26]);
                stringBuilder.append(jMSException.getErrorCode());
            }
        }
        catch (RuntimeException runtimeException) {
            throw JmsUtil.a(runtimeException);
        }
        JmsUtil.a((Exception)((Object)jMSException), stringBuilder);
        return stringBuilder.toString();
    }

    public static String getJNDIErrorMessage(NamingException namingException) {
        StringBuilder stringBuilder;
        block24: {
            block30: {
                block29: {
                    block28: {
                        block27: {
                            block26: {
                                block25: {
                                    block23: {
                                        stringBuilder = new StringBuilder();
                                        try {
                                            if (!(namingException instanceof CommunicationException)) break block23;
                                            stringBuilder.append(e[47]);
                                            break block24;
                                        }
                                        catch (RuntimeException runtimeException) {
                                            throw JmsUtil.a(runtimeException);
                                        }
                                    }
                                    try {
                                        if (!(namingException instanceof InsufficientResourcesException)) break block25;
                                        stringBuilder.append(e[94]);
                                        break block24;
                                    }
                                    catch (RuntimeException runtimeException) {
                                        throw JmsUtil.a(runtimeException);
                                    }
                                }
                                try {
                                    if (!(namingException instanceof InvalidNameException)) break block26;
                                    stringBuilder.append(e[56]);
                                    break block24;
                                }
                                catch (RuntimeException runtimeException) {
                                    throw JmsUtil.a(runtimeException);
                                }
                            }
                            try {
                                if (!(namingException instanceof LimitExceededException)) break block27;
                                stringBuilder.append(e[98]);
                                break block24;
                            }
                            catch (RuntimeException runtimeException) {
                                throw JmsUtil.a(runtimeException);
                            }
                        }
                        try {
                            if (!(namingException instanceof NameNotFoundException)) break block28;
                            stringBuilder.append(e[96]);
                            break block24;
                        }
                        catch (RuntimeException runtimeException) {
                            throw JmsUtil.a(runtimeException);
                        }
                    }
                    try {
                        if (!(namingException instanceof NamingSecurityException)) break block29;
                        stringBuilder.append(e[43]);
                        break block24;
                    }
                    catch (RuntimeException runtimeException) {
                        throw JmsUtil.a(runtimeException);
                    }
                }
                try {
                    if (!(namingException instanceof NoInitialContextException)) break block30;
                    stringBuilder.append(e[62]);
                    break block24;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
            }
            try {
                if (namingException instanceof ServiceUnavailableException) {
                    stringBuilder.append(e[85]);
                }
            }
            catch (RuntimeException runtimeException) {
                throw JmsUtil.a(runtimeException);
            }
        }
        try {
            stringBuilder.append(ExceptionUtils.getMessage((Throwable)namingException));
            if (namingException.getResolvedName() != null) {
                stringBuilder.append(e[19]);
                stringBuilder.append(namingException.getResolvedName());
            }
        }
        catch (RuntimeException runtimeException) {
            throw JmsUtil.a(runtimeException);
        }
        try {
            if (namingException.getRemainingName() != null) {
                stringBuilder.append(e[70]);
                stringBuilder.append(namingException.getRemainingName());
            }
        }
        catch (RuntimeException runtimeException) {
            throw JmsUtil.a(runtimeException);
        }
        JmsUtil.a(namingException, stringBuilder);
        return stringBuilder.toString();
    }

    public static Map<String, String> getJmsHeaders(Message message) throws JMSException {
        HashMap<String, String> hashMap;
        block21: {
            int n2;
            block20: {
                hashMap = new HashMap<String, String>();
                try {
                    if (message.getJMSDestination() != null) {
                        hashMap.put(e[50], message.getJMSDestination().toString());
                    }
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
                n2 = message.getJMSDeliveryMode();
                try {
                    if (n2 != 1) break block20;
                    hashMap.put(e[58], e[41]);
                    break block21;
                }
                catch (JMSException jMSException) {
                    throw JmsUtil.a((Exception)((Object)jMSException));
                }
            }
            try {
                if (n2 == 2) {
                    hashMap.put(e[58], e[89]);
                }
            }
            catch (JMSException jMSException) {
                throw JmsUtil.a((Exception)((Object)jMSException));
            }
        }
        try {
            hashMap.put(e[59], String.valueOf(message.getJMSExpiration()));
            hashMap.put(e[48], String.valueOf(message.getJMSPriority()));
            if (message.getJMSMessageID() != null) {
                hashMap.put(e[82], message.getJMSMessageID());
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        try {
            hashMap.put(e[53], String.valueOf(message.getJMSTimestamp()));
            if (message.getJMSCorrelationID() != null) {
                hashMap.put(e[75], message.getJMSCorrelationID());
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        try {
            if (message.getJMSReplyTo() != null) {
                hashMap.put(e[67], message.getJMSReplyTo().toString());
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        try {
            if (message.getJMSType() != null) {
                hashMap.put(e[68], message.getJMSType());
            }
        }
        catch (JMSException jMSException) {
            throw JmsUtil.a((Exception)((Object)jMSException));
        }
        hashMap.put(e[37], String.valueOf(message.getJMSRedelivered()));
        return hashMap;
    }

    public static boolean isJmsHeader(String string) {
        boolean bl2;
        block22: {
            block21: {
                try {
                    block20: {
                        try {
                            try {
                                try {
                                    try {
                                        try {
                                            try {
                                                try {
                                                    try {
                                                        try {
                                                            if (string.equals(e[75]) || string.equals(e[58])) break block20;
                                                        }
                                                        catch (RuntimeException runtimeException) {
                                                            throw JmsUtil.a(runtimeException);
                                                        }
                                                        if (string.equals(e[50])) break block20;
                                                    }
                                                    catch (RuntimeException runtimeException) {
                                                        throw JmsUtil.a(runtimeException);
                                                    }
                                                    if (string.equals(e[59])) break block20;
                                                }
                                                catch (RuntimeException runtimeException) {
                                                    throw JmsUtil.a(runtimeException);
                                                }
                                                if (string.equals(e[82])) break block20;
                                            }
                                            catch (RuntimeException runtimeException) {
                                                throw JmsUtil.a(runtimeException);
                                            }
                                            if (string.equals(e[48])) break block20;
                                        }
                                        catch (RuntimeException runtimeException) {
                                            throw JmsUtil.a(runtimeException);
                                        }
                                        if (string.equals(e[37])) break block20;
                                    }
                                    catch (RuntimeException runtimeException) {
                                        throw JmsUtil.a(runtimeException);
                                    }
                                    if (string.equals(e[67])) break block20;
                                }
                                catch (RuntimeException runtimeException) {
                                    throw JmsUtil.a(runtimeException);
                                }
                                if (string.equals(e[53])) break block20;
                            }
                            catch (RuntimeException runtimeException) {
                                throw JmsUtil.a(runtimeException);
                            }
                            if (!string.equals(e[68])) break block21;
                        }
                        catch (RuntimeException runtimeException) {
                            throw JmsUtil.a(runtimeException);
                        }
                    }
                    bl2 = true;
                    break block22;
                }
                catch (RuntimeException runtimeException) {
                    throw JmsUtil.a(runtimeException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    public static boolean setJmsHeader(Message message, Pair<String, Object> pair) throws JmsHeaderFormatException {
        boolean bl2;
        block23: {
            bl2 = false;
            try {
                if (pair.getValue() == null) {
                    throw new JmsHeaderFormatException(e[97]);
                }
            }
            catch (Exception exception) {
                throw JmsUtil.a(exception);
            }
            try {
                String[] stringArray;
                block25: {
                    block24: {
                        block22: {
                            try {
                                if (!((String)pair.getKey()).equals(e[57])) break block22;
                                a.log(Level.WARNING, e[52]);
                                break block23;
                            }
                            catch (Exception exception) {
                                throw JmsUtil.a(exception);
                            }
                        }
                        stringArray = e;
                        if (((String)pair.getKey()).equals(stringArray[11])) {
                            message.setJMSDeliveryMode(JmsUtil.b(pair.getValue()).intValue());
                            bl2 = true;
                            break block23;
                        }
                        stringArray = e;
                        if (((String)pair.getKey()).equals(stringArray[21])) {
                            message.setJMSExpiration(JmsUtil.a(pair.getValue()).longValue());
                            bl2 = true;
                            break block23;
                        }
                        stringArray = e;
                        if (((String)pair.getKey()).equals(stringArray[23])) {
                            message.setJMSPriority(JmsUtil.b(pair.getValue()).intValue());
                            bl2 = true;
                            break block23;
                        }
                        try {
                            if (!((String)pair.getKey()).equals(e[4])) break block24;
                            a.log(Level.WARNING, e[36]);
                            break block23;
                        }
                        catch (Exception exception) {
                            throw JmsUtil.a(exception);
                        }
                    }
                    try {
                        if (!((String)pair.getKey()).equals(e[60])) break block25;
                        a.log(Level.WARNING, e[65]);
                        break block23;
                    }
                    catch (Exception exception) {
                        throw JmsUtil.a(exception);
                    }
                }
                stringArray = e;
                if (((String)pair.getKey()).equals(stringArray[27])) {
                    message.setJMSCorrelationID((String)pair.getValue());
                    bl2 = true;
                    break block23;
                }
                stringArray = e;
                if (((String)pair.getKey()).equals(stringArray[12])) {
                    message.setJMSReplyTo((Destination)pair.getValue());
                    bl2 = true;
                    break block23;
                }
                stringArray = e;
                if (((String)pair.getKey()).equals(stringArray[1])) {
                    message.setJMSType((String)pair.getValue());
                    bl2 = true;
                    break block23;
                }
                try {
                    if (((String)pair.getKey()).equals(e[17])) {
                        a.log(Level.WARNING, e[79]);
                    }
                }
                catch (Exception exception) {
                    throw JmsUtil.a(exception);
                }
            }
            catch (Exception exception) {
                JmsHeaderFormatException jmsHeaderFormatException;
                block27: {
                    block26: {
                        String[] stringArray = e;
                        jmsHeaderFormatException = new JmsHeaderFormatException(stringArray[92] + (String)pair.getKey());
                        try {
                            if (!(exception instanceof NumberFormatException)) break block26;
                            jmsHeaderFormatException.setLinkedException(new NumberFormatException(stringArray[81] + exception.getMessage()));
                            break block27;
                        }
                        catch (Exception exception2) {
                            throw JmsUtil.a(exception2);
                        }
                    }
                    jmsHeaderFormatException.setLinkedException(exception);
                }
                throw jmsHeaderFormatException;
            }
        }
        return bl2;
    }

    private static Long a(Object object) throws Exception {
        return JmsUtil.a(object, new b(), new c());
    }

    private static Integer b(Object object) throws Exception {
        return JmsUtil.a(object, new d(), new e());
    }

    private static String c(String string) throws JmsConfigException {
        try {
            String string2;
            try {
                string2 = string == null ? null : ServerVariables.expandSinglePasswordOnlyVariable((Audit)new LoggingAudit(a), string);
            }
            catch (FindException findException) {
                throw JmsUtil.a((Exception)((Object)findException));
            }
            return string2;
        }
        catch (FindException findException) {
            throw new JmsConfigException(e[88] + ExceptionUtils.getMessage((Throwable)findException), findException);
        }
    }

    private static void a(Exception exception, StringBuilder stringBuilder) {
        int n2 = 0;
        Throwable throwable = JmsUtil.getCause(exception);
        while (true) {
            try {
                if (throwable == null || n2++ >= 25) break;
            }
            catch (RuntimeException runtimeException) {
                throw JmsUtil.a(runtimeException);
            }
            stringBuilder.append(e[95]);
            stringBuilder.append(ExceptionUtils.getMessage((Throwable)throwable));
            throwable = JmsUtil.getCause(throwable);
        }
    }

    private static <V extends Number> V a(Object object, Functions.Unary<V, Object> unary, Functions.Unary<V, Object> unary2) throws Exception {
        Number number = (Number)unary.call(object);
        number = number != null ? (Number)((Number)object) : (Number)((Number)unary2.call(object));
        return (V)number;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[99];
                var3_1 = 0;
                var2_2 = "N>\u0016VJ\u0013 I6\u000ePJ\r3K)\tS\u0001\u000foQ-\f\u0007n\u00123c\u001d\r$)G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n,\u000b^\u00147/@60E\u000b\u000b(@:\u0012b\u0016\u0011\u0004H;\u0001G\fn\u00123z\u0001\u000e2E8\u0005~ )G0\r\u0019\u0017\b/\n5\u000eS\rS-@>\u0010\u0019\u000b\u001f+A<\u0014\u0019\u0010\u000f4W+5e(>.@:\u0002V\u0017\u0018\rg0\u000eY\u0001\u001e5A;@C\u000b]\u0005B>\fD\u0001 q1\u0001U\b\u0018aP0@T\u0005\u000e5\u00040\u0002]\u0001\u001e5\u0004+\u000f\u0017\u0010\u001c3C:\u0014\u0017\u0010w:\u0003B\u0016\u00145]\u007f\u0005E\u0016\u00123\u001f\u007f4n\u0011$~D\r3K)\tS\u0001\u000faq\r,\u0017\f\u001c2\u00041\u000f\u0017\u0017\u001e)A2\u0005\u0017\u0005\u0013%\u00046\u0013\u0017\n\u00125\u0004/\u0005E\t\u00145P:\u0004\u000fn\u00123s\u0001\u0011(R:\u0012N)\u0012%A\nn\u00123e\u0001\r-]\u000b\u000fLp7\u0005\u0017\u0017\r$G6\u0006^\u0001\u0019aG0\u000eY\u0001\u001e5M0\u000e\u0017\u0000\u0014%\u00041\u000fCD\u0014/G3\u0015S\u0001] P\u007f\fR\u0005\u000e5\u00040\u000eRD\u001e.J1\u0005T\u0010\u0014.J\u007f\u0006V\u0007\t.V&@b61Bp7\u0005\u0017'\u0012/J:\u0003C\r\u0012/b>\u0003C\u000b\u000f8\u00043\u000fX\u000f\b1\u0004-\u0005C\u0011\u000f/A;@V\n]4J,\u0015G\u0014\u00123P:\u0004\u0017\u000b\u001f+A<\u0014\u0017\u0010\u00041A\u007fG\u001an\u0011$~D\r3K)\tS\u0001\u000faq\r,\u0017\u0017\u001e)A2\u0005\u0017C.G0\r\u0019\u0017\b/\n5\u000eS\rS\"K,\u000eV\t\u0014/Cq\u000fU\u000e\u0018\"Pq\u0014E\u0011\u000e5q\r,t\u000b\u0019$F>\u0013R\u000en\u00123e\u0001\u0019$H6\u0016R\u0016\u0018%(G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n5\u000eS\r<-H0\u0017R\u0000.\"L:\rR\u0017\u0011\b\u007f\u0012R\u0017\u0012-R:\u0004\u0017\n\u001c,Ae@*q1\u0001U\b\u0018aP0@E\u0001\t3M:\u0016RD7\fw\u007f\u0005Y\u0000\r.M1\u0014\u0017\u0014\u001c2W(\u000fE\u0000Ga\rn\u00123r\u001c\r(V>\u0014^\u000b\u0013\u0018N>\u0016VJ\u0013 I6\u000ePJ\r3K)\tS\u0001\u000foQ-\f\u000bn\u00123g\u0016\u0014.V6\u0014N\fP6\u0002]\t\u000e/E2\tY\u0003.G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u0010\u000f J,\u0010X\u0016\toN2\u0013\u0019\u0000\u00185A<\u0014}\t\u000e\u0015]/\u0005D\u000e\b\u007f\u0005E\u0016\u00123\u0004<\u000fS\u0001Ga\u0010n\u00123t\u000b\u000f3A3\u0001C\r\u0012/m\u001b\u000eg0\u000eY\u0001\u001e5M1\u0007\u0017\u0010\u0012a\u0002Pl*q1\u0001U\b\u0018aP0@E\u0001\t3M:\u0016RD7\fw\u007f\u0005Y\u0000\r.M1\u0014\u0017\u0014\u001c2W(\u000fE\u0000Ga\nT:\u0012D\r\u000e5A1\u0014\u000bh0\u000f\\\r\u0013&\u0004*\u0010\u0017?p7\u0005\u0017'\u0012/J:\u0003C\r\u0012/b>\u0003C\u000b\u000f8\u00043\u000fX\u000f\b1\u0004-\u0005C\u0011\u000f/A;@VD\u000f$B:\u0012R\n\u001e$\u0004+\u000f\u0017\u0010\u0015$\u0004<\fV\u0017\u000eK\\g0\u0015[\u0000]/K+@T\u000b\u0013'M8\u0015E\u0001]\"K1\u000eR\u0007\t(K1@Q\u0005\u001e5K-\u0019\u001bD\u001e4W+\u000fZ\r\u0007$V\u007f\u0004X\u0001\u000eaJ0\u0014\u0017\r\u00101H:\rR\n\taP7\u0005\u0017\u0007\u00123V:\u0003CD\u0014/P:\u0012Q\u0005\u001e$\n)G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n,\u000b^\u00147/@60E\u000b\u000b(@:\u0012b\u0016\u0011(n\u00123\u0017,\u0018 @:\u0012\rD7\fw\u0012\u0005D\u0017\u001c&A\u0016$\u0017\r\u000eaJ0\u0014\u0017\u0017\u00185P>\u0002[\u0001\u000en\u00123e\u0001\u0019$H6\u0016R\u0016\u0018%\u0018a'\u0003R\u0014\t(K1@S\u0011\u000f(J8@T\b\u0018 J*\u0010<a-\u0012X\u0016]\"K1\u000eR\u0007\t(J8@C\u000b]\u000bi\fL\u0017\u0007\u00124H;@Y\u000b\taG-\u0005V\u0010\u0018aM1\tC\r\u001c-\u0004<\u000fY\u0010\u00189P\u007fZ\u0017-G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u0010\u000f J,\u0010X\u0016\toN2\u0013\u0019\u0011\u000e$p0\u0010^\u0007)8T:\u0013\rJ0\u000eG\u0001\u000f2M,\u0014R\n\t)g0\u0015[\u0000]/K+@T\u000b\u0013'M8\u0015E\u0001]\"K1\u000eR\u0007\t(K1@Q\u0005\u001e5K-\u0019\u0017^]\u0010w:\u0003B\u0016\u00145]\u007f\u0005E\u0016\u00123\u001f\u007f\u0005q\u000b&\u001a\\ q1\u0001U\b\u0018aP0@T\u0005\u000e5\u00040\u0002]\u0001\u001e5\u0004+\u000f\u0017\u0010\u001c3C:\u0014\u0017\u0004M6\u000fG\u0015g0\rZ\u0011\u0013(G>\u0014^\u000b\u0013aA-\u0012X\u0016Fa\u000bn\u00123g\u0016\u0014.V6\u0014N\u0005H;\u0001G\u0017\u000en\u00123s\u0001\u000e5M1\u0001C\r\u0012/=n\u0011$~D\r3K)\tS\u0001\u000faq\r,\u0017\f\u001c2\u0004>@Z\u0005\u0011'K-\rR\u0000]2G7\u0005Z\u0001] J;@^\u0017]/K+@G\u0001\u000f,M+\u0014R\u0000*n\u00123\u0017,\u0018 @:\u0012\rD7\fw\u001b\u0005D\u0010\u0014/E+\tX\n](W\u007f\u000eX\u0010]2A+\u0014V\u0006\u0011$\fn\u00123c\r\u0010$W+\u0001Z\u0014\u0015m1\u0016V\b\u0014%\u0004;\u0005D\u0010\u0014/E+\tX\nFa N>\u0016VJ\u0013 I6\u000ePJ\u000e$G*\u0012^\u0010\u0004oG-\u0005S\u0001\u00135M>\fD\u000em1\u0016V\b\u0014%\u00041\u0001Z\u0001Fa\u000en\u00123s\u0001\u000e5M1\u0001C\r\u0012/\u000fn\u00123s\u0001\u0011(R:\u0012N)\u0012%A\rn\u00123r\u001c\r(V>\u0014^\u000b\u0013\fn\u00123c\r\u0010$W+\u0001Z\u0014\u0002\u0006}\u0014j0@^\n\u00145M>\f\u0017\u0007\u0012/P:\u0018C_]<q1\u0001U\b\u0018aP0@T\u0005\u000e5\u0004=\u0005T\u0005\b2A\u007f\u000fY\u0001].B\u007f\u000fU\u000e\u0018\"P\u007f\u0001Y\u0000]5E-\u0007R\u0010>-E,\u0013\u0017\r\u000eaJ*\f[\u0003Pl\u0013(n\u00123\u0017,\u0018 @:\u0012\rD7\fw\u000b\tZ\u0001\u000e5E2\u0010\u0017\r\u000eaJ0\u0014\u0017\u0017\u00185P>\u0002[\u0001Cg>\u0015P\f\tav*\u000eC\r\u0010$a'\u0003R\u0014\t(K1@@\f\u0014-A\u007f\u0001C\u0010\u0018,T+\tY\u0003]5K\u007f\u0003X\n\u0013$G+@C\u000b]\u000bi\f@G\u0016\u00127M;\u0005E\nn\u00123e\u0001\r-]\u000b\u000f\u0007n\u00123c\u001d\r$\u0002\u0003q\u0012\b\u007f\u0012R\t\u001c(J6\u000ePD\u0013 I:Z\u0017\u0002\u0006}\u001bN>\u0016VJ\u0013 I6\u000ePJ\u001b G+\u000fE\u001dS(J6\u0014^\u0005\u0011)g0\u0015[\u0000]/K+@T\u000b\u0013'M8\u0015E\u0001]\"K1\u000eR\u0007\t(K1@Q\u0005\u001e5K-\u0019\u0017^]\rJ0\u000eG\u0001\u000f2M,\u0014R\n\t\u0010n\u00123t\u000b\u000f3A3\u0001C\r\u0012/m\u001b\u000bS2\nZ\u0017\u0013 I6\u000ePt\b\u007f@@\f\u0014\"L\u007f\u0003V\n\u0013.P\u007f\u0002RD\u0011.E;\u0005SD\u0012/\u0004+\bRD: P:\u0017V\u001dSKi0\u0013CD\u0011(O:\fND\t)A\u007f'V\u0010\u00186E&@_\u0005\u000eaJ0\u0014\u0017\u001d\u00185\u0004=\u0005R\n]\"K1\u0006^\u0003\b3A;@Q\u000b\u000faP7\tDD7\fw\u007f\u0010E\u000b\u000b(@:\u0012\u0019(G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n5\u000eS\r<-H0\u0017R\u0000.\"L:\rR\u0017*n\u00123\u0017,\u0018 @:\u0012\rD7\fw\r\u0005S\u0001\u0011(R:\u0012R\u0000](W\u007f\u000eX\u0010]2A+\u0014V\u0006\u0011$\u0004B6\fR\u000em1\u0016V\b\u0014%\u0004\u001a\u000eC\u0016\u0004a\fn\u00123z\u0001\u000e2E8\u0005~ \u0012\u0003\u007f\tDD\u0013.P\u007f\u0010R\u0016\u0010(P+\u0005S\u001bv:\u0013X\u0011\u000f\"A\u007f\u0001[\b\u0012\"E+\tX\n]$V-\u000fE_]\u0015w:\u0012A\r\u001e$\u0004*\u000eV\u0012\u001c(H>\u0002[\u0001Fa<q1\u0001U\b\u0018aP0@T\u0005\u000e5\u0004=\u0005T\u0005\b2A\u007f\u000fY\u0001].B\u007f\u000fU\u000e\u0018\"P\u007f\u0001Y\u0000]5E-\u0007R\u0010>-E,\u0013\u0017\r\u000eaJ*\f[ N>\u0016VJ\u0013 I6\u000ePJ\u000e$G*\u0012^\u0010\u0004oG-\u0005S\u0001\u00135M>\fD!q1\u0001U\b\u0018aP0@E\u0001\t3M:\u0016RD7\fw\u007f\u0010V\u0017\u000e6K-\u0004\rD\nT:\u0012D\r\u000e5A1\u0014(G0\r\u0019\u0017\b/\n5\u000eS\rS3I6NX\u0006\u0017$G+NC\u0016\b2P\n2{'\u0012%A=\u0001D\u0001\u0005B>\fD\u0001\u0019a-\u0012X\u0016]2A+\u0014^\n\u001aan\u00123\u0017,\u0018 @:\u0012\u0017\u001bm1\u0016V\b\u0014%\u0004<\f^\u0001\u00135\u00046\u0004R\n\t(B6\u0005E_]\u0018m1\u0013B\u0002\u001b(G6\u0005Y\u0010]3A,\u000fB\u0016\u001e$Wd@\f\b\u007f\u0003V\u0011\u000e$@\u007f\u0002ND\u0010j>\rRD\u0013.P\u007f\u0006X\u0011\u0013%\u001f\u007f";
                var4_3 = "N>\u0016VJ\u0013 I6\u000ePJ\r3K)\tS\u0001\u000foQ-\f\u0007n\u00123c\u001d\r$)G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n,\u000b^\u00147/@60E\u000b\u000b(@:\u0012b\u0016\u0011\u0004H;\u0001G\fn\u00123z\u0001\u000e2E8\u0005~ )G0\r\u0019\u0017\b/\n5\u000eS\rS-@>\u0010\u0019\u000b\u001f+A<\u0014\u0019\u0010\u000f4W+5e(>.@:\u0002V\u0017\u0018\rg0\u000eY\u0001\u001e5A;@C\u000b]\u0005B>\fD\u0001 q1\u0001U\b\u0018aP0@T\u0005\u000e5\u00040\u0002]\u0001\u001e5\u0004+\u000f\u0017\u0010\u001c3C:\u0014\u0017\u0010w:\u0003B\u0016\u00145]\u007f\u0005E\u0016\u00123\u001f\u007f4n\u0011$~D\r3K)\tS\u0001\u000faq\r,\u0017\f\u001c2\u00041\u000f\u0017\u0017\u001e)A2\u0005\u0017\u0005\u0013%\u00046\u0013\u0017\n\u00125\u0004/\u0005E\t\u00145P:\u0004\u000fn\u00123s\u0001\u0011(R:\u0012N)\u0012%A\nn\u00123e\u0001\r-]\u000b\u000fLp7\u0005\u0017\u0017\r$G6\u0006^\u0001\u0019aG0\u000eY\u0001\u001e5M0\u000e\u0017\u0000\u0014%\u00041\u000fCD\u0014/G3\u0015S\u0001] P\u007f\fR\u0005\u000e5\u00040\u000eRD\u001e.J1\u0005T\u0010\u0014.J\u007f\u0006V\u0007\t.V&@b61Bp7\u0005\u0017'\u0012/J:\u0003C\r\u0012/b>\u0003C\u000b\u000f8\u00043\u000fX\u000f\b1\u0004-\u0005C\u0011\u000f/A;@V\n]4J,\u0015G\u0014\u00123P:\u0004\u0017\u000b\u001f+A<\u0014\u0017\u0010\u00041A\u007fG\u001an\u0011$~D\r3K)\tS\u0001\u000faq\r,\u0017\u0017\u001e)A2\u0005\u0017C.G0\r\u0019\u0017\b/\n5\u000eS\rS\"K,\u000eV\t\u0014/Cq\u000fU\u000e\u0018\"Pq\u0014E\u0011\u000e5q\r,t\u000b\u0019$F>\u0013R\u000en\u00123e\u0001\u0019$H6\u0016R\u0016\u0018%(G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n5\u000eS\r<-H0\u0017R\u0000.\"L:\rR\u0017\u0011\b\u007f\u0012R\u0017\u0012-R:\u0004\u0017\n\u001c,Ae@*q1\u0001U\b\u0018aP0@E\u0001\t3M:\u0016RD7\fw\u007f\u0005Y\u0000\r.M1\u0014\u0017\u0014\u001c2W(\u000fE\u0000Ga\rn\u00123r\u001c\r(V>\u0014^\u000b\u0013\u0018N>\u0016VJ\u0013 I6\u000ePJ\r3K)\tS\u0001\u000foQ-\f\u000bn\u00123g\u0016\u0014.V6\u0014N\fP6\u0002]\t\u000e/E2\tY\u0003.G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u0010\u000f J,\u0010X\u0016\toN2\u0013\u0019\u0000\u00185A<\u0014}\t\u000e\u0015]/\u0005D\u000e\b\u007f\u0005E\u0016\u00123\u0004<\u000fS\u0001Ga\u0010n\u00123t\u000b\u000f3A3\u0001C\r\u0012/m\u001b\u000eg0\u000eY\u0001\u001e5M1\u0007\u0017\u0010\u0012a\u0002Pl*q1\u0001U\b\u0018aP0@E\u0001\t3M:\u0016RD7\fw\u007f\u0005Y\u0000\r.M1\u0014\u0017\u0014\u001c2W(\u000fE\u0000Ga\nT:\u0012D\r\u000e5A1\u0014\u000bh0\u000f\\\r\u0013&\u0004*\u0010\u0017?p7\u0005\u0017'\u0012/J:\u0003C\r\u0012/b>\u0003C\u000b\u000f8\u00043\u000fX\u000f\b1\u0004-\u0005C\u0011\u000f/A;@VD\u000f$B:\u0012R\n\u001e$\u0004+\u000f\u0017\u0010\u0015$\u0004<\fV\u0017\u000eK\\g0\u0015[\u0000]/K+@T\u000b\u0013'M8\u0015E\u0001]\"K1\u000eR\u0007\t(K1@Q\u0005\u001e5K-\u0019\u001bD\u001e4W+\u000fZ\r\u0007$V\u007f\u0004X\u0001\u000eaJ0\u0014\u0017\r\u00101H:\rR\n\taP7\u0005\u0017\u0007\u00123V:\u0003CD\u0014/P:\u0012Q\u0005\u001e$\n)G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n,\u000b^\u00147/@60E\u000b\u000b(@:\u0012b\u0016\u0011(n\u00123\u0017,\u0018 @:\u0012\rD7\fw\u0012\u0005D\u0017\u001c&A\u0016$\u0017\r\u000eaJ0\u0014\u0017\u0017\u00185P>\u0002[\u0001\u000en\u00123e\u0001\u0019$H6\u0016R\u0016\u0018%\u0018a'\u0003R\u0014\t(K1@S\u0011\u000f(J8@T\b\u0018 J*\u0010<a-\u0012X\u0016]\"K1\u000eR\u0007\t(J8@C\u000b]\u000bi\fL\u0017\u0007\u00124H;@Y\u000b\taG-\u0005V\u0010\u0018aM1\tC\r\u001c-\u0004<\u000fY\u0010\u00189P\u007fZ\u0017-G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u0010\u000f J,\u0010X\u0016\toN2\u0013\u0019\u0011\u000e$p0\u0010^\u0007)8T:\u0013\rJ0\u000eG\u0001\u000f2M,\u0014R\n\t)g0\u0015[\u0000]/K+@T\u000b\u0013'M8\u0015E\u0001]\"K1\u000eR\u0007\t(K1@Q\u0005\u001e5K-\u0019\u0017^]\u0010w:\u0003B\u0016\u00145]\u007f\u0005E\u0016\u00123\u001f\u007f\u0005q\u000b&\u001a\\ q1\u0001U\b\u0018aP0@T\u0005\u000e5\u00040\u0002]\u0001\u001e5\u0004+\u000f\u0017\u0010\u001c3C:\u0014\u0017\u0004M6\u000fG\u0015g0\rZ\u0011\u0013(G>\u0014^\u000b\u0013aA-\u0012X\u0016Fa\u000bn\u00123g\u0016\u0014.V6\u0014N\u0005H;\u0001G\u0017\u000en\u00123s\u0001\u000e5M1\u0001C\r\u0012/=n\u0011$~D\r3K)\tS\u0001\u000faq\r,\u0017\f\u001c2\u0004>@Z\u0005\u0011'K-\rR\u0000]2G7\u0005Z\u0001] J;@^\u0017]/K+@G\u0001\u000f,M+\u0014R\u0000*n\u00123\u0017,\u0018 @:\u0012\rD7\fw\u001b\u0005D\u0010\u0014/E+\tX\n](W\u007f\u000eX\u0010]2A+\u0014V\u0006\u0011$\fn\u00123c\r\u0010$W+\u0001Z\u0014\u0015m1\u0016V\b\u0014%\u0004;\u0005D\u0010\u0014/E+\tX\nFa N>\u0016VJ\u0013 I6\u000ePJ\u000e$G*\u0012^\u0010\u0004oG-\u0005S\u0001\u00135M>\fD\u000em1\u0016V\b\u0014%\u00041\u0001Z\u0001Fa\u000en\u00123s\u0001\u000e5M1\u0001C\r\u0012/\u000fn\u00123s\u0001\u0011(R:\u0012N)\u0012%A\rn\u00123r\u001c\r(V>\u0014^\u000b\u0013\fn\u00123c\r\u0010$W+\u0001Z\u0014\u0002\u0006}\u0014j0@^\n\u00145M>\f\u0017\u0007\u0012/P:\u0018C_]<q1\u0001U\b\u0018aP0@T\u0005\u000e5\u0004=\u0005T\u0005\b2A\u007f\u000fY\u0001].B\u007f\u000fU\u000e\u0018\"P\u007f\u0001Y\u0000]5E-\u0007R\u0010>-E,\u0013\u0017\r\u000eaJ*\f[\u0003Pl\u0013(n\u00123\u0017,\u0018 @:\u0012\rD7\fw\u000b\tZ\u0001\u000e5E2\u0010\u0017\r\u000eaJ0\u0014\u0017\u0017\u00185P>\u0002[\u0001Cg>\u0015P\f\tav*\u000eC\r\u0010$a'\u0003R\u0014\t(K1@@\f\u0014-A\u007f\u0001C\u0010\u0018,T+\tY\u0003]5K\u007f\u0003X\n\u0013$G+@C\u000b]\u000bi\f@G\u0016\u00127M;\u0005E\nn\u00123e\u0001\r-]\u000b\u000f\u0007n\u00123c\u001d\r$\u0002\u0003q\u0012\b\u007f\u0012R\t\u001c(J6\u000ePD\u0013 I:Z\u0017\u0002\u0006}\u001bN>\u0016VJ\u0013 I6\u000ePJ\u001b G+\u000fE\u001dS(J6\u0014^\u0005\u0011)g0\u0015[\u0000]/K+@T\u000b\u0013'M8\u0015E\u0001]\"K1\u000eR\u0007\t(K1@Q\u0005\u001e5K-\u0019\u0017^]\rJ0\u000eG\u0001\u000f2M,\u0014R\n\t\u0010n\u00123t\u000b\u000f3A3\u0001C\r\u0012/m\u001b\u000bS2\nZ\u0017\u0013 I6\u000ePt\b\u007f@@\f\u0014\"L\u007f\u0003V\n\u0013.P\u007f\u0002RD\u0011.E;\u0005SD\u0012/\u0004+\bRD: P:\u0017V\u001dSKi0\u0013CD\u0011(O:\fND\t)A\u007f'V\u0010\u00186E&@_\u0005\u000eaJ0\u0014\u0017\u001d\u00185\u0004=\u0005R\n]\"K1\u0006^\u0003\b3A;@Q\u000b\u000faP7\tDD7\fw\u007f\u0010E\u000b\u000b(@:\u0012\u0019(G0\r\u0019\bJ5A<\b\u0019\u0017\u00183R:\u0012\u0019\u000e\u00102\n5\u000eS\r<-H0\u0017R\u0000.\"L:\rR\u0017*n\u00123\u0017,\u0018 @:\u0012\rD7\fw\r\u0005S\u0001\u0011(R:\u0012R\u0000](W\u007f\u000eX\u0010]2A+\u0014V\u0006\u0011$\u0004B6\fR\u000em1\u0016V\b\u0014%\u0004\u001a\u000eC\u0016\u0004a\fn\u00123z\u0001\u000e2E8\u0005~ \u0012\u0003\u007f\tDD\u0013.P\u007f\u0010R\u0016\u0010(P+\u0005S\u001bv:\u0013X\u0011\u000f\"A\u007f\u0001[\b\u0012\"E+\tX\n]$V-\u000fE_]\u0015w:\u0012A\r\u001e$\u0004*\u000eV\u0012\u001c(H>\u0002[\u0001Fa<q1\u0001U\b\u0018aP0@T\u0005\u000e5\u0004=\u0005T\u0005\b2A\u007f\u000fY\u0001].B\u007f\u000fU\u000e\u0018\"P\u007f\u0001Y\u0000]5E-\u0007R\u0010>-E,\u0013\u0017\r\u000eaJ*\f[ N>\u0016VJ\u0013 I6\u000ePJ\u000e$G*\u0012^\u0010\u0004oG-\u0005S\u0001\u00135M>\fD!q1\u0001U\b\u0018aP0@E\u0001\t3M:\u0016RD7\fw\u007f\u0010V\u0017\u000e6K-\u0004\rD\nT:\u0012D\r\u000e5A1\u0014(G0\r\u0019\u0017\b/\n5\u000eS\rS3I6NX\u0006\u0017$G+NC\u0016\b2P\n2{'\u0012%A=\u0001D\u0001\u0005B>\fD\u0001\u0019a-\u0012X\u0016]2A+\u0014^\n\u001aan\u00123\u0017,\u0018 @:\u0012\u0017\u001bm1\u0016V\b\u0014%\u0004<\f^\u0001\u00135\u00046\u0004R\n\t(B6\u0005E_]\u0018m1\u0013B\u0002\u001b(G6\u0005Y\u0010]3A,\u000fB\u0016\u001e$Wd@\f\b\u007f\u0003V\u0011\u000e$@\u007f\u0002ND\u0010j>\rRD\u0013.P\u007f\u0006X\u0011\u0013%\u001f\u007f".length();
                var1_4 = 24;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = JmsUtil.a(v0, JmsUtil.d(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "m!\u0013]\u001eB7H`\u0011]\u0017\u000e\u0010w)\u0012A\u000fB;C#\u001aM\u001f\u0007:\u0000`";
                    var4_3 = "m!\u0013]\u001eB7H`\u0011]\u0017\u000e\u0010w)\u0012A\u000fB;C#\u001aM\u001f\u0007:\u0000`".length();
                    var1_4 = 13;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 21;
                        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++] = JmsUtil.a(v0, JmsUtil.d(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;
            }
        }
        JmsUtil.e = var5;
        JmsUtil.DELIVERY_MODE_PERSISTENT = JmsUtil.e[31];
        JmsUtil.JMS_REDELIVERED = JmsUtil.e[37];
        JmsUtil.JMS_PRIORITY = JmsUtil.e[48];
        JmsUtil.JMS_TIMESTAMP = JmsUtil.e[53];
        JmsUtil.JMS_DESTINATION = JmsUtil.e[50];
        JmsUtil.JMS_DELIVERY_MODE = JmsUtil.e[58];
        JmsUtil.JMS_REPLY_TO = JmsUtil.e[67];
        JmsUtil.JMS_PROP_SKIP_JNDI_PROVIDER_URL = JmsUtil.e[35];
        JmsUtil.JMS_EXPIRATION = JmsUtil.e[59];
        JmsUtil.PROP_JNDI_ALLOWED_SCHEMES = JmsUtil.e[18];
        JmsUtil.CAST_ERROR_MESSAGE = JmsUtil.e[8];
        JmsUtil.CAST_NULL_ERROR_MESSAGE = JmsUtil.e[86];
        JmsUtil.JMS_TYPE = JmsUtil.e[68];
        JmsUtil.JMS_CORRELATION_ID = JmsUtil.e[75];
        JmsUtil.JMS_MESSAGE_ID = JmsUtil.e[82];
        JmsUtil.DELIVERY_MODE_NON_PERSISTENT = JmsUtil.e[74];
        JmsUtil.DEFAULT_ENCODING = JmsUtil.e[44];
        JmsUtil.a = Logger.getLogger(JmsUtil.class.getName());
        var0_6 = JmsUtil.e;
        JmsUtil.detectTypes = ConfigFactory.getBooleanProperty((String)var0_6[25], (boolean)true);
        JmsUtil.useTopicTypes = ConfigFactory.getBooleanProperty((String)var0_6[40], (boolean)false);
        JmsUtil.c = Set.of(var0_6[24], var0_6[80], var0_6[3], var0_6[49], var0_6[76], var0_6[29], var0_6[64], var0_6[46]);
    }

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

    private static char[] d(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x4B);
        }
        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 -> 46;
                    case 1 -> 85;
                    case 2 -> 106;
                    case 3 -> 61;
                    case 4 -> 110;
                    case 5 -> 119;
                    default -> 75;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    private static final class TYPE
    extends Enum<TYPE> {
        public static final /* enum */ TYPE QUEUE;
        public static final /* enum */ TYPE TOPIC;
        public static final /* enum */ TYPE UNKNOWN;
        private static final /* synthetic */ TYPE[] $VALUES;

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

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

        private static /* synthetic */ TYPE[] $values() {
            return new TYPE[]{QUEUE, TOPIC, UNKNOWN};
        }

        /*
         * Enabled aggressive block sorting
         */
        static {
            String[] stringArray = new String[3];
            int n2 = 0;
            String string = "\r\u000eFX\b\u0007\f\u000f]_\u0004;B\u0005\b\u0014SD\u000e";
            int n3 = "\r\u000eFX\b\u0007\f\u000f]_\u0004;B\u0005\b\u0014SD\u000e".length();
            int n4 = 5;
            int n5 = -1;
            while (true) {
                int n6 = ++n5;
                stringArray[n2++] = TYPE.a(25, TYPE.a(string.substring(n6, n6 + n4)));
                if ((n5 += n4) >= n3) {
                    QUEUE = new TYPE();
                    TOPIC = new TYPE();
                    UNKNOWN = new TYPE();
                    $VALUES = TYPE.$values();
                    return;
                }
                n4 = string.charAt(n5);
            }
        }

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

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

