public static void AddToFavorites(InstanceID MyInstanceID)           //Toggler for family panel
        {
            if (MyInstanceID.IsEmpty)
            {
                return;
            }

            object L = GetPrivateVariable <object>(InstanceManager.instance, "m_lock");

            do
            {
            }while (!Monitor.TryEnter(L, SimulationManager.SYNCHRONIZE_TIMEOUT));

            try
            {
                InstanceManager MyInstance = Singleton <InstanceManager> .instance;
                CitizenManager  MyCitizen  = Singleton <CitizenManager> .instance;

                uint   citizen   = MyInstanceID.Citizen;
                string Name      = MyCitizen.GetCitizenName(citizen);
                int    citizenID = (int)((UIntPtr)citizen);

                if (Name != null && Name.Length > 0)
                {
                    if (!FavCimsCore.RowID.ContainsKey(citizenID))
                    {
                        if (!FavoriteCimsMainPanel.RowsAlreadyExist(MyInstanceID))
                        {
                            try {
                                MyInstance.SetName(MyInstanceID, Name);
                                CitizenRow FavCimsCitizenSingleRowPanel = FavoriteCimsMainPanel.FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow;
                                if (FavCimsCitizenSingleRowPanel != null)
                                {
                                    FavCimsCitizenSingleRowPanel.MyInstanceID    = MyInstanceID;
                                    FavCimsCitizenSingleRowPanel.MyInstancedName = Name;
                                }
                            }catch (Exception e) {
                                Debug.Error("Add To Favorites Fail : " + e.ToString());
                            }
                        }
                        else
                        {
                            return;
                        }
                    }
                    else
                    {
                        RemoveRowAndRemoveFav(MyInstanceID, citizenID);
                    }
                }
            }
            finally
            {
                Monitor.Exit(L);
            }
            return;
        }
        public override void Update()
        {
            if (FavCimsMainClass.UnLoading)
            {
                return;
            }

            if (this.isVisible)
            {
                if (!HumanWorldInfoPanel.GetCurrentInstanceID().IsEmpty)
                {
                    ThisHuman = HumanWorldInfoPanel.GetCurrentInstanceID();
                    int    citizenID   = (int)((UIntPtr)ThisHuman.Citizen);
                    string CitizenName = MyInstance.GetName(ThisHuman);

                    if (CitizenName != null && CitizenName.Length > 0)
                    {
                        this.tooltip        = FavCimsLang.text("FavStarButton_disable_tooltip");
                        this.normalBgSprite = "icon_fav_subscribed";

                        if (!FavCimsCore.RowID.ContainsKey(citizenID) && !FavoriteCimsMainPanel.RowsAlreadyExist(ThisHuman))
                        {
                            object L = FavCimsCore.GetPrivateVariable <object>(InstanceManager.instance, "m_lock");
                            do
                            {
                            }while (!Monitor.TryEnter(L, SimulationManager.SYNCHRONIZE_TIMEOUT));

                            try
                            {
                                CitizenRow FavCimsCitizenSingleRowPanel = FavoriteCimsMainPanel.FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow;
                                if (FavCimsCitizenSingleRowPanel != null)
                                {
                                    FavCimsCitizenSingleRowPanel.MyInstanceID    = ThisHuman;
                                    FavCimsCitizenSingleRowPanel.MyInstancedName = CitizenName;
                                }
                            }
                            finally
                            {
                                Monitor.Exit(L);
                            }
                        }

                        return;
                    }
                    else
                    {
                        if (citizenID != 0 && FavCimsCore.RowID.ContainsKey(citizenID))
                        {
                            MyInstance.SetName(ThisHuman, MyCitizen.GetCitizenName(ThisHuman.Citizen));
                            this.tooltip        = FavCimsLang.text("FavStarButton_disable_tooltip");
                            this.normalBgSprite = "icon_fav_subscribed";
                        }
                        else
                        {
                            this.tooltip        = FavCimsLang.text("FavStarButton_enable_tooltip");
                            this.normalBgSprite = "icon_fav_unsubscribed";
                        }
                    }
                }
            }
        }