//# 3 errors, 2,505 messages
//#
/*
    //#ServerEventHandler.java:1:1: class: com.dmdirc.ServerEventHandler
    //#ServerEventHandler.java:1:1: method: com.dmdirc.ServerEventHandler.com.dmdirc.ServerEventHandler__static_init
 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.dmdirc;

import com.dmdirc.actions.ActionManager;
import com.dmdirc.actions.CoreActionType;
import com.dmdirc.logger.ErrorLevel;
import com.dmdirc.logger.Logger;
import com.dmdirc.parser.irc.ChannelInfo;
import com.dmdirc.parser.irc.ClientInfo;
import com.dmdirc.parser.irc.IRCParser;
import com.dmdirc.parser.irc.ParserError;
import com.dmdirc.parser.irc.callbacks.CallbackManager;
import com.dmdirc.parser.irc.callbacks.CallbackNotFoundException;
import com.dmdirc.parser.irc.callbacks.interfaces.*;

/**
 * Handles parser events for a Server object.
 *
 * @author chris
 */
public final class ServerEventHandler extends EventHandler
        implements IChannelSelfJoin, IPrivateMessage, IPrivateAction,
        IErrorInfo, IPrivateCTCP, IPrivateCTCPReply, ISocketClosed,
        IPrivateNotice, IMOTDStart, IMOTDLine, IMOTDEnd, INumeric, IPingFailed,
        IPingSuccess, IAwayState, IConnectError, INickInUse, IPost005,
        INoticeAuth, IUnknownNotice, IUserModeChanged, IInvite, IWallop,
        IWalluser, IWallDesync, INickChanged, IServerError, IPingSent,
        IUserModeDiscovered {

    /** The server instance that owns this event handler. */
    private final Server owner;

    /**
     * Creates a new instance of ServerEventHandler.
     *
     * @param owner The Server instance that we're handling events for
     */
    public ServerEventHandler(final Server owner) {
        super();
    //#ServerEventHandler.java:60: method: void com.dmdirc.ServerEventHandler.com.dmdirc.ServerEventHandler(Server)
    //#input(void com.dmdirc.ServerEventHandler(Server)): owner
    //#input(void com.dmdirc.ServerEventHandler(Server)): this
    //#output(void com.dmdirc.ServerEventHandler(Server)): this.owner
    //#post(void com.dmdirc.ServerEventHandler(Server)): this.owner == owner
    //#post(void com.dmdirc.ServerEventHandler(Server)): init'ed(this.owner)

        this.owner = owner;
    }
    //#ServerEventHandler.java:63: end of method: void com.dmdirc.ServerEventHandler.com.dmdirc.ServerEventHandler(Server)

    /** {@inheritDoc} */
    @Override
    protected void addCallback(final CallbackManager cbm, final String name)
            throws CallbackNotFoundException {
        cbm.addCallback(name, this);
    //#ServerEventHandler.java:69: method: void com.dmdirc.ServerEventHandler.addCallback(CallbackManager, String)
    //#ServerEventHandler.java:69: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void addCallback(CallbackManager, String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface)
    //#input(void addCallback(CallbackManager, String)): cbm
    //#input(void addCallback(CallbackManager, String)): name
    //#input(void addCallback(CallbackManager, String)): this
    //#pre[1] (void addCallback(CallbackManager, String)): cbm != null
    }
    //#ServerEventHandler.java:70: end of method: void com.dmdirc.ServerEventHandler.addCallback(CallbackManager, String)

    /** {@inheritDoc} */
    @Override
    protected Server getServer() {
        return owner;
    //#ServerEventHandler.java:75: method: Server com.dmdirc.ServerEventHandler.getServer()
    //#input(Server getServer()): this
    //#input(Server getServer()): this.owner
    //#output(Server getServer()): return_value
    //#post(Server getServer()): return_value == this.owner
    //#post(Server getServer()): init'ed(return_value)
    //#ServerEventHandler.java:75: end of method: Server com.dmdirc.ServerEventHandler.getServer()
    }

    /** {@inheritDoc} */
    @Override
    public void onChannelSelfJoin(final IRCParser tParser, final ChannelInfo cChannel) {
        checkParser(tParser);
    //#ServerEventHandler.java:81: method: void com.dmdirc.ServerEventHandler.onChannelSelfJoin(IRCParser, ChannelInfo)
    //#ServerEventHandler.java:81: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onChannelSelfJoin(IRCParser, ChannelInfo)
    //#    suspicious precondition index: [4]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): ")"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "."._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "biz"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "com"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "getNetwork called when parser is null (state: "._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "info"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "net"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "on"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): "org"._tainted
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): __Dispatch_Table.addCallback(Lcom/dmdirc/parser/irc/callbacks/CallbackManager;Ljava/lang/String;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): cChannel
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.getChannelInfo()Lcom/dmdirc/parser/irc/ChannelInfo;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.selfJoin()V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.setChannelInfo(Lcom/dmdirc/parser/irc/ChannelInfo;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Channel.__Dispatch_Table.show()V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ChannelEventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ChannelEventHandler.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.addCallback(Lcom/dmdirc/parser/irc/callbacks/CallbackManager;Ljava/lang/String;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.registerCallbacks()V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.__Dispatch_Table.addCallback(Lcom/dmdirc/parser/irc/callbacks/CallbackManager;Ljava/lang/String;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/EventHandler.com.dmdirc.logger.ErrorLevel.FATAL
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Invite.__Descendant_Table[com/dmdirc/Invite]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Invite.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Invite.__Dispatch_Table.getChannel()Ljava/lang/String;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Query.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.addChannel(Lcom/dmdirc/parser/irc/ChannelInfo;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getChannel(Ljava/lang/String;)Lcom/dmdirc/Channel;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getIrcd()Ljava/lang/String;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getNetwork()Ljava/lang/String;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.hasChannel(Ljava/lang/String;)Z
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.removeInvite(Lcom/dmdirc/Invite;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.__Dispatch_Table.removeInvites(Ljava/lang/String;)V
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/Server.com.dmdirc.ui.input.TabCompletionType.CHANNEL
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerState.CLOSING
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerState.CONNECTED
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerState.CONNECTING
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): tParser
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.__Tag
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.__Tag
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.channels
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.converter
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.myState
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.myState.__Tag
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.myState.state
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.server
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.server.__Tag
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.server.myState
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.server.myState.__Tag
    //#input(void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.tabCompleter
    //#pre[4] (void onChannelSelfJoin(IRCParser, ChannelInfo)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner != null
    //#pre[7] (void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.__Tag == com/dmdirc/Server
    //#pre[11] (void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.myState != null
    //#pre[13] (void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[15] (void onChannelSelfJoin(IRCParser, ChannelInfo)): this.owner.myState.state != null
    //#pre[1] (void onChannelSelfJoin(IRCParser, ChannelInfo)): (soft) cChannel != null
    //#pre[9] (void onChannelSelfJoin(IRCParser, ChannelInfo)): (soft) this.owner.channels != null
    //#pre[10] (void onChannelSelfJoin(IRCParser, ChannelInfo)): (soft) this.owner.converter != null
    //#pre[17] (void onChannelSelfJoin(IRCParser, ChannelInfo)): (soft) this.owner.server != null
    //#pre[23] (void onChannelSelfJoin(IRCParser, ChannelInfo)): (soft) this.owner.tabCompleter != null
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getName
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getType
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:trigger
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getArity
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getParser
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:checkParser
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getState
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getStatus
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.ServerInfo:getHost
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getTabCompleter
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.MessageTarget
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getUI
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getFrame
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntry
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getConfigManager
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:addLine
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:setIcon
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.IllegalStateException
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getIRCD
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:endsWith
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getNetwork
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getName
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getNetworkName
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getServerName
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.interfaces.InviteListener:inviteExpired
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getServer
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCStringConverter:toLowerCase
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:removeInvites
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getCallbackManager
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.Object:getClass
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.Class:getInterfaces
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.Class:getName
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:addCallback
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:registerCallbacks
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getIrcd
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.config.ConfigManager:migrate
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:getIdent
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:getHost
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getMyself
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:getNickname
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.messages.Styliser:stipControlCodes
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getTopic
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.interfaces.ChannelWindow:setTitle
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.config.ConfigManager
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionInt
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.util.RollingList
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.commandparser.CommandManager:getCommandNames
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntries
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getChannel
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.WindowManager:addWindow
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.interfaces.ChannelWindow:getInputHandler
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.input.InputHandler:setTabCompleter
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.Channel
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.interfaces.ChannelWindow:open
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.interfaces.IconChangeListener:iconChanged
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:com.dmdirc.config.ConfigManager:removeListener
    //#unanalyzed(void onChannelSelfJoin(IRCParser, ChannelInfo)): Effects-of-calling:getChannelInfo
        owner.addChannel(cChannel);
    }
    //#ServerEventHandler.java:83: end of method: void com.dmdirc.ServerEventHandler.onChannelSelfJoin(IRCParser, ChannelInfo)

    /** {@inheritDoc} */
    @Override
    public void onPrivateMessage(final IRCParser tParser, final String sMessage,
            final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:89: method: void com.dmdirc.ServerEventHandler.onPrivateMessage(IRCParser, String, String)
    //#ServerEventHandler.java:89: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateMessage(IRCParser, String, String)
    //#    suspicious precondition index: [6]
    //#input(void onPrivateMessage(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPrivateMessage(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPrivateMessage(IRCParser, String, String)): "No such query: "._tainted
    //#input(void onPrivateMessage(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Query.__Descendant_Table[com/dmdirc/Query]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Query.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.addQuery(Ljava/lang/String;)V
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getQuery(Ljava/lang/String;)Lcom/dmdirc/Query;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.hasQuery(Ljava/lang/String;)Z
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.com.dmdirc.ui.input.TabCompletionType.QUERY_NICK
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerState.CLOSING
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPrivateMessage(IRCParser, String, String)): sHost
    //#input(void onPrivateMessage(IRCParser, String, String)): sHost._tainted
    //#input(void onPrivateMessage(IRCParser, String, String)): sMessage
    //#input(void onPrivateMessage(IRCParser, String, String)): tParser
    //#input(void onPrivateMessage(IRCParser, String, String)): this
    //#input(void onPrivateMessage(IRCParser, String, String)): this.__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.converter
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.myState
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.myState.state
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.queries
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.server
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.server.myState
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): this.owner.tabCompleter
    //#pre[6] (void onPrivateMessage(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[7] (void onPrivateMessage(IRCParser, String, String)): this.owner != null
    //#pre[9] (void onPrivateMessage(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[18] (void onPrivateMessage(IRCParser, String, String)): this.owner.queries != null
    //#pre[11] (void onPrivateMessage(IRCParser, String, String)): (soft) this.owner.converter != null
    //#pre[12] (void onPrivateMessage(IRCParser, String, String)): (soft) this.owner.myState != null
    //#pre[14] (void onPrivateMessage(IRCParser, String, String)): (soft) this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[16] (void onPrivateMessage(IRCParser, String, String)): (soft) this.owner.myState.state != null
    //#pre[19] (void onPrivateMessage(IRCParser, String, String)): (soft) this.owner.server != null
    //#pre[25] (void onPrivateMessage(IRCParser, String, String)): (soft) this.owner.tabCompleter != null
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getType
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:trigger
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getArity
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCStringConverter:equalsIgnoreCase
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:parseHost
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:open
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:setTitle
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getCallbackManager
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getTabCompleter
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.Server:getConfigManager
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.WritableFrameContainer
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getUI
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getQuery
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getFrame
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.WindowManager:addWindow
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.commandparser.CommandManager:getCommandNames
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntries
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:getInputHandler
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.InputHandler:setTabCompleter
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.Query
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntry
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        if (!owner.hasQuery(sHost)) {
            owner.addQuery(sHost);
            owner.getQuery(sHost).onPrivateMessage(tParser, sMessage, sHost);
    //#ServerEventHandler.java:93: Warning: call too complex - analysis skipped
    //#    call on void onPrivateMessage(IRCParser, String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateMessage(IRCParser, String, String)
    //#    unanalyzed callee: void onPrivateMessage(IRCParser, String, String)
        }
    }
    //#ServerEventHandler.java:95: end of method: void com.dmdirc.ServerEventHandler.onPrivateMessage(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onPrivateAction(final IRCParser tParser, final String sMessage,
            final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:101: method: void com.dmdirc.ServerEventHandler.onPrivateAction(IRCParser, String, String)
    //#ServerEventHandler.java:101: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateAction(IRCParser, String, String)
    //#    suspicious precondition index: [6]
    //#input(void onPrivateAction(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPrivateAction(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPrivateAction(IRCParser, String, String)): "No such query: "._tainted
    //#input(void onPrivateAction(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Query.__Descendant_Table[com/dmdirc/Query]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Query.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.addQuery(Ljava/lang/String;)V
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getQuery(Ljava/lang/String;)Lcom/dmdirc/Query;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.hasQuery(Ljava/lang/String;)Z
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.com.dmdirc.ui.input.TabCompletionType.QUERY_NICK
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerState.CLOSING
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPrivateAction(IRCParser, String, String)): sHost
    //#input(void onPrivateAction(IRCParser, String, String)): sHost._tainted
    //#input(void onPrivateAction(IRCParser, String, String)): sMessage
    //#input(void onPrivateAction(IRCParser, String, String)): tParser
    //#input(void onPrivateAction(IRCParser, String, String)): this
    //#input(void onPrivateAction(IRCParser, String, String)): this.__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.converter
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.myState
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.myState.state
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.queries
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.server
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.server.myState
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): this.owner.tabCompleter
    //#pre[6] (void onPrivateAction(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[7] (void onPrivateAction(IRCParser, String, String)): this.owner != null
    //#pre[9] (void onPrivateAction(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[18] (void onPrivateAction(IRCParser, String, String)): this.owner.queries != null
    //#pre[11] (void onPrivateAction(IRCParser, String, String)): (soft) this.owner.converter != null
    //#pre[12] (void onPrivateAction(IRCParser, String, String)): (soft) this.owner.myState != null
    //#pre[14] (void onPrivateAction(IRCParser, String, String)): (soft) this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[16] (void onPrivateAction(IRCParser, String, String)): (soft) this.owner.myState.state != null
    //#pre[19] (void onPrivateAction(IRCParser, String, String)): (soft) this.owner.server != null
    //#pre[25] (void onPrivateAction(IRCParser, String, String)): (soft) this.owner.tabCompleter != null
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getType
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:trigger
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getArity
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCStringConverter:equalsIgnoreCase
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:parseHost
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:open
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:setTitle
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getCallbackManager
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getTabCompleter
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.Server:getConfigManager
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.WritableFrameContainer
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getUI
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getQuery
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getFrame
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.WindowManager:addWindow
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.commandparser.CommandManager:getCommandNames
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntries
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:getInputHandler
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.InputHandler:setTabCompleter
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.Query
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntry
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        if (!owner.hasQuery(sHost)) {
            owner.addQuery(sHost);
            owner.getQuery(sHost).onPrivateAction(tParser, sMessage, sHost);
    //#ServerEventHandler.java:105: Warning: call too complex - analysis skipped
    //#    call on void onPrivateAction(IRCParser, String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateAction(IRCParser, String, String)
    //#    unanalyzed callee: void onPrivateAction(IRCParser, String, String)
        }
    }
    //#ServerEventHandler.java:107: end of method: void com.dmdirc.ServerEventHandler.onPrivateAction(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onErrorInfo(final IRCParser tParser, final ParserError errorInfo) {
        final ErrorLevel errorLevel = ErrorLevel.UNKNOWN;
    //#ServerEventHandler.java:112: method: void com.dmdirc.ServerEventHandler.onErrorInfo(IRCParser, ParserError)
    //#input(void onErrorInfo(IRCParser, ParserError)): "&#10;"._tainted
    //#input(void onErrorInfo(IRCParser, ParserError)): "&#10;&#09;Server:&#09;"._tainted
    //#input(void onErrorInfo(IRCParser, ParserError)): "Parser exception.&#10;&#10;&#09;Last line:&#09;"._tainted
    //#input(void onErrorInfo(IRCParser, ParserError)): com.dmdirc.logger.ErrorLevel.UNKNOWN
    //#input(void onErrorInfo(IRCParser, ParserError)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onErrorInfo(IRCParser, ParserError)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onErrorInfo(IRCParser, ParserError)): com/dmdirc/Server.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void onErrorInfo(IRCParser, ParserError)): errorInfo
    //#input(void onErrorInfo(IRCParser, ParserError)): this
    //#input(void onErrorInfo(IRCParser, ParserError)): this.owner
    //#input(void onErrorInfo(IRCParser, ParserError)): this.owner.__Tag
    //#input(void onErrorInfo(IRCParser, ParserError)): this.owner.serverInfo
    //#pre[1] (void onErrorInfo(IRCParser, ParserError)): errorInfo != null
    //#pre[3] (void onErrorInfo(IRCParser, ParserError)): (soft) this.owner != null
    //#pre[4] (void onErrorInfo(IRCParser, ParserError)): (soft) this.owner.__Tag == com/dmdirc/Server
    //#pre[5] (void onErrorInfo(IRCParser, ParserError)): (soft) this.owner.serverInfo != null
    //#presumption(void onErrorInfo(IRCParser, ParserError)): init'ed(com.dmdirc.logger.ErrorLevel.UNKNOWN)
    //#unanalyzed(void onErrorInfo(IRCParser, ParserError)): Effects-of-calling:com.dmdirc.parser.irc.ServerInfo:getHost
    //#test_vector(void onErrorInfo(IRCParser, ParserError)): com.dmdirc.parser.irc.ParserError:isException(...)@114: {0}, {1}
    //#test_vector(void onErrorInfo(IRCParser, ParserError)): com.dmdirc.parser.irc.ParserError:isUserError(...)@118: {0}, {1}

        final Exception ex = (errorInfo.isException()) ? errorInfo.getException()
    //#ServerEventHandler.java:114: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.parser.irc.ParserError:isException()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: bool com.dmdirc.parser.irc.ParserError:isException()
    //#ServerEventHandler.java:114: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ParserError:getLastLine()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ParserError:getLastLine()
    //#ServerEventHandler.java:114: Warning: method not available - call not analyzed
    //#    call on Exception com.dmdirc.parser.irc.ParserError:getException()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: Exception com.dmdirc.parser.irc.ParserError:getException()
                : new Exception("Parser exception.\n\n\tLast line:\t" //NOPMD
                + errorInfo.getLastLine() + "\n\tServer:\t" + owner.getName() + "\n");

        if (errorInfo.isUserError()) {
    //#ServerEventHandler.java:118: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.parser.irc.ParserError:isUserError()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: bool com.dmdirc.parser.irc.ParserError:isUserError()
            Logger.userError(errorLevel, errorInfo.getData(), ex);
    //#ServerEventHandler.java:119: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ParserError:getData()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ParserError:getData()
    //#ServerEventHandler.java:119: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:userError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:userError(ErrorLevel, String, Throwable)
        } else {
            Logger.appError(errorLevel, errorInfo.getData(), ex);
    //#ServerEventHandler.java:121: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ParserError:getData()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ParserError:getData()
    //#ServerEventHandler.java:121: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onErrorInfo(IRCParser, ParserError)
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
        }
    }
    //#ServerEventHandler.java:123: end of method: void com.dmdirc.ServerEventHandler.onErrorInfo(IRCParser, ParserError)

    /** {@inheritDoc} */
    @Override
    public void onPrivateCTCP(final IRCParser tParser, final String sType,
            final String sMessage, final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:129: method: void com.dmdirc.ServerEventHandler.onPrivateCTCP(IRCParser, String, String, String)
    //#ServerEventHandler.java:129: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCP(IRCParser, String, String, String)
    //#    suspicious precondition index: [6]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): " - http:..www.dmdirc.com."._tainted
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): "DMDirc "._tainted
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.sendCTCPReply(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): com/dmdirc/actions/CoreActionType.SERVER_CTCP
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): sHost
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): sMessage
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): sType
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): tParser
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.__Tag
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.__Tag
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.config
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.myState
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.myState.__Tag
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.myState.state
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.parser
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.server
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.server.__Tag
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.server.myState
    //#input(void onPrivateCTCP(IRCParser, String, String, String)): this.owner.server.myState.__Tag
    //#pre[3] (void onPrivateCTCP(IRCParser, String, String, String)): sType != null
    //#pre[4] (void onPrivateCTCP(IRCParser, String, String, String)): tParser != null
    //#pre[6] (void onPrivateCTCP(IRCParser, String, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[7] (void onPrivateCTCP(IRCParser, String, String, String)): this.owner != null
    //#pre[9] (void onPrivateCTCP(IRCParser, String, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[12] (void onPrivateCTCP(IRCParser, String, String, String)): this.owner.myState != null
    //#pre[14] (void onPrivateCTCP(IRCParser, String, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[16] (void onPrivateCTCP(IRCParser, String, String, String)): this.owner.myState.state != null
    //#pre[11] (void onPrivateCTCP(IRCParser, String, String, String)): (soft) this.owner.config != null
    //#pre[17] (void onPrivateCTCP(IRCParser, String, String, String)): (soft) this.owner.parser != null
    //#pre[18] (void onPrivateCTCP(IRCParser, String, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:getConfigManager
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:sendCTCPReply
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateCTCP(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("privateCTCP", CoreActionType.SERVER_CTCP,
    //#ServerEventHandler.java:131: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCP(IRCParser, String, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:131: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCP(IRCParser, String, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sHost), sType, sMessage);

        owner.sendCTCPReply(ClientInfo.parseHost(sHost), sType, sMessage);
    //#ServerEventHandler.java:134: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCP(IRCParser, String, String, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    }
    //#ServerEventHandler.java:135: end of method: void com.dmdirc.ServerEventHandler.onPrivateCTCP(IRCParser, String, String, String)

    /** {@inheritDoc} */
    @Override
    public void onPrivateCTCPReply(final IRCParser tParser, final String sType,
            final String sMessage, final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:141: method: void com.dmdirc.ServerEventHandler.onPrivateCTCPReply(IRCParser, String, String, String)
    //#ServerEventHandler.java:141: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCPReply(IRCParser, String, String, String)
    //#    suspicious precondition index: [6]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): com/dmdirc/actions/CoreActionType.SERVER_CTCPR
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): sHost
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): sMessage
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): sType
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): tParser
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.__Tag
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.__Tag
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.myState
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.myState.__Tag
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.myState.state
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.server
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.server.__Tag
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.server.myState
    //#input(void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onPrivateCTCPReply(IRCParser, String, String, String)): tParser != null
    //#pre[6] (void onPrivateCTCPReply(IRCParser, String, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[7] (void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner != null
    //#pre[9] (void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[11] (void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.myState != null
    //#pre[13] (void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[15] (void onPrivateCTCPReply(IRCParser, String, String, String)): this.owner.myState.state != null
    //#pre[17] (void onPrivateCTCPReply(IRCParser, String, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateCTCPReply(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("privateCTCPreply", CoreActionType.SERVER_CTCPR,
    //#ServerEventHandler.java:143: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCPReply(IRCParser, String, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:143: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateCTCPReply(IRCParser, String, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sHost), sType, sMessage);
    }
    //#ServerEventHandler.java:145: end of method: void com.dmdirc.ServerEventHandler.onPrivateCTCPReply(IRCParser, String, String, String)

    /** {@inheritDoc} */
    @Override
    public void onSocketClosed(final IRCParser tParser) {
        if (owner.getParser() == tParser) {
    //#ServerEventHandler.java:150: method: void com.dmdirc.ServerEventHandler.onSocketClosed(IRCParser)
    //#input(void onSocketClosed(IRCParser)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onSocketClosed(IRCParser)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onSocketClosed(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onSocketClosed(IRCParser)): com/dmdirc/Server.__Dispatch_Table.onSocketClosed()V
    //#input(void onSocketClosed(IRCParser)): tParser
    //#input(void onSocketClosed(IRCParser)): this
    //#input(void onSocketClosed(IRCParser)): this.owner
    //#input(void onSocketClosed(IRCParser)): this.owner.__Tag
    //#input(void onSocketClosed(IRCParser)): this.owner.parser
    //#pre[4] (void onSocketClosed(IRCParser)): this.owner != null
    //#pre[5] (void onSocketClosed(IRCParser)): this.owner.__Tag == com/dmdirc/Server
    //#pre[6] (void onSocketClosed(IRCParser)): init'ed(this.owner.parser)
    //#test_vector(void onSocketClosed(IRCParser)): tParser == this.owner.parser: {0}, {1}
            owner.onSocketClosed();
    //#ServerEventHandler.java:151: Warning: call too complex - analysis skipped
    //#    call on void onSocketClosed()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onSocketClosed(IRCParser)
    //#    unanalyzed callee: void onSocketClosed()
        }
    }
    //#ServerEventHandler.java:153: end of method: void com.dmdirc.ServerEventHandler.onSocketClosed(IRCParser)

    /** {@inheritDoc} */
    @Override
    public void onPrivateNotice(final IRCParser tParser, final String sMessage,
            final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:159: method: void com.dmdirc.ServerEventHandler.onPrivateNotice(IRCParser, String, String)
    //#ServerEventHandler.java:159: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateNotice(IRCParser, String, String)
    //#    suspicious precondition index: [5]
    //#input(void onPrivateNotice(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPrivateNotice(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPrivateNotice(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPrivateNotice(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.SERVER_NOTICE
    //#input(void onPrivateNotice(IRCParser, String, String)): sHost
    //#input(void onPrivateNotice(IRCParser, String, String)): sMessage
    //#input(void onPrivateNotice(IRCParser, String, String)): tParser
    //#input(void onPrivateNotice(IRCParser, String, String)): this
    //#input(void onPrivateNotice(IRCParser, String, String)): this.__Tag
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.__Tag
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.myState
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.myState.state
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.server
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.server.myState
    //#input(void onPrivateNotice(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#pre[3] (void onPrivateNotice(IRCParser, String, String)): tParser != null
    //#pre[5] (void onPrivateNotice(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onPrivateNotice(IRCParser, String, String)): this.owner != null
    //#pre[8] (void onPrivateNotice(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onPrivateNotice(IRCParser, String, String)): this.owner.myState != null
    //#pre[12] (void onPrivateNotice(IRCParser, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onPrivateNotice(IRCParser, String, String)): this.owner.myState.state != null
    //#pre[16] (void onPrivateNotice(IRCParser, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateNotice(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("privateNotice", CoreActionType.SERVER_NOTICE,
    //#ServerEventHandler.java:161: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateNotice(IRCParser, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:161: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPrivateNotice(IRCParser, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sHost), sMessage);
    }
    //#ServerEventHandler.java:163: end of method: void com.dmdirc.ServerEventHandler.onPrivateNotice(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onMOTDStart(final IRCParser tParser, final String sData) {
        checkParser(tParser);
    //#ServerEventHandler.java:168: method: void com.dmdirc.ServerEventHandler.onMOTDStart(IRCParser, String)
    //#ServerEventHandler.java:168: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onMOTDStart(IRCParser, String)
    //#    suspicious precondition index: [4]
    //#input(void onMOTDStart(IRCParser, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onMOTDStart(IRCParser, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onMOTDStart(IRCParser, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onMOTDStart(IRCParser, String)): com/dmdirc/actions/CoreActionType.SERVER_MOTDSTART
    //#input(void onMOTDStart(IRCParser, String)): sData
    //#input(void onMOTDStart(IRCParser, String)): tParser
    //#input(void onMOTDStart(IRCParser, String)): this
    //#input(void onMOTDStart(IRCParser, String)): this.__Tag
    //#input(void onMOTDStart(IRCParser, String)): this.owner
    //#input(void onMOTDStart(IRCParser, String)): this.owner.__Tag
    //#input(void onMOTDStart(IRCParser, String)): this.owner.myState
    //#input(void onMOTDStart(IRCParser, String)): this.owner.myState.__Tag
    //#input(void onMOTDStart(IRCParser, String)): this.owner.myState.state
    //#input(void onMOTDStart(IRCParser, String)): this.owner.server
    //#input(void onMOTDStart(IRCParser, String)): this.owner.server.__Tag
    //#input(void onMOTDStart(IRCParser, String)): this.owner.server.myState
    //#input(void onMOTDStart(IRCParser, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onMOTDStart(IRCParser, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onMOTDStart(IRCParser, String)): this.owner != null
    //#pre[7] (void onMOTDStart(IRCParser, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onMOTDStart(IRCParser, String)): this.owner.myState != null
    //#pre[11] (void onMOTDStart(IRCParser, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[13] (void onMOTDStart(IRCParser, String)): this.owner.myState.state != null
    //#pre[15] (void onMOTDStart(IRCParser, String)): (soft) this.owner.server != null
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:getParser
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:getState
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:getServer
    //#unanalyzed(void onMOTDStart(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("motdStart", CoreActionType.SERVER_MOTDSTART, sData);
    //#ServerEventHandler.java:170: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onMOTDStart(IRCParser, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    }
    //#ServerEventHandler.java:171: end of method: void com.dmdirc.ServerEventHandler.onMOTDStart(IRCParser, String)

    /** {@inheritDoc} */
    @Override
    public void onMOTDLine(final IRCParser tParser, final String sData) {
        checkParser(tParser);
    //#ServerEventHandler.java:176: method: void com.dmdirc.ServerEventHandler.onMOTDLine(IRCParser, String)
    //#ServerEventHandler.java:176: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onMOTDLine(IRCParser, String)
    //#    suspicious precondition index: [4]
    //#input(void onMOTDLine(IRCParser, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onMOTDLine(IRCParser, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onMOTDLine(IRCParser, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onMOTDLine(IRCParser, String)): com/dmdirc/actions/CoreActionType.SERVER_MOTDLINE
    //#input(void onMOTDLine(IRCParser, String)): sData
    //#input(void onMOTDLine(IRCParser, String)): tParser
    //#input(void onMOTDLine(IRCParser, String)): this
    //#input(void onMOTDLine(IRCParser, String)): this.__Tag
    //#input(void onMOTDLine(IRCParser, String)): this.owner
    //#input(void onMOTDLine(IRCParser, String)): this.owner.__Tag
    //#input(void onMOTDLine(IRCParser, String)): this.owner.myState
    //#input(void onMOTDLine(IRCParser, String)): this.owner.myState.__Tag
    //#input(void onMOTDLine(IRCParser, String)): this.owner.myState.state
    //#input(void onMOTDLine(IRCParser, String)): this.owner.server
    //#input(void onMOTDLine(IRCParser, String)): this.owner.server.__Tag
    //#input(void onMOTDLine(IRCParser, String)): this.owner.server.myState
    //#input(void onMOTDLine(IRCParser, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onMOTDLine(IRCParser, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onMOTDLine(IRCParser, String)): this.owner != null
    //#pre[7] (void onMOTDLine(IRCParser, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onMOTDLine(IRCParser, String)): this.owner.myState != null
    //#pre[11] (void onMOTDLine(IRCParser, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[13] (void onMOTDLine(IRCParser, String)): this.owner.myState.state != null
    //#pre[15] (void onMOTDLine(IRCParser, String)): (soft) this.owner.server != null
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:getParser
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:getState
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:getServer
    //#unanalyzed(void onMOTDLine(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("motdLine", CoreActionType.SERVER_MOTDLINE, sData);
    //#ServerEventHandler.java:178: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onMOTDLine(IRCParser, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    }
    //#ServerEventHandler.java:179: end of method: void com.dmdirc.ServerEventHandler.onMOTDLine(IRCParser, String)

    /** {@inheritDoc} */
    @Override
    public void onMOTDEnd(final IRCParser tParser, final boolean noMOTD, final String sData) {
        checkParser(tParser);
    //#ServerEventHandler.java:184: method: void com.dmdirc.ServerEventHandler.onMOTDEnd(IRCParser, bool, String)
    //#ServerEventHandler.java:184: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onMOTDEnd(IRCParser, bool, String)
    //#    suspicious precondition index: [4]
    //#input(void onMOTDEnd(IRCParser, bool, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onMOTDEnd(IRCParser, bool, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onMOTDEnd(IRCParser, bool, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onMOTDEnd(IRCParser, bool, String)): com/dmdirc/actions/CoreActionType.SERVER_MOTDEND
    //#input(void onMOTDEnd(IRCParser, bool, String)): sData
    //#input(void onMOTDEnd(IRCParser, bool, String)): tParser
    //#input(void onMOTDEnd(IRCParser, bool, String)): this
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.__Tag
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.__Tag
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.myState
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.myState.__Tag
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.myState.state
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.server
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.server.__Tag
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.server.myState
    //#input(void onMOTDEnd(IRCParser, bool, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onMOTDEnd(IRCParser, bool, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onMOTDEnd(IRCParser, bool, String)): this.owner != null
    //#pre[7] (void onMOTDEnd(IRCParser, bool, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onMOTDEnd(IRCParser, bool, String)): this.owner.myState != null
    //#pre[11] (void onMOTDEnd(IRCParser, bool, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[13] (void onMOTDEnd(IRCParser, bool, String)): this.owner.myState.state != null
    //#pre[15] (void onMOTDEnd(IRCParser, bool, String)): (soft) this.owner.server != null
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:getParser
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:getState
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:getServer
    //#unanalyzed(void onMOTDEnd(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("motdEnd", CoreActionType.SERVER_MOTDEND, sData);
    //#ServerEventHandler.java:186: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onMOTDEnd(IRCParser, bool, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    }
    //#ServerEventHandler.java:187: end of method: void com.dmdirc.ServerEventHandler.onMOTDEnd(IRCParser, bool, String)

    /** {@inheritDoc} */
    @Override
    public void onNumeric(final IRCParser tParser, final int numeric,
            final String[] token) {
        checkParser(tParser);
    //#ServerEventHandler.java:193: method: void com.dmdirc.ServerEventHandler.onNumeric(IRCParser, int, String[])
    //#ServerEventHandler.java:193: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNumeric(IRCParser, int, String[])
    //#    suspicious precondition index: [5]
    //#input(void onNumeric(IRCParser, int, String[])): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onNumeric(IRCParser, int, String[])): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onNumeric(IRCParser, int, String[])): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/Server.__Dispatch_Table.onNumeric(I[Ljava/lang/String;)V
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerState.CONNECTED
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerState.CONNECTING
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNumeric(IRCParser, int, String[])): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onNumeric(IRCParser, int, String[])): numeric
    //#input(void onNumeric(IRCParser, int, String[])): tParser
    //#input(void onNumeric(IRCParser, int, String[])): this
    //#input(void onNumeric(IRCParser, int, String[])): this.__Tag
    //#input(void onNumeric(IRCParser, int, String[])): this.owner
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.__Tag
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.myState
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.myState.__Tag
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.myState.state
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.server
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.server.__Tag
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.server.myState
    //#input(void onNumeric(IRCParser, int, String[])): this.owner.server.myState.__Tag
    //#input(void onNumeric(IRCParser, int, String[])): token
    //#pre[5] (void onNumeric(IRCParser, int, String[])): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onNumeric(IRCParser, int, String[])): this.owner != null
    //#pre[8] (void onNumeric(IRCParser, int, String[])): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onNumeric(IRCParser, int, String[])): this.owner.myState != null
    //#pre[12] (void onNumeric(IRCParser, int, String[])): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onNumeric(IRCParser, int, String[])): this.owner.myState.state != null
    //#pre[16] (void onNumeric(IRCParser, int, String[])): (soft) this.owner.server != null
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:getParser
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:checkParser
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:getState
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:getStatus
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:getServer
    //#unanalyzed(void onNumeric(IRCParser, int, String[])): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
        owner.onNumeric(numeric, token);
    //#ServerEventHandler.java:194: Warning: call too complex - analysis skipped
    //#    call on void onNumeric(int, String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNumeric(IRCParser, int, String[])
    //#    unanalyzed callee: void onNumeric(int, String[])
    }
    //#ServerEventHandler.java:195: end of method: void com.dmdirc.ServerEventHandler.onNumeric(IRCParser, int, String[])

    /** {@inheritDoc} */
    @Override
    public void onPingFailed(final IRCParser tParser) {
        checkParser(tParser);
    //#ServerEventHandler.java:200: method: void com.dmdirc.ServerEventHandler.onPingFailed(IRCParser)
    //#ServerEventHandler.java:200: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingFailed(IRCParser)
    //#    suspicious precondition index: [3]
    //#input(void onPingFailed(IRCParser)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPingFailed(IRCParser)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPingFailed(IRCParser)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/Server.__Dispatch_Table.onPingFailed()V
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPingFailed(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPingFailed(IRCParser)): tParser
    //#input(void onPingFailed(IRCParser)): this
    //#input(void onPingFailed(IRCParser)): this.__Tag
    //#input(void onPingFailed(IRCParser)): this.owner
    //#input(void onPingFailed(IRCParser)): this.owner.__Tag
    //#input(void onPingFailed(IRCParser)): this.owner.myState
    //#input(void onPingFailed(IRCParser)): this.owner.myState.__Tag
    //#input(void onPingFailed(IRCParser)): this.owner.myState.state
    //#input(void onPingFailed(IRCParser)): this.owner.server
    //#input(void onPingFailed(IRCParser)): this.owner.server.__Tag
    //#input(void onPingFailed(IRCParser)): this.owner.server.myState
    //#input(void onPingFailed(IRCParser)): this.owner.server.myState.__Tag
    //#pre[3] (void onPingFailed(IRCParser)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[4] (void onPingFailed(IRCParser)): this.owner != null
    //#pre[6] (void onPingFailed(IRCParser)): this.owner.__Tag == com/dmdirc/Server
    //#pre[8] (void onPingFailed(IRCParser)): this.owner.myState != null
    //#pre[10] (void onPingFailed(IRCParser)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[12] (void onPingFailed(IRCParser)): this.owner.myState.state != null
    //#pre[14] (void onPingFailed(IRCParser)): (soft) this.owner.server != null
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:getParser
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:checkParser
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:getState
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:getStatus
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:getServer
    //#unanalyzed(void onPingFailed(IRCParser)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
        owner.onPingFailed();
    //#ServerEventHandler.java:201: Warning: call too complex - analysis skipped
    //#    call on void onPingFailed()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingFailed(IRCParser)
    //#    unanalyzed callee: void onPingFailed()
    }
    //#ServerEventHandler.java:202: end of method: void com.dmdirc.ServerEventHandler.onPingFailed(IRCParser)

    /** {@inheritDoc} */
    @Override
    public void onPingSent(final IRCParser tParser) {
        checkParser(tParser);
    //#ServerEventHandler.java:207: method: void com.dmdirc.ServerEventHandler.onPingSent(IRCParser)
    //#ServerEventHandler.java:207: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingSent(IRCParser)
    //#    suspicious precondition index: [7]
    //#input(void onPingSent(IRCParser)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPingSent(IRCParser)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPingSent(IRCParser)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSent(IRCParser)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#34).__Tag
    //#input(void onPingSent(IRCParser)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#34).type
    //#input(void onPingSent(IRCParser)): com.dmdirc.actions.metatypes.ServerEvents__static_init.new ServerEvents(ServerEvents__static_init#25).__Tag
    //#input(void onPingSent(IRCParser)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPingSent(IRCParser)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPingSent(IRCParser)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSent(IRCParser)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSent(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPingSent(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPingSent(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPingSent(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPingSent(IRCParser)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSent(IRCParser)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPingSent(IRCParser)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPingSent(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPingSent(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPingSent(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPingSent(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/ActionManager.listeners
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/CoreActionType.SERVER_PINGSENT
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPingSent(IRCParser)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSent(IRCParser)): tParser
    //#input(void onPingSent(IRCParser)): this
    //#input(void onPingSent(IRCParser)): this.__Tag
    //#input(void onPingSent(IRCParser)): this.owner
    //#input(void onPingSent(IRCParser)): this.owner.__Tag
    //#input(void onPingSent(IRCParser)): this.owner.myState
    //#input(void onPingSent(IRCParser)): this.owner.myState.__Tag
    //#input(void onPingSent(IRCParser)): this.owner.myState.state
    //#input(void onPingSent(IRCParser)): this.owner.server
    //#input(void onPingSent(IRCParser)): this.owner.server.__Tag
    //#input(void onPingSent(IRCParser)): this.owner.server.myState
    //#input(void onPingSent(IRCParser)): this.owner.server.myState.__Tag
    //#output(void onPingSent(IRCParser)): com/dmdirc/ServerManager.me
    //#output(void onPingSent(IRCParser)): new ArrayList(ServerManager#1) num objects
    //#output(void onPingSent(IRCParser)): new ServerManager(getServerManager#1) num objects
    //#output(void onPingSent(IRCParser)): new ServerManager(getServerManager#1).__Tag
    //#output(void onPingSent(IRCParser)): new ServerManager(getServerManager#1).servers
    //#new obj(void onPingSent(IRCParser)): new ArrayList(ServerManager#1)
    //#new obj(void onPingSent(IRCParser)): new ServerManager(getServerManager#1)
    //#pre[3] (void onPingSent(IRCParser)): init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[7] (void onPingSent(IRCParser)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[8] (void onPingSent(IRCParser)): this.owner != null
    //#pre[10] (void onPingSent(IRCParser)): this.owner.__Tag == com/dmdirc/Server
    //#pre[12] (void onPingSent(IRCParser)): this.owner.myState != null
    //#pre[14] (void onPingSent(IRCParser)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[16] (void onPingSent(IRCParser)): this.owner.myState.state != null
    //#pre[1] (void onPingSent(IRCParser)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#34).type != null
    //#pre[4] (void onPingSent(IRCParser)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[18] (void onPingSent(IRCParser)): (soft) this.owner.server != null
    //#post(void onPingSent(IRCParser)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void onPingSent(IRCParser)): new ArrayList(ServerManager#1) num objects == undefined
    //#post(void onPingSent(IRCParser)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void onPingSent(IRCParser)): new ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
    //#post(void onPingSent(IRCParser)): new ServerManager(getServerManager#1).__Tag == new ArrayList(ServerManager#1) num objects
    //#post(void onPingSent(IRCParser)): new ServerManager(getServerManager#1).servers == undefined
    //#post(void onPingSent(IRCParser)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getType
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:trigger
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getArity
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:triggerActions
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getParser
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:checkParser
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getState
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getStatus
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getUI
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getFrame
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getServer
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:readTerm
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:parseStack
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:get
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:getArgTypes
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:test
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:evaluate
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void onPingSent(IRCParser)): Effects-of-calling:java.lang.StringBuffer:append

        ActionManager.processEvent(CoreActionType.SERVER_PINGSENT, null, owner);
    //#ServerEventHandler.java:209: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingSent(IRCParser)
    //#    basic block: Entry_BB_1
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp
    }
    //#ServerEventHandler.java:210: end of method: void com.dmdirc.ServerEventHandler.onPingSent(IRCParser)

    /** {@inheritDoc} */
    @Override
    public void onPingSuccess(final IRCParser tParser) {
        checkParser(tParser);
    //#ServerEventHandler.java:215: method: void com.dmdirc.ServerEventHandler.onPingSuccess(IRCParser)
    //#ServerEventHandler.java:215: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingSuccess(IRCParser)
    //#    suspicious precondition index: [7]
    //#input(void onPingSuccess(IRCParser)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPingSuccess(IRCParser)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPingSuccess(IRCParser)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSuccess(IRCParser)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#32).__Tag
    //#input(void onPingSuccess(IRCParser)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#32).type
    //#input(void onPingSuccess(IRCParser)): com.dmdirc.actions.metatypes.ServerEvents__static_init.new ServerEvents(ServerEvents__static_init#1).__Tag
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/ActionManager.listeners
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/CoreActionType.SERVER_GOTPING
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPingSuccess(IRCParser)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void onPingSuccess(IRCParser)): tParser
    //#input(void onPingSuccess(IRCParser)): this
    //#input(void onPingSuccess(IRCParser)): this.__Tag
    //#input(void onPingSuccess(IRCParser)): this.owner
    //#input(void onPingSuccess(IRCParser)): this.owner.__Tag
    //#input(void onPingSuccess(IRCParser)): this.owner.myState
    //#input(void onPingSuccess(IRCParser)): this.owner.myState.__Tag
    //#input(void onPingSuccess(IRCParser)): this.owner.myState.state
    //#input(void onPingSuccess(IRCParser)): this.owner.server
    //#input(void onPingSuccess(IRCParser)): this.owner.server.__Tag
    //#input(void onPingSuccess(IRCParser)): this.owner.server.myState
    //#input(void onPingSuccess(IRCParser)): this.owner.server.myState.__Tag
    //#output(void onPingSuccess(IRCParser)): com/dmdirc/ServerManager.me
    //#output(void onPingSuccess(IRCParser)): new ArrayList(ServerManager#1) num objects
    //#output(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1) num objects
    //#output(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1).__Tag
    //#output(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1).servers
    //#new obj(void onPingSuccess(IRCParser)): new ArrayList(ServerManager#1)
    //#new obj(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1)
    //#pre[3] (void onPingSuccess(IRCParser)): init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[5] (void onPingSuccess(IRCParser)): tParser != null
    //#pre[7] (void onPingSuccess(IRCParser)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[8] (void onPingSuccess(IRCParser)): this.owner != null
    //#pre[10] (void onPingSuccess(IRCParser)): this.owner.__Tag == com/dmdirc/Server
    //#pre[12] (void onPingSuccess(IRCParser)): this.owner.myState != null
    //#pre[14] (void onPingSuccess(IRCParser)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[16] (void onPingSuccess(IRCParser)): this.owner.myState.state != null
    //#pre[1] (void onPingSuccess(IRCParser)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#32).type != null
    //#pre[4] (void onPingSuccess(IRCParser)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[18] (void onPingSuccess(IRCParser)): (soft) this.owner.server != null
    //#post(void onPingSuccess(IRCParser)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void onPingSuccess(IRCParser)): new ArrayList(ServerManager#1) num objects == undefined
    //#post(void onPingSuccess(IRCParser)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
    //#post(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1).__Tag == new ArrayList(ServerManager#1) num objects
    //#post(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1).servers == undefined
    //#post(void onPingSuccess(IRCParser)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getType
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:trigger
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getArity
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:triggerActions
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getParser
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:checkParser
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getState
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getStatus
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getUI
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getFrame
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getServer
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:readTerm
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:parseStack
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:get
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:getArgTypes
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:test
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:evaluate
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void onPingSuccess(IRCParser)): Effects-of-calling:java.lang.StringBuffer:append

        ActionManager.processEvent(CoreActionType.SERVER_GOTPING, null, owner,
    //#ServerEventHandler.java:217: Warning: method not available - call not analyzed
    //#    call on long com.dmdirc.parser.irc.IRCParser:getServerLag()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingSuccess(IRCParser)
    //#    unanalyzed callee: long com.dmdirc.parser.irc.IRCParser:getServerLag()
    //#ServerEventHandler.java:217: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPingSuccess(IRCParser)
    //#    basic block: Entry_BB_1
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp
                Long.valueOf(tParser.getServerLag()));
    }
    //#ServerEventHandler.java:219: end of method: void com.dmdirc.ServerEventHandler.onPingSuccess(IRCParser)

    /** {@inheritDoc} */
    @Override
    public void onAwayState(final IRCParser tParser, final boolean currentState,
            final String reason) {
        checkParser(tParser);
    //#ServerEventHandler.java:225: method: void com.dmdirc.ServerEventHandler.onAwayState(IRCParser, bool, String)
    //#ServerEventHandler.java:225: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onAwayState(IRCParser, bool, String)
    //#    suspicious precondition index: [6]
    //#input(void onAwayState(IRCParser, bool, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onAwayState(IRCParser, bool, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onAwayState(IRCParser, bool, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/Server.__Dispatch_Table.updateAwayState(Ljava/lang/String;)V
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/actions/CoreActionType.SERVER_AWAY
    //#input(void onAwayState(IRCParser, bool, String)): com/dmdirc/actions/CoreActionType.SERVER_BACK
    //#input(void onAwayState(IRCParser, bool, String)): currentState
    //#input(void onAwayState(IRCParser, bool, String)): reason
    //#input(void onAwayState(IRCParser, bool, String)): tParser
    //#input(void onAwayState(IRCParser, bool, String)): this
    //#input(void onAwayState(IRCParser, bool, String)): this.__Tag
    //#input(void onAwayState(IRCParser, bool, String)): this.owner
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.__Tag
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.awayMessage
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.listeners
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.myState
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.myState.__Tag
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.myState.state
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.server
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.server.__Tag
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.server.myState
    //#input(void onAwayState(IRCParser, bool, String)): this.owner.server.myState.__Tag
    //#output(void onAwayState(IRCParser, bool, String)): this.owner.awayMessage
    //#pre[2] (void onAwayState(IRCParser, bool, String)): init'ed(this.owner.awayMessage)
    //#pre[6] (void onAwayState(IRCParser, bool, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[7] (void onAwayState(IRCParser, bool, String)): this.owner != null
    //#pre[9] (void onAwayState(IRCParser, bool, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[13] (void onAwayState(IRCParser, bool, String)): this.owner.myState != null
    //#pre[15] (void onAwayState(IRCParser, bool, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[17] (void onAwayState(IRCParser, bool, String)): this.owner.myState.state != null
    //#pre[11] (void onAwayState(IRCParser, bool, String)): (soft) this.owner.listeners != null
    //#pre[19] (void onAwayState(IRCParser, bool, String)): (soft) this.owner.server != null
    //#post(void onAwayState(IRCParser, bool, String)): this.owner.awayMessage == One-of{old this.owner.awayMessage, reason, null}
    //#post(void onAwayState(IRCParser, bool, String)): init'ed(this.owner.awayMessage)
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:getParser
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:getState
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.interfaces.AwayStateListener:onBack
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.interfaces.AwayStateListener:onAway
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:getServer
    //#unanalyzed(void onAwayState(IRCParser, bool, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
    //#test_vector(void onAwayState(IRCParser, bool, String)): currentState: {0}, {1}

        owner.updateAwayState(currentState ? reason : null);

        if (currentState) {
            owner.doNotification("away", CoreActionType.SERVER_AWAY, reason);
    //#ServerEventHandler.java:230: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onAwayState(IRCParser, bool, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
        } else {
            owner.doNotification("back", CoreActionType.SERVER_BACK);
    //#ServerEventHandler.java:232: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onAwayState(IRCParser, bool, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
        }
    }
    //#ServerEventHandler.java:234: end of method: void com.dmdirc.ServerEventHandler.onAwayState(IRCParser, bool, String)

    /** {@inheritDoc} */
    @Override
    public void onConnectError(final IRCParser tParser, final ParserError errorInfo) {
        checkParser(tParser);
    //#ServerEventHandler.java:239: method: void com.dmdirc.ServerEventHandler.onConnectError(IRCParser, ParserError)
    //#ServerEventHandler.java:239: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onConnectError(IRCParser, ParserError)
    //#    suspicious precondition index: [8]
    //#input(void onConnectError(IRCParser, ParserError)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onConnectError(IRCParser, ParserError)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onConnectError(IRCParser, ParserError)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/Server.__Dispatch_Table.onConnectError(Lcom/dmdirc/parser/irc/ParserError;)V
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerState.CONNECTED
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerState.CONNECTING
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onConnectError(IRCParser, ParserError)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onConnectError(IRCParser, ParserError)): errorInfo
    //#input(void onConnectError(IRCParser, ParserError)): tParser
    //#input(void onConnectError(IRCParser, ParserError)): this
    //#input(void onConnectError(IRCParser, ParserError)): this.__Tag
    //#input(void onConnectError(IRCParser, ParserError)): this.owner
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.__Tag
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.myState
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.myState.__Tag
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.myState.state
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.server
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.server.__Tag
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.server.myState
    //#input(void onConnectError(IRCParser, ParserError)): this.owner.server.myState.__Tag
    //#output(void onConnectError(IRCParser, ParserError)): new Timer(doDelayedReconnect#4) num objects
    //#output(void onConnectError(IRCParser, ParserError)): this.owner.myState.state
    //#output(void onConnectError(IRCParser, ParserError)): this.owner.parser
    //#output(void onConnectError(IRCParser, ParserError)): this.owner.reconnectTimer
    //#new obj(void onConnectError(IRCParser, ParserError)): new Timer(doDelayedReconnect#4)
    //#pre[3] (void onConnectError(IRCParser, ParserError)): this.owner.myState.state != null
    //#pre[8] (void onConnectError(IRCParser, ParserError)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[9] (void onConnectError(IRCParser, ParserError)): this.owner != null
    //#pre[11] (void onConnectError(IRCParser, ParserError)): this.owner.__Tag == com/dmdirc/Server
    //#pre[13] (void onConnectError(IRCParser, ParserError)): this.owner.myState != null
    //#pre[15] (void onConnectError(IRCParser, ParserError)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[19] (void onConnectError(IRCParser, ParserError)): (soft) this.owner.server != null
    //#post(void onConnectError(IRCParser, ParserError)): this.owner.myState.state == old this.owner.myState.state
    //#post(void onConnectError(IRCParser, ParserError)): this.owner.myState.state != null
    //#post(void onConnectError(IRCParser, ParserError)): this.owner.parser == old this.owner.parser
    //#post(void onConnectError(IRCParser, ParserError)): this.owner.reconnectTimer == old this.owner.reconnectTimer
    //#post(void onConnectError(IRCParser, ParserError)): new Timer(doDelayedReconnect#4) num objects == undefined
    //#post(void onConnectError(IRCParser, ParserError)): new Timer(doDelayedReconnect#4) num objects == 0, if init'ed
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:getParser
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:checkParser
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:getState
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:getStatus
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:getServer
    //#unanalyzed(void onConnectError(IRCParser, ParserError)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
        owner.onConnectError(errorInfo);
    //#ServerEventHandler.java:240: Warning: call too complex - analysis skipped
    //#    call on void onConnectError(ParserError)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onConnectError(IRCParser, ParserError)
    //#    unanalyzed callee: void onConnectError(ParserError)
    }
    //#ServerEventHandler.java:241: end of method: void com.dmdirc.ServerEventHandler.onConnectError(IRCParser, ParserError)

    /** {@inheritDoc} */
    @Override
    public void onNickInUse(final IRCParser tParser, final String nickname) {
        owner.onNickInUse(nickname);
    //#ServerEventHandler.java:246: method: void com.dmdirc.ServerEventHandler.onNickInUse(IRCParser, String)
    //#ServerEventHandler.java:246: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNickInUse(IRCParser, String)
    //#    suspicious precondition index: [4]
    //#input(void onNickInUse(IRCParser, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onNickInUse(IRCParser, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onNickInUse(IRCParser, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.DOMAIN_PROFILE
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.onNickInUse(Ljava/lang/String;)V
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNickInUse(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onNickInUse(IRCParser, String)): nickname
    //#input(void onNickInUse(IRCParser, String)): tParser
    //#input(void onNickInUse(IRCParser, String)): this
    //#input(void onNickInUse(IRCParser, String)): this.__Tag
    //#input(void onNickInUse(IRCParser, String)): this.owner
    //#input(void onNickInUse(IRCParser, String)): this.owner.__Tag
    //#input(void onNickInUse(IRCParser, String)): this.owner.converter
    //#input(void onNickInUse(IRCParser, String)): this.owner.myState
    //#input(void onNickInUse(IRCParser, String)): this.owner.myState.__Tag
    //#input(void onNickInUse(IRCParser, String)): this.owner.myState.state
    //#input(void onNickInUse(IRCParser, String)): this.owner.parser
    //#input(void onNickInUse(IRCParser, String)): this.owner.profile
    //#input(void onNickInUse(IRCParser, String)): this.owner.server
    //#input(void onNickInUse(IRCParser, String)): this.owner.server.__Tag
    //#input(void onNickInUse(IRCParser, String)): this.owner.server.myState
    //#input(void onNickInUse(IRCParser, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onNickInUse(IRCParser, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onNickInUse(IRCParser, String)): this.owner != null
    //#pre[7] (void onNickInUse(IRCParser, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onNickInUse(IRCParser, String)): this.owner.converter != null
    //#pre[10] (void onNickInUse(IRCParser, String)): this.owner.myState != null
    //#pre[12] (void onNickInUse(IRCParser, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onNickInUse(IRCParser, String)): this.owner.myState.state != null
    //#pre[15] (void onNickInUse(IRCParser, String)): this.owner.parser != null
    //#pre[16] (void onNickInUse(IRCParser, String)): (soft) this.owner.profile != null
    //#pre[17] (void onNickInUse(IRCParser, String)): (soft) this.owner.server != null
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:getParser
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:getState
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:com.dmdirc.config.Identity:getOptionList
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getMyNickname
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCStringConverter:equalsIgnoreCase
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.Math:random
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:setNickname
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:getServer
    //#unanalyzed(void onNickInUse(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
        checkParser(tParser);
    }
    //#ServerEventHandler.java:248: end of method: void com.dmdirc.ServerEventHandler.onNickInUse(IRCParser, String)

    /** {@inheritDoc} */
    @Override
    public void onPost005(final IRCParser tParser) {
        checkParser(tParser);
    //#ServerEventHandler.java:253: method: void com.dmdirc.ServerEventHandler.onPost005(IRCParser)
    //#ServerEventHandler.java:253: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPost005(IRCParser)
    //#    suspicious precondition index: [7]
    //#input(void onPost005(IRCParser)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onPost005(IRCParser)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onPost005(IRCParser)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPost005(IRCParser)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPost005(IRCParser)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onPost005(IRCParser)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPost005(IRCParser)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPost005(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onPost005(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onPost005(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onPost005(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onPost005(IRCParser)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onPost005(IRCParser)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPost005(IRCParser)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onPost005(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onPost005(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPost005(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onPost005(IRCParser)): com/dmdirc/Server.__Dispatch_Table.onPost005()V
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerState.CONNECTED
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerState.CONNECTING
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onPost005(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onPost005(IRCParser)): tParser
    //#input(void onPost005(IRCParser)): this
    //#input(void onPost005(IRCParser)): this.__Tag
    //#input(void onPost005(IRCParser)): this.owner
    //#input(void onPost005(IRCParser)): this.owner.__Tag
    //#input(void onPost005(IRCParser)): this.owner.myState
    //#input(void onPost005(IRCParser)): this.owner.myState.__Tag
    //#input(void onPost005(IRCParser)): this.owner.myState.state
    //#input(void onPost005(IRCParser)): this.owner.server
    //#input(void onPost005(IRCParser)): this.owner.server.__Tag
    //#input(void onPost005(IRCParser)): this.owner.server.myState
    //#input(void onPost005(IRCParser)): this.owner.server.myState.__Tag
    //#output(void onPost005(IRCParser)): this.owner.converter
    //#output(void onPost005(IRCParser)): this.owner.myState.state
    //#pre[4] (void onPost005(IRCParser)): this.owner.myState.state != null
    //#pre[7] (void onPost005(IRCParser)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[8] (void onPost005(IRCParser)): this.owner != null
    //#pre[10] (void onPost005(IRCParser)): this.owner.__Tag == com/dmdirc/Server
    //#pre[15] (void onPost005(IRCParser)): this.owner.myState != null
    //#pre[17] (void onPost005(IRCParser)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[22] (void onPost005(IRCParser)): (soft) this.owner.server != null
    //#post(void onPost005(IRCParser)): this.owner.converter == old this.owner.converter
    //#post(void onPost005(IRCParser)): this.owner.myState.state == old this.owner.myState.state
    //#post(void onPost005(IRCParser)): this.owner.myState.state != null
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:getParser
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:checkParser
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:getState
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:getStatus
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:getServer
    //#unanalyzed(void onPost005(IRCParser)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
        owner.onPost005();
    //#ServerEventHandler.java:254: Warning: call too complex - analysis skipped
    //#    call on void onPost005()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onPost005(IRCParser)
    //#    unanalyzed callee: void onPost005()
    }
    //#ServerEventHandler.java:255: end of method: void com.dmdirc.ServerEventHandler.onPost005(IRCParser)

    /** {@inheritDoc} */
    @Override
    public void onNoticeAuth(final IRCParser tParser, final String sData) {
        checkParser(tParser);
    //#ServerEventHandler.java:260: method: void com.dmdirc.ServerEventHandler.onNoticeAuth(IRCParser, String)
    //#ServerEventHandler.java:260: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNoticeAuth(IRCParser, String)
    //#    suspicious precondition index: [4]
    //#input(void onNoticeAuth(IRCParser, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onNoticeAuth(IRCParser, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onNoticeAuth(IRCParser, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onNoticeAuth(IRCParser, String)): com/dmdirc/actions/CoreActionType.SERVER_AUTHNOTICE
    //#input(void onNoticeAuth(IRCParser, String)): sData
    //#input(void onNoticeAuth(IRCParser, String)): tParser
    //#input(void onNoticeAuth(IRCParser, String)): this
    //#input(void onNoticeAuth(IRCParser, String)): this.__Tag
    //#input(void onNoticeAuth(IRCParser, String)): this.owner
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.__Tag
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.myState
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.myState.__Tag
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.myState.state
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.server
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.server.__Tag
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.server.myState
    //#input(void onNoticeAuth(IRCParser, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onNoticeAuth(IRCParser, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onNoticeAuth(IRCParser, String)): this.owner != null
    //#pre[7] (void onNoticeAuth(IRCParser, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onNoticeAuth(IRCParser, String)): this.owner.myState != null
    //#pre[11] (void onNoticeAuth(IRCParser, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[13] (void onNoticeAuth(IRCParser, String)): this.owner.myState.state != null
    //#pre[15] (void onNoticeAuth(IRCParser, String)): (soft) this.owner.server != null
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:getParser
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:getState
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:getServer
    //#unanalyzed(void onNoticeAuth(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("authNotice", CoreActionType.SERVER_AUTHNOTICE, sData);
    //#ServerEventHandler.java:262: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNoticeAuth(IRCParser, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    }
    //#ServerEventHandler.java:263: end of method: void com.dmdirc.ServerEventHandler.onNoticeAuth(IRCParser, String)

    /** {@inheritDoc} */
    @Override
    public void onUnknownNotice(final IRCParser tParser, final String sMessage,
            final String sTarget, final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:269: method: void com.dmdirc.ServerEventHandler.onUnknownNotice(IRCParser, String, String, String)
    //#ServerEventHandler.java:269: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUnknownNotice(IRCParser, String, String, String)
    //#    suspicious precondition index: [6]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onUnknownNotice(IRCParser, String, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onUnknownNotice(IRCParser, String, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onUnknownNotice(IRCParser, String, String, String)): com/dmdirc/actions/CoreActionType.SERVER_UNKNOWNNOTICE
    //#input(void onUnknownNotice(IRCParser, String, String, String)): sHost
    //#input(void onUnknownNotice(IRCParser, String, String, String)): sMessage
    //#input(void onUnknownNotice(IRCParser, String, String, String)): sTarget
    //#input(void onUnknownNotice(IRCParser, String, String, String)): tParser
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.__Tag
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.__Tag
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.myState
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.myState.__Tag
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.myState.state
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.server
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.server.__Tag
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.server.myState
    //#input(void onUnknownNotice(IRCParser, String, String, String)): this.owner.server.myState.__Tag
    //#pre[6] (void onUnknownNotice(IRCParser, String, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[7] (void onUnknownNotice(IRCParser, String, String, String)): this.owner != null
    //#pre[9] (void onUnknownNotice(IRCParser, String, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[11] (void onUnknownNotice(IRCParser, String, String, String)): this.owner.myState != null
    //#pre[13] (void onUnknownNotice(IRCParser, String, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[15] (void onUnknownNotice(IRCParser, String, String, String)): this.owner.myState.state != null
    //#pre[17] (void onUnknownNotice(IRCParser, String, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onUnknownNotice(IRCParser, String, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("unknownNotice", CoreActionType.SERVER_UNKNOWNNOTICE,
    //#ServerEventHandler.java:271: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUnknownNotice(IRCParser, String, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                sHost, sTarget, sMessage);
    }
    //#ServerEventHandler.java:273: end of method: void com.dmdirc.ServerEventHandler.onUnknownNotice(IRCParser, String, String, String)

    /** {@inheritDoc} */
    @Override
    public void onUserModeChanged(final IRCParser tParser,
            final ClientInfo cClient, final String sSetBy, final String sModes) {
        checkParser(tParser);
    //#ServerEventHandler.java:279: method: void com.dmdirc.ServerEventHandler.onUserModeChanged(IRCParser, ClientInfo, String, String)
    //#ServerEventHandler.java:279: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUserModeChanged(IRCParser, ClientInfo, String, String)
    //#    suspicious precondition index: [5]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): com/dmdirc/actions/CoreActionType.SERVER_USERMODES
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): sModes
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): sSetBy
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): tParser
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.__Tag
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.__Tag
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.myState
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.myState.__Tag
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.myState.state
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.server
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.server.__Tag
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.server.myState
    //#input(void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.server.myState.__Tag
    //#pre[3] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): tParser != null
    //#pre[5] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner != null
    //#pre[8] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.myState != null
    //#pre[12] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): this.owner.myState.state != null
    //#pre[16] (void onUserModeChanged(IRCParser, ClientInfo, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onUserModeChanged(IRCParser, ClientInfo, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("userModeChanged", CoreActionType.SERVER_USERMODES,
    //#ServerEventHandler.java:281: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUserModeChanged(IRCParser, ClientInfo, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:281: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUserModeChanged(IRCParser, ClientInfo, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sSetBy), sModes);
    }
    //#ServerEventHandler.java:283: end of method: void com.dmdirc.ServerEventHandler.onUserModeChanged(IRCParser, ClientInfo, String, String)

    /** {@inheritDoc} */
    @Override
    public void onUserModeDiscovered(final IRCParser tParser, final ClientInfo cClient,
             final String sModes) {
        checkParser(tParser);
    //#ServerEventHandler.java:289: method: void com.dmdirc.ServerEventHandler.onUserModeDiscovered(IRCParser, ClientInfo, String)
    //#ServerEventHandler.java:289: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUserModeDiscovered(IRCParser, ClientInfo, String)
    //#    suspicious precondition index: [5]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): cClient
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): com/dmdirc/actions/CoreActionType.SERVER_USERMODES
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): sModes
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): tParser
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.__Tag
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.__Tag
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.myState
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.myState.__Tag
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.myState.state
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.server
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.server.__Tag
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.server.myState
    //#input(void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.server.myState.__Tag
    //#pre[5] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner != null
    //#pre[8] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.myState != null
    //#pre[12] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): this.owner.myState.state != null
    //#pre[16] (void onUserModeDiscovered(IRCParser, ClientInfo, String)): (soft) this.owner.server != null
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:getParser
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:getState
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:getServer
    //#unanalyzed(void onUserModeDiscovered(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("userModeDiscovered", CoreActionType.SERVER_USERMODES,
    //#ServerEventHandler.java:291: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onUserModeDiscovered(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                cClient, sModes);
    }
    //#ServerEventHandler.java:293: end of method: void com.dmdirc.ServerEventHandler.onUserModeDiscovered(IRCParser, ClientInfo, String)

    /** {@inheritDoc} */
    @Override
    public void onInvite(final IRCParser tParser, final String userHost,
            final String channel) {
        checkParser(tParser);
    //#ServerEventHandler.java:299: method: void com.dmdirc.ServerEventHandler.onInvite(IRCParser, String, String)
    //#ServerEventHandler.java:299: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onInvite(IRCParser, String, String)
    //#    suspicious precondition index: [4]
    //#input(void onInvite(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onInvite(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onInvite(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onInvite(IRCParser, String, String)): channel
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Invite.__Descendant_Table[com/dmdirc/Invite]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Invite.__Descendant_Table[others]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Invite.__Dispatch_Table.getChannel()Ljava/lang/String;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.addInvite(Lcom/dmdirc/Invite;)V
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.removeInvite(Lcom/dmdirc/Invite;)V
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onInvite(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.SERVER_INVITERECEIVED
    //#input(void onInvite(IRCParser, String, String)): tParser
    //#input(void onInvite(IRCParser, String, String)): this
    //#input(void onInvite(IRCParser, String, String)): this.__Tag
    //#input(void onInvite(IRCParser, String, String)): this.owner
    //#input(void onInvite(IRCParser, String, String)): this.owner.__Tag
    //#input(void onInvite(IRCParser, String, String)): this.owner.invites
    //#input(void onInvite(IRCParser, String, String)): this.owner.listeners
    //#input(void onInvite(IRCParser, String, String)): this.owner.myState
    //#input(void onInvite(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onInvite(IRCParser, String, String)): this.owner.myState.state
    //#input(void onInvite(IRCParser, String, String)): this.owner.server
    //#input(void onInvite(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onInvite(IRCParser, String, String)): this.owner.server.myState
    //#input(void onInvite(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#input(void onInvite(IRCParser, String, String)): userHost
    //#pre[2] (void onInvite(IRCParser, String, String)): tParser != null
    //#pre[4] (void onInvite(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onInvite(IRCParser, String, String)): this.owner != null
    //#pre[7] (void onInvite(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onInvite(IRCParser, String, String)): this.owner.invites != null
    //#pre[11] (void onInvite(IRCParser, String, String)): this.owner.listeners != null
    //#pre[13] (void onInvite(IRCParser, String, String)): this.owner.myState != null
    //#pre[15] (void onInvite(IRCParser, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[17] (void onInvite(IRCParser, String, String)): this.owner.myState.state != null
    //#pre[19] (void onInvite(IRCParser, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.Date
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:com.dmdirc.interfaces.InviteListener:inviteExpired
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:com.dmdirc.interfaces.InviteListener:inviteReceived
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onInvite(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.addInvite(new Invite(owner, channel, userHost));
        owner.doNotification("inviteReceived",
    //#ServerEventHandler.java:302: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onInvite(IRCParser, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:302: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onInvite(IRCParser, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                CoreActionType.SERVER_INVITERECEIVED,
                tParser.getClientInfoOrFake(userHost), channel);
    }
    //#ServerEventHandler.java:305: end of method: void com.dmdirc.ServerEventHandler.onInvite(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onWallop(final IRCParser tParser, final String sMessage,
            final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:311: method: void com.dmdirc.ServerEventHandler.onWallop(IRCParser, String, String)
    //#ServerEventHandler.java:311: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWallop(IRCParser, String, String)
    //#    suspicious precondition index: [5]
    //#input(void onWallop(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onWallop(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onWallop(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onWallop(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.SERVER_WALLOPS
    //#input(void onWallop(IRCParser, String, String)): sHost
    //#input(void onWallop(IRCParser, String, String)): sMessage
    //#input(void onWallop(IRCParser, String, String)): tParser
    //#input(void onWallop(IRCParser, String, String)): this
    //#input(void onWallop(IRCParser, String, String)): this.__Tag
    //#input(void onWallop(IRCParser, String, String)): this.owner
    //#input(void onWallop(IRCParser, String, String)): this.owner.__Tag
    //#input(void onWallop(IRCParser, String, String)): this.owner.myState
    //#input(void onWallop(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onWallop(IRCParser, String, String)): this.owner.myState.state
    //#input(void onWallop(IRCParser, String, String)): this.owner.server
    //#input(void onWallop(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onWallop(IRCParser, String, String)): this.owner.server.myState
    //#input(void onWallop(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#pre[3] (void onWallop(IRCParser, String, String)): tParser != null
    //#pre[5] (void onWallop(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onWallop(IRCParser, String, String)): this.owner != null
    //#pre[8] (void onWallop(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onWallop(IRCParser, String, String)): this.owner.myState != null
    //#pre[12] (void onWallop(IRCParser, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onWallop(IRCParser, String, String)): this.owner.myState.state != null
    //#pre[16] (void onWallop(IRCParser, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onWallop(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("wallop", CoreActionType.SERVER_WALLOPS,
    //#ServerEventHandler.java:313: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWallop(IRCParser, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:313: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWallop(IRCParser, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sHost), sMessage);

    }
    //#ServerEventHandler.java:316: end of method: void com.dmdirc.ServerEventHandler.onWallop(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onWalluser(final IRCParser tParser, final String sMessage,
            final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:322: method: void com.dmdirc.ServerEventHandler.onWalluser(IRCParser, String, String)
    //#ServerEventHandler.java:322: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWalluser(IRCParser, String, String)
    //#    suspicious precondition index: [5]
    //#input(void onWalluser(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onWalluser(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onWalluser(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onWalluser(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.SERVER_WALLUSERS
    //#input(void onWalluser(IRCParser, String, String)): sHost
    //#input(void onWalluser(IRCParser, String, String)): sMessage
    //#input(void onWalluser(IRCParser, String, String)): tParser
    //#input(void onWalluser(IRCParser, String, String)): this
    //#input(void onWalluser(IRCParser, String, String)): this.__Tag
    //#input(void onWalluser(IRCParser, String, String)): this.owner
    //#input(void onWalluser(IRCParser, String, String)): this.owner.__Tag
    //#input(void onWalluser(IRCParser, String, String)): this.owner.myState
    //#input(void onWalluser(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onWalluser(IRCParser, String, String)): this.owner.myState.state
    //#input(void onWalluser(IRCParser, String, String)): this.owner.server
    //#input(void onWalluser(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onWalluser(IRCParser, String, String)): this.owner.server.myState
    //#input(void onWalluser(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#pre[3] (void onWalluser(IRCParser, String, String)): tParser != null
    //#pre[5] (void onWalluser(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onWalluser(IRCParser, String, String)): this.owner != null
    //#pre[8] (void onWalluser(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onWalluser(IRCParser, String, String)): this.owner.myState != null
    //#pre[12] (void onWalluser(IRCParser, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onWalluser(IRCParser, String, String)): this.owner.myState.state != null
    //#pre[16] (void onWalluser(IRCParser, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onWalluser(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("walluser", CoreActionType.SERVER_WALLUSERS,
    //#ServerEventHandler.java:324: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWalluser(IRCParser, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:324: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWalluser(IRCParser, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sHost), sMessage);
    }
    //#ServerEventHandler.java:326: end of method: void com.dmdirc.ServerEventHandler.onWalluser(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onWallDesync(final IRCParser tParser, final String sMessage,
            final String sHost) {
        checkParser(tParser);
    //#ServerEventHandler.java:332: method: void com.dmdirc.ServerEventHandler.onWallDesync(IRCParser, String, String)
    //#ServerEventHandler.java:332: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWallDesync(IRCParser, String, String)
    //#    suspicious precondition index: [5]
    //#input(void onWallDesync(IRCParser, String, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onWallDesync(IRCParser, String, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onWallDesync(IRCParser, String, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onWallDesync(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.SERVER_WALLDESYNC
    //#input(void onWallDesync(IRCParser, String, String)): sHost
    //#input(void onWallDesync(IRCParser, String, String)): sMessage
    //#input(void onWallDesync(IRCParser, String, String)): tParser
    //#input(void onWallDesync(IRCParser, String, String)): this
    //#input(void onWallDesync(IRCParser, String, String)): this.__Tag
    //#input(void onWallDesync(IRCParser, String, String)): this.owner
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.__Tag
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.myState
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.myState.__Tag
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.myState.state
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.server
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.server.__Tag
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.server.myState
    //#input(void onWallDesync(IRCParser, String, String)): this.owner.server.myState.__Tag
    //#pre[3] (void onWallDesync(IRCParser, String, String)): tParser != null
    //#pre[5] (void onWallDesync(IRCParser, String, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[6] (void onWallDesync(IRCParser, String, String)): this.owner != null
    //#pre[8] (void onWallDesync(IRCParser, String, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onWallDesync(IRCParser, String, String)): this.owner.myState != null
    //#pre[12] (void onWallDesync(IRCParser, String, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onWallDesync(IRCParser, String, String)): this.owner.myState.state != null
    //#pre[16] (void onWallDesync(IRCParser, String, String)): (soft) this.owner.server != null
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:getParser
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onWallDesync(IRCParser, String, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("walldesync", CoreActionType.SERVER_WALLDESYNC,
    //#ServerEventHandler.java:334: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWallDesync(IRCParser, String, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getClientInfoOrFake(String)
    //#ServerEventHandler.java:334: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onWallDesync(IRCParser, String, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                tParser.getClientInfoOrFake(sHost), sMessage);
    }
    //#ServerEventHandler.java:336: end of method: void com.dmdirc.ServerEventHandler.onWallDesync(IRCParser, String, String)

    /** {@inheritDoc} */
    @Override
    public void onNickChanged(final IRCParser tParser, final ClientInfo cClient,
            final String sOldNick) {
        checkParser(tParser);
    //#ServerEventHandler.java:342: method: void com.dmdirc.ServerEventHandler.onNickChanged(IRCParser, ClientInfo, String)
    //#ServerEventHandler.java:342: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    suspicious precondition index: [5]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): cClient
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/CoreActionType.SERVER_NICKCHANGE
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): sOldNick
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): tParser
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.myState
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.myState.__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.myState.state
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.server
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.server.__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.server.myState
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.owner.server.myState.__Tag
    //#pre[1] (void onNickChanged(IRCParser, ClientInfo, String)): cClient != null
    //#pre[3] (void onNickChanged(IRCParser, ClientInfo, String)): tParser != null
    //#pre[5] (void onNickChanged(IRCParser, ClientInfo, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[8] (void onNickChanged(IRCParser, ClientInfo, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[10] (void onNickChanged(IRCParser, ClientInfo, String)): this.owner.myState != null
    //#pre[12] (void onNickChanged(IRCParser, ClientInfo, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void onNickChanged(IRCParser, ClientInfo, String)): this.owner.myState.state != null
    //#pre[6] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.owner != null
    //#pre[16] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.owner.server != null
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getParser
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getState
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getServer
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
    //#test_vector(void onNickChanged(IRCParser, ClientInfo, String)): java.lang.Object:equals(...)@344: {0}, {1}

        if (cClient.equals(tParser.getMyself())) {
    //#ServerEventHandler.java:344: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getMyself()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getMyself()
            owner.doNotification("selfNickChange", CoreActionType.SERVER_NICKCHANGE,
    //#ServerEventHandler.java:345: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#ServerEventHandler.java:345: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
                    sOldNick, cClient.getNickname());
        }
    }
    //#ServerEventHandler.java:348: end of method: void com.dmdirc.ServerEventHandler.onNickChanged(IRCParser, ClientInfo, String)

    /** {@inheritDoc} */
    @Override
    public void onServerError(final IRCParser tParser, final String sMessage) {
        checkParser(tParser);
    //#ServerEventHandler.java:353: method: void com.dmdirc.ServerEventHandler.onServerError(IRCParser, String)
    //#ServerEventHandler.java:353: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onServerError(IRCParser, String)
    //#    suspicious precondition index: [4]
    //#input(void onServerError(IRCParser, String)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void onServerError(IRCParser, String)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void onServerError(IRCParser, String)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerState.CONNECTED
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerState.CONNECTING
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void onServerError(IRCParser, String)): com/dmdirc/actions/CoreActionType.SERVER_ERROR
    //#input(void onServerError(IRCParser, String)): sMessage
    //#input(void onServerError(IRCParser, String)): tParser
    //#input(void onServerError(IRCParser, String)): this
    //#input(void onServerError(IRCParser, String)): this.__Tag
    //#input(void onServerError(IRCParser, String)): this.owner
    //#input(void onServerError(IRCParser, String)): this.owner.__Tag
    //#input(void onServerError(IRCParser, String)): this.owner.myState
    //#input(void onServerError(IRCParser, String)): this.owner.myState.__Tag
    //#input(void onServerError(IRCParser, String)): this.owner.myState.state
    //#input(void onServerError(IRCParser, String)): this.owner.server
    //#input(void onServerError(IRCParser, String)): this.owner.server.__Tag
    //#input(void onServerError(IRCParser, String)): this.owner.server.myState
    //#input(void onServerError(IRCParser, String)): this.owner.server.myState.__Tag
    //#pre[4] (void onServerError(IRCParser, String)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[5] (void onServerError(IRCParser, String)): this.owner != null
    //#pre[7] (void onServerError(IRCParser, String)): this.owner.__Tag == com/dmdirc/Server
    //#pre[9] (void onServerError(IRCParser, String)): this.owner.myState != null
    //#pre[11] (void onServerError(IRCParser, String)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[13] (void onServerError(IRCParser, String)): this.owner.myState.state != null
    //#pre[15] (void onServerError(IRCParser, String)): (soft) this.owner.server != null
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:getParser
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:checkParser
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:getState
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:getStatus
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:getServer
    //#unanalyzed(void onServerError(IRCParser, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect

        owner.doNotification("serverError", CoreActionType.SERVER_ERROR, sMessage);
    //#ServerEventHandler.java:355: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void onServerError(IRCParser, String)
    //#    unanalyzed callee: void com.dmdirc.Server:doNotification(String, ActionType, Object[])
    }
    //#ServerEventHandler.java:356: end of method: void com.dmdirc.ServerEventHandler.onServerError(IRCParser, String)

    /** {@inheritDoc} */
    @Override
    protected void checkParser(final IRCParser parser) {
        super.checkParser(parser);
    //#ServerEventHandler.java:361: method: void com.dmdirc.ServerEventHandler.checkParser(IRCParser)
    //#ServerEventHandler.java:361: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void checkParser(IRCParser)
    //#    suspicious precondition index: [3]
    //#input(void checkParser(IRCParser)): "Event called from a parser that shouldn't be in use.&#10;State history:&#10;"._tainted
    //#input(void checkParser(IRCParser)): "Event called from a parser that's not in use.&#10;&#10; "._tainted
    //#input(void checkParser(IRCParser)): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void checkParser(IRCParser)): com/dmdirc/Channel.__Descendant_Table[com/dmdirc/Channel]
    //#input(void checkParser(IRCParser)): com/dmdirc/Channel.__Descendant_Table[others]
    //#input(void checkParser(IRCParser)): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void checkParser(IRCParser)): com/dmdirc/ChannelEventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void checkParser(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ChannelEventHandler]
    //#input(void checkParser(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/EventHandler]
    //#input(void checkParser(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#input(void checkParser(IRCParser)): com/dmdirc/EventHandler.__Descendant_Table[others]
    //#input(void checkParser(IRCParser)): com/dmdirc/EventHandler.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(void checkParser(IRCParser)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void checkParser(IRCParser)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void checkParser(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void checkParser(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void checkParser(IRCParser)): com/dmdirc/Server.__Dispatch_Table.getStatus()Lcom/dmdirc/ServerStatus;
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerState.CONNECTED
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerState.CONNECTING
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerState.DISCONNECTING
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void checkParser(IRCParser)): com/dmdirc/ServerStatus.__Dispatch_Table.getTransitionHistory()Ljava/lang/String;
    //#input(void checkParser(IRCParser)): parser
    //#input(void checkParser(IRCParser)): this
    //#input(void checkParser(IRCParser)): this.__Tag
    //#input(void checkParser(IRCParser)): this.owner
    //#input(void checkParser(IRCParser)): this.owner.__Tag
    //#input(void checkParser(IRCParser)): this.owner.myState
    //#input(void checkParser(IRCParser)): this.owner.myState.__Tag
    //#input(void checkParser(IRCParser)): this.owner.myState.state
    //#input(void checkParser(IRCParser)): this.owner.server
    //#input(void checkParser(IRCParser)): this.owner.server.__Tag
    //#input(void checkParser(IRCParser)): this.owner.server.myState
    //#input(void checkParser(IRCParser)): this.owner.server.myState.__Tag
    //#pre[3] (void checkParser(IRCParser)): this.__Tag in {com/dmdirc/ChannelEventHandler, com/dmdirc/EventHandler, com/dmdirc/ServerEventHandler}
    //#pre[4] (void checkParser(IRCParser)): this.owner != null
    //#pre[6] (void checkParser(IRCParser)): this.owner.__Tag == com/dmdirc/Server
    //#pre[8] (void checkParser(IRCParser)): this.owner.myState != null
    //#pre[10] (void checkParser(IRCParser)): this.owner.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[12] (void checkParser(IRCParser)): this.owner.myState.state != null
    //#pre[14] (void checkParser(IRCParser)): (soft) this.owner.server != null
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:getParser
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:getStatus
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:com.dmdirc.util.RollingList:getList
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:getServer
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:disconnect
    //#unanalyzed(void checkParser(IRCParser)): Effects-of-calling:java.lang.IllegalArgumentException
        
        if (owner.getState() != ServerState.CONNECTED
                && owner.getState() != ServerState.CONNECTING
                && owner.getState() != ServerState.DISCONNECTING) {
            throw new IllegalArgumentException("Event called from a parser that " +
    //#ServerEventHandler.java:366: ?conditional throw
    //#    getState(...)@363 == com/dmdirc/ServerState.DISCONNECTING
    //#    severity: LOW
    //#    class: com.dmdirc.ServerEventHandler
    //#    method: void checkParser(IRCParser)
    //#    basic block: bb_3
    //#    assertion: getState(...)@363 == com/dmdirc/ServerState.DISCONNECTING
    //#    VN: &com.dmdirc.ServerState__static_init.new ServerState(ServerState__static_init#9) == this.owner.myState.state
    //#    Expected: {1}
    //#    Bad: {0}
    //#    Attribs:  Int  Exp in +/-1000  Exp singleton  Bad singleton  Bad overlaps +/-1000  Bad < Exp
                    "shouldn't be in use.\nState history:\n"
                    + owner.getStatus().getTransitionHistory());
        }
    }
    //#ServerEventHandler.java:370: end of method: void com.dmdirc.ServerEventHandler.checkParser(IRCParser)

}
    //#output(com.dmdirc.ServerEventHandler__static_init): __Descendant_Table[com/dmdirc/ServerEventHandler]
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.addCallback(Lcom/dmdirc/parser/irc/callbacks/CallbackManager;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.checkParser(Lcom/dmdirc/parser/irc/IRCParser;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onAwayState(Lcom/dmdirc/parser/irc/IRCParser;ZLjava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onChannelSelfJoin(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ChannelInfo;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onConnectError(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ParserError;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onErrorInfo(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ParserError;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onInvite(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onMOTDEnd(Lcom/dmdirc/parser/irc/IRCParser;ZLjava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onMOTDLine(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onMOTDStart(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNickChanged(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNickInUse(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNoticeAuth(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNumeric(Lcom/dmdirc/parser/irc/IRCParser;I[Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPingFailed(Lcom/dmdirc/parser/irc/IRCParser;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPingSent(Lcom/dmdirc/parser/irc/IRCParser;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPingSuccess(Lcom/dmdirc/parser/irc/IRCParser;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPost005(Lcom/dmdirc/parser/irc/IRCParser;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateAction(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateCTCP(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateCTCPReply(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateMessage(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateNotice(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onServerError(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onSocketClosed(Lcom/dmdirc/parser/irc/IRCParser;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onUnknownNotice(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onUserModeChanged(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onUserModeDiscovered(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onWallDesync(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onWallop(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onWalluser(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.registerCallbacks()V
    //#output(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.unregisterCallbacks()V
    //#output(com.dmdirc.ServerEventHandler__static_init): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler]
    //#post(com.dmdirc.ServerEventHandler__static_init): __Descendant_Table[com/dmdirc/ServerEventHandler] == &__Dispatch_Table
    //#post(com.dmdirc.ServerEventHandler__static_init): com/dmdirc/EventHandler.__Descendant_Table[com/dmdirc/ServerEventHandler] == &__Dispatch_Table
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.addCallback(Lcom/dmdirc/parser/irc/callbacks/CallbackManager;Ljava/lang/String;)V == &addCallback
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.checkParser(Lcom/dmdirc/parser/irc/IRCParser;)V == &checkParser
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server; == &getServer
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onAwayState(Lcom/dmdirc/parser/irc/IRCParser;ZLjava/lang/String;)V == &onAwayState
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onChannelSelfJoin(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ChannelInfo;)V == &onChannelSelfJoin
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onConnectError(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ParserError;)V == &onConnectError
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onErrorInfo(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ParserError;)V == &onErrorInfo
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onInvite(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onInvite
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onMOTDEnd(Lcom/dmdirc/parser/irc/IRCParser;ZLjava/lang/String;)V == &onMOTDEnd
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onMOTDLine(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V == &onMOTDLine
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onMOTDStart(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V == &onMOTDStart
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNickChanged(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V == &onNickChanged
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNickInUse(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V == &onNickInUse
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNoticeAuth(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V == &onNoticeAuth
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onNumeric(Lcom/dmdirc/parser/irc/IRCParser;I[Ljava/lang/String;)V == &onNumeric
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPingFailed(Lcom/dmdirc/parser/irc/IRCParser;)V == &onPingFailed
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPingSent(Lcom/dmdirc/parser/irc/IRCParser;)V == &onPingSent
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPingSuccess(Lcom/dmdirc/parser/irc/IRCParser;)V == &onPingSuccess
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPost005(Lcom/dmdirc/parser/irc/IRCParser;)V == &onPost005
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateAction(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateAction
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateCTCP(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateCTCP
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateCTCPReply(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateCTCPReply
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateMessage(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateMessage
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onPrivateNotice(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateNotice
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onServerError(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;)V == &onServerError
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onSocketClosed(Lcom/dmdirc/parser/irc/IRCParser;)V == &onSocketClosed
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onUnknownNotice(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V == &onUnknownNotice
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onUserModeChanged(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;Ljava/lang/String;)V == &onUserModeChanged
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onUserModeDiscovered(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V == &onUserModeDiscovered
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onWallDesync(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onWallDesync
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onWallop(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onWallop
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.onWalluser(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onWalluser
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.registerCallbacks()V == &com/dmdirc/EventHandler.registerCallbacks
    //#post(com.dmdirc.ServerEventHandler__static_init): __Dispatch_Table.unregisterCallbacks()V == &com/dmdirc/EventHandler.unregisterCallbacks
    //#ServerEventHandler.java:: end of method: com.dmdirc.ServerEventHandler.com.dmdirc.ServerEventHandler__static_init
    //#ServerEventHandler.java:: end of class: com.dmdirc.ServerEventHandler
