/// <summary>
        /// Process incoming avatar properties (profile data)
        /// </summary>
        /// <param name="packet"></param>
        /// <param name="sim"></param>
        private void AvatarPropertiesHandler(Packet packet, Simulator sim)
        {
            if (OnAvatarProperties != null)
            {
                AvatarPropertiesReplyPacket reply      = (AvatarPropertiesReplyPacket)packet;
                Avatar.Properties           properties = new Avatar.Properties();

                properties.ProfileImage   = reply.PropertiesData.ImageID;
                properties.FirstLifeImage = reply.PropertiesData.FLImageID;
                properties.Partner        = reply.PropertiesData.PartnerID;
                properties.AboutText      = Helpers.FieldToString(reply.PropertiesData.AboutText);
                properties.FirstLifeText  = Helpers.FieldToString(reply.PropertiesData.FLAboutText);
                properties.BornOn         = Helpers.FieldToString(reply.PropertiesData.BornOn);
                properties.CharterMember  = Helpers.FieldToString(reply.PropertiesData.CharterMember);
                properties.AllowPublish   = reply.PropertiesData.AllowPublish;
                properties.MaturePublish  = reply.PropertiesData.MaturePublish;
                properties.Identified     = reply.PropertiesData.Identified;
                properties.Transacted     = reply.PropertiesData.Transacted;
                properties.ProfileURL     = Helpers.FieldToString(reply.PropertiesData.ProfileURL);

                OnAvatarProperties(reply.AgentData.AvatarID, properties);
            }
        }
        void Avatars_OnAvatarProperties(LLUUID avatarID, Avatar.Properties properties)
        {
            lock (ReceivedProfileEvent)
            {
                Properties = properties;
                ReceivedProperties = true;

                if (ReceivedInterests && ReceivedProperties)
                    ReceivedProfileEvent.Set();
            }
        }
        /// <summary>
        /// Process incoming avatar properties (profile data)
        /// </summary>
        /// <param name="packet"></param>
        /// <param name="sim"></param>
        private void AvatarPropertiesHandler(Packet packet, Simulator sim)
        {
            if (OnAvatarProperties != null)
            {
                AvatarPropertiesReplyPacket reply = (AvatarPropertiesReplyPacket)packet;
                Avatar.Properties properties = new Avatar.Properties();

                properties.ProfileImage = reply.PropertiesData.ImageID;
                properties.FirstLifeImage = reply.PropertiesData.FLImageID;
                properties.Partner = reply.PropertiesData.PartnerID;
                properties.AboutText = Helpers.FieldToString(reply.PropertiesData.AboutText);
                properties.FirstLifeText = Helpers.FieldToString(reply.PropertiesData.FLAboutText);
                properties.BornOn = Helpers.FieldToString(reply.PropertiesData.BornOn);
                properties.CharterMember = Helpers.FieldToString(reply.PropertiesData.CharterMember);
                properties.AllowPublish = reply.PropertiesData.AllowPublish;
                properties.MaturePublish = reply.PropertiesData.MaturePublish;
                properties.Identified = reply.PropertiesData.Identified;
                properties.Transacted = reply.PropertiesData.Transacted;
                properties.ProfileURL = Helpers.FieldToString(reply.PropertiesData.ProfileURL);

                OnAvatarProperties(reply.AgentData.AvatarID, properties);
            }
        }