diff --git a/README-RA b/README-RA index fe43c3e..b855a4e 100644 --- a/README-RA +++ b/README-RA @@ -10,7 +10,7 @@ It should look and feel like the mainstream Mecrisp-Stellaris, but with a very important difference: This time, it contains an analytical compiler which keeps track -of the top three stack elements and maps them to registers +of the top five stack elements and maps them to registers whenever possible. Five targets are available: diff --git a/common/disassembler-m3.txt b/common/disassembler-m3.txt index a7ca8ec..ad97b68 100644 --- a/common/disassembler-m3.txt +++ b/common/disassembler-m3.txt @@ -228,7 +228,12 @@ $EA5F0676 of ." rors r6 r6 #1" endof + $F8470D04 of ." str r0 [ r7 #-4 ]!" endof + $F8471D04 of ." str r1 [ r7 #-4 ]!" endof + $F8472D04 of ." str r2 [ r7 #-4 ]!" endof + $F8473D04 of ." str r3 [ r7 #-4 ]!" endof $F8476D04 of ." str r6 [ r7 #-4 ]!" endof + $F8576026 of ." ldr r6 [ r7 r6 lsl #2 ]" endof $F85D6C08 of ." ldr r6 [ sp #-8 ]" endof diff --git a/common/sine.txt b/common/sine.txt index f462377..6972d84 100644 --- a/common/sine.txt +++ b/common/sine.txt @@ -48,21 +48,29 @@ decimal : 2rshift 0 ?do d2/ loop ; -: cordic ( f-angle -- f-error f-sine f-cosine ) - ( Angle between -Pi/2 and +Pi/2 ! ) - 0 0 $9B74EDA8 0 - 32 0 do - 2rot dup 0< - if +: cordic-erster-teil i e^ka 0 d+ 2rot 2rot 2over i 2rshift 2rot 2rot 2swap 2over i 2rshift d- 2rot 2rot d+ - else +; + +: cordic-zweiter-teil i e^ka 0 d- 2rot 2rot 2over i 2rshift 2rot 2rot 2swap 2over i 2rshift d+ 2rot 2rot 2swap d- +; + +: cordic ( f-angle -- f-error f-sine f-cosine ) + ( Angle between -Pi/2 and +Pi/2 ! ) + 0 0 $9B74EDA8 0 + 32 0 do + 2rot dup 0< + if + cordic-erster-teil + else + cordic-zweiter-teil then loop 2-foldable ; diff --git a/kl25z128-ra/mecrisp-stellaris-kl25z128.bin b/kl25z128-ra/mecrisp-stellaris-kl25z128.bin index 35a0d92..a449d6b 100644 Binary files a/kl25z128-ra/mecrisp-stellaris-kl25z128.bin and b/kl25z128-ra/mecrisp-stellaris-kl25z128.bin differ diff --git a/kl25z128/mecrisp-stellaris-kl25z128.srec b/kl25z128/mecrisp-stellaris-kl25z128.srec index cc2992d..2ebae42 100644 --- a/kl25z128/mecrisp-stellaris-kl25z128.srec +++ b/kl25z128/mecrisp-stellaris-kl25z128.srec @@ -1,16 +1,16 @@ S02200006D6563726973702D7374656C6C617269732D6B6C32357A3132382E737265638F -S11300005CF3FF1F614B0000694A0000694A00006D +S113000064F3FF1F914B0000994A0000994A0000D5 S113001000000000000000000000000000000000DC -S1130020000000000000000000000000934A0000EF -S11300300000000000000000934A0000474A00004E -S1130040934A0000934A0000934A0000934A000038 -S1130050934A0000934A0000934A0000934A000028 -S1130060934A0000934A0000934A0000934A000018 -S1130070934A0000934A0000934A0000B34A0000E8 -S1130080D34A0000934A0000934A0000934A0000B8 -S1130090934A0000934A0000934A0000934A0000E8 -S11300A0934A0000F34A0000934A0000934A000078 -S11300B0934A0000934A0000154B0000394B00009E +S1130020000000000000000000000000C34A0000BF +S11300300000000000000000C34A0000774A0000EE +S1130040C34A0000C34A0000C34A0000C34A000078 +S1130050C34A0000C34A0000C34A0000C34A000068 +S1130060C34A0000C34A0000C34A0000C34A000058 +S1130070C34A0000C34A0000C34A0000E34A000028 +S1130080034B0000C34A0000C34A0000C34A0000F7 +S1130090C34A0000C34A0000C34A0000C34A000028 +S11300A0C34A0000234B0000C34A0000C34A0000B7 +S11300B0C34A0000C34A0000454B0000694B0000DE S11300C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C S11300D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C S11300E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C @@ -64,1171 +64,1174 @@ S11303D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 S11303E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 S11303F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 S1130400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -S113041010080000FFFF1E2D2D2D204D656372690D +S113041048080000FFFF1E2D2D2D204D65637269D5 S113042073702D5374656C6C6172697320436F72C1 -S113043065202D2D2D0007B59B48002B09D000F019 -S11304402FF800F035F800F01FF84261282101610F -S1130450F3E707BD00B5944800230169282905D1B5 -S1130460426900F004F800F038F8F6E700BD03B57F +S113043065202D2D2D0007B59348002B09D000F021 +S11304402FF800F035F800F01FF842602821016011 +S1130450F3E707BD00B58C4800230168282905D1BE +S1130460426800F004F800F040F8F6E700BD03B578 S1130470043F3E601600043F3E601E0008B400F0D6 -S113048013FF08BC013303BD03B5013B043F3E60C9 -S11304901E0008B400F0F2FE08BC320040CF03BDD9 -S11304A003B5824801681E2901D000F024F803BD79 -S11304B08169016201698161C16941624169C16106 -S11304C01E21016170470FB5774801691E2903D0C9 -S11304D0FFF7E6FFFFF7ECFF0FBD02B5816901618D -S11304E0C169416100E002B5016A8161416AC1618B -S11304F01E21016202BD08B501681E22026008299E -S11305000BD2043F3E606A4E02F0F9FF043F3E60A6 -S1130510684E0E4302F0F3FF08BD28290DD1043FB5 -S11305203E60634E02F0EBFF436800F061F8043F65 -S11305303E60604E1E4302F0E2FF08BD00B500F0CD -S113054005F800F008F800F00BF800BD0FB55748A7 -S1130550FFF7D1FF0FBD0FB55748FFF7CCFF0FBD15 -S11305600FB551480169062202611E2905D1043FD5 -S11305703E60524E02F0C3FF2CE0282921D143698A -S113058001681E2908D041688B4205D1043F3E60B2 -S11305904B4E02F0B4FF1DE081681E2908D0C168EB -S11305A08B4205D1043F3E60464E02F0A8FF11E0A5 -S11305B0043F3E601E00043F3E60062602F004FC39 -S11305C008E0062906D0043F3E603D4EC9000E43B4 -S11305D002F095FF00F001F80FBD33481E210160C1 -S11305E0816001628161062101610021816270479D -S11305F007B500F017F84360282101600023043F89 -S11306003E601E0002F0E0FB07BD07B500F00AF8EB -S1130610C360282181600123043F3E601E0002F074 -S1130620D3FB07BD204801681E2904D041689942C4 -S113063001D1002307BD81681E2904D0C1689942F5 -S113064001D1012307BD043F3E601E00704706B57B -S11306501B181968282926D15A6801681E2906D052 -S11306604168914203D1043F3E60174E08E081681F -S11306701E290CD0C168914209D1043F3E60134E3B -S113068000F026F813601E4302F039FF06BD043F54 -S11306903E601600190000F01BF80B60043F3E603A -S11306A01E0002F091FB06BD28F0FF1F48F0FF1F5B -S11306B0043F00003860000040F0FF1F40CF0000FE -S11306C0064600000E4600000046000008460000F2 -S11306D007B5214801698269036A062905D0062AFB -S11306E003D0062B01D0062307BD032905D0032A16 -S11306F003D0032B01D0032307BD022307BD00B59C -S1130700FFF7E6FF036001219940043F3E60134E6A -S11307100E4302F0F4FE00BD0FB50F4801691E2917 -S113072002D10F48FFF7EBFF0FBD0FB50A488169EF -S11307301E2904D1FFF7F0FF0A48FFF7E0FF0FBDC1 -S11307400FB50548016A1E2904D1FFF7EEFF0648DC -S1130750FFF7D5FF0FBD000028F0FF1F00CF0000FA -S113076038F0FF1F40F0FF1F48F0FF1F00B501697C -S1130770282903D14369FFF73BFF190000BD00B5E9 -S11307808169282903D1C369FFF732FF190000BD2D -S11307900EB58269036A9A420AD1072A08D8043F2F -S11307A03E60D600FFF794FF1E43836102F0A7FE6C -S11307B00EBD0EB501698269036A914202D0994265 -S11307C000D00EBD043F3E60CE00FFF781FF1E4304 -S11307D0036102F094FE0EBD00B5FFF77EFEFFF745 -S11307E072FEFFF775FF036100BD01B5064803689B -S11307F0013307D00023DB430360043F3E60034E14 -S113080002F07DFE01BD0000D82F002000B50000DD -S11308103408000042020432647570003868043FF2 -S11308203E60043F3860704700B500F04FFC00F0B4 -S11308304DFC00BD540800006202053264726F7002 -S1130840043740CF704700B500F0F0FB00F0EEFB3A -S113085000BDC0467408000044000532737761701F -S113086007CF043F3860043F3E60043F3A600E0007 -S11308707047C04688080000620004326E69700048 -S113088007CF043F38607047A408000044000532D5 -S11308906F766572B868043F3E60043F3860FE6856 -S11308A07047C046C8080000440005327475636B85 -S11308B007CF043F3860043F3E60043F3A60043F82 -S11308C03960043F38607047EC0800004600043289 -S11308D0726F74003868B9683A69B86039613A600F -S11308E079687E60FE68F9607047C04610090000B0 -S11308F0460005322D726F743868B9683A693861F8 -S11309003960BA60F968FE607E6879607047C046F5 -S113091038090000200203323E7201CF01B440B412 -S113092040CF704700B5FFF760FF00F0A3FB00F075 -S113093047FC00F045FC00BD6409000020020332BE -S1130940723E043F3E6040BC01BC043F38607047C7 -S113095000B5FFF74AFF00F04EFC00F04CFC00F03D -S113096089FB00BD94090000200203327240043F59 -S11309703E60019E043F3E60009E704700B5FFF755 -S113098034FF043F3E600C4E03F0DFFA03F0DAFA62 -S113099000BDC046C0090000200206327264726FB6 -S11309A0700002B0704700B5FFF71FFF043F3E60C0 -S11309B0024E02F0A4FD00BD0198000002B0000048 -S11309C0D809000042000364322F3868F10776101A -S11309D04008084338607047EC0900006200036473 -S11309E0322A38680018764138607047080A0000D7 -S11309F042000464736872003868F107760840089E -S1130A00084338607047C046200A0000620004644E -S1130A1073686C0038680018764138607047C046C7 -S1130A20340A00004200046461627300002E08D49A -S1130A307047C046540A0000420007646E6567614F -S1130A40746538680021C043F64301304E41386074 -S1130A507047C0466C0A0000640002642D0007CF92 -S1130A60121AB1410E00043F3A607047840A000034 -S1130A70640002642B0007CF12184E41043F3A6011 -S1130A807047C046A40A0000610203733E64043F39 -S1130A903E60F617704700B500F0B6FA00F063FD4B -S1130AA000BDC046D00A0000420003756D2A3868B4 -S1130AB0030073433B60010C320C0B005343B6B28A -S1130AC080B24E4350433618360CF6187047C04671 -S1130AD0000B00004200026D2A003868C11705D0DF -S1130AE040423860F01704D07642E0E7F017DED0D9 -S1130AF0764200B5FFF7DBFFFFF7A3FF00BDC0465A -S1130B00400B000044000375642A07CF5643414359 -S1130B107618010C130C59437618010C80B292B26A -S1130B205143434350430022C91852411204B6189A -S1130B300A04090C80184E41043F38607047C046CF -S1130B40D40B000044000475646D2A0010B5002421 -S1130B50043F3E607E68043F3E603E69FFF7A7FFA6 -S1130B60310040CF300040CF043F3E603E68043F38 -S1130B703E60FE6803B4FFF79AFF03BC330040CF26 -S1130B80320040CF043F3E603E68043F3E603E6911 -S1130B900FB4FFF78CFF0FBC9219634140CF891942 -S1130BA06241634140CF043F3E607E68043F3E6043 -S1130BB0FE680FB4FFF77BFF0FBC9219634140CF6F -S1130BC089196241634140CF1E003A607960B86080 -S1130BD010BDC046F80B00004300022A2F0000B5E8 -S1130BE040B440CFFFF779FF043F3E6040BC00F0C3 -S1130BF04FF8043700BDC0461C0C00004300052A12 -S1130C002F6D6F6400B540B440CFFFF766FF043F1B -S1130C103E6040BC00F03CF800BDC046400C000003 -S1130C20430003752A2F00B540B440CFFFF73FFFC0 -S1130C30043F3E6040BC00F01CF8043700BDC046D1 -S1130C40640C0000430006752A2F6D6F640000B524 -S1130C5040B440CFFFF72BFF043F3E6040BC00F0A0 -S1130C6008F800BD840C0000430006756D2F6D6FFD -S1130C70640000B5043F3E60002600F01AF840CF3F -S1130C80043700BDA40C00004300056D2F6D6F6494 -S1130C9000B5043F3E60F61700F034F840CF043747 -S1130CA000BDC046F80C000044000675642F6D6F4B -S1130CB0640030B4002300227968B86835003C68C9 -S1130CC040264000494152415B41AB4202D804D323 -S1130CD0A24202D3121BAB410130013EF1D10E00FE -S1130CE038607B60BA6030BC704730B400237A68E7 -S1130CF0B9680020E2E7C046700D000044000564B6 -S1130D002F6D6F6400B5F01719D0FFF79AFEFFF747 -S1130D10A7FDF0170CD0FFF794FEFFF7A1FDFFF736 -S1130D20C8FFFFF79DFDFFF78CFEFFF799FD00BD9F -S1130D30FFF796FDFFF7BDFFFFF783FE00BDFFF74A -S1130D408FFDF0170ED0FFF77CFEFFF789FDFFF74C -S1130D50B0FFFFF776FEFFF783FDFFF772FEFFF7A4 -S1130D607FFD00BDFFF77CFDFFF7A3FF00BDC0467C -S1130D70880D0000440002642F0000B5FFF7C2FF95 -S1130D80FFF77EFD00BDC046D00D000044000266A2 -S1130D902A0000B5F0170DD0FFF753FEFFF760FDF2 -S1130DA0F0170DD0FFF74DFEFFF7D0FE40CF01CF77 -S1130DB0386000BDFFF754FDF017F5D0FFF741FE92 -S1130DC0FFF7C4FE40CF01CF3860FFF73AFE00BD05 -S1130DD01C0E0000440002662F0000B5F0170ED070 -S1130DE0FFF72FFEFFF73CFDF0170ED0FFF729FEAB -S1130DF0FFF736FDFFF779FFFFF742FD00BDFFF770 -S1130E002FFDF017F4D0FFF71CFEFFF729FDFFF7C5 -S1130E106CFFFFF716FEFFF733FD00BD640E000004 -S1130E2020020232210006CF3160726040CF704749 -S1130E3000B5FFF785FC0169426906B400F0CEFDF8 -S1130E40FFF741FB06BC0161282905D0043F3E6041 -S1130E50544E00F0C6FD00BD0432426100F0BEFDF8 -S1130E6000BDC046AC0E0000200202324000043F28 -S1130E70706838603668704700B500F0C5F80169DD -S1130E80282909D0043F3E60474E00F088FD00F059 -S1130E90F1F800F081FD00BD41690431416100F0C9 -S1130EA07BFD00F0E7F800F077FD00BDCC0E0000FC -S1130EB044000364753C07CF8E4204D801D19042AC -S1130EC001D8002670470026F6437047EC0E000058 -S1130ED044000364753E07CFB14204D801D1824275 -S1130EE001D8002670470026F64370470C0F000017 -S1130EF0440002643C0007CF8E4204DC01D19042DE -S1130F0001DC002670470026F64370472C0F0000D2 -S1130F10440002643E0007CFB14204DC01D18242A6 -S1130F2001DC002670470026F6437047480F000096 -S1130F3062020364303C0437F617704700B500F0D2 -S1130F40ACF800F010FB00BD700F000062020364F7 -S1130F50303D01CF0643013EB641704700B5043F22 -S1130F603E60124E00F083FA00F0D8FA00BDC0468D -S1130F708C0F0000440003643C3E07CF50404E40B9 -S1130F800643013EB641F6437047C046B00F000029 -S1130F90440002643D0007CF50404E400643013EEA -S1130FA0B641704740600000406800000043000004 -S1130FB0C40F0000200003737040043F3E603E00F5 -S1130FC07047C046D40F000020000373702137001F -S1130FD040CF7047E80F0000200003727040043FC8 -S1130FE03E606E467047C046F80F00002000037252 -S1130FF07021B54640CF70471C10000061020364A5 -S11310007570043F3E60704706B5FFF785FB0169C4 -S11310104269FFF758FA0161426106BD48100000B9 -S113102061020464726F700040CF704700B50169BB -S11310301E2905D1043F3E60A24E02F060FA00BDB5 -S1131040FFF74BFA00BDC046601000006100043F8A -S113105064757000002E01D0043F3E607047C046A6 -S11310608C100000620204737761700039683E607E -S11310700E0070470CB5FFF758FB026983690361E2 -S113108082614269C3694361C2610CBDB81000004A -S11310906202036E69700437704700B5FFF73CFBCA -S11310A081691E2902D0FFF71EFA00BD043F3E608D -S11310B0844E02F024FA00BDE01000006202046FC6 -S11310C076657200043F3E607E68704700B5FFF7A6 -S11310D02CFB8169C269FFF7F6F90161426100BD29 -S11310E00C1100006202047475636B0001CF083FA9 -S11310F07E603860704700B5FFF717FBFFF7D0F943 -S1131100016901624169416200BDC04644110000A9 -S1131110630203726F7403CF083F78603E600E0071 -S113112070470EB5FFF70CFB01698269036A8161A0 -S1131130026203614169C269436AC16142624361F7 -S11311400EBDC046681100006302042D726F740066 -S113115003CF083F7E6039600600704700B5FFF793 -S1131160E0FFFFF7DEFF00BD7C11000020000470EB -S113117069636B00B0003E587047C046941100008C -S113118000000564657074684F49C91B043F3E60E4 -S11311908E087047B0110000000006726465707418 -S11311A06800043F3E606E464849891B8E087047BC -S11311B0E41100002002023E720040B440CF7047A8 -S11311C000B5FFF712FBFFF7A7FAFFF7CFFA043FCA -S11311D03E603F4E01228A40164302F090F9FFF729 -S11311E07CF900BD18120000200202723E00043F88 -S11311F03E6040BC704700B5FFF7F7FAFFF763F9AC -S1131200FFF766FA0361043F3E60324E01229A40C2 -S1131210164302F074F900BD381200002002027275 -S11312204000043F3E60009E704700B5FFF7DDFAC2 -S113123002F088FE00BDC0465C1200002002057268 -S113124064726F7001B0704700B5FFF7CEFA043FC7 -S11312503E60214E02F053F900BDC04670120000FA -S1131260200005727069636BB6006E44366870477F -S11312709C120000000004726F6C6C00002E01D1FF -S113128040CF7047B0003958C019031F1A68026074 -S11312900438013EF9D104370E007047DC12000017 -S11312A00000052D726F6C6C002E01D140CF704789 -S11312B0386839464A680A600431013EFAD1086048 -S11312C040CF7047043700005CF2FF1F5CF3FF1F40 -S11312D000B4000000BC000001B00000F4120000E3 -S11312E0620203616E6401CF06407047043F3E60B2 -S11312F07B4EBCE01013000062020362696301CFFD -S1131300B04306007047043F3E60764EC9E0C046D5 -S1131310281300006202026F720001CF0643704777 -S1131320043F3E60704EA2E0401300006202037866 -S11313306F7201CF46407047043F3E606B4E96E0AB -S1131340581300006202012A01CF46437047043F4C -S11313503E60674E8BE0C046781300004100036393 -S11313606C7A300006D00026400002D001D201364B -S1131370FAE7704720267047881300006100037263 -S11313806F720120C64170479C1300006100037214 -S11313906F6C0020B61946417047C046D013000058 -S11313A06202076172736869667401CF3041060096 -S11313B0704700B5043F3E604E4E043F3E604E4EC3 -S11313C0FFF7B3F941691F2928D91F21416125E09D -S11313D0F81300006202067273686966740001CF34 -S11313E0F0400600704700B5043F3E60434E043FA2 -S11313F03E60434E12E0C0460C1500006202066CCB -S113140073686966740001CFB0400600704700B588 -S1131410043F3E603B4E043F3E600026FFF785F9E3 -S11314200169282903D040CF00F03BF800BD043700 -S11314304169FFF752F8002901D140CF00BD1F29AF -S11314400AD889010E430269D2001643FFF7C4F992 -S11314501E4302F054F800BD40CFFFF7BDF9043F2E -S11314603E60294E1B021E4302F049F800BD0FB531 -S1131470FFF75BF90169062901D1FFF7FBFD8269DA -S1131480282A01D1FFF7F6FDFFF782F9FFF76EF97D -S1131490C90082690E43164302F031F8FFF71DF8C4 -S11314A00FBD0FB5FFF741F9FFF772F9FFF75EF9CA -S11314B08269282A0BD1043F3E60C669FFF708F908 -S11314C08361043F3E601E001A0001F07DFCC900E8 -S11314D00E43164302F013F8FEF7FFFF0FBD0000A2 -S11314E00040000080430000004300004040000032 -S11314F0404300000041000000100000C040000014 -S113150000080000804000000020000030150000AA -S1131510610202303D00013EB641704700B500F063 -S113152003F900F004FFFEF7D8FF7349816200BDA0 -S113153058150000610203303C3E013EB641F643BB -S1131540704700B500F0F0F800F0F1FEFEF7C5FFBB -S11315506A49816200BDC0467C1500006102023008 -S11315603C00F617704700B500F0DEF8043F3E601B -S1131570634E00F0DFFE6349816200BD94150000F4 -S11315806000047472756500043F3E600026F643F3 -S11315907047C046A815000060000566616C73655D -S11315A0043F3E6000267047CC1500004202023E14 -S11315B03D0001CFB042E9DA00267047043F3E60A7 -S11315C0514E043F3E60514EB8E0C046F015000055 -S11315D04202023C3D0001CFB042D7DD00267047F5 -S11315E0043F3E604A4E043F3E604A4EA6E0C04679 -S11315F0101600004202013C01CFB042C6DB0026B7 -S11316007047043F3E60414E043F3E603E4E95E0CD -S1131610301600004202013E01CFB042B6DC002683 -S11316207047043F3E603B4E043F3E60384E85E0C9 -S113163054160000620203753E3D01CF861BB6417D -S1131640F6437047043F3E602C4E043F3E602A4EF2 -S113165074E0C04678160000620203753C3D01CF79 -S1131660361AB641F6437047043F3E602A4E043FA3 -S11316703E602A4E62E0C04698160000620202757F -S11316803C0001CF861BB6417047043F3E601A4EB2 -S1131690043F3E60194E51E0B81600006202027524 -S11316A03E0001CF361AB6417047043F3E601B4EE0 -S11316B0043F3E60184E41E0D81600006202023C2E -S11316C03E0001CF811B361A0E437047043F3E6033 -S11316D0134E043F3E6031E02C1800006202013DCD -S11316E001CF361A013EB6417047043F3E600D4EAD -S11316F0043F3E6022E0000000D2000000D300005E -S1131700C017000000D5000000DB000000DA000074 -S113171000DC000000DD000000D8000000D900005B -S113172000D0000000D1000000B5FEF7F5FF202333 -S1131730FEF78DFF1823FEF78AFF00BD00B5FEF704 -S1131740F4FF2023FEF783FF8269282A04D1FFF7E0 -S113175091FC39683E600E4640CF0169282909D1C1 -S11317604169FF2906D8043F3E60644E0E438169F7 -S1131770090206E0FEF7FAFF043F3E60604EC9002E -S113178016430E4301F0BBFEFEF7A7FEFEF7A5FECF -S1131790866240CF00BD0FB55A48816A002930D017 -S11317A0043F3E60866A00218162310AD52901D155 -S11317B040CF0FBDFEF787FEFEF78AFF0361D229F3 -S11317C003D1514E00F0FEFD0FBDD32905D14E4E7D -S11317D000F0F8FD00F009FE0FBD023601F08FFEA7 -S11317E0043F3E60494E00F00DF800F0FEFD043F5A -S11317F03E60474E01F083FE043F3E60434E00F0DE -S113180001F80FBD00B5FEF787FFFEF7D2FF0169AF -S113181009020E4301F073FE00BD00B5816A090A96 -S1131820D52901D1FEF759FE00BDC0464818000075 -S11318306202036D696E01CFB04200DC060070479E -S1131840043F3E60334E2BE0641800006202036DD7 -S1131850617801CFB04200DB06007047043F3E6070 -S11318602D4E1DE084180000620204756D6178003D -S113187001CFB04200D306007047043F3E60274EBC -S11318800EE0C04628190000620204756D696E00FE -S113189001CFB04200D806007047043F3E60204E9E -S11318A000B5FEF742FF01698269914203D140CF3E -S11318B0FEF719FE00BD062A01D1FFF7DBFB016923 -S11318C0282901D1FFF7D6FBFEF773FFFEF757FF78 -S11318D0C9000269043F3E60094E0E43164301F0FD -S11318E00EFE01F00CFE043F3E600E4E0E43164306 -S11318F001F005FEFEF7F7FD00BD00000028000022 -S11319008042000028F0FF1F8041000000200000FA -S113191000E0000000DB000000DC000000D8000054 -S113192000D3000000460000681900000000046DA8 -S11319306F76650007B5310040CF320040CF0029F3 -S11319400FD0B2420DD006D3013E013A705C505420 -S11319500139FBD105E030781070013601320139CC -S1131960F9D140CF07BDC0468C19000000000466C1 -S1131970696C6C00300040CF310040CF002902D0A8 -S113198001397054FCD140CF7047C046CC190000D7 -S11319902002014036687047043F3E60984E00B50F -S11319A0FEF7BAFE0369282B08D143697C2119404C -S11319B009010E437C218B43FEF727FEDB001E4307 -S11319C0FEF70AFF1E4301F09AFD00BD201A000035 -S11319D02002012103CF30600E007047043F3E60B7 -S11319E0884E00B5FEF7A1FE0369282B08D1436990 -S11319F07C21194009010E437C218B43FEF705FE2F -S1131A00DB001E438369282B02D1C369FEF7F0FD76 -S1131A101E4301F074FDFEF760FDFEF75EFD00BDA0 -S1131A20581A00002002022B210003CF326812183A -S1131A3032600E00704700B5FEF777FEFFF7E4FA58 -S1131A40FFF7AAFFFFF76DFB00F023FCFFF712FB83 -S1131A50FFF7C4FF00BDC0469C1A000020020268C4 -S1131A6040003688704700B5FEF756FE043F3E60DE -S1131A70654E0369282B08D143693E211940490169 -S1131A800E433E218B43FEF7C0FDDB001E43FEF7F1 -S1131A90A3FE1E4301F033FD00BDC046F41A00004E -S1131AA020020268210003CF30800E00704700B589 -S1131AB0FEF73BFE043F3E60544E0369282B08D1D9 -S1131AC043693E21194049010E433E218B43FEF7F1 -S1131AD09CFDDB001E438369282B02D1C369FEF7FA -S1131AE087FD1E4301F00BFDFEF7F7FCFEF7F5FC46 -S1131AF000BDC0462C1B0000200203682B2103CF2D -S1131B003288121832800E00704700B5FEF70DFEC1 -S1131B10FFF77AFAFFF7A7FFFFF703FB00F0B9FB23 -S1131B20FFF7A8FAFFF7C3FF00BDC046701B000013 -S1131B302002026340003678704700B5FEF7ECFDE2 -S1131B40043F3E60324E0369282B08D143691F21AC -S1131B50194089010E431F218B43FEF756FDDB001C -S1131B601E43FEF739FE1E4301F0C9FC00BDC0460A -S1131B70C81B000020020263210003CF30700E0056 -S1131B80704700B5FEF7D1FD043F3E60214E036966 -S1131B90282B08D143691F21194089010E431F21B5 -S1131BA08B43FEF732FDDB001E438369282B02D1F1 -S1131BB0C369FEF71DFD1E4301F0A1FCFEF78DFC79 -S1131BC0FEF78BFC00BDC046181C00002002036316 -S1131BD02B2103CF3278121832700E00704700B5F3 -S1131BE0FEF7A3FDFFF710FAFFF7A7FFFFF799FA37 -S1131BF000F04FFBFFF73EFAFFF7C3FF00BD000004 -S1131C000068000000600000008800000080000000 -S1131C100078000000700000581C000020020462DC -S1131C206973210003CF3268024332600E007047AB -S1131C3000B5FEF77AFDFFF7E7F9FFF7ADFEFFF712 -S1131C4070FA043F3E60AB4EFFF711FCFFF712FA47 -S1131C50FFF7C4FE00BDC046981C000020020462C9 -S1131C606963210003CF3268824332600E007047FB -S1131C7000B5FEF75AFDFFF7C7F9FFF78DFEFFF732 -S1131C8050FA043F3E609C4EFFF70BFCFFF7F2F95D -S1131C90FFF7A4FE00BDC046D81C00002002047853 -S1131CA06F72210003CF3268424032600E007047E9 -S1131CB000B5FEF73AFDFFF7A7F9FFF76DFEFFF752 -S1131CC030FA043F3E608D4EFFF7D1FBFFF7D2F9A7 -S1131CD0FFF784FE00BDC0460C1D00002002046214 -S1131CE06974400001CF36680640013EB641F643B0 -S1131CF0704700B5FEF719FDFFF74EFE043F3E6046 -S1131D007F4EFFF7B4FBFFF71CFC00BD4C1D000029 -S1131D10200205686269732103CF3288024332804E -S1131D200E00704700B5FEF700FDFFF76DF9FFF7F1 -S1131D309AFEFFF7F6F9043F3E606E4EFFF797FBFD -S1131D40FFF798F9FFF7B3FE00BDC0468C1D0000F5 -S1131D50200205686269632103CF3288824332809E -S1131D600E00704700B5FEF7E0FCFFF74DF9FFF7F2 -S1131D707AFEFFF7D6F9043F3E605F4EFFF791FB12 -S1131D80FFF778F9FFF793FE00BDC046CC1D0000B5 -S1131D9020020568786F722103CF32884240328076 -S1131DA00E00704700B5FEF7C0FCFFF72DF9FFF7F2 -S1131DB05AFEFFF7B6F9043F3E60504EFFF757FB5B -S1131DC0FFF758F9FFF773FE00BDC046001E000080 -S1131DD0200205686269744001CF36880640013EDE -S1131DE0B641F643704700B5FEF79FFCFFF73BFE94 -S1131DF0043F3E60424EFFF73AFBFFF7A2FB00BDF3 -S1131E00401E0000200205636269732103CF32780B -S1131E10024332700E00704700B5FEF786FCFFF7F0 -S1131E20F3F8FFF78AFEFFF77CF9043F3E60314E7A -S1131E30FFF71DFBFFF71EF9FFF7A3FE00BDC04629 -S1131E40801E0000200205636269632103CF32789B -S1131E50824332700E00704700B5FEF766FCFFF750 -S1131E60D3F8FFF76AFEFFF75CF9043F3E60224EA9 -S1131E70FFF717FBFFF7FEF8FFF783FE00BDC04630 -S1131E80C01E000020020563786F722103CF3278F0 -S1131E90424032700E00704700B5FEF746FCFFF773 -S1131EA0B3F8FFF74AFEFFF73CF9043F3E60134ED8 -S1131EB0FFF7DDFAFFF7DEF8FFF763FE00BDC0466B -S1131EC0041F0000200205636269744001CF367864 -S1131ED00640013EB641F643704700B5FEF725FCC7 -S1131EE0FFF72BFE043F3E60054EFFF7C0FAFFF7F5 -S1131EF028FB00BD00430000804300004040000078 -S1131F000040000014200000000006666C61736845 -S1131F102100300040CF310040CF854B984268D338 -S1131F20844B99422ED0032202402CD102689A425B -S1131F3046D1814A137880221A40FAD030221A40BE -S1131F4002D07D4A302313707C4A062313707C4AE6 -S1131F501070000A7B4A1070000A7B4A10707B4A9A -S1131F601170090A7A4A1170090A7A4A1170090A29 -S1131F70794A1170704A802313706F4A1378802253 -S1131F801A40FAD0704700F0D1FD304164647265A4 -S1131F9073732068617320746F20626520342D612F -S1131FA06C69676E656420666F7220777269746904 -S1131FB06E6720666C61736820210A0002F096FC4B -S1131FC000F0B4FD29466C617368206C6F63617422 -S1131FD0696F6E2063616E6E6F7420626520777224 -S1131FE0697474656E20747769636520210A02F050 -S1131FF07DFC00F09BFD1943616E6E6F7420777257 -S113200069746520696E746F20636F726520210A9C -S113201002F06CFC9820000000000E666C6173688E -S1132020706167656572617365000FB5300040CFFC -S11320303F4B984220D3032398433F4A137880228E -S11320401A40FAD030221A4002D03B4A302313708F -S11320503A4A092313703A4A1070000A394A107038 -S1132060000A394A1070344A80231370324A1378B4 -S113207080221A40FAD00FBD00F058FD1443616E5F -S11320806E6F7420657261736520636F72652021C1 -S11320900A0002F02BFCC0461421000000000A656F -S11320A072617365666C61736800214872B62B496E -S11320B02B4A036893421CD0043F3E600600043F51 -S11320C03E6000F033FD10457261736520626C6FF1 -S11320D0636B20617420200000F0A0FD00F026FD59 -S11320E00C2066726F6D20466C6173680A00FFF7FE -S11320F09CFF04308842DCD100F018FD1246696E62 -S113210069736865642E20526573657420210A0022 -S113211002F086FCAC21000000000E65726173655C -S1132120666C61736866726F6D00300040CFBDE706 -S113213000500000FFFFFFFF0000024007000240C4 -S1132140040002400500024006000240080002406C -S1132150090002400A0002400B0002400000020095 -S1132160FFFFFFFF46486021002202800230013950 -S1132170FBD17047424860210288002A12D000F047 -S1132180D5FC1D556E7061697265642031362D620F -S1132190697420466C6173682077726974652E0ACD -S11321A002F0A4FB02300139E6D17047842200001A -S11321B000000768666C6173682130B5320040CF57 -S11321C0500813D300F0B2FC1E68666C617368217A -S11321D0206E65656473206576656E206164647243 -S11321E065737365732E0A0002F080FB022353406B -S11321F023482021048845882D042C439C422AD05E -S113220006300139F6D11E482021048845882D0462 -S11322102C431AD006300139F7D100F087FC27543B -S11322206F6F206D616E7920756E7061697265647F -S11322302031362D62697420466C61736820777290 -S1132240697465732E0A02F051FB0280120C4280FD -S1132250868040CF30BD0221114003D0023A8188EC -S1132260360401E0818809040E43043F3E601600F1 -S11322700021018041808180FFF74BFE30BD0000CA -S11322805CF3FF1FB02200006202012B01CF36185D -S1132290704700B5FEF749FA043F3E60D84E043F4C -S11322A03E60D84E8169282912D1FEF7E3FE0FE083 -S11322B0202300006202012D01CF861B704700B568 -S11322C0FEF733FA043F3E60CF4E043F3E60CF4EEC -S11322D0016928290ED14169FF290BD840CFFEF7A7 -S11322E057FA0E43816909020E4301F008F9FEF71B -S11322F0F4F800BD0437FEF739FA8269282A03D1BD -S1132300C369FEF775F91A008901D2000E4316431A -S1132310FEF7E3F8FEF760FA1E4301F0F0F800BDA3 -S11323204C230000610202312D00013E7047043F3E -S11323303E60B74E00B5FEF7EFF90169C9000E43E0 -S1132340FEF74AFA1E4301F0DAF800BD64230000E8 -S1132350610202312B0001367047043F3E60AD4EEE -S1132360E8E7C0467C230000610202322D00023EF1 -S11323707047043F3E60A84EDCE7C046942300004B -S1132380610202322B0002367047043F3E60A34EC6 -S1132390D0E7C046AC23000061020563656C6C2B7A -S11323A004367047043F3E609D4EC3E7DC230000C3 -S11323B06102066E65676174650076427047043F8A -S11323C03E60984E00B5FEF7A7F9FEF7F2F90169F1 -S11323D00E43C9000E4301F092F800BDF42300003F -S11323E06102036E6F74F6437047043F3E608E4E85 -S11323F0E8E7C0460C2400006102037368727608A3 -S11324007047043F3E60894EDCE7C0461C24000050 -S113241061020373686C7600704706E034240000A0 -S1132420610202322A0076007047043F3E60402673 -S1132430C8E7C0464C24000061020563656C6C73F8 -S1132440B6007047043F3E608026BBE7642400006A -S1132450610202322F0076107047043F3E60744ED2 -S1132460B0E7C046B0240000610203616273F01754 -S113247036184640704700B5FEF74EF9FEF799F955 -S11324801E2101600169043F3E606A4ECA00164382 -S113249001F035F8043F3E605A4E0E43164301F0F6 -S11324A02EF8043F3E60644E0E4301F028F800BD50 -S11324B0F8240000420005752F6D6F64310040CF91 -S11324C0002903D1043F3E60002670470122002307 -S11324D08E4206D9003104D45200490001D48E4200 -S11324E0FAD88E4201D3761A134349085208F8D118 -S11324F0043F3E601E007047682500004200042F20 -S11325006D6F640000B5300040CF002E1CDA7642B7 -S113251000280CDA4042043F3E600600FFF7CEFF7D -S1132520300040CF7642043F3E60060000BD043FC9 -S11325303E600600FFF7C2FF300040CF40427642C3 -S1132540043F3E60060000BD002807DA4042043F15 -S11325503E600600FFF7B2FF764200BD043F3E60D6 -S11325600600FFF7ABFF00BD7C2500004200036DB1 -S11325706F6400B5FFF7C6FF40CF00BD9025000093 -S11325804200012F00B5FFF7BDFF043700BDC04670 -S1132590A42500006100046576656E0001203040CA -S11325A036187047BC250000810004626173650021 -S11325B0043F3E60214E70470A000000D42500000D -S11325C000000662696E617279001C480221016094 -S11325D07047C046EC250000000007646563696D20 -S11325E0616C16480A2101607047C04688260000C5 -S11325F000000368657811481021016070470000ED -S1132600003000000018000000380000001A00002C -S1132610401E0000401C0000801E0000801C0000C2 -S1132620001D000040420000C043000040080000BC -S113263040100000C017000040400000FC2F0020A4 -S1132640804981480160814981480160814982480B -S11326500160824982480160824801600021824809 -S1132660017082480170824801708248017006211D -S1132670814801700021814801701A21804801704D -S11326800C21794801707047A42600008100096874 -S11326906F6F6B2D656D6974043F3E60794E7047B2 -S11326A09A270000C0260000810008686F6F6B2D18 -S11326B06B657900043F3E60734E7047C22700008B -S11326C0E026000081000A686F6F6B2D656D6974E8 -S11326D03F00043F3E606D4E7047F0270000C04647 -S11326E0FC260000810009686F6F6B2D6B65793FD4 -S11326F0043F3E60664E7047222800001C270000FD -S113270081000A686F6F6B2D706175736500043FFB -S11327103E60604E7047CE490000C046342700003A -S1132720000004656D6974000FB5564800F029F87F -S11327300FBDC046482700000000036B65790FB544 -S1132740514800F01EF80FBD5C270000000005652D -S11327506D69743F4D4800688746C0467027000085 -S11327600000046B65793F00494800688746C0460D -S1132770882700000000057061757365454800688E -S1132780874600688746C046B027000000000B73E8 -S1132790657269616C2D656D697400B500F028F887 -S11327A0002E40CFFAD03C48067040CF00BDC04652 -S11327B0DC27000000000A73657269616C2D6B658B -S11327C0790000B500F02DF8002E40CFFAD0324841 -S11327D0043F3E600678F6B200BDC04610280000F3 -S11327E000000C73657269616C2D656D69743F003E -S11327F000B5FFF7C3FF294808210170043F3E607C -S11328000026264880220178114000D0F64300BDFE -S1132810A028000000000B73657269616C2D6B6564 -S1132820793F00B5FFF7AAFF1C4808210170043F57 -S11328303E600026194820220178114000D0F6435A -S113284000BD0000803F000038800440300400F0E8 -S113285034800440000000040480044000020000AE -S1132860049004400890044003A0064002A00640DF -S113287006A0064005A006400AA0064000A00640A7 -S113288001A00640F82F0020F42F0020F02F002094 -S1132890EC2F0020E82F002007A0064004A00640EB -S11328A0C42800000000076365787065637400B590 -S11328B0386801B40130386000F00BF801BC0670D0 -S11328C040CF00BD3C2900000000066163636570D1 -S11328D0740000B502CF01390022FFF730FF300049 -S11328E040CF7F2809D0202819D2092816D00A28D9 -S11328F01FD00D281DD00828EFD1002AEDD000F0FC -S113290015F903082008002AE7D0885C013A8023DF -S11329100340E2D040230340F5D0DEE72020B2425A -S1132920DBD2043F3E600600FFF7FEFE013288540E -S1132930D3E7160000F0A8F800BDC04650290000F7 -S1132940400003746962043F3E602B4E7047C046EA -S1132950682900008100033E696E043F3E60274EF3 -S1132960704700000000C0469029000082000E63FA -S1132970757272656E742D736F7572636500043FB2 -S11329803E601F4E70470000000094F0FF1FC046D9 -S1132990AC290000000009736574736F7572636578 -S11329A0174802CF0660416040CF7047CC29000031 -S11329B0000006736F7572636500043F3E60104E3D -S11329C0043F7068386036687047C046042A0000C7 -S11329D000000571756572790FB508480021016022 -S11329E0FFF7B1FF043F3E60043F3E60C826FFF797 -S11329F070FFFFF7D5FF0FBD94F0FF1FE42F0020F9 -S1132A00DC2F0020542A0000000007636F6D706102 -S1132A1072650FB5310040CF01CF884202D040CF5C -S1132A2000260FBD02CF002810D001380A5C335CA9 -S1132A30412A02D35B2A00D22032412B02D35B2BE2 -S1132A4000D220339A42EED000260FBD0026F64372 -S1132A500FBDC046682A000000000263720000B582 -S1132A6000F064F8010A00BD7C2A00000000026244 -S1132A706C00043F3E6020267047C046902A000048 -S1132A800000057370616365043F3E6020264BE6D9 -S1132A90B02A00000000067370616365730000B51E -S1132AA0002E03DDFFF7F0FF013EFBD140CF00BD58 -S1132AB0C02A00005000065B636861725D0005E097 -S1132AC0D82A0000000004636861720000B501F0B8 -S1132AD01BFC40CF367800BDE82A000050040128D2 -S1132AE0043F3E60292606E0042B00005004015CEC -S1132AF0043F3E60002600B501F010FC043740CFCF -S1132B0000BDC0464C2B00001000022E22009F483E -S1132B1000B5043F3E60060000F0DEF9043F3E606D -S1132B20222601F0FBFB00F02AFD00BD0AB4043F9D -S1132B303E607646013E33780121013319405B182B -S1132B407146C9188E460ABC3CE0C046742B00008E -S1132B501000026322008E48DAE7043F3E607646A6 -S1132B60013E33780121013319405B187146C918BD -S1132B708E467047A02B0000100002732200854887 -S1132B80C6E7043F3E607646043F3E60013E367829 -S1132B900121731C19405B187146C9188E46704791 -S1132BA0B82B0000000005636F756E740136043F96 -S1132BB03E60013E36787047E02B0000000005635C -S1132BC07479706501B53078002807D00136043F68 -S1132BD03E603678FFF7A8FD0138F7D140CF01BD3C -S1132BE0102C00000000047479706500310040CF9F -S1132BF0300040CF00B5002908D00022043F3E60D9 -S1132C00865CFFF791FD01329142F7D100BDC046C9 -S1132C104C2C00000000046865782E0007B53100D4 -S1132C2040CF20200F220438043F3E600E00C640EF -S1132C301640092E01D9373600E03036FFF774FD0F -S1132C400028F0D1FFF720FF07BDC0465C2C000030 -S1132C50000003682E731FB54F4C0EE06C2C00006F -S1132C60000003752E731FB54C4C06E0EC2C0000DD -S1132C700000022E73001FB5494C4A49C91B89083C -S1132C80494A106803B40A201060FFF74FFF085345 -S1132C907461636B3A205B00043F3E600E0001F0F8 -S1132CA01BFDFFF743FF025D200003BC3E4A10609A -S1132CB000290AD03D4A106806B4043F3E6006006D -S1132CC0A04706BC043A0139F5D1FFF72FFF0620CF -S1132CD0544F533A2000043F3E603600A047FFF7AC -S1132CE025FF04202A3E0A001FBDC046B02D000067 -S1132CF0000005776F72647300B5FFF717FF010AD0 -S1132D0000F07DFEFFF712FF09416464726573737E -S1132D103A20043F3E60FFF781FFFFF707FF064CB0 -S1132D20696E6B3A2000043F3E603668FFF776FF19 -S1132D30FFF7FCFE07466C6167733A20043F3E6070 -S1132D40B688FFF76BFFFFF7F1FE06436F64653A41 -S1132D502000B01D00F08EFE043F3E600600FFF729 -S1132D605DFFFFF7E3FE064E616D653A2000043F08 -S1132D703E600636FFF726FFFFF7D8FE010A00F093 -S1132D8056FE300040CFBDD040CF00BD2C2B0000FC -S1132D905A2B0000822B00001D2C0000C7460000A7 -S1132DA0D94600005CF2FF1FFC2F002058F2FF1FE1 -S1132DB0CC2E000000001072656769737465726C34 -S1132DC069746572616C2C003FB5350040CF2900F1 -S1132DD0C90029432D029E480543FF2300223000E9 -S1132DE0D040984301D00132F9E73000D040184078 -S1132DF02843043F3E60060000F081FB95480543EC -S1132E0018009040864310D000243000E0409843DE -S1132E1001D00134F9E7101B043F3E600E0080012D -S1132E20064300F06CFB2200DFE7002A06D0043FD3 -S1132E303E600E009201164300F061FB40CF3FBD9F -S1132E401FB5310040CF844C0C43C9000C434901E9 -S1132E50300040CF020EFF231A407D4B0B43134337 -S1132E60043F3E601E0000F04AFB043F3E60260023 -S1132E7000F045FB020CFF231A40784B0B4313432D -S1132E80043F3E601E0000F03AFB043F3E60260013 -S1132E9000F035FB020AFF231A40704B0B43134327 -S1132EA0043F3E601E0000F02AFB043F3E60260003 -S1132EB000F025FB0200FF231A40684B0B43134329 -S1132EC0043F3E601E0000F01AFB1FBD3C2F0000B3 -S1132ED000000563616C6C2C0FB5330000F06EFECE -S1132EE0300040CF1B1A043B5D49194000290ED025 -S1132EF05C4A91420BD00136043F3E600026FFF746 -S1132F0063FF043F3E60584E00F0F9FA0FBD40CF16 -S1132F105B085648564919400843DB0A554919408D -S1132F20090408439B0A0121194089060843043F08 -S1132F303E60060000F013FB0FBDC046902F00005A -S1132F400000086C69746572616C2C0008B5043F5C -S1132F503E60494E00F0D3FA043F3E60474E00F015 -S1132F60CEFA474B3000184098420BD1F643043F49 -S1132F703E600626FFF728FF043F3E60414E00F006 -S1132F80BEFA08BD043F3E600626FFF71DFF08BDDC -S1132F90B82F00000000066372656174650000B517 -S1132FA000F03DF82F200002D7308047043F3E60F8 -S1132FB07646013E00BDC046103000002000056486 -S1132FC06F65733E2F200002D7308047043F3E6078 -S1132FD07646013E7047043F3E607646013E2A4AEB -S1132FE013682A4909680220084000D102310231DD -S1132FF011600136043F3E600026FFF721FF043FC5 -S11330003E60194E00F07BFA136000F0ECF900BD4D -S1133010943000000000073C6275696C647300B56D -S113302000F07AFB00F0CAFD0220064040CF04D134 -S1133030043F3E60362600F062FA043F3E60144EC0 -S113304000F05DFA043F3E60102600F0CBFA00BDAC -S1133050002000000010000000020000003000000A -S11330600100C0FF0000C0FF8047000000F800F02E -S1133070FF070000FF030000043F00003E60000063 -S11330800000FFFFF643000000F0FF1F14F0FF1FD5 -S113309000B50000A03000005000035B275D03E092 -S11330A0B83000000000012700B501F02DF900F050 -S11330B020FD300040CF00BDF83000001000087043 -S11330C06F7374706F6E650000B5FFF7EDFF10212C -S11330D001400DD12021014005D0FFF737FF043F07 -S11330E03E60E64E04E0FFF731FF043F3E60E44EED -S11330F0FFF7F2FE00BDC04644310000000007693E -S11331006E6C696E652C00B5DE49DF4ADF4B308892 -S1133110884208D0904208D0984206D0043F3E60CE -S1133120060000F0ECF90236F1E740CF00BD0EB422 -S1133130D54AD64B01880230914201D09942F9D147 -S11331400EBC7047583100000000047265742C00F6 -S1133150043F3E60CC4ED2E168310000300004658B -S113316078697400F4E7C0468031000030000772CB -S1133170656375727365043F3E60C54E3668ABE6A1 -S1133180983100008100057374617465043F3E60EA -S1133190C04E704700000000AC3100000000015D2B -S11331A0BC480021C94301607047C046BC310000DF -S11331B01000015BB748002101607047E431000052 -S11331C00008013A00B5B448076000F0A5FA043FCE -S11331D03E60AC4E00F093F9AE480021C943016053 -S11331E000BDC046443200003010013B00B5AA487F -S11331F00168B9420ED0FFF799FC1520537461633E -S11332006B206E6F742062616C616E6365642E0A5C -S113321001F06CFB043F3E609B4E9E480068411CDD -S113322007D0062804D8043F3E609C4E00F00CF9F9 -S1133230964E00F064F900F0D6F89648002101603B -S113324000BDC0465832000000000765786563750C -S11332507465300040CF8746703200001010096951 -S11332606D6D656469617465043F3E601026EBE032 -S113327088320000101006696E6C696E6500043FA8 -S11332803E602026E0E0C046A432000010100B632C -S11332906F6D70696C656F6E6C79043F3E603026AB -S11332A0D2E0C046C032000010100A302D666F6CA8 -S11332B06461626C6500043F3E604026C4E0C04621 -S11332C0DC32000010100A312D666F6C6461626C90 -S11332D06500043F3E604126B6E0C046F832000077 -S11332E010100A322D666F6C6461626C6500043FD5 -S11332F03E604226A8E0C0461433000010100A3392 -S11333002D666F6C6461626C6500043F3E60432609 -S11333109AE0C0463033000010100A342D666F6CFA -S11333206461626C6500043F3E6044268CE0C046E4 -S11333304C33000010100A352D666F6C6461626CAA -S11333406500043F3E6045267EE0C04668330000C9 -S113335010100A362D666F6C6461626C6500043F60 -S11333603E60462670E0C0468433000010100A37E1 -S11333702D666F6C6461626C6500043F3E60472695 -S113338062E0C046B4330000000008636F6E7374DB -S1133390616E740000B500F0BFF9FFF7D7FD043F7C -S11333A03E603A4E00F0ABF8FFF785FF00F01BF8E3 -S11333B000BDC046D833000000000932636F6E734D -S11333C074616E7400B500F0A7F939683E600E466A -S11333D0FFF7BCFDE1E7C046383400000000067387 -S11333E06D756467650000B52D4801682C4A9142EB -S11333F01CD202390A882B4B9A4204D1043F3E6006 -S1133400294E00F07CF800F069F828480068043F71 -S11334103E600600264909680431214A1368116098 -S113342000F06DF81360FEF7A5FE00BD00F056F83D -S1133430043F3E60002608E0B43400000000087336 -S11334406574666C6167730000B515480168144AB9 -S1133450914205D2154801683143016040CF00BD57 -S1133460320040CF12480068043001880D4B994265 -S113347001D1110000E01143018000BD06310000BC -S1133480D82E000000B5000000BD00007047000009 -S113349014F0FF1FD82F002010F0FF1F2010000091 -S11334A000F0FF1FFFFF00000000000020F0FF1FDE -S11334B004F0FF1FD0340000410007616C69676E9F -S11334C065640120304036180220304036187047B9 -S11334D0F4340000000005616C69676E00B5834830 -S11334E001680220014004D0043F3E60002600F041 -S11334F006F800BD38350000000002682C000FB546 -S1133500B6B27B480168002902D0013100D00160C5 -S113351076480168754A914205D2043F3E600E0028 -S1133520FEF74BFE02E0320040CF0A80043F3E60CB -S1133530022600F057F80FBD543500000000012C9E -S113354000B5043F3E60FFF7DAFF360CFFF7D7FF04 -S113355000BDC046703500000000033E3C2C00B5A1 -S1133560043F3E60360CFFF7CAFFFFF7C8FF00BDFB -S1133570D8350000000007737472696E672C07B5B4 -S1133580FF21314040CF300040CF002905D1043F16 -S11335903E600026FFF7B3FF07BD043F3E60067898 -S11335A036020E43FFF7ABFF0130013902290AD37B -S11335B0043F3E604678360202781643FFF79FFFC9 -S11335C002300239F2E7002900D107BD043F3E6012 -S11335D00678FFF794FF07BD34360000000005614C -S11335E06C6C6F7441480168404A91420FD23200BA -S11335F040CF89183F4A914219D3FFF797FA0B46F7 -S11336006C6173682066756C6C0A01F06FF93200A6 -S113361040CF8918384A1268914208D3FFF786FAD6 -S11336200952616D2066756C6C0A01F05FF90160E6 -S11336307047C0465C36000000000D636F6D706912 -S11336406C65746F72616D3F043F3E6000262748CD -S113365000682649884248D3F64370477C36000008 -S113366000000C636F6D70696C65746F72616D003E -S11336701E4800681D49884211D37047083700006E -S113368000000E636F6D70696C65746F666C6173B6 -S11336906800164800681549884200D270471748E8 -S11336A0174902680B680A600360104815490268EC -S11336B00B680A60036010480068834215D300B5A4 -S11336C0FFF734FA23205661726961626C657320D6 -S11336D0636F6C6C696465207769746820646963DE -S11336E074696F6E6172790A00BD704700F0FF1F44 -S11336F0D82F00200000020024F0FF1F04F0FF1F59 -S11337001CF0FF1F18F0FF1FF4370000000008280A -S1133710637265617465290000B500F0F5FD002E43 -S11337200ED1FFF703FA1520437265617465206EAC -S113373065656473206E616D6520210A01F0D6F819 -S11337403868043F3E60043F386000F0A3F940CF7E -S1133750002E40CF11D03868043F3E60043F3860EB -S1133760FFF7E4F9095265646566696E6520FFF741 -S11337703DFAFFF7DBF9022E0A00FFF7AFFE00F077 -S11337801DFA8D4800688C4988421CD28B48002160 -S11337900160043F3E600626FFF724FFFDF7D8FCD6 -S11337A0FFF7EDFE864801680A68864B9A4207D106 -S11337B0814A13681160043F3E60FFF7C1FE136045 -S11337C0066040CF10E07E48043F3E600668FFF785 -S11337D0B7FE043F3E607C4EFFF791FE784831000F -S11337E040CF0160FFF7CBFE734801687748016062 -S11337F000BDC0460C3800000000087661726961A3 -S1133800626C6500043F3E60012613E0243800002A -S1133810000009327661726961626C65043F3E6042 -S1133820022607E0FC3800000000096E7661726928 -S113383061626C6500B5FFF76FFF5F4801685E4A1F -S1133840914233D20F200640B20061480168891AC0 -S1133850604A91420BD2FFF769F90F4E6F742065ED -S11338606E6F7567682052414D0A01F03FF80160A0 -S1133870043F3E600E00FFF769FB043F3E60564E76 -S1133880FFF73DFE300040CF0200002805D00E6057 -S11338900431FFF755FE0138F9D1043F3E6080261C -S11338A01643FFF7D1FDFFF79EFD00BD00F086F93A -S11338B00220064040CF04D1043F3E603626FFF785 -S11338C01EFE043F3E60454EFFF749FE043F3E6046 -S11338D0434EFFF744FE043F3E603F4EFFF70FFEAA -S11338E0300040CF002803D0FFF72AFE0138FBD177 -S11338F0FFF7E1FCFFF777FD00BDC046E8390000A3 -S11339000000076275666665723A00B5FFF704FF4A -S1133910012030403618022030403618264801680D -S1133920254A914226D22A480168891B294A914294 -S11339300BD2FFF7FBF80F4E6F7420656E6F75673F -S1133940682052414D0A00F0D1FF0160043F3E60FF -S11339500E00FFF7FBFA043F3E601F4EFFF7CFFD5A -S1133960FFF7EEFD043F3E601E4EFFF76DFDFFF7CF -S11339703AFD00BD00F022F90220064040CF04D1F8 -S1133980043F3E603626FFF7BAFD043F3E60134E07 -S1133990FFF7E5FD043F3E60114EFFF7E0FD043FF5 -S11339A03E600D4EFFF7ABFDFFF71CFEFFF783FCF7 -S11339B0FFF719FD00BD000000F0FF1F20F0FF1FFE -S11339C004F0FF1FFFFFFFFFFFFF000014F0FF1FC5 -S11339D024F0FF1F1CF4FF1F704700003E60043FEB -S11339E002367E4640010000183A000000000F64D1 -S11339F0696374696F6E6172797374617274424839 -S1133A0000684149043F3E60884201D23F4E7047FE -S1133A103F4E36687047C046543A000000000E64BA -S1133A20696374696F6E6172796E6578740003B549 -S1133A3031683848814207D08879FF2804D00E00C5 -S1133A40043F3E60002603BD043F3E600026F6436B -S1133A5003BDC046883A000000000A736B697073A6 -S1133A607472696E67003178013101220A40891845 -S1133A707618704706B40178013101220A4089188A -S1133A80401806BC7047C0461C3B0000000004669A -S1133A90696E64003FB500220023350040CF340036 -S1133AA040CFFFF7ACFF1C48B188884217D0043FD1 -S1133AB03E600636FFF77AF8043F3E602600043F76 -S1133AC03E602E00FEF7A5FF002E40CF07D0B01DAC -S1133AD0FFF7D0FF02000B000B48824204D2FFF72D -S1133AE0A6FF300040CFDED01600043F3E601E002B -S1133AF03FBD00B531003868FFF7CCFF3A68002AB3 -S1133B0001D100F05FFE00BD00F0FF1F10040000B3 -S1133B1004F0FF1FFFFFFFFFFFFF0000783B0000E2 -S1133B20000006636A756D702C00320040CF3100CE -S1133B3040CF8B1B043BEA49194000290DD0E948CA -S1133B4081420AD0FEF7F2FF0D4A756D7020746F42 -S1133B506F206661720A00F0C9FE5B10FF210B4002 -S1133B60134330001E0000B5DF4A13681060FFF7EE -S1133B70C6FC136000BDC046B03B00000000056AEF -S1133B80756D702C310040CF300040CF0B1A043BD0 -S1133B90D6491940002902D0D54A9142D2D15B10AE -S1133BA0D44A1340D44A1343043F3E601E00DAE76C -S1133BB0C83B00000000046865726500043F3E6075 -S1133BC0C94E36687047C046043D000000000D66CB -S1133BD06C6173687661722D68657265043F3E603E -S1133BE0C64E3668704700B5043F3E60C44EFFF7CA -S1133BF086FC043F3E60C34EFFF781FC00BDDDE759 -S1133C0000B500F037F839683E600E46043F3E6068 -S1133C10BD4EFFF78AFF00BD00B500F02BF83968F0 -S1133C203E600E46043F3E60B84EFFF77EFF00BD87 -S1133C3000B5FFF7D8FF00F01DF839683E600E4666 -S1133C40043F3E60B24EFFF770FF00BD00B500F0C8 -S1133C5011F839683E600E46FFF794FF00BD00B5C9 -S1133C60FFF7C1FFFFF7AAFF043F3E600226FFF7FC -S1133C70B9FC00BD00B5FFF7A1FF043F3E6002267A -S1133C80FFF7B0FC00BD00B5FFF798FFFFF77AFF20 -S1133C9000BD00B5FFF792FF043F3E609C4EFFF766 -S1133CA044FF00BD00B5FFF789FF043F3E60964E18 -S1133CB0FFF73BFF00BD00B5FCF72EFD016942692B -S1133CC0FCF70BFCFCF742FCFCF745FC0369282BD2 -S1133CD002D14369FCF78CFC282908D1043F3E60DB -S1133CE08C4E002A00D00136FFF709FC06E0043FA1 -S1133CF03E60894E09020E43FFF701FCFCF730FCDD -S1133D0000BDC046743D000030060269660000B57F -S1133D10FFF7A5FF043F3E607D4E043F3E60022650 -S1133D2000BD00B5FCF761FDFDF777FD816A002950 -S1133D3010D002B4FCF702FCFFF740FF043F3E60E2 -S1133D400226FFF74FFC043F3E6040BC043F3E6048 -S1133D50022600BDFFF7AFFFFFF730FF043F3E60D0 -S1133D600226FFF73FFC043F3E60694E043F3E607D -S1133D70022600BDA83D0000300004656C73650098 -S1133D8000B5022E26D140CFFFF774FFFDF7E0F90E -S1133D90FFF714FF39683E600E46FFF7C6FE043F86 -S1133DA03E60052600BDC046F43D000030000474AA -S1133DB068656E00052E01D140CF64E7022E09D15B -S1133DC040CF00B5FFF7FAFE39683E600E46FFF7B4 -S1133DD0ACFE00BDFEF7AAFE1753747275637475CA -S1133DE072657320646F6E2774206D617463680A52 -S1133DF000F07CFD243E00003000067265706561B1 -S1133E007400042EE6D140CF00B5FDF784F9FFF726 -S1133E101DFFFFF7D3FE39683E600E46FFF785FEAF -S1133E2000BDC046503E00003006057768696C65E9 -S1133E30012ECFD140CF00B5FFF769FF023600BD98 -S1133E40012EC7D140CF00B5FFF76BFF023600BD8E -S1133E50B03E0000300605756E74696C012EB9D150 -S1133E6040CFE5E67047012EB4D140CF00B5FDF751 -S1133E70D4FC816A00290DD002B4FCF75FFBFFF784 -S1133E80F9FE39683E600E46043F3E6040BCFFF7D1 -S1133E904CFE00BDFFF70FFFFFF7ECFE39683E60F4 -S1133EA00E46043F3E601A4EFFF73FFE00BDC0467B -S1133EB0C43E0000300005616761696E012E89D13E -S1133EC040CFC3E61C3F0000300005626567696EA1 -S1133ED000B5FFF794FE043F3E60012600BD0000DC -S1133EE001FFFFFF00FFFFFF00F0FF1F01F8FFFFCE -S1133EF000F8FFFFFF07000000E0000024F0FF1FB0 -S1133F00002E000040CF000000D1000000D70000C8 -S1133F1000D000000022000000280000343F000010 -S1133F202002016B043F3E60029E7047043F3E60E6 -S1133F308C4E0AE0603F00002002016A043F3E60AC -S1133F40009E7047043F3E60874E00B5FCF7BBFA05 -S1133F50FCF7BEFB03611B021E43FFF7D0FA00BD52 -S1133F608C3F000020020169043F3E602600704738 -S1133F7000B5043F3E607D4EFCF7A5FAFCF7A8FBB4 -S1133F8003611E43FFF7BBFA00BDC046CC3F0000EF -S1133F903000056C6561766500B5754801683B00C5 -S1133FA0043F1A68043B1A6008338B42F9D103B406 -S1133FB0FFF760FE03BC330040CF04390B6001609F -S1133FC004390A6801320A6000BDC046E03F0000BF -S1133FD0200006756E6C6F6F700030BC7047C04671 -S1133FE0184000003000052B6C6F6F70032E00D05A -S1133FF0F0E640CF00B5043F3E605E4EFFF783F825 -S1134000FFF70AFE1AE0802000060019A419401BDD -S1134010801940CF7047C0465C4000003000046CFB -S11340206F6F7000032E00D0D4E640CF00B5043F7C -S11340303E60514EFFF767F8FFF7E2FD00F04AF9E2 -S11340404B48310040CF0160043F3E604B4EFFF7C8 -S11340505AF800BD0134AC427047C046A440000089 -S1134060300202646F0000B5043F3E60444EFFF727 -S11340704AF83F480168043F3E600E00043F3E603A -S113408000260760FFF7BBFD043F3E60032600BD2A -S113409000B500F02EF8ECE730B4340040CF350022 -S11340A040CF7047944100003002033F646F00B575 -S11340B0043F3E60324EFFF726F8043F3E60314E27 -S11340C0FFF71DFA2A480168043F3E600E00FFF71F -S11340D0D1FD0136043F3E60012625480760FFF705 -S11340E08EFD043F3E60032600BD00B500F001F8DC -S11340F0E3E700B5FCF779FBFCF717FBFCF726FABE -S1134100043F3E60204EFFF7FAF90169282907D0E1 -S1134110043F3E601D4EC9000E43FFF7F0F907E06F -S1134120043F3E604669043F3E600426FEF74CFEB1 -S11341308169282907D0043F3E60154EC9000E430B -S1134140FFF7DDF907E0043F3E60C669043F3E60C7 -S11341500526FEF739FEFCF7C0F9FCF7BEF9FCF7BB -S1134160FFF900BD02980000009800002000000044 -S11341700CF0FF1F0640000054400000DA3F00002E -S113418098400000AC42000030B40000040000007D -S113419005000000B4410000300004636173650051 -S11341A000B5FCF722FB043F3E600026043F3E605E -S11341B0082600BDCC4100003000033F6F666A480A -S11341C00AE0013EB64140CF7047C0467442000049 -S11341D03002026F66006548082E00D0FAE540CF31 -S11341E000B5043F3E600600FEF78DFFFFF742FD79 -S11341F039683E600E460136043F3E600926043F9E -S11342003E605B4EFFF77BF900BD082E00D0E1E570 -S113421040CF00B5FCF789FAFCF798F9043F3E60FB -S1134220544EFCF7ACFA0E430269282A15D14269B0 -S1134230FF2A07D840CF043F3E604F4E1643090281 -S11342400E430CE0043F3E601600FCF741FA1A00EE -S1134250043F3E601E00FEF7B7FDD2001643FFF791 -S11342604EF9FCF73AF9FCF77BF9BFE7300040CF91 -S1134270B0427047AC420000300005656E646F6662 -S1134280092E00D0A6E540CF00B540B440CFFFF7DB -S1134290F1FC39683E600E46FFF704FD043F3E60C2 -S11342A040BC043F3E60082600BDC046FC420000FE -S11342B0300007656E6463617365082E00D089E57C -S11342C040CF00B5043F3E60294EFFF718F900F0D7 -S11342D001F800BD00B5300040CF00280DD003B474 -S11342E001213140002903D0013EFFF7D2FC01E057 -S11342F0FFF7C9FC03BC0138EFE700BD1043000021 -S1134300000005746F6B656E043F3E60202605E077 -S113431080430000000005706172736510B5FEF7FC -S11343204CFB310040CF300040CF144A126884184F -S1134330202E07D191420FD0835CB34202D10132C7 -S11343408418F7E7914207D0835C0132B342F9D174 -S11343508618361B013E01E08618361B043F3C607C -S11343600648026010BD0000C24100006C4200001B -S113437040CF00008042000000280000E42F00200D -S1134380C04300000000056469676974D44B1B686E -S1134390303E0BD30A2E0BD3073E0A2E06D3242E0F -S11343A006D3203E0A2E01D3242E01D300267047C3 -S11343B09E42FBD2043F3E600026F6437047C0464F -S11343C0CC4400000000066E756D626572003FB556 -S11343D0310040CF701E0126012204B4C04B1B687B -S11343E00024002500293CD00130013902782D2A0F -S11343F004D101B00022D24304B4F3E7232A01D14B -S11344000A23EFE7242A01D11023EBE7252A01D15F -S11344100223E7E72E2A01D10226E3E72C2A36D02D -S1134420043F3E601600FFF7B3FF002E40CF2BD0B1 -S1134430043F3E602600043F3E602E00043F3E6081 -S11344401E00043F3E6000260FB4FCF75EFB0FBC69 -S1134450350040CF340040CF0022A419554140CF4D -S1134460C0E704BC002A04D50022E443ED43013430 -S1134470554133002600012B02D0043F3E602E003C -S1134480043F3E601E003FBD01B000263FBD250035 -S1134490002402260029E4D0425C01392E2AF9D0F6 -S11344A0043F3E601600FFF773FF002E40CFEBD0B1 -S11344B0043F3C60043F3E601E000FB4FCF7D9FB90 -S11344C00FBC340040CF40CFE4E7C046F0440000C6 -S11344D00000062E6469676974000A2E01D2303622 -S11344E07047242E01D23736704723267047C046C2 -S11344F028450000000004686F6C6400330040CF5E -S1134500784801783F290DD2013101704018012902 -S113451007D00138027801300270013801390129CD -S1134520F7D103707047C046484500000000056895 -S11345306F6C643C330040CF6A4801783F2902D253 -S1134540013101704354704760450000000004735A -S113455069676E00002E01D440CF70472D26CDE749 -S113456074450000000002233E005E4806780130D6 -S1134570386070478C45000000000366235310B573 -S1134580202400F008F8013CFBD110BDB045000028 -S113459000000266230000B5043F3E60504E3668BA -S11345A0FCF785FAFFF799FFFFF7C4FF00BDC0468B -S11345B0CC45000000000223530000B500F00AF8C7 -S11345C0002EFBD138680028F8D100BDF845000062 -S11345D00000012300B5043F3E60414E3668043FAD -S11345E03E600026FCF765FBFCF73AF940CFFFF785 -S11345F074FFFFF783FF00BD0C4600000000023C7F -S113460023003848002101707047C046204600004E -S1134610000002662E00043F3E60202605E0C046EE -S113462070460000000003662E6E00B510B434001E -S113463040CFFCF75BFDFCF7F9F9043F3E60002630 -S1134640FFF7DFFFFFF7B9FF40CF2C26FFF772FF1C -S1134650002C03D0FFF79FFF013CFBD110BC40CFDF -S1134660FFF778FF043F3E60043F3E601EE0C04613 -S11346708846000000000375642E00B5FFF7C1FFF3 -S1134680FFF79BFF12E0C046BC4600000000026436 -S11346902E0000B5FCF72AFDFCF7C8F9FFF7B1FFBF -S11346A0FFF78BFFFCF737FDFFF754FFFFF75DFFC4 -S11346B0FEF79CFAFEF7E8F900BDC046D0460000BC -S11346C0000002752E00043F3E600026D5E7C04678 -S11346D0E84600000000012E043F3E60F617D8E7CC -S11346E0FC2F002054F0FF1F304700000000086535 -S11346F076616C756174650000B5FEF75EF901CFF3 -S113470001B440B440CF8A48016802B4002101607A -S1134710FEF746F900F014F8854802BC0160043F36 -S11347203E6040BC01BC043F3860FEF739F900BD6F -S1134730C4480000000009696E7465727072657483 -S113474030B57C4887420BD9FEF7F0F910537461F9 -S1134750636B20756E646572666C6F770A00C5E0E2 -S1134760754887420AD2FEF7E1F90F537461636B0F -S1134770206F766572666C6F770AB7E06F4C2568B8 -S1134780002D01D13D002560FFF7BEFD002E02D1B2 -S1134790043740CF30BD3868043F3E60043F386082 -S11347A0FFF778F9310040CF320040CF002A15D10D -S11347B038683100FCF7EFFFFFF709FE320040CF05 -S11347C0002ABED1FEF716FAFEF7B0F90C206E6F80 -S11347D07420666F756E642E0A0087E0584B1B6860 -S11347E0002B29D100252560564B0B4009D00437F6 -S11347F040CF55480760FEF78FFF51480121016003 -S11348009FE730230B40302B0ED1FEF7EFF9FEF774 -S11348108DF91220697320636F6D70696C652D6F5B -S11348206E6C792E0A0061E0043740CF043F3E608D -S11348301600FEF70EFD84E7043740CF43480840D6 -S113484001D1FCF7A8FF8020084008D1EB1B9B088E -S11348504020084009D00F200840834205D3043F7C -S11348603E601600FEF7F5FC6BE7394808400CD0B3 -S1134870FBF7E1FD1000FEF75AFC421C3548904757 -S113488038002060FBF7E6FD5BE7FBF7D4FDFBF7A0 -S113489055FE002525603048084001D1FBF7A5FFEF -S11348A0043F3E60160010220A4002D0FEF7D1FCFD -S11348B047E720220A4002D0FEF725FC41E7FEF735 -S11348C00BFB3EE7E0480000810009686F6F6B2D29 -S11348D071756974043F3E60204E70471C490000A6 -S11348E07049000000000471756974001C48854615 -S11348F0104FFDF737FC1B480A21016010480021C6 -S113490001600E480160FBF768FE09480160164823 -S1134910016016494160114800688746FEF75CF85B -S1134920FFF70EFFFEF702F905206F6B2E0AF5E77D -S1134930E42F00205CF2FF1F5CF1FF1F08F0FF1F53 -S1134940D82F00200008000010F0FF1F0004000012 -S11349500002000028F0FF1F00100000D42F0020E8 -S11349605CF3FF1FFC2F0020DC2F002094F0FF1FBE -S11349708C49000000000565696E743F043F3E6089 -S1134980EFF31086013EB6417047C0469C490000D3 -S113499020000465696E740062B67047AC4900007B -S11349A020000464696E740072B67047C449000044 -S11349B02000046970737200043F3E60EFF30586C3 -S11349C07047C046D04900000000036E6F70704706 -S11349D0144A0000000009756E68616E646C6564B9 -S11349E000B5FEF7A3F814556E68616E646C6564D7 -S11349F020496E746572727570742000043F3E60C5 -S1134A00EFF30586FEF70AF9FEF790F802210A0093 -S1134A1000BDC046284A0000000005726573657435 -S1134A2099489A490160C0464C4A000081000B69CC -S1134A3072712D7379737469636B043F3E60944E95 -S1134A407047E0490000924800688746704A0000B9 -S1134A508100096972712D6661756C74043F3E6052 -S1134A608C4E7047E04900008A4800688746C0467B -S1134A70984A000081000E6972712D636F6C6C6539 -S1134A806374696F6E00043F3E60834E7047E04973 -S1134A900000814800688746B84A00008100076921 -S1134AA072712D616463043F3E607C4E7047E0493F -S1134AB000007A4800688746D84A000081000769E8 -S1134AC072712D636D70043F3E60754E7047E0490E -S1134AD00000734800688746F84A000081000769AF -S1134AE072712D646163043F3E606E4E7047E0490D -S1134AF000006C48006887461C4B0000810009696F -S1134B0072712D706F727461043F3E60664E70471F -S1134B10E0490000644800688746C046404B0000F6 -S1134B208100096972712D706F727464043F3E6074 -S1134B305E4E7047E04900005C4800688746C04606 -S1134B4000500000FFFF182D2D2D20466C61736866 -S1134B502044696374696F6E617279202D2D2D0074 -S1134B60002153480160FDF76BFD52488546524FC2 -S1134B702A26524852490160524853490160043F71 -S1134B803E60514E514DB188514B994224D0514B06 -S1134B900B400AD0B01DFEF76DFFFEF7C8FA03887C -S1134BA0408800040343ED1A16E080230B4013D021 -S1134BB00F23194089006D1AB01DFEF75BFFFEF745 -S1134BC0B6FA043F3E600600043F3E602E00043FF8 -S1134BD03E600E00FCF7AEFEFEF729FF300040CF2A -S1134BE0D1D03D48066040CF3C4805603C483D4933 -S1134BF0374A884204D0023803889342F9D00230FD -S1134C0039490860FDF7AEFAFDF790FF514D656331 -S1134C10726973702D5374656C6C61726973205280 -S1134C204120302E38206578706572696D656E7428 -S1134C30616C2077697468204D3020636F72652041 -S1134C40666F72204B4C32355A31323820627920EB -S1134C504D61747468696173204B6F63680A2348FB -S1134C6000210160043F3E60214E043F3E60042663 -S1134C70FEF710FF40CF002E02D0FEF7EAFA4AE614 -S1134C8040CF33E6696E69740CED00E00400FA0568 -S1134C90D02F0020CC2F0020C82F0020C42F0020AC -S1134CA0C02F0020BC2F0020B82F0020B42F0020DC -S1134CB0008104405CF3FF1F5CF2FF1F00F0FF1F44 -S1134CC01CF4FF1F04F0FF1F10040000003000203C -S1134CD0FFFF0000000100001CF0FF1F24F0FF1F75 -S1134CE0000002000050000018F0FF1F08F0FF1F32 -S1074CF0844C0000EC +S11304802DFF08BC013303BD03B5013B043F3E60AF +S11304901E0008B400F00CFF08BC320040CF03BDBE +S11304A003B57A4801681E2901D000F034F803BD71 +S11304B0816901620169816181680161016881600A +S11304C0C16941624169C161C16841614168C160FA +S11304D01E21016070470FB56B4801681E2903D0C7 +S11304E0FFF7DEFFFFF7E4FF0FBD02B5816801608F +S11304F0C168416000E002B5016981604169C16081 +S113050081690161C1694161016A8161416AC161B5 +S11305101E21016202BD08B501681E22026008297D +S113052001D20B0004E028290DD1436800F05DF8E6 +S1130530043F3E60564E02F0FEFF043F3E60554EBF +S11305401E4302F0F8FF08BD00B500F009F800F002 +S11305500CF800F00FF800F012F800F015F800BDE8 +S11305600FB54A48FFF7D7FF0FBD0FB54A48FFF74D +S1130570D2FF0FBD0FB54948FFF7CDFF0FBD0FB533 +S11305804748FFF7C8FF0FBD0FB53F480168062273 +S113059002601E2905D1043F3E60424E02F0CBFFAB +S11305A014E0282909D14368043F3E601E00043F3B +S11305B03E60062602F024FC08E0062906D0043F2B +S11305C03E60394EC9000E4302F0B5FF00F001F859 +S11305D00FBD2D481E210162816101618160C162EC +S11305E00621016000218162704707B5043F3E6027 +S11305F01E0000F05BF8043F3E601E0002F000FCA9 +S113060007BD07B5C16A282904D1016B994201D1FC +S1130610002307BD0168002918D08168002915D07E +S11306200169002912D0816900290FD0016A0029CB +S11306300CD00363043F3E601E00043F3E6000266E +S113064002F0DEFB2821C162002307BD043F3E60A7 +S11306501E0000F02BF8043F3E601E0002F0D0FBA9 +S113066007BD06B51B18196828290CD15A68043F20 +S11306703E601600190000F019F80B60043F3E605C +S11306801E0002F0BDFB06BD28F0FF1F48F0FF1F4F +S1130690043F00003860000040F0FF1F38F0FF1FE7 +S11306A030F0FF1F40CF00000646000037B5354844 +S11306B00168826803698469056A062000F00DF800 +S11306C0032000F00AF8022000F007F8012000F0EF +S11306D004F800231E21C16237BD814209D0824241 +S11306E007D0834205D0844203D0854201D0030061 +S11306F037BD7047043F3E60234E00B581581E2924 +S113070005D1FFF7D3FF8350012199400E4300BD6B +S113071000B501681E2904D10022FFF7EBFF02F0A7 +S11307200AFF00BD00B581681E2907D10822FFF722 +S1130730E1FF0022FFF7E1FF02F0FDFE00BD00B57E +S113074001691E290AD11022FFF7D4FF0822FFF7FE +S1130750D4FF0022FFF7D1FF02F0EDFE00BD00B58B +S113076081691E290DD11822FFF7C4FF1022FFF75B +S1130770C4FF0822FFF7C1FF0022FFF7BEFF02F00B +S1130780DAFE00BD28F0FF1F00CF000000B50168AD +S1130790282903D14368FFF728FF190000BD00B5DD +S11307A08168282903D1C368FFF71FFF190000BD22 +S11307B03EB5826803698469056A9A4203D0A242FD +S11307C001D0AA420AD1072A08D8043F3E60D600C5 +S11307D0FFF76CFF1E43836002F0ADFE3EBD3EB5E5 +S11307E00168826803698469056A914206D0994266 +S11307F004D0A14202D0A94200D03EBD043F3E60D5 +S1130800CE00FFF753FF1E43036002F094FE3EBD8B +S113081000B5FFF76AFEFFF75EFEFFF747FF0360D0 +S113082000BD01B506480368013307D00023DB434C +S11308300360043F3E60034E02F07DFE01BD0000F4 +S1130840D82F002000B500006C08000042020432DA +S1130850647570003868043F3E60043F3860704738 +S113086000B500F04FFC00F04DFC00BD8C0800000A +S11308706202053264726F70043740CF704700B56E +S113088000F0F0FB00F0EEFB00BDC046AC08000039 +S1130890440005327377617007CF043F3860043F2A +S11308A03E60043F3A600E007047C046C008000036 +S11308B0620004326E69700007CF043F38607047ED +S11308C0DC080000440005326F766572B868043FA6 +S11308D03E60043F3860FE687047C046000900006F +S11308E0440005327475636B07CF043F3860043FDE +S11308F03E60043F3A60043F3960043F386070470B +S11309002409000046000432726F74003868B96824 +S11309103A69B86039613A6079687E60FE68F96066 +S11309207047C04648090000460005322D726F74B6 +S11309303868B9683A6938613960BA60F968FE6044 +S11309407E6879607047C046700900002002033257 +S11309503E7201CF01B440B440CF704700B5FFF7F9 +S113096060FF00F0A3FB00F045FC00F043FC00BD79 +S11309709C09000020020332723E043F3E6040BCEA +S113098001BC043F3860704700B5FFF74AFF00F030 +S11309904CFC00F04AFC00F089FB00BDCC090000CF +S11309A0200203327240043F3E60019E043F3E60D9 +S11309B0009E704700B5FFF734FF043F3E600C4EC5 +S11309C003F0D3FA03F0CEFA00BDC046F8090000E4 +S11309D0200206327264726F700002B0704700B574 +S11309E0FFF71FFF043F3E60024E02F0A4FD00BD6E +S11309F00198000002B00000100A000042000364E5 +S1130A00322F3868F1077610400808433860704781 +S1130A10240A000062000364322A38680018764110 +S1130A2038607047400A0000420004647368720032 +S1130A303868F10776084008084338607047C046B4 +S1130A40580A00006200046473686C003868001877 +S1130A50764138607047C0466C0A00004200046466 +S1130A6061627300002E08D47047C0468C0A0000EF +S1130A70420007646E656761746538680021C0438D +S1130A80F64301304E4138607047C046A40A000066 +S1130A90640002642D0007CF121AB1410E00043F16 +S1130AA03A607047BC0A0000640002642B0007CF60 +S1130AB012184E41043F3A607047C046DC0A0000F9 +S1130AC0610203733E64043F3E60F617704700B54D +S1130AD000F0B6FA00F061FD00BDC046080B00004E +S1130AE0420003756D2A3868030073433B60010CB0 +S1130AF0320C0B005343B6B280B24E435043361807 +S1130B00360CF6187047C046380B00004200026DE0 +S1130B102A003868C11705D040423860F01704D065 +S1130B207642E0E7F017DED0764200B5FFF7DBFF50 +S1130B30FFF7A3FF00BDC046780B00004400037517 +S1130B40642A07CF564341437618010C130C5943CA +S1130B507618010C80B292B25143434350430022B1 +S1130B60C91852411204B6180A04090C80184E41DF +S1130B70043F38607047C0460C0C00004400047504 +S1130B80646D2A0010B50024043F3E607E68043F73 +S1130B903E603E69FFF7A7FF310040CF300040CFF1 +S1130BA0043F3E603E68043F3E60FE6803B4FFF7C6 +S1130BB09AFF03BC330040CF320040CF043F3E6075 +S1130BC03E68043F3E603E690FB4FFF78CFF0FBCE4 +S1130BD09219634140CF89196241634140CF043F78 +S1130BE03E607E68043F3E60FE680FB4FFF77BFF03 +S1130BF00FBC9219634140CF89196241634140CFD0 +S1130C001E003A607960B86010BDC046300C000028 +S1130C104300022A2F0000B540B440CFFFF779FF0C +S1130C20043F3E6040BC00F04FF8043700BDC046AE +S1130C30540C00004300052A2F6D6F6400B540B4C6 +S1130C4040CFFFF766FF043F3E6040BC00F03CF835 +S1130C5000BDC046780C0000430003752A2F00B580 +S1130C6040B440CFFFF73FFF043F3E6040BC00F07C +S1130C701CF8043700BDC0469C0C000043000675F8 +S1130C802A2F6D6F640000B540B440CFFFF72BFFEF +S1130C90043F3E6040BC00F008F800BDBC0C0000FE +S1130CA0430006756D2F6D6F640000B5043F3E6010 +S1130CB0002600F01AF840CF043700BDDC0C000019 +S1130CC04300056D2F6D6F6400B5043F3E60F61759 +S1130CD000F034F840CF043700BDC046300D0000AA +S1130CE044000675642F6D6F640030B40023002245 +S1130CF07968B86835003C68402640004941524153 +S1130D005B41AB4202D804D3A24202D3121BAB41D3 +S1130D100130013EF1D10E0038607B60BA6030BC16 +S1130D20704730B400237A68B9680020E2E7C0460F +S1130D30A80D0000440005642F6D6F6400B5F01722 +S1130D4019D0FFF79AFEFFF7A7FDF0170CD0FFF7B5 +S1130D5094FEFFF7A1FDFFF7C8FFFFF79DFDFFF726 +S1130D608CFEFFF799FD00BDFFF796FDFFF7BDFF71 +S1130D70FFF783FE00BDFFF78FFDF0170ED0FFF7DE +S1130D807CFEFFF789FDFFF7B0FFFFF776FEFFF764 +S1130D9083FDFFF772FEFFF77FFD00BDFFF77CFDCB +S1130DA0FFF7A3FF00BDC046C00D0000440002646D +S1130DB02F0000B5FFF7C2FFFFF77EFD00BDC04660 +S1130DC0080E0000440002662A0000B5F0170DD09A +S1130DD0FFF753FEFFF760FDF0170DD0FFF74DFE50 +S1130DE0FFF7D0FE40CF01CF386000BDFFF754FDC0 +S1130DF0F017F5D0FFF741FEFFF7C4FE40CF01CF57 +S1130E003860FFF73AFE00BD540E0000440002664D +S1130E102F0000B5F0170ED0FFF72FFEFFF73CFDB3 +S1130E20F0170ED0FFF729FEFFF736FDFFF779FF25 +S1130E30FFF742FD00BDFFF72FFDF017F4D0FFF7D9 +S1130E401CFEFFF729FDFFF76CFFFFF716FEFFF707 +S1130E5033FD00BD9C0E000020020232210006CFAB +S1130E603160726040CF704700B5FFF768FC0168DD +S1130E70426806B400F0D6FDFFF72DFB06BC016006 +S1130E80282905D0043F3E60544E00F0CEFD00BD3D +S1130E900432426000F0C6FD00BDC046E40E00000E +S1130EA0200202324000043F7068386036687047A0 +S1130EB000B500F0C5F80168282909D0043F3E6058 +S1130EC0474E00F090FD00F0F1F800F089FD00BD00 +S1130ED041680431416000F083FD00F0E7F800F060 +S1130EE07FFD00BD040F000044000364753C07CF80 +S1130EF08E4204D801D1904201D8002670470026C2 +S1130F00F6437047240F000044000364753E07CF86 +S1130F10B14204D801D1824201D80026704700268C +S1130F20F6437047440F0000440002643C0007CFBE +S1130F308E4204DC01D1904201DC00267047002679 +S1130F40F6437047640F0000440002643E0007CF7C +S1130F50B14204DC01D1824201DC00267047002644 +S1130F60F6437047800F000062020364303C04378C +S1130F70F617704700B500F0ACF800F00EFB00BDAA +S1130F80A80F000062020364303D01CF0643013E16 +S1130F90B641704700B5043F3E60124E00F081FA3E +S1130FA000F0D6FA00BDC046C40F0000440003643C +S1130FB03C3E07CF50404E400643013EB641F64307 +S1130FC07047C046E80F0000440002643D0007CFAC +S1130FD050404E400643013EB64170474060000019 +S1130FE04068000000430000FC0F00002000037371 +S1130FF07040043F3E603E007047C0460C10000045 +S1131000200003737021370040CF70472010000088 +S1131010200003727040043F3E606E467047C04635 +S113102030100000200003727021B54640CF704795 +S113103054100000610203647570043F3E60704701 +S113104006B5FFF765FB01684268FFF744FA0160E3 +S1131050426006BD8010000061020464726F70007B +S113106040CF704700B501681E2905D1043F3E609A +S1131070A14E02F060FA00BDFFF737FA00BDC0468A +S1131080981000006100043F64757000002E01D0C8 +S1131090043F3E607047C046C410000062020473FF +S11310A07761700039683E600E0070470CB5FFF739 +S11310B039FB02688368036082604268C3684360E6 +S11310C0C2600CBDF01000006202036E6970043748 +S11310D0704700B5FFF71CFB81681E2902D0FFF79B +S11310E00AFA00BD043F3E60834E02F024FA00BDBC +S11310F0181100006202046F76657200043F3E60BE +S11311007E68704700B5FFF70DFB8168C268FFF782 +S1131110E2F90160426000BD401100006202047403 +S113112075636B0001CF083F7E603860704700B57F +S1131130FFF705FBFFF784FF00F02AF800BDC04667 +S113114078110000630203726F7403CF083F786064 +S11311503E600E0070470EB5FFF7F1FA0168826831 +S113116003698160026103604168C2684369C160C8 +S1131170426143600EBDC0469C1100006302042D11 +S1131180726F740003CF083F7E60396006007047B9 +S113119000B5FFF7E0FFFFF7DEFF00BDB011000070 +S11311A02000047069636B00B0003E587047C0466D +S11311B0C811000000000564657074684F49C91BBC +S11311C0043F3E608E087047E41100000000067280 +S11311D0646570746800043F3E606E464849891B2C +S11311E08E087047181200002002023E720040B4BC +S11311F040CF704700B5FFF714FBFFF789FAFFF7FC +S1131200C5FA043F3E603F4E01228A40164302F075 +S113121092F9FFF76AF900BD4C1200002002027235 +S11312203E00043F3E6040BC704700B5FFF7F9FA4A +S1131230FFF751F9FFF73AFA0360043F3E60324E7C +S113124001229A40164302F076F900BD6C120000A8 +S1131250200202724000043F3E60009E704700B5C9 +S1131260FFF7DFFA02F07EFE00BDC04690120000D8 +S11312702002057264726F7001B0704700B5FFF709 +S1131280D0FA043F3E60214E02F055F900BDC0463D +S1131290A4120000200005727069636BB6006E44EE +S11312A036687047D0120000000004726F6C6C0046 +S11312B0002E01D140CF7047B0003958C019031F28 +S11312C01A6802600438013EF9D104370E007047F1 +S11312D0101300000000052D726F6C6C002E01D1FC +S11312E040CF7047386839464A680A600431013E85 +S11312F0FAD1086040CF70470437000064F2FF1F42 +S113130064F3FF1F00B4000000BC000001B0000043 +S113131028130000620203616E6401CF0640704727 +S1131320043F3E607B4EBCE0441300006202036253 +S1131330696301CFB04306007047043F3E60764EB8 +S1131340C9E0C0465C1300006202026F720001CF64 +S113135006437047043F3E60704EA2E074130000E1 +S1131360620203786F7201CF46407047043F3E60CB +S11313706B4E96E08C1300006202012A01CF4643B3 +S11313807047043F3E60674E8BE0C046AC130000DC +S1131390410003636C7A300006D00026400002D07E +S11313A001D20136FAE7704720267047BC130000CB +S11313B0610003726F720120C6417047D0130000B0 +S11313C0610003726F6C0020B61946417047C04635 +S11313D0041400006202076172736869667401CFC5 +S11313E030410600704700B5043F3E604E4E043F56 +S11313F03E604E4EFFF796F941681F2928D91F21F8 +S1131400416025E02C14000062020672736869666C +S1131410740001CFF0400600704700B5043F3E6001 +S1131420434E043F3E60434E12E0C0464015000068 +S11314306202066C73686966740001CFB0400600EE +S1131440704700B5043F3E603B4E043F3E600026BB +S1131450FFF768F90168282903D040CF00F03BF872 +S113146000BD04374168FFF740F8002901D140CF9F +S113147000BD1F290AD889010E430268D200164311 +S1131480FFF7C6F91E4302F056F800BD40CFFFF740 +S1131490BFF9043F3E60294E1B021E4302F04BF885 +S11314A000BD0FB5FFF73EF90168062901D1FFF72A +S11314B0FDFD8268282A01D1FFF7F8FDFFF778F9CE +S11314C0FFF764F9C90082680E43164302F033F84B +S11314D0FFF70BF80FBD0FB5FFF724F9FFF768F915 +S11314E0FFF754F98268282A0BD1043F3E60C6688E +S11314F0FFF7DCF88360043F3E601E001A0001F031 +S11315007FFCC9000E43164302F015F8FEF7EDFF09 +S11315100FBD0000004000008043000000430000B5 +S11315204040000040430000004100000010000063 +S1131530C0400000000800008040000000200000BF +S113154064150000610202303D00013EB64170475F +S113155000B500F003F900F010FFFEF7C6FF734971 +S1131560816200BD8C150000610203303C3E013EE7 +S1131570B641F643704700B500F0F0F800F0FDFE08 +S1131580FEF7B3FF6A49816200BDC046B015000092 +S1131590610202303C00F617704700B500F0DEF837 +S11315A0043F3E60634E00F0EBFE6349816200BD80 +S11315B0C81500006000047472756500043F3E6045 +S11315C00026F6437047C046DC150000600005663F +S11315D0616C7365043F3E6000267047001600008E +S11315E04202023E3D0001CFB042E9DA00267047D4 +S11315F0043F3E60514E043F3E60514EBEE0C04643 +S1131600241600004202023C3D0001CFB042D7DD67 +S113161000267047043F3E604A4E043F3E604A4EF7 +S1131620ACE0C046441600004202013C01CFB04287 +S1131630C6DB00267047043F3E60414E043F3E60D7 +S11316403E4E9BE0641600004202013E01CFB042D0 +S1131650B6DC00267047043F3E603B4E043F3E60CC +S1131660384E8BE088160000620203753E3D01CFC0 +S1131670861BB641F6437047043F3E602C4E043F40 +S11316803E602A4E7AE0C046AC1600006202037542 +S11316903C3D01CF361AB641F6437047043F3E60E5 +S11316A02A4E043F3E602A4E68E0C046CC16000035 +S11316B0620202753C0001CF861BB6417047043FAD +S11316C03E601A4E043F3E60194E57E0EC1600008F +S11316D0620202753E0001CF361AB6417047043FDC +S11316E03E601B4E043F3E60184E47E00C1700005E +S11316F06202023C3E0001CF811B361A0E43704742 +S1131700043F3E60134E043F3E6037E0741800000F +S11317106202013D01CF361A013EB6417047043FD3 +S11317203E600D4E043F3E6028E0000000D2000001 +S113173000D30000C017000000D5000000DB00004B +S113174000DA000000DC000000DD000000D800002A +S113175000D9000000D0000000D1000000B5FEF761 +S1131760D7FF2023FEF77DFF1823FEF77AFF10230F +S1131770FEF777FF0823FEF774FF00BD00B5FEF700 +S1131780D1FFFEF7EDFEFEF7F0FE1023FEF769FF32 +S11317908268282A04D1FFF789FC39683E600E4626 +S11317A040CF0168282909D14168FF2906D8043FA0 +S11317B03E60644E0E438168090206E0FEF7E6FFD0 +S11317C0043F3E60604EC90016430E4301F0B3FE71 +S11317D0FEF78BFEFEF789FE866240CF00BD0FB593 +S11317E05A48816A002930D0043F3E60866A00214D +S11317F08162310AD52901D140CF0FBDFEF76BFEBE +S1131800FEF754FF0360D22903D1514E00F000FECD +S11318100FBDD32905D14E4E00F0FAFD00F00BFEAA +S11318200FBD023601F087FE043F3E60494E00F0D2 +S11318300DF800F000FE043F3E60474E01F07BFED1 +S1131840043F3E60434E00F001F80FBD00B5FEF7C3 +S11318505FFFFEF7C4FF016809020E4301F06BFE4F +S113186000BD00B5816A090AD52901D1FEF73DFE04 +S113187000BDC046901800006202036D696E01CF7E +S1131880B04200DC06007047043F3E60334E2BE05C +S1131890AC1800006202036D617801CFB04200DB36 +S11318A006007047043F3E602D4E1DE0CC1800003A +S11318B0620204756D61780001CFB04200D3060066 +S11318C07047043F3E60274E0EE0C046701900008A +S11318D0620204756D696E0001CFB04200D8060043 +S11318E07047043F3E60204E00B5FEF71BFF0168C1 +S11318F08268914203D140CFFEF7FDFD00BD062A68 +S113190001D1FFF7D3FB0168282901D1FFF7CEFBF2 +S1131910FEF765FFFEF743FFC9000268043F3E601F +S1131920094E0E43164301F006FE01F004FE043F87 +S11319303E600E4E0E43164301F0FDFDFEF7DBFD47 +S113194000BD0000002800008042000028F0FF1FB6 +S1131950804100000020000000E0000000DB0000E7 +S113196000DC000000D8000000D3000000460000A6 +S1131970B01900000000046D6F76650007B53100F2 +S113198040CF320040CF00290FD0B2420DD006D351 +S1131990013E013A705C50540139FBD105E03078C6 +S11319A01070013601320139F9D140CF07BDC0466C +S11319B0D419000000000466696C6C00300040CF4C +S11319C0310040CF002902D001397054FCD140CFFE +S11319D07047C046141A0000200201403668704760 +S11319E0043F3E60994E00B5FEF792FE0368282B33 +S11319F008D143687C21194009010E437C218B43A3 +S1131A00FEF7FFFDDB001E43FEF702FF1E4301F05D +S1131A1092FD00BD6C1A00002002012103CF30604A +S1131A200E007047043F3E60894E00B5FEF77AFE13 +S1131A300368282B09D143687C21194009010E430E +S1131A407C218B43FEF7DDFD0360DB001E438368CE +S1131A50282B02D1C368FEF7C8FD1E4301F06BFDBD +S1131A60FEF743FDFEF741FD00BDC046A41A000089 +S1131A702002022B210003CF3268121832600E00BC +S1131A80704700B5FEF74EFEFFF7DAFAFFF7A8FF3E +S1131A90FFF761FB00F023FCFFF708FBFFF7C2FF31 +S1131AA000BDC046E81A00002002026840003688E3 +S1131AB0704700B5FEF72CFE043F3E60654E036898 +S1131AC0282B08D143683E21194049010E433E2189 +S1131AD08B43FEF796FDDB001E43FEF799FE1E4383 +S1131AE001F029FD00BDC046401B00002002026831 +S1131AF0210003CF30800E00704700B5FEF712FEC0 +S1131B00043F3E60544E0368282B09D143683E21AC +S1131B10194049010E433E218B43FEF772FD0360D9 +S1131B20DB001E438368282B02D1C368FEF75DFDEA +S1131B301E4301F000FDFEF7D8FCFEF7D6FC00BD05 +S1131B40781B0000200203682B2103CF328812186F +S1131B5032800E00704700B5FEF7E4FDFFF770FA1F +S1131B60FFF7A7FFFFF7F7FA00F0B9FBFFF79EFABC +S1131B70FFF7C3FF00BDC046BC1B00002002026388 +S1131B8040003678704700B5FEF7C2FD043F3E6062 +S1131B90324E0368282B08D143681F21194089015C +S1131BA00E431F218B43FEF72CFDDB001E43FEF783 +S1131BB02FFE1E4301F0BFFC00BDC046141C0000F4 +S1131BC020020263210003CF30700E00704700B57D +S1131BD0FEF7A8FD043F3E60214E0368282B09D17F +S1131BE043681F21194089010E431F218B43FEF7CF +S1131BF008FD0360DB001E438368282B02D1C36801 +S1131C00FEF7F3FC1E4301F096FCFEF76EFCFEF7B4 +S1131C106CFC00BD641C0000200203632B2103CF75 +S1131C203278121832700E00704700B5FEF77AFD54 +S1131C30FFF706FAFFF7A7FFFFF78DFA00F04FFB57 +S1131C40FFF734FAFFF7C3FF00BD0000006800008F +S1131C5000600000008800000080000000780000A0 +S1131C6000700000A41C00002002046269732100BB +S1131C7003CF3268024332600E00704700B5FEF7AE +S1131C8051FDFFF7DDF9FFF7ABFEFFF764FA043F00 +S1131C903E60AB4EFFF705FCFFF708FAFFF7C2FE04 +S1131CA000BDC046E41C00002002046269632100F8 +S1131CB003CF3268824332600E00704700B5FEF7EE +S1131CC031FDFFF7BDF9FFF78BFEFFF744FA043F40 +S1131CD03E609C4EFFF7FFFBFFF7E8F9FFF7A2FE1B +S1131CE000BDC046241D0000200204786F7221004C +S1131CF003CF3268424032600E00704700B5FEF7F1 +S1131D0011FDFFF79DF9FFF76BFEFFF724FA043F7F +S1131D103E608D4EFFF7C5FBFFF7C8F9FFF782FE63 +S1131D2000BDC046581D00002002046269744000D2 +S1131D3001CF36680640013EB641F643704700B510 +S1131D40FEF7F0FCFFF74CFE043F3E607F4EFFF7CA +S1131D50A8FBFFF710FC00BD981D000020020568D9 +S1131D606269732103CF3288024332800E007047C8 +S1131D7000B5FEF7D7FCFFF763F9FFF79AFEFFF70C +S1131D80EAF9043F3E606E4EFFF78BFBFFF78EF9D6 +S1131D90FFF7B3FE00BDC046D81D00002002056851 +S1131DA06269632103CF3288824332800E00704718 +S1131DB000B5FEF7B7FCFFF743F9FFF77AFEFFF72C +S1131DC0CAF9043F3E605F4EFFF785FBFFF76EF9EB +S1131DD0FFF793FE00BDC046181E000020020568F0 +S1131DE0786F722103CF3288424032800E007047F0 +S1131DF000B5FEF797FCFFF723F9FFF75AFEFFF74C +S1131E00AAF9043F3E60504EFFF74BFBFFF74EF933 +S1131E10FFF773FE00BDC0464C1E0000200205689B +S1131E206269744001CF36880640013EB641F643EC +S1131E30704700B5FEF776FCFFF73BFE043F3E60BB +S1131E40424EFFF72EFBFFF796FB00BD8C1E0000F1 +S1131E50200205636269732103CF32780243327032 +S1131E600E00704700B5FEF75DFCFFF7E9F8FFF7D9 +S1131E708AFEFFF770F9043F3E60314EFFF711FB15 +S1131E80FFF714F9FFF7A3FE00BDC046CC1E000007 +S1131E90200205636269632103CF32788243327082 +S1131EA00E00704700B5FEF73DFCFFF7C9F8FFF7D9 +S1131EB06AFEFFF750F9043F3E60224EFFF70BFB2A +S1131EC0FFF7F4F8FFF783FE00BDC0460C1F0000C7 +S1131ED020020563786F722103CF3278424032705A +S1131EE00E00704700B5FEF71DFCFFF7A9F8FFF7D9 +S1131EF04AFEFFF730F9043F3E60134EFFF7D1FA74 +S1131F00FFF7D4F8FFF763FE00BDC046501F000082 +S1131F10200205636269744001CF36780640013EB1 +S1131F20B641F643704700B5FEF7FCFBFFF72BFE06 +S1131F30043F3E60054EFFF7B4FAFFF71CFB00BDFB +S1131F4000430000804300004040000000400000C7 +S1131F5060200000000006666C6173682100300098 +S1131F6040CF310040CF854B984268D3844B99428F +S1131F702ED0032202402CD102689A4246D1814AD3 +S1131F80137880221A40FAD030221A4002D07D4AB7 +S1131F90302313707C4A062313707C4A1070000AA5 +S1131FA07B4A1070000A7B4A10707B4A1170090A40 +S1131FB07A4A1170090A7A4A1170090A794A117029 +S1131FC0704A802313706F4A137880221A40FAD023 +S1131FD0704700F0C7FD3041646472657373206814 +S1131FE0617320746F20626520342D616C69676EA3 +S1131FF0656420666F722077726974696E67206603 +S11320006C61736820210A0002F088FC00F0AAFDCC +S113201029466C617368206C6F636174696F6E200C +S113202063616E6E6F742062652077726974746583 +S11320306E20747769636520210A02F06FFC00F05A +S113204091FD1943616E6E6F742077726974652017 +S1132050696E746F20636F726520210A02F05EFC62 +S1132060E420000000000E666C61736870616765AF +S11320706572617365000FB5300040CF3F4B9842E5 +S113208020D3032398433F4A137880221A40FAD07E +S113209030221A4002D03B4A302313703A4A0923B3 +S11320A013703A4A1070000A394A1070000A394A0B +S11320B01070344A80231370324A137880221A40F5 +S11320C0FAD00FBD00F04EFD1443616E6E6F7420A4 +S11320D0657261736520636F726520210A0002F0E6 +S11320E01DFCC0466021000000000A657261736532 +S11320F0666C61736800214872B62B492B4A0368E9 +S113210093421CD0043F3E600600043F3E6000F052 +S113211029FD10457261736520626C6F636B2061E9 +S11321207420200000F096FD00F01CFD0C20667267 +S11321306F6D20466C6173680A00FFF79CFF0430E2 +S11321408842DCD100F00EFD1246696E6973686541 +S1132150642E20526573657420210A0002F078FC15 +S1132160F821000000000E6572617365666C61738E +S11321706866726F6D00300040CFBDE7005000000C +S1132180FFFFFFFF0000024007000240040002407E +S11321900500024006000240080002400900024017 +S11321A00A0002400B00024000000200FFFFFFFF94 +S11321B0464860210022028002300139FBD1704779 +S11321C0424860210288002A12D000F0CBFC1D5541 +S11321D06E7061697265642031362D6269742046BF +S11321E06C6173682077726974652E0A02F096FB3D +S11321F002300139E6D17047D022000000000768A0 +S1132200666C6173682130B5320040CF500813D337 +S113221000F0A8FC1E68666C61736821206E656519 +S11322206473206576656E2061646472657373659A +S1132230732E0A0002F072FB02235340234820212C +S1132240048845882D042C439C422AD00630013949 +S1132250F6D11E482021048845882D042C431AD029 +S113226006300139F7D100F07DFC27546F6F206DE3 +S1132270616E7920756E7061697265642031362DE6 +S113228062697420466C617368207772697465733F +S11322902E0A02F043FB0280120C4280868040CF5B +S11322A030BD0221114003D0023A8188360401E096 +S11322B0818809040E43043F3E601600002101801A +S11322C041808180FFF74BFE30BD000064F3FF1FA7 +S11322D0FC2200006202012B01CF3618704700B5C2 +S11322E0FEF720FA043F3E60D34E043F3E60D34ED7 +S11322F08168282912D1FEF7D9FE0FE06C23000073 +S11323006202012D01CF861B704700B5FEF70AFA61 +S1132310043F3E60CA4E043F3E60CA4E016828290D +S11323200ED14168FF290BD840CFFEF741FA0E4386 +S1132330816809020E4301F0FEF8FEF7D6F800BDED +S11323400437FEF723FA8268282A03D1C368FEF70C +S11323504CF91A008901D2000E431643FEF7C5F862 +S1132360FEF756FA1E4301F0E6F800BD982300007C +S1132370610202312D00013E7047043F3E60B24EBF +S113238000B5FEF7C5F90168C9000E43FEF740FA2F +S11323901E4301F0D0F800BDB023000061020231F9 +S11323A02B0001367047043F3E60A84EE8E7C04664 +S11323B0C8230000610202322D00023E7047043F30 +S11323C03E60A34EDCE7C046E02300006102023217 +S11323D02B0002367047043F3E609E4ED0E7C04655 +S11323E0F823000061020563656C6C2B04367047AA +S11323F0043F3E60984EC3E7282400006102066E45 +S113240065676174650076427047043F3E60934E91 +S113241000B5FEF77DF9FEF7E2F901680E43C90045 +S11324200E4301F088F800BD402400006102036EF1 +S11324306F74F6437047043F3E60894EE8E7C04638 +S11324405824000061020373687276087047043FE1 +S11324503E60844EDCE7C0466824000061020373DA +S1132460686C7600704706E0802400006102023246 +S11324702A0076007047043F3E604026C8E7C04605 +S11324809824000061020563656C6C73B6007047A4 +S1132490043F3E608026BBE7B024000061020232A4 +S11324A02F0076107047043F3E606F4EB0E7C04681 +S11324B0E8240000610203616273F0173618464095 +S11324C0704700B5FEF724F9043F3E60674E01688B +S11324D009020E4301F02FF8043F3E60644E01F000 +S11324E02AF8FFF792FF00BD302500004200057571 +S11324F02F6D6F64310040CF002903D1043F3E604B +S113250000267047012200238E4206D9003104D4EC +S11325105200490001D48E42FAD88E4201D3761A71 +S1132520134349085208F8D1043F3E601E00704727 +S1132530A02500004200042F6D6F640000B5300038 +S113254040CF002E1CDA764200280CDA4042043FC9 +S11325503E600600FFF7CEFF300040CF7642043FD6 +S11325603E60060000BD043F3E600600FFF7C2FF68 +S1132570300040CF40427642043F3E60060000BD3A +S1132580002807DA4042043F3E600600FFF7B2FF2E +S1132590764200BD043F3E600600FFF7ABFF00BD7E +S11325A0B42500004200036D6F6400B5FFF7C6FF59 +S11325B040CF00BDC82500004200012F00B5FFF741 +S11325C0BDFF043700BDC046DC2500006100046582 +S11325D076656E000120304036187047F4250000FF +S11325E08100046261736500043F3E60214E7047C0 +S11325F00A0000000C26000000000662696E617289 +S113260079001C48022101607047C046242600005E +S1132610000007646563696D616C16480A210160F6 +S11326207047C046C0260000000003686578114862 +S11326301021016070470000003000000018000005 +S113264000380000001A0000401E0000401C00007A +S1132650801E0000801C0000001D0000404200009D +S1132660C0430000400800004010000000280000A3 +S113267000D50000FC2F0020804981480160814979 +S11326808148016081498248016082498248016031 +S113269082480160002182480170824801708248AA +S11326A0017082480170062181480170002181482F +S11326B001701A21804801700C217948017070471B +S11326C0DC260000810009686F6F6B2D656D6974ED +S11326D0043F3E60794E7047D2270000F826000080 +S11326E0810008686F6F6B2D6B657900043F3E6055 +S11326F0734E7047FA2700001827000081000A680B +S11327006F6F6B2D656D69743F00043F3E606D4EC5 +S1132710704728280000C04634270000810009685B +S11327206F6F6B2D6B65793F043F3E60664E70475B +S11327305A2800005427000081000A686F6F6B2D2F +S1132740706175736500043F3E60604E7047FE49DA +S11327500000C0466C270000000004656D69740029 +S11327600FB5564800F029F80FBDC0468027000079 +S11327700000036B65790FB5514800F01EF80FBDDA +S113278094270000000005656D69743F4D4800689A +S11327908746C046A82700000000046B65793F0007 +S11327A0494800688746C046C027000000000570FD +S11327B06175736545480068874600688746C0466A +S11327C0E827000000000B73657269616C2D656D6C +S11327D0697400B500F028F8002E40CFFAD03C48C8 +S11327E0067040CF00BDC0461428000000000A73E4 +S11327F0657269616C2D6B65790000B500F02DF888 +S1132800002E40CFFAD03248043F3E600678F6B23C +S113281000BDC0464828000000000C736572696161 +S11328206C2D656D69743F0000B5FFF7C3FF29483F +S113283008210170043F3E6000262648802201786A +S1132840114000D0F64300BDD828000000000B73EF +S1132850657269616C2D6B65793F00B5FFF7AAFF5E +S11328601C4808210170043F3E60002619482022BC +S11328700178114000D0F64300BD0000803F000005 +S113288038800440300400F0348004400000000428 +S113289004800440000200000490044008900440B6 +S11328A003A0064002A0064006A0064005A006407C +S11328B00AA0064000A0064001A00640F82F002010 +S11328C0F42F0020F02F0020EC2F0020E82F002010 +S11328D007A0064004A00640FC280000000007638F +S11328E065787065637400B5386801B40130386088 +S11328F000F00BF801BC067040CF00BD7429000045 +S11329000000066163636570740000B502CF01398D +S11329100022FFF730FF300040CF7F2809D0202865 +S113292019D2092816D00A281FD00D281DD008282E +S1132930EFD1002AEDD000F015F903082008002A91 +S1132940E7D0885C013A80230340E2D0402303406F +S1132950F5D0DEE72020B242DBD2043F3E60060021 +S1132960FFF7FEFE01328854D3E7160000F0A8F802 +S113297000BDC04688290000400003746962043F1A +S11329803E602B4E7047C046A02900008100033EE4 +S1132990696E043F3E60274E704700000000C04649 +S11329A0C829000082000E63757272656E742D73FF +S11329B06F7572636500043F3E601F4E70470000F0 +S11329C000009CF0FF1FC046E429000000000973CA +S11329D06574736F75726365174802CF0660416052 +S11329E040CF7047042A0000000006736F757263BD +S11329F06500043F3E60104E043F706838603668DE +S1132A007047C0463C2A0000000005717565727964 +S1132A100FB5084800210160FFF7B1FF043F3E6095 +S1132A20043F3E60C826FFF770FFFFF7D5FF0FBDD8 +S1132A309CF0FF1FE42F0020DC2F00208C2A0000D4 +S1132A40000007636F6D706172650FB5310040CF90 +S1132A5001CF884202D040CF00260FBD02CF00280C +S1132A6010D001380A5C335C412A02D35B2A00D2BD +S1132A702032412B02D35B2B00D220339A42EED07A +S1132A8000260FBD0026F6430FBDC046A02A000055 +S1132A9000000263720000B500F064F8010A00BD92 +S1132AA0B42A0000000002626C00043F3E6020264D +S1132AB07047C046C82A0000000005737061636552 +S1132AC0043F3E6020264BE6E82A0000000006731F +S1132AD070616365730000B5002E03DDFFF7F0FF3E +S1132AE0013EFBD140CF00BDF82A00005000065B38 +S1132AF0636861725D0005E0102B00000000046350 +S1132B006861720000B501F017FC40CF367800BD53 +S1132B10202B000050040128043F3E60292606E0D3 +S1132B203C2B00005004015C043F3E60002600B5CD +S1132B3001F00CFC043740CF00BDC046842B0000DC +S1132B401000022E22009F4800B5043F3E6006009C +S1132B5000F0DEF9043F3E60222601F0F7FB00F0AE +S1132B602AFD00BD0AB4043F3E607646013E337838 +S1132B700121013319405B187146C9188E460ABCFD +S1132B803CE0C046AC2B00001000026322008E48DB +S1132B90DAE7043F3E607646013E33780121013393 +S1132BA019405B187146C9188E467047D82B00002F +S1132BB01000027322008548C6E7043F3E60764653 +S1132BC0043F3E60013E36780121731C19405B18B6 +S1132BD07146C9188E467047F02B0000000005634B +S1132BE06F756E740136043F3E60013E367870475F +S1132BF0182C0000000005637479706501B5307805 +S1132C00002807D00136043F3E603678FFF7A8FD60 +S1132C100138F7D140CF01BD482C000000000474F6 +S1132C2079706500310040CF300040CF00B50029F5 +S1132C3008D00022043F3E60865CFFF791FD01321C +S1132C409142F7D100BDC046842C00000000046806 +S1132C5065782E0007B5310040CF20200F220438BC +S1132C60043F3E600E00C6401640092E01D9373697 +S1132C7000E03036FFF774FD0028F0D1FFF720FFA5 +S1132C8007BDC046942C0000000003682E731FB5D6 +S1132C904F4C0EE0A42C0000000003752E731FB5EA +S1132CA04C4C06E0242D00000000022E73001FB5DA +S1132CB0494C4A49C91B8908494A106803B40A2087 +S1132CC01060FFF74FFF08537461636B3A205B0099 +S1132CD0043F3E600E0001F017FDFFF743FF025D65 +S1132CE0200003BC3E4A106000290AD03D4A106807 +S1132CF006B4043F3E600600A04706BC043A01390E +S1132D00F5D1FFF72FFF0620544F533A2000043F1C +S1132D103E603600A047FFF725FF04202A3E0A0044 +S1132D201FBDC046E82D0000000005776F72647374 +S1132D3000B5FFF717FF010A00F07DFEFFF712FF51 +S1132D4009416464726573733A20043F3E60FFF77F +S1132D5081FFFFF707FF064C696E6B3A2000043FC2 +S1132D603E603668FFF776FFFFF7FCFE07466C61AE +S1132D7067733A20043F3E60B688FFF76BFFFFF7A6 +S1132D80F1FE06436F64653A2000B01D00F08EFE2C +S1132D90043F3E600600FFF75DFFFFF7E3FE064ECB +S1132DA0616D653A2000043F3E600636FFF726FF5A +S1132DB0FFF7D8FE010A00F056FE300040CFBDD028 +S1132DC040CF00BD642B0000922B0000BA2B000002 +S1132DD0552C0000F74600000947000064F2FF1F6D +S1132DE0FC2F002060F2FF1F042F0000000010726F +S1132DF0656769737465726C69746572616C2C00C3 +S1132E003FB5350040CF2900C90029432D029E4813 +S1132E100543FF2300223000D040984301D0013203 +S1132E20F9E73000D04018402843043F3E600600D4 +S1132E3000F081FB9548054318009040864310D06C +S1132E4000243000E040984301D00134F9E7101B1E +S1132E50043F3E600E008001064300F06CFB22003C +S1132E60DFE7002A06D0043F3E600E0092011643BD +S1132E7000F061FB40CF3FBD1FB5310040CF844C13 +S1132E800C43C9000C434901300040CF020EFF231C +S1132E901A407D4B0B431343043F3E601E0000F079 +S1132EA04AFB043F3E60260000F045FB020CFF2372 +S1132EB01A40784B0B431343043F3E601E0000F05E +S1132EC03AFB043F3E60260000F035FB020AFF2374 +S1132ED01A40704B0B431343043F3E601E0000F046 +S1132EE02AFB043F3E60260000F025FB0200FF237E +S1132EF01A40684B0B431343043F3E601E0000F02E +S1132F001AFB1FBD742F000000000563616C6C2C5C +S1132F100FB5330000F06EFE300040CF1B1A043BA7 +S1132F205D49194000290ED05C4A91420BD001360C +S1132F30043F3E600026FFF763FF043F3E60584EA7 +S1132F4000F0F9FA0FBD40CF5B08564856491940C6 +S1132F500843DB0A55491940090408439B0A012127 +S1132F60194089060843043F3E60060000F013FB45 +S1132F700FBDC046C82F00000000086C697465725C +S1132F80616C2C0008B5043F3E60494E00F0D3FA52 +S1132F90043F3E60474E00F0CEFA474B30001840E5 +S1132FA098420BD1F643043F3E600626FFF728FF04 +S1132FB0043F3E60414E00F0BEFA08BD043F3E604F +S1132FC00626FFF71DFF08BDF02F00000000066372 +S1132FD072656174650000B500F03DF830200002B0 +S1132FE00F308047043F3E607646013E00BDC04638 +S1132FF048300000200005646F65733E30200002F5 +S11330000F308047043F3E607646013E7047043FE0 +S11330103E607646013E2A4A13682A49096802201E +S1133020084000D10231023111600136043F3E6094 +S11330300026FFF721FF043F3E60194E00F07BFAA3 +S1133040136000F0ECF900BDCC3000000000073C38 +S11330506275696C647300B500F07AFB00F0CAFD18 +S11330600220064040CF04D1043F3E60362600F0E3 +S113307062FA043F3E60144E00F05DFA043F3E6085 +S1133080102600F0CBFA00BD002000000010000064 +S113309000020000003000000100C0FF0000C0FF7B +S11330A08047000000F800F0FF070000FF03000065 +S11330B0043F00003E6000000000FFFFF6430000F4 +S11330C000F0FF1F14F0FF1F00B50000D83000000F +S11330D05000035B275D03E0F0300000000001278F +S11330E000B501F029F900F020FD300040CF00BD0B +S11330F030310000100008706F7374706F6E6500DB +S113310000B5FFF7EDFF102101400DD12021014052 +S113311005D0FFF737FF043F3E60E64E04E0FFF7BB +S113312031FF043F3E60E44EFFF7F2FE00BDC046AF +S11331307C310000000007696E6C696E652C00B577 +S1133140DE49DF4ADF4B3088884208D0904208D0FD +S1133150984206D0043F3E60060000F0ECF90236C7 +S1133160F1E740CF00BD0EB4D54AD64B01880230FA +S1133170914201D09942F9D10EBC704790310000C0 +S11331800000047265742C00043F3E60CC4ED2E112 +S1133190A03100003000046578697400F4E7C0468B +S11331A0B831000030000772656375727365043FBF +S11331B03E60C54E3668ABE6D03100008100057331 +S11331C074617465043F3E60C04E704700000000A7 +S11331D0E43100000000015DBC480021C9430160E6 +S11331E07047C046F43100001000015BB74800216D +S11331F0016070471C3200000008013A00B5B44871 +S1133200076000F0A5FA043F3E60AC4E00F093F96D +S1133210AE480021C943016000BDC0467C320000B5 +S11332203010013B00B5AA480168B9420ED0FFF73F +S113323099FC1520537461636B206E6F7420626176 +S11332406C616E6365642E0A01F068FB043F3E60A6 +S11332509B4E9E480068411C07D0062804D8043FB2 +S11332603E609C4E00F00CF9964E00F064F900F0BC +S1133270D6F896480021016000BDC0469032000097 +S113328000000765786563757465300040CF874634 +S1133290A8320000101009696D6D65646961746578 +S11332A0043F3E601026EBE0C032000010100669B7 +S11332B06E6C696E6500043F3E602026E0E0C04607 +S11332C0DC32000010100B636F6D70696C656F6EFB +S11332D06C79043F3E603026D2E0C046F8320000EC +S11332E010100A302D666F6C6461626C6500043FD7 +S11332F03E604026C4E0C0461433000010100A317A +S11333002D666F6C6461626C6500043F3E6041260B +S1133310B6E0C0463033000010100A322D666F6CE0 +S11333206461626C6500043F3E604226A8E0C046CA +S11333304C33000010100A332D666F6C6461626CAC +S11333406500043F3E6043269AE0C04668330000AF +S113335010100A342D666F6C6461626C6500043F62 +S11333603E6044268CE0C0468433000010100A35C9 +S11333702D666F6C6461626C6500043F3E60452697 +S11333807EE0C046A033000010100A362D666F6C34 +S11333906461626C6500043F3E60462670E0C0468E +S11333A0BC33000010100A372D666F6C6461626CC8 +S11333B06500043F3E60472662E0C046EC330000EF +S11333C0000008636F6E7374616E740000B500F0E2 +S11333D0BFF9FFF7D7FD043F3E603A4E00F0ABF86B +S11333E0FFF785FF00F01BF800BDC0461034000055 +S11333F000000932636F6E7374616E7400B500F07F +S1133400A7F939683E600E46FFF7BCFDE1E7C04608 +S113341070340000000006736D756467650000B5C4 +S11334202D4801682C4A91421CD202390A882B4B40 +S11334309A4204D1043F3E60294E00F07CF800F02B +S113344069F828480068043F3E6006002649096878 +S11334500431214A1368116000F06DF81360FEF71F +S1133460AFFE00BD00F056F8043F3E60002608E0C1 +S1133470EC340000000008736574666C61677300C7 +S113348000B515480168144A914205D215480168EF +S11334903143016040CF00BD320040CF1248006884 +S11334A0043001880D4B994201D1110000E0114311 +S11334B0018000BD3E310000102F000000B5000067 +S11334C000BD00007047000014F0FF1FD82F00203B +S11334D010F0FF1F2010000000F0FF1FFFFF00008E +S11334E00000000020F0FF1F04F0FF1F083500005B +S11334F0410007616C69676E6564012030403618CD +S113350002203040361870472C3500000000056159 +S11335106C69676E00B5834801680220014004D0DD +S1133520043F3E60002600F006F800BD7035000040 +S1133530000002682C000FB5B6B27B480168002970 +S113354002D0013100D0016076480168754A914289 +S113355005D2043F3E600E00FEF755FE02E0320045 +S113356040CF0A80043F3E60022600F057F80FBDAA +S11335708C3500000000012C00B5043F3E60FFF7CD +S1133580DAFF360CFFF7D7FF00BDC046A8350000B0 +S11335900000033E3C2C00B5043F3E60360CFFF7B0 +S11335A0CAFFFFF7C8FF00BD103600000000077314 +S11335B07472696E672C07B5FF21314040CF30002B +S11335C040CF002905D1043F3E600026FFF7B3FF3A +S11335D007BD043F3E60067836020E43FFF7ABFF9B +S11335E00130013902290AD3043F3E60467836028D +S11335F002781643FFF79FFF02300239F2E70029F1 +S113360000D107BD043F3E600678FFF794FF07BD75 +S11336106C360000000005616C6C6F7441480168F1 +S1133620404A91420FD2320040CF89183F4A91421A +S113363019D3FFF797FA0B466C6173682066756CB3 +S11336406C0A01F06BF9320040CF8918384A1268CD +S1133650914208D3FFF786FA0952616D2066756CB2 +S11336606C0A01F05BF901607047C04694360000B3 +S113367000000D636F6D70696C65746F72616D3FEE +S1133680043F3E600026274800682649884248D304 +S1133690F6437047B436000000000C636F6D706928 +S11336A06C65746F72616D001E4800681D49884224 +S11336B011D370474037000000000E636F6D7069CE +S11336C06C65746F666C6173680016480068154910 +S11336D0884200D270471748174902680B680A608D +S11336E003601048154902680B680A6003601048BB +S11336F00068834215D300B5FFF734FA23205661DE +S1133700726961626C657320636F6C6C69646520B7 +S1133710776974682064696374696F6E6172790A89 +S113372000BD704700F0FF1FD82F002000000200EA +S113373024F0FF1F04F0FF1F1CF0FF1F18F0FF1FF1 +S11337402C38000000000828637265617465290044 +S113375000B500F0F1FD002E0ED1FFF703FA15209D +S1133760437265617465206E65656473206E616D76 +S11337706520210A01F0D2F83868043F3E60043F16 +S1133780386000F0A3F940CF002E40CF11D0386844 +S1133790043F3E60043F3860FFF7E4F90952656472 +S11337A06566696E6520FFF73DFAFFF7DBF9022EC7 +S11337B00A00FFF7AFFE00F01DFA8D4800688C493F +S11337C088421CD28B4800210160043F3E600626DB +S11337D0FFF724FFFDF7D6FCFFF7EDFE86480168EE +S11337E00A68864B9A4207D1814A13681160043FE4 +S11337F03E60FFF7C1FE1360066040CF10E07E48D4 +S1133800043F3E600668FFF7B7FE043F3E607C4E0F +S1133810FFF791FE7848310040CF0160FFF7CBFEFF +S1133820734801687748016000BDC0464438000011 +S11338300000087661726961626C6500043F3E6055 +S1133840012613E05C3800000000093276617269D9 +S113385061626C65043F3E60022607E03439000073 +S11338600000096E7661726961626C6500B5FFF7EC +S11338706FFF5F4801685E4A914233D20F200640D1 +S1133880B20061480168891A604A91420BD2FFF77D +S113389069F90F4E6F7420656E6F75676820524129 +S11338A04D0A01F03BF80160043F3E600E00FFF753 +S11338B069FB043F3E60564EFFF73DFE300040CFAB +S11338C00200002805D00E600431FFF755FE0138D0 +S11338D0F9D1043F3E6080261643FFF7D1FDFFF780 +S11338E09EFD00BD00F086F90220064040CF04D1C1 +S11338F0043F3E603626FFF71EFE043F3E60454E01 +S1133900FFF749FE043F3E60434EFFF744FE043F89 +S11339103E603F4EFFF70FFE300040CF002803D03B +S1133920FFF72AFE0138FBD1FFF7E1FCFFF777FD33 +S113393000BDC046203A0000000007627566666557 +S1133940723A00B5FFF704FF012030403618022018 +S11339503040361826480168254A914226D22A4822 +S11339600168891B294A91420BD2FFF7FBF80F4EDD +S11339706F7420656E6F7567682052414D0A00F0C0 +S1133980CDFF0160043F3E600E00FFF7FBFA043FE9 +S11339903E601F4EFFF7CFFDFFF7EEFD043F3E6094 +S11339A01E4EFFF76DFDFFF73AFD00BD00F022F952 +S11339B00220064040CF04D1043F3E603626FFF784 +S11339C0BAFD043F3E60134EFFF7E5FD043F3E6041 +S11339D0114EFFF7E0FD043F3E600D4EFFF7ABFDD7 +S11339E0FFF71CFEFFF783FCFFF719FD00BD000085 +S11339F000F0FF1F20F0FF1F04F0FF1FFFFFFFFF79 +S1133A00FFFF000014F0FF1F24F0FF1F24F4FF1F2A +S1133A10704700003E60043F02367E4640010000CD +S1133A20503A000000000F64696374696F6E61723C +S1133A30797374617274424800684149043F3E607E +S1133A40884201D23F4E70473F4E36687047C046A9 +S1133A508C3A000000000E64696374696F6E6172D1 +S1133A60796E6578740003B531683848814207D0AF +S1133A708879FF2804D00E00043F3E60002603BD71 +S1133A80043F3E600026F64303BDC046C03A000032 +S1133A9000000A736B6970737472696E6700317821 +S1133AA0013101220A4089187618704706B401785A +S1133AB0013101220A408918401806BC7047C046EB +S1133AC0543B000000000466696E64003FB50022A8 +S1133AD00023350040CF340040CFFFF7ACFF1C4833 +S1133AE0B188884217D0043F3E600636FFF77AF863 +S1133AF0043F3E602600043F3E602E00FEF7A5FF13 +S1133B00002E40CF07D0B01DFFF7D0FF02000B00FE +S1133B100B48824204D2FFF7A6FF300040CFDED02C +S1133B201600043F3E601E003FBD00B531003868FA +S1133B30FFF7CCFF3A68002A01D100F05BFE00BD1C +S1133B4000F0FF1F1004000004F0FF1FFFFFFFFF41 +S1133B50FFFF0000B03B0000000006636A756D7053 +S1133B602C00320040CF310040CF8B1B043BE54991 +S1133B70194000290DD0E44881420AD0FEF7F2FF33 +S1133B800D4A756D7020746F6F206661720A00F0C3 +S1133B90C5FE5B10FF210B40134330001E0000B52F +S1133BA0DA4A13681060FFF7C6FC136000BDC04614 +S1133BB0E83B00000000056A756D702C310040CFB1 +S1133BC0300040CF0B1A043BD1491940002902D0E0 +S1133BD0D04A9142D2D15B10CF4A1340CF4A13430B +S1133BE0043F3E601E00DAE7003C00000000046869 +S1133BF065726500043F3E60C44E36687047C04637 +S1133C00283D000000000D666C6173687661722DBA +S1133C1068657265043F3E60C14E3668704700B502 +S1133C20043F3E60BF4EFFF786FC043F3E60BE4E3D +S1133C30FFF781FC00BDDDE700B500F037F8396817 +S1133C403E600E46043F3E60B84EFFF78AFF00BD5B +S1133C5000B500F02BF839683E600E46043F3E6024 +S1133C60B34EFFF77EFF00BD00B5FFF7D8FF00F0AD +S1133C701DF839683E600E46043F3E60AD4EFFF7C6 +S1133C8070FF00BD00B500F011F839683E600E46C3 +S1133C90FFF794FF00BD00B5FFF7C1FFFFF7AAFFD0 +S1133CA0043F3E600226FFF7B9FC00BD00B5FFF7F4 +S1133CB0A1FF043F3E600226FFF7B0FC00BD00B543 +S1133CC0FFF798FFFFF77AFF00BD00B5FFF792FFFB +S1133CD0043F3E60974EFFF744FF00BD00B5FFF779 +S1133CE089FF043F3E60914EFFF73BFF00BD00B5E6 +S1133CF0FCF70EFDFCF734FCFCF737FCFCF73AFC50 +S1133D008168282901D1FCF74AFDFCF73FFD043FF7 +S1133D103E60894E09020E43FFF70DFCFCF7E5FBFC +S1133D20FCF712FC00BDC046983D00003006026955 +S1133D30660000B5FFF7AFFF043F3E607D4E043FD1 +S1133D403E60022600BD00B5FCF76BFDFDF789FD62 +S1133D50816A002910D002B4FCF7F6FBFFF74AFF92 +S1133D60043F3E600226FFF759FC043F3E6040BC1E +S1133D70043F3E60022600BDFFF7B9FFFFF73AFF9C +S1133D80043F3E600226FFF749FC043F3E60694E53 +S1133D90043F3E60022600BDCC3D000030000465B7 +S1133DA06C73650000B5022E26D140CFFFF77EFF6D +S1133DB0FDF7E8F9FFF71EFF39683E600E46FFF78E +S1133DC0D0FE043F3E60052600BDC046183E0000FC +S1133DD03000047468656E00052E01D140CF6EE793 +S1133DE0022E09D140CF00B5FFF704FF39683E60C9 +S1133DF00E46FFF7B6FE00BDFEF7B4FE175374720D +S1133E007563747572657320646F6E2774206D61B9 +S1133E107463680A00F082FD483E000030000672B8 +S1133E20657065617400042EE6D140CF00B5FDF7DE +S1133E308CF9FFF727FFFFF7DDFE39683E600E4679 +S1133E40FFF78FFE00BDC046743E000030060577C4 +S1133E5068696C65012ECFD140CF00B5FFF769FFCB +S1133E60023600BD012EC7D140CF00B5FFF76BFF6E +S1133E70023600BDD43E0000300605756E74696CD0 +S1133E80012EB9D140CFEFE67047012EB4D140CF17 +S1133E9000B5FDF7E6FC816A00290DD002B4FCF7F9 +S1133EA053FBFFF703FF39683E600E46043F3E6054 +S1133EB040BCFFF756FE00BDFFF719FFFFF7F6FE03 +S1133EC039683E600E46043F3E601A4EFFF749FED5 +S1133ED000BDC046E83E0000300005616761696EC0 +S1133EE0012E89D140CFCDE63C3F00003000056271 +S1133EF06567696E00B5FFF79EFE043F3E600126CC +S1133F0000BD000001FFFFFF00FFFFFF00F0FF1FE7 +S1133F1001F8FFFF00F8FFFFFF07000000E00000CA +S1133F2024F0FF1F002E000040CF000000D100004D +S1133F3000D7000000D0000000280000543F00001B +S1133F402002016B043F3E60029E7047043F3E60C6 +S1133F508E4E0AE0803F00002002016A043F3E606A +S1133F60009E7047043F3E60894E00B5FCF7B3FAEB +S1133F70FCF79CFB03601B021E43FFF7DCFA00BD49 +S1133F80AC3F000020020169043F3E6026007047F8 +S1133F9000B5043F3E607F4EFCF79DFAFCF786FBBC +S1133FA003601E43FFF7C7FA00BDC046EC3F0000A4 +S1133FB03000056C6561766500B5774801683B00A3 +S1133FC0043F1A68043B1A6008338B42F9D103B4E6 +S1133FD0FFF76CFE03BC330040CF04390B60016073 +S1133FE004390A6801320A6000BDC046004000007E +S1133FF0200006756E6C6F6F700030BC7047C04651 +S1134000384000003000052B6C6F6F70032E00D019 +S1134010F2E640CF00B5043F3E60604EFFF78FF8F4 +S1134020FFF716FE1AE0802000060019A419401BB1 +S1134030801940CF7047C0467C4000003000046CBB +S11340406F6F7000032E00D0D6E640CF00B5043F5A +S11340503E60534EFFF773F8FFF7EEFD00F052F9A0 +S11340604D48310040CF0160043F3E604D4EFFF7A4 +S113407066F800BD0134AC427047C046C44000003D +S1134080300202646F0000B5043F3E60464EFFF705 +S113409056F841480168043F3E600E00043F3E600C +S11340A000260760FFF7C7FD043F3E60032600BDFE +S11340B000B500F02EF8ECE730B4340040CF350002 +S11340C040CF7047BC4100003002033F646F00B52D +S11340D0043F3E60344EFFF732F8043F3E60334EF7 +S11340E0FFF729FA2C480168043F3E600E00FFF7F1 +S11340F0DDFD0136043F3E60012627480760FFF7D7 +S11341009AFD043F3E60032600BD00B500F001F8AF +S1134110E3E700B5FCF785FBFCF704FBFCF720FAAA +S1134120FCF723FAFCF726FA043F3E60204EFFF723 +S113413002FA0168282907D0043F3E601D4EC900D9 +S11341400E43FFF7F8F907E0043F3E604668043F7A +S11341503E600426FEF754FE8168282907D0043FF8 +S11341603E60154EC9000E43FFF7E5F907E0043F32 +S11341703E60C668043F3E600526FEF741FEFCF73C +S1134180B4F9FCF7B2F9FCF7FFF900BD029800009E +S113419000980000200000000CF0FF1F26400000E3 +S11341A074400000FA3F0000B8400000AC42000038 +S11341B030B400000400000005000000DC410000F1 +S11341C0300004636173650000B5FCF72AFB043F0B +S11341D03E600026043F3E60082600BDF441000016 +S11341E03000033F6F666C480AE0013EB64140CFA1 +S11341F07047C046A44200003002026F6600674860 +S1134200082E00D0F8E540CF00B5043F3E6006001C +S1134210FEF795FFFFF74AFD39683E600E4601360A +S1134220043F3E600926043F3E605D4EFFF783F97C +S113423000BD082E00D0DFE540CF00B5FCF772FAD0 +S1134240FCF78EF9FCF791F9FCF794F9043F3E6012 +S1134250544EFCF7A4FA0E430268282A15D142688A +S1134260FF2A07D840CF043F3E604F4E1643090251 +S11342700E430CE0043F3E601600FCF717FA1A00E8 +S1134280043F3E601E00FEF7BBFDD2001643FFF75D +S113429052F9FCF72AF9FCF777F9BBE7300040CF75 +S11342A0B0427047DC420000300005656E646F6602 +S11342B0092E00D0A0E540CF00B540B440CFFFF7B1 +S11342C0F5FC39683E600E46FFF708FD043F3E608A +S11342D040BC043F3E60082600BDC0462C4300009D +S11342E0300007656E6463617365082E00D083E552 +S11342F040CF00B5043F3E60294EFFF71CF900F0A3 +S113430001F800BD00B5300040CF00280DD003B443 +S113431001213140002903D0013EFFF7D6FC01E022 +S1134320FFF7CDFC03BC0138EFE700BD40430000BC +S1134330000005746F6B656E043F3E60202605E047 +S1134340B0430000000005706172736510B5FEF79C +S113435050FB310040CF300040CF144A126884181B +S1134360202E07D191420FD0835CB34202D1013297 +S11343708418F7E7914207D0835C0132B342F9D144 +S11343808618361B013E01E08618361B043F3C604C +S11343900648026010BD0000EA4100009C42000093 +S11343A040CF00008042000000280000E42F0020DD +S11343B0F04300000000056469676974D44B1B680E +S11343C0303E0BD30A2E0BD3073E0A2E06D3242EDF +S11343D006D3203E0A2E01D3242E01D30026704793 +S11343E09E42FBD2043F3E600026F6437047C0461F +S11343F0FC4400000000066E756D626572003FB5F6 +S1134400310040CF701E0126012204B4C04B1B684A +S11344100024002500293CD00130013902782D2ADE +S113442004D101B00022D24304B4F3E7232A01D11A +S11344300A23EFE7242A01D11023EBE7252A01D12F +S11344400223E7E72E2A01D10226E3E72C2A36D0FD +S1134450043F3E601600FFF7B3FF002E40CF2BD081 +S1134460043F3E602600043F3E602E00043F3E6051 +S11344701E00043F3E6000260FB4FCF762FB0FBC35 +S1134480350040CF340040CF0022A419554140CF1D +S1134490C0E704BC002A04D50022E443ED43013400 +S11344A0554133002600012B02D0043F3E602E000C +S11344B0043F3E601E003FBD01B000263FBD250005 +S11344C0002402260029E4D0425C01392E2AF9D0C6 +S11344D0043F3E601600FFF773FF002E40CFEBD081 +S11344E0043F3C60043F3E601E000FB4FCF7DDFB5C +S11344F00FBC340040CF40CFE4E7C0462045000065 +S11345000000062E6469676974000A2E01D23036F1 +S11345107047242E01D23736704723267047C04691 +S113452058450000000004686F6C6400330040CFFD +S1134530784801783F290DD20131017040180129D2 +S113454007D001380278013002700138013901299D +S1134550F7D103707047C046784500000000056835 +S11345606F6C643C330040CF6A4801783F2902D223 +S113457001310170435470479045000000000473FA +S113458069676E00002E01D440CF70472D26CDE719 +S1134590A4450000000002233E005E480678013076 +S11345A038607047BC45000000000366235310B513 +S11345B0202400F008F8013CFBD110BDE0450000C8 +S11345C000000266230000B5043F3E60504E36688A +S11345D0FCF789FAFFF799FFFFF7C4FF00BDC04657 +S11345E0FC45000000000223530000B500F00AF867 +S11345F0002EFBD138680028F8D100BD2846000001 +S11346000000012300B5043F3E60414E3668043F7C +S11346103E600026FCF769FBFCF73EF940CFFFF74C +S113462074FFFFF783FF00BD3C4600000000023C1E +S113463023003848002101707047C04650460000EE +S1134640000002662E00043F3E60202605E0C046BE +S1134650A0460000000003662E6E00B510B43400BE +S113466040CFFCF75FFDFCF7FDF9043F3E600026F8 +S1134670FFF7DFFFFFF7B9FF40CF2C26FFF772FFEC +S1134680002C03D0FFF79FFF013CFBD110BC40CFAF +S1134690FFF778FF043F3E60043F3E601EE0C046E3 +S11346A0B846000000000375642E00B5FFF7C1FF93 +S11346B0FFF79BFF12E0C046EC46000000000264D6 +S11346C02E0000B5FCF72EFDFCF7CCF9FFF7B1FF87 +S11346D0FFF78BFFFCF739FDFFF754FFFFF75DFF92 +S11346E0FEF7A0FAFEF7ECF900BDC0460047000053 +S11346F0000002752E00043F3E600026D5E7C04648 +S1134700184700000000012E043F3E60F617D8E76A +S1134710FC2F00205CF0FF1F6047000000000865CC +S113472076616C756174650000B5FEF762F901CFBE +S113473001B440B440CF8A48016802B4002101604A +S1134740FEF74AF900F014F8854802BC0160043F02 +S11347503E6040BC01BC043F3860FEF73DF900BD3B +S1134760F4480000000009696E7465727072657423 +S113477030B57C4887420BD9FEF7F4F910537461C5 +S1134780636B20756E646572666C6F770A00C5E0B2 +S1134790754887420AD2FEF7E5F90F537461636BDB +S11347A0206F766572666C6F770AB7E06F4C256888 +S11347B0002D01D13D002560FFF7BEFD002E02D182 +S11347C0043740CF30BD3868043F3E60043F386052 +S11347D0FFF77CF9310040CF320040CF002A15D1D9 +S11347E038683100FCF7FBFFFFF709FE320040CFC9 +S11347F0002ABED1FEF71AFAFEF7B4F90C206E6F48 +S11348007420666F756E642E0A0087E0584B1B682F +S1134810002B29D100252560564B0B4009D00437C5 +S113482040CF55480760FEF793FF514801210160CE +S11348309FE730230B40302B0ED1FEF7F3F9FEF740 +S113484091F91220697320636F6D70696C652D6F27 +S11348506E6C792E0A0061E0043740CF043F3E605D +S11348601600FEF712FD84E7043740CF43480840A2 +S113487001D1FCF7B4FF8020084008D1EB1B9B0852 +S11348804020084009D00F200840834205D3043F4C +S11348903E601600FEF7F9FC6BE7394808400CD07F +S11348A0FBF7C9FD1000FEF75EFC421C354890473B +S11348B038002060FBF7CEFD5BE7FBF7BCFDFBF7A0 +S11348C043FE002525603048084001D1FBF7A9FFCD +S11348D0043F3E60160010220A4002D0FEF7D5FCC9 +S11348E047E720220A4002D0FEF729FC41E7FEF701 +S11348F00FFB3EE710490000810009686F6F6B2DC4 +S113490071756974043F3E60204E70474C49000045 +S1134910A049000000000471756974001C488546B4 +S1134920104FFDF745FC1B480A2101601048002187 +S113493001600E480160FBF74CFE0948016016480F +S1134940016016494160114800688746FEF760F827 +S1134950FFF70EFFFEF706F905206F6B2E0AF5E749 +S1134960E42F002064F2FF1F64F1FF1F08F0FF1F13 +S1134970D82F00200008000010F0FF1F00040000E2 +S11349800002000028F0FF1F00100000D42F0020B8 +S113499064F3FF1FFC2F0020DC2F00209CF0FF1F7E +S11349A0BC49000000000565696E743F043F3E6029 +S11349B0EFF31086013EB6417047C046CC49000073 +S11349C020000465696E740062B67047DC4900001B +S11349D020000464696E740072B67047F4490000E4 +S11349E02000046970737200043F3E60EFF3058693 +S11349F07047C046004A00000000036E6F707047A5 +S1134A00444A0000000009756E68616E646C656458 +S1134A1000B5FEF7A7F814556E68616E646C6564A2 +S1134A2020496E746572727570742000043F3E6094 +S1134A30EFF30586FEF70EF9FEF794F802210A005B +S1134A4000BDC046584A00000000057265736574D5 +S1134A5099489A490160C0467C4A000081000B696C +S1134A6072712D7379737469636B043F3E60944E65 +S1134A707047104A0000924800688746A04A000028 +S1134A808100096972712D6661756C74043F3E6022 +S1134A908C4E7047104A00008A4800688746C0461A +S1134AA0C84A000081000E6972712D636F6C6C65D9 +S1134AB06374696F6E00043F3E60834E7047104A12 +S1134AC00000814800688746E84A000081000769C1 +S1134AD072712D616463043F3E607C4E7047104ADE +S1134AE000007A4800688746084B00008100076987 +S1134AF072712D636D70043F3E60754E7047104AAD +S1134B000000734800688746284B0000810007694D +S1134B1072712D646163043F3E606E4E7047104AAB +S1134B2000006C48006887464C4B0000810009690E +S1134B3072712D706F727461043F3E60664E7047EF +S1134B40104A0000644800688746C046704B000065 +S1134B508100096972712D706F727464043F3E6044 +S1134B605E4E7047104A00005C4800688746C046A5 +S1134B7000500000FFFF182D2D2D20466C61736836 +S1134B802044696374696F6E617279202D2D2D0044 +S1134B90002153480160FDF76FFD52488546524F8E +S1134BA02A26524852490160524853490160043F41 +S1134BB03E60514E514DB188514B994224D0514BD6 +S1134BC00B400AD0B01DFEF771FFFEF7CCFA038844 +S1134BD0408800040343ED1A16E080230B4013D0F1 +S1134BE00F23194089006D1AB01DFEF75FFFFEF711 +S1134BF0BAFA043F3E600600043F3E602E00043FC4 +S1134C003E600E00FCF7BAFEFEF72DFF300040CFE9 +S1134C10D1D03D48066040CF3C4805603C483D4902 +S1134C20374A884204D0023803889342F9D00230CC +S1134C3039490860FDF7BCFAFDF794FF514D6563EF +S1134C40726973702D5374656C6C61726973205250 +S1134C504120302E39206578706572696D656E74F7 +S1134C60616C2077697468204D3020636F72652011 +S1134C70666F72204B4C32355A31323820627920BB +S1134C804D61747468696173204B6F63680A2348CB +S1134C9000210160043F3E60214E043F3E60042633 +S1134CA0FEF714FF40CF002E02D0FEF7EEFA4AE6DC +S1134CB040CF33E6696E69740CED00E00400FA0538 +S1134CC0D02F0020CC2F0020C82F0020C42F00207C +S1134CD0C02F0020BC2F0020B82F0020B42F0020AC +S1134CE00081044064F3FF1F64F2FF1F00F0FF1F04 +S1134CF024F4FF1F04F0FF1F100400000030002004 +S1134D00FFFF0000000100001CF0FF1F24F0FF1F44 +S1134D10000002000050000018F0FF1F08F0FF1F01 +S1074D20B44C00008B S9030000FC diff --git a/kl25z128/thumbulator-source/thumbulator b/kl25z128/thumbulator-source/thumbulator deleted file mode 100644 index 11289f3..0000000 Binary files a/kl25z128/thumbulator-source/thumbulator and /dev/null differ diff --git a/linux-ra/mecrisp-stellaris-linux b/linux-ra/mecrisp-stellaris-linux index 9724905..f73391f 100644 Binary files a/linux-ra/mecrisp-stellaris-linux and b/linux-ra/mecrisp-stellaris-linux differ diff --git a/lm4f120-ra/mecrisp-stellaris-lm4f120.bin b/lm4f120-ra/mecrisp-stellaris-lm4f120.bin index b5c4363..3179404 100644 Binary files a/lm4f120-ra/mecrisp-stellaris-lm4f120.bin and b/lm4f120-ra/mecrisp-stellaris-lm4f120.bin differ diff --git a/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.bin b/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.bin index cfe97dc..bddfd0f 100644 Binary files a/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.bin and b/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.bin differ diff --git a/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.hex b/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.hex index 0cd3c52..db3c4f7 100644 --- a/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.hex +++ b/lpc1114fn28-ra/mecrisp-stellaris-lpc1114fn28.hex @@ -1,15 +1,15 @@ -:100000005C040010B94900000549000005490000E2 +:1000000064040010E949000035490000354900004A :1000100000000000000000000000000000000000E0 -:100020000000000000000000000000002F49000058 -:1000300000000000000000002F490000E34800001D -:100040002F4900002F4900002F4900002F490000D0 -:100050002F4900002F4900002F4900002F490000C0 -:100060002F4900002F4900002F4900002F490000B0 -:100070002F4900002F4900002F4900006F49000060 -:100080002F4900002F4900002F4900002F49000090 -:100090002F490000914900002F4900002F4900001E -:1000A0004F4900002F4900002F4900002F49000050 -:1000B0002F4900002F4900002F4900002F49000060 +:100020000000000000000000000000005F49000028 +:1000300000000000000000005F49000013490000BC +:100040005F4900005F4900005F4900005F49000010 +:100050005F4900005F4900005F4900005F49000000 +:100060005F4900005F4900005F4900005F490000F0 +:100070005F4900005F4900005F4900009F490000A0 +:100080005F4900005F4900005F4900005F490000D0 +:100090005F490000C14900005F4900005F4900005E +:1000A0007F4900005F4900005F4900005F49000090 +:1000B0005F4900005F4900005F4900005F490000A0 :1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 :1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 :1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 @@ -46,1160 +46,1163 @@ :1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E :1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E :1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1003000000070000FFFF1E2D2D2D204D6563726933 +:1003000038070000FFFF1E2D2D2D204D65637269FB :1003100073702D5374656C6C6172697320436F72D6 -:1003200065202D2D2D0007B59B48002B09D000F02E -:100330002FF800F035F800F01FF842612821016124 -:10034000F3E707BD00B5944800230169282905D1CA -:10035000426900F004F800F038F8F6E700BD03B594 +:1003200065202D2D2D0007B59348002B09D000F036 +:100330002FF800F035F800F01FF842602821016026 +:10034000F3E707BD00B58C4800230168282905D1D3 +:10035000426800F004F800F040F8F6E700BD03B58D :10036000043F3E601600043F3E601E0008B400F0EB -:1003700013FF08BC013303BD03B5013B043F3E60DE -:100380001E0008B400F0F2FE08BC320040CF03BDEE -:1003900003B5824801681E2901D000F024F803BD8E -:1003A0008169016201698161C16941624169C1611B -:1003B0001E21016170470FB5774801691E2903D0DE -:1003C000FFF7E6FFFFF7ECFF0FBD02B581690161A2 -:1003D000C169416100E002B5016A8161416AC161A0 -:1003E0001E21016202BD08B501681E2202600829B3 -:1003F0000BD2043F3E606A4E02F0C7FF043F3E60EE -:10040000684E0E4302F0C1FF08BD28290DD1043FFC -:100410003E60634E02F0B9FF436800F061F8043FAC -:100420003E60604E1E4302F0B0FF08BD00B500F014 -:1004300005F800F008F800F00BF800BD0FB55748BC -:10044000FFF7D1FF0FBD0FB55748FFF7CCFF0FBD2A -:100450000FB551480169062202611E2905D1043FEA -:100460003E60524E02F091FF2CE0282921D14369D1 -:1004700001681E2908D041688B4205D1043F3E60C7 -:100480004B4E02F082FF1DE081681E2908D0C16832 -:100490008B4205D1043F3E60464E02F076FF11E0EC -:1004A000043F3E601E00043F3E60062602F09EFBB5 -:1004B00008E0062906D0043F3E603D4EC9000E43C9 -:1004C00002F063FF00F001F80FBD33481E21016008 -:1004D00081600162816106210161002181627047B2 -:1004E00007B500F017F84360282101600023043F9E -:1004F0003E601E0002F07AFB07BD07B500F00AF867 -:10050000C360282181600123043F3E601E0002F089 -:100510006DFB07BD204801681E2904D0416899423F -:1005200001D1002307BD81681E2904D0C16899420A -:1005300001D1012307BD043F3E601E00704706B590 -:100540001B181968282926D15A6801681E2906D067 -:100550004168914203D1043F3E60174E08E0816834 -:100560001E290CD0C168914209D1043F3E60134E50 -:1005700000F026F813601E4302F007FF06BD043F9B -:100580003E601600190000F01BF80B60043F3E604F -:100590001E0002F02BFB06BD2800001048000010D2 -:1005A000043F0000386000004000001040CF000011 -:1005B000064600000E460000004600000846000007 -:1005C00007B5214801698269036A062905D0062A10 -:1005D00003D0062B01D0062307BD032905D0032A2B -:1005E00003D0032B01D0032307BD022307BD00B5B1 -:1005F000FFF7E6FF036001219940043F3E60134E80 -:100600000E4302F0C2FE00BD0FB50F4801691E295E -:1006100002D10F48FFF7EBFF0FBD0FB50A48816904 -:100620001E2904D1FFF7F0FF0A48FFF7E0FF0FBDD6 -:100630000FB50548016A1E2904D1FFF7EEFF0648F1 -:10064000FFF7D5FF0FBD00002800001000CF00000D -:1006500038000010400000104800001000B501698B -:10066000282903D14369FFF73BFF190000BD00B5FE -:100670008169282903D1C369FFF732FF190000BD42 -:100680000EB58269036A9A420AD1072A08D8043F44 -:100690003E60D600FFF794FF1E43836102F075FEB3 -:1006A0000EBD0EB501698269036A914202D099427A -:1006B00000D00EBD043F3E60CE00FFF781FF1E4319 -:1006C000036102F062FE0EBD00B5FFF77EFEFFF78C -:1006D00072FEFFF775FF036100BD01B506480368B0 -:1006E000013307D00023DB430360043F3E60034E29 -:1006F00002F04BFE01BD0000B40F001000B5000079 -:100700002407000042020432647570003868043F18 -:100710003E60043F3860704700B500F04FFC00F0C9 -:100720004DFC00BD440700006202053264726F7028 -:10073000043740CF704700B500F0F0FB00F0EEFB4F -:1007400000BDC04664070000440005327377617045 -:1007500007CF043F3860043F3E60043F3A600E001C -:100760007047C04678070000620004326E6970006E -:1007700007CF043F386070479407000044000532FB -:100780006F766572B868043F3E60043F3860FE686B -:100790007047C046B8070000440005327475636BAB -:1007A00007CF043F3860043F3E60043F3A60043F97 -:1007B0003960043F38607047DC07000046000432AF -:1007C000726F74003868B9683A69B86039613A6024 -:1007D00079687E60FE68F9607047C04600080000D6 -:1007E000460005322D726F743868B9683A6938610D -:1007F0003960BA60F968FE607E6879607047C0460B -:1008000028080000200203323E7201CF01B440B438 -:1008100040CF704700B5FFF760FF00F0A3FB00F08A -:1008200047FC00F045FC00BD5408000020020332E4 -:10083000723E043F3E6040BC01BC043F38607047DC -:1008400000B5FFF74AFF00F04EFC00F04CFC00F052 -:1008500089FB00BD84080000200203327240043F7F -:100860003E60019E043F3E60009E704700B5FFF76A -:1008700034FF043F3E600C4E03F0B5FA03F0B0FACB -:1008800000BDC046B0080000200206327264726FDC -:10089000700002B0704700B5FFF71FFF043F3E60D5 -:1008A000024E02F072FD00BD0198000002B000008F -:1008B000C808000042000364322F3868F107761040 -:1008C0004008084338607047DC0800006200036499 -:1008D000322A38680018764138607047F8080000FE -:1008E00042000464736872003868F10776084008B3 -:1008F000084338607047C046100900006200046475 -:1009000073686C0038680018764138607047C046DC -:10091000240900004200046461627300002E08D4C0 -:100920007047C04644090000420007646E65676175 -:10093000746538680021C043F64301304E41386089 -:100940007047C0465C090000640002642D0007CFB8 -:10095000121AB1410E00043F3A607047740900005A -:10096000640002642B0007CF12184E41043F3A6026 -:100970007047C04694090000610203733E64043F5F -:100980003E60F617704700B500F0B6FA00F063FD60 -:1009900000BDC046C0090000420003756D2A3868DA -:1009A000030073433B60010C320C0B005343B6B29F -:1009B00080B24E4350433618360CF6187047C04686 -:1009C000F00900004200026D2A003868C11705D006 -:1009D00040423860F01704D07642E0E7F017DED0EE -:1009E000764200B5FFF7DBFFFFF7A3FF00BDC0466F -:1009F000300A000044000375642A07CF5643414380 -:100A00007618010C130C59437618010C80B292B27F -:100A10005143434350430022C91852411204B618AF -:100A20000A04090C80184E41043F38607047C046E4 -:100A3000C40A000044000475646D2A0010B5002447 -:100A4000043F3E607E68043F3E603E69FFF7A7FFBB -:100A5000310040CF300040CF043F3E603E68043F4D -:100A60003E60FE6803B4FFF79AFF03BC330040CF3B -:100A7000320040CF043F3E603E68043F3E603E6926 -:100A80000FB4FFF78CFF0FBC9219634140CF891957 -:100A90006241634140CF043F3E607E68043F3E6058 -:100AA000FE680FB4FFF77BFF0FBC9219634140CF84 -:100AB00089196241634140CF1E003A607960B86095 -:100AC00010BDC046E80A00004300022A2F0000B50E -:100AD00040B440CFFFF779FF043F3E6040BC00F0D8 -:100AE0004FF8043700BDC0460C0B00004300052A38 -:100AF0002F6D6F6400B540B440CFFFF766FF043F31 -:100B00003E6040BC00F03CF800BDC046300B000029 -:100B1000430003752A2F00B540B440CFFFF73FFFD5 -:100B2000043F3E6040BC00F01CF8043700BDC046E6 -:100B3000540B0000430006752A2F6D6F640000B54A -:100B400040B440CFFFF72BFF043F3E6040BC00F0B5 -:100B500008F800BD740B0000430006756D2F6D6F23 -:100B6000640000B5043F3E60002600F01AF840CF54 -:100B7000043700BD940B00004300056D2F6D6F64BA -:100B800000B5043F3E60F61700F034F840CF04375C -:100B900000BDC046E80B000044000675642F6D6F71 -:100BA000640030B4002300227968B86835003C68DE -:100BB00040264000494152415B41AB4202D804D338 -:100BC000A24202D3121BAB410130013EF1D10E0013 -:100BD00038607B60BA6030BC704730B400237A68FC -:100BE000B9680020E2E7C046600C000044000564DC -:100BF0002F6D6F6400B5F01719D0FFF79AFEFFF75D -:100C0000A7FDF0170CD0FFF794FEFFF7A1FDFFF74B -:100C1000C8FFFFF79DFDFFF78CFEFFF799FD00BDB4 -:100C2000FFF796FDFFF7BDFFFFF783FE00BDFFF75F -:100C30008FFDF0170ED0FFF77CFEFFF789FDFFF761 -:100C4000B0FFFFF776FEFFF783FDFFF772FEFFF7B9 -:100C50007FFD00BDFFF77CFDFFF7A3FF00BDC04691 -:100C6000780C0000440002642F0000B5FFF7C2FFBB -:100C7000FFF77EFD00BDC046C00C000044000266C8 -:100C80002A0000B5F0170DD0FFF753FEFFF760FD07 -:100C9000F0170DD0FFF74DFEFFF7D0FE40CF01CF8C -:100CA000386000BDFFF754FDF017F5D0FFF741FEA7 -:100CB000FFF7C4FE40CF01CF3860FFF73AFE00BD1A -:100CC0000C0D0000440002662F0000B5F0170ED096 -:100CD000FFF72FFEFFF73CFDF0170ED0FFF729FEC0 -:100CE000FFF736FDFFF779FFFFF742FD00BDFFF785 -:100CF0002FFDF017F4D0FFF71CFEFFF729FDFFF7DB -:100D00006CFFFFF716FEFFF733FD00BD540D00002A -:100D100020020232210006CF3160726040CF70475E -:100D200000B5FFF785FC0169426906B400F0CEFD0D -:100D3000FFF741FB06BC0161282905D0043F3E6056 -:100D4000544E00F0C6FD00BD0432426100F0BEFD0D -:100D500000BDC0469C0D0000200202324000043F4E -:100D6000706838603668704700B500F0C5F80169F2 -:100D7000282909D0043F3E60474E00F088FD00F06E -:100D8000F1F800F081FD00BD41690431416100F0DE -:100D90007BFD00F0E7F800F077FD00BDBC0D000022 -:100DA00044000364753C07CF8E4204D801D19042C1 -:100DB00001D8002670470026F6437047DC0D00007E -:100DC00044000364753E07CFB14204D801D182428A -:100DD00001D8002670470026F6437047FC0D00003E -:100DE000440002643C0007CF8E4204DC01D19042F3 -:100DF00001DC002670470026F64370471C0E0000F9 -:100E0000440002643E0007CFB14204DC01D18242BB -:100E100001DC002670470026F6437047380E0000BC -:100E200062020364303C0437F617704700B500F0E7 -:100E3000ACF800F010FB00BD600E0000620203641D -:100E4000303D01CF0643013EB641704700B5043F37 -:100E50003E60124E00F083FA00F0D8FA00BDC046A2 -:100E60007C0E0000440003643C3E07CF50404E40DF -:100E70000643013EB641F6437047C046A00E00004F -:100E8000440002643D0007CF50404E400643013EFF -:100E9000B641704740600000406800000043000019 -:100EA000B40E0000200003737040043F3E603E001B -:100EB0007047C046C40E0000200003737021370045 -:100EC00040CF7047D80E0000200003727040043FEE -:100ED0003E606E467047C046E80E00002000037278 -:100EE0007021B54640CF70470C0F000061020364CB -:100EF0007570043F3E60704706B5FFF785FB0169DA -:100F00004269FFF758FA0161426106BD380F0000DF -:100F100061020464726F700040CF704700B50169D0 -:100F20001E2905D1043F3E60A24E02F02EFA00BDFC -:100F3000FFF74BFA00BDC046500F00006100043FB0 -:100F400064757000002E01D0043F3E607047C046BB -:100F50007C0F0000620204737761700039683E60A4 -:100F60000E0070470CB5FFF758FB026983690361F7 -:100F700082614269C3694361C2610CBDA80F000070 -:100F80006202036E69700437704700B5FFF73CFBDF -:100F900081691E2902D0FFF71EFA00BD043F3E60A2 -:100FA000844E02F0F2F900BDD00F00006202046F1F -:100FB00076657200043F3E607E68704700B5FFF7BB -:100FC0002CFB8169C269FFF7F6F90161426100BD3E -:100FD000FC0F00006202047475636B0001CF083FD0 -:100FE0007E603860704700B5FFF717FBFFF7D0F958 -:100FF000016901624169416200BDC04634100000D0 -:10100000630203726F7403CF083F78603E600E0086 -:1010100070470EB5FFF70CFB01698269036A8161B5 -:10102000026203614169C269436AC161426243610C -:101030000EBDC046581000006302042D726F74008C -:1010400003CF083F7E6039600600704700B5FFF7A8 -:10105000E0FFFFF7DEFF00BD6C1000002000047011 -:1010600069636B00B0003E587047C04684100000B2 -:1010700000000564657074684F49C91B043F3E60F9 -:101080008E087047A010000000000672646570743E -:101090006800043F3E606E464849891B8E087047D1 -:1010A000D41000002002023E720040B440CF7047CE -:1010B00000B5FFF712FBFFF7A7FAFFF7CFFA043FDF -:1010C0003E603F4E01228A40164302F05EF9FFF770 -:1010D0007CF900BD08110000200202723E00043FAE -:1010E0003E6040BC704700B5FFF7F7FAFFF763F9C1 -:1010F000FFF766FA0361043F3E60324E01229A40D8 -:10110000164302F042F900BD2811000020020272CD -:101110004000043F3E60009E704700B5FFF7DDFAD7 -:1011200002F05EFE00BDC0464C11000020020572B8 -:1011300064726F7001B0704700B5FFF7CEFA043FDC -:101140003E60214E02F021F900BDC0466011000052 -:10115000200005727069636BB6006E443668704794 -:101160008C110000000004726F6C6C00002E01D125 -:1011700040CF7047B0003958C019031F1A68026089 -:101180000438013EF9D104370E007047CC1100003D -:101190000000052D726F6C6C002E01D140CF70479E -:1011A000386839464A680A600431013EFAD108605D -:1011B00040CF7047043700005C0300105C0400104F -:1011C00000B4000000BC000001B00000E411000009 -:1011D000620203616E6401CF06407047043F3E60C7 -:1011E0007B4EBCE00012000062020362696301CF23 -:1011F000B04306007047043F3E60764EC9E0C046EB -:10120000181200006202026F720001CF064370479D -:10121000043F3E60704EA2E030120000620203788C -:101220006F7201CF46407047043F3E606B4E96E0C0 -:10123000481200006202012A01CF46437047043F72 -:101240003E60674E8BE0C0466812000041000363B9 -:101250006C7A300006D00026400002D001D2013660 -:10126000FAE7704720267047781200006100037289 -:101270006F720120C64170478C120000610003723A -:101280006F6C0020B61946417047C046C01200007E -:101290006202076172736869667401CF30410600AB -:1012A000704700B5043F3E604E4E043F3E604E4ED8 -:1012B000FFF7B3F941691F2928D91F21416125E0B2 -:1012C000E81200006202067273686966740001CF5A -:1012D000F0400600704700B5043F3E60434E043FB7 -:1012E0003E60434E12E0C046FC1300006202066CF2 -:1012F00073686966740001CFB0400600704700B59E -:10130000043F3E603B4E043F3E600026FFF785F9F8 -:101310000169282903D040CF00F03BF800BD043715 -:101320004169FFF752F8002901D140CF00BD1F29C4 -:101330000AD889010E430269D2001643FFF7C4F9A7 -:101340001E4302F022F800BD40CFFFF7BDF9043F75 -:101350003E60294E1B021E4302F017F800BD0FB578 -:10136000FFF75BF90169062901D1FFF7FBFD8269EF -:10137000282A01D1FFF7F6FDFFF782F9FFF76EF992 -:10138000C90082690E43164301F0FFFFFFF71DF805 -:101390000FBD0FB5FFF741F9FFF772F9FFF75EF9DF -:1013A0008269282A0BD1043F3E60C669FFF708F91D -:1013B0008361043F3E601E001A0001F017FCC90063 -:1013C0000E43164301F0E1FFFEF7FFFF0FBD0000E3 -:1013D0000040000080430000004300004040000047 -:1013E000404300000041000000100000C040000029 -:1013F00000080000804000000020000020140000D1 -:10140000610202303D00013EB641704700B500F078 -:1014100003F900F0AEFEFEF7D8FF7349816200BD0C -:1014200048140000610203303C3E013EB641F643E1 -:10143000704700B500F0F0F800F09BFEFEF7C5FF26 -:101440006A49816200BDC0466C140000610202302E -:101450003C00F617704700B500F0DEF8043F3E6030 -:10146000634E00F089FE6349816200BD8414000070 -:101470006000047472756500043F3E600026F64308 -:101480007047C0469814000060000566616C736583 -:10149000043F3E6000267047BC1400004202023E3A -:1014A0003D0001CFB042E9DA00267047043F3E60BC -:1014B000514E043F3E60514EB8E0C046E01400007B -:1014C0004202023C3D0001CFB042D7DD002670470A -:1014D000043F3E604A4E043F3E604A4EA6E0C0468E -:1014E000001500004202013C01CFB042C6DB0026DD -:1014F0007047043F3E60414E043F3E603E4E95E0E3 -:10150000201500004202013E01CFB042B6DC0026A9 -:101510007047043F3E603B4E043F3E60384E85E0DE -:1015200044150000620203753E3D01CF861BB641A3 -:10153000F6437047043F3E602C4E043F3E602A4E07 -:1015400074E0C04668150000620203753C3D01CF9F -:10155000361AB641F6437047043F3E602A4E043FB8 -:101560003E602A4E62E0C0468815000062020275A5 -:101570003C0001CF861BB6417047043F3E601A4EC7 -:10158000043F3E60194E51E0A8150000620202754A -:101590003E0001CF361AB6417047043F3E601B4EF5 -:1015A000043F3E60184E41E0C81500006202023C54 -:1015B0003E0001CF811B361A0E437047043F3E6048 -:1015C000134E043F3E6031E01C1700006202013DF3 -:1015D00001CF361A013EB6417047043F3E600D4EC2 -:1015E000043F3E6022E0000000D2000000D3000073 -:1015F000C017000000D5000000DB000000DA00008A -:1016000000DC000000DD000000D8000000D9000070 -:1016100000D0000000D1000000B5FEF7F5FF202348 -:10162000FEF78DFF1823FEF78AFF00BD00B5FEF719 -:10163000F4FF2023FEF783FF8269282A04D1FFF7F5 -:1016400091FC39683E600E4640CF0169282909D1D6 -:101650004169FF2906D8043F3E60644E0E4381690C -:10166000090206E0FEF7FAFF043F3E60604EC90043 -:1016700016430E4301F089FEFEF7A7FEFEF7A5FE16 -:10168000866240CF00BD0FB55A48816A002930D02C -:10169000043F3E60866A00218162310AD52901D16A -:1016A00040CF0FBDFEF787FEFEF78AFF0361D22908 -:1016B00003D1514E00F0A8FD0FBDD32905D14E4EE8 -:1016C00000F0A2FD00F0B3FD0FBD023601F05DFE9B -:1016D000043F3E60494E00F00DF800F0A8FD043FC5 -:1016E0003E60474E01F051FE043F3E60434E00F025 -:1016F00001F80FBD00B5FEF787FFFEF7D2FF0169C5 -:1017000009020E4301F041FE00BD00B5816A090ADD -:10171000D52901D1FEF759FE00BDC046381700009B -:101720006202036D696E01CFB04200DC06007047B3 -:10173000043F3E60334E2BE0541700006202036DFD -:10174000617801CFB04200DB06007047043F3E6085 -:101750002D4E1DE074170000620204756D61780063 -:1017600001CFB04200D306007047043F3E60274ED1 -:101770000EE0C04618180000620204756D696E0024 -:1017800001CFB04200D806007047043F3E60204EB3 -:1017900000B5FEF742FF01698269914203D140CF53 -:1017A000FEF719FE00BD062A01D1FFF7DBFB016938 -:1017B000282901D1FFF7D6FBFEF773FFFEF757FF8D -:1017C000C9000269043F3E60094E0E43164301F012 -:1017D000DCFD01F0DAFD043F3E600E4E0E43164381 -:1017E00001F0D3FDFEF7F7FD00BD0000002800006A -:1017F000804200002800001080410000002000000E -:1018000000E0000000DB000000DC000000D8000069 -:1018100000D3000000460000581800000000046DCE -:101820006F76650007B5310040CF320040CF002908 -:101830000FD0B2420DD006D3013E013A705C505435 -:101840000139FBD105E030781070013601320139E1 -:10185000F9D140CF07BDC0467C18000000000466E7 -:10186000696C6C00300040CF310040CF002902D0BD -:1018700001397054FCD140CF7047C046BC180000FD -:101880002002014036687047043F3E60984E00B524 -:10189000FEF7BAFE0369282B08D143697C21194061 -:1018A00009010E437C218B43FEF727FEDB001E431C -:1018B000FEF70AFF1E4301F068FD00BD101900008D -:1018C0002002012103CF30600E007047043F3E60CC -:1018D000884E00B5FEF7A1FE0369282B08D14369A5 -:1018E0007C21194009010E437C218B43FEF705FE44 -:1018F000DB001E438369282B02D1C369FEF7F0FD8C -:101900001E4301F042FDFEF760FDFEF75EFD00BDE7 -:10191000481900002002022B210003CF3268121860 -:1019200032600E00704700B5FEF777FEFFF7E4FA6D -:10193000FFF7AAFFFFF76DFB00F0CDFBFFF712FBEF -:10194000FFF7C4FF00BDC0468C19000020020268EA -:1019500040003688704700B5FEF756FE043F3E60F3 -:10196000654E0369282B08D143693E21194049017E -:101970000E433E218B43FEF7C0FDDB001E43FEF706 -:10198000A3FE1E4301F001FD00BDC046E4190000A6 -:1019900020020268210003CF30800E00704700B59E -:1019A000FEF73BFE043F3E60544E0369282B08D1EE -:1019B00043693E21194049010E433E218B43FEF706 -:1019C0009CFDDB001E438369282B02D1C369FEF70F -:1019D00087FD1E4301F0D9FCFEF7F7FCFEF7F5FC8E -:1019E00000BDC0461C1A0000200203682B2103CF53 -:1019F0003288121832800E00704700B5FEF70DFED7 -:101A0000FFF77AFAFFF7A7FFFFF703FB00F063FB8E -:101A1000FFF7A8FAFFF7C3FF00BDC046601A000039 -:101A20002002026340003678704700B5FEF7ECFDF7 -:101A3000043F3E60324E0369282B08D143691F21C1 -:101A4000194089010E431F218B43FEF756FDDB0031 -:101A50001E43FEF739FE1E4301F097FC00BDC04651 -:101A6000B81A000020020263210003CF30700E007C -:101A7000704700B5FEF7D1FD043F3E60214E03697B -:101A8000282B08D143691F21194089010E431F21CA -:101A90008B43FEF732FDDB001E438369282B02D106 -:101AA000C369FEF71DFD1E4301F06FFCFEF78DFCC0 -:101AB000FEF78BFC00BDC046081B0000200203633C -:101AC0002B2103CF3278121832700E00704700B508 -:101AD000FEF7A3FDFFF710FAFFF7A7FFFFF799FA4C -:101AE00000F0F9FAFFF73EFAFFF7C3FF00BD000070 -:101AF0000068000000600000008800000080000016 -:101B00000078000000700000481B00002002046202 -:101B10006973210003CF3268024332600E007047C0 -:101B200000B5FEF77AFDFFF7E7F9FFF7ADFEFFF727 -:101B300070FA043F3E60AB4EFFF711FCFFF712FA5C -:101B4000FFF7C4FE00BDC046881B000020020462EF -:101B50006963210003CF3268824332600E00704710 -:101B600000B5FEF75AFDFFF7C7F9FFF78DFEFFF747 -:101B700050FA043F3E609C4EFFF70BFCFFF7F2F972 -:101B8000FFF7A4FE00BDC046C81B00002002047879 -:101B90006F72210003CF3268424032600E007047FE -:101BA00000B5FEF73AFDFFF7A7F9FFF76DFEFFF767 -:101BB00030FA043F3E608D4EFFF7D1FBFFF7D2F9BC -:101BC000FFF784FE00BDC046FC1B0000200204623B -:101BD0006974400001CF36680640013EB641F643C5 -:101BE000704700B5FEF719FDFFF74EFE043F3E605B -:101BF0007F4EFFF7B4FBFFF71CFC00BD3C1C000050 -:101C0000200205686269732103CF32880243328063 -:101C10000E00704700B5FEF700FDFFF76DF9FFF706 -:101C20009AFEFFF7F6F9043F3E606E4EFFF797FB12 -:101C3000FFF798F9FFF7B3FE00BDC0467C1C00001B -:101C4000200205686269632103CF328882433280B3 -:101C50000E00704700B5FEF7E0FCFFF74DF9FFF707 -:101C60007AFEFFF7D6F9043F3E605F4EFFF791FB27 -:101C7000FFF778F9FFF793FE00BDC046BC1C0000DB -:101C800020020568786F722103CF3288424032808B -:101C90000E00704700B5FEF7C0FCFFF72DF9FFF707 -:101CA0005AFEFFF7B6F9043F3E60504EFFF757FB70 -:101CB000FFF758F9FFF773FE00BDC046F01C0000A7 -:101CC000200205686269744001CF36880640013EF3 -:101CD000B641F643704700B5FEF79FFCFFF73BFEA9 -:101CE000043F3E60424EFFF73AFBFFF7A2FB00BD08 -:101CF000301D0000200205636269732103CF327832 -:101D0000024332700E00704700B5FEF786FCFFF705 -:101D1000F3F8FFF78AFEFFF77CF9043F3E60314E8F -:101D2000FFF71DFBFFF71EF9FFF7A3FE00BDC0463E -:101D3000701D0000200205636269632103CF3278C1 -:101D4000824332700E00704700B5FEF766FCFFF765 -:101D5000D3F8FFF76AFEFFF75CF9043F3E60224EBE -:101D6000FFF717FBFFF7FEF8FFF783FE00BDC04645 -:101D7000B01D000020020563786F722103CF327816 -:101D8000424032700E00704700B5FEF746FCFFF788 -:101D9000B3F8FFF74AFEFFF73CF9043F3E60134EED -:101DA000FFF7DDFAFFF7DEF8FFF763FE00BDC04680 -:101DB000F41D0000200205636269744001CF36788B -:101DC0000640013EB641F643704700B5FEF725FCDC -:101DD000FFF72BFE043F3E60054EFFF7C0FAFFF70A -:101DE00028FB00BD0043000080430000404000008D -:101DF00000400000381E0000810009666C617368B5 -:101E00002D6B687A043F3E604F4E7047E02E000015 -:101E100000F09EFD1E466C6173682063616E6E6FFC -:101E200074206265207772697474656E20747769B6 -:101E300063650A0002F0A8FCE41E000000000831FF -:101E400036666C61736821003FB50F20304015D0B5 -:101E500000F07EFD223136666C61736821206E656C -:101E60006564732031362D616C69676E656420612D -:101E70006464726573730A0002F086FC3068013096 -:101E8000C6D170680130C3D1B0680130C0D1F068EC -:101E90000130BDD100F046F808CF04CF02CF01CF0A -:101EA000803F803F01B438004024284D20C0013CD1 -:101EB000FCD101BCFF243440E4190FC4FF25AE431C -:101EC0002348332101604660876080218031C160F2 -:101ED0001D49096801611F491F4A904780378037B3 -:101EE00040CF3FBD5C1F000000000A657261736552 -:101EF000666C6173680072B600F014F800F015F8B3 -:101F000000F026FD1A46696E697368656420657283 -:101F10006173696E672E20526573657420210A0013 -:101F200002F0CCFC00B5322101E000B534210848B4 -:101F30000160052141600721816003490968C16092 -:101F40000449054A904700BDDC0F0010FFFFFFFF6A -:101F5000DC060010F0060010F11FFF1F7C1F0000C0 -:101F6000000009696E6974666C617368534854496E -:101F70000022027001300139FBD17047642000005B -:101F800000000768666C6173682130B5320040CF8D -:101F9000500813D300F0DCFC1E68666C6173682186 -:101FA000206E65656473206576656E206164647279 -:101FB00065737365732E0A0002F0E6FB414B9A428B -:101FC00010D200F0C5FC1943616E6E6F74207772F9 -:101FD00069746520696E746F20636F726520210AD1 -:101FE00002F0D2FB130935482021046824099C42E1 -:101FF00026D014300139F8D1304820210468002C53 -:1020000017D014300139F9D100F0A2FC21546F6FC0 -:10201000206D616E792073636174746572656420EC -:10202000466C617368207772697465732E0A02F0DA -:10203000ABFB1B010360013941608160C16001613C -:102040000F2111400431465240CF01680131016037 -:102050000F221140082903D100F01BF8FFF7F4FE0E -:1020600030BDC046C820000000000A666C75736869 -:10207000666C6173680000B5104820210268002A70 -:1020800003D000F006F8FFF7DFFE14300139F5D178 -:1020900000BD043F3E604668043F3E608668043FE2 -:1020A0003E60C668043F3E600669043F3E600F26FE -:1020B000F643026816400022026070475C0400107C -:1020C0008002000000500000F42000006202012B9A -:1020D00001CF3618704700B5FEF79FFA043F3E6007 -:1020E000D84E043F3E60D84E8169282912D1FEF7B0 -:1020F00039FF0FE0642100006202012D01CF861B31 -:10210000704700B5FEF789FA043F3E60CF4E043FAA -:102110003E60CF4E016928290ED14169FF290BD8B5 -:1021200040CFFEF7ADFA0E43816909020E4301F07C -:102130002CF9FEF74AF900BD0437FEF78FFA8269E1 -:10214000282A03D1C369FEF7CBF91A008901D2000E -:102150000E431643FEF739F9FEF7B6FA1E4301F0B7 -:1021600014F900BD90210000610202312D00013EF2 -:102170007047043F3E60B74E00B5FEF745FA01696F -:10218000C9000E43FEF7A0FA1E4301F0FEF800BDA1 -:10219000A8210000610202312B0001367047043F84 -:1021A0003E60AD4EE8E7C046C02100006102023249 -:1021B0002D00023E7047043F3E60A84EDCE7C0465B -:1021C000D8210000610202322B0002367047043F22 -:1021D0003E60A34ED0E7C046F021000061020563D7 -:1021E000656C6C2B04367047043F3E609D4EC3E720 -:1021F000202200006102066E656761746500764208 -:102200007047043F3E60984E00B5FEF7FDF9FEF7BB -:1022100048FA01690E43C9000E4301F0B6F800BD4B -:10222000382200006102036E6F74F6437047043F6A -:102230003E608E4EE8E7C046502200006102037304 -:10224000687276087047043F3E60894EDCE7C046FE -:102250006022000061020373686C7600704706E03C -:1022600078220000610202322A0076007047043FA3 -:102270003E604026C8E7C046902200006102056328 -:10228000656C6C73B6007047043F3E608026BBE708 -:10229000A8220000610202322F0076107047043F2E -:1022A0003E60744EB0E7C046F42200006102036154 -:1022B0006273F01736184640704700B5FEF7A4F970 -:1022C000FEF7EFF91E2101600169043F3E606A4E8E -:1022D000CA00164301F059F8043F3E605A4E0E43BF -:1022E000164301F052F8043F3E60644E0E4301F085 -:1022F0004CF800BD3C230000420005752F6D6F6453 -:10230000310040CF002903D1043F3E6000267047D2 -:10231000012200238E4206D9003104D45200490024 -:1023200001D48E42FAD88E4201D3761A134349085B -:102330005208F8D1043F3E601E007047AC230000F5 -:102340004200042F6D6F640000B5300040CF002EB6 -:102350001CDA764200280CDA4042043F3E60060058 -:10236000FFF7CEFF300040CF7642043F3E600600CC -:1023700000BD043F3E600600FFF7C2FF300040CFC3 -:1023800040427642043F3E60060000BD002807DA66 -:102390004042043F3E600600FFF7B2FF764200BDB8 -:1023A000043F3E600600FFF7ABFF00BDC023000006 -:1023B0004200036D6F6400B5FFF7C6FF40CF00BD5C -:1023C000D42300004200012F00B5FFF7BDFF043702 -:1023D00000BDC046E82300006100046576656E001C -:1023E000012030403618704700240000810004624C -:1023F00061736500043F3E60214E70470A00000093 -:102400001824000000000662696E617279001C48A1 -:10241000022101607047C0463024000000000764BC -:102420006563696D616C16480A2101607047C0469A -:10243000D024000000000368657811481021016075 -:102440007047000000300000001800000038000055 -:10245000001A0000401E0000401C0000801E00000A -:10246000801C0000001D000040420000C04300002E -:102470004008000040100000C0170000404000006D -:10248000D80F00107E487F4A0168114301607E48E2 -:10249000C12101607D48016079487D4A016811438E -:1024A00001607C48012101607B48802101607B48FC -:1024B000852101607A48042101607A480021016089 -:1024C0007548032101607848072101607047C046C4 -:1024D000EC240000810009686F6F6B2D656D6974D5 -:1024E000043F3E60714E7047E22500000825000061 -:1024F000810008686F6F6B2D6B657900043F3E604B -:102500006B4E70470A2600002825000081000A68EB -:102510006F6F6B2D656D69743F00043F3E60654EC3 -:10252000704738260000C046442500008100096835 -:102530006F6F6B2D6B65793F043F3E605E4E704759 -:10254000662600006425000081000A686F6F6B2D0D -:10255000706175736500043F3E60584E70476A486D -:102560000000C0467C250000000004656D69740011 -:102570000FB54E4800F029F80FBDC0469025000069 -:102580000000036B65790FB5494800F01EF80FBDD8 -:10259000A4250000000005656D69743F454800688A -:1025A0008746C046B82500000000046B65793F00EF -:1025B000414800688746C046D025000000000570ED -:1025C000617573653D480068874600688746C04668 -:1025D000F825000000000B73657269616C2D656D54 -:1025E000697400B500F028F8002E40CFFAD0F6B29A -:1025F0002B48066040CF00BD2426000000000A736F -:10260000657269616C2D6B65790000B500F02BF87F -:10261000002E40CFFAD0043F3E60214E3668F6B21D -:1026200000BDC0465426000000000C73657269614D -:102630006C2D656D69743F0000B5FFF7C3FF043F63 -:102640003E6000261E4820220168114000D0F6435B -:1026500000BDC046C426000000000B7365726961AE -:102660006C2D6B65793F00B5FFF7ACFF043F3E6012 -:102670000026134801220168114000D0F64300BD36 -:102680008080044040000100A4400440A840044071 -:1026900000100000988004400C800040288000401A -:1026A000008000400480004008800040D40F0010EB -:1026B000D00F0010CC0F0010C80F0010C40F001076 -:1026C00014800040E826000000000763657870650C -:1026D000637400B5386801B40130386000F00BF85D -:1026E00001BC067040CF00BD6027000000000661FD -:1026F00063636570740000B502CF01390022FFF7F3 -:1027000042FF300040CF7F2809D0202819D2092865 -:1027100016D00A281FD00D281DD00828EFD1002A76 -:10272000EDD000F015F903082008002AE7D0885CF6 -:10273000013A80230340E2D040230340F5D0DEE796 -:102740002020B242DBD2043F3E600600FFF710FFBC -:1027500001328854D3E7160000F0A8F800BDC04647 -:1027600074270000400003746962043F3E602B4EF2 -:102770007047C0468C2700008100033E696E043F0D -:102780003E60274E704700000000C046B42700009E -:1027900082000E63757272656E742D736F7572634D -:1027A0006500043F3E601F4E70470000000094002B -:1027B0000010C046D0270000000009736574736FD5 -:1027C00075726365174802CF0660416040CF70475D -:1027D000F0270000000006736F7572636500043F08 -:1027E0003E60104E043F7068386036687047C046DF -:1027F0002828000000000571756572790FB508483A -:1028000000210160FFF7B1FF043F3E60043F3E60DE -:10281000C826FFF770FFFFF7D5FF0FBD940000102B -:10282000C00F0010B80F00107828000000000763E8 -:102830006F6D706172650FB5310040CF01CF884276 -:1028400002D040CF00260FBD02CF002810D00138A3 -:102850000A5C335C412A02D35B2A00D22032412B2E -:1028600002D35B2B00D220339A42EED000260FBD5C -:102870000026F6430FBDC0468C280000000002630E -:10288000720000B500F064F8010A00BDA028000045 -:10289000000002626C00043F3E6020267047C04684 -:1028A000B42800000000057370616365043F3E605A -:1028B00020265DE6D4280000000006737061636581 -:1028C000730000B5002E03DDFFF7F0FF013EFBD1E2 -:1028D00040CF00BDE42800005000065B63686172D1 -:1028E0005D0005E0FC2800000000046368617200E0 -:1028F00000B501F057FC40CF367800BD0C29000030 -:1029000050040128043F3E60292606E028290000E3 -:102910005004015C043F3E60002600B501F04CFC11 -:10292000043740CF00BDC046702900001000022EC1 -:1029300022009F4800B5043F3E60060000F0DEF92B -:10294000043F3E60222601F037FC00F05EFD00BD32 -:102950000AB4043F3E607646013E337801210133DC -:1029600019405B187146C9188E460ABC3CE0C04647 -:10297000982900001000026322008E48DAE7043F25 -:102980003E607646013E33780121013319405B18E1 -:102990007146C9188E467047C429000010000273A2 -:1029A00022008548C6E7043F3E607646043F3E600D -:1029B000013E36780121731C19405B187146C91815 -:1029C0008E467047DC290000000005636F756E7449 -:1029D0000136043F3E60013E36787047042A00000D -:1029E000000005637479706501B53078002807D060 -:1029F0000136043F3E603678FFF7BAFD0138F7D163 -:102A000040CF01BD342A00000000047479706500D5 -:102A1000310040CF300040CF00B5002908D000225F -:102A2000043F3E60865CFFF7A3FD01329142F7D17F -:102A300000BDC046702A00000000046865782E00C2 -:102A400007B5310040CF20200F220438043F3E60FC -:102A50000E00C6401640092E01D9373600E0303648 -:102A6000FFF786FD0028F0D1FFF720FF07BDC04625 -:102A7000802A0000000003682E731FB54F4C0EE043 -:102A8000902A0000000003752E731FB54C4C06E021 -:102A9000102B00000000022E73001FB5494C4A495C -:102AA000C91B8908494A106803B40A201060FFF75F -:102AB0004FFF08537461636B3A205B00043F3E6034 -:102AC0000E0001F057FDFFF743FF025D200003BC3D -:102AD0003E4A106000290AD03D4A106806B4043FFF -:102AE0003E600600A04706BC043A0139F5D1FFF765 -:102AF0002FFF0620544F533A2000043F3E6036001B -:102B0000A047FFF725FF04202A3E0A001FBDC0464C -:102B1000D42B0000000005776F72647300B5FFF7D7 -:102B200017FF010A00F0B9FEFFF712FF09416464C4 -:102B3000726573733A20043F3E60FFF781FFFFF731 -:102B400007FF064C696E6B3A2000043F3E60366812 -:102B5000FFF776FFFFF7FCFE07466C6167733A20CC -:102B6000043F3E60B688FFF76BFFFFF7F1FE0643B8 -:102B70006F64653A2000B01D00F0CAFE043F3E605D -:102B80000600FFF75DFFFFF7E3FE064E616D653A55 -:102B90002000043F3E600636FFF726FFFFF7D8FE11 -:102BA000010A00F092FE300040CFBDD040CF00BD02 -:102BB000502900007E290000A6290000412A0000BB -:102BC00063450000754500005C030010D80F00103D -:102BD00058030010F02C0000000010726567697344 -:102BE0007465726C69746572616C2C003FB5350058 -:102BF00040CF2900C90029432D02AC480543FF23DB -:102C000000223000D040984301D00132F9E7300073 -:102C1000D04018402843043F3E60060000F0B5FB5A -:102C2000A348054318009040864310D0002430008C -:102C3000E040984301D00134F9E7101B043F3E60A7 -:102C40000E008001064300F0A0FB2200DFE7002A0F -:102C500006D0043F3E600E009201164300F095FB43 -:102C600040CF3FBD1FB5310040CF924C0C43C9004F -:102C70000C434901300040CF020EFF231A408B4B1A -:102C80000B431343043F3E601E0000F07EFB043FF5 -:102C90003E60260000F079FB020CFF231A40864BB1 -:102CA0000B431343043F3E601E0000F06EFB043FE5 -:102CB0003E60260000F069FB020AFF231A407E4BAB -:102CC0000B431343043F3E601E0000F05EFB043FD5 -:102CD0003E60260000F059FB0200FF231A40764BAD -:102CE0000B431343043F3E601E0000F04EFB1FBD2C -:102CF000602D000000000563616C6C2C0FB5330083 -:102D000000F0AAFE300040CF1B1A043B6B4919406B -:102D100000290ED06A4A91420BD00136043F3E6032 -:102D20000026FFF763FF043F3E60664E00F02DFB78 -:102D30000FBD40CF5B086448644919400843DB0A73 -:102D400063491940090408439B0A01211940890677 -:102D50000843043F3E60060000F047FB0FBDC0463D -:102D6000B42D00000000086C69746572616C2C0061 -:102D700008B5043F3E60574E00F007FB043F3E603D -:102D8000554E00F002FB554B3000184098420BD1D5 -:102D9000F643043F3E600626FFF728FF043F3E60EF -:102DA0004F4E00F0F2FA08BD043F3E600626FFF7E2 -:102DB0001DFF08BDDC2D0000000006637265617414 -:102DC000650000B500F047F82D200002FB30804779 -:102DD000043F3E607646013E00BDC046482E0000DE -:102DE000200005646F65733E2D200002FB30804794 -:102DF000043F3E607646013E7047043F3E607646A3 -:102E0000013E384A1368384909683648834205D27A -:102E10000F2008400E2805D00231F9E702200840B3 -:102E200000D10231023111600136043F3E600026BC -:102E3000FFF718FF043F3E60224E00F0A6FA136031 -:102E400000F0FFF900BDC046F02E00000000073C76 -:102E50006275696C647300B500F0A4FB21480168D9 -:102E6000204A91420CD200F0F7FD0F2006400E2EB2 -:102E700040CF10D0043F3E60362600F086FAF2E7DD -:102E800000F0EAFD0220064040CF04D1043F3E603E -:102E9000362600F07AFA043F3E60144E00F075FAD0 -:102EA000043F3E60102600F0E3FA00BD0020000061 -:102EB0000010000000020000003000000100C0FF10 -:102EC0000000C0FF8047000000F800F0FF0700008E -:102ED000FF030000043F00003E6000000000FFFF11 -:102EE000F6430000000000101400001000B50000C0 -:102EF000FC2E00005000035B275D03E0142F000050 -:102F00000000012700B501F04DF900F040FD300050 -:102F100040CF00BD542F0000100008706F73747014 -:102F20006F6E650000B5FFF7EDFF102101400DD178 -:102F30002021014005D0FFF71BFF043F3E60E74E14 -:102F400004E0FFF715FF043F3E60E54EFFF7D6FEB5 -:102F500000BDC046A02F0000000007696E6C696EBE -:102F6000652C00B5DF49E04AE04B3088884208D044 -:102F7000904208D0984206D0043F3E60060000F020 -:102F800004FA0236F1E740CF00BD0EB4D64AD74B63 -:102F900001880230914201D09942F9D10EBC7047AC -:102FA000B42F00000000047265742C00043F3E60E2 -:102FB000CD4EEAE1C42F000030000465786974004A -:102FC000F4E7C046DC2F00003000077265637572BD -:102FD0007365043F3E60C64E36688FE6F42F0000EE -:102FE0008100057374617465043F3E60C14E704793 -:102FF00000000000083000000000015DBD48002115 -:10300000C94301607047C046183000001000015BE2 -:10301000B848002101607047403000000008013AC4 -:1030200000B5B548076000F0BDFA043F3E60AD4E04 -:1030300000F0ABF9AF480021C943016000BDC046B4 -:10304000A03000003010013B00B5AB480168B94228 -:103050000ED0FFF77DFC1520537461636B206E6FFB -:10306000742062616C616E6365642E0A01F08CFBF2 -:10307000043F3E609C4E9F480068411C07D00628D4 -:1030800004D8043F3E609D4E00F00EF9974E00F0CC -:103090007CF900F0D6F897480021016000BDC046D9 -:1030A000B430000000000765786563757465300012 -:1030B00040CF8746CC300000101009696D6D656403 -:1030C00069617465043F3E601026EDE0E430000065 -:1030D000101006696E6C696E6500043F3E60202624 -:1030E000E2E0C0460031000010100B636F6D7069A4 -:1030F0006C656F6E6C79043F3E603026D4E0C0464C -:103100001C31000010100A302D666F6C6461626C17 -:103110006500043F3E604026C6E0C04638310000EE -:1031200010100A312D666F6C6461626C6500043F9B -:103130003E604126B8E0C0465431000010100A320B -:103140002D666F6C6461626C6500043F3E604226D0 -:10315000AAE0C0467031000010100A332D666F6C73 -:103160006461626C6500043F3E6043269CE0C0469B -:103170008C31000010100A342D666F6C6461626C33 -:103180006500043F3E6044268EE0C046A831000042 -:1031900010100A352D666F6C6461626C6500043F27 -:1031A0003E60452680E0C046C431000010100A365B -:1031B0002D666F6C6461626C6500043F3E6046265C -:1031C00072E0C046E031000010100A372D666F6CC7 -:1031D0006461626C6500043F3E60472664E0C0465F -:1031E00010320000000008636F6E7374616E74002B -:1031F00000B500F0D7F9FFF7BBFD043F3E603B4E42 -:1032000000F0C3F8FFF785FF00F01BF800BDC046D3 -:103210003432000000000932636F6E7374616E74A3 -:1032200000B500F0BFF939683E600E46FFF7A0FD1B -:10323000E1E7C04698320000000006736D756467D0 -:10324000650000B52E4801682D4A91421ED2023910 -:103250000A882C4B9A4204D1043F3E602A4E00F06B -:1032600094F800F06BF800F07DF828480068043FFF -:103270003E600600264909680431214A136811603E -:1032800000F083F81360FEF7F6FE00BD00F056F87C -:10329000043F3E60002608E014330000000008737D -:1032A0006574666C6167730000B515480168144A5F -:1032B000914205D2154801683143016040CF00BDFD -:1032C000320040CF12480068043001880D4B99420B -:1032D00001D1110000E01143018000BD622F000008 -:1032E000FC2C000000B5000000BD0000704700008D -:1032F00014000010B40F0010100000102010000087 -:1033000000000010FFFF000000000000200000107F -:103310000400001030330000410007616C69676EE3 -:10332000656401203040361802203040361870475E -:1033300054330000000005616C69676E00B58E486B -:1033400001680220014004D0043F3E60002600F0E6 -:103350001CF800BD80330000000008616C69676ED6 -:1033600031362C0000B5844801680F20014005D09B -:10337000043F3E60002600F008F8F4E700BDC046B8 -:10338000C4330000000002682C000FB5B6B27B48C1 -:103390000168002902D0013100D00160764801683F -:1033A000754A914205D2043F3E600E00FEF7EDFDE6 -:1033B00002E0320040CF0A80043F3E60022600F067 -:1033C00057F80FBDE03300000000012C00B5043FAA -:1033D0003E60FFF7DAFF360CFFF7D7FF00BDC046AF -:1033E000FC3300000000033E3C2C00B5043F3E606F -:1033F000360CFFF7CAFFFFF7C8FF00BD64340000BA -:10340000000007737472696E672C07B5FF213140A5 -:1034100040CF300040CF002905D1043F3E60002658 -:10342000FFF7B3FF07BD043F3E60067836020E4348 -:10343000FFF7ABFF0130013902290AD3043F3E6098 -:103440004678360202781643FFF79FFF02300239B2 -:10345000F2E7002900D107BD043F3E600678FFF780 -:1034600094FF07BDC0340000000005616C6C6F74F0 -:1034700041480168404A91420FD2320040CF89183A -:103480003F4A914219D3FFF763FA0B466C617368A8 -:103490002066756C6C0A01F077F9320040CF89180C -:1034A000384A1268914208D3FFF752FA0952616D07 -:1034B0002066756C6C0A01F067F901607047C046C0 -:1034C000E834000000000D636F6D70696C65746F07 -:1034D00072616D3F043F3E60002627480068264920 -:1034E000884248D3F64370470835000000000C635B -:1034F0006F6D70696C65746F72616D001E48006855 -:103500001D49884211D370479435000000000E63B6 -:103510006F6D70696C65746F666C617368001648D6 -:1035200000681549884200D2704717481749026859 -:103530000B680A6003601048154902680B680A604E -:10354000036010480068834215D300B5FFF700FA06 -:1035500023205661726961626C657320636F6C6CC5 -:1035600069646520776974682064696374696F6E43 -:103570006172790A00BD704700000010B40F00109E -:103580000080000024000010040000101C00001047 -:103590001800001090360000000008286372656172 -:1035A0007465290000B500F0FDFD002E0ED1FFF777 -:1035B000CFF91520437265617465206E656564738B -:1035C000206E616D6520210A01F0DEF83868043F45 -:1035D0003E60043F386000F0ABF940CF002E40CF92 -:1035E00011D03868043F3E60043F3860FFF7B0F9FF -:1035F000095265646566696E6520FFF709FAFFF791 -:10360000A7F9022E0A00FFF799FE92480068914937 -:10361000884225D2904800210160FFF7A3FE043FB5 -:103620003E600C26FFF724FF00F016FA043F3E60D0 -:103630000626FFF71DFFFDF703FDFFF7E6FE8748AF -:1036400001680A68864B9A4207D1824A1368116062 -:10365000043F3E60FFF7BAFE1360066040CF12E001 -:1036600000F0FAF97D48043F3E600668FFF7AEFEC1 -:10367000043F3E607B4EFFF788FE7848310040CF24 -:103680000160FFF7C2FE734801687748016000BD22 -:10369000A83600000000087661726961626C6500FE -:1036A000043F3E60012613E0C036000000000932EE -:1036B0007661726961626C65043F3E60022607E0D4 -:1036C000983700000000096E7661726961626C656E -:1036D00000B5FFF767FF5F4801685E4A914233D249 -:1036E0000F200640B20061480168891A604A914281 -:1036F0000BD2FFF72DF90F4E6F7420656E6F756753 -:10370000682052414D0A01F03FF80160043F3E60DD -:103710000E00FFF72DFB043F3E60564EFFF735FECF -:10372000300040CF0200002805D00E600431FFF7C2 -:103730004DFE0138F9D1043F3E6080261643FFF765 -:10374000B3FDFFF77EFD00BD00F086F902200640C4 -:1037500040CF04D1043F3E603626FFF716FE043FFB -:103760003E60454EFFF741FE043F3E60434EFFF78B -:103770003CFE043F3E603F4EFFF707FE300040CF67 -:10378000002803D0FFF722FE0138FBD1FFF7C1FC70 -:10379000FFF757FD00BDC0468438000000000762F7 -:1037A00075666665723A00B5FFF7FCFE0120304091 -:1037B000361802203040361826480168254A9142C2 -:1037C00026D22A480168891B294A91420BD2FFF769 -:1037D000BFF80F4E6F7420656E6F75676820524199 -:1037E0004D0A00F0D1FF0160043F3E600E00FFF77C -:1037F000BFFA043F3E601F4EFFF7C7FDFFF7E6FD2F -:10380000043F3E601E4EFFF74FFDFFF71AFD00BD5F -:1038100000F022F90220064040CF04D1043F3E6070 -:103820003626FFF7B2FD043F3E60134EFFF7DDFD85 -:10383000043F3E60114EFFF7D8FD043F3E600D4E41 -:10384000FFF7A3FDFFF714FEFFF763FCFFF7F9FC9A -:1038500000BD000000000010200000100400001057 -:10386000FFFFFFFFFFFF0000140000102400001006 -:1038700000070010704700003E60043F02367E469D -:1038800040010000B438000000000F6469637469EF -:103890006F6E617279737461727442480068414955 -:1038A000043F3E60884201D23F4E70473F4E36682B -:1038B0007047C046F038000000000E646963746908 -:1038C0006F6E6172796E6578740003B5316838483F -:1038D000814207D08879FF2804D00E00043F3E6063 -:1038E000002603BD043F3E600026F64303BDC046EC -:1038F0002439000000000A736B6970737472696E7A -:1039000067003178013101220A4089187618704722 -:1039100006B40178013101220A408918401806BC1A -:103920007047C046B839000000000466696E640044 -:103930003FB500220023350040CF340040CFFFF7D1 -:10394000ACFF1C48B188884217D0043F3E60063661 -:10395000FFF73EF8043F3E602600043F3E602E0025 -:10396000FEF769FF002E40CF07D0B01DFFF7D0FF54 -:1039700002000B000B48824204D2FFF7A6FF300082 -:1039800040CFDED01600043F3E601E003FBD00B5B4 -:1039900031003868FFF7CCFF3A68002A01D100F007 -:1039A0005FFE00BD000000100003000004000010D6 -:1039B000FFFFFFFFFFFF0000143A00000000066356 -:1039C0006A756D702C00320040CF310040CF8B1BE8 -:1039D000043BEA49194000290DD0E94881420AD048 -:1039E000FEF7B6FF0D4A756D7020746F6F2066612B -:1039F000720A00F0C9FE5B10FF210B401343300038 -:103A00001E0000B5DF4A13681060FFF7BEFC1360AC -:103A100000BDC0464C3A00000000056A756D702C70 -:103A2000310040CF300040CF0B1A043BD64919403B -:103A3000002902D0D54A9142D2D15B10D44A13401A -:103A4000D44A1343043F3E601E00DAE7643A0000A4 -:103A50000000046865726500043F3E60C94E366828 -:103A60007047C046A03B000000000D666C617368A3 -:103A70007661722D68657265043F3E60C64E366899 -:103A8000704700B5043F3E60C44EFFF77EFC043F24 -:103A90003E60C34EFFF779FC00BDDDE700B500F0E6 -:103AA00037F839683E600E46043F3E60BD4EFFF772 -:103AB0008AFF00BD00B500F02BF839683E600E4665 -:103AC000043F3E60B84EFFF77EFF00BD00B5FFF734 -:103AD000D8FF00F01DF839683E600E46043F3E6096 -:103AE000B24EFFF770FF00BD00B500F011F8396865 -:103AF0003E600E46FFF794FF00BD00B5FFF7C1FF23 -:103B0000FFF7AAFF043F3E600226FFF7B1FC00BDAD -:103B100000B5FFF7A1FF043F3E600226FFF7A8FCB7 -:103B200000BD00B5FFF798FFFFF77AFF00BD00B5B5 -:103B3000FFF792FF043F3E609C4EFFF744FF00BD3D -:103B400000B5FFF789FF043F3E60964EFFF73BFF4D -:103B500000BD00B5FCF758FD01694269FCF735FC72 -:103B6000FCF76CFCFCF76FFC0369282B02D143695E -:103B7000FCF7B6FC282908D1043F3E608C4E002A91 -:103B800000D00136FFF701FC06E0043F3E60894E9D -:103B900009020E43FFF7F9FBFCF75AFC00BDC046D3 -:103BA000103C000030060269660000B5FFF7A5FF73 -:103BB000043F3E607D4E043F3E60022600BD00B5DE -:103BC000FCF78BFDFDF7A1FD816A002910D002B43E -:103BD000FCF72CFCFFF740FF043F3E600226FFF796 -:103BE00047FC043F3E6040BC043F3E60022600BDEF -:103BF000FFF7AFFFFFF730FF043F3E600226FFF7FD -:103C000037FC043F3E60694E043F3E60022600BD23 -:103C1000443C0000300004656C73650000B5022E62 -:103C200026D140CFFFF774FFFDF70AFAFFF714FF24 -:103C300039683E600E46FFF7C6FE043F3E6005262B -:103C400000BDC046903C00003000047468656E0002 -:103C5000052E01D140CF64E7022E09D140CF00B537 -:103C6000FFF7FAFE39683E600E46FFF7ACFE00BD76 -:103C7000FEF76EFE17537472756374757265732068 -:103C8000646F6E2774206D617463680A00F07CFDB8 -:103C9000C03C000030000672657065617400042E3F -:103CA000E6D140CF00B5FDF7AEF9FFF71DFFFFF7F6 -:103CB000D3FE39683E600E46FFF785FE00BDC04664 -:103CC000EC3C00003006057768696C65012ECFD1A9 -:103CD00040CF00B5FFF769FF023600BD012EC7D106 -:103CE00040CF00B5FFF76BFF023600BD4C3D000032 -:103CF000300605756E74696C012EB9D140CFE5E6CA -:103D00007047012EB4D140CF00B5FDF7FEFC816AAB -:103D100000290DD002B4FCF789FBFFF7F9FE3968E2 -:103D20003E600E46043F3E6040BCFFF74CFE00BDC7 -:103D3000FFF70FFFFFF7ECFE39683E600E46043FC9 -:103D40003E601A4EFFF73FFE00BDC046603D0000DA -:103D5000300005616761696E012E89D140CFC3E6ED -:103D6000B83D0000300005626567696E00B5FFF779 -:103D700094FE043F3E60012600BD000001FFFFFFEE -:103D800000FFFFFF0000001001F8FFFF00F8FFFF39 -:103D9000FF07000000E0000024000010002E0000DB -:103DA00040CF000000D1000000D7000000D000008C -:103DB0000022000000280000D03D00002002016B1E -:103DC000043F3E60029E7047043F3E608C4E0AE016 -:103DD000FC3D00002002016A043F3E60009E7047E7 -:103DE000043F3E60874E00B5FCF7E5FAFCF7E8FBC0 -:103DF00003611B021E43FFF7C8FA00BD283E000006 -:103E000020020169043F3E602600704700B5043F70 -:103E10003E607D4EFCF7CFFAFCF7D2FB03611E43F8 -:103E2000FFF7B3FA00BDC046683E00003000056CE5 -:103E30006561766500B5754801683B00043F1A6806 -:103E4000043B1A6008338B42F9D103B4FFF760FEDC -:103E500003BC330040CF04390B60016004390A68A9 -:103E600001320A6000BDC0467C3E0000200006759D -:103E70006E6C6F6F700030BC7047C046B43E00007F -:103E80003000052B6C6F6F70032E00D0F0E640CF32 -:103E900000B5043F3E605E4EFFF763F8FFF70AFE91 -:103EA0001AE0802000060019A419401B801940CF99 -:103EB0007047C046F83E00003000046C6F6F700021 -:103EC000032E00D0D4E640CF00B5043F3E60514EF3 -:103ED000FFF747F8FFF7E2FD00F04AF94B483100E1 -:103EE00040CF0160043F3E604B4EFFF73AF800BD03 -:103EF0000134AC427047C046403F000030020264CB -:103F00006F0000B5043F3E60444EFFF72AF83F487B -:103F10000168043F3E600E00043F3E6000260760DB -:103F2000FFF7BBFD043F3E60032600BD00B500F077 -:103F30002EF8ECE730B4340040CF350040CF704766 -:103F4000304000003002033F646F00B5043F3E6024 -:103F5000324EFFF706F8043F3E60314EFFF715FA88 -:103F60002A480168043F3E600E00FFF7D1FD01368C -:103F7000043F3E60012625480760FFF78EFD043FA1 -:103F80003E60032600BD00B500F001F8E3E700B590 -:103F9000FCF7A3FBFCF741FBFCF750FA043F3E6043 -:103FA000204EFFF7F2F90169282907D0043F3E604F -:103FB0001D4EC9000E43FFF7E8F907E0043F3E60DD -:103FC0004669043F3E600426FEF710FE81692829F9 -:103FD00007D0043F3E60154EC9000E43FFF7D5F9E8 -:103FE00007E0043F3E60C669043F3E600526FEF7D9 -:103FF000FDFDFCF7EAF9FCF7E8F9FCF729FA00BD4A -:104000000298000000980000200000000C00001042 -:10401000A23E0000F03E0000763E0000343F00006B -:10402000AC42000030B400000400000005000000B5 -:1040300050400000300004636173650000B5FCF778 -:104040004CFB043F3E600026043F3E60082600BD56 -:10405000684000003000033F6F666A480AE0013E96 -:10406000B64140CF7047C046104100003002026F99 -:1040700066006548082E00D0FAE540CF00B5043F41 -:104080003E600600FEF76DFFFFF742FD39683E60B7 -:104090000E460136043F3E600926043F3E605B4EFB -:1040A000FFF773F900BD082E00D0E1E540CF00B561 -:1040B000FCF7B3FAFCF7C2F9043F3E60544EFCF73C -:1040C000D6FA0E430269282A15D14269FF2A07D879 -:1040D00040CF043F3E604F4E164309020E430CE0B2 -:1040E000043F3E601600FCF76BFA1A00043F3E6086 -:1040F0001E00FEF77BFDD2001643FFF746F9FCF7E2 -:1041000064F9FCF7A5F9BFE7300040CFB042704733 -:1041100048410000300005656E646F66092E00D0CE -:10412000A6E540CF00B540B440CFFFF7F1FC3968B9 -:104130003E600E46FFF704FD043F3E6040BC043F76 -:104140003E60082600BDC04698410000300007656B -:104150006E6463617365082E00D089E540CF00B5B9 -:10416000043F3E60294EFFF710F900F001F800BD52 -:1041700000B5300040CF00280DD003B401213140FC -:10418000002903D0013EFFF7D2FC01E0FFF7C9FC94 -:1041900003BC0138EFE700BDAC410000000005742E -:1041A0006F6B656E043F3E60202605E01C420000F8 -:1041B000000005706172736510B5FEF710FB3100E9 -:1041C00040CF300040CF144A12688418202E07D107 -:1041D00091420FD0835CB34202D101328418F7E7D9 -:1041E000914207D0835C0132B342F9D18618361B65 -:1041F000013E01E08618361B043F3C600648026021 -:1042000010BD00005E4000000841000040CF0000EB -:104210008042000000280000C00F00105C42000037 -:104220000000056469676974D44B1B68303E0BD38A -:104230000A2E0BD3073E0A2E06D3242E06D3203E89 -:104240000A2E01D3242E01D3002670479E42FBD2B2 -:10425000043F3E600026F6437047C04668430000B6 -:104260000000066E756D626572003FB5310040CF8B -:10427000701E0126012204B4C04B1B6800240025D7 -:1042800000293CD00130013902782D2A04D101B037 -:104290000022D24304B4F3E7232A01D10A23EFE733 -:1042A000242A01D11023EBE7252A01D10223E7E7D5 -:1042B0002E2A01D10226E3E72C2A36D0043F3E60A5 -:1042C0001600FFF7B3FF002E40CF2BD0043F3E6017 -:1042D0002600043F3E602E00043F3E601E00043F67 -:1042E0003E6000260FB4FCF788FB0FBC350040CFC2 -:1042F000340040CF0022A419554140CFC0E704BC90 -:10430000002A04D50022E443ED4301345541330033 -:104310002600012B02D0043F3E602E00043F3E6089 -:104320001E003FBD01B000263FBD2500002402262F -:104330000029E4D0425C01392E2AF9D0043F3E60C6 -:104340001600FFF773FF002E40CFEBD0043F3C6018 -:10435000043F3E601E000FB4FCF703FC0FBC3400AA -:1043600040CF40CFE4E7C0468C4300000000062E5B -:104370006469676974000A2E01D230367047242EB2 -:1043800001D23736704723267047C046C443000029 -:10439000000004686F6C6400330040CF78480178F7 -:1043A0003F290DD2013101704018012907D0013891 -:1043B000027801300270013801390129F7D1037008 -:1043C0007047C046E4430000000005686F6C643C21 -:1043D000330040CF6A4801783F2902D20131017091 -:1043E00043547047FC4300000000047369676E008B -:1043F000002E01D440CF70472D26CDE71044000099 -:10440000000002233E005E480678013038607047A5 -:104410002844000000000366235310B5202400F058 -:1044200008F8013CFBD110BD4C44000000000266BE -:10443000230000B5043F3E60504E3668FCF7AFFAEB -:10444000FFF799FFFFF7C4FF00BDC04668440000B6 -:1044500000000223530000B500F00AF8002EFBD143 -:1044600038680028F8D100BD944400000000012302 -:1044700000B5043F3E60414E3668043F3E60002672 -:10448000FCF78FFBFCF764F940CFFFF774FFFFF7F1 -:1044900083FF00BDA84400000000023C2300384810 -:1044A000002101707047C046BC4400000000026655 -:1044B0002E00043F3E60202605E0C0460C4500006B -:1044C000000003662E6E00B510B4340040CFFCF738 -:1044D00085FDFCF723FA043F3E600026FFF7DFFF6F -:1044E000FFF7B9FF40CF2C26FFF772FF002C03D057 -:1044F000FFF79FFF013CFBD110BC40CFFFF778FFD7 -:10450000043F3E60043F3E601EE0C046244500007C -:1045100000000375642E00B5FFF7C1FFFFF79BFF96 -:1045200012E0C04658450000000002642E0000B5AD -:10453000FCF754FDFCF7F2F9FFF7B1FFFFF78BFF33 -:10454000FCF761FDFFF754FFFFF75DFFFEF760FA30 -:10455000FEF7ACF900BDC0466C45000000000275D6 -:104560002E00043F3E600026D5E7C046844500008B -:104570000000012E043F3E60F617D8E7D80F001068 -:1045800054000010CC4500000000086576616C7591 -:104590006174650000B5FEF722F901CF01B440B4A3 -:1045A00040CF8A48016802B400210160FEF70AF991 -:1045B00000F014F8854802BC0160043F3E6040BC36 -:1045C00001BC043F3860FEF7FDF800BD6047000005 -:1045D000000009696E7465727072657430B57C484C -:1045E00087420BD9FEF7B4F910537461636B2075E1 -:1045F0006E646572666C6F770A00C5E07548874225 -:104600000AD2FEF7A5F90F537461636B206F7665CC -:1046100072666C6F770AB7E06F4C2568002D01D188 -:104620003D002560FFF7BEFD002E02D1043740CFCC -:1046300030BD3868043F3E60043F3860FFF778F9CA -:10464000310040CF320040CF002A15D13868310008 -:10465000FDF719F8FFF709FE320040CF002ABED15E -:10466000FEF7DAF9FEF774F90C206E6F7420666FAE -:10467000756E642E0A0087E0584B1B68002B29D109 -:1046800000252560564B0B4009D0043740CF5548D4 -:104690000760FEF787FF5148012101609FE7302343 -:1046A0000B40302B0ED1FEF7B3F9FEF751F9122073 -:1046B000697320636F6D70696C652D6F6E6C792EF8 -:1046C0000A0061E0043740CF043F3E601600FEF769 -:1046D000EEFC84E7043740CF4348084001D1FCF7A3 -:1046E000D2FF8020084008D1EB1B9B0840200840E7 -:1046F00009D00F200840834205D3043F3E601600D6 -:10470000FEF7D5FC6BE7394808400CD0FBF70BFEF1 -:104710001000FEF73AFC421C3548904738002060F4 -:10472000FBF710FE5BE7FBF7FEFDFBF77FFE0025C6 -:1047300025603048084001D1FBF7CFFF043F3E60C1 -:10474000160010220A4002D0FEF7B1FC47E72022F3 -:104750000A4002D0FEF705FC41E7FEF7CFFA3EE73C -:104760007C470000810009686F6F6B2D717569745B -:10477000043F3E60204E7047B84700000C480000E0 -:1047800000000471756974001C488546104FFDF7E0 -:10479000EDFB1B480A2101601048002101600E4812 -:1047A0000160FBF792FE0948016016480160164956 -:1047B0004160114800688746FEF720F8FFF70EFFBA -:1047C000FEF7C6F805206F6B2E0AF5E7C00F001044 -:1047D0005C0300105C01001008000010B40F001012 -:1047E000000800001000001000040000000200009B -:1047F0002800001000100000B00F00105C04001032 -:10480000D80F0010B80F00109400001028480000C6 -:1048100000000565696E743F043F3E60EFF310864B -:10482000013EB6417047C04638480000200004658C -:10483000696E740062B67047484800002000046446 -:10484000696E740072B67047604800002000046909 -:1048500070737200043F3E60EFF305867047C046F8 -:104860006C4800000000036E6F707047B048000095 -:10487000000009756E68616E646C656400B5FEF7D2 -:1048800067F814556E68616E646C656420496E74D7 -:104890006572727570742000043F3E60EFF3058608 -:1048A000FEF7CEF8FEF754F802210A0000BDC0461C -:1048B000C448000000000572657365748848894922 -:1048C0000160C046E848000081000B6972712D73D9 -:1048D00079737469636B043F3E60834E70477C4814 -:1048E00000008148006887460C4900008100096982 -:1048F00072712D6661756C74043F3E607B4E70472B -:104900007C480000794800688746C046344900006A -:1049100081000E6972712D636F6C6C656374696FD1 -:104920006E00043F3E60724E70477C480000704845 -:1049300000688746544900008100076972712D6143 -:104940006463043F3E606B4E70477C4800006948DA -:1049500000688746744900008100076972712D69FB -:104960003263043F3E60644E70477C4800006248FA -:1049700000688746984900008100086972712D75AA -:1049800061727400043F3E605C4E70477C480000DA -:104990005A4800688746C0460C500000FFFF182D9B -:1049A0002D2D20466C6173682044696374696F6EB5 -:1049B000617279202D2D2D00FDF764FD504885464C -:1049C000504F2A26504851490160514851490160D1 -:1049D000043F3E604F4E504DB188504B994224D019 -:1049E0004F4B0B400AD0B01DFEF792FFFEF7CDFAF9 -:1049F0000388408800040343ED1A16E080230B402F -:104A000013D00F23194089006D1AB01DFEF780FFE7 -:104A1000FEF7BBFA043F3E600600043F3E602E00F6 -:104A2000043F3E600E00FCF7FDFEFEF74EFF300037 -:104A300040CFD1D03B48066040CF3B4805603B4863 -:104A40003B49364A884204D0023803889342F9D061 -:104A5000023038490860FDF789FAFDF779FF544DB7 -:104A60006563726973702D5374656C6C61726973E0 -:104A700020524120302E38206578706572696D654E -:104A80006E74616C2077697468204D3020636F729A -:104A90006520666F72204C504331313134464E32BE -:104AA00038206279204D61747468696173204B6F9E -:104AB00063680A00204800210160043F3E601F4EE9 -:104AC000043F3E600426FEF733FF40CF002E02D0A5 -:104AD000FEF7EDFA6DE640CF56E6696E69740000A8 -:104AE0000CED00E00400FA05AC0F0010A80F001058 -:104AF000A40F0010A00F00109C0F0010980F0010C2 -:104B00005C0400105C03001000000010000700109F -:104B10000400001000030000E00F0010FFFF000081 -:104B2000000100001C0000102400001000800000A4 -:104B3000005000001800001008000010DA4A0000C1 +:100370002DFF08BC013303BD03B5013B043F3E60C4 +:100380001E0008B400F00CFF08BC320040CF03BDD3 +:1003900003B57A4801681E2901D000F034F803BD86 +:1003A000816901620169816181680161016881601F +:1003B000C16941624169C161C16841614168C1600F +:1003C0001E21016070470FB56B4801681E2903D0DC +:1003D000FFF7DEFFFFF7E4FF0FBD02B581680160A4 +:1003E000C168416000E002B5016981604169C16096 +:1003F00081690161C1694161016A8161416AC161CB +:100400001E21016202BD08B501681E220260082992 +:1004100001D20B0004E028290DD1436800F05DF8FB +:10042000043F3E60564E02F0CCFF043F3E60554E06 +:100430001E4302F0C6FF08BD00B500F009F800F049 +:100440000CF800F00FF800F012F800F015F800BDFD +:100450000FB54A48FFF7D7FF0FBD0FB54A48FFF762 +:10046000D2FF0FBD0FB54948FFF7CDFF0FBD0FB548 +:100470004748FFF7C8FF0FBD0FB53F480168062288 +:1004800002601E2905D1043F3E60424E02F099FFF2 +:1004900014E0282909D14368043F3E601E00043F50 +:1004A0003E60062602F0BEFB08E0062906D0043FA7 +:1004B0003E60394EC9000E4302F083FF00F001F8A0 +:1004C0000FBD2D481E210162816101618160C16201 +:1004D0000621016000218162704707B5043F3E603C +:1004E0001E0000F05BF8043F3E601E0002F09AFB25 +:1004F00007BD07B5C16A282904D1016B994201D112 +:10050000002307BD0168002918D08168002915D093 +:100510000169002912D0816900290FD0016A0029E0 +:100520000CD00363043F3E601E00043F3E60002683 +:1005300002F078FB2821C162002307BD043F3E6022 +:100540001E0000F02BF8043F3E601E0002F06AFB24 +:1005500007BD06B51B18196828290CD15A68043F35 +:100560003E601600190000F019F80B60043F3E6071 +:100570001E0002F057FB06BD2800001048000010C6 +:10058000043F0000386000004000001038000010F8 +:100590003000001040CF00000646000037B5354857 +:1005A0000168826803698469056A062000F00DF815 +:1005B000032000F00AF8022000F007F8012000F004 +:1005C00004F800231E21C16237BD814209D0824256 +:1005D00007D0834205D0844203D0854201D0030076 +:1005E00037BD7047043F3E60234E00B581581E2939 +:1005F00005D1FFF7D3FF8350012199400E4300BD81 +:1006000000B501681E2904D10022FFF7EBFF02F0BC +:10061000D8FE00BD00B581681E2907D10822FFF76A +:10062000E1FF0022FFF7E1FF02F0CBFE00BD00B5C5 +:1006300001691E290AD11022FFF7D4FF0822FFF713 +:10064000D4FF0022FFF7D1FF02F0BBFE00BD00B5D2 +:1006500081691E290DD11822FFF7C4FF1022FFF770 +:10066000C4FF0822FFF7C1FF0022FFF7BEFF02F020 +:10067000A8FE00BD2800001000CF000000B50168F2 +:10068000282903D14368FFF728FF190000BD00B5F2 +:100690008168282903D1C368FFF71FFF190000BD37 +:1006A0003EB5826803698469056A9A4203D0A24212 +:1006B00001D0AA420AD1072A08D8043F3E60D600DA +:1006C000FFF76CFF1E43836002F07BFE3EBD3EB52C +:1006D0000168826803698469056A914206D099427B +:1006E00004D0A14202D0A94200D03EBD043F3E60EA +:1006F000CE00FFF753FF1E43036002F062FE3EBDD3 +:1007000000B5FFF76AFEFFF75EFEFFF747FF0360E5 +:1007100000BD01B506480368013307D00023DB4361 +:100720000360043F3E60034E02F04BFE01BD00003B +:10073000B40F001000B500005C0700004202043254 +:10074000647570003868043F3E60043F386070474D +:1007500000B500F04FFC00F04DFC00BD7C07000030 +:100760006202053264726F70043740CF704700B583 +:1007700000F0F0FB00F0EEFB00BDC0469C0700005F +:10078000440005327377617007CF043F3860043F3F +:100790003E60043F3A600E007047C046B00700005C +:1007A000620004326E69700007CF043F3860704702 +:1007B000CC070000440005326F766572B868043FCC +:1007C0003E60043F3860FE687047C046F007000096 +:1007D000440005327475636B07CF043F3860043FF3 +:1007E0003E60043F3A60043F3960043F3860704720 +:1007F0001408000046000432726F74003868B9684B +:100800003A69B86039613A6079687E60FE68F9607B +:100810007047C04638080000460005322D726F74DC +:100820003868B9683A6938613960BA60F968FE6059 +:100830007E6879607047C04660080000200203327D +:100840003E7201CF01B440B440CF704700B5FFF70E +:1008500060FF00F0A3FB00F045FC00F043FC00BD8E +:100860008C08000020020332723E043F3E6040BC10 +:1008700001BC043F3860704700B5FFF74AFF00F045 +:100880004CFC00F04AFC00F089FB00BDBC080000F5 +:10089000200203327240043F3E60019E043F3E60EE +:1008A000009E704700B5FFF734FF043F3E600C4EDA +:1008B00003F0A9FA03F0A4FA00BDC046E80800005E +:1008C000200206327264726F700002B0704700B589 +:1008D000FFF71FFF043F3E60024E02F072FD00BDB5 +:1008E0000198000002B0000000090000420003640B +:1008F000322F3868F1077610400808433860704797 +:100900001409000062000364322A38680018764136 +:100910003860704730090000420004647368720058 +:100920003868F10776084008084338607047C046C9 +:10093000480900006200046473686C00386800189D +:10094000764138607047C0465C090000420004648C +:1009500061627300002E08D47047C0467C09000015 +:10096000420007646E656761746538680021C043A2 +:10097000F64301304E4138607047C046940900008C +:10098000640002642D0007CF121AB1410E00043F2B +:100990003A607047AC090000640002642B0007CF86 +:1009A00012184E41043F3A607047C046CC0900001F +:1009B000610203733E64043F3E60F617704700B562 +:1009C00000F0B6FA00F061FD00BDC046F809000075 +:1009D000420003756D2A3868030073433B60010CC5 +:1009E000320C0B005343B6B280B24E43504336181C +:1009F000360CF6187047C046280A00004200026D07 +:100A00002A003868C11705D040423860F01704D07A +:100A10007642E0E7F017DED0764200B5FFF7DBFF65 +:100A2000FFF7A3FF00BDC046680A0000440003753D +:100A3000642A07CF564341437618010C130C5943DF +:100A40007618010C80B292B25143434350430022C6 +:100A5000C91852411204B6180A04090C80184E41F4 +:100A6000043F38607047C046FC0A0000440004752B +:100A7000646D2A0010B50024043F3E607E68043F88 +:100A80003E603E69FFF7A7FF310040CF300040CF06 +:100A9000043F3E603E68043F3E60FE6803B4FFF7DB +:100AA0009AFF03BC330040CF320040CF043F3E608A +:100AB0003E68043F3E603E690FB4FFF78CFF0FBCF9 +:100AC0009219634140CF89196241634140CF043F8D +:100AD0003E607E68043F3E60FE680FB4FFF77BFF18 +:100AE0000FBC9219634140CF89196241634140CFE5 +:100AF0001E003A607960B86010BDC046200B00004F +:100B00004300022A2F0000B540B440CFFFF779FF21 +:100B1000043F3E6040BC00F04FF8043700BDC046C3 +:100B2000440B00004300052A2F6D6F6400B540B4EC +:100B300040CFFFF766FF043F3E6040BC00F03CF84A +:100B400000BDC046680B0000430003752A2F00B5A6 +:100B500040B440CFFFF73FFF043F3E6040BC00F091 +:100B60001CF8043700BDC0468C0B0000430006751E +:100B70002A2F6D6F640000B540B440CFFFF72BFF04 +:100B8000043F3E6040BC00F008F800BDAC0B000024 +:100B9000430006756D2F6D6F640000B5043F3E6025 +:100BA000002600F01AF840CF043700BDCC0B00003F +:100BB0004300056D2F6D6F6400B5043F3E60F6176E +:100BC00000F034F840CF043700BDC046200C0000D0 +:100BD00044000675642F6D6F640030B4002300225A +:100BE0007968B86835003C68402640004941524168 +:100BF0005B41AB4202D804D3A24202D3121BAB41E9 +:100C00000130013EF1D10E0038607B60BA6030BC2B +:100C1000704730B400237A68B9680020E2E7C04624 +:100C2000980C0000440005642F6D6F6400B5F01748 +:100C300019D0FFF79AFEFFF7A7FDF0170CD0FFF7CA +:100C400094FEFFF7A1FDFFF7C8FFFFF79DFDFFF73B +:100C50008CFEFFF799FD00BDFFF796FDFFF7BDFF86 +:100C6000FFF783FE00BDFFF78FFDF0170ED0FFF7F3 +:100C70007CFEFFF789FDFFF7B0FFFFF776FEFFF779 +:100C800083FDFFF772FEFFF77FFD00BDFFF77CFDE0 +:100C9000FFF7A3FF00BDC046B00C00004400026493 +:100CA0002F0000B5FFF7C2FFFFF77EFD00BDC04675 +:100CB000F80C0000440002662A0000B5F0170DD0C1 +:100CC000FFF753FEFFF760FDF0170DD0FFF74DFE65 +:100CD000FFF7D0FE40CF01CF386000BDFFF754FDD5 +:100CE000F017F5D0FFF741FEFFF7C4FE40CF01CF6C +:100CF0003860FFF73AFE00BD440D00004400026674 +:100D00002F0000B5F0170ED0FFF72FFEFFF73CFDC8 +:100D1000F0170ED0FFF729FEFFF736FDFFF779FF3A +:100D2000FFF742FD00BDFFF72FFDF017F4D0FFF7EE +:100D30001CFEFFF729FDFFF76CFFFFF716FEFFF71C +:100D400033FD00BD8C0D000020020232210006CFD1 +:100D50003160726040CF704700B5FFF768FC0168F2 +:100D6000426806B400F0D6FDFFF72DFB06BC01601B +:100D7000282905D0043F3E60544E00F0CEFD00BD52 +:100D80000432426000F0C6FD00BDC046D40D000034 +:100D9000200202324000043F7068386036687047B5 +:100DA00000B500F0C5F80168282909D0043F3E606D +:100DB000474E00F090FD00F0F1F800F089FD00BD15 +:100DC00041680431416000F083FD00F0E7F800F075 +:100DD0007FFD00BDF40D000044000364753C07CFA7 +:100DE0008E4204D801D1904201D8002670470026D7 +:100DF000F6437047140E000044000364753E07CFAD +:100E0000B14204D801D1824201D8002670470026A1 +:100E1000F6437047340E0000440002643C0007CFE4 +:100E20008E4204DC01D1904201DC0026704700268E +:100E3000F6437047540E0000440002643E0007CFA2 +:100E4000B14204DC01D1824201DC00267047002659 +:100E5000F6437047700E000062020364303C0437B2 +:100E6000F617704700B500F0ACF800F00EFB00BDBF +:100E7000980E000062020364303D01CF0643013E3C +:100E8000B641704700B5043F3E60124E00F081FA53 +:100E900000F0D6FA00BDC046B40E00004400036462 +:100EA0003C3E07CF50404E400643013EB641F6431C +:100EB0007047C046D80E0000440002643D0007CFD2 +:100EC00050404E400643013EB6417047406000002E +:100ED0004068000000430000EC0E00002000037397 +:100EE0007040043F3E603E007047C046FC0E00006C +:100EF000200003737021370040CF7047100F0000AF +:100F0000200003727040043F3E606E467047C0464A +:100F1000200F0000200003727021B54640CF7047BB +:100F2000440F0000610203647570043F3E60704727 +:100F300006B5FFF765FB01684268FFF744FA0160F8 +:100F4000426006BD700F000061020464726F7000A1 +:100F500040CF704700B501681E2905D1043F3E60AF +:100F6000A14E02F02EFA00BDFFF737FA00BDC046D1 +:100F7000880F00006100043F64757000002E01D0EE +:100F8000043F3E607047C046B40F00006202047325 +:100F90007761700039683E600E0070470CB5FFF74E +:100FA00039FB02688368036082604268C3684360FB +:100FB000C2600CBDE00F00006202036E697004376E +:100FC000704700B5FFF71CFB81681E2902D0FFF7B0 +:100FD0000AFA00BD043F3E60834E02F0F2F900BD04 +:100FE000081000006202046F76657200043F3E60E4 +:100FF0007E68704700B5FFF70DFB8168C268FFF798 +:10100000E2F90160426000BD301000006202047429 +:1010100075636B0001CF083F7E603860704700B594 +:10102000FFF705FBFFF784FF00F02AF800BDC0467C +:1010300068100000630203726F7403CF083F78608A +:101040003E600E0070470EB5FFF7F1FA0168826846 +:1010500003698160026103604168C2684369C160DD +:10106000426143600EBDC0468C1000006302042D37 +:10107000726F740003CF083F7E60396006007047CE +:1010800000B5FFF7E0FFFFF7DEFF00BDA010000096 +:101090002000047069636B00B0003E587047C04682 +:1010A000B810000000000564657074684F49C91BE2 +:1010B000043F3E608E087047D410000000000672A6 +:1010C000646570746800043F3E606E464849891B41 +:1010D0008E087047081100002002023E720040B4E2 +:1010E00040CF704700B5FFF714FBFFF789FAFFF711 +:1010F000C5FA043F3E603F4E01228A40164302F08B +:1011000060F9FFF76AF900BD3C110000200202728D +:101110003E00043F3E6040BC704700B5FFF7F9FA5F +:10112000FFF751F9FFF73AFA0360043F3E60324E91 +:1011300001229A40164302F044F900BD5C11000000 +:10114000200202724000043F3E60009E704700B5DE +:10115000FFF7DFFA02F054FE00BDC0468011000028 +:101160002002057264726F7001B0704700B5FFF71E +:10117000D0FA043F3E60214E02F023F900BDC04684 +:1011800094110000200005727069636BB6006E4414 +:1011900036687047C0110000000004726F6C6C006C +:1011A000002E01D140CF7047B0003958C019031F3D +:1011B0001A6802600438013EF9D104370E00704706 +:1011C000001200000000052D726F6C6C002E01D122 +:1011D00040CF7047386839464A680A600431013E9A +:1011E000FAD1086040CF7047043700006403001054 +:1011F0006404001000B4000000BC000001B0000056 +:1012000018120000620203616E6401CF064070474D +:10121000043F3E607B4EBCE0341200006202036279 +:10122000696301CFB04306007047043F3E60764ECD +:10123000C9E0C0464C1200006202026F720001CF8A +:1012400006437047043F3E60704EA2E06412000007 +:10125000620203786F7201CF46407047043F3E60E0 +:101260006B4E96E07C1200006202012A01CF4643D9 +:101270007047043F3E60674E8BE0C0469C12000002 +:10128000410003636C7A300006D00026400002D093 +:1012900001D20136FAE7704720267047AC120000F1 +:1012A000610003726F720120C6417047C0120000D6 +:1012B000610003726F6C0020B61946417047C0464A +:1012C000F41200006202076172736869667401CFEC +:1012D00030410600704700B5043F3E604E4E043F6B +:1012E0003E604E4EFFF796F941681F2928D91F210D +:1012F000416025E01C130000620206727368696693 +:10130000740001CFF0400600704700B5043F3E6016 +:10131000434E043F3E60434E12E0C046301400008E +:101320006202066C73686966740001CFB040060003 +:10133000704700B5043F3E603B4E043F3E600026D0 +:10134000FFF768F90168282903D040CF00F03BF887 +:1013500000BD04374168FFF740F8002901D140CFB4 +:1013600000BD1F290AD889010E430268D200164326 +:10137000FFF7C6F91E4302F024F800BD40CFFFF787 +:10138000BFF9043F3E60294E1B021E4302F019F8CC +:1013900000BD0FB5FFF73EF90168062901D1FFF73F +:1013A000FDFD8268282A01D1FFF7F8FDFFF778F9E3 +:1013B000FFF764F9C90082680E43164302F001F892 +:1013C000FFF70BF80FBD0FB5FFF724F9FFF768F92A +:1013D000FFF754F98268282A0BD1043F3E60C668A3 +:1013E000FFF7DCF88360043F3E601E001A0001F046 +:1013F00019FCC9000E43164301F0E3FFFEF7EDFFB1 +:101400000FBD0000004000008043000000430000CA +:101410004040000040430000004100000010000078 +:10142000C0400000000800008040000000200000D4 +:1014300054140000610202303D00013EB641704785 +:1014400000B500F003F900F0BAFEFEF7C6FF7349DD +:10145000816200BD7C140000610203303C3E013E0D +:10146000B641F643704700B500F0F0F800F0A7FE73 +:10147000FEF7B3FF6A49816200BDC046A0140000B8 +:10148000610202303C00F617704700B500F0DEF84C +:10149000043F3E60634E00F095FE6349816200BDEB +:1014A000B81400006000047472756500043F3E606B +:1014B0000026F6437047C046CC1400006000056665 +:1014C000616C7365043F3E6000267047F0140000B5 +:1014D0004202023E3D0001CFB042E9DA00267047E9 +:1014E000043F3E60514E043F3E60514EBEE0C04658 +:1014F000141500004202023C3D0001CFB042D7DD8E +:1015000000267047043F3E604A4E043F3E604A4E0C +:10151000ACE0C046341500004202013C01CFB042AD +:10152000C6DB00267047043F3E60414E043F3E60EC +:101530003E4E9BE0541500004202013E01CFB042F6 +:10154000B6DC00267047043F3E603B4E043F3E60E1 +:10155000384E8BE078150000620203753E3D01CFE6 +:10156000861BB641F6437047043F3E602C4E043F55 +:101570003E602A4E7AE0C0469C1500006202037568 +:101580003C3D01CF361AB641F6437047043F3E60FA +:101590002A4E043F3E602A4E68E0C046BC1500005B +:1015A000620202753C0001CF861BB6417047043FC2 +:1015B0003E601A4E043F3E60194E57E0DC150000B5 +:1015C000620202753E0001CF361AB6417047043FF1 +:1015D0003E601B4E043F3E60184E47E0FC15000085 +:1015E0006202023C3E0001CF811B361A0E43704757 +:1015F000043F3E60134E043F3E6037E06417000036 +:101600006202013D01CF361A013EB6417047043FE8 +:101610003E600D4E043F3E6028E0000000D2000016 +:1016200000D30000C017000000D5000000DB000060 +:1016300000DA000000DC000000DD000000D800003F +:1016400000D9000000D0000000D1000000B5FEF776 +:10165000D7FF2023FEF77DFF1823FEF77AFF102324 +:10166000FEF777FF0823FEF774FF00BD00B5FEF715 +:10167000D1FFFEF7EDFEFEF7F0FE1023FEF769FF47 +:101680008268282A04D1FFF789FC39683E600E463B +:1016900040CF0168282909D14168FF2906D8043FB5 +:1016A0003E60644E0E438168090206E0FEF7E6FFE5 +:1016B000043F3E60604EC90016430E4301F081FEB8 +:1016C000FEF78BFEFEF789FE866240CF00BD0FB5A8 +:1016D0005A48816A002930D0043F3E60866A002162 +:1016E0008162310AD52901D140CF0FBDFEF76BFED3 +:1016F000FEF754FF0360D22903D1514E00F0AAFD3A +:101700000FBDD32905D14E4E00F0A4FD00F0B5FD6C +:101710000FBD023601F055FE043F3E60494E00F019 +:101720000DF800F0AAFD043F3E60474E01F049FE6F +:10173000043F3E60434E00F001F80FBD00B5FEF7D8 +:101740005FFFFEF7C4FF016809020E4301F039FE96 +:1017500000BD00B5816A090AD52901D1FEF73DFE19 +:1017600000BDC046801700006202036D696E01CFA4 +:10177000B04200DC06007047043F3E60334E2BE071 +:101780009C1700006202036D617801CFB04200DB5C +:1017900006007047043F3E602D4E1DE0BC17000060 +:1017A000620204756D61780001CFB04200D306007B +:1017B0007047043F3E60274E0EE0C04660180000B0 +:1017C000620204756D696E0001CFB04200D8060058 +:1017D0007047043F3E60204E00B5FEF71BFF0168D6 +:1017E0008268914203D140CFFEF7FDFD00BD062A7D +:1017F00001D1FFF7D3FB0168282901D1FFF7CEFB08 +:10180000FEF765FFFEF743FFC9000268043F3E6034 +:10181000094E0E43164301F0D4FD01F0D2FD043F02 +:101820003E600E4E0E43164301F0CBFDFEF7DBFD8E +:1018300000BD0000002800008042000028000010C9 +:10184000804100000020000000E0000000DB0000FC +:1018500000DC000000D8000000D3000000460000BB +:10186000A01800000000046D6F76650007B5310018 +:1018700040CF320040CF00290FD0B2420DD006D366 +:10188000013E013A705C50540139FBD105E03078DB +:101890001070013601320139F9D140CF07BDC04681 +:1018A000C418000000000466696C6C00300040CF72 +:1018B000310040CF002902D001397054FCD140CF13 +:1018C0007047C04604190000200201403668704786 +:1018D000043F3E60994E00B5FEF792FE0368282B48 +:1018E00008D143687C21194009010E437C218B43B8 +:1018F000FEF7FFFDDB001E43FEF702FF1E4301F073 +:1019000060FD00BD5C1900002002012103CF3060A2 +:101910000E007047043F3E60894E00B5FEF77AFE28 +:101920000368282B09D143687C21194009010E4323 +:101930007C218B43FEF7DDFD0360DB001E438368E3 +:10194000282B02D1C368FEF7C8FD1E4301F039FD04 +:10195000FEF743FDFEF741FD00BDC04694190000AF +:101960002002022B210003CF3268121832600E00D1 +:10197000704700B5FEF74EFEFFF7DAFAFFF7A8FF53 +:10198000FFF761FB00F0CDFBFFF708FBFFF7C2FF9D +:1019900000BDC046D8190000200202684000368809 +:1019A000704700B5FEF72CFE043F3E60654E0368AD +:1019B000282B08D143683E21194049010E433E219E +:1019C0008B43FEF796FDDB001E43FEF799FE1E4398 +:1019D00001F0F7FC00BDC046301A0000200202688A +:1019E000210003CF30800E00704700B5FEF712FED5 +:1019F000043F3E60544E0368282B09D143683E21C2 +:101A0000194049010E433E218B43FEF772FD0360EE +:101A1000DB001E438368282B02D1C368FEF75DFDFF +:101A20001E4301F0CEFCFEF7D8FCFEF7D6FC00BD4D +:101A3000681A0000200203682B2103CF3288121895 +:101A400032800E00704700B5FEF7E4FDFFF770FA34 +:101A5000FFF7A7FFFFF7F7FA00F063FBFFF79EFA27 +:101A6000FFF7C3FF00BDC046AC1A000020020263AE +:101A700040003678704700B5FEF7C2FD043F3E6077 +:101A8000324E0368282B08D143681F211940890171 +:101A90000E431F218B43FEF72CFDDB001E43FEF798 +:101AA0002FFE1E4301F08DFC00BDC046041B00004C +:101AB00020020263210003CF30700E00704700B592 +:101AC000FEF7A8FD043F3E60214E0368282B09D194 +:101AD00043681F21194089010E431F218B43FEF7E4 +:101AE00008FD0360DB001E438368282B02D1C36816 +:101AF000FEF7F3FC1E4301F064FCFEF76EFCFEF7FC +:101B00006CFC00BD541B0000200203632B2103CF9B +:101B10003278121832700E00704700B5FEF77AFD69 +:101B2000FFF706FAFFF7A7FFFFF78DFA00F0F9FAC3 +:101B3000FFF734FAFFF7C3FF00BD000000680000A4 +:101B400000600000008800000080000000780000B5 +:101B500000700000941B00002002046269732100E1 +:101B600003CF3268024332600E00704700B5FEF7C3 +:101B700051FDFFF7DDF9FFF7ABFEFFF764FA043F15 +:101B80003E60AB4EFFF705FCFFF708FAFFF7C2FE19 +:101B900000BDC046D41B000020020462696321001E +:101BA00003CF3268824332600E00704700B5FEF703 +:101BB00031FDFFF7BDF9FFF78BFEFFF744FA043F55 +:101BC0003E609C4EFFF7FFFBFFF7E8F9FFF7A2FE30 +:101BD00000BDC046141C0000200204786F72210072 +:101BE00003CF3268424032600E00704700B5FEF706 +:101BF00011FDFFF79DF9FFF76BFEFFF724FA043F95 +:101C00003E608D4EFFF7C5FBFFF7C8F9FFF782FE78 +:101C100000BDC046481C00002002046269744000F8 +:101C200001CF36680640013EB641F643704700B525 +:101C3000FEF7F0FCFFF74CFE043F3E607F4EFFF7DF +:101C4000A8FBFFF710FC00BD881C000020020568FF +:101C50006269732103CF3288024332800E007047DD +:101C600000B5FEF7D7FCFFF763F9FFF79AFEFFF721 +:101C7000EAF9043F3E606E4EFFF78BFBFFF78EF9EB +:101C8000FFF7B3FE00BDC046C81C00002002056877 +:101C90006269632103CF3288824332800E0070472D +:101CA00000B5FEF7B7FCFFF743F9FFF77AFEFFF741 +:101CB000CAF9043F3E605F4EFFF785FBFFF76EF900 +:101CC000FFF793FE00BDC046081D00002002056816 +:101CD000786F722103CF3288424032800E00704705 +:101CE00000B5FEF797FCFFF723F9FFF75AFEFFF761 +:101CF000AAF9043F3E60504EFFF74BFBFFF74EF949 +:101D0000FFF773FE00BDC0463C1D000020020568C1 +:101D10006269744001CF36880640013EB641F64301 +:101D2000704700B5FEF776FCFFF73BFE043F3E60D0 +:101D3000424EFFF72EFBFFF796FB00BD7C1D000017 +:101D4000200205636269732103CF32780243327047 +:101D50000E00704700B5FEF75DFCFFF7E9F8FFF7EE +:101D60008AFEFFF770F9043F3E60314EFFF711FB2A +:101D7000FFF714F9FFF7A3FE00BDC046BC1D00002D +:101D8000200205636269632103CF32788243327097 +:101D90000E00704700B5FEF73DFCFFF7C9F8FFF7EE +:101DA0006AFEFFF750F9043F3E60224EFFF70BFB3F +:101DB000FFF7F4F8FFF783FE00BDC046FC1D0000EE +:101DC00020020563786F722103CF3278424032706F +:101DD0000E00704700B5FEF71DFCFFF7A9F8FFF7EE +:101DE0004AFEFFF730F9043F3E60134EFFF7D1FA89 +:101DF000FFF7D4F8FFF763FE00BDC046401E0000A9 +:101E0000200205636269744001CF36780640013EC6 +:101E1000B641F643704700B5FEF7FCFBFFF72BFE1B +:101E2000043F3E60054EFFF7B4FAFFF71CFB00BD10 +:101E300000430000804300004040000000400000DC +:101E4000841E0000810009666C6173682D6B687ADE +:101E5000043F3E604F4E7047E02E000000F094FDBE +:101E60001E466C6173682063616E6E6F74206265DC +:101E7000207772697474656E2074776963650A00EF +:101E800002F09AFC301F00000000083136666C61D9 +:101E9000736821003FB50F20304015D000F074FD6D +:101EA000223136666C61736821206E65656473202B +:101EB00031362D616C69676E65642061646472659A +:101EC00073730A0002F078FC30680130C6D1706884 +:101ED0000130C3D1B0680130C0D1F0680130BDD14C +:101EE00000F046F808CF04CF02CF01CF803F803FFB +:101EF00001B438004024284D20C0013CFCD101BC75 +:101F0000FF243440E4190FC4FF25AE432348332196 +:101F100001604660876080218031C1601D49096889 +:101F200001611F491F4A90478037803740CF3FBD2E +:101F3000A81F000000000A6572617365666C61731A +:101F4000680072B600F014F800F015F800F01CFDFF +:101F50001A46696E69736865642065726173696E9B +:101F6000672E20526573657420210A0002F0BEFCC2 +:101F700000B5322101E000B5342108480160052197 +:101F800041600721816003490968C1600449054A2D +:101F9000904700BDDC0F0010FFFFFFFFE4060010BC +:101FA000F8060010F11FFF1FC81F0000000009699C +:101FB0006E6974666C6173685348544900220270FC +:101FC00001300139FBD17047B020000000000768E4 +:101FD000666C6173682130B5320040CF500813D36E +:101FE00000F0D2FC1E68666C61736821206E656526 +:101FF0006473206576656E206164647265737365D1 +:10200000732E0A0002F0D8FB414B9A4210D200F026 +:10201000BBFC1943616E6E6F742077726974652022 +:10202000696E746F20636F726520210A02F0C4FB31 +:10203000130935482021046824099C4226D0143015 +:102040000139F8D1304820210468002C17D0143011 +:102050000139F9D100F098FC21546F6F206D616E49 +:10206000792073636174746572656420466C617372 +:1020700068207772697465732E0A02F09DFB1B015C +:102080000360013941608160C16001610F2111402D +:102090000431465240CF0168013101600F221140E6 +:1020A000082903D100F01BF8FFF7F4FE30BDC0464D +:1020B0001421000000000A666C757368666C617319 +:1020C000680000B5104820210268002A03D000F003 +:1020D00006F8FFF7DFFE14300139F5D100BD043FEB +:1020E0003E604668043F3E608668043F3E60C668C6 +:1020F000043F3E600669043F3E600F26F6430268D7 +:102100001640002202607047640400108002000044 +:1021100000500000402100006202012B01CF361860 +:10212000704700B5FEF776FA043F3E60D34E043F99 +:102130003E60D34E8168282912D1FEF72FFF0FE0B1 +:10214000B02100006202012D01CF861B704700B54F +:10215000FEF760FA043F3E60CA4E043F3E60CA4E3E +:10216000016828290ED14168FF290BD840CFFEF71E +:1021700097FA0E43816809020E4301F022F9FEF737 +:102180002CF900BD0437FEF779FA8268282A03D1BA +:10219000C368FEF7A2F91A008901D2000E43164364 +:1021A000FEF71BF9FEF7ACFA1E4301F00AF900BD79 +:1021B000DC210000610202312D00013E7047043F26 +:1021C0003E60B24E00B5FEF71BFA0168C9000E432F +:1021D000FEF796FA1E4301F0F4F800BDF42100006A +:1021E000610202312B0001367047043F3E60A84E69 +:1021F000E8E7C0460C220000610202322D00023ED8 +:102200007047043F3E60A34EDCE7C0462422000036 +:10221000610202322B0002367047043F3E609E4E40 +:10222000D0E7C0463C22000061020563656C6C2B60 +:1022300004367047043F3E60984EC3E76C220000AE +:102240006102066E65676174650076427047043FFF +:102250003E60934E00B5FEF7D3F9FEF738FA0168F9 +:102260000E43C9000E4301F0ACF800BD842200000B +:102270006102036E6F74F6437047043F3E60894EFF +:10228000E8E7C0469C22000061020373687276088A +:102290007047043F3E60844EDCE7C046AC2200003D +:1022A00061020373686C7600704706E0C422000088 +:1022B000610202322A0076007047043F3E604026E9 +:1022C000C8E7C046DC22000061020563656C6C73E0 +:1022D000B6007047043F3E608026BBE7F422000052 +:1022E000610202322F0076107047043F3E606F4E4D +:1022F000B0E7C0462C230000610203616273F0174F +:1023000036184640704700B5FEF77AF9043F3E6044 +:10231000674E016809020E4301F053F8043F3E6026 +:10232000644E01F04EF8FFF792FF00BD74230000E9 +:10233000420005752F6D6F64310040CF002903D135 +:10234000043F3E6000267047012200238E4206D9DA +:10235000003104D45200490001D48E42FAD88E4292 +:1023600001D3761A134349085208F8D1043F3E605E +:102370001E007047E42300004200042F6D6F6400CC +:1023800000B5300040CF002E1CDA764200280CDA6F +:102390004042043F3E600600FFF7CEFF300040CFD2 +:1023A0007642043F3E60060000BD043F3E600600EA +:1023B000FFF7C2FF300040CF40427642043F3E600C +:1023C000060000BD002807DA4042043F3E600600D8 +:1023D000FFF7B2FF764200BD043F3E600600FFF704 +:1023E000ABFF00BDF82300004200036D6F6400B531 +:1023F000FFF7C6FF40CF00BD0C2400004200012FB4 +:1024000000B5FFF7BDFF043700BDC0462024000023 +:102410006100046576656E00012030403618704713 +:10242000382400008100046261736500043F3E604F +:10243000214E70470A000000502400000000066290 +:10244000696E617279001C48022101607047C046C4 +:1024500068240000000007646563696D616C1648BC +:102460000A2101607047C04608250000000003688B +:1024700065781148102101607047000000300000AD +:102480000018000000380000001A0000401E000084 +:10249000401C0000801E0000801C0000001D000089 +:1024A00040420000C043000040080000401000000F +:1024B0000028000000D50000D80F00107E487F4A99 +:1024C0000168114301607E48C12101607D480160BF +:1024D00079487D4A0168114301607C48012101600F +:1024E0007B48802101607B48852101607A48042176 +:1024F00001607A4800210160754803210160784835 +:10250000072101607047C04624250000810009684A +:102510006F6F6B2D656D6974043F3E60714E70473F +:102520001A26000040250000810008686F6F6B2D9F +:102530006B657900043F3E606B4E70474226000099 +:102540006025000081000A686F6F6B2D656D6974EE +:102550003F00043F3E60654E704770260000C04655 +:102560007C250000810009686F6F6B2D6B65793FDA +:10257000043F3E605E4E70479E2600009C25000092 +:1025800081000A686F6F6B2D706175736500043F81 +:102590003E60584E70479A480000C046B42500007F +:1025A000000004656D6974000FB54E4800F029F80D +:1025B0000FBDC046C82500000000036B65790FB54C +:1025C000494800F01EF80FBDDC250000000005653D +:1025D0006D69743F454800688746C046F025000095 +:1025E0000000046B65793F00414800688746C0469B +:1025F0000826000000000570617573653D4800689D +:10260000874600688746C0463026000000000B73EE +:10261000657269616C2D656D697400B500F028F80C +:10262000002E40CFFAD0F6B22B48066040CF00BD56 +:102630005C26000000000A73657269616C2D6B6591 +:10264000790000B500F02BF8002E40CFFAD0043FFF +:102650003E60214E3668F6B200BDC0468C260000B2 +:1026600000000C73657269616C2D656D69743F00C3 +:1026700000B5FFF7C3FF043F3E6000261E4820223E +:102680000168114000D0F64300BDC046FC260000A2 +:1026900000000B73657269616C2D6B65793F00B545 +:1026A000FFF7ACFF043F3E6000261348012201689B +:1026B000114000D0F64300BD80800440400001007E +:1026C000A4400440A840044000100000988004404A +:1026D0000C800040288000400080004004800040C2 +:1026E00008800040D40F0010D00F0010CC0F001055 +:1026F000C80F0010C40F00101480004020270000F5 +:102700000000076365787065637400B5386801B4CC +:102710000130386000F00BF801BC067040CF00BDFE +:10272000982700000000066163636570740000B5BF +:1027300002CF01390022FFF742FF300040CF7F284F +:1027400009D0202819D2092816D00A281FD00D2810 +:102750001DD00828EFD1002AEDD000F015F90308AC +:102760002008002AE7D0885C013A80230340E2D0A9 +:1027700040230340F5D0DEE72020B242DBD2043F05 +:102780003E600600FFF710FF01328854D3E71600C1 +:1027900000F0A8F800BDC046AC270000400003745C +:1027A0006962043F3E602B4E7047C046C42700005C +:1027B0008100033E696E043F3E60274E7047000073 +:1027C0000000C046EC27000082000E63757272653F +:1027D0006E742D736F7572636500043F3E601F4E0B +:1027E0007047000000009C000010C0460828000050 +:1027F000000009736574736F75726365174802CFC3 +:102800000660416040CF7047282800000000067332 +:102810006F7572636500043F3E60104E043F706840 +:10282000386036687047C0466028000000000571B7 +:10283000756572790FB5084800210160FFF7B1FF97 +:10284000043F3E60043F3E60C826FFF770FFFFF77D +:10285000D5FF0FBD9C000010C00F0010B80F001076 +:10286000B0280000000007636F6D706172650FB5DE +:10287000310040CF01CF884202D040CF00260FBDAB +:1028800002CF002810D001380A5C335C412A02D301 +:102890005B2A00D22032412B02D35B2B00D22033A3 +:1028A0009A42EED000260FBD0026F6430FBDC0466B +:1028B000C428000000000263720000B500F064F854 +:1028C000010A00BDD8280000000002626C00043F2D +:1028D0003E6020267047C046EC28000000000573CB +:1028E00070616365043F3E6020265DE60C290000B0 +:1028F0000000067370616365730000B5002E03DD90 +:10290000FFF7F0FF013EFBD140CF00BD1C290000C6 +:102910005000065B636861725D0005E034290000C9 +:10292000000004636861720000B501F053FC40CF01 +:10293000367800BD4429000050040128043F3E6061 +:10294000292606E0602900005004015C043F3E6037 +:10295000002600B501F048FC043740CF00BDC0465A +:10296000A82900001000022E22009F4800B5043F55 +:102970003E60060000F0DEF9043F3E60222601F0D2 +:1029800033FC00F05EFD00BD0AB4043F3E607646B5 +:10299000013E33780121013319405B187146C91893 +:1029A0008E460ABC3CE0C046D029000010000263FD +:1029B00022008E48DAE7043F3E607646013E3378D7 +:1029C0000121013319405B187146C9188E467047C2 +:1029D000FC2900001000027322008548C6E7043F6E +:1029E0003E607646043F3E60013E36780121731C0E +:1029F00019405B187146C9188E467047142A0000AA +:102A0000000005636F756E740136043F3E60013E41 +:102A1000367870473C2A00000000056374797065C1 +:102A200001B53078002807D00136043F3E60367883 +:102A3000FFF7BAFD0138F7D140CF01BD6C2A000085 +:102A40000000047479706500310040CF300040CF41 +:102A500000B5002908D00022043F3E60865CFFF7E5 +:102A6000A3FD01329142F7D100BDC046A82A000063 +:102A70000000046865782E0007B5310040CF2020A3 +:102A80000F220438043F3E600E00C6401640092E57 +:102A900001D9373600E03036FFF786FD0028F0D147 +:102AA000FFF720FF07BDC046B82A000000000368FA +:102AB0002E731FB54F4C0EE0C82A000000000375AE +:102AC0002E731FB54C4C06E0482B00000000022E70 +:102AD00073001FB5494C4A49C91B8908494A106807 +:102AE00003B40A201060FFF74FFF08537461636B53 +:102AF0003A205B00043F3E600E0001F053FDFFF7FB +:102B000043FF025D200003BC3E4A106000290AD04A +:102B10003D4A106806B4043F3E600600A04706BC6C +:102B2000043A0139F5D1FFF72FFF0620544F533AED +:102B30002000043F3E603600A047FFF725FF042039 +:102B40002A3E0A001FBDC0460C2C0000000005777D +:102B50006F72647300B5FFF717FF010A00F0B9FE4A +:102B6000FFF712FF09416464726573733A20043FF2 +:102B70003E60FFF781FFFFF707FF064C696E6B3A77 +:102B80002000043F3E603668FFF776FFFFF7FCFE4B +:102B900007466C6167733A20043F3E60B688FFF7D2 +:102BA0006BFFFFF7F1FE06436F64653A2000B01D2E +:102BB00000F0CAFE043F3E600600FFF75DFFFFF72E +:102BC000E3FE064E616D653A2000043F3E60063626 +:102BD000FFF726FFFFF7D8FE010A00F092FE300053 +:102BE00040CFBDD040CF00BD88290000B6290000ED +:102BF000DE290000792A000093450000A545000069 +:102C000064030010D80F001060030010282D00008E +:102C100000001072656769737465726C697465721F +:102C2000616C2C003FB5350040CF2900C900294315 +:102C30002D02AC480543FF2300223000D0409843CA +:102C400001D00132F9E73000D04018402843043F5A +:102C50003E60060000F0B5FBA34805431800904015 +:102C6000864310D000243000E040984301D0013466 +:102C7000F9E7101B043F3E600E008001064300F0A0 +:102C8000A0FB2200DFE7002A06D0043F3E600E00D2 +:102C90009201164300F095FB40CF3FBD1FB53100B8 +:102CA00040CF924C0C43C9000C434901300040CF47 +:102CB000020EFF231A408B4B0B431343043F3E602D +:102CC0001E0000F07EFB043F3E60260000F079FB12 +:102CD000020CFF231A40864B0B431343043F3E6014 +:102CE0001E0000F06EFB043F3E60260000F069FB12 +:102CF000020AFF231A407E4B0B431343043F3E60FE +:102D00001E0000F05EFB043F3E60260000F059FB11 +:102D10000200FF231A40764B0B431343043F3E60EF +:102D20001E0000F04EFB1FBD982D00000000056343 +:102D3000616C6C2C0FB5330000F0AAFE300040CF60 +:102D40001B1A043B6B49194000290ED06A4A914274 +:102D50000BD00136043F3E600026FFF763FF043FBF +:102D60003E60664E00F02DFB0FBD40CF5B0864480F +:102D7000644919400843DB0A6349194009040843C0 +:102D80009B0A0121194089060843043F3E60060062 +:102D900000F047FB0FBDC046EC2D00000000086CA2 +:102DA00069746572616C2C0008B5043F3E60574E33 +:102DB00000F007FB043F3E60554E00F002FB554B10 +:102DC0003000184098420BD1F643043F3E6006267F +:102DD000FFF728FF043F3E604F4E00F0F2FA08BDB7 +:102DE000043F3E600626FFF71DFF08BD142E0000BD +:102DF0000000066372656174650000B500F047F875 +:102E00002E20000233308047043F3E607646013E6C +:102E100000BDC046802E0000200005646F65733E33 +:102E20002E20000233308047043F3E607646013E4C +:102E30007047043F3E607646013E384A1368384981 +:102E400009683648834205D20F2008400E2805D075 +:102E50000231F9E70220084000D10231023111604D +:102E60000136043F3E600026FFF718FF043F3E6036 +:102E7000224E00F0A6FA136000F0FFF900BDC04634 +:102E8000282F00000000073C6275696C647300B570 +:102E900000F0A4FB21480168204A91420CD200F0C6 +:102EA000F7FD0F2006400E2E40CF10D0043F3E60AD +:102EB000362600F086FAF2E700F0EAFD022006402E +:102EC00040CF04D1043F3E60362600F07AFA043F3A +:102ED0003E60144E00F075FA043F3E60102600F08C +:102EE000E3FA00BD00200000001000000002000016 +:102EF000003000000100C0FF0000C0FF804700005C +:102F000000F800F0FF070000FF030000043F00008E +:102F10003E6000000000FFFFF643000000000010CC +:102F20001400001000B50000342F00005000035BB7 +:102F3000275D03E04C2F00000000012700B501F0E1 +:102F400049F900F040FD300040CF00BD8C2F00005B +:102F5000100008706F7374706F6E650000B5FFF736 +:102F6000EDFF102101400DD12021014005D0FFF7D8 +:102F70001BFF043F3E60E74E04E0FFF715FF043FF0 +:102F80003E60E54EFFF7D6FE00BDC046D82F0000DC +:102F9000000007696E6C696E652C00B5DF49E04A78 +:102FA000E04B3088884208D0904208D0984206D042 +:102FB000043F3E60060000F004FA0236F1E740CF1D +:102FC00000BD0EB4D64AD74B01880230914201D0E1 +:102FD0009942F9D10EBC7047EC2F0000000004723A +:102FE00065742C00043F3E60CD4EEAE1FC2F0000EA +:102FF0003000046578697400F4E7C04614300000BE +:1030000030000772656375727365043F3E60C64E9B +:1030100036688FE62C30000081000573746174659A +:10302000043F3E60C14E7047000000004030000089 +:103030000000015DBD480021C94301607047C046E2 +:10304000503000001000015BB8480021016070475B +:10305000783000000008013A00B5B548076000F07C +:10306000BDFA043F3E60AD4E00F0ABF9AF48002121 +:10307000C943016000BDC046D83000003010013B9C +:1030800000B5AB480168B9420ED0FFF77DFC1520B2 +:10309000537461636B206E6F742062616C616E6348 +:1030A00065642E0A01F088FB043F3E609C4E9F48F9 +:1030B0000068411C07D0062804D8043F3E609D4E9E +:1030C00000F00EF9974E00F07CF900F0D6F8974822 +:1030D0000021016000BDC046EC3000000000076523 +:1030E000786563757465300040CF87460431000011 +:1030F000101009696D6D656469617465043F3E6017 +:103100001026EDE01C310000101006696E6C696E2F +:103110006500043F3E602026E2E0C04638310000F2 +:1031200010100B636F6D70696C656F6E6C79043F86 +:103130003E603026D4E0C0465431000010100A3002 +:103140002D666F6C6461626C6500043F3E604026D2 +:10315000C6E0C0467031000010100A312D666F6C59 +:103160006461626C6500043F3E604126B8E0C04681 +:103170008C31000010100A322D666F6C6461626C35 +:103180006500043F3E604226AAE0C046A831000028 +:1031900010100A332D666F6C6461626C6500043F29 +:1031A0003E6043269CE0C046C431000010100A3443 +:1031B0002D666F6C6461626C6500043F3E6044265E +:1031C0008EE0C046E031000010100A352D666F6CAD +:1031D0006461626C6500043F3E60452680E0C04645 +:1031E000FC31000010100A362D666F6C6461626C51 +:1031F0006500043F3E60462672E0C046183200007B +:1032000010100A372D666F6C6461626C6500043FB4 +:103210003E60472664E0C046483200000000086374 +:103220006F6E7374616E740000B500F0D7F9FFF72C +:10323000BBFD043F3E603B4E00F0C3F8FFF785FF47 +:1032400000F01BF800BDC0466C32000000000932DF +:10325000636F6E7374616E7400B500F0BFF9396806 +:103260003E600E46FFF7A0FDE1E7C046D032000009 +:10327000000006736D756467650000B52E4801682F +:103280002D4A91421ED202390A882C4B9A4204D10F +:10329000043F3E602A4E00F094F800F06BF800F016 +:1032A0007DF828480068043F3E600600264909680A +:1032B0000431214A1368116000F083F81360FEF7AF +:1032C00000FF00BD00F056F8043F3E60002608E015 +:1032D0004C330000000008736574666C616773000E +:1032E00000B515480168144A914205D21548016895 +:1032F0003143016040CF00BD320040CF124800682A +:10330000043001880D4B994201D1110000E01143B6 +:10331000018000BD9A2F0000342D000000B5000090 +:1033200000BD00007047000014000010B40F001032 +:10333000100000102010000000000010FFFF00002F +:10334000000000002000001004000010683300009E +:10335000410007616C69676E656401203040361872 +:1033600002203040361870478C33000000000561A1 +:103370006C69676E00B58E4801680220014004D078 +:10338000043F3E60002600F01CF800BDB83300008A +:10339000000008616C69676E31362C0000B5844806 +:1033A00001680F20014005D0043F3E60002600F078 +:1033B00008F8F4E700BDC046FC33000000000268D6 +:1033C0002C000FB5B6B27B480168002902D001314C +:1033D00000D0016076480168754A914205D2043FE9 +:1033E0003E600E00FEF7F7FD02E0320040CF0A809B +:1033F000043F3E60022600F057F80FBD183400006D +:103400000000012C00B5043F3E60FFF7DAFF360CE8 +:10341000FFF7D7FF00BDC046343400000000033E74 +:103420003C2C00B5043F3E60360CFFF7CAFFFFF7A7 +:10343000C8FF00BD9C340000000007737472696E01 +:10344000672C07B5FF21314040CF300040CF002925 +:1034500005D1043F3E600026FFF7B3FF07BD043FE0 +:103460003E60067836020E43FFF7ABFF01300139AC +:1034700002290AD3043F3E6046783602027816439A +:10348000FFF79FFF02300239F2E7002900D107BDA4 +:10349000043F3E600678FFF794FF07BDF834000054 +:1034A000000005616C6C6F7441480168404A9142AC +:1034B0000FD2320040CF89183F4A914219D3FFF70B +:1034C00063FA0B466C6173682066756C6C0A01F0D8 +:1034D00073F9320040CF8918384A1268914208D3F4 +:1034E000FFF752FA0952616D2066756C6C0A01F0A3 +:1034F00063F901607047C0462035000000000D638D +:103500006F6D70696C65746F72616D3F043F3E60F2 +:103510000026274800682649884248D3F64370476A +:103520004035000000000C636F6D70696C65746F4E +:1035300072616D001E4800681D49884211D37047B2 +:10354000CC35000000000E636F6D70696C65746FA0 +:10355000666C61736800164800681549884200D29D +:1035600070471748174902680B680A6003601048E3 +:10357000154902680B680A600360104800688342BE +:1035800015D300B5FFF700FA232056617269616216 +:103590006C657320636F6C6C69646520776974680F +:1035A0002064696374696F6E6172790A00BD704747 +:1035B00000000010B40F0010008000002400001074 +:1035C000040000101C00001018000010C836000095 +:1035D00000000828637265617465290000B500F079 +:1035E000F9FD002E0ED1FFF7CFF91520437265616A +:1035F0007465206E65656473206E616D6520210AB7 +:1036000001F0DAF83868043F3E60043F386000F0AB +:10361000ABF940CF002E40CF11D03868043F3E6058 +:10362000043F3860FFF7B0F9095265646566696E5A +:103630006520FFF709FAFFF7A7F9022E0A00FFF746 +:1036400099FE924800689149884225D2904800210D +:103650000160FFF7A3FE043F3E600C26FFF724FF46 +:1036600000F016FA043F3E600626FFF71DFFFDF747 +:1036700001FDFFF7E6FE874801680A68864B9A421B +:1036800007D1824A13681160043F3E60FFF7BAFE1B +:103690001360066040CF12E000F0FAF97D48043F65 +:1036A0003E600668FFF7AEFE043F3E607B4EFFF7CC +:1036B00088FE7848310040CF0160FFF7C2FE7348B2 +:1036C00001687748016000BDE03600000000087620 +:1036D00061726961626C6500043F3E60012613E01F +:1036E000F8360000000009327661726961626C652B +:1036F000043F3E60022607E0D03700000000096E5C +:103700007661726961626C6500B5FFF767FF5F48BB +:1037100001685E4A914233D20F200640B2006148F0 +:103720000168891A604A91420BD2FFF72DF90F4EBA +:103730006F7420656E6F7567682052414D0A01F005 +:103740003BF80160043F3E600E00FFF72DFB043F95 +:103750003E60564EFFF735FE300040CF0200002895 +:1037600005D00E600431FFF74DFE0138F9D1043F5A +:103770003E6080261643FFF7B3FDFFF77EFD00BDD8 +:1037800000F086F90220064040CF04D1043F3E609D +:103790003626FFF716FE043F3E60454EFFF741FE1A +:1037A000043F3E60434EFFF73CFE043F3E603F4E09 +:1037B000FFF707FE300040CF002803D0FFF722FEBE +:1037C0000138FBD1FFF7C1FCFFF757FD00BDC04634 +:1037D000BC3800000000076275666665723A00B585 +:1037E000FFF7FCFE0120304036180220304036182A +:1037F00026480168254A914226D22A480168891B39 +:10380000294A91420BD2FFF7BFF80F4E6F74206523 +:103810006E6F7567682052414D0A00F0CDFF016060 +:10382000043F3E600E00FFF7BFFA043F3E601F4EAC +:10383000FFF7C7FDFFF7E6FD043F3E601E4EFFF7B2 +:103840004FFDFFF71AFD00BD00F022F902200640EF +:1038500040CF04D1043F3E603626FFF7B2FD043F5F +:103860003E60134EFFF7DDFD043F3E60114EFFF753 +:10387000D8FD043F3E600D4EFFF7A3FDFFF714FE99 +:10388000FFF763FCFFF7F9FC00BD0000000000102B +:103890002000001004000010FFFFFFFFFFFF0000EA +:1038A00014000010240000100807001070470000EA +:1038B0003E60043F02367E4640010000EC380000C6 +:1038C00000000F64696374696F6E6172797374616B +:1038D0007274424800684149043F3E60884201D208 +:1038E0003F4E70473F4E36687047C046283900004B +:1038F00000000E64696374696F6E6172796E657839 +:10390000740003B531683848814207D08879FF28B0 +:1039100004D00E00043F3E60002603BD043F3E601D +:103920000026F64303BDC0465C39000000000A7360 +:103930006B6970737472696E6700317801310122AE +:103940000A4089187618704706B4017801310122BF +:103950000A408918401806BC7047C046F03900007C +:1039600000000466696E64003FB500220023350044 +:1039700040CF340040CFFFF7ACFF1C48B1888842ED +:1039800017D0043F3E600636FFF73EF8043F3E6026 +:103990002600043F3E602E00FEF769FF002E40CF58 +:1039A00007D0B01DFFF7D0FF02000B000B4882428A +:1039B00004D2FFF7A6FF300040CFDED01600043F50 +:1039C0003E601E003FBD00B531003868FFF7CCFFF8 +:1039D0003A68002A01D100F05BFE00BD0000001033 +:1039E0000003000004000010FFFFFFFFFFFF0000C6 +:1039F0004C3A0000000006636A756D702C003200BE +:103A000040CF310040CF8B1B043BE54919400029D2 +:103A10000DD0E44881420AD0FEF7B6FF0D4A756D1D +:103A20007020746F6F206661720A00F0C5FE5B1033 +:103A3000FF210B40134330001E0000B5DA4A136823 +:103A40001060FFF7BEFC136000BDC046843A000062 +:103A50000000056A756D702C310040CF300040CFFA +:103A60000B1A043BD1491940002902D0D04A914297 +:103A7000D2D15B10CF4A1340CF4A1343043F3E607C +:103A80001E00DAE79C3A00000000046865726500D9 +:103A9000043F3E60C44E36687047C046C43B0000D9 +:103AA00000000D666C6173687661722D68657265E1 +:103AB000043F3E60C14E3668704700B5043F3E602B +:103AC000BF4EFFF77EFC043F3E60BE4EFFF779FC21 +:103AD00000BDDDE700B500F037F839683E600E46FE +:103AE000043F3E60B84EFFF78AFF00BD00B500F00E +:103AF0002BF839683E600E46043F3E60B34EFFF738 +:103B00007EFF00BD00B5FFF7D8FF00F01DF8396853 +:103B10003E600E46043F3E60AD4EFFF770FF00BDB5 +:103B200000B500F011F839683E600E46FFF794FFCB +:103B300000BD00B5FFF7C1FFFFF7AAFF043F3E60DD +:103B40000226FFF7B1FC00BD00B5FFF7A1FF043F5F +:103B50003E600226FFF7A8FC00BD00B5FFF798FF06 +:103B6000FFF77AFF00BD00B5FFF792FF043F3E600C +:103B7000974EFFF744FF00BD00B5FFF789FF043FF4 +:103B80003E60914EFFF73BFF00BD00B5FCF738FDEE +:103B9000FCF75EFCFCF761FCFCF764FC81682829FB +:103BA00001D1FCF774FDFCF769FD043F3E60894ECE +:103BB00009020E43FFF705FCFCF70FFCFCF73CFC89 +:103BC00000BDC046343C000030060269660000B506 +:103BD000FFF7AFFF043F3E607D4E043F3E6002268C +:103BE00000BD00B5FCF795FDFDF7B3FD816A002926 +:103BF00010D002B4FCF720FCFFF74AFF043F3E6000 +:103C00000226FFF751FC043F3E6040BC043F3E608B +:103C1000022600BDFFF7B9FFFFF73AFF043F3E6001 +:103C20000226FFF741FC043F3E60694E043F3E60C0 +:103C3000022600BD683C0000300004656C7365001E +:103C400000B5022E26D140CFFFF77EFFFDF712FA16 +:103C5000FFF71EFF39683E600E46FFF7D0FE043FB7 +:103C60003E60052600BDC046B43C00003000047430 +:103C700068656E00052E01D140CF6EE7022E09D196 +:103C800040CF00B5FFF704FF39683E600E46FFF7EE +:103C9000B6FE00BDFEF778FE175374727563747537 +:103CA00072657320646F6E2774206D617463680A97 +:103CB00000F082FDE43C0000300006726570656132 +:103CC0007400042EE6D140CF00B5FDF7B6F9FFF73A +:103CD00027FFFFF7DDFE39683E600E46FFF78FFED7 +:103CE00000BDC046103D00003006057768696C6570 +:103CF000012ECFD140CF00B5FFF769FF023600BDDE +:103D0000012EC7D140CF00B5FFF76BFF023600BDD3 +:103D1000703D0000300605756E74696C012EB9D1D6 +:103D200040CFEFE67047012EB4D140CF00B5FDF78C +:103D300010FD816A00290DD002B4FCF77DFBFFF76E +:103D400003FF39683E600E46043F3E6040BCFFF70B +:103D500056FE00BDFFF719FFFFF7F6FE39683E601B +:103D60000E46043F3E601A4EFFF749FE00BDC046B6 +:103D7000843D0000300005616761696E012E89D1C4 +:103D800040CFCDE6D83D0000300005626567696E22 +:103D900000B5FFF79EFE043F3E60012600BD000017 +:103DA00001FFFFFF00FFFFFF0000001001F8FFFF11 +:103DB00000F8FFFFFF07000000E0000024000010F3 +:103DC000002E000040CF000000D1000000D700000E +:103DD00000D0000000280000F03D00002002016B30 +:103DE000043F3E60029E7047043F3E608E4E0AE0F4 +:103DF0001C3E00002002016A043F3E60009E7047A6 +:103E0000043F3E60894E00B5FCF7DDFAFCF7C6FBC7 +:103E100003601B021E43FFF7D4FA00BD483E0000BA +:103E200020020169043F3E602600704700B5043F50 +:103E30003E607F4EFCF7C7FAFCF7B0FB03601E4301 +:103E4000FFF7BFFA00BDC046883E00003000056C99 +:103E50006561766500B5774801683B00043F1A68E4 +:103E6000043B1A6008338B42F9D103B4FFF76CFEB0 +:103E700003BC330040CF04390B60016004390A6889 +:103E800001320A6000BDC0469C3E0000200006755D +:103E90006E6C6F6F700030BC7047C046D43E00003F +:103EA0003000052B6C6F6F70032E00D0F2E640CF10 +:103EB00000B5043F3E60604EFFF76FF8FFF716FE57 +:103EC0001AE0802000060019A419401B801940CF79 +:103ED0007047C046183F00003000046C6F6F7000E0 +:103EE000032E00D0D6E640CF00B5043F3E60534ECF +:103EF000FFF753F8FFF7EEFD00F052F94D4831009F +:103F000040CF0160043F3E604D4EFFF746F800BDD4 +:103F10000134AC427047C046603F0000300202648A +:103F20006F0000B5043F3E60464EFFF736F841484B +:103F30000168043F3E600E00043F3E6000260760BB +:103F4000FFF7C7FD043F3E60032600BD00B500F04B +:103F50002EF8ECE730B4340040CF350040CF704746 +:103F6000584000003002033F646F00B5043F3E60DC +:103F7000344EFFF712F8043F3E60334EFFF721FA4C +:103F80002C480168043F3E600E00FFF7DDFD01365E +:103F9000043F3E60012627480760FFF79AFD043F73 +:103FA0003E60032600BD00B500F001F8E3E700B570 +:103FB000FCF7AFFBFCF72EFBFCF74AFAFCF74DFAD7 +:103FC000FCF750FA043F3E60204EFFF7FAF9016813 +:103FD000282907D0043F3E601D4EC9000E43FFF75D +:103FE000F0F907E0043F3E604668043F3E60042667 +:103FF000FEF718FE8168282907D0043F3E60154E61 +:10400000C9000E43FFF7DDF907E0043F3E60C668D4 +:10401000043F3E600526FEF705FEFCF7DEF9FCF7DF +:10402000DCF9FCF729FA00BD0298000000980000B6 +:10403000200000000C000010C23E0000103F0000F5 +:10404000963E0000543F0000AC42000030B4000037 +:104050000400000005000000784000003000046308 +:104060006173650000B5FCF754FB043F3E60002619 +:10407000043F3E60082600BD904000003000033F32 +:104080006F666C480AE0013EB64140CF7047C046BB +:10409000404100003002026F66006748082E00D0E1 +:1040A000F8E540CF00B5043F3E600600FEF775FF1F +:1040B000FFF74AFD39683E600E460136043F3E6018 +:1040C0000926043F3E605D4EFFF77BF900BD082ED8 +:1040D00000D0DFE540CF00B5FCF79CFAFCF7B8F95B +:1040E000FCF7BBF9FCF7BEF9043F3E60544EFCF709 +:1040F000CEFA0E430268282A15D14268FF2A07D853 +:1041000040CF043F3E604F4E164309020E430CE081 +:10411000043F3E601600FCF741FA1A00043F3E607F +:104120001E00FEF77FFDD2001643FFF74AF9FCF7A9 +:1041300054F9FCF7A1F9BBE7300040CFB04270471B +:1041400078410000300005656E646F66092E00D06E +:10415000A0E540CF00B540B440CFFFF7F5FC39688B +:104160003E600E46FFF708FD043F3E6040BC043F42 +:104170003E60082600BDC046C8410000300007650B +:104180006E6463617365082E00D083E540CF00B58F +:10419000043F3E60294EFFF714F900F001F800BD1E +:1041A00000B5300040CF00280DD003B401213140CC +:1041B000002903D0013EFFF7D6FC01E0FFF7CDFC5C +:1041C00003BC0138EFE700BDDC41000000000574CE +:1041D0006F6B656E043F3E60202605E04C42000098 +:1041E000000005706172736510B5FEF714FB3100B5 +:1041F00040CF300040CF144A12688418202E07D1D7 +:1042000091420FD0835CB34202D101328418F7E7A8 +:10421000914207D0835C0132B342F9D18618361B34 +:10422000013E01E08618361B043F3C6006480260F0 +:1042300010BD0000864000003841000040CF000063 +:104240008042000000280000C00F00108C420000D7 +:104250000000056469676974D44B1B68303E0BD35A +:104260000A2E0BD3073E0A2E06D3242E06D3203E59 +:104270000A2E01D3242E01D3002670479E42FBD282 +:10428000043F3E600026F6437047C0469843000056 +:104290000000066E756D626572003FB5310040CF5B +:1042A000701E0126012204B4C04B1B6800240025A7 +:1042B00000293CD00130013902782D2A04D101B007 +:1042C0000022D24304B4F3E7232A01D10A23EFE703 +:1042D000242A01D11023EBE7252A01D10223E7E7A5 +:1042E0002E2A01D10226E3E72C2A36D0043F3E6075 +:1042F0001600FFF7B3FF002E40CF2BD0043F3E60E7 +:104300002600043F3E602E00043F3E601E00043F36 +:104310003E6000260FB4FCF78CFB0FBC350040CF8D +:10432000340040CF0022A419554140CFC0E704BC5F +:10433000002A04D50022E443ED4301345541330003 +:104340002600012B02D0043F3E602E00043F3E6059 +:104350001E003FBD01B000263FBD250000240226FF +:104360000029E4D0425C01392E2AF9D0043F3E6096 +:104370001600FFF773FF002E40CFEBD0043F3C60E8 +:10438000043F3E601E000FB4FCF707FC0FBC340076 +:1043900040CF40CFE4E7C046BC4300000000062EFB +:1043A0006469676974000A2E01D230367047242E82 +:1043B00001D23736704723267047C046F4430000C9 +:1043C000000004686F6C6400330040CF78480178C7 +:1043D0003F290DD2013101704018012907D0013861 +:1043E000027801300270013801390129F7D10370D8 +:1043F0007047C04614440000000005686F6C643CC0 +:10440000330040CF6A4801783F2902D20131017060 +:10441000435470472C4400000000047369676E0029 +:10442000002E01D440CF70472D26CDE74044000038 +:10443000000002233E005E48067801303860704775 +:104440005844000000000366235310B5202400F0F8 +:1044500008F8013CFBD110BD7C440000000002665E +:10446000230000B5043F3E60504E3668FCF7B3FAB7 +:10447000FFF799FFFFF7C4FF00BDC0469844000056 +:1044800000000223530000B500F00AF8002EFBD113 +:1044900038680028F8D100BDC444000000000123A2 +:1044A00000B5043F3E60414E3668043F3E60002642 +:1044B000FCF793FBFCF768F940CFFFF774FFFFF7B9 +:1044C00083FF00BDD84400000000023C23003848B0 +:1044D000002101707047C046EC44000000000266F5 +:1044E0002E00043F3E60202605E0C0463C4500000B +:1044F000000003662E6E00B510B4340040CFFCF708 +:1045000089FDFCF727FA043F3E600026FFF7DFFF36 +:10451000FFF7B9FF40CF2C26FFF772FF002C03D026 +:10452000FFF79FFF013CFBD110BC40CFFFF778FFA6 +:10453000043F3E60043F3E601EE0C046544500001C +:1045400000000375642E00B5FFF7C1FFFFF79BFF66 +:1045500012E0C04688450000000002642E0000B54D +:10456000FCF758FDFCF7F6F9FFF7B1FFFFF78BFFFB +:10457000FCF763FDFFF754FFFFF75DFFFEF764FAFA +:10458000FEF7B0F900BDC0469C4500000000027572 +:104590002E00043F3E600026D5E7C046B44500002B +:1045A0000000012E043F3E60F617D8E7D80F001038 +:1045B0005C000010FC4500000000086576616C7529 +:1045C0006174650000B5FEF726F901CF01B440B46F +:1045D00040CF8A48016802B400210160FEF70EF95D +:1045E00000F014F8854802BC0160043F3E6040BC06 +:1045F00001BC043F3860FEF701F900BD90470000A0 +:10460000000009696E7465727072657430B57C481B +:1046100087420BD9FEF7B8F910537461636B2075AC +:104620006E646572666C6F770A00C5E075488742F4 +:104630000AD2FEF7A9F90F537461636B206F766598 +:1046400072666C6F770AB7E06F4C2568002D01D158 +:104650003D002560FFF7BEFD002E02D1043740CF9C +:1046600030BD3868043F3E60043F3860FFF77CF996 +:10467000310040CF320040CF002A15D138683100D8 +:10468000FDF725F8FFF709FE320040CF002ABED122 +:10469000FEF7DEF9FEF778F90C206E6F7420666F76 +:1046A000756E642E0A0087E0584B1B68002B29D1D9 +:1046B00000252560564B0B4009D0043740CF5548A4 +:1046C0000760FEF78BFF5148012101609FE730230F +:1046D0000B40302B0ED1FEF7B7F9FEF755F912203B +:1046E000697320636F6D70696C652D6F6E6C792EC8 +:1046F0000A0061E0043740CF043F3E601600FEF739 +:10470000F2FC84E7043740CF4348084001D1FCF76E +:10471000DEFF8020084008D1EB1B9B0840200840AA +:1047200009D00F200840834205D3043F3E601600A5 +:10473000FEF7D9FC6BE7394808400CD0FBF7F3FDD6 +:104740001000FEF73EFC421C3548904738002060C0 +:10475000FBF7F8FD5BE7FBF7E6FDFBF76DFE0025D9 +:1047600025603048084001D1FBF7D3FF043F3E608D +:10477000160010220A4002D0FEF7B5FC47E72022BF +:104780000A4002D0FEF709FC41E7FEF7D3FA3EE704 +:10479000AC470000810009686F6F6B2D71756974FB +:1047A000043F3E60204E7047E84700003C48000050 +:1047B00000000471756974001C488546104FFDF7B0 +:1047C000FBFB1B480A2101601048002101600E48D4 +:1047D0000160FBF776FE0948016016480160164942 +:1047E0004160114800688746FEF724F8FFF70EFF86 +:1047F000FEF7CAF805206F6B2E0AF5E7C00F001010 +:10480000640300106401001008000010B40F0010D1 +:10481000000800001000001000040000000200006A +:104820002800001000100000B00F001064040010F9 +:10483000D80F0010B80F00109C000010584800005E +:1048400000000565696E743F043F3E60EFF310861B +:10485000013EB6417047C04668480000200004652C +:10486000696E740062B670477848000020000464E6 +:10487000696E740072B670479048000020000469A9 +:1048800070737200043F3E60EFF305867047C046C8 +:104890009C4800000000036E6F707047E048000005 +:1048A000000009756E68616E646C656400B5FEF7A2 +:1048B0006BF814556E68616E646C656420496E74A3 +:1048C0006572727570742000043F3E60EFF30586D8 +:1048D000FEF7D2F8FEF758F802210A0000BDC046E4 +:1048E000F4480000000005726573657488488949C2 +:1048F0000160C0461849000081000B6972712D7378 +:1049000079737469636B043F3E60834E7047AC48B3 +:1049100000008148006887463C4900008100096921 +:1049200072712D6661756C74043F3E607B4E7047FA +:10493000AC480000794800688746C04664490000DA +:1049400081000E6972712D636F6C6C656374696FA1 +:104950006E00043F3E60724E7047AC4800007048E5 +:1049600000688746844900008100076972712D61E3 +:104970006463043F3E606B4E7047AC48000069487A +:1049800000688746A44900008100076972712D699B +:104990003263043F3E60644E7047AC48000062489A +:1049A00000688746C84900008100086972712D754A +:1049B00061727400043F3E605C4E7047AC4800007A +:1049C0005A4800688746C0460C500000FFFF182D6B +:1049D0002D2D20466C6173682044696374696F6E85 +:1049E000617279202D2D2D00FDF768FD5048854618 +:1049F000504F2A26504851490160514851490160A1 +:104A0000043F3E604F4E504DB188504B994224D0E8 +:104A10004F4B0B400AD0B01DFEF796FFFEF7D1FAC0 +:104A20000388408800040343ED1A16E080230B40FE +:104A300013D00F23194089006D1AB01DFEF784FFB3 +:104A4000FEF7BFFA043F3E600600043F3E602E00C2 +:104A5000043F3E600E00FCF709FFFEF752FF3000F6 +:104A600040CFD1D03B48066040CF3B4805603B4833 +:104A70003B49364A884204D0023803889342F9D031 +:104A8000023038490860FDF797FAFDF77DFF544D75 +:104A90006563726973702D5374656C6C61726973B0 +:104AA00020524120302E39206578706572696D651D +:104AB0006E74616C2077697468204D3020636F726A +:104AC0006520666F72204C504331313134464E328E +:104AD00038206279204D61747468696173204B6F6E +:104AE00063680A00204800210160043F3E601F4EB9 +:104AF000043F3E600426FEF737FF40CF002E02D071 +:104B0000FEF7F1FA6DE640CF56E6696E6974000073 +:104B10000CED00E00400FA05AC0F0010A80F001027 +:104B2000A40F0010A00F00109C0F0010980F001091 +:104B30006404001064030010000000100807001057 +:104B40000400001000030000E00F0010FFFF000051 +:104B5000000100001C000010240000100080000074 +:104B60000050000018000010080000100A4B000060 :00000001FF diff --git a/mecrisp-stellaris-source/common/datastackandmacros.s b/mecrisp-stellaris-source/common/datastackandmacros.s index 45eaa1d..cbab0b3 100644 --- a/mecrisp-stellaris-source/common/datastackandmacros.s +++ b/mecrisp-stellaris-source/common/datastackandmacros.s @@ -327,7 +327,7 @@ psp .req r7 .macro welcome Meldung bl dotgaensefuesschen .byte 8f - 7f @ Compute length of name field. -7: .ascii "Mecrisp-Stellaris RA 0.8 experimental" +7: .ascii "Mecrisp-Stellaris RA 0.9 experimental" .ascii "\Meldung\n" 8: .p2align 1 .endm diff --git a/mecrisp-stellaris-source/common/double-neuigkeiten.s b/mecrisp-stellaris-source/common/double-neuigkeiten.s new file mode 100644 index 0000000..371c347 --- /dev/null +++ b/mecrisp-stellaris-source/common/double-neuigkeiten.s @@ -0,0 +1,993 @@ +@ +@ Mecrisp-Stellaris - A native code Forth implementation for ARM-Cortex M microcontrollers +@ Copyright (C) 2013 Matthias Koch +@ +@ This program is free software: you can redistribute it and/or modify +@ it under the terms of the GNU General Public License as published by +@ the Free Software Foundation, either version 3 of the License, or +@ (at your option) any later version. +@ +@ This program is distributed in the hope that it will be useful, +@ but WITHOUT ANY WARRANTY; without even the implied warranty of +@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +@ GNU General Public License for more details. +@ +@ You should have received a copy of the GNU General Public License +@ along with this program. If not, see . +@ + +@ Double number support + +@------------------------------------------------------------------------------ +@ --- Double stack jugglers --- +@------------------------------------------------------------------------------ + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_2, "2dup" @ ( 2 1 -- 2 1 2 1 ) +@ ----------------------------------------------------------------------------- + ldr r0, [psp] + pushdatos + subs psp, #4 + str r0, [psp] + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_2|Flag_inline, "2drop" @ ( 2 1 -- ) +ddrop_vektor: +@ ----------------------------------------------------------------------------- + adds psp, #4 + drop + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_4, "2swap" @ ( 4 3 2 1 -- 2 1 4 3 ) +dswap: +@ ----------------------------------------------------------------------------- + ldm psp!, {r0, r1, r2} + subs psp, #4 + str r0, [psp] + pushdatos + subs psp, #4 + str r2, [psp] + movs tos, r1 + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_2|Flag_inline, "2nip" @ ( 4 3 2 1 -- 2 1 ) +dnip: +@ ----------------------------------------------------------------------------- + ldm psp!, {r0, r1, r2} + subs psp, #4 + str r0, [psp] + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_4, "2over" @ ( 4 3 2 1 -- 4 3 2 1 4 3 ) +@ ----------------------------------------------------------------------------- + ldr r0, [psp, #8] + pushdatos + subs psp, #4 + str r0, [psp] + ldr tos, [psp, #12] + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_4, "2tuck" @ ( 4 3 2 1 -- 2 1 4 3 2 1 ) +@ ----------------------------------------------------------------------------- + ldm psp!, {r0, r1, r2} @ w=2 x=3 y=4 + subs psp, #4 + str r0, [psp] + pushdatos + subs psp, #4 + str r2, [psp] + subs psp, #4 + str r1, [psp] + subs psp, #4 + str r0, [psp] + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_6, "2rot" @ ( 6 5 4 3 2 1 -- 4 3 2 1 6 5 ) ( x w y -- w y x ) + @ 16 12 8 4 0 tos 16 12 8 4 0 tos +@ ----------------------------------------------------------------------------- + ldr r0, [psp] + ldr r1, [psp, #8] + ldr r2, [psp, #16] + + str r0, [psp, #8] + str r1, [psp, #16] + str r2, [psp] + + ldr r1, [psp, #4] + str tos, [psp, #4] + ldr tos, [psp, #12] + str r1, [psp, #12] + + bx lr + +@ ----------------------------------------------------------------------------- + Wortbirne Flag_foldable_6, "2-rot" @ ( 6 5 4 3 2 1 -- 2 1 6 5 4 3 ( x w y -- y x w ) + @ 16 12 8 4 0 tos 16 12 8 4 0 tos +@ ----------------------------------------------------------------------------- + ldr r0, [psp] + ldr r1, [psp, #8] + ldr r2, [psp, #16] + + str r0, [psp, #16] + str r1, [psp] + str r2, [psp, #8] + + ldr r1, [psp, #12] + str tos, [psp, #12] + ldr tos, [psp, #4] + str r1, [psp, #4] + + bx lr + + +@------------------------------------------------------------------------------ +@ --- Double return stack jugglers --- +@------------------------------------------------------------------------------ + +@ : p 3 4 .s 2>r .s 2r@ .s . . 2r> .s 2drop .s ; +@ : 2>r swap >r >r inline ; +@ : 2r> r> r> swap inline ; + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline, "2>r" @ Puts the two top elements of stack on returnstack. + @ Equal to swap >r >r +@------------------------------------------------------------------------------ + ldm psp!, {r0} + push {r0} + push {tos} + ldm psp!, {tos} + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline, "2r>" @ Fetches back two elements of returnstack. + @ Equal to r> r> swap +@------------------------------------------------------------------------------ + pushdatos + pop {tos} + pop {r0} + subs psp, #4 + str r0, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline, "2r@" @ Copies the two top elements of returnsteack +@------------------------------------------------------------------------------ + pushdatos + ldr tos, [sp, #4] + pushdatos + ldr tos, [sp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_inline, "2rdrop" @ Entfernt die obersten beiden Element des Returnstacks +@------------------------------------------------------------------------------ + add sp, #8 + bx lr + + +@------------------------------------------------------------------------------ +@ --- Double calculations --- +@------------------------------------------------------------------------------ + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_2, "d2/" +@------------------------------------------------------------------------------ + ldr r0, [psp] + lsls r1, tos, #31 @ Prepare Carry + asrs tos, #1 @ Shift signed high part right + lsrs r0, #1 @ Shift low part + orrs r0, r1 + str r0, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_2, "d2*" +@------------------------------------------------------------------------------ + ldr r0, [psp] + adds r0, r0 + adcs tos, tos + str r0, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_2, "dshr" +@------------------------------------------------------------------------------ + ldr r0, [psp] + lsls r1, tos, #31 @ Prepare Carry + lsrs tos, #1 @ Shift unsigned high part right + lsrs r0, #1 @ Shift low part + orrs r0, r1 + str r0, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_2, "dshl" +@------------------------------------------------------------------------------ + ldr r0, [psp] + adds r0, r0 + adcs tos, tos + str r0, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_2, "dabs" +@------------------------------------------------------------------------------ +dabs: + cmp tos, #0 @ Check sign in high-part + bmi.n dnegate @ Not negative ? Nothing to do ! + bx lr + +@------------------------------------------------------------------------------ +@ Wortbirne Flag_foldable_3, "?dnegate" @ Negate a double number if top element on stack is negative. +@------------------------------------------------------------------------------ +@ popda r0 +@ cmp r0, #0 +@ bmi.n dnegate +@ bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_foldable_2, "dnegate" +@------------------------------------------------------------------------------ +dnegate: + ldr r0, [psp] + movs r1, #0 + mvns r0, r0 + mvns tos, tos + adds r0, #1 + adcs tos, r1 + str r0, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_4, "d-" @ ( 1L 1H 2L 2H ) +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + subs r2, r0 @ Low-part first + sbcs r1, tos @ High-part with carry + movs tos, r1 + + subs psp, #4 + str r2, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_4, "d+" @ ( 1L 1H 2L 2H ) +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + adds r2, r0 + adcs tos, r1 + subs psp, #4 + str r2, [psp] + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_1, "s>d" @ ( n - dl dh ) Single --> Double conversion +@------------------------------------------------------------------------------ + pushdatos + movs tos, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + bx lr + +@------------------------------------------------------------------------------ +@ --- Double star and slash --- +@------------------------------------------------------------------------------ + + + .ifdef m0core + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_2, "um*" + @ Multiply unsigned 32*32 = 64 + @ ( u u -- ud ) +um_star: +@------------------------------------------------------------------------------ + ldr r0, [psp] @ To be calculated: Tos * r0 + + @ Calculate low part in hardware: + movs r3, r0 @ Save the low part for later + muls r3, tos @ Gives complete low-part of result + str r3, [psp] @ Store low part + + @ Calculate high part: + lsrs r1, r0, #16 @ Shifted half + lsrs r2, tos, #16 @ Shifted half + + movs r3, r1 @ High-High + muls r3, r2 + + @ Low-High and High-Low + uxth tos, tos + uxth r0, r0 + + muls tos, r1 + muls r0, r2 + adds tos, r0 + + lsrs tos, #16 @ Shift accordingly + adds tos, r3 @ Add together + bx lr + + .else + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_2, "um*" + @ Multiply unsigned 32*32 = 64 + @ ( u u -- ud ) +um_star: +@------------------------------------------------------------------------------ + + ldr r0, [psp] + umull r0, tos, r0, tos @ Unsigned long multiply 32*32=64 + str r0, [psp] + bx lr + + .endif + + + .ifdef m0core + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_2, "m*" + @ Multiply signed 32*32 = 64 + @ ( n n -- d ) +m_star: +@------------------------------------------------------------------------------ + + ldr r0, [psp] + movs r1, r0, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 1f + @ - * ? + rsbs r0, r0, #0 + str r0, [psp] + + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 2f @ - * + + + @ - * - + rsbs tos, tos, #0 + b.n um_star + +1: @ + * ? + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq.n um_star @ + * + + @ + * - + rsbs tos, tos, #0 + + @ - * + or + * - +2: push {lr} + bl um_star + bl dnegate + pop {pc} + + .else + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_2, "m*" + @ Multiply signed 32*32 = 64 + @ ( n n -- d ) +m_star: +@------------------------------------------------------------------------------ + + ldr r0, [psp] + smull r0, tos, r0, tos @ Signed long multiply 32*32=64 + str r0, [psp] + bx lr + + .endif + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "ud*" +ud_short_star: + @ Unsigned multiply 64*64 = 64 + @ ( ud1 ud2 -- ud ) +@------------------------------------------------------------------------------ + @ Multiply r1:r0 and r3:r2 and return the product in r1:r0 + @ tos w x y + +@ r1:r0 r3:r2 --> r1:r0 +@ tos r0 r1 r2 --> tos r0 + + ldm psp!, {r0, r1, r2} + + muls tos, r2 @ High-1 * Low-2 --> tos + muls r1, r0 @ High-2 * Low-1 --> r1 + adds tos, r1 @ Sum into tos + + lsrs r1, r0, #16 + lsrs r3, r2, #16 + muls r1, r3 + adds tos, r1 + + lsrs r1, r0, #16 + uxth r0, r0 + uxth r2, r2 + muls r1, r2 + muls r3, r0 + muls r0, r2 + + movs r2, #0 + adds r1, r3 + adcs r2, r2 + lsls r2, #16 + adds tos, r2 + + lsls r2, r1, #16 + lsrs r1, #16 + adds r0, r2 + adcs tos, r1 + + subs psp, #4 + str r0, [psp] + + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "udm*" +ud_star: @ Unsigned multiply 64*64 = 128 + @ ( ud1 ud2 -- udl udh ) +@------------------------------------------------------------------------------ + @ Auf dem Datenstack: ( 1L 1H 2L 2H -- LL L H HH ) + @ 12 8 4 0 nach pushdatos + @ d c b a r0 r1 r2 r3 + @ Benötige einen langen Ergebnisregister ! + + push {r4, lr} + movs r4, #0 @ For Carry addition + + @ ( d c b a ) + pushdatos + ldr tos, [psp, #4] @ b + pushdatos + ldr tos, [psp, #12+4] @ d + bl um_star + @ ( d c b a b*d-Low b*d-High ) + popda r1 @ b*d-High + popda r0 @ b*d-Low, finished value + + @ ( d c b a ) + + pushdatos + ldr tos, [psp, #0] @ a + pushdatos + ldr tos, [psp, #8+4] @ c + push {r0, r1} + bl um_star + pop {r0, r1} + @ ( d c b a a*c-Low a*c-High ) + popda r3 @ a*c-High + popda r2 @ a*c-Low + + @ ( d c b a ) + + pushdatos + ldr tos, [psp, #0] @ a + pushdatos + ldr tos, [psp, #12+4] @ d + + push {r0, r1, r2, r3} + bl um_star + pop {r0, r1, r2, r3} + @ ( d c b a a*d-Low a*d-High ) + + adds r2, tos @ a*c-Low + a*d-High + adcs r3, r4 @ Carry + drop + + adds r1, tos @ a*d-Low + b*d-High + adcs r2, r4 @ Carry + adcs r3, r4 @ Carry + drop + + @ ( d c b a ) + + pushdatos + ldr tos, [psp, #4] @ b + pushdatos + ldr tos, [psp, #8+4] @ c + + push {r0, r1, r2, r3} + bl um_star + pop {r0, r1, r2, r3} + @ ( d c b a b*c-Low b*c-High ) + + adds r2, tos @ a*c-Low + b*c-High + a*d-High + adcs r3, r4 @ Carry + drop + + adds r1, tos @ b*c-Low + a*d-Low + b*d-High + adcs r2, r4 @ Carry + adcs r3, r4 @ Carry + drop + + @ ( d c b tos: a ) + movs tos, r3 + str r2, [psp, #0] + str r1, [psp, #4] + str r0, [psp, #8] + + pop {r4, pc} + + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_3, "*/" @ Signed scalar + @ ( u1 u2 u3 -- u1*u2/u3 ) With double length intermediate result +@------------------------------------------------------------------------------ + push {lr} + to_r + bl m_star + r_from + bl m_slash_mod + nip + pop {pc} + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_3, "*/mod" @ Signed scalar + @ ( u1 u2 u3 -- u1*u2/u3 ) With double length intermediate result +@------------------------------------------------------------------------------ + push {lr} + to_r + bl m_star + r_from + bl m_slash_mod + pop {pc} + +@ : u*/ ( u1 u2 u3 -- u1 * u2 / u3 ) >r um* r> um/mod nip 3-foldable ; +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_3, "u*/" @ Unsigned scalar + @ ( u1 u2 u3 -- u1*u2/u3 ) With double length intermediate result +@------------------------------------------------------------------------------ + push {lr} + to_r + bl um_star + r_from + bl um_slash_mod + nip + pop {pc} + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_3, "u*/mod" @ Unsigned scalar + @ ( u1 u2 u3 -- u1*u2/u3 ) With double length intermediate result +@------------------------------------------------------------------------------ + push {lr} + to_r + bl um_star + r_from + bl um_slash_mod + pop {pc} + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_3, "um/mod" +um_slash_mod: @ ( ud u -- u u ) Dividend Divisor -- Rest Ergebnis + @ 64/32 = 32 Rest 32 +@------------------------------------------------------------------------------ + push {lr} + pushdaconst 0 + bl ud_slash_mod + drop + nip + pop {pc} + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_3, "m/mod" + @ Signed symmetric divide 64/32 = 32 remainder 32 +m_slash_mod: @ ( d n -- n n ) +@------------------------------------------------------------------------------ + push {lr} + pushdatos @ s>d + movs tos, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + bl d_slash_mod + drop + nip + pop {pc} + +@------------------------------------------------------------------------------ +@ Tool for ud/mod +@------------------------------------------------------------------------------ + + .macro division_step + @ Shift the long chain of four registers. + lsls r0, #1 + adcs r1, r1 + adcs r2, r2 + adcs r3, r3 + + @ Compare Divisor with top two registers + cmp r3, r5 @ Check high part first + bhi 1f + blo 2f + + cmp r2, r4 @ High part is identical. Low part decides. + blo 2f + + @ Subtract Divisor from two top registers +1: subs r2, r4 @ Subtract low part + sbcs r3, r5 @ Subtract high part with carry + + @ Insert a bit into Result which is inside LSB of the long register. + adds r0, #1 +2: + .endm + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "ud/mod" + @ Unsigned divide 64/64 = 64 remainder 64 + @ ( ud1 ud2 -- ud ud) + @ ( 1L 1H 2L tos: 2H -- Rem-L Rem-H Quot-L tos: Quot-H ) +@------------------------------------------------------------------------------ +ud_slash_mod: + push {r4, r5} + + @ ( DividendL DividendH DivisorL DivisorH -- RemainderL RemainderH ResultL ResultH ) + @ 8 4 0 tos -- 8 4 0 tos + + + @ Shift-High Shift-Low Dividend-High Dividend-Low + @ r3 r2 r1 r0 + + movs r3, #0 + movs r2, #0 + ldr r1, [psp, #4] + ldr r0, [psp, #8] + + @ Divisor-High Divisor-Low + @ r5 r4 + +ud_slash_mod_internal: + movs r5, tos + ldr r4, [psp, #0] + + @ For this long division, we need 64 individual division steps. + movs tos, #64 + +3: division_step + subs tos, #1 + bne 3b + + @ Now place all values to their destination. + movs tos, r1 @ Result-High + str r0, [psp, #0] @ Result-Low + str r3, [psp, #4] @ Remainder-High + str r2, [psp, #8] @ Remainder-Low + + pop {r4, r5} + bx lr + +@------------------------------------------------------------------------------ +@ Wortbirne Flag_visible|Flag_foldable_4, "uf/mod" @ Internal helper only. +uf_slash_mod: @ Divide 64/64 = 64 Remainder 64. Puts decimal point in the middle. Overflow possible. + @ ( ud1 ud2 -- ud ud) + @ ( 1L 1H 2L tos: 2H -- Rem-L Rem-H Quot-L tos: Quot-H ) +@------------------------------------------------------------------------------ + push {r4, r5} + + movs r3, #0 + ldr r2, [psp, #4] + ldr r1, [psp, #8] + movs r0, #0 + + b.n ud_slash_mod_internal + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "d/mod" + @ Signed symmetric divide 64/64 = 64 remainder 64 + @ ( d1 d2 -- d d ) +d_slash_mod: @ ( 1L 1H 2L tos: 2H -- Rem-L Rem-H Quot-L tos: Quot-H ) +@------------------------------------------------------------------------------ + @ Check Divisor + push {lr} + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 2f + @ ? / - + bl dnegate + bl dswap + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 1f + @ - / - + bl dnegate + bl dswap + bl ud_slash_mod + + bl dswap + bl dnegate @ Negative remainder + bl dswap + pop {pc} + +1: @ + / - + bl dswap + bl ud_slash_mod + bl dnegate @ Negative result + pop {pc} + +2: @ ? / + + bl dswap + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 3f + @ - / + + bl dnegate + bl dswap + + bl ud_slash_mod + + bl dnegate @ Negative result + bl dswap + bl dnegate @ Negative remainder + bl dswap + pop {pc} + +3: @ + / + + bl dswap + bl ud_slash_mod + pop {pc} + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "d/" +@------------------------------------------------------------------------------ + push {lr} + bl d_slash_mod + bl dnip + pop {pc} + +@------------------------------------------------------------------------------ +@ --- s31.32 calculations --- +@------------------------------------------------------------------------------ + + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "f*" +f_star: @ Signed multiply s31.32 + @ ( fi fi -- fi ) + @ Overflow possible. Sign wrong in this case. +@------------------------------------------------------------------------------ + push {lr} + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 1f + @ - * ? + bl dnegate + bl dswap + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 2f @ - * + + + @ - * - + bl dnegate + +3: @ + * +, - * - + bl ud_star + @ ( LL L H HH ) + drop + ldmia psp!, {r0} + str r0, [psp] + @ ( L H ) + pop {pc} + +1:@ + * ? + bl dswap + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 3b @ + * + + + bl dnegate + + @ - * + or + * - +2: bl ud_star + @ ( LL L H HH ) + drop + ldmia psp!, {r0} + str r0, [psp] + @ ( L H ) + bl dnegate + pop {pc} + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "f/" + @ Signed divide for s31.32. Overflow possible. Sign wrong in this case. +@------------------------------------------------------------------------------ + @ Take care of sign ! ( 1L 1H 2L 2H - EL EH ) + push {lr} + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 2f + @ ? / - + bl dnegate + bl dswap + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 3f @ + / - + + @ - / - + bl dnegate +1: bl dswap @ - / - or + / + + bl uf_slash_mod + bl dnip + pop {pc} + +2:@ ? / + + bl dswap + movs r0, tos, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + beq 1b @ + / + + + @ - / + + bl dnegate +3:bl dswap @ - / + or + / - + bl uf_slash_mod + bl dnegate + bl dnip + pop {pc} + + +@------------------------------------------------------------------------------ +@ --- Double memory --- +@------------------------------------------------------------------------------ + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline, "2!" @ Store ( d addr -- ) +@------------------------------------------------------------------------------ + ldmia psp!, {r1, r2} + str r1, [tos] + str r2, [tos, #4] + drop + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline, "2@" @ Fetch ( addr -- d ) +@------------------------------------------------------------------------------ + subs psp, #4 + ldr r0, [tos, #4] + str r0, [psp] + ldr tos, [tos] + bx lr + +@------------------------------------------------------------------------------ +@ --- Double comparisions --- +@------------------------------------------------------------------------------ + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "du<" + @ ( 2L 2H 1L 1H -- Flag ) + @ 8y 4x 0w tos +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + + @ Check High: + cmp tos, r1 + bhi 2f @ True + bne 1f @ False - Not bigger, not equal --> Lower. + @ Fall through if high part is equal + + @ Check Low: + cmp r0, r2 + bhi 2f + +@ False: +1:movs tos, #0 + bx lr + +@ True +2:movs tos, #0 + mvns tos, tos + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "du>" + @ ( 2L 2H 1L 1H -- Flag ) + @ 8y 4x 0w tos +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + + @ Check High: + cmp r1, tos + bhi 2f @ True + bne 1f @ False - Not bigger, not equal --> Lower. + @ Fall through if high part is equal + + @ Check Low: + cmp r2, r0 + bhi 2f + +@ False: +1:movs tos, #0 + bx lr + +@ True +2:movs tos, #0 + mvns tos, tos + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "d<" + @ ( 2L 2H 1L 1H -- Flag ) + @ 8y 4x 0w tos +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + + @ Check High: + cmp tos, r1 + bgt 2f @ True + bne 1f @ False - Not bigger, not equal --> Lower. + @ Fall through if high part is equal + + @ Check Low: + cmp r0, r2 + bgt 2f + +@ False: +1:movs tos, #0 + bx lr + +@ True +2:movs tos, #0 + mvns tos, tos + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_visible|Flag_foldable_4, "d>" + @ ( 2L 2H 1L 1H -- Flag ) + @ 8y 4x 0w tos +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + + @ Check High: + cmp r1, tos + bgt 2f @ True + bne 1f @ False - Not bigger, not equal --> Lower. + @ Fall through if high part is equal + + @ Check Low: + cmp r2, r0 + bgt 2f + +@ False: +1:movs tos, #0 + bx lr + +@ True +2:movs tos, #0 + mvns tos, tos + bx lr + + +@------------------------------------------------------------------------------ + Wortbirne Flag_inline|Flag_foldable_2, "d0<" @ ( 1L 1H -- Flag ) Is double number negative ? +@------------------------------------------------------------------------------ + adds psp, #4 + movs TOS, TOS, asr #31 @ Turn MSB into 0xffffffff or 0x00000000 + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_foldable_2|Flag_inline, "d0=" @ ( 1L 1H -- Flag ) +@------------------------------------------------------------------------------ + ldm psp!, {r0} + orrs tos, r0 + subs tos, #1 + sbcs tos, tos + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_foldable_4, "d<>" @ ( 1L 1H 2L 2H -- Flag ) +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + + eors r0, r2 + eors tos, r1 + orrs tos, r0 + + subs tos, #1 + sbcs tos, tos + mvns tos, tos + + bx lr + +@------------------------------------------------------------------------------ + Wortbirne Flag_foldable_4, "d=" @ ( 1L 1H 2L 2H -- Flag ) +@------------------------------------------------------------------------------ + ldm psp!, {r0, r1, r2} + + eors r0, r2 + eors tos, r1 + orrs tos, r0 + + subs tos, #1 + sbcs tos, tos + + bx lr + diff --git a/mecrisp-stellaris-source/common/forth-core.s b/mecrisp-stellaris-source/common/forth-core.s index 9f7c47e..efd596e 100644 --- a/mecrisp-stellaris-source/common/forth-core.s +++ b/mecrisp-stellaris-source/common/forth-core.s @@ -46,12 +46,6 @@ ramallot VariablenPointer, 4 @ Variablen für den Registerallokator -ramallot state_r0, 4 -ramallot constant_r0, 4 - -ramallot state_r1, 4 -ramallot constant_r1, 4 - ramallot state_tos, 4 ramallot constant_tos, 4 @@ -61,21 +55,35 @@ ramallot constant_nos, 4 ramallot state_3os, 4 ramallot constant_3os, 4 +ramallot state_4os, 4 +ramallot constant_4os, 4 + +ramallot state_5os, 4 +ramallot constant_5os, 4 + ramallot sprungtrampolin, 4 -.equ allocator_base, state_r0 -.equ offset_state_r0, 0 * 4 -.equ offset_constant_r0, 1 * 4 -.equ offset_state_r1, 2 * 4 -.equ offset_constant_r1, 3 * 4 -.equ offset_state_tos, 4 * 4 -.equ offset_constant_tos, 5 * 4 -.equ offset_state_nos, 6 * 4 -.equ offset_constant_nos, 7 * 4 -.equ offset_state_3os, 8 * 4 -.equ offset_constant_3os, 9 * 4 +ramallot state_r0, 4 +ramallot constant_r0, 4 + +.equ allocator_base, state_tos + +.equ offset_state_tos, 0 * 4 +.equ offset_constant_tos, 1 * 4 +.equ offset_state_nos, 2 * 4 +.equ offset_constant_nos, 3 * 4 +.equ offset_state_3os, 4 * 4 +.equ offset_constant_3os, 5 * 4 +.equ offset_state_4os, 6 * 4 +.equ offset_constant_4os, 7 * 4 +.equ offset_state_5os, 8 * 4 +.equ offset_constant_5os, 9 * 4 + .equ offset_sprungtrampolin, 10 * 4 +.equ offset_state_r0, 11 * 4 +.equ offset_constant_r0, 12 * 4 + .endif @ Jetzt kommen Puffer und Stacks: Buffers and Stacks @@ -135,7 +143,6 @@ CoreDictionaryAnfang: @ Dictionary-Einsprungpunkt setzen .ifdef registerallocator .include "../common/ra/ra-infrastructure.s" .include "../common/ra/ra-tools.s" - @ .include "../common/ra/ra-debug.s" .ltorg .include "../common/ra/double.s" diff --git a/mecrisp-stellaris-source/common/ra/calculations.s b/mecrisp-stellaris-source/common/ra/calculations.s index 768f9a8..dee7efe 100644 --- a/mecrisp-stellaris-source/common/ra/calculations.s +++ b/mecrisp-stellaris-source/common/ra/calculations.s @@ -54,6 +54,8 @@ plus_allocator: subs tos, r0, tos bx lr +minus_allocator: + push {lr} bl expect_two_elements @@ -246,6 +248,7 @@ chsmallplusminus: rsbs tos, tos, #0 bx lr +allocator_negate: pushdaconstw 0x4240 @ rsbs r0, r0, #0 smalltworegisters: @@ -324,34 +327,18 @@ allocator_not: eors tos, r0 bx lr - push {lr} + push {lr} @ Eine Konstante wären weggefaltet worden, also muss TOS jetzt ein Register sein. bl expect_one_element - bl make_tos_changeable - - @ Einen freien Register brauchen wir dafür, auch, wenn eigentlich kein neues Stackelement gebraucht wird. - @ Soll ich nicht lieber den Konstantenregister dafür vernichten ? - @ Das könnte auch in memory.s passieren, allerdings wird es dort etwas schwieriger. - movs r1, #unknown - str r1, [r0, #offset_state_r0] - - @ Wenn ich hier einlaufe, ist TOS bereits ein Register, sonst hätte die Faltung es erledigt. - @ Bastele nun die ABS-Opcodes zusammen: + pushdaconstw 0x2800 @ cmp r0, #0 ldr r1, [r0, #offset_state_tos] - - pushdaconstw 0x17C0 @ asrs r0 r0 #1F - lsls r2, r1, #3 - orrs tos, r2 - bl hkomma - - pushdaconstw 0x1800 @ adds r0, r0, r0 + lsls r1, #8 orrs tos, r1 - orrs tos, r2 bl hkomma - pushdaconstw 0x4040 @ eors r0 r0 - orrs tos, r1 + pushdaconstw 0xD500 @ bpl bl hkomma - + + bl allocator_negate pop {pc} @ ----------------------------------------------------------------------------- diff --git a/mecrisp-stellaris-source/common/ra/case.s b/mecrisp-stellaris-source/common/ra/case.s index 8429509..b1297f2 100644 --- a/mecrisp-stellaris-source/common/ra/case.s +++ b/mecrisp-stellaris-source/common/ra/case.s @@ -92,6 +92,9 @@ of_opcodiereinsprung: @ Mich interessieren nur die beiden obersten Elemente, die verglichen werden sollen. bl expect_two_elements @ Mindestens 2 Elemente + + bl tidyup_register_allocator_5os + bl tidyup_register_allocator_4os bl tidyup_register_allocator_3os @ Maximal 2 Elemente, das dritte gleich in den Stack schieben. @ Jetzt habe ich genau zwei Elemente im Allokator. diff --git a/mecrisp-stellaris-source/common/ra/comparisions.s b/mecrisp-stellaris-source/common/ra/comparisions.s index 1290547..5cbc9b6 100644 --- a/mecrisp-stellaris-source/common/ra/comparisions.s +++ b/mecrisp-stellaris-source/common/ra/comparisions.s @@ -234,8 +234,16 @@ prepare_single_compare: push {lr} bl expect_one_element - @ Es gibt maximal drei Elemente im RA. Eins wird am Ende rausfliegen. - @ Falls die beiden anderen Elemente also Konstanten sind, müssen sie jetzt generiert werden. + @ Es gibt maximal fünf Elemente im RA. Eins wird am Ende rausfliegen. + @ Falls die anderen Elemente also Konstanten sind, müssen sie jetzt generiert werden. + + movs r3, #offset_state_5os + bl put_element_in_register + @ 5OS ist unschädlich/unschädlich gemacht worden. + + movs r3, #offset_state_4os + bl put_element_in_register + @ 4OS ist unschädlich/unschädlich gemacht worden. movs r3, #offset_state_3os bl put_element_in_register @@ -259,6 +267,13 @@ prepare_compare: @ Das Schieben / Umladen ist Flag-Erhaltend, nur das Generieren von Konstanten täte weh. @ Wenn also 3OS hier eine Konstante ist, wird ein freier Register angefordert und sie hineingeladen, damit später das Zurück-zum-kanonischen-Stack funktioniert. + + @ Jetzt gibt es bis zu fünf Elemente. Zwei werden am Ende herausfliegen, eins kann direkt ins neue TOS nachrücken. + @ Ich muss also die tieferen Elemente rausschreiben, bevor ich weitermache, weil im M0 das Rausschreiben Flags zerstört. + + bl tidyup_register_allocator_5os + bl tidyup_register_allocator_4os + movs r3, #offset_state_3os bl put_element_in_register @ 3OS ist unschädlich/unschädlich gemacht worden. diff --git a/mecrisp-stellaris-source/common/ra/controlstructures.s b/mecrisp-stellaris-source/common/ra/controlstructures.s index 8e74e71..dcec160 100644 --- a/mecrisp-stellaris-source/common/ra/controlstructures.s +++ b/mecrisp-stellaris-source/common/ra/controlstructures.s @@ -225,60 +225,34 @@ allocator_nullsprungprobe: @ Der TOS-Register kann direkt untersucht und am Ende aus dem RA abgemeldet werden. @ Aufräumen am Ende, da wir zwei unterschiedliche Zweige anlegen werden. + @ Benötige also zwei Elemente: Eins, um den Vergleich anzulegen und eins, welches nachrücken soll. - @ Achtung: Was passiert, wenn wir hier mit vielen Konstanten hineinkommen ? - @ Schließlich wird IF nicht passend weggefaltet ! - @ Vor dem Einsprung werden alle noch übrigen Faltkonstanten in den RA geschoben. Kein Problem. + bl expect_one_element @ Mindestens ein Element präparieren. - bl expect_one_element @ Mindestens ein Element präparieren. + bl tidyup_register_allocator_5os @ Alle anderen in Richtung des kanonischen Stacks putzen und aufräumen. + bl tidyup_register_allocator_4os + bl tidyup_register_allocator_3os - @ Sichere den Inhalt und Zustand von TOS, damit ich anschließend eine passende Probe generieren kann. - ldr r1, [r0, #offset_state_tos] - ldr r2, [r0, #offset_constant_tos] - - bl eliminiere_tos @ Verändert weder Register noch Flags ! Wirft TOS nur aus dem aktuellen Stackzustand heraus. - - bl tidyup_register_allocator_3os @ Lässt Register intakt, kann jedoch die Flags zerstören. - bl tidyup_register_allocator_nos @ Lässt Register intakt, kann jedoch die Flags zerstören. - - - @ Da später die Flags unbedingt erhalten bleiben müssen, prüfe ich hier, ob das neue TOS eventuell eine Konstante sein könnte. - @ Diese zu generieren würde die Flags zerstören, deshalb lade ich sie schon jetzt in r0/r1, damit später nur noch ein Flag-erhaltendes MOV benutzt werden muss. - @ Im M3/M4 geht das auch eleganter, aber erstmal versuche ich, den M0 so gut wie möglich zu erobern. - - ldr r3, [r0, #offset_state_tos] - cmp r3, #constant - bne 2f - @ Das neue TOS ist eine Konstante. Generiere sie also schon jetzt ! - ldr r3, [r0, #offset_constant_tos] - bl generiere_konstante -2: - - @ Beprobe nun die Flags, die anschließend in dem bedingten Sprung ausgewertet werden. + ldr r1, [r0, #offset_state_nos] + cmp r1, #constant + bne 1f + bl expect_nos_in_register @ Falls NOS eine Konstante ist, muss sie nun geladen werden +1:bl expect_tos_in_register @ TOS wird beprobt und muss im Register sein - @ War TOS ein Register oder eine (noch nirgendwo geschriebene) Konstante ? r2 und r3 sind jetzt entweder selbst TOS oder frei und nicht mehr belegt. + @ Vergleiche TOS mit Null - dafür muss eine Probe geschrieben werden ! - cmp r1, #constant - bne 4f - @ TOS war eine Konstante --> Eigentlich kann jetzt ein unbedingter Sprung folgen. Mache es aber erstmal doch über die Flags. - pushdaconstw 0x2200 @ movs r2, #0 - cmp r2, #0 - beq 3f - adds tos, #1 @ movs r2, #1 Eigentlich ist es egal, wie ich hier die Flags präpariere... Später wird einfach bei if mit Konstante ein unbedingter Sprung eingefügt. -3: bl hkomma - b 5f -4: @ TOS war ein Register + pushdaconstw 0x2800 @ cmp r0, #0 + lsls r1, #8 @ Register passend schieben + orrs tos, r1 + bl hkomma - pushdaconstw 0x2800 @ cmp r0, #0 - lsls r1, #8 @ Register passend schieben - orrs tos, r1 - bl hkomma + bl eliminiere_tos @ Wirf das gerade verglichene Element fort. -5: @ Beprobung des alten TOS abgeschlossen. + bl tidyup_register_allocator @ Das nachrückende Element ist bereits ein Register - so kann hier nur noch ein MOV-Opcode geschrieben werden, der die Flags erhält. - bl tidyup_register_allocator_tos @ Zerstört möglicherweise Register, ändert jedoch die Flags nicht, sofern keine Konstante generiert werden muss. pop {pc} + @------------------------------------------------------------------------------ Wortbirne Flag_immediate_compileonly|Flag_allocator|Flag_Sprungschlucker, "if" struktur_if: @ ( -- Adresse-für-Sprung Opcode 2 ) diff --git a/mecrisp-stellaris-source/common/ra/doloop.s b/mecrisp-stellaris-source/common/ra/doloop.s index 6bbc683..06447d8 100644 --- a/mecrisp-stellaris-source/common/ra/doloop.s +++ b/mecrisp-stellaris-source/common/ra/doloop.s @@ -346,6 +346,9 @@ gemeinsame_schleifenoptimierung: @ This is a common part for opcoding optimized push {lr} bl push_lr_nachholen bl expect_two_elements + + bl tidyup_register_allocator_5os + bl tidyup_register_allocator_4os bl tidyup_register_allocator_3os pushdaconstw 0xB430 @ push {rloopindex, rlooplimit} diff --git a/mecrisp-stellaris-source/common/ra/memory.s b/mecrisp-stellaris-source/common/ra/memory.s index cba66e1..c467844 100644 --- a/mecrisp-stellaris-source/common/ra/memory.s +++ b/mecrisp-stellaris-source/common/ra/memory.s @@ -154,6 +154,7 @@ allocator_4store_anderer_opcode: bics r3, r1 bl generiere_adresskonstante + str r3, [r0, #offset_state_tos] 2: @ r3 sagt nun in jedem Fall, in welchem Register die Adresse zum Schreiben bereitliegt. lsls r3, #3 @@ -276,6 +277,7 @@ allocator_2store: bics r3, r1 bl generiere_adresskonstante + str r3, [r0, #offset_state_tos] 2: @ r3 sagt nun in jedem Fall, in welchem Register die Adresse zum Schreiben bereitliegt. lsls r3, #3 @@ -389,6 +391,7 @@ allocator_1store: bics r3, r1 bl generiere_adresskonstante + str r3, [r0, #offset_state_tos] 2: @ r3 sagt nun in jedem Fall, in welchem Register die Adresse zum Schreiben bereitliegt. lsls r3, #3 diff --git a/mecrisp-stellaris-source/common/ra/ra-debug.s b/mecrisp-stellaris-source/common/ra/ra-debug.s deleted file mode 100644 index f024e4c..0000000 --- a/mecrisp-stellaris-source/common/ra/ra-debug.s +++ /dev/null @@ -1,105 +0,0 @@ - -@ ----------------------------------------------------------------------------- - Wortbirne Flag_visible, "printstate" -print_element_state: @ ( State -- ) -@ ----------------------------------------------------------------------------- - push {lr} - cmp tos, #unknown - bne 1f - write "unknown" -1: - - cmp tos, #reg2 - bne 1f - write "r2" -1: - - cmp tos, #reg3 - bne 1f - write "r3" -1: - - cmp tos, #reg6 - bne 1f - write "r6" -1: - - cmp tos, #constant - bne 1f - write "constant" -1: - - drop - pop {pc} - - -@ ----------------------------------------------------------------------------- - Wortbirne Flag_visible, "vr" -view_register_allocator: -vr: -@ ----------------------------------------------------------------------------- - push {r0, r1, r2, r3, lr} - - write "TOS: " - ldr r1, =state_tos - ldr r0, [r1] - pushda r0 - bl print_element_state - write " Const: " - ldr r1, =constant_tos - ldr r0, [r1] - pushda r0 - bl hexdot - writeln "" - - write "NOS: " - ldr r1, =state_nos - ldr r0, [r1] - pushda r0 - bl print_element_state - write " Const: " - ldr r1, =constant_nos - ldr r0, [r1] - pushda r0 - bl hexdot - writeln "" - - write "3OS: " - ldr r1, =state_3os - ldr r0, [r1] - pushda r0 - bl print_element_state - write " Const: " - ldr r1, =constant_3os - ldr r0, [r1] - pushda r0 - bl hexdot - writeln "" - - write "R0: " - ldr r1, =state_r0 - ldr r0, [r1] - pushda r0 - bl print_element_state - write " Const: " - ldr r1, =constant_r0 - ldr r0, [r1] - pushda r0 - bl hexdot - writeln "" - - write "R1: " - ldr r1, =state_r1 - ldr r0, [r1] - pushda r0 - bl print_element_state - write " Const: " - ldr r1, =constant_r1 - ldr r0, [r1] - pushda r0 - bl hexdot - writeln "" - - writeln "" - pop {r0, r1, r2, r3, pc} - diff --git a/mecrisp-stellaris-source/common/ra/ra-infrastructure.s b/mecrisp-stellaris-source/common/ra/ra-infrastructure.s index 4398ee6..3a070ab 100644 --- a/mecrisp-stellaris-source/common/ra/ra-infrastructure.s +++ b/mecrisp-stellaris-source/common/ra/ra-infrastructure.s @@ -18,6 +18,8 @@ @ Register allocator infrastructure. Maintain stack model. +.equ reg0, 0 +.equ reg1, 1 .equ reg2, 2 .equ reg3, 3 .equ reg6, 6 @@ -49,7 +51,7 @@ nflush_faltkonstanten: @ Schiebe alle vorhandenen Faltkonstanten in den RA-Cache @ Ja, es ist noch mindestens eine Faltkonstante da. @ Die wird nun in den Stack eingefügt: - bl free_3os_element @ Als erstes hinten Platz schaffen. + bl free_5os_element @ Als erstes hinten Platz schaffen. bl elemente_einen_weiterrutschen_lassen bl nget_faltkonstante @ Gibt diese in r2 zurück, erniedrigt r3 von selbst @@ -119,14 +121,14 @@ nget_faltkonstante: @ Hole von unten (!) eine Faltkonstante ab ! pop {r0, r1, pc} @ ----------------------------------------------------------------------------- -free_3os_element: @ Sorgt dafür, dass zumindest 3OS geleert ist. +free_5os_element: @ Sorgt dafür, dass zumindest 3OS geleert ist. @ ----------------------------------------------------------------------------- push {r0, r1, lr} - ldr r0, =state_3os + ldr r0, =state_5os ldr r1, [r0] cmp r1, #unknown - beq 1f @ Wenn das 3OS-RA-Element gerade leer ist, brauche ich nichts mehr zu tun. + beq 1f @ Wenn das 5OS-RA-Element gerade leer ist, brauche ich nichts mehr zu tun. bl element_to_stack 1:pop {r0, r1, pc} @@ -134,15 +136,27 @@ free_3os_element: @ Sorgt dafür, dass zumindest 3OS geleert ist. @ ----------------------------------------------------------------------------- elemente_einen_weiterrutschen_lassen: @ ----------------------------------------------------------------------------- + + @ 4OS --> 5OS + @ 3OS --> 4OS @ NOS --> 3OS @ TOS --> NOS @ TOS "leeren" + ldr r1, [r0, #offset_state_4os] + str r1, [r0, #offset_state_5os] + ldr r1, [r0, #offset_state_3os] + str r1, [r0, #offset_state_4os] ldr r1, [r0, #offset_state_nos] str r1, [r0, #offset_state_3os] ldr r1, [r0, #offset_state_tos] str r1, [r0, #offset_state_nos] + + ldr r1, [r0, #offset_constant_4os] + str r1, [r0, #offset_constant_5os] + ldr r1, [r0, #offset_constant_3os] + str r1, [r0, #offset_constant_4os] ldr r1, [r0, #offset_constant_nos] str r1, [r0, #offset_constant_3os] ldr r1, [r0, #offset_constant_tos] @@ -165,7 +179,7 @@ befreie_tos: @ Sorgt dafür, dass zumindest TOS frei wird zum Neubelegen. beq 3f @ Wenn das TOS-RA-Element gerade leer ist, brauche ich nichts mehr zu tun. @ Ansonsten muss ich nochmal dafür sorgen, dass TOS frei wird. - bl free_3os_element @ Als erstes hinten Platz schaffen. + bl free_5os_element @ Als erstes hinten Platz schaffen. bl elemente_einen_weiterrutschen_lassen 3:@ Fertig. TOS ist bereit für neue Taten. @@ -192,8 +206,18 @@ eliminiere_nos: @ Wert ist verbraucht, kann weg ! ldr r1, [r0, #offset_constant_3os] str r1, [r0, #offset_constant_nos] - movs r1, #unknown + ldr r1, [r0, #offset_state_4os] str r1, [r0, #offset_state_3os] + ldr r1, [r0, #offset_constant_4os] + str r1, [r0, #offset_constant_3os] + + ldr r1, [r0, #offset_state_5os] + str r1, [r0, #offset_state_4os] + ldr r1, [r0, #offset_constant_5os] + str r1, [r0, #offset_constant_4os] + + movs r1, #unknown + str r1, [r0, #offset_state_5os] pop {r1, pc} @@ -212,42 +236,39 @@ element_to_stack: @ Erwartet Zustandsvariable in r0 cmp r1, #8 @ Register 0-7 lassen sich direkt opcodieren. bhs 1f - @ Platz auf dem Stack schaffen ACHTUNG M3/M4: Das lässt sich in einen Opcode zusammenfassen ! - pushdaconstw 0x3f04 @ subs psp, #4 - bl hkomma - - @ Element = Register --> Register in Speicher - @write "ets r" - @pushda r1 - @bl hexdot - - pushdaconstw 0x6000|0 << 6|7 << 3|0 @ str r0, [psp, #0] - orrs tos, r1 @ Zielregister hinzuverodern - bl hkomma - pop {r3, pc} + movs r3, r1 @ Register in r3 bereitlegen zum Opcodieren. + b.n 2f 1:@ Element = Konstante --> Konstante in Speicher cmp r1, #constant bne 1f @ Für den Fall eines unbekannten Elementes nichts tun - @writeln "ets const" - - @ Platz auf dem Stack schaffen - pushdaconstw 0x3f04 @ subs psp, #4 - bl hkomma - @ Hole die Konstante, und prüfe, ob sie zur Laufzeit bereits in r0 oder r1 sein wird. ldr r3, [r0, #4] @ Konstante holen, stets 4 Bytes nach dem Zustand bl generiere_konstante - @ Passender Register für die Konstante in r3. Lade den Register auf den Stack ! +2: @ Passender Register für die Konstante in r3. Lade den Register auf den Stack ! - pushdaconstw 0x6000|0 << 6|7 << 3|0 @ str r0, [psp, #0] - orrs tos, r3 @ Passenden Register hinzuverodern - bl hkomma -1: pop {r3, pc} + .ifdef m0core + + @ Platz auf dem Stack schaffen + pushdaconstw 0x3f04 @ subs psp, #4 + bl hkomma + pushdaconstw 0x6000|0 << 6|7 << 3|0 @ str r0, [psp, #0] + orrs tos, r3 @ Passenden Register hinzuverodern + bl hkomma + .else + + pushdatos + ldr tos, =0xF8470D04 @ str r0, [r7, #-4]! + orrs tos, tos, r3, lsl #12 + bl reversekomma + + .endif + +1: pop {r3, pc} @ ----------------------------------------------------------------------------- @@ -255,11 +276,28 @@ element_to_stack: @ Erwartet Zustandsvariable in r0 tidyup_register_allocator: @ Generiert all die Opcodes, um den Stack wieder in Ordnung zu bringen @ ----------------------------------------------------------------------------- push {lr} + bl tidyup_register_allocator_5os + bl tidyup_register_allocator_4os bl tidyup_register_allocator_3os bl tidyup_register_allocator_nos bl tidyup_register_allocator_tos pop {pc} +@ ----------------------------------------------------------------------------- +tidyup_register_allocator_5os: +@ ----------------------------------------------------------------------------- + push {r0, r1, r2, r3, lr} + ldr r0, =state_5os + bl element_to_stack @ Idee: Hier gleich zwei Stackplätze reservieren, denn schließlich ist NOS auch belegt, wenn 3OS belegt ist. + pop {r0, r1, r2, r3, pc} + +@ ----------------------------------------------------------------------------- +tidyup_register_allocator_4os: +@ ----------------------------------------------------------------------------- + push {r0, r1, r2, r3, lr} + ldr r0, =state_4os + bl element_to_stack @ Idee: Hier gleich zwei Stackplätze reservieren, denn schließlich ist NOS auch belegt, wenn 3OS belegt ist. + pop {r0, r1, r2, r3, pc} @ ----------------------------------------------------------------------------- tidyup_register_allocator_3os: @@ -294,9 +332,9 @@ tidyup_register_allocator_tos: str r2, [r0, #offset_state_tos] @ Diese Fälle gibt es: - @ r2 und r3: movs Opcode generieren (Zerstört momentan noch die Flags) + @ r0, r1, r2 und r3: mov Opcode generieren (Erhält die Flags) @ r6: Nichts tun (Erhält die Flags) - @ Konstante: registerliteral direkt in r6 (oder notfalls aus r0/r1 generieren) (Zerstört die Flags, falls die Konstante neu generiert wird) + @ Konstante: registerliteral direkt in r6 (Zerstört die Flags, falls die Konstante neu generiert wird) @ unknown: Nachladen (Erhält die Flags) cmp r1, #unknown @@ -307,7 +345,6 @@ tidyup_register_allocator_tos: b.n tidyup_finish 1: - cmp r1, #constant bne 2f @ writeln "Tidyup TOS Konstante" @@ -315,30 +352,6 @@ tidyup_register_allocator_tos: @ Hier mal vereinfachen, später mit r0/r1-Berücksichtigung: ldr r3, [r0, #offset_constant_tos] - @ Finde heraus, ob diese Konstante schon in r0 oder r1 gerade enthalten ist. - ldr r1, [r0, #offset_state_r0] - cmp r1, #unknown - beq 4f @ Ist die Konstante gesetzt ? - ldr r1, [r0, #offset_constant_r0] - cmp r3, r1 @ Stimmt sie ? - bne 4f - pushdaconstw 0x4606 @ mov r6, r0 - bl hkomma - b.n tidyup_finish -4: - - @ In r0 war die Konstante nicht, versuche es nochmal mit r1: - ldr r1, [r0, #offset_state_r1] - cmp r1, #unknown - beq 5f @ Ist die Konstante gesetzt ? - ldr r1, [r0, #offset_constant_r1] - cmp r3, r1 @ Stimmt sie ? - bne 5f - pushdaconstw 0x460E @ mov r6, r1 - bl hkomma - b.n tidyup_finish -5: - @ Die Konstantenregister helfen gerade auch nicht weiter, muss den Wert direkt generieren. pushda r3 pushdaconst 6 @@ -346,7 +359,6 @@ tidyup_register_allocator_tos: b.n tidyup_finish 2: - @ Jetzt bleiben nur noch die Register übrig. cmp r1, #6 @ r6 ist wunderbar, dann ist nichts mehr zu tun. beq 3f @@ -372,12 +384,14 @@ init_register_allocator: ldr r0, =allocator_base movs r1, #unknown - str r1, [r0, #offset_state_r0] - str r1, [r0, #offset_state_r1] + str r1, [r0, #offset_state_5os] + str r1, [r0, #offset_state_4os] str r1, [r0, #offset_state_3os] str r1, [r0, #offset_state_nos] - movs r1, #reg6 + str r1, [r0, #offset_state_r0] + + movs r1, #6 str r1, [r0, #offset_state_tos] movs r1, #0 diff --git a/mecrisp-stellaris-source/common/ra/ra-tools.s b/mecrisp-stellaris-source/common/ra/ra-tools.s index 06ad5f3..3273428 100644 --- a/mecrisp-stellaris-source/common/ra/ra-tools.s +++ b/mecrisp-stellaris-source/common/ra/ra-tools.s @@ -19,71 +19,73 @@ @ Register allocator tools to work with the stack model. @ ----------------------------------------------------------------------------- -generiere_konstante: @ Nimmt Konstante in r3 entgegen, generiert wenn nötig passende Opcodes +generiere_veraenderliche_konstante: +generiere_konstante: @ Nimmt Konstante in r3 entgegen, generiert wenn nötig passende Opcodes @ und gibt den Register in r3 zurück, in der sie daraufhin enthalten ist. @ ----------------------------------------------------------------------------- push {r0, r1, r2, lr} - - bl generiere_konstante_common - - str r3, [r0, #offset_constant_r0] - movs r1, #constant - str r1, [r0, #offset_state_r0] - - movs r3, #0 - pushda r3 + pushda r3 @ Die Konstante + bl get_free_register @ Einen Register nehmen, der gerade nicht im RA angemeldet ist. + pushda r3 @ Das ist jetzt der Register, wo sie hinein soll bl registerliteralkomma pop {r0, r1, r2, pc} @ ----------------------------------------------------------------------------- -generiere_adresskonstante: @ Nimmt Konstante in r3 entgegen, generiert wenn nötig passende Opcodes - @ und gibt den Register in r3 zurück, in der sie daraufhin enthalten ist. +generiere_adresskonstante: @ Gleiche Schnittstelle, doch bevorzugt in r0. @ ----------------------------------------------------------------------------- - push {r0, r1, r2, lr} - - bl generiere_konstante_common - str r3, [r0, #offset_constant_r1] - movs r1, #constant - str r1, [r0, #offset_state_r1] - - movs r3, #1 - pushda r3 - bl registerliteralkomma - pop {r0, r1, r2, pc} - -@ ----------------------------------------------------------------------------- -generiere_konstante_common: -@ ----------------------------------------------------------------------------- - - ldr r0, =allocator_base + push {r0, r1, r2, lr} - @ Prüfe, ob die Konstante schon in r0 liegt. Dann bin ich fertig, + @ Probe, ob die Konstante in r0 bereitliegt ldr r1, [r0, #offset_state_r0] - cmp r1, #unknown - beq 1f + cmp r1, #constant + bne 1f ldr r1, [r0, #offset_constant_r0] cmp r1, r3 bne 1f - movs r3, #0 + movs r3, #0 @ Wenn ja, fein ! Register melden, Rücksprung. pop {r0, r1, r2, pc} -1:@ Die gesuchte Konstante ist nicht in r0. +1: + @ Ist r0 frei ? - @ Prüfe, ob die Konstante schon in r1 liegt. Dann bin ich fertig, - ldr r1, [r0, #offset_state_r1] - cmp r1, #unknown - beq 1f - ldr r1, [r0, #offset_constant_r1] - cmp r1, r3 - bne 1f - movs r3, #1 - pop {r0, r1, r2, pc} -1:@ Die gesuchte Konstante ist nicht in r1. + ldr r1, [r0, #offset_state_tos] + cmp r1, #0 + beq r0_unfrei + + ldr r1, [r0, #offset_state_nos] + cmp r1, #0 + beq r0_unfrei - @ Die Konstante muss generiert werden. Springe also zurück: - pushda r3 - bx lr + ldr r1, [r0, #offset_state_3os] + cmp r1, #0 + beq r0_unfrei + + ldr r1, [r0, #offset_state_4os] + cmp r1, #0 + beq r0_unfrei + + ldr r1, [r0, #offset_state_5os] + cmp r1, #0 + beq r0_unfrei + + @ r0 ist frei. + + str r3, [r0, #offset_constant_r0] + pushda r3 @ Die Konstante + pushdaconst 0 @ Das ist jetzt der Register, wo sie hinein soll + bl registerliteralkomma + movs r1, #constant + str r1, [r0, #offset_state_r0] + movs r3, #0 + pop {r0, r1, r2, pc} + +r0_unfrei: + pushda r3 @ Die Konstante + bl get_free_register @ Einen Register nehmen, der gerade nicht im RA angemeldet ist. + pushda r3 @ Das ist jetzt der Register, wo sie hinein soll + bl registerliteralkomma + pop {r0, r1, r2, pc} @ ----------------------------------------------------------------------------- put_element_in_register: @ Element, welches bearbeitet werden soll, in r3 ankündigen @@ -100,38 +102,6 @@ put_element_in_register: @ Element, welches bearbeitet werden soll, in r3 ankün @ Das Element ist eine Konstante. Prüfe, ob sie schon in r0 oder r1 bereitliegt: ldr r2, [r3, #4] @ Hole die Konstante - @ Prüfe, ob die Konstante schon in r0 liegt. Dann bin ich fertig, - ldr r1, [r0, #offset_state_r0] - cmp r1, #unknown - beq 1f - ldr r1, [r0, #offset_constant_r0] - cmp r1, r2 - bne 1f - @ Konstante ist schon in r0: - pushdaconstw 0x4600 @ mov r0, r0 - b 2f - -1:@ Die gesuchte Konstante ist nicht in r0. - - - @ Prüfe, ob die Konstante schon in r1 liegt. Dann bin ich fertig, - ldr r1, [r0, #offset_state_r1] - cmp r1, #unknown - beq 1f - ldr r1, [r0, #offset_constant_r1] - cmp r1, r2 - bne 1f - @ Konstante ist schon in r1: - pushdaconstw 0x4600 | 1 << 3 @ mov r0, r1 - -2: bl get_free_register - str r3, [r2] - orrs tos, r3 - bl hkomma - pop {r1, r2, pc} - -1:@ Die gesuchte Konstante ist nicht in r1. - @ Dann generiere sie direkt in den gewünschten Register: pushda r2 @ Konstante @@ -150,130 +120,152 @@ put_element_in_register: @ Element, welches bearbeitet werden soll, in r3 ankün @ ----------------------------------------------------------------------------- get_free_register: @ Gibt den Register in r3 zurück. Setzt noch keinen Zustand. @ ----------------------------------------------------------------------------- - push {r0, r1, r2, lr} + push {r0, r1, r2, r4, r5, lr} ldr r0, =allocator_base ldr r1, [r0, #offset_state_tos] ldr r2, [r0, #offset_state_nos] ldr r3, [r0, #offset_state_3os] + ldr r4, [r0, #offset_state_4os] + ldr r5, [r0, #offset_state_5os] - @ Prüfe r6 auf Freiheit: - cmp r1, #6 - beq 1f - cmp r2, #6 - beq 1f - cmp r3, #6 - beq 1f - @ r6 ist frei :-) - movs r3, #6 - pop {r0, r1, r2, pc} -1: + movs r0, #6 @ Prüfe zunächst r6 auf Freiheit: + bl get_free_register_intern - @ r6 ist schon vergeben. r3 ? - cmp r1, #3 - beq 2f - cmp r2, #3 - beq 2f - cmp r3, #3 - beq 2f + movs r0, #3 @ Anschließend die ganzen anderen Register: + bl get_free_register_intern - @ r3 ist frei :-) - movs r3, #3 - pop {r0, r1, r2, pc} -2: + movs r0, #2 @ Anschließend die ganzen anderen Register: + bl get_free_register_intern - @ r6 und r3 sind vergeben, so bleibt nur noch r2 übrig. - movs r3, #2 - pop {r0, r1, r2, pc} + movs r0, #1 @ Anschließend die ganzen anderen Register: + bl get_free_register_intern + movs r3, #0 @ Nur noch r0 ist übrig geblieben + movs r1, #unknown @ Muss die Adresskonstantenspeicherstelle wieder freigeben... + str r1, [r0, #offset_state_r0] + pop {r0, r1, r2, r4, r5, pc} + +get_free_register_intern: @ Welcher Register geprüft werden soll, steht in r0. Rückgabe in r3. + cmp r1, r0 + beq 1f + cmp r2, r0 + beq 1f + cmp r3, r0 + beq 1f + cmp r4, r0 + beq 1f + cmp r5, r0 + beq 1f + movs r3, r0 + pop {r0, r1, r2, r4, r5, pc} +1:bx lr @ ----------------------------------------------------------------------------- -fill_element_from_stack: @ Füllt eins der Cacheelemente TOS, NOS oder 3OS vom Stack nach, falls darin Leere herrscht. - @ Erwartet Zustandsvariable in r0. -@ ----------------------------------------------------------------------------- +erstes_element_belegen: + pushdaconstw 0xCF00 @ ldm r7!, { ... } +element_belegen: @ Nimmt das zu belegende Element aus r2. push {lr} - @writeln "Fill-element aus dem Stack" - - @ Welcher Register ist frei ? Eventuelle Konstanten wären jetzt schon bearbeitet, muss also nur r0 behalten. - bl get_free_register - str r3, [r0] @ Element mit diesem Register als belegt markieren + ldr r1, [r0, r2] + cmp r1, #unknown + bne 1f @ Wenn es bereits belegt ist, muss ich hier nichts unternehmen. - movs r1, #1 - lsls r1, r3 @ Registermaske für den LDM-Opcode generieren + @ Lade es nach ! + bl get_free_register + str r3, [r0, r2] - pushdaconstw 0xCF00 @ ldm r7!, { ... } - orrs tos, r1 - bl hkomma - pop {pc} + movs r1, #1 + lsls r1, r3 + orrs tos, r1 +1:pop {pc} @ ----------------------------------------------------------------------------- expect_one_element: @ Sorgt dafür, dass mindestens ein Element bereitliegt. @ ----------------------------------------------------------------------------- - push {r0, r1, r2, r3, lr} + push {lr} @ Kernfrage besteht darin: Ist TOS belegt oder nicht ? @ Wenn ja, fertig. Wenn nein, sind auch NOS und 3OS leer, also TOS direkt vom Stack nachfüllen. - ldr r0, =allocator_base ldr r1, [r0, #offset_state_tos] cmp r1, #unknown bne 1f @ Wenn schon etwas in TOS enthalten ist, bin ich fertig. - ldr r0, =state_tos - bl fill_element_from_stack - -1: pop {r0, r1, r2, r3, pc} - + movs r2, #offset_state_tos + bl erstes_element_belegen + + bl hkomma +1:pop {pc} @ ----------------------------------------------------------------------------- expect_two_elements: @ Sorgt dafür, dass mindestens zwei Elemente bereitliegen. @ ----------------------------------------------------------------------------- - push {r0, r1, r2, r3, lr} + push {lr} - @ Ist NOS belegt ? Wenn ja --> Fertig. - @ Wenn nein: Erstmal TOS belegen, falls nötig, dann NOS. + @ Es könnten kein Element, ein Element oder zwei Elemente geholt werden müssen. - ldr r0, =allocator_base ldr r1, [r0, #offset_state_nos] cmp r1, #unknown bne 1f @ Wenn schon etwas in NOS enthalten ist, bin ich fertig. - @ NOS ist nicht belegt. Belege also TOS, falls noch nicht geschehen: - bl expect_one_element - - @ Fülle NOS vom Stack nach: - - ldr r0, =state_nos - bl fill_element_from_stack + movs r2, #offset_state_nos @ Der größere Register, der zuletzt geladen wird, muss diesmal NOS werden. + bl erstes_element_belegen -1: pop {r0, r1, r2, r3, pc} - -@ Hier lassen sich jetzt auch gemütlich ldm-Bündelungen einführen. + movs r2, #offset_state_tos @ Der kleinere Register, der danach geladen wird, muss TOS werden. + bl element_belegen + + bl hkomma +1:pop {pc} @ ----------------------------------------------------------------------------- expect_three_elements: @ Sorgt dafür, dass mindestens drei Elemente bereitliegen. @ ----------------------------------------------------------------------------- - push {r0, r1, r2, r3, lr} + push {lr} - @ Ist 3OS belegt ? Wenn ja --> Fertig. - @ Wenn nein: Erstmal TOS und NOS belegen, falls nötig, dann 3OS. + @ Es könnten kein Element, ein Element, zwei oder drei Elemente geholt werden müssen. - ldr r0, =allocator_base ldr r1, [r0, #offset_state_3os] cmp r1, #unknown - bne 1f @ Wenn schon etwas in NOS enthalten ist, bin ich fertig. + bne 1f @ Wenn schon etwas in 3OS enthalten ist, bin ich fertig. + + movs r2, #offset_state_3os @ Der größere Register, der zuletzt geladen wird, muss diesmal 3OS werden. + bl erstes_element_belegen + + movs r2, #offset_state_nos @ Der kleinere Register, der danach geladen wird, muss NOS werden. + bl element_belegen + + movs r2, #offset_state_tos @ Der kleinste Register, der als letztes geladen wird, muss TOS werden. + bl element_belegen + + bl hkomma +1:pop {pc} - @ NOS ist nicht belegt. Belege also TOS, falls noch nicht geschehen: - bl expect_two_elements +@ ----------------------------------------------------------------------------- +expect_four_elements: @ Sorgt dafür, dass mindestens vier Elemente bereitliegen. +@ ----------------------------------------------------------------------------- + push {lr} + + @ Es könnten kein Element, ein Element, zwei oder drei oder vier Elemente geholt werden müssen. + + ldr r1, [r0, #offset_state_4os] + cmp r1, #unknown + bne 1f @ Wenn schon etwas in 4OS enthalten ist, bin ich fertig. - @ Fülle 3OS vom Stack nach: + movs r2, #offset_state_4os + bl erstes_element_belegen - ldr r0, =state_3os - bl fill_element_from_stack + movs r2, #offset_state_3os + bl element_belegen -1: pop {r0, r1, r2, r3, pc} + movs r2, #offset_state_nos + bl element_belegen + movs r2, #offset_state_tos + bl element_belegen + + bl hkomma +1:pop {pc} .ltorg @@ -289,7 +281,7 @@ expect_tos_in_register: @ Sorgt dafür, dass TOS auf jeden Fall einem Register l cmp r1, #constant bne 4f ldr r3, [r0, #offset_constant_tos] @ Hole die Konstante ab - bl generiere_konstante + bl generiere_veraenderliche_konstante movs r1, r3 4: @ Beide Argumente sind jetzt in Registern. @@ -308,7 +300,7 @@ expect_nos_in_register: @ Sorgt dafür, dass NOS auf jeden Fall einem Register l cmp r1, #constant bne 4f ldr r3, [r0, #offset_constant_nos] @ Hole die Konstante ab - bl generiere_konstante + bl generiere_veraenderliche_konstante movs r1, r3 4: @ Beide Argumente sind jetzt in Registern. @@ -323,16 +315,23 @@ nos_change_tos_away_later: @ NOS wird jetzt verändert, TOS danach freigegeben. @ --> Registerkopie anfertigen @ r0 soll die allocator_base enthalten ! - push {r1, r2, r3, lr} + push {r1, r2, r3, r4, r5, lr} ldr r2, [r0, #offset_state_nos] ldr r3, [r0, #offset_state_3os] + ldr r4, [r0, #offset_state_4os] + ldr r5, [r0, #offset_state_5os] + cmp r2, r3 - bne.n 1f + beq 1f + cmp r2, r4 + beq 1f + cmp r2, r5 + bne 2f - @ Identisch. Sind es Register ? - cmp r2, #7 - bhi 1f +1: @ Identisch. Sind es Register ? + cmp r2, #7 @ Es gibt nur 7 Register - alle anderen Fälle sind größer. + bhi 2f @ Ja, es sind beides Register. Mache für NOS einen Registerwechsel, möglichst in r6 hinein. pushdatos @@ -342,23 +341,29 @@ nos_change_tos_away_later: @ NOS wird jetzt verändert, TOS danach freigegeben. str r3, [r0, #offset_state_nos] bl hkomma -1:pop {r1, r2, r3, pc} +2:pop {r1, r2, r3, r4, r5, pc} @ ----------------------------------------------------------------------------- make_tos_changeable: @ Lege eine Elementkopie an, falls TOS woanders schon belegt ist. @ ----------------------------------------------------------------------------- @ r0 soll die allocator_base enthalten ! - push {r1, r2, r3, lr} + push {r1, r2, r3, r4, r5, lr} ldr r1, [r0, #offset_state_tos] ldr r2, [r0, #offset_state_nos] ldr r3, [r0, #offset_state_3os] + ldr r4, [r0, #offset_state_4os] + ldr r5, [r0, #offset_state_5os] cmp r1, r2 beq 1f cmp r1, r3 beq 1f - pop {r1, r2, r3, pc} + cmp r1, r4 + beq 1f + cmp r1, r5 + beq 1f + pop {r1, r2, r3, r4, r5, pc} 1: @ Registerwechsel mit Elementkopie für TOS. @@ -369,7 +374,7 @@ make_tos_changeable: @ Lege eine Elementkopie an, falls TOS woanders schon beleg str r3, [r0, #offset_state_tos] bl hkomma - pop {r1, r2, r3, pc} + pop {r1, r2, r3, r4, r5, pc} @ ----------------------------------------------------------------------------- tos_registerwechsel: @ Wechselt den TOS-Register, gibt diesen in r3 zurück diff --git a/mecrisp-stellaris-source/common/ra/stackjugglers.s b/mecrisp-stellaris-source/common/ra/stackjugglers.s index 87e31db..6abc169 100644 --- a/mecrisp-stellaris-source/common/ra/stackjugglers.s +++ b/mecrisp-stellaris-source/common/ra/stackjugglers.s @@ -195,17 +195,9 @@ tuck: bx lr push {lr} @ Spezialeinsprung des Registerallokators: - - bl expect_two_elements - bl free_3os_element - @ ( Frei NOS TOS ) TOS --> 3OS - - ldr r1, [r0, #offset_state_tos] - str r1, [r0, #offset_state_3os] - - ldr r1, [r0, #offset_constant_tos] - str r1, [r0, #offset_constant_3os] - + bl expect_three_elements + bl dup_allocator + bl minusrot_allocator pop {pc} @ ----------------------------------------------------------------------------- @@ -256,6 +248,7 @@ minusrot: movs tos, r0 bx lr +minusrot_allocator: push {lr} @ Spezialeinsprung des Registerallokators: bl rot_allocator @ -rot = rot rot bl rot_allocator diff --git a/tm4c1294-ra/mecrisp-stellaris-tm4c1294.bin b/tm4c1294-ra/mecrisp-stellaris-tm4c1294.bin index d6ea676..77d02e8 100644 Binary files a/tm4c1294-ra/mecrisp-stellaris-tm4c1294.bin and b/tm4c1294-ra/mecrisp-stellaris-tm4c1294.bin differ