//private readonly SystemTray _systemTray;

        public MainWindow()
        {
            InitializeComponent();
            // Handler for exceptions in threads behind forms.
            App.SplashScreen?.SetText("Initializing main window...");
            Application.ThreadException += GlobalThreadExceptionHandler;
            if (BasicTeraData.Instance.WindowData.InvisibleUi)
            {
                Visibility = Visibility.Hidden;
            }
            System.Windows.Application.Current.Resources["Scale"] = BasicTeraData.Instance.WindowData.Scale;
            if (BasicTeraData.Instance.WindowData.LowPriority)
            {
                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Idle;
            }
            Console.WriteLine("SuperUniqueStringEasilyDetectableToBeAbleToRandomizeTheProgramAndBypassSignatureBasedBlock");

            TeraSniffer.Instance.Enabled                        = true;
            TeraSniffer.Instance.Warning                       += PcapWarning;
            PacketProcessor.Instance.Connected                 += HandleConnected;
            PacketProcessor.Instance.TickUpdated               += Update;
            PacketProcessor.Instance.SetClickThrouAction       += SetClickThrou;
            PacketProcessor.Instance.UnsetClickThrouAction     += UnsetClickThrou;
            PacketProcessor.Instance.GuildIconAction           += InstanceOnGuildIconAction;
            PacketProcessor.Instance.PauseAction               += PauseState;
            PacketProcessor.Instance.MapChangedAction          += MapChanged;
            PacketProcessor.Instance.DisplayGeneralDataChanged += OnDisplayGeneralDataChanged;
            _dispatcherTimer          = new DispatcherTimer();
            _dispatcherTimer.Tick    += UpdateKeyboard;
            _dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            _dispatcherTimer.Start();
            if (BasicTeraData.Instance.WindowData.EnableOverlay)
            {
                DXrender = new D3D9Render.Renderer();
            }
            EntityStatsImage.Source       = BasicTeraData.Instance.ImageDatabase.EntityStats.Source;
            Chrono.Source                 = BasicTeraData.Instance.ImageDatabase.Chronobar.Source;
            Chrono.ToolTip                = LP.MainWindow_Only_boss;
            CloseWindow.Source            = BasicTeraData.Instance.ImageDatabase.Close.Source;
            History.Source                = BasicTeraData.Instance.ImageDatabase.History.Source;
            Config.Source                 = BasicTeraData.Instance.ImageDatabase.Config.Source;
            Chatbox.Source                = BasicTeraData.Instance.ImageDatabase.Chat.Source;
            BossGageImg.Source            = BasicTeraData.Instance.ImageDatabase.BossGage.Source;
            HideNamesImage.Source         = BasicTeraData.Instance.ImageDatabase.HideNicknames.Source;
            UserPauseBtn.Source           = BasicTeraData.Instance.ImageDatabase.Pause.Source;
            HideNames.ToolTip             = LP.Blur_player_names;
            ListEncounter.PreviewKeyDown += ListEncounterOnPreviewKeyDown;
            UpdateComboboxEncounter(new List <NpcEntity>(), null);
            Title = "Shinra Meter V" + UpdateManager.Version;
            BackgroundColor.Opacity = BasicTeraData.Instance.WindowData.MainWindowOpacity;
            Topmost            = BasicTeraData.Instance.WindowData.Topmost;
            ShowInTaskbar      = !BasicTeraData.Instance.WindowData.Topmost;
            Scroller.MaxHeight = BasicTeraData.Instance.WindowData.NumberOfPlayersDisplayed * 30;
            _entityStats       = new EntityStatsMain()
            {
                Scale = BasicTeraData.Instance.WindowData.DebuffsStatus.Scale, DontClose = true
            };
            _bossGageBar = new BossGageWindow()
            {
                Scale = BasicTeraData.Instance.WindowData.BossGageStatus.Scale, DontClose = true
            };
            _popupNotification = new PopupNotification()
            {
                DontClose = true
            };
            _windowHistory = new TeradpsHistory(new ConcurrentDictionary <UploadData, NpcEntity>())
            {
                Scale = BasicTeraData.Instance.WindowData.HistoryStatus.Scale, DontClose = true
            };
            KeyboardHook.Instance.SwitchTopMost += delegate { NotifyIcon.SwitchStayTop(); };
            SystemEvents.SessionEnding          += new SessionEndingEventHandler(SystemEvents_SessionEnding);
            NotifyIcon.Initialize(this);
            NotifyIcon.InitializeServerList(PacketProcessor.Instance.Initialize());
            if (BasicTeraData.Instance.WindowData.ClickThrou)
            {
                SetClickThrou();
            }
            GraphViewModel = new GraphViewModel();
        }