Problems with DS3231 Library

The AlarmBits are sent to the DS3231 correctly, but there is a bug in reading back.
The problem is that AlarmBits in getA1Time and getA2Time were not initialized to 0x00.
AlarmBits is ORd with the correct bit each time, but any random bits will remain.
Fix as follows:
Change DS3231.cpp line 275 (first time AlarmBits is used in getA1Time) from
AlarmBits = AlarmBits | (temp_buffer & 0b10000000)>>7;
to
AlarmBits = (temp_buffer & 0b10000000)>>7;

Similarly, also fix the bug in getA2Time, line 318
AlarmBits = AlarmBits | (temp_buffer & 0b10000000)>>3;
to
AlarmBits = (temp_buffer & 0b10000000)>>3;

Then it works 100%.
pvz