public static PR1132Configuration Deserialize(Stream file)
        {
            file.Seek(6, SeekOrigin.Begin);

            var cfg = new PR1132Configuration();

            for (int i = 0; i < 16; i++)
            {
                var buf = new byte[32];
                file.Read(buf, 0, 32);
                cfg.Groups[i] = ParseGroup(buf);
            }

            for (int i = 0; i < 32; i++)
            {
                var buf = new byte[25];
                file.Read(buf, 0, 25);
                cfg.Channels[i] = ParseChannel(buf);
            }

            ParseTimeSettings(file.ReadByte(), ref cfg);

            for (int i = 0; i < 7; i++)
            {
                var buf = new byte[7];
                file.Read(buf, 0, 7);
                cfg.Timers[i] = ParseTimer(buf);
            }

            return(cfg);
        }
        private static void ParseTimeSettings(int buf, ref PR1132Configuration cfg)
        {
            if (buf != -1)
            {
                var timeSettings = (byte)buf;

                cfg.TimeOffset     = (timeSettings & 63) - 11;
                cfg.UseDst         = (timeSettings & 64) > 0;
                cfg.AutoUpdateTime = (timeSettings & 128) > 0;
            }
        }