Arduino-based darkroom/long exposure metronome timer

DonF

Member
Joined
Jul 19, 2016
Messages
285
Location
Saint Charles, Il
Format
Large Format
Here is a little metronome timer I put together based upon the ATTINY85 microcontroller, The timer runs off a single 3-volt lithium battery. It turns off automatically when not in use.

The timer starts when the button is pushed AND released. A beep from the piezo speaker on release of the button can coincide with opening a shutter when doing long exposures for wet plate or pinhole work.

The timer ticks and flashes the red LED on each second thereafter. 15 second intervals are marked by a longer beep.and flash. 10 seconds before three minutes, the timer gives a series of 10 warning beeps before an alarm is sounded and the timer shuts itself off. The three minute length was chosen as it is ideal for timing the silver nitrate bath for wet plate work.

The timer can be turned off at any point by depressing the button a second time. The timer then resets for another interval.


The circuit is quite simple:



The Arduino code is equally simple. You must install the ATTINY85 board files into the Arduino IDE and use a simple programmer to get the code into the chip. The timer uses the internal oscillator of the chip, which can be quite inaccurate. The code contains a calibration factor that trims the oscillator for accurate performance.

I have the precompiled .hex programming file listed below the source code.

This is for those already familiar with Arduino programming. It may be a bit daunting to come up to speed on all of this from scratch!

Regards,

Don

==========================================================================================


/* ATtiny85 Low-Power Timer */

#include <avr/sleep.h>

// Utility macros
#define adc_disable() (ADCSRA &= ~(1<<ADEN)) // disable ADC (before power-off)
#define adc_enable() (ADCSRA |= (1<<ADEN)) // re-enable ADC

// constants
const int Speaker = 1; // speaker pin
const int Lamp = 0;
int Power __attribute__ ((section (".noinit"))); //Power state survives a reset if defined this way
int count1 = 0; //Seconds count for alarm
int count2 = 0; //Seconds count for 15 second beep
int Alarm = 180; // alarm time - 3 minutes
unsigned long prev, interval = 1000; //Variables for display/clock update rate - 1 second

void setup()
{
pinMode(Lamp, OUTPUT);
pinMode(Speaker, OUTPUT);
adc_disable(); // ADC uses ~320uA
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
OSCCAL -= 4; //Calibrate 8 MHz timer - unique per chip

Power = !Power;
if (!Power) enterSleep();

flashLed(3);
playBeep(1000, 1, 100);
}

void enterSleep(void)
{
sleep_enable();
sleep_cpu();
}

void playBeep(unsigned int freq, unsigned int count, int length)
{
for (int i=0; i < count; i++)
{
tone(Speaker, freq, length);
delay(2 * length);
}
}

void flashLed(int wait)
{
digitalWrite(Lamp, HIGH);
delay(wait);
digitalWrite(Lamp, LOW);
}

// Main loop ----------------------------------------------

void loop()
{

unsigned long now = millis();
if ((now - prev > interval)) {
count1 = count1 + 1;
count2 = count2 + 1;
if (count1 != Alarm && count2 != 15 && count1 < Alarm - 10) {playBeep(400, 1, 3); flashLed(3);}
if (count1 != Alarm && count2 == 15 && count1 < Alarm - 10) {flashLed(3); playBeep(1000, 1, 100); count2 = 0;}
if (count1 != Alarm && count2 != 15 && count1 >= Alarm - 10) {playBeep(1200, 1, 35); flashLed(250);}
if (count1 == Alarm) {playBeep(1500, 32, 20); enterSleep();}

prev = now; //Reset variables for display and time update rate
}
}


=====================================================================================

:100000001DC037C036C011C434C06DC132C031C04C
:1000100030C02FC02EC02DC02CC02BC02AC0010262
:100020000000040001020408102002020202020281
:1000300000000000380000000000370011241FBE3F
:10004000CFE5D2E0DEBFCDBF10E0A0E6B0E0E6E84D
:10005000FAE002C005900D92A836B107D9F720E06A
:10006000A8E6B0E001C01D92A038B207E1F743D482
:1000700008C5C6CF85B7806285BF889508954F9221
:100080005F926F927F92AF92BF92CF92DF92EF9288
:10009000FF920F931F93CF93DF935C018B012A0193
:1000A000440C551C052C000C66087708C0E0D0E015
:1000B0006A01550FEE08FF08C017D10751F0A701DC
:1000C0009601B50181E083D2C301B20189D12196A5
:1000D000F3CFDF91CF911F910F91FF90EF90DF90C1
:1000E000CF90BF90AF907F906F905F904F900895AA
:1000F000CF93DF93EC0161E080E01ED2BE01DD0F03
:10010000880B990B6DD160E080E0DF91CF9114C234
:1001100061E080E0C2D161E081E0BFD1379885B76E
:10012000877E806185BF81B7845081BF81E0209147
:10013000800030918100232B09F080E0282F30E0EF
:100140003093810020938000811101C093DF83E010
:1001500090E0CEDF44E650E061E070E088EE93E0AE
:100160008ECFCF92DF92EF92FF9207D16B017C018D
:100170008091680090916900A0916A00B0916B0035
:10018000B701A601481B590B6A0B7B0B80916000DD
:1001900090916100A0916200B0916300841795076F
:1001A000A607B70708F08BC080916E0090916F0092
:1001B000019690936F0080936E0040916C00509177
:1001C0006D004F5F5F4F50936D0040936C00209126
:1001D0006400309165008217930791F04F3051050C
:1001E00079F02A5031098217930754F443E050E024
:1001F00061E070E080E991E042DF83E090E078DF49
:1002000020916E0030916F008091640090916500A4
:1002100028173907C9F040916C0050916D004F309C
:10022000510591F40A972817390774F483E090E098
:100230005FDF44E650E061E070E088EE93E01FDFAE
:1002400010926D0010926C0020916E0030916F0042
:10025000809164009091650028173907A9F04091BA
:100260006C0050916D004F30510571F00A972817BE
:10027000390754F043E250E061E070E080EB94E035
:10028000FEDE8AEF90E034DF20916E0030916F0047
:1002900080916400909165002817390741F444E18A
:1002A00050E060E270E08CED95E0E9DEE3DEC092C4
:1002B0006800D0926900E0926A00F0926B00FF90B3
:1002C000EF90DF90CF90089580B7807F80BF80B798
:1002D000806880BF8CB580648CBD8FEF8DBD80B78A
:1002E000876080BF08951F920F920FB60F9211245E
:1002F0002F933F938F939F93AF93BF938091710000
:1003000090917200A0917300B091740030917000D0
:1003100026E0230F2D3730F029E8230F0396A11D87
:10032000B11D03C00296A11DB11D209370008093E2
:10033000710090937200A0937300B0937400809149
:10034000750090917600A0917700B09178000196A9
:10035000A11DB11D8093750090937600A093770046
:10036000B0937800BF91AF919F918F913F912F9162
:100370000F900FBE0F901F9018952FB7F8946091B3
:1003800071007091720080917300909174002FBF82
:1003900008953FB7F8948091750090917600A091F0
:1003A0007700B091780022B708B601FE05C02F3F54
:1003B00019F00196A11DB11D3FBFBA2FA92F982F8B
:1003C0008827820F911DA11DB11DBC01CD0143E005
:1003D000660F771F881F991F4A95D1F708950895D2
:1003E000CF92DF92EF92FF92CF93DF936B017C016C
:1003F000D0DFEB01C114D104E104F10479F0EFDFA7
:10040000C8DF6C1B7D0B683E7340A0F381E0C81A07
:10041000D108E108F108C851DC4FF2CFDF91CF914C
:10042000FF90EF90DF90CF9008958AB582608ABDEB
:100430008AB581608ABD83B7887F836083BF7894E3
:1004400089B7826089BF40DF86B18877866886B9C0
:10045000379A0895813031F48AB58F778ABD8AB58D
:100460008F7B07C0823039F48AB58F7D8ABD8AB50B
:100470008F7E8ABD0895833039F480B78F7D80BF29
:1004800080B78F7E80BF0895843031F48CB58F7D26
:100490008CBD8CB58F7E8CBD0895CF93DF9387FF85
:1004A00011C08F7741F0813041F0823041F08330CC
:1004B00041F08FEF07C085E005C082E003C084E013
:1004C00001C083E090E0FC01EC5DFF4F2491FC0152
:1004D000E65DFF4F8491882361F190E0880F991FBA
:1004E000FC01EA5CFF4FC591D491FC01E05DFF4F38
:1004F000A591B491611109C09FB7F89488812095A6
:1005000082238883EC912E230BC0623061F49FB765
:10051000F8943881822F809583238883EC912E2B49
:100520002C939FBF06C08FB7F894E8812E2B2883A9
:100530008FBFDF91CF9108950F931F93CF93DF93D8
:100540001F92CDB7DEB787FF11C08F7741F08130A2
:1005500041F0823041F0833041F08FEF07C085E0F9
:1005600005C082E003C084E001C083E0282F30E0B2
:10057000F901E25EFF4F8491F901EC5DFF4F1491A8
:10058000F901E65DFF4F04910023D9F0882319F0AB
:10059000698360DF6981E02FF0E0EE0FFF1FE05D0F
:1005A000FF4FA591B4918FB7611106C0F8949C914B
:1005B000E12FE095E92303C0F894EC91E12BEC9353
:1005C0008FBF0F90DF91CF911F910F9108958F9260
:1005D0009F92AF92BF92CF92DF92EF92FF920F93D2
:1005E0001F93CF93DF93182FEB0169017A0180915C
:1005F00066008F3F99F510BE8CB581788CBD1FBC0D
:100600001EBC1BBC1DBC89B78B7989BF88B78466AB
:1006100088BF80B7806880BF80B78F7B80BF8CB574
:100620008F7B8CBD212F30E0F901E25EFF4F84917A
:10063000833009F485C08491843009F0A1C080C062
:10064000E33009F08DC080B78F7D80BF80B78061B7
:1006500080BF61E0812F21DF10936600009166006A
:100660000113ADC080B7807F80BF1FBC209709F405
:1006700052C04E01A12CB12C60E079E08DE390E0F6
:10068000A501940160D111E02F3F310539F030F020
:100690001F3021F01F5F36952795F6CF8FEF820F21
:1006A0008DBD215031092EBDC114D104E104F104E6
:1006B000C1F0CC0FDD1FBE0180E090E0A7019601E4
:1006C00060D1B901CA0128EE33E040E050E019D111
:1006D00020937C0030937D0040937E0050937F00F8
:1006E0006AC08FEF9FEFDC0180937C0090937D00C8
:1006F000A0937E00B0937F00E02FF0E0E25EFF4F1A
:100700008491833021F0E491E43009F054C080B743
:10071000182B10BF54C089B7806489BF89B78B7903
:1007200089BF60E0812FDF91CF911F910F91FF90E2
:10073000EF90DF90CF90BF90AF909F908F90FCCEC6
:1007400010927B0010927A0010927900E491E130CF
:1007500009F076CF8AB58F778ABD8AB5806407C0E5
:10076000E23039F48AB58F7D8ABD8AB580618ABD51
:1007700070CF8CB58F7D8CBD8CB580618CBD69CF01
:10078000F901E65DFF4FE491F0E0EE0FFF1FE05D41
:10079000FF4F8591949190937B0080937A00F901AB
:1007A000EC5DFF4FE491E093790080B78F7C80BFD0
:1007B0008CB58F7CE3CF89B7806489BFA8CFDF91E8
:1007C000CF911F910F91FF90EF90DF90CF90BF904E
:1007D000AF909F908F900895909166009F3F21F178
:1007E000981711F08F3F01F589B78B7989BF80B7D2
:1007F000807F80BFE0917A00F0917B00309769F0B4
:10080000909179008081282F30E0892F90E08095A9
:10081000909582239323808304C060E080916600DA
:100820008BDE8FEF8093660008951F920F920FB6B4
:100830000F9211242F933F934F935F936F937F9366
:100840008F939F93AF93BF93EF93FF9380917C001F
:1008500090917D00A0917E00B0917F00892B8A2B22
:100860008B2B61F180917C0090917D00A0917E00A6
:10087000B0917F00181619061A061B0614F5809110
:100880007C0090917D00A0917E00B0917F00019747
:10089000A109B10980937C0090937D00A0937E0014
:1008A000B0937F0080917C0090917D00A0917E00AC
:1008B000B0917F00892B8A2B8B2B19F48FEF8CDF63
:1008C00009C080917900E0917A00F0917B009081DD
:1008D00089278083FF91EF91BF91AF919F918F9175
:1008E0007F916F915F914F913F912F910F900FBE2C
:1008F0000F901F90189581B781BF97DD09DC31DC1F
:10090000FECFA1E21A2EAA1BBB1BFD010DC0AA1F20
:10091000BB1FEE1FFF1FA217B307E407F50720F068
:10092000A21BB30BE40BF50B661F771F881F991FE3
:100930001A9469F760957095809590959B01AC012C
:10094000BD01CF010895052E97FB16F400940FD03A
:1009500057FD05D0D6DF07FC02D046F408C05095FD
:100960004095309521953F4F4F4F5F4F089590959B
:100970008095709561957F4F8F4F9F4F0895689434
:100980000013E894A0E0B0E0E7ECF4E01DC0EFEF66
:10099000E7F959016A015E23550FEE08FE2C870125
:1009A0009B01AC019E23990F660B762FCB013BD0A8
:1009B000CDB7DEB7EAE024C02F923F924F925F920C
:1009C0006F927F928F929F92AF92BF92CF92DF925F
:1009D000EF92FF920F931F93CF93DF93CDB7DEB7C4
:1009E000CA1BDB0B0FB6F894DEBF0FBECDBF099458
:1009F0002A88398848885F846E847D848C849B84AF
:100A0000AA84B984C884DF80EE80FD800C811B81BC
:100A1000AA81B981CE0FD11D0FB6F894DEBF0FBEEB
:100A2000CDBFED010895DF93CF939F92A0E49A2E5E
:100A30000024D001E001F00116950795F794E794A2
:100A4000D794C794B794A79448F41068A20FB31F23
:100A5000C41FD51FE61FF71F081E191E220F331FC4
:100A6000441F551F661F771F881F991F9A9421F7EF
:100A70009D01AE01BF01C00111249F90CF91DF9174
:060A80000895F894FFCF79
:080A8600E8030000B400FF00CA
:00000001FF

 
OP
OP

DonF

Member
Joined
Jul 19, 2016
Messages
285
Location
Saint Charles, Il
Format
Large Format
Sorry to say, there was a small bug in the code. If the timer went to completion and powered itself off, TWO button presses were needed to start it, I forgot to reset the power state flag when the timer turned itself off after 3 minutes.

Here is the corrected code and hex programming file. Sorry for the "oops".

I also packaged mine up in a small enclosure with larger button.


Best,

Don

//==================================================

/* ATtiny85 Low-Power Timer */

#include <avr/sleep.h>

// Utility macros
#define adc_disable() (ADCSRA &= ~(1<<ADEN)) // disable ADC (before power-off)
#define adc_enable() (ADCSRA |= (1<<ADEN)) // re-enable ADC

// constants
const int Speaker = 1; // speaker pin
const int Lamp = 0;
int Power __attribute__ ((section (".noinit"))); //Power state survives a reset if defined this way
int count1 = 0; //Seconds count for alarm
int count2 = 0; //Seconds count for 15 second beep
int Alarm = 180; // alarm time - 3 minutes
unsigned long prev, interval = 1000; //Variables for display/clock update rate - 1 second

void setup()
{
pinMode(Lamp, OUTPUT);
pinMode(Speaker, OUTPUT);
adc_disable(); // ADC uses ~320uA
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
OSCCAL -= 4; //Calibrate 8 MHz timer - unique per chip

Power = !Power;
if (!Power) enterSleep();

flashLed(3);
playBeep(1000, 1, 100);
}

void enterSleep(void)
{
sleep_enable();
sleep_cpu();
}

void playBeep(unsigned int freq, unsigned int count, int length)
{
for (int i=0; i < count; i++)
{
tone(Speaker, freq, length);
delay(2 * length);
}
}

void flashLed(int wait)
{
digitalWrite(Lamp, HIGH);
delay(wait);
digitalWrite(Lamp, LOW);
}

// Main loop ----------------------------------------------

void loop()
{

unsigned long now = millis();
if ((now - prev > interval)) {
count1 = count1 + 1;
count2 = count2 + 1;
if (count1 != Alarm && count2 != 15 && count1 < Alarm - 10) {playBeep(400, 1, 3); flashLed(3);}
if (count1 != Alarm && count2 == 15 && count1 < Alarm - 10) {flashLed(3); playBeep(1000, 1, 100); count2 = 0;}
if (count1 != Alarm && count2 != 15 && count1 >= Alarm - 10) {playBeep(1200, 1, 35); flashLed(250);}
if (count1 == Alarm) {playBeep(1500, 32, 20); Power = !Power; enterSleep();}

prev = now; //Reset variables for display and time update rate
}
}

//====================================================================================================

:100000001DC037C036C01FC434C07BC132C031C030
:1000100030C02FC02EC02DC02CC02BC02AC0010262
:100020000000040001020408102002020202020281
:1000300000000000380000000000370011241FBE3F
:10004000CFE5D2E0DEBFCDBF10E0A0E6B0E0E2EA4F
:10005000FAE002C005900D92A836B107D9F720E06A
:10006000A8E6B0E001C01D92A038B207E1F751D474
:1000700016C5C6CF85B7806285BF889508954F9213
:100080005F926F927F92AF92BF92CF92DF92EF9288
:10009000FF920F931F93CF93DF935C018B012A0193
:1000A000440C551C052C000C66087708C0E0D0E015
:1000B0006A01550FEE08FF08C017D10751F0A701DC
:1000C0009601B50181E091D2C301B20197D1219689
:1000D000F3CFDF91CF911F910F91FF90EF90DF90C1
:1000E000CF90BF90AF907F906F905F904F900895AA
:1000F000CF93DF93EC0161E080E02CD2BE01DD0FF5
:10010000880B990B7BD160E080E0DF91CF9122C218
:1001100061E080E0D0D161E081E0CDD1379885B752
:10012000877E806185BF81B7845081BF81E0209147
:10013000800030918100232B09F080E0282F30E0EF
:100140003093810020938000811101C093DF83E010
:1001500090E0CEDF44E650E061E070E088EE93E0AE
:100160008ECFCF92DF92EF92FF9215D16B017C017F
:100170008091680090916900A0916A00B0916B0035
:10018000B701A601481B590B6A0B7B0B80916000DD
:1001900090916100A0916200B0916300841795076F
:1001A000A607B70708F099C080916E0090916F0084
:1001B000019690936F0080936E0040916C00509177
:1001C0006D004F5F5F4F50936D0040936C00209126
:1001D0006400309165008217930791F04F3051050C
:1001E00079F02A5031098217930754F443E050E024
:1001F00061E070E080E991E042DF83E090E078DF49
:1002000020916E0030916F008091640090916500A4
:1002100028173907C9F040916C0050916D004F309C
:10022000510591F40A972817390774F483E090E098
:100230005FDF44E650E061E070E088EE93E01FDFAE
:1002400010926D0010926C0020916E0030916F0042
:10025000809164009091650028173907A9F04091BA
:100260006C0050916D004F30510571F00A972817BE
:10027000390754F043E250E061E070E080EB94E035
:10028000FEDE8AEF90E034DF20916E0030916F0047
:10029000809164009091650028173907B1F444E11A
:1002A00050E060E270E08CED95E0E9DE81E090E006
:1002B0002091800030918100232B11F080E090E0AC
:1002C0009093810080938000D5DEC0926800D09228
:1002D0006900E0926A00F0926B00FF90EF90DF906F
:1002E000CF90089580B7807F80BF80B7806880BF3F
:1002F0008CB580648CBD8FEF8DBD80B7876080BF6B
:1003000008951F920F920FB60F9211242F933F93CF
:100310008F939F93AF93BF938091710090917200E0
:10032000A0917300B09174003091700026E0230F0B
:100330002D3730F029E8230F0396A11DB11D03C00E
:100340000296A11DB11D20937000809371009093BF
:100350007200A0937300B093740080917500909127
:100360007600A0917700B09178000196A11DB11D93
:100370008093750090937600A0937700B0937800F7
:10038000BF91AF919F918F913F912F910F900FBE91
:100390000F901F9018952FB7F8946091710070918D
:1003A000720080917300909174002FBF08953FB741
:1003B000F8948091750090917600A0917700B091AB
:1003C000780022B708B601FE05C02F3F19F001964C
:1003D000A11DB11D3FBFBA2FA92F982F8827820FCB
:1003E000911DA11DB11DBC01CD0143E0660F771F1A
:1003F000881F991F4A95D1F708950895CF92DF92EB
:10040000EF92FF92CF93DF936B017C01D0DFEB0182
:10041000C114D104E104F10479F0EFDFC8DF6C1BF3
:100420007D0B683E7340A0F381E0C81AD108E10853
:10043000F108C851DC4FF2CFDF91CF91FF90EF90E0
:10044000DF90CF9008958AB582608ABD8AB58160B9
:100450008ABD83B7887F836083BF789489B78260C1
:1004600089BF40DF86B18877866886B9379A089554
:10047000813031F48AB58F778ABD8AB58F7B07C00A
:10048000823039F48AB58F7D8ABD8AB58F7E8ABD68
:100490000895833039F480B78F7D80BF80B78F7E19
:1004A00080BF0895843031F48CB58F7D8CBD8CB5C0
:1004B0008F7E8CBD0895CF93DF9387FF11C08F7718
:1004C00041F0813041F0823041F0833041F08FEFD4
:1004D00007C085E005C082E003C084E001C083E07E
:1004E00090E0FC01EC5DFF4F2491FC01E65DFF4FC5
:1004F0008491882361F190E0880F991FFC01EA5CE8
:10050000FF4FC591D491FC01E05DFF4FA591B491DF
:10051000611109C09FB7F894888120958223888350
:10052000EC912E230BC0623061F49FB7F8943881B0
:10053000822F809583238883EC912E2B2C939FBF51
:1005400006C08FB7F894E8812E2B28838FBFDF91E8
:10055000CF9108950F931F93CF93DF931F92CDB741
:10056000DEB787FF11C08F7741F0813041F08230D4
:1005700041F0833041F08FEF07C085E005C082E095
:1005800003C084E001C083E0282F30E0F901E25E7F
:10059000FF4F8491F901EC5DFF4F1491F901E65D85
:1005A000FF4F04910023D9F0882319F0698360DF9D
:1005B0006981E02FF0E0EE0FFF1FE05DFF4FA59196
:1005C000B4918FB7611106C0F8949C91E12FE0952A
:1005D000E92303C0F894EC91E12BEC938FBF0F90CB
:1005E000DF91CF911F910F9108958F929F92AF92BB
:1005F000BF92CF92DF92EF92FF920F931F93CF9310
:10060000DF93182FEB0169017A01809166008F3F1B
:1006100099F510BE8CB581788CBD1FBC1EBC1BBC6F
:100620001DBC89B78B7989BF88B7846688BF80B7BE
:10063000806880BF80B78F7B80BF8CB58F7B8CBD7F
:10064000212F30E0F901E25EFF4F8491833009F4FD
:1006500085C08491843009F0A1C080C0E33009F0E6
:100660008DC080B78F7D80BF80B7806180BF61E023
:10067000812F21DF10936600009166000113ADC049
:1006800080B7807F80BF1FBC209709F452C04E0105
:10069000A12CB12C60E079E08DE390E0A5019401FC
:1006A00060D111E02F3F310539F030F01F3021F0DB
:1006B0001F5F36952795F6CF8FEF820F8DBD2150A6
:1006C00031092EBDC114D104E104F104C1F0CC0FF5
:1006D000DD1FBE0180E090E0A701960160D1B90165
:1006E000CA0128EE33E040E050E019D120937C00AD
:1006F00030937D0040937E0050937F006AC08FEF5F
:100700009FEFDC0180937C0090937D00A0937E009E
:10071000B0937F00E02FF0E0E25EFF4F84918330E2
:1007200021F0E491E43009F054C080B7182B10BFD9
:1007300054C089B7806489BF89B78B7989BF60E06D
:10074000812FDF91CF911F910F91FF90EF90DF905C
:10075000CF90BF90AF909F908F90FCCE10927B0077
:1007600010927A0010927900E491E13009F076CF8E
:100770008AB58F778ABD8AB5806407C0E23039F4C4
:100780008AB58F7D8ABD8AB580618ABD70CF8CB5F0
:100790008F7D8CBD8CB580618CBD69CFF901E65D24
:1007A000FF4FE491F0E0EE0FFF1FE05DFF4F8591FA
:1007B000949190937B0080937A00F901EC5DFF4F58
:1007C000E491E093790080B78F7C80BF8CB58F7CFB
:1007D000E3CF89B7806489BFA8CFDF91CF911F9104
:1007E0000F91FF90EF90DF90CF90BF90AF909F90D0
:1007F0008F900895909166009F3F21F1981711F016
:100800008F3F01F589B78B7989BF80B7807F80BF23
:10081000E0917A00F0917B00309769F09091790037
:100820008081282F30E0892F90E080959095822359
:100830009323808304C060E0809166008BDE8FEF9D
:100840008093660008951F920F920FB60F921124A5
:100850002F933F934F935F936F937F938F939F93C8
:10086000AF93BF93EF93FF9380917C0090917D00B5
:10087000A0917E00B0917F00892B8A2B8B2B61F198
:1008800080917C0090917D00A0917E00B0917F00CE
:10089000181619061A061B0614F580917C00909113
:1008A0007D00A0917E00B0917F000197A109B10960
:1008B00080937C0090937D00A0937E00B0937F0096
:1008C00080917C0090917D00A0917E00B0917F008E
:1008D000892B8A2B8B2B19F48FEF8CDF09C0809129
:1008E0007900E0917A00F0917B00908189278083E4
:1008F000FF91EF91BF91AF919F918F917F916F91F8
:100900005F914F913F912F910F900FBE0F901F90CD
:10091000189581B781BF97DDFBDB23DCFECFA1E219
:100920001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F69
:10093000FF1FA217B307E407F50720F0A21BB30BB4
:10094000E40BF50B661F771F881F991F1A9469F730
:1009500060957095809590959B01AC01BD01CF018C
:100960000895052E97FB16F400940FD057FD05D07F
:10097000D6DF07FC02D046F408C05095409530956C
:1009800021953F4F4F4F5F4F0895909580957095FB
:1009900061957F4F8F4F9F4F089568940013E8949F
:1009A000A0E0B0E0E5EDF4E01DC0EFEFE7F959019C
:1009B0006A015E23550FEE08FE2C87019B01AC01F6
:1009C0009E23990F660B762FCB013BD0CDB7DEB7B8
:1009D000EAE024C02F923F924F925F926F927F92F3
:1009E0008F929F92AF92BF92CF92DF92EF92FF923F
:1009F0000F931F93CF93DF93CDB7DEB7CA1BDB0BEB
:100A00000FB6F894DEBF0FBECDBF09942A8839888F
:100A100048885F846E847D848C849B84AA84B98496
:100A2000C884DF80EE80FD800C811B81AA81B981A2
:100A3000CE0FD11D0FB6F894DEBF0FBECDBFED01B6
:100A40000895DF93CF939F92A0E49A2E0024D001C3
:100A5000E001F00116950795F794E794D794C794B1
:100A6000B794A79448F41068A20FB31FC41FD51FF2
:100A7000E61FF71F081E191E220F331F441F551FA4
:100A8000661F771F881F991F9A9421F79D01AE0159
:100A9000BF01C00111249F90CF91DF910895F89478
:020AA000FFCF86
:080AA200E8030000B400FF00AE
:00000001FF
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…