code: @Override protected int readData(byte[] buffer, int offset)
     {
        // Unknown
        offset += 6;
  
        // Structure flags? See StringColumn...
        offset += 4;
  
        // Originally I though that there was a fixed 48 byte offset from the end of
        // the header to the start of the data. In fact there appears to be an optional
        // block of string data after the header, but before the binary version of the dates.
        // The string dates in this optional block don't appear to match the actual dates, so
        // we skip past them. We're looking for a byte pattern which we expect at the start
        // of the block of binary dates... it's fragile, but the best we can do at the moment.
        offset = FastTrackUtility.skipToNextMatchingShort(buffer, offset, 0x000A) - 2;
  
        FixedSizeItemsBlock data = new FixedSizeItemsBlock().read(buffer, offset);
        offset = data.getOffset();
  
        Calendar cal = DateHelper.popCalendar();
        byte[][] rawData = data.getData();
        m_data = new Date[rawData.length];
        for (int index = 0; index < rawData.length; index++)
        {
           byte[] rawValue = rawData[index];
           if (rawValue != null && rawValue.length >= 4)
           {
              int value = FastTrackUtility.getInt(rawValue, 0);
              if (value > 0)
              {
                 cal.setTimeInMillis(DATE_EPOCH);
                 cal.add(Calendar.DAY_OF_YEAR, value);
                 m_data[index] = cal.getTime();
              }
           }
        }
        DateHelper.pushCalendar(cal);
        
        return offset;
     }
docs: {@inheritDoc}