public Game CheckIn(bool emergency)
        {
            lockerSettings settings = SettingsSystem.GetSettings(true);

            //alert the user of its death
            if (!emergency)
            {
                proc.WaitForExit((int)settings.checkInWait.TotalMilliseconds);
            }

            while (!proc.HasExited)
            {
                proc.Kill();
                proc.WaitForExit(10000);
            }
            if (!timeLog.detectedLogError() || usingDetailedTime)
            {
                timeLog.endSession(proc.ExitTime);
            }
            else if (timeLog.detectedLogError())
            {
                timeLog.addNewSession(proc.StartTime, proc.ExitTime);
            }
            else
            {
                //forget this session
            }
            locker.removeFile(unlock);
            TimeLogFactory.saveLog(timeLog);
            settings         = SettingsSystem.GetSettings();
            settings.lastTry = DateTime.Now;
            checkedout       = false;
            SettingsSystem.Sync();
            return(this);
        }