avr/motor_ctrl: Prevent dangerous immediate engine reverse in PID
authorErik Andresen <erik@vontaene.de>
Sun, 17 Sep 2017 18:28:05 +0000 (20:28 +0200)
committerErik Andresen <erik@vontaene.de>
Sun, 17 Sep 2017 18:28:05 +0000 (20:28 +0200)
avr/motor_ctrl/main.c
avr/motor_ctrl/main.hex

index 3642d4a..d751375 100644 (file)
@@ -937,7 +937,8 @@ static void update_pid(void) {
                        speed1_wish_old = speed1_wish;
                }
 
-               if (speed1_wish == 0) {
+               uint8_t dir_change = (speed1_wish > 0 && speed1 < 0) || (speed1_wish < 0 && speed1 > 0); // Prevent dangerous immediate engine reverse
+               if (speed1_wish == 0 || dir_change) {
                        motor1 = 0;
                        eold1 = 0;
                        error_state &= ~(1<<4);
@@ -959,7 +960,8 @@ static void update_pid(void) {
                        speed2_wish_old = speed2_wish;
                }
 
-               if (speed2_wish == 0) {
+               uint8_t dir_change = (speed2_wish > 0 && speed2 < 0) || (speed2_wish < 0 && speed2 > 0); // Prevent dangerous immediate engine reverse
+               if (speed2_wish == 0 || dir_change) {
                        motor2 = 0;
                        eold2 = 0;
                        error_state &= ~(1<<5);
@@ -981,7 +983,8 @@ static void update_pid(void) {
                        speed3_wish_old = speed3_wish;
                }
 
-               if (speed3_wish == 0) {
+               uint8_t dir_change = (speed3_wish > 0 && speed3 < 0) || (speed3_wish < 0 && speed3 > 0); // Prevent dangerous immediate engine reverse
+               if (speed3_wish == 0 || dir_change) {
                        motor3 = 0;
                        eold3 = 0;
                        error_state &= ~(1<<6);
@@ -1003,7 +1006,8 @@ static void update_pid(void) {
                        speed4_wish_old = speed4_wish;
                }
 
-               if (speed4_wish == 0) {
+               uint8_t dir_change = (speed4_wish > 0 && speed4 < 0) || (speed4_wish < 0 && speed4 > 0); // Prevent dangerous immediate engine reverse
+               if (speed4_wish == 0 || dir_change) {
                        motor4 = 0;
                        eold4 = 0;
                        error_state &= ~(1<<7);
index e21a45e..5f613d5 100644 (file)
 :1001A000A9020C50B9918688083CA6AAAA2ABE00CA\r
 :1001B0000000803F45464765666700202B2D2E30A6\r
 :1001C00031323334353637383968000011241FBED8\r
-:1001D000CFE5D8E0DEBFCDBF10E0A0E6B0E0E2E7BB\r
-:1001E000FBE202C005900D92AA37B107D9F721E0D2\r
+:1001D000CFE5D8E0DEBFCDBF10E0A0E6B0E0EAEAB0\r
+:1001E000FCE202C005900D92AA37B107D9F721E0D1\r
 :1001F000AAE7B0E001C01D92A037B207E1F70E9464\r
-:1002000036060C94B7150C9400001F920F920FB68F\r
+:1002000036060C9453160C9400001F920F920FB6F2\r
 :100210000F9211242F933F934F935F936F937F938C\r
 :100220008F939F93AF93BF93EF93FF9381B1887F99\r
 :10023000803A09F425C328F4803651F0803869F0FB\r
@@ -74,8 +74,8 @@
 :10049000DC00E6C123B18091A4009091A500A09159\r
 :1004A000A600B091A700BA2FA92F982F8827BC01CA\r
 :1004B000CD01622B6093A4007093A5008093A600E9\r
-:1004C0009093A70020E038E24EEA55E40E94021221\r
-:1004D0000E94D6107093D9006093D8007093D70013\r
+:1004C0009093A70020E038E24EEA55E40E949E1285\r
+:1004D0000E9472117093D9006093D8007093D70076\r
 :1004E0006093D60081E08093DF008093DE00B8C186\r
 :1004F00083B190E0A0E0B0E00EC023B18091A400F1\r
 :100500009091A500A091A600B091A700BA2FA92FA5\r
@@ -91,7 +91,7 @@
 :1005A000809368005DC183B18093DB0059C183B142\r
 :1005B0008093AB0003C083B18093AA0081E0809355\r
 :1005C000FA004EC1E091F1008E2F90E0FC013297CD\r
-:1005D000E13AF10508F04BC1E65DFF4F0C94DF12E4\r
+:1005D000E13AF10508F04BC1E65DFF4F0C947B1347\r
 :1005E0008AB59BB53CC188B599B539C183B537C1CA\r
 :1005F0008CB735C113B834C18091E6009091E70003\r
 :100600000EC08091E4009091E50009C08091E20065\r
 :100AD0001F9018959C018AB188618AB9579A80B590\r
 :100AE000866080BDC901A0E0B0E09C01AD0184E05A\r
 :100AF000220F331F441F551F8A95D1F760E47BE412\r
-:100B00008CE490E00E94C012DA01C9010197A109AA\r
+:100B00008CE490E00E945C13DA01C9010197A1090D\r
 :100B1000B109892F9A2FAB2FBB27A7FDBA9580BDAE\r
 :100B2000215029B98FEF90E09093FC008093FB0057\r
 :100B30009093FE008093FD0008955D9BFECFFC0125\r
 :100B6000DF91CF910895CF93DF93EC01CE012196D1\r
 :100B7000FC012081222319F00E949D05F7CFDF910F\r
 :100B8000CF9108955F9BFECF8CB190E008950C94B7\r
-:100B9000C20567EC75E083EA95E00C944913CF93A6\r
+:100B9000C20567EC75E083EA95E00C94E513CF930A\r
 :100BA000DF93FC01E253FF4FA081B181EC01C453FC\r
 :100BB000DF4F28813981A217B307A1F05D9B12C0D6\r
 :100BC0002C912CB920813181AC0145535F4F241702\r
 :100C900080E482BB1092F00080E895E20E946A0531\r
 :100CA0000E94C90580E582B985EC86BF81E08FBDD1\r
 :100CB00089E08EBD1BBC1ABC19BC18BC89E485BD7B\r
-:100CC00013BC83BF1CBE80E790E00E94CC1385B7A5\r
+:100CC00013BC83BF1CBE80E790E00E94681485B708\r
 :100CD0008F7885BF84E089BF789422242A94312CB0\r
 :100CE00000E010E88091F1008F3FA1F48091F000C6\r
-:100CF000853A81F4F8946BE780E090E00E94AA15B1\r
+:100CF000853A81F4F8946BE780E090E00E94461614\r
 :100D0000E199FECF28E138E00FB6F894A89521BD0F\r
 :100D10000FBE31BD8091FA00882309F4E1C0F89438\r
 :100D20008090F2009090F300A090F400B090F50055\r
 :100D30006091F6007091F7008091F8009091F900B1\r
 :100D40001092FA00789425E739E54CEC5EE30E94B6\r
-:100D5000021220E030E040E05FE30E940212A501B1\r
-:100D600094010E94EE0F6B017C01A5019401C50165\r
-:100D7000B4010E94EE0FA70196010E94ED0F20E042\r
-:100D800038E24EEA55E40E9402124B015C0120E079\r
-:100D900038E24EEA55E4C701B6010E9402126B0127\r
+:100D50009E1220E030E040E05FE30E949E12A50179\r
+:100D600094010E948A106B017C01A5019401C501C8\r
+:100D7000B4010E948A10A70196010E94891020E008\r
+:100D800038E24EEA55E40E949E124B015C0120E0DD\r
+:100D900038E24EEA55E4C701B6010E949E126B018B\r
 :100DA0007C018091AA008823B9F18091AA0064E6B1\r
 :100DB00070E0681B7109072E000C880B990B0E94CC\r
-:100DC0000E119B01AC01C501B4010E94021220E08A\r
-:100DD00030E048EC52E40E9464100E94D6107093F8\r
+:100DC000AA119B01AC01C501B4010E949E1220E052\r
+:100DD00030E048EC52E40E9400110E9472117093BE\r
 :100DE000D9006093D8008091AA0064E670E0681B87\r
-:100DF0007109072E000C880B990B0E940E119B01A4\r
-:100E0000AC01C701B6010E94021220E030E048ECBC\r
-:100E100052E40E9464100AC0C501B4010E94D610B9\r
-:100E20007093D9006093D800C701B6010E94D61014\r
+:100DF0007109072E000C880B990B0E94AA119B0108\r
+:100E0000AC01C701B6010E949E1220E030E048EC20\r
+:100E100052E40E9400110AC0C501B4010E9472117F\r
+:100E20007093D9006093D800C701B6010E94721177\r
 :100E30007093D5006093D4008091AB008823B9F102\r
 :100E40008091AB0064E670E0681B7109072E000C0E\r
-:100E5000880B990B0E940E119B01AC01C501B401D6\r
-:100E60000E94021220E030E048EC52E40E9464103C\r
-:100E70000E94D6107093D7006093D6008091AB008B\r
+:100E5000880B990B0E94AA119B01AC01C501B4013A\r
+:100E60000E949E1220E030E048EC52E40E94001103\r
+:100E70000E9472117093D7006093D6008091AB00EE\r
 :100E800064E670E0681B7109072E000C880B990B53\r
-:100E90000E940E119B01AC01C701B6010E94021213\r
-:100EA00020E030E048EC52E40E9464100AC0C50122\r
-:100EB000B4010E94D6107093D7006093D600C7018A\r
-:100EC000B6010E94D6107093D3006093D20041E027\r
+:100E90000E94AA119B01AC01C701B6010E949E12DB\r
+:100EA00020E030E048EC52E40E9400110AC0C50185\r
+:100EB000B4010E9472117093D7006093D600C701ED\r
+:100EC000B6010E9472117093D3006093D20041E08A\r
 :100ED0004093DF004093DE004093DD004093DC0050\r
-:100EE0008091C900833C08F449C71092C900F89466\r
+:100EE0008091C900833C08F4E5C71092C900F894CA\r
 :100EF0008091E6009091E7009A838983E091E40075\r
 :100F0000F091E500FC83EB832091E2003091E30057\r
 :100F10003E832D834091E0005091E10058874F833C\r
 :100F3000F90A80919600909197006F01C81AD90A1A\r
 :100F400080919400909195003901681A790A8091F6\r
 :100F50009200909193002A01481A590AB7010F2C68\r
-:100F6000000C880B990B0E940E112AE037ED43E22A\r
-:100F70005CE30E9464100E94D6106D877E878F8785\r
-:100F8000988BB6010D2C000C880B990B0E940E114A\r
-:100F90002AE037ED43E25CE30E9464100E94D61021\r
+:100F6000000C880B990B0E94AA112AE037ED43E28E\r
+:100F70005CE30E9400110E9472116D877E878F874B\r
+:100F8000988BB6010D2C000C880B990B0E94AA11AE\r
+:100F90002AE037ED43E25CE30E9400110E947211E7\r
 :100FA000698B7A8B8B8B9C8BB301072C000C880B85\r
-:100FB000990B0E940E112AE037ED43E25CE30E9498\r
-:100FC00064100E94D6106D8B7E8B8F8B988FB20130\r
-:100FD000052C000C880B990B0E940E112AE037EDAE\r
-:100FE00043E25CE30E9464100E94D610698F7A8FFE\r
+:100FB000990B0E94AA112AE037ED43E25CE30E94FC\r
+:100FC00000110E9472116D8B7E8B8F8B988FB201F6\r
+:100FD000052C000C880B990B0E94AA112AE037ED12\r
+:100FE00043E25CE30E9400110E947211698F7A8FC4\r
 :100FF0008B8F9C8FB7016C0D7D1D072E000C880B0D\r
-:10100000990B0E940E1120E038E24EE256E40E9455\r
-:1010100064104B015C01B301640D751D072E000CBB\r
-:10102000880B990B0E940E1120E038E24EE256E444\r
-:101030000E9464102B013C01A50194010E94ED0F58\r
-:1010400025E739E54CEC5EE30E94641069877A87F6\r
+:10100000990B0E94AA1120E038E24EE256E40E94B9\r
+:1010100000114B015C01B301640D751D072E000C1E\r
+:10102000880B990B0E94AA1120E038E24EE256E4A8\r
+:101030000E9400112B013C01A50194010E9489101E\r
+:1010400025E739E54CEC5EE30E94001169877A8759\r
 :101050008B879C876091B5007091B6008091B70036\r
-:101060009091B80029853A854B855C850E94EE0FEA\r
-:101070006B017C012BED3FE049EC50E40E94FD1137\r
+:101060009091B80029853A854B855C850E948A104D\r
+:101070006B017C012BED3FE049EC50E40E9499129A\r
 :1010800018164CF42BED3FE049EC50E4C701B601D3\r
-:101090000E94ED0F12C02BED3FE049EC50ECC70170\r
-:1010A000B6010E945A1087FF0AC02BED3FE049ECC1\r
-:1010B00050E4C701B6010E94EE0F6B017C01A30151\r
-:1010C0009201C501B4010E94EE0F20E030E040E043\r
-:1010D0005FE30E9402124B015C014090BD00509002\r
+:101090000E94891012C02BED3FE049EC50ECC701D3\r
+:1010A000B6010E94F61087FF0AC02BED3FE049EC25\r
+:1010B00050E4C701B6010E948A106B017C01A301B4\r
+:1010C0009201C501B4010E948A1020E030E040E0A6\r
+:1010D0005FE30E949E124B015C014090BD00509066\r
 :1010E000BE006090BF007090C000C701B6010E94B2\r
-:1010F0005F10A50194010E9402129B01AC01C30183\r
-:10110000B2010E94EE0F6D8F7E8F8F8F98A340905B\r
+:1010F000FB10A50194010E949E129B01AC01C3014B\r
+:10110000B2010E948A106D8F7E8F8F8F98A34090BE\r
 :10111000B9005090BA006090BB007090BC00C7014D\r
-:10112000B6010E946F12A50194010E9402129B0158\r
-:10113000AC01C301B2010E94EE0F2B013C012AE079\r
-:1011400037ED43E25CE3C501B4010E9464104B013A\r
+:10112000B6010E940B13A50194010E949E129B011F\r
+:10113000AC01C301B2010E948A102B013C012AE0DC\r
+:1011400037ED43E25CE3C501B4010E9400114B019D\r
 :101150005C012AE037ED43E25CE369857A858B85A3\r
-:101160009C850E946410F894C092B500D092B6009D\r
+:101160009C850E940011F894C092B500D092B60000\r
 :10117000E092B700F092B8002D8D3E8D4F8D58A1B2\r
 :101180002093BD003093BE004093BF005093C00039\r
 :101190004092B9005092BA006092BB007092BC00BD\r
 :10137000892B99F41092E9001092E8001092DC0099\r
 :101380008091A90080688093A90010928200109239\r
 :10139000830010928400109285008091DF008130DC\r
-:1013A00009F0DBC02091D8003091D9008091D000A5\r
+:1013A00009F002C12091D8003091D9008091D0007D\r
 :1013B0009091D1002817390711F18091D8009091B0\r
 :1013C000D9002091D0003091D100821B930B97FF60\r
 :1013D00003C0919581959109853F914044F0109209\r
 :1013E0008E0010928F0010929000109291008091C8\r
 :1013F000D8009091D9009093D1008093D000809133\r
-:10140000D8009091D900892B71F41092EF001092BE\r
-:10141000EE0010928100109280008091A9008F7ED2\r
-:101420008093A9009AC0E090D800F090D9008091F4\r
-:10143000C7009091C800E81AF90AB7010F2C000CF8\r
-:10144000880B990B80908E0090908F00A090900058\r
-:10145000B0909100860E971EA81EB91E80928E0035\r
-:1014600090928F00A0929000B09291000E940E1175\r
-:1014700026EB33EF4DE75DE30E9402122B013C01A6\r
-:10148000C501B4010E940E1121E539E44DE95AE38A\r
-:101490000E9402129B01AC01C301B2010E94EE0F37\r
-:1014A0004B015C018091800090918100B701681B25\r
-:1014B000790B072E000C880B990B0E940E1120E06F\r
-:1014C00030E0A9010E9402129B01AC01C501B401E8\r
-:1014D0000E94EE0F0E94D6107093EF006093EE0012\r
-:1014E000F0928100E09280008091EE009091EF00F8\r
-:1014F0001816190634F48091D8009091D90097FD00\r
-:101500000DC08091EE009091EF0097FF0CC080918C\r
-:10151000D8009091D900181619062CF41093EF00FA\r
-:101520000093EE001AC08091EE009091EF008F3F83\r
-:10153000910531F02CF03092EF002092EE000DC0BA\r
-:101540008091EE009091EF0081309F4F34F481E064\r
-:101550009FEF9093EF008093EE008091DE0081304A\r
-:1015600009F0DBC02091D6003091D7008091CE00E9\r
-:101570009091CF002817390711F18091D6009091F2\r
-:10158000D7002091CE003091CF00821B930B97FFA4\r
-:1015900003C0919581959109853F914044F0109247\r
-:1015A0008A0010928B0010928C0010928D00809116\r
-:1015B000D6009091D7009093CF008093CE00809179\r
-:1015C000D6009091D700892B71F41092ED00109203\r
-:1015D000EC0010927F0010927E008091A9008F7D18\r
-:1015E0008093A9009AC0E090D600F090D700809137\r
-:1015F000C5009091C600E81AF90AB7010F2C000C3B\r
-:10160000880B990B80908A0090908B00A0908C00A2\r
-:10161000B0908D00860E971EA81EB91E80928A007B\r
-:1016200090928B00A0928C00B0928D000E940E11BF\r
-:1016300026EB33EF4DE75DE30E9402122B013C01E4\r
-:10164000C501B4010E940E1121E539E44DE95AE3C8\r
-:101650000E9402129B01AC01C301B2010E94EE0F75\r
-:101660004B015C0180917E0090917F00B701681B67\r
-:10167000790B072E000C880B990B0E940E1120E0AD\r
-:1016800030E0A9010E9402129B01AC01C501B40126\r
-:101690000E94EE0F0E94D6107093ED006093EC0054\r
-:1016A000F0927F00E0927E008091EC009091ED003E\r
-:1016B0001816190634F48091D6009091D70097FD42\r
-:1016C0000DC08091EC009091ED0097FF0CC08091CF\r
-:1016D000D6009091D700181619062CF41093ED003F\r
-:1016E0000093EC001AC08091EC009091ED008F3FC8\r
-:1016F000910531F02CF03092ED002092EC000DC0FD\r
-:101700008091EC009091ED0081309F4F34F421E006\r
-:101710003FEF3093ED002093EC008091DD008130AD\r
-:1017200009F0DBC02091D4003091D5008091CC002D\r
-:101730009091CD002817390711F18091D400909134\r
-:10174000D5002091CC003091CD00821B930B97FFE8\r
-:1017500003C0919581959109853F914044F0109285\r
-:101760008600109287001092880010928900809164\r
-:10177000D4009091D5009093CD008093CC008091BF\r
-:10178000D4009091D500892B71F41092EB00109247\r
-:10179000EA0010927D0010927C008091A9008F7B5E\r
-:1017A0008093A9009AC0E090D400F090D500809179\r
-:1017B000C3009091C400E81AF90AB7010F2C000C7D\r
-:1017C000880B990B8090860090908700A0908800ED\r
-:1017D000B0908900860E971EA81EB91E80928600C2\r
-:1017E00090928700A0928800B09289000E940E110A\r
-:1017F00026EB33EF4DE75DE30E9402122B013C0123\r
-:10180000C501B4010E940E1121E539E44DE95AE306\r
-:101810000E9402129B01AC01C301B2010E94EE0FB3\r
-:101820004B015C0180917C0090917D00B701681BA9\r
-:10183000790B072E000C880B990B0E940E1120E0EB\r
-:1018400030E0A9010E9402129B01AC01C501B40164\r
-:101850000E94EE0F0E94D6107093EB006093EA0096\r
-:10186000F0927D00E0927C008091EA009091EB0084\r
-:101870001816190634F48091D4009091D50097FD84\r
-:101880000DC08091EA009091EB0097FF0CC0809111\r
-:10189000D4009091D500181619062CF41093EB0083\r
-:1018A0000093EA001AC08091EA009091EB008F3F0C\r
-:1018B000910531F02CF03092EB002092EA000DC03F\r
-:1018C0008091EA009091EB0081309F4F34F481E0E9\r
-:1018D0009FEF9093EB008093EA008091DC008130D1\r
-:1018E00009F0DBC02091D2003091D3008091CA0072\r
-:1018F0009091CB002817390711F18091D200909177\r
-:10190000D3002091CA003091CB00821B930B97FF2C\r
-:1019100003C0919581959109853F914044F01092C3\r
-:1019200082001092830010928400109285008091B2\r
-:10193000D2009091D3009093CB008093CA00809105\r
-:10194000D2009091D300892B71F41092E90010928B\r
-:10195000E80010927B0010927A008091A9008F77A6\r
-:101960008093A9009AC0E090D200F090D3008091BB\r
-:10197000C1009091C200E81AF90AB7010F2C000CBF\r
-:10198000880B990B8090820090908300A090840037\r
-:10199000B0908500860E971EA81EB91E8092820008\r
-:1019A00090928300A0928400B09285000E940E1154\r
-:1019B00026EB33EF4DE75DE30E9402122B013C0161\r
-:1019C000C501B4010E940E1121E539E44DE95AE345\r
-:1019D0000E9402129B01AC01C301B2010E94EE0FF2\r
-:1019E0004B015C0180917A0090917B00B701681BEC\r
-:1019F000790B072E000C880B990B0E940E1120E02A\r
-:101A000030E0A9010E9402129B01AC01C501B401A2\r
-:101A10000E94EE0F0E94D6107093E9006093E800D8\r
-:101A2000F0927B00E0927A008091E8009091E900CA\r
-:101A30001816190634F48091D2009091D30097FDC6\r
-:101A40000DC08091E8009091E90097FF0CC0809153\r
-:101A5000D2009091D300181619062CF41093E900C7\r
-:101A60000093E8001AC08091E8009091E9008F3F50\r
-:101A7000910531F02CF03092E9002092E8000DC081\r
-:101A80008091E8009091E90081309F4F34F421E08B\r
-:101A90003FEF3093E9002093E8008091A900807F18\r
-:101AA0008093A90090B326B33091A9009074892F38\r
-:101AB00090E043E0959587954A95E1F72770822B52\r
-:101AC000809590958F709927832B8093A9008091A2\r
-:101AD000EE009091EF00209166003091670028178A\r
-:101AE000390709F449C08091EE009091EF00892BED\r
-:101AF00031F485B3837F85BB8FB58F7729C0809103\r
-:101B0000EE009091EF008115904819F485B38C6038\r
-:101B10001CC080916900811107C08091EE009091F6\r
-:101B2000EF001816190654F080916900882351F0CF\r
-:101B30008091EE009091EF0097FF04C085B3877FFE\r
-:101B4000846003C085B38B7F886085BB8FB5806858\r
-:101B50008FBD8091EE009091EF009093670080938D\r
-:101B600066008091EE009091EF0097FF03C0919581\r
-:101B7000819591099BBD8ABD8091EC009091ED000B\r
-:101B800020916400309165002817390709F449C095\r
-:101B90008091EC009091ED00892B31F485B38F7C1E\r
-:101BA00085BB8FB58F7D29C08091EC009091ED00B1\r
-:101BB0008115904819F485B380631CC0809168003A\r
-:101BC000811107C08091EC009091ED001816190664\r
-:101BD00054F080916800882351F08091EC0090913E\r
-:101BE000ED0097FF04C085B38F7D806103C085B38E\r
-:101BF0008F7E806285BB8FB580628FBD8091EC0047\r
-:101C00009091ED0090936500809364008091EC00CA\r
-:101C10009091ED0097FF03C091958195910999BD31\r
-:101C200088BD8091EA009091EB0020916200309194\r
-:101C300063002817390709F448C08091EA009091A1\r
-:101C4000EB00892B31F485B38F7385BB85B58F7D10\r
-:101C500029C08091EA009091EB008115904819F419\r
-:101C600085B3806C1CC08091DB00811107C080911E\r
-:101C7000EA009091EB001816190654F08091DB00F1\r
-:101C8000882351F08091EA009091EB0097FF04C007\r
-:101C900085B38F77806403C085B38F7B806885BBF5\r
-:101CA00085B5806285BD8091EA009091EB009093AC\r
-:101CB0006300809362008091EA009091EB0097FFAF\r
-:101CC00003C091958195910983BD8091E800909121\r
-:101CD000E90020916000309161002817390709F46C\r
-:101CE00048C08091E8009091E900892B31F482B3DB\r
-:101CF000837F82BB83B78F7D29C08091E80090915C\r
-:101D0000E9008115904819F482B38C601CC0809161\r
-:101D1000DA00811107C08091E8009091E90018165F\r
-:101D2000190654F08091DA00882351F08091E80080\r
-:101D30009091E90097FF04C082B3877F846003C05D\r
-:101D400082B38B7F886082BB83B7806283BF8091C0\r
-:101D5000E8009091E9009093610080936000809189\r
-:101D6000E8009091E90097FF03C091958195910952\r
-:101D70008CBF8091AC008F5F8093AC0085B780688A\r
-:101D800085BF889585B78F7785BF0C947206ACE0C8\r
-:101D9000B0E0EDECFEE00C94E9126C015B017A011D\r
-:101DA000FC0117821682838181FF0EC1CE0101964C\r
-:101DB0004C01F6010381F50103FD159103FF11911B\r
-:101DC0005F01112309F4FCC0153249F403FD15919C\r
-:101DD00003FF11915F01153211F020E01BC0B60125\r
-:101DE000812F90E00E94941337017301E2CF1123F9\r
-:101DF00009F4E6C0612F70E08BEB91E02C870E9424\r
-:101E00003E132C85892B49F0F50103FD159103FF45\r
-:101E100011915F0127FFEBCF09C0133229F01C3667\r
-:101E200009F0D5C02068F0CF20E1EECF022F1123BA\r
-:101E300009F4C6C0612F70E084EB91E02C870E940A\r
-:101E40003E132C85892B41F03701F4E06F0E711C95\r
-:101E5000B6018FE390E011C0133639F0133781F0EB\r
-:101E6000133519F5022F01600BC0370182E0680EAF\r
-:101E7000711CB601F701808191810E949413B5CF46\r
-:101E80003701F2E06F0E711CF701E080F180F7017D\r
-:101E900000FD859100FF81917F01882309F4A5CF82\r
-:101EA000B60190E00E949413F2CF143611F0193667\r
-:101EB00029F5370127FF09C0F4E06F0E711CF70107\r
-:101EC00060817181828193810AC0F2E06F0E711C82\r
-:101ED000F70160817181072E000C880B990B022F8E\r
-:101EE0000F7E97FF08C090958095709561957F4F04\r
-:101EF0008F4F9F4F00642AE030E033C0103799F0D5\r
-:101F000040F41835B1F01F3609F05AC028E030E02F\r
-:101F100014C0153719F0183741F052C0022F0F7E48\r
-:101F20002AE030E00AC0022F0061046220E130E0C4\r
-:101F300004C0022F046020E132E0370107FF09C02E\r
-:101F4000F4E06F0E711CF7016081718182819381D1\r
-:101F500008C0F2E06F0E711CF7016081718180E0B2\r
-:101F600090E0A4010E94FC13182F181906FF05C069\r
-:101F7000B6018DE290E00E94941304FF15C0FE01AB\r
-:101F8000E10FF11D8081803379F0B60180E390E0AC\r
-:101F90000E94941302FF08C00072802F90E0B601E7\r
-:101FA000885A9F4F0E9494131150F401E10FF11DC4\r
-:101FB0008081B60190E00E9494131111F5CF15CFE6\r
-:101FC000F6018681978105C08FEF9FEF02C0022F37\r
-:101FD00031CF2C96EEE00C9405135058BB27AA275E\r
-:101FE0000E9405100C94AF110E94761138F00E94E7\r
-:101FF0007D1120F039F49F3F19F426F40C947311ED\r
-:102000000EF4E095E7FB0C946D11E92F0E94D411BA\r
-:1020100058F3BA17620773078407950720F079F41D\r
-:10202000A6F50C94F6110EF4E0950B2EBA2FA02D08\r
-:102030000B01B90190010C01CA01A0011124FF2775\r
-:10204000591B99F0593F50F4503E68F11A16F04070\r
-:10205000A22F232F342F4427585FF3CF469537956F\r
-:102060002795A795F0405395C9F77EF41F16BA0B34\r
-:10207000620B730B840BBAF09150A1F0FF0FBB1FE2\r
-:10208000661F771F881FC2F70EC0BA0F621F731F2B\r
-:10209000841F48F4879577956795B795F7959E3F88\r
-:1020A00008F0B0CF9395880F08F09927EE0F979519\r
-:1020B000879508950E94491108F481E008950E94CF\r
-:1020C0008611E3950C94C0110E9478100C94AF1106\r
-:1020D0000E947D1158F00E94761140F029F45F3F74\r
-:1020E00029F00C946D1151110C94F7110C9473118B\r
-:1020F0000E94D41168F39923B1F3552391F3951BF2\r
-:10210000550BBB27AA2762177307840738F09F5F18\r
-:102110005F4F220F331F441FAA1FA9F335D00E2E85\r
-:102120003AF0E0E832D091505040E695001CCAF7F2\r
-:102130002BD0FE2F29D0660F771F881FBB1F2617B5\r
-:1021400037074807AB07B0E809F0BB0B802DBF018C\r
-:10215000FF2793585F4F3AF09E3F510578F00C945B\r
-:102160006D110C94F7115F3FE4F3983ED4F386951C\r
-:1021700077956795B795F7959F5FC9F7880F911D7C\r
-:102180009695879597F90895E1E0660F771F881F68\r
-:10219000BB1F621773078407BA0720F0621B730B1B\r
-:1021A000840BBA0BEE1F88F7E09508950E94DD10AE\r
-:1021B0006894B1110C94F71108950E94DC1188F015\r
-:1021C0009F5798F0B92F9927B751B0F0E1F0660FFB\r
-:1021D000771F881F991F1AF0BA95C9F714C0B1303C\r
-:1021E00091F00E94F611B1E008950C94F611672F5A\r
-:1021F000782F8827B85F39F0B93FCCF3869577956B\r
-:102200006795B395D9F73EF4909580957095619553\r
-:102210007F4F8F4F9F4F0895E89409C097FB3EF47E\r
-:1022200090958095709561957F4F8F4F9F4F992323\r
-:10223000A9F0F92F96E9BB279395F69587957795A1\r
-:102240006795B795F111F8CFFAF4BB0F11F460FF61\r
-:102250001BC06F5F7F4F8F4F9F4F16C0882311F0B9\r
-:1022600096E911C0772321F09EE8872F762F05C0CD\r
-:10227000662371F096E8862F70E060E02AF09A9568\r
-:10228000660F771F881FDAF7880F9695879597F95D\r
-:102290000895990F0008550FAA0BE0E8FEEF1616F7\r
-:1022A0001706E807F907C0F012161306E407F5074A\r
-:1022B00098F0621B730B840B950B39F40A2661F0BE\r
-:1022C000232B242B252B21F408950A2609F4A14061\r
-:1022D000A6958FEF811D811D089597F99F6780E86E\r
-:1022E00070E060E008959FEF80EC089500240A9468\r
-:1022F0001616170618060906089500240A941216E1\r
-:1023000013061406050608950C9473110E94DC113F\r
-:10231000D8F3E894E0E0BB279F57F0F02AED3FE0C8\r
-:1023200049EC06C0EE0FBB0F661F771F881F28F011\r
-:10233000B23A62077307840728F0B25A620B730B34\r
-:10234000840BE3959A9572F7803830F49A95BB0F19\r
-:10235000661F771F881FD2F790480C947912092EB8\r
-:102360000394000C11F4882352F0BB0F40F4BF2BF0\r
-:1023700011F460FF04C06F5F7F4F8F4F9F4F089530\r
-:10238000EF93E0FF07C0A2EA2AED3FE049EC5FEBE4\r
-:102390000E9405100E94AF110F90039401FC905809\r
-:1023A000E6E9F1E00C94851257FD9058440F551F53\r
-:1023B00059F05F3F71F04795880F97FB991F61F0C7\r
-:1023C0009F3F79F087950895121613061406551F3E\r
-:1023D000F2CF4695F1DF08C0161617061806991FAA\r
-:1023E000F1CF86957105610508940895E894BB279F\r
-:1023F00066277727CB0197F908950E94491108F4C1\r
-:102400008FEF08950E9415120C94AF110E9476115F\r
-:1024100038F00E947D1120F0952311F00C946D117D\r
-:102420000C94731111240C94F7110E94D41170F3C1\r
-:10243000959FC1F3950F50E0551F629FF001729F69\r
-:10244000BB27F00DB11D639FAA27F00DB11DAA1F78\r
-:10245000649F6627B00DA11D661F829F2227B00DC5\r
-:10246000A11D621F739FB00DA11D621F839FA00D50\r
-:10247000611D221F749F3327A00D611D231F849FA0\r
-:10248000600D211D822F762F6A2F11249F575040F7\r
-:102490009AF0F1F088234AF0EE0FFF1FBB1F661F72\r
-:1024A000771F881F91505040A9F79E3F510580F03B\r
-:1024B0000C946D110C94F7115F3FE4F3983ED4F344\r
-:1024C000869577956795B795F795E7959F5FC1F7DF\r
-:1024D000FE2B880F911D9695879597F908959F93E8\r
-:1024E0000E9486110F9007FCEE5F0C94C0119F3F75\r
-:1024F00031F0915020F4879577956795B795880FBF\r
-:10250000911D9695879597F908959F938F937F9343\r
-:102510006F93FF93EF939B01AC010E940212EF9126\r
-:10252000FF910E9499122F913F914F915F910C94CE\r
-:102530000212DF93CF931F930F93FF92EF92DF92DC\r
-:102540007B018C01689406C0DA2EEF010E941512FF\r
-:10255000FE01E894A5912591359145915591A6F3F9\r
-:10256000EF010E940510FE019701A801DA9469F7B6\r
-:10257000DF90EF90FF900F911F91CF91DF91089521\r
-:10258000052E97FB1EF400940E94D71257FD07D02A\r
-:102590000E941C1307FC03D04EF40C94D7125095E4\r
-:1025A0004095309521953F4F4F4F5F4F089590953F\r
-:1025B0008095709561957F4F8F4F9F4F0895EE0FD7\r
-:1025C000FF1F0590F491E02D09942F923F924F92B6\r
-:1025D0005F926F927F928F929F92AF92BF92CF92B3\r
-:1025E000DF92EF92FF920F931F93CF93DF93CDB7BC\r
-:1025F000DEB7CA1BDB0B0FB6F894DEBF0FBECDBF34\r
-:1026000009942A88398848885F846E847D848C8404\r
-:102610009B84AA84B984C884DF80EE80FD800C810D\r
-:102620001B81AA81B981CE0FD11D0FB6F894DEBFF0\r
-:102630000FBECDBFED010895A1E21A2EAA1BBB1B50\r
-:10264000FD010DC0AA1FBB1FEE1FFF1FA217B3077E\r
-:10265000E407F50720F0A21BB30BE40BF50B661F94\r
-:10266000771F881F991F1A9469F760957095809558\r
-:1026700090959B01AC01BD01CF010895FC0105902F\r
-:10268000061621F00020D9F7C00108953197CF0137\r
-:1026900008950F931F93CF93DF93009731F4611543\r
-:1026A000710519F480E090E03AC08B01EC016EE016\r
-:1026B00070E081E090E00E945A14FC01892B91F3B4\r
-:1026C00080E883830115110571F01387028781E883\r
-:1026D00083838091660190916701892B21F4F093A7\r
-:1026E0006701E09366012097C9F0D187C087838195\r
-:1026F000826083838091680190916901892B71F4D4\r
-:10270000F0936901E093680180916A0190916B01F7\r
-:10271000892B21F4F0936B01E0936A01CF01DF91E3\r
-:10272000CF911F910F9108950F931F93CF93DF9334\r
-:10273000FB01238121FD03C08FEF9FEF28C022FF03\r
-:1027400016C046815781248135814217530744F4CE\r
-:10275000A081B1819D012F5F3F4F318320838C93F6\r
-:10276000268137812F5F3F4F3783268310C0EB01CF\r
-:10277000092F182F0084F185E02D0995892BE1F6AA\r
-:102780008E819F8101969F838E83812F902FDF9171\r
-:10279000CF911F910F9108950F931F93CF93DF93C4\r
-:1027A000E0916801F0916901238121FF1BC08C0138\r
-:1027B000D0E0C0E0F80181918F01609168017091D3\r
-:1027C0006901DB011896ED91FC911997882331F08E\r
-:1027D0000995892B79F3DFEFCFEFECCF8AE00995EC\r
-:1027E000892B19F08FEF9FEF02C08D2F9C2FDF9167\r
-:1027F000CF911F910F910895FA01AA27283051F126\r
-:10280000203181F1E8946F936E7F6E5F7F4F8F4F21\r
-:102810009F4FAF4FB1E03ED0B4E03CD0670F781F80\r
-:10282000891F9A1FA11D680F791F8A1F911DA11D65\r
-:102830006A0F711D811D911DA11D20D009F468949E\r
-:102840003F912AE0269F11243019305D3193DEF646\r
-:10285000CF010895462F4770405D4193B3E00FD0FC\r
-:10286000C9F7F6CF462F4F70405D4A3318F0495DE7\r
-:1028700031FD4052419302D0A9F7EACFB4E0A695CA\r
-:102880009795879577956795BA95C9F700976105EC\r
-:10289000710508959B01AC010A2E06945795479542\r
-:1028A00037952795BA95C9F7620F731F841F951F37\r
-:1028B000A01D08950F931F93CF93DF93869F8001F0\r
-:1028C000879F100D969F100D1124C8010E94761449\r
-:1028D000EC01009729F0A80160E070E00E94A315C8\r
-:1028E000CE01DF91CF911F910F910895CF93DF9388\r
-:1028F0008230910510F482E090E0E0916E01F09159\r
-:102900006F0120E030E0C0E0D0E0309711F140816D\r
-:10291000518148175907C0F04817590761F482815F\r
-:102920009381209719F09B838A832BC090936F012A\r
-:1029300080936E0126C02115310519F04217530707\r
-:1029400018F49A01BE01DF01EF010280F381E02D4E\r
-:10295000DCCF2115310509F1281B390B2430310555\r
-:1029600090F412968D919C9113976115710521F049\r
-:10297000FB019383828304C090936F0180936E0167\r
-:10298000FD01329644C0FD01E20FF31F8193919344\r
-:10299000225031092D933C933AC020916C01309123\r
-:1029A0006D01232B41F420916C0030916D00309328\r
-:1029B0006D0120936C0120916A0030916B0021150C\r
-:1029C000310541F42DB73EB740916E0050916F0034\r
-:1029D000241B350BE0916C01F0916D01E217F307B8\r
-:1029E000A0F42E1B3F0B2817390778F0AC014E5F7F\r
-:1029F0005F4F2417350748F04E0F5F1F50936D014E\r
-:102A000040936C018193919302C0E0E0F0E0CF012C\r
-:102A1000DF91CF9108950F931F93CF93DF9300978A\r
-:102A200009F48CC0FC0132971382128200916E016E\r
-:102A300010916F010115110581F420813181820F00\r
-:102A4000931F20916C0130916D012817390779F59A\r
-:102A5000F0936D01E0936C0171C0D80140E050E04B\r
-:102A6000AE17BF0750F412962D913C911397AD010C\r
-:102A70002115310509F1D901F3CF9D01DA01338325\r
-:102A8000228360817181860F971F8217930769F4F3\r
-:102A9000EC0128813981260F371F2E5F3F4F31838C\r
-:102AA00020838A819B8193838283452B29F4F09331\r
-:102AB0006F01E0936E0142C01396FC93EE93129760\r
-:102AC000ED01499159919E01240F351FE217F3073B\r
-:102AD00071F480819181840F951F029611969C93C9\r
-:102AE0008E938281938113969C938E931297E0E04C\r
-:102AF000F0E0D80112968D919C911397009719F0F0\r
-:102B0000F8018C01F6CF8D919C9198012E5F3F4F7B\r
-:102B1000820F931F20916C0130916D0128173907A6\r
-:102B200069F4309729F410926F0110926E0102C07F\r
-:102B30001382128210936D0100936C01DF91CF918B\r
-:102B40001F910F910895DC0101C06D9341505040D9\r
-:102B5000E0F70895262FE199FECF9FBB8EBB2DBBDA\r
-:102B60000FB6F894E29AE19A0FBE01960895F89490\r
-:022B7000FFCF95\r
-:102B720000800080008000800101000070012000C0\r
-:0A2B82000D0A53746172740D000017\r
+:10140000D8009091D9001816190634F48091C700BD\r
+:101410009091C80097FD13C08091D8009091D90099\r
+:1014200097FF10C08091C7009091C80031E020E084\r
+:10143000181619060CF030E0832F922F05C081E0BA\r
+:1014400090E002C080E090E02091D8003091D90077\r
+:10145000232B11F0892B71F01092EF001092EE0007\r
+:1014600010928100109280008091A9008F7E80935D\r
+:10147000A9009AC0E090D800F090D9008091C700F0\r
+:101480009091C800E81AF90AB7010F2C000C880BDC\r
+:10149000990B80908E0090908F00A0909000B0905B\r
+:1014A0009100860E971EA81EB91E80928E00909203\r
+:1014B0008F00A0929000B09291000E94AA1126EB9A\r
+:1014C00033EF4DE75DE30E949E122B013C01C50105\r
+:1014D000B4010E94AA1121E539E44DE95AE30E94C2\r
+:1014E0009E129B01AC01C301B2010E948A104B0104\r
+:1014F0005C018091800090918100B701681B790B9D\r
+:10150000072E000C880B990B0E94AA1120E030E0F6\r
+:10151000A9010E949E129B01AC01C501B4010E9469\r
+:101520008A100E9472117093EF006093EE00F092A7\r
+:101530008100E09280008091EE009091EF001816FB\r
+:10154000190634F48091D8009091D90097FD0DC010\r
+:101550008091EE009091EF0097FF0CC08091D80031\r
+:101560009091D900181619062CF41093EF000093EF\r
+:10157000EE001AC08091EE009091EF008F3F910530\r
+:1015800031F02CF03092EF002092EE000DC08091EF\r
+:10159000EE009091EF0081309F4F34F481E09FEF97\r
+:1015A0009093EF008093EE008091DE00813009F08F\r
+:1015B00002C12091D6003091D7008091CE00909149\r
+:1015C000CF002817390711F18091D6009091D700EC\r
+:1015D0002091CE003091CF00821B930B97FF03C068\r
+:1015E000919581959109853F914044F010928A0030\r
+:1015F00010928B0010928C0010928D008091D6007A\r
+:101600009091D7009093CF008093CE008091D60028\r
+:101610009091D7001816190634F48091C500909166\r
+:10162000C60097FD13C08091D6009091D70097FF18\r
+:1016300010C08091C5009091C60031E020E01816DE\r
+:1016400019060CF030E0832F922F05C081E090E066\r
+:1016500002C080E090E02091D6003091D700232B8B\r
+:1016600011F0892B71F01092ED001092EC001092A5\r
+:101670007F0010927E008091A9008F7D8093A90049\r
+:101680009AC0E090D600F090D7008091C50090916C\r
+:10169000C600E81AF90AB7010F2C000C880B990B49\r
+:1016A00080908A0090908B00A0908C00B0908D006C\r
+:1016B000860E971EA81EB91E80928A0090928B00FB\r
+:1016C000A0928C00B0928D000E94AA1126EB33EFFD\r
+:1016D0004DE75DE30E949E122B013C01C501B40160\r
+:1016E0000E94AA1121E539E44DE95AE30E949E12B5\r
+:1016F0009B01AC01C301B2010E948A104B015C0145\r
+:1017000080917E0090917F00B701681B790B072EB6\r
+:10171000000C880B990B0E94AA1120E030E0A9016F\r
+:101720000E949E129B01AC01C501B4010E948A1067\r
+:101730000E9472117093ED006093EC00F0927F00B4\r
+:10174000E0927E008091EC009091ED001816190651\r
+:1017500034F48091D6009091D70097FD0DC0809110\r
+:10176000EC009091ED0097FF0CC08091D600909115\r
+:10177000D700181619062CF41093ED000093EC0016\r
+:101780001AC08091EC009091ED008F3F910531F0EF\r
+:101790002CF03092ED002092EC000DC08091EC0016\r
+:1017A0009091ED0081309F4F34F421E03FEF309372\r
+:1017B000ED002093EC008091DD00813009F002C142\r
+:1017C0002091D4003091D5008091CC009091CD0033\r
+:1017D0002817390711F18091D4009091D5002091FC\r
+:1017E000CC003091CD00821B930B97FF03C09195E5\r
+:1017F00081959109853F914044F0109286001092A6\r
+:10180000870010928800109289008091D4009091F6\r
+:10181000D5009093CD008093CC008091D40090911E\r
+:10182000D5001816190634F48091C3009091C400B5\r
+:1018300097FD13C08091D4009091D50097FF10C000\r
+:101840008091C3009091C40031E020E01816190681\r
+:101850000CF030E0832F922F05C081E090E002C0B1\r
+:1018600080E090E02091D4003091D500232B11F03E\r
+:10187000892B71F01092EB001092EA0010927D001B\r
+:1018800010927C008091A9008F7B8093A9009AC060\r
+:10189000E090D400F090D5008091C3009091C400F6\r
+:1018A000E81AF90AB7010F2C000C880B990B8090ED\r
+:1018B000860090908700A0908800B0908900860EE6\r
+:1018C000971EA81EB91E8092860090928700A09253\r
+:1018D0008800B09289000E94AA1126EB33EF4DE7F1\r
+:1018E0005DE30E949E122B013C01C501B4010E94E0\r
+:1018F000AA1121E539E44DE95AE30E949E129B01A9\r
+:10190000AC01C301B2010E948A104B015C018091BD\r
+:101910007C0090917D00B701681B790B072E000CAD\r
+:10192000880B990B0E94AA1120E030E0A9010E94C7\r
+:101930009E129B01AC01C501B4010E948A100E9455\r
+:1019400072117093EB006093EA00F0927D00E092D8\r
+:101950007C008091EA009091EB001816190634F48F\r
+:101960008091D4009091D50097FD0DC08091EA0040\r
+:101970009091EB0097FF0CC08091D4009091D5001E\r
+:10198000181619062CF41093EB000093EA001AC005\r
+:101990008091EA009091EB008F3F910531F02CF09F\r
+:1019A0003092EB002092EA000DC08091EA00909105\r
+:1019B000EB0081309F4F34F481E09FEF9093EB0078\r
+:1019C0008093EA008091DC00813009F002C120910F\r
+:1019D000D2003091D3008091CA009091CB0028179B\r
+:1019E000390711F18091D2009091D3002091CA0063\r
+:1019F0003091CB00821B930B97FF03C0919581958B\r
+:101A00009109853F914044F010928200109283002A\r
+:101A100010928400109285008091D2009091D300A2\r
+:101A20009093CB008093CA008091D2009091D30014\r
+:101A30001816190634F48091C1009091C20097FDE8\r
+:101A400013C08091D2009091D30097FF10C0809175\r
+:101A5000C1009091C20031E020E0181619060CF088\r
+:101A600030E0832F922F05C081E090E002C080E03B\r
+:101A700090E02091D2003091D300232B11F0892BDC\r
+:101A800071F01092E9001092E80010927B00109221\r
+:101A90007A008091A9008F778093A9009AC0E09086\r
+:101AA000D200F090D3008091C1009091C200E81A5A\r
+:101AB000F90AB7010F2C000C880B990B809082005B\r
+:101AC00090908300A0908400B0908500860E971EB1\r
+:101AD000A81EB91E8092820090928300A09284007A\r
+:101AE000B09285000E94AA1126EB33EF4DE75DE32B\r
+:101AF0000E949E122B013C01C501B4010E94AA1153\r
+:101B000021E539E44DE95AE30E949E129B01AC01A4\r
+:101B1000C301B2010E948A104B015C0180917A00DE\r
+:101B200090917B00B701681B790B072E000C880B86\r
+:101B3000990B0E94AA1120E030E0A9010E949E1298\r
+:101B40009B01AC01C501B4010E948A100E94721170\r
+:101B50007093E9006093E800F0927B00E0927A00D5\r
+:101B60008091E8009091E9001816190634F48091EC\r
+:101B7000D2009091D30097FD0DC08091E800909124\r
+:101B8000E90097FF0CC08091D2009091D300181605\r
+:101B900019062CF41093E9000093E8001AC0809114\r
+:101BA000E8009091E9008F3F910531F02CF03092E0\r
+:101BB000E9002092E8000DC08091E8009091E900D2\r
+:101BC00081309F4F34F421E03FEF3093E9002093C0\r
+:101BD000E8008091A900807F8093A90090B326B38C\r
+:101BE0003091A9009074892F90E043E095958795F6\r
+:101BF0004A95E1F72770822B809590958F709927F1\r
+:101C0000832B8093A9008091EE009091EF002091AA\r
+:101C10006600309167002817390709F449C08091A0\r
+:101C2000EE009091EF00892B31F485B3837F85BB63\r
+:101C30008FB58F7729C08091EE009091EF008115CC\r
+:101C4000904819F485B38C601CC0809169008111A3\r
+:101C500007C08091EE009091EF001816190654F01D\r
+:101C600080916900882351F08091EE009091EF00FF\r
+:101C700097FF04C085B3877F846003C085B38B7FE3\r
+:101C8000886085BB8FB580688FBD8091EE00909194\r
+:101C9000EF0090936700809366008091EE00909132\r
+:101CA000EF0097FF03C09195819591099BBD8ABD77\r
+:101CB0008091EC009091ED002091640030916500DE\r
+:101CC0002817390709F449C08091EC009091ED0084\r
+:101CD000892B31F485B38F7C85BB8FB58F7D29C06F\r
+:101CE0008091EC009091ED008115904819F485B336\r
+:101CF00080631CC080916800811107C08091EC0056\r
+:101D00009091ED001816190654F080916800882310\r
+:101D100051F08091EC009091ED0097FF04C085B3E5\r
+:101D20008F7D806103C085B38F7E806285BB8FB558\r
+:101D300080628FBD8091EC009091ED0090936500E2\r
+:101D4000809364008091EC009091ED0097FF03C0B8\r
+:101D500091958195910999BD88BD8091EA009091F6\r
+:101D6000EB0020916200309163002817390709F4D5\r
+:101D700048C08091EA009091EB00892B31F485B343\r
+:101D80008F7385BB85B58F7D29C08091EA009091C6\r
+:101D9000EB008115904819F485B3806C1CC08091CC\r
+:101DA000DB00811107C08091EA009091EB001816CA\r
+:101DB000190654F08091DB00882351F08091EA00ED\r
+:101DC0009091EB0097FF04C085B38F77806403C0C8\r
+:101DD00085B38F7B806885BB85B5806285BD80912A\r
+:101DE000EA009091EB0090936300809362008091F1\r
+:101DF000EA009091EB0097FF03C0919581959109BE\r
+:101E000083BD8091E8009091E900209160003091BD\r
+:101E100061002817390709F448C08091E8009091C3\r
+:101E2000E900892B31F482B3837F82BB83B78F7D36\r
+:101E300029C08091E8009091E9008115904819F43B\r
+:101E400082B38C601CC08091DA00811107C0809140\r
+:101E5000E8009091E9001816190654F08091DA0014\r
+:101E6000882351F08091E8009091E90097FF04C029\r
+:101E700082B3877F846003C082B38B7F886082BB1C\r
+:101E800083B7806283BF8091E8009091E9009093CE\r
+:101E90006100809360008091E8009091E90097FFD5\r
+:101EA00003C09195819591098CBF8091AC008F5FA3\r
+:101EB0008093AC0085B7806885BF889585B78F779C\r
+:101EC00085BF0C947206ACE0B0E0E9E6FFE00C944C\r
+:101ED00085136C015B017A01FC01178216828381F4\r
+:101EE00081FF0EC1CE0101964C01F6010381F5017F\r
+:101EF00003FD159103FF11915F01112309F4FCC04B\r
+:101F0000153249F403FD159103FF11915F0115325C\r
+:101F100011F020E01BC0B601812F90E00E94301428\r
+:101F200037017301E2CF112309F4E6C0612F70E09D\r
+:101F30008BEB91E02C870E94DA132C85892B49F0DA\r
+:101F4000F50103FD159103FF11915F0127FFEBCF11\r
+:101F500009C0133229F01C3609F0D5C02068F0CF33\r
+:101F600020E1EECF022F112309F4C6C0612F70E0EB\r
+:101F700084EB91E02C870E94DA132C85892B41F0A9\r
+:101F80003701F4E06F0E711CB6018FE390E011C0D1\r
+:101F9000133639F0133781F0133519F5022F01602C\r
+:101FA0000BC0370182E0680E711CB601F701808119\r
+:101FB00091810E943014B5CF3701F2E06F0E711C91\r
+:101FC000F701E080F180F70100FD859100FF81912C\r
+:101FD0007F01882309F4A5CFB60190E00E94301458\r
+:101FE000F2CF143611F0193629F5370127FF09C051\r
+:101FF000F4E06F0E711CF701608171818281938121\r
+:102000000AC0F2E06F0E711CF70160817181072E2A\r
+:10201000000C880B990B022F0F7E97FF08C090953C\r
+:102020008095709561957F4F8F4F9F4F00642AE098\r
+:1020300030E033C0103799F040F41835B1F01F3656\r
+:1020400009F05AC028E030E014C0153719F01837ED\r
+:1020500041F052C0022F0F7E2AE030E00AC0022F6A\r
+:102060000061046220E130E004C0022F046020E13E\r
+:1020700032E0370107FF09C0F4E06F0E711CF70171\r
+:10208000608171818281938108C0F2E06F0E711CC2\r
+:10209000F7016081718180E090E0A4010E949814B2\r
+:1020A000182F181906FF05C0B6018DE290E00E94B6\r
+:1020B000301404FF15C0FE01E10FF11D8081803353\r
+:1020C00079F0B60180E390E00E94301402FF08C06E\r
+:1020D0000072802F90E0B601885A9F4F0E94301402\r
+:1020E0001150F401E10FF11D8081B60190E00E94D2\r
+:1020F00030141111F5CF15CFF6018681978105C0F7\r
+:102100008FEF9FEF02C0022F31CF2C96EEE00C94A0\r
+:10211000A1135058BB27AA270E94A1100C944B1260\r
+:102120000E94121238F00E94191220F039F49F3FD9\r
+:1021300019F426F40C940F120EF4E095E7FB0C94BE\r
+:102140000912E92F0E94701258F3BA176207730739\r
+:102150008407950720F079F4A6F50C9492120EF4FA\r
+:10216000E0950B2EBA2FA02D0B01B90190010C01A7\r
+:10217000CA01A0011124FF27591B99F0593F50F4BF\r
+:10218000503E68F11A16F040A22F232F342F442717\r
+:10219000585FF3CF469537952795A795F04053950F\r
+:1021A000C9F77EF41F16BA0B620B730B840BBAF0DF\r
+:1021B0009150A1F0FF0FBB1F661F771F881FC2F74A\r
+:1021C0000EC0BA0F621F731F841F48F4879577955E\r
+:1021D0006795B795F7959E3F08F0B0CF9395880F18\r
+:1021E00008F09927EE0F9795879508950E94E511BD\r
+:1021F00008F481E008950E942212E3950C945C1289\r
+:102200000E9414110C944B120E94191258F00E9453\r
+:10221000121240F029F45F3F29F00C940912511179\r
+:102220000C9493120C940F120E94701268F399236D\r
+:10223000B1F3552391F3951B550BBB27AA276217C2\r
+:102240007307840738F09F5F5F4F220F331F441FCF\r
+:10225000AA1FA9F335D00E2E3AF0E0E832D0915003\r
+:102260005040E695001CCAF72BD0FE2F29D0660FF0\r
+:10227000771F881FBB1F261737074807AB07B0E833\r
+:1022800009F0BB0B802DBF01FF2793585F4F3AF039\r
+:102290009E3F510578F00C9409120C9493125F3F05\r
+:1022A000E4F3983ED4F3869577956795B795F795BF\r
+:1022B0009F5FC9F7880F911D9695879597F90895A7\r
+:1022C000E1E0660F771F881FBB1F62177307840743\r
+:1022D000BA0720F0621B730B840BBA0BEE1F88F752\r
+:1022E000E09508950E9479116894B1110C949312AD\r
+:1022F00008950E94781288F09F5798F0B92F992777\r
+:10230000B751B0F0E1F0660F771F881F991F1AF0E0\r
+:10231000BA95C9F714C0B13091F00E949212B1E0A1\r
+:1023200008950C949212672F782F8827B85F39F0A0\r
+:10233000B93FCCF3869577956795B395D9F73EF479\r
+:1023400090958095709561957F4F8F4F9F4F089521\r
+:10235000E89409C097FB3EF490958095709561953F\r
+:102360007F4F8F4F9F4F9923A9F0F92F96E9BB27F5\r
+:102370009395F695879577956795B795F111F8CF71\r
+:10238000FAF4BB0F11F460FF1BC06F5F7F4F8F4FDC\r
+:102390009F4F16C0882311F096E911C0772321F0D2\r
+:1023A0009EE8872F762F05C0662371F096E8862F6A\r
+:1023B00070E060E02AF09A95660F771F881FDAF7C1\r
+:1023C000880F9695879597F90895990F0008550FEE\r
+:1023D000AA0BE0E8FEEF16161706E807F907C0F0AB\r
+:1023E00012161306E407F50798F0621B730B840BB3\r
+:1023F000950B39F40A2661F0232B242B252B21F48D\r
+:1024000008950A2609F4A140A6958FEF811D811D2C\r
+:10241000089597F99F6780E870E060E008959FEF66\r
+:1024200080EC089500240A9416161706180609066B\r
+:10243000089500240A94121613061406050608953A\r
+:102440000C940F120E947812D8F3E894E0E0BB27B6\r
+:102450009F57F0F02AED3FE049EC06C0EE0FBB0FAE\r
+:10246000661F771F881F28F0B23A62077307840738\r
+:1024700028F0B25A620B730B840BE3959A9572F7AE\r
+:10248000803830F49A95BB0F661F771F881FD2F7EC\r
+:1024900090480C941513092E0394000C11F4882312\r
+:1024A00052F0BB0F40F4BF2B11F460FF04C06F5F0C\r
+:1024B0007F4F8F4F9F4F0895EF93E0FF07C0A2EA31\r
+:1024C0002AED3FE049EC5FEB0E94A1100E944B1205\r
+:1024D0000F90039401FC9058E6E9F1E00C9421136D\r
+:1024E00057FD9058440F551F59F05F3F71F04795C5\r
+:1024F000880F97FB991F61F09F3F79F087950895AA\r
+:10250000121613061406551FF2CF4695F1DF08C0C8\r
+:10251000161617061806991FF1CF869571056105E5\r
+:1025200008940895E894BB2766277727CB0197F98D\r
+:1025300008950E94E51108F48FEF08950E94B112EA\r
+:102540000C944B120E94121238F00E94191220F0C3\r
+:10255000952311F00C9409120C940F1211240C9471\r
+:1025600093120E94701270F3959FC1F3950F50E083\r
+:10257000551F629FF001729FBB27F00DB11D639F35\r
+:10258000AA27F00DB11DAA1F649F6627B00DA11DDB\r
+:10259000661F829F2227B00DA11D621F739FB00D81\r
+:1025A000A11D621F839FA00D611D221F749F3327F1\r
+:1025B000A00D611D231F849F600D211D822F762F8A\r
+:1025C0006A2F11249F5750409AF0F1F088234AF067\r
+:1025D000EE0FFF1FBB1F661F771F881F91505040D3\r
+:1025E000A9F79E3F510580F00C9409120C949312A8\r
+:1025F0005F3FE4F3983ED4F3869577956795B7955A\r
+:10260000F795E7959F5FC1F7FE2B880F911D969573\r
+:10261000879597F908959F930E9422120F9007FCC7\r
+:10262000EE5F0C945C129F3F31F0915020F487953F\r
+:1026300077956795B795880F911D9695879597F92A\r
+:1026400008959F938F937F936F93FF93EF939B01D5\r
+:10265000AC010E949E12EF91FF910E9435132F91C1\r
+:102660003F914F915F910C949E12DF93CF931F93F4\r
+:102670000F93FF92EF92DF927B018C01689406C06A\r
+:10268000DA2EEF010E94B112FE01E894A591259186\r
+:10269000359145915591A6F3EF010E94A110FE01DD\r
+:1026A0009701A801DA9469F7DF90EF90FF900F91FE\r
+:1026B0001F91CF91DF910895052E97FB1EF4009492\r
+:1026C0000E94731357FD07D00E94B81307FC03D074\r
+:1026D0004EF40C94731350954095309521953F4FCF\r
+:1026E0004F4F5F4F089590958095709561957F4FFE\r
+:1026F0008F4F9F4F0895EE0FFF1F0590F491E02D2F\r
+:1027000009942F923F924F925F926F927F928F9295\r
+:102710009F92AF92BF92CF92DF92EF92FF920F9370\r
+:102720001F93CF93DF93CDB7DEB7CA1BDB0B0FB67A\r
+:10273000F894DEBF0FBECDBF09942A883988488837\r
+:102740005F846E847D848C849B84AA84B984C884CD\r
+:10275000DF80EE80FD800C811B81AA81B981CE0FC4\r
+:10276000D11D0FB6F894DEBF0FBECDBFED010895A9\r
+:10277000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F85\r
+:10278000EE1FFF1FA217B307E407F50720F0A21BF7\r
+:10279000B30BE40BF50B661F771F881F991F1A9464\r
+:1027A00069F760957095809590959B01AC01BD018E\r
+:1027B000CF010895FC010590061621F00020D9F7FD\r
+:1027C000C00108953197CF0108950F931F93CF93C0\r
+:1027D000DF93009731F46115710519F480E090E002\r
+:1027E0003AC08B01EC016EE070E081E090E00E9465\r
+:1027F000F614FC01892B91F380E883830115110500\r
+:1028000071F01387028781E883838091660190913C\r
+:102810006701892B21F4F0936701E093660120970B\r
+:10282000C9F0D187C08783818260838380916801EA\r
+:1028300090916901892B71F4F0936901E09368012B\r
+:1028400080916A0190916B01892B21F4F0936B01C7\r
+:10285000E0936A01CF01DF91CF911F910F9108950D\r
+:102860000F931F93CF93DF93FB01238121FD03C0BF\r
+:102870008FEF9FEF28C022FF16C046815781248129\r
+:1028800035814217530744F4A081B1819D012F5F28\r
+:102890003F4F318320838C93268137812F5F3F4FB9\r
+:1028A0003783268310C0EB01092F182F0084F18590\r
+:1028B000E02D0995892BE1F68E819F8101969F83FA\r
+:1028C0008E83812F902FDF91CF911F910F910895CB\r
+:1028D0000F931F93CF93DF93E0916801F09169010B\r
+:1028E000238121FF1BC08C01D0E0C0E0F801819161\r
+:1028F0008F016091680170916901DB011896ED917B\r
+:10290000FC911997882331F00995892B79F3DFEF32\r
+:10291000CFEFECCF8AE00995892B19F08FEF9FEF6D\r
+:1029200002C08D2F9C2FDF91CF911F910F910895A1\r
+:10293000FA01AA27283051F1203181F1E8946F93F0\r
+:102940006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED096\r
+:10295000B4E03CD0670F781F891F9A1FA11D680F34\r
+:10296000791F8A1F911DA11D6A0F711D811D911D67\r
+:10297000A11D20D009F468943F912AE0269F1124DC\r
+:102980003019305D3193DEF6CF010895462F477040\r
+:10299000405D4193B3E00FD0C9F7F6CF462F4F709B\r
+:1029A000405D4A3318F0495D31FD4052419302D0F9\r
+:1029B000A9F7EACFB4E0A69597958795779567959F\r
+:1029C000BA95C9F700976105710508959B01AC019F\r
+:1029D0000A2E06945795479537952795BA95C9F7C6\r
+:1029E000620F731F841F951FA01D08950F931F93DF\r
+:1029F000CF93DF93869F8001879F100D969F100DC8\r
+:102A00001124C8010E941215EC01009729F0A801B9\r
+:102A100060E070E00E943F16CE01DF91CF911F91E0\r
+:102A20000F910895CF93DF938230910510F482E0E7\r
+:102A300090E0E0916E01F0916F0120E030E0C0E0A5\r
+:102A4000D0E0309711F14081518148175907C0F00B\r
+:102A50004817590761F482819381209719F09B836D\r
+:102A60008A832BC090936F0180936E0126C021153D\r
+:102A7000310519F04217530718F49A01BE01DF011E\r
+:102A8000EF010280F381E02DDCCF2115310509F142\r
+:102A9000281B390B2430310590F412968D919C91AE\r
+:102AA00013976115710521F0FB019383828304C0A4\r
+:102AB00090936F0180936E01FD01329644C0FD0139\r
+:102AC000E20FF31F81939193225031092D933C9390\r
+:102AD0003AC020916C0130916D01232B41F420917B\r
+:102AE0006C0030916D0030936D0120936C0120914A\r
+:102AF0006A0030916B002115310541F42DB73EB7C6\r
+:102B000040916E0050916F00241B350BE0916C01D9\r
+:102B1000F0916D01E217F307A0F42E1B3F0B28176D\r
+:102B2000390778F0AC014E5F5F4F2417350748F046\r
+:102B30004E0F5F1F50936D0140936C0181939193F1\r
+:102B400002C0E0E0F0E0CF01DF91CF9108950F9354\r
+:102B50001F93CF93DF93009709F48CC0FC01329749\r
+:102B60001382128200916E0110916F0101151105FF\r
+:102B700081F420813181820F931F20916C0130916B\r
+:102B80006D012817390779F5F0936D01E0936C0119\r
+:102B900071C0D80140E050E0AE17BF0750F4129664\r
+:102BA0002D913C911397AD012115310509F1D90102\r
+:102BB000F3CF9D01DA013383228360817181860F17\r
+:102BC000971F8217930769F4EC0128813981260F3A\r
+:102BD000371F2E5F3F4F318320838A819B819383F0\r
+:102BE0008283452B29F4F0936F01E0936E0142C07C\r
+:102BF0001396FC93EE931297ED01499159919E0122\r
+:102C0000240F351FE217F30771F480819181840F3F\r
+:102C1000951F029611969C938E93828193811396B1\r
+:102C20009C938E931297E0E0F0E0D80112968D917C\r
+:102C30009C911397009719F0F8018C01F6CF8D91B4\r
+:102C40009C9198012E5F3F4F820F931F20916C0142\r
+:102C500030916D012817390769F4309729F41092E3\r
+:102C60006F0110926E0102C01382128210936D01E7\r
+:102C700000936C01DF91CF911F910F910895DC01BA\r
+:102C800001C06D9341505040E0F70895262FE1991F\r
+:102C9000FECF9FBB8EBB2DBB0FB6F894E29AE19A94\r
+:0A2CA0000FBE01960895F894FFCFCF\r
+:102CAA000080008000800080010100007001200087\r
+:0A2CBA000D0A53746172740D0000DE\r
 :00000001FF\r