Breach icon

xat chat610 network.as

Breach | PRO | 12/31/14 02:59:42 AM UTC | 0 ⭐ | 10846 👁️ | Never ⏰ | []
ActionScript 3 |

0 B

|

None

|

0 👍

/

0 👎

package 
{
    import com.adobe.serialization.json.*;
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import flash.system.*;
    import flash.utils.*;
    import flash.xml.*;
 
    public class network extends Object
    {
        public static var iprules:* = new Object();
        public static var xNumAttempts:* = 5;
        public static var xFlag:* = 0;
        public static var attempt:* = 0;
        public static var prevrpool:* = -1;
        public static var NetworkState:*;
        public static var NetworkTimeout:*;
        public static var MessageCount:*;
        public static var LurkerLimit:*;
        public static var LurkerTimeout:*;
        public static var socket:*;
        public static var UnfairFile:String = "";
        public static var UnfairMessage:String = "";
        public static var UnfairGroupName:String = "";
        public static var GotDone:Boolean = false;
        public static var GotFirstDone:Boolean = false;
        public static var w_redirectdom:* = undefined;
        public static var w_redirectport:* = undefined;
        public static var QK:* = false;
        public static var YI:* = undefined;
        public static var YC:int = undefined;
        public static var YC2:int = undefined;
        public static var WV:* = false;
        public static var WC:*;
        public static var FI:* = undefined;
        public static var LastLocate:* = 0;
        public static var fs:* = 0;
        public static var sjt:* = 0;
        public static var jt1:* = 0;
        public static var jt2:* = 0;
        public static var UngagTimeout:* = undefined;
        public static var Bootp:* = undefined;
        public static var UserId:*;
        public static var k1:*;
        public static var k2:*;
        public static var J2_Order:*;
        public static var ipLoaded:* = false;
        public static var p_w:* = 100;
        public static var p_h:* = 100;
        public static var p_octaves:* = 6;
        public static var p_seed:* = 12345;
        public static var p_x:* = 50;
        public static var p_y:* = 50;
        public static var codeLoad:*;
        public static var mcCode:MovieClip = null;
 
        final public static function PickIP(param1:*)
        {
            var _loc_5:* = undefined;
            var _loc_6:* = undefined;
            var _loc_7:* = undefined;
            var _loc_8:* = undefined;
            var _loc_9:* = undefined;
            var _loc_10:* = undefined;
            var _loc_11:* = undefined;
            if(attempt >= iprules["order"].length)
            {
                return new Array("0", 0, 0);
            }
            var _loc_2:* = iprules["order"][attempt][0];
            var _loc_3:* = iprules[_loc_2];
            var _loc_4:* = iprules["order"][attempt][1];
            if((_loc_3[0] & 1) == 1)
            {
                _loc_5 = 0;
                if(prevrpool == -1)
                {
                    _loc_5 = (Math.floor(Math.random() * (_loc_3.length - 1))) + 1;
                }
                else
                {
                    _loc_5 = (_loc_5 % (_loc_3.length - 1)) + 1;
                }
                _loc_6 = Math.floor(Math.random() * _loc_3[_loc_5].length);
                _loc_7 = _loc_3[_loc_5][_loc_6].split(":");
                if(_loc_7[1] == undefined)
                {
                    _loc_7[1] = 10000;
                }
                if(_loc_7[2] == undefined)
                {
                    _loc_7[2] = 39;
                }
                _loc_8 = xatlib.xInt(_loc_7[1]) + (Math.floor(Math.random() * xatlib.xInt(_loc_7[2])));
                prevrpool = _loc_5;
                return new Array(_loc_7[0], _loc_8, _loc_4);
            }
            else
            {
                _loc_9 = network.GetDom(param1);
                _loc_10 = network.GetPort(param1);
                _loc_11 = _loc_3[1][(4 * _loc_9) + (Math.floor(Math.random() * 4))];
            }
            return new Array(_loc_11, _loc_10, _loc_4);
        }
 
        final public static function GetDom(param1:*) : Number
        {
            if(xFlag & 8)
            {
                return Math.floor(Math.random() * 4);
            }
            if(xatlib.xInt(param1) == 8)
            {
                return 0;
            }
            return xatlib.xInt(param1) < 8 ? 3 : (xatlib.xInt(param1) & 96) >> 5;
        }
 
        final public static function GetPort(param1:*) : Number
        {
            if(xFlag & 8)
            {
                return (10000 + 7) + (Math.floor(Math.random() * 32));
            }
            if(xatlib.xInt(param1) == 8)
            {
                return 10000;
            }
            return xatlib.xInt(param1) < 8 ? (10000 - 1) + xatlib.xInt(param1) : (10000 + 7) + (xatlib.xInt(param1) % 32);
        }
 
        final public static function NetworkInit()
        {
            NetworkState = 0;
            NetworkTimeout = -1;
            MessageCount = 0;
            LurkerLimit = (12 * 60) * 5;
            LurkerTimeout = -1;
        }
 
        final public static function NetworkStartChat()
        {
            ipLoaded = false;
            var _loc_1:URLRequest = new URLRequest();
            var _loc_2:Date = new Date();
            _loc_1.url = (todo.chatdomain + "ip2.htm?init") + (xatlib.xInt((_loc_2.getTime() + 30000) / 60000));
            _loc_1.method = URLRequestMethod.GET;
            var _loc_3:URLLoader = new URLLoader();
            _loc_3.load(_loc_1);
            _loc_3.addEventListener(Event.COMPLETE, ipcompleteHandler);
            _loc_3.addEventListener(IOErrorEvent.IO_ERROR, ipcompleteError);
            network.SetNetworkState(14, 60);
        }
 
        final public static function NetworkStartChat2()
        {
            var _loc_1:* = undefined;
            var _loc_3:* = undefined;
            var _loc_4:URLRequest = null;
            var _loc_5:URLLoader = null;
            xmessage.ClearLists(true);
            UngagTimeout = undefined;
            var _loc_2:* = iprules["k1n"];
            _loc_2;
            todo.w_userno;
            todo.w_k1;
            if(_loc_2 && todo.w_userno && todo.w_userno < _loc_2 && todo.w_k1 && iprules["time"])
            {
                _loc_3 = 14;
                if(iprules["k1d"])
                {
                    _loc_3 = iprules["k1d"];
                }
                _loc_1 = todo.w_k1.substr(10, 8);
                if(!_loc_1 || (_loc_1 + (_loc_3 * 24) * 3600) < iprules["time"])
                {
                    todo.w_k1 = undefined;
                    _loc_1 = 1;
                }
                else
                {
                    _loc_1 = 0;
                }
            }
            if(!(todo.w_userrev == undefined) || _loc_1 && !todo.w_k1 || todo.w_k2 == 0)
            {
                UserId = undefined;
                _loc_4 = new URLRequest();
                _loc_4.url = (todo.chatdomain + "auser3.php?") + "u=" + xatlib.xInt(todo.w_userno) + "&k2=" + todo.w_k2 + "&t=" + Math.random();
                _loc_4.method = URLRequestMethod.GET;
                _loc_5 = new URLLoader();
                _loc_5.load(_loc_4);
                _loc_5.addEventListener(Event.COMPLETE, ausercompleteHandler);
            }
            else
            {
                if(todo.w_userrev == undefined)
                {
                    UserId = 2;
                }
                else
                {
                    UserId = todo.w_userno;
                    k1 = todo.w_k1;
                    k2 = todo.w_k2;
                }
            }
            network.SetNetworkState(1, 120);
            todo.DoBuildUserListScrollUp = true;
        }
 
        final public static function NetworkClose()
        {
            network.SetNetworkState(0, -1);
            if(socket)
            {
                if(socket.connected)
                {
                    socket.close();
                }
            }
            if(todo.messageecho == "s")
            {
                if(chat.sending_lc)
                {
                    chat.sending_lc.send(chat.fromxat, "onMsg", 4, 0, "o");
                }
            }
        }
 
        final public static function SetNetworkState(param1:*, param2:*)
        {
            var _loc_3:String = null;
            NetworkState = param1;
            NetworkTimeout = param2;
            if(main.ButtonLoginMc != undefined)
            {
                if(NetworkState == 0)
                {
                    _loc_3 = xconst.ST(19);
                }
                else
                {
                    if(NetworkState == 4)
                    {
                        _loc_3 = xconst.ST(31);
                    }
                    else
                    {
                        _loc_3 = xconst.ST(32);
                    }
                }
                main.ButtonLoginMc.SetText(_loc_3);
            }
        }
 
        final public static function NetworkTick()
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            var _loc_4:int = NaN;
            var _loc_5:* = undefined;
            var _loc_6:* = undefined;
            var _loc_7:int = 0;
            if(NetworkTimeout != -1)
            {
                NetworkTimeout = NetworkTimeout - 1;
                if(NetworkTimeout < 0)
                {
                    NetworkTimeout = 0;
                }
            }
            if(NetworkState == 1)
            {
                network.auserLoaded();
                if(NetworkTimeout == 0)
                {
                    network.SetNetworkState(0, -1);
                    if(xFlag & 2)
                    {
                        xatlib.xLog("AT_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                    }
                    xatlib.GeneralMessage(xconst.ST(100), xconst.ST(98) + " (AT)");
                }
            }
            else
            {
                if(NetworkState == 3)
                {
                    if(NetworkTimeout == 0)
                    {
                        if(attempt < xNumAttempts)
                        {
                            var _loc_8:network = network;
                            var _loc_9:* = _loc_8.attempt + 1;
                            _loc_8.attempt = _loc_9;
                            _loc_8.SetNetworkState(0, -1);
                            todo.lb = "n";
                            todo.DoUpdate = true;
                            _loc_8.NetworkClose();
                            _loc_8.NetworkStartChat();
                        }
                        else
                        {
                            _loc_8.SetNetworkState(0, -1);
                            if(xFlag & 2)
                            {
                                xatlib.xLog("CT_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                            }
                            xatlib.GeneralMessage(xconst.ST(100), xconst.ST(98) + " (CT)");
                        }
                    }
                }
                else
                {
                    if(NetworkState == 4)
                    {
                        if(LurkerTimeout != -1)
                        {
                            if(todo.w_userno <= (2000000000 - 100000))
                            {
                                if(LurkerTimeout <= 0)
                                {
                                    _loc_8.NetworkSendMsg(todo.w_userno, "/KEEPALIVE", 0, 0, 1);
                                }
                                else
                                {
                                    LurkerTimeout = LurkerTimeout - 1;
                                }
                            }
                        }
                    }
                    else
                    {
                        if(NetworkState == 5)
                        {
                            if(NetworkTimeout != -1)
                            {
                                if(NetworkTimeout == 0)
                                {
                                    _loc_8.NetworkStartChat();
                                }
                            }
                            else
                            {
                                _loc_8.NetworkStartChat();
                            }
                        }
                        else
                        {
                            if(NetworkState == 6)
                            {
                                if(YI != undefined)
                                {
                                    if(todo.w_password != undefined)
                                    {
                                        _loc_8.NetworkLogin(todo.w_email, todo.w_password);
                                        WV = true;
                                    }
                                    _loc_8.SetNetworkState(7, 120);
                                }
                                if(NetworkTimeout == 0)
                                {
                                    _loc_8.SetNetworkState(0, -1);
                                    if(xFlag & 2)
                                    {
                                        xatlib.xLog("Y_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                                    }
                                    xatlib.GeneralMessage(xconst.ST(100), xconst.ST(98) + " (Y)");
                                }
                            }
                            else
                            {
                                if(NetworkState == 7)
                                {
                                    if(WC !== 1)
                                    {
                                        if(mcCode && mcCode.code)
                                        {
                                            WC = mcCode.code;
                                            mcCode.code = 0;
                                        }
                                        else
                                        {
                                        }
                                    }
                                    if(WV == false && WC > 0)
                                    {
                                        _loc_8.myOnJoin();
                                    }
                                }
                                else
                                {
                                    if(NetworkState == 8)
                                    {
                                    }
                                    else
                                    {
                                        if(NetworkState == 9)
                                        {
                                        }
                                        else
                                        {
                                            if(NetworkState == 11)
                                            {
                                            }
                                            else
                                            {
                                                if(NetworkState == 12)
                                                {
                                                }
                                                else
                                                {
                                                    if(NetworkState == 13)
                                                    {
                                                    }
                                                    else
                                                    {
                                                        if(NetworkState == 14)
                                                        {
                                                            if(ipLoaded || NetworkTimeout == 0)
                                                            {
                                                                ipLoaded = true;
                                                                _loc_8.NetworkStartChat2();
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            MessageCount = MessageCount - 1;
            if(MessageCount < 0)
            {
                MessageCount = 0;
            }
            if((todo.MessageToProcess == "") && todo.lb == "n" && GotDone)
            {
                main.ProcessMessage();
            }
            if((todo.MessageToSend == "") && MessageCount <= 0 && todo.lb == "n" && GotDone)
            {
                todo.w_k1;
                if(!(todo.w_k1 && todo.MessageToSend.indexOf(todo.w_k1.toString()) == -1))
                {
                    todo.MessageToSend = xatlib.Replace(todo.MessageToSend, todo.w_k1.toString(), (Math.floor(Math.random() * 2147483648.00)).toString());
                }
                todo.w_k3;
                if(!(todo.w_k3 && todo.MessageToSend.indexOf(todo.w_k3.toString()) == -1))
                {
                    todo.MessageToSend = xatlib.Replace(todo.MessageToSend, todo.w_k3.toString(), (Math.floor(Math.random() * 2147483648.00)).toString());
                }
                _loc_2 = xatlib.CountLinks(todo.MessageToSend);
                if(_loc_2 <= 2)
                {
                    _loc_8.NetworkSendMsg(todo.w_userno, todo.MessageToSend, todo.PrivateChat, todo.PrivateMessage, 0);
                    var _loc_8:int = 0;
                    todo.PrivateMessage = _loc_8;
                    todo.PrivateChat = _loc_8;
                    main.lockmc._visible = false;
                    if(todo.messageecho == "l" && _loc_2 > 0)
                    {
                        if(chat.sending_lc)
                        {
                            chat.sending_lc.send(chat.fromxat, "onMsg", 4, todo.w_userno, todo.MessageToSend);
                        }
                    }
                }
                MessageCount = 25;
                todo.LastMessageToSend = todo.MessageToSend;
                todo.MessageToSend = "";
            }
            if(!(todo.w_registered == undefined) && FI && (todo.tick % 12) == 6 && todo.lb == "t" && GotDone && w_redirectport == undefined || w_redirectport == 80)
            {
                _loc_3 = todo.w_friendlist.length;
                if(fs > 0)
                {
                    xatlib.MainSolWrite("w_friendlist2", todo.w_friendlist2);
                }
                fs = 0;
                _loc_4 = 0;
                while(_loc_4 < _loc_3)
                {
                    _loc_5 = todo.w_friendlist[_loc_4].u;
                    if(_loc_5 > 6 && todo.w_friendlist2[_loc_5] == undefined)
                    {
                        _loc_6 = "";
                        if(todo.w_friendlist[_loc_4].u != todo.w_userno)
                        {
                            _loc_6 = "/b " + todo.w_friendlist[_loc_4].u + "," + "1" + "," + "" + "," + (todo.w_friendlist[_loc_4].n.substr(0, 20));
                        }
                        else
                        {
                            if(todo.w_Mask == undefined)
                            {
                                todo.w_Mask = todo.NO_POWERS.slice();
                            }
                            _loc_6 = "/b " + todo.w_friendlist[_loc_4].u + "," + "1" + "," + "" + "," + (todo.w_friendlist[_loc_4].n.substr(0, 128)) + "," + (todo.w_friendlist[_loc_4].a.toString().substr(0, 128)) + "," + (todo.w_friendlist[_loc_4].h.substr(0, 128)) + "," + todo.w_friendlist[_loc_4].v.toString();
                            _loc_7 = 0;
                            while(_loc_7 < todo.MAX_PWR_INDEX)
                            {
                                _loc_6 = _loc_6 + "," + xatlib.xInt(todo.w_Mask[_loc_7]);
                                _loc_7++;
                            }
                        }
                        _loc_8.NetworkSendMsg(todo.w_userno, _loc_6, 0, 0, 2);
                        todo.w_friendlist2[_loc_5] = {flags:1};
                        var _loc_8:network = _loc_8;
                        var _loc_9:* = _loc_8.fs + 1;
                        _loc_8.fs = _loc_9;
                        if(_loc_9 >= 5)
                        {
                            break;
                        }
                    }
                    _loc_4 = _loc_4 + 1;
                }
                if(fs == 0)
                {
                    FI = false;
                }
            }
            var _loc_1:* = _loc_8.getTimer();
            if(todo.lb == "t" && _loc_1 > UngagTimeout)
            {
                _loc_4 = xatlib.FindUser(todo.w_userno);
                todo.Users[_loc_4].gagged = false;
                todo.DoBuildUserList = true;
                UngagTimeout = undefined;
            }
        }
 
        final private static function ipcompleteHandler(param1:Event) : void
        {
            if(ipLoaded)
            {
                return;
            }
            var _loc_2:URLLoader = network.URLLoader(param1.target);
            iprules = xJSON.decode(_loc_2.data);
            xFlag = iprules["xFlag"];
            xNumAttempts = iprules["order"].length;
            ipLoaded = true;
        }
 
        final public static function ipcompleteError(param1:ErrorEvent) : void
        {
            ipLoaded = true;
        }
 
        final private static function ausercompleteHandler(param1:Event) : void
        {
            var _loc_2:URLLoader = network.URLLoader(param1.target);
            var _loc_3:URLVariables = new URLVariables(_loc_2.data.substr(1));
            UserId = _loc_3.UserId;
            k1 = _loc_3.k1;
            k2 = _loc_3.k2;
        }
 
        final public static function auserLoaded()
        {
            var Port:* = undefined;
            var IsBanned:Boolean = false;
            var vx:* = undefined;
            var ta:* = undefined;
            var ctimeout:* = undefined;
            var so4:* = undefined;
            var rn:* = undefined;
            if(UserId == undefined)
            {
            }
            else
            {
                if(UserId == 0)
                {
                    network.SetNetworkState(0, -1);
                    if(xFlag & 2)
                    {
                        xatlib.xLog("A_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                    }
                    xatlib.GeneralMessage(xconst.ST(100), xconst.ST(98) + " (A)");
                    todo.lb = "n";
                    todo.DoUpdate = true;
                }
                else
                {
                    if(UserId != 2)
                    {
                        todo.w_userno = xatlib.xInt(UserId);
                        todo.w_k1 = k1;
                        todo.w_k2 = xatlib.xInt(k2);
                        so4 = xatlib.getLocal("chat", "/");
                        so4.objectEncoding = ObjectEncoding.AMF0;
                        if(todo.w_name == "")
                        {
                            todo.w_name = xatlib.GetDefaultName(todo.w_userno);
                        }
                        if(todo.w_avatar == "")
                        {
                            todo.w_avatar = xatlib.GetDefaultAvatar(todo.w_userno);
                        }
                        if(todo.w_homepage == "")
                        {
                            todo.w_homepage = "";
                        }
                    }
                    else
                    {
                        rn = xatlib.xInt(Math.random() * 1000000);
                        if(todo.w_name == "")
                        {
                            todo.w_name = xatlib.GetDefaultName(rn);
                        }
                        if(todo.w_avatar == "")
                        {
                            todo.w_avatar = xatlib.GetDefaultAvatar(rn);
                        }
                        if(todo.w_homepage == "")
                        {
                            todo.w_homepage = "";
                        }
                    }
                    IsBanned = network.OnGagList(todo.w_useroom);
                    vx = todo.Macros;
                    xmessage.ClearLists(true);
                    todo.Users.push({n:xatlib.NameNoXat(todo.w_name), s:todo.Macros != undefined ? todo.Macros["status"] : undefined, u:todo.w_userno, v:todo.w_userrev, a:todo.w_avatar, h:todo.w_homepage, online:true, banned:IsBanned, owner:false, OnXat:!(xatlib.xInt(global.xc) & 32) == 0, registered:todo.w_registered, VIP:todo.w_VIP, Bride:todo.w_d2, aFlags:todo.w_d0, Powers:todo.w_Powers, cb:todo.w_cb});
                    network.AddGiftPower(0);
                    todo.DoUpdateMessages = true;
                    todo.ScrollDown = true;
                    todo.LastScrollTime = undefined;
                    ta = network.PickIP(todo.w_useroom);
                    todo.sockdomain = ta[0];
                    todo.useport = ta[1];
                    ctimeout = ta[2];
                    if(todo.sockdomain == "0" || todo.useport == 0)
                    {
                        network.SetNetworkState(0, -1);
                        if(xFlag & 2)
                        {
                            xatlib.xLog("Z_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                        }
                        xatlib.GeneralMessage(xconst.ST(100), xconst.ST(98) + " (Z)");
                    }
                    else
                    {
                        if(NetworkState == 3)
                        {
                            NetworkTimeout = 0;
                        }
                        var catchIOError:Function = _func_13;
                        var catchSecurityError:Function = _func_14;
                        socket = new XMLSocket();
                        socket.addEventListener(Event.CONNECT, myOnConnect);
                        socket.addEventListener(DataEvent.DATA, myOnXML);
                        socket.addEventListener(Event.CLOSE, socketClose);
                        socket.addEventListener(IOErrorEvent.IO_ERROR, catchIOError);
                        socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, catchSecurityError);
                        sjt = network.getTimer();
                        Security.loadPolicyFile("xmlsocket://" + todo.sockdomain + ":10090");
                        socket.connect(todo.sockdomain, todo.useport);
                        if(xFlag & 4)
                        {
                            xatlib.xLog("C_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                        }
                        network.SetNetworkState(3, ctimeout);
                    }
                }
            }
        }
 
        final public static function socketClose(param1:Event)
        {
            if(w_redirectport == undefined)
            {
                network.SetNetworkState(5, Math.floor((Math.random() * 12) * 4));
                todo.lb = "n";
                todo.DoUpdate = true;
            }
            else
            {
            }
        }
 
        final public static function myOnConnect(param1:Event)
        {
            var _loc_3:* = undefined;
            var _loc_4:* = undefined;
            var _loc_5:String = null;
            var _loc_2:* = true;
            if(NetworkState == 3)
            {
                if(_loc_2)
                {
                    YI = undefined;
                    _loc_3 = new XMLDocument();
                    _loc_4 = _loc_3.createElement("y");
                    if(todo.useport == 80)
                    {
                        _loc_4.attributes.p = network.GetPort(todo.w_useroom);
                        _loc_4.attributes.s = network.GetDom(todo.w_useroom);
                    }
                    if(todo.pass != undefined)
                    {
                        _loc_4.attributes.m = 1;
                    }
                    _loc_4.attributes.r = todo.w_useroom;
                    _loc_4.attributes.v = attempt;
                    _loc_4.attributes.u = todo.w_userno;
                    _loc_3.appendChild(_loc_4);
                    _loc_5 = xatlib.XMLOrder(_loc_3, new Array("w", "r", "m", "s", "p", "v", "u"));
                    socket.send(_loc_5);
                    network.SetNetworkState(6, 120);
                }
                else
                {
                    if(attempt < xNumAttempts)
                    {
                        var _loc_6:network = network;
                        var _loc_7:* = _loc_6.attempt + 1;
                        _loc_6.attempt = _loc_7;
                        _loc_6.SetNetworkState(0, -1);
                        todo.lb = "n";
                        todo.DoUpdate = true;
                        _loc_6.NetworkClose();
                        _loc_6.NetworkStartChat();
                    }
                    else
                    {
                        _loc_6.SetNetworkState(0, -1);
                        if(xFlag & 2)
                        {
                            xatlib.xLog("CT_" + todo.w_useroom + "_" + todo.useport + "_" + todo.sockdomain);
                        }
                        xatlib.GeneralMessage(xconst.ST(100), xconst.ST(98) + " (F)");
                    }
                }
            }
            else
            {
            }
        }
 
        final public static function myOnJoin()
        {
            var _loc_8:int = 0;
            network.SetNetworkState(4, -1);
            todo.DoUserSnd = true;
            var _loc_1:String = xatlib.CleanTextNoXat(todo.w_name);
            var _loc_2:String = xatlib.CleanText(todo.w_avatar);
            var _loc_3:String = xatlib.CleanText(todo.w_homepage);
            if(_loc_1 == null)
            {
                _loc_1 = "";
            }
            if(_loc_2 == null)
            {
                _loc_2 = "";
            }
            if(_loc_3 == null)
            {
                _loc_3 = "";
            }
            GotDone = false;
            var _loc_4:* = new XMLDocument();
            var _loc_5:* = _loc_4.createElement("j2");
            _loc_5.attributes.v = todo.w_userrev == undefined ? 0 : todo.w_userrev;
            _loc_5.attributes.h = _loc_3.substr(0, 128);
            _loc_5.attributes.a = _loc_2.substr(0, 128);
            _loc_5.attributes.n = _loc_1.substr(0, 256);
            if(todo.Macros != undefined)
            {
                if(todo.Macros["status"] != undefined)
                {
                    _loc_5.attributes.n = _loc_5.attributes.n + "##" + (todo.Macros["status"].substr(0, 128));
                }
            }
            if(todo.w_registered != undefined)
            {
                _loc_5.attributes.N = todo.w_registered;
            }
            if(todo.w_dt)
            {
                _loc_5.attributes.dt = todo.w_dt;
            }
            if(todo.w_xats)
            {
                _loc_5.attributes.dx = todo.w_xats;
            }
            if(todo.w_sn)
            {
                _loc_5.attributes.sn = todo.w_sn;
            }
            if(todo.w_PowerO != undefined)
            {
                _loc_5.attributes.dO = todo.w_PowerO;
            }
            if(todo.w_Powers != null)
            {
                _loc_8 = 0;
                while(_loc_8 < todo.MAX_PWR_INDEX)
                {
                    if(todo.w_Powers[_loc_8])
                    {
                        _loc_5.attributes["d" + (_loc_8 + 4)] = todo.w_Powers[_loc_8];
                    }
                    _loc_8++;
                }
            }
            if(todo.w_d3)
            {
                _loc_5.attributes.d3 = todo.w_d3;
            }
            if(todo.w_d2)
            {
                _loc_5.attributes.d2 = todo.w_d2;
            }
            if(todo.w_d0 != undefined)
            {
                _loc_5.attributes.d0 = todo.w_d0;
            }
            if(todo.w_Mask != null)
            {
                _loc_8 = 0;
                while(_loc_8 < todo.MAX_PWR_INDEX)
                {
                    if(todo.w_Mask[_loc_8])
                    {
                        _loc_5.attributes["m" + _loc_8] = todo.w_Mask[_loc_8];
                    }
                    _loc_8++;
                }
            }
            _loc_5.attributes.u = todo.w_userrev == undefined ? 2 : todo.w_userno;
            if(global.rf)
            {
                _loc_5.attributes.e = "1";
            }
            _loc_5.attributes.f = (global.um != undefined ? 0 : todo.w_autologin & 1 ? 0 : 1) | (todo.LoginPressed ? 2 : 0) | (global.pass != undefined ? 4 : 0);
            todo.w_autologin = todo.w_autologin | 1;
            todo.pass;
            if(!(todo.pass || global.pass == undefined))
            {
                _loc_5.attributes.r = global.pass != undefined ? global.pass : todo.pass;
            }
            if(network.OnGagList(todo.w_useroom))
            {
                _loc_5.attributes.b = network.GetGagTime(todo.w_useroom);
            }
            _loc_5.attributes.c = todo.w_useroom;
            if(todo.w_pool != undefined)
            {
                _loc_5.attributes.p = todo.w_pool;
            }
            if(todo.w_d1)
            {
                _loc_5.attributes.d1 = todo.w_d1;
            }
            _loc_5.attributes.k3 = xatlib.xInt(todo.w_k3);
            _loc_5.attributes.k = todo.w_k1;
            _loc_5.attributes.y = YI;
            if(global.xc & 32)
            {
                _loc_5.attributes.q = 1;
            }
            _loc_5.attributes.l2 = jt1;
            _loc_5.attributes.l3 = jt2;
            _loc_5.attributes.l4 = network.getTimer() - sjt;
            var _loc_6:BitmapData = new BitmapData(p_w, p_h, false, 13421772);
            _loc_6.perlinNoise(p_w, p_h, p_octaves, p_seed, false, true, (BitmapDataChannel.ALPHA | BitmapDataChannel.RED) | BitmapDataChannel.GREEN | BitmapDataChannel.BLUE, false, null);
            _loc_5.attributes.l5 = _loc_6.getPixel32(p_x, p_y);
            if(WC > 1)
            {
                _loc_5.attributes.Y = WC;
            }
            _loc_5.attributes.cb = todo.w_cb;
            _loc_6.dispose();
            _loc_4.appendChild(_loc_5);
            if(!J2_Order)
            {
                J2_Order = "cb,Y,l5,l4,l3,l2,q,y,k,k3,d1,z,p,c,b,r,f,e,u";
                _loc_8 = 0;
                while(_loc_8 < todo.MAX_PWR_INDEX)
                {
                    J2_Order = J2_Order + ",m" + _loc_8;
                    _loc_8++;
                }
                J2_Order = J2_Order + ",d0";
                _loc_8 = 2;
                while(_loc_8 < (todo.MAX_PWR_INDEX + 4))
                {
                    J2_Order = J2_Order + ",d" + _loc_8;
                    _loc_8++;
                }
                J2_Order = J2_Order + ",dO,sn,dx,dt,N,n,a,h,v";
                J2_Order = J2_Order.split(",");
            }
            var _loc_7:String = xatlib.XMLOrder(_loc_4, J2_Order);
            socket.send(_loc_7);
            todo.lb = "t";
            todo.OnSuper = true;
            todo.DoUpdate = true;
            todo.ResetSmilies = true;
            LurkerTimeout = LurkerLimit;
            if(todo.messageecho == "s")
            {
                if(chat.sending_lc)
                {
                    chat.sending_lc.send(chat.fromxat, "onMsg", 4, 0, "i");
                }
            }
            if(todo.messageecho == "a")
            {
                if(chat.sending_lc)
                {
                    chat.sending_lc.send(chat.fromxat, "onMsg", 4, 0, "d");
                }
            }
            xatlib.MainSolWrite("w_lastroom", todo.w_useroom);
        }
 
        final public static function myOnXML(param1:DataEvent)
        {
            var u:* = undefined;
            var UserIndex:* = undefined;
            var n:* = undefined;
            var stra:* = undefined;
            var t:int = 0;
            var uid:int = 0;
            var t55:* = undefined;
            var s:* = undefined;
            var vx:* = undefined;
            var str:String = null;
            var pstr:* = undefined;
            var gpa:* = undefined;
            var ll:* = undefined;
            var j:* = undefined;
            var c:* = undefined;
            var temp_comm:* = undefined;
            var IsPrivateMessage:Boolean = false;
            var IsPrivateChat:Boolean = false;
            var IsNew:Boolean = false;
            var IsDeleteMessage:* = undefined;
            var IsGagUser:* = undefined;
            var IsUnGagUser:* = undefined;
            var IsMakeUser:* = undefined;
            var IsUnMakeUser:* = undefined;
            var IsKickUser:* = undefined;
            var IsUnknown:* = undefined;
            var IsControlMessage:* = undefined;
            var IsLocateUser:* = undefined;
            var IsAtUser:* = undefined;
            var IsScroller:* = undefined;
            var FirstTwo:* = undefined;
            var IsSlash:* = undefined;
            var zz:* = undefined;
            var tgagged:* = undefined;
            var tbanned:* = undefined;
            var tfriend:* = undefined;
            var tmodplus:* = undefined;
            var IsIgnored:Boolean = false;
            var strText:String = null;
            var lc:* = undefined;
            var Links:* = undefined;
            var Payload:* = undefined;
            var TypeOn:* = undefined;
            var TypeOff:* = undefined;
            var farray:Array = null;
            var id:* = undefined;
            var f:* = undefined;
            var friobj:Object = null;
            var len:* = undefined;
            var i:int = NaN;
            var so93:* = undefined;
            var pci:* = undefined;
            var ptime:* = undefined;
            var tt:* = undefined;
            var TabsLength:* = undefined;
            var uuid:* = undefined;
            var arg:* = undefined;
            var selfid:int = NaN;
            var Friend:int = 0;
            var loctext:* = undefined;
            var pp:* = undefined;
            var ii:* = undefined;
            var d:* = undefined;
            var g:* = undefined;
            var msgno:* = undefined;
            var v:* = undefined;
            var NoBanMessage:* = undefined;
            var BanTime:* = undefined;
            var my_date:Date = null;
            var UnfairTitle:String = null;
            var UnfairReport:String = null;
            var hh:* = undefined;
            var so47:* = undefined;
            var vt:* = undefined;
            var nopc:* = undefined;
            var nom:* = undefined;
            var maxpc:* = undefined;
            var maxm:* = undefined;
            var RemoveMessage:* = undefined;
            var HaveTab:* = undefined;
            var AllowPC:* = undefined;
            var TabNumber:int = NaN;
            var self:int = NaN;
            var IsMainOwner:Boolean = false;
            var IsOwner:Boolean = false;
            var IsModerator:Boolean = false;
            var IsMember:Boolean = false;
            var IsOnline:Boolean = false;
            var IsBanned:Boolean = false;
            var IsForever:Boolean = false;
            var IsGagged:Boolean = false;
            var OnXat:Boolean = false;
            var IsVIP:Boolean = false;
            var Powers:* = undefined;
            var IsStealth:Boolean = false;
            var cc:* = undefined;
            var a:* = undefined;
            var ee:* = undefined;
            var StringIndex:int = 0;
            var type:* = undefined;
            var Text:* = undefined;
            var left:int = NaN;
            var RndOr:* = undefined;
            var Rnd2:* = undefined;
            var q:* = undefined;
            var sarray:Array = null;
            var p:* = undefined;
            var doautoredirect:Boolean = false;
            var reason:* = undefined;
            var bootr:* = undefined;
            var errnum:int = 0;
            var event:DataEvent = param1;
            var doc:* = new XMLDocument(event.data);
            var e:* = doc.firstChild;
            if(e.attributes.n != undefined)
            {
                e.attributes.n.replace(xatlib.r1, "");
                e.attributes.n.replace(xatlib.r2, "");
            }
            if(e.attributes.t != undefined)
            {
                e.attributes.t.replace(xatlib.r1, "");
                e.attributes.t.replace(xatlib.r2, "");
            }
            if(e != null)
            {
                u = xatlib.xInt(e.attributes.u);
                UserIndex = xatlib.FindUser(u);
                e.attributes.t;
                if(e.attributes.t && e.attributes.u > 0)
                {
                    n = 0;
                    while(n < e.attributes.t.length)
                    {
                        if(e.attributes.t.charCodeAt(n) < 32)
                        {
                            return;
                        }
                        n = n + 1;
                    }
                }
                if(e.nodeName == "y")
                {
                    todo.WY = {i:e.attributes.i, k:e.attributes.k, j:e.attributes.j, t:e.attributes.t, s:e.attributes.s, au:e.attributes.au, v:e.attributes.v};
                    if(e.attributes.C)
                    {
                        WC = todo.WY;
                        network.doCap();
                        return;
                    }
                    YI = xatlib.xInt(e.attributes.i);
                    jt2 = network.getTimer() - sjt;
                    YC = xatlib.xInt(e.attributes.c);
                    YC2 = network.getTimer();
                    e.attributes.cb;
                    if(!(e.attributes.cb && global.sv == e.attributes.cb))
                    {
                        global.sv = e.attributes.cb;
                        xatlib.MainSolWrite("w_sv", e.attributes.cb);
                    }
                    if(e.attributes.j)
                    {
                        WC = todo.WY;
                        network.doCode();
                    }
                    else
                    {
                        WC = 1;
                    }
                    if(e.attributes.p)
                    {
                        stra = e.attributes.p.split("_");
                        p_w = xatlib.xInt(stra[0]);
                        p_h = xatlib.xInt(stra[1]);
                        p_octaves = xatlib.xInt(stra[2]);
                        p_seed = xatlib.xInt(stra[3]);
                        t = YI % (p_w * p_h);
                        p_x = t % p_w;
                        p_y = Math.floor(t / p_w);
                    }
                    attempt = 0;
                    prevrpool = -1;
                }
                else
                {
                    if(e.nodeName == "x")
                    {
                        network.UpdateChannel(e.attributes.i, e.attributes.u);
                        todo.Users[UserIndex].mainowner;
                        todo.Users[UserIndex].owner;
                        if((e.attributes.i == 10001) || (e.attributes.t.substr(0, 1)) == "b" || todo.Users[UserIndex].mainowner || todo.Users[UserIndex].owner || todo.Users[UserIndex].moderator)
                        {
                            if(e.attributes.i >= 40000 && e.attributes.i < 50000)
                            {
                                if(chat.sending_lc)
                                {
                                    chat.sending_lc.send(chat.fromxat, "onMsg", e.attributes.i, e.attributes.u, e.toString());
                                }
                            }
                            else
                            {
                                if(e.attributes.i == 10000 && (e.attributes.t.substr(0, 1)) == "B" && (todo.HasPower(selfid, 44)) == false)
                                {
                                }
                                else
                                {
                                    if(chat.sending_lc)
                                    {
                                        chat.sending_lc.send(chat.fromxat, "onMsg", e.attributes.i, e.attributes.u, e.attributes.t);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if(e.nodeName == "a")
                        {
                            uid = xatlib.FindUser(e.attributes.u);
                            t55 = xconst.kssw[e.attributes.k];
                            if(t55)
                            {
                                t55 = !(todo.HasPower(uid, t55));
                            }
                            if(!t55)
                            {
                                if(!(e.attributes.u == todo.w_userno || uid < 0 || todo.Users[uid].ignored == true))
                                {
                                    xkiss.Kiss({t:e.attributes.t, u:e.attributes.u, k:e.attributes.k, b:e.attributes.b, f:e.attributes.f, x:e.attributes.x, s:e.attributes.s});
                                }
                            }
                            if(e.attributes.c != undefined)
                            {
                                todo.w_coins = xatlib.xInt(e.attributes.c);
                                xatlib.MainSolWrite("w_coins", todo.w_coins);
                            }
                        }
                        else
                        {
                            if(e.nodeName == "bl")
                            {
                                xkiss.LoadWink(e);
                            }
                            else
                            {
                                if(e.nodeName == "v")
                                {
                                    if(e.attributes.e != undefined)
                                    {
                                        t = xatlib.xInt(e.attributes.t);
                                            n = xatlib.xInt(e.attributes.e);
                                        switch(xatlib.xInt(e.attributes.e))
                                        {
                                        case 6:
                                            s = xconst.ST(164);
                                            break;
                                        case 8:
                                            s = xconst.ST(165);
                                            break;
                                        case 10:
                                            s = xconst.ST(166);
                                            break;
                                        case 11:
                                            s = xconst.ST(167);
                                            break;
                                        case 13:
                                            s = xconst.ST(25);
                                            break;
                                        case 14:
                                            s = xconst.ST(168);
                                            break;
                                        case 15:
                                            s = xconst.ST(169);
                                            break;
                                        case 16:
                                            s = xconst.ST(170);
                                            break;
                                        case 17:
                                            s = xconst.ST(171);
                                            break;
                                        case 18:
                                            s = xconst.ST(172);
                                            break;
                                        case 22:
                                            s = xconst.ST(173);
                                            break;
                                        case 24:
                                            s = xconst.ST(187, t.toString());
                                            break;
                                        case 36:
                                            s = xconst.ST(215);
                                            break;
                                        case 38:
                                            s = xconst.ST(234);
                                            if(t)
                                            {
                                                s = s + " " + (xconst.ST(235, t.toString()));
                                            }
                                            break;
                                        case 50:
                                            s = "Single power prevents this";
                                            break;
                                        default:
                                            s = (xconst.ST(174) + " ") + n;
                                            break;
                                        }
                                        if(n != 39)
                                        {
                                            xatlib.GeneralMessage(xconst.ST(175), s);
                                        }
                                        if(e.attributes.m == undefined)
                                        {
                                            var _loc_3:undefined = undefined;
                                            todo.w_Powers = _loc_3;
                                            var _loc_3:undefined = _loc_3;
                                            todo.w_VIP = _loc_3;
                                            var _loc_3:undefined = _loc_3;
                                            todo.w_registered = _loc_3;
                                            var _loc_3:undefined = _loc_3;
                                            todo.w_bride = _loc_3;
                                            todo.w_d0 = _loc_3;
                                            todo.w_k3 = 0;
                                            todo.w_PowerO = 0;
                                            todo.w_sn = 0;
                                            todo.w_xats = 0;
                                            var _loc_3:int = 0;
                                            todo.w_coins = _loc_3;
                                            var _loc_3:int = _loc_3;
                                            todo.w_dt = _loc_3;
                                            var _loc_3:int = _loc_3;
                                            todo.w_d3 = _loc_3;
                                            todo.w_d2 = _loc_3;
                                            if(todo.w_email == 0 && todo.w_password == "$0")
                                            {
                                                network.SaveRegData();
                                                try
                                                {
                                                    main.mcLoad.LoggedIn(1);
                                                }
                                                catch(e:Error)
                                                {
                                                }
                                            }
                                            else
                                            {
                                                try
                                                {
                                                    main.mcLoad.LoggedIn(0);
                                                }
                                                catch(e:Error)
                                                {
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        todo.w_userno = e.attributes.i;
                                        todo.w_userrev = 0;
                                        todo.w_k1 = e.attributes.k1;
                                        todo.w_d0 = e.attributes.d0;
                                        todo.w_d1 = e.attributes.d1;
                                        todo.w_d2 = xatlib.xInt(e.attributes.d2);
                                        todo.w_d3 = xatlib.xInt(e.attributes.d3);
                                        todo.w_dt = xatlib.xInt(e.attributes.dt);
                                        todo.w_Powers = [];
                                        t = 0;
                                        while(t < todo.MAX_PWR_INDEX)
                                        {
                                            todo.w_Powers.push(xatlib.xInt(e.attributes["d" + (t + 4)]));
                                            t = t + 1;
                                        }
                                        todo.w_PowerO = e.attributes.dO;
                                        t = xatlib.FindUser(todo.w_d2);
                                        if(t >= 0)
                                        {
                                            todo.w_bride = todo.Users[t].registered;
                                        }
                                        todo.w_coins = xatlib.xInt(e.attributes.c);
                                        todo.w_xats = e.attributes.dx;
                                        todo.w_sn = e.attributes.sn;
                                        if(todo.w_xats)
                                        {
                                            todo.w_coins = xatlib.xInt(todo.w_xats);
                                        }
                                        todo.w_registered = e.attributes.n;
                                        todo.w_k2 = e.attributes.k2;
                                        todo.w_k3 = e.attributes.k3;
                                        todo.w_cb = YC;
                                        network.SaveRegData();
                                        todo.WV2;
                                        if(todo.WV2 || e.attributes.RL)
                                        {
                                            todo.lb = "n";
                                            todo.DoUpdate = true;
                                            network.NetworkClose();
                                            network.NetworkStartChat();
                                            todo.WV2 = false;
                                        }
                                        vx = todo.Macros;
                                        xmessage.ClearLists(true);
                                        todo.Users.push({n:xatlib.NameNoXat(todo.w_name), s:todo.Macros != undefined ? todo.Macros["status"] : undefined, u:todo.w_userno, v:todo.w_userrev, a:todo.w_avatar, h:todo.w_homepage, online:true, banned:IsBanned, owner:false, OnXat:!(xatlib.xInt(global.xc) & 32) == 0, registered:todo.w_registered, VIP:todo.w_VIP, Bride:todo.w_d2, aFlags:todo.w_d0, Powers:todo.w_Powers});
                                        network.AddGiftPower(0);
                                        todo.DoBuildUserList = true;
                                        todo.DoUpdateMessages = true;
                                        todo.ScrollDown = true;
                                        todo.LastScrollTime = undefined;
                                        try
                                        {
                                            main.mcLoad.LoggedIn(1);
                                        }
                                        catch(e:Error)
                                        {
                                        }
                                        if(todo.messageecho == "s")
                                        {
                                            if(chat.sending_lc)
                                            {
                                                chat.sending_lc.send(chat.fromxat, "onMsg", 4, 0, "l");
                                            }
                                        }
                                    }
                                    todo.w_password = undefined;
                                    WV = false;
                                }
                                else
                                {
                                    if(e.nodeName == "ap")
                                    {
                                        str = " ";
                                        pstr = xconst.pssa[xatlib.xInt(e.attributes.p) + 1];
                                        switch(xatlib.xInt(e.attributes.r))
                                        {
                                        case 0:
                                            str = xconst.ST(239, pstr);
                                            break;
                                        case 1:
                                            str = xconst.ST(240, pstr);
                                            break;
                                        case 2:
                                            str = xconst.ST(241, pstr);
                                            break;
                                        case 3:
                                            str = xconst.ST(242, pstr);
                                            break;
                                        case 4:
                                            str = pstr + " already assigned";
                                            break;
                                        case 9:
                                            str = pstr + " system error (db down)";
                                            break;
                                        default:
                                            str = pstr + " unknown errorcode";
                                            break;
                                        }
                                        xatlib.GeneralMessage(xconst.ST(237), str);
                                    }
                                    else
                                    {
                                        if(e.nodeName == "gp")
                                        {
                                            gpa = e.attributes.p.split("|");
                                            ll = 0;
                                            while(ll < gpa.length)
                                            {
                                                todo.w_GroupPowers[ll] = xatlib.xInt(gpa[ll]);
                                                ll = ll + 1;
                                            }
                                            var _loc_3:int = 0;
                                            var _loc_4:* = e.attributes;
                                            for each(ll in _loc_4)
                                            {
                                                if(ll.charAt(0) == "g")
                                                {
                                                    if(todo.HasPowerA(todo.w_GroupPowers, xatlib.xInt(ll.substr(1))))
                                                    {
                                                        todo.gconfig[ll] = e.attributes[ll];
                                                        if(todo.gconfig[ll].charAt(0) == "{")
                                                        {
                                                            todo.gconfig[ll] = xatlib.xJSONdecode(todo.gconfig[ll]);
                                                        }
                                                    }
                                                }
                                            }
                                            if(todo.gconfig["g100"])
                                            {
                                                ll = todo.gconfig["g100"].split(",");
                                                todo.gconfig["g100"] = {};
                                                j = 0;
                                                while(j < ll.length)
                                                {
                                                    todo.gconfig["g100"][ll[j]] = ll[j + 1];
                                                    j = j + 2;
                                                }
                                            }
                                            if(todo.HasPowerA(todo.w_GroupPowers, 90))
                                            {
                                                xconst.MakeBads(e.attributes.g90);
                                            }
                                            if(todo.HasPowerA(todo.w_GroupPowers, 106) && todo.gconfig["g106"])
                                            {
                                                c = todo.gconfig["g106"].split("#");
                                                if(todo.HasPowerA(todo.w_GroupPowers, 130))
                                                {
                                                    todo.gconfig["g130"] = c.pop();
                                                    if(todo.Macros["gback"] === "off")
                                                    {
                                                    }
                                                }
                                                t = 0;
                                                while(t < c.length)
                                                {
                                                    c[t] = xatlib.DecodeColor(c[t]);
                                                    t = t + 1;
                                                }
                                                todo.gconfig["g106"] = c.join("#");
                                                if(!todo.gconfig["g74"])
                                                {
                                                    todo.gconfig["g74"] = "smile,biggrin,wink,eek,tongue,cool,mad,confused,redface,frown,crying,sleepy,rolleyes,star,kiss,vampire,pirate2";
                                                    todo.w_GroupPowers[2] = todo.w_GroupPowers[2] | 65535;
                                                }
                                            }
                                            if(todo.HasPowerA(todo.w_GroupPowers, 206))
                                            {
                                                temp_comm = "http://xat.com/json/lang/customlang2.php?t=" + todo.w_room_cb + "&r=" + todo.w_useroom;
                                                xatlib.LoadVariables(temp_comm, chat.onLang);
                                            }
                                        }
                                        else
                                        {
                                            if(e.nodeName == "m" || e.nodeName == "p" || e.nodeName == "c" || e.nodeName == "z")
                                            {
                                                if(!GotDone && global.xc & 32768)
                                                {
                                                    return;
                                                }
                                                IsPrivateMessage = false;
                                                IsPrivateChat = false;
                                                IsNew = true;
                                                IsDeleteMessage = false;
                                                IsGagUser = false;
                                                IsUnGagUser = false;
                                                IsMakeUser = false;
                                                IsUnMakeUser = false;
                                                IsKickUser = false;
                                                IsUnknown = false;
                                                IsControlMessage = false;
                                                IsLocateUser = false;
                                                IsAtUser = false;
                                                IsScroller = false;
                                                if(!e.attributes.t)
                                                {
                                                    e.attributes.t = "";
                                                }
                                                FirstTwo = e.attributes.t.substr(0, 2);
                                                IsSlash = (FirstTwo.substr(0, 1)) == "/";
                                                if(e.attributes.u == 0)
                                                {
                                                    IsScroller = false;
                                                }
                                                zz = 0;
                                                if(e.attributes.t === "zz7")
                                                {
                                                    zz = zz + 1;
                                                }
                                                if(e.nodeName == "p" || e.nodeName == "z")
                                                {
                                                    IsPrivateMessage = true;
                                                }
                                                if(e.nodeName == "c")
                                                {
                                                    IsControlMessage = true;
                                                }
                                                if(e.attributes.s & 1)
                                                {
                                                    IsNew = false;
                                                }
                                                if(IsPrivateMessage && e.attributes.s & 2)
                                                {
                                                    IsPrivateChat = true;
                                                }
                                                if(!IsSlash && e.nodeName == "m" && e.attributes.u == undefined)
                                                {
                                                    return;
                                                }
                                                if(e.attributes.t.indexOf("<inf7>") != -1)
                                                {
                                                    IsSlash = true;
                                                }
                                                e.attributes.t = xatlib.Replace(e.attributes.t, ">", "}");
                                                if(IsPrivateMessage && !IsPrivateChat && !IsSlash)
                                                {
                                                    e.attributes.t = "<priv> " + e.attributes.t;
                                                }
                                                if(IsSlash)
                                                {
                                                    if(FirstTwo == "/d")
                                                    {
                                                        IsDeleteMessage = true;
                                                    }
                                                    if(FirstTwo == "/s")
                                                    {
                                                        IsScroller = true;
                                                    }
                                                    if(e.nodeName == "c" && FirstTwo == "/g")
                                                    {
                                                        IsGagUser = true;
                                                    }
                                                    if(e.nodeName == "c" && FirstTwo == "/u")
                                                    {
                                                        IsUnGagUser = true;
                                                    }
                                                    if(e.nodeName == "c" || e.nodeName == "p")
                                                    {
                                                        if(FirstTwo == "/m")
                                                        {
                                                            IsMakeUser = true;
                                                        }
                                                        if(FirstTwo == "/r")
                                                        {
                                                            IsUnMakeUser = true;
                                                        }
                                                        if(FirstTwo == "/k")
                                                        {
                                                            IsKickUser = true;
                                                        }
                                                    }
                                                    if(e.nodeName == "z")
                                                    {
                                                        if(FirstTwo == "/l")
                                                        {
                                                            IsLocateUser = true;
                                                        }
                                                        if(FirstTwo == "/a")
                                                        {
                                                            IsAtUser = true;
                                                        }
                                                    }
                                                    if(FirstTwo == "/R")
                                                    {
                                                        Payload = e.attributes.t.substr(2);
                                                        TypeOn = Payload == "TypeOn";
                                                        TypeOff = Payload == "TypeOff";
                                                        if(TypeOn || TypeOff)
                                                        {
                                                            if(TypeOff || IsPrivateMessage || !main.ctabsmc.TabIsPrivate())
                                                            {
                                                                main.SetTyping(u, TypeOn);
                                                            }
                                                        }
                                                        return;
                                                    }
                                                    if(FirstTwo == "/b")
                                                    {
                                                        if(e.attributes.t == "/bd")
                                                        {
                                                            todo.w_friendlist.length = 0;
                                                            todo.w_friendlist2 = new Object();
                                                        }
                                                        else
                                                        {
                                                            if(e.attributes.t == "/bf")
                                                            {
                                                                xatlib.MainSolWrite("w_friendlist", todo.w_friendlist);
                                                                xatlib.MainSolWrite("w_friendlist2", todo.w_friendlist2);
                                                            }
                                                            else
                                                            {
                                                                farray = e.attributes.t.substr(3).split(",");
                                                                id = xatlib.xInt(farray[0]);
                                                                f = xatlib.xInt(farray[1]);
                                                                if(id == todo.w_userno)
                                                                {
                                                                    so93 = xatlib.getLocal("chat", "/");
                                                                    so93.objectEncoding = ObjectEncoding.AMF0;
                                                                }
                                                                len = todo.w_friendlist.length;
                                                                i = 0;
                                                                while(i < len)
                                                                {
                                                                    if(todo.w_friendlist[i].u == id)
                                                                    {
                                                                        friobj = todo.w_friendlist[i];
                                                                        break;
                                                                    }
                                                                    i = i + 1;
                                                                }
                                                                if(!friobj)
                                                                {
                                                                    friobj = new Object();
                                                                    todo.w_friendlist.push(friobj);
                                                                }
                                                                friobj.u = id;
                                                                friobj.v = xatlib.xInt(friobj.v);
                                                                friobj.n = xatlib.CleanTextNoXat(farray[3]);
                                                                if(!friobj.a)
                                                                {
                                                                    friobj.a = "";
                                                                }
                                                                if(!friobj.h)
                                                                {
                                                                    friobj.h = "";
                                                                }
                                                                friobj.f = f;
                                                                if(todo.w_friendlist2[id] == undefined)
                                                                {
                                                                    todo.w_friendlist2[id] = new Object();
                                                                }
                                                                todo.w_friendlist2[id].flags = xatlib.xInt(todo.w_friendlist2[id].flags) | 1;
                                                            }
                                                        }
                                                    }
                                                    if(FirstTwo == "/p")
                                                    {
                                                        pci = xatlib.xInt(e.attributes.t.indexOf(","));
                                                        if(pci != -1)
                                                        {
                                                            i = xatlib.FindUser(todo.w_userno);
                                                            todo.Users[i].gagged = true;
                                                            todo.DoBuildUserList = true;
                                                            UngagTimeout = network.getTimer() + (xatlib.xInt(e.attributes.t.substr(pci + 1))) * 1000;
                                                        }
                                                        ptime = 0;
                                                        if(pci == -1)
                                                        {
                                                            ptime = xatlib.xInt(e.attributes.t.substr(2));
                                                        }
                                                        else
                                                        {
                                                            ptime = xatlib.xInt(e.attributes.t.substr(2, pci - 1));
                                                        }
                                                        id = " (" + e.attributes.d + ")";
                                                        if(ptime == 0)
                                                        {
                                                            if(pci == -1)
                                                            {
                                                                UngagTimeout = 0;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if(ptime == -1)
                                                            {
                                                                len = todo.Users.length;
                                                                tt = 0;
                                                                while(tt < len)
                                                                {
                                                                    todo.Users[tt].gagged = undefined;
                                                                    tt = tt + 1;
                                                                }
                                                                todo.DoBuildUserList = true;
                                                                todo.helpstr = xconst.ST(192) + id;
                                                                todo.HelpUpdate = 0;
                                                            }
                                                            else
                                                            {
                                                                if(!e.attributes.T || e.attributes.T == " ")
                                                                {
                                                                    todo.helpstr = (xconst.ST(193, (Math.ceil(ptime / 60)).toString())) + id;
                                                                }
                                                                else
                                                                {
                                                                    todo.helpstr = (xconst.ST(261) + " /p") + e.attributes.T + id;
                                                                }
                                                                todo.HelpUpdate = 0;
                                                            }
                                                        }
                                                    }
                                                    if(FirstTwo == "/t")
                                                    {
                                                        TabsLength = main.ctabsmc.tabs.length;
                                                        tt = 0;
                                                        while(tt < TabsLength)
                                                        {
                                                            if(main.ctabsmc.tabs[tt].User == u && main.ctabsmc.tabs[tt].Flags & 16)
                                                            {
                                                                xkiss.Kiss({t:e.attributes.t.substr(2), u:e.attributes.u, k:"Ttth"});
                                                                main.Private_onDelete(tt);
                                                                break;
                                                            }
                                                            tt = tt + 1;
                                                        }
                                                    }
                                                    if(e.nodeName == "m")
                                                    {
                                                        if(FirstTwo == "/k" && e.attributes.t.charAt(2) == "a")
                                                        {
                                                            e.attributes.t = "<i> " + (xconst.ST(123, "(kickall#)", e.attributes.t));
                                                            IsSlash = false;
                                                        }
                                                        else
                                                        {
                                                            if(FirstTwo == "/g" || FirstTwo == "/u" || FirstTwo == "/m" || FirstTwo == "/r" || FirstTwo == "/k" || FirstTwo == "/n")
                                                            {
                                                                if(e.attributes.p != undefined)
                                                                {
                                                                    e.attributes.p = xatlib.Replace(e.attributes.p, ">", " ");
                                                                }
                                                                uid = xatlib.FindUser(e.attributes.d);
                                                                if(uid != -1)
                                                                {
                                                                    if(FirstTwo == "/g")
                                                                    {
                                                                        if((e.attributes.t.substr(0, 3)) == "/gg")
                                                                        {
                                                                            e.attributes.t = network.SysMsg(5, undefined, uid, e.attributes.p, xatlib.xInt(e.attributes.t.substr(3)));
                                                                        }
                                                                        else
                                                                        {
                                                                            if((e.attributes.t.substr(0, 3)) == "/gm")
                                                                            {
                                                                                e.attributes.t = network.SysMsg(6, undefined, uid, e.attributes.p, xatlib.xInt(e.attributes.t.substr(3)));
                                                                            }
                                                                            else
                                                                            {
                                                                                e.attributes.t = network.SysMsg(2, undefined, uid, e.attributes.p, xatlib.xInt(e.attributes.t.substr(2)), e.attributes.w);
                                                                            }
                                                                        }
                                                                    }
                                                                    else
                                                                    {
                                                                        if(FirstTwo == "/u")
                                                                        {
                                                                            e.attributes.t = network.SysMsg(3, undefined, uid, e.attributes.p, xatlib.xInt(e.attributes.t.substr(2)));
                                                                        }
                                                                        else
                                                                        {
                                                                            if(FirstTwo == "/m")
                                                                            {
                                                                                e.attributes.t = network.SysMsg(0, e.attributes.p, uid);
                                                                            }
                                                                            else
                                                                            {
                                                                                if(FirstTwo == "/r")
                                                                                {
                                                                                    e.attributes.t = network.SysMsg(0, "r", uid);
                                                                                }
                                                                                else
                                                                                {
                                                                                    if(FirstTwo == "/k")
                                                                                    {
                                                                                        uuid = xatlib.FindUser(e.attributes.u);
                                                                                        arg = [];
                                                                                        if(e.attributes.p)
                                                                                        {
                                                                                            arg = e.attributes.p.split("#");
                                                                                        }
                                                                                        if(arg.length == 2 && !(todo.HasPower(uuid, 25)))
                                                                                        {
                                                                                            e.attributes.p = arg[0];
                                                                                        }
                                                                                        if(arg.length == 3 && !(todo.HasPower(uuid, 121)))
                                                                                        {
                                                                                            e.attributes.p = arg[0];
                                                                                        }
                                                                                        e.attributes.t = network.SysMsg(1, undefined, uid, e.attributes.p);
                                                                                    }
                                                                                    else
                                                                                    {
                                                                                        if(FirstTwo == "/n")
                                                                                        {
                                                                                            e.attributes.t = network.SysMsg(4, e.attributes.p, uid);
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                    IsSlash = false;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                if(!IsSlash)
                                                {
                                                    if(UserIndex >= 0 && todo.Users[UserIndex].w == 176)
                                                    {
                                                        e.attributes.t = xatlib.ReversePower(e.attributes.t);
                                                    }
                                                    e.attributes.t = xatlib.PreProcSmilie(e.attributes.t, !(u == todo.w_userno));
                                                }
                                                if(todo.w_mainowner)
                                                {
                                                    IsGagUser = false;
                                                }
                                                MessageCount = 0;
                                                e.attributes.N;
                                                if(UserIndex == -1 && !IsSlash || e.attributes.N || e.attributes.n)
                                                {
                                                    if(u != 0)
                                                    {
                                                        if(todo.FlagBits & xconst.f_Live && e.nodeName == "m")
                                                        {
                                                            todo.Users.push({n:"", u:u, v:0, a:"", h:"", online:e.nodeName == "z" ? undefined : false, onsuper:e.nodeName == "z" ? true : undefined, owner:false, friend:network.OnFriendList(u)});
                                                            UserIndex = xatlib.FindUser(u);
                                                            todo.Users[UserIndex].n = xatlib.StripSmilies(xatlib.NameNoXat(e.attributes.n));
                                                            todo.Users[UserIndex].a = e.attributes.a;
                                                            todo.Users[UserIndex].h = e.attributes.h;
                                                            todo.Users[UserIndex].sn = xatlib.xJSONdecode(e.attributes.sn);
                                                            todo.Users[UserIndex].v = e.attributes.v;
                                                            if(todo.Users[UserIndex].n == "")
                                                            {
                                                                todo.Users[UserIndex].n = xatlib.GetDefaultName(todo.Users[UserIndex].u);
                                                            }
                                                            if(todo.Users[UserIndex].a == "")
                                                            {
                                                                todo.Users[UserIndex].a = xatlib.GetDefaultAvatar(todo.Users[UserIndex].u);
                                                            }
                                                            if(todo.Users[UserIndex].h == "")
                                                            {
                                                                todo.Users[UserIndex].h = "";
                                                            }
                                                            todo.Users[UserIndex].registered = e.attributes.N;
                                                            todo.Users[UserIndex].q = e.attributes.q;
                                                            todo.Users[UserIndex].Bride = xatlib.xInt(e.attributes.d2);
                                                            todo.Users[UserIndex].aFlags = xatlib.xInt(e.attributes.d0);
                                                        }
                                                        else
                                                        {
                                                            todo.Users.push({n:"", u:u, v:0, a:"", h:"", online:e.nodeName == "z" ? undefined : false, onsuper:e.nodeName == "z" ? true : undefined, owner:false, friend:network.OnFriendList(u)});
                                                            UserIndex = xatlib.FindUser(u);
                                                        }
                                                    }
                                                }
                                                tgagged = UserIndex != -1 ? todo.Users[UserIndex].gagged : false;
                                                if(UserIndex != -1)
                                                {
                                                    todo.Users[UserIndex].banned;
                                                }
                                                else
                                                {
                                                }
                                                tbanned = false;
                                                tfriend = UserIndex != -1 ? todo.Users[UserIndex].friend : false;
                                                if(todo.Users[UserIndex].banned && IsPrivateMessage && tgagged || tbanned || e.attributes.b == 1 && !tfriend && !IsAtUser && !IsLocateUser)
                                                {
                                                    return;
                                                }
                                                if(UserIndex != -1)
                                                {
                                                    todo.Users[UserIndex].mainowner;
                                                    todo.Users[UserIndex].owner;
                                                }
                                                else
                                                {
                                                }
                                                tmodplus = false;
                                                if(todo.Users[UserIndex].u < 1000 || todo.Users[UserIndex].mainowner || todo.Users[UserIndex].owner || IsPrivateMessage && !IsPrivateChat && todo.HasPowerA(todo.w_Powers, 69, todo.w_Mask) && !tfriend && !tmodplus && !IsAtUser && !IsLocateUser)
                                                {
                                                    return;
                                                }
                                                if(IsControlMessage && tbanned)
                                                {
                                                    return;
                                                }
                                                if(e.attributes.q & 2)
                                                {
                                                    todo.Users[UserIndex].VIP = true;
                                                }
                                                if(e.nodeName == "z")
                                                {
                                                    if(UserIndex != -1)
                                                    {
                                                        if(todo.Users[UserIndex].onsuper != true)
                                                        {
                                                            xmessage.DeleteOneUserMc(UserIndex);
                                                        }
                                                        todo.Users[UserIndex].onsuper = true;
                                                        todo.Users[UserIndex].available = false;
                                                    }
                                                }
                                                else
                                                {
                                                    if(e.nodeName == "m" && GotDone)
                                                    {
                                                        if(!(UserIndex == -1) && todo.Users[UserIndex].gagged)
                                                        {
                                                            todo.Users[UserIndex].gagged = false;
                                                            todo.DoBuildUserList = true;
                                                        }
                                                        if((UserIndex == -1) && todo.Users[UserIndex].online == true)
                                                        {
                                                            xmessage.DeleteOneUserMc(UserIndex);
                                                        }
                                                        if(UserIndex != -1)
                                                        {
                                                            todo.Users[UserIndex].online = true;
                                                        }
                                                    }
                                                }
                                                if(!(UserIndex == -1) && todo.Users[UserIndex].online == false)
                                                {
                                                    if(e.attributes.n != undefined)
                                                    {
                                                        if(UserIndex != -1)
                                                        {
                                                            if((e.attributes.n.substr(0, 1)) == "$")
                                                            {
                                                                e.attributes.n = e.attributes.n.substr(1);
                                                            }
                                                            todo.Users[UserIndex].n = xatlib.NameNoXat(e.attributes.n);
                                                            todo.Users[UserIndex].a = e.attributes.a;
                                                            todo.Users[UserIndex].h = e.attributes.h;
                                                            todo.Users[UserIndex].v = e.attributes.v;
                                                            if(todo.Users[UserIndex].n == "")
                                                            {
                                                                todo.Users[UserIndex].n = xatlib.GetDefaultName(todo.Users[UserIndex].u);
                                                            }
                                                            if(todo.Users[UserIndex].a == "")
                                                            {
                                                                todo.Users[UserIndex].a = xatlib.GetDefaultAvatar(todo.Users[UserIndex].u);
                                                            }
                                                            if(todo.Users[UserIndex].h == "")
                                                            {
                                                                todo.Users[UserIndex].h = "";
                                                            }
                                                            todo.Users[UserIndex].registered = e.attributes.N;
                                                            xmessage.DeleteOneUserMc(UserIndex);
                                                            todo.DoUpdateMessages = true;
                                                        }
                                                    }
                                                }
                                                if(!(UserIndex == -1) && GotDone && todo.Users[UserIndex].n == "" || network.GetRev(e.attributes.u) > todo.Users[UserIndex].v && !IsSlash)
                                                {
                                                    network.NetworkLocateUser(u);
                                                }
                                                if(!(UserIndex == -1) && network.OnFriendList(todo.Users[UserIndex].u))
                                                {
                                                    len = todo.w_friendlist.length;
                                                    g = 0;
                                                    while(g < len)
                                                    {
                                                        if(todo.w_friendlist[g].u == todo.Users[UserIndex].u)
                                                        {
                                                            if(!(xatlib.StripSpace_(todo.Users[UserIndex].n) == xatlib.StripSpace_(todo.w_friendlist[g].n)) || todo.Users[UserIndex].a == todo.w_friendlist[g].a || todo.Users[UserIndex].h == todo.w_friendlist[g].h)
                                                            {
                                                                network.UpdateFriendList(todo.Users[UserIndex].u, todo.w_friendlist[g].f ? todo.w_friendlist[g].f : 1);
                                                            }
                                                            break;
                                                        }
                                                        g = g + 1;
                                                    }
                                                }
                                                IsIgnored = network.OnIgnoreList(u);
                                                todo.w_mainowner;
                                                todo.w_owner;
                                                todo.w_moderator;
                                                if(todo.w_mainowner || todo.w_owner || todo.w_moderator || network.IgnoreTime(u) < 0 && !IsPrivateMessage && !IsPrivateChat)
                                                {
                                                    IsIgnored = false;
                                                }
                                                todo.Users[UserIndex].member;
                                                todo.Users[UserIndex].moderator;
                                                todo.Users[UserIndex].owner;
                                                if(todo.FlagBits & xconst.f_Live && IsPrivateMessage && !IsPrivateChat && !IsSlash && todo.Users[UserIndex].member || todo.Users[UserIndex].moderator || todo.Users[UserIndex].owner || !todo.Users[UserIndex].mainowner)
                                                {
                                                    return;
                                                }
                                                strText = e.attributes.t;
                                                strText = (xatlib.CleanText(strText, 1)).toLowerCase();
                                                lc = strText.toLowerCase();
                                                if(!(strText.indexOf("chat.php?") == -1) || lc.indexOf("freexat") == -1 || lc.indexOf("freesub") == -1 || lc.indexOf("listchats") == -1 || lc.indexOf("llstchats") == -1)
                                                {
                                                    if((FirstTwo.substr(0, 1)) != "/")
                                                    {
                                                        IsSlash = true;
                                                    }
                                                }
                                                Links = xatlib.CountLinks(e.attributes.t);
                                                if(!(UserIndex == -1) && e.nodeName == "m" && todo.Users[UserIndex].u > 101 && !todo.Users[UserIndex].member && !todo.Users[UserIndex].moderator && !todo.Users[UserIndex].owner && !todo.Users[UserIndex].mainowner)
                                                {
                                                    if(Links > 0)
                                                    {
                                                        IsSlash = true;
                                                    }
                                                }
                                                if(e.nodeName == "m" && todo.messageecho == "l" && Links > 0)
                                                {
                                                    if(chat.sending_lc)
                                                    {
                                                        chat.sending_lc.send(chat.fromxat, "onMsg", 4, e.attributes.u, e.attributes.t);
                                                    }
                                                }
                                                if(IsLocateUser)
                                                {
                                                    selfid = xatlib.FindUser(todo.w_userno);
                                                    uid = xatlib.FindUser(u);
                                                    if(u > 101 && main.utabsmc.tabs[2])
                                                    {
                                                        if(uid < 0)
                                                        {
                                                            var _loc_3:todo = todo;
                                                            var _loc_4:* = _loc_3.Tickled + 1;
                                                            _loc_3.Tickled = _loc_4;
                                                            todo.Users.push({n:"", u:u, v:0, a:"", h:"", TickCnt:_loc_3.Tickled});
                                                        }
                                                        else
                                                        {
                                                            var _loc_3:todo = todo;
                                                            var _loc_4:* = _loc_3.Tickled + 1;
                                                            _loc_3.Tickled = _loc_4;
                                                            todo.Users[uid].TickCnt = _loc_3.Tickled;
                                                            if(!todo.Users[uid].ignored)
                                                            {
                                                                main.utabsmc.ColorTab(2, 39168);
                                                                main.utabsmc.GlowTab(2);
                                                                main.utabsmc.Notif = true;
                                                            }
                                                        }
                                                    }
                                                    if(todo.Users[selfid].flag0 & 1024 && u > 101)
                                                    {
                                                    }
                                                    else
                                                    {
                                                        Friend = 1;
                                                        Friend = network.OnFriendList(u);
                                                        if(Friend == 3)
                                                        {
                                                            Friend = todo.foe ? 0 : 1;
                                                        }
                                                        if(Friend == 5)
                                                        {
                                                            Friend = 1;
                                                        }
                                                        if(network.OnIgnoreList(u))
                                                        {
                                                            Friend = 0;
                                                        }
                                                        if(Friend == 1 && todo.HasPower(selfid, 5))
                                                        {
                                                            Friend = 2;
                                                        }
                                                        if(!(UserIndex == -1) && todo.Users[UserIndex].online === true && Friend)
                                                        {
                                                            Friend = 1;
                                                        }
                                                        if(u <= 101)
                                                        {
                                                            Friend = 1;
                                                        }
                                                        switch(Friend)
                                                        {
                                                        case 2:
                                                            str = "_NF";
                                                            break;
                                                        case 1:
                                                            str = xatlib.GroupUrl();
                                                            break;
                                                        default:
                                                            str = "_" + xconst.ST(126);
                                                            break;
                                                        }
                                                        if((network.getTimer() - LastLocate) > 1150)
                                                        {
                                                            if(todo.w_userno <= 101 && (todo.w_name.substr(0, 2)) == "$$")
                                                            {
                                                            }
                                                            else
                                                            {
                                                                network.NetworkSendMsg(todo.w_userno, "/a" + str, 0, u, 0);
                                                                LastLocate = network.getTimer();
                                                            }
                                                        }
                                                    }
                                                }
                                                else
                                                {
                                                    if(IsAtUser)
                                                    {
                                                        loctext = "";
                                                        if((e.attributes.t.substr(0, 3)) == "/a_")
                                                        {
                                                            if((e.attributes.t.substr(3, 2)) == "NF")
                                                            {
                                                                loctext = "NoFollow";
                                                            }
                                                            else
                                                            {
                                                                loctext = xconst.ST(126);
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if((e.attributes.t.substr(2, xconst.usedomain.length)) == xconst.usedomain)
                                                            {
                                                                loctext = xconst.ST(129, e.attributes.t.substr(2));
                                                            }
                                                            else
                                                            {
                                                                loctext = e.attributes.t.substr(2);
                                                            }
                                                        }
                                                        UserIndex = xatlib.FindUser(xatlib.xInt(e.attributes.u));
                                                        if(todo.Users[UserIndex].UnmaskedPowers == undefined)
                                                        {
                                                            todo.Users[UserIndex].UnmaskedPowers = new Array();
                                                        }
                                                        if(todo.Users[UserIndex].Powers == undefined)
                                                        {
                                                            todo.Users[UserIndex].Powers = new Array();
                                                        }
                                                        pp = 0;
                                                        while(pp < todo.MAX_PWR_INDEX)
                                                        {
                                                            ii = "p" + pp;
                                                            if(e.attributes[ii] != undefined)
                                                            {
                                                                todo.Users[UserIndex].UnmaskedPowers[pp] = xatlib.xInt(e.attributes[ii]);
                                                                if(!todo.Users[UserIndex].Powers[pp])
                                                                {
                                                                    todo.Users[UserIndex].Powers[pp] = xatlib.xInt(e.attributes[ii]);
                                                                }
                                                            }
                                                            pp = pp + 1;
                                                        }
                                                        if(e.attributes.po != undefined)
                                                        {
                                                            todo.Users[UserIndex].PowerO = e.attributes.po;
                                                        }
                                                        todo.Users[UserIndex].n = xatlib.NameNoXat(e.attributes.n);
                                                        todo.Users[UserIndex].s = xatlib.GetStatus(e.attributes.n);
                                                        todo.Users[UserIndex].coins = e.attributes.x;
                                                        todo.Users[UserIndex].days = e.attributes.y;
                                                        todo.Users[UserIndex].debug = e.attributes.g;
                                                        i = 0;
                                                        while(i < main.dialog_layer.numChildren)
                                                        {
                                                            d = main.dialog_layer.getChildAt(i);
                                                            if(d is DialogActions)
                                                            {
                                                                d.WriteLocation(loctext, e.attributes.u, e.attributes.N);
                                                            }
                                                            i = i + 1;
                                                        }
                                                        if(e.attributes.n != undefined)
                                                        {
                                                            UserIndex = xatlib.FindUser(xatlib.xInt(e.attributes.u));
                                                            if(UserIndex != -1)
                                                            {
                                                                if((e.attributes.n.substr(0, 1)) == "$")
                                                                {
                                                                    e.attributes.n = e.attributes.n.substr(1);
                                                                }
                                                                todo.Users[UserIndex].v = e.attributes.v;
                                                                todo.Users[UserIndex].n = xatlib.NameNoXat(e.attributes.n);
                                                                todo.Users[UserIndex].u = xatlib.xInt(e.attributes.u);
                                                                todo.Users[UserIndex].a = e.attributes.a;
                                                                todo.Users[UserIndex].h = e.attributes.h;
                                                                todo.Users[UserIndex].sn = xatlib.xJSONdecode(e.attributes.sn);
                                                                todo.Users[UserIndex].cb = e.attributes.cb;
                                                                todo.Users[UserIndex].registered = e.attributes.N;
                                                                if(todo.Users[UserIndex].n == "")
                                                                {
                                                                    todo.Users[UserIndex].n = xatlib.GetDefaultName(todo.Users[UserIndex].u);
                                                                }
                                                                if(todo.Users[UserIndex].a == "")
                                                                {
                                                                    todo.Users[UserIndex].a = xatlib.GetDefaultAvatar(todo.Users[UserIndex].u);
                                                                }
                                                                if(todo.Users[UserIndex].h == "")
                                                                {
                                                                    todo.Users[UserIndex].h = "";
                                                                }
                                                                xmessage.DeleteOneUserMc(UserIndex);
                                                                xatlib.PurgeMessageFromUser(todo.Users[UserIndex].u);
                                                                todo.DoUpdateMessages = true;
                                                                todo.DoBuildUserList = true;
                                                                if(todo.Users[UserIndex].tUpd != undefined)
                                                                {
                                                                    var _loc_3:* = todo.Users[UserIndex].n;
                                                                    main.ctabsmc.tabs[todo.Users[UserIndex].tUpd].h = _loc_3;
                                                                    main.ctabsmc.tabs[todo.Users[UserIndex].tUpd].t = _loc_3;
                                                                    main.ctabsmc.UpdateTabs();
                                                                    todo.Users[UserIndex].tUpd = undefined;
                                                                }
                                                                if(network.OnFriendList(todo.Users[UserIndex].u))
                                                                {
                                                                    len = todo.w_friendlist.length;
                                                                    g = 0;
                                                                    while(g < len)
                                                                    {
                                                                        if(todo.w_friendlist[g].u == todo.Users[UserIndex].u)
                                                                        {
                                                                            if(!(xatlib.StripSpace_(todo.Users[UserIndex].n) == xatlib.StripSpace_(todo.w_friendlist[g].n)) || todo.Users[UserIndex].a == todo.w_friendlist[g].a || todo.Users[UserIndex].h == todo.w_friendlist[g].h)
                                                                            {
                                                                                network.UpdateFriendList(todo.Users[UserIndex].u, todo.w_friendlist[g].f ? todo.w_friendlist[g].f : 1);
                                                                            }
                                                                            break;
                                                                        }
                                                                        g = g + 1;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if(IsKickUser)
                                                        {
                                                            uuid = xatlib.FindUser(e.attributes.u);
                                                            arg = [];
                                                            if(e.attributes.p)
                                                            {
                                                                arg = e.attributes.p.split("#");
                                                            }
                                                            if(arg.length == 3 && todo.HasPower(uuid, 121))
                                                            {
                                                                var _loc_3:* = arg[1];
                                                                todo.CustomSound = _loc_3;
                                                                todo.BumpSound = _loc_3;
                                                                todo.DoAudieSnd = true;
                                                            }
                                                            network.NetworkClose();
                                                            network.SetNetworkState(0, -1);
                                                            todo.lb = "n";
                                                            todo.DoUpdate = true;
                                                        }
                                                        else
                                                        {
                                                            if(IsDeleteMessage)
                                                            {
                                                                msgno = xatlib.xInt(e.attributes.t.substr(2));
                                                                if(msgno != 0)
                                                                {
                                                                    len = todo.Message.length;
                                                                    v = 0;
                                                                    while(v < len)
                                                                    {
                                                                        if(todo.Message[v].n == msgno)
                                                                        {
                                                                            todo.Message[v].ignored = true;
                                                                        }
                                                                        v = v + 1;
                                                                    }
                                                                    todo.DoUpdateMessages = true;
                                                                }
                                                            }
                                                            else
                                                            {
                                                                if(IsGagUser || IsUnGagUser)
                                                                {
                                                                    network.UpdateGagList(todo.w_useroom, xatlib.xInt(e.attributes.t.substr(2)), IsGagUser);
                                                                    i = xatlib.FindUser(todo.w_userno);
                                                                    if(i > -1)
                                                                    {
                                                                        todo.Users[i].banned = IsGagUser ? true : false;
                                                                        xmessage.DeleteOneUserMc(i);
                                                                        xkiss.ClosePuzzle();
                                                                    }
                                                                    if(GotDone && IsGagUser)
                                                                    {
                                                                        UnfairGroupName = todo.w_room == todo.w_useroom ? global.gn != undefined ? xatlib.CleanCommas(global.gn) : xconst.ST(0) : todo.BackVars[1] != undefined ? xatlib.CleanCommas(todo.BackVars[1]) : xconst.ST(0);
                                                                        if(i >= 0 && todo.Users[i].w)
                                                                        {
                                                                            BanTime = network.GetGagTime(todo.w_useroom);
                                                                            if(BanTime)
                                                                            {
                                                                                BanTime = BanTime - xatlib.SockTime();
                                                                                if(BanTime <= (10 * 3600))
                                                                                {
                                                                                    NoBanMessage = true;
                                                                                }
                                                                            }
                                                                        }
                                                                        if(NoBanMessage && UnfairGroupName == xconst.ST(0))
                                                                        {
                                                                            my_date = new Date();
                                                                            t = network.Number(my_date.getTime());
                                                                            UnfairFile = (network.String(xatlib.xInt(Math.random() * 999999))) + t;
                                                                            UnfairMessage = (todo.w_useroom + ",") + UnfairGroupName + "," + todo.w_userno + "," + (xatlib.CleanTextNoXat(todo.w_name).substr(0, 128)) + "," + u + "," + xatlib.CleanCommas(xatlib.GetUsername(u)) + ",,";
                                                                            UnfairTitle = xconst.ST(125);
                                                                            UnfairReport = UnfairTitle;
                                                                            len = todo.Message.length;
                                                                            hh = 0;
                                                                            while(hh < len)
                                                                            {
                                                                                if(!(todo.Message[hh].s & 2) && todo.Message[hh].n == 0 ? true : todo.Message[hh].d == 0)
                                                                                {
                                                                                    UnfairMessage = UnfairMessage + (todo.Message[hh].u + ",") + xatlib.CleanCommas(xatlib.GetUsername(todo.Message[hh].u)) + "," + xatlib.CleanCommas(todo.Message[hh].t) + ",,";
                                                                                }
                                                                                if(todo.Message[hh].u == u)
                                                                                {
                                                                                    if((todo.Message[hh].t.substr(0, 20)) == "<i> " + xconst.ST(119))
                                                                                    {
                                                                                        UnfairTitle = (xatlib.GetUsername(todo.Message[hh].u) + " ") + xconst.ST(127);
                                                                                        UnfairReport = todo.Message[hh].t.substr(7);
                                                                                    }
                                                                                }
                                                                                hh = hh + 1;
                                                                            }
                                                                            xatlib.UnfairPopup(UnfairTitle, UnfairReport);
                                                                        }
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    if(IsMakeUser || IsUnMakeUser)
                                                                    {
                                                                        if(IsMakeUser && todo.FlagBits & xconst.f_Live)
                                                                        {
                                                                            w_redirectport = undefined;
                                                                        }
                                                                        so47 = xatlib.getLocal("chat" + network.String(todo.w_useroom), "/");
                                                                        so47.objectEncoding = ObjectEncoding.AMF0;
                                                                        if(IsMakeUser)
                                                                        {
                                                                            todo.w_userrev = xatlib.xInt(todo.w_userrev);
                                                                            so47.data.pass = xatlib.xInt(e.attributes.t.substr(2));
                                                                        }
                                                                        else
                                                                        {
                                                                        }
                                                                        so47.flush();
                                                                        i = xatlib.FindUser(todo.w_userno);
                                                                        if(i > -1)
                                                                        {
                                                                            if(todo.Users[i].gagged == true)
                                                                            {
                                                                                todo.Users[i].gagged = false;
                                                                                todo.DoBuildUserList = true;
                                                                            }
                                                                        }
                                                                    }
                                                                    else
                                                                    {
                                                                        if(IsScroller)
                                                                        {
                                                                            main.SetScroller(e.attributes.t.substr(2, 510));
                                                                        }
                                                                        else
                                                                        {
                                                                            if(!IsUnknown && !IsSlash)
                                                                            {
                                                                                var _loc_3:todo = todo;
                                                                                var _loc_4:* = _loc_3.mi + 1;
                                                                                _loc_3.mi = _loc_4;
                                                                                todo.Message.push({i:todo.mi * 2, n:e.attributes.i, t:e.attributes.t, u:u, ignored:IsIgnored, s:e.attributes.s, d:IsPrivateChat ? u : 0, p:IsPrivateMessage, pb:e.attributes.pb});
                                                                                if(todo.messageecho == "m")
                                                                                {
                                                                                    if(network.YC)
                                                                                    {
                                                                                        vt = xatlib.xInt(todo.w_d1) - network.YC;
                                                                                        if(vt < 0)
                                                                                        {
                                                                                            vt = 0;
                                                                                        }
                                                                                        vt = xatlib.xInt((vt / (24 * 3600)) + 0.30);
                                                                                        if(vt > 0)
                                                                                        {
                                                                                            if(chat.sending_lc)
                                                                                            {
                                                                                                chat.sending_lc.send(chat.fromxat, "onMsg", 4, todo.mi * 2, e.attributes.t);
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                                todo.bMobile;
                                                                                if(!(todo.bMobile && main.mscrollmc.Scrolling == true || todo.bMobile && main.mbs.Scrolling == true))
                                                                                {
                                                                                    nopc = 0;
                                                                                    nom = 0;
                                                                                    len = todo.Message.length;
                                                                                    tt = 0;
                                                                                    while(tt < len)
                                                                                    {
                                                                                        if(todo.Message[tt].s == 2)
                                                                                        {
                                                                                            nopc = nopc + 1;
                                                                                        }
                                                                                        else
                                                                                        {
                                                                                            nom = nom + 1;
                                                                                        }
                                                                                        tt = tt + 1;
                                                                                    }
                                                                                    maxpc = 100;
                                                                                    maxm = 150;
                                                                                    while(nopc > maxpc || nom > maxm)
                                                                                    {
                                                                                        len = todo.Message.length;
                                                                                        RemoveMessage = undefined;
                                                                                        tt = 0;
                                                                                        while(tt < len)
                                                                                        {
                                                                                            if(nopc > maxpc)
                                                                                            {
                                                                                                if(todo.Message[tt].s == 2)
                                                                                                {
                                                                                                    xmessage.DeleteOneMessageMc(tt);
                                                                                                    RemoveMessage = todo.Message.splice(tt, 1);
                                                                                                    nopc = nopc - 1;
                                                                                                    break;
                                                                                                }
                                                                                            }
                                                                                            else
                                                                                            {
                                                                                                if(nom > maxm)
                                                                                                {
                                                                                                    if(todo.Message[tt].s != 2)
                                                                                                    {
                                                                                                        xmessage.DeleteOneMessageMc(tt);
                                                                                                        RemoveMessage = todo.Message.splice(tt, 1);
                                                                                                        nom = nom - 1;
                                                                                                        break;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            tt = tt + 1;
                                                                                        }
                                                                                        if(!network.UserGotMessage(RemoveMessage[0].u))
                                                                                        {
                                                                                            len = todo.Users.length;
                                                                                            tt = 0;
                                                                                            while(tt < len)
                                                                                            {
                                                                                                if(todo.Users[tt].u == RemoveMessage[0].u)
                                                                                                {
                                                                                                    if(todo.Users[tt].online)
                                                                                                    {
                                                                                                        break;
                                                                                                    }
                                                                                                    else
                                                                                                    {
                                                                                                        if(todo.Users[tt].u != todo.w_userno)
                                                                                                        {
                                                                                                            if(todo.Users[tt].friend)
                                                                                                            {
                                                                                                                if(todo.Users[tt].online != undefined)
                                                                                                                {
                                                                                                                    xmessage.DeleteOneUserMc(tt);
                                                                                                                }
                                                                                                                todo.Users[tt].online = undefined;
                                                                                                            }
                                                                                                            else
                                                                                                            {
                                                                                                                xmessage.DeleteOneUserMc(tt);
                                                                                                                todo.Users.splice(tt, 1);
                                                                                                            }
                                                                                                            todo.DoBuildUserList = true;
                                                                                                        }
                                                                                                        break;
                                                                                                    }
                                                                                                }
                                                                                                tt = tt + 1;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                                if(!IsUnknown && IsNew && !IsIgnored)
                                                                                {
                                                                                    if(!(main.ctabsmc.TabIsPrivate() && main.ctabsmc.TabUser() == u))
                                                                                    {
                                                                                    }
                                                                                    else
                                                                                    {
                                                                                        selfid = xatlib.FindUser(todo.w_userno);
                                                                                        main.ProcessSounds(e.attributes.t, selfid != -1 ? !(todo.HasPower(selfid, 8)) : 0, selfid);
                                                                                    }
                                                                                }
                                                                                if(!IsUnknown && IsNew && !IsPrivateChat)
                                                                                {
                                                                                    network.GlowUser(u);
                                                                                    if(main.ctabsmc.TabIsPrivate())
                                                                                    {
                                                                                        if(todo.w_useroom == todo.w_room)
                                                                                        {
                                                                                            main.ctabsmc.ColorTab(0, 39168);
                                                                                            main.ctabsmc.GlowTab(0);
                                                                                        }
                                                                                        else
                                                                                        {
                                                                                            if(todo.w_useroom == todo.group)
                                                                                            {
                                                                                                main.ctabsmc.ColorTab(1, 39168);
                                                                                                main.ctabsmc.GlowTab(1);
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                                if(!IsUnknown && IsPrivateChat && !IsIgnored)
                                                                                {
                                                                                    selfid = xatlib.FindUser(todo.w_userno);
                                                                                    HaveTab = -1;
                                                                                    AllowPC = true;
                                                                                    if(e.attributes.u != undefined)
                                                                                    {
                                                                                        if(!todo.Users[UserIndex].mainowner && !todo.Users[UserIndex].owner && !todo.Users[UserIndex].moderator)
                                                                                        {
                                                                                            if(todo.HasPowerA(todo.w_Powers, 10, todo.w_Mask) || todo.FlagBits & xconst.f_Live && !(todo.HasPowerA(todo.w_Powers, 10)))
                                                                                            {
                                                                                                f = network.OnFriendList(todo.Users[UserIndex].u);
                                                                                                if(f == 5)
                                                                                                {
                                                                                                    f = 1;
                                                                                                }
                                                                                                if(f != 1)
                                                                                                {
                                                                                                    if(todo.Users[UserIndex].u > 101)
                                                                                                    {
                                                                                                        AllowPC = false;
                                                                                                        tt = 0;
                                                                                                        while(tt < main.ctabsmc.tabs.length)
                                                                                                        {
                                                                                                            if(main.ctabsmc.tabs[tt].User == todo.Users[UserIndex].u)
                                                                                                            {
                                                                                                                AllowPC = true;
                                                                                                                HaveTab = tt;
                                                                                                                break;
                                                                                                            }
                                                                                                            tt = tt + 1;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        if(AllowPC)
                                                                                        {
                                                                                            TabNumber = HaveTab != -1 ? HaveTab : main.ctabsmc.TabAdd(u, 16777215, 1, main.Private_onRelease, main.Private_onDelete);
                                                                                            main.ctabsmc.UpdateTabs();
                                                                                            if(main.ctabsmc.TabSelected() != TabNumber)
                                                                                            {
                                                                                                main.ctabsmc.GlowTab(TabNumber);
                                                                                                main.ctabsmc.ColorTab(TabNumber, 39168);
                                                                                            }
                                                                                            todo.DoBuildUserList = true;
                                                                                        }
                                                                                        if(AllowPC)
                                                                                        {
                                                                                            if(todo.HasPower(UserIndex, 75))
                                                                                            {
                                                                                                if(e.attributes.t.indexOf("(bump") != -1)
                                                                                                {
                                                                                                    if(todo.Users[param1].mainowner)
                                                                                                    {
                                                                                                        return false;
                                                                                                    }
                                                                                                    if(todo.Users[param1].owner)
                                                                                                    {
                                                                                                        return todo.Users[param2].mainowner ? true : false;
                                                                                                    }
                                                                                                    else
                                                                                                    {
                                                                                                        if(todo.Users[param1].moderator)
                                                                                                        {
                                                                                                            todo.Users[param2].mainowner;
                                                                                                            return todo.Users[param2].mainowner || todo.Users[param2].owner ? true : false;
                                                                                                        }
                                                                                                        else
                                                                                                        {
                                                                                                            todo.Users[param2].mainowner;
                                                                                                            todo.Users[param2].owner;
                                                                                                            if(todo.Users[param2].mainowner || todo.Users[param2].owner || todo.Users[param2].moderator)
                                                                                                            {
                                                                                                                return true;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    return false;
                                                                                                    var Superior:Function = _func_19;
                                                                                                    self = xatlib.FindUser(todo.w_userno);
                                                                                                    if(network.OnFriendList(todo.Users[UserIndex].u) || todo.Users[UserIndex].u < 101 || Superior(self, UserIndex))
                                                                                                    {
                                                                                                        main.ctabsmc.ColorTab(TabNumber, 16711680);
                                                                                                        t = network.getTimer();
                                                                                                        if(todo.LastBump == -1 || (t - todo.LastBump) > 20000)
                                                                                                        {
                                                                                                            var _loc_3:String = "laserfire3";
                                                                                                            todo.BumpSound = _loc_3;
                                                                                                            todo.CustomSound = _loc_3;
                                                                                                            todo.DoAudieSnd = true;
                                                                                                            todo.LastBump = t;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                                todo.DoUpdateMessages = true;
                                                                                todo.ScrollDown = true;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                if(e.nodeName == "g")
                                                {
                                                    if(UserIndex >= 0)
                                                    {
                                                        todo.Users[UserIndex].xNum = e.attributes.x;
                                                        xmessage.DeleteOneUserMc(UserIndex);
                                                    }
                                                }
                                                else
                                                {
                                                    if(e.nodeName == "u" || e.nodeName == "o")
                                                    {
                                                        if(e.attributes.n == null || e.attributes.n == undefined)
                                                        {
                                                            e.attributes.n = "";
                                                        }
                                                        if(e.attributes.a == null || e.attributes.a == undefined)
                                                        {
                                                            e.attributes.a = "";
                                                        }
                                                        if(e.attributes.h == null || e.attributes.h == undefined)
                                                        {
                                                            e.attributes.h = "";
                                                        }
                                                        IsMainOwner = false;
                                                        IsOwner = false;
                                                        IsModerator = false;
                                                        IsMember = false;
                                                        IsOnline = false;
                                                        IsBanned = false;
                                                        IsForever = false;
                                                        IsGagged = false;
                                                        IsNew = e.nodeName == "u";
                                                        OnXat = !(xatlib.xInt(e.attributes.q) & 1) == 0;
                                                        IsVIP = (xatlib.xInt(e.attributes.f) & 32) == 0 || (xatlib.xInt(e.attributes.q) & 2) == 0;
                                                        Powers = [];
                                                        if(IsVIP)
                                                        {
                                                            t = 0;
                                                            while(t < todo.MAX_PWR_INDEX)
                                                            {
                                                                Powers.push(xatlib.xInt(e.attributes["p" + t]));
                                                                t = t + 1;
                                                            }
                                                        }
                                                        if((e.attributes.f & 7) == 1)
                                                        {
                                                            IsMainOwner = true;
                                                        }
                                                        if((e.attributes.f & 7) == 2)
                                                        {
                                                            IsModerator = true;
                                                        }
                                                        if((e.attributes.f & 7) == 3)
                                                        {
                                                            IsMember = true;
                                                        }
                                                        if((e.attributes.f & 7) == 4)
                                                        {
                                                            IsOwner = true;
                                                        }
                                                        if(e.nodeName == "u")
                                                        {
                                                            IsOnline = true;
                                                        }
                                                        if(e.attributes.s & 1 || e.attributes.f & 8)
                                                        {
                                                            IsNew = false;
                                                        }
                                                        if(e.attributes.f & 16)
                                                        {
                                                            IsBanned = true;
                                                        }
                                                        if(e.attributes.f & 64)
                                                        {
                                                            IsForever = true;
                                                        }
                                                        if(e.attributes.f & 256)
                                                        {
                                                            IsGagged = true;
                                                        }
                                                        if(IsNew && todo.w_sound & 1 && !IsBanned && u <= (2000000000 - 100000))
                                                        {
                                                            if(!(main.ctabsmc.TabIsPrivate() && main.ctabsmc.TabUser() == u))
                                                            {
                                                            }
                                                            else
                                                            {
                                                                todo.DoUserSnd = true;
                                                            }
                                                        }
                                                        if(u != todo.w_userno)
                                                        {
                                                            UserIndex = xatlib.FindUser(u);
                                                            IsStealth = false;
                                                            if(!(e.attributes.n == undefined) && (e.attributes.n.substr(0, 1)) == "$")
                                                            {
                                                                IsStealth = IsMainOwner;
                                                                e.attributes.n = IsOwner || e.attributes.n.substr(1);
                                                            }
                                                            if(UserIndex == -1)
                                                            {
                                                                if(e.attributes.n == "")
                                                                {
                                                                    e.attributes.n = xatlib.GetDefaultName(u);
                                                                }
                                                                if(e.attributes.a == "")
                                                                {
                                                                    e.attributes.a = xatlib.GetDefaultAvatar(u);
                                                                }
                                                                if(e.attributes.h == "")
                                                                {
                                                                    e.attributes.h = "";
                                                                }
                                                                UserIndex = todo.Users.push({}) - 1;
                                                            }
                                                            else
                                                            {
                                                                xmessage.DeleteOneUserMc(UserIndex);
                                                            }
                                                            todo.Users[UserIndex].n = xatlib.NameNoXat(e.attributes.n);
                                                            todo.Users[UserIndex].s = xatlib.GetStatus(e.attributes.n);
                                                            todo.Users[UserIndex].v = xatlib.xInt(e.attributes.v);
                                                            todo.Users[UserIndex].u = u;
                                                            todo.Users[UserIndex].a = e.attributes.a;
                                                            todo.Users[UserIndex].h = e.attributes.h;
                                                            todo.Users[UserIndex].cb = e.attributes.cb;
                                                            todo.Users[UserIndex].online = IsOnline;
                                                            todo.Users[UserIndex].mainowner = IsMainOwner;
                                                            todo.Users[UserIndex].owner = IsOwner;
                                                            todo.Users[UserIndex].moderator = IsModerator;
                                                            todo.Users[UserIndex].member = IsMember;
                                                            todo.Users[UserIndex].onsuper = undefined;
                                                            todo.Users[UserIndex].available = undefined;
                                                            todo.Users[UserIndex].OnXat = OnXat;
                                                            todo.Users[UserIndex].Stealth = IsStealth;
                                                            todo.Users[UserIndex].friend = network.OnFriendList(u);
                                                            todo.Users[UserIndex].registered = e.attributes.N;
                                                            todo.Users[UserIndex].sn = xatlib.xJSONdecode(e.attributes.sn);
                                                            todo.Users[UserIndex].VIP = IsVIP;
                                                            todo.Users[UserIndex].Powers = Powers;
                                                            todo.Users[UserIndex].Bride = xatlib.xInt(e.attributes.d2);
                                                            todo.Users[UserIndex].aFlags = xatlib.xInt(e.attributes.d0);
                                                            todo.Users[UserIndex].flag0 = xatlib.xInt(e.attributes.f);
                                                            todo.Users[UserIndex].w = xatlib.xInt(e.attributes.w);
                                                            network.AddGiftPower(UserIndex);
                                                            todo.Users[UserIndex].xNum = e.attributes.x;
                                                            if(todo.Users[UserIndex].u == 4294967295.00)
                                                            {
                                                                todo.Users[UserIndex].n = todo.Users[UserIndex].n + " Spectators";
                                                            }
                                                            if(IsNew && main.ctabsmc.TabIsPrivate())
                                                            {
                                                                if(todo.w_useroom == todo.w_room)
                                                                {
                                                                    main.ctabsmc.ColorTab(0, 39168);
                                                                }
                                                                else
                                                                {
                                                                    if(todo.w_useroom == todo.group)
                                                                    {
                                                                        main.ctabsmc.ColorTab(1, 39168);
                                                                    }
                                                                }
                                                            }
                                                            todo.DoBuildUserList = true;
                                                            if(UserIndex > -1)
                                                            {
                                                                todo.Users[UserIndex].banned = IsBanned;
                                                                todo.Users[UserIndex].forever = IsForever;
                                                                todo.Users[UserIndex].gagged = IsGagged;
                                                                len = todo.Message.length;
                                                                cc = 0;
                                                                while(cc < len)
                                                                {
                                                                    if(xatlib.xInt(todo.Message[cc].u) == xatlib.xInt(todo.Users[UserIndex].u))
                                                                    {
                                                                        if(IsBanned)
                                                                        {
                                                                            todo.Message[cc].ignored = true;
                                                                        }
                                                                    }
                                                                    cc = cc + 1;
                                                                }
                                                                todo.DoBuildUserList = true;
                                                                todo.DoUpdateMessages = true;
                                                            }
                                                            if(todo.Users[UserIndex].friend)
                                                            {
                                                                len = todo.w_friendlist.length;
                                                                g = 0;
                                                                while(g < len)
                                                                {
                                                                    if(todo.w_friendlist[g].u == u)
                                                                    {
                                                                        if(!(xatlib.StripSpace_(todo.Users[UserIndex].n) == xatlib.StripSpace_(todo.w_friendlist[g].n)) || todo.Users[UserIndex].a == todo.w_friendlist[g].a || todo.Users[UserIndex].h == todo.w_friendlist[g].h)
                                                                        {
                                                                            network.UpdateFriendList(u, todo.w_friendlist[g].f ? todo.w_friendlist[g].f : 1);
                                                                        }
                                                                        break;
                                                                    }
                                                                    g = g + 1;
                                                                }
                                                            }
                                                            if(todo.messageecho == "a")
                                                            {
                                                                if(todo.Users[UserIndex].banned == true || network.OnIgnoreList(u))
                                                                {
                                                                    if(chat.sending_lc)
                                                                    {
                                                                        chat.sending_lc.send(chat.fromxat, "onMsg", 4, u, "l");
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    if(chat.sending_lc)
                                                                    {
                                                                        chat.sending_lc.send(chat.fromxat, "onMsg", 4, u, "u" + e.attributes.a);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else
                                                    {
                                                        if(e.nodeName == "l")
                                                        {
                                                            UserIndex = xatlib.FindUser(u);
                                                            xmessage.DeleteOneUserMc(UserIndex);
                                                            if((UserIndex == -1) && u == todo.w_userno)
                                                            {
                                                                if((todo.Users[UserIndex].online == false) || todo.Users[UserIndex].onsuper == false)
                                                                {
                                                                    xmessage.DeleteOneUserMc(UserIndex);
                                                                }
                                                                var _loc_3:Boolean = false;
                                                                todo.Users[UserIndex].online = _loc_3;
                                                                var _loc_3:Boolean = _loc_3;
                                                                todo.Users[UserIndex].available = _loc_3;
                                                                todo.Users[UserIndex].onsuper = _loc_3;
                                                                todo.Users[UserIndex].xNum = undefined;
                                                            }
                                                            if(!(UserIndex == -1) && !network.UserGotMessage(todo.Users[UserIndex].u))
                                                            {
                                                                len = todo.Users.length;
                                                                tt = 0;
                                                                while(tt < len)
                                                                {
                                                                    if(!(todo.Users[tt].u == todo.Users[UserIndex].u && todo.Users[tt].u == todo.w_userno))
                                                                    {
                                                                        todo.Users.splice(tt, 1);
                                                                        todo.DoBuildUserList = true;
                                                                        break;
                                                                    }
                                                                    tt = tt + 1;
                                                                }
                                                            }
                                                            todo.DoBuildUserList = true;
                                                            if(todo.messageecho == "a")
                                                            {
                                                                if(chat.sending_lc)
                                                                {
                                                                    chat.sending_lc.send(chat.fromxat, "onMsg", 4, u, "l");
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if(e.nodeName == "i")
                                                            {
                                                                todo.gconfig = new Object();
                                                                todo.w_room_cb = xatlib.xInt(e.attributes.cb);
                                                                xconst.MakeBads();
                                                                if(todo.w_useroom == todo.w_room)
                                                                {
                                                                    xatlib.SplitBackground(e.attributes.b);
                                                                    a = todo.BackVars;
                                                                }
                                                                else
                                                                {
                                                                    a = e.attributes.b.split(";=");
                                                                }
                                                                todo.usebackground = a[0];
                                                                todo.useRadio = a[4];
                                                                if(!(todo.useRadio == undefined) && global.xc & 4096 || todo.useRadio.length < 10)
                                                                {
                                                                    todo.useRadio = undefined;
                                                                }
                                                                if(todo.config["noradio"])
                                                                {
                                                                    todo.useRadio = undefined;
                                                                }
                                                                todo.ButCol = a[5];
                                                                if(todo.ButCol == undefined || todo.ButCol.length == 0)
                                                                {
                                                                    todo.ButCol = 13158600;
                                                                }
                                                                else
                                                                {
                                                                    if(todo.ButCol.charAt(0) == "#")
                                                                    {
                                                                        todo.ButCol = network.parseInt(todo.ButCol.substr(1), 16);
                                                                    }
                                                                }
                                                                todo.ButCol = xatlib.xInt(todo.ButCol) & 16777215;
                                                                todo.ButColW2 = (todo.ButCol & 255) + (todo.ButCol >> 8) & 255 + (todo.ButCol >> 16) & 255;
                                                                if(todo.ButColW2 > 384)
                                                                {
                                                                    todo.ButColW = 0;
                                                                }
                                                                else
                                                                {
                                                                    todo.ButColW = 16777215;
                                                                }
                                                                main.mcgetachat.RefreshColor();
                                                                main.ButtonLoginMc.RefreshColor();
                                                                main.retmc.RefreshColor();
                                                                if(todo.bThin)
                                                                {
                                                                    main.retmcBut.Col = todo.ButColW;
                                                                }
                                                                else
                                                                {
                                                                    xatlib.McSetRGB(main.retmcBut.xitem.back, todo.ButColW);
                                                                }
                                                                if(!todo.bMobile)
                                                                {
                                                                    main.mscrollmc.RefreshColor();
                                                                    main.uscrollmc.RefreshColor();
                                                                }
                                                                todo.FlagBits = xatlib.xInt(e.attributes.f);
                                                                if(todo.FlagBits & xconst.f_Deleted)
                                                                {
                                                                    chat.mainDlg.visible = false;
                                                                    xatlib.getURL("http://alltop.com", "_self");
                                                                    if(todo.lb != "n")
                                                                    {
                                                                        main.logoutbutonPress();
                                                                    }
                                                                    return;
                                                                }
                                                                main.logo.visible = true;
                                                                chat.mainDlg.MkGpBut();
                                                                if(todo.MainFlagBits == undefined)
                                                                {
                                                                    todo.MainFlagBits = todo.FlagBits;
                                                                }
                                                                if(todo.w_sound == undefined)
                                                                {
                                                                    if(todo.FlagBits & xconst.f_DefNoSound)
                                                                    {
                                                                        todo.w_sound = 4;
                                                                    }
                                                                    else
                                                                    {
                                                                        todo.w_sound = 253;
                                                                    }
                                                                }
                                                                if((todo.w_sound & 4) == 0)
                                                                {
                                                                    todo.w_sound = todo.w_sound | 254;
                                                                }
                                                                if(global.xc & 8192)
                                                                {
                                                                    todo.w_sound = todo.w_sound & ~2;
                                                                }
                                                                if(global.xt == undefined)
                                                                {
                                                                    main.ctabsmc.tabs[1].t = todo.BackVars[1];
                                                                    main.ctabsmc.tabs[1].h = main.ctabsmc.tabs[1].t + " ";
                                                                }
                                                                if(global.xl == undefined)
                                                                {
                                                                    todo.group = todo.BackVars[2];
                                                                }
                                                                if(xconst.f_Lobby & todo.MainFlagBits)
                                                                {
                                                                    main.ctabsmc.tabs[0].Skip = undefined;
                                                                    main.ctabsmc.tabs[1].Skip = undefined;
                                                                }
                                                                else
                                                                {
                                                                    main.ctabsmc.tabs[0].Skip = true;
                                                                    main.ctabsmc.tabs[1].Skip = true;
                                                                }
                                                                main.ctabsmc.UpdateTabs();
                                                                if(e.attributes.v & 1)
                                                                {
                                                                }
                                                                else
                                                                {
                                                                    todo.w_registered = undefined;
                                                                }
                                                                todo.w_VIP = (e.attributes.v & 3) == 3;
                                                                todo.w_ALLP = e.attributes.v & 4;
                                                                todo.w_mainowner = false;
                                                                todo.w_owner = false;
                                                                todo.w_moderator = false;
                                                                todo.w_member = false;
                                                                if(xatlib.xInt(e.attributes.r) == 1)
                                                                {
                                                                    todo.w_mainowner = true;
                                                                    todo.w_owner = true;
                                                                }
                                                                else
                                                                {
                                                                    if(xatlib.xInt(e.attributes.r) == 2)
                                                                    {
                                                                        todo.w_moderator = true;
                                                                    }
                                                                    else
                                                                    {
                                                                        if(xatlib.xInt(e.attributes.r) == 3)
                                                                        {
                                                                            todo.w_member = true;
                                                                        }
                                                                        else
                                                                        {
                                                                            if(xatlib.xInt(e.attributes.r) == 4)
                                                                            {
                                                                                todo.w_owner = true;
                                                                            }
                                                                            else
                                                                            {
                                                                                todo.pass = undefined;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                                if(todo.w_mainowner)
                                                                {
                                                                    if(network.OnGagList(todo.w_useroom))
                                                                    {
                                                                        network.UpdateGagList(todo.w_useroom, 0, false);
                                                                    }
                                                                    i = xatlib.FindUser(todo.w_userno);
                                                                    if(i > -1)
                                                                    {
                                                                        todo.Users[i].banned = false;
                                                                        xmessage.DeleteOneUserMc(i);
                                                                    }
                                                                }
                                                                len = todo.Users.length;
                                                                ee = 0;
                                                                while(ee < len)
                                                                {
                                                                    if(todo.Users[ee].u == todo.w_userno)
                                                                    {
                                                                        var _loc_3:Boolean = false;
                                                                        todo.Users[ee].member = _loc_3;
                                                                        var _loc_3:Boolean = _loc_3;
                                                                        todo.Users[ee].moderator = _loc_3;
                                                                        var _loc_3:Boolean = _loc_3;
                                                                        todo.Users[ee].owner = _loc_3;
                                                                        todo.Users[ee].mainowner = _loc_3;
                                                                        IsBanned = network.OnGagList(todo.w_useroom);
                                                                        todo.Users[ee].banned = IsBanned;
                                                                        if(todo.w_mainowner)
                                                                        {
                                                                            todo.Users[ee].mainowner = true;
                                                                        }
                                                                        if(todo.w_owner)
                                                                        {
                                                                            todo.Users[ee].owner = true;
                                                                        }
                                                                        todo.w_owner;
                                                                        todo.w_mainowner;
                                                                        if(todo.w_owner || todo.w_mainowner && (todo.w_name.substr(0, 1)) == "$")
                                                                        {
                                                                            todo.Users[ee].Stealth = true;
                                                                        }
                                                                        if(todo.w_moderator)
                                                                        {
                                                                            todo.Users[ee].moderator = true;
                                                                        }
                                                                        if(todo.w_member)
                                                                        {
                                                                            todo.Users[ee].member = true;
                                                                        }
                                                                        todo.Users[ee].VIP = todo.w_VIP;
                                                                        if(!todo.w_VIP)
                                                                        {
                                                                            todo.w_Powers = undefined;
                                                                        }
                                                                        todo.Users[ee].Powers = todo.w_Powers != undefined ? todo.w_Powers.slice() : todo.NO_POWERS.slice();
                                                                        if(todo.w_ALLP)
                                                                        {
                                                                            todo.Users[ee].Powers[0] = todo.Users[ee].Powers[0] | 1;
                                                                        }
                                                                        network.AddGiftPower(ee);
                                                                        t = 0;
                                                                        while(t < todo.MAX_PWR_INDEX)
                                                                        {
                                                                            todo.Users[ee].Powers[t] = todo.Users[ee].Powers[t] & (~(xatlib.xInt(todo.w_Mask != undefined ? todo.w_Mask[t] : 0)));
                                                                            t = t + 1;
                                                                        }
                                                                        todo.Users[ee].Bride = todo.w_d2;
                                                                        todo.Users[ee].aFlags = todo.w_d0;
                                                                        todo.Users[ee].flag0 = xatlib.xInt(e.attributes.f2);
                                                                        todo.w_r = xatlib.xInt(e.attributes.r);
                                                                        todo.Users[ee].w = xatlib.xInt(e.attributes.w);
                                                                        todo.Users[ee].sn = xatlib.xJSONdecode(todo.w_sn);
                                                                        todo.foe = todo.HasPower(ee, 212);
                                                                        xmessage.DeleteOneUserMc(ee);
                                                                        todo.DoBuildUserList = true;
                                                                        break;
                                                                    }
                                                                    ee = ee + 1;
                                                                }
                                                                if(todo.config["uselogindialog"])
                                                                StringIndex = todo.config["uselogindialog"] ? 0 : todo.w_mainowner && !global.xb ? 34 : 5;
                                                                main.mcgetachat.SetText(StringIndex ? xconst.ST(StringIndex) : "Login");
                                                                main.mcgetachat.lc = StringIndex;
                                                                todo.w_owner;
                                                                todo.w_moderator;
                                                                if((xconst.f_MembersOnly | xconst.f_MembersOnly2) & todo.FlagBits && todo.w_owner || todo.w_moderator || !todo.w_member)
                                                                {
                                                                    type = undefined;
                                                                    switch((xconst.f_MembersOnly | xconst.f_MembersOnly2) & todo.FlagBits)
                                                                    {
                                                                    case xconst.f_MembersOnly | xconst.f_MembersOnly2:
                                                                        if(!todo.w_VIP)
                                                                        {
                                                                            type = xconst.ST(176);
                                                                        }
                                                                        break;
                                                                    case xconst.f_MembersOnly2:
                                                                        if(todo.w_registered == undefined)
                                                                        {
                                                                            type = xconst.ST(177);
                                                                        }
                                                                        break;
                                                                    default:
                                                                        type = xconst.ST(178);
                                                                        break;
                                                                    }
                                                                    if(type != undefined)
                                                                    {
                                                                        todo.helpstr = xconst.ST(37, type);
                                                                        todo.HelpUpdate = 0;
                                                                    }
                                                                }
                                                                if(todo.messageecho == "a")
                                                                {
                                                                    if(chat.sending_lc)
                                                                    {
                                                                        chat.sending_lc.send(chat.fromxat, "onMsg", 4, 0, "d");
                                                                    }
                                                                }
                                                                main.SetScroller(todo.FlagBits & xconst.f_Live ? xconst.ST(217) : "");
                                                                UserIndex = xatlib.FindUser(todo.w_userno);
                                                                todo.Users[UserIndex].banned;
                                                                if(UserIndex >= 0 && todo.Users[UserIndex].banned && todo.Users[UserIndex].w)
                                                                {
                                                                    xkiss.LoadPuzzle(todo.Users[UserIndex].w);
                                                                }
                                                                else
                                                                {
                                                                    xkiss.ClosePuzzle();
                                                                }
                                                            }
                                                            else
                                                            {
                                                                if(e.nodeName == "w")
                                                                {
                                                                    while(todo.Pools.length)
                                                                    {
                                                                        todo.Pools.shift();
                                                                    }
                                                                    Text = e.attributes.v;
                                                                    left = 0;
                                                                    RndOr = todo.w_userno ^ 2863311530.00;
                                                                    Rnd2 = RndOr;
                                                                    len = Text.length;
                                                                    q = 0;
                                                                    while(q < len)
                                                                    {
                                                                        if((Text.substr(q, 1)) == " " || q == (Text.length - 1))
                                                                        {
                                                                            todo.pool = xatlib.xInt(Text.substr(left, q == (Text.length - 1) ? (q - left) + 1 : q - left));
                                                                            if(left == 0)
                                                                            {
                                                                                todo.newpool = todo.pool;
                                                                            }
                                                                            else
                                                                            {
                                                                                if(Rnd2 & 1)
                                                                                {
                                                                                    todo.Pools.push(todo.pool);
                                                                                }
                                                                                else
                                                                                {
                                                                                    todo.Pools.unshift(todo.pool);
                                                                                }
                                                                                Rnd2 = Rnd2 >>> 1;
                                                                                if(Rnd2 == 0)
                                                                                {
                                                                                    Rnd2 = RndOr;
                                                                                }
                                                                            }
                                                                            left = q + 1;
                                                                        }
                                                                        q = q + 1;
                                                                    }
                                                                    if(todo.newpool != todo.w_pool)
                                                                    {
                                                                        main.ctabsmc.UpdateTabs();
                                                                        todo.w_pool = todo.newpool;
                                                                        xmessage.ClearLists(false);
                                                                        todo.DoBuildUserListScrollUp = true;
                                                                        todo.DoUpdateMessages = true;
                                                                    }
                                                                    else
                                                                    {
                                                                        todo.DoBuildUserListScrollUp = true;
                                                                    }
                                                                    if(todo.messageecho == "a")
                                                                    {
                                                                        if(chat.sending_lc)
                                                                        {
                                                                            chat.sending_lc.send(chat.fromxat, "onMsg", 4, 0, "d");
                                                                        }
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    if(e.nodeName == "f")
                                                                    {
                                                                        str = e.attributes.v;
                                                                        sarray = str.split(",");
                                                                        len = sarray.length;
                                                                        p = 0;
                                                                        while(p < len)
                                                                        {
                                                                            UserIndex = xatlib.FindUser(sarray[p]);
                                                                            if(UserIndex != -1)
                                                                            {
                                                                                todo.Users[UserIndex].onsuper = true;
                                                                                todo.Users[UserIndex].available = sarray[p].charAt(0) === "0";
                                                                                xmessage.DeleteOneUserMc(UserIndex);
                                                                            }
                                                                            p = p + 1;
                                                                        }
                                                                        todo.DoBuildUserListScrollUp = true;
                                                                    }
                                                                    else
                                                                    {
                                                                        if(e.nodeName == "k")
                                                                        {
                                                                            todo.OnSuper = false;
                                                                        }
                                                                        else
                                                                        {
                                                                            if(e.nodeName == "dup")
                                                                            {
                                                                                todo.helpstr = xconst.ST(36);
                                                                                todo.HelpUpdate = 0;
                                                                                network.SetNetworkState(0, -1);
                                                                                todo.lb = "n";
                                                                                todo.DoUpdate = true;
                                                                                network.NetworkClose();
                                                                            }
                                                                            else
                                                                            {
                                                                                if(e.nodeName == "q")
                                                                                {
                                                                                    if(e.attributes.k != undefined)
                                                                                    {
                                                                                        network.SetNetworkState(0, -1);
                                                                                        todo.lb = "n";
                                                                                        todo.DoUpdate = true;
                                                                                        network.NetworkClose();
                                                                                        if(QK != true)
                                                                                        {
                                                                                            QK = true;
                                                                                            todo.w_userno = 0;
                                                                                            todo.w_userrev = 0;
                                                                                            todo.w_k1 = 0;
                                                                                            todo.w_k2 = 0;
                                                                                            network.NetworkStartChat();
                                                                                        }
                                                                                    }
                                                                                    else
                                                                                    {
                                                                                        doautoredirect = w_redirectport == undefined;
                                                                                        network.SetNetworkState(0, -1);
                                                                                        if(e.attributes.r != undefined)
                                                                                        {
                                                                                            var _loc_3:xInt = xatlib.xInt(e.attributes.r);
                                                                                            todo.w_useroom = _loc_3;
                                                                                            todo.w_room = _loc_3;
                                                                                            main.ctabsmc.UpdateTabs(0);
                                                                                        }
                                                                                        else
                                                                                        {
                                                                                            w_redirectport = xatlib.xInt(e.attributes.p);
                                                                                            w_redirectdom = e.attributes.d;
                                                                                            if((w_redirectdom.substr(0, 1)) == "e")
                                                                                            {
                                                                                                w_redirectdom = w_redirectdom + ".xatech.com";
                                                                                            }
                                                                                        }
                                                                                        if((e.attributes.p2 == undefined) && e.attributes.d2 == undefined)
                                                                                        {
                                                                                            uid = xatlib.FindUser(e.attributes.d2);
                                                                                            if((e.attributes.p2.indexOf("#") == -1) && uid == -1)
                                                                                            {
                                                                                                reason = e.attributes.p2.substr(0, e.attributes.p2.indexOf("#"));
                                                                                                bootr = e.attributes.p2.substr(e.attributes.p2.indexOf("#") + 1);
                                                                                                Bootp = (todo.Users[uid].n + " (") + todo.Users[uid].u + ") booted you to " + bootr + (reason != "" ? ". Reason:" + reason : ".");
                                                                                            }
                                                                                        }
                                                                                        todo.lb = "n";
                                                                                        todo.DoUpdate = true;
                                                                                        network.NetworkClose();
                                                                                        if(doautoredirect)
                                                                                        {
                                                                                            network.NetworkStartChat();
                                                                                        }
                                                                                    }
                                                                                }
                                                                                else
                                                                                {
                                                                                    if(e.nodeName == "logout")
                                                                                    {
                                                                                        if(e.attributes.e == "F016" || e.attributes.e == "F021")
                                                                                        {
                                                                                            if(attempt < xNumAttempts)
                                                                                            {
                                                                                                var _loc_3:network = network;
                                                                                                var _loc_4:* = _loc_3.attempt + 1;
                                                                                                _loc_3.attempt = _loc_4;
                                                                                                _loc_3.SetNetworkState(0, -1);
                                                                                                todo.lb = "n";
                                                                                                todo.DoUpdate = true;
                                                                                                _loc_3.NetworkClose();
                                                                                                _loc_3.NetworkStartChat();
                                                                                                return;
                                                                                            }
                                                                                        }
                                                                                        todo.helpstr = xconst.ST(35);
                                                                                        todo.HelpUpdate = 0;
                                                                                        errnum = xatlib.xInt(e.attributes.e.substr(1));
                                                                                        switch(errnum)
                                                                                        {
                                                                                        case 36:
                                                                                            todo.helpstr = xconst.ST(260);
                                                                                            break;
                                                                                        case 37:
                                                                                            todo.helpstr = xconst.ST(260);
                                                                                            break;
                                                                                        case 38:
                                                                                            todo.helpstr = xconst.ST(260);
                                                                                            break;
                                                                                        default:
                                                                                            break;
                                                                                        }
                                                                                        _loc_3.SetNetworkState(0, -1);
                                                                                        todo.lb = "n";
                                                                                        todo.DoUpdate = true;
                                                                                        _loc_3.NetworkClose();
                                                                                        uid = xatlib.FindUser(todo.w_userno);
                                                                                        todo.Users[uid].online = false;
                                                                                        xmessage.DeleteOneUserMc(uid);
                                                                                        _loc_3.RemoveMessagesWithNoUser();
                                                                                    }
                                                                                    else
                                                                                    {
                                                                                        if(e.nodeName == "idle")
                                                                                        {
                                                                                            todo.helpstr = xconst.ST(33);
                                                                                            todo.HelpUpdate = 0;
                                                                                            _loc_3.SetNetworkState(0, -1);
                                                                                            todo.lb = "n";
                                                                                            todo.DoUpdate = true;
                                                                                            _loc_3.NetworkClose();
                                                                                            _loc_3.RemoveMessagesWithNoUser();
                                                                                        }
                                                                                        else
                                                                                        {
                                                                                            if(e.nodeName == "abort")
                                                                                            {
                                                                                                todo.lb = "n";
                                                                                                todo.DoUpdate = true;
                                                                                                _loc_3.NetworkClose();
                                                                                                _loc_3.SetNetworkState(5, 12 * 6);
                                                                                            }
                                                                                            else
                                                                                            {
                                                                                                if(e.nodeName == "BB")
                                                                                                {
                                                                                                    if(YI != xatlib.xInt(e.attributes.y))
                                                                                                    {
                                                                                                        return;
                                                                                                    }
                                                                                                    tickcode.BB = e.attributes.t.split(",");
                                                                                                }
                                                                                                else
                                                                                                {
                                                                                                    if(e.nodeName == "done")
                                                                                                    {
                                                                                                        chat.mainDlg.UpdateBackground(todo.usebackground);
                                                                                                        chat.mainDlg.UpdateEmotes();
                                                                                                        xmessage.OpenGifts(todo.w_userno, 0);
                                                                                                        if(global.um != undefined)
                                                                                                        {
                                                                                                            xatlib.GeneralMessage("", (xconst.ST(135) + ":\n\n") + global.um);
                                                                                                            network.NetworkMakeUser(global.um, "r");
                                                                                                            network.SetNetworkState(0, -1);
                                                                                                            todo.lb = "n";
                                                                                                            todo.DoUpdate = true;
                                                                                                            network.NetworkClose();
                                                                                                            main.box_layer.GeneralMessageH.Delete();
                                                                                                            global.um = undefined;
                                                                                                            main.box_layer.GeneralMessageH.Dia.Ok.But.PressFunc = _func_20;
                                                                                                        }
                                                                                                        _loc_3.RemoveMessagesWithNoUser();
                                                                                                        _loc_3.RemoveUsersWithNoMessages();
                                                                                                        if(xatlib.IsDefaultName(todo.w_name) && todo.helpstr == "")
                                                                                                        {
                                                                                                            todo.helpstr = xconst.ST(12, " <o> <l>" + todo.w_name);
                                                                                                            todo.HelpUpdate = 0;
                                                                                                        }
                                                                                                        todo.FV = xatlib.xInt(Capabilities.version.split(" ")[1]);
                                                                                                        if(todo.FV < 10)
                                                                                                        {
                                                                                                            todo.helpstr = "Please update your Flash player for best performance, click here: http://www.adobe.com/go/getflashplayer";
                                                                                                            todo.helpupdate = 0;
                                                                                                        }
                                                                                                        if(Bootp != undefined)
                                                                                                        {
                                                                                                            todo.helpstr = Bootp;
                                                                                                            todo.HelpUpdate = 0;
                                                                                                            Bootp = undefined;
                                                                                                        }
                                                                                                        xmessage.UpdateMessages(true, false);
                                                                                                        todo.DoBuildUserList = true;
                                                                                                        GotDone = true;
                                                                                                        FI = true;
                                                                                                        if(todo.connectchannel != undefined)
                                                                                                        {
                                                                                                            if(chat.sending_lc)
                                                                                                            {
                                                                                                                chat.sending_lc.send(chat.fromxat, "onMsg", chat.connectchannel, chat.connectuser, chat.connectmsg);
                                                                                                            }
                                                                                                            todo.connectchannel = undefined;
                                                                                                        }
                                                                                                        if(todo.RefreshLogin)
                                                                                                        {
                                                                                                            _loc_3.NetworkLogin(todo.w_userno, 0);
                                                                                                            todo.WV2 = true;
                                                                                                            todo.RefreshLogin = false;
                                                                                                        }
                                                                                                        if(todo.gconfig["g112"])
                                                                                                        {
                                                                                                            todo.Message.push({n:0, t:"<inf8> " + todo.gconfig["g112"], u:0, s:0, d:0});
                                                                                                            todo.DoUpdateMessages = true;
                                                                                                            todo.ScrollDown = true;
                                                                                                        }
                                                                                                        uid = xatlib.FindUser(todo.w_userno);
                                                                                                        todo.Away = todo.HasPower(uid, 144) ? 1 : 0;
                                                                                                        todo.Typing = todo.HasPower(uid, 172) ? 1 : 0;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
 
        final public static function NetworkSendMsg(param1:*, param2:*, param3:* = undefined, param4:* = undefined, param5:* = undefined, param6:* = undefined, param7:* = undefined)
        {
            var _loc_9:* = undefined;
            if(todo.lb == "n")
            {
                return;
            }
            if(param3 == undefined)
            {
                param3 = 0;
            }
            if(param4 == undefined)
            {
                param4 = 0;
            }
            if(param5 == undefined)
            {
                param5 = 0;
            }
            var _loc_8:* = new XMLDocument();
            var _loc_10:* = true;
            var _loc_11:String = "";
            if(param5 != 0)
            {
                _loc_9 = _loc_8.createElement("c");
                if(param3 != 0)
                {
                    _loc_9.attributes.d = todo.w_userno;
                    _loc_9.attributes.s = 2;
                }
                _loc_9.attributes.t = param2;
                _loc_9.attributes.u = param5;
                if(param6 != undefined)
                {
                    _loc_9.attributes.p = param6;
                }
                if(param7 != undefined)
                {
                    _loc_9.attributes.w = param7;
                }
                _loc_8.appendChild(_loc_9);
                _loc_11 = xatlib.XMLOrder(_loc_8, new Array("w", "p", "u", "t", "s", "d"));
                socket.send(_loc_11);
            }
            else
            {
                if(param4 != 0)
                {
                    if(!(network.OnUserList(param4) && (param2.substr(0, 2)) == "/a") && (param2.substr(0, 2)) == "/l" && (param2.substr(0, 2)) == "/t")
                    {
                        _loc_9 = _loc_8.createElement("p");
                        if(param3 != 0)
                        {
                            _loc_9.attributes.d = todo.w_userno;
                            _loc_9.attributes.s = 2;
                        }
                        _loc_9.attributes.t = param2;
                        _loc_9.attributes.u = param4;
                        _loc_8.appendChild(_loc_9);
                        _loc_11 = xatlib.XMLOrder(_loc_8, new Array("u", "t", "s", "d"));
                        socket.send(_loc_11);
                    }
                    else
                    {
                        _loc_9 = _loc_8.createElement("z");
                        if(param3 != 0)
                        {
                            _loc_9.attributes.s = 2;
                        }
                        _loc_9.attributes.t = param2;
                        _loc_9.attributes.u = (todo.w_userno + "_") + todo.w_userrev;
                        _loc_9.attributes.d = param4;
                        _loc_10 = false;
                        _loc_8.appendChild(_loc_9);
                        _loc_11 = xatlib.XMLOrder(_loc_8, new Array("d", "u", "t", "s"));
                        socket.send(_loc_11);
                    }
                }
                else
                {
                    if(param3 != 0)
                    {
                        if(network.OnUserList(param3))
                        {
                            _loc_9 = _loc_8.createElement("p");
                            _loc_9.attributes.d = todo.w_userno;
                            _loc_9.attributes.s = 2;
                            _loc_9.attributes.t = param2;
                            _loc_9.attributes.u = param3;
                            _loc_8.appendChild(_loc_9);
                            _loc_11 = xatlib.XMLOrder(_loc_8, new Array("u", "t", "s", "d"));
                            socket.send(_loc_11);
                        }
                        else
                        {
                            _loc_9 = _loc_8.createElement("z");
                            _loc_9.attributes.s = 2;
                            _loc_9.attributes.t = param2;
                            _loc_9.attributes.u = (todo.w_userno + "_") + todo.w_userrev;
                            _loc_9.attributes.d = param3;
                            _loc_10 = false;
                            _loc_8.appendChild(_loc_9);
                            _loc_11 = xatlib.XMLOrder(_loc_8, new Array("d", "u", "t", "s"));
                            socket.send(_loc_11);
                        }
                    }
                    else
                    {
                        _loc_9 = _loc_8.createElement("m");
                        _loc_9.attributes.u = todo.w_userrev <= 0 ? param1 : (param1 + "_") + todo.w_userrev;
                        _loc_9.attributes.t = param2;
                        if(xatlib.CountLinks(param2) > 0)
                        {
                            _loc_9.attributes.l = 1;
                        }
                        _loc_8.appendChild(_loc_9);
                        _loc_11 = xatlib.XMLOrder(_loc_8, new Array("t", "u", "l"));
                        socket.send(_loc_11);
                    }
                }
            }
            if((param2.substr(0, 1)) != "/")
            {
                network.GlowUser(todo.w_userno);
            }
            if((param2.substr(0, 3)) == "/KD")
            {
                _loc_10 = false;
            }
            if(_loc_10)
            {
                LurkerTimeout = LurkerLimit;
            }
        }
 
        final public static function UpdateChannel(param1:*, param2:*)
        {
            var _loc_3:Number = xatlib.FindUser(param2);
            if(_loc_3 < 0)
            {
                return;
            }
            todo.Users[_loc_3].banned;
            todo.Users[_loc_3].w;
            if(todo.Users[_loc_3].banned && todo.Users[_loc_3].w && !(todo.Users[_loc_3].flag0 & 131072))
            {
                param1 = 50000 + todo.Users[_loc_3].w;
            }
            if(param1 < 10000)
            {
                param1 = 0;
            }
            if(todo.Users[_loc_3].xNum != param1)
            {
                todo.Users[_loc_3].xNum = param1;
                xmessage.DeleteOneUserMc(_loc_3);
            }
        }
 
        final public static function NetworkSendExtMessage(param1:*, param2:* = undefined, param3:* = undefined)
        {
            var _loc_5:* = undefined;
            LurkerTimeout = LurkerLimit;
            var _loc_4:* = new XMLDocument();
            _loc_5 = _loc_4.createElement("x");
            _loc_5.attributes.t = param3 == undefined ? "undefined" : param3;
            if(param2 != 0)
            {
                _loc_5.attributes.d = param2 == undefined ? "undefined" : param2;
            }
            _loc_5.attributes.u = todo.w_userno;
            _loc_5.attributes.i = param1;
            network.UpdateChannel(param1, todo.w_userno);
            _loc_4.appendChild(_loc_5);
            var _loc_6:String = xatlib.XMLOrder(_loc_4, new Array("i", "u", "d", "t"));
            socket.send(_loc_6);
        }
 
        final public static function NetworkSendxmlExtMessage(param1:*)
        {
            LurkerTimeout = LurkerLimit;
            var _loc_2:* = new XMLDocument(param1);
            network.UpdateChannel(_loc_2.firstChild.attributes.i, todo.w_userno);
            var _loc_3:* = "";
            if((_loc_2.toString().indexOf("t=\"/m") == -1) || _loc_2.toString().indexOf("t=\"/g") == -1)
            {
                _loc_3 = xatlib.XMLOrder(_loc_2, new Array("j", "i", "u", "t", "p"));
            }
            else
            {
                _loc_3 = xatlib.XMLOrder(_loc_2, new Array("H", "j", "i", "t", "u", "d0", "d2", "q", "N", "n", "a", "h", "v"));
            }
            socket.send(_loc_3);
        }
 
        final public static function NetworkLogin(param1:*, param2:*)
        {
            var _loc_3:* = new XMLDocument();
            var _loc_4:* = _loc_3.createElement("v");
            _loc_4.attributes.n = param1;
            _loc_4.attributes.p = param2;
            _loc_3.appendChild(_loc_4);
            socket.send(_loc_3);
        }
 
        final public static function NetworkDeleteMessage(param1:*)
        {
            network.NetworkSendMsg(todo.w_userno, "/d" + param1);
        }
 
        final public static function NetworkGagUser(param1:*, param2:*, param3:*, param4:*, param5:* = undefined, param6:* = undefined)
        {
            network.NetworkSendMsg(todo.w_userno, param3 ? "/" + param1 + param4 : "/u", 0, 0, param2, param5, param6);
        }
 
        final public static function NetworkKickUser(param1:*, param2:*)
        {
            network.NetworkSendMsg(todo.w_userno, "/k", 0, 0, param1, param2);
        }
 
        final public static function NetworkMakeUser(param1:*, param2:*)
        {
            network.NetworkSendMsg(todo.w_userno, "/" + param2, 0, 0, param1);
        }
 
        final public static function SysMsg(param1:*, param2:*, param3:* = undefined, param4:* = undefined, param5:* = undefined, param6:int = 0) : String
        {
            var _loc_8:* = undefined;
            var _loc_10:* = undefined;
            var _loc_11:* = undefined;
            var _loc_7:String = "";
            var _loc_9:* = todo.Users[param3].n.substr(0, 128);
            if(param4 == undefined)
            {
                param4 = "";
            }
            if(xatlib.CountLinks(_loc_9) > 0)
            {
                _loc_9 = todo.Users[param3].registered;
                if(!_loc_9)
                {
                    _loc_9 = todo.Users[param3].u;
                }
            }
            if(param1 == 0)
            {
                if(param2 == "M")
                {
                    _loc_7 = _loc_7 + (xconst.ST(137, _loc_9));
                }
                else
                {
                    if(param2.charAt(0) == "m")
                    {
                        _loc_7 = _loc_7 + (xconst.ST(128, _loc_9));
                    }
                    else
                    {
                        if(param2.charAt(0) == "e")
                        {
                            _loc_7 = _loc_7 + (xconst.ST(132, _loc_9));
                        }
                        else
                        {
                            if(param2.charAt(0) == "o")
                            {
                                _loc_7 = _loc_7 + (xconst.ST(137, _loc_9));
                            }
                            else
                            {
                                if(param2 == "r")
                                {
                                    _loc_7 = _loc_7 + (xconst.ST(138, _loc_9));
                                }
                            }
                        }
                    }
                }
                _loc_10 = (xatlib.xInt(param2.substr(1) / 36)) / 100;
                if(_loc_10 > 0)
                {
                    _loc_7 = _loc_7 + "(" + _loc_10 + " " + xconst.ST(116) + ")";
                }
            }
            else
            {
                if(param1 == 1)
                {
                    _loc_11 = param4.split("#");
                    if(_loc_11.length == 2)
                    {
                        _loc_7 = _loc_7 + (xconst.ST(194, _loc_9, _loc_11[1], _loc_11[0]));
                    }
                    else
                    {
                        if(_loc_11.length == 3)
                        {
                            _loc_7 = _loc_7 + "I have zapped " + _loc_9 + " Reason: " + _loc_11[0];
                        }
                        else
                        {
                            _loc_7 = _loc_7 + (xconst.ST(123, _loc_9, _loc_11[0]));
                        }
                    }
                }
                else
                {
                    if(param1 == 7)
                    {
                        _loc_7 = _loc_7 + (xconst.ST(123, _loc_9, _loc_11[0]));
                    }
                    else
                    {
                        if(param1 == 2)
                        {
                            if(param4.length == 0)
                            {
                                if(param5 == 0)
                                {
                                    _loc_7 = _loc_7 + (xconst.ST(119, _loc_9));
                                }
                                else
                                {
                                    _loc_7 = _loc_7 + (xconst.ST(120, _loc_9, network.String(param5 / 3600)));
                                }
                            }
                            else
                            {
                                if(param5 == 0)
                                {
                                    _loc_7 = _loc_7 + (xconst.ST(121, _loc_9, param4));
                                }
                                else
                                {
                                    _loc_7 = _loc_7 + (xconst.ST(122, _loc_9, network.String(param5 / 3600), param4));
                                }
                            }
                            _loc_8 = 0;
                            switch(param6)
                            {
                            case 158:
                                _loc_8 = xconst.ST(259);
                                break;
                            case 264:
                                _loc_8 = xconst.ST(265);
                                break;
                            case 284:
                                _loc_8 = xconst.ST(268);
                                break;
                            case 292:
                                _loc_8 = xconst.ST(272);
                                break;
                            default:
                                if(param6)
                                {
                                    _loc_8 = xconst.Puzzle[param6] + xconst.ST(258);
                                }
                                break;
                            }
                            if(_loc_8)
                            {
                                _loc_7 = xatlib.Replace(_loc_7, xconst.ST(258), _loc_8);
                            }
                        }
                        else
                        {
                            if(param1 == 3)
                            {
                                if(param4.indexOf(",") >= 0)
                                {
                                    _loc_8 = param4.split(",");
                                    _loc_7 = xconst.ST(250, _loc_8[2], xconst.Puzzle[_loc_8[0]], _loc_8[1]);
                                }
                                else
                                {
                                    _loc_7 = _loc_7 + (xconst.ST(90) + " ") + _loc_9 + ".";
                                }
                            }
                            else
                            {
                                if(param1 == 4)
                                {
                                    if(param2.charAt(0) == "n")
                                    {
                                        _loc_7 = _loc_7 + (xconst.ST(196, _loc_9));
                                        _loc_10 = (xatlib.xInt(param2.substr(1) / 36)) / 100;
                                        if(_loc_10 > 0)
                                        {
                                            _loc_7 = _loc_7 + "(" + _loc_10 + " " + xconst.ST(116) + ")";
                                        }
                                    }
                                }
                                else
                                {
                                    if(param1 == 5 || param1 == 6)
                                    {
                                        if(param4.length == 0)
                                        {
                                            _loc_7 = _loc_7 + (xconst.ST(199, param1 == 5 ? xconst.ST(188) : xconst.ST(201), _loc_9, network.String(param5 / 3600)));
                                        }
                                        else
                                        {
                                            _loc_7 = _loc_7 + (xconst.ST(200, param1 == 5 ? xconst.ST(188) : xconst.ST(201), _loc_9, network.String(param5 / 3600), param4));
                                        }
                                    }
                                    else
                                    {
                                        return "";
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return "<i> " + _loc_7;
        }
 
        final public static function NetworkFriendUser(param1:*, param2:*)
        {
            var _loc_4:* = undefined;
            var _loc_3:* = xatlib.FindUser(param1);
            todo.Users[_loc_3].friend = param2;
            xmessage.DeleteOneUserMc(_loc_3);
            network.UpdateFriendList(param1, param2);
            if(todo.w_registered == undefined)
            {
                return;
            }
            var _loc_5:* = "/b " + param1 + "," + (param2 == 0 ? 2 : param2);
            if(param2)
            {
                _loc_4 = todo.Users[_loc_3].registered;
                if(_loc_4 == undefined)
                {
                    _loc_4 = "";
                }
                _loc_5 = _loc_5 + "," + _loc_4 + "," + (todo.Users[_loc_3].n.substr(0, 20));
            }
            network.NetworkSendMsg(todo.w_userno, _loc_5, 0, 0, 2);
        }
 
        final public static function NetworkSetPool(param1:*)
        {
            var _loc_2:* = new XMLDocument();
            var _loc_3:* = _loc_2.createElement("w" + xatlib.xInt(param1));
            _loc_2.appendChild(_loc_3);
            socket.send(_loc_2);
        }
 
        final public static function NetworkLocateUser(param1:*)
        {
            if(param1 >= (2000000000 - (100000 * 2)))
            {
                return;
            }
            network.NetworkSendMsg(todo.w_userno, "/l", 0, param1, 0);
        }
 
        final public static function RemoveMessagesWithNoUser()
        {
            var _loc_3:* = undefined;
            var _loc_1:* = todo.Message.length;
            var _loc_2:* = 0;
            while(_loc_2 < _loc_1)
            {
                _loc_3 = xatlib.FindUser(todo.Message[_loc_2].u);
                if(_loc_3 == -1)
                {
                }
                else
                {
                    if(todo.Users[_loc_3].n == "")
                    {
                        todo.Message[_loc_2].ignored = true;
                    }
                }
                _loc_2 = _loc_2 + 1;
            }
            todo.DoUpdateMessages = true;
        }
 
        final public static function RemoveUsersWithNoMessages()
        {
            var _loc_1:* = undefined;
            var _loc_2:* = undefined;
            _loc_1 = todo.Users.length;
            _loc_2 = 0;
            while(_loc_2 < _loc_1)
            {
                if(todo.Users[_loc_2] == undefined)
                {
                }
                else
                {
                    if(todo.Users[_loc_2].u != todo.w_userno)
                    {
                        if(!network.UserGotUnignoredMessage(todo.Users[_loc_2].u))
                        {
                            if(todo.Users[_loc_2].online == false)
                            {
                                if(todo.Users[_loc_2].friend)
                                {
                                    if(todo.Users[_loc_2].online != undefined)
                                    {
                                        xmessage.DeleteOneUserMc(_loc_2);
                                    }
                                    todo.Users[_loc_2].online = undefined;
                                }
                                else
                                {
                                    xmessage.DeleteOneUserMc(_loc_2);
                                    todo.Users.splice(_loc_2, 1);
                                    _loc_2 = _loc_2 - 1;
                                }
                                todo.DoBuildUserList = true;
                            }
                        }
                    }
                }
                _loc_2 = _loc_2 + 1;
            }
        }
 
        final public static function GlowUser(param1:Number)
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            _loc_2 = xatlib.FindUser(param1);
            if(_loc_2 == -1)
            {
                return;
            }
            _loc_3 = todo.Users[_loc_2];
            if(_loc_3.mc)
            {
                tickcode.GlowFlag = true;
                _loc_3.glowc = 6;
                _loc_3 = _loc_3.mc.av1;
                _loc_3.filters = [todo.TextGlow];
            }
        }
 
        final public static function UserGotMessage(param1:Number) : Boolean
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            _loc_2 = todo.Message.length;
            _loc_3 = 0;
            while(_loc_3 < _loc_2)
            {
                if(todo.Message[_loc_3].u == param1)
                {
                    return true;
                }
                _loc_3 = _loc_3 + 1;
            }
            return false;
        }
 
        final public static function UserGotUnignoredMessage(param1:Number) : Boolean
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            _loc_2 = todo.Message.length;
            _loc_3 = 0;
            while(_loc_3 < _loc_2)
            {
                if(!(todo.Message[_loc_3].u == param1 && todo.Message[_loc_3].ignored == true))
                {
                    return true;
                }
                _loc_3 = _loc_3 + 1;
            }
            return false;
        }
 
        final public static function OnGagList(param1:Number) : Boolean
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            _loc_2 = todo.w_banlist.length;
            _loc_3 = 0;
            while(_loc_3 < _loc_2)
            {
                if(todo.w_banlist[_loc_3].r == param1)
                {
                    return true;
                }
                _loc_3 = _loc_3 + 1;
            }
            return false;
        }
 
        final public static function GetGagTime(param1:Number)
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            _loc_2 = todo.w_banlist.length;
            _loc_3 = 0;
            while(_loc_3 < _loc_2)
            {
                if(todo.w_banlist[_loc_3].r == param1)
                {
                    return todo.w_banlist[_loc_3].t;
                }
                _loc_3 = _loc_3 + 1;
            }
            return 0;
        }
 
        final public static function UpdateGagList(param1:Number, param2:Number, param3:Boolean)
        {
            var _loc_4:* = undefined;
            var _loc_5:* = undefined;
            var _loc_6:Object = null;
            if(param3 == true)
            {
                if(network.OnGagList(param1))
                {
                    _loc_4 = todo.w_banlist.length;
                    _loc_5 = 0;
                    while(_loc_5 < _loc_4)
                    {
                        if(todo.w_banlist[_loc_5].r == param1)
                        {
                            todo.w_banlist[_loc_5].t = param2;
                            break;
                        }
                        _loc_5 = _loc_5 + 1;
                    }
                }
                else
                {
                    _loc_6 = new Object();
                    _loc_6.r = param1;
                    _loc_6.t = param2;
                    todo.w_banlist.push(_loc_6);
                }
            }
            else
            {
                _loc_4 = todo.w_banlist.length;
                _loc_5 = 0;
                while(_loc_5 < _loc_4)
                {
                    if(todo.w_banlist[_loc_5].r == param1)
                    {
                        todo.w_banlist.splice(_loc_5);
                        break;
                    }
                    _loc_5 = _loc_5 + 1;
                }
            }
            xatlib.MainSolWrite("w_banlist", todo.w_banlist);
        }
 
        final public static function OnUserList(param1:Number, param2:Boolean = false) : Boolean
        {
            var _loc_3:* = undefined;
            _loc_3 = xatlib.FindUser(param1);
            if(_loc_3 == -1)
            {
                return false;
            }
            if(param2 == true || todo.Users[_loc_3].online)
            {
                return true;
            }
            return false;
        }
 
        final public static function OnFriendList(param1:Number)
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            _loc_2 = todo.w_friendlist.length;
            _loc_3 = 0;
            while(_loc_3 < _loc_2)
            {
                if(todo.w_friendlist[_loc_3].u == param1)
                {
                    return todo.w_friendlist[_loc_3].f ? todo.w_friendlist[_loc_3].f : 1;
                }
                _loc_3 = _loc_3 + 1;
            }
            return 0;
        }
 
        final public static function UpdateFriendList(param1:Number, param2:int, param3:String = undefined)
        {
            var _loc_4:* = undefined;
            var _loc_5:Object = null;
            var _loc_6:* = undefined;
            var _loc_7:* = undefined;
            _loc_4 = xatlib.FindUser(param1);
            if(param2)
            {
                if(!network.OnFriendList(param1))
                {
                    _loc_5 = new Object();
                    _loc_5.u = param1;
                    _loc_5.f = param2;
                    if(_loc_4 != -1)
                    {
                        _loc_5.v = todo.Users[_loc_4].v;
                        _loc_5.n = xatlib.CleanTextNoXat(todo.Users[_loc_4].n);
                        _loc_5.a = todo.Users[_loc_4].a;
                        _loc_5.h = todo.Users[_loc_4].h;
                    }
                    else
                    {
                        _loc_5.v = 0;
                        _loc_5.n = param3;
                    }
                    todo.w_friendlist.push(_loc_5);
                    FI = true;
                }
                else
                {
                    _loc_6 = todo.w_friendlist.length;
                    _loc_7 = 0;
                    while(_loc_7 < _loc_6)
                    {
                        if(todo.w_friendlist[_loc_7].u == param1)
                        {
                            todo.w_friendlist[_loc_7].v = todo.Users[_loc_4].v;
                            todo.w_friendlist[_loc_7].n = xatlib.CleanTextNoXat(todo.Users[_loc_4].n);
                            todo.w_friendlist[_loc_7].a = todo.Users[_loc_4].a;
                            todo.w_friendlist[_loc_7].h = todo.Users[_loc_4].h;
                            todo.w_friendlist[_loc_7].f = param2;
                            break;
                        }
                        _loc_7 = _loc_7 + 1;
                    }
                }
            }
            else
            {
                _loc_6 = todo.w_friendlist.length;
                _loc_7 = 0;
                while(_loc_7 < _loc_6)
                {
                    if(todo.w_friendlist[_loc_7].u == param1)
                    {
                        todo.w_friendlist.splice(_loc_7, 1);
                        if(todo.w_friendlist2 != undefined)
                        {
                            if(todo.w_friendlist[_loc_7] != undefined)
                            {
                                if(todo.w_friendlist2[todo.w_friendlist[_loc_7].u] != undefined)
                                {
                                    todo.w_friendlist2[todo.w_friendlist[_loc_7].u] = undefined;
                                }
                            }
                        }
                        break;
                    }
                    _loc_7 = _loc_7 + 1;
                }
            }
            xatlib.MainSolWrite("w_friendlist", todo.w_friendlist);
            xatlib.MainSolWrite("w_friendlist2", todo.w_friendlist2);
        }
 
        final public static function NetworkIgnore(param1:*, param2:* = undefined)
        {
            var _loc_3:* = undefined;
            var _loc_4:* = undefined;
            var _loc_5:* = undefined;
            var _loc_6:* = undefined;
            var _loc_7:* = undefined;
            _loc_3 = network.OnIgnoreList(param1);
            network.UpdateIgnoreList(param1, !_loc_3, param2);
            if(param2 == undefined)
            {
                _loc_4 = todo.Message.length;
                _loc_5 = 0;
                while(_loc_5 < _loc_4)
                {
                    if(xatlib.xInt(todo.Message[_loc_5].u) == param1)
                    {
                        todo.Message[_loc_5].ignored = !_loc_3;
                    }
                    _loc_5 = _loc_5 + 1;
                }
            }
            if(!_loc_3)
            {
                _loc_6 = main.ctabsmc.tabs.length;
                _loc_7 = 0;
                while(_loc_7 < _loc_6)
                {
                    if(main.ctabsmc.tabs[_loc_7].User == param1)
                    {
                        main.Private_onDelete(_loc_7);
                        break;
                    }
                    _loc_7 = _loc_7 + 1;
                }
            }
            todo.DoBuildUserList = true;
            todo.DoUpdateMessages = true;
        }
 
        final public static function TrimIgnoreList()
        {
            var _loc_1:Date = null;
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            var _loc_4:* = undefined;
            _loc_1 = new Date();
            _loc_2 = (xatlib.xInt(network.Number(_loc_1.getTime()) / 1000)) - (7 * 24) * 3600;
            var _loc_5:int = 0;
            var _loc_6:* = todo.w_ignorelist2;
            for each(_loc_3 in _loc_6)
            {
                _loc_4 = todo.w_ignorelist2[_loc_3];
                if(_loc_4 < 0)
                {
                    _loc_4 = _loc_4 * -1;
                }
                if(_loc_4 < _loc_2)
                {
                }
            }
        }
 
        final public static function OnIgnoreList(param1:Number) : Boolean
        {
            return !(todo.w_ignorelist2[param1] == undefined);
        }
 
        final public static function IgnoreTime(param1:Number)
        {
            return todo.w_ignorelist2[param1];
        }
 
        final public static function UpdateIgnoreList(param1:Number, param2:Boolean, param3:*)
        {
            var _loc_4:* = undefined;
            var _loc_5:* = undefined;
            var _loc_6:Date = null;
            var _loc_7:* = undefined;
            _loc_4 = xatlib.FindUser(param1);
            _loc_5 = xatlib.FindUser(todo.w_userno);
            if(todo.Users[_loc_5].xNum == 30004)
            {
                if(param2 == true)
                {
                    if(chat.sending_lc)
                    {
                        chat.sending_lc.send(chat.fromxat, "onMsg", 4, param1, "l");
                    }
                }
                else
                {
                    if(chat.sending_lc)
                    {
                        chat.sending_lc.send(chat.fromxat, "onMsg", 4, param1, "u" + todo.Users[_loc_4].a);
                    }
                }
            }
            xmessage.DeleteOneUserMc(_loc_4);
            if(param2 == true)
            {
                _loc_6 = new Date();
                _loc_7 = xatlib.xInt(network.Number(_loc_6.getTime()) / 1000);
                todo.w_ignorelist2[param1] = param3 == undefined ? _loc_7 : -_loc_7;
            }
            else
            {
            }
            xatlib.MainSolWrite("w_ignorelist2", todo.w_ignorelist2);
            todo.DoBuildUserList = true;
        }
 
        final public static function GetFriendStatus()
        {
            var _loc_1:* = undefined;
            var _loc_3:* = undefined;
            var _loc_4:String = null;
            var _loc_5:* = undefined;
            var _loc_6:* = undefined;
            var _loc_7:* = undefined;
            var _loc_8:* = undefined;
            var _loc_9:* = undefined;
            _loc_1 = todo.w_friendlist.length;
            var _loc_2:* = network.getTimer();
            _loc_3 = 0;
            while(_loc_3 < _loc_1)
            {
                _loc_6 = xatlib.FindUser(todo.w_friendlist[_loc_3].u);
                if(_loc_6 == -1)
                {
                    if(todo.w_friendlist[_loc_3].n != undefined)
                    {
                        todo.Users.push({n:xatlib.NameNoXat(todo.w_friendlist[_loc_3].n), u:todo.w_friendlist[_loc_3].u, v:todo.w_friendlist[_loc_3].v, a:todo.w_friendlist[_loc_3].a, h:todo.w_friendlist[_loc_3].h, online:undefined, banned:false, owner:false, friend:todo.w_friendlist[_loc_3].f ? todo.w_friendlist[_loc_3].f : 1, onsuper:false});
                    }
                }
                else
                {
                    if(todo.Users[_loc_6].friend || todo.Users[_loc_6].onsuper == false)
                    {
                        xmessage.DeleteOneUserMc(_loc_6);
                    }
                    todo.Users[_loc_6].friend = todo.w_friendlist[_loc_3].f ? todo.w_friendlist[_loc_3].f : 1;
                    todo.Users[_loc_6].onsuper = false;
                }
                _loc_3 = _loc_3 + 1;
            }
            if(todo.lb == "n")
            {
                return;
            }
            _loc_4 = "";
            _loc_5 = 0;
            _loc_4 = "f";
            if(todo.w_friendlist.length > 0)
            {
                if(todo.w_friendlist[0].u != undefined)
                {
                    _loc_1 = todo.w_friendlist.length;
                    _loc_7 = 0;
                    while(_loc_7 < _loc_1)
                    {
                        _loc_5 = _loc_5 + 1;
                        _loc_4 = _loc_4 + " " + todo.w_friendlist[_loc_7].u;
                        if(_loc_5 == 80 || _loc_7 >= (_loc_1 - 1))
                        {
                            _loc_8 = new XMLDocument();
                            _loc_9 = _loc_8.createElement(_loc_4);
                            _loc_8.appendChild(_loc_9);
                            socket.send(_loc_8);
                            _loc_5 = 0;
                            _loc_4 = "f";
                        }
                        _loc_7 = _loc_7 + 1;
                    }
                }
            }
        }
 
        final public static function GetRev(param1:*) : Number
        {
            return param1.indexOf("_") != -1 ? xatlib.xInt(param1.substr(param1.indexOf("_") + 1)) : 0;
        }
 
        final public static function SaveRegData()
        {
            var _loc_1:* = undefined;
            _loc_1 = xatlib.getLocal("chat", "/");
            _loc_1.objectEncoding = ObjectEncoding.AMF0;
        }
 
        final public static function AddGiftPower(param1:*)
        {
            var _loc_2:* = undefined;
            if(param1 < 0)
            {
                return;
            }
            _loc_2 = todo.Users[param1];
            if(!(_loc_2.aFlags & (1 << 24)))
            {
                return;
            }
            if(!_loc_2.Powers)
            {
                _loc_2.Powers = [0];
            }
            if(!_loc_2.Powers[-1])
            {
                _loc_2.Powers[-1] = 0;
            }
            _loc_2.Powers[-1] = _loc_2.Powers[-1] | 4;
        }
 
        final public static function doCap()
        {
            var _loc_1:* = undefined;
            if(global.xc & 2048)
            {
                _loc_1 = WC;
                WC["roomid"] = todo.w_useroom;
                WC["type"] = "AYAH";
                main.mcLoad.OpenByN(xJSON.encode(_loc_1));
            }
            else
            {
                xatlib.UrlPopup(xconst.ST(264), (xconst.chatdomain + "AreYouaHuman.php") + xatlib.MakeQuery(WC) + "&r=" + todo.w_useroom);
            }
        }
 
        final public static function doCode()
        {
            var _loc_1:* = undefined;
            _loc_1 = "";
            if(WC.v > 1)
            {
                _loc_1 = WC.v;
            }
            codeLoad = xatlib.LoadMovie(chat.mainDlg, (todo.flashdomain + "auth") + _loc_1 + "/auth" + WC.au + ".swf", onCodeLoaded);
        }
 
        final public static function onCodeLoaded(param1:Event)
        {
            mcCode = network.MovieClip(codeLoad.contentLoaderInfo.content);
            if(WC.v > 1)
            {
                mcCode.Call(todo.sockdomain, todo.useport, todo.w_userno, todo.w_useroom, todo.WY.k);
            }
        }
 
        public function network()
        {
            super();
        }
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎