// Token: 0x0600095F RID: 2399 RVA: 0x0002C270 File Offset: 0x0002A470
        public static EseLogRecordPosition GetLastLogRecordPosition(string logfileName, string temporaryDirectory, out Exception ex)
        {
            EseLogRecordPosition result = null;

            ex = null;
            try
            {
                EseLogRecord[] logRecords = EseHelper.GetLogRecords(logfileName, temporaryDirectory);
                if (logRecords.Length > 0)
                {
                    result = EseHelper.GetLastLogRecordPosition(logRecords);
                }
            }
            catch (EsentErrorException ex2)
            {
                ex = ex2;
            }
            catch (IOException ex3)
            {
                ex = ex3;
            }
            catch (UnauthorizedAccessException ex4)
            {
                ex = ex4;
            }
            return(result);
        }
        // Token: 0x0600097B RID: 2427 RVA: 0x0002CFA4 File Offset: 0x0002B1A4
        private static void InternalTestParseLogfileDumpBadData()
        {
            ExTraceGlobals.EseutilWrapperTracer.TraceDebug(0L, "EseHelper.InternalTestParseLogfileDumpBadData");
            string value  = "LHGX, Create time:12/14/2005 15:30:42 Rand:9483281 Computer:, 00004B9E, 01/23/2006 09:09:02, 01/23/2006 09:06:33, 7.3704.8, 0x0" + Environment.NewLine + string.Empty;
            string value2 = "LRPI, 00000000EF1FB879, Insert   , 005FE92F, THIS IS BAD DATA, 0000036E, 00000001, 0000000008DCDFA0, 0000000008DCDFD0" + Environment.NewLine + string.Empty;
            string text   = EseHelper.CreateTemporaryFile(Path.GetTempPath());

            DiagCore.RetailAssert(File.Exists(text), "Temporary file {0} doesn't exist.", new object[]
            {
                text
            });
            using (StreamWriter streamWriter = new StreamWriter(text, false, Encoding.Unicode))
            {
                streamWriter.Write(value);
            }
            try
            {
                EseHelper.ParseLogfileDump(text);
                DiagCore.RetailAssert(false, "Should have thrown an EseutilParseErrorException", new object[0]);
            }
            catch (EseutilParseErrorException)
            {
            }
            DiagCore.RetailAssert(!File.Exists(text), "File {0} should have been deleted.", new object[]
            {
                text
            });
            text = EseHelper.CreateTemporaryFile(Path.GetTempPath());
            DiagCore.RetailAssert(File.Exists(text), "Temporary file {0} doesn't exist.", new object[]
            {
                text
            });
            using (StreamWriter streamWriter2 = new StreamWriter(text, false, Encoding.Unicode))
            {
                streamWriter2.Write(value2);
            }
            try
            {
                EseHelper.ParseLogfileDump(text);
                DiagCore.RetailAssert(false, "Should have thrown an EseutilParseErrorException", new object[0]);
            }
            catch (EseutilParseErrorException)
            {
            }
            DiagCore.RetailAssert(!File.Exists(text), "File {0} should have been deleted.", new object[]
            {
                text
            });
            try
            {
                EseHelper.GetLogRecords(Path.GetRandomFileName(), Path.GetTempPath());
                DiagCore.RetailAssert(false, "Should have thrown EsentErrorException.", new object[0]);
            }
            catch (EsentErrorException)
            {
            }
        }
 // Token: 0x0600095E RID: 2398 RVA: 0x0002C120 File Offset: 0x0002A320
 public static bool IsLogfileEqual(string logfile1, string logfile2, string temporaryDirectory, EseLogRecordPosition lastRec1, EseLogRecordPosition lastRec2)
 {
     EseLogRecord[] logRecords  = EseHelper.GetLogRecords(logfile1, temporaryDirectory);
     EseLogRecord[] logRecords2 = EseHelper.GetLogRecords(logfile2, temporaryDirectory);
     if (lastRec1 != null)
     {
         EseLogRecordPosition lastLogRecordPosition = EseHelper.GetLastLogRecordPosition(logRecords);
         if (lastLogRecordPosition != null)
         {
             lastRec1.LogPos          = lastLogRecordPosition.LogPos;
             lastRec1.LogRecordLength = lastLogRecordPosition.LogRecordLength;
             lastRec1.LogSectorSize   = lastLogRecordPosition.LogSectorSize;
         }
     }
     if (lastRec2 != null)
     {
         EseLogRecordPosition lastLogRecordPosition2 = EseHelper.GetLastLogRecordPosition(logRecords2);
         if (lastLogRecordPosition2 != null)
         {
             lastRec2.LogPos          = lastLogRecordPosition2.LogPos;
             lastRec2.LogRecordLength = lastLogRecordPosition2.LogRecordLength;
             lastRec2.LogSectorSize   = lastLogRecordPosition2.LogSectorSize;
         }
     }
     if (logRecords2.Length != logRecords.Length)
     {
         ExTraceGlobals.EseutilWrapperTracer.TraceDebug(0L, "IsLogfileEqual({0},{1}) returns false. {0} has {2} records. {1} has {3} records.", new object[]
         {
             logfile1,
             logfile2,
             logRecords.Length,
             logRecords2.Length
         });
         return(false);
     }
     for (int i = 0; i < logRecords.Length; i++)
     {
         if (logRecords[i].ToString() != logRecords2[i].ToString())
         {
             ExTraceGlobals.EseutilWrapperTracer.TraceDebug(0L, "IsLogfileEqual({0},{1}) returns false. {0} has {2} records. {1} has {3} records. The differing log records are {4} and {5}. Differing position is {6}.", new object[]
             {
                 logfile1,
                 logfile2,
                 logRecords.Length,
                 logRecords2.Length,
                 logRecords[i],
                 logRecords2[i],
                 i
             });
             return(false);
         }
     }
     return(true);
 }
 // Token: 0x0600095D RID: 2397 RVA: 0x0002BF50 File Offset: 0x0002A150
 public static bool IsLogfileSubset(string logfile1, string logfile2, string temporaryDirectory, EseLogRecordPosition lastRec1, EseLogRecordPosition lastRec2)
 {
     EseLogRecord[] logRecords  = EseHelper.GetLogRecords(logfile1, temporaryDirectory);
     EseLogRecord[] logRecords2 = EseHelper.GetLogRecords(logfile2, temporaryDirectory);
     if (lastRec1 != null)
     {
         EseLogRecordPosition lastLogRecordPosition = EseHelper.GetLastLogRecordPosition(logRecords);
         if (lastLogRecordPosition != null)
         {
             lastRec1.LogPos          = lastLogRecordPosition.LogPos;
             lastRec1.LogRecordLength = lastLogRecordPosition.LogRecordLength;
             lastRec1.LogSectorSize   = lastLogRecordPosition.LogSectorSize;
         }
     }
     if (lastRec2 != null)
     {
         EseLogRecordPosition lastLogRecordPosition2 = EseHelper.GetLastLogRecordPosition(logRecords2);
         if (lastLogRecordPosition2 != null)
         {
             lastRec2.LogPos          = lastLogRecordPosition2.LogPos;
             lastRec2.LogRecordLength = lastLogRecordPosition2.LogRecordLength;
             lastRec2.LogSectorSize   = lastLogRecordPosition2.LogSectorSize;
         }
     }
     if (logRecords2.Length > logRecords.Length)
     {
         ExTraceGlobals.EseutilWrapperTracer.TraceDebug(0L, "IsLogfileSubset({0},{1}) returns false. {0} has {2} records. {1} has {3} records.", new object[]
         {
             logfile1,
             logfile2,
             logRecords.Length,
             logRecords2.Length
         });
         return(false);
     }
     for (int i = 0; i < logRecords2.Length - 1; i++)
     {
         bool flag = true;
         if ((!(logRecords[i] is EseChecksumRecord) || !(logRecords2[i] is EseChecksumRecord)) && logRecords[i].ToString() != logRecords2[i].ToString())
         {
             flag = false;
         }
         if (!flag)
         {
             ExTraceGlobals.EseutilWrapperTracer.TraceDebug(0L, "IsLogfileSubset({0},{1}) returns false. {0} has {2} records. {1} has {3} records. The differing log records are {4} and {5}. Differing position is {6}.", new object[]
             {
                 logfile1,
                 logfile2,
                 logRecords.Length,
                 logRecords2.Length,
                 logRecords[i],
                 logRecords2[i],
                 i
             });
             return(false);
         }
     }
     if (!(logRecords2[logRecords2.Length - 1] is EseEofRecord))
     {
         ExTraceGlobals.EseutilWrapperTracer.TraceDebug(0L, "IsLogfileSubset({0},{1}) returns false. {0} has {2} records. {1} has {3} records. File {1} does not end in an EOF record. The last record is {4}.", new object[]
         {
             logfile1,
             logfile2,
             logRecords.Length,
             logRecords2.Length,
             logRecords2[logRecords2.Length - 1]
         });
         return(false);
     }
     return(true);
 }