diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index cb77e4d91..738c7ba27 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -47,6 +47,9 @@ #define EEPROM_TEMP_CAL_ACTIVE (EEPROM_PROBE_TEMP_SHIFT - 1) #define EEPROM_BOWDEN_LENGTH (EEPROM_TEMP_CAL_ACTIVE - 2*4) //4 x int for bowden lengths for multimaterial #define EEPROM_CALIBRATION_STATUS_PINDA (EEPROM_BOWDEN_LENGTH - 1) //0 - not calibrated; 1 - calibrated + +#define EEPROM_FILENAME (EEPROM_CALIBRATION_STATUS_PINDA - 8) //8chars to store filename without extension +#define EEPROM_FILE_POSITION (EEPROM_FILENAME - 4) //32 bit for uint32_t file position // Currently running firmware, each digit stored as uint16_t. // The flavor differentiates a dev, alpha, beta, release candidate or a release version. diff --git a/Firmware/Firmware.ino.rambo.hex b/Firmware/Firmware.ino.rambo.hex new file mode 100644 index 000000000..7ac69639b --- /dev/null +++ b/Firmware/Firmware.ino.rambo.hex @@ -0,0 +1,14816 @@ +:100000000C944D500C947E500C947E500C947E5069 +:100010000C947E500C947E500C947E500C947E5028 +:100020000C947E500C947E500C947E500C947E5018 +:100030000C947E500D94ABBE0C947E500C947E506C +:100040000C947E500D94923E0C947E500C947E50F5 +:100050000C947E500C947E500D94A0510D94DAB601 +:100060000C947E500C94A65B0C947E500C947E50A5 +:100070000C947E500C947E500C947E500C947E50C8 +:100080000C947E500C947E500C947E500C947E50B8 +:100090000C947E500C947E500C947E500C947E50A8 +:1000A0000C947E500C947E500C947E500C947E5098 +:1000B0000C947E500C947E500C947E500C947E5088 +:1000C0000C947E500C947E500C947E500C947E5078 +:1000D0000C947E500C947E500C947E500C947E5068 +:1000E0000C947E50BA014001B40182016401CC013C +:1000F0008401C00174014601AE019001C2014401B6 +:1001000052013A01C6017C018C015A013E014801AD +:10011000A2016A019601580134012E01BC0142017D +:100120007801BE014C0196014E0154018E01B601C9 +:10013000A0013C0162015E01A801360188017E0137 +:10014000AC01A601D0019E01C401A801CE01560157 +:100150005001036EDB363D9A9999993DABAAAA2AC4 +:100160003E000000803F084AD73B3BCE016E84BC76 +:10017000BFFDC12F3D6C74319ABD56833DDA3D0001 +:10018000C77F11BED9E4BB4C3E916BAAAABE00004A +:1001900000803F072C7AA5BA6CC590DA3B9365FCCA +:1001A0008BBC53F810FD3C5692834DBD879D3AB6EB +:1001B0003DCBC9BF5BBE73DA0FC93F05A84CCDB2BA +:1001C000D44EB93836A9020C50B9918688083CA69D +:1001D000AAAA2ABE000000803F07634236B79BD818 +:1001E000A71A39685618AEBAAB558C1D3CB7CC5718 +:1001F00063BD6DEDFD753EF6177231BF00000080E6 +:100200003F08000000BE922449123EABAAAA2ABEB3 +:10021000CDCCCC4C3E00000080BEABAAAAAA3E00CA +:10022000000000BF000000803F0000000000084107 +:1002300078D3BB4387D1133D190E3CC3BD4282AD79 +:100240002B3E68EC8276BED98FE1A93E4C80EFFF51 +:10025000BE01C4FF7F3F0000000000000D9453B8B2 +:100260000D94BE7A0D940C960D944BB80D94DBB89A +:100270000D94147A0D941B7D0D94C6B80D9420B87E +:100280000D94FB510D9467B80D94CD7C0D94715273 +:100290000D9425B80D948D780D948AB80D9494B86A +:1002A0000D9409B90D94EC7C0D949EB80D9405B98C +:1002B0000D9443B80D941BB80D940B7A0D94D0B8DF +:1002C0000D9448A70D94CAB80D943F520D9421592E +:1002D0000D94FF6E0D9439B80D94DF860D946D6DFD +:1002E0000D94FC550D9471420D946D520D941D7C2E +:1002F0000D9471B80D9459760D942F7D0D94E5B839 +:100300000D9436590D9425520D9467520D94305921 +:100310000D94DFB80D9494890D94497D0D94A8B87F +:100320000D94967C0D94829F0D94D4580D94B2B880 +:100330000D94825D0D94A16A0D9408920D94F7B806 +:100340000D94D7B80D942FB80D949E1B0D94EDB855 +:100350000D940EB90D9462AE0D94E9B80D947952D6 +:100360000D94F9790D94CC8C0D9417520D94D4B84A +:100370000D94A5B90D94ED510D945DB80D9480B810 +:100380000D946B520D94B07C0D94FBB80D94257DAB +:100390000D94885F0D948F940D944D520D9401B976 +:1003A0000D94F3B80D945E570D949E5A0D94027AF5 +:1003B00048617264636F6465642044656661756C4E +:1003C000742053657474696E6773204C6F61646543 +:1003D000640053746F7265642073657474696E672A +:1003E00073207265747269657665640046696C6134 +:1003F0006D656E742073657474696E67733A20441A +:10040000697361626C6564002020204D32303020B9 +:10041000440046696C616D656E742073657474691F +:100420006E67733A002020204D323039205300414E +:1004300075746F2D526574726163743A20533D3048 +:1004400020746F2064697361626C652C20312074A4 +:100450006F20696E7465727072657420657874724D +:100460007564652D6F6E6C79206D6F766573206194 +:1004700073207265747261637473206F7220726589 +:10048000636F766572696573002046002020204DF9 +:100490003230382053005265636F7665723A2053CC +:1004A0003D4578747261206C656E67746820286DB4 +:1004B0006D2920463A537065656420286D6D2F6D57 +:1004C0002900205A002046002020204D32303720BD +:1004D0005300526574726163743A20533D4C656EEB +:1004E00067746820286D6D2920463A5370656564ED +:1004F00020286D6D2F6D29205A3A205A4C69667458 +:1005000020286D6D29002044002049002020204D26 +:10051000333034205000504944206865617462656E +:10052000642073657474696E67733A002044002018 +:1005300049002020204D33303120500050494420C4 +:1005400073657474696E67733A00205A002059000D +:1005500020204D323036205800486F6D65206F6680 +:100560006673657420286D6D293A00204500205A75 +:100570000020590020580020420020540020204D27 +:10058000323035205300416476616E6365642076B5 +:1005900061726961626C65733A20533D4D696E20EA +:1005A000666565647261746520286D6D2F73292CF2 +:1005B00020543D4D696E2074726176656C206665CD +:1005C00065647261746520286D6D2F73292C20423B +:1005D0003D6D696E696D756D207365676D656E74CF +:1005E0002074696D6520286D73292C20583D6D613C +:1005F00078696D756D205859206A65726B20286D79 +:100600006D2F73292C20205A3D6D6178696D756DB1 +:10061000205A206A65726B20286D6D2F73292C205B +:1006200020453D6D6178696D756D2045206A657264 +:100630006B20286D6D2F73290020540020204D322F +:100640003034205300416363656C65726174696F77 +:100650006E3A20533D616363656C65726174696FC6 +:100660006E2C20543D726574726163742061636303 +:10067000656C65726174696F6E00204500205A00D8 +:1006800020590020204D3230312058004D617869CA +:100690006D756D20416363656C65726174696F6E21 +:1006A00020286D6D2F7332293A00204500205A0012 +:1006B00020590020204D3230332058004D61786998 +:1006C0006D756D2066656564726174657320286D53 +:1006D0006D2F73293A00204500205A002059002030 +:1006E000204D393220580053746570732070657244 +:1006F00020756E69743A0053657474696E6773206F +:1007000053746F726564007364706F733A00506560 +:100710007263656E7420646F6E653A004D323620E8 +:10072000532564004D323400506F736974696F6EE5 +:1007300020726561642066726F6D20656570726FEE +:100740006D3A004D32332025730020423A00204597 +:100750003A00543A005A20736869667420617070D8 +:100760006C6965643A000A005A206C6976652061FC +:10077000646A757374206F7574206F662072616E81 +:1007800067652E2053657474696E6720746F20301E +:100790002E20436C69636B20746F20636F6E7469E5 +:1007A0006E75652E005A206C6976652061646A75E5 +:1007B0007374206F7574206F662072616E67652E8A +:1007C0002053657474696E6720746F203000205761 +:1007D0003A0020453A00543A004175746F002045B4 +:1007E0002F443D00416476616E6365204B3D0022DD +:1007F000005400496E76616C6964205420636F6414 +:10080000652E00496E76616C6964204D20636F64CB +:10081000652E004D3232302053256900203A2000E9 +:10082000004C414E472053454C20464F52434544CF +:10083000002200205A3A0020593A0020453A002070 +:100840005A3A0020593A00583A0020002E0020421F +:100850003A0020453A00543A002042403A002040F5 +:100860003A00202F003A00205400202F0020423A66 +:1008700000202F006F6B20543A002569206D696EAF +:100880002C2025692073656300496E76616C69646C +:10089000204D20636F6465004D6573682062656458 +:1008A000206C6576656C696E67206E6F742061637D +:1008B000746976652E000A002020000A4D65617378 +:1008C0007572656420706F696E74733A000A5A20FD +:1008D000736561726368206865696768743A2000AF +:1008E0002C004E756D20582C593A2000476F206817 +:1008F0006F6D652066696E6973686564004D657328 +:100900006820626564206C6576656C696E6720613D +:10091000637469766174656400557073616D706CA1 +:10092000652066696E697368656400426564206C61 +:100930006576656C696E6720636F72726563746952 +:100940006F6E2066696E697368656400206D696307 +:10095000726F6E73004578636573736976652062A4 +:100960006564206C6576656C696E6720636F727272 +:10097000656374696F6E3A200042656420636F722C +:1009800072656374696F6E2064617461206E6F7448 +:100990002076616C69640A0042656420636F72723C +:1009A000656374696F6E20646174612076616C693F +:1009B000640A006261627973746570206170706CA2 +:1009C00069656400636C65616E2075702066696E90 +:1009D000697368656420004D4553485F484F4D4535 +:1009E0005F5A5F5345415243483A20004D65736852 +:1009F00020626564206C6576656C696E6720776837 +:100A0000696C65206C6F6F702066696E69736865CC +:100A1000642E00006D65736820626564206C6576E5 +:100A2000656C696E673A20000A00593A2000005848 +:100A30003A20003A206E6F20787920636C616D70E7 +:100A4000696E670A003A20787920636C616D706581 +:100A5000642E0A00002C2063616C69627261746903 +:100A60006F6E207A3A2000426564206C6576656C72 +:100A7000696E672C20706F696E743A2000005A20EE +:100A80006A697474657220646174612066726F6D46 +:100A9000205A2063616C2E206E6F742076616C6921 +:100AA000642E0A005A206A69747465722064617445 +:100AB000612066726F6D205A2063616C2E20766112 +:100AC0006C69642E0A004E6F20636C616D70696EF4 +:100AD0006720666F722066697273742063616C6947 +:100AE00062726174696F6E20706F696E742E0A0095 +:100AF00046697273742063616C6962726174696FB4 +:100B00006E20706F696E7420636C616D7065642E09 +:100B10000A0047323820573000473238205730001B +:100B200054656D70657261747572652063616C697E +:100B300062726174696F6E20646F6E652E20436F00 +:100B40006E74696E7565207769746820707265735C +:100B500073696E6720746865206B6E6F622E00008B +:100B6000205A20736869667420286D6D293A0054F4 +:100B7000656D70657261747572653A2000002F367C +:100B800000537465703A2000005A45524F3A2000D5 +:100B90000050494E44412070726F62652063616C61 +:100BA0006962726174696F6E207374617274004758 +:100BB0003238205730000A00205A3A200020593A93 +:100BC000200020583A20004D323230205325690051 +:100BD000256920686F757273202569206D696E75AF +:100BE0007465730054494D454F55543A004D3131A9 +:100BF000300046756C6C20525820427566666572EE +:100C0000004D3239002055706C6F616420696E2090 +:100C100070726F677265737300466163746F727987 +:100C2000205245534554004A756C202036203230FE +:100C3000313700436F6D70696C65643A200033444E +:100C40002D677573736E65722C2054657374004A3A +:100C5000756C20203620323031372031303A31392E +:100C60003A34310073746172740025002020202012 +:100C70002020002020202020200045524153494EB2 +:100C80004720616C6C206461746100466163746F1D +:100C900072792052455345540022206661696C6583 +:100CA000643A204275666665722066756C6C210038 +:100CB000456E717565696E6720746F207468652074 +:100CC00066726F6E743A2022002200456E7175655F +:100CD000696E6720746F207468652066726F6E7429 +:100CE0003A20220022206661696C65643A204275D0 +:100CF000666665722066756C6C21002200FFFFFF3E +:100D00000000A0400000A0400000004000007A4326 +:100D1000333354439AD9514300000000CDCC0CC06A +:100D20009A99193E00007A43000052430000524352 +:100D300000000000CDCC0CC09A99193E6563686F25 +:100D40003A004572726F723A00000021104220632F +:100D5000308440A550C660E770088129914AA16B94 +:100D6000B18CC1ADD1CEE1EFF1311210027332522C +:100D700022B5529442F772D662399318837BB35AE4 +:100D8000A3BDD39CC3FFF3DEE362244334200401FC +:100D900014E664C774A44485546AA54BB528850934 +:100DA00095EEE5CFF5ACC58DD553367226111630CC +:100DB00006D776F6669556B4465BB77AA719973884 +:100DC00087DFF7FEE79DD7BCC7C448E5588668A70C +:100DD000784008611802282338CCC9EDD98EE9AFD4 +:100DE000F9488969990AA92BB9F55AD44AB77A966C +:100DF0006A711A500A333A122AFDDBDCCBBFFB9E24 +:100E0000EB799B588B3BBB1AABA66C877CE44CC53B +:100E10005C222C033C600C411CAEED8FFDECCDCD73 +:100E2000DD2AAD0BBD688D499D977EB66ED55EF40B +:100E30004E133E322E511E700E9FFFBEEFDDDFFCC3 +:100E4000CF1BBF3AAF599F788F8891A981CAB1EB68 +:100E5000A10CD12DC14EF16FE18010A100C230E391 +:100E6000200450254046706760B9839893FBA3DA4D +:100E7000B33DC31CD37FE35EF3B1029012F322D2E1 +:100E8000323542145277625672EAB5CBA5A89589DD +:100E9000856EF54FE52CD50DC5E234C324A0148131 +:100EA000046674476424540544DBA7FAB79987B8ED +:100EB000975FE77EF71DC73CD7D326F2369106B081 +:100EC0001657667676154634564CD96DC90EF92FED +:100ED000E9C899E9898AB9ABA944586548067827D1 +:100EE00068C018E1088238A3287DCB5CDB3FEB1E8D +:100EF000FBF98BD89BBBAB9ABB754A545A376A1621 +:100F00007AF10AD01AB32A923A2EFD0FED6CDD4D1C +:100F1000CDAABD8BADE89DC98D267C076C645C4570 +:100F20004CA23C832CE01CC10C1FEF3EFF5DCF7C2C +:100F3000DF9BAFBABFD98FF89F176E367E554E74C0 +:100F40005E932EB23ED10EF01E7C3C3E5E2B3D3FAA +:100F50002F5B5D3B2C2A225C004D383420582059F1 +:100F6000205A2045004D3234004D32332025730085 +:100F70006175746F25692E67000A002F000A002E24 +:100F80000044656C6574696F6E206661696C6564A8 +:100F90002C2046696C653A200046696C65206465C2 +:100FA0006C657465643A002E002E002E002E004EF3 +:100FB0006F772066726573682066696C653A2000F9 +:100FC0004E6F7720646F696E672066696C653A20A2 +:100FD000002220706F73002220706172656E743A77 +:100FE0002200535542524F5554494E452043414CDF +:100FF0004C207461726765743A2200747279696E6C +:101000006720746F2063616C6C207375622D676359 +:101010006F64652066696C657320776974682074F5 +:101020006F6F206D616E79206C6576656C732E2014 +:101030004D4158206C6576656C2069733A0050729A +:10104000757361206933204D4B3220676572656589 +:10105000642E005072757361206933204D4B32202D +:101060006265726569742E00507275736120693310 +:10107000204D4B3220676F746F776100507275732B +:1010800061206933204D4B3220707265702E005004 +:1010900072757361206933204D4B322070726F6E10 +:1010A00074612E005072757361206933204D4B328C +:1010B000206F6B005072757361206933204D4B3285 +:1010C0002072656164792E007A5F6D696E3A200046 +:1010D0007A5F6D61783A20005A204F6666736574B6 +:1010E00000795F6D696E3A2000795F6D61783A2012 +:1010F000004A61004A610054616B00536900536902 +:1011000000416E6F0059657300785F6D696E3A201B +:1011100000785F6D61783A200020576174636864DD +:101120006F6720526573657400496E666F20736344 +:101130006865726D00496E666F726D6174696F6E7D +:1011400000496E666F726D61636A65004D6F6E690E +:10115000746F72697A61720053636865726D61744D +:101160006120696E666F00496E666F726D616365BE +:1011700000496E666F2073637265656E0057616328 +:101180006874656E206F702061666B6F656C656E4C +:101190002076616E2068656174657220656E2062DC +:1011A00065642E0057617274656E2061756620411A +:1011B000626B7565686C756E6720766F6E2044751E +:1011C00065736520756E6420426574742E004F63EC +:1011D0007A656B6977616E6965206E6120777963E6 +:1011E000686C6F647A656E6965206479737A7920BA +:1011F0006920706F646B6C61646B692E004573705D +:101200006572616E646F20656E667269616D696595 +:101210006E746F206465206C612063616D6120795C +:101220002064656C206578747275736F722E004946 +:101230006E206174746573612064656C20726166F0 +:101240006672656464616D656E746F2064656C6C54 +:10125000612074657374696E6120652064656C201B +:1012600070696174746F0043656B616E69206E61B3 +:10127000207A63686C61646E757469207472797326 +:101280006B79206120706F646C6F7A6B792E0057D8 +:10129000616974696E6720666F72206E6F7A7A6C0E +:1012A0006520616E642062656420636F6F6C696E97 +:1012B00067005761636874656E206F7020676562B0 +:1012C0007275696B6572005761727465206175662D +:1012D000204E75747A65722E2E2E004573706572DD +:1012E000616E646F206F7264656E65730041747423 +:1012F000656E64656E646F207574656E7465005705 +:1013000061697420666F7220757365722E2E2E00CF +:101310004765627275696B742062696A20707269D0 +:101320006E740042656E75747A74206265696D2012 +:10133000447275636B00557A7974652070727A799E +:10134000206472756B7500557361646F20656E2043 +:10135000696D70726573696F6E0055736174692091 +:101360006E656C6C61207374616D706100506F7597 +:101370007A69746520626568656D207469736B7540 +:10138000005573656420647572696E6720707269B8 +:101390006E740046696C616D656E74207569746861 +:1013A000616C656E0046696C616D656E7420656E7A +:1013B000746E65686D656E0057796A616320666951 +:1013C0006C616D656E7400536F6C74617220666938 +:1013D0006C616D656E746F00536361726963612047 +:1013E00066696C616D656E746F0056796A6D6F75B4 +:1013F000742066696C616D656E7400556E6C6F610A +:10140000642066696C616D656E740046696C616D1F +:10141000656E742075697477657270656E004669D3 +:101420006C616D656E742061757377657266656E4B +:10143000005779737577616D2066696C616D656EB3 +:101440007400536F6C74616E646F2066696C616DBB +:10145000656E746F0052696C6173632E2066696CEF +:10146000616D656E746F005679736F7576616D206E +:1014700066696C616D656E7400556E6C6F61646950 +:101480006E672066696C616D656E7400556E6B6E7B +:101490006F776E20636F6D6D616E643A2022004637 +:1014A000696A6E696E7374656C6C696E67656E00EF +:1014B0004665696E65696E7374656C6C756E670000 +:1014C0004E617374726F696300416A7573746172FF +:1014D000005265676F6C61004C61646974005475FB +:1014E0006E65005344204B61727465205B466C73DB +:1014F000684169725D006B617274612053445B46A0 +:101500006C73684169725D005344206361726420AA +:101510005B466C73684169725D005344204B617295 +:101520007465205B6E6F726D616C5D006B617274CF +:1015300061205344205B6E6F726D616C5D0053449B +:101540002063617264205B6E6F726D616C5D005030 +:10155000494E444120542E6B616C2E205B4F4E5DF2 +:101560000050494E444120542E4B616C2E205B4F5D +:101570004E5D00436965706C2E206B616C2E205BA4 +:101580004F4E5D0043616C2E2074656D702E205BA4 +:101590004F4E5D0043616C2E2074656D702E205B94 +:1015A0004F4E5D005465706C2E206B616C2E205B7D +:1015B0004F4E5D0050494E444120542E63616C2EC5 +:1015C000205B4F4E5D0050494E444120542E6B61CC +:1015D0006C2E5B4F46465D0050494E444120542ED0 +:1015E0004B616C2E5B4F46465D00436965706C2E07 +:1015F000206B616C2E205B4F46465D0043616C2E74 +:101600002074656D702E205B4F46465D0043616C13 +:101610002E2074656D702E205B4F46465D0054652C +:10162000706C2E206B616C2E205B4F46465D005027 +:10163000494E444120542E63616C2E5B4F46465DFB +:101640000050494E44412074656D70657261747537 +:1016500075722063616C6962726174696520697377 +:10166000206B6C6161722E204B6C696B206F6D205A +:10167000646F6F72207465206761616E2E0044692B +:10168000652050494E44412054656D706572617407 +:1016900075726B616C696272696572756E672069DB +:1016A0007374206265656E6465742E204B6C69638B +:1016B0006B6520756D20666F72747A7566616872ED +:1016C000656E2E00436965706C6E61206B616C699C +:1016D000627261636A61207A616B6F6E637A6F6EAA +:1016E000612E204B6F6E74796E75756A2070727AF8 +:1016F000796369736B69656D0043616C69627261DE +:10170000636F6E2074656D706572617475726120AF +:101710007465726D696E6164612E205072657369C3 +:101720006F6E6172207061726120636F6E74696E9A +:101730007561722E005461726174757261207465F6 +:101740006D7065726174757261207465726D696E19 +:101750006174612E204661726520636C69636B2041 +:1017600070657220636F6E74696E756172652E00AC +:101770005465706C6F746E69206B616C6962726124 +:10178000636520646F6B6F6E63656E612E20506FB2 +:101790006B726163756A746520737469736B656DD0 +:1017A00020746C616369746B612E0050494E444132 +:1017B0002074656D70657261747572652063616C0B +:1017C0006962726174696F6E2069732066696E69FF +:1017D000736865642E20436C69636B20746F2063AB +:1017E0006F6E74696E75652E0050494E44412054E9 +:1017F000656D702E6B616C2E0050494E4441205433 +:10180000656D702E4B616C2E2020202020004369D6 +:1018100065706C2E206B616C2E20202020202020F3 +:1018200020200043616C2E2074656D702E202020D6 +:10183000202020202020200043616C2E2074656D24 +:10184000702E202020202020202020200054657091 +:101850006C2E206B616C2E20202020202020202048 +:10186000200050494E44412054656D702E63616CD8 +:101870002E20202020200054656D706572617475E3 +:1018800075720054656D706572617475720054658F +:101890006D70657261747572610054656D7065720A +:1018A00061747572610054656D70657261747572F2 +:1018B00061005465706C6F74610054656D70657281 +:1018C000617475726500506F6D6F6300536F706F58 +:1018D00072746500506F64706F7261005375707040 +:1018E0006F7274005072696E742073746F707065DB +:1018F0006E00447275636B20616262726563686535 +:101900006E005A6174727A796D6163206472756BCE +:1019100000446574656E657220696D7072657369E7 +:101920006F6E0041727265737461207374616D70C3 +:1019300061005A61737461766974207469736B0015 +:1019400053746F70207072696E7400474553544F22 +:1019500050542E2000474553544F5050542E2000D1 +:101960005041524144410041525245535441544F19 +:101970002E0053544F505045442E20005374657030 +:101980007261746520746F6F20686967683A20001F +:10199000546F74616C207072696E7474696A643A11 +:1019A00000546F74616C6520447275636B7A65696D +:1019B000743A00437A61732063616C6B6F7769746A +:1019C00079203A005469656D706F20746F74616C92 +:1019D000203A0054656D706F207374616D706120E2 +:1019E000746F743A0043656C6B6F76792063617332 +:1019F000203A00546F74616C207072696E742074A8 +:101A0000696D65203A0046696C616D656E7420747D +:101A10006F74616C3A200046696C616D656E74206C +:101A2000476573616D743A0046696C616D656E74EB +:101A3000206C61637A6E6965203A0046696C616D5D +:101A4000656E746F20746F74616C3A0046696C61E6 +:101A50006D656E746F20746F743A0046696C616DC9 +:101A6000656E742063656C6B656D203A00546F740D +:101A7000616C2066696C616D656E74203A0050720D +:101A8000696E7474696A643A202020004472756338 +:101A90006B7A6569743A202000437A61732064721E +:101AA000756B75203A2020005469656D706F206455 +:101AB0006520696D702E3A0054656D706F20646901 +:101AC000207374616D70613A0043617320746973AF +:101AD0006B75203A2020005072696E742074696D15 +:101AE000653A20200046696C616D656E747665729A +:101AF000627275696B3A0046696C616D656E7476E9 +:101B000065726272617563683A0046696C616D6501 +:101B10006E74203A20200046696C616D656E746FAA +:101B2000203A20200046696C616D656E746F2075E7 +:101B30007361746F3A0046696C616D656E74203A2A +:101B400020200046696C616D656E74207573656454 +:101B50003A2020005374617469737469656B656E13 +:101B60000053746174697374696B656E20005374FB +:101B70006174797374796B612020004573746164BA +:101B800069737469636120200053746174697374AC +:101B9000696368650053746174697374696B61206B +:101BA0002000537461746973746963732020004565 +:101BB00072726F72202D20737461746963206D6579 +:101BC0006D6F727920686173206265656E206F7633 +:101BD00065727772697474656E00536E656C6865C2 +:101BE000696400476573636877696E6469676B65EC +:101BF000697400507265646B6F73630056656C6F37 +:101C000063696461640056656C6F63697461005256 +:101C10007963686C6F73740053706565640020535A +:101C20006F667477617265205265736574004D6FDD +:101C300064652020202020205B6C656973655D0051 +:101C40004D6F64202020202020205B636963687929 +:101C50005D004D6F646F2020205B73696C656E635F +:101C6000696F5D004D6F646F205B73696C656E7AA0 +:101C7000696F736F5D004D6F64202020202020204D +:101C80005B74696368795D004D6F64652020202076 +:101C9000205B73696C656E745D004D6F6465205BDD +:101CA000486F6865204C656973745D004D6F6420F2 +:101CB0005B7720777964616A6E6F73635D004D6F47 +:101CC000646F205B72656E642E706C656E6F5D0074 +:101CD0004D6F64652020202020205B666F72746544 +:101CE0005D004D6F6420205B7679732E2076796BD2 +:101CF0006F6E5D004D6F6465205B6869676820707A +:101D00006F7765725D00546F6F6E20656E647374DB +:101D10006F707300416E7A656967656E20456E73FA +:101D20006368616C74657200506F6B617A206B72CE +:101D3000616E636F776B6900456E73656E612074C9 +:101D40006F70652066696E616C00537461746F20FA +:101D500066696E65636F7273610053746176206BA0 +:101D60006F6E632E207370696E2E0053686F77203C +:101D7000656E642073746F70730054656D702E20EF +:101D8000696E7374656C6C656E0054656D702E655C +:101D9000696E7374656C6C656E00557374617769F8 +:101DA000632074656D70657261747572650045734A +:101DB0007461626C656365722074656D702E3A00A3 +:101DC000496D706F7374612074656D7065726174B4 +:101DD000757261004E61737461767465207465700C +:101DE0006C6F74753A005365742074656D7065721C +:101DF00061747572653A00496E7374656C6C696ED6 +:101E000067656E0045696E7374656C6C756E6765A9 +:101E10006E00557374617769656E696100436F6E1A +:101E200066696775726163696F6E00496D706F7383 +:101E300074617A696F6E69004E6173746176656E64 +:101E4000690053657474696E6773004265647261FA +:101E500064696E6720666F7574005665726472619E +:101E60006874756E67736665686C657200426C6154 +:101E70006420706F6C61637A656E6961004572728F +:101E80006F7220646520636F6E6578696F6E0045C0 +:101E900072726F7265206361626C616767696F005F +:101EA0004368796261207A61706F6A656E69005774 +:101EB0006972696E67206572726F72005A656C662E +:101EC00074657374202073746172742020005365EC +:101ED0006C6273747465737420737461727420001F +:101EE0004175746F746573742073616C696461000B +:101EF0004176766961206175746F746573740053FF +:101F0000656C66207465737420737461727420202C +:101F100000436F6E74726F6C656572206175623A12 +:101F2000004269747465207072756566653A005385 +:101F30006B6F6E74726F6C756A203A00436F6E74CB +:101F4000726F6C61203A00566572696669636172EE +:101F5000653A005A6B6F6E74726F6C756A746520A7 +:101F60003A00506C6561736520636865636B203A65 +:101F7000005A656C6674657374204F4B0053656C32 +:101F800062737474657374204F4B004175746F7481 +:101F9000657374204F4B0053656C662074657374D1 +:101FA000204F4B004E6965742061616E6765736CEC +:101FB0006F74656E004E6963687420616E67657347 +:101FC00063686C6F7373656E004E696520706F6433 +:101FD0006C61637A6F6E6F202020004E6F20686105 +:101FE0007920636F6E6578696F6E2020004E6F6E8A +:101FF00020636F6E6E6573736F004E657A61706FEC +:102000006A656E6F20202020004E6F7420636F6E13 +:102010006E65637465640053696C6E696B004D6F27 +:10202000746F7265004D6F746F720043616C656E02 +:10203000742E2F5465726D6973746F7200526973D8 +:1020400063616C642E2F5465726D6973742E004841 +:1020500065617465722F546865726D6973746F720F +:1020600000526F7465657274004472656874004B49 +:1020700072656369207369650056656E74696C6189 +:10208000646F722067697261004769726100546F02 +:102090006369207365005370696E6E696E670052E4 +:1020A0006F7465657274206E69657400447265684A +:1020B00074206E69636874004E656B726563692095 +:1020C0007369650056656E74696C61646F72206E29 +:1020D0006F2067697261004E6F6E207369206769B7 +:1020E0007261004E65746F6369207365004E6F7492 +:1020F000207370696E6E696E67004C7565667465F5 +:10210000727465737400546573742077656E7479A6 +:102110006C61746F726100546573742064656C2027 +:1021200076656E74696C61646F720050726F76616F +:102130002064656C2076656E74696C61746F7200E2 +:10214000546573742076656E74696C61746F727512 +:102150000046616E2074657374005A656C66746520 +:102160007374206D69736C756B74200053656C62B9 +:10217000737474657374206D69736C75656B74002A +:1021800053656C6674657374206E69657564616E01 +:1021900079004175746F746573742066616C6C614D +:1021A000646F004175746F746573742066616C6C44 +:1021B00069746F0053656C66746573742073656C25 +:1021C00068616C20200053656C66746573742066CA +:1021D00061696C65642020004C696E6B65206661E6 +:1021E0006E3F004C696E6B6572204C756566746558 +:1021F000723F004C6577792077656E74206E6120A0 +:102200006479737A653F0056656E742E20656E2082 +:102210006C6120697A673F0056656E7420535820C0 +:1022200073756C6C277567656C6C6F3F004C6576D9 +:10223000792076656E74206E61207472797363659F +:102240003F004C65667420686F74656E642066613B +:102250006E3F005A656C667465737420466F7574C2 +:1022600020210053656C6273747465737420466535 +:10227000686C65722021004175746F7465737420F9 +:102280006572726F7221004175746F74657374208A +:102290006E6567617469766F0053656C667465730B +:1022A00074206572726F72202100456E6473746FC2 +:1022B00070206E6965742067657261616B7400459A +:1022C0006E647363682E206E2E206572726569637A +:1022D000687400546F70652066696E2E206E6F20E2 +:1022E000746F632E0046696E65632E2066756F728B +:1022F0006920706F722E00456E6473746F70206E6B +:102300006F742068697400456E64736368616C74EF +:10231000657200546F7065732066696E616C00466B +:10232000696E65636F7273612028322900456E649F +:1023300073746F707300546F70652066696E616CA2 +:102340000046696E65636F72736100456E647374F5 +:102350006F7000566F6F72646572652066616E3FC4 +:1023600000566F726465726572204C75656674659F +:10237000723F0050727A6F646E692077656E742EBA +:10238000206472756B753F0056656E742E20616C0B +:10239000206672656E74653F0056656E74206469D0 +:1023A000207374616D706120616E742E3F005072F5 +:1023B00065646E69207469736B6F76792076656EDB +:1023C000743F0046726F6E74207072696E7420667E +:1023D000616E3F00436F6E74726F6C656572205A58 +:1023E0002061732020202000507275656665205A98 +:1023F00020416368736520202020004B6F6E74724B +:102400006F6C61205A2061786973202000436F6EE1 +:1024100074726F6C2064656C20656A65205A005682 +:10242000657269666963612061737365205A004B48 +:102430006F6E74726F6C61205A206178697320200E +:1024400000436865636B696E67205A206178697321 +:10245000202000436F6E74726F6C65657220592086 +:102460006173202020200050727565666520592018 +:10247000416368736520202020004B6F6E74726F7B +:102480006C6120592061786973202000436F6E745D +:10249000726F6C2064656C20656A65205900566512 +:1024A00072696669636120617373652059004B6FBF +:1024B0006E74726F6C6120592061786973202000FE +:1024C000436865636B696E67205920617869732082 +:1024D0002000436F6E74726F6C65657220582061C6 +:1024E00073202020200050727565666520582041B9 +:1024F0006368736520202020004B6F6E74726F6CD0 +:102500006120582061786973202000436F6E7472D7 +:102510006F6C2064656C20656A6520580056657292 +:10252000696669636120617373652058004B6F6E43 +:1025300074726F6C612058206178697320200043A9 +:102540006865636B696E6720582061786973202025 +:1025500000436F6E74726F6C65657220686F74658E +:102560006E6420200050727565666520486F746542 +:102570006E642020202020004B6F6E74726F6C619F +:1025800020686F74656E64202000436F6E74726FF4 +:102590006C20686F74656E642000566572696669A8 +:1025A0006361207567656C6C6F004B6F6E74726F42 +:1025B0006C6120686F74656E6420200043686563F9 +:1025C0006B696E6720686F74656E64202000436FCE +:1025D0006E74726F6C65657220656E6473746F7073 +:1025E000730050727565666520456E64736368613B +:1025F0006C7465722020004B6F6E74726F6C61207A +:10260000656E6473746F707300436F6E742E207404 +:102610006F7065732066696E616C005665726966DD +:102620006963612066696E65636F727361004B6FE9 +:102630006E74726F6C6120656E6473746F7073007A +:10264000436865636B696E6720656E6473746F7051 +:102650007300436F6E74726F6C656572206265649F +:1026600020200050727565666520426574742020D4 +:10267000202020202020004B6F6E74726F6C612030 +:10268000626564202020202000436F6E74726F6C9E +:102690002064652063616D610056657269666963D7 +:1026A00061206C6574746F004B6F6E74726F6C6137 +:1026B00020626564202020202000436865636B69E8 +:1026C0006E6720626564202020202000416C6C65CC +:1026D0006D61616C20676F65642020202000416C73 +:1026E0006C6573207269636874696720202020001C +:1026F00057737A7973746B6F204F4B202020202002 +:102700002000546F646F2062696520004E6573730A +:10271000756E206572726F726500567365204F4B3F +:10272000202020202020202020202000416C6C2010 +:10273000636F727265637420202020202000426540 +:102740007474202F204865617465720043616D6167 +:102750002F43616C656E7461646F72004C657474B4 +:102760006F2F52697363616C642E00426564202F81 +:1027700020486561746572005A656C66746573748F +:102780002020202020202020200053656C627374BC +:102790007465737420202020202020004175746F00 +:1027A00074657374004175746F7465737400536558 +:1027B0006C66746573742020202020202020200067 +:1027C00057726974696E6720746F2066696C653A28 +:1027D0002000766F6C756D652E696E697420666178 +:1027E000696C6564002053697A653A20005344207F +:1027F00076657277696A64657264005344204B6140 +:1028000072746520656E746665726E74004B6172D9 +:1028100074612077796A657461005461726A6574C5 +:102820006120726574697261646100534420726949 +:102830006D6F737361004B617274612076796A6D9C +:1028400075746100436172642072656D6F766564B2 +:10285000005344207072696E74696E6720627974E7 +:102860006520006F70656E206661696C65642C2060 +:1028700046696C653A20006F70656E526F6F742008 +:102880006661696C656400534420696E67657374A2 +:102890006F6B656E005344204B61727465206569EF +:1028A0006E67657365747A74004B6172746120772A +:1028B0006C6F7A6F6E61005461726A657461206931 +:1028C0006E7365727461646100534420696E736550 +:1028D00072697461004B6172746120766C6F7A6505 +:1028E0006E61004361726420696E73657274656421 +:1028F00000534420696E6974206661696C00466902 +:102900006C652073656C65637465640046696C650D +:10291000206F70656E65643A20006572726F722078 +:1029200077726974696E6720746F2066696C6500E0 +:1029300053442063617264206F6B0043616E6E6F5D +:102940007420656E746572207375626469723A20D2 +:10295000005072696E742068657276617474656E79 +:1029600000447275636B20666F72747365747A6568 +:102970006E00577A6E617769616E69652064727561 +:102980006B75005265616E7564617220696D70725D +:102990006573696F6E005374616D706120696E209C +:1029A00072697072657361004F626E6F766F7661E7 +:1029B0006E69207469736B7500526573756D696E0D +:1029C00067207072696E74005072696E7420686559 +:1029D0007276617474656E00447275636B20666F05 +:1029E000727467657365747A7400577A6E6F77696D +:1029F000656E6965206472756B7500526573756DDF +:102A000069656E646F20696D70726573696F6E00C1 +:102A100052697072656E6469207374616D706100D3 +:102A20004F626E6F76656E69207469736B750052C4 +:102A30006573756D696E67207072696E740050728F +:102A4000696E742068657276617474656E00466F95 +:102A500072747365747A656E004B6F6E74796E75FF +:102A60006F776163005265616E7564617220696D94 +:102A7000707265732E0052697072656E646920739E +:102A800074616D706100506F6B7261636F76617419 +:102A900000526573756D65207072696E74005265C1 +:102AA00073656E643A2000686F77746F2E7072756C +:102AB000736133642E637A00686F77746F2E70725F +:102AC00075736133642E637A00686F77746F2E704C +:102AD0007275736133642E636F6D00666F72756D0E +:102AE0002E707275736133642E637A00666F72752F +:102AF0006D2E707275736133642E637A00666F7227 +:102B0000756D2E707275736133642E636F6D007016 +:102B10007275736133642E637A00707275736133FA +:102B2000642E637A00707275736133642E636F6D07 +:102B300000447275636B207061757A6572656E0012 +:102B4000447275636B2070617573696572740044BB +:102B500072756B207A6174727A796D616E79004951 +:102B60006D70726573696F6E20656E20706175732C +:102B700061005374616D706120696E2070617573BE +:102B800061005469736B20706F7A6173746176654C +:102B90006E005072696E74207061757365640050C8 +:102BA00072696E74206166676562726F6B656E0034 +:102BB000447275636B206162676562726F636865FA +:102BC0006E004472756B2070727A657277616E79EF +:102BD00000496D70726573696F6E2063616E636525 +:102BE0006C616461005374616D70612061626F7229 +:102BF00074697461005469736B20707265727573C7 +:102C0000656E005072696E742061626F72746564E3 +:102C1000005072696E746572206F6E74626F6E64BC +:102C2000656E00447275636B6572206765747265CA +:102C30006E74005072696E74657220646973636F9C +:102C40006E6E656374656400656E206472756B20DA +:102C50006F70206B6E6F7000756E64204B6E6F70BE +:102C6000662064727565636B656E004E616369739F +:102C70006E696A2070727A796369736B0050756C43 +:102C800073617220656C206D616E646F00652063F6 +:102C90006C696363617265206D616E6F706F6C61EA +:102CA000006120737469736B6E65746520746C6168 +:102CB0006369746B6F00616E64207072657373205A +:102CC000746865206B6E6F62005475697420766F4E +:102CD0006F727665727761726D656E2100447565FD +:102CE000736520766F726865697A656E21004E6142 +:102CF00067727A656A206479737A6521005072651B +:102D000063616C656E746172206578747275736F3F +:102D100072005072657269732E207567656C6C6FF6 +:102D2000210050726564656872656A74652074720A +:102D300079736B75210050726568656174207468E1 +:102D400065206E6F7A7A6C652100566F6F727665BA +:102D5000727761726D656E00566F726865697A652B +:102D60006E0047727A616E69650050726563616CCE +:102D7000656E7461720050726572697363616C6430 +:102D800061005072656465687265760050726568AE +:102D900065617400506F77657255700057616368A4 +:102DA0007420617562004269747465207761727481 +:102DB000656E0050726F737A6520637A656B61632C +:102DC00000506F72204661766F7220457370657295 +:102DD000617200417370657474610050726F736941 +:102DE0006D2063656B656A746500506C6561736521 +:102DF0002077616974002020506C616E6E657242AC +:102E0000756666657242797465733A200050494E62 +:102E10004441207761726D74206F700050494E44B8 +:102E20004120617566776172656D656E0047727AE3 +:102E3000616E69652050494E44410043616C656E86 +:102E400074616E646F2050494E444100526973634F +:102E5000616C642E2050494E4441004E6168726995 +:102E600076616E692050494E44410050494E4441BC +:102E70002048656174696E670050494E4441207472 +:102E8000656D70657261747575722063616C6962DD +:102E9000726174696520776173206E6F67206E6957 +:102EA0006574207569746765766F65726400504952 +:102EB0004E44412054656D70657261747572204B8B +:102EC000616C696272696572756E6720777572648C +:102ED00065206E6F6368206E696368742061757326 +:102EE000676566756568727400436965706C6E61CC +:102EF000206B616C69627261636A61206E69652032 +:102F000062796C612070727A6570726F7761647A31 +:102F10006F6E61004C612074656D706572617475CF +:102F200072612064652063616C6962726163696FBC +:102F30006E206E6F206861207369646F20616A750E +:102F400073746164610054617261747572612064AC +:102F5000656C6C612074656D706572617475726109 +:102F6000206E6F6E20616E636F726120657365679E +:102F700075697461005469736B61726E61206E656E +:102F800062796C61207465706C6F746E65207A6B09 +:102F9000616C6962726F76616E610050494E4441A6 +:102FA0002074656D70657261747572652063616C03 +:102FB0006962726174696F6E20686173206E6F74EC +:102FC000206265656E2072756E20796574005049C7 +:102FD00044206B616C2E202020202000504944208A +:102FE0004B616C2E2020202020004B616C2E205045 +:102FF00049440043616C2E20504944202020202069 +:103000002020202020200043616C2E2050494400C5 +:10301000504944206B616C2E20202020202020204D +:10302000202020005049442063616C2E2020202065 +:10303000202020202020202000504944206B616C5B +:103040002E206B6C616172202020202020005049CE +:1030500044204B616C2E20666572746967202020C5 +:103060002020004B616C2E20504944207A616B6F08 +:103070006E637A6F6E610043616C2E20504944206C +:103080007465726D696E6164610043616C2E2050DD +:10309000494420636F6D706C657461005049442031 +:1030A0006B616C2E20756B6F6E63656E61005049AD +:1030B000442063616C2E2066696E697368656420C4 +:1030C000202000504944206B616C69627261746910 +:1030D0006500504944204B616C6962726965727584 +:1030E0006E67004B616C69627261636A612050496E +:1030F000440043616C6962726163696F6E2050497C +:10310000440043616C696272617A696F6E65205038 +:10311000494400504944206B616C69627261636587 +:10312000005049442063616C6962726174696F6E1A +:103130000050494420626564206B616C2E20005071 +:1031400049442042657474204B616C2E0050494400 +:10315000206265642063616C2E2000504944206227 +:103160006564206B616C2E206B6C616172202000A5 +:103170005049442042657474204B616C2E20666572 +:103180007274696700504944206265642063616C11 +:103190002E20646F6E65202020005072696E7420AE +:1031A0007061757A6572656E005061757365005067 +:1031B000727A6572776163206472756B0050617515 +:1031C00073617220696D70726573696F6E004D6511 +:1031D00074746920696E20706175736100506F7A34 +:1031E00061737461766974207469736B00506175E2 +:1031F0007365207072696E74004C65672065656E3A +:103200002076656C20706170696572206F6E6465F0 +:10321000722068657420747569742074696A6465C5 +:103220006E73206465206B616C696272617469659C +:103230002076616E20646520656572737465203444 +:103240002070756E74656E2E20416C7320686574F5 +:103250002074756974206865742070617069657286 +:103260002076616E67742C205072696E74657220CE +:103270006F6E6D696464656C6C696A6B20756974E6 +:10328000736368616B656C656E2E004C65676520C5 +:103290007761656872656E6420646572204B616C4D +:1032A000696272696572756E672064657220657205 +:1032B0007374656E20342050756E6B74652065697B +:1032C0006E20426C61747420506170696572207563 +:1032D0006E746572206469652044756573652E207F +:1032E00057656E6E2064696520447565736520645A +:1032F00061732050617069657220626577656774DB +:103300002C20447275636B657220736F666F7274E4 +:1033100020617573736368616C74656E2100556D0F +:1033200069657363206B6172746B6520706170698D +:10333000657275206E6120706F646B6C616463658B +:1033400020692074727A796D616A20706F642064DC +:1033500079737A6120706F64637A617320706F6D26 +:1033600069617275207069657277737A7963682014 +:10337000342070756E6B746F772E204A65736C699C +:10338000206479737A61207A616861637A79206F49 +:10339000207061706965722C2077796C61637A2086 +:1033A0006472756B61726B652E00436F6C6F636145 +:1033B0007220756E6120686F6A612064652070619B +:1033C00070656C20736F627265206C61207375701C +:1033D0006572666963696520646520696D707265F0 +:1033E00073696F6E20647572616E7465206C612004 +:1033F00063616C6962726163696F6E206465206CE1 +:103400006F73207072696D65726F732034207075F0 +:103410006E746F732E205369206C6120626F71751A +:10342000696C6C61206D7565766520656C207061D6 +:1034300070656C2C2061706167617220696D7072BB +:1034400065736F726120696E6D6564696174616D29 +:10345000656E74652E00506F72726520756E206601 +:103460006F676C696F20736F74746F206C2775675A +:10347000656C6C6F20647572616E7465206C612080 +:1034800063616C696272617A696F6E6520646569F7 +:10349000207072696D6920342070756E74692E20F9 +:1034A000496E206361736F206C277567656C6C6F64 +:1034B000206D756F766120696C20666F676C696F2F +:1034C00020737065676E6572652070726F6E7461CF +:1034D0006D656E7465206C61207374616D70616ED2 +:1034E00074652E00556D697374657465206C69731D +:1034F0007420706170697275206E6120706F646CE9 +:103500006F7A6B752061207564727A756A746520B4 +:103510006A656A20706F6420747279736B6F7520AE +:10352000626568656D206D6572656E692070727682 +:103530006E696368203420626F64752E20506F6B53 +:10354000756420747279736B61207A616368797431 +:10355000692070617069722C207679706E6574656F +:10356000207469736B61726E752E00506C616365B7 +:103570002061207368656574206F662070617065D6 +:103580007220756E64657220746865206E6F7A7A39 +:103590006C6520647572696E67207468652063616C +:1035A0006C6962726174696F6E206F662066697201 +:1035B0007374203420706F696E74732E20496620F6 +:1035C000746865206E6F7A7A6C65206361746368D5 +:1035D0006573207468652070617065722C20706F4F +:1035E000776572206F666620746865207072696EF8 +:1035F00074657220696D6D6564696174656C792E9E +:10360000006F6B004F6666004765656E20626577E8 +:103610006567696E672E004B65696E652042657748 +:103620006567756E672E0053696E206D6F76696DE4 +:1036300069656E746F004E657373756E206D6F767D +:10364000696D656E746F2E004E6F206D6F76652EFE +:10365000004765656E205344206B61617274004BB6 +:1036600065696E65205344204B6172746500427237 +:10367000616B206B61727479205344004E6F206837 +:103680006179207461726A657461205344004E65EB +:103690007373756E61205344005A61646E612053E8 +:1036A00044206B61727461004E6F2053442063614B +:1036B00072640054756974004475657365004479DB +:1036C000737A6100426F7175696C6C610055676552 +:1036D0006C6C6F00547279736B61004E6F7A7A6C08 +:1036E000650046696C2E206E6965742067656C61A3 +:1036F00064656E0046696C2E206E6963687420678D +:10370000656C6164656E004272616B2066696C6114 +:103710006D656E74750046696C2E206E6F20696E43 +:1037200074726F64756369646F0046696C2E206EF5 +:103730006F6E20636172696361746F0046696C61CA +:103740006D656E74206E657A61766564656E00469F +:10375000696C616D656E74206E6F74206C6F61644E +:103760006564004B6C657572206E696574206475C4 +:103770006964656C696A6B004661726265206E6996 +:10378000636874206B6C61722E004B6F6C6F7220DB +:103790007A616E6965637A79737A2E00436F6C6F14 +:1037A00072206E6F20686F6D6F67656E656F004386 +:1037B0006F6C6F7265206E6F6E207075726F004255 +:1037C00061727661206E656E692063697374610051 +:1037D000436F6C6F72206E6F7420636C6561720052 +:1037E0004E6565004E65696E004E6965004E650068 +:1037F0004E6F00557067726164656E206175622E50 +:1038000000426974746520616B7475616C697369D9 +:103810006572656E2E0050726F737A65207A616BE7 +:103820007475616C697A6F77616300416374756167 +:103830006C697A617220706F72206661766F7200B7 +:10384000507265676120616767696F726E612E00F3 +:1038500050726F73696D20616B7475616C697A75F4 +:103860006A74652E00506C656173652075706772AF +:103870006164652E004E6965757765206669726DB5 +:10388000776172652076657273696520626573631E +:1038900068696B626161723A004E657565204669C0 +:1038A000726D776172652056657273696F6E2076EE +:1038B0006572667565676261723A005779737A6CF2 +:1038C00061206E6F776120776572736A6120666927 +:1038D000726D776172653A004E7565766F20666924 +:1038E000726D7761726520646973706F6E69626C66 +:1038F000653A004E756F76612076657273696F6EFA +:10390000652064656C206669726D776172652064FC +:103910006973706F6E6962696C65005679736C616A +:10392000206E6F7661207665727A65206669726DA9 +:10393000776172653A004E6577206669726D7761CE +:1039400072652076657273696F6E20617661696C4D +:1039500061626C653A00566572706C6161747320C7 +:103960005A00426577656765205A0050727A657320 +:10397000756E6163205A004D6F766572205A004D56 +:10398000756F7669205A00506F73756E6F7574206D +:103990005A004D6F7665205A00566572706C6161F1 +:1039A000747320590042657765676520590050722D +:1039B0007A6573756E61632059004D6F766572206C +:1039C00059004D756F7669205900506F73756E6F91 +:1039D00075742059004D6F766520590056657270D8 +:1039E0006C61617473205800426577656765205883 +:1039F0000050727A6573756E61632058004D6F7662 +:103A000065722058004D756F7669205800506F73AD +:103A1000756E6F75742058004D6F7665205800459F +:103A2000787472756972004D756F7669204573748C +:103A30007275736F72650045787472756465720093 +:103A40004B616C6962726572656E2076616E20589A +:103A5000595A2E204472616169206465206B6E6F33 +:103A600070206F6D206465205A2D776167656E2028 +:103A70006F6D686F6F67207465206761616E207479 +:103A80006F74206865742065696E64652073746F57 +:103A900070706572732E204B6C696B20616C7320A3 +:103AA0006B6C6161722E004B616C69627269657248 +:103AB000656E20766F6E205A2E2044726568656EA2 +:103AC000205369652064656E204B6E6F70662C20F4 +:103AD000626973206265696465205A2D5363686C5E +:103AE000697474656E206F6265726520416E7363E0 +:103AF00068616567652065727265696368656E2EC9 +:103B0000204B6C69636B656E2077656E6E20626515 +:103B10006964652067616E7A206F62656E207369E3 +:103B20006E642E004B616C69627261636A61205A37 +:103B30002E2050727A656B7265632067616C6B65CD +:103B40002C206162792070727A6573756E616320D2 +:103B50006F73205A20646F20676F726E79636820DC +:103B60006B72616E636F77656B2E204E6163697354 +:103B70006E696A2C20627920706F7477696572644F +:103B80007A69632E0043616C696272616E646F20B2 +:103B90005A2E204769726120656C20626F746F6EC7 +:103BA000207061726120737562697220656C206398 +:103BB0006172726F205A20686173746120676F6C44 +:103BC0007065207069657A617320737570657269BC +:103BD0006F7261732E204465737075657320686120 +:103BE0007A20636C69632E0043616C696272617A4A +:103BF000696F6E65205A2E2052756F746172652050 +:103C00006C61206D616E6F706F6C612070657220E9 +:103C1000616C7A61726520696C2063617272656C97 +:103C20006C6F205A2066696E6F20616C6C27616C26 +:103C300074657A7A61206D617373696D612E2043BA +:103C40006C69636B20706572207465726D696E615A +:103C500072652E004B616C696272616365205A2E39 +:103C6000204F746163656E696D20746C6163697463 +:103C70006B6120706F73756E7465205A206F737559 +:103C800020617A206B7E686F726E696D7520646F3B +:103C900072617A752E20506F747672647465207428 +:103CA0006C616369746B656D2E0043616C6962724F +:103CB0006174696E67205A2E20526F74617465209A +:103CC000746865206B6E6F6220746F206D6F76650F +:103CD00020746865205A206361727269616765208B +:103CE000757020746F2074686520656E642073742D +:103CF0006F70706572732E20436C69636B207768F8 +:103D0000656E20646F6E652E004B616C6962726532 +:103D100072656E2076616E2058595A2E2044726169 +:103D20006169206465206B6E6F70206F6D20646523 +:103D3000205A2D776167656E206F6D686F6F672001 +:103D40007465206761616E20746F742068657420EB +:103D500065696E64652073746F70706572732E2070 +:103D60004B6C696B20616C73206B6C6161722E000F +:103D70004B616C696272696572656E20766F6E2048 +:103D800058595A2E2044726568656E205369652023 +:103D900064656E204B6E6F70662C206269732062C2 +:103DA00065696465205A2D5363686C697474656E27 +:103DB000206F6265726520416E7363686165676537 +:103DC0002065727265696368656E2E204B6C69634D +:103DD0006B656E2077656E6E20626569646520672D +:103DE000616E7A206F62656E2073696E642E004B7F +:103DF000616C69627261636A612058595A2E205061 +:103E0000727A656B7265632067616C6B652C2061EB +:103E100062792070727A6573756E6163206F7320AA +:103E20005A20646F20676F726E796368206B7261CD +:103E30006E636F77656B2E204E616369736E696A7E +:103E40002C20627920706F7477696572647A696377 +:103E50002E0043616C696272616E646F2058595A1A +:103E60002E204769726120656C20626F746F6E202E +:103E70007061726120737562697220656C20636184 +:103E800072726F205A20686173746120676F6C7062 +:103E900065207069657A6173207375706572696FEA +:103EA0007261732E20446573707565732068617A42 +:103EB00020636C69632E0043616C696272617A6988 +:103EC0006F6E652058595A2E2052756F7461726555 +:103ED000206C61206D616E6F706F6C612070657217 +:103EE00020616C7A61726520696C20636172726511 +:103EF0006C6C6F205A2066696E6F20616C6C276154 +:103F00006C74657A7A61206D617373696D612E20BE +:103F1000436C69636B20706572207465726D696EA5 +:103F20006172652E004B616C696272616365205835 +:103F3000595A2E204F746163656E696D20746C61EF +:103F40006369746B6120706F73756E7465205A209D +:103F50006F737520617A206B7E686F726E696D7504 +:103F600020646F72617A752E20506F74767264745B +:103F70006520746C616369746B656D2E0043616CC0 +:103F80006962726174696E672058595A2E20526FA7 +:103F90007461746520746865206B6E6F6220746F45 +:103FA000206D6F766520746865205A206361727297 +:103FB0006961676520757020746F2074686520657D +:103FC0006E642073746F70706572732E20436C6919 +:103FD000636B207768656E20646F6E652E00417399 +:103FE00020766572706C61617473656E00426577EE +:103FF0006567652041636873650052756368206F6B +:104000007369004D6F76657220656A6573004D7542 +:104010006F7669206173736500506F73756E6F758D +:1040200074206F7375004D6F766520617869730039 +:104030004D657368206C6976656C2E206C657474B0 +:104040006F004D65736820426564204C6576656C31 +:10405000696E67004B616C69627261746965004BDF +:10406000616C696272696572756E67004B616C693B +:10407000627261636A610043616C69627261636963 +:104080006F6E0043616C696272617A696F6E650080 +:104090004B616C6962726163650043616C69627255 +:1040A0006174696F6E002076616E20390020766F32 +:1040B0006E203900207A20390020646520390020E4 +:1040C0007375203900207A203900206F662039006E +:1040D0004D6574656E2076616E20726566657265E9 +:1040E0006E636520686F6F6774652076616E20640B +:1040F00065206B616C6962726174696570756E745C +:10410000004D657373656E20646572205265666547 +:1041100072656E7A686F65686520646573204B61AF +:104120006C69627269657270756E6B746573004F4D +:104130006B7265736C616D207779736F6B6F7363EE +:10414000206F646E69657369656E69612070756E54 +:104150006B7475206B616C6962726163796A6E65FC +:10416000676F004D65646972206C6120616C7475C5 +:1041700072612064656C2070756E746F20646520B8 +:104180006C612063616C6962726163696F6E004D7E +:1041900069737572617265206C27616C74657A7AD7 +:1041A00061206469207269666572696D656E746FFD +:1041B0002064656C2070756E746F20646920636183 +:1041C0006C696272617A696F6E65004D6572696DC6 +:1041D000207265666572656E636E69207679736BB1 +:1041E00075206B616C69627261636E69686F2062D1 +:1041F0006F6475004D6561737572696E67207265D5 +:10420000666572656E636520686569676874206FAE +:10421000662063616C6962726174696F6E20706F91 +:10422000696E7400486F6F66646D656E75004861F5 +:104230007570746D656E7565004D656E7520676C83 +:104240006F776E65004D656E75207072696E63697B +:1042500070616C004D656E75207072696E63697077 +:10426000616C6500486C61766E69206E616269649C +:104270006B61004D61696E004D32323120496E76BE +:10428000616C696420657874727564657220004D94 +:1042900032313820496E76616C69642065787472B9 +:1042A0007564657220004D32303020496E76616C45 +:1042B0006964206578747275646572200052657057 +:1042C0006F7274696E6720656E6473746F702073AB +:1042D0007461747573004649524D574152455F4EA3 +:1042E000414D453A4D61726C696E2056312E302E2B +:1042F000323B20537072696E7465722F6772626C04 +:10430000206D617368757020666F722067656E3608 +:10431000204649524D574152455F55524C3A6874B8 +:104320007470733A2F2F6769746875622E636F6DAE +:104330002F707275736133642F50727573612D69BC +:10434000332D506C75732F2050524F544F434F4CA8 +:104350005F56455253494F4E3A312E30204D41431E +:1043600048494E455F545950453A50727573612023 +:104370006933204D4B322045585452554445525FC5 +:10438000434F554E543A3120555549443A30303018 +:1043900030303030302D303030302D303030302D26 +:1043A000303030302D303030303030303030303010 +:1043B000300A004D31303920496E76616C696420D5 +:1043C000657874727564657220004D31303520490E +:1043D0006E76616C696420657874727564657220AC +:1043E000004D31303420496E76616C696420657807 +:1043F00074727564657220004C6F736572207075FD +:104400006C6C6579004B6F6C6F207061736F7765B2 +:1044100000506F6C6561207375656C746100507538 +:104420006C6567676961206C656E74610055766FB5 +:104430006C6E656E612072656D656E69636B61009F +:104440004C6F6F73652070756C6C65790046696C94 +:10445000616D656E74206C6164656E0046696C61A7 +:104460006D656E74206C6164656E005770726F7755 +:1044700061647A2066696C616D656E7400496E7462 +:10448000726F64756369722066696C616D2E00439A +:1044900061726963612066696C616D656E746F003D +:1044A0005A61766573742066696C616D656E74001F +:1044B0004C6F61642066696C616D656E74004C615F +:1044C0006164652046696C616D656E740046696C57 +:1044D000616D656E74206C61656474005770726FF5 +:1044E000772E2066696C616D656E747500496E7417 +:1044F000726F64756369656E646F2066696C616D67 +:104500002E004361726963616E646F2066696C613D +:104510006D2E005A61766164656E692066696C6112 +:104520006D656E7475004C6F6164696E67206669B5 +:104530006C616D656E74004C61616465206B6C65C7 +:104540007572004C61646520466172626500437A51 +:1045500079737A637A2E206B6F6C6F72750043618A +:104560006D6269616E646F20636F6C6F720043618E +:10457000726963616E646F20636F6C6F7265004374 +:10458000697374656E69206261727679004C6F613F +:1045900064696E6720636F6C6F72004B696573208E +:1045A0007461616C00576165686C6520537072615D +:1045B000636865005779626F72206A657A796B610A +:1045C0000043616D6269616520656C206964696F93 +:1045D0006D610053656C657A696F6E61206C696E00 +:1045E000677561005679626572206A617A796B61DC +:1045F0000053656C656374206C616E6775616765F7 +:10460000004E656465726C616E6473004465757418 +:1046100073636800506F6C736B6900457370616EF3 +:104620006F6C004974616C69616E6F0043657374EF +:10463000696E6100456E676C697368004E4F4F4448 +:1046400053544F502F4B494C4C45442E200041426F +:10465000474542524F4348454E2E2000504152415B +:10466000444120444520454D455247454E4349412C +:1046700000494E2054494C542E004B494C4C454463 +:104680002E2000496E76616C6964206578747275BD +:104690006465720046696C616D656E7420696E7345 +:1046A00074656B656E0046696C616D656E7420653E +:1046B000696E6C6567656E005770726F7761647ABA +:1046C0002066696C616D656E7400496E74726F640A +:1046D000756369722066696C616D656E746F0049FF +:1046E0006E7365726972652066696C616D656E7462 +:1046F0006F00566C6F7A74652066696C616D656ECB +:104700007400496E736572742066696C616D656EC4 +:1047100074002076616E20390020766F6E2039009B +:10472000207A2039002064652039002073752039F3 +:1047300000207A203900206F662039004E6175779D +:104740006B65757269676865696420766572626514 +:10475000746572656E2062696A206B616C69627251 +:104760006174696570756E740047656E617569671F +:104770006B656974207665726265737365726E200D +:10478000626569204B616C69627269657270756EF1 +:104790006B7400506F7072617769616D2070726523 +:1047A00063797A796A6E6F73632070756E6B747556 +:1047B000206B616C6962726163796A6E65676F0014 +:1047C0004D656A6F72616E646F2063616D61207008 +:1047D000756E746F2064652063616C6962726163D9 +:1047E000696F6E0050657266657A696F6E2E20691A +:1047F0006C206C6574746F2070756E746F206469C2 +:104800002063616C696272617A2E005A6C65707304 +:10481000756A6920707265736E6F7374206B616C5A +:1048200069627261636E69686F20626F64750049C6 +:104830006D70726F76696E67206265642063616C6B +:104840006962726174696F6E20706F696E74004B7B +:10485000616C6962726572656E205A004B616C69A9 +:10486000627269657265205A004B616C696272758B +:104870006A65205A0043616C696272616E646F20E0 +:104880005A0043616C696272616E646F205A004B1A +:10489000616C696272756A69205A0043616C696271 +:1048A000726174696E67205A004B616C6269627252 +:1048B00061746965204F4B004B616C696272696578 +:1048C00072756E67204F4B004B616C696272616359 +:1048D0006A61204F4B0043616C6962726163696F6A +:1048E0006E204F4B0043616C696272617A696F6E32 +:1048F00065204F4B004B616C696272616365204FAC +:104900004B0043616C6962726174696F6E20646F01 +:104910006E65004B616C6962726572656E205A004B +:104920004B616C696272696572656E205A004B61F9 +:104930006C696272756A205A0043616C69627261C7 +:1049400072205A0043616C69627261205A004B61A7 +:104950006C6962726F766174205A0043616C69629F +:1049600072617465205A004F707761726D656E20B8 +:104970006B6C6161722E0041756667656865697A66 +:10498000656E206B6C61722E0047727A616E69658C +:10499000204F4B2E0043616C656E74616D69656ECE +:1049A000746F2066696E616C2E0052697363616C6E +:1049B000642E20636F6D706C65746F005A6168724D +:1049C0006976616E69204F4B2E0048656174696E8F +:1049D0006720646F6E652E004F707761726D656E33 +:1049E000004175666865697A656E0047727A616E26 +:1049F00069652E2E2E0043616C656E74616E646F66 +:104A00002E2E2E0052697363616C64616D656E7445 +:104A10006F2E2E2E005A6168726976616E690048A9 +:104A2000656174696E67002046726565204D656D2D +:104A30006F72793A20005072696E746572206973E2 +:104A4000206E6F67206E6965742067656B616C69A5 +:104A50006272656572642E20566F6C6720646520F3 +:104A600068616E646C656964696E672C20686F6F3D +:104A700066647374756B2046697273742073746511 +:104A800070732C207365637469652043616C69627F +:104A9000726174696F6E20666C6F772E0044657268 +:104AA00020447275636B6572207775726465206E41 +:104AB0006F6368206E69636874206B616C696272F1 +:104AC000696572742E20426974746520666F6C6724 +:104AD000656E205369652064656D2048616E64626F +:104AE0007563682C204B61706974656C204669722F +:104AF00073742073746570732C2041627363686EE5 +:104B00006974742043616C6962726174696F6E20AC +:104B1000666C6F772E004472756B61726B61206EEC +:104B20006965207A6F7374616C61206A65737A635A +:104B30007A6520736B616C6962726F77616E612E4A +:104B40002050726F737A65206B6965726F7761634D +:104B50002073696520696E737472756B636A612C6A +:104B600020726F7A647A69616C205A61637A796E17 +:104B7000616D792C20706F64726F7A647A69616CF0 +:104B80002053656C66746573742E00496D70726590 +:104B9000736F7261206E6F20657374612063616C46 +:104BA00069627261646120746F64617669612E204C +:104BB000506F72206661766F722075736172206526 +:104BC0006C206D616E75616C2C20656C206361706A +:104BD0006974756C6F2046697273742073746570A4 +:104BE000732C2073656C656363696F6E2043616C21 +:104BF0006962726174696F6E20666C6F772E005304 +:104C000074616D70616E746520616E636F72612096 +:104C10006E6F6E2063616C6962726174612E2053E5 +:104C200069207072656761206469207365677569C2 +:104C3000726520696C206D616E75616C652C2063F6 +:104C4000617069746F6C6F205052494D492050411A +:104C50005353492C2073657A696F6E652064656CC7 +:104C60006C612063616C696272617A696F6E652E36 +:104C7000005469736B61726E61206E6562796C615C +:104C8000206A65737465207A6B616C6962726F76F5 +:104C9000616E612E20506F73747570756A74652033 +:104CA00070726F73696D20706F646C65206D616EDA +:104CB00075616C752C206B617069746F6C61205A22 +:104CC0006163696E616D652C206F647374617665D4 +:104CD0006320506F73747570206B616C69627261D0 +:104CE00063652E005072696E74657220686173206E +:104CF0006E6F74206265656E2063616C69627261BB +:104D0000746564207965742E20506C65617365202C +:104D1000666F6C6C6F7720746865206D616E75616D +:104D20006C2C2063686170746572204669727374BC +:104D30002073746570732C2073656374696F6E20C3 +:104D400043616C6962726174696F6E20666C6F7723 +:104D50002E004475726368666C7573730050727AC6 +:104D600065706C797700466C756A6F00466C757378 +:104D7000736F00507275746F6B00466C6F770042F2 +:104D800065776567696E67656E2061667765726BCA +:104D9000656E004265776567756E67656E20626552 +:104DA000656E64656E004B6F6E637A656E69652033 +:104DB0006472756B75005465726D2E206D6F766927 +:104DC0006D69656E746F73004172726573746F20E4 +:104DD000696E20636F72736F00446F6B6F6E636FE9 +:104DE00076616E6920706F687962750046696E69D8 +:104DF0007368696E67206D6F76656D656E7473009C +:104E00002076616E20340020766F6E203400207A88 +:104E10002034002064652034002073752034002085 +:104E20007A203400206F662034005A6F656B65204D +:104E3000626564206B616C6962726174696570752A +:104E40006E740053756368652042657474204B610D +:104E50006C69627269657270756E6B7400537A75F5 +:104E60006B616D2070756E6B7475206B616C69621F +:104E7000726163796A6E65676F20706F646B6C61D5 +:104E8000646B690042757363616E646F2063616D6A +:104E9000612070756E746F2064652063616C696257 +:104EA000726163696F6E0052696365726361206449 +:104EB000656C206C6574746F2070756E746F2064FF +:104EC000692063616C696272617A2E00486C656466 +:104ED000616D206B616C69627261636E6920626FE3 +:104EE0006420706F646C6F7A6B79005365617263D4 +:104EF00068696E67206265642063616C69627261D3 +:104F000074696F6E20706F696E74004865726861B5 +:104F10006C696E672000576965646572686F6C75AF +:104F20006E6720004974657261636A612000526592 +:104F3000697465726163696F6E200052656974659A +:104F400072617A696F6E652000497465726163658C +:104F50002000497465726174696F6E2000446F6E41 +:104F60006520736176696E672066696C652E004402 +:104F70006F6E65207072696E74696E672066696C09 +:104F800065004973206B6C657572207A756976656A +:104F9000723F0049737420466172626520726569D0 +:104FA0006E3F00437A79206B6F6C6F72206A657375 +:104FB0007420637A797374793F00457320656C209F +:104FC0006E7565766F20636F6C6F72206E697469A1 +:104FD000646F3F00496C20636F6C6F7265206527BA +:104FE000206E697469646F3F004A65206261727661 +:104FF000612063697374613F00497320636F6C6F54 +:105000007220636C6561723F0057697373656C2031 +:1050100066696C616D656E740046696C616D656E84 +:10502000742D5765636873656C0057796D69656E9B +:1050300069632066696C616D656E740043616D62C1 +:105040006961722066696C616D656E746F004361A1 +:105050006D622E2066696C616D656E746F005679A5 +:105060006D656E69742066696C616D656E74004370 +:1050700068616E67652066696C616D656E74004677 +:10508000616E20736E656C68656964004C75656659 +:105090007465722D54656D706F00507265646B6F2E +:1050A00073632077656E742E0056656C6F63696458 +:1050B00061642056656E742E0056656C6F6369746A +:1050C000612076656E742E00527963686C6F73741C +:1050D0002076656E742E0046616E2073706565647F +:1050E00000656E717565696E67202200456B73748B +:1050F0007275646572004578747275736F720045DD +:1051000073747275736F7265004578747275646537 +:1051100072002045787465726E616C20526573650B +:1051200074005072696E7465722073746F7070656C +:10513000642064756520746F206572726F72732EBF +:105140002046697820746865206572726F722061EC +:105150006E6420757365204D39393920746F207263 +:105160006573746172742E202854656D7065726168 +:10517000747572652069732072657365742E20538F +:105180006574206974206166746572207265737439 +:10519000617274696E6729004E6F204C696E6520DC +:1051A0004E756D6265722077697468206368656307 +:1051B0006B73756D2C204C617374204C696E653A6D +:1051C00020004E6F20436865636B73756D207769AF +:1051D0007468206C696E65206E756D6265722C2036 +:1051E0004C617374204C696E653A200020746F6FB7 +:1051F000206C6F6E6720657874727573696F6E20AE +:1052000070726576656E746564004C696E65204EDB +:10521000756D626572206973206E6F74204C6173C6 +:1052200074204C696E65204E756D6265722B312C51 +:10523000204C617374204C696E653A20005072698D +:105240006E7465722068616C7465642E206B696C85 +:105250006C28292063616C6C6564210020636F6C8D +:105260006420657874727573696F6E2070726576EC +:10527000656E74656400636865636B73756D206D3E +:1052800069736D617463682C204C617374204C6980 +:105290006E653A2000464F55543A004645484C4505 +:1052A000523A00424C41443A004552524F52453A1C +:1052B0000043485942413A004552524F523A004544 +:1052C0006E642066696C65206C697374006F70652C +:1052D0006E0054524947474552454400656E647319 +:1052E000746F7073206869743A2000536C61706544 +:1052F0006E2E2E2E0057617274656E2E2E2E004576 +:105300006E2065737065726100536F7370656E73A4 +:10531000696F6E652E2E2E00536C6565702E2E2ED5 +:10532000004D6F746F72656E20756974004D6F74F7 +:105330006F72656E206175730057796C61637A795D +:10534000632073696C6E696B69004170616761729B +:10535000206D6F746F726573004469736162696C6C +:105360006974206D6F746F7269005679706E6F7515 +:1053700074206D6F746F72790044697361626C653B +:105380002073746570706572730041637475656530 +:105390006C00416B7475656C6C65730054796C6B53 +:1053A0006F20616B7475616C6E650041637475612B +:1053B0006C0041747475616C6500506F757A65207E +:1053C000616B7475616C6E690043757272656E74A1 +:1053D0000020436F756E7420583A2000576973732C +:1053E000656C206F6B3F005765636873656C206F59 +:1053F0006B3F0057796D69616E61206F6B3F0043B1 +:10540000616D626961646F20636F72726563742E8F +:105410003F0043616D626961746F20636F72722E29 +:105420003F0056796D656E61206F6B3F0043686188 +:105430006E67656420636F72726563746C793F0098 +:1054400041666B6F656C656E0041626B7565686C7B +:10545000656E00577963686C6F647A696300456EA6 +:1054600066726961720052616666726564646100A9 +:105470005A63686C6164697400436F6F6C646F7722 +:105480006E005265696E696720686574207475697D +:105490007420766F6F72206465206B616C69627234 +:1054A00061746965206175622E204B6C696B2061A7 +:1054B0006C73206B6C6161722E004269747465209C +:1054C0007265696E6967656E2053696520646965F8 +:1054D000204475657365207A7572204B616C696232 +:1054E00072696572756E672E204B6C69636B656EB1 +:1054F0002077656E6E207361756265722E00446C54 +:1055000061207072617769646C2E206B616C6962D6 +:105510007261636A692070726F737A65206F637A53 +:105520007973636963206479737A652E20506F7490 +:10553000772E2067757A696B69656D2E004C696DF1 +:105540007069617220626F7175696C6C6120706145 +:1055500072612063616C6962726163696F6E2E2093 +:10556000436C69636B206375616E646F2061636176 +:105570006265732E0050756C697265206C277567C3 +:10558000656C6C6F20706572206C612063616C6962 +:105590006272617A696F6E652C20706F6920666136 +:1055A000726520636C69636B2E0050726F20757397 +:1055B0007065736E6F75206B616C6962726163698F +:1055C000206F636973746574652070726F73696DA1 +:1055D000207469736B6F766F7520747279736B7555 +:1055E0002E20506F74767264746520746C616369E8 +:1055F000746B656D2E00506C6561736520636C651E +:10560000616E20746865206E6F7A7A6C6520666FB3 +:10561000722063616C6962726174696F6E2E2043DF +:105620006C69636B207768656E20646F6E652E0011 +:105630005A696A6E206265696465205A20776167DD +:10564000656E206865656C656D61616C20626F7662 +:10565000656E3F0053696E64206265696465205A17 +:10566000205363686C697474656E2067616E7A207C +:105670006F62656E3F004F626120776F7A6B6920C1 +:10568000646F6A656368616C7920646F20676F720C +:105690006E656A2072616D793F00436172726F734B +:1056A000205A20697A712E2F6465722E20657374DA +:1056B000616E20617272696261206D6178696D6FDF +:1056C0003F00492063617272656C6C69205A2073D7 +:1056D000696E2F64657320736F6E6F20616C7465E3 +:1056E0007A7A61206D61783F00446F6A656C792039 +:1056F0006F6261205A20766F7A696B79206B7E68C1 +:105700006F726E696D7520646F72617A753F0041CA +:105710007265206C65667420616E642072696768CA +:1057200074205A7E63617272696167657320616C6F +:105730006C2075703F00204C61737420557064615B +:105740007465643A20004B696573204578747275FE +:1057500064657200576165686C656E2053696520E9 +:105760004578747275646572005779626965727AFA +:1057700020656B7374727564657200456C6567694A +:1057800072206578747275736F723A0053656C6538 +:105790007A696F6E61206573747275736F72653AA2 +:1057A00000567962657274652065787472756465F7 +:1057B000723A0043686F6F73652065787472756420 +:1057C00065723A0057697373656C2073756363651E +:1057D00073766F6C21005765636873656C20657222 +:1057E000666F6C677265696368210057796D6961DE +:1057F0006E61206F6B210043616D62696F20636F82 +:1058000072726563746F0043616D62696F207269C3 +:1058100075736369746F21005A6D656E61207573CD +:105820007065736E6121004368616E6765207375F2 +:10583000636365737321005072696E742076616EC4 +:1058400020534400447275636B656E20766F6E2042 +:105850005344004472756B207A205344004D656EAA +:1058600075207461726A65746120534400537461D9 +:105870006D7061206461205344005469736B207A19 +:10588000205344005072696E742066726F6D20530D +:10589000440050494E44412054656D702E206B6188 +:1058A0006C2E0050494E44412054656D702E204BA3 +:1058B000616C2E00436965706C6E61206B616C6970 +:1058C00062722E0043616C6962726163696F6E205F +:1058D00074656D702E00546172617475726120740C +:1058E000656D702E005465706C6F742E206B616C4A +:1058F0006962726163650050494E44412054656D90 +:10590000702E2063616C2E0050494E444120546536 +:105910006D702E206B616C2E0050494E4441205416 +:10592000656D702E204B616C2E00536B616C69624B +:10593000726F7761630043616C69627261720043E8 +:10594000616C696272617265005A6B616C69627246 +:105950006F7661740050494E44412054656D702E3D +:105960002063616C2E0052657365742058595A206B +:105970006B616C6962722E005265736574205859B0 +:105980005A204B616C6962722E00526573657420F7 +:105990006B616C6962722E2058595A0052657365AA +:1059A000742058595A206B616C6962722E005265DE +:1059B0007365742058595A2063616C6962722E00B5 +:1059C0004B616C696272617469652058595A004B69 +:1059D000616C696272696572756E672058595A0008 +:1059E0004B616C69627261636A612058595A004365 +:1059F000616C696272612058595A0043616C696236 +:105A000072612058595A004B616C6962726163651A +:105A10002058595A0043616C69627261746520585C +:105A2000595A002042726F776E206F75742052654C +:105A300073657400426567696E2066696C65206CE9 +:105A40006973740058595A206B616C696272617491 +:105A50006965206765636F6D70726F6D69747465D9 +:105A60006572642E204C696E6B73766F6F72206B5B +:105A7000616C6962726174696570756E74206E69BB +:105A800065742062657265696B626161722E00588F +:105A9000595A2D4B616C696272696572756E672027 +:105AA000756E67656E61752E204C696E6B65722030 +:105AB000766F726465726572204B616C696272699F +:105AC000657270756E6B74206E69636874206572A0 +:105AD00072656963686261722E004B616C69627203 +:105AE00061636A612058595A206E6965646F6B6CF6 +:105AF00061646E612E204C6577792070727A6564DE +:105B00006E692070756E6B74207A62797420777973 +:105B100073756E6965747920646F2070727A6F6432 +:105B2000752E0043616C696272617A696F6E2058EC +:105B3000595A20636F6D70726F6D65746964612E60 +:105B40002050756E746F2064656C616E7465726F41 +:105B500020697A7175696572646F206E6F20616C5F +:105B600063616E7A61626C652E0043616C6962727A +:105B7000617A696F6E652058595A20636F6D707233 +:105B80006F6D657373612E2050756E746F20616E3A +:105B9000746572696F72652073696E697374726F70 +:105BA000206E6F6E207261676769756E67696269E2 +:105BB0006C652E004B616C69627261636520585997 +:105BC0005A206E65707265736E612E204C65767911 +:105BD00020707265646E6920626F64206D6F63204F +:105BE0007670726564752E0058595A2063616C692D +:105BF00062726174696F6E20636F6D70726F6D6930 +:105C00007365642E204C6566742066726F6E742016 +:105C100063616C6962726174696F6E20706F696E26 +:105C200074206E6F7420726561636861626C652EAA +:105C30000058595A206B616C696272617469652001 +:105C40006765636F6D70726F6D697474656572649A +:105C50002E20566F6F727A696A6465206B616C6979 +:105C600062726174696570756E74656E206E6965C7 +:105C7000742062657265696B626161722E005859A9 +:105C80005A2D4B616C696272696572756E67207519 +:105C90006E67656E61752E20566F72646572652041 +:105CA0004B616C69627269657270756E6B746520A8 +:105CB0006E69636874206572726569636862617297 +:105CC0002E004B616C6962722E2058595A206E6901 +:105CD00065646F6B6C61646E612E2050727A6564CE +:105CE0006E69652070756E6B7479206B616C69628A +:105CF000722E205A627974207779732E20646F2077 +:105D000070727A6F64752E0043616C696272617A99 +:105D1000696F6E2058595A20636F6D70726F6D6590 +:105D2000746964612E2050756E746F2064656C61B7 +:105D30006E7465726F73206E6F20616C63616E7A32 +:105D400061626C65732E0043616C696272617A698D +:105D50006F6E652058595A20636F6D70726F6D6554 +:105D60007373612E2050756E746920616E74657254 +:105D7000696F7269206E6F6E207261676769756EF8 +:105D8000676962696C692E004B616C69627261635C +:105D9000652058595A206E65707265736E612E20A9 +:105DA000507265646E69206B616C69627261636ECA +:105DB0006920626F6479206D6F632076707265640C +:105DC000752E0058595A2063616C6962726174695A +:105DD0006F6E20636F6D70726F6D697365642E20D6 +:105DE00046726F6E742063616C6962726174696F70 +:105DF0006E20706F696E7473206E6F7420726561AF +:105E0000636861626C652E0058595A206B616C6939 +:105E1000627261746965206F6B2E20582F592D6155 +:105E20007373656E207A696A6E2069657473207376 +:105E300063686565662E2053636865656668656995 +:105E40006420776F726474206175746F6D6174691A +:105E5000736368206765636F7272696765657264F2 +:105E60002E20476F65642067656461616E2100586C +:105E7000595A2D4B616C696272696572756E672043 +:105E80006F6B2E20582F592D41636873656E2073F8 +:105E9000696E6420657477617320736368696566F1 +:105EA0002E20536368696566686569742077697236 +:105EB00064206175746F6D617469736368206B6FC2 +:105EC00072726967696572742E2047757420676500 +:105ED0006D6163687421004B616C69627261636A11 +:105EE000612058595A207072617769646C6F7761CC +:105EF0002E204F73696520582F59206C656B6B6F8E +:105F000020736B6F736E652E20446F627261207216 +:105F10006F626F7461210043616C696272616369D1 +:105F20006F6E2058595A20636F7272656374612EC8 +:105F3000204C6F7320656A65732058202F205920EC +:105F4000657374616E206C69676572616D656E74EE +:105F50006520696E636C696E61646F732E20427593 +:105F6000656E2074726162616A6F210043616C69C1 +:105F70006272617A696F6E2058595A20636F72722B +:105F8000657474612E204173736920582F59206CF9 +:105F900065676765726D656E74652073746F727482 +:105FA000692E2042656E20666174746F21004B611A +:105FB0006C6962726163652058595A207620706F4F +:105FC0007261646B752E20582F59206F7379206D84 +:105FD00069726E65207A6B6F73656E652E20446FF3 +:105FE000627261207072616365210058595A2063A2 +:105FF000616C6962726174696F6E20616C6C207291 +:10600000696768742E20582F592061786573206164 +:10601000726520736C696768746C7920736B65773F +:1060200065642E20476F6F64206A6F6221005859A3 +:106030005A206B616C69627261746965206F6B2EA6 +:1060400020582F592D617373656E207A696A6E200E +:106050006865656C207363686565662E20536368A8 +:106060006565666865696420776F72647420617520 +:10607000746F6D617469736368206765636F7272B2 +:106080006967656572642E0058595A2D4B616C69B9 +:106090006272696572756E67206F6B2E20582F597A +:1060A0002D41636873656E2073696E642073656843 +:1060B00072207363686965662E205363686965663C +:1060C000686569742077697264206175746F6D61A9 +:1060D0007469736368206B6F727269676965727443 +:1060E0002E004B616C69627261636A612058595A73 +:1060F000207072617769646C6F77612E20536B6FCB +:1061000073792062656461206175746F6D61747963 +:10611000637A6E6965207779726F776E616E65203C +:1061200070727A79206472756B752E0043616C69A8 +:1061300062726163696F6E2058595A20636F727280 +:10614000656374612E204C6120696E636C696E61B9 +:1061500063696F6E20736520636F72726567697221 +:1061600061206175746F6D61746963616D656E74D2 +:10617000652E0043616C696272617A696F6E2058A6 +:10618000595A20636F7272657474612E204C6120BD +:10619000646973746F7273696F6E6520766572726D +:1061A0006127206175746F6D61746963616D656EDF +:1061B000746520636F6D70656E736174612E004B42 +:1061C000616C6962726163652058595A207620704B +:1061D0006F7261646B752E205A6B6F73656E6920E8 +:1061E00062756465206175746F6D617469636B7944 +:1061F000207679726F766E616E6F2070726920748E +:1062000069736B752E0058595A2063616C6962720C +:106210006174696F6E20616C6C2072696768742E9E +:1062200020536B65772077696C6C20626520636F03 +:1062300072726563746564206175746F6D617469F1 +:1062400063616C6C792E0058595A206B616C6962DD +:106250007261746965206D69736C756B742E204270 +:106260006564206B616C6962726174696570756EDA +:1062700074206E696574206765766F6E64656E2E36 +:106280000058595A2D4B616C696272696572756E5E +:1062900067206665686C67657363686C6167656EC7 +:1062A0002E20426574742D4B616C6962726965724F +:1062B00070756E6B74206E696368742067656675AF +:1062C0006E64656E2E004B616C6962722E205859A7 +:1062D0005A206E69657564616E612E204B616C6930 +:1062E00062726163796A6E792070756E6B7420706A +:1062F0006F646B6C61646B69206E69657A6E616C4A +:10630000657A696F6E792E0043616C6962726163B0 +:10631000696F6E2058595A2066616C6C6164612EF9 +:106320002050756E746F732064652063616C6962C0 +:10633000726163696F6E20656E206C612063616DB0 +:1063400061206E6F20656E636F6E747261646F732F +:106350002E0043616C696272617A696F6E652058C4 +:10636000595A2066616C6C6974612E20496C2070EA +:10637000756E746F2064692063616C696272617A02 +:10638000696F6E652073756C206C6574746F206E18 +:106390006F6E20652720737461746F2074726F763E +:1063A00061746F2E004B616C696272616365205885 +:1063B000595A2073656C68616C612E204B616C6961 +:1063C000627261636E6920626F6420706F646C6FCB +:1063D0007A6B79206E656E616C657A656E2E0058F9 +:1063E000595A2063616C6962726174696F6E2066CC +:1063F00061696C65642E204265642063616C69622A +:10640000726174696F6E20706F696E74207761734A +:10641000206E6F7420666F756E642E0058595A2076 +:106420006B616C69627261746965206F6B2E2058B4 +:106430002F592D617373656E20737461616E2070C6 +:10644000657270656E646963756C6169722E204750 +:106450006566656C69636974656572642100585985 +:106460005A2D4B616C696272696572756E67206F37 +:106470006B2E20582F592D41636873656E20736908 +:106480006E642073656E6B7265636874207A7565DF +:10649000696E616E6465722E20476C7565636B77FB +:1064A000756E73636821004B616C69627261636A27 +:1064B000612058595A206F6B2E204F736965205800 +:1064C0002F592073612070726F73746F7061646CE8 +:1064D000652E2047726174756C61636A65210043A3 +:1064E000616C6962726163696F6E2058595A206FDE +:1064F0006B2E20456A657320582F59207065727085 +:10650000656E646963756C617265732E2046656C97 +:10651000696369746163696F6E6573210043616CBF +:10652000696272617A696F6E652058595A204F4BC3 +:106530002E20476C69206173736920582F5920738E +:106540006F6E6F2070657270656E6469636F6C61E9 +:1065500072692E20436F6D706C696D656E74692170 +:10656000004B616C6962726163652058595A2076EC +:1065700020706F7261646B752E20582F59206F73D5 +:1065800079206A736F75206B6F6C6D652E20477272 +:106590006174756C756A69210058595A2063616C81 +:1065A0006962726174696F6E206F6B2E20582F596B +:1065B0002061786573206172652070657270656E08 +:1065C000646963756C61722E20436F6E67726174CB +:1065D000756C6174696F6E73210058595A206B6134 +:1065E0006C69627261746965206D69736C756B7436 +:1065F0002E2052616164706C656567206465206857 +:10660000616E646C656964696E672E0058595A2D15 +:106610004B616C696272696572756E672066656848 +:106620006C67657363686C6167656E2E2042697480 +:106630007465207363686175656E205369652069B0 +:106640006E206461732048616E64627563682E0019 +:106650004B616C69627261636A612058595A206E9D +:106660006965706F776965647A696F6E612E205312 +:1066700070726177647A6963207720696E737472CF +:10668000756B636A692E0043616C6962726163694C +:106690006F6E2058595A2066616C6C6164612E20BF +:1066A000436F6E73756C74617220656C206D616EE2 +:1066B00075616C20706F72206661766F722E004378 +:1066C000616C696272617A696F6E652058595A20EF +:1066D00066616C6C6974612E205369207072656705 +:1066E0006120646920636F6E73756C7461726520DC +:1066F000696C206D616E75616C652E004B616C6913 +:1067000062726163652058595A2073656C68616CC8 +:10671000612E204E61686C65646E65746520646FDF +:10672000206D616E75616C752E0058595A20636139 +:106730006C6962726174696F6E206661696C656410 +:106740002E20506C6561736520636F6E73756C7479 +:1067500020746865206D616E75616C2E0058595A01 +:10676000206B616C69627261746965206D69736C1C +:10677000756B742E204C696E6B73766F6F72206B25 +:10678000616C6962726174696570756E74206E699E +:1067900065742062657265696B626161722E005872 +:1067A000595A2D4B616C696272696572756E67200A +:1067B0006665686C67657363686C6167656E2E20DB +:1067C0004C696E6B657220766F6465726572204BE2 +:1067D000616C69627269657270756E6B74206E6946 +:1067E00063687420657272656963686261722E0005 +:1067F0004B616C6962722E2058595A206E6965751A +:1068000064616E612E204C6577792070727A6564C0 +:106810006E692070756E6B74207A62797420646F73 +:106820002070727A6F64752E205779726F776E615F +:1068300063206472756B61726B652E0043616C69D5 +:1068400062726163696F6E2058595A2066616C6C80 +:1068500061642E2050756E746F2064656C616E7477 +:1068600065726F20697A7175696572646F206E6FE9 +:1068700020616C63616E7A61626C652E0043616CAD +:10688000696272617A696F6E652058595A20666133 +:106890006C6C6974612E2050756E746F20616E741B +:1068A0006572696F72652073696E697374726F20A7 +:1068B0006E6F6E207261676769756E676962696C79 +:1068C000652E004B616C6962726163652058595A8C +:1068D0002073656C68616C612E204C657679207040 +:1068E0007265646E6920626F64206D6F63207670DC +:1068F000726564752E2053726F766E656A746520BA +:106900007469736B61726E752E0058595A206361F9 +:106910006C6962726174696F6E206661696C65642E +:106920002E204C6566742066726F6E742063616CF5 +:106930006962726174696F6E20706F696E74206E27 +:106940006F7420726561636861626C652E005859CE +:106950005A206B616C69627261746965206D69733C +:106960006C756B742E20566F6F727A696A6465203D +:106970006B616C6962726174696570756E74656E65 +:10698000206E6965742062657265696B626161720F +:106990002E0058595A2D4B616C6962726965727587 +:1069A0006E67206665686C67657363686C616765B0 +:1069B0006E2E20566F7264657265204B616C696241 +:1069C0007269657270756E6B7465206E6963687448 +:1069D00020657272656963686261722E004B616C3A +:1069E0006962722E2058595A206E69657564616E0D +:1069F000612E2050727A65642E2070756E6B7479EA +:106A0000206B616C6962722E207A62797420646FE7 +:106A10002070727A6F64752E205779726F776E616D +:106A200063206472756B61726B652E0043616C69E3 +:106A300062726163696F6E2058595A2066616C6C8E +:106A400061642E2050756E746F2064656C616E7485 +:106A500065726F73206E6F20616C63616E7A616224 +:106A60006C65732E0043616C696272617A696F6E46 +:106A7000652058595A2066616C6C6974612E2050EB +:106A8000756E746920616E746572696F7269206ECB +:106A90006F6E207261676769756E676962696C699C +:106AA0002E004B616C6962726163652058595A20EF +:106AB00073656C68616C612E20507265646E69202C +:106AC0006B616C69627261636E6920626F647920C8 +:106AD0006D6F63207670726564752E2053726F76C9 +:106AE0006E656A7465207469736B61726E752E00D1 +:106AF00058595A2063616C6962726174696F6E20C3 +:106B00006661696C65642E2046726F6E74206361E5 +:106B10006C6962726174696F6E20706F696E7473F4 +:106B2000206E6F7420726561636861626C652E000F +:106B3000426564206E6976656C6C6572696E67206B +:106B40006D69736C756B742E53656E736F72206E06 +:106B50006965742061616E6765736C6F74656E2022 +:106B60006F66206B6162656C20676562726F6B6532 +:106B70006E2E5761636874206F7020726573657440 +:106B800000426574742D4E6976656C6C696572752A +:106B90006E67206665686C67657363686C616765BE +:106BA0006E2E2053656E736F72206E696368742059 +:106BB000616E67657363686C6F7373656E206F6475 +:106BC0006572204B6162656C20646566656B742E2E +:106BD0002057617274652061756620526573657413 +:106BE0002E004B616C69627261636A61206E696537 +:106BF0007564616E612E2053656E736F72206F64D1 +:106C00006C61637A6F6E79206C75622075737A6B34 +:106C10006F647A2E206B6162656C2E20437A656BFF +:106C2000616D206E612072657365742E004E697609 +:106C3000656C6163696F6E2066616C6C6164612E66 +:106C40002053656E736F7220646573636F6E656346 +:106C50007461646F206F206361626C65732064618E +:106C60006E61646F732E204573706572616E646F20 +:106C70002072657365742E004C6976656C6C616D6D +:106C8000656E746F206C6574746F2066616C6C69DE +:106C9000746F2E2053656E736F7265206469736321 +:106CA0006F6E2E206F204361766F2044616E6E2ED2 +:106CB00020496E2061747465736120646920726577 +:106CC0007365742E004B616C696272616365205A52 +:106CD0002073656C68616C612E2053656E736F72F2 +:106CE000206A65206F64706F6A656E79206E6562D8 +:106CF0006F20707265727573656E79206B61626565 +:106D00006C2E2043656B616D206E6120726573652A +:106D1000742E00426564206C6576656C696E672030 +:106D20006661696C65642E2053656E736F722064B2 +:106D30006973636F6E6E6563746564206F72206340 +:106D400061626C652062726F6B656E2E205761699F +:106D500074696E6720666F722072657365742E00A9 +:106D6000426564206E6976656C6C6572696E672039 +:106D70006D69736C756B742E2053656E736F722022 +:106D8000776173206E6965742067656163746976E5 +:106D9000656572642E205675696C206F70206E6F69 +:106DA0007A7A6C653F205761636874206F70207237 +:106DB000657365742E00426574742D4E6976656C3A +:106DC0006C696572756E67206665686C676573636C +:106DD000686C6167656E2E2053656E736F722077E5 +:106DE00075726465206E6963687420617573676588 +:106DF0006C6F6573742E205363686D75747A696760 +:106E0000652044756573653F205761727465206124 +:106E100075662052657365742E004B616C696272F1 +:106E200061636A61206E69657564616E612E2053CD +:106E3000656E736F72206E696520646F746B6E612E +:106E40006C2E205A616E6965637A79737A2E20649C +:106E500079737A613F20437A656B616D206E6120A2 +:106E600072657365742E004E6976656C6163696F37 +:106E70006E2066616C6C6164612E2053656E736F69 +:106E800072206E6F2066756E63696F6E612E20458D +:106E900073636F6D62726F7320656E20426F7175E0 +:106EA000692E3F204573706572616E646F20726554 +:106EB0007365742E004C6976656C6C616D656E74DB +:106EC0006F206C6574746F2066616C6C69746F2ED2 +:106ED0004E6F5269737053656E736F722052657393 +:106EE00069647569207375207567656C6C6F3F20E8 +:106EF000496E2061747465736120646920726573E2 +:106F000065742E004B616C696272616365205A2062 +:106F100073656C68616C612E2053656E736F7220AF +:106F20006E657365706E756C2E205A6E656369733D +:106F300074656E6120747279736B613F2043656B79 +:106F4000616D206E612072657365742E0042656408 +:106F5000206C6576656C696E67206661696C656436 +:106F60002E2053656E736F72206469646E74207492 +:106F70007269676765722E20446562726973206F5B +:106F80006E206E6F7A7A6C653F2057616974696E06 +:106F90006720666F722072657365742E00426564A7 +:106FA000206E6976656C6C6572696E67206D6973B9 +:106FB0006C756B742E2045656E2073656E736F72F1 +:106FC00020686565667420746520686F6F67206748 +:106FD0006574726967676572642E205761636874AF +:106FE000206F702072657365742E00426574742D75 +:106FF0004E6976656C6C696572756E67206665684A +:107000006C67657363686C6167656E2E2053656E8F +:10701000736F72207775726465207A7520686F636C +:10702000682061757367656C6F6573742E20576196 +:10703000727465206175662052657365742E004B0D +:10704000616C69627261636A61205A206E6965755C +:1070500064616E612E2053656E736F7220646F746D +:107060006B2E207A61207779736F6B6F2E20437AB5 +:10707000656B616D206E612072657365742E004EC4 +:107080006976656C6163696F6E2066616C6C6164C2 +:10709000612E2053656E736F722066756E63696F23 +:1070A0006E612064656D61736961646F2074656DE4 +:1070B0007072616E6F2E204573706572616E646FC1 +:1070C0002072657365742E004C6976656C6C616D19 +:1070D000656E746F206C6574746F2066616C6C698A +:1070E000746F2E526973702073656E736F726520B2 +:1070F00074726F70706F2070726573746F496E2058 +:107100006174746573612064692072657365742E9F +:10711000004B616C696272616365205A2073656C13 +:1071200068616C612E2053656E736F722073657099 +:107130006E756C207072696C6973207679736F6BF1 +:107140006F2E2043656B616D206E612072657365E3 +:10715000742E00426564206C6576656C696E6720EC +:107160006661696C65642E2053656E736F7220745E +:10717000726967676572656420746F6F20686967FC +:10718000682E2057616974696E6720666F7220727D +:10719000657365742E00426564206F707761726D4F +:1071A000656E0042657474206175666865697A650C +:1071B0006E0047727A616E69652073746F6C696BDB +:1071C000612E2E0043616C656E74616E646F2042A7 +:1071D0006173650052697363616C642E206C657421 +:1071E000746F005A6168726976616E6920626564C5 +:1071F000004265642048656174696E670042656499 +:10720000204F4B2E0042657474204F4B0053746F17 +:107210006C696B204F4B2E00426173652070726564 +:107220007061726164610050696174746F2066619D +:1072300074746F2E00426564204F4B2E00426564CB +:1072400020646F6E6500526563687473202020208F +:107250005B756D5D00526563687473202020205B50 +:10726000756D5D005720707261776F205B756D5D85 +:1072700000446572656368612020205B756D5D0068 +:10728000446573747261202020205B756D5D00562B +:10729000707261766F205B756D5D0052696768740E +:1072A00020736964655B756D5D005A757275656301 +:1072B0006B7365747A656E00526573657400416323 +:1072C00068746572202020205B756D5D0048696ED2 +:1072D00074656E202020205B756D5D00446F207406 +:1072E000796C7520205B756D5D004174726173204F +:1072F000202020205B756D5D00526574726F202028 +:107300002020205B756D5D00567A61647520205BDE +:10731000756D5D00526561722073696465205B75EF +:107320006D5D00426564206A75697374004265741E +:1073300074206C6576656C206B6F7272656B74007F +:107340004B6F72656B746120706F646B6C61646B02 +:107350006900436F72722E206465206C6120636146 +:107360006D6100436F7272657A2E206C69762E6CA7 +:107370006574746F004B6F72656B636520706F642A +:107380006C6F7A6B7900426564206C6576656C2061 +:10739000636F7272656374004C696E6B732020209A +:1073A00020205B756D5D004C696E6B732020202082 +:1073B000205B756D5D0057206C65776F20205B75D5 +:1073C0006D5D00497A71756965726461205B756DE8 +:1073D0005D0053696E697374726120205B756D5D29 +:1073E00000566C65766F20205B756D5D004C6566A0 +:1073F000742073696465205B756D5D00566F6F72F4 +:107400007275697420205B756D5D00566F726E65D4 +:1074100020202020205B756D5D00446F2070727A03 +:107420006F6475205B756D5D004164656C616E74A1 +:107430006520205B756D5D0046726F6E746520205F +:1074400020205B756D5D00567072656475205B75FC +:107450006D5D0046726F6E7420736964655B756D57 +:107460005D00426574740053746F6C696B00426117 +:107470007365004C6574746F004265640041667307 +:1074800074616E642074757373656E207469702006 +:1074900076616E20686574207475697420656E204D +:1074A000686574207072696E74206F707065727692 +:1074B0006C616B206E6F67206E69657420766173F6 +:1074C0007467657374656C642E20566F6C672064F6 +:1074D000652068616E646C656964696E672C20461E +:1074E000697273742073746570732C207365637490 +:1074F0006965204669727374206C617965722063D6 +:10750000616C6962726174696F6E2E0044657220ED +:1075100041627374616E64207A7769736368656E23 +:107520002064657220537069747A652064657220E6 +:10753000447565736520756E6420646572204472BD +:1075400075636B6F626572666C6165636865202F39 +:10755000204265747420697374206E6F6368206EB6 +:10756000696368742065696E67657374656C6C74B3 +:107570002E20426974746520666F6C67656E2053B7 +:1075800069652064656D2048616E64627563682C6E +:107590002046697273742073746570732C20416285 +:1075A0007363686E697474204669727374206C61C9 +:1075B0007965722063616C6962726174696F6E2EA5 +:1075C000004F646C65676C6F7363206479737A79BC +:1075D000206F6420706F646B6C61646B69206E69EE +:1075E00065206A65737420736B616C6962726F7772 +:1075F000616E612E20506F73746570756A207A67B2 +:107600006F646E6965207A20696E737472756B633E +:107610006A6120726F7A647A69616C205A61637A58 +:10762000796E616D792C20706F64726F7A647A69FB +:10763000616C204B616C69627261636A6120706980 +:10764000657277737A656A20776172737477792EC1 +:107650000044697374616E63696120656E7472655C +:10766000206C612070756E7461206465206C6120EF +:10767000626F7175696C6C612079206C6120737523 +:107680007065726669636965206465206C6120635A +:10769000616D61206E6F2066696A61646120617549 +:1076A0006E2E20506F72206661766F72207369674C +:1076B0006120656C206D616E75616C2C206361705A +:1076C0006974756C6F204669727374207374657089 +:1076D000732C2073656363696F6E204669727374DF +:1076E000206C617965722063616C69627261746992 +:1076F0006F6E2E0044697374616E7A6120747261DA +:10770000206C612070756E74612064656C6C2775E7 +:1077100067656C6C6F2065206C6120737570657295 +:1077200066696369652064656C206C6574746F209C +:107730006E6F6E20616E636F726120696D706F7322 +:1077400074612E205369207072656761206469201E +:107750007365677569726520696C206D616E75610E +:107760006C652C2063617069746F6C6F2046697260 +:1077700073742073746570732C2073657A696F6EEF +:1077800065204669727374206C617965722063614B +:107790006C6962726174696F6E2E004E656E69204D +:1077A0007A6B616C6962726F76616E6120767A6461 +:1077B000616C656E6F737420747279736B79206F6E +:1077C00064207469736B6F766520706F646C6F7A78 +:1077D0006B792E20506F73747570756A74652070A4 +:1077E000726F73696D20706F646C65206D616E756A +:1077F000616C752C206B617069746F6C61205A61CB +:1078000063696E616D652C206F6473746176656366 +:10781000204E6173746176656E69207072766E6950 +:10782000207672737476792E0044697374616E6386 +:1078300065206265747765656E20746970206F6677 +:1078400020746865206E6F7A7A6C6520616E6420A2 +:107850007468652062656420737572666163652073 +:10786000686173206E6F74206265656E2073657445 +:10787000207965742E20506C6561736520666F6C8D +:107880006C6F7720746865206D616E75616C2C205B +:1078900063686170746572204669727374207374D2 +:1078A0006570732C2073656374696F6E204669720E +:1078B0007374206C617965722063616C69627261B6 +:1078C00074696F6E2E004C697665205A2061616E76 +:1078D00070617373656E004C697665205A20656926 +:1078E0006E7374656C6C656E00446F7374726F6A4E +:1078F000656E6965206F7379205A004D6963726FF8 +:107900007061736F20456A65205A00436F6D706522 +:107910006E73617A696F6E65205A00446F6C6164A2 +:10792000656E69206F7379205A004C697665206115 +:10793000646A757374205A0041646A757374696E61 +:1079400067205A005374617274706F73697469654B +:10795000005374617274706F736974696F6E004C58 +:107960006C6576617220616C206F726967656E006C +:1079700054726F7661206F726967696E6500417538 +:10798000746F20686F6D6500207C20417574686F8E +:10799000723A2000416C6C6500416C6C6500577355 +:1079A0007A7973746B6F00546F646F7300547574DD +:1079B00074690056736500416C6C004163746976AC +:1079C000652045787472756465723A2000B410A41D +:1079D000108F107C10681053103E10C810D010D8B3 +:1079E00010E110E91005110111FE10FB10F710F461 +:1079F00010F1100911111119117111671158114C61 +:107A0000114111351129118F1267122F12FD11CE5C +:107A100011A4117D11FF12FF12ED12DB12FF12C72C +:107A200012B21281136D135A134713361323131016 +:107A300013FB13EA13D813C713B813A513931379C1 +:107A40001467145514421431141E140B148C14DED4 +:107A500014D814D114C914C014B0149F14081508F4 +:107A60001508150815F614E31408153E153E153EC5 +:107A7000153E152C151A153E15B415A4159415842C +:107A800015731561154F152F161E160D16FC15EAE8 +:107A900015D815C615AB1770173517F916C4167E0D +:107AA00016411662184D18381823180E18F917E9E0 +:107AB00017BA18B218A6189A188E1883187718DCF7 +:107AC00018D418DC18CC18C618DC18DC1840193289 +:107AD00019231911190219F218E418721972196789 +:107AE000196019721955194B197C19F319E519D335 +:107AF00019C419B319A11990196D1A5B1A4C1A3BC4 +:107B00001A281A171A061AD71AC91AB81AA81A99C7 +:107B10001A8C1A7E1A431B361B251B171B0A1BF7D0 +:107B20001AE51AA21B951B891B7B1B6E1B611B543C +:107B30001BAF1B181C0F1C061CFC1BF31BE31BDAE2 +:107B40001B1E1C881C761C641C521C401C2E1C888E +:107B50001CF41CE21CD01CBE1CAC1C9A1CF41C6B3C +:107B60001D5A1D4A1D381D281D141D061DE61DD455 +:107B70001DC01DAE1D9A1D8A1D7A1D421E381E2B6A +:107B80001E1D1E121E041EF71DAF1EA01E8F1E7D81 +:107B90001E6D1E5A1E4B1EFF1EFF1EF01EE01EFF16 +:107BA0001ECE1EBC1E621F531F471F3C1F2F1F21CE +:107BB0001F111F971F971F8B1F971F971F7D1F71E7 +:107BC0001F0920FA1FED1FDB1FC91FB51FA41F25AA +:107BD0002025201E2025201720252025204F204F3E +:107BE000203D202B204F204F204F2096208E208993 +:107BF0002079206F2069206120ED20E320D720C468 +:107C000020B820AC209F20512140212B2117210694 +:107C100021FA205121C621B421A321922180216C77 +:107C2000215A2142222D2218220722F321E321D8B2 +:107C3000219922992287227722992263225322F7BF +:107C400022F722E522D322F722BF22AA222D232DBA +:107C5000231F2313232D2307232D234B234B2341A2 +:107C60002336234B234B234B23C323AE2399238853 +:107C70002373236123532341242F241F240D24FB2A +:107C800023E823D423C024AE249E248C247A2467A2 +:107C90002453243F252D251D250B25F924E624D228 +:107CA00024BC25AA259A258A2578256525512540B5 +:107CB000262E261B260926F725E225CE25BA26A83C +:107CC00026992689267726632652262C271A270CE2 +:107CD000270227F026DE26CC266B276B275C274C55 +:107CE000276B273E276B27AE27AE27A5279C27AEFD +:107CF000278A277827C027D227E527442836282B2C +:107D0000281A280D28FB27ED27512863287728E318 +:107D100028D528C928B728A92895288728F128FE1A +:107D2000280C291A2930293B29B929A82996298301 +:107D3000297229612951292F2A202A102AFB29EA90 +:107D400029D829C829912A862A762A652A592A4EAD +:107D50002A3E2A9E2AC92AB82AC92AC92AA72AC974 +:107D60002AC92AFD2AEC2AFD2AFD2ADB2AFD2AFD42 +:107D70002A252B1A2B252B252B0F2B252B252B9238 +:107D80002B822B722B5F2B4F2B402B312B032CF58F +:107D90002BE52BD12BC22BB02B9F2B332C332C3329 +:107DA0002C332C332C232C112CB62CA12C8D2C7D78 +:107DB0002C6B2C582C482C362D222D122DFD2CEE00 +:107DC0002CDD2CC92C8C2D822D762D6A2D622D5800 +:107DD0002D4A2D942DEA2DDB2DD32DC12DB32DA6AB +:107DE0002D9C2DF62D6B2E5B2E4C2E3B2E2D2E1CFE +:107DF0002E0D2E9B2F752F462F142FE92EAE2E7988 +:107E00002E243010300730F32FEA2FDC2FCE2FAE88 +:107E1000309C308A30773063304E30393021311326 +:107E2000310231F230E330D230C3304D314D314D7B +:107E3000314D314D313F313131853185318531859C +:107E400031853170315B31ED31DD31CE31BD31AF56 +:107E500031A9319A316B35E4345634AA331E338B51 +:107E600032F9310136043648364836363627364838 +:107E70003617360836A83699368E367C366E365F1B +:107E8000365136DB36D436CD36C436BE36B836B388 +:107E9000364F373C372A3716370737F436E236D0B5 +:107EA00037BF37AF379C378A3778376337F037EDCE +:107EB00037F037F037E937E437E037653850384086 +:107EC000382B3816380138F33736391B39F338D8A0 +:107ED00038BB3899387538923987397F3977396B9B +:107EE0003962395639D539CA39C239BA39AE39A5A4 +:107EF000399939183A0D3A053AFD39F139E839DC42 +:107F000039373A373A273A1F3A373A373A373AAA9F +:107F10003C543CE83B853B243BA73A403A7D3F2517 +:107F20003FB73E523EEF3D703D093D264019400EA1 +:107F3000400340FA3FED3FDE3F4240424030404286 +:107F4000404240424042409A409040834077406CDB +:107F5000405F405440CA40C540BF40B940B440AD06 +:107F600040A640F441CB418F4163412F410141D0B4 +:107F700040734264425442454239422E4224427880 +:107F8000428F42A642BD42D642B343CA43E1434078 +:107F9000442D441E4411440544F8434044B044A0D9 +:107FA000448F447D446B445C444D44264513450254 +:107FB00045ED44DC44CD44BE448D457F456E455E71 +:107FC000454E4543453745F145E445D345C145B4A4 +:107FD00045A5459B4534462C4623461B4614460C76 +:107FE0004601467A467A4671465C467A464E463C9B +:107FF0004683460247F246DF46CA46B846A646943E +:1080000046364731472B4725472047194712472F08 +:10801000480B48E447C047934769473C479B488F14 +:10802000488248754869485C484F480249F548E528 +:1080300048D648C848B848A9485B494E49444939D8 +:10804000492E4920491349CA49BC49AA4995498939 +:1080500049774967491F4A154A044AF649EB49E1FD +:1080600049D849274AE44C714CFF4B8B4B164B9D2A +:108070004A364A7A4D734D6C4D664D5D4D524D7A80 +:108080004DEC4DD94DC84DB64DA64D934D7F4D2469 +:108090004E1F4E194E134E0E4E074E004EEB4ECC59 +:1080A0004EA74E844E5D4E434E2A4E524F494F3B93 +:1080B0004F2E4F244F164F0B4F5D4F6F4FF94FE927 +:1080C0004FD44FBA4FA34F934F824F6F505E504ED5 +:1080D000503C502A5019500950D750C850B950A997 +:1080E000509A508C507F50E15009510951FF50F681 +:1080F00050EC5009510951125122519851C251EC82 +:10810000510A523D525C527652B852B152A952B8FD +:1081100052A3529B529552BF52CD52D252DC5218AA +:108120005318530953FF521853F552EB5279536ABF +:108130005359534A5339532D532153C953BA53B248 +:1081400053AB539C5392538A53D1532D5422541200 +:1081500054FF53F353E753DC537954705466545E21 +:1081600054535449544054F655AA5575553D55FE3F +:1081700054BA5482540F57E956C2569A56765654FA +:108180005630563657B357A1578C577B57695754BB +:10819000574657275818580758F757EB57D657C41C +:1081A0005784587A586D585D58535844583758F783 +:1081B00058E558D658C458B458A3589258555949F8 +:1081C000593F5936592A5919590859AE599C59AE2F +:1081D00059AE598A5978596659155A075AFB59EFB9 +:1081E00059E059CF59C059235A345AE85BB45B6AF5 +:1081F0005B235BDA5A8F5A445AC35D885D475D083A +:108200005DC25C7E5C315CEB5FAE5F6C5F175FD71D +:108210005E6F5E085E0662BF6173612C61E260881A +:10822000602E60DF63A56352630863C662816247A4 +:1082300062996561651D65DF64A7645E641C642ADC +:1082400067FC66BF66876650660C66DA650A69C3B6 +:10825000687D683C68F0679F675D67F06AA26A6541 +:108260006A2C6ADD6992694E69136DC56C786C2D54 +:108270006CE26B816B306B4D6F046FB56E676E1A7D +:108280006EB66D606D53711171C8707F703F70EB89 +:108290006F9D6FF171E371D471C471B271A3719666 +:1082A000713D723572277218720D720572FD719BE5 +:1082B000728F7280727172647255724672B872B83F +:1082C00072B872B872B872AA72B87214730873F97D +:1082D00072EA72DC72CD72BE72867375736373520A +:1082E0007340732D732373ED73E173D273C373B64D +:1082F00073A773987353744774387429741A740B82 +:1083000074FC737974797473746E746774627479BD +:108310007429789B77F4765176C1750C757D742A33 +:10832000791B790B79FB78E978D778C67838797E2C +:10833000797E7970795F797E79517944798879B7D6 +:1083400079B379AD79A7799E7999799479BB794593 +:108350007872656D65207370616E206F6620746839 +:1083600065205A2076616C7565732100626F7474A4 +:108370006F6D00746F700000506F696E74206865D7 +:108380006967687420746F6F20736D616C6C3A203C +:10839000007269676874006C6566740000506F69EC +:1083A0006E7420776964746820746F6F20736D61D8 +:1083B0006C6C3A2000002C20003A200046696E6167 +:1083C0006C2063616C63756C6174656420626564C4 +:1083D00020706F696E74200000793A000044697360 +:1083E00074616E63652066726F6D206D696E3A0010 +:1083F0000043616C63756C6174696F6E206F6620F9 +:10840000746865206D616368696E6520736B65775C +:1084100020616E64206F6666736574206661696CA6 +:1084200065642E00002C20003A200046696E616CC5 +:10843000206D656173757265642062656420706F7C +:10844000696E74200000206661696C65642E204CA2 +:108450006F776572696E67207A20746F20002C2018 +:10846000697465726174696F6E2000496D70726F16 +:1084700076696E672062656420706F696E74200093 +:10848000002C207A002C20697465726174696F6E0B +:108490002000496D70726F76696E67206265642096 +:1084A000706F696E742000006C6F7765722074685D +:1084B000616E20596D696E2E205920636F6F726452 +:1084C000696E61746520636C616D70696E67207799 +:1084D000617320757365642E0043616C696272611B +:1084E00074696F6E20706F696E742000417420593A +:1084F0005F4D494E5F504F53004174205930004941 +:108500006D70726F76696E6720626564206F666653 +:1085100073657420616E6420736B657700002C2096 +:10852000002C200020004D65617375726564200089 +:10853000002C200041646A757374656420706F7349 +:108540006974696F6E3A2000002C20683A002C2074 +:10855000646D61783A005061727469616C20706F6B +:10856000696E7420657374696D61746564207261ED +:108570006469757320746F6F20736D616C6C3A2041 +:1085800000005061727469616C20706F696E7420B4 +:108590006469616D6574657220746F6F20736D61BD +:1085A0006C6C3A2000746F70007269676874006CBC +:1085B000656674007269676874006C65667400743F +:1085C0006F70006661696C6564202D206E6F742089 +:1085D000666F756E640A007269676874006C656620 +:1085E0007400002C2000496E697469616C20706F02 +:1085F000736974696F6E3A200066696E6420626503 +:108600006420696E64756374696F6E2073656E7340 +:108610006F7220706F696E74207A005920736561E3 +:10862000726368696E672072616469757320686936 +:1086300067686572207468616E20585F4D41582EDE +:1086400020436C616D70696E672077617320646F81 +:108650006E652E005920736561726368696E6720CC +:10866000726164697573206C6F77657220746861DC +:108670006E20595F4D494E2E20436C616D70696EBE +:10868000672077617320646F6E652E0058207365D4 +:1086900061726368696E67207261646975732068CE +:1086A0006967686572207468616E20585F4D415833 +:1086B0002E20436C616D70696E6720776173206452 +:1086C0006F6E652E005820736561726368696E670E +:1086D00020726164697573206C6F776572207468AD +:1086E000616E20585F4D494E2E20436C616D70695C +:1086F0006E672077617320646F6E652E005361761C +:10870000696E67206265642063616C69627261747E +:10871000696F6E20766563746F727320746F204585 +:108720004550524F4D0050657270656E64696375B7 +:108730006C6172697479005A65726F20706F696E2E +:108740007420636F7272656374696F6E3A005920AA +:10875000766563746F72206C656E6774683A005852 +:1087600020766563746F72206C656E6774683A007A +:10877000203C20005741524E494E473A2046726FE6 +:108780006E7420706F696E74206E6F7420726561F4 +:10879000636861626C652E205920636F6F72646933 +:1087A0006E6174653A000070745B315D3A007074FC +:1087B0005B305D3A00004D656173757265643A0027 +:1087C0000063757272656E745F706F736974696F40 +:1087D0006E5B5A5F415849535D3A0000637572728F +:1087E000656E745F706F736974696F6E5B595F411A +:1087F0005849535D3A000063757272656E745F701C +:108800006F736974696F6E5B585F415849535D3A85 +:1088100000417420592D3400417420593000006308 +:108820006E74725B315D3A0000636E74725B305D32 +:108830003A00007665635F795B315D3A00007665EA +:10884000635F795B305D3A00007665635F785B312A +:108850005D3A00007665635F785B305D3A0056658F +:1088600063746F72733A2000497465726174696F42 +:108870006E3A2000496E76616C69642062656420FE +:10888000636F7272656374696F6E206D6174726973 +:10889000782E20526573657474696E6720746F203A +:1088A0006964656E746974792E00496E76616C69CD +:1088B000642062656420636F7272656374696F6EB1 +:1088C000206D61747269782E20582F592061786567 +:1088D0007320617265206661722066726F6D20621E +:1088E00065696E672070657270656E646963756C2A +:1088F00061722E00496E76616C6964206265642045 +:10890000636F7272656374696F6E206D61747269F2 +:10891000782E205368696674206F7574206F662006 +:1089200072616E67652E005A65726F20706F696E96 +:108930007420636F7272656374696F6E3A00496E7A +:1089400076616C69642062656420636F727265632E +:1089500074696F6E206D61747269782E204C656E3B +:10896000677468206F662074686520592076656397 +:10897000746F72206F7574206F662072616E676508 +:108980002E005920766563746F72206C656E677473 +:10899000683A00496E76616C6964206265642063A0 +:1089A0006F7272656374696F6E206D61747269783D +:1089B0002E204C656E677468206F66207468652091 +:1089C0005820766563746F72206F7574206F66200F +:1089D00072616E67652E005820766563746F722031 +:1089E0006C656E6774683A00556E646566696E659D +:1089F000642062656420636F7272656374696F6E70 +:108A0000206D61747269782E00000043616C63759B +:108A10006C617465206F666673657420616E642096 +:108A2000736B65772072657475726E696E672072FC +:108A30006573756C743A000000292C206572726FA2 +:108A4000723A20002C2000293B2074617267657403 +:108A50003A2028002C2000293B206D656173757237 +:108A600065642D636F727265637465643A202800D3 +:108A70002C20006D656173757265643A2028007062 +:108A80006F696E74202300446966666572656E6363 +:108A90006520616674657220636F727265637469C4 +:108AA0006F6E3A2000002C200063656E7465722C96 +:108AB0002061646A75737465643A2000002C20009C +:108AC0005920766563746F722C2061646A757374C3 +:108AD00065643A2000002C20005820766563746F8E +:108AE000722C2061646A75737465643A20000063B7 +:108AF0006E74725B315D3A0000636E74725B305D60 +:108B00003A0046696E616C20636E74722076616C07 +:108B10007565733A0000000077793A0000636E745F +:108B2000725B315D3A00005765696768745F793A36 +:108B3000000077783A0000636E74725B305D3A0033 +:108B4000005765696768745F783A00005665727906 +:108B5000206C6974746C6520736B65772064657430 +:108B600065637465642E204F7274686F676F6E6101 +:108B70006C697A696E672074686520617865732E08 +:108B800000004D61782E206572726F7220657563EA +:108B90006C696469616E3A004D61782E206572726D +:108BA0006F7220593A004D61782E206572726F7293 +:108BB00020583A004D61782E206572726F72733AB8 +:108BC0000000002C206572726F7220593A20002C30 +:108BD000206572726F7220583A20006572726F724F +:108BE0003A200029002C2000293B2074617267651F +:108BF000743A2028002C2000293B20636F72726594 +:108C0000637465643A2028002C20006D65617375DB +:108C10007265643A202800002C206572726F722001 +:108C20003E206D61782E206572726F7220657563CB +:108C30006C696469616E00506F696E74206E6F7448 +:108C4000206F6E20666972737420726F77002C201B +:108C50006572726F722059203E206D61782E2065FA +:108C600072726F722059002C206572726F722058D8 +:108C7000203E206D61782E206572726F7220580040 +:108C80002C2077656967746820593A2000506F6915 +:108C90006E74206F6E20666972737420726F770035 +:108CA0003A00706F696E742023004572726F7220F3 +:108CB000616674657220636F7272656374696F6E4A +:108CC0003A2000002C200063656E746572206E658A +:108CD000772C20696E7665727465643A2000002CEA +:108CE00020005920766563746F72206E65772C20A2 +:108CF000696E7665727465643A2000002C20005815 +:108D000020766563746F72206E65772C20696E76AD +:108D100065727465643A2000002C2000636F7272E3 +:108D2000656374696F6E20616E676C65733A2000CD +:108D3000002C2000636F7272656374656420616E3D +:108D4000676C65733A2000002C2000636F727265B7 +:108D50006374656420782F793A2000002C20002C61 +:108D600020002C20003B20636F7272656374696F72 +:108D70006E20766563746F723A2000697465726163 +:108D800074696F6E3A200000292C206572726F7230 +:108D90003A20002C2000293B207461726765743AE8 +:108DA0002028002C2000206D656173757265643A7F +:108DB000202800706F696E74202300002C2000634F +:108DC000656E7465722C20696E697469616C3A20F5 +:108DD00000002C20005920766563746F722C206986 +:108DE0006E697469616C3A2000002C20005820766E +:108DF0006563746F722C20696E697469616C3A20C6 +:108E00000063616C63756C617465206D6163686992 +:108E10006E6520736B657720616E64206F66667384 +:108E20006574204C53000000E442FCFFFFBF0000CB +:108E300057430000C0420000E442000042430000EB +:108E400040410000C04200004041FCFFFFBF000065 +:108E5000E442FCFFFFBF00005743FCFFFFBF0000E0 +:108E600057430000C0420000E4420000C04200003E +:108E700040410000C0420000404100004243000069 +:108E8000E4420000424300005743000042434530A3 +:108E90003A20005A3A2000593A2000583A20004D12 +:108EA00053312C4D53322050696E730A005A002002 +:108EB0005A3A00590020593A00580020583A0024E4 +:108EC000F4D43050C38E20C2A24017828B7011128E +:108ED0007A910D816CD90AA861E108C758660761CB +:108EE0005143061E4B5D05C145A7041A41110409F3 +:108EF0003D9803713931034036DB0265339102D46A +:108F0000305402802E1D02632CEE01752AC501B07B +:108F100028A001102781018F2564012B244B01E03B +:108F2000223401AC211F018D200D01801FFC008423 +:108F30001EED00971DDF00B81CD200E61BC6002006 +:108F40001BBC00641AB200B219A8000A19A0006A7A +:108F5000189900D117910040178B00B51684003185 +:108F6000167E00B31579003A157300C7146F0058C8 +:108F7000146A00EE1366008813630025135E00C7B1 +:108F8000125B006C12570015125400C11151007091 +:108F9000114F0021114B00D61049008D104700469B +:108FA00010440002104200C00F4000800F3E0042FB +:108FB0000F3C00060F3B00CB0E3800930E37005CD1 +:108FC0000E3500270E3400F30D3200C10D31009034 +:108FD0000D3000600D2E00320D2D00050D2C00D936 +:108FE0000C2B00AE0C2900850C29005C0C270035E9 +:108FF0000C27000E0C2600E80B2400C40B2400A054 +:109000000B23007D0B23005A0B2100390B21001884 +:109010000B2000F80A1F00D90A1E00BB0A1E009D83 +:109020000A1D00800A1D00630A1C00470A1B002C51 +:109030000A1B00110A1A00F7091A00DD091900C4F9 +:10904000091900AB091900920917007B0918006380 +:109050000917004C09160036091600200916000AE7 +:10906000091500F5081500E0081400CC081400B834 +:10907000081400A4081400900813007D0812006B67 +:109080000813005808120046081200340811002383 +:109090000811001208110001081100F0071000E08B +:1090A000071000D0071000C0071000B0070F00A184 +:1090B00007100091070E0083070F0074070F00656B +:1090C000070E0057070E0049070E003B070D002E44 +:1090D000070E0020070D0013070D0006070D00F90D +:1090E000060C00ED060D00E0060C00D4060C00C8CE +:1090F000060C00BC060C00B0060C00A4060B009980 +:10910000060C008D060B0082060B0077060B006C28 +:10911000060B0061060A0057060B004C060A0042C7 +:10912000060A0038060A002E060A0024060A001A5B +:10913000060A001006090007060A00FD050900F4EA +:10914000050900EB050900E2050900D9050900D071 +:10915000050900C7050900BE050900B5050800ADF1 +:10916000050800A50509009C050800940508008C69 +:10917000050800840508007C050800740508006CDB +:10918000050700650508005D050700560508004E47 +:1091900005070047050700400508003805070031AE +:1091A0000507002A050700230507001C0506001611 +:1091B0000507000F0507000805060002050700FB6C +:1091C000040600F5040700EE040600E8040600E2C9 +:1091D000040700DB040600D5040600CF040600C91E +:1091E000040600C3040600BD040600B7040600B16F +:1091F000040500AC040600A6040600A00405009BBC +:1092000004060095040500900406008A0405008504 +:10921000040500800406007A04050075040500704A +:109220000405006B04050066040500610405005C8C +:1092300004050057040500520405004D04050048CC +:10924000040500430405003E0404003A040500350B +:10925000040500300404002C040500270404002346 +:109260000405001E0404001A04040016040500117D +:109270000404000D040400090405000404040000B3 +:10928000040400FC030400F8030400F4030400F0E9 +:10929000030400EC030400E8030400E4030400E01A +:1092A000030400DC030400D8030400D4030400D04A +:1092B000030400CC030400C8030300C50303002417 +:1092C000F404D9201BC40C5C0E9804C4095F026529 +:1092D000077101F405F900FB04B30048048700C1DD +:1092E0000369005803550003034500BE023A008499 +:1092F00002310053022A002902250004022000E462 +:10930000011C00C8011900AF011700980114008466 +:10931000011300710110006101100051010E0043A2 +:10932000010D0036010B002B010B0020010B001575 +:109330000109000C01090003010800FB000800F30B +:10934000000800EB000700E4000600DE000600D87D +:10935000000600D2000600CC000500C7000500C2D0 +:10936000000500BD000400B9000400B5000400B110 +:10937000000400AD000400A9000400A5000300A241 +:109380000003009F0004009B000300980003009569 +:1093900000020093000300900003008D0002008B88 +:1093A00000030088000200860002008400030081A0 +:1093B0000002007F0002007D0002007B00020079B5 +:1093C00000020077000100760002007400020072C3 +:1093D000000100710002006F0002006D0001006CCE +:1093E0000002006A000100690002006700010066D7 +:1093F00000010065000100640002006200010061DC +:10940000000100600001005F0002005D0001005CDF +:109410000001005B0001005A0001005900010058E2 +:1094200000010057000100560001005500010054E2 +:1094300000010053000000530001005200010051E0 +:10944000000100500001004F0001004E0000004EDE +:109450000001004D0001004C0001004B0000004BDA +:109460000001004A000100490001004800000048D6 +:1094700000010047000100460000004600010045D1 +:1094800000000045000100440001004300000043CB +:1094900000010042000000420001004100000041C4 +:1094A000000100400001003F0000003F0001003EBD +:1094B0000000003E0001003D0000003D0001003CB6 +:1094C0000000003C0000003C0001003B0000003BAD +:1094D0000001003A0000003A0001003900000039A4 +:1094E000000100380000003800000038000100379B +:1094F0000000003700010036000000360000003692 +:109500000001003500000035000000350001003486 +:10951000000000340000003400010033000000337C +:109520000000003300010032000000320000003271 +:109530000001003100000031000000310001003066 +:1095400000000030000000300001002F0000002F5C +:109550000000002F0000002F0001002E0000002E50 +:109560000000002E0001002D0000002D0000002D45 +:109570000000002D0001002C0000002C0000002C39 +:109580000000002C0001002B0000002B0000002B2D +:109590000000002B0001002A0000002A0000002A21 +:1095A0000000002A00010029000000290000002915 +:1095B0000000002900000029000100280000002808 +:1095C00000000028000000280000002800010027FB +:1095D00000000027000000270000002700000027EF +:1095E00000010026000000260000002600000026E2 +:1095F00000000026000100250000002500000025D5 +:1096000000000025000000250000002500010024C6 +:1096100000000024000000240000002400000024BA +:1096200000010023000000230000002300000023AD +:10963000000000230000002300000023000100229E +:109640000000002200000022000000220000002292 +:109650000000002200010021000000210000002184 +:109660000000002100000021000000210000002176 +:109670000001002000000020000000200000002069 +:10968000000000200000002000000020000000205A +:109690000001001F0000001F0000001F0000001F4D +:1096A0000000001F0000001F0000001F0001001E3E +:1096B0000000001E0000001E0000001E000000450B +:1096C00072723A204D494E54454D50204245440057 +:1096D00054656D706572617475726520686561743A +:1096E00065642062656420737769746368656420CB +:1096F0006F66662E204D494E54454D502074726958 +:109700006767657265642021004572723A204D4199 +:109710005854454D50204245440054656D70657263 +:109720006174757265206865617465642062656442 +:10973000207377697463686564206F66662E204DB8 +:10974000415854454D50207472696767657265646D +:109750002021004572723A204D494E54454D50002B +:109760003A20457874727564657220737769746302 +:10977000686564206F66662E204D494E54454D50F5 +:109780002074726967676572656420210045727292 +:109790003A204D415854454D50003A204578747256 +:1097A00075646572207377697463686564206F6699 +:1097B000662E204D415854454D502074726967679C +:1097C0006572656420210020484F54454E44205462 +:1097D0004845524D414C2052554E41574159002069 +:1097E0004845415442454420544845524D414C203F +:1097F00052554E4157415900544845524D414C2015 +:1098000052554E4157415900424544205448455213 +:109810004D414C2052554E41574159002054484526 +:10982000524D414C2052554E41574159202820500D +:1098300052454845415420484F54454E4429002044 +:10984000544845524D414C2052554E4157415920A4 +:1098500028205052454845415420484541544245EE +:1098600044290050524548454154204552524F52D8 +:1098700000424544205052454845415420455252EB +:109880004F5200202D20496E76616C696420657806 +:10989000747275646572206E756D62657220210048 +:1098A000504944204175746F74756E652066696E09 +:1098B0006973686564212050757420746865206C34 +:1098C000617374204B702C204B6920616E64204BB7 +:1098D0006420636F6E7374616E74732066726F6D53 +:1098E0002061626F766520696E746F20436F6E66CB +:1098F000696775726174696F6E2E68005049442003 +:109900004175746F74756E65206661696C6564215C +:109910002074696D656F75740020403A006F6B208C +:10992000543A006F6B20423A00504944204175740C +:109930006F74756E65206661696C6564212054657D +:109940006D706572617475726520746F6F206869DF +:10995000676800204B643A2000204B693A200020C1 +:109960004B703A200020436C617373696320504947 +:109970004420002054753A2000204B753A200020E6 +:109980006D61783A2000206D696E3A200020643ABB +:10999000200020626961733A20001000C9021001A2 +:1099A0002C014001220170011801B0010E01F001EB +:1099B00004015002FA00B002F0003003E600D003C8 +:1099C000DC009004D2007005C800A006BE000008AC +:1099D000B400B009AA00D00BA000600E9600601180 +:1099E0008C000015820020197800C01D6E00A02296 +:1099F0006400B0275A00902C500000314600E0343B +:109A00003C0010383200903A2800603C1E00A03D17 +:109A10001400803E0A00203F000070012C019001DC +:109A20002701B0012201C0011D01F001180110023F +:109A3000130130020E016002090190020401C0020C +:109A4000FF000003FA004003F5008003F000D0039C +:109A5000EB002004E6007004E100E004DC004005B7 +:109A6000D700C005D2004006CD00D006C800800750 +:109A7000C3003008BE00F008B900C009B400B00A45 +:109A8000AF00B00BAA00D00CA500000EA000500F34 +:109A90009B00C01096005012910000148C00C0155D +:109AA0008700B0178200B0197D00D01B7800001E1F +:109AB000730040206E0090226900F024640040276B +:109AC0005F0090295A00E02B5500102E50002030E6 +:109AD0004B0010324600E033410090353C00103717 +:109AE000370070383200A0392D00B03A2800A03B72 +:109AF0002300603C1E00103D1900903D1400103EF4 +:109B00000F00703E0A00C03E0500003F0000436F9A +:109B10006E74696E7565207769746820616E6F7404 +:109B200068657220626F7764656E3F004737360064 +:109B30004D3435205A004D34350047383000200070 +:109B40003E003E0020003E003E00005365766572F8 +:109B50006520736B65773A0000536C696768742001 +:109B6000736B65773A002D2D2D2D2D2D2D2D2D2D3F +:109B70002D2D2D2D2D2D2D2D2D2D004E2F41004D18 +:109B80006561737572656420736B65773A20004E6A +:109B90002F41006D6D000052696768743A0043659B +:109BA0006E7465723A004C6566743A0059206469B7 +:109BB0007374616E63652066726F6D206D696E3AB5 +:109BC000004D373031004D373032004D35303000E8 +:109BD0004D353030004731205A313520463135304F +:109BE000300047393100473120583530205931395C +:109BF0003020453020463730303000473930004D76 +:109C0000373032004D3730322043004D373032206C +:109C100055004D373032004731205A31352046311A +:109C20003530300047393100473120583530205920 +:109C3000313930204530204637303030004D383310 +:109C400000473930004D3834004D31303420533026 +:109C500000473930004731204531004D3832004D42 +:109C60003833004D31303620532564004D323230C8 +:109C700020532564003A200020202020202020208E +:109C8000202020202020202020202000203A2000FA +:109C900020202020202020202020202020202020C4 +:109CA00020202020002020202020202020202020D4 +:109CB0002020002573002020002D2D3A2D2D00207E +:109CC00000200020004C002020002046002D2D2DDB +:109CD000003E555342005344002D2D0025202020E6 +:109CE0002020002020002020000120002020202D06 +:109CF0002D2D200020205A002020000120004D366C +:109D0000303000464C4558202D20203233302F353E +:109D1000300050502020202D20203235342F31307B +:109D2000300048495053202D20203232302F31301E +:109D3000300050455420202D20203234302F39302F +:109D40000041425320202D20203235352F31303034 +:109D500000504C4120202D20203231352F35350048 +:109D60004D3234004D323320257300052E2E00581D +:109D70000059005A0045787472756465720047395D +:109D8000390044697361626C65206661726D206D93 +:109D90006F64653F0044697361626C65206661723F +:109DA0006D206D6F6465004661726D206E756D6229 +:109DB0006572004D3834004D3834004731205A3137 +:109DC00035004732382057005A30005A3100593098 +:109DD00000593100583000583100456E64207374CA +:109DE0006F70732064696167004D34340047323806 +:109DF00020570058595A2063616C2E2064657461A5 +:109E0000696C73002D2D2D2D2D2D2D2D2D2D2D2DEE +:109E100000466C6173684169722049502041646456 +:109E2000723A002D2D2D2D2D2D2D2D2D2D2D2D006A +:109E300033442D677573736E65722C20546573748B +:109E4000004A756C2020362032303137004461746E +:109E5000653A20002D2D2D2D2D2D2D2D2D2D2D2D27 +:109E600000453344763666756C6C0052414D426F46 +:109E700031336100315F37356D6D5F4D4B32002DF1 +:109E80002D2D2D2D2D2D2D2D2D2D2D004657202DF9 +:109E900020332E302E31322D524332004669726DFE +:109EA00077617265202D20332E302E31322D5243B2 +:109EB000320025642E25642E25642E25640046611B +:109EC000726D206E756D62657200706F7369746972 +:109ED0006F6E00726573746F72650000726300626A +:109EE00065746100616C7068610064657600505251 +:109EF0005553413344465700332E302E31322D52C4 +:109F000043320000000A0B02090C0D0E080703047F +:109F10000100000000000000000000000000000040 +:109F2000000000000000000000000000000000121F +:109F30001110000000000000000000000000000000 +:109F40000000000000000000000000000000000011 +:109F5000000000000000000000010210202008089E +:109F6000102040102040800201020108040201017B +:109F70000204081020408080402010080402018064 +:109F800004020180402010080402010804020101BB +:109F900002040810204080010204081020408010B4 +:109FA00008040880102040044080102040048005F0 +:109FB000050505070508080808020202020A0A0842 +:109FC0000804040404010101010101010103030368 +:109FD0000303030303040707070C0C0C0C0C0C0C05 +:109FE0000C0202020206060606060606060B0B0B0C +:109FF0000B0B0B0B0B07070A0A0A0A0A0A050505D1 +:10A000000404040808000020002300260029002C76 +:10A01000002F0032000001000003010601090100C9 +:10A02000002200250028002B002E00310034000201 +:10A03000010000050108010B010000210024002798 +:10A04000002A002D00300033000101000004010748 +:10A05000010A01024E414E494E495459494E46CDDE +:10A06000CCCC3D0AD7233C17B7D13877CC2B3295CF +:10A0700095E6241FB14F0A000020410000C84200AD +:10A08000401C4620BCBE4CCA1B0E5AAEC59D740077 +:10A0900072B5A40172014A01ADB511241FBECFEF04 +:10A0A000D1E2DEBFCDBF00E00CBF16E0A0E0B2E021 +:10A0B000EAECF8E903E00BBF02C007900D92A03F65 +:10A0C000B107D9F728E1A0EFB6E001C01D92AD3786 +:10A0D000B207E1F710EAC8E9D0EA00E006C022972B +:10A0E0000109FE010BBF0F9456C5C039D10780E0AE +:10A0F0000807A9F70F940BBF0D9454CC0C940000E3 +:10A10000EF92FF920F931F93CF93DF931F92CDB7E0 +:10A11000DEB78C017B01460FF70161917F01F801E9 +:10A120008081918149830F948DCBF8018081918149 +:10A1300001969183808349814E11EECF0F90DF917C +:10A14000CF911F910F91FF90EF900895EF92FF92A2 +:10A150000F931F93CF93DF931F92CDB7DEB78C0180 +:10A160007B01460FF8018081918149830F945DCB7B +:10A17000F70181937F01F80180819181019691839C +:10A18000808349814E11EECF0F90DF91CF911F91C7 +:10A190000F91FF90EF9008950F931F93CF93DF934C +:10A1A000CDB7DEB72C970FB6F894DEBF0FBECDBF8C +:10A1B00080E390E3A0E3B0E08D839E83AF83B88714 +:10A1C00004E110E01C870B8744E0BE016B5F7F4F0A +:10A1D000CE010B9695DF40E16EE276E1CE010B9663 +:10A1E0008FDF40E16EE376E1CE010B9689DF40E13F +:10A1F0006EE176E1CE010B9683DF44E066E176E125 +:10A20000CE010B967DDF44E062E176E1CE010B9654 +:10A2100077DF44E06AE176E1CE010B9671DF44E03E +:10A220006EEF75E1CE010B966BDF44E06EE476E1F4 +:10A23000CE010B9665DF44E062E076E1CE010B963D +:10A240005FDF44E066E076E1CE010B9659DF44E043 +:10A250006AE076E1CE010B9653DF44E06EE076E1F2 +:10A26000CE010B964DDF4CE064E17AE0CE010B9617 +:10A2700047DF44E06DE07AE0CE010B9641DF44E039 +:10A2800066E972E0CE010B963BDF44E062E972E0E2 +:10A29000CE010B9635DF44E06EE872E0CE010B96FE +:10A2A0002FDF44E066E872E0CE010B9629DF44E040 +:10A2B00062E872E0CE010B9623DF44E06EE772E0C5 +:10A2C000CE010B961DDF80E290E09A87898742E0FD +:10A2D000BE01675F7F4FCE010B9612DF41E069E060 +:10A2E0007AE0CE010B960CDF44E06DE172E0CE0126 +:10A2F0000B9606DF44E065E172E0CE010B9600DFCD +:10A3000044E064E07AE0CE010B96FADE44E060E0DF +:10A310007AE0CE010B96F4DE44E061E172E0CE011A +:10A320000B96EEDE41E060E37AE0CE010B96E8DECC +:10A3300044E06DE372E0CE010B96E2DE86E591E348 +:10A34000A0E0B0E089839A83AB83BC831C870B8732 +:10A3500044E0BE016F5F7F4FCE010B96D1DEECE390 +:10A36000FDE08491882341F09091C00095FFFCCFDF +:10A370008093C6003196F5CFE7EFF6E0849188230D +:10A3800041F09091C00095FFFCCF8093C6003196BC +:10A39000F5CF8091C00085FFFCCF8AE08093C60096 +:10A3A0002C960FB6F894DEBF0FBECDBFDF91CF91D4 +:10A3B0001F910F910895CF93DF93CCE3DDE0FE0171 +:10A3C0008491882341F09091C00095FFFCCF809349 +:10A3D000C6003196F5CFE7EEF6E08491882341F090 +:10A3E0009091C00095FFFCCF8093C6003196F5CFC9 +:10A3F0008091C00085FFFCCF8AE08093C600FE01FB +:10A400008491ECE3FDE0882349F09091C00095FF32 +:10A41000FCCF8093C60031968491F5CF40912E16E3 +:10A4200050912F1660913016709131168FED96E095 +:10A430000E94C862409132165091331660913416D2 +:10A44000709135168CED96E00E94C86240913616E8 +:10A4500050913716609138167091391689ED96E053 +:10A460000E94C86240913A1650913B1660913C168A +:10A4700070913D1686ED96E00E94C8628091C00002 +:10A4800085FFFCCF8AE08093C600FE018491ECE357 +:10A49000FDE0882349F09091C00095FFFCCF8093A8 +:10A4A000C60031968491F5CFECEBF6E084918823D9 +:10A4B00041F09091C00095FFFCCF8093C60031968B +:10A4C000F5CF8091C00085FFFCCF8AE08093C60065 +:10A4D000FE018491ECE3FDE0882349F09091C000F7 +:10A4E00095FFFCCF8093C60031968491F5CF4091C3 +:10A4F0003E1650913F16609140167091411683EBC5 +:10A5000096E00E94C86240914216509143166091B5 +:10A5100044167091451680EB96E00E94C862409107 +:10A5200046165091471660914816709149168DEA6B +:10A5300096E00E94C86240914A1650914B16609175 +:10A540004C1670914D168AEA96E00E94C86280917E +:10A55000C00085FFFCCF8AE08093C600FE01849195 +:10A56000ECE3FDE0882349F09091C00095FFFCCF1B +:10A570008093C60031968491F5CFECE8F6E08491A3 +:10A58000882341F09091C00095FFFCCF8093C600D6 +:10A590003196F5CF8091C00085FFFCCF8AE0809393 +:10A5A000C600FE018491ECE3FDE0882349F0909120 +:10A5B000C00095FFFCCF8093C60031968491F5CF03 +:10A5C00040911E1650911F16609120167091211611 +:10A5D00083E896E00E94D96240912216509123169A +:10A5E000609124167091251680E896E00E94D96249 +:10A5F00040912616509127166091281670912916C1 +:10A600008DE796E00E94D96240912A1650912B1650 +:10A6100060912C1670912D168AE796E00E94D962FF +:10A620008091C00085FFFCCF8AE08093C600FE01C8 +:10A630008491ECE3FDE0882349F09091C00095FF00 +:10A64000FCCF8093C60031968491F5CFE5E4F6E027 +:10A650008491882341F09091C00095FFFCCF8093B6 +:10A66000C6003196F5CF8091C00085FFFCCF8AE00F +:10A670008093C600FE018491ECE3FDE0882349F05D +:10A680009091C00095FFFCCF8093C60031968491D5 +:10A69000F5CF4091161650911716609118167091CB +:10A6A00019168CE396E00E94C862409112165091F0 +:10A6B0001316609114167091151689E396E00E94A6 +:10A6C000C8628091C00085FFFCCF8AE08093C600FD +:10A6D000FE018491ECE3FDE0882349F09091C000F5 +:10A6E00095FFFCCF8093C60031968491F5CFE6E8C4 +:10A6F000F5E08491882341F09091C00095FFFCCF54 +:10A700008093C6003196F5CF8091C00085FFFCCFC5 +:10A710008AE08093C600FE018491ECE3FDE088238B +:10A7200049F09091C00095FFFCCF8093C600319610 +:10A730008491F5CF40911A1650911B1660911C160A +:10A7400070911D168DE795E00E94C8624091FE153C +:10A750005091FF1560910016709101168AE795E0FF +:10A760000E94C86240914E1650914F16609150164B +:10A770007091511687E795E00E94D96240910216C8 +:10A7800050910316609104167091051684E795E0C8 +:10A790000E94C862409106165091071660910816F3 +:10A7A0007091091681E795E00E94C86240910A16EF +:10A7B00050910B1660910C1670910D168EE695E077 +:10A7C0000E94C86240910E1650910F1660911016AB +:10A7D000709111168BE695E00E94C8628091C000CE +:10A7E00085FFFCCF8AE08093C600FE018491ECE3F4 +:10A7F000FDE0882349F09091C00095FFFCCF809345 +:10A80000C60031968491F5CFE9E5F5E0849188237F +:10A8100041F09091C00095FFFCCF8093C600319627 +:10A82000F5CF8091C00085FFFCCF8AE08093C60001 +:10A83000FE018491ECE3FDE0882349F09091C00093 +:10A8400095FFFCCF8093C60031968491F5CF40915F +:10A85000140A5091150A6091160A7091170A80E542 +:10A8600095E00E94C8624091180A5091190A6091BF +:10A870001A0A70911B0A8DE495E00E94C86240910B +:10A880001C0A50911D0A60911E0A70911F0A8AE4E9 +:10A8900095E00E94C8628091C00085FFFCCF8AE0ED +:10A8A0008093C600FE018491ECE3FDE0882349F02B +:10A8B0009091C00095FFFCCF8093C60031968491A3 +:10A8C000F5CFECE3F5E08491882341F09091C0004E +:10A8D00095FFFCCF8093C6003196F5CF8091C000E4 +:10A8E00085FFFCCF8AE08093C600FE018491ECE3F3 +:10A8F000FDE0882349F09091C00095FFFCCF809344 +:10A90000C60031968491F5CF4091960250919702FE +:10A91000609198027091990282E395E00E94C8626A +:10A9200060919202709193028091940290919502AD +:10A930000F943053AB01BC018FE295E00E94C862D6 +:10A9400060918E0270918F0280919002909191029D +:10A950000F943C53AB01BC018CE295E00E94C862AD +:10A960008091C00085FFFCCF8AE08093C600FE0185 +:10A970008491ECE3FDE0882349F09091C00095FFBD +:10A98000FCCF8093C60031968491F5CFE6E1F5E0E7 +:10A990008491882341F09091C00095FFFCCF809373 +:10A9A000C6003196F5CF8091C00085FFFCCF8AE0CC +:10A9B0008093C600FE018491ECE3FDE0882349F01A +:10A9C0009091C00095FFFCCF8093C6003196849192 +:10A9D000F5CF409186025091870260918802709174 +:10A9E00089028CE095E00E94C862609182027091B9 +:10A9F000830280918402909185020F943053AB01C1 +:10AA0000BC0189E095E00E94C86260917E0270916D +:10AA10007F0280918002909181020F943C53AB01A0 +:10AA2000BC0186E095E00E94C8628091C00085FF6D +:10AA3000FCCF8AE08093C600FE018491ECE3FDE048 +:10AA4000882349F09091C00095FFFCCF8093C60009 +:10AA500031968491F5CFE2EDF4E08491882341F0C2 +:10AA60009091C00095FFFCCF8093C6003196F5CF42 +:10AA70008091C00085FFFCCF8AE08093C600FE0174 +:10AA80008491ECE3FDE0882349F09091C00095FFAC +:10AA9000FCCF8093C60031968491F5CF40911D0282 +:10AAA00050911E0260911F027091200288EC94E088 +:10AAB0000E94C86220E030E040E752E46091150255 +:10AAC0007091160280911702909118020F940BC397 +:10AAD000AB01BC0185EC94E00E94C8624091040A7D +:10AAE0005091050A6091060A7091070A82EC94E081 +:10AAF0000E94C8628091C00085FFFCCF8AE08093ED +:10AB0000C600FE018491ECE3FDE0882349F09091BA +:10AB1000C00095FFFCCF8093C60031968491F5CF9D +:10AB2000E6E9F4E08491882341F09091C00095FF1C +:10AB3000FCCF8093C6003196F5CF8091C00085FF91 +:10AB4000FCCF8AE08093C600FE018491ECE3FDE037 +:10AB5000882349F09091C00095FFFCCF8093C600F8 +:10AB600031968491F5CF4091000A5091010A60918D +:10AB7000020A7091030A8CE894E00E94C86220E007 +:10AB800030E040E752E4609111027091120280912E +:10AB90001302909114020F940BC3AB01BC0189E81E +:10ABA00094E00E94C8628091C00085FFFCCF8AE0DB +:10ABB0008093C600FE018491ECE3FDE0882349F018 +:10ABC0009091C00095FFFCCF8093C6003196849190 +:10ABD000F5CFEFE2F4E08491882341F09091C0003A +:10ABE00095FFFCCF8093C6003196F5CF8091C000D1 +:10ABF00085FFFCCF8AE08093C600FE018491ECE3E0 +:10AC0000FDE0882349F09091C00095FFFCCF809330 +:10AC1000C60031968491F5CF4091090A50E060E07A +:10AC200070E085E294E00E94D9628091C00085FFC7 +:10AC3000FCCF8AE08093C600FE018491ECE3FDE046 +:10AC4000882349F09091C00095FFFCCF8093C60007 +:10AC500031968491F5CF8091300A8823A1F1E2E109 +:10AC6000F4E08491882341F09091C00095FFFCCFDF +:10AC70008093C6003196F5CF8091C00085FFFCCF50 +:10AC80008AE08093C600FE01C491ECE3FDE0CC2392 +:10AC900049F08091C00085FFFCCFC093C60031967B +:10ACA000C491F5CF40913D0250913E0260913F0228 +:10ACB0007091400288E094E00E94C8628091C000D8 +:10ACC00085FFFCCF11C0ECEEF3E08491882341F0C6 +:10ACD0009091C00095FFFCCF8093C6003196F5CFD0 +:10ACE0008091C00085FFFCCF8AE08093C600DF9191 +:10ACF000CF910895AF92BF92CF92DF92EF92FF92E1 +:10AD00000F931F93CF93DF93CDB7DEB7E0970FB6C6 +:10AD1000F894DEBF0FBECDBF80E1EBEAF2E0DE01CA +:10AD2000919601900D928A95E1F780E1EBEBF2E0CC +:10AD3000DE01519601900D928A95E1F780E1EBECEE +:10AD4000F2E0DE01119601900D928A95E1F76E0115 +:10AD500081E2C80ED11C8EE2E82E86E1F82E8E012B +:10AD60000F5E1F4F6EE376E1AE014F5F5F4F9EE1D6 +:10AD7000A92E96E1B92E20E030E0F6018191919163 +:10AD8000A191B1916F01F70181939193A193B19337 +:10AD90007F01F80181919191A191B1918F01FB0106 +:10ADA00081939193A193B193BF01FA018191919104 +:10ADB000A191B191AF01F50181939193A193B193C9 +:10ADC0005F012F5F3F4F24303105B9F60F946A348D +:10ADD00080E090E8ABEBB4E48093161690931716DE +:10ADE000A0931816B0931916809312169093131609 +:10ADF000A0931416B093151610921A1610921B16E3 +:10AE000010921C1610921D1680E29EE4A0E0B0E0A5 +:10AE100080934E1690934F16A0935016B0935116F0 +:10AE20001092FE151092FF15109200161092011646 +:10AE300080E090E0A0E2B1E48093021690930316C4 +:10AE4000A0930416B09305168093061690930716E8 +:10AE5000A0930816B09309168DEC9CECACE4BEE30D +:10AE600080930A1690930B16A0930C16B0930D16B0 +:10AE700080E090E0A0E2B0E480930E1690930F166D +:10AE8000A0931016B093111610921C0A10921D0A6E +:10AE900010921E0A10921F0A1092180A1092190A94 +:10AEA00010921A0A10921B0A1092140A1092150A94 +:10AEB0001092160A1092170A88EB9EE1A3EBB1E4F8 +:10AEC0008093960290939702A0939802B093990270 +:10AED00064EA70E78DEF9FE30F942A536093920228 +:10AEE0007093930280939402909395026BE774E1C0 +:10AEF0008DE792E40F94365360938E0270938F0225 +:10AF000080939002909391020F947F4480E090E0B0 +:10AF1000A0E8BFE380938A0290938B02A0938C02F7 +:10AF2000B0938D021092090A80E090E0A0E4B0E4B2 +:10AF300080931D0290931E02A0931F02B0932002E3 +:10AF400040E050E064E372E440931502509316022F +:10AF500060931702709318021092040A1092050A67 +:10AF60001092060A1092070A1092000A1092010A23 +:10AF70001092020A1092030A40E050E060E071E48F +:10AF800040931102509312026093130270931402C3 +:10AF90001092300A80933D0290933E02A0933F02AC +:10AFA000B09340020E94EE76ECE3FDE084918823AA +:10AFB00041F09091C00095FFFCCF8093C600319680 +:10AFC000F5CFE0EBF3E08491882341F09091C0004D +:10AFD00095FFFCCF8093C6003196F5CF8091C000DD +:10AFE00085FFFCCF8AE08093C600E0960FB6F89408 +:10AFF000DEBF0FBECDBFDF91CF911F910F91FF90AC +:10B00000EF90DF90CF90BF90AF900895CF93DF93F4 +:10B01000CDB7DEB72C970FB6F894DEBF0FBECDBF0D +:10B0200084E190E09C878B8786E591E3A0E0B0E027 +:10B0300089839A83AB83BC8344E0BE016B5F7F4FFF +:10B04000CE010B9683D843E050E0BE016B5F7F4F8B +:10B05000CE0101960F94DCC8892B09F0E1C040E1D4 +:10B060006EE276E1CE010B9671D840E16EE376E1B7 +:10B07000CE010B966BD840E16EE176E1CE010B96E6 +:10B0800065D80F946A3444E066E176E1CE010B9610 +:10B090005DD844E062E176E1CE010B9657D844E0FA +:10B0A0006AE176E1CE010B9651D844E06EEF75E18E +:10B0B000CE010B964BD844E06EE476E1CE010B96C0 +:10B0C00045D844E062E076E1CE010B963FD844E0FB +:10B0D00066E076E1CE010B9639D844E06AE076E18D +:10B0E000CE010B9633D844E06EE076E1CE010B96AC +:10B0F0002DD84CE064E17AE0CE010B9627D844E0ED +:10B100006DE07AE0CE010B9621D844E066E972E06A +:10B11000CE010B961BD844E062E972E0CE010B969B +:10B1200015D844E06EE872E0CE010B960FD844E0EB +:10B1300066E872E0CE010B9609D844E062E872E05E +:10B14000CE010B9603D844E06EE772E0CE010B9679 +:10B150000E94A65042E0BE01675F7F4FCE010B9672 +:10B160000E94A65041E069E07AE0CE010B960E9471 +:10B17000A65044E06DE172E0CE010B960E94A6500D +:10B1800044E065E172E0CE010B960E94A65044E0D7 +:10B1900064E07AE0CE010B960E94A65044E060E0A5 +:10B1A0007AE0CE010B960E94A65044E061E172E085 +:10B1B000CE010B960E94A65041E060E37AE0CE01FA +:10B1C0000B960E94A65044E06DE372E0CE010B9610 +:10B1D0000E94A6500E94EE760F947F44ECE3FDE0BF +:10B1E0008491882341F09091C00095FFFCCF80931B +:10B1F000C6003196F5CFE2EDF3E08491882341F06B +:10B200009091C00095FFFCCF8093C6003196F5CF9A +:10B210008091C00085FFFCCF8AE08093C60001C00A +:10B2200069DD2C960FB6F894DEBF0FBECDBFDF915F +:10B23000CF910895CF93DF93EC0160E08E810F945E +:10B2400048B981E090E00F948AB761E08E810F9455 +:10B2500048B981E090E00F948AB760E08E810F9446 +:10B2600048B984E690E0DF91CF910D948AB7CF92F0 +:10B27000DF92EF92FF920F931F93CF93DF937C01A6 +:10B28000C0E0D0E0C62ED12C87010C0F1D1F61E05D +:10B29000F80187810F940FB9B6010C2E02C0759585 +:10B2A00067950A94E2F76170F80187810F9448B9B5 +:10B2B0002196C430D10541F7C701DF91CF911F918D +:10B2C0000F91FF90EF90DF90CF90B4CFCF92DF92AD +:10B2D000EF92FF920F931F93CF93DF937C01C0E017 +:10B2E000D0E0C62ED12C87010C0F1D1F61E0F801A4 +:10B2F00087810F940FB9B6010C2E02C07595679522 +:10B300000A94E2F76170F80187810F9448B9219699 +:10B31000C830D10541F7C701DF91CF911F910F913F +:10B32000FF90EF90DF90CF9085CF1F93CF93DF9367 +:10B33000EC01162F642F8C810F9448B98D818F3FBB +:10B3400019F060E00F9448B98F85612F84FF05C024 +:10B35000CE01DF91CF911F91B9CF70E084E0759558 +:10B3600067958A95E1F7CE0182DF612FCE01DF91EB +:10B37000CF911F917CCF40E0D8CF61E0FCDF80E42B +:10B3800096E00D948AB762E0F6DF80E496E00D94D3 +:10B390008AB7CF93DF93CDB7DEB728970FB6F8946F +:10B3A000DEBF0FBECDBF28E0EBEDF2E0DE0111966F +:10B3B00001900D922A95E1F7FC012389421710F0C4 +:10B3C0004FEF420FFE013196E40FF11DE40FF11D26 +:10B3D0002081260F2068622F28960FB6F894DEBFD2 +:10B3E0000FBECDBFDF91CF91C6CFFC016089262F64 +:10B3F0002460208B6C60BFCFCF93DF93EC01423091 +:10B4000018F08F8588608F874B8B1C8A222329F048 +:10B41000413019F48F8584608F8780E593EC0F9419 +:10B420008AB760E08C810F9448B960E08E810F94F8 +:10B4300048B98D818F3F19F060E00F9448B96F854E +:10B4400064FD19C063E0CE0112DF84E991E10F943D +:10B450008AB763E0CE010BDF84E991E10F948AB7EC +:10B4600063E0CE0104DF86E990E00F948AB762E0E2 +:10B47000CE01FDDE13C06062CE017DDF84E991E183 +:10B480000F948AB76F856062CE0175DF86E990E020 +:10B490000F948AB76F856062CE016DDF6F85606241 +:10B4A000CE0169DF8CE390E00F948AB784E0888B4B +:10B4B000CE019BDF8CE390E00F948AB7CE015DDF75 +:10B4C00088EB9BE00F948AB782E0898B66E0CE011F +:10B4D00052DF8CE390E0DF91CF910D948AB76F92A9 +:10B4E0007F928F92AF92CF92EF920F931F93CF9351 +:10B4F000DF93CDB7DEB73C01162F842F5E854F85D5 +:10B5000038899989F301848325830683E782C0867D +:10B51000A1868286538744873587968761E00F949A +:10B520000FB9F30185818F3F19F061E00F940FB9D6 +:10B5300061E0F30186810F940FB9112319F0F30133 +:10B54000178603C080E1F301878720E041E060E1D6 +:10B55000C301DF91CF911F910F91EF90CF90AF90EA +:10B560008F907F906F9048CF8F92AF92CF92EF9253 +:10B570000F93DC0113961C921E921297ECE3F3E0FA +:10B58000ED93FC931F921F921F921F928C2CAE2C56 +:10B59000C02EE22E042F2FEF462F61E0A0DF0F9088 +:10B5A0000F900F900F900F91EF90CF90AF908F90E2 +:10B5B0000895CF93DF93EC01423018F08F858860B7 +:10B5C0008F874B8B1C8A222329F0413019F48F85F9 +:10B5D00084608F8780E593EC0F948AB760E08C815C +:10B5E0000F9448B960E08E810F9448B98D818F3FE8 +:10B5F00019F060E00F9448B96F8564FD19C063E0ED +:10B60000CE0135DE84E991E10F948AB763E0CE0183 +:10B610002EDE84E991E10F948AB763E0CE0127DE44 +:10B6200086E990E00F948AB762E0CE0120DE13C075 +:10B630006062CE01A0DE84E991E10F948AB76F8544 +:10B640006062CE0198DE86E990E00F948AB76F853C +:10B650006062CE0190DE6F856062CE018CDE8CE38D +:10B6600090E00F948AB784E0888BCE01BEDE8CE335 +:10B6700090E00F948AB7CE0186DE80E496E00F94C6 +:10B680008AB782E0898B66E0CE0175DE8CE390E0BC +:10B690000F948AB740E068E0CE017BDE68E776E091 +:10B6A000CE010F94E3B941E068E0CE0172DE68E7B5 +:10B6B00076E0CE010F94E3B942E066E0CE0169DEA8 +:10B6C00066E776E0CE01DF91CF910D94E3B9CF929A +:10B6D000DF92EF92FF920F931F93CF93DF931F920E +:10B6E0001F92CDB7DEB78C01677088E0689FB0010C +:10B6F00011246064C80149835A833DDE4981C42E08 +:10B700005A81D52EE12CF12CD6016D916D01D80115 +:10B71000ED91FC910190F081E02DC8011995BFEFEA +:10B72000EB1AFB0AE8E0EE16F10471F70F900F90A8 +:10B73000DF91CF911F910F91FF90EF90DF90CF900D +:10B74000089541E0F2DD81E090E008951F920F92AC +:10B750000FB60F9211240BB60F922F933F934F9376 +:10B760005F936F938F939F93EF93FF93CF93DF93A9 +:10B770001F92CDB7DEB78091C00084FF04C08091D6 +:10B78000C600898319C06091C6002091710730916D +:10B790007207C90101968F779927409173075091DD +:10B7A00074078417950741F0F901EF50F94F608352 +:10B7B00090937207809371070F90DF91CF91FF9163 +:10B7C000EF919F918F916F915F914F913F912F9149 +:10B7D0000F900BBE0F900FBE0F901F9018959A01FF +:10B7E000AB01211581EE38074105510549F182E091 +:10B7F0008093C00060E079E08DE390E00F941EC577 +:10B800002150310941095109CA01B90122E030E052 +:10B8100040E050E00F941EC53093C5002093C40053 +:10B820008091C10080618093C1008091C1008860D7 +:10B830008093C1008091C10080688093C100089509 +:10B840001092C00020E130E0E7CF209173073091E3 +:10B85000740780917107909172078217930771F0B6 +:10B86000F901EF50F94F80812F5F3F4F2F7733273A +:10B87000309374072093730790E008958FEF9FEF44 +:10B880000895809173079091740790937207809345 +:10B89000710708954F925F926F927F928F929F925D +:10B8A000AF92BF92CF92DF92EF92FF920F931F93CE +:10B8B000CF93DF93CDB7DEB7A0970FB6F894DEBF76 +:10B8C0000FBECDBF5C014115510561057105E9F45D +:10B8D00020E030E040E350E060E070E0A0960FB67A +:10B8E000F894DEBF0FBECDBFDF91CF911F910F91B6 +:10B8F000FF90EF90DF90CF90BF90AF909F908F9090 +:10B900007F906F905F904F905BC08E010F5F1F4FD5 +:10B91000C12CD12C76014801422E512C612C712C66 +:10B920008FEFC81AD80AE80AF80ACB01BA01A301B6 +:10B9300092010F94FCC4CA01F80161938F01A9011F +:10B94000BC01411551056105710551F7F1E0CF1AB0 +:10B95000D108E108F108F401EC0DFD1D80818A3069 +:10B9600010F440E301C047E3480F552747FD5095C9 +:10B97000652F752F20E030E0C50122D081E0C81A84 +:10B98000D108E108F108EFEFCE16DE06EE06FE065E +:10B9900011F7A0960FB6F894DEBF0FBECDBFDF91B2 +:10B9A000CF911F910F91FF90EF90DF90CF90BF90BC +:10B9B000AF909F908F907F906F905F904F90089581 +:10B9C0002115310539F48091C00085FFFCCF4093EB +:10B9D000C60008952A30310509F43FC05BCF9A01B3 +:10B9E000462F552747FD5095652F752FE9CFCF93EB +:10B9F000DF93EC0120E030E04DE050E060E070E0EB +:10BA0000DFDF20E030E04AE050E060E070E0CE01AF +:10BA1000DF91CF91D5CFFB012191BF01222339F0D6 +:10BA20003091C00035FFFCCF2093C600F4CFDFCFAC +:10BA30009A01AB01662757FD6095762FC1CFCF9352 +:10BA4000DF93EC019A01AB01662757FD6095762FD5 +:10BA5000B7DFCE01DF91CF91CACFCF92DF92EF92C5 +:10BA6000FF92CF93DF93EC016A017B0177FF0FC058 +:10BA700020E030E04DE250E060E070E0A1DFF094C3 +:10BA8000E094D094C094C11CD11CE11CF11C2AE0AC +:10BA9000B701A601CE01DF91CF91FF90EF90DF902B +:10BAA000CF90F8CE2115310539F48091C00085FF83 +:10BAB000FCCF4093C6000895EDCECF93DF93EC0109 +:10BAC0009A01462F50E060E070E0ECDFCE01DF919C +:10BAD000CF918DCFCF93DF93EC019A01AB0160E062 +:10BAE00070E0E0DFCE01DF91CF9181CFCF93DF9384 +:10BAF000EC01D8DFCE01DF91CF9179CF8F929F9269 +:10BB0000AF92BF92CF92DF92EF92FF921F93CF93AB +:10BB1000DF93EC016A017B01122F20E030E0A901E4 +:10BB2000C701B6010F940AC087FF0CC020E030E0C7 +:10BB30004DE250E060E070E0CE0142DFF7FAF094B1 +:10BB4000F7F8F094B12C60E070E080E09FE3B1166C +:10BB500041F020E030E040E251E40F9411C0B39492 +:10BB6000F6CF9B01AC01C701B6010F941ABF6B0160 +:10BB70007C010F947EC04B015C010F94AAC09B0115 +:10BB8000AC01C701B6010F9419BF6B017C012AE01B +:10BB9000B501A401CE017EDE112361F0EBE7F4E0F4 +:10BBA0008191882339F09091C00095FFFCCF80935C +:10BBB000C600F6CF112319F120E030E040E251E455 +:10BBC000C701B6010F940BC36B017C010F9479C0C0 +:10BBD0004B01AA2497FCA094BA2CB501A401CE0174 +:10BBE0003CDFC501B4010F94ACC09B01AC01C7019F +:10BBF000B6010F9419BF6B017C011150DBCFDF91AF +:10BC0000CF911F91FF90EF90DF90CF90BF90AF90BA +:10BC10009F908F90089572CFCF93DF93EC016EDFEA +:10BC2000CE01DF91CF91E3CEFC01659175918591B5 +:10BC3000949108952091DB073091DC07BC01C90184 +:10BC40008252984F0F94F9C89093D2078093D107EE +:10BC500021E0892B09F420E0822F0895682F7727AF +:10BC600067FD70958091DB079091DC078252984FB9 +:10BC70000F94C1C89093D2078093D10721E0892BFC +:10BC800009F420E0822F08958091D1079091D20786 +:10BC90004AE050E060E070E001960D94DDC6CF937D +:10BCA000C82F40910B0250910C0260910D027091CF +:10BCB0000E024093D7095093D8096093D909709325 +:10BCC000DA09209147023091480230938C0A209380 +:10BCD0008B0A24E630E030934802209347020F9409 +:10BCE00024B76093CD077093CE078093CF079093CE +:10BCF000D0078C2FCF910D947C3580E00F947C354C +:10BD00008091D7099091D809A091D909B091DA0909 +:10BD100080930B0290930C02A0930D02B0930E023D +:10BD200080918B0A90918C0A9093480280934702ED +:10BD30000F9424B76093CD077093CE078093CF07FD +:10BD40009093D00708950F931F93CF93DF930091A3 +:10BD5000D1071091D20765E470E0C8010F94C1C803 +:10BD6000EC01C8010196209741F460E070E0DF919A +:10BD7000CF911F910F910D9475C5188260E070E00E +:10BD80000F9475C525E42883DF91CF911F910F9102 +:10BD900008958091D1079091D20760E070E00196FC +:10BDA0000D9475C52091DB073091DC07E091D90730 +:10BDB000F091DA072E173F0739F44091D7075091D9 +:10BDC000D807141615068CF1AF01480F591FE2175A +:10BDD000F3073CF446595F4F81E04217530734F1B3 +:10BDE00024C0BA0165597F4F6E3E7140E0F04E5F4E +:10BDF0005F4F4E3E514018F429363105A4F4865960 +:10BE00009F4F821793078CF44DEE51E04E1B5F0B52 +:10BE100060E070E0CF018352984F0F949CC810925D +:10BE2000DA071092D90781E0089580E008952F92F3 +:10BE30003F924F925F926F927F928F929F92AF92BA +:10BE4000BF92CF92DF92EF92FF920F931F93CF9307 +:10BE5000DF93CDB7DEB72A970FB6F894DEBF0FBEDB +:10BE6000CDBF9E838D83FC01E350F34FB490880FC8 +:10BE7000991F880F991F9A878987805E954F9A83AB +:10BE80008983DC011D921D921D921C92139738E24A +:10BE9000232E3AE0332EF101E080F18002811381FC +:10BEA000A4E2BAE02D913D914D915C91E0E2FAE07F +:10BEB0006081718182819381ECE2CE2EEAE0DE2EF8 +:10BEC0000F94C03289859A85845F924FADDE6B01F5 +:10BED0007C016B2D772767FD7095872F972F0F9427 +:10BEE000ACC02B013C0129853A852551364F3C8356 +:10BEF0002B8320E030E040EC5FE3C701B6010F94F4 +:10BF00000BC3A30192010F940BC3AB81BC816D9352 +:10BF10007D938D939C931397E985FA85E75BFD4F9D +:10BF2000F887EF83608171818281938160930B0236 +:10BF300070930C0280930D0290930E0220E030E08B +:10BF400040E752E40F9411C04B015C01A3EFB9E04C +:10BF5000ED90FD900D911C91EFEEF9E02081318183 +:10BF600042815381ABEEB9E06D917D918D919C91B1 +:10BF7000ACE0BAE0BF93AF93F7EFCF2EF9E0DF2E3E +:10BF80000F9415260F94B93EA981BA811D921D9276 +:10BF90001D921C921397F101E080F18002811381C0 +:10BFA000A4E2BAE02D913D914D915C91E0E2FAE07E +:10BFB0006081718182819381ACE2CA2EAAE0DA2E7F +:10BFC0000F94C03229853A852050334F1901C90199 +:10BFD0002BDE9058A30192010F940BC3AB81BC815F +:10BFE0006D937D938D939C93139720E030E040E711 +:10BFF00052E460910B0270910C0280910D029091BD +:10C000000E020F9411C04B015C01E3EFF9E0E080F8 +:10C01000F18002811381AFEEB9E02D913D914D91F8 +:10C020005C91EBEEF9E06081718182819381ACE0FB +:10C03000BAE0BF93AF93B7EFCB2EB9E0DB2E0F94EE +:10C0400015260F94B93EC101EFDD9B01AC010F94A1 +:10C050001ABFA30192010F940BC3AB81BC816D93F6 +:10C060007D938D939C93139720E030E040E05FE355 +:10C07000EF81F88560817181828193810F940BC378 +:10C0800060930B0270930C0280930D0290930E024A +:10C0900020E030E040E752E40F9411C04B015C0116 +:10C0A000A3EFB9E0ED90FD900D911C91EFEEF9E05A +:10C0B0002081318142815381ABEEB9E06D917D9158 +:10C0C0008D919C91ACE0BAE0BF93AF930F9415268D +:10C0D0000F94B93E89859A85885E924FA5DD0985C2 +:10C0E0001A850C5E154FD8012D913D914D915C91B3 +:10C0F0000F941ABFE981FA816083718382839383ED +:10C1000089859A85805D924F8FDD29853A85235DEB +:10C110003D4F7901D8012D913D914D915C910F9446 +:10C120001ABFF701608371838283938389859A851F +:10C130008C5D924F79DD29853A852F5D3D4F7901E0 +:10C14000D8012D913D914D915C910F941ABFF7014B +:10C150006083718382839383E981FA8180819181F5 +:10C16000A281B381EB81FC8180839183A283B3831D +:10C1700010920B0210920C0210920D0210920E02FD +:10C180000F946435ED81FE81EF5EF54F81E0808391 +:10C190000F900F900F900F900F900F902A960FB660 +:10C1A000F894DEBF0FBECDBFDF91CF911F910F91ED +:10C1B000FF90EF90DF90CF90BF90AF909F908F90C7 +:10C1C0007F906F905F904F903F902F9008954F9287 +:10C1D0005F926F927F929F92AF92BF92CF92DF92C7 +:10C1E000EF92FF920F931F93CF93DF937C015B013C +:10C1F0008A01E9019090920F911014C0FC01808196 +:10C200009181A281B381FA0180839183A283B38358 +:10C21000FB0180819181A281B38188839983AA8364 +:10C22000BB837FC091FE55C0FC01208131814281DA +:10C2300053816091820F7091830F8091840F909150 +:10C24000850F0F940BC32B013C01F5012081318137 +:10C25000428153816091860F7091870F8091880F82 +:10C260009091890F0F940BC39B01AC01C301B201E4 +:10C270000F941ABFF8016083718382839383F7015F +:10C28000208131814281538160918A0F70918B0F9F +:10C2900080918C0F90918D0F0F940BC36B017C01DB +:10C2A000F501208131814281538160918E0F70911F +:10C2B0008F0F8091900F9091910F0F940BC39B0162 +:10C2C000AC01C701B6010F941ABF688379838A83D2 +:10C2D0009B8390FE26C020916A0F30916B0F409196 +:10C2E0006C0F50916D0FF801608171818281938193 +:10C2F0000F941ABFF8016083718382839383209126 +:10C300006E0F30916F0F4091700F5091710F6881D7 +:10C3100079818A819B810F941ABF688379838A838C +:10C320009B83DF91CF911F910F91FF90EF90DF9052 +:10C33000CF90BF90AF909F907F906F905F904F9005 +:10C3400008952F923F924F925F926F927F928F92B9 +:10C350009F92AF92BF92CF92DF92EF92FF920F9394 +:10C360001F93CF93DF93CDB7DEB728970FB6F8941E +:10C37000DEBF0FBECDBF8C011B019E012F5F3F4F63 +:10C38000AE014B5F5F4F23DF20E030E0A9016D81FC +:10C390007E818F8198850F940AC087FF07C01D8218 +:10C3A0001E821F821886FF24F39401C0F12C2DEC0D +:10C3B0003CEC4CE050EC69817A818B819C810F943C +:10C3C0000AC087FF0AC08DEC9CECACE0B0EC89831E +:10C3D0009A83AB83BC83FF24F39420E030E04AE7E8 +:10C3E00053E46D817E818F8198850F9439C2181630 +:10C3F00054F480E090E0AAE7B3E48D839E83AF839A +:10C40000B887FF24F39420E030E042E553E46981EB +:10C410007A818B819C810F9439C218164CF480E08C +:10C4200090E0A2E5B3E489839A83AB83BC8303C025 +:10C43000FF2009F483C0C980DA80EB80FC808D8006 +:10C440009E80AF80B8847090920F71100BC0F8017D +:10C4500080829182A282B382F101C082D182E28283 +:10C46000F3826AC070FE1CC020916A0F30916B0F7E +:10C4700040916C0F50916D0FC501B4010F9419BF1D +:10C480004B015C0120916E0F30916F0F4091700F46 +:10C490005091710FC701B6010F9419BF6B017C0158 +:10C4A00071FE4AC02091720F3091730F4091740F4A +:10C4B0005091750FC501B4010F940BC32B013C01C2 +:10C4C0002091760F3091770F4091780F5091790F2E +:10C4D000C701B6010F940BC39B01AC01C301B201AC +:10C4E0000F941ABFF8016083718382839383209134 +:10C4F0007A0F30917B0F40917C0F50917D0FC501D9 +:10C50000B4010F940BC34B015C0120917E0F30915D +:10C510007F0F4091800F5091810FC701B6010F949A +:10C520000BC39B01AC01C501B4010F941ABFF1010B +:10C530006083718382839383FF24F3948F2D2896E5 +:10C540000FB6F894DEBF0FBECDBFDF91CF911F9124 +:10C550000F91FF90EF90DF90CF90BF90AF909F90A2 +:10C560008F907F906F905F904F903F902F900895A5 +:10C57000682F87EF9FE00D946FCB089586EA9FE0C8 +:10C580000F945DCB91E0811101C090E0892F089557 +:10C59000FC012491222341F03091C00035FFFCCFF3 +:10C5A0002093C6000196F4CF22E030E080EF96E0C1 +:10C5B00032CBFC012491222341F03091C00035FFA1 +:10C5C000FCCF2093C6000196F4CF2AE030E080EF44 +:10C5D00096E068CA8091D7079091D8071816190677 +:10C5E0000CF056C001979093D8078093D707892BFA +:10C5F00099F48091D4079091D507892B21F410925A +:10C60000DA071092D9078091D9079091DA079093B1 +:10C61000DC078093DB073AC02091DB073091DC0711 +:10C620002F5F3F4F2F5F3F4FF901E452F84F40819A +:10C630004111F8CFC901382F292F8D3E41E09407D1 +:10C6400040F09093DC078093DB078D3E9140F1F43E +:10C650000EC00196FC01E452F84F4081442359F387 +:10C660003093DB072093DC07832F922FEECF80E0FF +:10C6700090E0382F292F0196FC01E452F84F4081B9 +:10C680004423B9F33093DB072093DC0781E008955E +:10C6900080E008959FDF8111FDCF08950F931F93D0 +:10C6A000CF93DF93EC018036910514F080E052C007 +:10C6B0008091D607811104C08DDF81E08093D60779 +:10C6C0004091DB075091DC078091D9079091DA0700 +:10C6D0004817590739F42091D7073091D807121617 +:10C6E000130624F32091D4073091D50712161306B0 +:10C6F00024F49C012F593F4F01C09C0184179507DA +:10C7000044F44C1B5D0B425051094217530774F21D +:10C7100009C0CE010196841795074CF44C1B5D0BA4 +:10C72000425051095093DC074093DB0712C00BEED7 +:10C7300011E00C1B1D0B021713070CF4B7CF60E0C0 +:10C7400070E08DED97E00F949CC81093DC07009388 +:10C75000DB0781E0DF91CF911F910F910895803623 +:10C7600091050CF41FCB80E00895FF920F931F9367 +:10C77000CF93DF93EC01F62E662321F00F942EC8A1 +:10C780008C0109C0FC0101900020E9F78F010150E4 +:10C790001109081B190BC801E2DF882309F474C0D2 +:10C7A0008091D9079091DA07FC01E352F84F23E01A +:10C7B00020830196BE018352984FFF2019F00F94F9 +:10C7C00027C802C00F94D5C8ECE3FDE0849188230C +:10C7D00041F09091C00095FFFCCF8093C600319648 +:10C7E000F5CFE7EEF0E885919491FC0124912223A6 +:10C7F00041F03091C00035FFFCCF2093C600019678 +:10C80000F4CFE091D907F091DA07E252F84F819125 +:10C81000882339F09091C00095FFFCCF8093C6002B +:10C82000F6CFEBEFFCE08491882341F09091C000BB +:10C8300095FFFCCF8093C6003196F5CF8091C00064 +:10C8400085FFFCCF8AE08093C6000E5F1F4F80916A +:10C85000D9079091DA07080F191F0D3EF1E01F0765 +:10C8600029F01093DA070093D90704C01092DA0771 +:10C870001092D9078091D7079091D807019690938D +:10C88000D8078093D70748C0E2E4FDE0849188236D +:10C8900041F09091C00095FFFCCF8093C600319687 +:10C8A000F5CFE7EEF0E885919491FC0124912223E5 +:10C8B00041F03091C00035FFFCCF2093C6000196B7 +:10C8C000F4CFFF2091F0FE018491882389F09091AC +:10C8D000C00095FFFCCF8093C6002196F4CF9091C5 +:10C8E000C00095FFFCCF8093C60089918111F7CFDE +:10C8F000E4EEFCE007C09091C00095FFFCCF809370 +:10C90000C600319684918111F6CF8091C00085FFD9 +:10C91000FCCF8AE08093C600DF91CF911F910F91E9 +:10C92000FF9008951F93CF93DF93EC01162F66239A +:10C9300019F00F942EC808C0FC0101900020E9F7FF +:10C94000CF0101978C1B9D0BA9DE882309F459C0E8 +:10C950008091DB079091DC07FC01E352F84F23E064 +:10C9600020830196BE018352984F112319F00F9432 +:10C9700027C802C00F94D5C88091D7079091D807D7 +:10C9800001969093D8078093D707ECE3FDE084915C +:10C99000882341F09091C00095FFFCCF8093C600A2 +:10C9A0003196F5CFEBECFCE08491882341F0909137 +:10C9B000C00095FFFCCF8093C6003196F5CFE09183 +:10C9C000DB07F091DC07E252F84F8191882339F0C0 +:10C9D0009091C00095FFFCCF8093C600F6CFE9ECA4 +:10C9E000FCE08491882341F09091C00095FFFCCF3A +:10C9F0008093C6003196F5CF8091C00085FFFCCFB3 +:10CA000042C0E2E4FDE08491882341F09091C000AF +:10CA100095FFFCCF8093C6003196F5CFE0EBFCE0AC +:10CA20008491882341F09091C00095FFFCCF8093C2 +:10CA3000C6003196F5CF112391F0FE018491882331 +:10CA400089F09091C00095FFFCCF8093C60021969D +:10CA5000F4CF9091C00095FFFCCF8093C6008991E0 +:10CA60008111F7CFE9E9FCE007C09091C00095FF84 +:10CA7000FCCF8093C600319684918111F6CF8091CE +:10CA8000C00085FFFCCF8AE08093C600DF91CF9184 +:10CA90001F91089581E02091D7073091D807232B6B +:10CAA00009F080E008959B9AA3980895EF92FF9271 +:10CAB0000F931F93CF93DF931F92CDB7DEB7898378 +:10CAC0000F9432618981823009F468C0B4F58823FB +:10CAD00009F442C0813009F0F4C09FB7F894809106 +:10CAE00002018460809302019FBFEFEFF1EE24E02A +:10CAF000E150F0402040E1F700C000009FB7F894FB +:10CB0000809102018B7F809302019FBF40E050E043 +:10CB1000BA018DEE9FE00F9481CB40E050E0BA0166 +:10CB200081EF9FE00F9481CB0F90DF91CF911F9108 +:10CB30000F91FF90EF900D940892833009F45CC040 +:10CB4000843009F0BEC00F90DF91CF911F910F91FB +:10CB5000FF90EF900D94B9999FB7F89480910201DE +:10CB60008460809302019FBF2FEF81EE94E02150FB +:10CB700080409040E1F700C000009FB7F89480919A +:10CB800002018B7F809302019FBF0F90DF91CF91B5 +:10CB90001F910F91FF90EF900D94DB610F94DB617B +:10CBA00080EFE6DC10921C1810921B1860911D1883 +:10CBB00084EC9FE00F946FCB6BE178E181EC9FE018 +:10CBC0000F9460619FB7F894809102018460809314 +:10CBD00002019FBF8FEF91EEE4E081509040E04072 +:10CBE000E1F700C000009FB7F894809102018B7FAD +:10CBF000809302019FBF65C08BE89CE00F94BE78D4 +:10CC00004AE75CE062E081E00F94B1A09FB7F8943E +:10CC1000809102018460809302019FBFFFEF21EEAB +:10CC200084E0F15020408040E1F700C000009FB751 +:10CC3000F894809102018B7F809302019FBF109234 +:10CC4000B9071092B80743E75CE063E083E00F9414 +:10CC5000B1A04091B8075091B90763E083E00F9409 +:10CC60003D61E12CF12C09E210E06FEFC7010F9458 +:10CC70008DCBC701B8010F94E9C4892BD9F48091F9 +:10CC8000B8079091B90701969093B9078093B807B8 +:10CC90004CE65CE063E083E00F94B1A04091B807FC +:10CCA0005091B90763E083E00F943D618AE69CE010 +:10CCB0000F94BE789FEFE91AF90AE114E0E1FE064D +:10CCC000A1F60F90DF91CF911F910F91FF90EF9000 +:10CCD000089580E1E0E2FAE0ABEEB9E001900D9258 +:10CCE0008A95E1F708954F925F926F927F928F92AB +:10CCF0009F92AF92BF92CF92DF92EF92FF92CF932B +:10CD0000DF9300D01F92CDB7DEB70F94B93E8BE40E +:10CD10000E942E5E882391F016D86B017C0120E0E2 +:10CD200030E0A9010F9439C287FD08C0C0926D1090 +:10CD3000D0926E10E0926F10F092701082E50E9417 +:10CD40002E5E882361F00E94A35E6B017C0120E0CF +:10CD500030E0A9010F940AC087FF89C006C0C12C2A +:10CD6000D12CF0E8EF2EFFEBFF2E84E40E942E5E24 +:10CD7000882329F00E94A35E4B015C0106C0812C30 +:10CD8000912CE0E8AE2EEFEBBE2E87E50E942E5EE2 +:10CD9000882329F00E94A35E2B013C0106C0412C90 +:10CDA000512C70E8672E7FEB772E88E40E942E5E70 +:10CDB000882339F00E94A35E69837A838B839C83E6 +:10CDC00008C080E090E0A0E8BFEB89839A83AB8342 +:10CDD000BC8320E030E0A901C501B4010F9439C241 +:10CDE00087FD45C020E030E0A901C301B2010F94E6 +:10CDF00039C287FD3CC020E030E0A90169817A8119 +:10CE00008B819C810F9439C287FD31C020E030E0D6 +:10CE1000A901C501B4010F940AC0882391F120E053 +:10CE200030E040E05FE3C501B4010F940BC36B0138 +:10CE30007C0129813A814B815C81C301B2010F944D +:10CE40000BC34B015C01A7019601C701B6010F940A +:10CE50000BC32BED3FE049E450E40F940BC39B015F +:10CE6000AC01C501B4010F9411C06B017C0120E03D +:10CE700030E0A901C701B6010F9439C287FF04C091 +:10CE80000BC0C12CD12C7601C0926910D0926A10CF +:10CE9000E0926B10F0926C10ECE3FDE0849188233B +:10CEA00041F09091C00095FFFCCF8093C600319671 +:10CEB000F5CFE4EEF7E08491882341F09091C00033 +:10CEC00095FFFCCF8093C6003196F5CF40916D1051 +:10CED00050916E1060916F107091701022E030E0F0 +:10CEE00080EF96E00E940B5E8091C00085FFFCCF32 +:10CEF0008AE08093C600EEEDF7E08491882341F04C +:10CF00009091C00095FFFCCF8093C6003196F5CF7D +:10CF1000C0906910D0906A10E0906B10F0906C1087 +:10CF200020E030E0A901C701B6010F940AC08823B0 +:10CF300069F022E030E0B701A60180EF96E00E94A0 +:10CF40000B5E8091C00085FFFCCF11C0E9EDF7E0DA +:10CF50008491882341F09091C00095FFFCCF80938D +:10CF6000C6003196F5CF8091C00085FFFCCF8AE0E6 +:10CF70008093C6000F900F900F900F90DF91CF918C +:10CF8000FF90EF90DF90CF90BF90AF909F908F90E9 +:10CF90007F906F905F904F9008958330910510F4CB +:10CFA0000C94175F0895CF92DF92EF92FF920F9348 +:10CFB0001F938FDE80E090E00E94175F81E090E099 +:10CFC0000E94175FE090280AF090290A00912A0A2F +:10CFD00010912B0A2091240A3091250A4091260AAB +:10CFE0005091270A6091200A7091210A8091220AAB +:10CFF0009091230AACE2CA2EAAE0DA2E0F94C03236 +:10D000001F910F91FF90EF90DF90CF900D946435BA +:10D010000F9424B76093CD077093CE078093CF070A +:10D020009093D007089520E030E0A90168EB71E00B +:10D0300084E50F9472BB69E170E080E090E00F94AA +:10D0400053B784E50F9498BE64E170E080E090E00F +:10D050000D9453B77F928F929F92AF92BF92CF92CF +:10D06000DF92EF92FF920F931F93CF93DF9300D045 +:10D070001F92CDB7DEB7109243171092421710924D +:10D080004117109240170F94326185E09CE00F9495 +:10D09000BE788E010F5F1F4F7E0125E0E20EF11C6E +:10D0A00080EF96E00E94255C8F3FEFEF9E07C1F373 +:10D0B000F80181938F01EE15FF0591F789809A8021 +:10D0C000AB80BC808091C00085FFFCCF8BE2809359 +:10D0D000C600C12CD12C7601BBE27B2E8091520A76 +:10D0E000882309F450C007E717E0C814D904EA04FC +:10D0F000FB04A1F080EF96E00E94255C8F3FFFEFDC +:10D100009F07C1F32FEFC21AD20AE20AF20AF8010E +:10D1100081938F01F7E0073B1F0739F767E777E057 +:10D120008DE99AE00E940DCD8091C00085FFFCCF73 +:10D130007092C6000F94224DC814D904EA04FB046F +:10D1400069F671DF60E08DE99AE00E9442CE1092AC +:10D15000520AE9EBF0E885919491FC012491222395 +:10D1600041F03091C00035FFFCCF2093C6000196FE +:10D17000F4CF8091C00085FFFCCF8AE08093C60089 +:10D1800080E090E000C00F900F900F900F90DF9123 +:10D19000CF911F910F91FF90EF90DF90CF90BF90B4 +:10D1A000AF909F908F907F9008950F9424B76093D5 +:10D1B000CD077093CE078093CF079093D007E0916F +:10D1C000DB07F091DC07E352F84F80818130B9F43E +:10D1D000E3E6FEE785919491FC012491222341F03E +:10D1E0003091C00035FFFCCF2093C6000196F4CFEC +:10D1F0008091C00085FFFCCF8AE08093C60008952F +:10D2000080EF96E00E94415CE3E5FDE78591949113 +:10D21000FC012491222341F03091C00035FFFCCF66 +:10D220002093C6000196F4CF4091CF095091D009C8 +:10D230006091D1097091D2094F5F5F4F6F4F7F4F5F +:10D240002AE030E080EF96E00E94E05C8091C00030 +:10D2500085FFFCCF8AE08093C600A7CF8F929F9274 +:10D26000AF92BF92CF92DF92EF92FF920F931F93F4 +:10D27000CF93DF93C7E2EC2EC4E0FC2E00E21AE06D +:10D28000CBEED9E08DE8C82E8AE0D82EF701819147 +:10D290007F010E942E5E882319F10E94C95E4B0116 +:10D2A0005C01F6018081811103C06091CA0901C04F +:10D2B00061E070E080E090E00F94ACC0F801208164 +:10D2C0003181428153810F940BC39B01AC01C50195 +:10D2D000B4010F941ABF688379838A839B8309C042 +:10D2E000F80180819181A281B38188839983AA8387 +:10D2F000BB830C5F1F4F2496FFEFCF1ADF0A8BE230 +:10D30000E81684E0F80611F686E40E942E5E882373 +:10D31000D9F00E94C95E6B017C016093DB097093B8 +:10D32000DC098093DD099093DE0920E030E0A9015B +:10D330000F9439C2181644F4C0920B02D0920C021A +:10D34000E0920D02F0920E02DF91CF911F910F91AA +:10D35000FF90EF90DF90CF90BF90AF909F908F9015 +:10D3600008957CDF89E40E942E5E882359F00E9494 +:10D37000C95E6093DF097093E0098093E10990939F +:10D38000E20908C01092DF091092E0091092E10949 +:10D390001092E2098AE40E942E5E882359F00E94CE +:10D3A000C95E6093E3097093E4098093E509909363 +:10D3B000E60908951092E3091092E4091092E50934 +:10D3C0001092E6090895CF92DF92EF92FF92CF93E9 +:10D3D000DF93EC01BC016C5F7F4F0E94A16120E0F4 +:10D3E00030E0A901609135027091360280913702D8 +:10D3F000909138020F941ABF6B017C019B01AC0124 +:10D40000688579858A859B850F940AC087FF04C04B +:10D41000C886D986EA86FB86C0902902D0902A0267 +:10D42000E0902B02F0902C02A70196016885798587 +:10D430008A859B850F9439C2181624F4C886D9862C +:10D44000EA86FB86DF91CF91FF90EF90DF90CF903F +:10D4500008952F923F924F925F926F927F928F9298 +:10D460009F92AF92BF92CF92DF92EF92FF920F9373 +:10D470001F93CF93DF93CDB7DEB7AB970FB6F8947A +:10D48000DEBF0FBECDBF9F878E87798B688B5B8B8E +:10D490004A8B3D8B2C8B1F8B0E8BED82DC018D908C +:10D4A0009D90AD90BC904090200A5090210A6090D1 +:10D4B000220A7090230ADB018D919D910D90BC9101 +:10D4C000A02D88879987AA87BB87C090240AD0900F +:10D4D000250AE090260AF090270A2091280A309128 +:10D4E000290A40912A0A50912B0AEA89FB89608116 +:10D4F0007181828193810F9419BF688F798F8A8F90 +:10D500009B8F8091930F811173C0AE89BF898D90DD +:10D510009D90AD90BC90EA89FB89E080F18002810A +:10D520001381A889B9892D913D914D915C91EE852A +:10D53000FF856081718182819381FE013596FF9321 +:10D54000EF93CC88DD880F941526EE85FF858081CA +:10D550009181A281B3818093200A9093210AA093A4 +:10D56000220AB093230AE889F98980819181A281F6 +:10D57000B3818093240A9093250AA093260AB0933E +:10D58000270AEA89FB8980819181A281B3818093F6 +:10D59000280A9093290AA0932A0AB0932B0AEC89AF +:10D5A000FD8980819181A281B38180932C0A90931F +:10D5B0002D0AA0932E0AB0932F0A0F900F90AB96CE +:10D5C0000FB6F894DEBF0FBECDBFDF91CF911F9194 +:10D5D0000F91FF90EF90DF90CF90BF90AF909F9012 +:10D5E0008F907F906F905F904F903F902F90089515 +:10D5F000A3019201C501B4010F9419BF2B013C0195 +:10D6000020E030E0A9010F9439C2530142011816FD +:10D6100024F0B7FAB094B7F8B094A70196016885E2 +:10D6200079858A859B850F9419BF688779878A8752 +:10D630009B8720E030E0A9010F9439C22885398505 +:10D640004A855B8518160CF05058C501B4010F943B +:10D650001ABF6B017C0120E030E0A9010F9439C2B0 +:10D6600018160CF052CF20E030E040EF51E4C70133 +:10D67000B6010F9411C00F94F7BF0F9479C07D8746 +:10D680006C87623071050CF440CF20912C0A3091E8 +:10D690002D0A40912E0A50912F0AAC89BD896D91B7 +:10D6A0007D918D919C910F9419BF6C8F7D8F8E8F82 +:10D6B0009F8F22242394312C8C859D85AA2797FD4A +:10D6C000A095BA2F88A799A7AAA7BBA7DE01159690 +:10D6D000BF83AE83B101882777FD8095982F0F9483 +:10D6E000ACC06B017C0168A579A58AA59BA50F94A8 +:10D6F000ACC09B01AC01C701B6010F9411C06B0116 +:10D700007C01EE89FF8980809180A280B3802C8D7E +:10D710003D8D4E8D5F8D0F940BC39B01AC016091CD +:10D720002C0A70912D0A80912E0A90912F0A0F9445 +:10D730001ABF69837A838B839C83288D398D4A8DA8 +:10D740005B8DC701B6010F940BC32091280A30915D +:10D75000290A40912A0A50912B0A0F941ABF68A3F4 +:10D7600079A38AA39BA3288539854A855B85C70150 +:10D77000B6010F940BC32091240A3091250A4091E1 +:10D78000260A5091270A0F941ABF6CA37DA38EA37B +:10D790009FA3A3019201C701B6010F940BC320916F +:10D7A000200A3091210A4091220A5091230A0F94B5 +:10D7B0001ABFFF81FF932E812F93DE0111966D0119 +:10D7C000E8A0F9A00AA11BA12CA13DA14EA15FA137 +:10D7D0000F941526BFEF2B1A3B0A0F900F90EC8584 +:10D7E000FD852E163F0609F075CF8FCE4F925F92C2 +:10D7F0006F927F928F929F92AF92BF92CF92DF9261 +:10D80000EF92FF920F931F93CF93DF93CDB7DEB7C5 +:10D8100028970FB6F894DEBF0FBECDBF8BEE99E010 +:10D82000D2DD0F9424B76093CD077093CE07809319 +:10D83000CF079093D0078091EB099091EC09A091CC +:10D84000ED09B091EE098D839E83AF83B8879C016B +:10D85000AD016091200A7091210A8091220A909175 +:10D86000230A0F940AC0811197C04090EF0950908D +:10D87000F0096090F1097090F209A30192016091A2 +:10D88000240A7091250A8091260A9091270A0F9404 +:10D890000AC0811181C020E030E040E752E460918D +:10D8A0000B0270910C0280910D0290910E020F9468 +:10D8B00011C04B015C01E090F309F090F409009174 +:10D8C000F5091091F6098CE09AE09F938F9327EF6A +:10D8D000C22E29E0D22EA30192016D817E818F811B +:10D8E00098850F9415260F900F908091EB099091D9 +:10D8F000EC09A091ED09B091EE098093200A909374 +:10D90000210AA093220AB093230A8091EF099091F3 +:10D91000F009A091F109B091F2098093240A909343 +:10D92000250AA093260AB093270A8091F3099091C3 +:10D93000F409A091F509B091F6098093280A909313 +:10D94000290AA0932A0AB0932B0A8091F709909193 +:10D95000F809A091F909B091FA0980932C0A9093E3 +:10D960002D0AA0932E0AB0932F0A28960FB6F8948A +:10D97000DEBF0FBECDBFDF91CF911F910F91FF9002 +:10D98000EF90DF90CF90BF90AF909F908F907F905F +:10D990006F905F904F900895E0900C0A609147025D +:10D9A00070914802882777FD8095982F0F94ACC01E +:10D9B00020910B0230910C0240910D0250910E0209 +:10D9C0000F940BC32EE333EC4EE259E30F940BC3D9 +:10D9D00069837A838B839C838E010F5F1F4F27EFB0 +:10D9E00039E043EF59E06FEE79E08BEE99E031DDFD +:10D9F0007CCF4F925F926F927F928F929F92AF9265 +:10DA0000BF92CF92DF92EF92FF920F931F93CF932B +:10DA1000C62FE0910C0AF0E0882309F4D9C0DF0199 +:10DA2000A85FB54F8C918111AFC18091200A909170 +:10DA3000210AA091220AB091230A8093EB099093C6 +:10DA4000EC09A093ED09B093EE098091240A90911E +:10DA5000250AA091260AB091270A8093EF09909396 +:10DA6000F009A093F109B093F2098091280A9091EE +:10DA7000290AA0912A0AB0912B0A8093F309909366 +:10DA8000F409A093F509B093F609C0902C0AD09040 +:10DA90002D0AE0902E0AF0902F0AC092F709D0923A +:10DAA000F809E092F909F092FA09EE0FFF1FEE0F64 +:10DAB000FF1FE75CFD4F2081318142815381662346 +:10DAC00049F06091190270911A0280911B029091A5 +:10DAD0001C0208C060911D0270911E0280911F02FD +:10DAE000909120020F9411C09B01AC01C701B601B7 +:10DAF0000F941ABF60932C0A70932D0A80932E0AFC +:10DB000090932F0A8CE29AE00F94443480900B0299 +:10DB100090900C02A0900D02B0900E0220E030E038 +:10DB200040E752E46091150270911602809117024D +:10DB3000909118020F940BC360930B0270930C0228 +:10DB400080930D0290930E02E0910C0AF0E0E85FE2 +:10DB5000F54F81E080834ADE2091040A3091050A66 +:10DB60004091060A5091070A6091280A7091290A8B +:10DB700080912A0A90912B0A0F9419BF7B018C0186 +:10DB80006093280A7093290A80932A0A90932B0A9B +:10DB90002091240A3091250A4091260A5091270AA3 +:10DBA0006091200A7091210A8091220A9091230AA3 +:10DBB000ECE2CE2EEAE0DE2E0F94C03217DE809229 +:10DBC0000B0290920C02A0920D02B0920E02DCC0E9 +:10DBD000E85FF54F8081882309F4D6C08090200A41 +:10DBE0009090210AA090220AB090230A8092EB091B +:10DBF0009092EC09A092ED09B092EE094090240AAF +:10DC00005090250A6090260A7090270A4092EF09EA +:10DC10005092F0096092F1097092F2096091280A1D +:10DC20007091290A80912A0A90912B0A6093F30936 +:10DC30007093F4098093F5099093F60900912C0AEA +:10DC400010912D0A20912E0A30912F0A0093F70986 +:10DC50001093F8092093F9093093FA092091040AE6 +:10DC60003091050A4091060A5091070A0F941ABF95 +:10DC70007B018C016093280A7093290A80932A0AF9 +:10DC800090932B0A3CE2C32E3AE0D32EA3019201DB +:10DC9000C501B4010F94C03210910C0ACC2389F055 +:10DCA0002091FC093091FD094091FE095091FF0936 +:10DCB0006091190270911A0280911B0290911C02CE +:10DCC00010C02091000A3091010A4091020A50913F +:10DCD000030A60911D0270911E0280911F029091B3 +:10DCE00020020F941ABF24E0129FF0011124E75C78 +:10DCF000FD4F20813181428153810F9411C09B01DE +:10DD0000AC0160912C0A70912D0A80912E0A90919D +:10DD10002F0A0F9419BF60932C0A70932D0A8093D9 +:10DD20002E0A90932F0A8CE29AE00F944434C0900C +:10DD30000B02D0900C02E0900D02F0900E0220E059 +:10DD400030E040E752E4609111027091120280913C +:10DD50001302909114020F940BC360930B02709303 +:10DD60000C0280930D0290930E02E0910C0AF0E0F9 +:10DD7000E85FF54F10823ADDC0920B02D0920C02A0 +:10DD8000E0920D02F0920E02CF911F910F91FF9041 +:10DD9000EF90DF90CF90BF90AF909F908F907F904B +:10DDA0006F905F904F900895AF92BF92CF92DF92A5 +:10DDB000EF92FF920F931F93CF93DF93D82F209171 +:10DDC000E3093091E4094091E5095091E609609139 +:10DDD000DF097091E0098091E1099091E2090F94C7 +:10DDE00046C2C62F172F082FF92E60914702709157 +:10DDF0004802882777FD8095982F0F94ACC020911A +:10DE00000B0230910C0240910D0250910E020F94C2 +:10DE10000BC320E030E040E752E40F9411C020E053 +:10DE200030E048EC52E40F9411C020910C0A2F937B +:10DE3000DF93FF920F931F93CF935B016C01B2E0CE +:10DE4000EB2E01E020E04FED59E06BEE79E080E24F +:10DE50009AE00F94A11B8091EB099091EC09A0919D +:10DE6000ED09B091EE098093200A9093210AA093C6 +:10DE7000220AB093230A8091EF099091F009A091B2 +:10DE8000F109B091F2098093240A9093250AA09396 +:10DE9000260AB093270A8091F3099091F409A09182 +:10DEA000F509B091F6098093280A9093290AA09366 +:10DEB0002A0AB0932B0A8091F7099091F809A09152 +:10DEC000F909B091FA0980932C0A90932D0AA09336 +:10DED0002E0AB0932F0A0F9424B76093CD07709346 +:10DEE000CE078093CF079093D0070F900F900F909D +:10DEF0000F900F900F90DF91CF911F910F91FF9096 +:10DF0000EF90DF90CF90BF90AF900895CF93DF93C5 +:10DF10001F92CDB7DEB78C01F8940F94BA45179ACB +:10DF20001092110A169A1092120A149A60E087E46D +:10DF30000F940FB9E2E4FDE08491882341F09091C1 +:10DF4000C00095FFFCCF8093C6003196F5CFE3E08B +:10DF5000F1E885919491FC012491222341F03091C4 +:10DF6000C00035FFFCCF2093C6000196F4CF80910E +:10DF7000C00085FFFCCF8AE08093C6000115110523 +:10DF8000E1F0F8018491F801882349F09091C000F4 +:10DF900095FFFCCF8093C60031968491F5CF809198 +:10DFA000C00085FFFCCF8AE08093C600BE016F5F92 +:10DFB0007F4FC8010F9401650BC0E091530AF0E058 +:10DFC000EE0FFF1FED51F048859194910F9475620B +:10DFD000789406E010E00150110951F068EC70E00F +:10DFE00080E090E00F9453B780E00F94CB63F3CFC1 +:10DFF000F894FFCF0F94BA458091BB07811142C0BE +:10E0000081E08093BB078091CF099091D009A091C6 +:10E01000D109B091D2098093CB099093CC09A093F8 +:10E02000CD09B093CE09E2E4FDE08491882341F06C +:10E030009091C00095FFFCCF8093C6003196F5CF3C +:10E04000E9EFF0E885919491FC012491222341F0BD +:10E050003091C00035FFFCCF2093C6000196F4CF6D +:10E060008091C00085FFFCCF8AE08093C600E091DC +:10E07000530AF0E0EE0FFF1FE552F54885919491A9 +:10E080000D944A6208958091BB070895CF93DF9362 +:10E09000EC0180910C0A8093BC0784E50E942E5EFF +:10E0A000811102C080E084C00E94C95E0F947EC0CE +:10E0B0006093BC076623B1F3ECE3FDE08491882311 +:10E0C00041F09091C00095FFFCCF8093C60031963F +:10E0D000F5CFCD36D10509F435C064F4C836D10585 +:10E0E000B1F0C936D10509F052C0EBE8FFE7A591C0 +:10E0F000B49124C0CA3DD10509F432C0CD3DD1054B +:10E1000009F045C0EFE7FFE7A591B4913DC0EDE808 +:10E11000FFE785919491FC012491222309F437C0F3 +:10E120003091C00035FFFCCF2093C6000196F3CF9D +:10E130009091C00095FFFCCF8093C6008D91811116 +:10E14000F7CF25C0E9E8FFE7A591B4918D91882329 +:10E15000F1F09091C00095FFFCCF8093C600F6CF00 +:10E16000E1E8FFE7A591B4918D91882381F090912A +:10E17000C00095FFFCCF8093C600F6CF9091C00001 +:10E1800095FFFCCF8093C6008D918111F7CF6091F0 +:10E19000BC0770E04AE050E080EF96E00E94185D16 +:10E1A0008091C00085FFFCCF8AE08093C60081E0AB +:10E1B000DF91CF9108954F925F926F927F928F92ED +:10E1C0009F92AF92BF92CF92DF92EF92FF92CF9346 +:10E1D000DF9300D01F92CDB7DEB72B013C0129831E +:10E1E0003A834B835C838DEE9FE00F945DCB8F3F32 +:10E1F00001F58EEE9FE00F945DCB8F3FD1F48FEE53 +:10E200009FE00F945DCB8F3FA1F480EF9FE00F94D0 +:10E210005DCB8F3F71F440E050E0BA018DEE9FE09E +:10E220000F9481CB40E050E0BA0181EF9FE00F9462 +:10E2300081CB81EF9FE00F9465CB4B015C018DEEAC +:10E240009FE00F9465CB6B017C0169817A818B81A2 +:10E250009C812CE330E040E050E00F94FCC4C20EFF +:10E26000D31EE41EF51EB701A6018DEE9FE00F94AC +:10E2700081CBC301B20128EE33E040E050E00F94BF +:10E28000FCC4BA01A901480D591D6A1D7B1D81EF0F +:10E290009FE00F9481CB10924C0A10924D0A10927D +:10E2A0004E0A10924F0A0F900F900F900F90DF912F +:10E2B000CF91FF90EF90DF90CF90BF90AF909F9065 +:10E2C0008F907F906F905F904F9008952F923F9224 +:10E2D0004F925F926F927F928F929F92AF92BF9276 +:10E2E000CF92DF92EF92FF920F931F93CF93DF9322 +:10E2F000CDB7DEB76F970FB6F894DEBF0FBECDBFB8 +:10E300008FE590E00E94D25E882309F4A8C4A12C76 +:10E3100052EFE52E5BE0F52E6AE0962EBB24B39417 +:10E3200079EFC72E70E8D72E809171079091720710 +:10E330002091730730917407821B930B8F77992775 +:10E34000009709F4C1C08F379105B9F4F7018491A2 +:10E35000E2EFFBE0882349F09091C00095FFFCCFED +:10E360008093C60031968491F5CF8091C00085FFDF +:10E37000FCCF9092C600AA24A39480EF96E00E945E +:10E38000255C182F0F9424B76093990A70939A0A0A +:10E3900080939B0A90939C0A0F9424B76093950AEC +:10E3A0007093960A8093970A9093980A17FDBCCFB2 +:10E3B0002091D4073091D5071A3031F01D3021F06B +:10E3C0002F3531050CF468C02115310509F40CC254 +:10E3D0000091D9071091DA07F901E352F84FE00FE5 +:10E3E000F11F11828091D30781113CC00252184F56 +:10E3F00060E473E0C8010F94F9C89093D20780934A +:10E40000D107892B09F0A8C26EE470E0C8010F940F +:10E41000C1C89093D2078093D107892B09F0E7C137 +:10E420009BC2F801E352F84FB082F3010190002043 +:10E43000E9F73197E619F709C80102968E0F9F1F79 +:10E440008D3E31E0930709F482C29093DA078093FE +:10E45000D9078091D7079091D80701969093D80754 +:10E460008093D7071092D5071092D4078091710737 +:10E47000909172072091730730917407821B930B60 +:10E480008F779927892B09F4EAC38FE590E00E94E2 +:10E49000D25E811149CFE3C31B3311F4B092D3078D +:10E4A0008091D307811140CFE091D907F091DA072D +:10E4B000C90101969093D5078093D407E20FF31F0B +:10E4C000E252F84F108330CF80911D18882309F451 +:10E4D00062C00F9424B76093950A7093960A809354 +:10E4E000970A9093980A0091990A10919A0A20919C +:10E4F0009B0A30919C0ADC01CB01801B910BA20B83 +:10E50000B30B81329340A105B10508F444C0E091FA +:10E51000D407F091D5071E161F060CF03CC0809161 +:10E52000D9079091DA07E352F84FE80FF91F1182EB +:10E53000DC01A252B84FFD0101900020E9F73197AC +:10E54000EA1BFB0B02968E0F9F1F9093DA078093B6 +:10E55000D9078D3E914021F41092DA071092D90725 +:10E560008091D7079091D80701969093D807809310 +:10E57000D7071092D5071092D407E4EEFBE0849100 +:10E58000882309F46CC39091C00095FFFCCF809361 +:10E59000C6003196F4CFAA20A9F02091D40730917B +:10E5A000D5071216130674F48091D9079091DA07F3 +:10E5B000821B930B9093DA078093D9071092D507AB +:10E5C0001092D40780919F0A882309F448C3809150 +:10E5D000D4079091D507892B09F041C38091D707C3 +:10E5E0009091D807892B11F41092760798EE492E56 +:10E5F00093E0592E612C712C2CE3822E912CA12CAE +:10E60000B12C8E010F5F1F4F34E0232E312C40912F +:10E610003B0D50913C0D60913D0D70913E0D8091F0 +:10E62000330D9091340DA091350DB091360D4817F2 +:10E6300059076A077B0708F012C38091760781119A +:10E640000EC380918E0C90918F0CA091900CB09184 +:10E65000910C80933B0D90933C0DA0933D0DB09396 +:10E660003E0D86E89CE00E9499BB8F8F8A3021F096 +:10E67000BF8DBD3009F068C240913B0D50913C0DFB +:10E6800060913D0D70913E0D8091330D9091340D50 +:10E69000A091350DB091360D481759076A077B07D1 +:10E6A00008F495C0EBEBF0E885919491FC0124917E +:10E6B000211163C28091C00085FFFCCFFAE0F09386 +:10E6C000C6000F9424B76093C1077093C20780936C +:10E6D000C3079093C407C090C507D090C607E090C9 +:10E6E000C707F090C8076C197D098E099F09C09073 +:10E6F0005E0AD0905F0AE090600AF090610A6C199F +:10E700007D098E099F09A30192010F94FCC4690140 +:10E710007A0110925E0A10925F0A1092600A1092BB +:10E72000610A60914C0A70914D0A80914E0A909155 +:10E730004F0A41DDC701B601A50194010F94FCC445 +:10E74000CA01B901A50194010F94FCC47F936F9392 +:10E75000C701B60120E13EE040E050E00F94FCC468 +:10E760003F932F93A0EDBBE0BF93AF931F930F9305 +:10E770000F9441C9ECE3FDE084910FB6F894DEBF3D +:10E780000FBECDBF811101C2F8018191811106C276 +:10E790008091C00085FFFCCF3AE03093C600C801ED +:10E7A0000F943D628DE99AE00E9437D361E08DE9D4 +:10E7B0009AE00E944ACD80911D18882341F086E09E +:10E7C00090E00F94AD7130922218209221184F8D55 +:10E7D000433219F481E080937607E091D407F091F9 +:10E7E000D507309709F0E1C11092D30738C26EE423 +:10E7F00070E0C8010F94C1C89093D2078093D107ED +:10E80000009709F446C04AE050E060E070E00196ED +:10E810000F94DDC66093D3097093D4098093D50912 +:10E820009093D6094090CF095090D0096090D109BB +:10E830007090D209FFEF4F1A5F0A6F0A7F0A0091AA +:10E84000D9071091DA07641575058605970509F44F +:10E85000C2C06DEE7BE0C8018252984F0F946CC825 +:10E86000892B09F0B8C040C1E091D107F091D207DF +:10E8700010828091D3099091D409A091D509B091CB +:10E88000D6098093CF099093D009A093D109B09372 +:10E89000D2098091D9079091DA0767E470E082523B +:10E8A000984F0F94C1C89093D2078093D1070097D7 +:10E8B00009F43AC020919F0A211108C02AE030E0F3 +:10E8C00030937B0A20937A0AB092820A2091BB0788 +:10E8D000222351F14AE050E060E070E001960F948D +:10E8E000DDC66430710500F5F60185919491FC0157 +:10E8F0002491222341F03091C00035FFFCCF2093BA +:10E90000C6000196F4CF8091C00085FFFCCF9092A5 +:10E91000C600E091530AF0E0EE0FFF1FE552F54804 +:10E92000859194910F944A620091D9071091DA076A +:10E9300098012252384F390166E473E0C9010F94FF +:10E94000CCC8892B09F06DCD80E090E0DFDA109221 +:10E95000DA071092D9077DCD6AE270E0C8010F9402 +:10E96000C1C8892B09F495CFE2E4FDE084918823A6 +:10E9700041F09091C00095FFFCCF8093C600319686 +:10E98000F5CFEBEFF0E885919491FC0124912223DF +:10E9900041F03091C00035FFFCCF2093C6000196B6 +:10E9A000F4CF4091CF095091D0096091D109709175 +:10E9B000D2092AE030E080EF96E00E94E05C80918E +:10E9C000C00085FFFCCF8AE08093C6001092D50777 +:10E9D0001092D40744C10252184F6AE270E0C80195 +:10E9E0000F94C1C89093D2078093D107009709F084 +:10E9F00035C0E2E4FDE08491882341F09091C000AD +:10EA000095FFFCCF8093C6003196F5CFEDEFF0E88F +:10EA100085919491FC012491222341F03091C00012 +:10EA200035FFFCCF2093C6000196F4CF4091CF096B +:10EA30005091D0096091D1097091D2092AE030E05B +:10EA400080EF96E00E94E05C8091C00085FFFCCFE3 +:10EA50008AE08093C6000E940069B8CFF80110E0F8 +:10EA6000E817F90719F021911227FACF4AE050E090 +:10EA700060E070E0CF0101960F94DDC6212F30E0F9 +:10EA80002617370709F4F0CEE2E4FDE084918823ED +:10EA900041F09091C00095FFFCCF8093C600319665 +:10EAA000F5CFE7E0F1E885919491FC0124912223D0 +:10EAB00041F03091C00035FFFCCF2093C600019695 +:10EAC000F4CF4091CF095091D0096091D109709154 +:10EAD000D2092AE030E080EF96E00E94E05C80916D +:10EAE000C00085FFFCCFB4CFE2E4FDE08491882331 +:10EAF00041F09091C00095FFFCCF8093C600319605 +:10EB0000F5CFE1E0F1E885919491FC012491222375 +:10EB100041F03091C00035FFFCCF2093C600019634 +:10EB2000F4CF4091CF095091D0096091D1097091F3 +:10EB3000D2092AE030E080EF96E00E94E05C80910C +:10EB4000C00085FFFCCF84CFEF8DE33229F4209104 +:10EB5000D307211104C090CDFF8DFA33C1F320916A +:10EB6000D4073091D5072F3531050CF085CD8F3F77 +:10EB70004FEF940709F058C07FCD3091C00035FFAA +:10EB8000FCCF2093C600019691CD9091C00095FFD7 +:10EB9000FCCF8093C60031968491F4CD9091C00053 +:10EBA00095FFFCCF8093C600F0CD8091D90790915E +:10EBB000DA07E352F84FE80FF91F1182FC01E35224 +:10EBC000F84FA2E0A0832091D7073091D8072F5F9C +:10EBD0003F4F3093D8072093D707DC01A252B84F9C +:10EBE000FD0101900020E9F73197EA1BFB0B02962B +:10EBF0008E0F9F1F8D3EB1E09B0729F09093DA079F +:10EC00008093D90704C01092DA071092D9071092A6 +:10EC1000D3071092D5071092D4078FE590E00E9499 +:10EC2000D25E8111F4CC1BC0EF8DEB3319F4F1E00F +:10EC3000F093D3074091D3074111E9CCE091D90774 +:10EC4000F091DA07A9014F5F5F4F5093D5074093CA +:10EC5000D407E20FF31FE252F84F8083D8CC6F96AF +:10EC60000FB6F894DEBF0FBECDBFDF91CF911F91DD +:10EC70000F91FF90EF90DF90CF90BF90AF909F905B +:10EC80008F907F906F905F904F903F902F9008955E +:10EC9000CF92DF92EF92FF920F931F93CF93C82FE3 +:10ECA0008091D7079091D80703970CF40FDB0F944E +:10ECB00024B70091C9071091CA072091CB07309162 +:10ECC000CC07C090CD07D090CE07E090CF07F09052 +:10ECD000D0076C197D098E099F09061717072807A9 +:10ECE000390738F4012B022B032B19F080E090E058 +:10ECF0000DD940910702509108026091090270916C +:10ED00000A02452B462B472B19F10F9424B700918B +:10ED1000CD071091CE072091CF073091D007601B0F +:10ED2000710B820B930B0091070210910802209146 +:10ED3000090230910A02061717072807390740F41D +:10ED40009091721080917110981302C0CC2349F0F9 +:10ED5000CF911F910F91FF90EF90DF90CF900D9486 +:10ED60008424179A1092110A169A1092120A149A71 +:10ED7000EFCFCF92DF92EF92FF922091300A2223C1 +:10ED8000F1F020E030E040E05FE30F940BC36B0153 +:10ED90007C0120E030E0A9010F940AC0882379F0BB +:10EDA000A7019601C701B6010F940BC32BED3FE0FD +:10EDB00049E450E40F940BC39B01AC0104C020E074 +:10EDC00030E040E85FE360E070E080E89FE30F94AC +:10EDD00011C0FF90EF90DF90CF90089560913D02B9 +:10EDE00070913E0280913F0290914002C2DF609399 +:10EDF000390270933A0280933B0290933C0208954B +:10EE0000CF93DF93EC010F94224D81E041DF80E04E +:10EE10000F94CB63209799F0C233D10540F062E3A1 +:10EE200070E080E090E00F9453B7E297ECCFBE0122 +:10EE300080E090E00F9453B7C0E0D0E0E4CFDF91E2 +:10EE4000CF9108952F923F924F925F926F927F924F +:10EE50008F929F92AF92BF92CF92DF92EF92FF92EA +:10EE60001F93CF93DF934B015C01CC24CA94DC2C1D +:10EE700076014EEC242E47E0342E58EE452E53E01A +:10EE8000552E612C712C1AE08091FB09811126C14D +:10EE90002FEFC216D206E206F20651F0F7FC1EC1B1 +:10EEA0000F9424B76C197D09683B7B4008F016C1AC +:10EEB0000F9424B7681979098A099B09693E734040 +:10EEC0008105910508F47FC080911D18811177C0DC +:10EED000E6EDF7E08491882341F09091C00095FF22 +:10EEE000FCCF8093C6003196F5CFE091BC0724E0BB +:10EEF000E29FF0011124E65CF84E4081518162816D +:10EF0000738121E030E080EF96E00E940B5EE2ED3D +:10EF1000F7E08491882341F09091C00095FFFCCFE9 +:10EF20008093C6003196F5CF6091BC0770E04AE04F +:10EF300050E080EF96E00E94185DF1018491EEECC4 +:10EF4000F7E0882349F09091C00095FFFCCF8093B3 +:10EF5000C60031968491F5CFF7FE03C0E6E8F6E0EF +:10EF600025C00F9424B74B015C01C701B60168545A +:10EF7000744F8F4F9F4F681979098A099B09A30124 +:10EF800092010F94FCC4BA01A9012AE030E080EF9D +:10EF900096E00E94E05C8091C00085FFFCCF0DC030 +:10EFA0009091C00095FFFCCF8093C60081918111A4 +:10EFB000F7CF8091C00085FFFCCF1093C6000F945F +:10EFC00024B74B015C010F94224D80E061DE80E0AC +:10EFD0000F94CB63FFEFCF16DF06EF06FF0609F0B5 +:10EFE00046C08091BA07E091BC07F0E0EF01CC0F7A +:10EFF000DD1FCC0FDD1FC65CD84EEE0FFF1FEE5B92 +:10F00000F84E8823D1F080819181BC01882777FD5B +:10F010008095982F0F94ACC020E030E040E85FE38B +:10F020000F9419BF9B01AC01688179818A819B8112 +:10F030000F9439C287FF4DC027CF80819181BC01D9 +:10F04000882777FD8095982F0F94ACC020E030E0A2 +:10F0500040E85FE30F941ABF9B01AC01688179819E +:10F060008A819B810F940AC018169CF50DCFF7FC7E +:10F070000BCFE091BC07F0E0EF01CC0FDD1FCC0F10 +:10F08000DD1FC65CD84EEE0FFF1FEE5BF84E808191 +:10F090009181BC01882777FD8095982F0F94ACC093 +:10F0A0009B01AC01688179818A819B810F9419BF92 +:10F0B0000F9479C097FF07C09095809570956195E2 +:10F0C0007F4F8F4F9F4F66307105810591050CF47E +:10F0D000DBCE0F9424B76B017C01D6CEDF91CF91AC +:10F0E0001F91FF90EF90DF90CF90BF90AF909F90D7 +:10F0F0008F907F906F905F904F903F902F900895EA +:10F10000CF93DF931F921F92CDB7DEB7BE016F5F23 +:10F110007F4F88EF9FE00F94716189819A818156BA +:10F12000904F803A9F4020F11A821982E5EAF7E079 +:10F130008491882341F09091C00095FFFCCF80938B +:10F14000C6003196F5CF8091C00085FFFCCF8AE0E4 +:10F150008093C600BE016F5F7F4F88EF9FE00F94E2 +:10F16000606188E697E00F94F56581E00F94C564CF +:10F170000F900F90DF91CF9108950E94536540E961 +:10F1800050ED63E070E080EF96E00E94EF5BE4E614 +:10F19000FCE08491882341F09091C00095FFFCCF62 +:10F1A0008093C6003196F5CF8091C00085FFFCCFDB +:10F1B0008AE08093C6002CE33DE0F9018491882326 +:10F1C00041F09091C00095FFFCCF8093C60031962E +:10F1D000F5CF44B740FF17C0E3EDFDE7859194916B +:10F1E000FC015491552341F06091C00065FFFCCFB4 +:10F1F0005093C6000196F4CF8091C00085FFFCCFEC +:10F200008AE08093C60041FF17C0E7EFF0E88591E0 +:10F210009491FC015491552341F06091C00065FF29 +:10F22000FCCF5093C6000196F4CF8091C00085FFBB +:10F23000FCCF8AE08093C60042FF17C0E7EEF1E8FA +:10F2400085919491FC015491552341F06091C00047 +:10F2500065FFFCCF5093C6000196F4CF8091C000AB +:10F2600085FFFCCF8AE08093C60043FF17C0E7EF1D +:10F27000F9E785919491FC015491552341F06091F7 +:10F28000C00065FFFCCF5093C6000196F4CF80917B +:10F29000C00085FFFCCF8AE08093C60045FF17C001 +:10F2A000E1E4FBE785919491FC014491442341F012 +:10F2B0005091C00055FFFCCF4093C6000196F4CF9B +:10F2C0008091C00085FFFCCF8AE08093C60014BE09 +:10F2D000F9018491ECE3FDE0882349F09091C000AE +:10F2E00095FFFCCF8093C60031968491F5CFE3E87B +:10F2F000F1E885919491FC014491442341F05091AF +:10F30000C00055FFFCCF4093C6000196F4CFEFE458 +:10F31000FCE08491882341F09091C00095FFFCCFE0 +:10F320008093C6003196F5CFEDE3F3E88591949193 +:10F33000FC014491442341F05091C00055FFFCCFA3 +:10F340004093C6000196F4CFEEE3FCE0849188235D +:10F3500041F09091C00095FFFCCF8093C60031969C +:10F36000F5CF8091C00085FFFCCF8AE08093C60076 +:10F37000E3E3FCE08491882341F09091C00095FF85 +:10F38000FCCF8093C6003196F5CFE7E2FCE0849194 +:10F39000882341F09091C00095FFFCCF8093C60078 +:10F3A0003196F5CF8091C00085FFFCCF8AE0809335 +:10F3B000C600F9012491ECE3FDE0222349F080919D +:10F3C000C00085FFFCCF2093C60031962491F5CF75 +:10F3D000E3E6F0E885919491FC012491222341F029 +:10F3E0003091C00035FFFCCF2093C6000196F4CFCA +:10F3F0000E94C7C14AE050E0BC0180EF96E00E9445 +:10F40000185DE3EEFDE785919491FC0124912223A0 +:10F4100041F03091C00035FFFCCF2093C60001962B +:10F42000F4CF4AE050E060E575E080EF96E00E949E +:10F43000185D8091C00085FFFCCF8AE08093C600F4 +:10F4400080E00F94C5640E9406580E94DEC10F94AC +:10F45000E2440F9449240F945A410E94A5EF0F945F +:10F4600090638091000186FD3BC0FFEF23ED80E3B8 +:10F47000F15020408040E1F700C000008091000181 +:10F4800086FD37C00F94326189E19CE00F94BE780D +:10F49000809101018460809301019FB7F89480916D +:10F4A00002018460809302019FBF8091000186FF6A +:10F4B000FCCF9FB7F894809102018B7F809302016B +:10F4C0009FBF9FEFE7EAF1E69150E040F040E1F79F +:10F4D00000C000000F94A16660E00E94566509C05C +:10F4E0002FEF83ED90E3215080409040E1F700C082 +:10F4F0000000159884EC9FE00F945DCB80931D185D +:10F500006BE178E181EC9FE00F94716120911D180F +:10F5100080911B1890911C182F3F11F4009721F037 +:10F520008F3FEFEF9E0711F410921D18019621F402 +:10F5300010921C1810921B1880911D18882321F01E +:10F5400088E090E00F94AD718BEB9FE00F945DCB62 +:10F5500091E0813009F090E09093630C8DE99AE09E +:10F560000E942FC98CEF9FE00F9465CB6F3F7F4FB8 +:10F570008F4F9F4FB9F488EF9FE00F9465CB6F3F9B +:10F580007F4F8F4F9F4F71F484EF9FE00F9465CBB7 +:10F590006F3F7F4F8F4F9F4F29F460E08FEF9FE0C9 +:10F5A0000F948DCB8EEF9FE00F945DCB8093530A29 +:10F5B000873010F00F94479E8FEA9FE00F945DCB49 +:10F5C0008F3F41F460E08FEA9FE00F948DCB109263 +:10F5D000800A06C091E0811101C090E09093800AFA +:10F5E00086EA9FE00F945DCB8F3F29F460E086EAC6 +:10F5F0009FE00F948DCB84DD87EF9FE00F945DCB70 +:10F600009FEF980F9E3F70F160E070E088EF9FE001 +:10F610000F9489CBE091530AF0E0EE0FFF1FEB59F6 +:10F62000FF47859194910F94F56563E87AE087EA46 +:10F630009FE00F94716165E87AE089EA9FE00F949A +:10F64000716167E87AE08BEA9FE00F94716169E885 +:10F650007AE08DEA9FE00F94716181E00F94C564B8 +:10F660000D9495B6863E41F4E091530AF0E0EE0F1A +:10F67000FF1FEF5EFC4711C08130B9F48091800A12 +:10F68000882399F20E94BE628111CFCFE091530A84 +:10F69000F0E0EE0FFF1FED50F248859194910F942A +:10F6A000F56581E00F94C564C0CF803F09F0BDCF00 +:10F6B000B1CF8F929F92AF92BF92CF92DF92EF9293 +:10F6C000FF920F931F93CF93DF9381E08093470ABC +:10F6D00085E090E09093450A8093440A89E790E0A2 +:10F6E0009093430A8093420A82E00F94CB63E091A7 +:10F6F0000C0A84E0E89FF0011124E65CF84E20E05B +:10F7000030E042E053E460817181828193810F9403 +:10F7100039C21816B4F420E030E040E85FE36091AD +:10F720002C0A70912D0A80912E0A90912F0A0F9425 +:10F7300019BF60932C0A70932D0A80932E0A909320 +:10F740002F0AE090280AF090290A00912A0A1091C5 +:10F750002B0A2091240A3091250A4091260A5091C3 +:10F76000270A6091200A7091210A8091220A9091C3 +:10F77000230ACCE0DAE0DF93CF93812C912CB8EC14 +:10F78000AB2EB3E4BB2EECE2CE2EEAE0DE2E0F94DD +:10F79000152680E090E0ACE8B2E48093200A9093D4 +:10F7A000210AA093220AB093230A80E090E0A0E40B +:10F7B000B0EC8093240A9093250AA093260AB09374 +:10F7C000270A80E090E0A0E8BFE38093280A9093A6 +:10F7D000290AA0932A0AB0932B0ADF93CF93812C96 +:10F7E000912CF8E4AF2EF2E4BF2EE12CF12C00E8CE +:10F7F0001FE320E030E040E450EC60E070E08CE893 +:10F8000092E40F9415260F94B93E0F900F900F902D +:10F810000F906091401770914117882777FD809570 +:10F82000982F0F94ACC09B01AC016091341770917C +:10F83000351780913617909137170F9419BF9F771E +:10F8400020E030E040E85FE30F9439C2181624F45A +:10F8500088EE93E0D5DADDCFC8E7D0E088EE93E01C +:10F86000CFDAD093430AC093420AC336D10519F0C8 +:10F87000C930D10511F482E001C081E00F94CB635F +:10F88000219761F71092450A1092440A1092430A98 +:10F890001092420A1092470ADF91CF911F910F9167 +:10F8A000FF90EF90DF90CF90BF90AF909F908F90A0 +:10F8B00008952F923F924F925F926F927F928F9214 +:10F8C0009F92AF92BF92CF92DF92EF92FF920F93EF +:10F8D0001F93CF93DF93CDB7DEB7CA58D2400FB690 +:10F8E000F894DEBF0FBECDBFC958DD4F6883798362 +:10F8F0008A839B83C757D240FE01E75FFD4F88E2B2 +:10F90000DF011D928A95E9F7E850F24080E991E025 +:10F91000DF019C011D9221503040E1F7C75ADD4FB5 +:10F9200019821882C955D240CE01875A9D4F5C0179 +:10F930004E019FE6891A9EEF990ADE01AF51BE4F34 +:10F940003D0190EBC92E9FE0D92E22E3E22EF12C4F +:10F9500000E010E0C359DD4F8882CD56D240CD582B +:10F96000DD4F9882C357D240B701882777FD809535 +:10F97000982F0F94ACC0D3016D937D938D939D937D +:10F980003D01F501619171915F01882777FD8095B7 +:10F99000982F0F94ACC0D4016D937D938D939D935C +:10F9A0004D010F5F1F4F0630110559F0B501C6011B +:10F9B0000F947161BAE0EB0EF11CE2E0CE0ED11CA7 +:10F9C000D3CFCF51DE4F288139814A815B81C15E1F +:10F9D000D140C958DD4F688179818A819B81C757A1 +:10F9E000D2400F940AC087FD2BC3FE01EF51FE4F9A +:10F9F0007F016E01FFE2CF1AFEEFDF0A3E012BEB23 +:10FA0000621A2DEF720AC359DD4F0881CD56D240DC +:10FA1000CD58DD4F1881C357D24085E090E0CF58D4 +:10FA2000DD4F99838883C157D240CF58DD4FA881DD +:10FA3000B981C157D2401197CF58DD4FB983A88300 +:10FA4000C157D240F701208931894289538964899D +:10FA50007589868997890F9419BF4B015C01D8017C +:10FA600050962D913D914D915C91539754966D9187 +:10FA70007D918D919C9157970F9419BFA501940189 +:10FA80000F9411C0F60192938293729362936F0167 +:10FA9000D301BE92AE929E928E923D010450110906 +:10FAA000B4E0EB1AF108CF58DD4FE881F981C15776 +:10FAB000D240EF2B09F0B9CF6E01FFECCF1AFDEF6A +:10FAC000DF0A3E0127E4621A2EEF720A2E013DE39F +:10FAD000430E511CCE0101967C0101E010E0D601DD +:10FAE0008D909D90AD90BC90139714962D913D9163 +:10FAF0004D915C911797C501B4010F941ABF9B01FA +:10FB0000AC010F941ABFF70164A775A786A797A742 +:10FB10000130110541F080A691A6A2A6B3A6848269 +:10FB20009582A682B7820F5F1F4FD30114962D9145 +:10FB30003D914D915C91179718966D917D918D91A6 +:10FB40009C911B970F9419BF20E030E040EC50E4EB +:10FB50000F940BC3F2016083718382839383F4E07B +:10FB6000CF0ED11C2CE2E20EF11C34E0630E711CAE +:10FB700088E2480E511C0530110509F0B0CF8E0106 +:10FB80000B5A1F4F6E0191E5C90ED11C22242394FC +:10FB9000312C2C0E3D1EA8ED2A0E311CF801B89711 +:10FBA0002081318142815381F8016081718182819C +:10FBB00093810F9411C04B015C01E12CF12C3601B3 +:10FBC000F8E26F1A710826014E0C5F1CF301EE0D6E +:10FBD000FF1D2481358146815781C501B4010F94F1 +:10FBE0000BC39B01AC01D20114966D917D918D9157 +:10FBF0009C9117970F9419BFF201648375838683D4 +:10FC00009783F4E0EF0EF11C24E1E216F104D9F63B +:10FC1000045D1F4F38E2C30ED11C0215130509F015 +:10FC2000BDCF1E0185EB280E311C6E0191EBC90E74 +:10FC3000D11C3E01A7EE6A1AADEF7A0AB4E0EB2EB2 +:10FC4000F12C270100E010E0812C912CA12CB12C8B +:10FC5000F601E00FF11FD301A00FB11F2D913D91CF +:10FC60004D915C9160817181828193810F940BC36E +:10FC70009B01AC01B401C5010F941ABF4B015C019B +:10FC8000BFEF4B1A5B0A0C5F1F4FE5E04E165104A5 +:10FC9000F9F69B01AC01D1016D917D918D919C9103 +:10FCA0000F9419BFF60120813181428153810F9455 +:10FCB00011C0D3016D937D938D939C931397B1E005 +:10FCC000EB1AF108E8E22E1A3108FCE2CF1AD1084B +:10FCD00024E0621A7108E114F10409F0B2CFCB50AC +:10FCE000DE4F88819981AA81BB81C55FD140C95708 +:10FCF000DD4F88839983AA83BB83C758D2408E0186 +:10FD0000075F1D4FDE01AF5CBD4FC558DD4FB983A6 +:10FD1000A883CB57D240C359DD4F2880CD56D2405F +:10FD2000CD58DD4F3880C357D240FE01EF51FE4F12 +:10FD3000C358DD4FF983E883CD57D240C358DD4F18 +:10FD4000A881B981CD57D240CD90DD90ED90FD9046 +:10FD5000C358DD4FB983A883CD57D240C958DD4F72 +:10FD6000288139814A815B81C757D240C701B601DA +:10FD70000F940AC01816B4F0C358DD4FE881F9811A +:10FD8000CD57D2402081318142815381C958DD4F06 +:10FD9000688179818A819B81C757D2400F940AC0BC +:10FDA0001816FCF4CF58DD4F28813981C157D24055 +:10FDB0002430310509F01FC1C957DD4F2881398131 +:10FDC0004A815B81C758D240C958DD4F688179812B +:10FDD0008A819B81C757D2400F9439C218160CF004 +:10FDE0000AC1D80114968D919D910D90BC91A02DC2 +:10FDF000C158DD4F88839983AA83BB83CF57D240F4 +:10FE0000F8014080518062807380C558DD4FA88121 +:10FE1000B981CB57D2408D919D910D90BC91A02D71 +:10FE2000C359DD4F88839983AA83BB83CD56D240C3 +:10FE3000D1018D919D910D90BC91A02DCD57DD4F9D +:10FE400088839983AA83BB83C358D240A7019601B4 +:10FE5000C958DD4F688179818A819B81C757D2401B +:10FE60000F9419BFCD58DD4F688379838A839B83B4 +:10FE7000C357D24020E030E040E450E40F946EC31A +:10FE80006B017C01A3019201C158DD4F688179812A +:10FE90008A819B81CF57D2400F9419BF4B015C01DF +:10FEA00020E030E040EC50E4C359DD4F68817981B7 +:10FEB0008A819B81CD56D2400F940BC39B01AC012C +:10FEC000C501B4010F9411C0A70196010F940BC393 +:10FED0006B017C0120E030E040E05FE3C301B20150 +:10FEE0000F940BC34B015C01CD58DD4F2881398144 +:10FEF0004A815B81C357D240CA01B9010F940BC339 +:10FF00009B01AC01C501B4010F940BC39B01AC0173 +:10FF1000C701B6010F941ABF6B017C01CD57DD4FAD +:10FF2000288139814A815B81C358D240F1016481C3 +:10FF30007581868197810F9419BFC359DD4F288140 +:10FF400039814A815B81CD56D2400F9411C04B015B +:10FF50005C01C359DD4F288139814A815B81CD56CF +:10FF6000D240CA01B9010F941ABFA30192010F94A4 +:10FF70000BC32B013C01C359DD4F288139814A81D4 +:10FF80005B81CD56D240C158DD4F688179818A812D +:10FF90009B81CF57D2400F940BC39B01AC01C3018F +:10FFA000B2010F941ABF20E030E040EC50E40F940F +:10FFB00011C09B01AC01C501B4010F9419BFCD580C +:10FFC000DD4F288139814A815B81C357D2400F942C +:10FFD0000BC39B01AC01C701B6010F941ABFCD57EB +:10FFE000DD4F288139814A815B81C358D2400F940B +:10FFF0001ABF4B015C01CF58DD4F28813981C157B1 +:020000021000EC +:10000000D2402F5F3F4FCF58DD4F39832883C157F0 +:10001000D2400C5F1F4FC558DD4F88819981CB5767 +:10002000D2400496C558DD4F99838883CB57D24080 +:1000300094E0290E311C2530310509F07FCE04C033 +:10004000812C912CA12CB12CB401C501C657DD4FD8 +:100050000FB6F894DEBF0FBECDBFDF91CF911F91D9 +:100060000F91FF90EF90DF90CF90BF90AF909F9057 +:100070008F907F906F905F904F903F902F9008955A +:100080008F929F92AF92BF92CF92DF92EF92FF92A8 +:100090000F931F93CF93DF931F921F92CDB7DEB7BD +:1000A0001A82198287EF9FE00F945DCB813009F0AF +:1000B0009DC02091401730914117EAE0F0E0C9015E +:1000C000BF010F94E9C4892BD9F4C901CC978932B7 +:1000D0009105B0F4BF010F94E9C4CB018852984F49 +:1000E000BE016F5F7F4F880F991F0F947161698107 +:1000F0007A81882777FD8095982F0F94ACC008C02F +:10010000B901882777FD8095982F0F94ACC0D1DB7B +:100110002091361630913716409138165091391685 +:100120000F9411C06B017C01E6E6F7E0849188230F +:1001300041F09091C00095FFFCCF8093C6003196AE +:10014000F5CFE5E5F7E08491882341F09091C00078 +:1001500095FFFCCF8093C6003196F5CF22E030E0CA +:10016000B701A60180EF96E00E940B5E20E030E030 +:1001700040E252E460915102709152028091530228 +:10018000909154020F9411C04B015C01A70196019C +:100190006091280A7091290A80912A0A90912B0A6D +:1001A0000F9419BF7B018C012091240A3091250AFC +:1001B0004091260A5091270A6091200A7091210AE5 +:1001C0008091220A9091230AECE0FAE0FF93EF93EA +:1001D000ECE2CE2EEAE0DE2E0F9415260F94B93E07 +:1001E00088E29AE00F9421340F900F900F900F90B7 +:1001F000DF91CF911F910F91FF90EF90DF90CF9003 +:10020000BF90AF909F908F9008954F925F926F92A2 +:100210007F928F929F92AF92BF92CF92DF92EF9296 +:10022000FF920F931F93CF93DF93CDB7DEB728973D +:100230000FB6F894DEBF0FBECDBF0F94B93E8091CC +:1002400047029091480290938C0A80938B0AE09128 +:100250000C0AF0E0EE0FFF1FEE5BF84E608171813B +:10026000882777FD8095982F0F94ACC06093740A0F +:100270007093750A8093760A9093770A80910A0AA0 +:1002800090910B0A9093730A8093720A0F9424B78B +:1002900060935A0A70935B0A80935C0A90935D0A9C +:1002A0008091200A9091210AA091220AB091230AFC +:1002B00089839A83AB83BC838093620A9093630A99 +:1002C000A093640AB093650A4090240A5090250ACE +:1002D0006090260A7090270A4092660A5092670A38 +:1002E0006092680A7092690A8091280A9091290A9E +:1002F000A0912A0AB0912B0A8D839E83AF83B88781 +:1003000080936A0A90936B0AA0936C0AB0936D0A6B +:1003100060912C0A70912D0A80912E0A90912F0ADB +:1003200060936E0A70936F0A8093700A9093710ABB +:1003300020E030E040E85FE30F9419BF60932C0A9F +:1003400070932D0A80932E0A90932F0A8CE09AE0E6 +:100350009F938F93812C912CB8ECAB2EB3E4BB2EE2 +:100360001CE2C12E1AE0D12EED80FE800F8118858F +:10037000A301920169817A818B819C810F9415265A +:1003800020E030E040EA51E46091280A7091290AA7 +:1003900080912A0A90912B0A0F941ABF2B013C01DD +:1003A0000F900F9020E030E042E553E40F9439C203 +:1003B00018164CF04092280A5092290A60922A0A94 +:1003C00070922B0A0CC080E090E0A2E5B3E4809329 +:1003D000280A9093290AA0932A0AB0932B0AE09046 +:1003E000280AF090290A00912A0A10912B0A2091DC +:1003F000240A3091250A4091260A5091270A6091DB +:10040000200A7091210A8091220A9091230AACE07F +:100410006A2EAAE07A2E7F926F92812C912CB0E7FF +:10042000AB2EB1E4BB2EECE2CE2EEAE0DE2E0F9432 +:1004300015261092431710924217109245171092EA +:100440004417109247171092461780E090E0A8E4F6 +:10045000B2E48093200A9093210AA093220AB093D9 +:10046000230A80E090E0AEE3B3E48093240A909303 +:10047000250AA093260AB093270AE090280AF09054 +:10048000290A00912A0A10912B0A7F926F92812CDF +:10049000912CF8E4AF2EF2E4BF2E9C01AD01C50112 +:1004A000B4010F94152610920B0A10920A0A0F90AD +:1004B0000F900F900F9028960FB6F894DEBF0FBEE6 +:1004C000CDBFDF91CF911F910F91FF90EF90DF9003 +:1004D000CF90BF90AF909F908F907F906F905F90E4 +:1004E0004F900D94B93EE0910C0A84E0E89FF00132 +:1004F0001124E65CF84E4081518162817381E2E50E +:10050000F7E08491882341F09091C00095FFFCCFE3 +:100510008093C6003196F5CF22E030E080EF96E080 +:100520000E940B5EEEE4F7E08491882341F0909105 +:10053000C00095FFFCCF8093C6003196F5CF609147 +:100540000C0A70E04AE050E080EF96E00E94185DEF +:10055000EAE4F7E08491882341F09091C00095FF90 +:10056000FCCF8093C6003196F5CF4091341750915F +:100570003517609136177091371721E030E080EF22 +:1005800096E00E940B5E8091C00085FFFCCF8AE060 +:100590008093C60008958091890C882349F040918A +:1005A0003B0D50913C0D60913D0D70913E0D03C08F +:1005B00040E050E0BA018AE99FE00D9481CB2F9290 +:1005C0003F924F925F926F927F928F929F92AF92E3 +:1005D000BF92CF92DF92EF92FF920F931F93CF9330 +:1005E000DF93CDB7DEB7C655D1090FB6F894DEBF9D +:1005F0000FBECDBF50988BE493E00E941A5E882313 +:10060000A1F00091D1071091D2070B5F1F4F6AE252 +:1006100070E0C8010F94C1C8009711F0DC011C9272 +:10062000C8010F943D620C9437AB80E493E00E94C4 +:100630001A5E882309F42BC180E593E00E941A5EBC +:10064000882391F080911D18882311F40C9437AB06 +:100650000F9424B76093910A7093920A8093930A3F +:100660009093940A0C9437AB85E593E00E941A5E50 +:10067000882361F06091500A7091510A4AE050E07D +:1006800080EF96E00E946A5D0C9437AB89E593E0B9 +:100690000E941A5E8823C1F080911D18882361F0A2 +:1006A00060911B1870911C184AE050E080EF96E0B2 +:1006B0000E941F5D0C9437AB6CE573E080EF96E011 +:1006C0000E940B5D0C9437AB8EE693E00E941A5E9D +:1006D000882379F16091D1077091D2076D5F7F4FC8 +:1006E00021E041E08DE99AE00E94B2CE80918E0C2B +:1006F00090918F0CA091900CB091910C80933B0D38 +:1007000090933C0DA0933D0DB0933E0D86E89CE088 +:100710000E9499BB2091C00025FFFCCF8093C600AA +:100720000A9721F760E08DE99AE00E9442CE0C948E +:1007300037AB81E793E00E941A5E882399F00E940C +:10074000136881E08093520A6091D1077091D207BB +:100750006C5F7F4F21E040E08DE99AE00E94B2CECD +:100760000C9437AB85E793E00E941A5E8823A9F0CA +:10077000E9E7F3E08191882339F09091C00095FF7B +:10078000FCCF8093C600F6CF8091C00085FFFCCFE0 +:100790008AE08093C6000C9437AB84E893E00E9413 +:1007A0001A5E8823A9F0E8E8F3E08191882339F004 +:1007B0009091C00095FFFCCF8093C600F6CF80914A +:1007C000C00085FFFCCF8AE08093C6000C9437AB55 +:1007D00086EA93E00E941A5E882321F00F94DB6181 +:1007E0000C9437AB8BEA93E00E941A5E882341F0A9 +:1007F00060E070E088EF9FE00F9460610C9437AB8D +:100800008EEA93E00E941A5E882359F06EEA73E044 +:1008100080EF96E00E940B5D40E950ED63E070E0F0 +:1008200010C089EB93E00E941A5E882381F069EB87 +:1008300073E080EF96E00E940B5D40EA55E266E2CD +:1008400070E080EF96E00E94EF5B0C9424B385EC9F +:1008500093E00E941A5E882361F00F9424B760939E +:100860007C0A70937D0A80937E0A90937F0A0C9491 +:1008700037AB8AEC93E00E941A5E882311F40C9443 +:1008800037AB61E080E00E9456650C9437AB8EE593 +:100890000E942E5E81110C9437AB87E40E942E5E7D +:1008A000882311F40C94AE900E94C95E0F9479C015 +:1008B0006B34710509F406C70CF050C06430710543 +:1008C00009F4FFC354F46230710509F4E2C30CF07B +:1008D000ECC377FF92C00C9437AB6B30710509F411 +:1008E00046C45CF46A30710511F00C9437AB60E0DB +:1008F00081E00E94F96C0C9437AB6C31710509F4FE +:100900003CC46E31710511F00C9437AB0F94B93EB5 +:1009100081E00E944F5E8091510290915202A0911D +:100920005302B091540280930B0290930C02A09357 +:100930000D02B0930E0220E030E043E060E070E092 +:1009400080E291EC0E94DEF2E091530AF0E0EE0FBB +:10095000FF1FED5FFC47859194914EC66735710589 +:1009600011F40C942E90DCF46035710511F40C94A4 +:10097000168F34F46C34710509F4D1C60C9437AB7E +:100980006135710511F40C94758F6635710511F0A0 +:100990000C9437AB86EE0E94B8620C9437AB6C3582 +:1009A000710511F40C9437907CF46A35710511F4DB +:1009B0000C9433906B35710511F00C9437AB81E0DA +:1009C0008093CA090C9437AB6236710511F40C940C +:1009D00099906336710511F00C9437AB10921D1885 +:1009E0000F94E06160911D1884EC9FE00F946FCB31 +:1009F00082E00F94CB630C9437AB8091BB078111DD +:100A00000C9437AB489BDAC2809147029091480220 +:100A100090934202809341022091200A3091210A52 +:100A20004091220A5091230A28AF39AF4AAF5BAFF9 +:100A30002F8F38A349A35AA34090240A5090250A27 +:100A40006090260A7090270A4BA25CA26DA27EA23B +:100A50008091280A9091290AA0912A0AB0912B0A24 +:100A60008CAF9DAFAEAFBFAF8FA398A7A9A7BAA712 +:100A700060912C0A70912D0A80912E0A90912F0A74 +:100A800029833A834B835C834D825E826F827886B2 +:100A90002CAD3DAD4EAD5FAD29873A874B875C8766 +:100AA0006D877E878F87988B20E030E040E050E4B0 +:100AB0000F9419BF6BA77CA78DA79EA71CE0212EC2 +:100AC0001AE0312E3F922F92812C912C08ECA02E0F +:100AD00003E4B02EAE01455D5F4F6A01ECACFDACA6 +:100AE0000EAD1FADA301920168AD79AD8AAD9BAD8E +:100AF0000F94152620E030E040EA51E46FA178A57C +:100B000089A59AA50F941ABF7B018C016FA378A7C2 +:100B100089A79AA72BA13CA14DA15EA16F8D78A1B9 +:100B200089A19AA13F922F92812C912CE6E9AE2EB9 +:100B3000E3E4BE2E0F9415261F8E18A219A21AA246 +:100B40008DEC9CECACE0B0EC8BA39CA3ADA3BEA35E +:100B5000EFA0F8A409A51AA53F922F92812C912C01 +:100B6000FCE8AF2EF2E4BF2E9C01AD0160E070E026 +:100B7000CB010F94152620E030E040EA52E46BA54B +:100B80007CA58DA59EA50F9419BF6BA77CA78DA7EB +:100B90009EA7EFA0F8A409A51AA52BA13CA14DA1E1 +:100BA0005EA16F8D78A189A19AA13F922F92812C8D +:100BB000912CA0EAAA2EA1E4BA2E0F9415260F9428 +:100BC000B93E149A64E670E080E090E00F9453B769 +:100BD0000F94C78A0FB6F894DEBF0FBECDBF00E0FA +:100BE00010E0F12C0F94EC6581112AC0F3940F945E +:100BF000224D81E00E944876F110F4CF043FF1E0ED +:100C00001F0711F400E010E08091010184608093DF +:100C100001010115110531F49FB7F894809102018B +:100C2000846008C00431110541F49FB7F8948091A5 +:100C300002018B7F809302019FBF0F5F1F4FD2CFB6 +:100C40009FB7F894809102018B7F809302019FBF30 +:100C500020E030E04CE852E46BA57CA58DA59EA574 +:100C60000F941ABF6BA77CA78DA79EA7EFA0F8A42F +:100C700009A51AA52BA13CA14DA15EA16F8D78A15C +:100C800089A19AA1FCE06F2EFAE07F2E7F926F92ED +:100C9000812C912CA0EAAA2EA1E4BA2EDE019B960B +:100CA0006D010F94152620E030E048E452E46BA576 +:100CB0007CA58DA59EA50F941ABF6BA77CA78DA7B9 +:100CC0009EA7EFA0F8A409A51AA52BA13CA14DA1B0 +:100CD0005EA16F8D78A189A19AA17F926F92812CDC +:100CE000912CA12CB0E4BB2E0F9415261092790AFA +:100CF0001092780A0F94488B0F900F900F900F90DE +:100D00008091780A9091790A019709F489C010922C +:100D1000790A1092780A0F94928B8091780A9091B8 +:100D2000790A8230910571F1039709F076C020E0CD +:100D300030E048E452E46BA57CA58DA59EA50F94F8 +:100D40001ABF6BA77CA78DA79EA7EFA0F8A409A543 +:100D50001AA52BA13CA14DA15EA16F8D78A189A1FF +:100D60009AA17F926F92812C912CA12CA0E4BA2E93 +:100D7000DE019B966D010F9415260F94FE8A0F904D +:100D80000F90BECF20E030E04CE852E46BA57CA58C +:100D90008DA59EA50F941ABF6BA77CA78DA79EA7B4 +:100DA000EFA0F8A409A51AA52BA13CA14DA15EA115 +:100DB0006F8D78A189A19AA17F926F92812C912C3D +:100DC000B0EAAB2EB1E4BB2EDE019B966D010F9411 +:100DD000152620E030E048E452E46BA57CA58DA503 +:100DE0009EA50F941ABF6BA77CA78DA79EA7EFA007 +:100DF000F8A409A51AA52BA13CA14DA15EA16F8D58 +:100E000078A189A19AA17F926F92812C912CA12C1B +:100E1000E0E4BE2E0F9415266DCF0F94EB8A70CFB1 +:100E200020E030E040EA50E46BA57CA58DA59EA5AE +:100E30000F941ABF6BA77CA78DA79EA7EFA0F8A45D +:100E400009A51AA52BA13CA14DA15EA16F8D78A18A +:100E500089A19AA1ECE06E2EEAE07E2E7F926F923D +:100E6000812C912CA12CF0E4BF2EFE01BB966F01CA +:100E70000F941526A50194016BA57CA58DA59EA5B3 +:100E80000F9419BF6BA77CA78DA79EA7EFA0F8A40E +:100E900009A51AA52BA13CA14DA15EA16F8D78A13A +:100EA00089A19AA17F926F92812C912CA8ECAA2EF5 +:100EB000A3E4BA2E0F941526EFA0F8A409A51AA54D +:100EC0002BA13CA14DA15EA16F8D78A189A19AA112 +:100ED0007F926F92812C912CBCE8AB2EB2E4BB2E9A +:100EE0000F941526EFA0F8A409A51AA52D813E811F +:100EF0004F81588569817A818B819C817F926F9225 +:100F00000F941526E984FA840B851C852D813E817A +:100F10004F81588569817A818B819C817F926F9204 +:100F2000812C912CE8E4AE2EE3E4BE2E0F9415261E +:100F300020E030E040E050E46BA57CA58DA59EA5A7 +:100F40000F941ABF6BA77CA78DA79EA7E984FA848C +:100F50000B851C852D813E814F81588569817A8161 +:100F60008B819C817F926F92812C912CF0EAAF2E25 +:100F7000F0E4BF2E0F941526CE010D960F94443445 +:100F800080914102909142028093470290934802DF +:100F90009F938F9387EC9BE09F938F938E01015DCE +:100FA0001F4F1F930F930F9441C960E0C8010E9427 +:100FB000B5630FB6F894DEBF0FBECDBF0E942E6999 +:100FC00060914C0A70914D0A80914E0A90914F0A9F +:100FD0000F94AAC04B015C01C0902C0AD0902D0A3E +:100FE000E0902E0AF0902F0A4090F7095090F809EF +:100FF0006090F9097090FA09A3019201C701B60146 +:101000000F9419BF20E030E048EC52E40F940BC37A +:101010009B01AC01C501B4010F9439C21816E4F468 +:10102000A7019601C301B2010F9419BF20E030E07F +:1010300048EC52E40F940BC39B01AC01C501B40111 +:101040000F941ABF0F947EC060934C0A70934D0AA0 +:1010500080934E0A90934F0A8091090A8823A9F041 +:1010600088E50E942E5E811110C089E50E942E5EE7 +:1010700081110BC08AE50E942E5E811106C085E4B5 +:101080000E942E5E81110C943AAB0E94F66B0C9478 +:1010900037AB8091BB0781110C9437AB0E94B169CB +:1010A00081E00E94D46E0C9437AB8091BB07811114 +:1010B0000C9437AB0E94B16980E00E94D46E0C940E +:1010C00037AB80E50E942E5E882339F00E94C95E0E +:1010D0000F947EC04B015C0103C0812C912C540104 +:1010E00083E50E942E5E882361F00E94C95E20E0A5 +:1010F00030E04AE754E40F940BC30F947EC04B01D9 +:101100005C0181149104A104B10459F0E091530AE7 +:10111000F0E0EE0FFF1FE15EFE47859194910F9482 +:101120004A620F94B93E0F9424B72B013C01480C3E +:10113000591C6A1C7B1C0F9424B76093CD077093D5 +:10114000CE078093CF079093D0070F9424B76415F0 +:1011500075058605970510F00C9437AB0F94224D5A +:1011600080E00E94487680E00F94CB63EECF60E091 +:1011700080E00E94F96C0C9437AB11E01093810A67 +:101180001092930F0E94DEEF0F94EF1880910B02E4 +:1011900090910C02A0910D02B0910E028093D7099C +:1011A0009093D809A093D909B093DA0980914702A6 +:1011B0009091480290938C0A80938B0A84E690E089 +:1011C00090934802809347020F9424B76093CD0711 +:1011D0007093CE078093CF079093D00781E00F9450 +:1011E0007C358091200A9091210AA091220AB09129 +:1011F000230A8093EB099093EC09A093ED09B09337 +:10120000EE094091240A5091250A6091260A7091B6 +:10121000270A4093EF095093F0096093F109709306 +:10122000F2094091280A5091290A60912A0A709186 +:101230002B0A4093F3095093F4096093F5097093D6 +:10124000F60940912C0A50912D0A60912E0A709156 +:101250002F0A4093F7095093F8096093F9097093A6 +:10126000FA0910920B0210920C0210920D021092C9 +:101270000E0288E50E942E5E882311F080E009C0EE +:1012800089E50E942E5E8111F9CF8AE50E942E5ECB +:10129000812780930F0281110C9469AB88E50E942D +:1012A0002E5E81110C9469AB80910F0281110C9418 +:1012B0006FAB89E50E942E5E81110C946FAB88E5BF +:1012C0000E942E5E882341F00E94445E672B682BAB +:1012D000692B11F00C9475AB89E50E942E5E882372 +:1012E00041F00E94445E672B682B692B11F00C942F +:1012F0008BAB80910F02811106C08AE50E942E5EA1 +:10130000882309F4EDC08091110A882311F40C940C +:10131000A1AB8091120A882311F40C94A1AB0E9416 +:1013200033F0EAE4FEE885919591A591B491898323 +:101330009A83AB83BC83E6E4FEE885919591A59101 +:10134000B4918F8F98A3A9A3BAA32FEE39E04BEEE7 +:1013500059E0BE016F5F7F4FCE014F960E94E7605C +:101360000E94A5EF2DEC3CEC4CE050EC6091EF09B5 +:101370007091F0098091F1099091F2090F940AC0DF +:1013800087FF0CC08DEC9CECACE0B0EC8093EF09D7 +:101390009093F009A093F109B093F20980E090E0F6 +:1013A000A0EAB0E48093F3099093F409A093F509BF +:1013B000B093F60920E030E040E251E46091510240 +:1013C0007091520280915302909154020F9411C077 +:1013D00060930B0270930C0280930D0290930E02A7 +:1013E0001092280A1092290A10922A0A10922B0AA7 +:1013F00080E00F947C35E090280AF090290A009153 +:101400002A0A10912B0A2091240A3091250A409132 +:10141000260A5091270A6091200A7091210A809132 +:10142000220A9091230AFCE2CF2EFAE0DF2E0F94DD +:10143000C03280900B0290900C02A0900D02B090F0 +:101440000E02E090F309F090F4090091F509109173 +:10145000F6092091EF093091F0094091F10950917E +:10146000F2096091EB097091EC098091ED0990917E +:10147000EE09ECE0FAE0FF93EF93A7EFCA2EA9E0A4 +:10148000DA2E0F9415260F94B93E8091EB099091B6 +:10149000EC09A091ED09B091EE098093200A909398 +:1014A000210AA093220AB093230A8091EF09909118 +:1014B000F009A091F109B091F2098093240A909368 +:1014C000250AA093260AB093270A81E00F947C3561 +:1014D0000F94643582E090E00E94175F0F900F90A8 +:1014E0008AE50E942E5E8823D1F00E94445E672B1D +:1014F000682B692BA1F00E94C95E20911C0A3091D3 +:101500001D0A40911E0A50911F0A0F941ABF609342 +:10151000280A7093290A80932A0A90932B0AE09054 +:10152000280AF090290A00912A0A10912B0A20918A +:10153000240A3091250A4091260A5091270A609189 +:10154000200A7091210A8091220A9091230AECE2EC +:10155000CE2EEAE0DE2E0F94C03280E00F947C3570 +:101560008091D7099091D809A091D909B091DA0951 +:1015700080930B0290930C02A0930D02B0930E0285 +:1015800080918B0A90918C0A909348028093470235 +:101590000F9424B76093CD077093CE078093CF0745 +:1015A0009093D0070F9464350E9433F00E944FF25D +:1015B00088E50E942E5E81110C94ABAB89E50E94F8 +:1015C0002E5E81110C94ABAB87E50E942E5E8111DB +:1015D0000C94ABAB8AE50E942E5E81110C94ABABF0 +:1015E0000F94B93E1092810A21C43091C00035FF9A +:1015F000FCCF2093C6000196FC0124912111F5CF68 +:10160000E2ECFBE08491882341F09091C00095FFCB +:10161000FCCF8093C6003196F5CF4091200A5091BF +:10162000210A6091220A7091230A25E030E080EFC0 +:1016300096E00E940B5EEDEBFBE08491882341F085 +:101640009091C00095FFFCCF8093C6003196F5CFF6 +:101650004091240A5091250A6091260A7091270A28 +:1016600025E030E080EF96E00E940B5EE8EBFBE0C7 +:101670008491882341F09091C00095FFFCCF809326 +:10168000C6003196F5CF4091280A5091290A609101 +:101690002A0A70912B0A25E030E080EF96E00E9444 +:1016A0000B5EE6EBFBE08491882341F09091C00053 +:1016B00095FFFCCF8093C6003196F5CF0E947D5EEA +:1016C0000C9437AB08E210E04AE050E0B80180EF3C +:1016D00096E00E94185DEAE7F6E08191882339F0F0 +:1016E0009091C00095FFFCCF8093C600F6CFB80163 +:1016F000882777FD8095982F0F94ACC00E94597C65 +:10170000AB01BC0122E030E080EF96E00E940C5E6D +:101710000F5F1F4F0F361105B9F60C9437AB82E3FC +:1017200090E090934117809340171A82198280911C +:10173000110A882341F08091120A882321F08091B8 +:10174000130A81110AC081E08093D60761E08FEA15 +:101750009BE00E9492640C9437ABE1E9FBE084913A +:10176000882341F09091C00095FFFCCF8093C60084 +:101770003196F5CF8091C00085FFFCCF8AE0809341 +:10178000C60084E090E09093450A8093440A81E08B +:1017900090E09093430A8093420AE091530AF0E06C +:1017A000EE0FFF1FED55F5488591949121E0892BAF +:1017B00009F420E02093470A80E090E0ACE8B2E42E +:1017C0008093200A9093210AA093220AB093230ABF +:1017D00080E090E0A0E4B0EC8093240A9093250A86 +:1017E000A093260AB093270A80E090E0A0E8BFE328 +:1017F0008093280A9093290AA0932A0AB0932B0A6F +:101800008CE09AE09F938F93812C912C18E4A12E69 +:1018100012E4B12E0CE2C02E0AE0D02EE12CF12C05 +:1018200000E81FE320E030E040E450EC60E070E0CE +:101830008CE892E40F9415260F94B93E0F900F9008 +:1018400020E030E048E452E460913417709135179D +:1018500080913617909137170F9419BF4B015C0197 +:1018600020E030E0A9010F9439C218168CF420E072 +:1018700030E040E85FE3C501B4010F9439C21816A7 +:101880008CF488EE93E00E9400770E947382D8CF98 +:1018900020E030E040E85FEBC501B4010F940AC0DE +:1018A00087FDEFCF08E710E088EE93E00E94007715 +:1018B0000E94738201501109B9F760E086EA9FE047 +:1018C0000F946FCB80E090E0A0EAB0E48093280A08 +:1018D0009093290AA0932A0AB0932B0A2091240AF4 +:1018E0003091250A4091260A5091270A6091200ADA +:1018F0007091210A8091220A9091230AECE0FAE08B +:10190000FF93EF93812C912CE8E4AE2EE2E4BE2EFF +:10191000FCE2CF2EFAE0DF2EE12CF12C00EA10E4FD +:101920000F941526E6E4FEE885919591A591B49172 +:101930008093200A9093210AA093220AB093230A4D +:10194000EAE4FEE825913591459154912093240ACB +:101950003093250A4093260A5093270AE090280ADC +:10196000F090290A00912A0A10912B0A6091200A0E +:101970007091210A8091220A9091230AECE0FAE00A +:10198000FF93EF93812C912CB8E4AB2EB2E4BB2EE5 +:101990000F9415260F94B93E20E030E043E060E05C +:1019A00070E080E89FEB0E94DEF22091280A3091DF +:1019B000290A40912A0A50912B0A28AF39AF4AAF21 +:1019C0005BAFE0E9FBE084910F900F900F900F90D8 +:1019D0004091280A5091290A60912A0A70912B0A95 +:1019E000882349F09091C00095FFFCCF8093C600FA +:1019F00031968491F5CF8091C00085FFFCCF8AE0BD +:101A00008093C600E9E8FBE08491882341F090913F +:101A1000C00095FFFCCF8093C6003196F5CF22E041 +:101A200030E080EF96E00E940B5EE8E8FBE08491F6 +:101A3000882341F09091C00095FFFCCF8093C600B1 +:101A40003196F5CF8091C00085FFFCCF8AE080936E +:101A5000C60012E0412E512C0CE3602E712C80EB5D +:101A6000282E8FE0382EE1E8FBE08491882341F0B6 +:101A70009091C00095FFFCCF8093C6003196F5CFC2 +:101A80004AE050E0B20180EF96E00E94185DEEE778 +:101A9000FBE08491882341F09091C00095FFFCCF3A +:101AA0008093C6003196F5CF8091C00085FFFCCFB2 +:101AB0008AE08093C6005092430A4092420AB301E2 +:101AC000882777FD8095982F0F94ACC06CAF7DAFC1 +:101AD0008EAF9FAF709241176092401720E030E0C8 +:101AE0004CE852E42093200A3093210A4093220AC2 +:101AF0005093230A80E090E0A0E4B0EC8093240AA5 +:101B00009093250AA093260AB093270A20E030E09C +:101B100040E85FE32093280A3093290A40932A0A79 +:101B200050932B0AACE0BAE0BF93AF93812C912C79 +:101B3000A8E4AA2EA2E4BA2EBCE2CB2EBAE0DB2E99 +:101B400079018A0120E030E040E450EC60E070E090 +:101B50008CE892E40F9415260F94B93E0F900F90E5 +:101B60002CAD3DAD4EAD5FAD609134177091351722 +:101B700080913617909137170F940AC087FF07C0DE +:101B800088EE93E00E9400770E947382E9CF08E715 +:101B900010E088EE93E00E9400770E94738201506B +:101BA0001109B9F720E030E040EA50E42093280A18 +:101BB0003093290A40932A0A50932B0A2091240A31 +:101BC0003091250A4091260A5091270A6091200AF7 +:101BD0007091210A8091220A9091230AACE0BAE028 +:101BE000BF93AF93812C912C18E4A12E12E4B12E57 +:101BF0000CE2C02E0AE0D02EE12CF12C00EA10E419 +:101C00000F941526E6E4FEE885919591A591B4918F +:101C10008093200A9093210AA093220AB093230A6A +:101C2000EAE4FEE825913591459154912093240AE8 +:101C30003093250A4093260A5093270AE090280AF9 +:101C4000F090290A00912A0A10912B0A6091200A2B +:101C50007091210A8091220A9091230AACE0BAE0A7 +:101C6000BF93AF93812C912CF8E4AF2EF2E4BF2EFA +:101C70000F9415260F94B93E20E030E043E060E079 +:101C800070E080E89FEB0E94DEF228AD39AD4AADEE +:101C90005BAD6091280A7091290A80912A0A90917F +:101CA0002B0A0F9419BF20913616309137164091A8 +:101CB0003816509139160F940BC30F9479C07A835C +:101CC0006983EDE7FBE084910F900F900F900F90E8 +:101CD000882349F09091C00095FFFCCF8093C60007 +:101CE00031968491F5CF8091C00085FFFCCF8AE0CA +:101CF0008093C600EFE6FBE08491882341F0909149 +:101D0000C00095FFFCCF8093C6003196F5CF4AE026 +:101D100050E0B30180EF96E00E94185DE0E6FBE042 +:101D20008491882341F09091C00095FFFCCF80936F +:101D3000C6003196F5CF28AD39AD4AAD5BAD6091A7 +:101D4000280A7091290A80912A0A90912B0A0F94EF +:101D500019BFAB01BC0122E030E080EF96E00E94A9 +:101D60000B5EEFE5FBE08491882341F09091C00089 +:101D700095FFFCCF8093C6003196F5CF8091C000CF +:101D800085FFFCCF8AE08093C600BE016F5F7F4F66 +:101D9000C1010F946061F2E02F0E311C2AE0620E47 +:101DA000711C3FEF431A530A4EE66416710409F0A2 +:101DB0005ACE1092450A1092440A1092470A61E0E6 +:101DC00086EA9FE00F946FCBE0E2FBE084918823EA +:101DD00041F09091C00095FFFCCF8093C6003196F2 +:101DE000F5CF8091C00085FFFCCF8AE08093C600CC +:101DF000179A1092110A169A1092120A149A1092B7 +:101E0000411710924017E091530AF0E0EE0FFF1FC8 +:101E1000EB56F548859194910F94F56581E00F9408 +:101E2000C56482E00F94CB630C9437AB81E0809360 +:101E3000550A86E50E942E5E8823A1F08091D10785 +:101E40009091D207DC0111962C91293069F02F7DF9 +:101E500071F04AE050E060E070E001960F94DDC65A +:101E600068AF07C018AE05C0B1E0B8AF02C0E1E08E +:101E7000E8AF8091110A009121181091221888234F +:101E800041F08091120A882321F08091130A811178 +:101E900011C00230110551F081E08093D60761E056 +:101EA00089E19BE00E9492640C9437AB1092550A32 +:101EB0000C9437AB8091750781110C94C8AB80915D +:101EC000800A882311F40C94C8AB0E94BE62882358 +:101ED00011F40C94C8AB8091401790914117C297B0 +:101EE00014F00C94B6AB0C94C8AB8091930F88237C +:101EF00009F49EC0E2EEF8E08491882341F09091CD +:101F0000C00095FFFCCF8093C6003196F5CF4AE024 +:101F100050E067E070E080EF96E00E94185DE0EE30 +:101F2000F8E08491882341F09091C00095FFFCCFA8 +:101F30008093C6003196F5CF4AE050E067E070E04C +:101F400080EF96E00E94185DEDECF8E08491882324 +:101F500041F09091C00095FFFCCF8093C600319670 +:101F6000F5CF4AE050E065E070E080EF96E00E9437 +:101F7000185DEBEBF8E08491882341F09091C0006C +:101F800095FFFCCF8093C6003196F5CF8091C000BD +:101F900085FFFCCF8AE08093C60000E010E088EB6C +:101FA000A82E88E0B82E96EB892E98E0992EE12C89 +:101FB000F12C9801255C3F4E6901F5018491E8EB15 +:101FC000F8E0882349F09091C00095FFFCCF809302 +:101FD000C60031968491F5CFF601EE0DFF1D4181CB +:101FE00052816381748125E030E080EF96E00E94A9 +:101FF0000B5EF4E0EF0EF11C2CE1E216F104E9F6C1 +:10200000F4018491E6EBF8E0882349F09091C00058 +:1020100095FFFCCF8093C60031968491F5CF0C518B +:1020200011090C33FFEF1F0709F0C1CF0C9437AB38 +:10203000E8E9F8E08491882341F09091C00095FF91 +:10204000FCCF8093C6003196F5CF8091C00085FF0C +:10205000FCCF8AE08093C6000C9437AB81E00E94ED +:10206000B8620C9437AB1092CA090C9437AB85E474 +:102070000E942E5E811102C00F94B93EF7E26F2ECE +:10208000F4E07F2EA4E18A2EAAE09A2EB0E2AB2ED5 +:10209000BAE0BB2E512CD3018D913D010E942E5EE2 +:1020A0008823D9F1B3E05B120CC00E94C95EF50130 +:1020B00060837183828393838CE29AE00F9444342B +:1020C0002CC00E94C95ED4012D913D914D915C912F +:1020D0000F941ABFF5016083718382839383E0902C +:1020E000280AF090290A00912A0A10912B0A2091BF +:1020F000240A3091250A4091260A5091270A6091BE +:10210000200A7091210A8091220A9091230AECE220 +:10211000CE2EEAE0DE2E0F94C0325394F4E08F0E00 +:10212000911C24E0A20EB11C34E05312B4CF0C94E5 +:1021300037AB81E080931D180F9424B76093910A08 +:102140007093920A8093930A9093940A60911D1859 +:1021500084EC9FE00F946FCB0C9437AB8DE40E941E +:102160002E5E882311F40C941FAAE091D107F09100 +:10217000D207319681918032E9F38930D9F38053C7 +:102180008A30B0F0E9E8F8E08491882341F090913A +:10219000C00095FFFCCF8093C6003196F5CF8091AB +:1021A000C00085FFFCCF8AE08093C6000C9437AB5B +:1021B0000E94C95E0F9479C06937710511F40C94BF +:1021C000EB9C0CF0E6C06D32710509F4CEC40CF046 +:1021D0006FC06931710509F408C3B4F56431710544 +:1021E00009F4ABC294F46131710509F495C234F479 +:1021F0006230710508F4DFC10C940AAA62317105DE +:1022000011F40C94C59A0C940AAA6631710509F46C +:10221000CEC20CF4C6C26731710509F4CEC2683172 +:10222000710511F00C940AAA8DE99AE00E9408CA7F +:102230000F9424B76093C5077093C6078093C707B0 +:102240009093C8070C9437AB6E31710509F418C32D +:102250008CF46B31710509F4DEC20CF4CEC26C3122 +:10226000710509F4DEC26D31710511F40C9437ABC0 +:102270000C940AAA6032710509F43AC30CF4CEC377 +:102280006A32710509F42AC46C32710511F00C949C +:102290000AAA8FEF0E94B86260E070E088EF9FE0CA +:1022A0000F9489CB0E944BEF0E94DEEF0C9437AB6A +:1022B0006936710509F412C6B4F56335710511F478 +:1022C0000C94C09AECF46035710511F40C94839A67 +:1022D0004CF46F32710511F00C940AAA0F942E7C05 +:1022E0000C9437AB6135710511F40C94989A6235F2 +:1022F000710511F00C940AAA1092900A0C9437AB55 +:102300006535710511F40C94119B14F40C94C59A65 +:102310006C35710511F40C942C9B6836710509F429 +:10232000AAC50C940AAA6037710509F4C2C59CF4C9 +:102330006B36710511F40C947D9A14F40C944D9A3B +:102340006D36710509F4D7C66E36710511F40C941B +:10235000AF9B0C940AAA6337710511F40C94CA9BC5 +:102360004CF46237710511F00C940AAAE7E4F8E026 +:102370000C94119C6737710511F40C94F09C68372C +:10238000710511F00C940AAA80E00F947C350C942E +:1023900037AB603341E0740711F40C9424A20CF0C5 +:1023A00077C0603D710511F40C94FB9FBCF56B3C4C +:1023B000710511F40C94F19EECF46E3B710509F477 +:1023C0003AC734F46C38710509F477C50C940AAA3D +:1023D000683C710511F40C945F9E693C710511F025 +:1023E0000C940AAA07E214E04EE1E42E46E1F42E32 +:1023F0000C94D69E6D3C710511F40C94309F14F42E +:102400000C940E9F6E3C710511F40C94A79F6F3CC9 +:10241000710511F40C94C49F0C940AAA603F7105D5 +:1024200011F40C9437ABCCF46C3D710511F40C94A1 +:1024300084A03CF4613D710511F40C9423A00C942C +:102440000AAA6D3D710511F40C9495A0623E7105C8 +:1024500011F40C94BFA00C940AAA6D3281E07807A5 +:1024600011F40C9459A13CF46C32714011F40C94A9 +:1024700021A10C940AAA6E32B1E07B0711F40C94EE +:10248000C6A26F32714011F40C94D5A20C940AAA22 +:102490006935F2E07F0711F40C94A8A7D4F5653FE5 +:1024A00031E0730711F40C9412A3ECF46F3551E092 +:1024B000750711F40C9424A83CF46E35714011F4A6 +:1024C0000C94EDA70C940AAA6039A1E07A0711F4E4 +:1024D0000C940EA3643F714011F00C940AAA0E9460 +:1024E000CC500C9437AB673FE1E07E0711F40C94BD +:1024F0001AA314F40C9416A36D3F21E0720711F493 +:102500000C941EA36835724011F40C942FA40C9403 +:102510000AAA643843E0740711F40C94C4A7DCF4ED +:102520006D3B82E0780711F40C9480A83CF46A3586 +:10253000724011F40C94B6A70C940AAA6E3BB2E058 +:102540007B0711F40C94A2A96335734011F40C9429 +:102550003CA30C940AAA6C38F3E07F0711F40C94A6 +:1025600037AB3CF46B38734011F40C94C7A70C9450 +:102570000AAA603A43E0740709F423C2673E734035 +:1025800011F00C940AAA1092BB070F947B62809101 +:10259000CB099091CC09A091CD09B091CE0980933F +:1025A000CF099093D009A093D109B093D2090E948A +:1025B00000690C9437AB0091D1071091D2070E5FE0 +:1025C0001F4F80E50E942E5E882379F00E94C95E2D +:1025D0000F947EC04B015C01FF24F39461157105DB +:1025E0008105910531F4F12C04C0F12C812C912C42 +:1025F000540183E50E942E5E882399F00E94C95EF3 +:1026000020E030E04AE754E40F940BC30F947EC0FF +:102610004B015C01EE24E394611571058105910580 +:1026200009F4E12C6AE270E0C8010F94C1C8009778 +:1026300011F0DC011C92F801CF0121912032E1F36D +:10264000F11007C0E11005C0222319F00F943D627C +:102650000BC0E091530AF0E0EE0FFF1FEB5EF54870 +:10266000859194910F944A6281E00F941D620F94BA +:10267000B93E0F9424B76093CD077093CE07809333 +:10268000CF079093D00781149104A104B104A9F05D +:102690000F9424B72B013C01480C591C6A1C7B1C6D +:1026A0000F9424B76415750586059705C8F40F9433 +:1026B000EC65811115C00C94CDB20F94EA658823A6 +:1026C00011F40C9437AB0F94EC6581110CC00F948E +:1026D000224D81E00E94487680E00F94CB63F3CFD7 +:1026E00080E00F941D6280919F0AE091530AF0E010 +:1026F000EE0FFF1F882341F0E95CF2488591949129 +:102700000F944A620C9437ABE353F6488591949149 +:102710000F944A620C9437ABE091530AF0E0EE0F4D +:10272000FF1FE959F148859194910F944A621798D7 +:102730001698159814980C9437ABE9EEF1E885914A +:102740009491FC012491222341F03091C00035FF87 +:10275000FCCF2093C6000196F4CF8091C00085FF86 +:10276000FCCF8AE08093C6008DE99AE00E94D9C828 +:10277000E7E1F1E885919491FC012491222341F055 +:102780003091C00035FFFCCF2093C6000196F4CFF6 +:102790008091C00085FFFCCF8AE08093C6000C9436 +:1027A00037AB8DE99AE00E942FC90C9437AB8DE9C5 +:1027B0009AE00E9404CA0C9437AB0091D1071091A3 +:1027C000D2070C5F1F4F6AE270E0C8010F94C1C8C6 +:1027D000009711F0DC011C9221E041E0B8018DE985 +:1027E0009AE00E94B2CE0C9437AB0E94CB828DE966 +:1027F0009AE00E940FCA0C9437AB8091A00A8823FC +:1028000011F40C9437AB83E50E942E5E81110C9479 +:10281000D7B20C9437AB8DE99AE00E94B4CB0C94FC +:1028200037AB8091D1079091D2076AE270E00496AD +:102830000F94C1C88C010097A9F08091DB0790919B +:10284000DC076EE470E08252984F0F94C1C860E2DA +:1028500070E00F94C1C801969093D2078093D1077E +:10286000F80110826091D1077091D2076C5F7F4FA1 +:1028700021E040E08DE99AE00E94B2CE0C9437ABA3 +:102880008091A00A882311F40C9437AB60E08DE9A5 +:102890009AE00E9442CE8091D1079091D2076AE2DD +:1028A00070E004960F94C1C88C010097A9F0809144 +:1028B000DB079091DC076EE470E08252984F0F9432 +:1028C000C1C860E270E00F94C1C801969093D2072E +:1028D0008093D107D8011C926091D1077091D207E3 +:1028E0006C5F7F4F8DE99AE00E9473CA0C9437ABFE +:1028F00080919F0A81110F94B93E0091D1071091E8 +:10290000D2070C5F1F4F6AE270E0C8010F94C1C884 +:102910007C0161E270E0C8010F94C1C8009719F012 +:102920008C010F5F1F4FE114F10411F0F7011082C9 +:1029300080E50E942E5EF82E2091D1073091D207BB +:102940000217130708F4F12C8091A00A882311F4D0 +:102950000C9437AB21E02F2541E0B8018DE99AE0D6 +:102960000E94B2CE83E50E942E5E8823B9F02091AA +:10297000D1073091D2072017310780F40E94445EBE +:10298000AB01BC0140933B0D50933C0D60933D0D5A +:1029900070933E0D86E89CE00E9462BC8DE99AE04F +:1029A0000E9408CAF1100C9437AB0F9424B76093BF +:1029B000C5077093C6078093C7079093C8070C9408 +:1029C00037AB8091D1079091D2076AE270E005960B +:1029D0000F94C1C88C010097A9F08091DB079091FA +:1029E000DC076EE470E08252984F0F94C1C860E239 +:1029F00070E00F94C1C801969093D2078093D107DD +:102A0000D8011C926091D1077091D2076B5F7F4F04 +:102A10008DE99AE00E94EFD10C9437AB0F9424B764 +:102A20006093C1077093C2078093C3079093C40754 +:102A30000091C5071091C6072091C7073091C807BC +:102A4000601B710B820B930B28EE33E040E050E0EB +:102A50000F94FCC4CA01B9012CE330E040E050E01F +:102A60000F94FCC47F936F933F932F938AE798E072 +:102A70009F938F93CE0101969F938F930F9441C99B +:102A8000ECE3FDE084910FB6F894DEBF0FBECDBF3E +:102A9000ECE3FDE0882349F09091C00095FFFCCF66 +:102AA0008093C60031968491F5CFFE0131968191D5 +:102AB000882339F09091C00095FFFCCF8093C60029 +:102AC000F6CF8091C00085FFFCCF8AE08093C600DE +:102AD000CE0101960F943D620C9437AB83E50E94C2 +:102AE0002E5E882311F40C9437AB0E94C95E0F94BC +:102AF00079C0F62EE72E862F9E2D8C0180E50E9450 +:102B00002E5E882331F00F3F110509F010F40C946C +:102B1000E8B20DE010E0EFEEF3E0819191918017C3 +:102B2000910711F40C9437AB24E0E732F207A9F7D0 +:102B30000630110539F48F2D9E2D90930B0A80934A +:102B40000A0A04C017FF02C00C9437AB61E0802F63 +:102B50000F940FB96F2D802F0F9448B96F2D7E2DD4 +:102B6000802F0F94F7B70C9437AB8AE50E942E5E46 +:102B7000382E811112C010924117109240171092F6 +:102B80004317109242171092451710924417109253 +:102B90004717109246170F94876180E00F94C56421 +:102BA00083E99FE00F94BC190E94DEEF0F940A198D +:102BB0001092110A1092120A1092130A832D0F9488 +:102BC000AF9B882309F452C10E94086820E030E0DE +:102BD00048E452E460913A1770913B1780913C179A +:102BE00090913D170F9439C2181684F020E030E020 +:102BF00048E452E46091341770913517809136178C +:102C0000909137170F9439C2181624F4332011F419 +:102C10000C94EFB280E090E0A0EAB0E48093280A40 +:102C20009093290AA0932A0AB0932B0A20E030E05F +:102C300040E252E46091510270915202809153023D +:102C4000909154020F9411C04B015C012091240A11 +:102C50003091250A4091260A5091270A6091200A56 +:102C60007091210A8091220A9091230AECE0FAE007 +:102C7000FF93EF93FCE2CF2EFAE0DF2EE12CF12C54 +:102C800000EA10E40F9415260F94B93E0E9469667D +:102C900081E00E944F5E0E94D36786E50E942E5E0F +:102CA0000F900F908823A1F08091D1079091D207C7 +:102CB000DC0111962C91293069F02F7D71F04AE0EA +:102CC00050E060E070E001960F94DDC668AF07C089 +:102CD00018AE05C0B1E0B8AF02C0E1E0E8AF332004 +:102CE000B1F00E947D5E0E9433F00E944FF20F947B +:102CF000120F882309F4BAC087EF9FE00F945DCBD1 +:102D0000803F09F0B3C081E00E94B862AFC08FEF8E +:102D10000E94B86260E070E088EF9FE00F9489CB7A +:102D20001982BE016F5F7F4F88AD0F945C073C0135 +:102D30000E947D5E212C312C70EA472E70E4572EC4 +:102D40002092280A3092290A40922A0A50922B0A8D +:102D500020E030E040E252E4609151027091520272 +:102D600080915302909154020F9411C04B015C0169 +:102D70002091240A3091250A4091260A5091270A71 +:102D80006091200A7091210A8091220A9091230A71 +:102D9000ACE0BAE0BF93AF93ECE2CE2EEAE0DE2ED9 +:102DA000820171010F9415260F94B93E0F900F9078 +:102DB00077FC48C0198283E99FE00F94BC190E94F8 +:102DC000A5EF81E00E944F5E0E94D367AE014F5F86 +:102DD0005F4F68AD81E00F9439113C010E947D5E28 +:102DE0002092280A3092290A40922A0A50922B0AED +:102DF00020E030E040E252E46091510270915202D2 +:102E000080915302909154020F9411C04B015C01C8 +:102E10002091240A3091250A4091260A5091270AD0 +:102E20006091200A7091210A8091220A9091230AD0 +:102E3000ACE0BAE0BF93AF930F9415260F94B93E60 +:102E40000F900F906981C3010F942C6677FC0EC020 +:102E500086EE0E94B862E091530AF0E0EE0FFF1F89 +:102E6000EF5EFC47859194910F94F56581E00F9496 +:102E7000C5640C9437AB88E690E00E9446708111DF +:102E80000C9437AB83E50E942E5E882371F000918D +:102E9000BC070E94C95E10E0000F111F0E5B184EA8 +:102EA0000F9479C0D8016D937C930F94B9450C941D +:102EB00037AB80E090E00E94866F83E50E942E5E33 +:102EC000882311F40C9437AB0E94C95E0F9479C02B +:102ED00070934117609340170C9437AB89E690E0EC +:102EE0000E94467081110C9437ABE4E7F8E08491BE +:102EF000882341F09091C00095FFFCCF8093C600DD +:102F00003196F5CFE091BC07B4E0EB9FF0011124BE +:102F1000E65CF84E408151816281738121E030E0AE +:102F200080EF96E00E940B5EE1E7F8E08491882351 +:102F300041F09091C00095FFFCCF8093C600319680 +:102F4000F5CFE091BC07F0E0EE0FFF1FEE5BF84E0F +:102F500060817181882777FD8095982F0F94ACC090 +:102F6000AB01BC0121E030E080EF96E00E940B5EF7 +:102F7000EDE6F8E08491882341F09091C00095FF40 +:102F8000FCCF8093C6003196F5CF40913417509115 +:102F90003517609136177091371721E030E080EFD8 +:102FA00096E00E940B5EEAE6F8E08491882341F007 +:102FB0009091C00095FFFCCF8093C6003196F5CF6D +:102FC0006091401770914117882777FD8095982F61 +:102FD0000F94ACC0AB01BC0121E030E080EF96E083 +:102FE0000E940B5EE7E6F8E08491882341F090911F +:102FF000C00095FFFCCF8093C6003196F5CF4AE024 +:1030000050E060E070E080EF96E00E94185DE5E639 +:10301000F8E08491882341F09091C00095FFFCCFA7 +:103020008093C6003196F5CF40913A1750913B17E7 +:1030300060913C1770913D1721E030E080EF96E001 +:103040000E940B5EE2E6F8E08491882341F09091C3 +:10305000C00095FFFCCF8093C6003196F5CF6091FC +:10306000421770914317882777FD8095982F0F940A +:10307000ACC0AB01BC0121E030E080EF96E00E94E3 +:103080000B5EEEE5F8E08491882341F09091C0005A +:1030900095FFFCCF8093C6003196F5CF8091BC0799 +:1030A00090E00F94AC444AE050E0BC0180EF96E021 +:1030B0000E94185DE9E5F8E08491882341F0909141 +:1030C000C00095FFFCCF8093C6003196F5CF8FEFFF +:1030D0009FEF0F94AC444AE050E0BC0180EF96E0D3 +:1030E0000E94185D8091C00085FFFCCF8AE080932C +:1030F000C6000C9424B38DE690E00E9446708111C6 +:103100000C9437ABE091530AF0E0EE0FFF1FEB5A3F +:10311000FF47859194910F944A6281E090E09093EB +:103120004B0A80934A0A80911D18882321F081E080 +:1031300090E00F94AD7183E50E942E5E882391F09C +:103140000091BC070E94C95E10E0000F111F0E5BCA +:10315000184E0F9479C0F8017183608381E08093E9 +:10316000060215C082E50E942E5E882381F0009140 +:10317000BC070E94C95E10E0000F111F0E5B184EC5 +:103180000F9479C0D8016D937C93109206020F942E +:10319000B9450F9424B76B017C010091BC0710E086 +:1031A000F801EE0FFF1FEE5BF84E608171818827FA +:1031B00077FD8095982F0F94ACC0F801EE0FFF1F9C +:1031C000EE0FFF1FE65CF84E11E020813181428155 +:1031D00053810F9439C218160CF010E01093BA07FF +:1031E0001092FB09C701B6010E942277E091530AB1 +:1031F000F0E0EE0FFF1FE95BFF47859194910F947C +:103200004A6282E090E090934B0A80934A0A809150 +:103210001D18882321F082E090E00F94AD710F9487 +:1032200024B76093CD077093CE078093CF07909318 +:10323000D0070C9437ABE091530AF0E0EE0FFF1F7C +:10324000ED56FD47859194910F944A6283E090E09A +:1032500090934B0A80934A0A80911D18882321F08D +:1032600081E090E00F94AD7183E50E942E5E88238B +:1032700061F00E94C95E0F9479C07093411760930A +:10328000401781E0809306020FC082E50E942E5E07 +:10329000882351F00E94C95E0F9479C07093411742 +:1032A00060934017109206020F9424B72B013C0143 +:1032B0001092FB096091401770914117882777FDA4 +:1032C0008095982F0F94ACC011E020913417309165 +:1032D000351740913617509137170F9439C2181689 +:1032E0000CF010E01093BA0706E518E082E5E82E2E +:1032F00088E0F82E9EE4A92E98E0B92E2AE0D22E7E +:103300008091BA076091401770914117882309F4A2 +:1033100090C08091FB0981118CC0882777FD809532 +:10332000982F0F94ACC020913417309135174091ED +:103330003617509137170F9439C218160CF090C0F9 +:103340000F9424B76419750986099709693E73407B +:103350008105910508F464C080911D1881115CC03D +:10336000E0910C0A24E0E29FF0011124E65CF84EA3 +:103370004081518162817381F8018491E6E5F8E032 +:10338000882349F09091C00095FFFCCF8093C60040 +:1033900031968491F5CF22E030E080EF96E00E94F4 +:1033A0000B5EF7018491E2E5F8E0882349F0909103 +:1033B000C00095FFFCCF8093C60031968491F5CF75 +:1033C00060910C0A70E04AE050E080EF96E00E94C5 +:1033D000185DF5018491EEE4F8E0882349F09091BE +:1033E000C00095FFFCCF8093C60031968491F5CF45 +:1033F00040913417509135176091361770913717F7 +:1034000021E030E080EF96E00E940B5E8091C000EA +:1034100085FFFCCFD092C6000F9424B72B013C014E +:103420000F94224D80E00E94487680E00F94CB6399 +:1034300067CF882777FD8095982F0F94ACC0209197 +:1034400034173091351740913617509137170F9434 +:103450000AC087FF05C080910602882309F470CF57 +:10346000E091530AF0E0EE0FFF1FEF55FD47859105 +:1034700094910F944A6284E090E090934B0A809379 +:103480004A0A0F9424B76093CD077093CE078093B8 +:10349000CF079093D0070C9437AB83E50E942E5E44 +:1034A000882319F10E94C95E20E030E0A9010F9441 +:1034B0000AC087FD0FC00E94C95E20E030E04FE7E0 +:1034C00053E40F9439C2181644F00E94C95E0F9459 +:1034D00079C005C060E070E002C06FEF70E07093EB +:1034E0000B0A60930A0A0C9437AB8FEF90E090932D +:1034F0000B0A80930A0A0C9437AB10920B0A1092B5 +:103500000A0A0C9437AB9B9AA39881E0809310022F +:10351000E091530AF0E0EE0FFF1FE353F648859168 +:1035200094910F944A6280E00F94CB630C9437AB74 +:103530000F94BA450F94B93E149A0F94373F1092E6 +:103540000B0A10920A0A68EE73E080E090E00F9494 +:1035500053B79B9AA39A10921002E5E6FEE74591B5 +:1035600054912CE438E06AE478E08DEC93E00E941A +:10357000D6D30F944A6280E00F94CB630C9437ABA0 +:1035800081E08093900A0C9437AB83E50E942E5E15 +:10359000882399F00E94C95E20E030E04AE754E4B5 +:1035A0000F940BC30F947EC06093070270930802C0 +:1035B0008093090290930A0230C088E50E942E5E33 +:1035C000811111C089E50E942E5E81110CC08AE52F +:1035D0000E942E5E811107C085E40E942E5E882322 +:1035E00011F40C941DB30F94B93E88E50E942E5E31 +:1035F000882319F0179A1092110A89E50E942E5E0D +:10360000882319F0169A1092120A8AE50E942E5EFB +:1036100085E40E942E5E8111149A1092410A0C9446 +:1036200037AB83E50E942E5E882311F40C9437ABF0 +:103630000E94C95E20E030E04AE754E40F940BC3D7 +:103640000F947EC06093C9077093CA078093CB071D +:103650009093CC070C9437AB27E234E039AF28AF16 +:103660000EE216E16EE3E62E66E1F62E7EEE272EE2 +:1036700075E1372ED12CA8ADB9AD8D91B9AFA8AFFA +:103680000E942E5E882309F45CC0B3E0DB1252C0B6 +:103690000E94C95E2B013C0120E030E040EA51E489 +:1036A0000F940AC087FF3FC0A3019201F801608117 +:1036B0007181828193810F9411C04B015C019B0148 +:1036C000AC0160910E1670910F16809110169091BA +:1036D00011160F940BC360930E1670930F16809300 +:1036E000101690931116A5019401D7016D917D914B +:1036F0008D919C910F940BC3F7016083718382833A +:103700009383D1016D917D918D919C910F94AAC06D +:10371000A50194010F940BC30F947EC0F101608347 +:10372000718382839383D8014D925D926D927C92D6 +:10373000139707C00E94C95EF8016083718382837A +:103740009383D3940C5F1F4FF4E0EF0EF11C24E041 +:10375000220E311C34E0D3128ECF0C9437AB8EE4A2 +:103760000E942E5E882361F00E94445E6093CF0920 +:103770007093D0098093D1099093D2090C9437AB00 +:103780001092CF091092D0091092D1091092D2094B +:103790000C9437AB86E50E942E5E8823B9F00F9417 +:1037A00088B3FC012491222341F03091C00035FF01 +:1037B000FCCF2093C6000196F4CF8091C00085FF16 +:1037C000FCCF8AE08093C6000C9437AB85E50E945D +:1037D0002E5E882369F08091D1079091D2070196DF +:1037E0009093D2078093D1070F94F9B50C9437AB1F +:1037F000E7E8FFE785919491FC012491222311F4DD +:103800000C9437AB3091C00035FFFCCF2093C6003D +:103810000196F2CF9091C00095FFFCCF8093C60037 +:10382000319684918111F6CF4091200A5091210A5E +:103830006091220A7091230A22E030E080EF96E046 +:103840000E940B5EE3E4F8E08491882341F09091BC +:10385000C00095FFFCCF8093C6003196F5CF409114 +:10386000240A5091250A6091260A7091270A22E0C5 +:1038700030E080EF96E00E940B5EEFE3F8E0849189 +:10388000882341F09091C00095FFFCCF8093C60043 +:103890003196F5CF4091280A5091290A60912A0A61 +:1038A00070912B0A22E030E080EF96E00E940B5EE0 +:1038B000EBE3F8E08491882341F09091C00095FFFC +:1038C000FCCF8093C6003196F5CF40912C0A5091E1 +:1038D0002D0A60912E0A70912F0A22E030E080EFCD +:1038E00096E00E940B5EE9E4F1E885919491FC0179 +:1038F0002491222341F03091C00035FFFCCF20936A +:10390000C6000196F4CF80E00F94163F0F94ACC030 +:1039100020912E1630912F1640913016509131166D +:103920000F9411C0AB01BC0122E030E080EF96E0C3 +:103930000E940B5EE7E3F8E08491882341F09091C8 +:10394000C00095FFFCCF8093C6003196F5CF81E093 +:103950000F94163F0F94ACC020913216309133165D +:1039600040913416509135160F9411C0AB01BC0133 +:1039700022E030E080EF96E00E940B5EE3E3F8E0A7 +:103980008491882341F09091C00095FFFCCF8093F3 +:10399000C6003196F5CF82E00F94163F0F94ACC06D +:1039A00020913616309137164091381650913916BD +:1039B0000F9411C0AB01BC0122E030E080EF96E033 +:1039C0000E940B5E8091C00085FFFCCF8AE080934F +:1039D000C6000C9437AB81E00F947C350C9437AB68 +:1039E000E5E8FFE785919491FC012491222341F0C1 +:1039F0003091C00035FFFCCF2093C6000196F4CF74 +:103A00008091C00085FFFCCF8AE08093C600E3EF81 +:103A1000F9E785919491FC012491222341F03091A2 +:103A2000C00035FFFCCF2093C6000196F4CF1E9B4B +:103A300010C0EBE1F1E885919491FC0124912223DF +:103A4000C1F03091C00035FFFCCF2093C600019635 +:103A5000F4CFE9E1F1E885919491FC0124912223CE +:103A600041F03091C00035FFFCCF2093C600019695 +:103A7000F4CF8091C00085FFFCCF8AE08093C60020 +:103A8000E5EFF9E785919491FC012491222341F01F +:103A90003091C00035FFFCCF2093C6000196F4CFD3 +:103AA000379910C0EBE1F1E885919491FC012491E4 +:103AB0002223C1F03091C00035FFFCCF2093C60017 +:103AC0000196F4CFE9E1F1E885919491FC0124910C +:103AD000222341F03091C00035FFFCCF2093C60077 +:103AE0000196F4CF8091C00085FFFCCF8AE08093DF +:103AF000C600E1EEF9E785919491FC01249122231F +:103B000041F03091C00035FFFCCF2093C6000196F4 +:103B1000F4CF1D9B10C0EBE1F1E885919491FC017D +:103B200024912223C1F03091C00035FFFCCF2093B7 +:103B3000C6000196F4CFE9E1F1E885919491FC018A +:103B40002491222341F03091C00035FFFCCF209317 +:103B5000C6000196F4CF8091C00085FFFCCF8AE0BB +:103B60008093C600E3EEF9E785919491FC012491DE +:103B7000222341F03091C00035FFFCCF2093C600D6 +:103B80000196F4CF029910C0EBE1F1E88591949190 +:103B9000FC0124912223C1F03091C00035FFFCCFFD +:103BA0002093C6000196F4CFE9E1F1E88591949164 +:103BB000FC012491222341F03091C00035FFFCCF5D +:103BC0002093C6000196F4CF8091C00085FFFCCF02 +:103BD0008AE08093C600EBEDF9E785919491FC01B2 +:103BE0002491222341F03091C00035FFFCCF209377 +:103BF000C6000196F4CF1C9B10C0EBE1F1E8859163 +:103C00009491FC0124912223C1F03091C00035FF32 +:103C1000FCCF2093C6000196F4CFE9E1F1E885914D +:103C20009491FC012491222341F03091C00035FF92 +:103C3000FCCF2093C6000196F4CF8091C00085FF91 +:103C4000FCCF8AE08093C600EDEDF9E78591949171 +:103C5000FC012491222341F03091C00035FFFCCFBC +:103C60002093C6000196F4CF019910C0EBE1F1E872 +:103C700085919491FC0124912223C1F03091C000E0 +:103C800035FFFCCF2093C6000196F4CFE9E1F1E8BF +:103C900085919491FC012491222341F03091C00040 +:103CA00035FFFCCF2093C6000196F4CF8091C00071 +:103CB00085FFFCCF8AE08093C6000C9437AB8091DF +:103CC0000C0A8093BC0784E50E942E5E882329F1AC +:103CD0000E94C95E0F947EC06093BC076623E9F022 +:103CE000ECE3FDE08491882341F09091C00095FFC2 +:103CF000FCCF8093C6003196F5CFE3E8FFE7A591AE +:103D0000B4918D91882311F40C9437AB9091C0003D +:103D100095FFFCCF8093C600F4CF84E40E942E5E12 +:103D2000882311F40C9437AB0E94C95E20E030E088 +:103D3000A9010F940AC0811103C01092300A32C049 +:103D40000091BC0710E00E94C95EF801EE0FFF1F52 +:103D5000EE0FFF1FE35CFD4F6083718382839383CB +:103D6000E0903D02F0903E0200913F02109140022F +:103D700020E030E0A901B701C8010F940AC0811109 +:103D800004C0E12CF12C00E410E4C701D8018093B9 +:103D90003D0290933E02A0933F02B093400281E027 +:103DA0008093300A0E94EE760C9437ABD8018D9147 +:103DB0008D010E942E5E882349F00E94C95E0F94F7 +:103DC0007EC0F7016083718382839383F4E0EF0EFA +:103DD000F11C24E00B32120749F70F946A340C945B +:103DE00037AB07E214E03EE3E32E36E1F32ED801D1 +:103DF0008D918D010E942E5E882339F00E94C95E4C +:103E0000F7016083718382839383F4E0EF0EF11CEA +:103E100024E00B32120759F70C9437AB83E50E946C +:103E20002E5E882351F00E94C95E6093161670932F +:103E30001716809318169093191684E50E942E5E2B +:103E4000882311F40C9437AB0E94C95E609312165C +:103E50007093131680931416909315160C9437AB29 +:103E600083E50E942E5E882351F00E94C95E609314 +:103E70001A1670931B1680931C1690931D1684E5DA +:103E80000E942E5E882351F00E94C95E6093FE1549 +:103E90007093FF15809300169093011682E40E94A0 +:103EA0002E5E882361F00E94C95E0F947EC06093ED +:103EB0004E1670934F16809350169093511688E5C6 +:103EC0000E942E5E882391F00E94C95E60930616C0 +:103ED0007093071680930816909309166093021644 +:103EE00070930316809304169093051689E50E943B +:103EF0002E5E882351F00E94C95E6093061670936F +:103F0000071680930816909309168AE50E942E5E84 +:103F1000882351F00E94C95E60930A1670930B16B5 +:103F200080930C1690930D1685E40E942E5E8823D4 +:103F300011F40C9437AB0E94C95E60930E16709317 +:103F40000F1680931016909311160C9437AB07E25E +:103F500014E024E1E22E2AE0F22ED8018D918D01A9 +:103F60000E942E5E882339F00E94C95EF7016083AB +:103F7000718382839383F4E0EF0EF11C24E00A3214 +:103F8000120759F70C9437AB83E50E942E5E882305 +:103F900051F00E94C95E60931D0270931E028093CF +:103FA0001F029093200286E40E942E5E882381F0F7 +:103FB0000E94C95E20E030E040E752E40F9411C057 +:103FC0006093150270931602809317029093180263 +:103FD0008AE50E942E5E882311F40C9437AB0E9470 +:103FE000C95E6093040A7093050A8093060A909351 +:103FF000070A0C9437AB83E50E942E5E882351F0AC +:104000000E94C95E6093000A7093010A8093020ABD +:104010009093030A86E40E942E5E882311F40C9488 +:1040200037AB0E94C95E20E030E040E752E40F94D5 +:1040300011C0609311027093120280931302909347 +:1040400014020C9437AB83E50E942E5E882311F492 +:104050000C9437AB0E94C95E0F9479C0611571054D +:1040600051F06130710569F481E08093090A109282 +:10407000080A0C9437AB1092090A1092080A0C94A3 +:1040800037ABECE3FDE08491882341F09091C000D0 +:1040900095FFFCCF8093C6003196F5CFEDE4FAE7AB +:1040A00085919491FC012491222341F03091C0002C +:1040B00035FFFCCF2093C6000196F4CFE091DB07DB +:1040C000F091DC07E252F84F8191882339F090910A +:1040D000C00095FFFCCF8093C600F6CFE1E3F8E087 +:1040E0008491882341F09091C00095FFFCCF80938C +:1040F000C6003196F5CF8091C00085FFFCCF8AE0E5 +:104100008093C6000C9437AB83E50E942E5E882313 +:1041100011F40C9437AB0E94C95E0F9479C0709370 +:104120004802609347020C9437AB83E50E942E5EF1 +:10413000882311F40C9437AB0E94C95E0F9479C0A8 +:104140006B017C0184E50E942E5E882391F08DED49 +:1041500090E00E94467081110C9437ABE091BC074F +:10416000F0E0EE0FFF1FED5BFD4FD182C0820C949B +:1041700037ABD0924602C09245020C9437AB80E533 +:104180000E942E5E882311F40C9437AB0E94C95E06 +:104190000F9479C0D62E062F172F83E50E942E5E2E +:1041A000882331F00E94C95E0F9479C07B0103C05F +:1041B000EE24EA94FE2CC7010196039710F00C94AC +:1041C00037ABEFEEF3E0819191918017910711F4F5 +:1041D0000C9437AB24E0E732F207A9F717FF02C0CF +:1041E0000C9437AB0F94B93ECD2C60E08D2D0F941D +:1041F0000FB93FEFE316F30631F0EA94EF2871F0C0 +:1042000000E010E00DC08D2D0F947DB931E020E06D +:10421000892B09F030E0032F122F02C001E010E0DB +:104220008C2D0F947DB98017910711F40C9437AB46 +:104230000F94224D80E00E94487680E00F94CB637B +:10424000EFCF83E50E942E5E882331F00E94C95E85 +:104250000F9479C08B0102C00EE610E080E50E9449 +:104260002E5E882331F00E94C95E0F9479C0CB0185 +:1042700002C088EE93E06C01EE24D7FCE094FE2CA3 +:104280001016110684F420E030E0A901B80184E59D +:104290000F9472BBC701B6010F9453B784E50F9416 +:1042A00098BE0C9437ABC701B6010F9453B70C946A +:1042B00037AB80E50E942E5E882351F00E94C95ED4 +:1042C000609396027093970280939802909399025C +:1042D00089E40E942E5E882361F00E94C95E0F94DB +:1042E0002A53609392027093930280939402909366 +:1042F000950284E40E942E5E882361F00E94C95ECC +:104300000F94365360938E0270938F0280939002C5 +:104310009093910283E40E942E5E882351F00E94C4 +:10432000C95E60938A0270938B0280938C02909393 +:104330008D020F947F44E3E6FEE785919491FC01A2 +:104340002491222341F03091C00035FFFCCF20930F +:10435000C6000196F4CFEAEDF3E08191882339F0AD +:104360009091C00095FFFCCF8093C600F6CF40919E +:10437000960250919702609198027091990222E002 +:1043800030E080EF96E00E940B5EEEEDF3E081916D +:10439000882339F09091C00095FFFCCF8093C60030 +:1043A000F6CF609192027091930280919402909165 +:1043B00095020F943053AB01BC0122E030E080EF56 +:1043C00096E00E940B5EE2EEF3E08191882339F0E3 +:1043D0009091C00095FFFCCF8093C600F6CF60910E +:1043E0008E0270918F0280919002909191020F94B1 +:1043F0003C53AB01BC0122E030E080EF96E00E942C +:104400000B5EE6EEF3E08191882339F09091C000D5 +:1044100095FFFCCF8093C600F6CF40918A02509161 +:104420008B0260918C0270918D0222E030E080EF6F +:1044300096E00E940B5E8091C00085FFFCCF8AE071 +:104440008093C6000C9437AB80E50E942E5E8823D3 +:1044500051F00E94C95E6093860270938702809338 +:1044600088029093890289E40E942E5E882361F07D +:104470000E94C95E0F942A53609382027093830254 +:10448000809384029093850284E40E942E5E8823A8 +:1044900061F00E94C95E0F94365360937E02709360 +:1044A0007F0280938002909381020F947F44E3E621 +:1044B000FEE785919491FC012491222341F03091F3 +:1044C000C00035FFFCCF2093C6000196F4CFEAED83 +:1044D000F3E08191882339F09091C00095FFFCCFE3 +:1044E0008093C600F6CF409186025091870260917A +:1044F00088027091890222E030E080EF96E00E940D +:104500000B5EEEEDF3E08191882339F09091C000CD +:1045100095FFFCCF8093C600F6CF60918202709128 +:10452000830280918402909185020F943053AB01F5 +:10453000BC0122E030E080EF96E00E940B5EE2EEEC +:10454000F3E08191882339F09091C00095FFFCCF72 +:104550008093C600F6CF60917E0270917F028091B9 +:104560008002909181020F943C53AB01BC0122E088 +:1045700030E080EF96E00E940B5E8091C00085FFE6 +:10458000FCCF8AE08093C6000C9437AB83E50E9491 +:104590002E5E882319F00E94C95E03C060E070E0BF +:1045A000CB010F9461340C9437AB85E40E942E5EEE +:1045B000882341F00E94C95E0F9479C08B0177FF78 +:1045C00003C009C000E010E0812C912CB6E1AB2EB5 +:1045D000B3E4BB2E06C0812C912CACE8AA2EA2E439 +:1045E000BA2E83E50E942E5E882321F00E94C95EC8 +:1045F0004B015C0183E40E942E5E882331F00E940F +:10460000C95E0F9479C09B0102C028E030E0A80188 +:10461000C501B4010F94CD450C9437AB0F94B93E4E +:104620000C9437AB0E9406580C9437AB0E947A5614 +:104630000C9437AB0E94DB510C9437AB0F94DB61C9 +:10464000ECE3FDE08491882341F09091C00095FF58 +:10465000FCCF8093C6003196F5CFE1E2F8E084917B +:10466000882311F40C9437AB9091C00095FFFCCFD8 +:104670008093C6003196F3CF8AE50E942E5E882390 +:1046800009F4AEC00E94C95E4B015C0120E030E03D +:1046900040E751EC0F9439C287FD4DC020E030E077 +:1046A00040EA50ECC501B4010F940AC018160CF48E +:1046B00042C0B7FAB094B7F8B09480920D0A9092C5 +:1046C0000E0AA0920F0AB092100AECE3FDE084916A +:1046D000882341F09091C00095FFFCCF8093C600E5 +:1046E0003196F5CFE3E6FEE745915491EFEDF9E71A +:1046F0008591949120E238E06BE776E00E94D6D372 +:10470000FC012491222341F03091C00035FFFCCF01 +:104710002093C6000196F4CF8091C00085FFFCCFA6 +:104720008AE08093C6008091C00085FFFCCF8AE0BC +:104730008093C6009CC7ECE3FDE08491882341F0A0 +:104740009091C00095FFFCCF8093C6003196F5CFC5 +:10475000EFEDF9E785919491FC012491222341F03A +:104760003091C00035FFFCCF2093C6000196F4CFF6 +:10477000EBEDF9E785919491FC012491222341F01E +:104780003091C00035FFFCCF2093C6000196F4CFD6 +:104790004AE050E061EF7FEF80EF96E00E94185D05 +:1047A000EDEDF9E785919491FC012491222341F0EC +:1047B0003091C00035FFFCCF2093C6000196F4CFA6 +:1047C0004AE050E06BEF7FEF80EF96E00E94185DCB +:1047D0008091C00085FFFCCF8AE08093C60047C768 +:1047E000ECE3FDE08491882341F09091C00095FFB7 +:1047F000FCCF8093C6003196F5CFEFEDF9E78591B8 +:1048000094916CE178E00E94B5D3FC0124912223BD +:1048100041F03091C00035FFFCCF2093C6000196D7 +:10482000F4CF8091C00085FFFCCF8AE08093C60062 +:1048300040910D0A50910E0A60910F0A7091100A72 +:10484000705822E030E080EF96E00E940B5E80918D +:10485000C00085FFFCCF8AE08093C60008C70F9494 +:10486000B93E80911D18882321F086E190E00F94D5 +:10487000AD718091470290914802909342028093DB +:104880004102C090200AD090210AE090220AF090C4 +:10489000230ACF8ED8A2E9A2FAA20091240A10918D +:1048A000250A2091260A3091270A0BA31CA32DA3C9 +:1048B0003EA34091280A5091290A60912A0A7091DA +:1048C0002B0A4FA358A769A77AA780912C0A909129 +:1048D0002D0AA0912E0AB0912F0A8BA79CA7ADA7F5 +:1048E000BEA7C982DA82EB82FC820D831E832F83EE +:1048F000388749875A876B877C878D879E87AF87E4 +:10490000B88B85E40E942E5E882359F00E94C95E10 +:104910009B01AC016BA57CA58DA59EA50F941ABF2C +:104920000AC020E030E040E050E46BA57CA58DA5F6 +:104930009EA50F9419BF6BA77CA78DA79EA7EFA07C +:10494000F8A409A51AA52BA13CA14DA15EA16F8DCC +:1049500078A189A19AA1ECE0FAE0FF93EF93812C72 +:10496000912CF8ECAF2EF3E4BF2EDE019B966D0187 +:104970000F9415268AE50E942E5E0F900F908823D3 +:1049800049F00E94C95E9B01AC016FA178A589A581 +:104990009AA51EC020E030E040EA51E46FA178A55E +:1049A00089A59AA50F941ABF4B015C016FA378A744 +:1049B00089A79AA720E030E040E251E40F940AC0B2 +:1049C00087FF0CC020E030E040E251E4C501B401B3 +:1049D0000F941ABF6FA378A789A79AA7EFA0F8A48E +:1049E00009A51AA52BA13CA14DA15EA16F8D78A1AF +:1049F00089A19AA1ECE0FAE0FF93EF93812C912C2E +:104A0000E0E7AE2EE1E4BE2EFE01BB966F010F94EF +:104A1000152688E50E942E5E0F900F90882379F06E +:104A20000E94C95E9B01AC016F8D78A189A19AA1FA +:104A30000F941ABF6F8F78A389A39AA304C01F8E07 +:104A400018A219A21AA289E50E942E5E882339F0C5 +:104A50000E94C95E6BA37CA38DA39EA308C08DECAE +:104A60009CECACE0B0EC8BA39CA3ADA3BEA3EFA0E9 +:104A7000F8A409A51AA52BA13CA14DA15EA16F8D9B +:104A800078A189A19AA1ECE0FAE0FF93EF93812C41 +:104A9000912CA8E4AA2EA2E4BA2EDE019B966D0109 +:104AA0000F9415260F94B93E81E08093470AE09158 +:104AB000530AF0E0EE0FFF1FE15CF54885919491F9 +:104AC0000F944A628CE40E942E5E0F900F90882310 +:104AD00059F00E94C95E9B01AC016BA57CA58DA518 +:104AE0009EA50F941ABF0AC020E030E040EA52E4CD +:104AF0006BA57CA58DA59EA50F9419BF6BA77CA760 +:104B00008DA79EA7EFA0F8A409A51AA52BA13CA1EB +:104B10004DA15EA16F8D78A189A19AA1ECE0FAE088 +:104B2000FF93EF93812C912CF8ECAF2EF3E4BF2E82 +:104B3000FE01BB966F010F9415260F94B93E149A8F +:104B400064E670E080E090E00F9453B70F94C78A5A +:104B50000F9424B76093560A7093570A8093580AAB +:104B60009093590A0F900F9000E010E0F12C0F94F1 +:104B7000EC6581112AC0F3940F94224D81E00E94CC +:104B80004876F110F4CF043FF1E01F0711F400E084 +:104B900010E08091010184608093010101151105ED +:104BA00031F49FB7F89480910201846008C0043109 +:104BB000110541F49FB7F894809102018B7F809397 +:104BC00002019FBF0F5F1F4FD2CF9FB7F894809114 +:104BD00002018B7F809302019FBF20E030E04CE810 +:104BE00052E46BA57CA58DA59EA50F941ABF6BA75B +:104BF0007CA78DA79EA7EFA0F8A409A51AA52BA1B5 +:104C00003CA14DA15EA16F8D78A189A19AA1ACE0D4 +:104C10006A2EAAE07A2E7F926F92812C912CB0EAB4 +:104C2000AB2EB1E4BB2EDE019B966D010F941526D1 +:104C300020E030E048E452E46BA57CA58DA59EA55C +:104C40000F941ABF6BA77CA78DA79EA7EFA0F8A40F +:104C500009A51AA52BA13CA14DA15EA16F8D78A13C +:104C600089A19AA17F926F92812C912CA12CE0E4D2 +:104C7000BE2E0F9415261092790A1092780A0F947E +:104C8000488B0F900F900F900F908091780A909121 +:104C9000790A019709F48CC01092790A1092780A67 +:104CA0000F94928B8091780A9091790A82309105C5 +:104CB00071F1039709F076C020E030E048E452E457 +:104CC0006BA57CA58DA59EA50F941ABF6BA77CA78D +:104CD0008DA79EA7EFA0F8A409A51AA52BA13CA11A +:104CE0004DA15EA16F8D78A189A19AA17F926F924B +:104CF000812C912CA12CB0E4BB2EDE019B966D0182 +:104D00000F9415260F94FE8A0F900F90BECF20E0CF +:104D100030E04CE852E46BA57CA58DA59EA50F94D0 +:104D20001ABF6BA77CA78DA79EA7EFA0F8A409A523 +:104D30001AA52BA13CA14DA15EA16F8D78A189A1DF +:104D40009AA17F926F92812C912CE0EAAE2EE1E441 +:104D5000BE2EDE019B966D010F94152620E030E0FB +:104D600048E452E46BA57CA58DA59EA50F941ABFBF +:104D70006BA77CA78DA79EA7EFA0F8A409A51AA5ED +:104D80002BA13CA14DA15EA16F8D78A189A19AA113 +:104D90007F926F92812C912CA12CF0E4BF2E0F9466 +:104DA00015266DCF0F94EB8A81E00F94C5646DCF0B +:104DB00020E030E040EA50E46BA57CA58DA59EA5DF +:104DC0000F941ABF6BA77CA78DA79EA7EFA0F8A48E +:104DD00009A51AA52BA13CA14DA15EA16F8D78A1BB +:104DE00089A19AA1ECE06E2EEAE07E2E7F926F926E +:104DF000812C912CA12CF0E4BF2EFE01BB966F01FB +:104E00000F941526A50194016BA57CA58DA59EA5E3 +:104E10000F9419BF6BA77CA78DA79EA7EFA0F8A43E +:104E200009A51AA52BA13CA14DA15EA16F8D78A16A +:104E300089A19AA17F926F92812C912CA8ECAA2E25 +:104E4000A3E4BA2E0F941526EFA0F8A409A51AA57D +:104E50002D813E814F81588569817A818B819C812A +:104E60007F926F92812C912CB8E4AB2EB2E4BB2ED2 +:104E70000F941526E984FA840B851C852D813E81CB +:104E80004F81588569817A818B819C817F926F9255 +:104E9000812C912CE0E7AE2EE1E4BE2E0F94152676 +:104EA00020E030E040E050E46BA57CA58DA59EA5F8 +:104EB0000F941ABF6BA77CA78DA79EA7E984FA84DD +:104EC0000B851C852D813E814F81588569817A81B2 +:104ED0008B819C817F926F92812C912CF8ECAF2E6C +:104EE000F3E4BF2E0F941526CE010D960F94443493 +:104EF0008091410290914202809347029093480230 +:104F00009F938F9383E198E09F938F938E01015D30 +:104F10001F4F1F930F930F9441C960E0C8010E9477 +:104F2000B563E091530AF0E0EE0FFF1FE353F6483C +:104F3000859194910F944A621092470A1092450A03 +:104F40001092440A0FB6F894DEBF0FBECDBF8FC3D8 +:104F50008091211890912218892B09F088C385E04F +:104F600090E0909322188093211881C3809121189A +:104F700090912218892B09F07AC386E090E09093F3 +:104F800022188093211873C30E94736670C388E54A +:104F90000E942E5E882339F00E94C95E0F9479C06A +:104FA00080E00F941E408AE50E942E5E882339F02F +:104FB0000E94C95E0F9479C081E00F941E4085E481 +:104FC0000E942E5E882309F452C30E94C95E0F948A +:104FD00079C082E00F941E404AC383E50E942E5E92 +:104FE000811104C007E214E0F12C10C010E00E940F +:104FF000C95E0F947EC0812F0F94F8401F5F15305B +:10500000B1F7F0CFF394B4E0FB1679F0D8018D91AD +:105010008D010E942E5E8823A9F30E94C95E0F9421 +:105020007EC08F2D0F94F840EDCF82E40E942E5E5B +:10503000882339F00E94C95E0F947EC084E00F94EB +:10504000F8400F94C34113C383E50E942E5E88236A +:1050500009F453C00E94C95E0F9479C06130710594 +:1050600041F06230710509F048C007E214E0F12C0C +:1050700025C007E214E0F12CF80181918F010E9414 +:105080002E5E882341F00E94C95E0F9479C04FEFD5 +:105090008F2D0F94BA40F394F4E0FF12EDCF82E429 +:1050A0000E942E5E882349F10E94C95E0F9479C048 +:1050B0004FEF20C0F394B4E0FB1689F0D8018D9136 +:1050C0008D010E942E5E8823A9F30E94C95E0F9471 +:1050D00079C0462F6FEF8F2D0F94BA40EBCF82E44B +:1050E0000E942E5E882349F00E94C95E0F9479C009 +:1050F000462F6FEF84E00F94BA400F94C341B7C2BC +:10510000159881E08093470A82E090E09093450AE9 +:105110008093440AE091530AF0E0EE0FFF1FE5553B +:10512000F048859194910F944A6220E030E04CE879 +:1051300052E460912C0A70912D0A80912E0A909170 +:105140002F0A0F941ABF60932C0A70932D0A809334 +:105150002E0A90932F0AE090280AF090290A0091D5 +:105160002A0A10912B0A2091240A3091250A409195 +:10517000260A5091270A6091200A7091210A809195 +:10518000220A9091230AECE06E2EEAE07E2E7F92B6 +:105190006F92812C912CF0ECAF2EF0E4BF2EACE29C +:1051A000CA2EAAE0DA2E0F94152620E030E048EC53 +:1051B00051E460912C0A70912D0A80912E0A9091F1 +:1051C0002F0A0F941ABF60932C0A70932D0A8093B4 +:1051D0002E0A90932F0AE090280AF090290A009155 +:1051E0002A0A10912B0A2091240A3091250A409115 +:1051F000260A5091270A6091200A7091210A809115 +:10520000220A9091230A7F926F92812C912CB0E810 +:10521000AB2EBFE3BB2E0F9415260F94B93E0F9013 +:105220000F900F900F9080911D188823D1F081E08E +:105230000F94C56482E00F94CB63E091530AF0E0D1 +:10524000EE0FFF1FE353F648859194910F944A6245 +:105250001092460A1092470A1092450A1092440A88 +:1052600006C28091460A882311F3E091530AF0E0C8 +:10527000EE0FFF1FE354FF478591949141E060E0FA +:105280000F94249591E0811101C090E0BCE06B2E59 +:10529000BAE07B2E9111CBCF81E00F94C56482E000 +:1052A0000F94CB6320E030E048EC51E460912C0A8D +:1052B00070912D0A80912E0A90912F0A0F941ABF97 +:1052C00060932C0A70932D0A80932E0A90932F0AD4 +:1052D000E090280AF090290A00912A0A10912B0ADE +:1052E0002091240A3091250A4091260A5091270ADC +:1052F0006091200A7091210A8091220A9091230ADC +:105300007F926F92812C912CB0E8AB2EBFE3BB2E25 +:10531000ECE2CE2EEAE0DE2E0F9415260F94B93E75 +:10532000E091530AF0E0EE0FFF1FE354FF47859131 +:10533000949141E060E00F9424950F900F908111BB +:1053400076CFAACF81E08093470A82E090E09093E5 +:10535000450A8093440AE091530AF0E0EE0FFF1FE4 +:10536000E15CF548859194910F944A6220E030E029 +:1053700040EA52E460912C0A70912D0A80912E0A25 +:1053800090912F0A0F9419BF60932C0A70932D0AE5 +:1053900080932E0A90932F0AE090280AF090290A11 +:1053A00000912A0A10912B0A2091240A3091250A93 +:1053B0004091260A5091270A6091200A7091210A93 +:1053C0008091220A9091230AECE0FAE0FF93EF9398 +:1053D000812C912CB8EEAB2EB2E4BB2EECE2CE2E9B +:1053E000EAE0DE2E0F9415260F94B93EE091530AA1 +:1053F000F0E0EE0FFF1FE353F648859194910F9470 +:105400004A621092470A1092450A1092440A0F907D +:105410000F902DC1E3E0F8E08491882341F0909152 +:10542000C00095FFFCCF8093C6003196F5CF8091E8 +:10543000C00085FFFCCF8AE08093C60018C184E5D8 +:105440000E942E5E882309F4D1C0E091D107F0912B +:10545000D207319681918032E9F38930D9F390ED0A +:10546000980F9A30E0F08F33A9F0E3EFF7E08491E2 +:10547000882341F09091C00095FFFCCF8093C60037 +:105480003196F5CF8091C00085FFFCCF8AE08093F4 +:10549000C600EDC00F9466B28093BC0706C00E94A0 +:1054A000C95E0F947EC06093BC072091BC0781E069 +:1054B00090E0022E01C0880F0A94EAF79091410A09 +:1054C000982B9093410A222309F442C0ECE3FDE0BB +:1054D0008491882341F09091C00095FFFCCF809388 +:1054E000C6003196F5CFE1EFF7E08491882341F0D3 +:1054F0009091C00095FFFCCF8093C6003196F5CF08 +:105500006091BC0770E04AE050E080EF96E00E94B6 +:10551000185D8091C00085FFFCCF8AE08093C600B3 +:10552000E1EFFFE785919491FC012491222341F062 +:105530003091C00035FFFCCF2093C6000196F4CF18 +:105540008091C00085FFFCCF8AE08093C6008FC0A9 +:1055500086E40E942E5E8823D9F00E94C95E4B012A +:105560005C016093DB097093DC098093DD09909303 +:10557000DE0920E030E0A9010F9439C2181644F486 +:1055800080920B0290920C02A0920D02B0920E0239 +:10559000ECE3FDE08491882341F09091C00095FFF9 +:1055A000FCCF8093C6003196F5CFEDE4F3E885910A +:1055B0009491FC012491222341F03091C00035FFE9 +:1055C000FCCF2093C6000196F4CF60910C0A70E0E6 +:1055D0004AE050E080EF96E00E94185D8091C000A4 +:1055E00085FFFCCF8AE08093C60041C0ECE3FDE07C +:1055F0008491882341F09091C00095FFFCCF809367 +:10560000C6003196F5CFEDE4FAE785919491FC015F +:105610002491222341F03091C00035FFFCCF20932C +:10562000C6000196F4CFE091DB07F091DC07E2526F +:10563000F84F8191882339F09091C00095FFFCCFFD +:105640008093C600F6CFEFEEF7E08491882341F017 +:105650009091C00095FFFCCF8093C6003196F5CFA6 +:105660008091C00085FFFCCF8AE08093C6000E9435 +:10567000D568EAC78090F7099090F809A090F909D9 +:10568000B090FA0920912C0A30912D0A40912E0AEF +:1056900050912F0AC501B4010F9419BF2DEC3CECB9 +:1056A0004CEC5DE30F9439C2181614F00C94458845 +:1056B00080922C0A90922D0AA0922E0AB0922F0A64 +:1056C0008CE29AE00F94443460E080E00E94F96C30 +:1056D000BBC780E090E00E94175F0C94548981E082 +:1056E00090E00E94175F0C945F890E94C95E209130 +:1056F000140A3091150A4091160A5091170A0F9416 +:105700001ABF6093200A7093210A8093220A909313 +:10571000230A0C946C890E94C95E2091180A30916A +:10572000190A40911A0A50911B0A0F941ABF6093EC +:10573000240A7093250A8093260A9093270A0C94D2 +:10574000798980E090E00E94175F81E090E00E94FC +:10575000175F0C948F8980911D18882321F084E1B4 +:1057600090E00F94AD711092810A81CF0230110543 +:1057700011F40C94568F0E94597B81E08093750739 +:105780008093D60761E082E19BE00E9492646FCF34 +:10579000109275070230110519F41092550A67CF5F +:1057A000F091470A2B96FFAF2B972091440A309136 +:1057B000450A2D963FAF2EAF2D974091420A50914A +:1057C000430A2F965FAF4EAF2F9781E08093470A31 +:1057D00081E090E09093450A8093440A83E190E051 +:1057E0009093430A8093420A81E00F94CB6383E94C +:1057F0009FE00F94BC190F94EF1880E090E0A0EAAE +:10580000B0E48093280A9093290AA0932A0AB093BF +:105810002B0A20E030E040E752E4609151027091A1 +:10582000520280915302909154020F9411C04B0187 +:105830005C012091240A3091250A4091260A50915A +:10584000270A6091200A7091210A8091220A909182 +:10585000230AECE0FAE0FF93EF93FCE2CF2EFAE0AC +:10586000DF2EE12CF12C00EA10E40F941526E6E47B +:10587000FEE885919591A591B4918093200A90932B +:10588000210AA093220AB093230AEAE4FEE8859154 +:105890009591A591B4918093240A9093250AA093A1 +:1058A000260AB093270A64E27AE080E29AE00E9436 +:1058B000A16126968FAF26970F900F9058AD1516C1 +:1058C0000CF461C020E030E040EF51E46091490207 +:1058D00070914A0280914B0290914C020F9411C03A +:1058E0004B015C01E090280AF090290A00912A0AF5 +:1058F00010912B0A2091240A3091250A4091260A02 +:105900005091270A6091200A7091210A8091220A01 +:105910009091230AECE0FAE0FF93EF93ECE2CE2EB5 +:10592000EAE0DE2E0F9415260F94B93E20E030E019 +:1059300040EA51E46091490270914A0280914B0221 +:1059400090914C020F9411C00F9479C08B0120E00C +:1059500030E040E252E46091510270915202809135 +:105960005302909154020F9411C00F9479C07B019F +:105970000E9491EF21968FAF21970F900F9088ADE5 +:10598000181614F12BC026969FAD2697992371F017 +:10599000E0EFFAE08491882309F494CF9091C0005D +:1059A00095FFFCCF8093C6003196F4CFE6ECFAE089 +:1059B0008491882309F486CF9091C00095FFFCCF95 +:1059C0008093C6003196F4CF21969FAD21979923FD +:1059D00079F1E4EAFAE08491811122C080E00E942A +:1059E0004F5EA6E4BEE82396BFAFAEAF2397212C4F +:1059F000312C9701442737FD4095542F63962CAFE7 +:105A00003DAF4EAF5FAF6397C801AA2797FDA09542 +:105A1000BA2F67968CAF9DAFAEAFBFAF679715C07B +:105A20009091C00095FFFCCF8093C6003196D3CFF4 +:105A3000EEE7FAE08491882389F29091C00095FF07 +:105A4000FCCF8093C6003196F5CFA8AD1A16A4F40A +:105A5000EDE7FAE08491882341F09091C00095FF32 +:105A6000FCCF8093C6003196F5CF8091C00085FFB2 +:105A7000FCCF8AE08093C600C10163E070E00F9420 +:105A8000E9C425967FAF6EAF25979DAF8CAF249666 +:105A9000FFAD2497F0FF06C022E030E0281B390B51 +:105AA0003DAF2CAF21963FAD2197332309F475C04C +:105AB0002114310409F471C025968EAD9FAD259750 +:105AC000880F991F25964EAD5FAD2597840F951FC2 +:105AD000ACADBDAD8A0F9B1F880F991F8D53904FA2 +:105AE0000F946ACBBC01882777FD8095982F0F947F +:105AF000ACC02AE037ED43E25CE30F940BC3209186 +:105B0000940F3091950F4091960F5091970F0F94ED +:105B10001ABF2B013C01B8AD1B160CF041C0E7E6E3 +:105B2000FAE08491882341F09091C00095FFFCCF6A +:105B30008093C6003196F5CF4AE050E0B10180EF86 +:105B400096E00E94185DE5E5FAE08491882341F033 +:105B50009091C00095FFFCCF8093C6003196F5CFA1 +:105B600025E030E0B301A20180EF96E00E940B5ED9 +:105B7000E4E5FAE08491882341F09091C00095FF1C +:105B8000FCCF8093C6003196F5CF8091C00085FF91 +:105B9000FCCF8AE08093C60003C0412C512C320117 +:105BA00020E030E040EA50E42093280A3093290AAC +:105BB00040932A0A50932B0A63966CAD7DAD8EAD4F +:105BC0009FAD63970F94ACC02A966CAF7DAF8EAF3C +:105BD0009FAF2A972091240A3091250A4091260AE6 +:105BE0005091270A6091200A7091210A8091220A1F +:105BF0009091230AACE0BAE0BF93AF932A968CACA5 +:105C00009DACAEACBFAC2A97FCE2CF2EFAE0DF2E03 +:105C1000E12CF12C00EA10E40F9415260F94B93E04 +:105C20002396EEADFFAD239785919591A591B49103 +:105C30008093200A9093210AA093220AB093230A0A +:105C40002396EEADFFAD2397349685919591A5915E +:105C5000B4918093240A9093250AA093260AB093C6 +:105C6000270A64E27AE080E29AE00E94A1610F9044 +:105C70000F90F8AD1F16B4F167966CAD7DAD8EAD8B +:105C80009FAD67970F94ACC04B015C01E090280A70 +:105C9000F090290A00912A0A10912B0A2091240AD7 +:105CA0003091250A4091260A5091270A6091200AD6 +:105CB0007091210A8091220A9091230AACE0BAE007 +:105CC000BF93AF93ECE2CE2EEAE0DE2E0F941526C2 +:105CD0000F94B93E0F900F902196FFAD2197F111CF +:105CE00029C034C04AE050E0B10180EF96E00E9444 +:105CF000185D26962FAD2697222371F0E5E4FAE091 +:105D00008491882309F4B8CF9091C00095FFFCCF0F +:105D10008093C6003196F4CFE3E3FAE084918823C0 +:105D200009F4AACF9091C00095FFFCCF8093C600E4 +:105D30003196F4CF2114310449F020E030E040E8FE +:105D40005FE3C301B2010F9419BF04C060E070E0CB +:105D500080E291EC20E030E043E00E94DEF281112D +:105D600008C0E091530AF0E0EE0FFF1FE958FD472D +:105D70001FC08090280A9090290AA0902A0AB0900B +:105D80002B0AA501940160E070E080EA90E40F9492 +:105D900019BF2DEC3CEC4CEC5DE30F940AC087FF7F +:105DA0000AC0E091530AF0E0EE0FFF1FE759FD47EC +:105DB00065907490E8C02196FFAD2197FF23B9F05C +:105DC000A5019401C301B2010F9419BF9F7720E090 +:105DD00030E040E85FE30F9439C2181644F4E091D4 +:105DE000530AF0E0EE0FFF1FEB57FD47E1CF28AD60 +:105DF0002A300CF457C0EFE2FAE08491882341F096 +:105E00009091C00095FFFCCF8093C6003196F5CFEE +:105E10004091200A5091210A6091220A7091230A30 +:105E200025E030E080EF96E00E940B5EEEE2FAE0C3 +:105E30008491882341F09091C00095FFFCCF80931E +:105E4000C6003196F5CF8091C00085FFFCCF8AE077 +:105E50008093C600EAE2FAE08491882341F09091B1 +:105E6000C00095FFFCCF8093C6003196F5CF4091DE +:105E7000240A5091250A6091260A7091270A25E08C +:105E800030E080EF96E00E940B5EE8E2FAE0849159 +:105E9000882359F09091C00095FFFCCF8093C600F5 +:105EA0003196F5CF38AD13167CF5E4E1FAE007C082 +:105EB0009091C00095FFFCCF8093C60031968491ED +:105EC0008111F6CF4091280A5091290A60912A0A3F +:105ED00070912B0A25E030E080EF96E00E940B5E87 +:105EE000E3E1FAE08491882341F09091C00095FFAE +:105EF000FCCF8093C6003196F5CF8091C00085FF1E +:105F0000FCCF8AE08093C60087E025964EAD5FAD5A +:105F10002597849FF001859FF00D11248CAD9DADD8 +:105F2000E80FF91FEE0FFF1FEE0FFF1FED56F04FAA +:105F30008091280A9091290AA0912A0AB0912B0AEF +:105F400081839283A383B4838091420A9091430A10 +:105F500001979093430A8093420A9FEF291A390AC6 +:105F600081E00F94CB632396AEADBFAD2397189617 +:105F70002396BFAFAEAF2397B9E02B16310409F0DB +:105F800064CD612C712CE8ADE431A4F0ECEEF9E0C5 +:105F90008491882341F09091C00095FFFCCF8093BD +:105FA000C6003196F5CF8091C00085FFFCCF8AE016 +:105FB0008093C60080E090E0A0EAB0E48093280AD5 +:105FC0009093290AA0932A0AB0932B0AF8ADF431D2 +:105FD00014F1E7EDF9E08491882341F09091C0003D +:105FE00095FFFCCF8093C6003196F5CF8091C0001D +:105FF00085FFFCCF8AE08093C6004091280A50912B +:10600000290A60912A0A70912B0A25E030E080EF7E +:1060100096E00E940B5EE090280AF090290A009119 +:106020002A0A10912B0A2091240A3091250A4091C6 +:10603000260A5091270A6091200A7091210A8091C6 +:10604000220A9091230AECE0FAE0FF93EF932A965C +:106050008CAC9DACAEACBFAC2A97ECE2CE2EEAE0A5 +:10606000DE2E0F9415260F94B93E0F900F9029E065 +:106070002216310419F0C3010C945B970E947D5ED7 +:10608000E4ECF9E08491882341F09091C00095FF01 +:10609000FCCF8093C6003196F5CF8091C00085FF7C +:1060A000FCCF8AE08093C6008091800A882321F08B +:1060B0000E94BE6281112DC20F94C918E3EBF9E072 +:1060C0008491882341F09091C00095FFFCCF80938C +:1060D000C6003196F5CF8091C00085FFFCCF8AE0E5 +:1060E0008093C60080EC9FE00F945DCBEE24E39498 +:1060F000813009F0E12C38AD131654F0AE014F5F3A +:106100005F4F6A01F12C2CE4622E36E4732E1CC022 +:10611000EE2069F0E8E9F9E08491882379F3909121 +:10612000C00095FFFCCF8093C6003196F5CFE9E71C +:10613000F9E08491882311F39091C00095FFFCCF82 +:106140008093C6003196F5CF698252E55A837B82EF +:1061500082E48C83D6018D916D010E942E5E88238E +:1061600019F00E94445E1EC0EE2009F436C1B1E071 +:10617000BF1528F0F11009C08FEB9FE00BC0E2E0E3 +:10618000FE1206C08DEB9FE005C08EEB9FE002C0C3 +:106190008CEB9FE00F945DCB682F772767FD7095A0 +:1061A000872F972F611571058105910509F415C198 +:1061B0000F94ACC02FE632E143E85AE30F940BC3CF +:1061C0004B015C019F7727E139ED4EEC5DE30F94C5 +:1061D00039C218160CF037C0E2E4FDE08491882340 +:1061E00041F09091C00095FFFCCF8093C60031969E +:1061F000F5CFE5E5F9E08491882341F09091C00066 +:1062000095FFFCCF8093C6003196F5CF22E030E0B9 +:10621000B501A40180EF96E00E940B5EECE4F9E08A +:106220008491882341F09091C00095FFFCCF80932A +:10623000C6003196F5CF8091C00085FFFCCF8AE083 +:106240008093C600CAC0F2E0FF1609F469C023E0DB +:10625000F21609F494C031E0F31689F120E030E041 +:1062600040E05FE3C501B4010F940BC31B012C0197 +:1062700004E91FE0A2019101D80114966D917D916E +:106280008D919C9117970F941ABFF80164837583C1 +:1062900086839783A50194016081718182819381B6 +:1062A0000F941ABFD8016D937D938D939C93139790 +:1062B000045E1F4FBFE0083E1B07E1F68EC020E0E2 +:1062C00030E040E05FE3C501B4010F940BC31B0154 +:1062D0002C0108E91FE0A2019101F80160817181A0 +:1062E000828193810F941ABFD8016D937D938D9312 +:1062F0009C931397A501940114966D917D918D91B6 +:106300009C9117970F941ABFF80164837583868355 +:106310009783045E1F4FFFE00C3E1F07E1F65DC050 +:1063200020E030E040E05FE3C501B4010F940BC30F +:106330001B012C0104E91FE0A2019101D8015C9628 +:106340006D917D918D919C915F970F941ABFF8018B +:10635000648F758F868F978FA501940160817181FD +:10636000828193810F941ABFD8016D937D938D9391 +:106370009D938D01BFE0003A1B07F1F62EC020E08F +:1063800030E040E05FE3C501B4010F940BC31B0193 +:106390002C0100EB1FE0A2019101F80160817181E5 +:1063A000828193810F941ABFD8016D937D938D9351 +:1063B0009D938D01A501940158966D917D918D91CC +:1063C0009C915B970F941ABFF801608F718F828F39 +:1063D000938FFFE00C3B1F07F1F6F39424E0F212D9 +:1063E000B3CEEBE2F9E08491882341F09091C000B4 +:1063F00095FFFCCF8093C6003196F5CF8091C00009 +:1064000085FFFCCF8AE08093C60083E99FE00F946C +:10641000D719E9E1F9E08491882341F09091C00017 +:1064200095FFFCCF8093C6003196F5CF8091C000D8 +:1064300085FFFCCF8AE08093C60081E08093930FB4 +:10644000EDEFF8E08491882341F09091C00095FF32 +:10645000FCCF8093C6003196F5CF8091C00085FFB8 +:10646000FCCF8AE08093C6000F94AC0EECEEF8E00F +:106470008491882341F09091C00095FFFCCF8093D8 +:10648000C6003196F5CF8091C00085FFFCCF8AE031 +:106490008093C600E0910C0A34E0E39FF0011124E0 +:1064A000E65CF84E20E030E042E053E46081718128 +:1064B000828193810F9439C2181674F48091800AF6 +:1064C000882351F00E94BE62882331F080914017EA +:1064D00090914117C29704F52B964FAD2B9740939F +:1064E000470A2D968EAD9FAD2D979093450A8093C8 +:1064F000440A2F96AEADBFAD2F97B093430AA09339 +:10650000420A1092550A1092540A82E00F94CB630B +:10651000AEC80E944080D0CD20E030E040E85FE38C +:1065200060912C0A70912D0A80912E0A90912F0A69 +:106530000F941ABF60932C0A70932D0A80932E0A31 +:1065400090932F0AE090280AF090290A00912A0AD5 +:1065500010912B0A2091240A3091250A4091260A95 +:106560005091270A6091200A7091210A8091220A95 +:106570009091230AECE0FAE0FF93EF93812C912CA9 +:10658000E8ECAE2EE3E4BE2EFCE2CF2EFAE0DF2EE6 +:106590000F9415260F900F909FCF0F94224D81E0FE +:1065A0000E94487680E00F94CB630C9450930E9435 +:1065B000445EAB01BC0140933B0D50933C0D609396 +:1065C0003D0D70933E0D86E89CE00E9462BC4FC872 +:1065D0000E94C95E0F9479C08B010C948B950F9427 +:1065E0005B77E091530AF0E0EE0FFF1FEB5AF148A2 +:1065F000859194910F94F565E091530AF0E0EE0FC8 +:10660000FF1FE356FF4785919491BE016F5F7F4F57 +:106610000F94016541E050E062E080E00F943D613D +:10662000E091530AF0E0EE0FFF1FE157FF4785911D +:1066300094910F94BE780C940A960F94B93E149AD4 +:106640000F94373F0C940D9BCA5ADF4F0FB6F89446 +:10665000DEBF0FBECDBFDF91CF911F910F91FF9095 +:10666000EF90DF90CF90BF90AF909F908F907F90F2 +:106670006F905F904F903F902F9008950F931F93CE +:1066800080917A0A90917B0A892BA1F00F9424B70C +:106690000091BD071091BE072091BF073091C00740 +:1066A000601B710B820B930B693E73408105910552 +:1066B00008F085C080917A0A90917B0A892B11F4A9 +:1066C0001092820A8091520A882319F00E942A6847 +:1066D00064C00E94667160E08DE99AE00E944ACD34 +:1066E0008091D7079091D807892B09F456C08091E3 +:1066F0009D0A8823B1F00091DB071091DC0702525C +:10670000184F61E07CE0C8010F946CC8892B09F533 +:10671000B8018DE99AE00E9499CC80919E0A882365 +:1067200019F00E94DF8231C0E3E6FEE78591949183 +:10673000FC012491222341F03091C00035FFFCCFB1 +:106740002093C6000196F4CF8091C00085FFFCCF56 +:1067500019C060E08DE99AE00E9442CEE9EBF0E8D2 +:1067600085919491FC012491222341F03091C00045 +:1067700035FFFCCF2093C6000196F4CF8091C00076 +:1067800085FFFCCF8AE08093C6008091D6078111F7 +:1067900002C00E94EA621092D6070F94224D8091A7 +:1067A0001E18882311F081E001C080E00E94487625 +:1067B0000F94B23480E01F910F910D94CB6381E070 +:1067C0008093820A80917A0A90917B0A0197909334 +:1067D0007B0A80937A0A0F9424B76093BD07709365 +:1067E000BE078093BF079093C00764CFCF92DF921C +:1067F000EF92FF920F931F93CF93DF93CDB7DEB746 +:10680000E0970FB6F894DEBF0FBECDBF85E0EAEE8D +:10681000F3E0DE019C9601900D928A95E1F78E01DE +:10682000015E1F4FBEE9EB2EBFE0FB2ED02EC12E26 +:10683000C7010F945DCBF80181938F01FFEFEF1A31 +:10684000FF0A86EAE8168FE0F80691F71FA2ED2D01 +:10685000FC2D8191882339F09091C00095FFFCCFE9 +:106860008093C600F6CFBE01645D7F4F8D2D9C2DB9 +:106870000F94B6C8CF92DF9283E497E09F938F93F3 +:106880008E010F5F1F4F1F930F930F9441C90F90FD +:106890000F900F900F900F900F907E0195E0E90EF2 +:1068A000F11CF7018081882349F0992787FD909595 +:1068B0000F9416C8F70181937F01F3CF60E0C80100 +:1068C0000E94B5638AE99FE00F9465CBF62EE72E10 +:1068D000D82EC92EE8E2F7E08491882341F0909108 +:1068E000C00095FFFCCF8093C6003196F5CF2AE01B +:1068F00030E04F2D5E2D6D2D7C2D80EF96E00E94B7 +:10690000765DF0923B0DE0923C0DD0923D0DC09231 +:106910003E0D4F2D5E2D6D2D7C2D86E89CE0D2D74F +:1069200061E084E297E00E94B563CF92DF92EF923C +:10693000FF928CE197E09F938F931F930F930F9497 +:1069400041C960E0C8010E94B5630FB6F894DEBF8C +:106950000FBECDBFE0960FB6F894DEBF0FBECDBF21 +:10696000DF91CF911F910F91FF90EF90DF90CF902B +:106970000895EEE0F7E08491882341F09091C00003 +:1069800095FFFCCF8093C6003196F5CF8091890C9E +:10699000882321F18091330D9091340DA091350D14 +:1069A000B091360D0097A105B105C1F0BC01CD0134 +:1069B0006D597F4F8F4F9F4F24E630E040E050E00D +:1069C0000F94FCC460913B0D70913C0D80913D0D86 +:1069D00090913E0D0F94FCC4622F01C060E040E036 +:1069E00050E080EF96E00E945D5DE7E0F7E0849183 +:1069F000882341F09091C00095FFFCCF8093C600A2 +:106A00003196F5CF8091890C882349F040913B0D58 +:106A100050913C0D60913D0D70913E0D03C040E0E2 +:106A200050E0BA012AE030E080EF96E00C94765D09 +:106A30002FE234E0FC01318320832781222319F0E7 +:106A400004960C9445BD08958F929F92AF92BF9289 +:106A5000CF92DF92EF92FF920F931F93CF93DF932A +:106A60008C018B519E4FE4DF680189E8C80ED11C70 +:106A7000C114D10419F1780181E4E81A8EEFF80A03 +:106A8000E70157018FE1A81AB1088FE2882E84E050 +:106A9000982ECC15DD0591F0FE01EE19FF09EA0DE7 +:106AA000FB1D91828082FE0178978081811102C056 +:106AB0006F97EFCFCE014B97E8D7FACFC801865931 +:106AC0009F4FB6DFC801875B9F4FDF91CF911F912A +:106AD0000F91FF90EF90DF90CF90BF90AF909F907D +:106AE0008F90A6CF8DE99AE00E94A9C60F9424B793 +:106AF0006093990A70939A0A80939B0A90939C0AD8 +:106B00000F9424B76093950A7093960A8093970A1E +:106B10009093980A0F9424B76093910A7093920A05 +:106B20008093930A9093940A0F9424B76056794700 +:106B30008E4F9F4F60937C0A70937D0A80937E0AEC +:106B400090937F0A0F9424B760935A0A70935B0A5C +:106B500080935C0A90935D0A08958DE99AE074CF62 +:106B60008FEF8EBD0DB407FEFDCF8EB508958EBD9F +:106B70000DB407FEFDCF089561E0FC0180810D9406 +:106B800048B9FC012281322F306A36953CBD20FD88 +:106B900006C031E0263009F430E0232F01C020E0A8 +:106BA0002DBD60E0FC0180810D9448B9CF92DF9249 +:106BB000EF92FF920F931F93CF93DF93EC018B0122 +:106BC0007A010F9424B76B01CBDF8B838F3F49F49D +:106BD0000F9424B76C197D096D327140A8F381E1DF +:106BE00044C08E3F11F08FE040C0E114F104D9F0B1 +:106BF000C70101972FEF2EBDF8014FEF9F01201B1A +:106C0000310B2817390738F40DB407FEFDCF2EB528 +:106C100021934EBDF3CF0DB407FEFDCF2EB5F80185 +:106C2000E80FF91F2083D801E00EF11EC12CD12CF2 +:106C3000AE15BF0579F08D91ED2DFF27E827EE0FFA +:106C4000FF1FE75BF24F85919491DC2CCC24C82682 +:106C5000D926EECF85DF082F10E0102F002780DF28 +:106C6000082BC016D10659F080E28983CE0184DF5B +:106C7000CD81CC2369F08FEF7ADFC0E009C0CE016F +:106C80007BDFCD81CC2319F08FEF71DF01C0C1E034 +:106C90008C2FDF91CF911F910F91FF90EF90DF909C +:106CA000CF9008950F931F93CF93DF93EB010F9431 +:106CB00024B78B0155DF8F3F49F00F9424B7601B39 +:106CC000710B6C177D07B0F380E001C081E0DF91AC +:106CD000CF911F910F910895CF92DF92FF920F9362 +:106CE0001F93CF93DF9300D01F92CDB7DEB76C0117 +:106CF000F62E29833A834B835C8343DF6CE271E099 +:106D0000C601D0DF8F2D806432DF08E110E05C81A6 +:106D10004B813A812981DA01C901002E04C0B69560 +:106D2000A795979587950A94D2F729833A834B8341 +:106D30005C831DDF0850110929813A814B815C81F8 +:106D4000083F8FEF180739F7FF2029F0E8E0FE161B +:106D500021F08FEF03C085E901C087E808DFFCE080 +:106D6000FF1201C0FDDE10E0FBDEF601838387FF2A +:106D700004C01F3F11F01F5FF7CF0F900F900F90CF +:106D80000F90DF91CF911F910F91FF90DF90CF90E7 +:106D90000895BF92CF92DF92EF92FF920F931F93CD +:106DA000CF93DF93EC01B62E1C82198248830F9497 +:106DB00024B78B0161E088810F940FB9CE01DCDE2E +:106DC00060E082E30F940FB961E083E30F940FB9A1 +:106DD00061E084E30F940FB961E085E30F940FB98C +:106DE00061E085E30F9448B985E08A8382E58CBD34 +:106DF0001DBC6AE0F62E8FEFBADEFA94E1F720E0D0 +:106E000030E0A90160E0CE0167DFF82E8B8381E0DE +:106E1000F81649F00F9424B7601B710B613D774061 +:106E200070F381E046C02AEA31E040E050E068E0DB +:106E3000CE0152DF82FF02C0FC820CC054E0F52E6E +:106E40008FDE8B83FA94E1F78A3A11F082E031C049 +:106E500082E08C838C81823031F4C12CD12CE12CE6 +:106E600040E4F42E03C0C12CD12C760120E030E0A8 +:106E7000A90167E3CE0130DFA701960169E2CE01E7 +:106E80002BDF8B83882349F00F9424B7601B710B91 +:106E9000613D774058F38AE00CC08C818230B1F4B8 +:106EA00020E030E0A9016AE3CE0116DF882329F053 +:106EB00088E08983CE0160DE14C052DE807C803C95 +:106EC00011F483E08C834CDE4BDE4ADECE0154DECF +:106ED00086E08B1518F488E1898303C0BA8281E0CB +:106EE00001C080E0DF91CF911F910F91FF90EF9053 +:106EF000DF90CF90BF900895AF92BF92CF92DF9274 +:106F0000EF92FF920F931F93CF93DF93EC016A01EF +:106F10007B0189018C81833039F0F9E0CC0CDD1CD8 +:106F2000EE1CFF1CFA95D1F773E0B72EE4E0AE2E0D +:106F3000BA94A701960161E1CE01CEDE882311F05B +:106F4000A98207C040E052E0B801CE012FDE8111D6 +:106F50000EC0CE01BB2049F00FDE20E030E0A901D9 +:106F60006CE0CE01B9DE1982E3CF06DE80E0DF916E +:106F7000CF911F910F91FF90EF90DF90CF90BF9036 +:106F8000AF900895CF93DF93EC016EBD20E030E029 +:106F90000DB407FEFDCFFA01E20FF31F80818EBD15 +:106FA0000DB407FEFDCF81818EBD2E5F3F4F2115B1 +:106FB00082E0380769F70DB407FEFDCF8FEFD7DD0C +:106FC0008FEFD5DDCDDD8B838F71853031F083E19F +:106FD0008983CE01D1DD80E001C081E0DF91CF91D6 +:106FE00008950F931F93CF93DF93EC0189018C8158 +:106FF000833039F0B9E0440F551F661F771FBA95EB +:10700000D1F79A01AB0168E1CE0166DE882311F069 +:1070100086E01EC0A8016EEFCE01B4DF8823C9F060 +:1070200068E572E0CE013EDE182F811102C087E1D3 +:107030000FC020E030E0A9016DE0CE014DDE8111EE +:1070400006C08EDD811103C0CE0196DD05C086E14C +:107050008983CE0191DD10E0812FDF91CF911F91C7 +:107060000F9108950F931F93CF93DF93EC010F942B +:1070700024B78B0175DD8B838F3F49F40F9424B7C0 +:10708000601B710B6D327140A8F381E103C08E3F2C +:1070900031F08FE08983CE016FDD80E001C081E0B7 +:1070A000DF91CF911F910F910895CF92DF92EF92D0 +:1070B000FF920F931F93CF93DF937C0169019A0195 +:1070C000AB0160E309DE882321F080E8F7018183CA +:1070D0001BC0C701C7DF8823B9F0E601C00ED11E6F +:1070E000CC15DD0519F03CDD8993FACF0230F2E0D2 +:1070F0001F0720F435DD0F5F1F4FF8CFC7013CDDC0 +:107100008FEF35DD81E003C0C70136DD80E0DF9120 +:10711000CF911F910F91FF90EF90DF90CF90089546 +:107120004F925F926F927F928F929F92AF92BF9297 +:10713000CF92DF92EF92FF920F931F934801590174 +:1071400051E09522AA24BB24240135014E0C5F1C7A +:10715000611C711C51E0451652E055066104710432 +:1071600030F0E12CE2E0FE2EE818F90804C0E1144A +:10717000F10409F448C0462E512C612C712C77245F +:1071800046947794662455244424662369F0477016 +:10719000842E912CA12CB12C5CE1880C991CAA1C8A +:1071A000BB1C5A95D1F70CC04F70842E912CA12C8A +:1071B000B12C4BE1880C991CAA1CBB1C4A95D1F739 +:1071C000B901A8016170772709E0440F551F661FB8 +:1071D000771F0A95D1F74429552966297729270170 +:1071E00021E0421A510821E05222612C712C4429DD +:1071F000552966297729482959296A297B29870130 +:10720000960153DF01C081E01F910F91FF90EF9035 +:10721000DF90CF90BF90AF909F908F907F906F90B6 +:107220005F904F900895CF93DF93EC019C012C5F0A +:107230003F4F41E050E060E070E0898D9A8D0E9400 +:1072400005C4882399F04D895E896F89788D452B17 +:10725000462B472B59F44C815D816E817F814D8B8C +:107260005E8B6F8B788F998190689983DF91CF9136 +:107270000895CF92DF92EF92FF920F931F93CF93D7 +:10728000DF93EC0189899A89AB89BC89803E9F4F45 +:10729000AF41B10510F080E06AC0CE01C4DF8823A1 +:1072A000D1F30E9419C2182F8823A9F3E98DFA8D12 +:1072B000CC80DD80EE80FF8032E0C31AD108E10887 +:1072C000F108058404C0CC0CDD1CEE1CFF1C0A94E4 +:1072D000D2F786859785A089B189C80ED91EEA1E86 +:1072E000FB1E81E080934C0DC0924F0FD092500F47 +:1072F000E092510FF092520F80E092E0EFE4FDE057 +:10730000DF019C011D9221503040E1F701E0E98D41 +:10731000FA8D8481081788F42FE43DE0B701A601B7 +:10732000400F511D611D711D80914D0D90914E0DAD +:1073300058DE8823E1F00F5FEACFC12C82E0D82E1F +:10734000E12CF12C058404C0CC0CDD1CEE1CFF1CD0 +:107350000A94D2F749895A896B897C894C0D5D1D45 +:107360006E1D7F1D498B5A8B6B8B7C8B812FDF9120 +:10737000CF911F910F91FF90EF90DF90CF900895E4 +:10738000CF93DF93EC0141E0611101C040E06C85D7 +:107390007D858E859F850E9459C2882341F088890A +:1073A00020E2829FC0011124815B924F02C080E0E5 +:1073B00090E0DF91CF91089530E020E04EE2DC01D3 +:1073C0005C91503271F0383029F4FB01E20FF11D6D +:1073D00040832F5FFB01E20FF11DDC015C915083C4 +:1073E0002F5F3F5F01963B3051F7FB01E20FF11D2C +:1073F00010820895CF93DF93EB01FC0123812111CB +:1074000002C080E00EC02250223020F48FE2888338 +:10741000198206C060E0B4DF009799F3BE01CCDFAB +:1074200081E0DF91CF910895FB012BE030E23193B1 +:107430002150E9F7DC0190E027E03A2FEB2F8D9106 +:1074400081110AC0DA013C931196EC9381E0FB01B3 +:107450009081903239F525C08F32A1F38E3219F028 +:10746000E9E4FFE008C02A30E1F098E02AE0E5CF47 +:1074700031963817B1F034913111FACF291788F0CD +:107480003FED380F3E3568F431E0390FFB01E90F6D +:10749000F11D9FE9980F9A3108F480528083932F51 +:1074A000CCCF80E008950F931F93CF93DF93EC012F +:1074B0008B018B81882311F080E042C0FB0187891A +:1074C000803139F18032C1F783E08B83F801428D3E +:1074D000538D648D758D4D8B5E8B6F8B788F9E0178 +:1074E0002F5E3F4FC8010E9410C3882329F31A8FD3 +:1074F000098F81E089831C821D821E821F8218866B +:1075000019861A861B861C861D861E861F86188A6B +:1075100017C082E08B831D8A1E8A1F8A188EFB018A +:10752000408D518D60E070E095E0440F551F661F5F +:10753000771F9A95D1F7498B5A8B6B8B7C8BD7CF62 +:10754000DF91CF911F910F9108952F923F924F920B +:107550005F926F927F928F929F92AF92BF92CF92E3 +:10756000DF92EF92FF920F931F93CF93DF93EC0183 +:107570005B016A018B81811103C08FEF9FEFC6C051 +:10758000898180FFFACF49895A896B897C898885EE +:107590009985AA85BB852601612C712C8A019B01E6 +:1075A000081B190B2A0B3B0B40165106620673068B +:1075B00018F06A01C81AD90A76013E0124E0620E69 +:1075C000711CE114F10409F476C0488559856A8577 +:1075D0007B854A0181E098222B811A012B01E9E089 +:1075E0005694479437942794EA95D1F7898D9A8DCC +:1075F000FC01223049F4628D738D848D958D620D6E +:10760000731D841D951D3CC01481115012218114DD +:107610009104C1F4111116C0452B462B472B49F498 +:107620008D899E89AF89B88D8C839D83AE83BF83FE +:1076300009C04C815D816E817F81930172D788235F +:1076400009F49BCFE98DFA8D6C817D818E819F81BC +:107650006250710981099109058404C0660F771F82 +:10766000881F991F0A94D2F726853785408951894A +:10767000620F731F841F951F610F711D811D911D66 +:1076800020E032E02819390987012E153F0508F45A +:1076900089010115F2E01F0761F520914F0F30912C +:1076A000500F4091510F5091520F6217730784078A +:1076B000950719F41EC0C60129C09501AB01BC0194 +:1076C00080914D0D90914E0D17DC882309F455CF14 +:1076D000A00EB11E88859985AA85BB85800F911F54 +:1076E000A11DB11D88879987AA87BB87E01AF10A77 +:1076F00068CF40E0DED6882309F43FCFB401615B58 +:10770000724FA801C5010F9493C8E2CFDF91CF91CA +:107710001F910F91FF90EF90DF90CF90BF90AF90AF +:107720009F908F907F906F905F904F903F902F90A1 +:107730000895CF93DF931F92CDB7DEB741E050E0BD +:10774000BE016F5F7F4F01DF019719F4898190E0DF +:1077500002C08FEF9FEF0F90DF91CF910895CF92EE +:10776000DF92EF92FF920F931F93CF93DF936C0101 +:10777000EB017A01FC018381823060F00085118584 +:10778000228533850F71112722273327012B022BE6 +:10779000032B11F08FEF5CC04115510511F0F7017B +:1077A00010821DE040E250E0BE01C601CEDE803214 +:1077B000910539F021E0892B09F420E0822F819591 +:1077C00047C028812223C1F0253E61F32E3251F3B8 +:1077D0003B853F733F3061F4E114F10449F04A8D79 +:1077E0005B8D452B29F42F713FEF320F343030F091 +:1077F0002B8523FDD7CF2CC080E02AC030E021505C +:107800003109129FC001139F900D1124F701E80F59 +:10781000F91F298120832B8121832D8122832F81B0 +:107820002383298524832E852583288926832A89F5 +:1078300027832C8920872E892187288D22872C8DCC +:1078400023872E8D2487288126FFD2CF1586D0CF7F +:10785000DF91CF911F910F91FF90EF90DF90CF902C +:1078600008951F93CF93DF93EC018B81823018F43E +:1078700080E090E023C0488559856A857B85A5E036 +:107880007695679557954795AA95D1F7142F1F7050 +:10789000CE014FDF97FDECCF488559856A857B8502 +:1078A000415E5F4F6F4F7F4F488759876A877B875D +:1078B00020E2129FC0011124815B924FDF91CF9192 +:1078C0001F9108954F925F926F927F92AF92BF92F5 +:1078D000CF92DF92EF92FF920F931F93CF93DF939C +:1078E000EC016A017B012B81222349F089899A8965 +:1078F000AB89BC8984179507A607B70710F480E009 +:107900006BC0223009F463C0C114D104E104F10456 +:1079100049F41C821D821E821F82188619861A86CF +:107920001B8659C088859985AA85BB85E98DFA8D06 +:10793000E585F0E03996AC01BD014150510961097E +:1079400071090E2E04C076956795579547950A9450 +:10795000D2F797018601015011092109310904C0AC +:107960003695279517950795EA95D2F704171507C9 +:107970002607370720F0892B8A2B8B2B49F48D891A +:107980009E89AF89B88D8C839D83AE83BF8304C0ED +:10799000041B150B260B370B280139015E0184E00F +:1079A000A80EB11C411451046104710481F04C8192 +:1079B0005D816E817F819501898D9A8DB2D591E02F +:1079C000491A5108610871088111ECCF05C0C886B9 +:1079D000D986EA86FB8681E0DF91CF911F910F91D6 +:1079E000FF90EF90DF90CF90BF90AF907F906F901F +:1079F0005F904F9008950F931F93CF93DF93EC0107 +:107A00008B818823D1F1898187FF32C061E0CE016B +:107A1000B7DC8C01009789F1FC018081853E69F11A +:107A20008B81823040F449895A896B897C89448FE3 +:107A3000558F668F778F4D895E896F89788DF801B4 +:107A4000538F428F758B648BE091460DF091470DFB +:107A5000309759F0B8016A5E7F4FC8014896199572 +:107A6000F801808D918D938B828B89818F778983AB +:107A7000DF91CF911F910F91DCC481E0888380E07A +:107A8000DF91CF911F910F910895CF93DF93EC0178 +:107A9000B2DF1B82DF91CF910895FC012381211178 +:107AA000F4CF08954F925F926F927F92AF92BF9200 +:107AB000CF92DF92EF92FF920F931F93CF93DF93BA +:107AC00000D01F92CDB7DEB75C016A017B01FC01DB +:107AD00083818130E9F4818181FF1AC0F5018189B8 +:107AE0009289A389B48984179507A607B70780F000 +:107AF000892B8A2B8B2B09F472C0F50140845184A9 +:107B000062847384B701A601C501DCDE811102C065 +:107B100080E066C0F501818D928DC114D104E1042D +:107B2000F10469F4458956896789708D77D7882370 +:107B300079F3F501158A168A178A108E37C0F50178 +:107B400044815581668177819E012F5F3F4FE9D443 +:107B50008823F1F249815A816B817C81F501818D05 +:107B6000928DFC012789203139F4483FFFEF5F07F0 +:107B700061057105D8F407C0483F2FEF520762072F +:107B80002FE0720798F44AD7882309F4C1CFF50192 +:107B900044815581668177810FEF1FEF2FEF3FE022 +:107BA000818D928DA3D5882309F4B2CFF501C18AC6 +:107BB000D28AE38AF48A818180688183C5011BDFD0 +:107BC000882309F4A5CFB701A6014C145D046E0407 +:107BD0007F0410F4B301A201C50174DE01C081E08D +:107BE0000F900F900F900F90DF91CF911F910F91F9 +:107BF000FF90EF90DF90CF90BF90AF907F906F900D +:107C00005F904F900895FF920F931F93CF93DF9350 +:107C1000EC01F42E80E2689FF0011124E15BF24F49 +:107C20008385817121F0842F827109F04EC080918B +:107C30004F0F9091500FA091510FB091520F8C8720 +:107C40009D87AE87BF87688B4489558960E070E067 +:107C5000BA0155274427028D138D20E030E0402BD8 +:107C6000512B622B732B4D8B5E8B6F8B788F8385A3 +:107C7000887151F4048D158D268D378D098B1A8BE3 +:107C80002B8B3C8B81E00BC08031F9F49E012F5E81 +:107C90003F4F898D9A8DC4D48823B9F084E08B83BB +:107CA0008F2D8F7089831C821D821E821F821886F1 +:107CB00019861A861B86F4FE0BC040E050E0BA011C +:107CC000CE01F0DE811104C011C01B8280E00EC025 +:107CD000F5FE0BC049895A896B897C89CE01DF91F9 +:107CE000CF911F910F91FF90EDCD81E0DF91CF916A +:107CF0001F910F91FF900895AF92BF92CF92DF92A4 +:107D0000EF92FF920F931F93CF93DF937C01EB01D0 +:107D10006A01B22E898D9A8DF701928F818F40E092 +:107D200050E0BA01CE01CEDDA12C088519852A8547 +:107D30003B8589899A89AB89BC89081719072A0765 +:107D40003B07A0F585E036952795179507958A9509 +:107D5000D1F70F70CE0185DD009709F481C0FC01D9 +:107D60002081222311F0253EB9F4A1100EC04091CC +:107D70004F0F5091500F6091510F7091520FF701BA +:107D80004487558766877787008BFC018081AA240A +:107D9000A3948111CACF0AC04BE050E0BC01C601D8 +:107DA0000F9486C8892B09F0C0CF58C08B2D8274E0 +:107DB000823409F055C0AA2049F0F701008961E03A +:107DC000C701DEDAEC01009769F44AC08B8182308A +:107DD00009F446C0CE014DDA882309F441C0CFE44E +:107DE000DDE000E080E2FE0111928A95E9F78BE088 +:107DF000F601DE0101900D928A95E1F7E091460DC2 +:107E0000F091470D309739F0BE01625F7F4FCE0190 +:107E10004096199508C081E298E2998B888B80E0A2 +:107E200098E09F878E87888999899B8B8A8B998F09 +:107E3000888F8E859F859F8B8E8BFBD2882381F0C8 +:107E40004B2D602FC701DF91CF911F910F91FF90B4 +:107E5000EF90DF90CF90BF90AF90D5CEB7FEF0CF30 +:107E600080E0DF91CF911F910F91FF90EF90DF9015 +:107E7000CF90BF90AF9008953F924F925F926F92D4 +:107E80007F928F929F92AF92BF92CF92DF92EF92AA +:107E9000FF920F931F93CF93DF93CDB7DEB7C354F9 +:107EA000D1090FB6F894DEBF0FBECDBF5C016B01E8 +:107EB00024965FAF4EAF2497522E1C8E1F8E1982D0 +:107EC0001C826115710511F410E073C0FC018381FF +:107ED0008111FACF2496EEADFFAD249780818F32C9 +:107EE00011F076011DC02496EEADFFAD2497808180 +:107EF0008F3231F431962496FFAFEEAF2497F3CF53 +:107F0000F60183818250823060F3F601618D728DBB +:107F1000CE010196C8DA8823B9F2CE0101967C0120 +:107F20008E01045E1F4F3801FE0131964F01402E35 +:107F3000312E19C08823A9F121E0AE01495C5F4FC1 +:107F4000B701C801D9DE882309F4BECFEC14FD04C3 +:107F500011F0C7019ADD0615170501F1942D832D47 +:107F60007801092F182FAE014E5B5F4FBE01695C8F +:107F70007F4F24968EAD9FAD249756DA882309F45F +:107F8000A3CF2496EEADFFAD249780818F3291F67A +:107F900031962496FFAFEEAF2497F3CF982D892D1D +:107FA000DFCF252DAE01495C5F4FB701C501A4DECF +:107FB000182FCE01019671DDCE014C966EDD812F1A +:107FC000CD5BDF4F0FB6F894DEBF0FBECDBFDF91A4 +:107FD000CF911F910F91FF90EF90DF90CF90BF90C6 +:107FE000AF909F908F907F906F905F904F903F9059 +:107FF0000895CF93DF93EC0140E050E0BA0152DDE9 +:10800000882361F061E0CE01BBD9009739F025EEFD +:10801000FC0120831B82DF91CF910BC280E0DF91B6 +:10802000CF9108951F93CF93DF93CDB7DEB76B97B2 +:108030000FB6F894DEBF0FBECDBFAB0119821C8214 +:1080400022E0BC01CE01019617DF182F882321F012 +:10805000CE010196CEDF182FCE0101961EDD812FB5 +:108060006B960FB6F894DEBF0FBECDBFDF91CF91F8 +:108070001F9108952F923F924F925F926F927F923D +:108080008F929F92AF92BF92CF92DF92EF92FF9228 +:108090000F931F93CF93DF9300D01F921F92CDB702 +:1080A000DEB78C015B013A01DC0113968C911397CA +:1080B0008130C1F411968C9181FF14C082FF18C0E9 +:1080C000F801418952896389748980859185A285E7 +:1080D000B38584179507A607B70751F0C801F2DBEF +:1080E000811106C081E0F80180838FEF9FEF37C1D7 +:1080F000630183C0D80159968D919C915A97FC01D8 +:10810000F481F1501A012B0169E056944794379499 +:1081100027946A95D1F7F221FD834A0121E092224A +:10812000FF2309F476C080E092E08819990976016E +:108130008C159D0508F47C01D8015996ED91FC91B0 +:108140005A9714962D903D904D905C901797B2E001 +:108150002B1A310841085108058404C0220C331C35 +:10816000441C551C0A94D2F786859785A089B1894D +:10817000280E391E4A1E5B1EED812E0E311C411C3D +:10818000511CE114F2E0FF0609F089C080914F0F05 +:108190009091500FA091510FB091520F82159305FD +:1081A000A405B50569F410924C0D8FEF9FEFDC012B +:1081B00080934F0F9093500FA093510FB093520F95 +:1081C0009501B201A10180914D0D90914E0D0E943B +:1081D000F1B7882309F486CFF80180859185A285BF +:1081E000B3858E0D9F1DA11DB11D80879187A2872C +:1081F000B387AE0CBF1CCE18DF08D80118964D917E +:108200005D916D917C911B97C114D10409F072CFDF +:108210007AC08114910409F086CF14964D915D9136 +:108220006D917C911797411551056105710559F4C0 +:1082300055968D919D910D90BC91A02D0097A10513 +:10824000B10539F520C09E012F5F3F4F6AD18823C9 +:1082500009F448CF89819A81AB81BC81F801218DD5 +:10826000328DF9012789203139F4883FFFEF9F07CC +:10827000A105B10540F40DC0883F2FEF9207A2077A +:108280002FE0B20730F0C8010E9413B981114BCF23 +:1082900029CFF80184839583A683B78344CF8114C3 +:1082A000910411F5D80118964D915D916D917C91D5 +:1082B0001B9751968D919D910D90BC91A02D4817C3 +:1082C00059076A077B0780F0B4D0882309F40ACFE6 +:1082D00081E080934C0D20924F0F3092500F4092CE +:1082E000510F5092520F07C041E0C201B101E1D0DD +:1082F000882309F4F7CEA701B501C401815B924F31 +:108300000F9493C869CF51968D919D910D90BC911A +:10831000A02DF801218184179507A607B70738F427 +:10832000418B528B638B748B206821830CC08091AE +:10833000460D9091470D892B31F06114710419F0AD +:108340002068F8012183D80111968C9183FD02C029 +:10835000C30105C0C8014FDB8111FACFC3CE0F9016 +:108360000F900F900F900F90DF91CF911F910F9171 +:10837000FF90EF90DF90CF90BF90AF909F908F9045 +:108380007F906F905F904F903F902F900895CF9384 +:10839000DF931F92CDB7DEB7209177183091781810 +:1083A000CE0101962115310519F0821B930B02C0F5 +:1083B0008D5798410F90DF91CF91089582EA92EA0C +:1083C000A0E0B0E080937D1890937E18A0937F1872 +:1083D000B0938018089581E040917D1850917E18E7 +:1083E00060917F1870918018423A524A6105710578 +:1083F00009F080E00895CF93DF931F92CDB7DEB7E9 +:10840000698341E050E0BE016F5F7F4F049632DE2A +:108410000F90DF91CF91089504962CCEFB0101902F +:108420000020E9F7AF0141505109461B570B049654 +:1084300021CECF9380914C0D8823B9F140914F0FFD +:108440005091500F6091510F7091520F2FE43DE009 +:1084500080914D0D90914E0D0E94F1B7C82F811162 +:1084600002C0C0E023C04091480D5091490D609179 +:108470004A0D70914B0D411551056105710591F043 +:108480002FE43DE080914D0D90914E0D0E94F1B78B +:10849000882339F31092480D1092490D10924A0D1D +:1084A00010924B0D10924C0D01C0C1E08C2FCF915A +:1084B0000895CF92DF92EF92FF92CF936B017C01F0 +:1084C000C42F80914F0F9091500FA091510FB091F8 +:1084D000520F8C159D05AE05BF05C9F0AADF8111AD +:1084E00002C080E018C02FE43DE0B701A6018091F2 +:1084F0004D0D90914E0D0E947CB7882391F3C09250 +:108500004F0FD092500FE092510FF092520F81E036 +:10851000C11180934C0DCF91FF90EF90DF90CF90E1 +:1085200008958F929F92AF92BF92CF92DF92EF9277 +:10853000FF920F931F93CF93DF93EC016A017B01AE +:10854000890189859A85AB85BC850196A11DB11DE0 +:1085500084179507A607B70710F480E054C08F89E9 +:10856000803129F49927872F762F652F0BC0803211 +:10857000A1F7CB01BA0127E0969587957795679586 +:108580002A95D1F78B889C88AD88BE88680D791DA7 +:108590008A1D9B1D80904F0F9090500FA090510FFF +:1085A000B090520F681579058A059B0581F48F8973 +:1085B000803191F4DD24EE24FF24F601EE0FFF1F3D +:1085C000E15BF24F80819181A0E0B0E016C040E015 +:1085D00070DF8111ECCFC1CFE894C7F8DD24EE2421 +:1085E000FF24F601EE0FFF1FEE0FFF1FE15BF24FBE +:1085F00080819181A281B381BF70F80180839183D2 +:10860000A283B38381E0DF91CF911F910F91FF90FF +:10861000EF90DF90CF90BF90AF909F908F90089594 +:108620004F925F926F927F92AF92BF92CF92DF9202 +:10863000EF92FF920F931F93CF93DF9300D01F927F +:10864000CDB7DEB78C0149835A836B837C83590194 +:10865000C12CD12C7601412C42E0542E612C712C7E +:1086600049815A816B817C819E012F5F3F4FC801F8 +:1086700058DF882341F1D301C201F801058404C009 +:10868000880F991FAA1FBB1F0A94D2F7C80ED91EC4 +:10869000EA1EFB1E49815A816B817C81878980316A +:1086A00039F481E0483F5F4F6105710538F4D8CF58 +:1086B00081E0483F5F4F6F4F7F4090F2F501C082ED +:1086C000D182E282F3820F900F900F900F90DF9192 +:1086D000CF911F910F91FF90EF90DF90CF90BF90BF +:1086E000AF907F906F905F904F9008954F925F9200 +:1086F0006F927F928F929F92AF92BF92CF92DF92B2 +:10870000EF92FF920F931F93CF93DF93EC014A01F7 +:108710005B0128013901423051056105710508F4FA +:1087200062C049855A856B857C854F5F5F4F6F4F6F +:108730007F4F481559056A057B0508F454C08F8999 +:10874000803129F4FF24EB2CDA2CC92C0CC08032A8 +:1087500009F049C07501640177E0F694E794D79475 +:10876000C7947A95D1F74B895C896D897E89C40E4F +:10877000D51EE61EF71E41E0C701B6019ADE88232A +:1087800091F19F89903159F49924AA24BB24F401D2 +:10879000EE0FFF1FE15BF24F5182408210C0E89460 +:1087A00087F89924AA24BB24F401EE0FFF1FEE0FD3 +:1087B000FF1FE15BF24F40825182628273829A898D +:1087C000923090F04D815E816F8178854C0D5D1DFA +:1087D0006E1D7F1D4093480D5093490D60934A0DC7 +:1087E00070934B0D01C080E0DF91CF911F910F91ED +:1087F000FF90EF90DF90CF90BF90AF909F908F90C1 +:108800007F906F905F904F9008952F923F924F927C +:108810005F926F927F928F929F92AF92BF92CF9210 +:10882000DF92EF92FF920F931F93CF93DF93CDB719 +:10883000DEB72F970FB6F894DEBF0FBECDBF1C0179 +:108840004C875D876E877F873B872A87DC01199677 +:108850000D911D912D913C911C970F5F1F4F2F4F34 +:108860003F4F0D831E832F833887EA85FB858080E9 +:108870009180A280B38081149104A104B10431F0ED +:10888000FFEF8F1A9F0AAF0ABF0A10C0DC018D905C +:108890009D90AD90BC90B1E0B9870C851D852E856B +:1088A0003F85013011052105310509F01986750153 +:1088B0006401412C512C3201F10181859285A385FF +:1088C000B485481659066A067B0608F04EC00D812D +:1088D0001E812F8138850C151D052E053F0550F48E +:1088E000F2E0CF2ED12CE12CF12CA2E08A2E912C9B +:1088F000A12CB12C9E012F5F3F4FB701A601C101F2 +:1089000010DE882391F149815A816B817C81D701E6 +:10891000C6010196A11DB11D452B462B472B19F011 +:108920004C015D010FC0AC01BD01481959096A092C +:108930007B090C851D852E853F85401751076207F1 +:10894000730741F01FEF411A510A610A710A6C0165 +:108950007D01B2CF0FEF1FEF2FEF3FE0B701A60170 +:10896000C101C4DE8D83811113C01D823DC026016B +:10897000370121E0421A5108610871089701860108 +:10898000B301A201C101B2DE882379F37301620150 +:108990008C149D04AE04BF0450F3AA85BB854D9191 +:1089A0005D916D917C914115510561057105A9F4A9 +:1089B000EA85FB8580829182A282B382F985FF23BA +:1089C00099F00FEF801A900AA00AB00AD1018D9297 +:1089D0009D92AD92BC92139707C095018401C1018D +:1089E00085DE8111E5CFC1CF8D812F960FB6F8942A +:1089F000DEBF0FBECDBFDF91CF911F910F91FF90D2 +:108A0000EF90DF90CF90BF90AF909F908F907F902E +:108A10006F905F904F903F902F900895AF92BF92CC +:108A2000CF92DF92EF92FF920F931F93CF93DF933A +:108A300000D01F92CDB7DEB75C016A017B0182E0F6 +:108A400090E0A0E0B0E0F50180839183A283B3833E +:108A50009E012F5F3F4FB701A601C50162DD811165 +:108A600002C080E023C000E010E09801B701A60139 +:108A7000C5013CDE8823A9F3C980DA80EB80FC8045 +:108A8000F5018789803149F481E0F8EFCF16FFEFD7 +:108A9000DF06E104F10450F4DBCF81E098EFC91662 +:108AA0009FEFD906E9069FE0F90690F20F900F902C +:108AB0000F900F90DF91CF911F910F91FF90EF904A +:108AC000DF90CF90BF90AF9008957F928F929F924A +:108AD000AF92BF92CF92DF92EF92FF920F931F93CC +:108AE000CF93DF93EC01142F70934E0D60934D0DD7 +:108AF0001F8A82E090E0A0E0B0E088839983AA8397 +:108B0000BB8310924C0D1092480D1092490D10929B +:108B10004A0D10924B0D8FEF9FEFDC0180934F0FAA +:108B20009093500FA093510FB093520F442349F1EB +:108B3000453008F0DEC040E060E070E0CB01B9DC19 +:108B4000882309F4D6C020E1129FF0011124E350DC +:108B5000F14F80818F7709F0CCC084859585A685FB +:108B6000B78584369105A105B10508F4C2C0C0845B +:108B7000D184E284F384C114D104E104F10421F42A +:108B8000B8C0C12CD12C760140E0C701B60191DC00 +:108B9000782E882309F4ADC080915A0D90915B0D19 +:108BA0008115924009F0A5C030915F0D332309F47F +:108BB000A0C080915D0D90915E0D892B09F499C044 +:108BC00020915C0D222309F494C03A8B2C831D86DE +:108BD00030E041E050E06D85062FCA01062E02C04C +:108BE000880F991F0A94E2F72817390731F081E0BE +:108BF000860F8D87683078F37CC02091650D3091A9 +:108C0000660D2115310519F040E050E008C02091B3 +:108C1000730D3091740D4091750D5091760D2D832B +:108C20003E834F83588780915D0D90915E0D460184 +:108C30005701880E991EA11CB11C8B8A9C8AAD8A93 +:108C4000BE8AE091600DF091610DF98FE88FA091DF +:108C50005F0DB0E00F9446C5680D791D8A1D9B1D00 +:108C60006A8F7B8F8C8F9D8FB5E0EE0FFF1FBA95BB +:108C7000E1F7E150FE4FEF2FFF27E695DC01CB0136 +:108C80008E0F9F1FA11DB11D8E879F87A88BB98B4B +:108C90008090620D9090630D8114910419F0A12CC5 +:108CA000B12C08C080906F0D9090700DA090710D48 +:108CB000B090720DA7019601281B390B4A0B5B0B74 +:108CC000DA01C901880D991DAA1DBB1D04C0B69506 +:108CD000A795979587950A95D2F789879A87AB8745 +:108CE000BC87853F3FE09307A105B10520F48CE0E8 +:108CF0008F8B712C15C0853F9F4FA105B10510F4D6 +:108D000080E10DC080917B0D90917C0DA0917D0D37 +:108D1000B0917E0D8A8F9B8FAC8FBD8F80E28F8B41 +:108D2000872DDF91CF911F910F91FF90EF90DF90F2 +:108D3000CF90BF90AF909F908F907F900895FC014F +:108D400014821782138212828FE294E091838083CF +:108D50000895CF92DF92EF92FF920F931F93CF93DC +:108D6000DF93EC01875B9F4FEADFCE0186599F4F6F +:108D7000E6DF7E0129E8E20EF11C87016E0131E495 +:108D8000C31A3EEFD30AC801DADF015E1F4F0C158C +:108D90001D05C9F7FE01EF53FE4F89E1818314825F +:108DA00015823696178ACE018B519E4FC8DFFE0181 +:108DB000EA56FD4F10821182128213823896108279 +:108DC0001182128213821A821B82188219826E010A +:108DD00086E6C81A8DEFD80AF60110821182128237 +:108DE0001382F80111821082FE01EC5FFD4F1082A8 +:108DF00086E391E0F7019C01119221503040E1F7A8 +:108E0000FE01EE55FD4F81E08083C95BDF4F198283 +:108E100018820F9424B768577C4E8F4F9F4FF601EE +:108E20006083718382839383DF91CF911F910F9130 +:108E3000FF90EF90DF90CF900895FC0120E03EE29C +:108E4000DB014C91403241F0283011F430833196EF +:108E5000DB014C91408331962F5F6F5F7F4F2B304A +:108E600079F7108208952F923F924F925F926F92FE +:108E70007F928F929F92AF92BF92CF92DF92EF92AA +:108E8000FF920F931F93CF93DF93CDB7DEB7CA58EE +:108E9000D1090FB6F894DEBF0FBECDBF8C016B01B8 +:108EA0007A014901CA57DF4F1882C658D04084E082 +:108EB000E80EF11C180191E1290E311CF801EA5B62 +:108EC000FF4FC957DF4FF983E883C758D0403801B7 +:108ED000FDE56F1AFDEF7F0A58018BE5A81A8DEFAB +:108EE000B80A80E4482E512C4C0E5D1E94E0490EC9 +:108EF000511CA101BE016F5F7F4FC7010E94AFBB34 +:108F000018160CF03CC12C85322F3871303109F025 +:108F10009DC0F301808191810197029708F496C06A +:108F2000BE016F5F7F4FCE0187589F4F86DFA096AF +:108F30001FAEA097F6018081811107C063E374E042 +:108F4000CE01815A9F4F0F94B6C8B601CE01815A07 +:108F50009F4F0F94B6C8BE0167587F4FCE01815A0C +:108F60009F4F0F94B6C863E374E0CE01815A9F4FC0 +:108F70000F94B6C8CE01805C9F4FE1DE21E0AE01C8 +:108F800047585F4FB701C2010E943CBF811136C0F4 +:108F9000F30180819181892B89F5ECE3FDE08491D7 +:108FA000882341F09091C00095FFFCCF8093C600CC +:108FB0003196F5CFE7E2FDE785919491FC0124918C +:108FC000222341F03091C00035FFFCCF2093C60032 +:108FD0000196F4CFFE01E758FF4F8191882339F0C5 +:108FE0009091C00095FFFCCF8093C600F6CF809192 +:108FF000C00085FFFCCF8AE08093C6008BE1FE01B4 +:10900000EC5BFF4FDE01959601900D928A95E1F79A +:1090100024968EAD9FAD24979CA38BA38FE294E002 +:109020009AA389A320E030E0AE014F5D5F4FBE01FF +:10903000615A7F4FC80117DFCE0181960E9418B593 +:10904000CE01805C9F4F0E9418B553CF8981882341 +:1090500009F495C08E3209F44CCF8F3509F449CF0D +:10906000F80181898E3209F444CF8F3509F441CF5C +:109070002E7009F03ECF81E0303109F080E0C95711 +:10908000DF4FE881F981C758D0408083811108C043 +:109090008985873409F02DCF8A858E3709F429CF49 +:1090A00098012C5F3F4FBE016F5F7F4FC901C757CB +:1090B000DF4F2883C958D040C657DF4F3883CA587E +:1090C000D040BBDEF30180819181C757DF4F2881FB +:1090D000C958D040C657DF4F3881CA58D040009792 +:1090E000F1F4F6018191882339F09091C00095FF49 +:1090F000FCCF8093C600F6CFF9018191882339F027 +:109100009091C00095FFFCCF8093C600F6CF809170 +:10911000C00085FFFCCF8AE08093C600EACE813094 +:10912000910539F4F50180819181019691838083C5 +:10913000E0CE029709F0DDCE8114910439F0B90137 +:10914000C4010F94A3C8892B71F419C0CA57DF4F0B +:10915000F881C658D0402F2F30E0F50180819181F1 +:109160002817390761F0CA57DF4FF881C658D04039 +:10917000FF5FCA57DF4FF883C658D040BACEC657F4 +:10918000DF4F0FB6F894DEBF0FBECDBFDF91CF919A +:109190001F910F91FF90EF90DF90CF90BF90AF9015 +:1091A0009F908F907F906F905F904F903F902F9007 +:1091B00008950F931F93CF93DF93CDB7DEB76F97CB +:1091C0000FB6F894DEBF0FBECDBF8C01FC01ED558C +:1091D000FD4F1182108240E050E0BA01835B9F4F47 +:1091E0000E9462BCC801875B9F4F2BE1FC01349653 +:1091F000DE01159601900D922A95E1F7FC0182811E +:1092000093819C838B838FE294E09A83898320E00F +:1092100030E0AE014F5F5F4F64E176E0C80123DECE +:10922000CE0101960E9418B56F960FB6F894DEBF76 +:109230000FBECDBFDF91CF911F910F9108952BE10C +:10924000FB013496DC01149601900D922A95E1F70A +:10925000FB0122813381FC01338322830895EF9245 +:10926000FF920F931F93CF93DF93EC011B82FC01BE +:10927000E05BFF4F8081882329F0CE01835B9F4F05 +:109280000E9445BD7E018FE3E81A8EEFF80A45E3A0 +:1092900060E0C7010E94C9B6811122C0ECE3FDE085 +:1092A0008491882341F09091C00095FFFCCF80937A +:1092B000C6003196F5CFEDE1FDE785919491FC0173 +:1092C0002491222341F03091C00035FFFCCF209340 +:1092D000C6000196F4CF8091C00085FFFCCF7EC010 +:1092E0008E0109531E4F41E0B701C801EEDB811129 +:1092F00028C040E0B701C801E8DB811122C0E2E4E8 +:10930000FDE08491882341F09091C00095FFFCCF4F +:109310008093C6003196F5CFE7EFFCE785919491F5 +:10932000FC012491222341F03091C00035FFFCCF95 +:109330002093C6000196F4CF8091C00085FFFCCF3A +:109340004DC0B801CE01835B9F4F0E9453BA81117B +:1093500022C0E2E4FDE08491882341F09091C000B6 +:1093600095FFFCCF8093C6003196F5CFEDE0FDE789 +:1093700085919491FC012491222341F03091C00009 +:1093800035FFFCCF2093C6000196F4CF8091C0003A +:1093900085FFFCCF23C081E08B83ECE3FDE084916B +:1093A000882341F09091C00095FFFCCF8093C600C8 +:1093B0003196F5CFE5E2FDE785919491FC0124918A +:1093C000222341F03091C00035FFFCCF2093C6002E +:1093D0000196F4CF8091C00085FFFCCF8AE0809396 +:1093E000C6008E01075B1F4FB801CE0186599F4F03 +:1093F00026DFC859DF4F19830883DF91CF911F9172 +:109400000F91FF90EF900895FC011282138208954E +:10941000FC012381222311F021E022830895FC0125 +:109420002281211112820895AF92BF92CF92DF92D2 +:10943000EF92FF920F931F93CF93DF931F92CDB7BD +:10944000DEB78C018FE2FB0181935F01D12C41E0FB +:109450007801F1E4EF1AFEEFFF0A9FE1C92E2D2DEE +:1094600030E0F7018081918128173907D8F4C29E36 +:10947000C001C39E900D112483579F4FB501800FEB +:10948000911F49830E94FAB9C50149815C01019687 +:10949000F5012081222321F04D3810F44F5FF6CFE3 +:1094A000D394DDCF47FD11C0B501C80187519E4F50 +:1094B0000F90DF91CF911F910F91FF90EF90DF9070 +:1094C000CF90BF90AF900C94FAB9F50110820F9035 +:1094D000DF91CF911F910F91FF90EF90DF90CF9090 +:1094E000BF90AF9008953F924F925F926F927F929C +:1094F0008F929F92AF92BF92CF92DF92EF92FF92A4 +:109500000F931F93CF93DF93CDB7DEB7AC970FB612 +:10951000F894DEBF0FBECDBF7C015B01FC018381EF +:10952000882309F409C1C70187519E4F0E9445BD98 +:10953000F7011282CE0101966C0101DC270198E649 +:10954000490E511CC701875B9F4FF20191838083B5 +:10955000F50180818F3209F084C06FE270E0C501AF +:109560000F94C1C88C010F5F1F4F2AE0322E0115E6 +:10957000110509F47CC06FE270E0C8010F94C1C806 +:109580004C01009709F474C00817190708F070C05F +:109590003C01601A710AA301B801CE0180960F94B4 +:1095A000EAC8E0E2F0E0EC0FFD1FE60DF71D1082C7 +:1095B000FE01B0968191882339F09091C00095FF0B +:1095C000FCCF8093C600F6CF8091C00085FFFCCF12 +:1095D0003092C600F201608171816115710519F048 +:1095E0006C5F7F4F02C060E070E021E0AE01405E42 +:1095F0005F4FCE0105960E943CBF81112BC0E5E371 +:10960000F4E08491882341F09091C00095FFFCCF55 +:109610008093C6003196F5CFFE01B09681918823E4 +:1096200039F09091C00095FFFCCF8093C600F6CF33 +:10963000E7EAFFE08491882341F09091C00095FF14 +:10964000FCCF8093C6003196F5CF8091C00085FF96 +:10965000FCCF6CC0F201D182C08284010F5F1F4F2A +:1096600086CFC70186599F4FF20191838083850180 +:10967000F20180819181009711F0049602C080E090 +:1096800090E0B8010E9412C0882339F1E9E9FFE0B7 +:109690008491882341F09091C00095FFFCCF809386 +:1096A000C6003196F5CFF8018191882339F0909169 +:1096B000C00095FFFCCF8093C600F6CF8091C0001C +:1096C00085FFFCCF8AE08093C600F701E256FD4F8C +:1096D00010821182128213822CC0E1E8FFE0849193 +:1096E000882341F09091C00095FFFCCF8093C60085 +:1096F0003196F5CFF8018191882339F09091C0001F +:1097000095FFFCCF8093C600F6CFEFE7FFE0849192 +:10971000882341F09091C00095FFFCCF8093C60054 +:109720003196F5CF8091C00085FFFCCF8AE0809311 +:10973000C600C6010E9418B5AC960FB6F894DEBFFD +:109740000FBECDBFDF91CF911F910F91FF90EF9092 +:10975000DF90CF90BF90AF909F908F907F906F9051 +:109760005F904F903F9008958F929F92AF92BF92DB +:10977000CF92DF92EF92FF92CF93DF931F92CDB7FC +:10978000DEB77C01FC018281882309F4B2C07196A6 +:109790008191882339F09091C00095FFFCCF809390 +:1097A000C600F6CFEDE7FFE08491882341F0909169 +:1097B000C00095FFFCCF8093C6003196F5CFE9E05D +:1097C000FDE785919491FC012491222341F0309191 +:1097D000C00035FFFCCF2093C6000196F4CFF701FF +:1097E000E256FD4F40815181628173812AE030E071 +:1097F00080EF96E00E94525DEBE7FFE084918823C2 +:1098000041F09091C00095FFFCCF8093C600319647 +:10981000F5CFF701EA56FD4F408151816281738196 +:109820002AE030E080EF96E00E94525D8091C00017 +:1098300085FFFCCF8AE08093C6000F9424B730E602 +:10984000C32E3AEED32EE12CF12CA70196010F94F2 +:10985000FCC449015A016091C5077091C607809107 +:10986000C7079091C807A70196010F94FCC4821AFC +:10987000930AC4016CE370E00F94D5C46983CE01F0 +:1098800001960F949C67FC012191CF01222339F0AE +:109890003091C00035FFFCCF2093C600F4CF40E0EC +:1098A00050E06AE380EF96E00E94EF5CC4016CE355 +:1098B00070E00F94D5C48983CE0101960F949C6704 +:1098C000FC012191CF01222339F03091C00035FFF6 +:1098D000FCCF2093C600F4CFE9E7FFE08491882312 +:1098E000E1F09091C00095FFFCCF8093C6003196C7 +:1098F000F5CFE9E4F4E08491882341F09091C00031 +:1099000095FFFCCF8093C6003196F5CF8091C000C3 +:1099100085FFFCCF8AE08093C6000F90DF91CF9146 +:10992000FF90EF90DF90CF90BF90AF909F908F907F +:109930000895AF92BF92CF92DF92EF92FF920F9372 +:109940001F93CF93DF935C01EB01FB01019000209B +:10995000E9F78F0101501109061B170B6C01F7E1A4 +:10996000CF1AFEEFDF0AF60110826EE470E0CE013E +:109970000F94C1C87C01009729F4F8013197EC0FCE +:10998000FD1F0DC060E270E00F94C1C8EC0121968C +:109990006AE270E0C7010F94C1C8FC0131978DE005 +:1099A00081838AE082831382BE01C5018B519E4F61 +:1099B0000E940EC2F6018081882321F1E2E4FDE0DD +:1099C0008491882341F09091C00095FFFCCF809353 +:1099D000C6003196F5CFE3E2FDE785919491FC0155 +:1099E0002491222341F03091C00035FFFCCF209319 +:1099F000C6000196F4CF8091C00085FFFCCF8AE0BD +:109A00008093C600DF91CF911F910F91FF90EF904F +:109A1000DF90CF90BF90AF900895CF93DF93EC018C +:109A200040E450E08B519E4F0E940CC2C751DE4F64 +:109A30008881882361F1E2E4FDE08491882341F08C +:109A40009091C00095FFFCCF8093C6003196F5CF72 +:109A5000E3E2FDE785919491FC012491222341F0FA +:109A60003091C00035FFFCCF2093C6000196F4CFA3 +:109A70008091C00085FFFCCF8AE08093C60066E538 +:109A800074E080EF96E0DF91CF910C940B5DDF9155 +:109A9000CF9108952F923F924F925F926F927F9253 +:109AA0008F929F92AF92BF92CF92DF92EF92FF92EE +:109AB0000F931F93CF93DF93CDB7DEB7CC55D1096A +:109AC0000FB6F894DEBF0FBECDBF4C018C010E5512 +:109AD0001D4F662339F0F8011082F4018381811152 +:109AE0001DC015C0F8018081882309F4B1C0F401BC +:109AF000E656FD4FC080D180E280F3800F9424B7FA +:109B0000C616D706E806F90608F4A2C0E4CFC401D9 +:109B1000A6DBF4018381882309F49AC07401F7E479 +:109B2000EF0EF11CF70181818F9380818F9380E785 +:109B30009FE09F938F938E01015C1F4F1F930F93A4 +:109B40000F9441C90F900F900F900F900F900F90AE +:109B5000B12CF80101900020E9F73197E01BF10BDF +:109B6000BE1684F46801CB0CD11CB7FCDA94F60164 +:109B70008081992787FD90950F9416C8F601808300 +:109B8000B394E7CFFDE48F0E911C40E050E0BA01A2 +:109B9000C4010E9462BC512CCE0101966C0149E6C1 +:109BA000642E4FE0742E5E0191E2A90EB11C40E0DC +:109BB00050E0B601C4010E94AFBB1816ECF5412C71 +:109BC000F60101900020E9F73197EC19FD094E16D6 +:109BD00074F41601240C311C47FC3A94F101808185 +:109BE00090E00F9416C8F10180834394E9CF8A85F1 +:109BF0008E37E9F245E050E0B801C6010F94DCC8A9 +:109C0000892BA9F61F930F937F926F92BF92AF9209 +:109C10000F9441C960E0C5010E94B56361E085E62B +:109C20009FE00E94B5630F900F900F900F900F90E0 +:109C30000F9055245394BBCF511004C08FEF9FEF6A +:109C4000F70104C0F701808191810196918380839F +:109C5000C45ADF4F0FB6F894DEBF0FBECDBFDF9101 +:109C6000CF911F910F91FF90EF90DF90CF90BF9019 +:109C7000AF909F908F907F906F905F904F903F90AC +:109C80002F9008950F931F93CF93DF93EC018C01D6 +:109C900007511E4FC8010E94FBBCC8010E9445BD70 +:109CA00018821982DF91CF911F910F910895CF9261 +:109CB000DF92EF92FF920F931F93CF93DF93CDB775 +:109CC000DEB76F970FB6F894DEBF0FBECDBF8C0125 +:109CD0006A017C0188E6E80EF11CC80186599F4F95 +:109CE000F70191838083E55CFD4F22E030E0318312 +:109CF000208332967183608340E050E0BA0104967D +:109D00000E9462BCF701808191812BE1FC013496B5 +:109D1000DE01159601900D922A95E1F7FC018281F2 +:109D200093819C838B838FE294E09A83898396014D +:109D3000AE014F5F5F4F64E176E0C80194D8CE0179 +:109D400001960E9418B56F960FB6F894DEBF0FBE4D +:109D5000CDBFDF91CF911F910F91FF90EF90DF90DA +:109D6000CF9008952F923F924F925F926F927F9281 +:109D70008F929F92AF92BF92CF92DF92EF92FF921B +:109D80000F931F93CF93DF93CDB7DEB7AC970FB68A +:109D9000F894DEBF0FBECDBF8C016B01342EFC01E9 +:109DA0008381882309F402C3E451FE4F8081882314 +:109DB00009F4FAC02111C6C07801FCEFEF1AFDEFDB +:109DC000FF0AF7018081882371F1E2E4FDE08491CC +:109DD000882341F09091C00095FFFCCF8093C6008E +:109DE0003196F5CFEBEFFFE08491882341F090911D +:109DF000C00095FFFCCF8093C6003196F5CF4AE0B6 +:109E000050E061E070E080EF96E00E94185D809184 +:109E1000C00085FFFCCF8AE08093C60080E090E020 +:109E20000E94866FC3C2ECE3FDE08491882341F079 +:109E30009091C00095FFFCCF8093C6003196F5CF7E +:109E4000E2EEFFE08491882341F09091C00095FFFD +:109E5000FCCF8093C6003196F5CFF601819188231F +:109E600039F09091C00095FFFCCF8093C600F6CFEB +:109E7000E7EDFFE08491882341F09091C00095FFC9 +:109E8000FCCF8093C6003196F5CFF70180816DE855 +:109E9000B62EB801B89E600D711D1124675F7D4F0D +:109EA000C801C2DAF7018081F801B89EE00DF11D0A +:109EB0001124E75FFD4F8191882339F09091C00014 +:109EC00095FFFCCF8093C600F6CFE1EDFFE08491D3 +:109ED000882341F09091C00095FFFCCF8093C6008D +:109EE0003196F5CF5801F2E6AF1AFDEFBF0AF50142 +:109EF00040815181628173812AE030E080EF96E0F9 +:109F00000E94525D8091C00085FFFCCF8AE0809363 +:109F1000C600F7012081F80184E0289FE00DF11DC3 +:109F20001124AF014B5F5D4FF50180819181A281CA +:109F3000B381FA0180839183A283B3832F5FF701FA +:109F400020832CC0ECE3FDE08491882341F09091C4 +:109F5000C00095FFFCCF8093C6003196F5CFE0ECB2 +:109F6000FFE08491882341F09091C00095FFFCCFE1 +:109F70008093C6003196F5CFF6018191882339F0A0 +:109F80009091C00095FFFCCF8093C600F6CF8091E2 +:109F9000C00085FFFCCF8AE08093C600C8018751CE +:109FA0009E4F0E9445BD30C0F801EC5FFD4F10820E +:109FB000ECE3FDE08491882341F09091C00095FF8F +:109FC000FCCF8093C6003196F5CFEFEAFFE0849195 +:109FD000882341F09091C00095FFFCCF8093C6008C +:109FE0003196F5CFF6018191882339F09091C00028 +:109FF00095FFFCCF8093C600F6CF8091C00085FF0F +:10A00000FCCF8AE08093C600F8011282CE0101964F +:10A010005C010E949FC6280198E6490E511CC801A8 +:10A02000875B9F4FF20191838083F60180818F329D +:10A0300009F087C06FE270E0C6010F94C1C80196B5 +:10A040007C015AE0252EE114F10409F480C06FE28E +:10A0500070E0C7010F94C1C84C01009709F478C0A3 +:10A06000E816F90608F074C03C016E187F08A301D9 +:10A07000B701CE0180960F94EAC8E0E2F0E0EC0F61 +:10A08000FD1FE60DF71D1082FE01B0968191882319 +:10A0900039F09091C00095FFFCCF8093C600F6CFB9 +:10A0A0008091C00085FFFCCF2092C600F201608144 +:10A0B00071816115710519F06C5F7F4F02C060E01E +:10A0C00070E021E0AE01405E5F4FCE0105960E9438 +:10A0D0003CBF81112EC0EBE0FDE785919491FC011E +:10A0E0002491222341F03091C00035FFFCCF209312 +:10A0F000C6000196F4CFFE01B0968191882339F015 +:10A100009091C00095FFFCCF8093C600F6CFEDEA9A +:10A11000FFE08491882341F09091C00095FFFCCF2F +:10A120008093C6003196F5CF8091C00085FFFCCFAB +:10A130000EC1F201B182A0827401FFEFEF1AFF0A93 +:10A1400082CFC80186599F4FF201918380837601A7 +:10A15000C80187519E4F4C01F2016081718133200B +:10A1600009F4BAC06115710519F06C5F7F4F02C028 +:10A1700060E070E021E0A701C4010E943CBF882399 +:10A1800009F47DC0F40181899289A389B489F80119 +:10A19000EA56FD4F80839183A283B383E1E2FDE71A +:10A1A00085919491FC012491D801AA56BD4F222398 +:10A1B00051F03091C00035FFFCCF2093C6000196CE +:10A1C000FC012491F4CFF7018191882339F090911B +:10A1D000C00095FFFCCF8093C600F6CFE9EFFCE707 +:10A1E00085919491FC012491222341F03091C0008B +:10A1F00035FFFCCF2093C6000196F4CF4D915D91C1 +:10A200006D917C912AE030E080EF96E00E94525DF3 +:10A210008091C00085FFFCCF8AE08093C600F801E2 +:10A22000E256FD4F1082118212821382EFE1FDE7A8 +:10A2300085919491FC012491222341F03091C0003A +:10A2400035FFFCCF2093C6000196F4CF8091C0006B +:10A2500085FFFCCF8AE08093C600A70160E070E034 +:10A26000C80125DDF8018189882319F0C8014196CC +:10A2700001C0C7010F943D628DE794E092C0EBE00E +:10A28000FDE785919491FC012491222341F03091C6 +:10A29000C00035FFFCCF2093C6000196F4CFF70134 +:10A2A0008191882339F09091C00095FFFCCF809375 +:10A2B000C600F6CFEBEAFFE08491882341F090914D +:10A2C000C00095FFFCCF8093C6003196F5CF8091FA +:10A2D000C00085FFFCCF3BC06115710519F06C5FB4 +:10A2E0007F4F02C060E070E026E5A701C4010E9434 +:10A2F0003CBF811130C0EBE0FDE785919491FC01FA +:10A300002491222341F03091C00035FFFCCF2093EF +:10A31000C6000196F4CFF7018191882339F090911E +:10A32000C00095FFFCCF8093C600F6CFE9EAFFE0BE +:10A330008491882341F09091C00095FFFCCF8093D9 +:10A34000C6003196F5CF8091C00085FFFCCF8AE032 +:10A350008093C60028C081E0F8018083E5EFFCE728 +:10A3600085919491FC012491222341F03091C00009 +:10A3700035FFFCCF2093C6000196F4CFF601819102 +:10A38000882339F09091C00095FFFCCF8093C600E0 +:10A39000F6CF8091C00085FFFCCF8AE08093C60095 +:10A3A000C7010F943D62C5010E9418B5AC960FB667 +:10A3B000F894DEBF0FBECDBFDF91CF911F910F91FB +:10A3C000FF90EF90DF90CF90BF90AF909F908F90D5 +:10A3D0007F906F905F904F903F902F90089521E075 +:10A3E000FC01218340E0BECCCF92DF92EF92FF923E +:10A3F0000F931F93CF93DF93CDB7DEB76F970FB651 +:10A40000F894DEBF0FBECDBF8C016C0128E6C20EF2 +:10A41000D11C86599F4FF60191838083E55CFD4FE7 +:10A4200021E030E0318320837801FBE5EF1AFDEF76 +:10A43000FF0AF7011182108240E050E0BA01049651 +:10A440000E9462BCF601808191812BE1FC0134966F +:10A45000DE01159601900D922A95E1F7FC018281AB +:10A4600093819C838B838FE294E09A83898320E09D +:10A4700030E0AE014F5F5F4F64E176E0C8010E94BB +:10A4800033C7CE0101960E9418B5F70180819181F2 +:10A490006F960FB6F894DEBF0FBECDBFDF91CF91A0 +:10A4A0001F910F91FF90EF90DF90CF900895AF92A2 +:10A4B000BF92CF92DF92EF92FF920F931F93CF93B1 +:10A4C000DF93CDB7DEB76F970FB6F894DEBF0FBE40 +:10A4D000CDBF8C017B01CE0101960E949FC6F80181 +:10A4E000EF58FF4F80816801811104C029E4C20E3A +:10A4F000D11C03C08AE6C80ED11C21E0A701B60119 +:10A500006C5F7F4FCE0105960E943CBF811130C029 +:10A51000ECE3FDE08491882341F09091C00095FF29 +:10A52000FCCF8093C6003196F5CFE7E2FDE7859139 +:10A530009491FC012491222341F03091C00035FF19 +:10A54000FCCF2093C6000196F4CFF70181918823B8 +:10A5500039F09091C00095FFFCCF8093C600F6CFF4 +:10A560008091C00085FFFCCF8AE08093C60036C092 +:10A57000F801E154FE4F808191818A30910530F5D8 +:10A580009C012F5F3F4F318320832FE1289F700173 +:10A59000299FF00C1124F9E8EF0EF11CE00EF11EDA +:10A5A0005C01B701C7014F960E941FC921E0A21AA2 +:10A5B000B1088FE1E81AF108EFEFAE16BE0689F791 +:10A5C000B601C80187579F4F0E941FC9BE016F5F28 +:10A5D0007F4FC80186599F4F0E941FC9CE01019627 +:10A5E0000E9418B56F960FB6F894DEBF0FBECDBFB0 +:10A5F000DF91CF911F910F91FF90EF90DF90CF905F +:10A60000BF90AF900895EF92FF920F931F93CF9357 +:10A61000DF93EC01C154DE4F2881398121153105CA +:10A62000F9F021503109398328838C0107571F4FD6 +:10A63000B80186599F4F0E941FC9C80100E010E071 +:10A640007C012FE1E20EF11C2881398102171307EA +:10A6500038F40F5F1F4FB7010E941FC9C701F0CF29 +:10A66000DF91CF911F910F91FF90EF900895EF929E +:10A67000FF920F931F93CF93DF93EC010F94B93E9A +:10A680008E010C5F1D4FF80180819E0127513E4FC6 +:10A6900079018823A1F1C9010E9445BDF80180819B +:10A6A00081508083BE01FDE88F9F600D711D1124D4 +:10A6B000675F7D4F21E041E0CE0154DBF8018081EE +:10A6C000FE0124E0829FE00DF11D1124EB5FFD4FA0 +:10A6D0004081518162817381FE01E256FD4F4083CA +:10A6E000518362837383C7010E9462BCCE01DF91F4 +:10A6F000CF911F910F91FF90EF900C9408CA0F9487 +:10A70000403FC7010E9445BD1A8261E089E59FE094 +:10A71000DF91CF911F910F91FF90EF900C94B56353 +:10A72000CF92DF92EF92FF920F931F93FB01108263 +:10A730001182128213826B0174E0E72EF12C00E586 +:10A7400015E020E030E041E061E08F539E4F0E9431 +:10A7500090B891E0811101C090E0892F1F910F9175 +:10A76000FF90EF90DF90CF9008950F931F93CF93BA +:10A77000DF93EC018B0144E150E0BC0183E59FE0F5 +:10A780000F945DC8CE010F942EC8992744E150E084 +:10A79000481B590BB8018D5A904F0F945DC883E543 +:10A7A0009FE0DF91CF911F910F910895AF92BF92DB +:10A7B000CF92DF92EF92FF920F931F93CF93DF938D +:10A7C000EC015B017A01690144E150E0BC0183E5E1 +:10A7D0009FE00F945DC8CE010F942EC8EC01DD27D9 +:10A7E00004E110E0A8014C1B5D0BB501CE018D5AB0 +:10A7F000904F0F945DC8C5010F942EC8C80FD91F84 +:10A80000DD27A8014C1B5D0BB701CE018D5A904F7F +:10A810000F945DC8C7010F942EC88C0F9D1F9927F8 +:10A82000A801481B590BB6018D5A904F0F945DC873 +:10A8300083E59FE0DF91CF911F910F91FF90EF9003 +:10A84000DF90CF90BF90AF9008954F925F926F923C +:10A850007F928F929F92AF92BF92CF92DF92EF92B0 +:10A86000FF920F931F93CF93DF93CDB7DEB7289757 +:10A870000FB6F894DEBF0FBECDBFDC01CD90DD90EA +:10A88000ED90FC901397C092820FD092830FE092CC +:10A89000840FF092850F14960D911D912D913C918E +:10A8A000179709831A832B833C8300938A0F109395 +:10A8B0008B0F20938C0F30938D0FDB010D911D9129 +:10A8C0002D913C9113970D831E832F83388700931E +:10A8D000860F1093870F2093880F3093890F14965B +:10A8E0004D905D906D907C90179740928E0F509296 +:10A8F0008F0F6092900F7092910FFA0160817181B9 +:10A900008281938160936A0F70936B0F80936C0FB9 +:10A9100090936D0F84809580A680B78080926E0F93 +:10A9200090926F0FA092700FB092710F20E030E004 +:10A93000A9010F940AC081110CC020E030E0A901E8 +:10A94000C501B4010F940AC0811103C01092920F87 +:10A9500003C081E08093920F20E030E040E85FE3A5 +:10A96000C701B6010F940AC0811121C020E030E078 +:10A97000A9016D817E818F8198850F940AC0811114 +:10A9800016C020E030E0A90169817A818B819C8129 +:10A990000F940AC081110BC020E030E040E85FE373 +:10A9A000C301B2010F940AC0882309F45EC08091EC +:10A9B000920F82608093920FA3019201C701B601AA +:10A9C0000F940BC34B015C012D813E814F81588553 +:10A9D00069817A818B819C810F940BC39B01AC01AF +:10A9E000C501B4010F9419BF4B015C019B01AC017F +:10A9F000C301B2010F9411C06093720F7093730F73 +:10AA00008093740F9093750F6D817E818F819885EF +:10AA10009058A50194010F9411C06093760F709324 +:10AA2000770F8093780F9093790F69817A818B816A +:10AA30009C819058A50194010F9411C060937A0FE6 +:10AA400070937B0F80937C0F90937D0FA5019401F1 +:10AA5000C701B6010F9411C060937E0F70937F0FF2 +:10AA60008093800F9093810F24C080E090E0A0E855 +:10AA7000BFE38093720F9093730FA093740FB09302 +:10AA8000750F1092760F1092770F1092780F109228 +:10AA9000790F10927A0F10927B0F10927C0F109208 +:10AAA0007D0F80937E0F90937F0FA093800FB093C4 +:10AAB000810F28960FB6F894DEBF0FBECDBFDF9191 +:10AAC000CF911F910F91FF90EF90DF90CF90BF90AB +:10AAD000AF909F908F907F906F905F904F90089570 +:10AAE0008F929F92AF92BF92CF92DF92EF92FF929E +:10AAF0000F931F9345015601ECE0FAE0FF93EF93AB +:10AB0000ECE2CE2EEAE0DE2E0F9415260F900F9089 +:10AB10001F910F91FF90EF90DF90CF90BF90AF907B +:10AB20009F908F900D94B93E8F929F92AF92BF925B +:10AB3000CF92DF92EF92FF920F931F93470158013C +:10AB4000E090280AF090290A00912A0A10912B0A15 +:10AB5000ECE0FAE0FF93EF93FCE2CF2EFAE0DF2E79 +:10AB60000F9415260F900F901F910F91FF90EF906B +:10AB7000DF90CF90BF90AF909F908F900D94B93E93 +:10AB80008F929F92AF92BF92CF92DF92EF92FF92FD +:10AB90000F931F934B015C01E090280AF090290A63 +:10ABA00000912A0A10912B0A2091240A3091250A3B +:10ABB0004091260A5091270A6091200A7091210A3B +:10ABC0008091220A9091230AECE0FAE0FF93EF9340 +:10ABD000ACE2CA2EAAE0DA2E0F9415260F900F9041 +:10ABE0001F910F91FF90EF90DF90CF90BF90AF90AB +:10ABF0009F908F900D94B93ECF92DF92EF92FF928B +:10AC00000F931F93CF93DF9380E00F94243FC0E214 +:10AC1000DAE0688379838A839B8381E00F94243F01 +:10AC2000B4E2CB2EBAE0DB2EF6016083718382831F +:10AC3000938382E00F94243F7B018C016093280A68 +:10AC40007093290A80932A0A90932B0AF601208197 +:10AC5000318142815381688179818A819B81CCE2F3 +:10AC6000CC2ECAE0DC2E0F94C032DF91CF911F9121 +:10AC70000F91FF90EF90DF90CF90089582E00F94B6 +:10AC8000243F6093280A7093290A80932A0A90939C +:10AC90002B0A88E29AE00D9421348F929F92AF9212 +:10ACA000BF92CF92DF92EF92FF920F931F936B01AF +:10ACB0007C0120E030E040E252E46091510270916A +:10ACC000520280915302909154020F9411C04B0193 +:10ACD0005C01A70196016091280A7091290A809170 +:10ACE0002A0A90912B0A0F9419BF7B018C012091A5 +:10ACF000240A3091250A4091260A5091270A609132 +:10AD0000200A7091210A8091220A9091230AECE096 +:10AD1000FAE0FF93EF93ECE2CE2EEAE0DE2E0F9402 +:10AD200015260F94B93E0F900F9088E29AE01F917C +:10AD30000F91FF90EF90DF90CF90BF90AF909F90DA +:10AD40008F900D942134CF92DF92EF92FF92643076 +:10AD500019F4882321F044C0833008F041C0FA017F +:10AD6000C080D180E280F3802CEC3CEC4CE45FE3CB +:10AD7000C701B6010F9439C287FF32C02DEC3CECFD +:10AD80004CE250ECC701B6010F940AC087FD23C006 +:10AD90002DEC3CEC4CE250E4C701B6010F941ABF15 +:10ADA00020E030E040E650E40F9411C06B017C01DC +:10ADB0009B01AC0160E070E080E89FE30F9419BF55 +:10ADC00023E333E343EB5EE30F940BC3A701960148 +:10ADD0000F941ABF09C063E373E383EB9EE304C0DF +:10ADE00060E070E080E89FE3FF90EF90DF90CF900D +:10ADF00008958F929F92AF92BF92CF92DF92EF927F +:10AE0000FF92643019F4882321F053C0833008F096 +:10AE100050C0FA01C080D180E280F3802CEC3CEC81 +:10AE20004CE45FE3C701B6010F9439C287FF38C015 +:10AE30002DEC3CEC4CE250ECC701B6010F940AC07B +:10AE400087FD33C02DEC3CEC4CE250E4C701B60169 +:10AE50000F941ABF20E030E040E650E40F9411C098 +:10AE60006B017C019B01AC0160E070E080E89FE336 +:10AE70000F9419BF20E030E0A9010F940BC34B01E0 +:10AE80005C012AE939E949E95EE3C701B6010F949B +:10AE90000BC39B01AC01C501B4010F941ABF0DC0D7 +:10AEA0006AE979E989E99EE308C060E070E0CB01D6 +:10AEB00004C060E070E080E89FE3FF90EF90DF90D7 +:10AEC000CF90BF90AF909F908F900895CF93DF93D6 +:10AED000EA01E6E2F5E82491222379F03091C000FE +:10AEE00035FFFCCF2093C6003196F5CF3091C000DE +:10AEF00035FFFCCF2093C6000196FC01249121115F +:10AF0000F5CFE4E2F5E88491882341F09091C00008 +:10AF100095FFFCCF8093C6003196F5CFFB014081B1 +:10AF200051816281738125E030E080EF96E00E94DC +:10AF30000B5EE1E2F5E88491882341F09091C00036 +:10AF400095FFFCCF8093C6003196F5CF488159819B +:10AF50006A817B8125E030E080EF96E00E940B5E05 +:10AF6000EEE1F5E88491882341F09091C00095FFCF +:10AF7000FCCF8093C6003196F5CF4091280A5091BE +:10AF8000290A60912A0A70912B0A25E030E080EFAF +:10AF900096E00E940B5EEDE1F5E88491882341F094 +:10AFA0009091C00095FFFCCF8093C6003196F5CFFD +:10AFB0008091C00085FFFCCF8AE08093C600DF91BE +:10AFC000CF9108952F923F924F925F926F927F920E +:10AFD0008F929F92AF92BF92CF92DF92EF92FF92A9 +:10AFE0000F931F93CF93DF93CDB7DEB7C05CD1092A +:10AFF0000FB6F894DEBF0FBECDBFCB57DF4F99839E +:10B000008883C558D040E1966FAFE197C957DF4FAD +:10B0100059834883C758D040A9963FAF2EAFA99710 +:10B02000AB961FAF0EAFAB976796FFAEEEAE6797CE +:10B03000AC96CFAEAC972C2D2A300CF4EEC1E1E0EB +:10B04000FEE88491882341F09091C00095FFFCCFE9 +:10B050008093C6003196F5CF8091C00085FFFCCF6C +:10B060008AE08093C600EDEEFDE88491882341F0EC +:10B070009091C00095FFFCCF8093C6003196F5CF2C +:10B08000A996AEADBFADA9974D915D916D917C91A3 +:10B0900025E030E080EF96E00E940B5EEAEEFDE8EE +:10B0A0008491882341F09091C00095FFFCCF80935C +:10B0B000C6003196F5CFA996EEADFFADA9974481B4 +:10B0C00055816681778125E030E080EF96E00E942F +:10B0D0000B5EE9EEFDE88491882341F09091C00079 +:10B0E00095FFFCCF8093C6003196F5CF8091C000CC +:10B0F00085FFFCCF8AE08093C600E5EDFDE88491F2 +:10B10000882341F09091C00095FFFCCF8093C6004A +:10B110003196F5CFAB96AEADBFADAB974D915D918E +:10B120006D917C9125E030E080EF96E00E940B5E0F +:10B13000E2EDFDE88491882341F09091C00095FFF5 +:10B14000FCCF8093C6003196F5CFAB96EEADFFAD48 +:10B15000AB97448155816681778125E030E080EFAF +:10B1600096E00E940B5EE1EDFDE88491882341F0BA +:10B170009091C00095FFFCCF8093C6003196F5CF2B +:10B180008091C00085FFFCCF8AE08093C600EFEB82 +:10B19000FDE88491882341F09091C00095FFFCCF99 +:10B1A0008093C6003196F5CF6796AEADBFAD679779 +:10B1B0004D915D916D917C9125E030E080EF96E0BE +:10B1C0000E940B5EECEBFDE88491882341F09091A6 +:10B1D000C00095FFFCCF8093C6003196F5CF6796EF +:10B1E000EEADFFAD6797448155816681778125E09B +:10B1F00030E080EF96E00E940B5EEBEBFDE884917F +:10B20000882341F09091C00095FFFCCF8093C60049 +:10B210003196F5CF8091C00085FFFCCF8AE0809306 +:10B22000C600C957DF4FE880F980C758D040CB57D8 +:10B23000DF4F08811981C558D040C12CD12C47E877 +:10B24000242E4DE8342EE1964FADE197C41608F058 +:10B25000E0C0E3EBFDE88491882341F09091C000C9 +:10B2600095FFFCCF8093C6003196F5CF4AE050E0C1 +:10B27000B60180EF96E00E94185DE6EAFDE8849151 +:10B28000882341F09091C00095FFFCCF8093C600C9 +:10B290003196F5CFD8014D915D916D917C9125E06E +:10B2A00030E080EF96E00E940B5EE3EAFDE88491D7 +:10B2B000882341F09091C00095FFFCCF8093C60099 +:10B2C0003196F5CFD80114964D915D916D917C9199 +:10B2D000179725E030E080EF96E00E940B5EE6E9EC +:10B2E000FDE88491882341F09091C00095FFFCCF48 +:10B2F0008093C6003196F5CFF70145915591659140 +:10B30000749125E030E080EF96E00E940B5EE3E967 +:10B31000FDE88491882341F09091C00095FFFCCF17 +:10B320008093C6003196F5CF5701F4E0AF0EB11C03 +:10B33000F501459155916591749125E030E080EFDC +:10B3400096E00E940B5EE8E8FDE88491882341F0D6 +:10B350009091C00095FFFCCF8093C6003196F5CF49 +:10B36000F7016591759185919491D8012D913D9149 +:10B370004D915C910F9419BF2B013C01F501659132 +:10B38000759185919491F801248135814681578189 +:10B390000F9419BF4B015C01A3019201C301B201DB +:10B3A0000F940BC32B013C01A5019401C501B4010D +:10B3B0000F940BC39B01AC01C301B2010F941ABFE0 +:10B3C0000F94C4C3AB01BC0125E030E080EF96E0F0 +:10B3D0000E940B5EF1018491E7E8FDE8882349F0C3 +:10B3E0009091C00095FFFCCF8093C6003196849168 +:10B3F000F5CF8091C00085FFFCCFFAE0F093C60046 +:10B400002FEFC21AD20A38E0E30EF11C085F1F4F7B +:10B410001ACF84E690E00E9400776796AEADBFAD8C +:10B4200067971D921D921D921C921397FD01148225 +:10B43000158216821782E3961FAE1EAEE397A7967B +:10B440001CAE1DAE1EAE1FAEA797A3961CAE1DAEC2 +:10B450001EAE1FAEA3979E012F5F3F4F63963FAF77 +:10B460002EAF6397AE014F5B5F4F65965FAF4EAFF8 +:10B470006597A3966CAD7DAD8EAD9FADA3970F94F0 +:10B480000EC0E9966CAF7DAF8EAF9FAFE997A396E4 +:10B490006CAD7DAD8EAD9FADA3970F94BAC3CF5663 +:10B4A000DF4F688379838A839B83C159D040A796F5 +:10B4B0006CAD7DAD8EAD9FADA7970F940EC0CB56F2 +:10B4C000DF4F688379838A839B83C559D040A796D1 +:10B4D0006CAD7DAD8EAD9FADA7970F94BAC3C75627 +:10B4E000DF4F688379838A839B83C959D04080E486 +:10B4F0006396AEADBFAD63971D928A95E9F780E183 +:10B500006596EEADFFAD659711928A95E9F79E01BC +:10B510002F5B3F4FC356DF4F39832883CD59D0402F +:10B52000AE014F5F5F4FEB965FAF4EAFEB9700E022 +:10B53000C756DF4F88819981AA81BB81C959D04004 +:10B54000B058CF57DF4F88839983AA83BB83C158F4 +:10B55000D040CB56DF4F288139814A815B81C55964 +:10B56000D0405058C757DF4F288339834A835B83C5 +:10B57000C958D040CF56DF4F88819981AA81BB81BD +:10B58000C159D040B058C357DF4F88839983AA83ED +:10B59000BB83CD58D04069961FAE1EAE699710E0B0 +:10B5A000CB57DF4F28803980C558D0406C961FAEEE +:10B5B0006C97C12CD12C76016C963FAD6C97E196BF +:10B5C0004FADE197341709F4E3C0013011F40C9446 +:10B5D00014EF113011F40C9428EF002311F1023014 +:10B5E00071F4D1012D913D914D915C91C357DF4F85 +:10B5F000688179818A819B81CD58D0400DC0F1014D +:10B600002481358146815781C757DF4F6881798111 +:10B610008A819B81C958D0400F940BC34B015C01B8 +:10B6200006C0812C912C30E8A32E3FE3B32E1123CA +:10B6300011F1123071F4D1012D913D914D915C9138 +:10B64000C357DF4F688179818A819B81CD58D04073 +:10B650000DC0F1012481358146815781C757DF4FE5 +:10B66000688179818A819B81C958D0400F940BC32E +:10B670002B013C0106C0412C512C20E8622E2FE307 +:10B68000722EA1014C5F5F4FE1966FADE1976C9612 +:10B690008FAD6C9758DBE0966CAF7DAF8EAF9FAFF0 +:10B6A000E097A3019201C501B4010F940BC3E0968A +:10B6B0002CAD3DAD4EAD5FADE0970F940BC39B013C +:10B6C000AC01C701B6010F941ABF6B017C010023C6 +:10B6D00009F453C0112309F450C0023011F00C9446 +:10B6E000EEEED1012D913D914D915C91E9966CADBD +:10B6F0007DAD8EAD9FADE9970F940BC34B015C01FF +:10B70000113011F40C940CEF123011F00C94FDEE8A +:10B71000D1012D913D914D915C91E9966CAD7DAD3E +:10B720008EAD9FADE9970F940BC32B013C01A10196 +:10B730004C5F5F4FE1966FADE1976C968FAD6C9764 +:10B7400058DBE0966CAF7DAF8EAF9FAFE097A30163 +:10B750009201C501B4010F940BC3E0962CAD3DAD31 +:10B760004EAD5FADE0970F940BC39B01AC01C701D9 +:10B77000B6010F941ABF6B017C016C96FFAD6C97FC +:10B78000FF5F6C96FFAF6C9728E0220E311C14CF40 +:10B79000EB96EEADFFADEB9769968EAD9FAD6997D9 +:10B7A000E80FF91FC082D182E282F3821F5F049604 +:10B7B00069969FAF8EAF6997409709F0F1CECB574E +:10B7C000DF4F28803980C558D040C957DF4FA88146 +:10B7D000B981C758D0406996BFAFAEAF699710E046 +:10B7E000E0961CAE1DAE1EAE1FAEE097E1962FADEB +:10B7F000E197121709F45CC1002331F1013059F1CE +:10B80000023071F4F1012081318142815381C357AB +:10B81000DF4F688179818A819B81CD58D0400FC0EC +:10B82000D10114962D913D914D915C911797C75779 +:10B83000DF4F688179818A819B81C958D0400F94FC +:10B840000BC34B015C010AC0812C912CB0E8AB2EDC +:10B85000BFE3BB2E03C0812C912C5401D1012D914B +:10B860003D914D915D916D96BFAFAEAF6D97CF5548 +:10B87000DF4F288339834A835B83C15AD040E996DE +:10B880006CAD7DAD8EAD9FADE9970F940BC36B0191 +:10B890007C01D10114962D913D914D915C911797AA +:10B8A000C358DF4F288339834A835B83CD57D04009 +:10B8B0006996EEADFFAD699745905590659074908F +:10B8C000C358DF4F288139814A815B81CD57D040F1 +:10B8D000C756DF4F688179818A819B81C959D040E1 +:10B8E0000F940BC39B01AC01C701B6010F9419BFA4 +:10B8F0006796EEADFFAD679720813181428153811C +:10B900000F941ABFA30192010F9419BFCB55DF4FBB +:10B91000688379838A839B83C55AD0406D964EADE8 +:10B920005FAD6D97E1966FADE197812F0CDA2B013A +:10B930003C01CB55DF4F288139814A815B81C55A53 +:10B94000D040C501B4010F940BC3A30192010F9421 +:10B950000BC39B01AC01E0966CAD7DAD8EAD9FAD90 +:10B96000E0970F941ABFE0966CAF7DAF8EAF9FAF9C +:10B97000E0970023C9F00130D9F00230F9F0C35844 +:10B98000DF4F288139814A815B81CD57D040CF5725 +:10B99000DF4F688179818A819B81C158D0400F94A3 +:10B9A0000BC36B017C010AC0C12CD12C760106C0EF +:10B9B000C12CD12CA0E8EA2EAFE3FA2E6996EEADA9 +:10B9C000FFAD6997349685909590A590B490CF552A +:10B9D000DF4F288139814A815B81C15AD040CF56DF +:10B9E000DF4F688179818A819B81C159D0400F9452 +:10B9F0000BC32B013C01C358DF4F288139814A8199 +:10BA00005B81CD57D040CB56DF4F688179818A81E9 +:10BA10009B81C559D0400F940BC39B01AC01C3015E +:10BA2000B2010F941ABF6796AEADBFAD679714967B +:10BA30002D913D914D915C9117970F941ABFA501DF +:10BA400094010F9419BF2B013C016D964EAD5FAD73 +:10BA50006D97E1966FADE197812FCBD94B015C01DA +:10BA6000A3019201C701B6010F940BC3A501940174 +:10BA70000F940BC39B01AC01E0966CAD7DAD8EAD18 +:10BA80009FADE0970F941ABFE0966CAF7DAF8EAF7D +:10BA90009FAFE0971F5F6996EEADFFAD699738964F +:10BAA0006996FFAFEEAF6997F8E02F0E311C9ECE7E +:10BAB000E0968CAD9DADAEADBFADE097B058C3562E +:10BAC000DF4FE881F981CD59D04081939193A193C3 +:10BAD000B193C356DF4FF983E883CD59D0400F5F50 +:10BAE000EB962EAD3FADEB97205F3F4FEB963FAF10 +:10BAF0002EAFEB97043009F04ECD25968CAD9DAD61 +:10BB0000AEADBFAD25976B968CAF9DAFAEAFBFAF5F +:10BB10006B972D813E814F815885E0962CAF3DAFCC +:10BB20004EAF5FAFE09789859A85AB85BC85E99676 +:10BB30008CAF9DAFAEAFBFAFE9972D853E854F85EA +:10BB40005889ED962CAF3DAF4EAF5FAFED97898131 +:10BB50009A81AB81BC81C358DF4F88839983AA83C4 +:10BB6000BB83CD57D04029962CAD3DAD4EAD5FADDA +:10BB70002997CF57DF4F288339834A835B83C15886 +:10BB8000D04089899A89AB89BC89C757DF4F8883A0 +:10BB90009983AA83BB83C958D040298D3A8D4B8D98 +:10BBA0005C8DC357DF4F288339834A835B83CD582D +:10BBB000D0408D8D9E8DAF8DB8A1CF56DF4F88833D +:10BBC0009983AA83BB83C159D0402D893E894F896F +:10BBD000588DCB56DF4F288339834A835B83C55901 +:10BBE000D0402D968CAD9DADAEADBFAD2D97C75657 +:10BBF000DF4F88839983AA83BB83C959D04029A189 +:10BC00003AA14BA15CA1C356DF4F288339834A83F5 +:10BC10005B83CD59D0408DA19EA1AFA1B8A5CF55D2 +:10BC2000DF4F88839983AA83BB83C15AD0402DA557 +:10BC30003EA54FA558A9CB55DF4F288339834A83AA +:10BC40005B83C55AD04089A59AA5ABA5BCA5C755AD +:10BC5000DF4F88839983AA83BB83C95AD0406196FA +:10BC60002CAD3DAD4EAD5FAD6197C355DF4F288321 +:10BC700039834A835B83CD5AD04089A99AA9ABA95D +:10BC8000BCA9CF54DF4F88839983AA83BB83C15B50 +:10BC9000D0402DA93EA94FA958ADCB54DF4F2883E2 +:10BCA00039834A835B83C55BD04089AD9AADABAD28 +:10BCB000BCADC754DF4F88839983AA83BB83C95B1C +:10BCC000D04021962CAD3DAD4EAD5FAD2197C35414 +:10BCD000DF4F288339834A835B83CD5BD04014E6F2 +:10BCE000412C512C32015301420173016201A30125 +:10BCF0009201E0966CAD7DAD8EAD9FADE0970F9457 +:10BD00000BC39B01AC016B966CAD7DAD8EAD9FAD51 +:10BD10006B970F9419BF2B013C01A5019401E99683 +:10BD20006CAD7DAD8EAD9FADE9970F940BC39B01BC +:10BD3000AC01C301B2010F9419BF2B013C01A70153 +:10BD40009601ED966CAD7DAD8EAD9FADED970F94E8 +:10BD50000BC39B01AC01C301B2010F9419BFC358BF +:10BD6000DF4F288139814A815B81CD57D0400F94C4 +:10BD700011C06F966CAF7DAF8EAF9FAF6F979B0179 +:10BD8000AC01C757DF4F688179818A819B81C9588F +:10BD9000D0400F940BC39B01AC01CF57DF4F68819C +:10BDA00079818A819B81C158D0400F9419BF2B01A2 +:10BDB0003C01A5019401C357DF4F688179818A81D5 +:10BDC0009B81CD58D0400F940BC39B01AC01C301A4 +:10BDD000B2010F9419BF4B015C01A7019601CF5628 +:10BDE000DF4F688179818A819B81C159D0400F944E +:10BDF0000BC39B01AC01C501B4010F9419BFCB5615 +:10BE0000DF4F288139814A815B81C559D0400F9429 +:10BE100011C02B013C016F962CAD3DAD4EAD5FAD19 +:10BE20006F97C356DF4F688179818A819B81CD5995 +:10BE3000D0400F940BC39B01AC01C756DF4F688104 +:10BE400079818A819B81C959D0400F9419BF4B01D8 +:10BE50005C01A3019201CF55DF4F688179818A810E +:10BE60009B81C15AD0400F940BC39B01AC01C5010B +:10BE7000B4010F9419BF4B015C01A7019601CB558A +:10BE8000DF4F688179818A819B81C55AD0400F94A8 +:10BE90000BC39B01AC01C501B4010F9419BFC75579 +:10BEA000DF4F288139814A815B81C95AD0400F9484 +:10BEB00011C04B015C016F962CAD3DAD4EAD5FAD39 +:10BEC0006F97CF54DF4F688179818A819B81C15BF5 +:10BED000D0400F940BC39B01AC01C355DF4F688169 +:10BEE00079818A819B81CD5AD0400F9419BF6B0113 +:10BEF0007C01A3019201CB54DF4F688179818A8153 +:10BF00009B81C55BD0400F940BC39B01AC01C70163 +:10BF1000B6010F9419BF6B017C01A5019401C754B0 +:10BF2000DF4F688179818A819B81C95BD0400F9402 +:10BF30000BC39B01AC01C701B6010F9419BFC354D9 +:10BF4000DF4F288139814A815B81CD5BD0400F94DE +:10BF500011C06B017C01115009F0C9CE6F962CAD58 +:10BF60003DAD4EAD5FAD6F976796AEADBFAD679718 +:10BF70006D917D918D919C910F941ABF6796EEAD56 +:10BF8000FFAD67976083718382839383A3019201DE +:10BF900064817581868197810F941ABF6796AEADD3 +:10BFA000BFAD679714966D937D938D939C93179770 +:10BFB000A5019401A3966CAD7DAD8EAD9FADA39709 +:10BFC0000F941ABFA3966CAF7DAF8EAF9FAFA397B0 +:10BFD000A7019601A7966CAD7DAD8EAD9FADA797DD +:10BFE0000F941ABFA7966CAF7DAF8EAF9FAFA79788 +:10BFF000AC96BFADAC97B4310CF42FC1EBE7FDE8C4 +:10C000008491882341F09091C00095FFFCCF8093EC +:10C01000C6003196F5CF4AE050E0E3966EAD7FADB5 +:10C02000E39780EF96E00E94185DE5E6FDE88491D5 +:10C03000882341F09091C00095FFFCCF8093C6000B +:10C040003196F5CF25E030E06F964CAD5DAD6EAD2D +:10C050007FAD6F9780EF96E00E940B5EE2E6FDE811 +:10C060008491882341F09091C00095FFFCCF80938C +:10C07000C6003196F5CF25E030E0B301A20180EF94 +:10C0800096E00E940B5EEFE5FDE88491882341F085 +:10C090009091C00095FFFCCF8093C6003196F5CFFC +:10C0A00025E030E0B501A40180EF96E00E940B5E30 +:10C0B000ECE5FDE88491882341F09091C00095FF64 +:10C0C000FCCF8093C6003196F5CF25E030E0B70174 +:10C0D000A60180EF96E00E940B5EEBE5FDE88491FF +:10C0E000882341F09091C00095FFFCCF8093C6005B +:10C0F0003196F5CF8091C00085FFFCCF8AE0809318 +:10C10000C600EBE4FDE88491882341F09091C000E3 +:10C1100095FFFCCF8093C6003196F5CF6796EEADC4 +:10C12000FFAD6797408151816281738125E030E0E6 +:10C1300080EF96E00E940B5EE8E4FDE8849188239E +:10C1400041F09091C00095FFFCCF8093C6003196DE +:10C15000F5CF6796AEADBFAD67974D915D916D918F +:10C160007C9125E030E080EF96E00E940B5EE7E4F2 +:10C17000FDE88491882341F09091C00095FFFCCFA9 +:10C180008093C6003196F5CF8091C00085FFFCCF2B +:10C190008AE08093C600E4E3FDE88491882341F0BF +:10C1A0009091C00095FFFCCF8093C6003196F5CFEB +:10C1B00020E030E044E353E4A3966CAD7DAD8EAD5A +:10C1C0009FADA3970F940BC32BED3FE049E450E4E0 +:10C1D0000F9411C0AB01BC0125E030E080EF96E088 +:10C1E0000E940B5EE1E3FDE88491882341F0909189 +:10C1F000C00095FFFCCF8093C6003196F5CF20E0BC +:10C2000030E044E353E4A7966CAD7DAD8EAD9FADB9 +:10C21000A7970F940BC32BED3FE049E450E40F9434 +:10C2200011C0AB01BC0125E030E080EF96E00E9438 +:10C230000B5EE0E3FDE88491882341F09091C0001B +:10C2400095FFFCCF8093C6003196F5CF8091C0005A +:10C2500085FFFCCF8AE08093C600E396EEADFFAD8C +:10C26000E3973196E396FFAFEEAFE397E436F1053F +:10C2700009F0FFC8A3966CAD7DAD8EAD9FADA397C1 +:10C280000F940EC0A996AEADBFADA9976D937D93E7 +:10C290008D939C931397A3966CAD7DAD8EAD9FADA2 +:10C2A000A3970F94BAC3A996EEADFFADA997648387 +:10C2B000758386839783A7966CAD7DAD8EAD9FAD5C +:10C2C000A7970F94BAC3DC01CB01B058AB96EEAD83 +:10C2D000FFADAB9780839183A283B383A7966CADA8 +:10C2E0007DAD8EAD9FADA7970F940EC0AB96AEAD52 +:10C2F000BFADAB9714966D937D938D939C931797D9 +:10C30000A3962CAD3DAD4EAD5FADA397A7966CAD9A +:10C310007DAD8EAD9FADA7970F9419BF6B017C01CA +:10C32000E894F7F8C092310AD092320AE092330AC8 +:10C33000F092340A2FE132E449E05BE3C701B60131 +:10C340000F9439C218168CF425E33AEF4EE85BE3FC +:10C35000C701B6010F9439C2181664F4E2E0F0E0A8 +:10C360006D96FFAFEEAF6D970BC06D961FAE1EAE14 +:10C370006D9706C021E030E06D963FAF2EAF6D9710 +:10C3800025E33AEF4EE85BE3A3966CAD7DAD8EAD51 +:10C390009FADA3979F770F9439C21816B4F025E389 +:10C3A0003AEF4EE85BE3A7966CAD7DAD8EAD9FADE9 +:10C3B000A7979F770F9439C218166CF482E090E02B +:10C3C0006D969FAF8EAF6D9706C042E050E06D96C0 +:10C3D0005FAF4EAF6D97AC969FADAC9719160CF052 +:10C3E00064C1ECE1FDE88491882341F09091C000A4 +:10C3F00095FFFCCF8093C6003196F5CF20E030E06A +:10C4000044E353E4A3966CAD7DAD8EAD9FADA39791 +:10C410000F940BC32BED3FE049E450E40F9411C09F +:10C42000AB01BC0125E030E080EF96E00E940B5E9E +:10C43000E9E1FDE88491882341F09091C00095FFE7 +:10C44000FCCF8093C6003196F5CF20E030E044E386 +:10C4500053E4A7966CAD7DAD8EAD9FADA7970F94BD +:10C460000BC32BED3FE049E450E40F9411C0AB0146 +:10C47000BC0125E030E080EF96E00E940B5EE8E131 +:10C48000FDE88491882341F09091C00095FFFCCF96 +:10C490008093C6003196F5CF8091C00085FFFCCF18 +:10C4A0008AE08093C600AC96AFADAC97AA300CF48E +:10C4B000FCC0EFEFFCE88491882341F09091C0002C +:10C4C00095FFFCCF8093C6003196F5CFA996EEADCF +:10C4D000FFADA997408151816281738125E030E0F1 +:10C4E00080EF96E00E940B5EECEFFCE884918823DD +:10C4F00041F09091C00095FFFCCF8093C60031962B +:10C50000F5CFA996AEADBFADA99714964D915D91AB +:10C510006D917C91179725E030E080EF96E00E94C6 +:10C520000B5EEBEFFCE88491882341F09091C00012 +:10C5300095FFFCCF8093C6003196F5CF8091C00067 +:10C5400085FFFCCF8AE08093C600E2EEFCE8849190 +:10C55000882341F09091C00095FFFCCF8093C600E6 +:10C560003196F5CFAB96EEADFFADAB9740815181E3 +:10C570006281738125E030E080EF96E00E940B5EDF +:10C58000EFEDFCE88491882341F09091C00095FF85 +:10C59000FCCF8093C6003196F5CFAB96AEADBFAD64 +:10C5A000AB9714964D915D916D917C91179725E015 +:10C5B00030E080EF96E00E940B5EEEEDFCE88491A7 +:10C5C000882341F09091C00095FFFCCF8093C60076 +:10C5D0003196F5CF8091C00085FFFCCF8AE0809333 +:10C5E000C600E7ECFCE88491882341F09091C000FC +:10C5F00095FFFCCF8093C6003196F5CF6796EEADE0 +:10C60000FFAD6797408151816281738125E030E001 +:10C6100080EF96E00E940B5EE4ECFCE884918823B6 +:10C6200041F09091C00095FFFCCF8093C6003196F9 +:10C63000F5CF6796AEADBFAD679714964D915D91FE +:10C640006D917C91179725E030E080EF96E00E9495 +:10C650000B5EE3ECFCE88491882341F09091C000EC +:10C6600095FFFCCF8093C6003196F5CF8091C00036 +:10C6700085FFFCCF8AE08093C60084E690E00E94AC +:10C680000077EAEAFCE88491882341F09091C000A9 +:10C6900095FFFCCF8093C6003196F5CF8091C00006 +:10C6A00085FFFCCF8AE08093C600CB57DF4F288000 +:10C6B0003980C558D040C957DF4F08811981C75804 +:10C6C000D040E3961FAE1EAEE397E2964FADE297E1 +:10C6D00068964FAF6897E1965FADE197451708F010 +:10C6E00015C3F10181909190A190B190E796FFAFB1 +:10C6F000EEAFE797D1011496CD90DD90ED90FC90D0 +:10C700001797A996EEADFFADA9972081318142819F +:10C710005381C501B4010F940BC32B013C01AB96AF +:10C72000AEADBFADAB972D913D914D915C91C701E1 +:10C73000B6010F940BC39B01AC01C301B2010F946E +:10C740001ABF6796EEADFFAD6797208131814281B8 +:10C7500053810F941ABFED966CAF7DAF8EAF9FAF34 +:10C76000ED97A996AEADBFADA99714962D913D91C9 +:10C770004D915C911797C501B4010F940BC34B0108 +:10C780005C01AB96EEADFFADAB9724813581468160 +:10C790005781C701B6010F940BC39B01AC01C501C2 +:10C7A000B4010F941ABF6796AEADBFAD67971496EC +:10C7B0002D913D914D915C9117970F941ABFC358DD +:10C7C000DF4F688379838A839B83CD57D040F801FC +:10C7D0006591759185919491ED962CAD3DAD4EADE1 +:10C7E0005FADED970F9419BF9B01AC010F940BC384 +:10C7F000E0966CAF7DAF8EAF9FAFE097F8013496B7 +:10C80000CF57DF4FF983E883C158D04065917591C8 +:10C8100085919491C358DF4F288139814A815B818A +:10C82000CD57D0400F9419BF9B01AC010F940BC39F +:10C830006B017C019B01AC01E0966CAD7DAD8EADD2 +:10C840009FADE0970F941ABF0F94C4C32B013C0116 +:10C85000AC96FFADAC97FA305CF1E2EAFCE884916B +:10C86000882341F09091C00095FFFCCF8093C600D3 +:10C870003196F5CF4AE050E0E3966EAD7FADE39799 +:10C8800080EF96E00E94185DE0EAFCE8849188233E +:10C8900041F09091C00095FFFCCF8093C600319687 +:10C8A000F5CF8091C00085FFFCCF8AE08093C60061 +:10C8B000E196FFADE197F43031F468962FAD6897BB +:10C8C000222339F0B8C068963FAD6897333008F03E +:10C8D000B2C0AC964FADAC9744312CF5E7964EAD57 +:10C8E0005FADE797E1966FADE19768968FAD68977A +:10C8F0000E94F9D64B015C01E0966CAD7DAD8EAD2A +:10C900009FADE0970F94C4C36B966CAF7DAF8EAFB5 +:10C910009FAF6B972DEC3CEC4CE45FE30F9439C276 +:10C9200018162CF10DC0EDE8FCE884918823B1F2D3 +:10C930009091C00095FFFCCF8093C6003196F5CF53 +:10C9400020E030E0A901C501B4010F940AC088239A +:10C9500009F490C0C701B6010F94C4C320E030E0D1 +:10C9600040EC5FE30F9439C218160CF083C0AC960C +:10C970005FADAC9754313CF48EEF9FEF6D969FAF57 +:10C980008EAF6D9777C0E0E8FCE88491882341F092 +:10C990009091C00095FFFCCF8093C6003196F5CFF3 +:10C9A00022E030E0B501A40180EF96E00E940B5E2A +:10C9B0002DEC3CEC4CE45FE36B966CAD7DAD8EAD45 +:10C9C0009FAD6B970F9439C218165CF020E030E0F1 +:10C9D000A901C501B4010F940AC081110FC00C94C4 +:10C9E000E6EEE7E6FCE88491882381F39091C000AD +:10C9F00095FFFCCF8093C6003196F5CFC701B601F5 +:10CA00000F94C4C320E030E040EC5FE30F9439C2E0 +:10CA1000181614F00C94E6EEEEE4FCE884918823FA +:10CA200011F40C94E6EE9091C00095FFFCCF80933A +:10CA3000C6003196F3CFAC969FADAC9794317CF0A5 +:10CA4000E7E3FCE88491882311F40C94D5EE9091EF +:10CA5000C00095FFFCCF8093C6003196F3CF2DEC3C +:10CA60003CEC4CE45FE3C301B2010F9439C21816E9 +:10CA70000CF482CFAC96AFADAC97AA300CF436C1B3 +:10CA8000E7E1FCE88491882341F09091C00095FF94 +:10CA9000FCCF8093C6003196F5CF8091C00085FF12 +:10CAA000FCCF8AE08093C600EBE0FCE88491882309 +:10CAB00041F09091C00095FFFCCF8093C600319665 +:10CAC000F5CFD1014D915D916D917C9125E030E0E4 +:10CAD00080EF96E00E940B5EE8E0FCE884918823FA +:10CAE00041F09091C00095FFFCCF8093C600319635 +:10CAF000F5CFD10114964D915D916D917C91179771 +:10CB000025E030E080EF96E00E940B5EE8EFFBE866 +:10CB10008491882341F09091C00095FFFCCF8093D1 +:10CB2000C6003196F5CF25E030E0ED964CAD5DAD19 +:10CB30006EAD7FADED9780EF96E00E940B5EE5EF66 +:10CB4000FBE88491882341F09091C00095FFFCCFD1 +:10CB50008093C6003196F5CF25E030E0C358DF4F13 +:10CB6000488159816A817B81CD57D04080EF96E022 +:10CB70000E940B5EE8EEFBE88491882341F09091DF +:10CB8000C00095FFFCCF8093C6003196F5CFF80129 +:10CB9000459155916591749125E030E080EF96E0E4 +:10CBA0000E940B5EE5EEFBE88491882341F09091B2 +:10CBB000C00095FFFCCF8093C6003196F5CFCF57CC +:10CBC000DF4FE881F981C158D04045915591659179 +:10CBD000749125E030E080EF96E00E940B5EE3EE7A +:10CBE000FBE88491882341F09091C00095FFFCCF31 +:10CBF0008093C6003196F5CF8091C00085FFFCCFB1 +:10CC00008AE08093C600EBEDFBE88491882341F035 +:10CC10009091C00095FFFCCF8093C6003196F5CF70 +:10CC200022E030E0B301A20180EF96E00E940B5EAB +:10CC3000EFECFBE88491882341F09091C00095FFD0 +:10CC4000FCCF8093C6003196F5CFE0966CAD7DADFC +:10CC50008EAD9FADE0970F94C4C3AB01BC0122E041 +:10CC600030E080EF96E00E940B5EE3ECFBE88491FD +:10CC7000882341F09091C00095FFFCCF8093C600BF +:10CC80003196F5CFC701B6010F94C4C3AB01BC0107 +:10CC900022E030E080EF96E00E940B5EE2ECFBE8E1 +:10CCA0008491882341F09091C00095FFFCCF809340 +:10CCB000C6003196F5CF8091C00085FFFCCF8AE099 +:10CCC0008093C600E1ECFBE88491882341F09091C9 +:10CCD000C00095FFFCCF8093C6003196F5CF8091C0 +:10CCE000C00085FFFCCF8AE08093C600E3962EAD9E +:10CCF0003FADE3972F5F3F4FE3963FAF2EAFE397F4 +:10CD0000085F1F4F38E0230E311CDFCCAC968FAD8F +:10CD1000AC9784310CF46DC0E4EBFBE8849188237C +:10CD200041F09091C00095FFFCCF8093C6003196F2 +:10CD3000F5CF8091C00085FFFCCF8AE08093C600CC +:10CD4000E6EAFBE88491882341F09091C00095FFCA +:10CD5000FCCF8093C6003196F5CF22E030E04DEC59 +:10CD60005CEC6CE47FE380EF96E00E940C5EE8E907 +:10CD7000FBE88491882341F09091C00095FFFCCF9F +:10CD80008093C6003196F5CF22E030E040E050E0DD +:10CD900060EC7FE380EF96E00E940C5EE2E8FBE847 +:10CDA0008491882341F09091C00095FFFCCF80933F +:10CDB000C6003196F5CF22E030E04DEC5CEC6CE43F +:10CDC0007FE380EF96E00E940C5EE1E8FBE884914F +:10CDD000882341F09091C00095FFFCCF8093C6005E +:10CDE0003196F5CF8091C00085FFFCCF8AE080931B +:10CDF000C6006D96AEADBFAD6D97AB2B09F0CFC33E +:10CE0000AC96BFADAC971B16A4F4ECE4FBE88491A0 +:10CE1000882341F09091C00095FFFCCF8093C6001D +:10CE20003196F5CF8091C00085FFFCCF8AE08093DA +:10CE3000C600A7962CAD3DAD4EAD5FADA797A396AE +:10CE40006CAD7DAD8EAD9FADA3970F941ABF20E062 +:10CE500030E040E05FE30F940BC34B015C010F94A3 +:10CE60000EC06B017C01A996EEADFFADA997608362 +:10CE7000718382839383C501B4010F94BAC3A996C9 +:10CE8000AEADBFADA99714966D937D938D939C9392 +:10CE90001797DC01CB01B058AB96EEADFFADAB9769 +:10CEA00080839183A283B383C482D582E682F78292 +:10CEB0006796EEADFFAD67971082118212821382E2 +:10CEC0001482158216821782A0961FAEA097412C5D +:10CED000512C3201A7964CAE5DAE6EAE7FAEA797D9 +:10CEE000E196FFADE197EF2FF0E0AE96FFAFEEAF2A +:10CEF000AE97A0962FADA097222E332427FC309416 +:10CF0000AE964EAD5FADAE97241635060CF081C2DD +:10CF10008101F3E0000F111FFA95E1F7CB57DF4FC6 +:10CF2000E881F981C558D040E00FF11F80809180E1 +:10CF3000A280B38098012C5F3F4F69963FAF2EAF20 +:10CF40006997CB57DF4FE881F981C558D040E20F90 +:10CF5000F31FC080D180E280F380A996AEADBFAD53 +:10CF6000A9972D913D914D915C91C501B4010F940C +:10CF70000BC3E5966CAF7DAF8EAF9FAFE597AB96D9 +:10CF8000EEADFFADAB972081318142815381C70166 +:10CF9000B6010F940BC39B01AC01E5966CAD7DAD62 +:10CFA0008EAD9FADE5970F941ABFE5966CAF7DAF40 +:10CFB0008EAF9FAFE597A996AEADBFADA99714967A +:10CFC0002D913D914D915C911797C501B4010F943E +:10CFD0000BC34B015C01AB96EEADFFADAB9724816B +:10CFE000358146815781C701B6010F940BC39B0160 +:10CFF000AC01C501B4010F941ABF69837A838B8396 +:10D000009C83AE014F5F5F4FE1966FADE197A096B5 +:10D010008FADA0970E94A3D66B017C01C957DF4F4B +:10D0200028813981C758D040020F131FF80165913C +:10D03000759185919491E5962CAD3DAD4EAD5FAD6A +:10D04000E5970F9419BF9B01AC01C701B6010F947E +:10D050000BC39B01AC016796AEADBFAD67976D91F9 +:10D060007D918D919C910F941ABF6796EEADFFADA7 +:10D0700067976083718382839383A7019601A79644 +:10D080006CAD7DAD8EAD9FADA7970F941ABFA796DF +:10D090006CAF7DAF8EAF9FAFA797AC96FFADAC974F +:10D0A000F4310CF4A1C04AE050E0B10180EF96E009 +:10D0B0000E94185DEBE4FBE88491882341F0909195 +:10D0C000C00095FFFCCF8093C6003196F5CF8091CC +:10D0D000C00085FFFCCF8AE08093C600E1E4FBE856 +:10D0E0008491882341F09091C00095FFFCCF8093FC +:10D0F000C6003196F5CF8091C00085FFFCCF8AE055 +:10D100008093C60022E030E0B701A60180EF96E0F0 +:10D110000E940B5EE0E4FBE88491882341F090914B +:10D12000C00095FFFCCF8093C6003196F5CF80916B +:10D13000C00085FFFCCF8AE08093C600E7E3FBE8F0 +:10D140008491882341F09091C00095FFFCCF80939B +:10D15000C6003196F5CF8091C00085FFFCCF8AE0F4 +:10D160008093C6006796AEADBFAD67974D915D9158 +:10D170006D917C9122E030E080EF96E00E940B5EA2 +:10D18000E6E3FBE88491882341F09091C00095FF8D +:10D19000FCCF8093C6003196F5CF8091C00085FF0B +:10D1A000FCCF8AE08093C600E2E3FBE88491882309 +:10D1B00041F09091C00095FFFCCF8093C60031965E +:10D1C000F5CF8091C00085FFFCCF8AE08093C60038 +:10D1D00022E030E0A7964CAD5DAD6EAD7FADA79778 +:10D1E00080EF96E00E940B5EAE014F5F5F4FE196CD +:10D1F0006FADE197A0968FADA0970E94F9D66B0115 +:10D200007C01C957DF4FE881F981C758D040699642 +:10D210002EAD3FAD6997E20FF31F65917591859132 +:10D22000949129813A814B815C810F9419BF9B01B4 +:10D23000AC01C701B6010F940BC39B01AC0167960B +:10D24000AEADBFAD679714966D917D918D919C9118 +:10D2500017970F941ABF6796EEADFFAD679764837B +:10D26000758386839783A7019601C301B2010F944A +:10D270001ABF2B013C01AC96FFADAC97F4310CF416 +:10D28000C0C0E1E3FBE88491882341F09091C000A5 +:10D2900095FFFCCF8093C6003196F5CF8091C000FA +:10D2A00085FFFCCF8AE08093C600E7E2FBE884912B +:10D2B000882341F09091C00095FFFCCF8093C60079 +:10D2C0003196F5CF8091C00085FFFCCF8AE0809336 +:10D2D000C60022E030E0B701A60180EF96E00E9490 +:10D2E0000B5EE6E2FBE88491882341F09091C00058 +:10D2F00095FFFCCF8093C6003196F5CF8091C0009A +:10D3000085FFFCCF8AE08093C600EDE1FBE88491C5 +:10D31000882341F09091C00095FFFCCF8093C60018 +:10D320003196F5CF8091C00085FFFCCF8AE08093D5 +:10D33000C6006796AEADBFAD679714964D915D91EF +:10D340006D917C91179722E030E080EF96E00E948B +:10D350000B5EECE1FBE88491882341F09091C000E2 +:10D3600095FFFCCF8093C6003196F5CF8091C00029 +:10D3700085FFFCCF8AE08093C600E8E1FBE884915A +:10D38000882341F09091C00095FFFCCF8093C600A8 +:10D390003196F5CF8091C00085FFFCCF8AE0809365 +:10D3A000C60022E030E0B301A20180EF96E00E94C7 +:10D3B0000B5EE7E1FBE88491882341F09091C00087 +:10D3C00095FFFCCF8093C6003196F5CF8091C000C9 +:10D3D00085FFFCCF8AE08093C600E6E1FBE88491FC +:10D3E000882341F09091C00095FFFCCF8093C60048 +:10D3F0003196F5CF8091C00085FFFCCF8AE0809305 +:10D40000C600A096FFADA097FF5FA096FFAFA097C4 +:10D4100070CDA7962CAD3DAD4EAD5FADA79767968D +:10D42000AEADBFAD67976D917D918D919C910F943D +:10D4300011C06796EEADFFAD6797608371838283FD +:10D440009383A301920164817581868197810F94F2 +:10D4500011C06796AEADBFAD679714966D937D937F +:10D460008D939C931797AC96BFADAC97B4310CF4E9 +:10D4700096C0E5E1FBE88491882341F09091C000DB +:10D4800095FFFCCF8093C6003196F5CF8091C00008 +:10D4900085FFFCCF8AE08093C600E2E0FBE8849140 +:10D4A000882341F09091C00095FFFCCF8093C60087 +:10D4B0003196F5CF8091C00085FFFCCF8AE0809344 +:10D4C000C600E9EFFAE88491882341F09091C0000A +:10D4D00095FFFCCF8093C6003196F5CF8091C000B8 +:10D4E00085FFFCCF8AE08093C6006796EEADFFAD66 +:10D4F0006797408151816281738122E030E080EF43 +:10D5000096E00E940B5EE8EFFAE88491882341F0F0 +:10D510009091C00095FFFCCF8093C6003196F5CF67 +:10D520008091C00085FFFCCF8AE08093C600EFEEBB +:10D53000FAE88491882341F09091C00095FFFCCFD8 +:10D540008093C6003196F5CF8091C00085FFFCCF57 +:10D550008AE08093C6006796AEADBFAD679714961C +:10D560004D915D916D917C91179722E030E080EFB5 +:10D5700096E00E940B5EEEEEFAE88491882341F07B +:10D580009091C00095FFFCCF8093C6003196F5CFF7 +:10D590008091C00085FFFCCF8AE08093C600A996E9 +:10D5A000EEADFFADA9974080518062807380AB964D +:10D5B000AEADBFADAB9714968D909D90AD90BC90E5 +:10D5C00017972481358146815781A3962CAF3DAFB3 +:10D5D0004EAF5FAFA397AB96AEADBFADAB972D91FE +:10D5E0003D914D915C91A7962CAF3DAF4EAF5FAF93 +:10D5F000A797A5019401C301B2010F940BC36B015E +:10D600007C01A7962CAD3DAD4EAD5FADA797A3961F +:10D610006CAD7DAD8EAD9FADA3970F940BC39B01F9 +:10D62000AC01C701B6010F9419BF6B017C019B01CE +:10D63000AC01C501B4010F9411C06B966CAF7DAF06 +:10D640008EAF9FAF6B97A7966CAD7DAD8EAD9FAD46 +:10D65000A7979058A70196010F9411C04B015C0148 +:10D66000A3966CAD7DAD8EAD9FADA3979058A701ED +:10D6700096010F9411C0A7966CAF7DAF8EAF9FAF90 +:10D68000A797A7019601C301B2010F9411C06B01C6 +:10D690007C016796AEADBFAD67972D913D914D91E1 +:10D6A0005C911397A3962CAF3DAF4EAF5FAFA3979E +:10D6B00014964D905D906D907C9017976B962CAD65 +:10D6C0003DAD4EAD5FAD6B97A996AEADBFADA99721 +:10D6D0002D933D934D935C931397A7962CAD3DAD41 +:10D6E0004EAD5FADA79714962D933D934D935C93EC +:10D6F0001797AB96EEADFFADAB9780829182A28279 +:10D70000B382DF0114966D937D938D939C9317974D +:10D710006B966CAD7DAD8EAD9FAD6B979058A3961B +:10D720002CAD3DAD4EAD5FADA3970F940BC36B9683 +:10D730006CAF7DAF8EAF9FAF6B97A3019201C50118 +:10D74000B4010F940BC39B01AC016B966CAD7DAD26 +:10D750008EAD9FAD6B970F9419BF6796EEADFFAD81 +:10D7600067976083718382839383A7966CAD7DAD49 +:10D770008EAD9FADA7979058A3962CAD3DAD4EAD05 +:10D780005FADA3970F940BC34B015C01A301920102 +:10D79000C701B6010F940BC39B01AC01C501B401D5 +:10D7A0000F9419BF6796AEADBFAD679714966D9392 +:10D7B0007D938D939C931797AC96BFADAC971B163A +:10D7C0000CF04BC3E9EDFAE88491882341F0909185 +:10D7D000C00095FFFCCF8093C6003196F5CFA99687 +:10D7E000EEADFFADA997408151816281738125E043 +:10D7F00030E080EF96E00E940B5EE6EDFAE884915F +:10D80000882341F09091C00095FFFCCF8093C60023 +:10D810003196F5CFA996AEADBFADA99714964D91AF +:10D820005D916D917C91179725E030E080EF96E057 +:10D830000E940B5EE5EDFAE88491882341F0909117 +:10D84000C00095FFFCCF8093C6003196F5CF809144 +:10D85000C00085FFFCCF8AE08093C600E0ECFAE8C8 +:10D860008491882341F09091C00095FFFCCF809374 +:10D87000C6003196F5CFAB96EEADFFADAB974081CC +:10D8800051816281738125E030E080EF96E00E9453 +:10D890000B5EEDEBFAE88491882341F09091C00093 +:10D8A00095FFFCCF8093C6003196F5CFAB96AEAD19 +:10D8B000BFADAB9714964D915D916D917C9117978B +:10D8C00025E030E080EF96E00E940B5EECEBFAE89A +:10D8D0008491882341F09091C00095FFFCCF809304 +:10D8E000C6003196F5CF8091C00085FFFCCF8AE05D +:10D8F0008093C600E9EAFAE88491882341F0909188 +:10D90000C00095FFFCCF8093C6003196F5CF679697 +:10D91000EEADFFAD6797408151816281738125E053 +:10D9200030E080EF96E00E940B5EE6EAFAE8849130 +:10D93000882341F09091C00095FFFCCF8093C600F2 +:10D940003196F5CF6796AEADBFAD679714964D9102 +:10D950005D916D917C91179725E030E080EF96E026 +:10D960000E940B5EE5EAFAE88491882341F09091E9 +:10D97000C00095FFFCCF8093C6003196F5CF809113 +:10D98000C00085FFFCCF8AE08093C60084E690E06B +:10D990000E940077AC96BFADAC97B13009F45DC280 +:10D9A000E7E8FAE88491882341F09091C00095FF60 +:10D9B000FCCF8093C6003196F5CF8091C00085FFE3 +:10D9C000FCCF8AE08093C600C957DF4F08811981D8 +:10D9D000C758D040CB57DF4F48805980C558D040FA +:10D9E000612C712CE1964FADE197641608F078C177 +:10D9F000F80165917591859194911801E4E02E0EDE +:10DA0000311CF10185909590A590B490A996AEAD8A +:10DA1000BFADA9972D913D914D915C910F940BC392 +:10DA20006B017C01AB96EEADFFADAB9720813181F0 +:10DA300042815381C501B4010F940BC39B01AC011A +:10DA4000C701B6010F941ABF6796AEADBFAD679719 +:10DA50002D913D914D915C910F941ABF6B017C010A +:10DA6000F8016591759185919491F1012591359118 +:10DA700045915491A3962CAF3DAF4EAF5FAFA397A6 +:10DA8000A996AEADBFADA99714962D913D914D913C +:10DA90005C9117970F940BC34B015C01AB96EEADF5 +:10DAA000FFADAB972481358146815781A3966CAD3C +:10DAB0007DAD8EAD9FADA3970F940BC39B01AC01C1 +:10DAC000C501B4010F941ABF6796AEADBFAD67979D +:10DAD00014962D913D914D915C9117970F941ABF1B +:10DAE0004B015C01EFE7FAE88491882341F09091C3 +:10DAF000C00095FFFCCF8093C6003196F5CF4AE079 +:10DB000050E0B30180EF96E00E94185DE3E7FAE889 +:10DB10008491882341F09091C00095FFFCCF8093C1 +:10DB2000C6003196F5CFD2014D915D916D917C91FA +:10DB300025E030E080EF96E00E940B5EE0E7FAE837 +:10DB40008491882341F09091C00095FFFCCF809391 +:10DB5000C6003196F5CFD20114964D915D916D912D +:10DB60007C91179725E030E080EF96E00E940B5EF5 +:10DB7000E7E5FAE88491882341F09091C00095FF91 +:10DB8000FCCF8093C6003196F5CF25E030E0B70199 +:10DB9000A60180EF96E00E940B5EE4E5FAE884912E +:10DBA000882341F09091C00095FFFCCF8093C60080 +:10DBB0003196F5CF25E030E0B501A40180EF96E085 +:10DBC0000E940B5EE7E4FAE88491882341F090918B +:10DBD000C00095FFFCCF8093C6003196F5CFF801C9 +:10DBE000459155916591749125E030E080EF96E084 +:10DBF0000E940B5EE4E4FAE88491882341F090915E +:10DC0000C00095FFFCCF8093C6003196F5CFF1019F +:10DC1000459155916591749125E030E080EF96E053 +:10DC20000E940B5EE9E3FAE88491882341F0909129 +:10DC3000C00095FFFCCF8093C6003196F5CFA701B9 +:10DC40009601D2016D917D918D919C910F9419BF98 +:10DC50006B017C01A5019401F201648175818681CB +:10DC600097810F9419BF4B015C01A7019601C70171 +:10DC7000B6010F940BC36B017C01A5019401C50192 +:10DC8000B4010F940BC39B01AC01C701B6010F9403 +:10DC90001ABF0F94C4C3AB01BC0122E030E080EF97 +:10DCA00096E00E940B5EE8E3FAE88491882341F055 +:10DCB0009091C00095FFFCCF8093C6003196F5CFC0 +:10DCC0008091C00085FFFCCFFAE0F093C6002FEFF3 +:10DCD000621A720A38E0430E511C085F1F4F82CE51 +:10DCE000AC965FADAC9754310CF45AC0E7E3FAE858 +:10DCF0008491882341F09091C00095FFFCCF8093E0 +:10DD0000C6003196F5CF8091C00085FFFCCF8AE038 +:10DD10008093C600EBE0FAE88491882341F090916B +:10DD2000C00095FFFCCF8093C6003196F5CF80915F +:10DD3000C00085FFFCCF8AE08093C6004AE050E037 +:10DD40006D966EAD7FAD6D9780EF96E00E94185D89 +:10DD5000EAE0FAE88491882341F09091C00095FFB1 +:10DD6000FCCF8093C6003196F5CF8091C00085FF2F +:10DD7000FCCF8AE08093C600E9E0FAE8849188232A +:10DD800041F09091C00095FFFCCF8093C600319682 +:10DD9000F5CF8091C00085FFFCCF8AE08093C6005C +:10DDA00084E690E00E94007758C02DEC3CEC4CE4F7 +:10DDB0005FE3C301B2010F9439C2181614F00C943A +:10DDC00040E5E8E1FCE8849181113AC08EEF9FEFD5 +:10DDD0006D969FAF8EAF6D970C9440E5F101248155 +:10DDE000358146815781CF57DF4F688179818A819C +:10DDF0009B81C158D0400C947CDBF101248135819A +:10DE000046815781CF57DF4F688179818A819B8115 +:10DE1000C158D0400C9493DB412C512C80E8682EE3 +:10DE20008FE3782E0C9497DB112311F40C94BDDB57 +:10DE3000812C912C90E8A92E9FE3B92E0C9480DBC5 +:10DE40009091C00095FFFCCF8093C6003196BBCF68 +:10DE500001110C946DDB0C94BDDB6D968EAD9FAD06 +:10DE60006D97C054DF4F0FB6F894DEBF0FBECDBF25 +:10DE7000DF91CF911F910F91FF90EF90DF90CF90A6 +:10DE8000BF90AF909F908F907F906F905F904F90DA +:10DE90003F902F9008954FEF5FEFBA0185EE9FE01E +:10DEA0000F9481CB4FEF5FEFBA0189EE9FE00F94A3 +:10DEB00081CB4FEF5FEFBA018DED9FE00F9481CBE7 +:10DEC0004FEF5FEFBA0181EE9FE00F9481CB4FEFF0 +:10DED0005FEFBA0185ED9FE00F9481CB4FEF5FEFCD +:10DEE000BA0189ED9FE00F9481CB4FEF5FEFBA014C +:10DEF00085EC9FE00F9481CB4FEF5FEFBA0189EC87 +:10DF00009FE00F9481CB4FEF5FEFBA018DEC9FE064 +:10DF10000F9481CB4FEF5FEFBA0181ED9FE00D943D +:10DF200081CBCF93DF93C5ECDFE0CE010F946ACBBA +:10DF3000019639F02296C53D8FE0D807B1F781E010 +:10DF400001C080E0DF91CF910895CF93DF93CDB7EB +:10DF5000DEB768970FB6F894DEBF0FBECDBF80E086 +:10DF600090E0A0E8BFE3898B9A8BAB8BBC8B1D8ABA +:10DF70001E8A1F8A188E19861A861B861C868D8714 +:10DF80009E87AF87B88B19821A821B821C821D82E2 +:10DF90001E821F821886AE014F5F5F4FBE01675F12 +:10DFA0007F4FCE0141960E9425D468960FB6F89413 +:10DFB000DEBF0FBECDBFDF91CF910895CF93DF932A +:10DFC000CDB7DEB768970FB6F894DEBF0FBECDBFF2 +:10DFD0008091920F8823F1F180E090E0A0E8BFE308 +:10DFE000898B9A8BAB8BBC8B1D8A1E8A1F8A188EDD +:10DFF00019861A861B861C868D879E87AF87B88BED +:10E0000019821A821B821C821D821E821F82188620 +:10E01000AE014F5F5F4FBE01675F7F4FCE014196FC +:10E020000E9425D40F94B93E80E00F94243F609362 +:10E03000200A7093210A8093220A9093230A81E098 +:10E040000F94243F6093240A7093250A8093260A34 +:10E050009093270A68960FB6F894DEBF0FBECDBF27 +:10E06000DF91CF9108954F925F926F927F928F923E +:10E070009F92AF92BF92CF92DF92EF92FF921F9347 +:10E08000CF93DF93CDB7DEB7A0970FB6F894DEBF7E +:10E090000FBECDBF85EE9FE00F9465CB9B01AC0119 +:10E0A000698B7A8B8B8B9C8B89EE9FE02D8F3E8FBB +:10E0B0004F8F58A30F9465CB2B013C016D8B7E8B4A +:10E0C0008F8B988F8DED9FE00F9465CB6B017C015A +:10E0D00069877A878B879C8781EE9FE00F9465CB59 +:10E0E0004B015C016D877E878F87988B85ED9FE064 +:10E0F0000F9465CB698F7A8F8B8F9C8F69837A831E +:10E100008B839C8389ED9FE00F9465CB6D837E8329 +:10E110008F8398872D8D3E8D4F8D58A12F3F3F4F78 +:10E120004F4F5F4FF9F04720462045204094D1F0F3 +:10E130003FEFC316D306E306F306A1F0EFEF8E160A +:10E140009E06AE06BE0671F0298D3A8D4B8D5C8D14 +:10E150002F3F3F4F4F4F5F4F29F06F3F7F4F8F4F04 +:10E160009F4F91F4E8EEF9E88491882341F0909173 +:10E17000C00095FFFCCF8093C6003196F5CF80910B +:10E18000C00085FFFCCFF3C0A7019601C701B6010F +:10E190000F940BC36B017C01A5019401C501B4016F +:10E1A0000F940BC39B01AC01C701B6010F941ABFBA +:10E1B0000F94C4C36B017C0126E636E646E65FE3B6 +:10E1C0000F940AC087FD0BC02DEC3CEC4CE85FE3DC +:10E1D000C701B6010F9439C218160CF0F2C0E7ED72 +:10E1E000F9E884918111DDC08091C00085FFFCCFEA +:10E1F0008AE08093C60022E030E0B701A60180EFFC +:10E2000096E00E940C5EE3E9F9E884918111D1C0A7 +:10E210008091C00085FFFCCF8AE08093C60011E0AA +:10E2200069817A818B819C81CD80DE80EF80F8844A +:10E230009B01AC010F940BC34B015C01A70196013C +:10E24000C701B6010F940BC39B01AC01C501B4011A +:10E250000F941ABF0F94C4C36B017C0126E636E607 +:10E2600046E65FE30F940AC087FDADC02DEC3CECA1 +:10E270004CE85FE3C701B6010F9439C218160CF4DD +:10E28000A2C069897A898B899C89CD88DE88EF88CC +:10E29000F88C9B01AC010F940BC34B015C01A701EF +:10E2A0009601C701B6010F940BC39B01AC01C501D8 +:10E2B000B4010F941ABF0F94C4C36B017C0120E01A +:10E2C00030E040E751E40F9439C218160CF5E7E24C +:10E2D000F9E884918111A9C08091C00085FFFCCF2D +:10E2E0008AE08093C60022E030E0B701A60180EF0B +:10E2F00096E00E940C5EE4EFF8E8849181119DC0E5 +:10E300008091C00085FFFCCF8AE08093C60011E0B9 +:10E3100029813A814B815C8169857A858B859C85D1 +:10E320000F940BC36B017C012D813E814F81588579 +:10E330006D857E858F8598890F940BC39B01AC01F9 +:10E34000C701B6010F941ABF9F772DEC3CEC4CEC43 +:10E350005DE30F9439C218160CF07FC0EAEAF8E8C2 +:10E360008491811172C08091C00085FFFCCF8AE04A +:10E370008093C600E4E7F8E88491882341F0909107 +:10E38000C00095FFFCCF8093C6003196F5CF8091F9 +:10E39000C00085FFFCCF8AE08093C6007CDDD5DD20 +:10E3A00068C09091C00095FFFCCF8093C600319665 +:10E3B00018CF9091C00095FFFCCF8093C600319696 +:10E3C00024CF10E02DCFE2E8F9E88491882341F0D2 +:10E3D0009091C00095FFFCCF8093C6003196F5CF99 +:10E3E0008091C00085FFFCCF8AE08093C60022E0C8 +:10E3F00030E0B701A60180EF96E00E940C5EEEE3EC +:10E40000F9E88491882341F09091C00095FFFCCFFA +:10E410008093C6003196F5CF8091C00085FFFCCF78 +:10E420008AE08093C60011E02CCF9091C00095FF48 +:10E43000FCCF8093C60031964CCF9091C00095FFE1 +:10E44000FCCF8093C600319658CF9091C00095FFC5 +:10E45000FCCF8093C600319683CF11118BCFAE01D4 +:10E460004F5E5F4FBE016F5F7F4FCE0109960E94E6 +:10E4700025D4A0960FB6F894DEBF0FBECDBFDF91B6 +:10E48000CF911F91FF90EF90DF90CF90BF90AF9012 +:10E490009F908F907F906F905F904F9008954F92D4 +:10E4A0005F926F927F928F929F92AF92BF92CF9224 +:10E4B000DF92EF92FF920F931F93CF93DF93C0E20F +:10E4C000DAE020916A0F30916B0F40916C0F509100 +:10E4D0006D0F688179818A819B810F9419BF4B01EF +:10E4E0005C0104E21AE020916E0F30916F0F4091B1 +:10E4F000700F5091710FF801608171818281938159 +:10E500000F9419BF6B017C012091720F3091730F32 +:10E510004091740F5091750FC501B4010F940BC356 +:10E520002B013C012091760F3091770F4091780FAD +:10E530005091790FC701B6010F940BC39B01AC0139 +:10E54000C301B2010F941ABF688379838A839B83C6 +:10E5500020917A0F30917B0F40917C0F50917D0F6D +:10E56000C501B4010F940BC34B015C0120917E0FD8 +:10E5700030917F0F4091800F5091810FC701B601FC +:10E580000F940BC39B01AC01C501B4010F941ABFDA +:10E59000F8016083718382839383DF91CF911F9110 +:10E5A0000F91FF90EF90DF90CF90BF90AF909F9032 +:10E5B0008F907F906F905F904F9008957F928F9291 +:10E5C0009F92AF92BF92CF92DF92EF92FF920F9302 +:10E5D0001F93CF93DF934B015C01742E2A303105DA +:10E5E000A4F0E9EFF5E88491882341F09091C00010 +:10E5F00095FFFCCF8093C6003196F5CF8091C00087 +:10E6000085FFFCCF8AE08093C60081E00F947C35C3 +:10E61000182F80E00F948235D82F0F947735809291 +:10E62000280A9092290AA0922A0AB0922B0A20E086 +:10E6300030E040E752E460915102709152028091C3 +:10E640005302909154020F9411C00E94C0D50E94B1 +:10E650003ED60F947735C82F882309F481C000E097 +:10E66000C12CD12C7601071509F454C020E030E00C +:10E6700040E05FE36091280A7091290A80912A0A9C +:10E6800090912B0A0F941ABF6093280A7093290A5D +:10E6900080932A0A90932B0A20E030E040E752E46E +:10E6A00060915102709152028091530290915402F4 +:10E6B0000F9411C00E94C0D58092280A9092290A16 +:10E6C000A0922A0AB0922B0A20E030E040E753E4FF +:10E6D00060915102709152028091530290915402C4 +:10E6E0000F9411C00E94C0D50E943ED60F9477357A +:10E6F0008823B1F12091280A3091290A40912A0AF1 +:10E7000050912B0AC701B6010F941ABF6B017C010F +:10E710000F5FA9CF023048F4C092280AD092290A8C +:10E72000E0922A0AF0922B0A14C0602F70E080E079 +:10E7300090E00F94AAC09B01AC01C701B6010F94F1 +:10E7400011C06093280A7093290A80932A0A909333 +:10E750002B0A812F0F947C358D2F0F94823507C0A3 +:10E76000812F0F947C358D2F0F948235C0E08C2F34 +:10E77000DF91CF911F910F91FF90EF90DF90CF909D +:10E78000BF90AF909F908F907F9008952F923F926F +:10E790004F925F926F927F928F929F92AF92BF92B1 +:10E7A000CF92DF92EF92FF920F931F93CF93DF935D +:10E7B000CDB7DEB7A3970FB6F894DEBF0FBECDBFBF +:10E7C0008C018A30910534F062E974E080EF96E0C4 +:10E7D0000E940B5D20E030E040E752E46091490286 +:10E7E00070914A0280914B0290914C020F9411C09B +:10E7F0002B013C01C090200AD090210AE090220A0F +:10E80000F090230A20E030E040E051E4C701B60177 +:10E810000F9419BF362E272E89839A8320E030E08B +:10E8200040E051E4C701B6010F941ABF6F837887A7 +:10E8300089879A878090240A9090250AA090260ABA +:10E84000B090270A20E030E040EC50E4C501B4016C +:10E850000F9419BF6B837C838D839E8320E030E00F +:10E8600040EC50E4C501B4010F941ABF6B877C875C +:10E870008D879E8720E030E0A901632D722D89816C +:10E880009A810F940AC087FF2DC00431110534F11D +:10E89000E5ECF6E88491882341F09091C00095FF63 +:10E8A000FCCF8093C6003196F5CF8091C00085FFE4 +:10E8B000FCCF8AE08093C60020E030E04AE753E4D2 +:10E8C0006F81788589859A850F9439C218160CF066 +:10E8D0007CC4312C212C19821A8213C0312C212C9A +:10E8E00019821A8220E030E04AE753E46F8178858C +:10E8F00089859A850F9439C2181684F5043111055B +:10E900003CF1ECE8F6E88491882341F09091C00056 +:10E9100095FFFCCF8093C6003196F5CF8091C00063 +:10E9200085FFFCCF8AE08093C6002DEC3CEC4CE0E8 +:10E9300050EC6B817C818D819E810F940AC01F8277 +:10E94000188687FD1BC02AE7298733E43A874BC026 +:10E950001F8218864AE7498753E45A872DEC3CEC1E +:10E960004CE050EC6B817C818D819E810F940AC0BC +:10E9700087FF39C00431110574F104C08AE7898723 +:10E9800093E49A87E4E5F6E88491882341F0909136 +:10E99000C00095FFFCCF8093C6003196F5CF8091E3 +:10E9A000C00085FFFCCF8AE08093C60020E030E005 +:10E9B00042E553E46B857C858D859E850F9439C235 +:10E9C0002DEC3CEC4CE050EC2B833C834D835E8380 +:10E9D0001816C4F03CC08DEC9CECACE0B0EC8B8322 +:10E9E0009C83AD83BE8320E030E042E553E46B8539 +:10E9F0007C858D859E850F9439C2181644F50431A7 +:10EA00001105ECF0EBE1F6E88491882341F0909158 +:10EA1000C00095FFFCCF8093C6003196F5CF809162 +:10EA2000C00085FFFCCF8AE08093C60080E090E0C4 +:10EA3000A2E5B3E48B879C87AD87BE8708C020E042 +:10EA400030E042E553E42B873C874D875E872B817E +:10EA50003C814D815E816B857C858D859E850F9483 +:10EA600019BF6B8B7C8B8D8B9E8B0F94F7BF0F9494 +:10EA700079C04B016F8B80E00F947C35E090280AC1 +:10EA8000F090290A00912A0A10912B0A6301520181 +:10EA90002B813C814D815E81632D722D89819A810C +:10EAA0000E9470D50F94643581E00F94823531E077 +:10EAB00038A39F89892F90E0A0E0B0E08F87988BE2 +:10EAC000A98BBA8BC401992701979C01442737FD74 +:10EAD0004095542F288F398F4A8F5B8F20E030E08C +:10EAE00040E251EC6091280A7091290A80912A0A2B +:10EAF00090912B0A0F9439C2181674F48B819C8163 +:10EB0000AD81BE818093240A9093250AA093260AA2 +:10EB1000B093270A1BA27AC00E94FCD51F86C401AD +:10EB2000992701979C01442737FD4095542F288F42 +:10EB3000398F4A8F5B8FA8C16F85788989899A89B7 +:10EB40000F94AAC09B01AC016DEC7CEC8CE49EE3BD +:10EB50000F9411C09B01AC016091280A7091290AA1 +:10EB600080912A0A90912B0A0F9419BF6093280A6A +:10EB70007093290A80932A0A90932B0A2091240AE1 +:10EB80003091250A4091260A5091270AA8A1AA236C +:10EB900009F442C0BF81A885E985E9A3FA8563012C +:10EBA00052017B018C016B2F7A2F89A19F2F0E942C +:10EBB00070D528A131E0232728A30F947735811140 +:10EBC000ABCF688D798D8A8D9B8D0F94ACC09B01E6 +:10EBD000AC016B897C898D899E890F9411C09B0142 +:10EBE000AC016091240A7091250A8091260A9091C7 +:10EBF000270A0F941ABF6093240A7093250A809302 +:10EC0000260A9093270A3BA13F5F3BA34BA15F8954 +:10EC1000451708F491CF05C0D101F981F9A3FA8114 +:10EC2000BECF1BA25BA18F89581708F057CF6F8505 +:10EC3000788989899A890F94AAC09B01AC016DECEF +:10EC40007CEC8CE49EE30F9411C09B01AC016091BD +:10EC5000280A7091290A80912A0A90912B0A0F9410 +:10EC600019BF6093280A7093290A80932A0A909307 +:10EC70002B0A2091240A3091250A4091260A5091AE +:10EC8000270AA8A1AA2331F0BF81A885E985E9A3B5 +:10EC9000FA8504C0D101F981F9A3FA816301520117 +:10ECA0007B018C016B2F7A2F89A19F2F0E9470D539 +:10ECB00028A131E0232728A30F94773581112CCF89 +:10ECC000688D798D8A8D9B8D0F94ACC09B01AC01B2 +:10ECD0006B897C898D899E890F9411C09B01AC0141 +:10ECE0006091240A7091250A8091260A9091270A42 +:10ECF0000F9419BF6093240A7093250A8093260A03 +:10ED00009093270A4BA14F5F4BA38CCF2091240AED +:10ED10003091250A4091260A5091270AAA2009F429 +:10ED2000D4C0BF81A885C984BA84830172016B2FC6 +:10ED30007A2F8C2D9B2D0E9494D50F9477358111BD +:10ED4000C8C0688D798D8A8D9B8D0F94ACC09B0156 +:10ED5000AC016B897C898D899E890F9411C09B01C0 +:10ED6000AC016091240A7091250A8091260A909145 +:10ED7000270A0F941ABF6093240A7093250A809380 +:10ED8000260A9093270AD39431E0A3264F89D416FC +:10ED900008F4BCCFD12C0E94FCD5DD2081F18090FD +:10EDA000240A9090250AA090260AB090270A80E0B5 +:10EDB0000F9482358B859C85AD85BE858093240A12 +:10EDC0009093250AA093260AB093270A8301720123 +:10EDD0009C01AD01632D722D89819A810E9494D589 +:10EDE00081E00F94823591E09AA3C12CFF89CF1660 +:10EDF00008F472C0D12C0E94FCD5D110B3C02F856D +:10EE00002F5F2F87233009F4DEC19F859923E1F11D +:10EE10002AE037ED43EA5CE36091280A7091290A01 +:10EE200080912A0A90912B0A0F9419BF6093280AA7 +:10EE30007093290A80932A0A90932B0A20E030E0ED +:10EE400040E752E460915102709152028091530266 +:10EE5000909154020F9411C05B016C012091240A1F +:10EE60003091250A4091260A5091270A6091200A84 +:10EE70007091210A8091220A9091230AE12CF12CB1 +:10EE800000EA10E40E9470D580E00F947C3580E0A9 +:10EE90000F9482352B813C814D815E812093240A21 +:10EEA0003093250A4093260A5093270A8301720162 +:10EEB000632D722D89819A810E9494D581E00F94EF +:10EEC0008235AA24A394D12C61CFD101C980BA8004 +:10EED0002CCFDD24D3945FCF2091240A3091250AD2 +:10EEE0004091260A5091270AAAA1AA2329F0BF819E +:10EEF000A885E985FA8503C0D101E981FA818301FA +:10EF000072016B2F7A2FCF010E9494D50F94773521 +:10EF1000811171CF688D798D8A8D9B8D0F94ACC0D6 +:10EF20009B01AC016B897C898D899E890F9411C0EE +:10EF30009B01AC016091240A7091250A8091260AF8 +:10EF40009091270A0F9419BF6093240A7093250AA1 +:10EF50008093260A9093270AC394BAA1E1E0BE27C2 +:10EF6000BAA344CF2091240A3091250A4091260A61 +:10EF70005091270AC501B4010F941ABF20E030E078 +:10EF800040E05FE30F940BC36093240A7093250A5B +:10EF90008093260A9093270A80E00F94823520916F +:10EFA000240A3091250A4091260A5091270A8301AC +:10EFB0007201632D722D89819A810E9494D581E01E +:10EFC0000F9482352091240A3091250A4091260A17 +:10EFD0005091270A6F81788589859A850E9494D5FA +:10EFE0000E94FCD50F947735882309F408CF8090D0 +:10EFF000200A9090210AA090220AB090230A80E073 +:10F000000F9482352091240A3091250A4091260AD6 +:10F010005091270A6F81788589859A850E9494D5B9 +:10F0200081E00F9482352091240A3091250A409185 +:10F03000260A5091270A632D722D89819A810E9498 +:10F0400094D50E94FCD50F947735882309F4D7CE48 +:10F050002091200A3091210A4091220A5091230ADE +:10F0600080E02C8F3D8F4E8F5F8F0F9482352C8DDB +:10F070003D8D4E8D5F8DC501B4010F941ABF20E008 +:10F0800030E040E05FE30F940BC36093200A70937D +:10F09000210A8093220A9093230A2091240A309116 +:10F0A000250A4091260A5091270A0E9494D580E0B3 +:10F0B0000F9482356091200A7091210A8091220A72 +:10F0C0009091230A2B813C814D815E810E9494D5D1 +:10F0D00081E00F9482356091200A7091210A80911D +:10F0E000220A9091230A2B853C854D855E850E94DE +:10F0F00094D50E94FCD50F947735882309F47FCEF0 +:10F100008090240A9090250AA090260AB090270AA1 +:10F1100080E00F9482356091200A7091210A8091DD +:10F12000220A9091230A2B853C854D855E850E949D +:10F1300094D581E00F9482356091200A7091210A64 +:10F140008091220A9091230A2B813C814D815E811E +:10F150000E9494D50E94FCD50F947735882309F43A +:10F160004ECE2091240A3091250A4091260A5091D2 +:10F17000270A80E02C8F3D8F4E8F5F8F0F94823552 +:10F180002C8D3D8D4E8D5F8DC501B4010F941ABF3E +:10F1900020E030E040E05FE30F940BC39B01AC0143 +:10F1A0006093240A7093250A8093260A9093270A75 +:10F1B0006091200A7091210A8091220A9091230A7D +:10F1C0000E9494D513C0D12C11C02DEC3CEC4CE026 +:10F1D00050EC6B817C818D819E810F940AC0312C13 +:10F1E000212C19821A8287FDCDCBFDCB80E00F94B4 +:10F1F00082358D2DA3960FB6F894DEBF0FBECDBF1E +:10F20000DF91CF911F910F91FF90EF90DF90CF9002 +:10F21000BF90AF909F908F907F906F905F904F9036 +:10F220003F902F9008952F923F924F925F926F924E +:10F230007F928F929F92AF92BF92CF92DF92EF9286 +:10F24000FF920F931F93CF93DF93CDB7DEB76997EC +:10F250000FB6F894DEBF0FBECDBF80E00F947C35B3 +:10F26000898F80E00F948235382E20E030E040E72F +:10F2700052E46091490270914A0280914B02909150 +:10F280004C020F9411C0698B7A8B8B8B9C8B4090B6 +:10F29000200A5090210A6090220A7090230A8090E0 +:10F2A000240A9090250AA090260AB090270A212CC3 +:10F2B00019861A861B861C861D821E821F8218864E +:10F2C00081E02816B9F0281660F092E029122CC0CF +:10F2D00024EF3DEF44EB50E4C301B2010F941ABF99 +:10F2E00012C024EF3DEF44EB50E4C301B2010F9490 +:10F2F00019BF09C024EF3DEF44EB50E4C301B20154 +:10F300000F941ABF19C06093EB097093EC098093B6 +:10F31000ED099093EE0924EF3DEF44EB50E4C50175 +:10F32000B4010F9419BF18C024EF3DEF44EB50E433 +:10F33000C301B2010F9419BF6093EB097093EC09FC +:10F340008093ED099093EE0924EF3DEF44EB50E4F8 +:10F35000C501B4010F941ABF6093EF097093F009CF +:10F360008093F1099093F2098091EB099091EC0957 +:10F37000A091ED09B091EE098D8B9E8BAF8BB88F6C +:10F38000A3019201BC01CD010F9419BF6D877E8747 +:10F390008F87988BA50194016091EF097091F00916 +:10F3A0008091F1099091F2090F9419BF69837A83D2 +:10F3B0008B839C832D853E854F855889CA01B90171 +:10F3C0000F940BC36B017C0129813A814B815C81D5 +:10F3D000CA01B9010F940BC39B01AC01C701B6016F +:10F3E0000F941ABF0F94C4C36B017C0120E030E07E +:10F3F000A9016D897E898F89988D0F940AC087FF36 +:10F400000FC01092EB091092EC091092ED091092C6 +:10F41000EE09A70196016D817E818F81988522C0BA +:10F4200020E030E04AE753E46D897E898F89988D2A +:10F430000F9439C2181664F580E090E0AAE7B3E4AF +:10F440008093EB099093EC09A093ED09B093EE093A +:10F450002D813E814F815885BC01CD010F9419BF8C +:10F46000A70196010F9411C029813A814B815C81DB +:10F470000F940BC39B01AC01C501B4010F941ABFDB +:10F480006093EF097093F0098093F1099093F2096A +:10F490008091EF099091F009A091F109B091F209E2 +:10F4A00089839A83AB83BC832DEC3CEC4CE050EC1D +:10F4B000BC01CD010F940AC087FF27C02DEC3CECA6 +:10F4C0004CE050E469857A858B859C850F941ABF42 +:10F4D000A70196010F9411C02D853E854F8558894F +:10F4E0000F940BC39B01AC01C301B2010F941ABF6F +:10F4F0006093EB097093EC098093ED099093EE090A +:10F500008DEC9CECACE0B0EC32C020E030E042E5A9 +:10F5100053E469817A818B819C810F9439C21816DA +:10F5200074F529853A854B855C8560E070E082E55D +:10F5300093E40F9419BFA70196010F9411C02D8574 +:10F540003E854F8558890F940BC39B01AC01C301C5 +:10F55000B2010F941ABF6093EB097093EC0980938A +:10F56000ED099093EE0980E090E0A2E5B3E480938A +:10F57000EF099093F009A093F109B093F20980E0AC +:10F580000F947C352091EF093091F0094091F109F9 +:10F590005091F2096091EB097091EC098091ED09AD +:10F5A0009091EE09E988FA880B891C890E9494D50C +:10F5B00081E00F947C35E988FA880B891C89A501C4 +:10F5C0009401C301B2010E9494D50E94FCD5209100 +:10F5D000200A3091210A4091220A5091230A6D811C +:10F5E0007E818F8198850F941ABF6D837E838F8370 +:10F5F00098872091240A3091250A4091260A50913B +:10F60000270A69857A858B859C850F941ABF69873F +:10F610007A878B879C87239494E0291251CE20E02F +:10F6200030E040E85EE36D817E818F8198850F94A4 +:10F630000BC36093200A7093210A8093220A90934F +:10F64000230A20E030E040E85EE369857A858B8517 +:10F650009C850F940BC36093240A7093250A8093B2 +:10F66000260A9093270A80E00F947C352091240A83 +:10F670003091250A4091260A5091270A6091200A6C +:10F680007091210A8091220A9091230AE988FA88D0 +:10F690000B891C890E9494D5898D0F947C35832D0C +:10F6A0000F94823580E069960FB6F894DEBF0FBEE6 +:10F6B000CDBFDF91CF911F910F91FF90EF90DF9021 +:10F6C000CF90BF90AF909F908F907F906F905F9002 +:10F6D0004F903F902F9008953F924F925F926F927C +:10F6E0007F928F929F92AF92BF92CF92DF92EF92D2 +:10F6F000FF920F931F93CF93DF93CDB7DEB7609741 +:10F700000FB6F894DEBF0FBECDBFD82E362E409078 +:10F71000200A5090210A6090220A7090230A80915A +:10F72000240A9091250AA091260AB091270A8D8774 +:10F730009E87AF87B88B80E00F947C3520E030E067 +:10F7400040E051E4C301B2010F9419BF4B015C01C9 +:10F7500020E030E040E051E4C301B2010F941ABF51 +:10F7600069877A878B879C8720E030E0A901C501F3 +:10F77000B4010F940AC087FF03C0812C912C54015F +:10F7800020E030E04AE753E469857A858B859C85E3 +:10F790000F9439C2181644F480E090E0AAE7B3E46D +:10F7A00089879A87AB87BC8780E00F94823520E0F9 +:10F7B00030E040E752E46091490270914A02809142 +:10F7C0004B0290914C020F9411C02091240A309169 +:10F7D000250A4091260A5091270A7B018C01C50118 +:10F7E000B4010E9494D581E00F94823520E030E08E +:10F7F00040E752E46091490270914A0280914B02C5 +:10F8000090914C020F9411C02091240A3091250A46 +:10F810004091260A5091270A7B018C0169857A85DF +:10F820008B859C850E9494D50E94FCD50F947735DA +:10F83000882309F4B5C08091200A9091210AA091F3 +:10F84000220AB091230A8D839E83AF83B88780E01C +:10F850000F94823520E030E040E752E460914902A5 +:10F8600070914A0280914B0290914C020F9411C00A +:10F870002091240A3091250A4091260A5091270AA6 +:10F880007B018C0169857A858B859C850E9494D546 +:10F8900081E00F94823520E030E040E752E460914F +:10F8A000490270914A0280914B0290914C020F9450 +:10F8B00011C02091240A3091250A4091260A5091C6 +:10F8C000270A7B018C01C501B4010E9494D50E94D6 +:10F8D000FCD50F947735882309F462C06091200A23 +:10F8E0007091210A8091220A9091230A69837A8378 +:10F8F0008B839C832D813E814F8158850F9419BF46 +:10F9000020E030E040E050E40F940AC087FF51C08F +:10F9100094E093159CF5EDE9F3E88491882341F098 +:10F920009091C00095FFFCCF8093C6003196F5CF33 +:10F930002D813E814F81588569817A818B819C819F +:10F940000F9419BFAB01BC0122E030E080EF96E0DC +:10F950000E940B5EECE9F3E88491882341F09091DA +:10F96000C00095FFFCCF8093C6003196F5CF809103 +:10F97000C00085FFFCCF8AE08093C6002D813E81C8 +:10F980004F81588569817A818B819C810F9419BF41 +:10F9900020E030E040E85FE30F940AC087FF0BC02F +:10F9A0004092200A5092210A6092220A7092230A01 +:10F9B00043C2912C02C099249394A4E0A31594F41B +:10F9C00044E25AE0BE016B5F7F4F87E993E80E94F3 +:10F9D00066D744E25AE0BE016F5F7F4F81E993E84A +:10F9E0000E9466D780E00F94823529813A814B814D +:10F9F0005C816D817E818F8198850F941ABF20E094 +:10FA000030E040E05FE30F940BC32B013C016093B7 +:10FA1000200A7093210A8093220A9093230A20E0FF +:10FA200030E040E752E46091490270914A028091CF +:10FA30004B0290914C020F9411C02091240A3091F6 +:10FA4000250A4091260A5091270A7B018C01C301A7 +:10FA5000B2010E9494D520E030E040E051E46D8591 +:10FA60007E858F8598890F9419BF2B013C0120E07A +:10FA700030E040E051E46D857E858F8598890F9454 +:10FA80001ABF69877A878B879C872DEC3CEC4CE00A +:10FA900050ECC301B2010F940AC087FF08C0FDEC0F +:10FAA0004F2EFCEC5F2EFCE06F2EF0EC7F2E20E062 +:10FAB00030E042E553E469857A858B859C850F9417 +:10FAC00039C2181644F480E090E0A2E5B3E48987D7 +:10FAD0009A87AB87BC8780E00F94823520E030E0C6 +:10FAE00040E752E46091490270914A0280914B02D2 +:10FAF00090914C020F9411C07B018C016091200AFF +:10FB00007091210A8091220A9091230AA301920107 +:10FB10000E9494D5DD2009F452C020E030E040E797 +:10FB200052E460915102709152028091530290917F +:10FB300054020F9411C05B016C0120E030E040ECF6 +:10FB40005FE36091280A7091290A80912A0A9091B6 +:10FB50002B0A0F941ABF7B018C016091200A7091CF +:10FB6000210A8091220A9091230AA30192010E9406 +:10FB700070D520E030E040E752E46091510270918E +:10FB8000520280915302909154020F9411C05B0174 +:10FB90006C01E090280AF090290A00912A0A10913D +:10FBA0002B0A6091200A7091210A8091220A90917B +:10FBB000230AA30192010E9470D51C9928C081E0FC +:10FBC0000F94823520E030E040E752E46091490232 +:10FBD00070914A0280914B0290914C020F9411C097 +:10FBE0007B018C016091200A7091210A8091220A88 +:10FBF0009091230A29853A854B855C850E9494D58E +:10FC00000E94FCD50F947735882309F4B5C0809104 +:10FC1000240A9091250AA091260AB091270A8D8383 +:10FC20009E83AF83B88780E00F94823520E030E078 +:10FC300040E752E46091490270914A0280914B0280 +:10FC400090914C020F9411C07B018C016091200AAD +:10FC50007091210A8091220A9091230A29853A8580 +:10FC60004B855C850E9494D581E00F94823520E01D +:10FC700030E040E752E46091490270914A0280917D +:10FC80004B0290914C020F9411C07B018C0160914A +:10FC9000200A7091210A8091220A9091230AA301DF +:10FCA00092010E9494D50E94FCD50F947735882349 +:10FCB00009F462C06091240A7091250A8091260A95 +:10FCC0009091270A69837A838B839C832D813E815F +:10FCD0004F8158850F9419BF20E030E040E050E498 +:10FCE0000F940AC087FF57C094E093159CF5E8E78E +:10FCF000F3E88491882341F09091C00095FFFCCFF8 +:10FD00008093C6003196F5CF2D813E814F81588575 +:10FD100069817A818B819C810F9419BFAB01BC01F1 +:10FD200022E030E080EF96E00E940B5EE7E7F3E828 +:10FD30008491882341F09091C00095FFFCCF80937F +:10FD4000C6003196F5CF8091C00085FFFCCF8AE0D8 +:10FD50008093C6002D813E814F81588569817A81CB +:10FD60008B819C810F9419BF20E030E040E85FE375 +:10FD70000F940AC087FF0DC08D859E85AF85B88919 +:10FD80008093240A9093250AA093260AB093270A09 +:10FD900053C09924939494E0931594F4AE014B5F6F +:10FDA0005F4F60E27AE083E793E80E9466D7AE0196 +:10FDB0004F5F5F4F60E27AE08CE693E80E9466D77F +:10FDC00080E00F94823529813A814B815C816D817D +:10FDD0007E818F8198850F941ABF20E030E040E04B +:10FDE0005FE30F940BC32B013C016093240A7093D3 +:10FDF000250A8093260A9093270A20E030E040E706 +:10FE000052E46091490270914A0280914B029091B4 +:10FE10004C020F9411C07B018C016091200A7091FB +:10FE2000210A8091220A9091230AA30192010E9443 +:10FE300094D581E0892526C080E00F94823520E0AA +:10FE400030E040E752E46091490270914A028091AB +:10FE50004B0290914C020F9411C07B018C012091B8 +:10FE6000240A3091250A4091260A5091270A609170 +:10FE7000200A7091210A8091220A9091230A0E94FF +:10FE800094D580E060960FB6F894DEBF0FBECDBF6C +:10FE9000DF91CF911F910F91FF90EF90DF90CF9066 +:10FEA000BF90AF909F908F907F906F905F904F909A +:10FEB0003F9008952F923F924F925F926F927F9260 +:10FEC0008F929F92AF92BF92CF92DF92EF92FF926A +:10FED0000F931F93CF93DF93CDB7DEB7E0970FB6A5 +:10FEE000F894DEBF0FBECDBF988F8F8B4090200A55 +:10FEF0005090210A6090220A7090230A8091240A6F +:10FF00009091250AA091260AB091270A8FA398A75D +:10FF1000A9A7BAA7AF89B88D549734F065EB74E000 +:10FF200080EF96E00E940B5D20E030E040E850E476 +:10FF3000C301B2010F9419BF698F7A8F8B8F9C8F89 +:10FF400020E030E040E850E4C301B2010F941ABF52 +:10FF500069A37AA38BA39CA320E030E040E850E49F +:10FF60006FA178A589A59AA50F9419BF6F87788B83 +:10FF7000898B9A8B20E030E040E850E46FA178A5AF +:10FF800089A59AA50F941ABF4B015C0120E030E0CF +:10FF9000A901698D7A8D8B8D9C8D0F940AC087FF86 +:10FFA00004C0198E1A8E1B8E1C8E20E030E04AE7AA +:10FFB00053E469A17AA18BA19CA10F9439C21816B0 +:10FFC00044F480E090E0AAE7B3E489A39AA3ABA34A +:10FFD000BCA32DEC3CEC4CE050EC6F857889898912 +:10FFE0009A890F940AC087FF08C09DEC9F87ACECEC +:10FFF000A88BBCE0B98B80EC8A8B20E030E042E536 +:020000022000DC +:1000000053E4C501B4010F9439C2181634F4812C9D +:10001000912CA2E5AA2EA3E4BA2EAF89B88D5497ED +:100020000CF440C0E6EEF5E88491882341F090910D +:10003000C00095FFFCCF8093C6003196F5CF22E03B +:1000400030E0B301A20180EF96E00E940B5EE3EE88 +:10005000F5E88491882341F09091C00095FFFCCF92 +:100060008093C6003196F5CF22E030E04FA158A52D +:1000700069A57AA580EF96E00E940B5EE2EEF5E8B6 +:100080008491882341F09091C00095FFFCCF80932C +:10009000C6003196F5CF8091C00085FFFCCF8AE085 +:1000A0008093C600BF85B98788898A8729883A885E +:1000B0001D8E1E8E1F8E18A21C861B861D861E86F8 +:1000C000A501940169857A85C1010F940AC087FF53 +:1000D00009C180E00F94823520E030E040E752E42F +:1000E0006091490270914A0280914B0290914C02BA +:1000F0000F9411C07B018C0129853A85A101698D7E +:100100007A8D8B8D9C8D0E9494D581E00F948235E1 +:1001100020E030E040E752E46091490270914A02E9 +:1001200080914B0290914C020F9411C07B018C0185 +:1001300029853A85A10169A17AA18BA19CA10E9480 +:1001400094D50E94FCD50F947735882309F4BDC05F +:100150008091200A9091210AA091220AB091230A4D +:100160008D839E83AF83B88780E00F94823520E033 +:1001700030E040E752E46091490270914A02809178 +:100180004B0290914C020F9411C07B018C01298588 +:100190003A85A10169A17AA18BA19CA10E9494D565 +:1001A00081E00F94823520E030E040E752E4609136 +:1001B000490270914A0280914B0290914C020F9437 +:1001C00011C07B018C0129853A85A101698D7A8D49 +:1001D0008B8D9C8D0E9494D50E94FCD50F94773511 +:1001E000882309F472C08091200A9091210AA0917D +:1001F000220AB091230A89839A83AB83BC83AF8997 +:10020000B88D159794F044E25AE0BE016B5F7F4FC2 +:100210008DED95E80E9466D744E25AE0BE016F5F1B +:100220007F4F87ED95E80E9466D789819A81AB81DF +:10023000BC818B8B9C8BAD8BBE8BCD80DE80EF80A9 +:10024000F884A7019601BC01CD010F9419BF162FA8 +:10025000072F8DA39EA32C853B854D855E850F942E +:1002600039C21816CCF42B893C894D895E89C701A7 +:10027000B6010F941ABF20E030E040E05FE30F9436 +:100280000BC36D8F7E8F8F8F98A31C870B879DA1CB +:100290009D87AEA1AE8719C020E030E0A9016C8532 +:1002A0007B858D859E850F9439C2181674F42DECCC +:1002B0003CEC4CEC5DE369857A85C1010F9419BF74 +:1002C0006F87788B898B9A8B0DC02DEC3CEC4CECB6 +:1002D0005DE369857A85C1010F941ABF69877A87C2 +:1002E0001C01EECE20E030E0A9016C857B858D8578 +:1002F0009E850F940AC081111BC08F89988D181696 +:1003000019064CF04092200A5092210A6092220A6B +:100310007092230A55C3E3ECF5E88491882391F3A6 +:100320009091C00095FFFCCF8093C6003196F5CF29 +:1003300080E00F94823520E030E040E752E46091A5 +:10034000490270914A0280914B0290914C020F94A5 +:1003500011C06B017C0120E030E040E051E46F858A +:10036000788989899A890F941ABF9B01AC0187010A +:1003700076016D8D7E8D8F8D98A10E9494D581E040 +:100380000F94823520E030E040E752E4609149026A +:1003900070914A0280914B0290914C020F9411C0CF +:1003A0006B017C0120E030E040E051E46F8578890A +:1003B00089899A890F9419BF5B018C012DEC3CEC63 +:1003C0004CE050EC0F9439C218162CF07DEC6CEC1C +:1003D0009CE080EC04C07A2D6B2D902F812F87013B +:1003E0007601272F362F492F582F6D8D7E8D8F8DBB +:1003F00098A10E9494D50E94FCD50F94773588234C +:1004000009F4DEC2AF89B88D159744F044E25AE092 +:1004100060E27AE08FEB95E80E9466D7B091240AFB +:10042000BDA38091250A8EA39091260A9BA7A09137 +:10043000270AACA72F85388949895A896B2F782FCD +:10044000892F9A2F0F940AC018160CF0B9C25DA01C +:100450004EA03BA47CA41DA61EA61FA618AA198602 +:100460001A861C86212C2F85388949895A89652D41 +:10047000742D832D972D0F9439C287FD09C180E01B +:100480000F94823520E030E040E752E46091490269 +:1004900070914A0280914B0290914C020F9411C0CE +:1004A0007B018C01252D342D432D572D698D7A8D9F +:1004B0008B8D9C8D0E9494D581E00F94823520E035 +:1004C00030E040E752E46091490270914A02809125 +:1004D0004B0290914C020F9411C07B018C01252D91 +:1004E000342D432D572D69A17AA18BA19CA10E9487 +:1004F00094D50E94FCD50F947735882309F4B9C0B0 +:100500008091200A9091210AA091220AB091230A99 +:100510008D839E83AF83B88780E00F94823520E07F +:1005200030E040E752E46091490270914A028091C4 +:100530004B0290914C020F9411C07B018C01252D30 +:10054000342D432D572D69A17AA18BA19CA10E9426 +:1005500094D581E00F94823520E030E040E752E40A +:100560006091490270914A0280914B0290914C0235 +:100570000F9411C07B018C01252D342D432D572D57 +:10058000698D7A8D8B8D9C8D0E9494D50E94FCD5AF +:100590000F947735882309F46CC08091200A9091DC +:1005A000210AA091220AB091230A89839A83AB83FE +:1005B000BC83AF89B88D159794F044E25AE0BE0130 +:1005C0006B5F7F4F8AEB95E80E9466D744E25AE062 +:1005D000BE016F5F7F4F84EB95E80E9466D78980EC +:1005E0009A80AB80BC80CD80DE80EF80F884A7014C +:1005F0009601C501B4010F9419BF162F072F8B87E1 +:10060000692E29853A854C85522D0F9439C21816CA +:10061000B4F4A5019401C701B6010F941ABF20E0FC +:1006200030E040E05FE30F940BC36DA77EA78FA778 +:1006300098AB19870A87BB85BC87262C1AC020E097 +:1006400030E0A90169857A858C85922D0F9439C295 +:1006500018167CF42DEC3CEC4CEC5DE3652D742D10 +:10066000832D972D0F941ABF6DA37EA38BA79CA7F4 +:100670000FC02DEC3CEC4CEC5DE3652D742D832D0F +:10068000972D0F9419BF562E472E382E792EEBCE6C +:1006900020E030E0A90169857A858C85922D0F9440 +:1006A0000AC0882309F41AC12DA13EA14BA55CA55F +:1006B0006F85788989899A890F941ABF20E030E084 +:1006C00040E05FE30F940BC36B877D878E879B8B26 +:1006D0008DA58D8F9EA59E8FAFA5AF8FB8A9B8A30E +:1006E0002F85388949895A89652D742D832D972D39 +:1006F0000F9439C287FDFAC080E00F94823520E064 +:1007000030E040E752E46091490270914A028091E2 +:100710004B0290914C020F9411C07B018C01252D4E +:10072000342D432D572D698D7A8D8B8D9C8D0E9494 +:1007300094D581E00F94823520E030E040E752E428 +:100740006091490270914A0280914B0290914C0253 +:100750000F9411C07B018C01252D342D432D572D75 +:1007600069A17AA18BA19CA10E9494D50E94FCD57D +:100770000F947735882309F4A2C08091200A9091C4 +:10078000210AA091220AB091230A8D839E83AF8310 +:10079000B88780E00F94823520E030E040E752E4F3 +:1007A0006091490270914A0280914B0290914C02F3 +:1007B0000F9411C07B018C01252D342D432D572D15 +:1007C00069A17AA18BA19CA10E9494D581E00F948C +:1007D000823520E030E040E752E4609149027091B8 +:1007E0004A0280914B0290914C020F9411C07B0100 +:1007F0008C01252D342D432D572D698D7A8D8B8DB0 +:100800009C8D0E9494D50E94FCD50F947735882347 +:1008100009F455C08091200A9091210AA091220AE2 +:10082000B091230A89839A83AB83BC838F89988D87 +:10083000059794F044E25AE0BE016B5F7F4F8FEA68 +:1008400095E80E9466D744E25AE0BE016F5F7F4F91 +:1008500089EA95E80E9466D789809A80AB80BC803F +:10086000CD80DE80EF80F884A7019601C501B40138 +:100870000F9419BF162F072F8DA7692E29853A854A +:100880004C85522D0F9439C21816CCF4A501940151 +:10089000C701B6010F941ABF20E030E040E05FE3EB +:1008A0000F940BC36D8F7E8F8F8F98A35B864D86C1 +:1008B0003E867B8A19870A879DA59C87262C2DEC6E +:1008C0003CEC4CEC5DE3652D742D832D972D0F943E +:1008D00019BF562E472E382E792E02CFAF85AB8703 +:1008E000B889BD8789898E879A899B8B80E00F9410 +:1008F000823520E030E040E752E460914902709197 +:100900004A0280914B0290914C020F9411C06B01EE +:100910007C0120E030E040E051E46B857D858E85F0 +:100920009B890F941ABF9B01AC01870176016D8DE5 +:100930007E8D8F8D98A10E9494D581E00F94823591 +:1009400020E030E040E752E46091490270914A02B1 +:1009500080914B0290914C020F9411C06B017C016D +:1009600020E030E040E051E46B857D858E859B89F9 +:100970000F9419BF5B018C012DEC3CEC4CE050EC6A +:100980000F9439C218162CF07DEC6CEC9CE080ECD6 +:1009900004C07A2D6B2D902F812F87017601272F90 +:1009A000362F492F582F6D8D7E8D8F8D98A10E94E7 +:1009B00094D50E94FCD50F947735382E81110DC047 +:1009C0008FA198A5A9A5BAA58093240A9093250A7A +:1009D000A093260AB093270A13C2AF89B88D159742 +:1009E00044F044E25AE060E27AE085EA95E80E9449 +:1009F00066D7C090240AD090250AE090260AF0908D +:100A0000270A20E030E040E05FE369857A858C8545 +:100A1000922D0F940BC3698F7A8F8B8F9C8F2DEC47 +:100A20003CEC4CE050E4C701B6010F941ABF298D8D +:100A30003A8D4B8D5C8D0F940AC087FFF8C02B85D3 +:100A40003D854E855B89C701B6010F940AC087FDBD +:100A50000CC020E030E040E85FE369857A858C8552 +:100A6000922D0F940AC087FF2EC08F89988D05970D +:100A70000CF41EC1E2E8F5E88491882341F09091DE +:100A8000C00095FFFCCF8093C6003196F5CF22E0E1 +:100A900030E049855A856C85722D80EF96E00E9482 +:100AA0000B5EE1E8F5E88491882341F09091C00065 +:100AB00095FFFCCF8093C6003196F5CF8091C000A2 +:100AC00085FFFCCF95C02B853D854E855B89C70191 +:100AD000B6010F9419BF2B013C0129853A854C853D +:100AE000522D69857A858C85922D0F940BC34B010D +:100AF0005C0120E030E040E051E4C301B2010F941A +:100B00000BC39B01AC01C501B4010F9411C04B0193 +:100B10005C0120E030E040E05FE3C301B2010F94EC +:100B20000BC39B01AC01C501B4010F941ABF4B016B +:100B30005C012DEC3CEC4CEC5FE30F940AC087FFAA +:100B40005BC0AF89B88D15970CF4B2C0E6E5F5E847 +:100B50008491882341F09091C00095FFFCCF809351 +:100B6000C6003196F5CF22E030E0B501A40180EF58 +:100B700096E00E940B5EEEE4F5E88491882341F054 +:100B80009091C00095FFFCCF8093C6003196F5CFC1 +:100B900022E030E049855A856C85722D80EF96E021 +:100BA0000E940B5EE9E4F5E88491882341F090917E +:100BB000C00095FFFCCF8093C6003196F5CF22E0B0 +:100BC00030E0B301A20180EF96E00E940B5EE8E402 +:100BD000F5E88491882341F09091C00095FFFCCF07 +:100BE0008093C6003196F5CF8091C00085FFFCCF81 +:100BF0008AE08093C6005CC0A5019401698D7A8D5E +:100C00008B8D9C8D0F941ABF20E030E040E05FE3B5 +:100C10000F940BC39B01AC01C701B6010F9419BF20 +:100C20006B877D878E879B8BDD24D39442C0DD2428 +:100C3000D39420E030E040E050E46D8D7E8D8F8DC8 +:100C400098A10F9439C287FDD12C20E030E040E01C +:100C500050EC6F85788989899A890F9439C2181662 +:100C600044F520E030E040E05FE36B857D858E85D4 +:100C70009B890F940BC34B015C012DA13EA14BA599 +:100C80005CA56F85788989899A890F941ABF20E0BD +:100C900030E040E85EE30F940BC39B01AC01C5015B +:100CA000B4010F941ABF6B877D878E879B8B01C021 +:100CB000D12C80E00F9482358D8D9E8DAF8DB8A1A3 +:100CC0008093200A9093210AA093220AB093230ACA +:100CD0008B859D85AE85BB898093240A9093250AD8 +:100CE000A093260AB093270A8F89988D44970CF415 +:100CF0004AC0E4E3F5E88491882341F09091C00074 +:100D000095FFFCCF8093C6003196F5CF4091200A25 +:100D10005091210A6091220A7091230A22E030E06A +:100D200080EF96E00E940B5EE1E3F5E88491882372 +:100D300041F09091C00095FFFCCF8093C6003196A2 +:100D4000F5CF4091240A5091250A6091260A7091AE +:100D5000270A22E030E080EF96E00E940B5EE0E39D +:100D6000F5E88491882341F09091C00095FFFCCF75 +:100D70008093C6003196F5CF8091C00085FFFCCFEF +:100D80008AE08093C60020E030E040E752E46091C2 +:100D9000490270914A0280914B0290914C020F944B +:100DA00011C04B015C01E090240AF090250A0091EB +:100DB000260A1091270A2DEC3CEC4CE050ECB701D0 +:100DC000C8010F940AC087FF05C0BDECACECFCE085 +:100DD000E0EC04C0BE2DAF2DF02FE12F6091200A72 +:100DE0007091210A8091220A9091230A8501740151 +:100DF0002B2F3A2F4F2F5E2F0E9494D5D11042C037 +:100E000080E00F9482352DEC3CEC4CE050EC60918E +:100E1000240A7091250A8091260A9091270A0F943E +:100E20000AC087FF0CC08DEC9CECACE0B0EC80936A +:100E3000240A9093250AA093260AB093270A20E05B +:100E400030E040E752E46091490270914A0280919B +:100E50004B0290914C020F9411C07B018C012091A8 +:100E6000240A3091250A4091260A5091270A609160 +:100E7000200A7091210A8091220A9091230A0E94EF +:100E800094D5312C832DE0960FB6F894DEBF0FBEBB +:100E9000CDBFDF91CF911F910F91FF90EF90DF9029 +:100EA000CF90BF90AF909F908F907F906F905F900A +:100EB0004F903F902F9008952F923F924F925F92C4 +:100EC0006F927F928F929F92AF92BF92CF92DF925A +:100ED000EF92FF920F931F93CF93DF93CDB7DEB7BF +:100EE00066970FB6F894DEBF0FBECDBF8A837C87AE +:100EF0006B870E94086884ECE4E9FFE0DF011D9243 +:100F00008A95E9F718861F82EA81FF27E7FDF095A9 +:100F1000FA8BE98BE8E6F8E88491882341F0909118 +:100F2000C00095FFFCCF8093C6003196F5CF2F808F +:100F30003884FFEF2F1A3F0A4AE050E0B10180EFFA +:100F400096E00E941F5D2A8124310CF42EC1EEE54B +:100F5000F8E88491882341F09091C00095FFFCCF80 +:100F60008093C6003196F5CF8091C00085FFFCCFFD +:100F70008AE08093C600E4E5F8E88491882341F094 +:100F80009091C00095FFFCCF8093C6003196F5CFBD +:100F90004091B40F5091B50F6091B60F7091B70F9B +:100FA00025E030E080EF96E00E940B5EE3E5F8E894 +:100FB0008491882341F09091C00095FFFCCF8093ED +:100FC000C6003196F5CF8091C00085FFFCCF8AE046 +:100FD0008093C600E9E4F8E88491882341F0909179 +:100FE000C00095FFFCCF8093C6003196F5CF4091AD +:100FF000B80F5091B90F6091BA0F7091BB0F25E0F7 +:1010000030E080EF96E00E940B5EE8E4F8E884911F +:10101000882341F09091C00095FFFCCF8093C600DB +:101020003196F5CF8091C00085FFFCCF8AE0809398 +:10103000C600EEE3F8E88491882341F09091C00067 +:1010400095FFFCCF8093C6003196F5CF4091BC0F41 +:101050005091BD0F6091BE0F7091BF0F25E030E041 +:1010600080EF96E00E940B5EEDE3F8E88491882320 +:1010700041F09091C00095FFFCCF8093C60031965F +:10108000F5CF8091C00085FFFCCF8AE08093C60039 +:10109000E3E3F8E88491882341F09091C00095FF44 +:1010A000FCCF8093C6003196F5CF4091C00F509190 +:1010B000C10F6091C20F7091C30F25E030E080EF47 +:1010C00096E00E940B5EE2E3F8E88491882341F009 +:1010D0009091C00095FFFCCF8093C6003196F5CF6C +:1010E0008091C00085FFFCCF8AE08093C600E9E2D2 +:1010F000F8E88491882341F09091C00095FFFCCFDF +:101100008093C6003196F5CF4091C40F5091C50F22 +:101110006091C60F7091C70F25E030E080EF96E038 +:101120000E940B5EE8E2F8E88491882341F09091F8 +:10113000C00095FFFCCF8093C6003196F5CF80911B +:10114000C00085FFFCCF8AE08093C600EFE1F8E89D +:101150008491882341F09091C00095FFFCCF80934B +:10116000C6003196F5CF4091C80F5091C90F6091DC +:10117000CA0F7091CB0F25E030E080EF96E00E941F +:101180000B5EEEE1F8E88491882341F09091C00075 +:1011900095FFFCCF8093C6003196F5CF8091C000BB +:1011A00085FFFCCF8AE08093C600E091530AF0E00F +:1011B000EE0FFF1FE356FF4785919491BE016F5FCD +:1011C0007F4F0F9401658981843010F083E089831B +:1011D000AF81B885BD01882777FD8095982F0F9442 +:1011E000ACC04B015C012DEC3CEC4CE45EE30F9495 +:1011F0000BC32AE939E949E95EE30F940BC36D8714 +:101200007E878F87988B20E030E040EA50E40F948F +:101210001ABF6093280A7093290A80932A0A909330 +:101220002B0AE6E2FEE8FE83ED8304E91FE01C8260 +:101230001B82C101AA2797FDA095BA2F8B8B9C8B8F +:10124000AD8BBE8B0E940868AB81BC811196BA87BA +:10125000A987AD01698180E00F943D61E091530A57 +:10126000F0E0EE0FFF1FE157FF47859194910F9437 +:10127000BE78BF81BB2389F0E091530AF0E0EE0F06 +:10128000FF1FE555FF474591549169816F5F80E0ED +:101290000F94B1A0C1010F94366120E030E040E727 +:1012A00052E46091510270915202809153029091E8 +:1012B00054020F9411C00E94C0D5EA81E4310CF4AD +:1012C00064C01092240A1092250A1092260A1092E5 +:1012D000270A20E030E040E752E460914902709133 +:1012E0004A0280914B0290914C020F9411C00E94CF +:1012F000C0D5E8E1F8E88491882341F09091C000DE +:1013000095FFFCCF8093C6003196F5CF8091C00049 +:1013100085FFFCCF8AE08093C60088E893E10E94B5 +:1013200000778DEC9CECACE0B0EC8093240A9093B9 +:10133000250AA093260AB093270A20E030E040E770 +:1013400052E46091490270914A0280914B0290915F +:101350004C020F9411C00E94C0D5E1E1F8E88491DD +:10136000882341F09091C00095FFFCCF8093C60088 +:101370003196F5CF8091C00085FFFCCF8AE0809345 +:10138000C60088E893E10E940077ED81FE81859197 +:101390009591A591B4918093200A9093210AA093EE +:1013A000220AB093230AED81FE81349685919591AE +:1013B000A591B4918093240A9093250AA093260ABC +:1013C000B093270AFA81F4310CF48DC0E7EFF7E807 +:1013D0008491882341F09091C00095FFFCCF8093C9 +:1013E000C6003196F5CF4091200A5091210A6091B4 +:1013F000220A7091230A25E030E080EF96E00E94F7 +:101400000B5EE6EFF7E88491882341F09091C000ED +:1014100095FFFCCF8093C6003196F5CF8091C00038 +:1014200085FFFCCF8AE08093C600ECEDF7E884915D +:10143000882341F09091C00095FFFCCF8093C600B7 +:101440003196F5CF4091240A5091250A6091260AE1 +:101450007091270A25E030E080EF96E00E940B5E55 +:10146000EBEDF7E88491882341F09091C00095FF5F +:10147000FCCF8093C6003196F5CF8091C00085FFE8 +:10148000FCCF8AE08093C600E1ECF7E884918823E2 +:1014900041F09091C00095FFFCCF8093C60031963B +:1014A000F5CF4091280A5091290A60912A0A70913B +:1014B0002B0A25E030E080EF96E00E940B5EE0EC26 +:1014C000F7E88491882341F09091C00095FFFCCF0C +:1014D0008093C6003196F5CF8091C00085FFFCCF88 +:1014E0008AE08093C60020E030E040E752E460915B +:1014F000490270914A0280914B0290914C020F94E4 +:1015000011C00E94C0D5FA81FA3024F088EB9BE02C +:101510000E94007789899A890E94C6F3882309F47A +:10152000FCC32B813C81232BD9F520E030E043E044 +:1015300060E070E080E291EC0E94DEF224E0F22EA6 +:1015400089899A890E945AFF81112AC0FA9409F464 +:10155000E4C32DEC3CEC4CEC5CE36091280A709108 +:10156000290A80912A0A90912B0A0F9419BF60933F +:10157000280A7093290A80932A0A90932B0A80E004 +:101580000F947C3580E00F94823560915102709108 +:10159000520280915302909154020E94C0D5D0CF44 +:1015A0003A813A30BCF188EB9BE00E9400778A8157 +:1015B000843184F1E6EBF7E88491882341F090913F +:1015C000C00095FFFCCF8093C6003196F5CF809187 +:1015D000C00085FFFCCF8AE08093C6004091200ABE +:1015E0005091210A6091220A7091230A22E030E092 +:1015F00080EF96E00E940C5E4091240A5091250AEB +:101600006091260A7091270A22E030E080EF96E090 +:101610000E940C5E6B897C898D899E890F94ACC079 +:101620006B017C01D8012D913D914D915C91C501DB +:10163000B4010F940BC3A70196010F9411C02B01A5 +:101640003C01A70196016091200A7091210A8091C6 +:10165000220A9091230A0F9411C09B01AC01C3018F +:10166000B2010F941ABFF801608371838283938360 +:101670002481358146815781C501B4010F940BC384 +:10168000A70196010F9411C02B013C01A7019601FF +:101690006091240A7091250A8091260A9091270A68 +:1016A0000F9411C09B01AC01C301B2010F941ABF8A +:1016B000D80114966D937D938D939C931797BA815F +:1016C000B4310CF444C0E5EBF7E88491882341F091 +:1016D0009091C00095FFFCCF8093C6003196F5CF66 +:1016E0008091C00085FFFCCF8AE08093C600EEEABF +:1016F000F7E88491882341F09091C00095FFFCCFDA +:101700008093C6003196F5CFD8014D915D916D91D2 +:101710007C9122E030E080EF96E00E940C5EE7EAE8 +:10172000F7E88491882341F09091C00095FFFCCFA9 +:101730008093C6003196F5CFF801448155816681CA +:10174000778122E030E080EF96E00E940C5E2DEC85 +:101750003CEC4CE050EC6091240A7091250A809199 +:10176000260A9091270A0F940AC087FF0CC08DECBF +:101770009CECACE0B0EC8093240A9093250AA093F3 +:10178000260AB093270A20E030E040E450E46D855B +:101790007E858F8598890F941ABF9B01AC0160915B +:1017A000280A7091290A80912A0A90912B0A0F9495 +:1017B0001ABF6093280A7093290A80932A0A90938B +:1017C0002B0A9A819A3024F1AB81BC81AB2B01F5B5 +:1017D0008DEC9CECACE0B0EC8093240A9093250A4D +:1017E000A093260AB093270A20E030E040E752E4B5 +:1017F0006091490270914A0280914B0290914C0293 +:101800000F9411C00E94C0D588EB9BE00E94007726 +:10181000085F1F4FAD81BE811896BE83AD83E985F9 +:10182000FA85E430F10519F0FC83EB830BCDFA81E6 +:10183000F431C4F42DEC3CEC4CE250EC6091980F88 +:101840007091990F80919A0F90919B0F0F940AC0FD +:1018500087FF87C0AB85BC858C9182608C93E6EA5C +:10186000F7E843C088EB9BE00E94007704E91FE0A3 +:101870000E940868F80180819181A281B3818093E0 +:10188000200A9093210AA093220AB093230A84810C +:101890009581A681B7818093240A9093250AA0930D +:1018A000260AB093270A20E030E040E752E4609136 +:1018B000490270914A0280914B0290914C020F9420 +:1018C00011C00E94C0D588EB9BE00E940077085FA2 +:1018D0001F4FFFE0043B1F0759F6ACCF9091C000AB +:1018E00095FFFCCF8093C600319684918111F6CF8D +:1018F0008091C00085FFFCCF8AE08093C600E4E7BA +:10190000F7E88491882341F09091C00095FFFCCFC7 +:101910008093C6003196F5CF4091980F5091990F62 +:1019200060919A0F70919B0F22E030E080EF96E07B +:101930000E940B5EE0E7F7E88491882341F09091E4 +:10194000C00095FFFCCF8093C6003196F5CF22E012 +:1019500030E04DEC5CEC6CE270EC80EF96E00E94C5 +:101960000C5ECA8094ECE92E9FE0F92E0CEB1FE090 +:1019700024EB3FE046E25EE864E084E99FE00E94F9 +:10198000E2D78C0197FDB9C1A7016CEB7FE084EB36 +:101990009FE00E9425D44091C40F5091C50F6091E3 +:1019A000C60F7091C70F85EE9FE00F9481CB4091D9 +:1019B000C80F5091C90F6091CA0F7091CB0F89EE7B +:1019C0009FE00F9481CB4091B40F5091B50F60917F +:1019D000B60F7091B70F8DED9FE00F9481CB4091C2 +:1019E000B80F5091B90F6091BA0F7091BB0F81EE93 +:1019F0009FE00F9481CB4091BC0F5091BD0F60913F +:101A0000BE0F7091BF0F85ED9FE00F9481CB409189 +:101A1000C00F5091C10F6091C20F7091C30F89ED3B +:101A20009FE00F9481CBBA81BA300CF41DC1609154 +:101A3000B40F7091B50F8091B60F9091B70FC09011 +:101A4000B80FD090B90FE090BA0FF090BB0F9B0188 +:101A5000AC010F940BC34B015C01A7019601C701B8 +:101A6000B6010F940BC39B01AC01C501B4010F94E7 +:101A70001ABF0F94C4C3AB01BC01EFE5F7E8849132 +:101A8000882341F09091C00095FFFCCF8093C60061 +:101A90003196F5CF8091C00085FFFCCF8AE080931E +:101AA000C60022E030E080EF96E00E940C5E60917C +:101AB000BC0F7091BD0F8091BE0F9091BF0FC09071 +:101AC000C00FD090C10FE090C20FF090C30F9B01E8 +:101AD000AC010F940BC34B015C01A7019601C70138 +:101AE000B6010F940BC39B01AC01C501B4010F9467 +:101AF0001ABF0F94C4C3AB01BC01EEE4F7E88491B4 +:101B0000882341F09091C00095FFFCCF8093C600E0 +:101B10003196F5CF8091C00085FFFCCF8AE080939D +:101B2000C60022E030E080EF96E00E940C5E6091FB +:101B3000C40F7091C50F8091C60F9091C70FC090D0 +:101B4000C80FD090C90FE090CA0FF090CB0F9B0147 +:101B5000AC010F940BC34B015C01A7019601C701B7 +:101B6000B6010F940BC39B01AC01C501B4010F94E6 +:101B70001ABF0F94C4C3AB01BC01E7E3F7E884913B +:101B8000882341F09091C00095FFFCCF8093C60060 +:101B90003196F5CF8091C00085FFFCCF8AE080931D +:101BA000C60022E030E080EF96E00E940C5E2091BB +:101BB000BC0F3091BD0F4091BE0F5091BF0F60918F +:101BC000B40F7091B50F8091B60F9091B70F0F942D +:101BD0000BC36B017C012091C00F3091C10F40916C +:101BE000C20F5091C30F6091B80F7091B90F8091DF +:101BF000BA0F9091BB0F0F940BC39B01AC01C701AF +:101C0000B6010F941ABFE6E2F7E82491222341F0CF +:101C10003091C00035FFFCCF2093C6003196F5CF40 +:101C20002091C00025FFFCCF2AE02093C600AB0125 +:101C3000BC017F7722E030E080EF96E00E940C5EEE +:101C4000EDEFF6E88491882341F09091C00095FF74 +:101C5000FCCF8093C6003196F5CF8091C00085FF00 +:101C6000FCCF8AE08093C6000E944FF2EA81E43103 +:101C70000CF458C088EB9BE00E94007786E4E82EC5 +:101C80008EE8F82E0E940868F70185919591A5913C +:101C9000B4918093200A9093210AA093220AB093D2 +:101CA000230AF701349685919591A591B49180937B +:101CB000240A9093250AA093260AB093270A20E0CD +:101CC00030E040E752E46091490270914A0280910D +:101CD0004B0290914C020F9411C00E94C0D588EB2A +:101CE0009BE00E940077F8E0EF0EF11C2EE8E21670 +:101CF0002EE8F20609F0C6CF15C08E3F3FEF9307DE +:101D000029F4AB85BC858C91823049F0B3E02B1669 +:101D1000310441F038862F82FDC88FEF01C08EEF6D +:101D20009FEF01C0C80166960FB6F894DEBF0FBEE4 +:101D3000CDBFDF91CF911F910F91FF90EF90DF907A +:101D4000CF90BF90AF909F908F907F906F905F905B +:101D50004F903F902F9008950F931F93CF93DF9351 +:101D60000E94086808E21AE080E090E0A0EAB0E48F +:101D7000F80180839183A283B383C1E5D2E020E0A0 +:101D800030E040E752E4688179818A819B810F9439 +:101D900011C00E94C0D58DEC9CECACE4BEE38093F6 +:101DA000200A9093210AA093220AB093230A80E08C +:101DB00090E0A0E0B0EC8093240A9093250AA093D1 +:101DC000260AB093270A64E27AE080E29AE00E9451 +:101DD000A16120E030E040E752E460914902709157 +:101DE0004A0280914B0290914C020F9411C00E94C4 +:101DF000C0D58AE999E9A9E1BEE3F801808391831E +:101E0000A283B38320E030E040E752E46881798127 +:101E10008A819B810F9411C0DF91CF911F910F9107 +:101E20000C94C0D52F923F924F925F926F927F9207 +:101E30008F929F92AF92BF92CF92DF92EF92FF92DA +:101E40000F931F93CF93DF9300D0CDB7DEB780E021 +:101E50000F947C358A8380E00F9482358B830E94B7 +:101E60000868E091530AF0E0EE0FFF1FED59F048CB +:101E700085919491BE016F5F7F4F0F9401658981B9 +:101E8000843010F083E0898341E050E0698180E094 +:101E90000F943D61E091530AF0E0EE0FFF1FEB5A03 +:101EA000F048859194910F94BE7880E090E0A0EA8C +:101EB000B0E48093280A9093290AA0932A0AB09349 +:101EC0002B0A20E030E040E752E46091510270912B +:101ED000520280915302909154020F9411C00E94BB +:101EE000C0D5E6E4FEE885919591A591B4918093E3 +:101EF000200A9093210AA093220AB093230AEAE4CD +:101F0000FEE885919591A591B4918093240A9093D0 +:101F1000250AA093260AB093270A64E27AE080E2B9 +:101F20009AE00E94A16120E030E040E752E4609135 +:101F3000490270914A0280914B0290914C020F9499 +:101F400011C00E94C0D580E1E0E2FAE0ABEEB9E05A +:101F500001900D928A95E1F781E00F947C3582E043 +:101F600090E00E94CD6780E00F947C3520E030E067 +:101F700043E060E070E080E291EC0E94DEF280914C +:101F8000280A9091290AA0912A0AB0912B0A8093DD +:101F9000940F9093950FA093960FB093970F0EE424 +:101FA000E02E0EE8F02E02E010E0412C512C80EAE9 +:101FB000682E80E4782E92E0892E27E0922E0E94EF +:101FC00008684092280A5092290A60922A0A709260 +:101FD0002B0A20E030E040E752E46091510270911A +:101FE000520280915302909154020F9411C00E94AA +:101FF000C0D5F70185919591A591B4918093200A60 +:102000009093210AA093220AB093230AF7013496F1 +:1020100085919591A591B4918093240A9093250A76 +:10202000A093260AB093270A64E27AE080E29AE05D +:102030000E94A16120E030E040E752E46091490253 +:1020400070914A0280914B0290914C020F9411C002 +:102050000E94C0D5A801698180E00F943D61E091A4 +:10206000530AF0E0EE0FFF1FEB5AF0488591949170 +:102070000F94BE7820E030E043E060E070E080E262 +:1020800091EC0E94DEF28FEF800F63E00F94C8C4E2 +:1020900080FF03C0282D291B922F392D282F2303C1 +:1020A000F0011124E90FF11D97FDFA95EE0FFF1FC6 +:1020B000EE0FFF1FED56F04F4091280A5091290A6C +:1020C00060912A0A70912B0A41835283638374833F +:1020D00038E0E30EF11C0F5F1F4F0A30110509F0C5 +:1020E0006ECF8090940F9090950F6090960F7090A7 +:1020F000970FE3E9EE2EEFE0FE2E1501260100E03A +:1021000010E0F701E00FF11FA180B280C380D480FE +:102110009501A601B401C3010F940AC087FD02C056 +:10212000450136019501A601B101C2010F940AC013 +:1021300087FF02C0510162010C5F1F4F0C30110577 +:1021400019F015012601DDCF8CE1E80EF11C27EE18 +:10215000E2162FE0F20689F69401A301B501C6014B +:102160000F9419BF20E030E040E450E40F9439C2EE +:10217000181654F063E9C62E6FE0D62EA12C75EC2C +:10218000E72E7FE0F72E16C0EFE4F3E88491882372 +:1021900041F09091C00095FFFCCF8093C60031962E +:1021A000F5CF8091C00085FFFCCF8AE08093C60008 +:1021B00080E049C000E010E0B12CB11002C0AA20BC +:1021C00039F12091940F3091950F4091960F5091D5 +:1021D000970FF601E00FF11F618172818381948175 +:1021E0000F9419BF20E030E048EC52E40F940BC389 +:1021F00020E030E040E05FE30F941ABF0F94E7C0A7 +:102200000F9479C0C7010F9489CB32E0E30EF11C23 +:10221000B3940C5F1F4F83E0B812CFCFA3942CE18F +:10222000C20ED11CA812C6CF83E99FE00F94D71924 +:1022300081E08093930F90DD8A810F947C358B81B0 +:102240000F94823581E00F900F900F90DF91CF9126 +:102250001F910F91FF90EF90DF90CF90BF90AF90C4 +:102260009F908F907F906F905F904F903F902F90B6 +:1022700008952F923F924F925F926F927F928F922A +:102280009F92AF92BF92CF92DF92EF92FF920F9305 +:102290001F93CF93DF93CDB7DEB765970FB6F89452 +:1022A000DEBF0FBECDBF8B8B6A872A010E940868F4 +:1022B000D2011C9284ECE4E9FFE0DF011D928A95D3 +:1022C000E9F7BA85BA30A4F0EFEFF4E884918823F7 +:1022D00041F09091C00095FFFCCF8093C6003196ED +:1022E000F5CF8091C00085FFFCCF8AE08093C600C7 +:1022F0000E9433F08091820F9091830FA091840F00 +:10230000B091850F8093DC0F9093DD0FA093DE0FCB +:10231000B093DF0F80918A0F90918B0FA0918C0F5B +:10232000B0918D0F8093E00F9093E10FA093E20F97 +:10233000B093E30F8091860F9091870FA091880F43 +:10234000B091890F8093E40F9093E50FA093E60F6F +:10235000B093E70F80918E0F90918F0FA091900F07 +:10236000B091910F8093E80F9093E90FA093EA0F3B +:10237000B093EB0F80916A0F90916B0FA0916C0F4F +:10238000B0916D0F8093EC0F9093ED0FA093EE0F33 +:10239000B093EF0F80916E0F90916F0FA091700F1F +:1023A000B091710F8093F00F9093F10FA093F20F03 +:1023B000B093F30F0E94A5EF80E00F947C35898BDA +:1023C00080E00F9482358A8BE091530AF0E0EE0FA3 +:1023D000FF1FE15FFF4785919491BE01675F7F4FCB +:1023E0000F9401658985843010F083E08987E4E9E2 +:1023F000FFE0FC87EB8706E4602E0EE8702E212CB0 +:10240000312C2A85332727FD30953D8B2C8B0E945C +:102410000868A1014F5F5F4F588B4F87698580E047 +:102420000F943D61E091530AF0E0EE0FFF1FEF5F64 +:10243000FF47859194910F94BE7880E090E0A0EAE8 +:10244000B0E48093280A9093290AA0932A0AB093B3 +:102450002B0A80E00F947C3580E00F94823520E0D9 +:1024600030E040E752E46091510270915202809155 +:102470005302909154020F9411C00E94C0D59A85C6 +:1024800094310CF464C01092240A1092250A109220 +:10249000260A1092270A20E030E040E752E46091DB +:1024A000490270914A0280914B0290914C020F9424 +:1024B00011C00E94C0D5E9EFF4E88491882341F06F +:1024C0009091C00095FFFCCF8093C6003196F5CF68 +:1024D0008091C00085FFFCCF8AE08093C60088E829 +:1024E00093E10E9400772DEC3CEC4CE050EC209303 +:1024F000240A3093250A4093260A5093270A20E0A5 +:1025000030E040E752E46091490270914A028091C4 +:102510004B0290914C020F9411C00E94C0D5ECEE7A +:10252000F4E88491882341F09091C00095FFFCCF9E +:102530008093C6003196F5CF8091C00085FFFCCF17 +:102540008AE08093C60088E893E10E940077F30157 +:10255000659175918591949183010C5F1F4FF801EE +:1025600085909590A590B4902091DC0F3091DD0F6F +:102570004091DE0F5091DF0F0F940BC36B017C0174 +:102580002091E40F3091E50F4091E60F5091E70F55 +:10259000C501B4010F940BC39B01AC01C701B60187 +:1025A0000F941ABF2091EC0F3091ED0F4091EE0F78 +:1025B0005091EF0F0F941ABF6093200A7093210A75 +:1025C0008093220A9093230AF30165917591859176 +:1025D0009491F80185909590A590B4902091E00F8A +:1025E0003091E10F4091E20F5091E30F0F940BC334 +:1025F0006B017C012091E80F3091E90F4091EA0FC7 +:102600005091EB0FC501B4010F940BC39B01AC01BA +:10261000C701B6010F941ABF2091F00F3091F10F4E +:102620004091F20F5091F30F0F941ABF6093240A58 +:102630007093250A8093260A9093270A2DEC3CEC90 +:102640004CE050EC0F940AC087FF44C08DEC9CEC2A +:10265000ACE0B0EC8093240A9093250AA093260A5C +:10266000B093270A9A859431ACF1E9EDF4E88491AE +:10267000882341F09091C00095FFFCCF8093C60065 +:102680003196F5CF4AE050E0B10180EF96E00E942C +:10269000185DE8EAF4E88491882341F09091C00045 +:1026A00095FFFCCF8093C6003196F5CFE7EAF4E8BA +:1026B0008491882341F09091C00095FFFCCF8093D6 +:1026C000C6003196F5CF8091C00085FFFCCF8AE02F +:1026D0008093C60020E030E040E752E46091490278 +:1026E00070914A0280914B0290914C020F9411C05C +:1026F0000E94C0D5AA85AA3024F088EB9BE00E94F6 +:10270000007720E030E043E060E070E080E291ECB0 +:102710000E94DEF2BA85BA3024F088EB9BE00E947A +:1027200000772DEC3CEC4CEC5CE36091280A709156 +:10273000290A80912A0A90912B0A0F9419BF60935D +:10274000280A7093290A80932A0A90932B0A10E092 +:1027500003E0EAE0EE2EFEE58F2EF4E89F2EA6E4DD +:10276000AA2EA4E8BA2EB5E4CB2EB4E8DB2EEA8577 +:10277000E5310CF459C0E2E9F4E88491882341F092 +:102780009091C00095FFFCCF8093C6003196F5CFA5 +:102790004AE050E0B10180EF96E00E94185DE5E864 +:1027A000F4E88491882341F09091C00095FFFCCF1C +:1027B0008093C6003196F5CF4AE050E0612F77272D +:1027C00067FD709580EF96E00E94185DE1E8F4E8FF +:1027D0008491882341F09091C00095FFFCCF8093B5 +:1027E000C6003196F5CF4091280A5091290A609190 +:1027F0002A0A70912B0A25E030E080EF96E00E94D3 +:102800000B5EE0E8F4E88491882341F09091C000E9 +:1028100095FFFCCF8093C6003196F5CF8091C00024 +:1028200085FFFCCFE092C600F2E0F2152CF08C8917 +:102830009D890E945AFF0DC02B89222341F021302F +:1028400009F057C06A8580E00E946CFB02C00E94BC +:1028500013F9882309F44DC0143064F12091200A43 +:102860003091210A4091220A5091230AAB85BC8500 +:102870006D917D918D919C910F941ABFEB85FC8594 +:1028800060837183828393832091240A3091250A87 +:102890004091260A5091270A64817581868197812B +:1028A0000F941ABFAB85BC8514966D937D938D9361 +:1028B0009C9317972DEC3CEC4CE050EC6091240A73 +:1028C0007091250A8091260A9091270A0F940AC0D8 +:1028D00087FF0CC02DEC3CEC4CE050EC2093240A1C +:1028E0003093250A4093260A5093270A1F5FF02E43 +:1028F0008FC0FF24FA94F00E002309F407C42DECD6 +:102900003CEC4CE45DE36091280A7091290A8091C7 +:102910002A0A90912B0A0F9419BF6093280A70938A +:10292000290A80932A0A90932B0A80E00F947C3521 +:1029300080E00F9482356091510270915202809133 +:102940005302909154020E94C0D53A8535300CF460 +:102950005FC0EBE6F4E88491882341F09091C000D9 +:1029600095FFFCCF8093C6003196F5CF4AE050E04A +:10297000B10180EF96E00E94185DF4018491EEE5CC +:10298000F4E8882349F09091C00095FFFCCF809334 +:10299000C60031968491F5CF4AE050E0612F772749 +:1029A00067FD709580EF96E00E94185DF5018491B7 +:1029B000E6E4F4E8882349F09091C00095FFFCCF4D +:1029C0008093C60031968491F5CF4091280A5091AA +:1029D000290A60912A0A70912B0A25E030E080EFE5 +:1029E00096E00E940B5EF6018491E5E4F4E888230A +:1029F00049F09091C00095FFFCCF8093C6003196BE +:102A00008491F5CF8091C00085FFFCCFE092C60095 +:102A1000183014F40F2DABCEFA85FA3024F088EB81 +:102A20009BE00E94007728E0620E711C4B855C855C +:102A3000485F5F4F5C874B878F8598898930910508 +:102A400011F01C01E4CC0E94086804E91FE020E0BA +:102A500030E040E85EE3D8016D917D918D919C91CD +:102A60000F940BC3F80161937193819391938F013C +:102A7000FFE00C3D1F0759F780E00F947C3580E0A4 +:102A80000F9482352A852530ACF42DEC3CEC4CE2D9 +:102A900050EC6091980F7091990F80919A0F9091DE +:102AA0009B0F0F940AC087FFCAC0D2018C9181602E +:102AB0008C93C5C080E090E0A0EAB0E48093280A3F +:102AC0009093290AA0932A0AB0932B0A24E9E22EB4 +:102AD0002FE0F22E00E010E03BE2632E34E8732E8C +:102AE00048E2C42E44E8D42E55E2A52E54E8B52E73 +:102AF00064E2862E64E8962E7AE0372E0E940868FB +:102B0000F70180819181A281B3818093200A909303 +:102B1000210AA093220AB093230A84819581A68179 +:102B2000B7818093240A9093250AA093260AB09334 +:102B3000270AFA85FA30A4F020E030E040E752E4BA +:102B40006091490270914A0280914B0290914C022F +:102B50000F9411C00E94C0D588EB9BE00E940077C3 +:102B6000F3018491EBE2F4E8882349F09091C000EE +:102B700095FFFCCF8093C60031968491F5CF4AE053 +:102B800050E0B80180EF96E00E94185DF601849154 +:102B9000E8E2F4E8882349F09091C00095FFFCCF6B +:102BA0008093C60031968491F5CF4091200A5091D0 +:102BB000210A6091220A7091230A25E030E080EF1B +:102BC00096E00E940B5EF5018491E5E2F4E888232B +:102BD00049F09091C00095FFFCCF8093C6003196DC +:102BE0008491F5CF4091240A5091250A6091260ADC +:102BF0007091270A25E030E080EF96E00E940B5E9E +:102C0000F4018491E4E2F4E8882349F09091C00053 +:102C100095FFFCCF8093C60031968491F5CF8091CB +:102C2000C00085FFFCCF3092C6000F5F1F4FF8E059 +:102C3000EF0EF11C0930110509F060CF26CF2DEC05 +:102C40003CEC4CE250EC6091A00F7091A10F809190 +:102C5000A20F9091A30F0F940AC087FF04C0F20146 +:102C60008081826080832DEC3CEC4CE250EC6091E2 +:102C7000A80F7091A90F8091AA0F9091AB0F0F949C +:102C80000AC087FF04C0D2018C9184608C93CA84EF +:102C90009CEEE92E9FE0F92E04EE1FE02CED3FE0C4 +:102CA00046E45EE869E084E99FE00E94E2D71C0107 +:102CB00097FF15C0E1EFF3E88491882341F09091EC +:102CC000C00095FFFCCF8093C6003196F5CF809170 +:102CD000C00085FFFCCF8AE08093C6001AC2B5E32E +:102CE0006B2EBAE07B2E16E4E12E1EE8F12E00E0FA +:102CF00010E08AE0D82EF701659175918591949145 +:102D0000F701349625913591459154912B873C8755 +:102D10004D875E872091E00F3091E10F4091E20FE7 +:102D20005091E30F0F940BC34B015C012091E80F0E +:102D30003091E90F4091EA0F5091EB0F6B857C8544 +:102D40008D859E850F940BC39B01AC01C501B40119 +:102D50000F941ABF2091F00F3091F10F4091F20FB4 +:102D60005091F30F0F941ABF4B015C01C02E2DEC54 +:102D70003CEC4CE250E40F941ABFD3016D937D9369 +:102D80008D939C931397BA85B4310CF466C0E0EF31 +:102D9000F3E88491882341F09091C00095FFFCCF27 +:102DA0008093C6003196F5CF8091C00085FFFCCF9F +:102DB000D092C600EDEDF3E88491882341F0909124 +:102DC000C00095FFFCCF8093C6003196F5CFD301AC +:102DD0004D915D916D917C9122E030E080EF96E025 +:102DE0000E940B5EECEDF3E88491882341F0909112 +:102DF000C00095FFFCCF8093C6003196F5CF80913F +:102E0000C00085FFFCCFD092C600E9EDF3E88491C5 +:102E1000882341F09091C00095FFFCCF8093C600BD +:102E20003196F5CF22E030E0B501A40180EF96E0C5 +:102E30000E940B5EE8EDF3E88491882341F09091C5 +:102E4000C00095FFFCCF8093C6003196F5CF8091EE +:102E5000C00085FFFCCFD092C6002DEC3CEC4CE2CC +:102E600050ECC501B4010F940AC087FF0BC081E08C +:102E700090E00C2C01C0880F0A94EAF7D2019C91D3 +:102E8000982B9C930F5F1F4FB8E0EB0EF11CE4E012 +:102E90006E0E711C0330110509F02DCF4CEE5FE072 +:102EA00064EE7FE08CED9FE00E9425D44091EC0F12 +:102EB0005091ED0F6091EE0F7091EF0F85EE9FE056 +:102EC0000F9481CB4091F00F5091F10F6091F20F70 +:102ED0007091F30F89EE9FE00F9481CB4091DC0F4E +:102EE0005091DD0F6091DE0F7091DF0F8DED9FE04F +:102EF0000F9481CB4091E00F5091E10F6091E20F70 +:102F00007091E30F81EE9FE00F9481CB4091E40F2D +:102F10005091E50F6091E60F7091E70F85ED9FE00E +:102F20000F9481CB4091E80F5091E90F6091EA0F27 +:102F30007091EB0F89ED9FE00F9481CB0E944FF2CF +:102F400080E00F947C3580E00F948235FA85F5306F +:102F500074F40F94120F882309F4DBC089890F944D +:102F60007C358A890F9482350E940868F8C088EB06 +:102F70009BE00E94007780E090E0A0EAB0E48093BC +:102F8000280A9093290AA0932A0AB0932B0A56E4A0 +:102F9000E52E5EE8F52E00E010E06CEB662E63E8AF +:102FA000762E79EBC72E73E8D72EE6EBAE2EE3E84C +:102FB000BE2EF5EB8F2EF3E89F2EAAE05A2E0E942C +:102FC0000868F70185919591A591B4918093200AA5 +:102FD0009093210AA093220AB093230AF701349612 +:102FE00085919591A591B4918093240A9093250A97 +:102FF000A093260AB093270A2A852A30A4F020E05D +:1030000030E040E752E46091490270914A028091B9 +:103010004B0290914C020F9411C00E94C0D588EBD6 +:103020009BE00E9400779E012F5F3F4FAE014B5FF8 +:103030005F4F64E27AE080E29AE00E94E760F30189 +:103040008491ECEBF3E8882349F09091C00095FF60 +:10305000FCCF8093C60031968491F5CF4AE050E0D2 +:10306000B80180EF96E00E94185DF6018491E9EBCB +:10307000F3E8882349F09091C00095FFFCCF80933E +:10308000C60031968491F5CF4D815E816F81788540 +:1030900025E030E080EF96E00E940B5EF501849120 +:1030A000E6EBF3E8882349F09091C00095FFFCCF50 +:1030B0008093C60031968491F5CF49815A816B8106 +:1030C0007C8125E030E080EF96E00E940B5EF40109 +:1030D0008491E5EBF3E8882349F09091C00095FFD7 +:1030E000FCCF8093C60031968491F5CF8091C000CB +:1030F00085FFFCCF5092C6000F5F1F4FF8E0EF0E28 +:10310000F11C0930110509F05ACF23CF22242A944B +:10311000322C0E94086880E090E0A0EAB0E480933E +:10312000280A9093290AA0932A0AB0932B0A20E038 +:1031300030E040E752E46091510270915202809178 +:103140005302909154020F9411C00E94C0D50E9466 +:103150004BEF89890F947C358A890F948235C101A0 +:1031600065960FB6F894DEBF0FBECDBFDF91CF914D +:103170001F910F91FF90EF90DF90CF90BF90AF9095 +:103180009F908F907F906F905F904F903F902F9087 +:10319000089587EF9FE00F945DCB863EF8F40E9480 +:1031A000807868E67FE088EF9FE00F94716160911E +:1031B000680F7091690F882777FD8095982F0F947D +:1031C000ACC0905820913616309137164091381681 +:1031D000509139160F9411C00C944DD608956091FA +:1031E000680F7091690F882777FD8095982F0F944D +:1031F000ACC0209136163091371640913816509158 +:1032000039160F9411C00E944DD61092690F10927A +:10321000680F08951092690F1092680F08952F9209 +:103220003F924F925F926F927F928F929F92AF9256 +:10323000BF92CF92DF92EF92FF920F931F93CF93A3 +:10324000DF93CDB7DEB728970FB6F894DEBF0FBE79 +:10325000CDBF89EE9FE00F9465CB69837A838B8322 +:103260009C8381EE9FE00F9465CB6B017C0185ED23 +:103270009FE00F9465CB4B015C0189ED9FE00F94BB +:1032800065CB2B013C01C501B4010F947EBF4B01FE +:103290005C01C701B6010F947EBF9B01AC01C50163 +:1032A000B40190580F9419BFDC01CB01BF77809314 +:1032B000310A9093320AA093330AB093340A26E479 +:1032C000222E2EE8322E05E31AE0F10125913591E8 +:1032D00045915491F101349685919591A591B491C0 +:1032E0008D839E83AF83B887C701B6010F940BC34C +:1032F0004B015C012D813E814F815885C301B20194 +:103300000F940BC39B01AC01C501B4010F941ABF0C +:1033100029813A814B815C810F941ABF2DEC3CECE2 +:103320004CE250E40F941ABFD8016D937D938D93B6 +:103330009D938D01B8E02B0E311CEEE52E16EEE8C4 +:103340003E0609F0C2CF28960FB6F894DEBF0FBE36 +:10335000CDBFDF91CF911F910F91FF90EF90DF9044 +:10336000CF90BF90AF909F908F907F906F905F9025 +:103370004F903F902F900895FC01108220E030E0A4 +:1033800040E050E0BC01620F731FFB01E40FF51F2A +:1033900011821282138214824C5F5F4F4C315105AF +:1033A000A1F7245E3F4F243C310551F708952F9239 +:1033B0003F924F925F926F927F928F929F92AF92C5 +:1033C000BF92CF92DF92EF92FF920F931F93CF9312 +:1033D000DF93CDB7DEB760970FB6F894DEBF0FBEB0 +:1033E000CDBF8B839D838B879C8703E010E0EB85AB +:1033F000FC8581859285A385B485818F928FA38F6B +:10340000B48F85819681A781B08585879687A787A8 +:10341000B08B22242394312CF3E02F16310409F4CD +:1034200091C0B101882777FD8095982F0F94ACC08B +:1034300025E535E547E052E40F940BC320E030E08A +:103440004CE052E40F941ABF6B017C0120E030E89D +:1034500048E053E40F9419BF2B013C0120E030E019 +:103460004EE653E4C701B6010F9419BF4B015C014E +:1034700020E030E04CE052E4C701B6010F9419BFE0 +:103480006B017C019101220F331F220F331F8B85AB +:103490009C85280F391F3A832983FC0121813281C1 +:1034A00043815481C301B2010F940BC3A501940160 +:1034B0000F940BC320E039EF40EA56E40F9411C09B +:1034C0006F83788789879A87EB85FC852585368584 +:1034D00047855089C701B6010F940BC3A50194011C +:1034E0000F940BC320E039EF40E256EC0F9411C06B +:1034F0009B01AC016F81788589859A850F941ABFED +:103500004B015C01EB85FC85218D328D438D548D03 +:10351000C701B6010F940BC3A30192010F940BC313 +:1035200020E039EF40EA56E40F9411C09B01AC0152 +:10353000C501B4010F941ABFE981FA8161837283D6 +:1035400083839483FFEF2F1A3F0A26E0221631046B +:1035500009F062CF015011098B859C854C969C87A0 +:103560008B870115110509F042CF9B819F87ED8163 +:10357000E88B27E030E03A832983EF85F88981AD35 +:1035800092ADA3ADB4ADE755FF4FFC83EB838083D1 +:103590009183A283B383EF85F889858D968DA78D5E +:1035A000B0A1EB5AFF4FFE83ED8380839183A2830A +:1035B000B383212C312C01E010E00330110509F414 +:1035C0008DC0B801882777FD8095982F0F94ACC0E7 +:1035D0002BEA3AEA42E052E40F940BC320E030E0D9 +:1035E00040EC50E40F941ABF6B017C0120E030E006 +:1035F00040ED52E40F9419BF2B013C0120E030E074 +:103600004AE453E4C701B6010F9419BF4B015C01B2 +:1036100020E030E040EC50E4C701B6010F9419BF40 +:103620006B017C012F853889220D331D38872F834C +:10363000EF85F8892181328143815481C301B20130 +:103640000F940BC3A50194010F940BC320E030E14C +:1036500046E956E40F9411C06B877C878D879E875F +:10366000ED81FE812081318142815381C701B60104 +:103670000F940BC3A50194010F940BC320E030E11C +:1036800046E156EC0F9411C09B01AC016B857C8523 +:103690008D859E850F941ABF4B015C01EB81FC81E7 +:1036A0002081318142815381C701B6010F940BC340 +:1036B000A30192010F940BC320E030E146E956E4E8 +:1036C0000F9411C09B01AC01C501B4010F941ABF46 +:1036D000EF81F885658F768F878F90A30F5F1F4FDF +:1036E000FCE12F0E311C0630110509F066CF29814F +:1036F0003A81215031093A8329838F85988904962C +:10370000988B8F87232B09F038CF60960FB6F894EB +:10371000DEBF0FBECDBFDF91CF911F910F91FF9004 +:10372000EF90DF90CF90BF90AF909F908F907F9061 +:103730006F905F904F903F902F90089583E99FE0A6 +:103740001BCE2F923F924F925F926F927F928F92F9 +:103750009F92AF92BF92CF92DF92EF92FF920F9320 +:103760001F93CF93DF93CDB7DEB7C155D1090FB605 +:10377000F894DEBF0FBECDBF1C0178A36F8F4A0146 +:103780002DAB0FAB2A96EFAE2A972E96ACAEBDAE00 +:10379000CEAEDFAE2E9734E0239F50011124FC0102 +:1037A000EA0DFB1D80819181A281B3818F8B988F5F +:1037B000A98FBA8FDA01AA0DBB1DBEAFADAF4D9078 +:1037C0005D906D907C90A30192016F89788D898DB9 +:1037D0009A8D0F941ABF23966CAF7DAF8EAF9FAFBB +:1037E0002397B4E00B9F80011124F101E00FF11F3A +:1037F000208131814281538129A33AA34BA35CA349 +:10380000A401400F511F25965FAF4EAF2597DA01F7 +:10381000CD90DD90ED90FC90A701960169A17AA171 +:103820008BA19CA10F941ABF29966CAF7DAF8EAF70 +:103830009FAF29972A96EFAD2A97B4E0EB9FC0017E +:103840001124F101E80FF91F208131814281538158 +:103850002B8F3C8F4D8F5E8FEF8DF8A1E80FF91FF6 +:1038600060817181828193810F9419BF6DA37EA3C2 +:103870008FA398A7AF8DB8A11C968D919D910D90A7 +:10388000BC91A02D62968CAF9DAFAEAFBFAF6297DB +:10389000D1011C962D913D914D915C911F9729A7C7 +:1038A0003AA74BA75CA777FA709477F87094A701B2 +:1038B000960150582B8B3C8B4D8B5E8BEF8DF8A176 +:1038C000EA0DFB1D80819181A281B3818DA79EA706 +:1038D000AFA7B8AB23962CAD3DAD4EAD5FAD2397F2 +:1038E000BC01CD010F9419BF6B017C01EF8DF8A1D4 +:1038F000E00FF11F208131814281538129AB3AAB26 +:103900004BAB5CAB29962CAD3DAD4EAD5FAD299771 +:1039100069A97AA98BA99CA90F9419BF4B015C01D5 +:10392000A7019601C301B2010F940BC369AF7AAF2F +:103930008BAF9CAFA50194016B897C898D899E8991 +:103940000F940BC39B01AC0169AD7AAD8BAD9CADFF +:103950000F941ABF69AF7AAF8BAF9CAFA5019401EA +:10396000C301B2010F940BC34B015C01A701960187 +:103970006B897C898D899E890F940BC39B01AC0157 +:10398000C501B4010F9419BF29AD3AAD4BAD5CAD83 +:103990000F94A4BF6B017C0120E030E0A9010F94DB +:1039A0000AC087FF0AC02BED3FE049EC50E4C70195 +:1039B000B6010F941ABF6B017C01AC968FADAC972A +:1039C000882351F02BED3FE049EC50E4C701B601EC +:1039D0000F9419BF6B017C012DA53EA54FA558A9D9 +:1039E0006F89788D898D9A8D0F940AC081111FC0BF +:1039F00029A93AA94BA95CA969A17AA18BA19CA18B +:103A00000F940AC0811113C020E030E0A901C70162 +:103A1000B6010F940AC081110AC02BED3FE049ECBA +:103A200050E4C701B6010F941ABF6B017C01AB963D +:103A30002CAD3DAD4EAD5FADAB97C701B6010F9458 +:103A40000BC32DA13EA14FA158A55F770F9446C28D +:103A50004B015C012FE632E143E85AE30F940AC0C0 +:103A600087FDD6C1C501B4010F94E7C00F947EC095 +:103A70007AA369A36115710521F481E090E09AA30E +:103A800089A3A9A1BAA1BD0180E090E00F94AAC0CA +:103A90004B015C019B01AC01C701B6010F9411C041 +:103AA0006F8B788F898F9A8FA50194016DA17EA16C +:103AB0008FA198A50F9411C06DA77EA78FA798AB73 +:103AC00029A53AA54BA55CA562966CAD7DAD8EADE2 +:103AD0009FAD62970F9419BFA50194010F9411C077 +:103AE00069AB7AAB8BAB9CAB20E030E040E05FE3AE +:103AF0006F89788D898D9A8D0F940BC32F89388D9E +:103B0000498D5A8D0F940BC39B01AC0160E070E0AE +:103B100080E89FE30F9419BF6DA37EA38FA398A79E +:103B2000CE010196FC012A962FAD2A97B4E02B9F77 +:103B3000E00DF11D11242B8D3C8D4D8D5E8D20836C +:103B400031834283538329A53AA54BA55CA52D87D4 +:103B50003E874F87588B1B8E22242394312CAC0137 +:103B60009DA984E0989F400D511D11245EAB4DAB83 +:103B7000A1E0B0E0AC0FBD1F3FA924E0329FA00D33 +:103B8000B11D1124B8AFAFABFAA7E9A7AE014459F4 +:103B90005F4F5A8B498BE9A1FAA12E163F0608F018 +:103BA00012C15B8D59310CF040C02DA13EA14FA137 +:103BB00058A56B897C898D899E890F940BC36B01F5 +:103BC0007C012F89388D498D5A8DC301B2010F9424 +:103BD0000BC3A70196010F941ABF7B018C012DA185 +:103BE0003EA14FA158A5C301B2010F940BC34B01D5 +:103BF0005C012F89388D498D5A8D6B897C898D891F +:103C00009E890F940BC39B01AC01C501B4010F94B5 +:103C100019BF2B013C018B8D8F5F8B8FA701B801E2 +:103C20004B8B5C8B6D8B7E8B66C0B10180E090E02E +:103C30000F94AAC02F89388D498D5A8D0F940BC3CC +:103C40006B017C010F940EC06B8B7C8B8D8B9E8BDC +:103C5000C701B6010F94BAC34B015C01ADADBEAD57 +:103C6000CD90DD90ED90FC90F7FAF094F7F8F09499 +:103C70002596AEADBFAD25972D913D914D915C91AF +:103C80002B8F3C8F4D8F5E8F2B893C894D895E89B0 +:103C9000C701B6010F940BC32B013C01A501940190 +:103CA0006B8D7C8D8D8D9E8D0F940BC39B01AC0114 +:103CB000C301B2010F941ABF2B013C01A50194016D +:103CC000C701B6010F940BC36B017C012B893C89A2 +:103CD0004D895E896B8D7C8D8D8D9E8D0F940BC370 +:103CE0009B01AC01C701B6010F9419BF6B8B7C8B94 +:103CF0008D8B9E8B1B8EA301920123966CAD7DADA7 +:103D00008EAD9FAD23970F941ABFEDA9FEA96083D6 +:103D10007183828393832B893C894D895E8929969F +:103D20006CAD7DAD8EAD9FAD29970F941ABFAFA935 +:103D3000B8AD6D937D938D939C9313972DA53EA560 +:103D40004FA558A9E9A5FAA5608171818281938167 +:103D50000F941ABFA9A5BAA56D937D938D939C93DB +:103D6000139729A93AA94BA95CA96D857E858F85F2 +:103D700098890F941ABF6D877E878F87988BCE01A5 +:103D800001960E94E369E984FA840B851C852D81E4 +:103D90003E814F81588569817A818B819C81BA8966 +:103DA000BF93E989EF932E968CAC9DACAEACBFACC3 +:103DB0002E97DE011D966D0138D7BFEF2B1A3B0AF7 +:103DC0000F900F90E8CECF8CD8A0FCE0CF0ED11C86 +:103DD000AF8DB8A11896ED90FD900D911C911B9799 +:103DE00014962D913D914D915C9117976D917D9118 +:103DF0008D919C91FE01E459FF4FFF93EF932E9616 +:103E00008CAC9DACAEACBFAC2E970FD70F900F9083 +:103E1000CF5ADF4F0FB6F894DEBF0FBECDBFDF9194 +:103E2000CF911F910F91FF90EF90DF90CF90BF90B7 +:103E3000AF909F908F907F906F905F904F903F904A +:103E40002F9008952F923F924F925F926F927F92A0 +:103E50008F929F92AF92BF92CF92DF92EF92FF929A +:103E60000F931F93CF93DF93CDB7DEB760970FB655 +:103E7000F894DEBF0FBECDBF1C012A013B014801F3 +:103E8000590120E030E04CE052E4C301B2010F944C +:103E900019BF25E535E547E052E40F9411C06B01E9 +:103EA0007C010F94E7C00F9479C08B0177FF12C09B +:103EB00020E030E040E85FE3C701B6010F9439C26B +:103EC00018160CF05DC0C12CD12C70E8E72E7FE3F2 +:103ED000F72E56C066307105DCF02AEA3AE24CE46F +:103EE00053E4C301B2010F9419BF25E535E547E05E +:103EF00052E40F9411C06B017C0120E030E0A90175 +:103F00000F940AC087FF3FC0C12CD12C76013BC063 +:103F1000882777FD8095982F0F94ACC025E535E56F +:103F200047E052E40F940BC320E030E04CE052E451 +:103F30000F941ABF9B01AC01C301B2010F9419BFCA +:103F400025E535E547E052E40F9411C06B017C0193 +:103F500020E030E0A9010F940AC087FD17C020E0DF +:103F600030E040E85FE3C701B6010F9439C218168C +:103F700084F4C12CD12C60E8E62E6FE3F62E09C044 +:103F800000E010E006C005E010E003C0C12CD12C19 +:103F9000760120E030E040EC50E4C501B4010F941C +:103FA00019BF2BEA3AEA42E052E40F9411C02B0108 +:103FB0003C010F94E7C00F9479C0788B6F8777FF2F +:103FC00012C020E030E040E85FE3C301B2010F948B +:103FD00039C218160CF05FC0412C512C50E8652EE8 +:103FE0005FE3752E58C0AF85B8891697E4F026E5D3 +:103FF00035E549E253E4C501B4010F9419BF2BEA3A +:104000003AEA42E052E40F9411C02B013C0120E057 +:1040100030E0A9010F940AC087FD40C0E5E0F0E060 +:10402000F88BEF8746C0882777FD8095982F0F94EF +:10403000ACC02BEA3AEA42E052E40F940BC320E012 +:1040400030E040EC50E40F941ABF9B01AC01C50175 +:10405000B4010F9419BF2BEA3AEA42E052E40F94FC +:1040600011C02B013C0120E030E0A9010F940AC0EF +:1040700087FD1CC020E030E040E85FE3C301B201EF +:104080000F9439C21816ACF4412C512C40E8642E20 +:104090004FE3742E0EC0188A1F860BC0412C512C82 +:1040A000320125E030E0388B2F8703C0412C512CA2 +:1040B0003201A701960160E070E080E89FE30F9471 +:1040C00019BF69837A838B839C83C80101969E8381 +:1040D0008D83AF85B8891196BA87A987A30192010C +:1040E00060E070E080E89FE30F9419BF6B877C87E6 +:1040F0008D879E8747E02F853889429FF001439F37 +:10410000F00D1124F887EF83E00FF11FEE0FFF1F72 +:10411000EE0FFF1FE20DF31D218132814381548197 +:1041200069817A818B819C810F940BC34B015C0167 +:10413000EF81F8858D819E81E80FF91FEE0FFF1F3B +:10414000EE0FFF1FE20DF31D218132814381548167 +:10415000C701B6010F940BC39B01AC01C501B401AB +:104160000F941ABF9B01AC016B857C858D859E8564 +:104170000F940BC34B015C0127E0E985FA852E9F64 +:10418000D0012F9FB00D1124B887AF83FD01E00F40 +:10419000F11FEE0FFF1FEE0FFF1FE20DF31D218138 +:1041A00032814381548169817A818B819C810F9412 +:1041B0000BC369837A838B839C83AF81B8858D81A0 +:1041C0009E81A80FB91FAA0FBB1FAA0FBB1FA20D6C +:1041D000B31D11962D913D914D915C911497C7019E +:1041E000B6010F940BC39B01AC0169817A818B816D +:1041F0009C810F941ABF9B01AC01C301B2010F94C3 +:104200000BC39B01AC01C501B4010F941ABF6096AA +:104210000FB6F894DEBF0FBECDBFDF91CF911F91D7 +:104220000F91FF90EF90DF90CF90BF90AF909F9055 +:104230008F907F906F905F904F903F902F90089558 +:104240002F923F924F925F926F927F928F929F92A6 +:10425000AF92BF92CF92DF92EF92FF920F931F9394 +:10426000CF93DF93CDB7DEB768970FB6F894DEBF74 +:104270000FBECDBF1C01CB01BA0128013901F101EC +:10428000E45BFF4FC080D180E280F380A7019601FC +:104290000F940BC30F94F7BF0F947EC04B015C01CA +:1042A000A7019601C301B2010F940BC30F94F7BF8E +:1042B0000F947EC008E780169104A104B10428F48D +:1042C000B8E78B2E912CA12CB12CD101D796CD9093 +:1042D000DD90ED90FC90DA9724013501C814D904E3 +:1042E000EA04FB0410F426013701683771058105E3 +:1042F000910520F468E770E080E090E069877A87B4 +:104300008B879C87C616D706E806F90620F4C9866F +:10431000DA86EB86FC8691012D5B3F4FD9018D91AA +:104320009D910D90BC91A02D89839A83AB83BC8312 +:10433000892B8A2B8B2B41F401E010E020E030E048 +:1043400009831A832B833C83A3019201C301B20129 +:104350000F94B9C46D877E878F87988BA7019601CC +:10436000C701B6010F94B9C44B015C0129853A8598 +:104370004B855C85CA01B9010F94B9C4698B7A8BEE +:104380008B8B9C8BE980FA800B811C81EE0CFF1CCF +:10439000001F111FED82FE820F831887C501B40133 +:1043A00061507109810991090D851E852F85388914 +:1043B000601B710B820B930BED80FE800F811885C3 +:1043C0006E0D7F1D801F911FA80197010F94FCC4E3 +:1043D00069017A01C501B40109891A892B893C89CF +:1043E000601B710B820B930B2D813E814F81588591 +:1043F0000F94FCC42C0D3D1D4E1D5F1DD101509628 +:104400008D909D90AD90BC905397281539054A0525 +:104410005B0548F4D501C401821B930BA40BB50BBB +:10442000AC01BD0194C029813A814B815C81E2E0FD +:10443000220F331F441F551FEA95D1F7D501C40140 +:1044400081709927AA27BB278D8B9E8BAF8BB88F46 +:104450008501740116950795F794E794E982FA822D +:104460000B831C83E988FA880B891C898D859E85BE +:10447000AF85B889E816F9060A071B0790F1BC0159 +:10448000CD0160957095809590956E0D7F1D801F74 +:10449000911F620F731F841F951FED88FE880F897F +:1044A000188DEF28E02AE12A41F0ED80FE800F818F +:1044B00018856E0D7F1D801F911F0F94FCC469012C +:1044C0007A0109811A812B813C81C00ED11EE21E26 +:1044D000F31E8C149D04AE04BF04B0F57501640195 +:1044E00033C06D857E858F859889E988FA880B8928 +:1044F0001C896E197F09800B910BED88FE880F894E +:10450000188DEF28E02AE12A41F0ED80FE800F812E +:1045100018856E0D7F1D801F911F0F94FCC4E980CC +:10452000FA800B811C812E0D3F1D401F511F8216EA +:104530009306A406B50610F4A50194017501640163 +:10454000C21AD30AE40AF50A40E050E0BA018FB774 +:10455000F894F101E55BFF4F9081911120C0D101EA +:104560005A96CD92DD92ED92FC925D97C40ED51EC7 +:10457000E61EF71EF101C68ED78EE0A2F1A2DB96F1 +:104580004D925D926D927C92DE97DF96E984FA847B +:104590000B851C85ED92FD920D931C9313978FBF95 +:1045A00068960FB6F894DEBF0FBECDBFDF91CF91F6 +:1045B0001F910F91FF90EF90DF90CF90BF90AF9041 +:1045C0009F908F907F906F905F904F903F902F9033 +:1045D00008952F923F924F925F926F927F928F92A7 +:1045E0009F92AF92BF92CF92DF92EF92FF920F9382 +:1045F0001F93CF93DF935C017090711080917210C4 +:1046000087198F70833008F486C0809172108111F1 +:1046100001C080E1815025E5829F800111240D5861 +:104620001F4E811101C080E1FF24FA94F80E85E548 +:10463000F89EE0011124CD58DF4EF71409F46DC047 +:104640009AA4CBA4DCA4EDA4292D3C2D4D2D5E2DE8 +:104650006EA17FA188A599A50F940AC0882309F4AB +:104660004CC0F80126A037A040A451A4A20191019A +:10467000692D7C2D8D2D9E2D0F940AC018169CF54A +:10468000A2019101C201B1010F940BC31B012C01C6 +:104690008AA99BA9ACA9BDA9BC01CD0190589B01D9 +:1046A000AC010F941ABF2EA53FA548A959A90F9494 +:1046B0000BC39B01AC01C201B1010F9419BF0F9450 +:1046C000C4C3662E872E8C01262F372FAC01692D8F +:1046D0007C2D8D2D9E2D0F940AC087FD04C0962C35 +:1046E000C82CD02EE12E892D9C2DAD2DBE2D8EA354 +:1046F0009FA3A8A7B9A7F1E0FEAB8F2DF11001C0D1 +:1047000080E1FF24FA94F80E25E5F29EC001112401 +:104710008E01EC0190CF823061F485E5789EE00156 +:104720001124CD58DF4E81E0870D803141F480E0C7 +:1047300006C0C0917210C11186C0C0E184C0782E3D +:1047400095E5899F40011124F401ED58FF4E4F017A +:1047500044244394CEA0DFA0E8A4F9A4F40156A019 +:1047600067A000A511A5252D362DA801C701B6010A +:104770000F940AC087FF40C0A7019601C701B60188 +:104780000F940BC36B017C018AA99BA9ACA9BDA99D +:10479000BC01CD0190589B01AC010F941ABF2EA50E +:1047A0003FA548A959A90F940BC39B01AC01C701B0 +:1047B000B6010F9419BF0F94C4C36B017C019B0118 +:1047C000AC01652D762DC8010F940AC087FF03C088 +:1047D000C52CD62C78019601A701652D762DC80130 +:1047E0000F940AC0882341F0C601D701F40186A3C3 +:1047F00097A3A0A7B1A746AAF40186A9811103C077 +:104800008EA9882361F0F40106A117A120A531A586 +:104810004EA15FA168A579A5CE0112DD1EAA81E097 +:10482000870D803109F480E0782EF5E58F9FC00177 +:1048300011248D589F4E20917210721609F479CF71 +:10484000E4014C0187CFC15025E5C202E0011124EB +:10485000CD58DF4EF50100811181228133814EA1B7 +:104860005FA168A579A5CE01EBDC1EAADF91CF91EF +:104870001F910F91FF90EF90DF90CF90BF90AF907E +:104880009F908F907F906F905F904F903F902F9070 +:104890000895109272101092711080E1EEEDF5E122 +:1048A000DF01982F1D929A95E9F7E9E5F0E1DF0124 +:1048B0001D928A95E9F71092CE151092CF1510929D +:1048C000D0151092D1151092D2151092D3151092C6 +:1048D000D4151092D5151092D6151092D7151092A6 +:1048E000D8151092D9151092DA151092DB15109286 +:1048F000DC151092DD151092CA151092CB1510928E +:10490000CC151092CD15089560910A0A90917110FE +:1049100080917210981781F08091711095E5899FB0 +:10492000F0011124E654FF4E6081909172108917B6 +:1049300019F08F5F8F70F9CF70E086E00D94F7B7B4 +:104940004F925F926F927F928F929F92AF92BF929F +:10495000CF92DF92EF92FF920F931F930F94403FFD +:1049600080E00F94163F6093DE157093DF158093FF +:10497000E0159093E11581E00F94163F6093E215E6 +:104980007093E3158093E4159093E51582E00F94FE +:10499000163F6093E6157093E7158093E8159093A2 +:1049A000E91583E00F94163F6093EA157093EB15B9 +:1049B0008093EC159093ED1580E00F94243F609365 +:1049C000200A7093210A8093220A9093230A81E09F +:1049D0000F94243F6093240A7093250A8093260A3B +:1049E0009093270A82E00F94243F6093280A7093E3 +:1049F000290A80932A0A90932B0A83E00F94243F7C +:104A000060932C0A70932D0A80932E0A90932F0A9C +:104A10008091930F882339F10091240A1091250A7F +:104A20002091260A3091270A4091200A5091210AAC +:104A30006091220A7091230A83E99FE003DA9B01C7 +:104A4000AC016091280A7091290A80912A0A9091FC +:104A50002B0A0F9419BF6093280A7093290A809338 +:104A60002A0A90932B0A1091920F112309F49AC0ED +:104A700010FF34C020916A0F30916B0F40916C0F82 +:104A800050916D0F6091200A7091210A8091220A45 +:104A90009091230A0F9419BF6093200A7093210A02 +:104AA0008093220A9093230A20916E0F30916F0F0A +:104AB0004091700F5091710F6091240A7091250AF6 +:104AC0008091260A9091270A0F9419BF6093240AB7 +:104AD0007093250A8093260A9093270A11FF62C0DB +:104AE0008090200A9090210AA090220AB090230A78 +:104AF000C090240AD090250AE090260AF090270A58 +:104B000020917A0F30917B0F40917C0F50917D0F57 +:104B1000C501B4010F940BC32B013C0120917E0F02 +:104B200030917F0F4091800F5091810FC701B601E6 +:104B30000F940BC39B01AC01C301B2010F941ABFC8 +:104B40002B013C012091720F3091730F4091740F33 +:104B50005091750FC501B4010F940BC34B015C015B +:104B60002091760F3091770F4091780F5091790F07 +:104B7000C701B6010F940BC39B01AC01C501B40181 +:104B80000F941ABF6093200A7093210A8093220A1F +:104B90009093230A4092240A5092250A6092260A92 +:104BA0007092270A80E1E0E2FAE0ABEEB9E0019012 +:104BB0000D928A95E1F71092CA151092CB151092BA +:104BC000CC151092CD151092CE151092CF151092D3 +:104BD000D0151092D1151092D2151092D3151092B3 +:104BE000D4151092D5151092D6151092D715109293 +:104BF000D8151092D9151092DA151092DB15109273 +:104C0000DC151092DD1581E0809358101F910F91F3 +:104C1000FF90EF90DF90CF90BF90AF909F908F90DC +:104C20007F906F905F904F9008952F923F924F9298 +:104C30005F926F927F928F929F92AF92BF92CF922C +:104C4000DF92EF92FF920F931F93CF93DF93CDB735 +:104C5000DEB7C158D1090FB6F894DEBF0FBECDBF85 +:104C60002A966FAF2A972B967FAF2B972C968FAFF4 +:104C70002C972D969FAF2D9729962CAF3DAF4EAF19 +:104C80005FAF2997E496ECAEFDAE0EAF1FAFE49791 +:104C9000E696DFAECEAEE6978BAA62969FAE62979F +:104CA000AFAE2296BFAE2297209172102F5F6E9604 +:104CB0002FAF6E97203119F46E961FAE6E9700914C +:104CC000711010E06E963FAD6E97832F992787FD88 +:104CD00090950817190729F01091920F111117C01C +:104CE000C2C0109258100F94224D80E00E94487666 +:104CF00080E00F94CB638091711090E08017910752 +:104D000091F38091581081110D94A632E5CF11FFD7 +:104D100070C02091820F3091830F4091840F509189 +:104D2000850F2A966FAD2A972B967FAD2B972C96E1 +:104D30008FAD2C972D969FAD2D970F940BC36B01C4 +:104D40007C012091860F3091870F4091880F509100 +:104D5000890F29966CAD7DAD8EAD9FAD29970F94CF +:104D60000BC39B01AC01C701B6010F941ABFD62E2D +:104D7000E72EF82E092F20918E0F30918F0F409142 +:104D8000900F5091910F29966CAD7DAD8EAD9FAD7A +:104D900029970F940BC34B015C0120918A0F30912E +:104DA0008B0F40918C0F50918D0F2A966FAD2A97E3 +:104DB0002B967FAD2B972C968FAD2C972D969FAD74 +:104DC0002D970F940BC3A50194010F941ABF299638 +:104DD0006CAF7DAF8EAF9FAF29972A96DFAE2A9733 +:104DE0002B96EFAE2B972C96FFAE2C972D960FAFF0 +:104DF0002D9710FF38C020916A0F30916B0F4091B2 +:104E00006C0F50916D0F2A966FAD2A972B967FAD40 +:104E10002B972C968FAD2C972D969FAD2D970F9499 +:104E20001ABF2A966FAF2A972B967FAF2B972C9697 +:104E30008FAF2C972D969FAF2D9720916E0F3091AD +:104E40006F0F4091700F5091710F29966CAD7DAD31 +:104E50008EAD9FAD29970F941ABF29966CAF7DAF89 +:104E60008EAF9FAF299720912E1630912F1640912B +:104E70003016509131162A966FAD2A972B967FAD3A +:104E80002B972C968FAD2C972D969FAD2D970F9429 +:104E90000BC30F94DBC2AC966CAF7DAF8EAF9FAFF0 +:104EA000AC972091321630913316409134165091C0 +:104EB000351629966CAD7DAD8EAD9FAD29970F94BB +:104EC0000BC30F94DBC2E0966CAF7DAF8EAF9FAF8C +:104ED000E0978091930F882349F129960CAD1DAD81 +:104EE0002EAD3FAD29972A964FAD2A972B965FADF1 +:104EF0002B972C966FAD2C972D967FAD2D9783E930 +:104F00009FE00F94221F9B01AC01E4966CAD7DAD38 +:104F10008EAD9FADE4970F941ABF20913616309155 +:104F2000371640913816509139160EC0209136161A +:104F3000309137164091381650913916E4966CAD81 +:104F40007DAD8EAD9FADE4970F940BC30F94DBC284 +:104F5000A2966CAF7DAF8EAF9FAFA297E696AEAD37 +:104F6000BFADE6974D905D906D907C9020913A1684 +:104F700030913B1640913C1650913D16C301B20151 +:104F80000F940BC30F94DBC261966CAF7DAF8EAFF5 +:104F90009FAF61972091591030915A1040915B104A +:104FA00050915C102A966FAD2A972B967FAD2B9768 +:104FB0002C968FAD2C972D969FAD2D970F9419BFE2 +:104FC0004B015C0120915D1030915E1040915F10AB +:104FD0005091601029966CAD7DAD8EAD9FAD299737 +:104FE0000F9419BF6B017C01A5019401C501B401A7 +:104FF0000F940BC34B015C01A7019601C701B601D9 +:105000000F940BC39B01AC01C501B4010F941ABFEF +:105010000F94C4C3C258DF4F688379838A839B830C +:10502000CE57D040209165103091661040916710A6 +:1050300050916810C301B2010F9419BFA8966CAFCC +:105040007DAF8EAF9FAFA8978091EA159091EB1539 +:10505000A091EC15B091ED1561962CAD3DAD4EAD26 +:105060005FAD6197281739074A075B0709F4D8C075 +:10507000E0910C0A34E0E39FF0011124E65CF84E65 +:105080002091590230915A0240915B0250915C028A +:1050900060817181828193810F940AC087FF40C033 +:1050A00061968CAD9DADAEADBFAD61978093EA15B5 +:1050B0009093EB15A093EC15B093ED15409265100D +:1050C000509266106092671070926810ECE3FDE0F9 +:1050D0008491882341F09091C00095FFFCCF80938C +:1050E000C6003196F5CFE5E0F1E885919491FC0199 +:1050F0002491222341F03091C00035FFFCCF209352 +:10510000C6000196F4CF8091C00085FFFCCF8AE0F5 +:105110008093C600A8961CAE1DAE1EAE1FAEA8970B +:105120008091EA159091EB15A091EC15B091ED15D9 +:1051300061962CAD3DAD4EAD5FAD6197281B390B2F +:105140004A0B5B0BCA01B90157FF07C090958095C8 +:10515000709561957F4F8F4F9F4F0F94ACC06B013F +:105160007C012AE939E147EE53E460913A167091E7 +:105170003B1680913C1690913D160F940BC39B01FA +:10518000AC01C701B6010F9439C218160CF048C023 +:1051900061968CAD9DADAEADBFAD61978093EA15C4 +:1051A0009093EB15A093EC15B093ED15E696EEAD4C +:1051B000FFADE69780819181A281B38180936510D4 +:1051C00090936610A0936710B0936810ECE3FDE035 +:1051D0008491882341F09091C00095FFFCCF80938B +:1051E000C6003196F5CFEFEFF0E885919491FC0180 +:1051F0002491222341F03091C00035FFFCCF209351 +:10520000C6000196F4CF8091C00085FFFCCF8AE0F4 +:105210008093C600A8961CAE1DAE1EAE1FAEA8970A +:1052200080917210F5E58F9F1001112491012D5886 +:105230003F4E1901F901E55BFF4F10828091DE15A9 +:105240009091DF15A091E015B091E1158BA79CA777 +:10525000ADA7BEA7AC968CAC9DACAEACBFACAC97CA +:10526000881A990AAA0ABB0AB7FE08C0B094A0948B +:1052700090948094811C911CA11CB11CD1018D9231 +:105280009D92AD92BC9213972091E2153091E31557 +:105290004091E4155091E5152FA738AB49AB5AABB7 +:1052A000E0968CAD9DADAEADBFADE097821B930B8C +:1052B000A40BB50B8FA398A7A9A7BAA7B7FF0BC0DC +:1052C000B095A095909581959F4FAF4FBF4F8FA3FD +:1052D00098A7A9A7BAA72FA138A549A55AA5D10172 +:1052E00014962D933D934D935C9317972091E6155B +:1052F0003091E7154091E8155091E9152FAB38AF83 +:1053000049AF5AAFA2964CAC5DAC6EAC7FACA297E5 +:10531000421A530A640A750A77FE08C070946094B2 +:1053200050944094411C511C611C711CD101189671 +:105330004D925D926D927C921B972091EA1530916F +:10534000EB154091EC155091ED152BAF3CAF4DAFE7 +:105350005EAF6196CCACDDACEEACFFAC6197C21A2F +:10536000D30AE40AF50AF7FE08C0F094E094D0945A +:10537000C094C11CD11CE11CF11CD1011C96CD9222 +:10538000DD92ED92FC921F97E0910C0AB4E0EB9F46 +:10539000F0011124E75CFD4F20813181428153816E +:1053A0006D962CAF3DAF4EAF5FAF6D9720E030E014 +:1053B00040E85FE36D966CAD7DAD8EAD9FAD6D97B2 +:1053C0000F940AC08823A9F0C701B6010F94ACC09E +:1053D0006D962CAD3DAD4EAD5FAD6D970F940BC38B +:1053E0000F9479C0D1011C966D937D938D939C93FE +:1053F0001F97A0914502B0914602A436B105A1F0D5 +:10540000F10124853585468557850F9450C524E6DE +:1054100030E040E050E00F941EC5D1011C962D9362 +:105420003D934D935C931F97F101448555856685A7 +:1054300077858FA198A5A9A5BAA584179507A60772 +:10544000B70714F4DB01CA0184159505A605B70555 +:1054500014F4D301C201B501A40188169906AA0665 +:10546000BB0614F4AC01BD01D10150964D935D9380 +:105470006D937C935397463051056105710510F487 +:105480000D94A632F101E95BFF4F80910A0A9091D9 +:105490000B0AAA2797FDA095BA2F80839183A28338 +:1054A000B383AC962CAD3DAD4EAD5FADAC978BA547 +:1054B0009CA5ADA5BEA5281739074A075B0724F0B0 +:1054C000D10158961C9203C081E0F101808FE096D3 +:1054D0002CAD3DAD4EAD5FADE0978FA598A9A9A9C4 +:1054E000BAA9281739074A075B073CF4D101589637 +:1054F0008C915897826058968C93A2962CAD3DADB6 +:105500004EAD5FADA2978FA998ADA9ADBAAD2817E2 +:1055100039074A075B073CF4D10158968C9158979C +:10552000846058968C9361962CAD3DAD4EAD5FADC9 +:1055300061978BAD9CADADADBEAD281739074A075D +:105540005B073CF4D10158968C9158978860589627 +:105550008C93C956DF4FE881F981C759D0408081CB +:10556000D10159968C9389288A288B2809F017989D +:10557000F10184819581A681B781892B8A2B8B2BA0 +:1055800009F01698F10180859185A285B385892B54 +:105590008A2B8B2B09F01598F10184859585A685BA +:1055A000B785892B8A2B8B2B91F18091C31588238A +:1055B00019F081508093C3158091C415882319F088 +:1055C00081508093C4158091C515882319F08150AE +:1055D0008093C515C956DF4FA881B981C759D040FE +:1055E0008C91813061F030F0823089F480E28093D8 +:1055F000C51508C0149880E28093C31508C080E2E6 +:105600008093C4158091C315811101C0149AD101F2 +:105610001C962D913D914D915C911F976D962CAFED +:105620003DAF4EAF5FAF6D97232B242B252B29F574 +:10563000B091FE15BFA3E091FF15EBA710910016E6 +:10564000009101162B2F3E2F412F502F6BA96296F0 +:105650007FAD62978FAD22969FAD22970F940AC0BF +:1056600087FD18C0FBA9FFA362962FAD62972BA7F9 +:105670001FAD22960FAD22970DC030911A163FA391 +:1056800040911B164BA710911C1600911D16232F3D +:10569000342FDACF8091DE159091DF15A091E015BF +:1056A000B091E115AC962CAD3DAD4EAD5FADAC9774 +:1056B000281B390B4A0B5B0BCA01B9010F94ACC014 +:1056C00020912E1630912F164091301650913116A0 +:1056D0000F9411C06BAB7CAB8DAB9EAB698B7A8B9F +:1056E0008B8B9C8BE0966CAD7DAD8EAD9FADE097C6 +:1056F0002FA538A949A95AA9621B730B840B950BD6 +:105700000F94ACC02091321630913316409134166C +:10571000509135160F9411C04B015C016D8B7E8B3F +:105720008F8B988FA2966CAD7DAD8EAD9FADA297FD +:105730002FA938AD49AD5AAD621B730B840B950B85 +:105740000F94ACC020913616309137164091381620 +:10575000509139160F9411C06B017C01698F7A8FBB +:105760008B8F9C8F61966CAD7DAD8EAD9FAD61973B +:105770002BAD3CAD4DAD5EAD621B730B840B950B39 +:105780000F94ACC020913A1630913B1640913C16D4 +:1057900050913D160F9411C0E0910C0A34E0E39F44 +:1057A000F0011124E75CFD4F20813181428153815A +:1057B0000F940BC32B013C0160914502709146028E +:1057C000882777FD8095982F0F94ACC09B01AC0182 +:1057D000C301B2010F940BC320E030E048EC52E467 +:1057E0000F9411C06D8F7E8F8F8F98A3D1012D9153 +:1057F0003D914D915C9113972FAB38AF49AF5AAFA4 +:10580000263031054105510504F514964D905D9003 +:105810006D907C901797B6E04B16510461047104AB +:10582000A4F4F1014084518462847384F6E04F163D +:105830005104610471044CF4DC01CB01BF77F10128 +:1058400086A797A7A0ABB1AB27C06BA97CA98DA9F0 +:105850009EA90F9402C42B013C01C501B4010F9411 +:1058600002C49B01AC01C301B2010F941ABF4B01EA +:105870005C01C701B6010F9402C49B01AC01C501D4 +:10588000B4010F941ABF0F94C4C3D1019E966D93B7 +:105890007D938D939C93D197D1019E962D913D91AF +:1058A0004D915C91D19765962CAF3DAF4EAF5FAFF8 +:1058B000659760E070E080E89FE30F9411C09B0162 +:1058C000AC016FA17BA5812F902F0F940BC32B01EF +:1058D0003C011091721080917110181B1F70E12F04 +:1058E000F0E02196FFAFEEAF2197CF010297069728 +:1058F00008F03FC0A301920160E074E284E799E4FC +:105900000F9411C00F94DBC26B017C0180914E1685 +:1059100090914F16A0915016B0915116C816D90605 +:10592000EA06FB0630F5BC01CD016C197D098E0934 +:105930009F09660F771F881F991F212F30E040E0D5 +:1059400050E00F94FCC4CA01B9010F94AAC00F948F +:10595000DBC26C0D7D1D8E1D9F1D0F94AAC09B0187 +:10596000AC0160E074E284E799E40F9411C02B016C +:105970003C01A301920165966CAD7DAD8EAD9FADEE +:1059800065970F940BC36BAB7CAB8DAB9EABD1011A +:1059900092966D937D938D939C93959750966D9170 +:1059A0007D918D919C9153970F94AAC06FA378A776 +:1059B00089A79AA7A30192010F940BC30F94F7BF75 +:1059C0000F947EC06B017C01F10167AB70AF81AFBA +:1059D00092AF9E012F5E3F4F3CAF2BAF4EE356E19F +:1059E000A4965FAF4EAFA497CE0181969EA38DA3E0 +:1059F000DE0111966796BFAFAEAF67971BA61FA6D5 +:105A000000E81FE3EBADFCAD619171918191919143 +:105A1000FCAFEBAFA30192010F940BC36796AEAD41 +:105A2000BFAD67976D937D938D939D936796BFAF41 +:105A3000AEAF67979B01AC015F7725962CAF3DAF6A +:105A40004EAF5FAF2597A496AEADBFADA4978D9036 +:105A50009D90AD90BD90A496BFAFAEAFA497A501A9 +:105A6000940125966CAD7DAD8EAD9FAD25970F94BD +:105A700039C21816ECF425962CAD3DAD4EAD5FAD98 +:105A80002597C501B4010F9411C0B62EA72E982EEC +:105A9000892E262F372F482F592F6BA57FA5C80198 +:105AA0000F940AC087FD04C0BBA6AFA6092D182D10 +:105AB000EBADFCAD2DA13EA1E217F30709F0A2CF9B +:105AC00020E030E040E85FE36BA57FA5C8010F94BC +:105AD0000AC087FF3BC04E0131E1830E911CAE012D +:105AE0004F5F5F4F5A012BA53FA5A801D5016D91CE +:105AF0007D918D919C910F940BC3F50161937193EE +:105B0000819391935F01E815F90569F72BA53FA5EE +:105B1000A8016BA97CA98DA99EA90F940BC3D101E3 +:105B200092966D937D938D939C939597C701B60143 +:105B30000F94AAC02BA53FA5A8010F940BC30F94E7 +:105B40007EC0F10167AB70AF81AF92AF65962CADAF +:105B50003DAD4EAD5FAD65976FA178A589A59AA5BE +:105B60000F9411C06B017C012FA938AD49AD5AAD1E +:105B7000232B242B252B59F5F10184819581A681B6 +:105B8000B781892B8A2B8B2B11F580859185A28576 +:105B9000B385892B8A2B8B2BD1F42091121630914F +:105BA00013164091141650911516C701B6010F94A3 +:105BB0000BC30F94F7BF81010D5B1F4F0F947EC085 +:105BC000D8016D937D938D939C931397F6C020918C +:105BD0001616309117164091181650911916C701D4 +:105BE000B6010F940BC30F94F7BF0F947EC08101D1 +:105BF0000D5B1F4FF8016083718382839383409014 +:105C0000EE155090EF156090F0157090F1150F940F +:105C1000AAC04B015C016FA978AD89AD9AAD0F9414 +:105C2000ACC09B01AC01C501B4010F940BC32FA103 +:105C300038A549A55AA50F9411C04B015C01C301B9 +:105C4000B2010F94AAC09B01AC01C501B4010F942D +:105C500039C2181634F4D8014D925D926D927C923F +:105C600013974090F2155090F3156090F4157090D2 +:105C7000F515F80160817181828193810F94AAC02A +:105C80004B015C01D10114966D917D918D919C9198 +:105C900017970F94ACC09B01AC01C501B4010F94E0 +:105CA0000BC32FA138A549A55AA50F9411C04B01CC +:105CB0005C01C301B2010F94AAC09B01AC01C501F4 +:105CC000B4010F9439C218162CF4F80140825182A5 +:105CD000628273824090FA155090FB156090FC151B +:105CE0007090FD1581010D5B1F4FD8016D917D9165 +:105CF0008D919C910F94AAC04B015C016D966CAD87 +:105D00007DAD8EAD9FAD6D970F94ACC09B01AC0186 +:105D1000C501B4010F940BC32FA138A549A55AA5FD +:105D20000F9411C04B015C01C301B2010F94AAC0D2 +:105D30009B01AC01C501B4010F9439C218162CF4B3 +:105D4000F80140825182628273824090F615509031 +:105D5000F7156090F8157090F915D8016D917D9147 +:105D60008D919C910F94AAC04B015C01F10160855B +:105D70007185828593850F94ACC09B01AC01C501F0 +:105D8000B4010F940BC32FA138A549A55AA50F94B0 +:105D900011C04B015C01C301B2010F94AAC09B0169 +:105DA000AC01C501B4010F9439C2181634F4D801FE +:105DB0004D925D926D927C921397F101ED5BFF4FD6 +:105DC00060817181828193810F94AAC04B015C0133 +:105DD000A70196010F9411C069966CAF7DAF8EAF8D +:105DE0009FAF6997F10162AB73AB84AB95AB2DEBC1 +:105DF00037E346E051E4C501B4010F940BC30F949F +:105E000079C0D10154966D937D938D939C93579750 +:105E10009296BC91BFA7F101F3A1FFABD10194967B +:105E2000BC91BBAFF101F5A1FBAB9E012F5E3F4FD3 +:105E30003EA32DA342E056E15CA74BA78E010F5F66 +:105E40001F4F4FA45FA86B2E7F2E1FA2D8018D90ED +:105E50009D90AD90BD908D01E894B7F8EBA5FCA5A1 +:105E6000C190D190E190F190FCA7EBA7A70196011A +:105E7000C501B4010F9439C2181684F5FFA1FF23A0 +:105E800049F19201A301C501B4010F940BC34B0169 +:105E90005C012FA53FA94BAD5BA9C701B6010F94CB +:105EA0000BC36B017C019B01AC01C501B4010F94D4 +:105EB00039C218169CF4A5019401C701B6010F94CC +:105EC00011C09B01AC01B201C3010F940BC32B01A4 +:105ED0003C0104C02601370121E02FA34DA15EA1A2 +:105EE0000417150709F0B2CFC201D30189A39AA301 +:105EF000ABA3BCA321968EAD9FAD219702970CF466 +:105F000057C19091CA159FA3A091CB15ABA7109133 +:105F1000CC150091CD1527E137EB41ED58E3692F02 +:105F20007A2F812F902F0F9439C218160CF040C190 +:105F3000B1E0A396BFAFA3972FA53FA94BAD5BA937 +:105F40006FA17BA5812F902F0F9439C21816A4F052 +:105F5000A3961FAEA3972FA53FA94BAD5BA96FA139 +:105F60007BA5812F902F0F9411C0EA966CAF7DAF67 +:105F70008EAF9FAFEA9716C02FA13BA5412F502FA0 +:105F80006FA57FA98BAD9BA90F9411C0EA966CAF4A +:105F90007DAF8EAF9FAFEA97EFA5EFA3FFA9FBA759 +:105FA0001BAD0BA92EEC35E123963FAF2EAF239707 +:105FB00042E056E1EC965FAF4EAFEC97CE01019612 +:105FC000EE969FAF8EAFEE97412C512C80E8682E55 +:105FD0008FE3782E1FAE2396AEADBFAD23978D9085 +:105FE0009D90AD90BD902396BFAFAEAF2397EE9638 +:105FF000EEADFFADEE97C190D190E190F190EE96AD +:10600000FFAFEEAFEE97A396FFADA397FF2361F02E +:10601000EA962CAD3DAD4EAD5FADEA97C501B4013A +:106020000F940BC34B015C012FAD222381F0A30120 +:106030009201C501B4010F940BC34B015C01A30194 +:106040009201C701B6010F940BC36B017C01A7013C +:106050009601C501B4010F9439C220E030E0A901D6 +:106060001816CCF4C701B6010F9439C218164CF0BB +:1060700020E030E0A901C501B4010F940AC087FFF8 +:1060800005C0A7019601C501B40118C0F7FAF09444 +:10609000F7F8F0941CC0C701B6010F940AC087FD41 +:1060A00009C020E030E0A901C501B4010F9439C254 +:1060B00018164CF4A5019401C701B6010F9419BF3D +:1060C0006B017C010EC0B7FAB094B7F8B094A70189 +:1060D0009601C501B4010F9439C2181614F4750164 +:1060E0006401EC96AEADBFADEC978D909D90AD90F8 +:1060F000BD90EC96BFAFAEAFEC97A5019401C70180 +:10610000B6010F9439C2181684F4A7019601C5018F +:10611000B4010F9411C09B01AC01C301B2010F94F3 +:106120000BC32B013C01B1E0BFAF2396EEADFFAD39 +:106130002397EE5DF54109F04ECF3FAD332361F07B +:10614000A30192016FA17BA5812F902F0F940BC308 +:106150006FA37BA7182F092F24EA30E74DE75FE3F1 +:106160006FA17BA5812F902F0F940BC36B017C0136 +:106170009B01AC016091C6157091C7158091C8153F +:106180009091C9150F9439C21816C4F4B9A0AAA0E9 +:106190009BA08CA0A70196016B2D7A2D892D982D9F +:1061A0000F9439C2181654F4BFA2ABA6840106C0DE +:1061B00049A14FA35AA15BA71BA10CA18FA19BA52D +:1061C000A12FB02FF10182A793A7A4A7B5A7C9A0BB +:1061D000DAA0EBA0FCA0A7019601C701B6010F94BD +:1061E0000BC34B015C0169966CAD7DAD8EAD9FAD6F +:1061F000699790589B01AC010F941ABF65962CAD1E +:106200003DAD4EAD5FAD65970F940BC39B01AC01E7 +:10621000C501B4010F9419BF0F94C4C3B62EA72EA5 +:10622000982E892E262F372F482F592F6FA17BA507 +:10623000812F902F0F940AC087FF05C04FA05BA449 +:10624000612E702E04C04B2C5A2C692C782CC20164 +:10625000D301F10186A397A3A0A7B1A781E086ABE4 +:1062600080E1FE013196AEECB5E101900D928A9588 +:10627000E1F78FA59FA9ABADBBA98093CA159093F9 +:10628000CB15A093CC15B093CD15C092C615D09266 +:10629000C715E092C815F092C9156D962CAD3DADAD +:1062A0004EAD5FAD6D97232B242B252B09F43EC0FB +:1062B000F10180819181A281B381892B8A2B8B2B63 +:1062C00041F484819581A681B781892B8A2B8B2B00 +:1062D00069F120E030E0A90160916D1070916E10BD +:1062E00080916F10909170100F940AC08823F1F084 +:1062F000F10180899189A289B3896D962CAD3DAD5C +:106300004EAD5FAD6D97281739074A075B0771F0EF +:1063100011E020E030E0A901A8966CAD7DAD8EAD16 +:106320009FADA8970F9439C218160CF010E0F10138 +:10633000E05BFF4F1083112309F469C080906D105A +:1063400090906E10A0906F10B09070103091691006 +:106350003FA340916A104BA700916B1010916C10F5 +:106360002DEB37E346E855E36FA17BA5C8010F94F9 +:106370000AC087FF11C0C258DF4F288139814A8186 +:106380005B81CE57D040A8966CAD7DAD8EAD9FADF4 +:10639000A8970F9411C003C06FA17BA5C8019B01F2 +:1063A000AC01C501B4010F940BC34B015C01D101D9 +:1063B000D7966D917D918D919C91DA970F94AAC09B +:1063C0009B01AC016FA57FA98BAD9BA90F9411C058 +:1063D0009B01AC01C501B4010F940BC320913A1687 +:1063E00030913B1640913C1650913D160F940BC3D3 +:1063F00020E030E040E853E40F940BC30F94DBC27D +:10640000F101EF5AFF4F608371838283938381018F +:10641000045B1F4FF10167A970AD81AD92AD0F9480 +:10642000AAC02FA53FA94BAD5BA90F9411C0D801FD +:106430006D937D938D939C93139797018601A20191 +:10644000B301C1010F9420216E96BFAD6E97B0933A +:106450007210AC962CAD3DAD4EAD5FADAC972093B8 +:10646000DE153093DF154093E0155093E115E0966B +:106470008CAD9DADAEADBFADE0978093E21590932E +:10648000E315A093E415B093E515A2962CAD3DADB0 +:106490004EAD5FADA2972093E6153093E71540937C +:1064A000E8155093E91561968CAD9DADAEADBFADCD +:1064B00061978093EA159093EB15A093EC15B09338 +:1064C000ED152A968FAD2A972B969FAD2B972C967C +:1064D000AFAD2C972D96BFAD2D978093591090930B +:1064E0005A10A0935B10B0935C1029962CAD3DAD73 +:1064F0004EAD5FAD299720935D1030935E104093B1 +:106500005F1050936010E4968CAD9DADAEADBFAD05 +:10651000E4978093611090936210A0936310B093FE +:106520006410E696EEADFFADE69780819181A28181 +:10653000B3818093651090936610A0936710B09319 +:106540006810CE0181960F94E922E4D2CF57DF4F35 +:106550000FB6F894DEBF0FBECDBFDF91CF911F9174 +:106560000F91FF90EF90DF90CF90BF90AF909F90F2 +:106570008F907F906F905F904F903F902F900895F5 +:106580002F923F924F925F926F927F928F929F9243 +:10659000AF92BF92CF92DF92EF92FF920F931F9331 +:1065A000CF93DF9300D01F92CDB7DEB72B013C0114 +:1065B00049015A01E982FA820B831C83160120915A +:1065C000820F3091830F4091840F5091850F0F946B +:1065D0000BC36B017C012091860F3091870F409196 +:1065E000880F5091890FC501B4010F940BC39B0113 +:1065F000AC01C701B6010F941ABF20916A0F309108 +:106600006B0F40916C0F50916D0F0F941ABF6B017F +:106610007C0120918A0F30918B0F40918C0F50910B +:106620008D0FC301B2010F940BC32B013C012091CC +:106630008E0F30918F0F4091900F5091910FC501A7 +:10664000B4010F940BC39B01AC01C301B2010F94C1 +:106650001ABF20916E0F30916F0F4091700F5091C3 +:10666000710F0F941ABF4B015C0120912E163091CF +:106670002F164091301650913116C701B6010F9474 +:106680000BC30F94DBC26093DE157093DF1580930C +:10669000E0159093E1152091321630913316409118 +:1066A000341650913516C501B4010F940BC30F94E5 +:1066B000DBC26093E2157093E3158093E415909329 +:1066C000E5158091930F8823C9F095018401B701E6 +:1066D000A60183E99FE00F94221F9B01AC01698111 +:1066E0007A818B819C810F941ABF2091361630914C +:1066F000371640913816509139160CC02091361635 +:1067000030913716409138165091391669817A8147 +:106710008B819C810F940BC30F94DBC26093E615B1 +:106720007093E7158093E8159093E91520913A1638 +:1067300030913B1640913C1650913D16D1016D9120 +:106740007D918D919C910F940BC30F94DBC260934C +:10675000EA157093EB158093EC159093ED15C092AC +:106760005910D0925A10E0925B10F0925C10809217 +:106770005D1090925E10A0925F10B09260108981BF +:106780009A81AB81BC818093611090936210A09339 +:106790006310B0936410F10180819181A281B38173 +:1067A0008093651090936610A0936710B093681063 +:1067B0002AEE35E146EE55E162EE75E18EED95E1AA +:1067C0000F94C93E1092CA151092CB151092CC1599 +:1067D0001092CD151092CE151092CF151092D015A3 +:1067E0001092D1151092D2151092D3151092D41583 +:1067F0001092D5151092D6151092D7151092D81563 +:106800001092D9151092DA151092DB151092DC1542 +:106810001092DD150F900F900F900F90DF91CF9198 +:106820001F910F91FF90EF90DF90CF90BF90AF90AE +:106830009F908F907F906F905F904F903F902F90A0 +:1068400008952091361630913716409138165091A0 +:106850003916FC0160817181828193810F940BC391 +:106860000F94DBC26093E6157093E7158093E815EB +:106870009093E9152AEE35E146EE55E162EE75E1B9 +:106880008EED95E10D94C93E20913A1630913B165C +:1068900040913C1650913D16FC01608171818281CE +:1068A00093810F940BC30F94DBC26093EA1570932E +:1068B000EB158093EC159093ED158AEE95E10D9410 +:1068C000053F6093590270935A0280935B02909344 +:1068D0005C020895CF92DF92EF92FF920F931F9385 +:1068E000CF93DF9300D01F92CDB7DEB73EE1C32E2A +:1068F00036E1D32E4EE2E42E46E1F42E0EEE15E103 +:10690000F60161917191819191916F01F70121914E +:106910003191419151917F0129833A834B835C836B +:106920000F94AAC029813A814B815C810F940BC3DB +:106930000F947EC0F80161937193819391938F01BD +:10694000FEE2CF16F6E1DF06D9F60F900F900F901A +:106950000F90DF91CF911F910F91FF90EF90DF90FB +:10696000CF900895CF93DF9380917A16811109C05B +:1069700080917916811105C080917816882309F4D9 +:10698000A0C0ECE3FDE08491882341F09091C00029 +:1069900095FFFCCF8093C6003196F5CFCDE1D1E8CD +:1069A000FE0185919491FC012491222341F03091C4 +:1069B000C00035FFFCCF2093C6000196F4CF809134 +:1069C0007A16882319F160917B1670917C1680915C +:1069D0007D1690917E160F94ACC020912E163091AA +:1069E0002F1640913016509131160F9411C0AB0103 +:1069F000BC018BEB9EE80E94C862FE0185919491D8 +:106A000069EB7EE80E94B5D30F944A6280917916B3 +:106A1000882319F160917F167091801680918116FC +:106A2000909182160F94ACC020913216309133169B +:106A300040913416509135160F9411C0AB01BC0132 +:106A400085EB9EE80E94C862FE018591949163EBFC +:106A50007EE80E94B5D30F944A628091781688230D +:106A600019F160918316709184168091851690912A +:106A700086160F94ACC0209136163091371640918F +:106A80003816509139160F9411C0AB01BC018FEA32 +:106A90009EE80E94C862FE01859194916DEA7EE8AD +:106AA0000E94B5D30F944A628091C00085FFFCCF4D +:106AB0008AE08093C60010927A161092791610928E +:106AC0007816DF91CF91089580917A16811107C0D1 +:106AD00080917916811103C08091781601C081E000 +:106AE00010927A1610927916109278160895809165 +:106AF000781610927816089590916302809363023D +:106B0000892F0895909171168093711610927816BE +:106B1000892F0895EFE6F0E08081826080830895F8 +:106B2000CF92DF92EF92FF920F931F93CF93DF9359 +:106B30001F92CDB7DEB78091AA169091AB16892B24 +:106B400009F0B0C19091721080917110981771F096 +:106B5000E091711045E5E49FF0011124ED58FF4EDE +:106B6000DF01A55BBF4F81E08C9302C0E0E0F0E065 +:106B7000F093AB16E093AA16309709F48DC11092EA +:106B80008D1610928E1610928F161092901667A97D +:106B900070AD61345CE9750728F461328EE47807E2 +:106BA00048F002C060E47CE9769567957695679534 +:106BB00084E007C06131A7E27A0730F076956795E7 +:106BC00082E080938A1608C081E080938A16603242 +:106BD000710510F460E270E0605271096115B8E06F +:106BE0007B07D0F0872F9927880F991F880F991F4F +:106BF00081549D46FC01329645915491AA27659F88 +:106C00009001649F210D3A1F06942A1F3A1F1124F8 +:106C1000FC01859194911DC0CB01969587958C7F41 +:106C200081549147FC01459154910296FC01859154 +:106C30009491FB01E770FF278E9F90018F9F300D8D +:106C40009E9F300D1124E3E036952795EA95E1F7F4 +:106C5000CA01821B930B84369105B0F4E9EEFAE782 +:106C6000A591B4918D91882339F09091C00095FF42 +:106C7000FCCF8093C600F6CF4AE050E080EF96E06C +:106C80000E946A5D84E690E090938916809388164E +:106C900080918A1680938716E091AA16F091AB1620 +:106CA00063AD74AD70938C1660938B1661344CE9B0 +:106CB000740728F461325EE4750748F002C060E4AE +:106CC0007CE9769567957695679584E007C0613194 +:106CD00087E2780730F07695679582E080938A1690 +:106CE00008C081E080938A166032710510F460E27A +:106CF00070E0605271096115A8E07A07E0F0872F13 +:106D00009927880F991F880F991F81549D46FC0170 +:106D1000329625913491AA27639FA001629F410D6D +:106D20005A1F06944A1F5A1F1124FC0125913491C1 +:106D3000241B350B1EC0CB01969587958C7F815403 +:106D40009147FC01259134910296FC0145915491A3 +:106D5000FB01E770FF274E9FC0014F9F900D5E9F84 +:106D6000900D112403E0969587950A95E1F7281B6D +:106D7000390B24363105B0F4E9EEFAE7A591B49168 +:106D80008D91882339F09091C00095FFFCCF8093BE +:106D9000C600F6CF4AE050E080EF96E00E946A5DC0 +:106DA00024E630E0C901A0E0B0E080939116909312 +:106DB0009216A0939316B093941630935F16209377 +:106DC0005E16E091AA16F091AB16DF01A05BBF4FF3 +:106DD0008C91882349F11196CD90DD90ED90FC9037 +:106DE000A0918B16B0918C16A70196010F9446C501 +:106DF000A1E19695879577956795AA95D1F77093B8 +:106E000055166093541667A970AD81AD92AD0F947D +:106E1000B9C4B1E19695879577956795BA95D1F7FD +:106E2000709357166093561680899189A289B38909 +:106E3000B695A79597958795B095A09590958195CE +:106E40009F4FAF4FBF4F8093A5169093A616A09368 +:106E5000A716B093A8168093A1169093A216A0939C +:106E6000A316B093A41680939D1690939E16A0939C +:106E70009F16B093A0168093991690939A16A0939C +:106E80009B16B0939C16109295161092961610921F +:106E900097161092981606C080ED97E090935F16B3 +:106EA00080935E16E091AA16F091AB16309709F424 +:106EB00081C6808D8093A9169FB780FF09C0F89482 +:106EC00080910B018D7F80930B019FBF8FEF08C0D6 +:106ED000F89480910B01826080930B019FBF81E049 +:106EE00080935F028091A9169FB781FF09C0F89433 +:106EF00080910B018E7F80930B019FBF8FEF08C0A5 +:106F0000F89480910B01816080930B019FBF81E019 +:106F1000809360022091A9163091630220FF3BC04C +:106F2000332309F472C01E9902C080E031C0809101 +:106F30007716882361F1E091AA16F091AB16808153 +:106F40009181A281B381181619061A061B06FCF45A +:106F50008091601690916116A0916216B0916316AF +:106F600080937B1690937C16A0937D16B0937E162B +:106F700081E080937A1680899189A289B389809370 +:106F8000951690939616A0939716B093981681E055 +:106F9000809377163AC03323C1F146B14095441F20 +:106FA0004427441F81F180917616882361F1E09196 +:106FB000AA16F091AB1680819181A281B381181637 +:106FC00019061A061B06FCF4809160169091611652 +:106FD000A0916216B091631680937B1690937C16F5 +:106FE000A0937D16B0937E1681E080937A168089F7 +:106FF0009189A289B3898093951690939616A09350 +:107000009716B09398164093761621FF3BC0332312 +:1070100009F472C01D9902C080E031C080917516DC +:10702000882361F1E091AA16F091AB1684819581D5 +:10703000A681B781181619061A061B06FCF4809162 +:10704000641690916516A0916616B09167168093AC +:107050007F1690938016A0938116B093821681E0DC +:107060008093791680899189A289B3898093951636 +:1070700090939616A0939716B093981681E08093FC +:1070800075163AC03323C1F130B141E032FB3327EA +:1070900030F9342779F180917416882359F1E09101 +:1070A000AA16F091AB1684819581A681B781181636 +:1070B00019061A061B06F4F4809164169091651661 +:1070C000A0916616B091671680937F1690938016F4 +:1070D000A0938116B0938216409379168089918986 +:1070E000A289B3898093951690939616A0939716CC +:1070F000B0939816309374169FB722FF49C0F89446 +:1071000080910B018B7F80930B019FBF8FEF80934A +:10711000610280916302882309F47EC08091711618 +:1071200081117AC01C9B31C080917316882361F154 +:10713000E091AA16F091AB1680859185A285B38562 +:10714000181619061A061B06FCF480916816909111 +:107150006916A0916A16B0916B168093831690936E +:107160008416A0938516B093861681E080937816D6 +:1071700080899189A289B3898093951690939616F8 +:10718000A0939716B093981681E08093731644C02D +:10719000F89480910B01846080930B019FBF31E0D4 +:1071A00030936102809163028823B1F120B126956A +:1071B0002170232779F180917216882359F1E0918B +:1071C000AA16F091AB1680859185A285B385181615 +:1071D00019061A061B06F4F4809168169091691638 +:1071E000A0916A16B0916B168093831690938416C3 +:1071F000A0938516B093861630937816808991896E +:10720000A289B3898093951690939616A0939716AA +:10721000B09398162093721680917116882371F19D +:107220001C9902C080E028C080917316882319F150 +:107230008091681690916916A0916A16B0916B16AC +:107240008093831690938416A0938516B093861628 +:1072500081E080937816E091AA16F091AB168089B0 +:107260009189A289B3898093951690939616A093DD +:107270009716B093981681E0809373168091A916A3 +:107280009FB783FF09C0F89480910B0180648093BD +:107290000B019FBF8FEF08C0F89480910B018F7B8B +:1072A00080930B019FBF81E08093620220E0809178 +:1072B0008A16281708F0B6C18091C00087FF21C048 +:1072C0008091C00084FF04C08091C600898319C0EA +:1072D0003091C6004091710750917207CA01019622 +:1072E0008F779927609173077091740786179707B6 +:1072F00041F0FA01EF50F94F308390937207809379 +:107300007107E091AA16F091AB16809199169091B1 +:107310009A16A0919B16B0919C164485558566855A +:107320007785840F951FA61FB71F8093991690939A +:107330009A16A0939B16B0939C16181619061A0657 +:107340001B06F4F54089518962897389841B950B6A +:10735000A60BB70B8093991690939A16A0939B1641 +:10736000B0939C164091620280916C1690916D16BC +:10737000A0916E16B0916F16552747FD5095652F59 +:10738000752F840F951FA61FB71F80936C169093BF +:107390006D16A0936E16B0936F168091A91683FF99 +:1073A00006C08091581690915916019705C080919A +:1073B0005816909159160196909359168093581625 +:1073C0008091A5169091A616A091A716B091A81627 +:1073D0004081518162817381840F951FA61FB71F61 +:1073E0008093A5169093A616A093A716B093A816FF +:1073F000181619061A061B06CCF5409AE091AA1633 +:10740000F091AB168091A5169091A616A091A716A3 +:10741000B091A8164089518962897389841B950BA4 +:10742000A60BB70B8093A5169093A616A093A7164C +:10743000B093A81640915F028091601690916116FA +:10744000A0916216B0916316552747FD5095652FA0 +:10745000752F840F951FA61FB71F809360169093FA +:107460006116A0936216B09363164098E091AA1635 +:10747000F091AB168091A1169091A216A091A3163F +:10748000B091A4164481558166817781840F951F40 +:10749000A61FB71F8093A1169093A216A093A316C0 +:1074A000B093A416181619061A061B06CCF5419AB5 +:1074B000E091AA16F091AB168091A1169091A216B8 +:1074C000A091A316B091A41640895189628973894D +:1074D000841B950BA60BB70B8093A1169093A21655 +:1074E000A093A316B093A4164091600280916416F5 +:1074F00090916516A0916616B0916716552747FDC5 +:107500005095652F752F840F951FA61FB71F809369 +:10751000641690936516A0936616B093671641980B +:10752000E091AA16F091AB1680919D1690919E164F +:10753000A0919F16B091A0164085518562857385F4 +:10754000840F951FA61FB71F80939D1690939E16BC +:10755000A0939F16B093A016181619061A061B06BC +:10756000CCF5429AE091AA16F091AB1680919D1647 +:1075700090919E16A0919F16B091A01640895189B6 +:1075800062897389841B950BA60BB70B80939D169C +:1075900090939E16A0939F16B093A01640916102FF +:1075A0008091681690916916A0916A16B0916B1639 +:1075B000552747FD5095652F752F840F951FA61FE2 +:1075C000B71F8093681690936916A0936A16B093BC +:1075D0006B1642988091951690919616A0919716E9 +:1075E000B09198160196A11DB11D809395169093A8 +:1075F0009616A0939716B0939816409195165091B1 +:1076000096166091971670919816E091AA16F091CF +:10761000AB1680899189A289B389481759076A07EF +:107620007B0720F1E091AA16F091AB16DF01A05B79 +:10763000BF4F1C911123E1F0809154169091551683 +:107640002091521630915316AC01421B530B90936C +:107650005316809352168091581690915916840FA4 +:10766000951F909359168093581602C02F5F1FCE16 +:107670008091581690915916892B21F010925D1621 +:1076800010925C164091951650919616609197163F +:1076900070919816828D938DA48DB58D8417950762 +:1076A000A607B70708F4F3C04091911650919216BF +:1076B00060919316709194160489158926893789EB +:1076C000AA27419FB12D529FC001629F900D619FDB +:1076D000800D911D429FB00D811D9A1F519FB00DCD +:1076E000811D9A1F609FB00D811D9A1F509FB10D83 +:1076F0008A1F9A1FB6958A1F9A1F112443AD54AD55 +:10770000480F591F50938C1640938B1687A990AD44 +:10771000A1ADB2AD60E070E084179507A607B7078A +:1077200020F490938C1680938B1660918B16709139 +:107730008C1661345CE9750728F461328EE47807B1 +:1077400048F002C060E47CE9769567957695679588 +:1077500084E007C06131A7E27A0730F0769567953B +:1077600082E080938A1608C081E080938A16603296 +:10777000710510F460E270E0605271096115B8E0C3 +:107780007B07E8F0872F9927880F991F880F991F8B +:1077900081549D46FC01329645915491AA27659FDC +:1077A0009001649F210D3A1F06942A1F3A1F11244D +:1077B000FC0145915491FA01E21BF30B1FC0CB0170 +:1077C000969587958C7F81549147FC012591349142 +:1077D0000296FC0145915491FB01E770FF274E9FF3 +:1077E000C0014F9F900D5E9F900D112413E0969560 +:1077F00087951A95E1F7F901E81BF90BE436F105D5 +:10780000B0F4E9EEFAE7A591B4918D91882339F0AF +:107810009091C00095FFFCCF8093C600F6CF4AE060 +:1078200050E080EF96E00E946A5DE4E6F0E0F093BD +:107830005F16E0935E168091911690919216A0913A +:107840009316B09194168E0F9F1FA11DB11D8093AA +:10785000911690939216A0939316B09394168091DC +:10786000AA169091AB16DC01A05BBF4F2C9122238E +:1078700009F41AC160918B1670918C168F5A9F4F24 +:10788000DC012D913D914D915C91DB0100C1409156 +:107890009516509196166091971670919816868D50 +:1078A000978DA0A1B1A184179507A607B70708F087 +:1078B00022C140918D1650918E1660918F16709155 +:1078C00090160489158926893789AA27419FB12DE9 +:1078D000529FC001629F900D619F800D911D429F3C +:1078E000B00D811D9A1F519FB00D811D9A1F609F81 +:1078F000B00D811D9A1F509FB10D8A1F9A1FB6951A +:107900008A1F9A1F112400918B1610918C16FF96D6 +:107910000817190718F40081118102C0081B190B00 +:1079200080819181A281B381A80160E070E0481755 +:1079300059076A077B0708F48C010134BCE91B076F +:1079400030F401324EE4140750F0B80102C060E494 +:107950007CE9769567957695679584E008C0013156 +:1079600057E2150738F0B8017695679582E0809365 +:107970008A160AC081E080938A160032110510F041 +:10798000B80102C060E270E060527109611588E0E0 +:107990007807E8F0872F9927880F991F880F991F7C +:1079A00081549D46FC01329645915491AA27659FCA +:1079B0009001649F210D3A1F06942A1F3A1F11243B +:1079C000FC0145915491FA01E21BF30B1FC0CB015E +:1079D000969587958C7F81549147FC012591349130 +:1079E0000296FC0145915491FB01E770FF274E9FE1 +:1079F000C0014F9F900D5E9F900D112443E096951E +:107A000087954A95E1F7F901E81BF90BE436F10592 +:107A1000B0F4E9EEFAE7A591B4918D91882339F09D +:107A20009091C00095FFFCCF8093C600F6CF4AE04E +:107A300050E080EF96E00E946A5DE4E6F0E0F093AB +:107A40005F16E0935E1680918D1690918E16A09130 +:107A50008F16B09190168E0F9F1FA11DB11D8093A0 +:107A60008D1690938E16A0938F16B09390168091DA +:107A7000AA169091AB16DC01A05BBF4F2C9122237C +:107A800099F011962D913D914D915C91D8010F94F3 +:107A900046C521E196958795779567952A95D1F703 +:107AA00070935516609354168091581690915916FC +:107AB000892BC1F020918A162E9FC0012F9F900D17 +:107AC00011242091581630915916609158167091D2 +:107AD0005916121613061CF07195619571090F94D1 +:107AE000D5C404C060915D0270915E0270935B1614 +:107AF00060935A163AC0112341F080915616909126 +:107B0000571690935516809354168091581690915D +:107B10005916E09187162091881630918916892B85 +:107B2000B1F0E29FC001E39F900D112440915816DF +:107B300050915916609158167091591614161506E1 +:107B40001CF07195619571090F94D5C404C06091C2 +:107B50005D0270915E0270935B1660935A163093CB +:107B60005F1620935E16E0938A1640919516509109 +:107B700096166091971670919816E091AA16F0915A +:107B8000AB1680899189A289B389481759076A077A +:107B90007B0780F01092AB161092AA16909172108B +:107BA00080917110981731F0809171108F5F8F70F4 +:107BB000809371100F90DF91CF911F910F91FF90E3 +:107BC000EF90DF90CF90089580915A1690915B16B8 +:107BD00090935D1680935C1680915816909159167B +:107BE000892BB9F1809158169091591697FF06C0CC +:107BF0009FB7F89480910B01806405C09FB7F894FB +:107C000080910B018F7B80930B019FBF20918A167F +:107C10008091581690915916892BD9F02223C9F0DA +:107C2000439A809158169091591697FF06C08091FB +:107C3000581690915916019605C08091581690914A +:107C400059160197909359168093581643982150CE +:107C5000DFCF089580915E1690915F16892B11F405 +:107C60000F94903580915C1690915D16892B09F4E4 +:107C7000ABDF20915C1630915D1680915E1690917D +:107C80005F1682179307C8F030938900209388000D +:107C900080915E1690915F16009751F020915C16CE +:107CA00030915D16821B930B90935F1680935E1646 +:107CB00010925D1610925C161FC0909389008093FD +:107CC000880080915C1690915D16009789F0209154 +:107CD0005D0230915E028217930751F020915E168B +:107CE00030915F16821B930B90935D1680935C1608 +:107CF00010925F1610925E162091880030918900D4 +:107D0000809184009091850040962817390748F4A7 +:107D10008091840090918500409690938900809393 +:107D2000880008951F920F920FB60F9211240BB680 +:107D30000F922F933F934F935F936F937F938F9304 +:107D40009F93AF93BF93EF93FF9384DFFF91EF91E6 +:107D5000BF91AF919F918F917F916F915F914F9163 +:107D60003F912F910F900BBE0F900FBE0F901F9061 +:107D700018959091721080917110981749F00F9496 +:107D8000224D81E00E94487680E00F94CB63F1CFD2 +:107D90000895CF93DF93EFB7F894EC018881998130 +:107DA000AA81BB818093601690936116A09362169E +:107DB000B0936316EB0188819981AA81BB8180937E +:107DC000641690936516A0936616B0936716EA0141 +:107DD00088819981AA81BB818093681690936916E6 +:107DE000A0936A16B0936B16E90188819981AA81E4 +:107DF000BB8180936C1690936D16A0936E16B09312 +:107E00006F16EFBFDF91CF9108952FB7F894FC0163 +:107E100080819181A281B38180936C1690936D16BD +:107E2000A0936E16B0936F162FBF08952FB7F894D6 +:107E300094E0899FF0011124E05AF94E608171812C +:107E4000828193812FBF0895CF93C82FEFDF0F94C6 +:107E5000ACC024E0C29FF0011124E25DF94E208104 +:107E60003181428153810F9411C0CF91089581DFF8 +:107E7000179A1092110A169A1092120A149A0895DB +:107E800080916F008D7F80936F0090917210809130 +:107E90007110981769F09091721080917110981775 +:107EA000A1F3809171108F5F8F7080937110EDCF6F +:107EB0001092AB161092AA1680916F008260809388 +:107EC0006F000895CF93DF93CDB7DEB72C970FB631 +:107ED000F894DEBF0FBECDBF813079F120F0823043 +:107EE00009F455C080C017982091090122709FB7EE +:107EF000662329F0F89480910B01826004C0F89405 +:107F000080910B018D7F80930B019FBF409A80E091 +:107F100090E0A0E0BFE389879A87AB87BC87409851 +:107F20009FB7222329F0F89480910B01826058C0FA +:107F3000F89480910B018D7F53C016982091090110 +:107F400021709FB7662329F0F89480910B0181601E +:107F500004C0F89480910B018E7F80930B019FBF2A +:107F6000419A8BEA9AEAAAE2BEE38D839E83AF83AD +:107F7000B88741989FB7222329F0F89480910B018C +:107F800081602EC0F89480910B018E7F29C01598D6 +:107F90002091090124709FB7662329F0F8948091FD +:107FA0000B01846004C0F89480910B018B7F809357 +:107FB0000B019FBF429A8BEA9AEAAAEABEE3898341 +:107FC0009A83AB83BC8342989FB7222329F0F8940D +:107FD00080910B01846004C0F89480910B018B7F29 +:107FE00080930B019FBF2C960FB6F894DEBF0FBE97 +:107FF000CDBFDF91CF910895EF92FF920F931F9322 +:10800000CF93DF931F92CDB7DEB77B018C01061BA8 +:10801000170B460FC701800F911F49830F945DCB4B +:10802000F70181937F0149814E13F4CF0F90DF91C7 +:10803000CF911F910F91FF90EF900895DB01811177 +:108040000DC02FEF30E00F9440C520ED37E040E049 +:1080500050E00F941EC5B9018EE21DC0813069F455 +:108060002FEF30E00F9440C520ED37E040E050E0C6 +:108070000F941EC5B9018DE20EC0823071F42FEF4E +:1080800030E00F9440C520ED37E040E050E00F9421 +:108090001EC5B9018CE20D94F7B7089541E060E781 +:1080A00076E18FEF9FE0A8DF61E08EE20F940FB9D9 +:1080B00061E08DE20F940FB961E08CE20F940FB98B +:1080C00080917016882321F080911D188823A9F0D3 +:1080D0008091640290916502909371028093700286 +:1080E000809166029091670290937302809372026E +:1080F000809168029091690214C080916A02909107 +:108100006B02909371028093700280916C02909147 +:108110006D02909373028093720280916E0290912F +:108120006F02909375028093740260917002709157 +:10813000710280E083DF609172027091730281E0CE +:108140007DDFA0917402B09175022FEF30E00F94A3 +:1081500040C520ED37E040E050E00F941EC5B90166 +:108160008CE20F94F7B780912101887F8160809322 +:1081700021010895CF93C42F67FD20C0813061F0A5 +:1081800028F0823079F0833099F018C088E20F949B +:1081900048B9C7FF1DC02AC085E40F9448B9C7FF7E +:1081A0001AC024C084E40F9448B9C7FF17C01EC08A +:1081B00081E40F9448B9C7FF14C018C0C7FD16C0AA +:1081C000813049F028F0823049F0833051F00EC000 +:1081D0006C2F89E208C06C2F87E205C06C2F83E406 +:1081E00002C06C2F82E4CF910D9448B9CF910895CD +:1081F000643079F028F4613041F0623041F0089544 +:10820000683051F0603141F0089540E003C040E033 +:1082100004C041E060E002C041E061E0ABCFFF920A +:108220000F931F93CF93DF9300D01F921F92CDB770 +:10823000DEB785E0E3EEF2E0DE01119601900D92EB +:108240008A95E1F761E088E20F940FB961E089E275 +:108250000F940FB961E085E40F940FB961E087E2F4 +:108260000F940FB961E084E40F940FB961E083E4E7 +:108270000F940FB961E081E40F940FB961E082E4DB +:108280000F940FB98E010F5F1F4FF12CF801619110 +:108290008F018F2DADDFF394F5E0FF12F7CF0F9034 +:1082A0000F900F900F900F90DF91CF911F910F9132 +:1082B000FF900895F3DEB3DFEAE0F1E080818260B1 +:1082C00080838081816080838081846080838081DD +:1082D000806480830F9A179A0E9A169A0D9A159AAF +:1082E0000C9A149A26982E9A25982D9A24982C9AAE +:1082F0003F98479A0A98129A0998119A389A409882 +:10830000179A1092110A399A4198169A1092120AE5 +:108310003A9A42983B9A4398149AA1E8B0E08C911B +:108320008F7E8C938C9188608C93E0E8F0E0808164 +:108330008D7F808380818E7F808380818F73808317 +:1083400080818F7C80838C91887F82608C9380E099 +:1083500090E4909389008093880010928500109299 +:108360008400EFE6F0E080818260808310925916ED +:1083700010925816109253161092521681E0809364 +:10838000630278940895EFE9FEE88491882341F030 +:108390009091C00095FFFCCF8093C6003196F5CF39 +:1083A000EBE9FEE88491882341F09091C00095FFAD +:1083B000FCCF8093C6003196F5CF88E20F947DB94B +:1083C0004AE050E0BC0180EF96E00E94185D89E22F +:1083D0000F947DB94AE050E0BC0180EF96E00E9426 +:1083E000185D8091C00085FFFCCF8AE08093C600B5 +:1083F000E7E9FEE88491882341F09091C00095FF61 +:10840000FCCF8093C6003196F5CF85E40F947DB9FB +:108410004AE050E0BC0180EF96E00E94185D87E2E0 +:108420000F947DB94AE050E0BC0180EF96E00E94D5 +:10843000185D8091C00085FFFCCF8AE08093C60064 +:10844000E3E9FEE88491882341F09091C00095FF14 +:10845000FCCF8093C6003196F5CF84E40F947DB9AC +:108460004AE050E0BC0180EF96E00E94185D83E492 +:108470000F947DB94AE050E0BC0180EF96E00E9485 +:10848000185D8091C00085FFFCCF8AE08093C60014 +:10849000EEE8FEE88491882341F09091C00095FFBA +:1084A000FCCF8093C6003196F5CF81E40F947DB95F +:1084B0004AE050E0BC0180EF96E00E94185D82E443 +:1084C0000F947DB94AE050E0BC0180EF96E00E9435 +:1084D000185D8091C00085FFFCCF8AE08093C600C4 +:1084E000089580915D0290915E0290935D16809355 +:1084F0005C1690935B1680935A1608954F925F9284 +:108500006F927F928F929F92AF92BF92CF92DF92A3 +:10851000EF92FF920F931F93CF93DF932C012EE1E5 +:108520003AE981E090E0F9014591549144165506ED +:108530000CF062C0AC0141505109DA01AA0FBB1F17 +:10854000AA0FBB1FA45EB546FD0165917491440F4F +:10855000551F440F551F465E5546FA0165907490AD +:10856000FC01EE0FFF1FEE0FFF1FE45EF546A59026 +:10857000B490FD0105911491F901C591D491FA01CE +:1085800085909490882777FD8095982F0F94ACC0A4 +:108590006B017C01B20166197709882777FD809508 +:1085A000982F0F94ACC02B013C01B501601B710BDF +:1085B000882777FD8095982F0F94ACC09B01AC0164 +:1085C000C301B2010F940BC32B013C01BE0168191A +:1085D0007909882777FD8095982F0F94ACC09B016F +:1085E000AC01C301B2010F9411C09B01AC01C701E2 +:1085F000B6010F941ABF11C001962C5F3F4F8D3307 +:10860000910509F090CFECE0FBE965917491882722 +:1086100077FD8095982F0F94ACC06B017C0120E012 +:1086200030E040E252E4C701B6010F9439C287FD41 +:108630001BC020E030E048E452E4C701B6010F94CB +:108640000AC018168CF020E030E040E252E4C70186 +:10865000B6010F9419BF20E030E040E05FE30F94D3 +:108660000BC39B01AC013FC020E030E048E452E482 +:10867000C701B6010F9439C218163CF520E030E06E +:1086800048EC52E4C701B6010F940AC01816ECF08A +:1086900020E030E040EA50E4C701B6010F941ABF71 +:1086A0004B015C0120E030E048E452E4C701B60130 +:1086B0000F9419BF2DEC3CEC4CEC5DE30F940BC315 +:1086C0009B01AC01C501B40110C020E030E048ECD2 +:1086D00052E4C701B6010F9439C2181654F420E0D1 +:1086E00030E040E251E4C701B6010F941ABF6B01BC +:1086F0007C01C701B601DF91CF911F910F91FF90CF +:10870000EF90DF90CF90BF90AF909F908F907F9031 +:108710006F905F904F9008954F925F926F927F920B +:108720008F929F92AF92BF92CF92DF92EF92FF9281 +:108730000F931F93CF93DF932C01662381F1E2E423 +:10874000FDE08491882341F09091C00095FFFCCF1B +:108750008093C6003196F5CF70E04AE050E080EF9C +:1087600096E00E94185DE3E8F8E98491882341F0DF +:108770009091C00095FFFCCF8093C6003196F5CF55 +:108780008091C00085FFFCCF8AE08093C60080E026 +:1087900090E00E94866F60E070E0CB017EC02EE921 +:1087A00039E981E090E0F90145915491441655066C +:1087B0000CF062C0AC0141505109DA01AA0FBB1F95 +:1087C000AA0FBB1FA456B646FD0165917491440FD4 +:1087D000551F440F551F46565646FA016590749032 +:1087E000FC01EE0FFF1FEE0FFF1FE456F646A590AB +:1087F000B490FD0105911491F901C591D491FA014C +:1088000085909490882777FD8095982F0F94ACC021 +:108810006B017C01B20166197709882777FD809585 +:10882000982F0F94ACC02B013C01B501601B710B5C +:10883000882777FD8095982F0F94ACC09B01AC01E1 +:10884000C301B2010F940BC32B013C01BE01681997 +:108850007909882777FD8095982F0F94ACC09B01EC +:10886000AC01C301B2010F9411C09B01AC01C7015F +:10887000B6010F941ABF11C001962C5F3F4F803292 +:10888000910509F090CFE8E1FAE9659174918827A4 +:1088900077FD8095982F0F94ACC0DF91CF911F91F9 +:1088A0000F91FF90EF90DF90CF90BF90AF909F908F +:1088B0008F907F906F905F904F90089560E08091CF +:1088C0003E1790913F1728DF60933A1770933B173C +:1088D00080933C1790933D178091381790913917EA +:1088E0000DDE60933417709335178093361790938D +:1088F00037178FB7F89410921B178FBF08952091E8 +:10890000920230919302409194025091950260E05E +:1089100070E08FE793E40F9411C06093FB1670939F +:10892000FC168093FD169093FE16209182023091E2 +:108930008302409184025091850260E070E08FE7ED +:1089400093E40F9411C06093DA167093DB16809352 +:10895000DC169093DD16089597FF03C080912217CF +:1089600004C0FC01E752F94E808190E00895CF9356 +:10897000DF93D82FC62FC19561E00F940FB96C2FEC +:108980008D2F0F9448B96C2F70E08D2FDF91CF9110 +:108990000D94F7B7CF93C1E020E030E048E452E413 +:1089A00060913A1770913B1780913C1790913D1759 +:1089B0000F9439C218160CF0C0E06C2F88E090E0DC +:1089C000CF91D5CFCF93DF931092FF16109200175F +:1089D0001092011710920217209192023091930287 +:1089E000409194025091950260E070E08FE793E42B +:1089F0000F9411C06093FB167093FC168093FD16C4 +:108A00009093FE161092DE161092DF161092E0166A +:108A10001092E116209182023091830240918402EB +:108A20005091850260E070E08FE793E40F9411C0ED +:108A30006093DA167093DB168093DC169093DD1644 +:108A40006D9A809101018061809301019D9A8091CE +:108A5000010188608093010187ED80937A00109274 +:108A60007E0010927D0080917E00816080937E0068 +:108A700080917E00826080937E0080917E00846081 +:108A800080937E0080E888BD80916E008460809332 +:108A90006E006AEF70E080E090E00F9453B78FE0D3 +:108AA00090E09093D2168093D11660E080917C0282 +:108AB00090917D0231DE20E030E040E751E40F94F8 +:108AC0000AC087FF0AC080917C0290917D02409786 +:108AD00090937D0280937C02E8CF81E391E09093B4 +:108AE0007B0280937A0260E08091D3169091D41635 +:108AF00013DE20E030E848E953E40F9439C2181639 +:108B000054F48091D3169091D41640969093D41635 +:108B10008093D316E8CFC0917802D0917902CE012C +:108B2000EDDC20E030E040E751E40F940AC087FF1D +:108B300006C06097D0937902C0937802ECCF809101 +:108B4000CF169091D016DADC20E030E046E153E415 +:108B50000F9439C2181654F48091CF169091D01604 +:108B600040969093D0168093CF16E9CFDF91CF91A6 +:108B700008950895109243171092421710924117CA +:108B8000109240171092D9167598109241171092B2 +:108B9000401710922217A59808952F923F924F9256 +:108BA0005F926F927F928F929F92AF92BF92CF927D +:108BB000DF92EF92FF920F931F93CF93DF93CDB786 +:108BC000DEB7A9970FB6F894DEBF0FBECDBF6D8B91 +:108BD0007E8B8F8B988F5E834D833FA32EA3309324 +:108BE00025172093241710922317109227171092FD +:108BF00026170F9424B76A8F7B8F8C8F9D8F0F94CD +:108C000024B76AA37BA38CA39DA38D809E80181498 +:108C100019041CF0E1EEF4E017C0E4EFF4E08191F8 +:108C2000882339F09091C00095FFFCCF8093C60057 +:108C3000F6CF8091C00085FFFCCF22C29091C0008A +:108C400095FFFCCF8093C60081918111F7CF809171 +:108C5000C00085FFFCCF8AE08093C6008BDFAD802B +:108C6000BE808FE7AB2891F1809322178A8C9B8C72 +:108C7000AC8CBD8C8B869C86AD86BE868F8298869A +:108C8000A986BA86198A20E42A8B3CE13B8B46E40C +:108C90004C8B18A6212C1F86188AEFE78E2E912C5C +:108CA000A12CB12C89829A82AB82BC82FFE7CF2EA5 +:108CB000D12CE12CF12C1E8E1F8E18A219A221E0BE +:108CC000298F312C00E010E019A606C08093D91638 +:108CD000CDCF80E00F94CB6380911B17882309F4DC +:108CE000F9C0ECDD8D809E80892851F030903417DA +:108CF00000913517109136179090371799A609C033 +:108D000030903A1700913B1710913C17A0903D17F7 +:108D1000A9A6232D302F412F59A568A5722D8F8527 +:108D200098890F9439C218162CF038A6202E1F8768 +:108D3000B9A4B88A232D302F412F59A569897A8982 +:108D40008B899C890F940AC087FD05C0398A0A8BDC +:108D50001B8B89A48C8A0F9424B78AA09BA0ACA0FB +:108D6000BDA0681979098A099B09653C794081058C +:108D7000910538F00FDE0F9424B76AA37BA38CA370 +:108D80009DA3898C882009F44FC02D893E894F8985 +:108D9000588D632D702F812F99A50F9439C2181605 +:108DA0000CF098C00F9424B78B849C84AD84BE844F +:108DB000681979098A099B09693873418105910508 +:108DC00008F488C0D701C60189809A80AB80BC8036 +:108DD00088199909AA09BB09AD80BE80B595A795E8 +:108DE00097958795AB2819F08093221702C080933E +:108DF000D9160F9424B76F83788789879A874B0198 +:108E00005C012B853C854D855E85821A930AA40AF8 +:108E1000B50A8E8E9F8EA8A2B9A28D8888A62E88AC +:108E20009F889F86A88CA88A2D893E894F89588D56 +:108E3000632D702F812F99A50F940AC087FF1DC342 +:108E40000F9424B78F809884A984BA84681979090B +:108E50008A099B09693873418105910508F40DC39E +:108E60000F9424B76B877C878D879E87AB01BC01ED +:108E7000481959096A097B0980912617909127178B +:108E8000181619060CF41FC189819A81AB81BC8127 +:108E90008C0D9D1DAE1DBF1D8D809E80B595A79527 +:108EA00097958795892809F4E5C2809322178091C8 +:108EB00026179091271701969093271780932617CE +:108EC0009D88998AAE88AA8ABF88BB8A888C8C8A3A +:108ED00021E0298F20E030E040EA51E46D897E896D +:108EE0008F89988D0F941ABF9B01AC01632D702F51 +:108EF000812F99A50F9439C2181694F4E9E2F9E983 +:108F00008491882341F09091C00095FFFCCF80931D +:108F1000C6003196F5CF8091C00085FFFCCFB0C070 +:108F20000F9424B78A8C9B8CAC8CBD8C6819790902 +:108F30008A099B09613D77408105910508F451C07C +:108F40008D809E80892889F080912217A82EB12CCF +:108F5000E3E2F9E984918823C9F09091C00095FF7C +:108F6000FCCF8093C6003196F5CF8091D916A82EFC +:108F7000B12CEDE1F9E98491882341F09091C00092 +:108F800095FFFCCF8093C6003196F5CF22E030E00C +:108F9000432D502F612F79A580EF96E00E940B5E44 +:108FA000E9E1F9E98491882341F09091C00095FFAF +:108FB000FCCF8093C6003196F5CF4AE050E0B50172 +:108FC00080EF96E00E94185D8091C00085FFFCCF85 +:108FD0008AE08093C6000F9424B76A8F7B8F8C8FB2 +:108FE0009D8F0F9424B74B015C010F9424B74B84E1 +:108FF0005C846D847E842F81388549855A85420E34 +:10900000531E641E751E84189508A608B708860EA0 +:10901000971EA81EB91E31E883163FE4930632E17D +:10902000A306B10490F0ECEFF8E98491882341F0B5 +:109030009091C00095FFFCCF8093C6003196F5CF8C +:109040008091C00085FFFCCF1BC0809126179091B6 +:1090500027178EA09FA0881699060CF03ACEE0EA5A +:10906000F8E98491882341F09091C00095FFFCCFEE +:109070008093C6003196F5CF8091C00085FFFCCF6C +:109080008AE08093C60081E080932317109227170F +:1090900010922617A9960FB6F894DEBF0FBECDBF6B +:1090A000DF91CF911F910F91FF90EF90DF90CF90C4 +:1090B000BF90AF909F908F907F906F905F904F90F8 +:1090C0003F902F9008954E8C5F8C68A079A0440E3D +:1090D000551E661E771E8E8C9F8CA8A0B9A0841A80 +:1090E000950AA60AB70AC501B40129813A814B81C4 +:1090F0005C810F94B9C4A30192010F941EC52C0D7D +:109100003D1D4E1D5F1D2431310541055105ECF01B +:1091100069017A012CEEC216D104E104F1042CF0AD +:109120006BEEC62ED12CE12CF12C30E8C316D10405 +:10913000E104F104CCF05EEF852E912CA12CB12C32 +:109140008C189D08AE08BF080AC034E1C32ED12C8C +:10915000E12CF12C44E1842E912CA12CB12C89829C +:109160009A82AB82BC8204C0C982DA82EB82FC8222 +:10917000E2E9F9E98491882341F09091C00095FFDC +:10918000FCCF8093C6003196F5CF2AE030E0B701DE +:10919000A60180EF96E00E94E05CEDE8F9E9849199 +:1091A000882341F09091C00095FFFCCF8093C600CA +:1091B0003196F5CF2AE030E049815A816B817C817C +:1091C00080EF96E00E94E05CE6E8F9E9849188236C +:1091D00041F09091C00095FFFCCF8093C60031967E +:1091E000F5CF22E030E049895A896B897C8980EF8C +:1091F00096E00E940B5EEFE7F9E98491882341F045 +:109200009091C00095FFFCCF8093C6003196F5CFBA +:1092100022E030E048A5522D6F85788980EF96E0F6 +:109220000E940B5E8091C00085FFFCCF8AE0809396 +:10923000C600809126179091271703970CF424CE2F +:1092400069817A818B819C810F94ACC020E030E0F1 +:1092500040E850E40F940BC34B015C0129893A8923 +:109260004B895C8968A5722D8F8598890F9419BFE9 +:1092700020ED3FE049E450E40F940BC320E030E0E0 +:1092800040E05FE30F940BC39B01AC01C501B40147 +:109290000F9411C04B015C01C301B2010F94ACC02B +:1092A00020E030E04AE754E40F9411C02B013C0168 +:1092B000E9E7F9E98491882341F09091C00095FF96 +:1092C000FCCF8093C6003196F5CF22E030E0B501A7 +:1092D000A40180EF96E00E940B5EE3E7F9E9849138 +:1092E000882341F09091C00095FFFCCF8093C60089 +:1092F0003196F5CF22E030E0B301A20180EF96E095 +:109300000E940B5E8091C00085FFFCCF8AE08093B5 +:10931000C6002AE939E949E15FE3C501B4010F94C8 +:109320000BC34B015C01609330177093311780932E +:109330003217909333179B01AC010F941ABFA3010E +:1093400092010F9411C060932C1770932D17809386 +:109350002E1790932F17A3019201C501B4010F940A +:109360000BC320E030E040E05EE30F940BC360935A +:1093700028177093291780932A1790932B17E5E6E7 +:10938000F9E98491882341F09091C00095FFFCCFCA +:109390008093C6003196F5CF8091C00085FFFCCF49 +:1093A0008AE08093C600EFE5F9E98491882341F0D3 +:1093B0009091C00095FFFCCF8093C6003196F5CF09 +:1093C00040913017509131176091321770913317D7 +:1093D00022E030E080EF96E00E940B5E8091C000BA +:1093E00085FFFCCF8AE08093C600E9E5F9E9849126 +:1093F000882341F09091C00095FFFCCF8093C60078 +:109400003196F5CF40912C1750912D1760912E1762 +:1094100070912F1722E030E080EF96E00E940B5E03 +:109420008091C00085FFFCCF8AE08093C600E3E511 +:10943000F9E98491882341F09091C00095FFFCCF19 +:109440008093C6003196F5CF409128175091291787 +:1094500060912A1770912B1722E030E080EF96E0A0 +:109460000E940B5E8091C00085FFFCCF8AE0809354 +:10947000C6000ACD8093D9161ACD198E2BCDCF9365 +:10948000DF93D82FC62F81E08093FB090F94403FD4 +:1094900080919F0A882339F010929F0A60E08DE93D +:1094A0009AE00E9442CE66DB179A1092110A169A31 +:1094B0001092120A149AC6D280E00F94CB638FB731 +:1094C000F894909102019460909302018FBF84EF11 +:1094D00091E00F948AB78FB7F894909102019B7F27 +:1094E000909302018FBF84E690E00F948AB7DD234A +:1094F00009F463C00E94FA6FCC2319F081E798E960 +:1095000002C083E698E90F947562E2E4FDE084917D +:10951000882341F09091C00095FFFCCF8093C60056 +:109520003196F5CFCC2391F0EFE3F8E984918823CD +:1095300041F09091C00095FFFCCF8093C60031961A +:10954000F5CF8091C00085FFFCCF11C0ECE1F8E9B8 +:109550008491882341F09091C00095FFFCCF8093C7 +:10956000C6003196F5CF8091C00085FFFCCF8AE020 +:109570008093C600809101018062809301018091F7 +:1095800001018860809301019FB7F89480910201E6 +:109590008062809302019FBF6FEF70E086E00F94BE +:1095A000F7B78FEF90E090930B0A80930A0A80ED53 +:1095B00097E0DF91CF910D948AB7CC2319F088E022 +:1095C00098E902C088EF97E90F947562E2E4FDE044 +:1095D0008491882341F09091C00095FFFCCF809347 +:1095E000C6003196F5CFCC2391F0EFEDF7E98491E9 +:1095F000882341F09091C00095FFFCCF8093C60076 +:109600003196F5CF8091C00085FFFCCF11C0E7EC0B +:10961000F7E98491882341F09091C00095FFFCCF39 +:109620008093C6003196F5CF8091C00085FFFCCFB6 +:109630008AE08093C600DF91CF9108952F923F92E8 +:109640004F925F926F927F928F929F92AF92CF9242 +:10965000DF92EF92FF920F931F93CF93DF93CDB7DB +:10966000DEB72C970FB6F894DEBF0FBECDBF1C013E +:109670002A013B0109831A832B833C83AA2049F0EA +:1096800028E631E03A87298780E090E0A0EAB0E45C +:1096900008C0ADE2B0E0BA87A98780E090E0A0E71B +:1096A000B1E48D839E83AF83B8870F9424B70F9462 +:1096B000AAC08101000F111F000F111FD801A45B68 +:1096C000B84E4D012D913D914D915C910F9419BF74 +:1096D00020E030E04AEF54E40F9439C218160CF041 +:1096E00099C10F9424B70F94AAC0F40160837183C9 +:1096F0008283938320E030E0A901C701B6010F9473 +:109700000AC0811107C0F101EE0FFF1FEC5BF84E9C +:10971000118210829801245A384E4901A301920106 +:10972000D4016D917D918D919C910F940AC08823F5 +:10973000B1F120E030E0A901C301B2010F9439C2B8 +:10974000F801E459F84E181604F580E090E0A0E81E +:10975000BFE380839183A283B383F401408251826B +:1097600062827382F801E953F94E89819A81AB8153 +:10977000BC8180839183A283B383F101EE0FFF1F2D +:10978000ED53F94E118210820AC0108211821282AA +:109790001382D4014D925D926D927C92139720E0DA +:1097A00030E040E85FE3F801E459F84E60817181F0 +:1097B000828193810F940AC081118BC0AA2059F035 +:1097C0002DEC3CEC4CE45FE3C301B2010F940BC3FE +:1097D0009B01AC0104C020E030E046E153E4698124 +:1097E0007A818B819C810F940AC087FF72C04101EE +:1097F000880C991CF401ED53F94E808191810196FA +:1098000091838083AA2019F020E130E002C028E093 +:1098100030E0281739070CF05CC0F801E953F94E25 +:10982000208131814281538169817A818B819C8140 +:109830000F9419BF20E030E040E050E40F940AC0DC +:109840009101220F331F3C872B8787FF09C0F4014A +:10985000E154F94E8081918101969183808306C005 +:10986000EB85FC85E154F94E11821082F401E1543C +:10987000F94E20813181AA2019F082E090E002C0E7 +:1098800085E090E0821793079CF480911D1888234F +:1098900021F080E090E00F94AD716A2D81E0EFDD62 +:1098A00080911D18882321F08BE590E00F94AD7115 +:1098B000F801E953F94E89819A81AB81BC8180839B +:1098C0009183A283B383EB85FC85ED53F94E11821E +:1098D0001082A301920169817A818B819C810F940E +:1098E00039C287FD19C0D801A459B84E4D0120E0F6 +:1098F00030E040E85FE36D917D918D919C910F94F4 +:109900000AC0811109C080E090E0A0E0B0E4F40159 +:1099100080839183A283B38320E030E0A901C70153 +:10992000B6010F9439C218160CF074C02D813E8117 +:109930004F815885C301B2010F9419BF29813A8123 +:109940004B815C810F940AC087FF1AC02D813E8134 +:109950004F815885C301B2010F941ABF9B01AC011E +:1099600069817A818B819C810F940AC087FF08C02E +:10997000F101EE0FFF1FEC5BF84E118210824AC01E +:10998000F801E459F84E20E030E040E85FE3608100 +:109990007181828193810F9439C21816DCF5F1012F +:1099A000EE0FFF1FEC5BF84E808191810196918351 +:1099B0008083880F991F29853A852817390754F520 +:1099C00080911D18882321F080E090E00F94AD7104 +:1099D0006A2D80E054DD80911D188823D9F08AE536 +:1099E00090E02C960FB6F894DEBF0FBECDBFDF918E +:1099F000CF911F910F91FF90EF90DF90CF90AF909C +:109A00009F908F907F906F905F904F903F902F909E +:109A10000D94AD712C960FB6F894DEBF0FBECDBF7E +:109A2000DF91CF911F910F91FF90EF90DF90CF903A +:109A3000AF909F908F907F906F905F904F903F90EE +:109A40002F9008952F923F924F925F926F927F9244 +:109A50008F929F92AF92BF92CF92DF92EF92FF923E +:109A60000F931F93CF93DF93CDB7DEB728970FB631 +:109A7000F894DEBF0FBECDBF80911B17882309F479 +:109A80002FC30F945E446091221770E080E090E055 +:109A90000F94ACC06B017C01409034175090351787 +:109AA000609036177090371760914017709141178A +:109AB000882777FD8095982F0F94ACC0AB01BC012F +:109AC000AA24A3949301820180E090E0B7DD609125 +:109AD000D91670E080E090E00F94ACC06B017C017F +:109AE00040903A1750903B1760903C1770903D178C +:109AF0006091421770914317882777FD8095982FC2 +:109B00000F94ACC0AB01BC01A12C9301820181E098 +:109B100090E094DD80903A1790903B17A0903C170E +:109B2000B0903D170091421710914317B801882754 +:109B300077FD8095982F0F94ACC0A50194010F94E8 +:109B400019BF6B017C016093031770930417809316 +:109B500005179093061720E030E040E251E40F949F +:109B600039C2181624F481E08093FA16F7C020E079 +:109B700030E040E251ECC701B6010F940AC087FD06 +:109B800002C0012B21F481E08093FA160CC1809170 +:109B9000FA16882351F01092171710921817109286 +:109BA000191710921A171092FA16209196023091F6 +:109BB00097024091980250919902C701B6010F9403 +:109BC0000BC369837A838B839C8360930F17709395 +:109BD0001017809311179093121720911717309137 +:109BE00018174091191750911A17C701B6010F9411 +:109BF0001ABF2B013C012090FF16309000171091E6 +:109C00000117009102179101412F502F0F940AC0A4 +:109C100087FD14C02090FB163090FC161091FD16A5 +:109C20000091FE169101412F502FB201C3010F94F4 +:109C300039C218161CF01201162D072DC101A12FD3 +:109C4000B02F8093171790931817A0931917B093FC +:109C50001A172091920230919302409194025091F0 +:109C60009502B101812F902F0F940BC36D837E83DA +:109C70008F83988760930B1770930C1780930D1741 +:109C800090930E17209113173091141740911517C8 +:109C900050911617C501B4010F9419BF20918E027F +:109CA00030918F0240919002509191020F940BC31A +:109CB00020ED3CEC4CE45DE30F940BC32B013C0125 +:109CC00023E333E343E75FE36091071770910817DD +:109CD0008091091790910A170F940BC39B01AC0157 +:109CE000C301B2010F941ABF2B013C016093071707 +:109CF000709308178093091790930A172D813E815E +:109D00004F81588569817A818B819C810F941ABF1C +:109D1000A30192010F9419BF2B013C0120E030E018 +:109D20004FE753E40F9439C220E030E0A901181640 +:109D3000E4F4C701B6010F9439C218167CF4A701E8 +:109D40009601B101812F902F0F9419BF60931717BF +:109D5000709318178093191790931A17412C512C50 +:109D6000BFE76B2EB3E47B2E21C0C301B2010F9479 +:109D70000AC087FF1BC020E030E0A901C701B6017F +:109D80000F940AC087FF0FC0A7019601B101812F70 +:109D9000902F0F9419BF6093171770931817809323 +:109DA000191790931A17412C512C320180921317D6 +:109DB00090921417A0921517B09216176091D116B1 +:109DC0007091D216882777FD8095982F0F94ACC09C +:109DD0009B01AC01C501B4010F9439C21816DCF423 +:109DE00060917A0270917B02882777FD8095982F89 +:109DF0000F94ACC09B01AC01C501B4010F940AC023 +:109E000087FF09C0C301B2010F9479C075956795AA +:109E10006093D91602C01092D9160F9424B70091FE +:109E2000D5161091D6162091D7163091D816601BF2 +:109E3000710B820B930B653C79408105910560F0B5 +:109E40000F94CA440F9424B76093D5167093D61616 +:109E50008093D7169093D81680903417909035172A +:109E6000A0903617B0903717609140177091411746 +:109E7000882777FD8095982F0F94ACC0A501940199 +:109E80000F9419BF6B017C016093E2167093E31687 +:109E90008093E4169093E516209186023091870214 +:109EA00040918802509189020F940BC369837A8391 +:109EB0008B839C836093EE167093EF168093F0165D +:109EC0009093F1162091F6163091F7164091F816FE +:109ED0005091F916C701B6010F941ABF8B011C01EE +:109EE0006090DE167090DF165090E0164090E116FC +:109EF0009301452D542D0F940AC087FD11C0609029 +:109F0000DA167090DB165090DC164090DD16930147 +:109F1000452D542DB801C1010F9439C218161CF4F7 +:109F20008301252C342CC801D1018093F61690931F +:109F3000F716A093F816B093F9162091820230918B +:109F400083024091840250918502B801C1010F94AF +:109F50000BC36D837E838F8398876093EA1670931B +:109F6000EB168093EC169093ED162091F21630913B +:109F7000F3164091F4165091F516C501B4010F94F3 +:109F800019BF20917E0230917F0240918002509152 +:109F900081020F940BC320ED3CEC4CE45DE30F9485 +:109FA0000BC32B013C0123E333E343E75FE3609101 +:109FB000E6167091E7168091E8169091E9160F94D5 +:109FC0000BC39B01AC01C301B2010F941ABF2B015B +:109FD0003C016093E6167093E7168093E816909321 +:109FE000E9168092F2169092F316A092F416B092AF +:109FF000F5162D813E814F81588569817A818B814B +:10A000009C810F941ABFA30192010F9419BF2B01D9 +:10A010003C0120E030E04FE753E40F9439C220E0E8 +:10A0200030E0A9011816ACF4C701B6010F9439C28B +:10A0300018166CF5A7019601B801C1010F9419BF5C +:10A040006093F6167093F7168093F8169093F916AE +:10A050001EC0C301B2010F940AC087FF22C020E0D6 +:10A0600030E0A901C701B6010F940AC087FF16C0EE +:10A07000A7019601B801C1010F9419BF6093F616AC +:10A080007093F7168093F8169093F91607C0412C39 +:10A09000512CFFE76F2EF3E47F2E03C0412C512C8F +:10A0A000320120E030E040E751E4C501B4010F94F3 +:10A0B00039C218169CF420E030E046E153E4C501B3 +:10A0C000B4010F940AC087FF09C0C301B2010F9405 +:10A0D00079C0759567956093221702C01092221778 +:10A0E00028960FB6F894DEBF0FBECDBFDF91CF919B +:10A0F0001F910F91FF90EF90DF90CF90BF90AF90A6 +:10A100009F908F907F906F905F904F903F902F9097 +:10A110000895CF93C82F0F94BA450E9443708111C0 +:10A1200034C0E2E4FDE09491992341F08091C000B5 +:10A1300085FFFCCF9093C6003196F5CF6C2F70E071 +:10A140004AE050E080EF96E00E94185D8091C000E8 +:10A1500085FFFCCF8AE08093C600EAE9F7E98491A5 +:10A16000882341F09091C00095FFFCCF8093C600FA +:10A170003196F5CF8091C00085FFFCCF8AE08093B7 +:10A18000C6008DE897E90F9475620E94FA6F80917E +:10A1900001018062809301018091010188608093B8 +:10A1A0000101809101018460809301019FB7F894BF +:10A1B000809102018860809302019FBF9FB7F8944D +:10A1C000809102018062809302019FBF9FB7F89443 +:10A1D000809102018460809302019FBF8FEF90E025 +:10A1E00090930B0A80930A0A80911D18882329F006 +:10A1F0008DE590E0CF910D94AD71CF910895CF93FF +:10A20000C82F0F94BA450E944370811134C0E2E414 +:10A21000FDE09491992341F08091C00085FFFCCF2F +:10A220009093C6003196F5CF6C2F70E04AE050E075 +:10A2300080EF96E00E94185D8091C00085FFFCCF02 +:10A240008AE08093C600E0E6F7E98491882341F034 +:10A250009091C00095FFFCCF8093C6003196F5CF5A +:10A260008091C00085FFFCCF8AE08093C60083E523 +:10A2700097E90F9475620E94FA6F80911D188823E8 +:10A2800029F08CE590E0CF910D94AD71CF910895B8 +:10A29000A5980E944370811125C0E2E4FDE08491FD +:10A2A000882341F09091C00095FFFCCF8093C600B9 +:10A2B0003196F5CFEAE1F7E98491882341F0909156 +:10A2C000C00095FFFCCF8093C6003196F5CF8091FA +:10A2D000C00085FFFCCF8AE08093C60089E097E943 +:10A2E0000F9475620C94FA6FA5980E9443708111C7 +:10A2F00025C0E2E4FDE08491882341F09091C00004 +:10A3000095FFFCCF8093C6003196F5CFE0EDF6E9DE +:10A310008491882341F09091C00095FFFCCF8093F9 +:10A32000C6003196F5CF8091C00085FFFCCF8AE052 +:10A330008093C6008FEB96E90F9475620C94FA6FC8 +:10A340001F920F920FB60F9211240BB60F920F931C +:10A350001F932F933F934F935F936F937F938F93AD +:10A360009F93AF93BF93CF93DF93EF93FF9380912E +:10A370007702811112C08091D9168093BE1688236E +:10A3800011F0759A01C07598809122178093BD16BF +:10A39000882311F0A59A01C0A5989091BE168091CE +:10A3A0007702981708F475989091BD1680917702FE +:10A3B000981708F4A598809177028F5F8F77809324 +:10A3C00077028091760290E08B30910508F093C07F +:10A3D000FC01EE58FF4F0D943AC510927B0080E4CB +:10A3E00080937C0080917A00806480937A000F943F +:10A3F0007E6281E019C020917800309179008091CF +:10A40000B9169091BA16A091BB16B091BC16820FE6 +:10A41000931FA11DB11D8093B9169093BA16A093F6 +:10A42000BB16B093BC1682E08093760264C0109293 +:10A430007B0082E480937C0080917A00806480932A +:10A440007A000F947E6283E0EFCF20917800309104 +:10A4500079008091B5169091B616A091B716B0917B +:10A46000B816820F931FA11DB11D8093B51690934E +:10A47000B616A093B716B093B81684E0D5CF109255 +:10A480007B0081E480937C0080917A0080648093DB +:10A490007A000F947E6285E0C7CF209178003091DA +:10A4A00079008091B1169091B216A091B316B09137 +:10A4B000B416820F931FA11DB11D8093B116909306 +:10A4C000B216A093B316B093B41686E0ADCF0F9436 +:10A4D0007E6287E0A9CF88E0A7CF0F947E6289E0F3 +:10A4E000A3CF109276028091B0168F5F8093B01642 +:10A4F00002C0109276028091B016803108F463C0D9 +:10A5000080911B17811110C08091B9169091BA16D5 +:10A5100090933F1780933E178091B5169091B61691 +:10A52000909339178093381781E080931B1710920E +:10A53000B0161092B9161092BA161092BB1610925D +:10A54000BC161092B1161092B2161092B316109259 +:10A55000B4161092AC161092AD161092AE16109260 +:10A56000AF161092B5161092B6161092B71610923A +:10A57000B81620913E1730913F178091D3169091D5 +:10A58000D4168217930714F080E0C3DD20913E17A4 +:10A5900030913F1780917C0290917D0228173907F6 +:10A5A00014F080E02CDE209138173091391780911B +:10A5B000CF169091D016821793072CF01092411766 +:10A5C0001092401765DE209138173091391780912D +:10A5D000780290917902281739070CF085DE00E0A7 +:10A5E00010E0E801CC0FDD1FC45ED84E8881998150 +:10A5F0001816190644F461E0802F0F94623F888199 +:10A600009981019709C0892B49F060E0802F0F9450 +:10A61000623F888199810196998388830F5F1F4FDC +:10A6200003301105F1F6FF91EF91DF91CF91BF91CA +:10A63000AF919F918F917F916F915F914F913F91DA +:10A640002F911F910F910F900BBE0F900FBE0F9087 +:10A650001F9018952CEA35EC47E25EE30D940BC38E +:10A660002CEA35EC47E25EE30D9411C02CEA35ECA0 +:10A6700047E25EE30D9411C02CEA35EC47E25EE35D +:10A680000D940BC3FC019491903249F0892F8B7F7C +:10A69000893029F081E09A3019F080E0089581E056 +:10A6A0000895CF93DF93CDB7DEB7C054D1090FB66D +:10A6B000F894DEBF0FBECDBF88E0E8EEF2E0DE0129 +:10A6C000D99601900D928A95E1F788E0E0EFF2E0EB +:10A6D000DE01D19601900D928A95E1F788E0E8EFCE +:10A6E000F2E0DE01999601900D928A95E1F788E0FB +:10A6F000E0E0F3E0DE01919601900D928A95E1F79A +:10A7000088E0E8E0F3E0DE01599601900D928A9529 +:10A71000E1F788E0E0E1F3E0DE01519601900D926F +:10A720008A95E1F788E0E8E1F3E0DE01199601900F +:10A730000D928A95E1F788E0E0E2F3E0DE01119600 +:10A7400001900D928A95E1F7AE01475C5F4F60E0A2 +:10A7500084EA97E10E94675BAE014F5C5F4F61E066 +:10A7600084EA97E10E94675BAE01475D5F4F62E05C +:10A7700084EA97E10E94675BAE014F5D5F4F63E043 +:10A7800084EA97E10E94675BAE01475E5F4F64E039 +:10A7900084EA97E10E94675BAE014F5E5F4F65E020 +:10A7A00084EA97E10E94675BAE01475F5F4F66E016 +:10A7B00084EA97E10E94675BAE014F5F5F4F67E0FD +:10A7C00084EA97E10E94675BC05CDF4F0FB6F894A4 +:10A7D000DEBF0FBECDBFDF91CF9108950F931F93C2 +:10A7E000CF93DF93EB01142F022F482F60E084EA10 +:10A7F00097E10E94C959612F84EA97E10F94E4B967 +:10A8000011E1FE016491662311F0111117C01123AB +:10A8100039F060E284EA97E10F94E4B91150F7CF80 +:10A82000602F84EA97E10F94E4B960E284EA97E14B +:10A83000DF91CF911F910F910D94E4B984EA97E1D4 +:10A840000F94E4B921961150DCCFEF92FF920F9351 +:10A850001F93CF93DF93EB01E42E8901F90101905F +:10A860000020E9F7F22EFE1A92E1F90E482F60E07F +:10A8700084EA97E10E94C9596E2D84EA97E10F940A +:10A88000E4B9FE016491662311F0F11019C06AE386 +:10A8900084EA97E10F94E4B9FF2039F060E284EA9A +:10A8A00097E10F94E4B9FA94F7CFB80184EA97E1FD +:10A8B000DF91CF911F910F91FF90EF900D94E3B92D +:10A8C00084EA97E10F94E4B92196FA94DACFCF9213 +:10A8D000DF92EF92FF920F931F93CF93DF93D82EC7 +:10A8E000C62E7A01E901482F84EA97E10E94C959EE +:10A8F00081E0E816F10469F182E0E816F10409F05C +:10A900004FC0BE0184EA97E10F94E3B9FE010190C4 +:10A910000020E9F73197EC1BFD0B6C2D6E0F4D2DD0 +:10A9200084EA97E10E94C95969E375E084EA97E1F6 +:10A930000F94E3B9FE0101900020E9F76C2D6C1B28 +:10A940006E0F4D2D84EA97E10E94C9596EE175E0C2 +:10A9500028C0BE0184EA97E10F94E3B9FE0101909B +:10A960000020E9F73197EC1BFD0B6C2D6E0F4D2D80 +:10A9700084EA97E10E94C95969E375E084EA97E1A6 +:10A980000F94E3B9FE0101900020E9F76C2D6C1BD8 +:10A990006E0F4D2D84EA97E10E94C959B80101C09C +:10A9A000BE0184EA97E1DF91CF911F910F91FF9053 +:10A9B000EF90DF90CF900D94E3B98093530A91E02C +:10A9C00090939E02682F8EEF9FE00F946FCB809143 +:10A9D0008E17813019F482E080938E170895E3E694 +:10A9E000FCE0608181E0682760838BEB9FE00D9441 +:10A9F0006FCBCF9380910101846080930101CAE005 +:10AA00009FB7F894809102018460809302019FBFF8 +:10AA100084E690E00F948AB79FB7F8948091020182 +:10AA20008B7F809302019FBF84E690E00F948AB7EA +:10AA3000C15031F7CF91089582E080939B0210922C +:10AA40000718D7CF109224188DE99AE00E9403D3FB +:10AA50001092A21708950F93E0919C02F0919D022D +:10AA6000E817F907C9F090939D0280939C024093E8 +:10AA70009D1750939E1760939F177093A017002304 +:10AA800039F08DE1E6E2F8E1DF011D928A95E9F700 +:10AA9000222311F00F91D0CF0F9108950F9361E011 +:10AAA00080EC9FE00F946FCB60E08FEB9FE00F9402 +:10AAB0006FCB60E08EEB9FE00F946FCB60E08DEB8F +:10AAC0009FE00F946FCB60E08CEB9FE00F946FCB17 +:10AAD00001E020E040E050E0BA018AE991E0BBDF0C +:10AAE000109236180F9108950F93FB01BA01A90136 +:10AAF00020919C0230919D023093271820932618B4 +:10AB000020919D1730919E17309329182093281873 +:10AB100022E020939B0290932B1880932A18F093A5 +:10AB20002D18E0932C18CB01AA2797FDA095BA2FDA +:10AB300080932E1890932F18A0933018B09331184B +:10AB4000662757FD6095762F481B590B6A0B7B0BC8 +:10AB5000409332185093331860933418709335181B +:10AB600040815181662757FD6095762F481B590B10 +:10AB70006A0B7B0B00E021E088E391E06CDF0F9132 +:10AB800008950F9361E080912318811160E0609334 +:10AB900023188FEF9FE00F946FCB0F944E4001E08E +:10ABA00021E047E050E060E070E082E391E053DFB5 +:10ABB0000F9108950F9361E080912318811160E057 +:10ABC000609323188FEF9FE00F946FCB0F944E404C +:10ABD00001E021E049E050E060E070E088E691E0CB +:10ABE0003ADF0F9108950F9301E021E040E050E03B +:10ABF000BA0131DF0F9108957F928F929F92AF92A9 +:10AC0000BF92CF92DF92EF92FF920F931F93CF9359 +:10AC1000DF9380919D1790919E17A0919F17B091FF +:10AC2000A01781309048A105B10540F010929D1702 +:10AC300010929E1710929F171092A01780919D1747 +:10AC400090919E17A0919F17B091A0174091A217C5 +:10AC500050E060E070E084179507A607B70710F48E +:10AC60008093A217A090A2179090A31792FA99240C +:10AC700090F8B12C8824839480918E17811127C07D +:10AC8000AA2019F07724739425C080919B02882311 +:10AC9000D9F0E091530AF0E0EE0FFF1FE558F448B9 +:10ACA0006591749180919D1790919E17A0919F1727 +:10ACB000B091A01723E0892B8A2B8B2B11F443E052 +:10ACC00001C040E28B2D8ADD91100DC0DBCF8230B8 +:10ACD000D9F0712C05ED1FE7C0E0D0E0CA2CD12CD3 +:10ACE000E12CF12C60C080919D1790919E17A0914E +:10ACF0009F17B091A017892B8A2B8B2B09F0C2CFFD +:10AD00009BDE82E391E034C0A110BCCF80919B0216 +:10AD10008823D9F0E091530AF0E0EE0FFF1FE750CF +:10AD2000F6486591749180919D1790919E17A0911E +:10AD30009F17B091A01723E0892B8A2B8B2B11F43E +:10AD400043E001C040E28B2D49DD992009F49ACF00 +:10AD500080919D1790919E17A0919F17B091A01779 +:10AD6000892B8A2B8B2B09F08DCF66DE80E691E054 +:10AD7000DF91CF911F910F91FF90EF90DF90CF90D7 +:10AD8000BF90AF909F908F907F902DCF80919B022E +:10AD900081110CC0911021C0739421960E5F1F4F3A +:10ADA000C730D105B9F17A10F7CFF0CFF80165912E +:10ADB000749180919D1790919E17A0919F17B091CB +:10ADC000A01720E28C159D05AE05BF0511F44EE3DA +:10ADD00001C040E28B2D02DDDDCF80919D17909167 +:10ADE0009E17A0919F17B091A0178C159D05AE05D9 +:10ADF000BF0591F621DE8C2FDF91CF911F910F912E +:10AE0000FF90EF90DF90CF90BF90AF909F908F908A +:10AE10007F90D3CD472D50E060E070E080919D178A +:10AE200090919E17A0919F17B091A0178417950736 +:10AE3000A607B70780F0472D50E04150510966271B +:10AE400057FD6095762F40939D1750939E17609302 +:10AE50009F177093A01740919D178091A21790E0C3 +:10AE60000396242F30E0821793075CF48DEF840F54 +:10AE70008093A21780929B028CEFA82EA40EBB2475 +:10AE8000BA94B394A39483E08B1508F0F5CEDF91C8 +:10AE9000CF911F910F91FF90EF90DF90CF90BF90D7 +:10AEA000AF909F908F907F9008950F9301E021E0E5 +:10AEB00040E050E0BA01CFDD0F910895CF92DF92CC +:10AEC000EF92FF920F931F93CF93DF9380919D1783 +:10AED00090919E17A0919F17B091A0178130904834 +:10AEE000A105B10540F010929D1710929E17109287 +:10AEF0009F171092A01780919D1790919E17A09177 +:10AF00009F17B091A0174091A21750E060E070E049 +:10AF100084179507A607B70710F48093A217D0915E +:10AF2000A2171091A31712FB112710F9C0E024E01B +:10AF3000C22ED12CE12CF12C01E040919D175091B3 +:10AF40009E1760919F177091A017D11134C0809106 +:10AF50009B028823A1F0E091530AF0E0EE0FFF1F5F +:10AF6000E558F4488591949123E0452B462B472BD7 +:10AF700011F443E001C040E2BC018C2F2FDC11230F +:10AF800009F4DBC080919D1790919E17A0919F17A7 +:10AF9000B091A017892B8A2B8B2B09F0CEC04CDDEA +:10AFA00082E391E0DF91CF911F910F91FF90EF909D +:10AFB000DF90CF9018CED13069F580919B02882325 +:10AFC000A9F0E091530AF0E0EE0FFF1FED50F148B9 +:10AFD000859194912EE7413051056105710511F479 +:10AFE0004EE301C040E2BC018C2FF8DB112309F4D1 +:10AFF000A4C080919D1790919E17A0919F17B0912A +:10B00000A0170197A105B10509F097C015DD8CE5E2 +:10B0100091E08AC0D23069F580919B028823A9F023 +:10B02000E091530AF0E0EE0FFF1FEB51F1488591DC +:10B0300094912EE7423051056105710511F44EE3FC +:10B0400001C040E2BC018C2FC9DB112309F475C09B +:10B0500080919D1790919E17A0919F17B091A01776 +:10B060000297A105B10509F068C0E6DC86ED91E024 +:10B070005BC0D33069F580919B028823A9F0E091F1 +:10B08000530AF0E0EE0FFF1FE952F14885919491C9 +:10B090002EE7433051056105710511F44EE301C0FF +:10B0A00040E2BC018C2F9ADB112309F446C0809149 +:10B0B0009D1790919E17A0919F17B091A01703978D +:10B0C000A105B10509F039C0B7DC80EB91E02CC0D7 +:10B0D000D43099F580919B028823A9F0E091530A1E +:10B0E000F0E0EE0FFF1FEF5FF048859194912EE79F +:10B0F000443051056105710511F44EE301C040E291 +:10B10000BC018C2F6BDB1123C1F080919D179091B6 +:10B110009E17A0919F17B091A0170497A105B105A4 +:10B1200061F48ADC8AE891E0DF91CF911F910F9161 +:10B13000FF90EF90DF90CF90B8CE40919D17509147 +:10B140009E1760919F177091A017453051056105BA +:10B15000710540F0C0929D17D0929E17E0929F1704 +:10B16000F092A01740919D178091A21790E003964E +:10B17000242F30E0821793074CF48DEF840F8093D7 +:10B18000A21700939B02DCEFD40FCFEFCF5FDF5FFE +:10B19000C43008F4D2CEDF91CF911F910F91FF9070 +:10B1A000EF90DF90CF90089580E090E0A0E8BFE3BB +:10B1B00080938A1790938B17A0938C17B0938D1759 +:10B1C0007DCE0F936091800A81E068276093800AAA +:10B1D0008FEA9FE00F946FCB0F944E4001E021E087 +:10B1E00042E050E060E070E088EC91E034DC0F91E8 +:10B1F000089520E044E064E184EA97E10E94FC596C +:10B2000050DA84EA97E10C94BD590F93F2DF01E024 +:10B2100020E040E050E0BA0180E691E01CDC0F91B4 +:10B220000895F3DF86E090E0909322188093211830 +:10B230000895EBDF85E090E0909322188093211829 +:10B24000089581E08093540A61E08AE39BE90E94BB +:10B25000B563DBCF61E086E39BE90E94B563D5CFA0 +:10B2600061E080E39BE90E94B563CFCF61E08CE2AF +:10B270009BE90E94B563C9CF109243171092421701 +:10B28000109241171092401710920B0A10920A0A5E +:10B29000BCCF87ED90E0909343178093421787E3EC +:10B2A00090E0909341178093401710920B0A1092F0 +:10B2B0000A0AABDF0D94B9458FEF90E090934317E6 +:10B2C0008093421784E690E0909341178093401753 +:10B2D00010920B0A10920A0A98DF0D94B9458EEF6E +:10B2E00090E0909343178093421784E690E0909308 +:10B2F00041178093401710920B0A10920A0A85DFBB +:10B300000D94B94580EF90E09093431780934217D6 +:10B310008AE590E0909341178093401710920B0AB2 +:10B3200010920A0A72DF0D94B9458CED90E090936B +:10B3300043178093421784E690E0909341178093DF +:10B34000401710920B0A10920A0A5FDF0D94B9455C +:10B3500086EE90E0909343178093421782E390E04B +:10B36000909341178093401710920B0A10920A0A8B +:10B370004CDF0D94B945E1E2F5E02191222339F04B +:10B380003091C00035FFFCCF2093C600F6CF4AE0D5 +:10B3900050E0BC0180EF96E00E94185DE5ECF5E01E +:10B3A0008191882339F09091C00095FFFCCF809364 +:10B3B000C600F6CF0895E6EAF5E08191882339F0DA +:10B3C0009091C00095FFFCCF8093C600F6CF6091AE +:10B3D0001B1870911C184AE050E080EF96E00E9424 +:10B3E000185DE5ECF5E08191882339F09091C0007B +:10B3F00095FFFCCF8093C600F6CF0895E7E2F5E015 +:10B400008191882339F09091C00095FFFCCF809303 +:10B41000C600F6CF60914217709143174AE050E0A2 +:10B4200080EF96E00E94185DEDE2F5E081918823BF +:10B4300039F09091C00095FFFCCF8093C600F6CF05 +:10B4400060914017709141174AE050E080EF96E01C +:10B450000E94185DE4E3F5E08191882339F0909132 +:10B46000C00095FFFCCF8093C600F6CF40913A17FD +:10B4700050913B1760913C1770913D1722E030E0EE +:10B4800080EF96E00E940B5EEBE3F5E0819188236C +:10B4900039F09091C00095FFFCCF8093C600F6CFA5 +:10B4A00040913417509135176091361770913717C6 +:10B4B00022E030E080EF96E00E940B5EE5ECF5E0E4 +:10B4C0008191882339F09091C00095FFFCCF809343 +:10B4D000C600F6CF08951F93CF93DF93C62F482F52 +:10B4E00060E084EA97E10E94C9596C2F84EA97E1F1 +:10B4F0000F94E4B9CCE2D8E111E16991662311F02F +:10B50000111116C0112339F060E284EA97E10F941B +:10B51000E4B91150F7CF63E084EA97E10F94E4B9FE +:10B5200060E284EA97E1DF91CF911F910D94E4B935 +:10B5300084EA97E10F94E4B91150DFCF2F923F9244 +:10B540004F925F926F927F928F929F92AF92BF9233 +:10B55000CF92DF92EF92FF920F931F93CF93DF93DF +:10B56000CDB7DEB7A2970FB6F894DEBF0FBECDBF42 +:10B5700080919B02811104C08091A31782FFA9C210 +:10B580008DE99AE00E94F4D140919D1750919E1749 +:10B5900060919F177091A017413050486105710567 +:10B5A00040F010929D1710929E1710929F171092C4 +:10B5B000A01740919D1750919E1760919F17709111 +:10B5C000A0170091A21710E020E030E040175107CB +:10B5D0006207730710F44093A2174090A2173090AF +:10B5E000A31732FA332430F8512C9C012150310931 +:10B5F00039A328A3411032C080919B028823D9F03F +:10B60000E091530AF0E0EE0FFF1FEF58F04865910C +:10B61000749180919D1790919E17A0919F17B09162 +:10B62000A01723E0892B8A2B8B2B11F443E001C058 +:10B6300040E2852DD3D8332089F080919D179091D9 +:10B640009E17A0919F17B091A017892B8A2B8B2B47 +:10B6500029F4F2D982EB91E0C6DA3BC261EA7AE0E2 +:10B660008BE09BE00E94FAB98091A10A8F3229F009 +:10B6700031E0431669F022E001C021E0A8A0B9A0A2 +:10B68000C42CD12CE12CF12C22242394240C41C075 +:10B6900080919B028823A1F080919D1790919E1725 +:10B6A000A0919F17B091A01720E20197A105B105C5 +:10B6B00011F44EE301C040E26BE67DE9852D8ED8A2 +:10B6C0003320C9F280919D1790919E17A0919F17EA +:10B6D000B091A0170197A105B10569F6ADD9B2D90E +:10B6E000F8C1241177C140E050E0B5018DE99AE03E +:10B6F0000E9457CE9091E30A80919B02992309F40E +:10B700009BC081110BC0311079C0222D31E0A31AEA +:10B71000B1088FEFA816B80621F75EC1E091530A71 +:10B72000F0E0EE0FFF1FEF55FE4785919491809159 +:10B730009D1790919E17A0919F17B091A017452D2E +:10B7400060E08C159D05AE05BF0561F584EA97E1C3 +:10B750000E94C9596EE384EA97E10F94E4B965E069 +:10B7600084EA97E10F94E4B98091AE0A882329F026 +:10B770001092C00A0EEA1AE002C001EA1AE082E161 +:10B78000982EF80161918F01662311F0911062C12A +:10B79000992009F4B8CF60E284EA97E10F94E4B904 +:10B7A0009A94F6CF84EA97E10E94C95960E284EA4C +:10B7B00097E10F94E4B965E084EA97E10F94E4B966 +:10B7C0008091AE0A882329F01092C00A0EEA1AE08E +:10B7D00002C001EA1AE0B2E19B2EF80161918F01EB +:10B7E000662311F091103CC1992009F48CCF60E2DE +:10B7F00084EA97E10F94E4B99A94F6CF80919D176B +:10B8000090919E17A0919F17B091A0178C159D0540 +:10B81000AE05BF0509F079CF0FD961EA7AE08DE96D +:10B820009AE00E9457D210929D1710929E17109284 +:10B830009F171092A0174DC1811103C0311076C01F +:10B8400064CFE091530AF0E0EE0FFF1FEF55FE4783 +:10B850008591949180919D1790919E17A0919F172B +:10B86000B091A0178C159D05AE05BF05B1F52091CF +:10B8700043182F8F10E0412F60E084EA97E10E9487 +:10B88000C95960E284EA97E10F94E4B91F5F14306C +:10B8900091F7452D60E084EA97E10E94C9596EE373 +:10B8A00084EA97E10F94E4B96FEA862E6AE0962E57 +:10B8B0007EEA672E7AE0772E01E010E0F301219115 +:10B8C0003F012111D3C014E1101B60E284EA97E12B +:10B8D0000F94E4B91150C9F7B1CF452D60E084EA67 +:10B8E00097E10E94C95960E284EA97E10F94E4B9B4 +:10B8F0008091AE0A882329F01092C10A0EEA1AE05C +:10B9000002C001EA1AE053E1952EF80161918F011E +:10B91000662311F09110D7C0992009F48FCF60E20F +:10B9200084EA97E10F94E4B99A94F6CF80919D1739 +:10B9300090919E17A0919F17B091A0178C159D050F +:10B94000AE05BF0509F0E1CE77D81092460A81EA2C +:10B950009AE09F938F9384E69DE99F938F938E0146 +:10B960000F5F1F4F1F930F930F9441C90F900F90BC +:10B970000F900F900F900F907E01F5E0EF0EF11CED +:10B98000F7018081882349F0992787FD90950F94CE +:10B9900016C8F70181937F01F3CF60E0C8010E94D0 +:10B9A000B56341EAE42E4AE0F42E0EE91FE0F70108 +:10B9B00061917F01C8010F948DCB0F5F1F4F063A35 +:10B9C000FFE01F07A1F761E080E69DE90E94B563F3 +:10B9D0001CDC7FC02F5F9ACE822F90E0A0E0B0E009 +:10B9E00040919D1750919E1760919F177091A017DD +:10B9F000481759076A077B0778F0822F90E0019774 +:10BA0000AA2797FDA095BA2F80939D1790939E1714 +:10BA1000A0939F17B093A01740919D178091A217F4 +:10BA200090E00396242F30E08217930764F48DEFA3 +:10BA3000840F8093A21781E080939B023CEF432EFA +:10BA4000440E55245A945394439493E0951508F06A +:10BA5000D1CD3FC084EA97E10F94E4B99A9491CE96 +:10BA600084EA97E10F94E4B99A94B7CE452D602FFC +:10BA700084EA97E12AA30E94C9592AA1622F84EA85 +:10BA800097E10F94E4B90F5F1F4F0431110509F0DE +:10BA900015CF34010CE211E08091A31782FD05C09F +:10BAA000809143183F8D381739F001501109A1F7E3 +:10BAB0008FEF881A980A00CF61E070E080E090E094 +:10BAC0000F9453B7F2CF84EA97E10F94E4B99A94B4 +:10BAD0001CCFA2960FB6F894DEBF0FBECDBFDF918C +:10BAE000CF911F910F91FF90EF90DF90CF90BF907B +:10BAF000AF909F908F907F906F905F904F903F900E +:10BB00002F900895CF92DF92EF92FF920F931F93A1 +:10BB1000CF93DF9380919D1790919E17A0919F17CF +:10BB2000B091A01781309048A105B10540F0109266 +:10BB30009D1710929E1710929F171092A017809138 +:10BB40009D1790919E17A0919F17B091A0174091BB +:10BB5000A21750E060E070E084179507A607B707CA +:10BB600010F48093A217D091A2171091A31712FB83 +:10BB7000112710F9C0E0B7E0CB2ED12CE12CF12C2D +:10BB800001E040919D1750919E1760919F17709111 +:10BB9000A017D11137C080919B028823A9F0E091B2 +:10BBA000530AF0E0EE0FFF1FEF58F0488591949193 +:10BBB00023E0452B462B472B11F443E001C040E224 +:10BBC000BC018C2F0F94EE53112309F46AC18091AC +:10BBD0009D1790919E17A0919F17B091A017892B48 +:10BBE0008A2B8B2B09F05DC10F941C5582EB91E0E1 +:10BBF000DF91CF911F910F91FF90EF90DF90CF9049 +:10BC00000D94F355D13069F580919B02882371F032 +:10BC100020E2413051056105710511F44EE301C088 +:10BC200040E261E57DE98C2F0F94EE53112309F476 +:10BC300038C180919D1790919E17A0919F17B09148 +:10BC4000A0170197A105B10509F02BC10F941C5550 +:10BC5000DF91CF911F910F91FF90EF90DF90CF90E8 +:10BC600018CBD23069F580919B02882371F020E2D5 +:10BC7000423051056105710511F44EE301C040E207 +:10BC800061E47DE98C2F0F94EE53112309F409C16F +:10BC900080919D1790919E17A0919F17B091A0172A +:10BCA0000297A105B10509F0FCC00F941C55DF9166 +:10BCB000CF911F910F91FF90EF90DF90CF90FCCA32 +:10BCC000D33069F580919B02882371F020E24330E4 +:10BCD00051056105710511F44EE301C040E262E3D4 +:10BCE0007DE98C2F0F94EE53112309F4DAC0809173 +:10BCF0009D1790919E17A0919F17B091A017039741 +:10BD0000A105B10509F0CDC00F941C55DF91CF916D +:10BD10001F910F91FF90EF90DF90CF90F3CAD43036 +:10BD200069F580919B02882371F020E2443051052F +:10BD30006105710511F44EE301C040E262E27DE964 +:10BD40008C2F0F94EE53112309F4ABC080919D17F3 +:10BD500090919E17A0919F17B091A0170497A105ED +:10BD6000B10509F09EC00F941C55DF91CF911F9132 +:10BD70000F91FF90EF90DF90CF90D7CAD53069F543 +:10BD800080919B02882371F020E2453051056105C6 +:10BD9000710511F44EE301C040E262E17DE98C2FB0 +:10BDA0000F94EE53112309F47CC080919D1790915C +:10BDB0009E17A0919F17B091A0170597A105B105F7 +:10BDC00009F06FC00F941C55DF91CF911F910F9117 +:10BDD000FF90EF90DF90CF9082CAD63069F58091C6 +:10BDE0009B02882371F020E2463051056105710500 +:10BDF00011F44EE301C040E263E07DE98C2F0F9423 +:10BE0000EE53112309F44DC080919D1790919E1718 +:10BE1000A0919F17B091A0170697A105B10509F051 +:10BE200040C00F941C55DF91CF911F910F91FF904F +:10BE3000EF90DF90CF908CCAD73099F580919B021C +:10BE40008823B1F0E091530AF0E0EE0FFF1FE75AAC +:10BE5000FE478591949120E24730510561057105B7 +:10BE600011F44EE301C040E2BC018C2F0F94EE535D +:10BE70001123B9F080919D1790919E17A0919F1763 +:10BE8000B091A0170797A105B10559F40F941C555F +:10BE9000DF91CF911F910F91FF90EF90DF90CF90A6 +:10BEA000EBC940919D1750919E1760919F1770911B +:10BEB000A017483051056105710540F0C0929D17EB +:10BEC000D0929E17E0929F17F092A01740919D1775 +:10BED0008091A21790E00396242F30E082179307F9 +:10BEE0004CF48DEF840F8093A21700939B02DCEF3C +:10BEF000D40FCFEFCF5FDF5FC43008F442CEDF91C5 +:10BF0000CF911F910F91FF90EF90DF90CF90089508 +:10BF1000CF92DF92EF92FF920F931F93CF93DF9315 +:10BF200080919D1790919E17A0919F17B091A01797 +:10BF300081309048A105B10540F010929D171092F4 +:10BF40009E1710929F171092A01780919D179091A5 +:10BF50009E17A0919F17B091A0174091A21750E093 +:10BF600060E070E084179507A607B70710F4809388 +:10BF7000A217D091A2171091A31712FB112710F945 +:10BF8000C0E042E0C42ED12CE12CF12C01E0409124 +:10BF90009D1750919E1760919F177091A017D11116 +:10BFA00037C080919B028823A9F0E091530AF0E00A +:10BFB000EE0FFF1FE95BF0488591949123E0452B3C +:10BFC000462B472B11F443E001C040E2BC018C2F0B +:10BFD0000F94EE53112309F453C080919D17909153 +:10BFE0009E17A0919F17B091A017892B8A2B8B2B9E +:10BFF00009F046C00F941C558CE691E0DF91CF917B +:10C000001F910F91FF90EF90DF90CF900D94F3551B +:10C01000D130B1F580919B028823B1F0E091530AB1 +:10C02000F0E0EE0FFF1FE354FE47859194912EE759 +:10C03000413051056105710511F44EE301C040E244 +:10C04000BC018C2F0F94EE531123D1F080919D17DA +:10C0500090919E17A0919F17B091A0170197A105ED +:10C06000B10571F40F941C5580E891E0DF91CF91F8 +:10C070001F910F91FF90EF90DF90CF900D94555747 +:10C080008091800A40919D1750919E1760919F1753 +:10C090007091A01781110FC0D23009F041C080917A +:10C0A0009B02882311F1E091530AF0E0EE0FFF1F8D +:10C0B000E957F5480DC0D23099F580919B0288234D +:10C0C000A1F0E091530AF0E0EE0FFF1FE758F548AA +:10C0D0008591949120E24230510561057105F1F09E +:10C0E00040E2BC018C2F0F94EE531123C9F08091D4 +:10C0F0009D1790919E17A0919F17B091A01702973E +:10C10000A105B10569F40F941C55DF91CF911F91E2 +:10C110000F91FF90EF90DF90CF9053C84EE3E1CFA7 +:10C1200080919D1790919E17A0919F17B091A01795 +:10C130000397A105B10540F0C0929D17D0929E17BC +:10C14000E0929F17F092A01740919D178091A2173F +:10C1500090E00396242F30E0821793074CF48DEF84 +:10C16000840F8093A21700939B02DCEFD40FCFEFD4 +:10C17000CF5FDF5FC43008F40ACFDF91CF911F910A +:10C180000F91FF90EF90DF90CF900895CF93DF93C2 +:10C19000CDB7DEB728970FB6F894DEBF0FBECDBF80 +:10C1A00088E0E8E2F3E0DE01119601900D928A95B5 +:10C1B000E1F7AE014F5F5F4F61E084EA97E10E94D3 +:10C1C000675B28960FB6F894DEBF0FBECDBFDF9138 +:10C1D000CF910895CF93DF93CDB7DEB728970FB6F1 +:10C1E000F894DEBF0FBECDBF88E0E0E3F3E0DE01F0 +:10C1F000119601900D928A95E1F7AE014F5F5F4F66 +:10C2000061E084EA97E10E94675B28960FB6F89494 +:10C21000DEBF0FBECDBFDF91CF910895CF93DF93E7 +:10C22000CDB7DEB728970FB6F894DEBF0FBECDBFEF +:10C2300088E0E0EFF2E0DE01119601900D928A9520 +:10C24000E1F7AE014F5F5F4F61E084EA97E10E9442 +:10C25000675B28960FB6F894DEBF0FBECDBFDF91A7 +:10C26000CF91089584EA97E10C94BD594AE050E0DB +:10C27000BC0184EA97E10D9480BACF93DF93EA0181 +:10C28000462F682F84EA97E10E94C9594AE050E09E +:10C29000BE0184EA97E1DF91CF910D9480BA8EEFD1 +:10C2A0009FE00F945DCB873028F48093530A10925F +:10C2B0008E1708951092530A81E080938E17089587 +:10C2C0001F93CF93DF93EC01FB01608111810F94E9 +:10C2D0006FCB612FCE010196DF91CF911F910D940D +:10C2E0006FCBFF920F931F93CF93DF938C01EB01E2 +:10C2F0000F945DCBF82EC80101960F945DCBF882A8 +:10C300008983DF91CF911F910F91FF90089561E094 +:10C3100080EC9FE00F946FCB60E08FEB9FE00F9479 +:10C320006FCB60E08EEB9FE00F946FCB60E08DEB06 +:10C330009FE00F946FCB60E08CEB9FE00F946FCB8E +:10C3400010923C1810923B181092371810923E1819 +:10C3500010923D18109238181092401810923F1801 +:10C3600010923918109242181092411810923A18EF +:10C370000895EF92FF920F931F93CF93DF931F9235 +:10C38000CDB7DEB77B018C01061B170B460FC7012B +:10C39000800F911F49830F945DCBF70181937F013B +:10C3A00049814E13F4CF0F90DF91CF911F910F91E0 +:10C3B000FF90EF9008956EEF8EEF9FE00D946FCB9E +:10C3C00081E08093A70208950F931F93CF938091EC +:10C3D0001D18882371F10E944A65C82F0F9424B755 +:10C3E0000091910A1091920A2091930A3091940A37 +:10C3F000601B710B820B930B0F94AAC02FE632E1E6 +:10C4000043E85AE30F940BC3CC2329F020E030E03B +:10C4100040E752E404C020E030E046E154E40F94E9 +:10C4200039C218161CF41092A70203C081E0809351 +:10C43000A702CF911F910F910895809390171092AA +:10C440008F170895E0EFF7E101900020E9F73197A9 +:10C45000E05FF7411E161F0634F01092041882E0C8 +:10C4600080939B02089580E2E431F105B4F7DF0187 +:10C47000A051B84E8C933196F7CF20910518211119 +:10C4800008C044E150E0BC0180EF97E10F94EAC896 +:10C49000D9CF089520910518211108C044E150E03A +:10C4A000BC0180EF97E10F945DC8CCCF089561E0A7 +:10C4B0008EEF9CE90E94B56381E08093470A82E099 +:10C4C00090E09093450A8093440AE091530AF0E08B +:10C4D000EE0FFF1FEF57FF4785919491DBDF0F941D +:10C4E000055983E080939B020895D4DF81E0809317 +:10C4F00005180D9405591092051808950F931F9370 +:10C50000CF93C0910301C2FBCC27C0F981E0C827BB +:10C510008091030181FFC26080919A02882309F40F +:10C52000C4C08091000186FD89C00F9424B768566D +:10C53000754C8F4F9F4F609386177093871780932A +:10C540008817909389170F9424B7009108181091B9 +:10C55000091820910A1830910B1806171707280799 +:10C56000390708F0A6C00F9424B768537F4F8F4F48 +:10C570009F4F609308187093091880930A1890933E +:10C580000B188091071881112EC08091101881110D +:10C590002AC080919C0290919D0221E0803B9207ED +:10C5A000A1F0909397178093961780919D17909183 +:10C5B0009E17A0919F17B091A01780939917909301 +:10C5C0009A17A0939B17B0939C170F9424B760936E +:10C5D0000C1870930D1880930E1890930F1881E02B +:10C5E0008093071866C00F9424B700910C1810911F +:10C5F0000D1820910E1830910F18601B710B820BD3 +:10C60000930B693E73408105910508F452C081E0A7 +:10C610008093101880E090E0A0E8BFE380938A1731 +:10C6200090938B17A0938C17B0938D1701E021E0A6 +:10C6300040E050E0BA0180EB91E02BC080910718F8 +:10C64000882381F10F9424B768537F4F8F4F9F4FFA +:10C65000609308187093091880930A1890930B1828 +:10C660002091101880919C0290919D02211114C07C +:10C67000805B9140E9F44091991750919A1760912D +:10C680009B1770919C1701E021E080919617909183 +:10C6900097170F942B550DC0805B914051F40F9468 +:10C6A0001C5507C01092101804C08091000186FF2D +:10C6B000C460C093A3178091A31781709091A317B2 +:10C6C00091FD82609091A117891721F18130F1F0DD +:10C6D00028F0823089F08330A1F01CC0913021F421 +:10C6E000909143189F5F05C09230A1F49091431838 +:10C6F0009150909343180EC0992391F3933051F4C5 +:10C70000F5CF923069F3913029F4F0CF933041F3B3 +:10C71000992361F38093A117CF911F910F910895F1 +:10C720000F94F958E4E0F1E080818B7F8083808171 +:10C730008D7F80839FB7F894E5E0F1E0808184608D +:10C7400080839FBF9FB7F8948081826080839FBF62 +:10C75000E1E0F1E080818F7B80839FB7F894E2E095 +:10C76000F1E08081806480839FBF60E08FE00F9460 +:10C770000FB99FB7F894E5E0F1E080818160808394 +:10C780009FBF809103018095817080939817B6DEDA +:10C79000109243180895CF92DF92EF92FF929091FA +:10C7A0009B02981710F480939B0280919A02882331 +:10C7B00009F4E6C0A3DE80910301817091E089272E +:10C7C000209198178217F1F082E080939B0280916C +:10C7D000030181708927809398170F94F9588091ED +:10C7E0009817882309F4C0C08DE99AE00E942FC9E8 +:10C7F000E091530AF0E0EE0FFF1FE15FF2488591F0 +:10C80000949148DEC0909217D0909317E0909417BF +:10C81000F09095170F9424B7C616D706E806F906C8 +:10C8200008F098C080914318482F552747FD509530 +:10C8300057FF03C051954195510944305105ACF162 +:10C8400090919B02911103C091E090939B0287FD10 +:10C850008D5F482F45954595552747FD5095652F88 +:10C86000752F80919D1790919E17A0919F17B09161 +:10C87000A017840F951FA61FB71F80939D17909335 +:10C880009E17A0939F17B093A017109243180F9470 +:10C8900024B76856754C8F4F9F4F609386177093DF +:10C8A000871780938817909389178091A31782FF29 +:10C8B0000EC00F9424B76856754C8F4F9F4F6093EE +:10C8C0008617709387178093881790938917E09144 +:10C8D0009C02F0919D021995C0908617D090871701 +:10C8E000E0908817F09089170F9424B7C616D706E2 +:10C8F000E806F906A8F4E0919C02F0919D0281E01F +:10C90000E036F80769F0309731F081E0809306183F +:10C910001995109206180F94055982E080939B0296 +:10C9200080919B02823009F49DDC80919B028823D8 +:10C9300019F0815080939B020F9424B76C597F4F5C +:10C940008F4F9F4F60939217709393178093941714 +:10C95000909395170E94EBC1811101C016D1FF90F1 +:10C96000EF90DF90CF9030CD8DE99AE00E9404CA1D +:10C97000E091530AF0E0EE0FFF1FE550F3483FCF80 +:10C98000FF90EF90DF90CF90089590919A029817C2 +:10C99000B9F180939A02882399F110929D17109211 +:10C9A0009E1710929F171092A017109243180F9481 +:10C9B00024B76856754C8F4F9F4F609386177093BE +:10C9C000871780938817909389170F9424B7615025 +:10C9D000710981099109609392177093931780935D +:10C9E0009417909395173EDC80919C0290919D0244 +:10C9F0008056914011F412DC01C0C8DB82E0CBCE3E +:10CA000008958F929F92AF92BF92CF92DF92EF9252 +:10CA1000FF920F931F93CF93DF938C015B0180E014 +:10CA2000B4DF20DC40E060E084EA97E10E94C9596D +:10CA30007801812C912CC8010F944253882319F05E +:10CA40000F5F1F4FF8CFF8018491882309F467C066 +:10CA5000492D60E084EA97E10E94C959C8010F940A +:10CA60002EC88431910508F084E17801E80EF11CAC +:10CA7000F3E0E7019F1214C0843191F4CE010F94CA +:10CA80004253882311F02196F9CFFE018491882327 +:10CA900031F0E70122977E018824839401C0812C24 +:10CAA000FE018491882309F454C0CE010F944253AF +:10CAB00081114FC0FE01849192ED980F923008F4DD +:10CAC00048C08C3209F445C096EC980F923008F4B7 +:10CAD00040C08F3309F43DC0813209F43AC00C17CD +:10CAE0001D07A0F56E01F1E0CF1AD108C6010F9421 +:10CAF000425381112BC0E601F2CFF80164916E37E9 +:10CB000009F460E284EA97E10F94E4B90F5F1F4FE4 +:10CB10000E151F0590F39394F4E09F128CCF88209C +:10CB200061F058DB43E063E184EA97E10E94C95970 +:10CB300061E084EA97E10F94E4B9F50190828110F5 +:10CB400003C080E090E007C0C70105C0C017D1074F +:10CB5000F9F27E01DDCFDF91CF911F910F91FF9010 +:10CB6000EF90DF90CF90BF90AF909F908F900895FF +:10CB7000CF93DF931F92CDB7DEB7BE016F5F7F4FBC +:10CB800040DF0F90DF91CF91089580910101846083 +:10CB9000809301019FB7F894809102018460809393 +:10CBA00002019FBF68EE73E080E090E00F9453B7FE +:10CBB0009FB7F894809102018B7F809302019FBF01 +:10CBC000E1E3FBE785919491D3DF88EE93E00E9447 +:10CBD0000077FBCF81E008959091A31792FB8827FF +:10CBE00080F992FD109207180895DF92EF92FF925C +:10CBF0000F931F93CF93DF93E82ED92EB9DF8C01CB +:10CC0000EC0194E6F92E82E390E00E940077E4DFE5 +:10CC1000882369F0E1DF8111FDCF6AE070E080E0F8 +:10CC200090E00F9453B7D8DF8111FDCF0DC0FA9477 +:10CC300051F70115110529F3209711F4CE2DDD2DA3 +:10CC4000CE0196DFEC01DDCFDF91CF911F910F91E7 +:10CC5000FF90EF90DF900895CF93DF93EC01E09188 +:10CC6000530ACF3F8FEFD80731F4F0E0EE0FFF1FEC +:10CC7000ED5DFD474CC0CE3F8FEFD80779F4F0E073 +:10CC8000EE0FFF1F662379F1623011F0673019F45F +:10CC9000E55AFD473CC0E35BFD4739C061110EC05A +:10CCA000E091530AC130D10539F1C230D10551F1BB +:10CCB000CD2BE1F0F0E0EE0FFF1F15C0F0E0EE0F1E +:10CCC000FF1F623011F0673019F4E750FE4702C0D1 +:10CCD000E551FE478591949188DF1C161D0604F3EB +:10CCE000DF91CF910895E15CFD4711C0F0E0EE0FB8 +:10CCF000FF1FEF5CFD470BC0F0E0EE0FFF1FE95F89 +:10CD0000FD4705C0F0E0EE0FFF1FEB5EFD4785918C +:10CD10009491DF91CF9169CF0F94224D81E00E94D1 +:10CD200048765ADF8823C1F357DF8111FDCF6AE0CF +:10CD300070E080E090E00F9453B74EDF8111FDCF9B +:10CD40000895DF92EF92FF920F931F93CF93DF939B +:10CD5000CDB7DEB728970FB6F894DEBF0FBECDBFB4 +:10CD600084E495E09A8389838DE495E09C838B83AA +:10CD700088E595E09E838D8386E695E098878F838E +:10CD8000E0904318FF24E7FCF0946CDA40E060E0A8 +:10CD900084EA97E10E94C95962E475E084EA97E168 +:10CDA0000F94E3B9D12C00E010E0402F61E084EA59 +:10CDB00097E10E94C959E0917C17F0917D17E00F2F +:10CDC000F11FEE0FFF1F81E090E08C0F9D1FE80F19 +:10CDD000F91F6081718184EA97E10F94E3B90F5FD5 +:10CDE0001F4F0430110509F70F94224D81E00E9476 +:10CDF000487620914318332727FD3095C701821BC1 +:10CE0000930B97FF03C091958195910905970CF4B9 +:10CE10006FC02E153F050CF4DA94E216F3060CF4FD +:10CE2000D39493E09D156CF480917C1790917D17BD +:10CE300097FF7FC0019690937D1780937C1712DA3D +:10CE400078C0D7FE0EC080917C1790917D17181680 +:10CE5000190634F4019790937D1780937C1702DABA +:10CE6000D12C40E060E084EA97E10E94C9596BE769 +:10CE700076E084EA97E10F94E3B941E060E084EA68 +:10CE800097E10E94C9596BE776E084EA97E10F9435 +:10CE9000E3B942E060E084EA97E10E94C9596BE798 +:10CEA00076E084EA97E10F94E3B943E060E084EA36 +:10CEB00097E10E94C9596BE776E084EA97E10F9405 +:10CEC000E3B94D2D60E084EA97E10E94C95962E41C +:10CED00075E084EA97E10F94E3B9E0904318FF24EA +:10CEE000E7FCF09464E670E080E090E00F9453B7C4 +:10CEF00073DE882309F457CF6FDE8111FDCF6AE01E +:10CF000070E080E090E00F9453B766DE8111FDCFB2 +:10CF100080917C178D0D28960FB6F894DEBF0FBE5A +:10CF2000CDBFDF91CF911F910F91FF90EF90DF90D8 +:10CF3000089513E0D12E95CFFC01808190E02AE086 +:10CF400030E0B9010F94E9C4482FCB01B9010F9427 +:10CF5000E9C4805D80937E17405D40937F171092F7 +:10CF600080178EE797E1089520E030E040E251E439 +:10CF7000FC0160817181828193810F940BC30F94B6 +:10CF800079C077FD02C02BE201C02DE220937E170D +:10CF90009B0177FF04C022273327261B370BC901CB +:10CFA00068EE73E00F94E9C4CB01EAE0F0E0BF0162 +:10CFB0000F94E9C4805D80937F17C90164E670E037 +:10CFC0000F94E9C4CB01BF010F94E9C4805D809345 +:10CFD0008017C901BF010F94E9C4282FCB01BF01FD +:10CFE0000F94E9C4805D809381178EE2809382174D +:10CFF000205D20938317109284178EE797E10895A0 +:10D000008F929F92AF92BF92CF92DF92EF92FF9258 +:10D01000CF9320E030E048EC52E4FC016081718164 +:10D02000828193810F940BC30F9479C06B017C01B3 +:10D0300097FD12C020E137E240E050E00F941EC59A +:10D04000CA01B9012AE030E040E050E00F941EC56B +:10D05000605D60937E1703C08DE280937E17F7FEBC +:10D0600008C0F094E094D094C094C11CD11CE11C81 +:10D07000F11CC701B60128EE33E040E050E00F9408 +:10D080001EC59AE0892E912CA12CB12CCA01B901A0 +:10D09000A50194010F941EC5605D60937F17C701C1 +:10D0A000B60124E630E040E050E00F941EC5CA010E +:10D0B000B901A50194010F941EC5605D60938017AE +:10D0C0008EE280938117C701B601A50194010F94E8 +:10D0D0001EC5C62FCA01B901A50194010F941EC532 +:10D0E000605D60938217C05DC093831710928417B0 +:10D0F0008EE797E1CF91FF90EF90DF90CF90BF90B8 +:10D10000AF909F908F9008958F929F92AF92BF9211 +:10D11000CF92DF92EF92FF92CF93FC01C080D1803B +:10D12000E280F38020E030E0A901C701B6010F944E +:10D1300039C218161CF4C701B60103C0C701B601F5 +:10D1400090580F9479C06B017C016031F7E27F0742 +:10D150008105910584F020E137E240E050E00F9432 +:10D160001EC5CA01B9012AE030E040E050E00F944A +:10D170001EC5605D01C060E260937E1788EEC81630 +:10D1800083E0D806E104F10494F0C701B60128EE6B +:10D1900033E040E050E00F941EC5CA01B9012AE017 +:10D1A00030E040E050E00F941EC5605D01C060E2D9 +:10D1B00060937F17E4E6CE16D104E104F10494F005 +:10D1C000C701B60124E630E040E050E00F941EC5F0 +:10D1D000CA01B9012AE030E040E050E00F941EC5DA +:10D1E000605D01C060E3609380178EE280938117D9 +:10D1F0002AE0822E912CA12CB12CC701B601A501E9 +:10D2000094010F941EC5C62FCA01B901A50194014E +:10D210000F941EC5605D60938217C05DC093831735 +:10D220008EE797E1CF91FF90EF90DF90CF90BF9086 +:10D23000AF909F908F9008958F929F92AF92BF92E0 +:10D24000CF92DF92EF92FF92CF9320E030E04AE757 +:10D2500054E4FC0160817181828193810F940BC33E +:10D260000F9479C097FD02C020E201C02DE2209307 +:10D270007E176B017C0197FF08C0F094E094D09476 +:10D28000C094C11CD11CE11CF11CC701B60128EEE1 +:10D2900033E040E050E00F941EC5EAE08E2E912C62 +:10D2A000A12CB12CCA01B901A50194010F941EC58E +:10D2B000605D60937F178EE280938017C701B6018F +:10D2C00024E630E040E050E00F941EC5CA01B901E9 +:10D2D000A50194010F941EC5605D60938117C7017D +:10D2E000B601A50194010F941EC5C62FCA01B9014C +:10D2F000A50194010F941EC5605D60938217C05D07 +:10D30000C0938317109284178EE797E1CF91FF9017 +:10D31000EF90DF90CF90BF90AF909F908F90089547 +:10D320008F929F92AF92BF92CF92DF92EF92FF9235 +:10D33000FC0180809180A280B38020E030E048EC46 +:10D3400052E4C501B4010F940BC36B017C0120E0D2 +:10D3500030E0A9010F9439C218161CF4C701B601B8 +:10D3600003C0C701B60190580F9479C06B017C01CE +:10D3700020E030E0A901C501B4010F940AC087FF85 +:10D3800012C08DE280937E17C701B60128EE33E00C +:10D3900040E050E00F941EC5CA01B9012AE030E018 +:10D3A00040E050E036C0C701B60120E137E240E07E +:10D3B00050E00F941EC5AAE08A2E912CA12CB12C0E +:10D3C000CA01B901A50194010F941EC5662391F00D +:10D3D000605D60937E17C701B60128EE33E040E040 +:10D3E00050E00F941EC5CA01B901A50194010F9424 +:10D3F0001EC513C080E280937E17C701B60128EED8 +:10D4000033E040E050E00F941EC5CA01B901A50108 +:10D4100094010F941EC5662311F0605D01C060E2A7 +:10D4200060937F17C701B60124E630E040E050E08A +:10D430000F941EC5FAE08F2E912CA12CB12CCA019D +:10D44000B901A50194010F941EC5605D609380171A +:10D45000C701B601A50194010F941EC5662381F092 +:10D46000605D60938317CA01B901A50194010F940F +:10D470001EC5605D609382178EE28093811715C090 +:10D48000CA01B901A50194010F941EC5662329F0B4 +:10D49000605D609382178EE203C080E28093821702 +:10D4A0008093811780E280938317109284178EE710 +:10D4B00097E1FF90EF90DF90CF90BF90AF909F905B +:10D4C0008F900895FC012081318137FF07C08DE2E4 +:10D4D00080937E1731952195310914C0243631058A +:10D4E00074F0C90164E670E00F94E9C4CB016AE00E +:10D4F00070E00F94E9C4805D80937E1706C080E2DF +:10D5000080937E172A30310564F0EAE0F0E0C9012B +:10D51000BF010F94E9C4CB01BF010F94E9C4805D42 +:10D5200001C080E280937F17C9016AE070E00F9428 +:10D53000E9C4805D80938017109281178EE797E190 +:10D540000895AF92BF92CF92DF92EF92FF920F9326 +:10D550001F93CF93DF938091361881115EC081E0D5 +:10D56000809336188FEB9FE00F945DCB082F282F08 +:10D57000332727FD309530933C1820933B18809338 +:10D5800037188EEB9FE00F945DCB182F282F332791 +:10D5900027FD309530933E1820933D18809338181E +:10D5A0008DEB9FE00F945DCBD82F282F332727FDDD +:10D5B00030953093401820933F18809339188CEBA6 +:10D5C0009FE00F945DCBC82F282F332727FD309580 +:10D5D000309342182093411880933A1880EC9FE0D2 +:10D5E0000F945DCB813009F067C20E5C053608F000 +:10D5F00063C21E5C153608F05FC2DE5CD53608F0EB +:10D600005BC2CE5CC53608F057C281E080939B02B6 +:10D6100061E080EC9FE00F946FCB60913B187091BC +:10D620003C1880913718992787FD909586179707A2 +:10D6300031F0609337188FEB9FE00F946FCB6091C0 +:10D640003D1870913E1880913818992787FD909564 +:10D650008617970731F0609338188EEB9FE00F9490 +:10D660006FCB60913F1870914018809139189927BD +:10D6700087FD90958617970731F0609339188DEBE9 +:10D680009FE00F946FCB6091411870914218809188 +:10D690003A18992787FD90958617970731F0609380 +:10D6A0003A188CEB9FE00F946FCB80919D1790916F +:10D6B0009E17A0919F17B091A01781309048A105A7 +:10D6C000B10540F010929D1710929E1710929F176F +:10D6D0001092A01780919D1790919E17A0919F176F +:10D6E000B091A0174091A21750E060E070E084175D +:10D6F0009507A607B70710F48093A2170091A21709 +:10D70000B090A317B2FABB24B0F810E085E0C82EA1 +:10D71000D12CE12CF12CAA24A39480919D179091F7 +:10D720009E17A0919F17B091A017011138C02091AA +:10D730009B022223A1F0E091530AF0E0EE0FFF1FBD +:10D74000E558F4486591749123E0892B8A2B8B2B43 +:10D7500011F443E001C040E2812F0F94EE53BB204F +:10D7600009F472C180919D1790919E17A0919F1707 +:10D77000B091A017892B8A2B8B2B09F065C10F94D0 +:10D780001C558CE691E0DF91CF911F910F91FF9096 +:10D79000EF90DF90CF90BF90AF900D94F355013094 +:10D7A00009F042C020919B022223E1F0E091530A4C +:10D7B000F0E0EE0FFF1FE951FD47C591D4910197AD +:10D7C000A105B10531F48BE398E17CDE9C014EE3C9 +:10D7D00005C08BE398E176DE9C0140E2BE01812F1B +:10D7E0000F942554BB2009F42FC180919D1790916F +:10D7F0009E17A0919F17B091A0170197A105B105A1 +:10D8000009F022C10F941C55E091530AF0E0EE0F8D +:10D81000FF1FE951FD478591949122E330E04EECE2 +:10D820005FEF6BE378E144C0023009F04DC0209116 +:10D830009B022223E1F0E091530AF0E0EE0FFF1F7C +:10D84000E155FD47C591D4910297A105B10531F489 +:10D850008DE398E137DE9C014EE305C08DE398E14E +:10D8600031DE9C0140E2BE01812F0F942554BB2084 +:10D8700009F4EAC080919D1790919E17A0919F177F +:10D88000B091A0170297A105B10509F0DDC00F9472 +:10D890001C55E091530AF0E0EE0FFF1FE155FD47E4 +:10D8A0008591949122E330E04EEC5FEF6DE378E1F7 +:10D8B000DF91CF911F910F91FF90EF90DF90CF906C +:10D8C000BF90AF900D947455033009F042C0209181 +:10D8D0009B022223E1F0E091530AF0E0EE0FFF1FDC +:10D8E000EB50FD47C591D4910397A105B10531F4E3 +:10D8F0008FE398E1E7DD9C014EE305C08FE398E1FB +:10D90000E1DD9C0140E2BE01812F0F942554BB2034 +:10D9100009F49AC080919D1790919E17A0919F172E +:10D92000B091A0170397A105B10509F08DC00F9420 +:10D930001C55E091530AF0E0EE0FFF1FEB50FD473E +:10D940008591949122E330E04EEC5FEF6FE378E154 +:10D95000AFCF043009F042C020919B022223E1F0B6 +:10D96000E091530AF0E0EE0FFF1FE553FD47C5912C +:10D97000D4910497A105B10531F481E498E1A2DDC9 +:10D980009C014EE305C081E498E19CDD9C0140E2EE +:10D99000BE01812F0F942554BB2009F455C08091FE +:10D9A0009D1790919E17A0919F17B091A017049773 +:10D9B000A105B10509F048C00F941C55E091530A28 +:10D9C000F0E0EE0FFF1FE553FD478591949122E3B0 +:10D9D00030E04EEC5FEF61E478E16ACF0530A1F50D +:10D9E00020919B022223A1F0E091530AF0E0EE0F78 +:10D9F000FF1FE354FD476591749120E20597A1054F +:10DA0000B10511F44EE301C040E2812F0F94EE53B3 +:10DA1000BB20D1F080919D1790919E17A0919F17E8 +:10DA2000B091A0170597A105B10571F40F941C558D +:10DA3000DF91CF911F910F91FF90EF90DF90CF90EA +:10DA4000BF90AF900D944E5580919D1790919E1769 +:10DA5000A0919F17B091A0170697A105B10540F0BE +:10DA6000C0929D17D0929E17E0929F17F092A01738 +:10DA700040919D178091A21790E00396242F30E0EB +:10DA8000821793074CF48DEF840F8093A217A09216 +:10DA90009B020CEF040F1FEF1F5F0F5F143008F4A1 +:10DAA0003CCEDF91CF911F910F91FF90EF90DF90CF +:10DAB000CF90BF90AF90089510923C1810923B18F1 +:10DAC00010923E1810923D181092401810923F1874 +:10DAD000109242181092411898CDAF92BF92CF92F7 +:10DAE000DF92EF92FF920F931F93CF93DF9380917A +:10DAF0009D1790919E17A0919F17B091A01781300C +:10DB00009048A105B10540F010929D1710929E1704 +:10DB100010929F171092A01780919D1790919E17B9 +:10DB2000A0919F17B091A0174091A21750E060E01C +:10DB300070E084179507A607B70710F48093A21723 +:10DB40000091A217B090A317B2FABB24B0F810E06E +:10DB500083E0C82ED12CE12CF12CAA24A39440916F +:10DB60009D1750919E1760919F177091A0170111FA +:10DB700039C080919B028823A9F0E091530AF0E01C +:10DB8000EE0FFF1FE558F4488591949123E0452B53 +:10DB9000462B472B11F443E001C040E2BC01812F2A +:10DBA0000F94EE53BB2009F4F2C080919D17909121 +:10DBB0009E17A0919F17B091A017892B8A2B8B2BB2 +:10DBC00009F0E5C00F941C5582E391E0DF91CF91FD +:10DBD0001F910F91FF90EF90DF90CF90BF90AF908B +:10DBE0000D94F355013009F041C080919B028823C8 +:10DBF000D9F0E091530AF0E0EE0FFF1FED57F14826 +:10DC0000C591D49182E497E14130510561057105D8 +:10DC100021F458DC9C014EE303C054DC9C0140E23B +:10DC2000BE01812F0F942554BB2009F4B0C0809110 +:10DC30009D1790919E17A0919F17B091A0170197E3 +:10DC4000A105B10509F0A3C00F941C55E091530A3A +:10DC5000F0E0EE0FFF1FED57F1488591949127E218 +:10DC600031E040E050E062E477E185C0023009F045 +:10DC700041C080919B028823D9F0E091530AF0E0E3 +:10DC8000EE0FFF1FED5FFC47C591D49180E497E153 +:10DC9000423051056105710521F414DC9C014EE30D +:10DCA00003C010DC9C0140E2BE01812F0F9425547B +:10DCB000BB2009F46CC080919D1790919E17A09194 +:10DCC0009F17B091A0170297A105B10509F05FC099 +:10DCD0000F941C55E091530AF0E0EE0FFF1FED5F2B +:10DCE000FC478591949123E930E040E050E060E406 +:10DCF00077E141C0033009F04AC080919B0288233C +:10DD0000D9F0E091530AF0E0EE0FFF1FE752FF4712 +:10DD1000C591D4918AE09AE04330510561057105BF +:10DD200021F4D0DB9C014EE303C0CCDB9C0140E23C +:10DD3000BE01812F0F942554BB2049F180919D177E +:10DD400090919E17A0919F17B091A0170397A105DE +:10DD5000B105E9F40F941C55E091530AF0E0EE0F81 +:10DD6000FF1FE752FF47859194912FEF30E040E08D +:10DD700050E06AE07AE0DF91CF911F910F91FF9020 +:10DD8000EF90DF90CF90BF90AF900D94745580913D +:10DD90009D1790919E17A0919F17B091A01704977F +:10DDA000A105B10540F0C0929D17D0929E17E09258 +:10DDB0009F17F092A01740919D178091A21790E0B5 +:10DDC0000396242F30E0821793074CF48DEF840FD5 +:10DDD0008093A217A0929B020CEF040F1FEF1F5F0E +:10DDE0000F5F143008F4BBCEDF91CF911F910F91DC +:10DDF000FF90EF90DF90CF90BF90AF900895AF92DB +:10DE0000BF92CF92DF92EF92FF920F931F93CF9327 +:10DE1000DF9341E063E278E18FEF9FE00F94B96117 +:10DE200080919D1790919E17A0919F17B091A01778 +:10DE300081309048A105B10540F010929D171092D5 +:10DE40009E1710929F171092A01780919D17909186 +:10DE50009E17A0919F17B091A0174091A21750E074 +:10DE600060E070E084179507A607B70710F4809369 +:10DE7000A2170091A217B090A317B2FABB24B0F872 +:10DE800010E0E7E0CE2ED12CE12CF12CAA24A394B3 +:10DE900080919D1790919E17A0919F17B091A01708 +:10DEA000011138C020919B022223A1F0E091530A76 +:10DEB000F0E0EE0FFF1FEF58F0486591749123E0FA +:10DEC000892B8A2B8B2B11F443E001C040E2812F78 +:10DED0000F94EE53BB2009F4B7C180919D17909128 +:10DEE0009E17A0919F17B091A017892B8A2B8B2B7F +:10DEF00009F0AAC10F941C5582EB91E0DF91CF91FC +:10DF00001F910F91FF90EF90DF90CF90BF90AF9057 +:10DF10000D94F355013009F042C020919B02222359 +:10DF2000E1F0E091530AF0E0EE0FFF1FED5CF448E2 +:10DF3000C591D4910197A105B10531F487E492E030 +:10DF4000C1DA9C014EE305C087E492E0BBDA9C0194 +:10DF500040E2BE01812F0F942554BB2009F474C107 +:10DF600080919D1790919E17A0919F17B091A01737 +:10DF70000197A105B10509F067C10F941C55E09107 +:10DF8000530AF0E0EE0FFF1FED5CF4488591949189 +:10DF900027EE33E04AE050E067E472E044C002302C +:10DFA00009F04DC020919B022223E1F0E091530A39 +:10DFB000F0E0EE0FFF1FED57F148C591D4910297A5 +:10DFC000A105B10531F482E497E17CDA9C014EE3CE +:10DFD00005C082E497E176DA9C0140E2BE01812F20 +:10DFE0000F942554BB2009F42FC180919D17909167 +:10DFF0009E17A0919F17B091A0170297A105B10598 +:10E0000009F022C10F941C55E091530AF0E0EE0F85 +:10E01000FF1FED57F1488591949127E231E040E0F0 +:10E0200050E062E477E1DF91CF911F910F91FF9073 +:10E03000EF90DF90CF90BF90AF900D947455033068 +:10E0400009F042C020919B022223E1F0E091530AA3 +:10E05000F0E0EE0FFF1FED5FFC47C591D4910397F1 +:10E06000A105B10531F480E497E12CDA9C014EE37F +:10E0700005C080E497E126DA9C0140E2BE01812FD1 +:10E080000F942554BB2009F4DFC080919D17909117 +:10E090009E17A0919F17B091A0170397A105B105F6 +:10E0A00009F0D2C00F941C55E091530AF0E0EE0F36 +:10E0B000FF1FED5FFC47859194912CE830E040E034 +:10E0C00050E060E477E1AFCF043009F042C0209126 +:10E0D0009B022223E1F0E091530AF0E0EE0FFF1FD4 +:10E0E000E752FF47C591D4910497A105B10531F4DA +:10E0F0008AE09AE0E7D99C014EE305C08AE09AE005 +:10E10000E1D99C0140E2BE01812F0F942554BB2030 +:10E1100009F49AC080919D1790919E17A0919F1726 +:10E12000B091A0170497A105B10509F08DC00F9417 +:10E130001C55E091530AF0E0EE0FFF1FE752FF4736 +:10E14000859194912FEF30E040E050E06AE07AE072 +:10E150006ACF053009F042C020919B022223E1F0F2 +:10E16000E091530AF0E0EE0FFF1FED58FF47C59115 +:10E17000D4910597A105B10531F485E492E0A2D9C7 +:10E180009C014EE305C085E492E09CD99C0140E2ED +:10E19000BE01812F0F942554BB2009F455C08091F6 +:10E1A0009D1790919E17A0919F17B091A01705976A +:10E1B000A105B10509F048C00F941C55E091530A20 +:10E1C000F0E0EE0FFF1FED58FF478591949127EE89 +:10E1D00033E04AE050E065E472E025CF0630A1F577 +:10E1E00020919B022223A1F0E091530AF0E0EE0F70 +:10E1F000FF1FE553FF476591749120E20697A10543 +:10E20000B10511F44EE301C040E2812F0F94EE53AB +:10E21000BB20D1F080919D1790919E17A0919F17E0 +:10E22000B091A0170697A105B10571F40F941C5584 +:10E23000DF91CF911F910F91FF90EF90DF90CF90E2 +:10E24000BF90AF900D9457622091231880919D1735 +:10E2500090919E17A0919F17B091A01721110FC008 +:10E26000073009F042C020919B02222301F1E09186 +:10E27000530AF0E0EE0FFF1FEF5AF4480DC00730CD +:10E28000A1F520919B02222391F0E091530AF0E046 +:10E29000EE0FFF1FED5BF4486591749120E2079744 +:10E2A000A105B10501F140E2812F0F94EE53BB208F +:10E2B000E1F080919D1790919E17A0919F17B091CA +:10E2C000A0170797A105B10581F40F941C55DF91A4 +:10E2D000CF911F910F91FF90EF90DF90CF90BF9063 +:10E2E000AF900D94DA554EE3DFCF80919D1790915A +:10E2F0009E17A0919F17B091A0170897A105B1058F +:10E3000040F0C0929D17D0929E17E0929F17F09216 +:10E31000A01740919D178091A21790E00396242F9B +:10E3200030E0821793074CF48DEF840F8093A2178F +:10E33000A0929B020CEF040F1FEF1F5F0F5F1430C2 +:10E3400008F4A6CDDF91CF911F910F91FF90EF9030 +:10E35000DF90CF90BF90AF9008958F929F92AF9231 +:10E36000BF92CF92DF92EF92FF92CF93DF931F92F3 +:10E370001F92CDB7DEB78830910509F449C0C4F4C7 +:10E380008430910509F44DC064F48130910509F49D +:10E390009DC18230910509F4C7C1892B09F07CC465 +:10E3A00043C086309105B9F1CCF1ECEAF5E0D3C277 +:10E3B0008A35910521F164F48531910531F1863179 +:10E3C000910501F1449709F067C4ECE9F5E01CC33D +:10E3D0008C35910571F084F08D35910539F08336D7 +:10E3E000910509F059C4E0EDF5E01CC4EFE6F5E055 +:10E3F000F6C3E8E7F5E0D0C3E1E8F5E0AAC3EAE850 +:10E40000F5E084C3E3E9F5E055C3ECE9F5E02EC39C +:10E41000EEE9F5E0CCC2E5EBF5E075C2EEEBF5E038 +:10E4200049C2E7ECF5E01DC280919F0AECE9F5E0F6 +:10E43000882309F42CC18191882339F09091C00080 +:10E4400095FFFCCF8093C600F6CF84E090E00F9458 +:10E45000BB590F94DB59EAEDF5E08191882339F03F +:10E460009091C00095FFFCCF8093C600F6CF4091FD +:10E470004C0A50914D0A60914E0A70914F0A2AE061 +:10E4800030E080EF96E00E94525DE0EEF5E0819191 +:10E49000882339F09091C00095FFFCCF8093C6008F +:10E4A000F6CF8091890C882319F18091330D9091DA +:10E4B000340DA091350DB091360D0097A105B10531 +:10E4C000B9F0BC01CD016D597F4F8F4F9F4F24E6AE +:10E4D00030E040E050E00F94FCC460913B0D70913F +:10E4E0003C0D80913D0D90913E0D0F94FCC401C0F8 +:10E4F00020E030E03A832983CE0101960F94626ACE +:10E50000FC012191CF01222339F03091C00035FF69 +:10E51000FCCF2093C600F4CFE7EEF5E0819188238D +:10E5200039F09091C00095FFFCCF8093C600F6CFE4 +:10E5300087E492E00F94626AFC012191CF012223CB +:10E5400039F03091C00035FFFCCF2093C600F4CFE6 +:10E55000EEEEF5E08191882339F09091C00095FFAF +:10E56000FCCF8093C600F6CFE9EBF7E181918823D9 +:10E5700039F09091C00095FFFCCF8093C600F6CF94 +:10E58000E5EFF5E08191882339F09091C00095FF87 +:10E59000FCCF8093C600F6CF8091C5079091C60747 +:10E5A000A091C707B091C807892B8A2B8B2B49F103 +:10E5B0000F9424B7F8EE8F2EF3E09F2EA12CB12CF0 +:10E5C000A50194010F94FCC469017A016091C5070B +:10E5D0007091C6078091C7079091C807A501940163 +:10E5E0000F94FCC4C21AD30AE40AF50A2AE030E008 +:10E5F000B701A60180EF96E00E94525DECEFF5E0D6 +:10E600000FC04AE050E060E070E080EF96E00E94CA +:10E61000185DF4CF9091C00095FFFCCF8093C600A9 +:10E6200081918111F7CFE9E7F3E08191882339F0F7 +:10E630009091C00095FFFCCF8093C600F6CFE5EC2B +:10E64000F5E08191882339F09091C00095FFFCCFCF +:10E650008093C600F6CFE4E0F6E08191882339F09C +:10E660009091C00095FFFCCF8093C600F6CF8091BB +:10E67000C00085FFFCCF8AE08093C60084E090E074 +:10E680003AC29091C00095FFFCCF8093C600819163 +:10E690008111F7CF81E090E00F94BB590F94DB59C3 +:10E6A000E4E0F6E08191882339F09091C00095FF75 +:10E6B000FCCF8093C600F6CF8091C00085FFFCCFD1 +:10E6C0008AE08093C60081E090E015C282E090E08D +:10E6D00090931A1880931918ECE9F5E0819188233A +:10E6E00039F09091C00095FFFCCF8093C600F6CF23 +:10E6F00082E090E00F94BB590F94DB59E4E0F6E020 +:10E700008191882339F09091C00095FFFCCF8093D0 +:10E71000C600F6CF8091C00085FFFCCF8AE08093D1 +:10E72000C60082E090E090C083E090E090931A18D9 +:10E7300080931918ECE9F5E08191882339F09091E4 +:10E74000C00095FFFCCF8093C600F6CF83E090E039 +:10E750000F94BB590F94DB59E4E0F6E081918823D4 +:10E7600039F09091C00095FFFCCF8093C600F6CFA2 +:10E770008091C00085FFFCCF8AE08093C60083E0D3 +:10E7800090E09093510A8093500A81E090E090933A +:10E79000A9028093A80280919F0A811103C0ECE92D +:10E7A000F5E034C084E090E090931A188093191833 +:10E7B000ECE9F5E08191882339F09091C00095FF54 +:10E7C000FCCF8093C600F6CF84E090E00F94BB5955 +:10E7D0000F94DB59E4E0F6E08191882339F09091C1 +:10E7E000C00095FFFCCF8093C600F6CF8091C0009B +:10E7F00085FFFCCF8AE08093C60084E090E024C0CF +:10E800009091C00095FFFCCF8093C600819181114B +:10E81000F7CF83E090E00F94BB590F94DB59E4E00D +:10E82000F6E08191882339F09091C00095FFFCCFEC +:10E830008093C600F6CF8091C00085FFFCCF8AE0B0 +:10E840008093C60083E090E09093510A8093500A31 +:10E8500081E090E000C19091C00095FFFCCF8093D3 +:10E86000C60081918111F7CF8091C00085FFFCCF58 +:10E870008AE08093C6008091500A9091510A0F94CB +:10E88000BB590F94DB59E4E0F6E08191882339F01D +:10E890009091C00095FFFCCF8093C600F6CF809189 +:10E8A000C00085FFFCCFA4C09091C00095FFFCCFB5 +:10E8B0008093C60081918111F7CF8091C00085FFC0 +:10E8C000FCCF8AE08093C6008091500A9091510A53 +:10E8D0000F94BB590F94DB59E4E0F6E08191882353 +:10E8E00039F09091C00095FFFCCF8093C600F6CF21 +:10E8F0008091C00085FFFCCF7BC09091C00095FF48 +:10E90000FCCF8093C60081918111F7CF8091C00028 +:10E9100085FFFCCF8AE08093C6000F94DB59E4E0CA +:10E92000F6E08191882339F09091C00095FFFCCFEB +:10E930008093C600F6CF8091C00085FFFCCF8AE0AF +:10E940008093C60088E090E027C09091C00095FFBA +:10E95000FCCF8093C60081918111F7CF8091C000D8 +:10E9600085FFFCCF8AE08093C6000F94DB59E4E07A +:10E97000F6E08191882339F09091C00095FFFCCF9B +:10E980008093C600F6CF8091C00085FFFCCF8AE05F +:10E990008093C60089E090E09093510A8093500ADA +:10E9A0002AC09091C00095FFFCCF8093C600819152 +:10E9B0008111F7CF1092510A1092500A60911B18E2 +:10E9C00070911C184AE050E080EF96E00E94185DBC +:10E9D000E3E0F6E08191882339F09091C00095FF43 +:10E9E000FCCF8093C600F6CF8091C00085FFFCCF9E +:10E9F0008AE08093C60082E090E02DC09091C00034 +:10EA000095FFFCCF8093C60081918111F7CF809153 +:10EA1000C00085FFFCCF8AE08093C6008091500A39 +:10EA20009091510A0F94BB590F94DB59E4E0F6E042 +:10EA30008191882339F09091C00095FFFCCF80939D +:10EA4000C600F6CF8091C00085FFFCCF8AE080939E +:10EA5000C60085E090E09093A9028093A8021CC1B3 +:10EA60009091C00095FFFCCF8093C60081918111E9 +:10EA7000F7CF0F94FE590F94DB598091500A909173 +:10EA8000510A0F94BB59E4E0F6E08191882339F0F4 +:10EA90009091C00095FFFCCF8093C600F6CF809187 +:10EAA000C00085FFFCCFF5C09091C00095FFFCCF62 +:10EAB0008093C60081918111F7CF8091C00085FFBE +:10EAC000FCCF8AE08093C6000F94DB59E4E0F6E0C7 +:10EAD0008191882339F09091C00095FFFCCF8093FD +:10EAE000C600F6CF8091C00085FFFCCF8AE08093FE +:10EAF000C60085E090E09093510A8093500ACCC004 +:10EB00009091C00095FFFCCF8093C6008191811148 +:10EB1000F7CF8091C00085FFFCCF8AE08093C600CC +:10EB20000F94DB59E4E0F6E08191882339F090916D +:10EB3000C00095FFFCCF8093C600F6CF8091C00047 +:10EB400085FFFCCFA6C09091C00095FFFCCF8093BD +:10EB5000C60081918111F7CF8091C00085FFFCCF65 +:10EB60008AE08093C6000F94DB59E4E0F6E08191DF +:10EB7000882339F09091C00095FFFCCF8093C600A8 +:10EB8000F6CF8091C00085FFFCCF83C09091C0007C +:10EB900095FFFCCF8093C60081918111F7CF8091C2 +:10EBA000C00085FFFCCF8AE08093C6000F94DB593C +:10EBB000E4E0F6E08191882339F09091C00095FF60 +:10EBC000FCCF8093C600F6CF8091C00085FFFCCFBC +:10EBD00060C09091C00095FFFCCF8093C6008191EA +:10EBE0008111F7CF8091C00085FFFCCF8AE0809330 +:10EBF000C6000F94DB59E4E0F6E08191882339F0F8 +:10EC00009091C00095FFFCCF8093C600F6CF809115 +:10EC1000C00085FFFCCF3DC09091C00095FFFCCFA8 +:10EC20008093C60081918111F7CF0F94FE59E6EAD7 +:10EC3000F5E08191882339F09091C00095FFFCCFD9 +:10EC40008093C600F6CF60911B1870911C184AE0A3 +:10EC500050E080EF96E00E94185DE5ECF5E08191D0 +:10EC6000882339F09091C00095FFFCCF8093C600B7 +:10EC7000F6CFE4E0F6E08191882339F09091C0006E +:10EC800095FFFCCF8093C600F6CF8091C00085FF32 +:10EC9000FCCF8AE08093C6000F900F90DF91CF9158 +:10ECA000FF90EF90DF90CF90BF90AF909F908F90AC +:10ECB0000895BF92CF92DF92EF92FF920F931F932E +:10ECC000CF93DF93C0911B18D0911C180F94326121 +:10ECD00040E060E084EA97E10E94C95966E076E08E +:10ECE00084EA97E10F94E3B9B12CA4E6EA2EF12C63 +:10ECF000BAE0CB2ED12C20914318422F55274195B5 +:10ED00000CF45095CA0157FF03C091958195910964 +:10ED100003970CF444C027FF1FC051E0B51659F00B +:10ED200082E0B81681F0B11038C0C436D105ACF11C +:10ED3000C456D10932C0CE01B7010F94E9C40A9775 +:10ED400064F12A972AC0CE01B6010F94E9C41816BF +:10ED500019061CF5219721C02223F9F041E0B416D1 +:10ED600061F052E0B51691F0B11017C0C43883E0DD +:10ED7000D8079CF4CC59DF4F10C0CE01B7010F94D7 +:10ED8000E9C48A3591054CF42A9607C0CE01B60134 +:10ED90000F94E9C4099709F021961092431842E0B4 +:10EDA00060E084EA97E10E94C959C436D1057CF439 +:10EDB00061E176E084EA97E10F94E3B9CA30D105C6 +:10EDC00034F461E176E084EA97E10F94E3B94AE034 +:10EDD00050E0BE0184EA97E10F9480BA6AE776E0DA +:10EDE00084EA97E10F94E3B943E060E084EA97E1B5 +:10EDF0000E94C95969E776E084EA97E10F94E3B984 +:10EE000043E06B2D84EA97E10E94C9596EE076E0F9 +:10EE100084EA97E10F94E3B964E670E080E090E063 +:10EE20000F9453B70F94EC658823E1F068EC70E021 +:10EE300080E090E00F9453B7B39443E0B41212C053 +:10EE4000D0931C18C0931B186BE178E181EC9FE014 +:10EE50000F94606184E190E080DA0F94055901E03D +:10EE600010E002C000E010E00F94224D012B09F4E5 +:10EE700042CFDF91CF911F910F91FF90EF90DF90E4 +:10EE8000CF90BF900895CF93DF931F921F92CDB77D +:10EE9000DEB7FC0160817181828193810F9479C01A +:10EEA0007A836983CE0101960F94626A0F900F9066 +:10EEB000DF91CF910895CF93DF9300D01F92CDB70C +:10EEC000DEB70F940E6120E030E048E452E4609138 +:10EED0003A1770913B1780913C1790913D170F9412 +:10EEE00039C21816CCF020E030E048E452E46091DA +:10EEF00034177091351780913617909137170F940A +:10EF000039C218164CF00F94C6600F900F900F90F6 +:10EF10000F90DF91CF910895E091530AF0E0EE0F4A +:10EF2000FF1FE95FF548859194910F94B86544E01F +:10EF300060E084EA97E10E94C95962E084EA97E1BF +:10EF40000F94E4B980913A1790913B17A0913C1728 +:10EF5000B0913D1789839A83AB83BC83CE01019620 +:10EF600092DFBC0184EA97E10F94E3B960E176E0B7 +:10EF700084EA97E10F94E3B963E176E084EA97E1EC +:10EF80000F94E3B944E069E084EA97E10E94C9592B +:10EF900060E084EA97E10F94E4B98091341790918E +:10EFA0003517A0913617B091371789839A83AB83B1 +:10EFB000BC83CE01019667DFBC0184EA97E10F9420 +:10EFC000E3B960E176E084EA97E10F94E3B963E1A5 +:10EFD00076E084EA97E10F94E3B90F94515388EEF9 +:10EFE00093E00E9400776FCFFC018081918184368D +:10EFF000910524F164E670E00F94E9C4CB012AE0A6 +:10F0000030E0B9010F94E9C4805D80937E17808160 +:10F010009181B9010F94E9C4CB01B9010F94E9C4FE +:10F02000805D80937F1780819181B9010F94E9C43D +:10F03000805D809380171092811723C08A309105DC +:10F04000BCF02AE030E0B9010F94E9C4CB01B9016A +:10F050000F94E9C4805D80937E1780819181B9010E +:10F060000F94E9C4805D80937F171092801709C0C8 +:10F070006AE070E00F94E9C4805D80937E1710927F +:10F080007F178EE797E10895FC0180819181883E8A +:10F0900023E092075CF068EE73E00F94E9C4CB01C3 +:10F0A0006AE070E00F94E9C4805D01C080E2809363 +:10F0B0007E1780819181843691055CF064E670E072 +:10F0C0000F94E9C4CB016AE070E00F94E9C4805D5D +:10F0D00001C080E280937F17808191818A30910501 +:10F0E0005CF02AE030E0B9010F94E9C4CB01B9012A +:10F0F0000F94E9C4805D01C080E280938017808115 +:10F1000091816AE070E00F94E9C4805D809381177B +:10F11000109282178EE797E10895CF92EF920F93A6 +:10F120000F9424B7609315187093161880931718CE +:10F13000909318180F9424B760930C1870930D18BF +:10F1400080930E1890930F180F9424B760930818AB +:10F150007093091880930A1890930B18E7E4CE2E49 +:10F16000F5E5EF2E06E423E142E162E584EA97E16A +:10F170000E94B45A0F91EF90CF900895CF93DF93F0 +:10F18000FC016491EC012196662331F084EA97E159 +:10F190000E94A15BCE01F4CFDF91CF9108950F9330 +:10F1A0001F93CF93DF938C01EB0141E061E084EA90 +:10F1B00097E10E94C959C801E1DF6AE384EA97E157 +:10F1C0000F94E4B9FE0101900020E9F76C2F6E1B4B +:10F1D0006C5E41E084EA97E10E94C959BE0184EA6D +:10F1E00097E1DF91CF911F910F910D94E3B92F9289 +:10F1F0003F924F925F926F927F928F929F92AF92C7 +:10F20000BF92CF92DF92EF92FF920F931F93CF9313 +:10F21000DF931C01EB017A01490180919D179091C8 +:10F220009E17A0919F17B091A017892B8A2B8B2B2B +:10F2300009F4AFC00E940868809172108F5F80311E +:10F2400009F480E090917110981709F4A2C08E0122 +:10F25000000F111F000F111FC801805E954F5C0148 +:10F2600060919D1770919E17882777FD8095982F44 +:10F270000F94ACC020918A1730918B1740918C1756 +:10F2800050918D170F940BC3F5012081318142817C +:10F2900053810F941ABF2B013C01B701882777FDDA +:10F2A0008095982F0F94ACC06B017C019B01AC0141 +:10F2B000C301B2010F940AC0F50187FD05C0408269 +:10F2C00051826282738204C0C082D182E282F38260 +:10F2D000B401882777FD8095982F0F94ACC04B011F +:10F2E0005C01C801805E954F7C01A5019401FC0181 +:10F2F00060817181828193810F9439C218162CF438 +:10F30000F70180829182A282B38210929D1710929F +:10F310009E1710929F171092A01764E27AE080E285 +:10F320009AE00E94A161F801EF52F94F20E030E02D +:10F3300040E752E460817181828193810F9411C012 +:10F340004B015C01E090280AF090290A00912A0AFA +:10F3500010912B0A2091240A3091250A4091260A07 +:10F360005091270A6091200A7091210A8091220A07 +:10F370009091230AECE0FAE0FF93EF93BCE2CB2EEE +:10F38000BAE0DB2E0F94152681E080939B020F904C +:10F390000F9080919B02882361F0CE01880F991F06 +:10F3A000880F991F805E954F0F94B467BC01C1010F +:10F3B000F6DE8091A31782FF09C001E021E040E062 +:10F3C00050E0BA0182ED91E00F942B55DF91CF917F +:10F3D0001F910F91FF90EF90DF90CF90BF90AF9073 +:10F3E0009F908F907F906F905F904F903F902F9065 +:10F3F000089522ED30E040E050E062E070E083E705 +:10F400009DE9F5CE22ED30E04EEF5FEF61E070E078 +:10F4100081E79DE9ECCE2AEF30E040E050E060E08B +:10F4200070E08FE69DE9E3CE0F93CF93DF931F92B9 +:10F430001F92CDB7DEB780919D1790919E17A09136 +:10F440009F17B091A017B7FF08C010929D17109298 +:10F450009E1710929F171092A017809132189091CA +:10F460003318A0913418B091351840919D175091E0 +:10F470009E1760919F177091A01784179507A60794 +:10F48000B70744F480939D1790939E17A0939F17FE +:10F49000B093A01780919B028823B1F080912E1821 +:10F4A00090912F1820919D1730919E17820F931FD6 +:10F4B0009A838983CE0101960F94626ABC01809180 +:10F4C0002A1890912B186BDE8091A31782FF1EC023 +:10F4D000E0912C18F0912D1880912E1890912F18F2 +:10F4E00020919D1730919E17820F931F91838083E7 +:10F4F000409128185091291860E070E000E021E068 +:10F5000080912618909127180F942B550F900F90EB +:10F51000DF91CF910F9108950F931F93CF93DF93B6 +:10F520008C01EB0141E060E084EA97E10E94C95957 +:10F53000C80124DE6AE384EA97E10F94E4B9FE018E +:10F5400001900020E9F7BE016E1B7F0B6B5E7F4FC1 +:10F550007695679543E084EA97E10E94C959BE0118 +:10F5600084EA97E10F94E3B965E176E084EA97E1F4 +:10F57000DF91CF911F910F910D94E3B90F931F93DA +:10F58000CF93DF93EDE2F3E8C591D49180912618F3 +:10F5900081117BC011E0109326180E94807867E2E9 +:10F5A00078E18CEF9FE00F94716169E278E18AEF76 +:10F5B0009FE00F9471616BE278E188EF9FE00F9418 +:10F5C00071616091271870912818882777FD8095C0 +:10F5D000982F0F94ACC020912E1630912F16409189 +:10F5E0003016509131160F9411C060932D187093FE +:10F5F0002E1880932F1890933018609129187091CD +:10F600002A18882777FD8095982F0F94ACC02091F9 +:10F6100032163091331640913416509135160F94AE +:10F6200011C06093311870933218809333189093FF +:10F63000341860912B1870912C18882777FD8095CD +:10F64000982F0F94ACC02091361630913716409108 +:10F650003816509139160F9411C060933518709375 +:10F660003618809337189093381810939B020F9494 +:10F6700024B76057704A8E4F9F4F609386177093E0 +:10F680008717809388179093891740919D17509101 +:10F690009E1760919F177091A017452B462B472B03 +:10F6A00009F46BC08091810A882341F010929D1764 +:10F6B00010929E1710929F171092A01780912B18EE +:10F6C00090912C1820919D1730919E17820F931FB7 +:10F6D00090932C1880932B18813620EF92073CF4DE +:10F6E00081E690EF90932C1880932B1819C0181670 +:10F6F00019062CF410922C1810922B1811C04FB729 +:10F70000F894809120179091211720919D173091A6 +:10F710009E17820F931F90932117809320174FBF3E +:10F7200060912B1870912C18882777FD8095982F61 +:10F730000F94ACC020913616309137164091381690 +:10F74000509139160F9411C0609335187093361884 +:10F75000809337189093381862E370E080E090E06F +:10F760000F9453B710929D1710929E1710929F17E7 +:10F770001092A01781E080939B0280919B028823C6 +:10F7800039F085E398E10F941C69BC01CE01C4DE19 +:10F790008091A31782FD12C08091061881110EC0BE +:10F7A0008091A31782FF11C001E021E040E050E00A +:10F7B000BA0182EB91E00F942B5507C06BE278E120 +:10F7C00088EF9FE00F946061EBCFDF91CF911F91A5 +:10F7D0000F91089540E060E084EA97E10E94C959E2 +:10F7E0008AED9DE9CBDC41E060E084EA97E10E948C +:10F7F000C9591E9B03C087ED9DE902C084ED9DE9B8 +:10F80000BDDC42E060E084EA97E10E94C9591D9B9B +:10F8100003C081ED9DE902C08EEC9DE9AFDC43E0C1 +:10F8200060E084EA97E10E94C9591C9B03C08BECFD +:10F830009DE902C088EC9DE9A1CC0F93CBDF8091BC +:10F84000A31782FF09C001E021E040E050E0BA01C7 +:10F850008CE691E00F942B550F9108950F9432612F +:10F860000F94224D81E00E944876B4DF0F94EC653E +:10F870008823B1F30F94EC658111FCCF6AE070E04E +:10F8800080E090E00F9453B70F94EC658111FCCFAA +:10F890000F9432610D940559EF92FF920F931F93CD +:10F8A000CF93DF937C01EB018A010F94F9541092FE +:10F8B00043171092421710924117109240170F945D +:10F8C000224D80E00E9448760F94326140E060E073 +:10F8D00084EA97E10E94C9592091530A30E0220F2F +:10F8E000331F2F5C3348F9018591949147DC41E047 +:10F8F00060E084EA97E10E94C9592091530A30E000 +:10F90000220F331F2B553448F9018591949136DC31 +:10F91000F7013197E830F10508F0E2C0E358FF4FF6 +:10F9200042E060E084EA97E10D943AC50E94C9592B +:10F93000E091530AF0E0EE0FFF1FE352F448859187 +:10F9400094911CDC43E060E084EA97E10E94C9598D +:10F95000E091530AF0E0EE0FFF1FEF53F44819C097 +:10F960000E94C959E091530AF0E0EE0FFF1FE752E1 +:10F97000F3488591949102DC43E060E084EA97E1EA +:10F980000E94C959E091530AF0E0EE0FFF1FE757BC +:10F99000F44885919491F2DBA3C00E94C959E0918B +:10F9A000530AF0E0EE0FFF1FE35BF348859194915B +:10F9B000E5DB43E060E084EA97E10E94C959E09109 +:10F9C000530AF0E0EE0FFF1FE757F448859194913A +:10F9D000D5DB43E061E17BC00E94C959E091530A45 +:10F9E000F0E0EE0FFF1FE153F44885919491C6DBE0 +:10F9F00042E062E184EA97E10E94C959BE0184EACB +:10FA000097E10F94E3B943E060E084EA97E10E9454 +:10FA1000C959E091530AF0E0EE0FFF1FE55AF34891 +:10FA200085919491ABDB43E062E184EA97E10E9427 +:10FA3000C959B80151C00E94C959E091530AF0E078 +:10FA4000EE0FFF1FE15CF3482DC00E94C959E09101 +:10FA5000530AF0E0EE0FFF1FE759F34809C00E9478 +:10FA6000C959E091530AF0E0EE0FFF1FED5DF34836 +:10FA70008591949183DB43E060E084EA97E10E9402 +:10FA8000C959E091530AF0E0EE0FFF1FE757F44821 +:10FA900019C00E94C959E091530AF0E0EE0FFF1F10 +:10FAA000E157F0488591949169DB43E060E084EA96 +:10FAB00097E10E94C959E091530AF0E0EE0FFF1F51 +:10FAC000E153F4488591949159DB43E062E184EA83 +:10FAD00097E10E94C959BE0184EA97E10F94E3B906 +:10FAE00068EE73E080E090E00F9453B70F94F95400 +:10FAF00064E670E080E090E00F9453B70F94224DDD +:10FB000080E00E9448760F94EC65882389F3E091A9 +:10FB1000530AF0E0EE0FFF1FEB5EF34885919491DE +:10FB20000F947562DF91CF911F910F91FF90EF902D +:10FB30000D9405592F923F924F925F926F927F9250 +:10FB40008F929F92AF92BF92CF92DF92EF92FF92ED +:10FB50000F931F93CF93DF93CDB7DEB728970FB6E0 +:10FB6000F894DEBF0FBECDBF1C010E94086881E083 +:10FB70000E944876C101880F991F880F991F9E83A4 +:10FB80008D83805E954F2C01DC018D919D910D90B0 +:10FB9000BC91A02D89839A83AB83BC8320E030E0A5 +:10FBA00040E050E4BC01CD010F941ABFF201608324 +:10FBB000718382839383E090280AF090290A009150 +:10FBC0002A0A10912B0A2091240A3091250A40918B +:10FBD000260A5091270A6091200A7091210A80918B +:10FBE000220A9091230AECE0FAE0FF93EF93812C34 +:10FBF000912CE8E4AE2EE2E4BE2EFCE2CF2EFAE039 +:10FC0000DF2E0F9415260F900F90A5E06A2E712C11 +:10FC100058864F82BCE04B2EBAE05B2E0E940868EB +:10FC200020E030E048E452E4AF81B8856D917D91E9 +:10FC30008D919C910F941ABFEF81F8856083718339 +:10FC40008283938362E573E080E00F941E40E0902E +:10FC5000280AF090290A00912A0A10912B0A209173 +:10FC6000240A3091250A4091260A5091270A609172 +:10FC7000200A7091210A8091220A9091230A5F92B2 +:10FC80004F92812C912CA8E4AA2EA3E4BA2EBCE2B8 +:10FC9000CB2EBAE0DB2E0F9415260F94B93E0F90B1 +:10FCA0000F9080912318813019F46EE071E002C04A +:10FCB0006CE172E080E00F941E4020E030E048E408 +:10FCC00052E4AF81B8856D917D918D919C910F9497 +:10FCD00019BFEF81F8856083718382839383E090FD +:10FCE000280AF090290A00912A0A10912B0A2091E3 +:10FCF000240A3091250A4091260A5091270A6091E2 +:10FD0000200A7091210A8091220A9091230A5F9221 +:10FD10004F92812C912CE8E4AE2EE2E4BE2EFCE260 +:10FD2000CF2EFAE0DF2E0F9415260F94B93E0F90D8 +:10FD30000F901E9965C01D9963C0B1E06B1A7108E0 +:10FD400009F06CCF0F9424B72B013C01F4EC4F0E5B +:10FD5000F9E05F1E611C711C81E00E9448768D8174 +:10FD60009E81805E954F98878F831E9957C01D99FD +:10FD700055C020E030E040E85FE3EF81F885608126 +:10FD80007181828193810F9419BFAF81B8856D9382 +:10FD90007D938D939C931397E090280AF090290A05 +:10FDA00000912A0A10912B0A2091240A3091250AE9 +:10FDB0004091260A5091270A6091200A7091210AE9 +:10FDC0008091220A9091230AACE0BAE0BF93AF93EE +:10FDD000812C912CE8E4AE2EE2E4BE2EFCE2CF2E84 +:10FDE000FAE0DF2E0F9415260F94B93E0F9424B736 +:10FDF0000F900F90461657066806790608F0B5CFA3 +:10FE0000232849F065EB76E044E156E088E090E095 +:10FE100043DD80E067C062EB76E0F6CF0D811E81A6 +:10FE2000005E154FD8014D905D906D907C9020E064 +:10FE300030E040E85FE369817A818B819C810F9497 +:10FE400019BFA30192010F940AC01816CCF220E04A +:10FE500030E040E85FE369817A818B819C810F9477 +:10FE60001ABFA30192010F9439C287FDC9CF20E0C8 +:10FE700030E040E751E4C301B2010F941ABFD8014A +:10FE80006D937D938D939C931397E090280AF09047 +:10FE9000290A00912A0A10912B0A2091240A3091F4 +:10FEA000250A4091260A5091270A6091200A7091F4 +:10FEB000210A8091220A9091230AECE0FAE0FF9354 +:10FEC000EF93812C912CA8E4AA2EA2E4BA2EBCE2D6 +:10FED000CB2EBAE0DB2E0F9415260F94B93E0F906F +:10FEE0000F9081E028960FB6F894DEBF0FBECDBF0D +:10FEF000DF91CF911F910F91FF90EF90DF90CF9006 +:10FF0000BF90AF909F908F907F906F905F904F9039 +:10FF10003F902F900895FF920F931F93CF93DF93FD +:10FF2000EC010F94326140E060E084EA97E10E94C6 +:10FF3000C959E091530AF0E0EE0FFF1FE95FF34863 +:10FF4000859194911BD9C130D10509F1C230D105F9 +:10FF500009F03DC041E060E084EA97E10E94C959A0 +:10FF6000E091530AF0E0EE0FFF1FE759F348859147 +:10FF7000949104D9809101018860809301016FEF11 +:10FF800070E086E00F94F7B706E010E022C041E091 +:10FF900060E084EA97E10E94C959E091530AF0E0D9 +:10FFA000EE0FFF1FED5DF34885919491E7D88091A6 +:10FFB00001018062809301019FB7F8948091020152 +:10FFC0008062809302019FBF07E010E002C000E062 +:10FFD00010E064EF71E080E090E00F9453B742E0EE +:10FFE00061E084EA97E10E94C959E091530AF0E088 +:10FFF000EE0FFF1FE551F44885919491BFD843E07F +:020000023000CC +:1000000060E084EA97E10E94C95962E475E084EAFD +:1000100097E10F94E3B943E061E084EA97E10E943D +:10002000C959E091530AF0E0EE0FFF1FE750F44882 +:1000300085919491A3D8F12CC130D10571F0C230D3 +:10004000D105C1F4809101018860809301016FEFB7 +:1000500070E086E00F94F7B70DC0809101018062D7 +:10006000809301019FB7F894809102018062809390 +:1000700002019FBF80914318482F552741950CF4EA +:1000800050959A0157FF03C03195219531092330CE +:1000900031050CF47DC087FF3AC042E060E084EA9D +:1000A00097E10E94C95962E475E084EA97E10F94F0 +:1000B000E3B942E061E084EA97E10E94C959E09126 +:1000C000530AF0E0EE0FFF1FE551F448859194913B +:1000D00055D843E060E084EA97E10E94C9596BE794 +:1000E00076E084EA97E10F94E3B943E061E084EAC3 +:1000F00097E10E94C959E091530AF0E0EE0FFF1F0B +:10010000E750F4488591949139D8FF24F394809175 +:10011000431818160CF03AC042E060E084EA97E118 +:100120000E94C9596BE776E084EA97E10F94E3B93E +:1001300042E061E084EA97E10E94C959E091530AE4 +:10014000F0E0EE0FFF1FE551F4488591949116D829 +:1001500043E060E084EA97E10E94C95962E475E0F7 +:1001600084EA97E10F94E3B943E061E084EA97E120 +:100170000E94C959E091530AF0E0EE0FFF1FE750CB +:10018000F448859194910F94BE78F12C1092431805 +:100190000F94224D64E670E080E090E00F9453B736 +:1001A0000F94EC65882309F447CF809101018062A8 +:1001B000809301019FB7F894809102018F7D809315 +:1001C00002019FBF8091010188608093010160E07E +:1001D00070E086E00F94F7B710920B0A10920A0AAB +:1001E0000F94224DF11005C060E070E0AB01C80132 +:1001F00053DB8F2DDF91CF911F910F91FF900895C9 +:100200006F927F928F929F92AF92BF92CF92DF9226 +:10021000EF92FF920F931F93CF93DF931F92CDB76F +:10022000DEB73C016B017A01580129830F9424B792 +:10023000605C7D4B8F4F9F4F609392177093931725 +:1002400080939417909395172981EC14FD042CF456 +:10025000EEE28E2EE6E09E2E04C079E1872E76E057 +:10026000972E21110F94326140E060E084EA97E11B +:100270000E94C9598FEF6816780641F4E091530A3D +:10028000F0E0EE0FFF1FE956F4480AC06114710454 +:1002900061F4E091530AF0E0EE0FFF1FE155F348DF +:1002A000859194910F94BE782CC0E1E06E16710494 +:1002B00061F4E091530AF0E0EE0FFF1FEF55F348B1 +:1002C000859194910F94BE7828C0F2E06F16710466 +:1002D00061F4E091530AF0E0EE0FFF1FED56F34892 +:1002E000859194910F94BE7830C083E068167104B4 +:1002F00041F4E091530AF0E0EE0FFF1FEB57F34893 +:100300002FC0E4E06E16710441F4E091530AF0E06E +:10031000EE0FFF1FE958F34823C0F5E06F16710494 +:1003200041F4E091530AF0E0EE0FFF1FE354F3486D +:1003300017C086E06816710441F4E091530AF0E0BA +:10034000EE0FFF1FE553F3480BC0E7E06E16710494 +:1003500059F4E091530AF0E0EE0FFF1FEB5EF34813 +:10036000859194910F94BE7841E060E084EA97E132 +:100370000E94C9596BE176E084EA97E10F94E3B9F2 +:10038000F7E06F16710409F47CC081E0681671040F +:1003900031F01614170434F040E050E005C041E09D +:1003A00050E002C042E050E0840120E336E069E022 +:1003B00070E083E090E00F946754E2E06E16710401 +:1003C00039F0F2E06F16710434F440E050E005C0FB +:1003D00041E050E002C042E050E0840122EB36E010 +:1003E00062E070E082E090E00F94675483E068166A +:1003F000710439F0E3E06E16710434F440E050E02B +:1004000005C041E050E002C042E050E0840125EB2D +:1004100036E068E070E082E090E00F946754F4E02A +:100420006F16710439F084E06816710434F440E00A +:1004300050E005C041E050E002C042E050E08401DD +:100440002FE936E06EE070E082E090E00F946754B0 +:10045000E5E06E16710439F0F5E06F16710434F4BE +:1004600040E050E005C041E050E002C042E050E012 +:10047000840127E336E060E070E083E090E00F94D1 +:1004800067541A141B043CF4B501882777FD809546 +:10049000982F0F9453B78FEFC81AD80AEE0CFF1C91 +:1004A000EC14FD041CF480E090E001C0C6010F9044 +:1004B000DF91CF911F910F91FF90EF90DF90CF9040 +:1004C000BF90AF909F908F907F906F9008952F92E4 +:1004D0003F924F925F926F927F928F929F92AF92D4 +:1004E000BF92CF92DF92EF92FF920F931F93CF9321 +:1004F000DF93CDB7DEB72D970FB6F894DEBF0FBEF2 +:10050000CDBF2C019B01CB016AE070E00F94E9C4E0 +:100510003B01620E731E1C821B821D861C861A8282 +:10052000198218861F82312CC201880F991F880FEB +:10053000991F805E954F9E838D8322242394D20140 +:100540001296BA87A98720E030E040E85FE3ED81AA +:10055000FE8160817181828193810F9419BFAD8189 +:10056000BE816D937D938D939C931397E090280AA1 +:10057000F090290A00912A0A10912B0A2091240A4E +:100580003091250A4091260A5091270A6091200A4D +:100590007091210A8091220A9091230AACE0BAE07E +:1005A000BF93AF93812C912CF8E4AF2EF2E4BF2ED1 +:1005B000ACE2CA2EAAE0DA2E0F9415260F94B93EAB +:1005C0000F900F901E9906C01D9904C01C9902C07F +:1005D00030E00FC04114510409F063C033B036FA63 +:1005E000332430F81D997DC082E090E09D878C8790 +:1005F00031E0EB81FC81E630F10524F43196FC8397 +:10060000EB8310C000E010E020E043E050E06F8199 +:10061000788589859A853B87F3DD98878F831C824F +:100620001B823B853B870F94224D81E00E944876D8 +:100630003B8589819A816816790634F001969A8300 +:100640008983332309F47FCF311053C091E04916D9 +:10065000510439F0A2E04A16510431F062EB76E021 +:1006600005C065EB76E002C06FE976E0EC85FD85BC +:10067000E130F10529F0329731F042EB56E005C048 +:1006800045EB56E002C04FE956E089819A81861514 +:1006900097051CF085E090E002C084E090E0FCD873 +:1006A00028C091E04916510449F433B035FA332497 +:1006B00030F81E991BC0A2E0B0E015C0B2E04B16A6 +:1006C000510409F095CF33B034FA332430F883B1B4 +:1006D0008295869586958370822581708C871D868C +:1006E00087CFA1E0B0E0BD87AC8782CF1D861C8696 +:1006F0007FCF832D2D960FB6F894DEBF0FBECDBFF2 +:10070000DF91CF911F910F91FF90EF90DF90CF90ED +:10071000BF90AF909F908F907F906F905F904F9021 +:100720003F902F9008952F923F924F925F926F9239 +:100730007F928F929F92AF92BF92CF92DF92EF9271 +:10074000FF920F931F93CF93DF93CDB7DEB7289718 +:100750000FB6F894DEBF0FBECDBF0F94326140E0FC +:1007600060E084EA97E10E94C959E091530AF0E001 +:10077000EE0FFF1FE956F448859194910F94BE78CF +:1007800060ED77E080E090E00F9453B781E090E077 +:10079000C2DB882309F4ACC282E090E0BCDB582EB7 +:1007A000882309F4A5C200ED17E021E043E050E002 +:1007B00060E070E080E090E023DD3C011E9904C021 +:1007C0001D9902C01C9B48C01E9BDEC220E030E089 +:1007D00040E251E46091200A7091210A8091220A3E +:1007E0009091230A0F941ABF6093200A7093210AF4 +:1007F0008093220A9093230A1D9BCFC220E030E011 +:1008000040E251E46091240A7091250A8091260A01 +:100810009091270A0F941ABF6093240A7093250AB7 +:100820008093260A9093270A1C9BC0C220E030E0E8 +:1008300040E251E46091280A7091290A80912A0AC5 +:1008400090912B0A0F941ABF6093280A7093290A7B +:1008500080932A0A90932B0AE090280AF090290AA4 +:1008600000912A0A10912B0A2091240A3091250A1E +:100870004091260A5091270A6091200A7091210A1E +:100880008091220A9091230AECE0FAE0FF93EF9323 +:10089000812C912CE8E4AE2EE2E4BE2EFCE2CF2EB9 +:1008A000FAE0DF2E0F94152664EF71E080E090E00F +:1008B0000F9453B70F900F901E9904C01D9902C05A +:1008C0001C9B26C019821A821B821C821E9B06C09A +:1008D00062EB76E0CE0101960F94B6C81D9B06C070 +:1008E00065EB76E0CE0101960F94B6C81C9B06C05E +:1008F0006FE976E0CE0101960F94B6C844E156E068 +:10090000BE016F5F7F4F83E090E00F944C7C512CD1 +:100910000F94224D81E00E944876552009F4EAC1E7 +:1009200008EE13E021E043E050E0B30181E090E005 +:1009300067DC3C01C0903A17D0903B17E0903C1721 +:10094000F0903D17609134177091351780913617EC +:10095000909137170F9479C06D837E838F8398872A +:1009600088EC90E0909343178093421710924117C0 +:10097000109240170F94224D81E00E9448768CE33C +:10098000282E312CA12CB12C0F94224D81E00E94F5 +:10099000487600E911E020E042E050E0B50181E056 +:1009A00090E02EDC5C0121E0221A310869F71092F8 +:1009B00043171092421710924117109240170F944C +:1009C000224D80903A1790903B17A0903C17B09022 +:1009D0003D172D813E81B901882777FD8095982F9D +:1009E0000F94ACC09B01AC01609134177091351726 +:1009F00080913617909137170F9419BF0F9479C0D3 +:100A000063307105DCF4C701B6010F9479C0882703 +:100A100077FD8095982F0F94ACC09B01AC01C50168 +:100A2000B4010F9419BF0F9479C06A30710574F442 +:100A300044E156E0BA0181E090E005C044E156E0AF +:100A4000BA0182E090E00F944C7C512C0F94224D1F +:100A500081E00E944876552009F44CC120E030E046 +:100A600040E751E46091280A7091290A80912A0A8E +:100A700090912B0A0F941ABF6093280A7093290A49 +:100A800080932A0A90932B0A00ED17E021E043E0BF +:100A900050E0B30182E090E0B3DB3C016AEF70E02C +:100AA00080E090E014DD882309F424C100E010E028 +:100AB00021E043E050E0B30182E090E0A1DB3C01A3 +:100AC00080E090E037D8882309F414C10CED15E0DC +:100AD00021E043E050E0B30183E090E091DB3C0192 +:100AE00062ED70E081E090E0F2DC882309F402C15D +:100AF00000E010E021E043E050E0B30183E090E04B +:100B00007FDB3C0181E090E015D8882309F4F2C036 +:100B100020E030E040E450E46091200A7091210A26 +:100B20008091220A9091230A0F9419BF6093200AA2 +:100B30007093210A8093220A9093230A20E030E0E8 +:100B400040E651E46091240A7091250A8091260ABA +:100B50009091270A0F9419BF6093240A7093250A75 +:100B60008093260A9093270A0CED15E021E043E0DC +:100B700050E0B30184E090E043DB3C0162ED70E0C3 +:100B800082E090E0A4DCB82E61E082EC9DE90E9456 +:100B9000B56361E08BEB9DE90E94B563BB2009F46E +:100BA000A9C000ED17E021E043E050E0B30185E08B +:100BB00090E026DB3C01C0903417D0903517E090D0 +:100BC0003617F090371760913A1770913B17809164 +:100BD0003C1790913D170F9479C06D837E838F836E +:100BE0009887109243171092421784E690E09093F2 +:100BF0004117809340170F94224D81E00E94487660 +:100C000004EB402E512C812C912C0F94224D81E02D +:100C10000E94487600E911E020E042E050E0B40193 +:100C200085E090E0EDDA4C0131E0431A510869F7B4 +:100C300010924317109242171092411710924017CA +:100C40000F94224D2090341730903517409036176E +:100C5000509037172D813E81B901882777FD809507 +:100C6000982F0F94ACC09B01AC0160913A17709122 +:100C70003B1780913C1790913D170F9419BF0F942B +:100C800079C06A307105DCF4C701B6010F9479C0F0 +:100C9000882777FD8095982F0F94ACC09B01AC01FD +:100CA000C201B1010F9419BF0F9479C0633071056F +:100CB00074F444E156E0BA0181E090E005C044E1FB +:100CC00056E0BA0182E090E00F944C7CB12C0F9476 +:100CD000224D81E00E944876BB2061F008E813E1D4 +:100CE00021E043E050E0B30186E090E089DA0CC0F7 +:100CF000612C712C08E813E121E043E050E0B301DE +:100D000087E090E07DDAB12C1092051861E087EB66 +:100D10009DE90E94B5630F9432610F9424B76C591A +:100D20007F4F8F4F9F4F60939217709393178093CD +:100D3000941790939517E091530AF0E0EE0FFF1F80 +:100D4000BB2019F0ED54F44802C0EB5EF3488591E6 +:100D500094910F94756228960FB6F894DEBF0FBE7B +:100D6000CDBFDF91CF911F910F91FF90EF90DF905A +:100D7000CF90BF90AF909F908F907F906F905F903B +:100D80004F903F902F9008956091200A7091210A12 +:100D90008091220A9091230A27CD6091240A7091B4 +:100DA000250A8091260A9091270A36CD6091280A5B +:100DB0007091290A80912A0A90912B0A45CD0F93B0 +:100DC0001F93CF93DF9380919D1790919E17A091D1 +:100DD0009F17B091A01781309048A105B10540F050 +:100DE00010929D1710929E1710929F171092A017A5 +:100DF00080919D1790919E17A0919F17B091A01779 +:100E00004091A21750E060E070E084179507A607B4 +:100E1000B70710F48093A217D091A2171091A317CF +:100E200012FB112710F9C0E001E0D11138C0809108 +:100E30009B028823E1F0E091530AF0E0EE0FFF1FE0 +:100E4000EF58F0486591749180919D1790919E178D +:100E5000A0919F17B091A01723E0892B8A2B8B2B91 +:100E600011F443E001C040E28C2F0F94EE531123A4 +:100E7000B1F080919D1790919E17A0919F17B0910E +:100E8000A017892B8A2B8B2B51F40F941C5582EBC6 +:100E900091E0DF91CF911F910F910D94F3558091C7 +:100EA0001E18811101C240919D1750919E176091AB +:100EB0009F177091A017D13089F580919B028823EC +:100EC000B1F0E091530AF0E0EE0FFF1FE951F34853 +:100ED0008591949120E2413051056105710511F42D +:100EE0004EE301C040E2BC018C2F0F94EE5311235E +:100EF00009F45FC180919D1790919E17A0919F1753 +:100F0000B091A0170197A105B10509F052C10F9446 +:100F10001C55DF91CF911F910F9105CCD23091F5E7 +:100F200080919B028823B1F0E091530AF0E0EE0F2C +:100F3000FF1FE752FE478591949120E24230510510 +:100F40006105710511F44EE301C040E2BC018C2F34 +:100F50000F94EE53112309F42CC180919D179091A9 +:100F60009E17A0919F17B091A0170297A105B105F8 +:100F700009F01FC10F941C55DF91CF911F910F9164 +:100F80000D942A59D33079F580919B028823B1F0D2 +:100F9000E091530AF0E0EE0FFF1FE75CFF478591F9 +:100FA00094912EE7433051056105710511F44EE32C +:100FB00001C040E2BC018C2F0F94EE53112309F4C1 +:100FC000F8C080919D1790919E17A0919F17B091A6 +:100FD000A0170397A105B10509F0EBC00F941C55AC +:100FE00086E891E030C0D430A1F580919B0288233F +:100FF000B1F0E091530AF0E0EE0FFF1FE75CF0481C +:10100000859194912EE7443051056105710511F4E5 +:101010004EE301C040E2BC018C2F0F94EE5311232C +:1010200009F4C7C080919D1790919E17A0919F17BA +:10103000B091A0170497A105B10509F0BAC00F94AB +:101040001C5586E691E0DF91CF911F910F910D9491 +:101050005557D53081F580919B028823B1F0E091FE +:10106000530AF0E0EE0FFF1FE15DFC47859194917C +:1010700020E2453051056105710511F44EE301C0D0 +:1010800040E2BC018C2F0F94EE53112309F491C060 +:1010900080919D1790919E17A0919F17B091A017D6 +:1010A0000597A105B10509F084C00F941C5561E0B6 +:1010B0008DEE9DE9F3C0D63079F580919B028823AF +:1010C000B1F0E091530AF0E0EE0FFF1FE752FD4749 +:1010D000859194912EE7463051056105710511F413 +:1010E0004EE301C040E2BC018C2F0F94EE5311235C +:1010F00009F45FC080919D1790919E17A0919F1752 +:10110000B091A0170697A105B10509F052C00F9440 +:101110001C558AE991E097CFD73069F580919B0201 +:101120008823B1F0E091530AF0E0EE0FFF1FE15584 +:10113000FE47859194912EE7473051056105710571 +:1011400011F44EE301C040E2BC018C2F0F94EE532A +:10115000112379F180919D1790919E17A0919F176F +:10116000B091A0170797A105B10519F50F941C556B +:1011700088EC91E068CFD83079F580919B02882384 +:10118000B1F0E091530AF0E0EE0FFF1FE35EF1488B +:10119000859194912EE7483051056105710511F450 +:1011A0004EE301C040E2BC018C2F0F94EE531111AD +:1011B00002C02BE07AC080919D1790919E17A0915C +:1011C0009F17B091A0170897A105B10591F70F944B +:1011D0001C558AEC91E037CFD93071F580919B0294 +:1011E0008823B1F0E091530AF0E0EE0FFF1FE15ABF +:1011F000F448859194912EE74930510561057105B8 +:1012000011F44EE301C040E2BC018C2F0F94EE5369 +:10121000112379F280919D1790919E17A0919F17AD +:10122000B091A0170997A105B10509F0C2CF0F949D +:101230001C5586E791E007CFDA3009F0BACF8091EC +:101240009B028823B1F0E091530AF0E0EE0FFF1FFC +:10125000E553FE478591949120E24A30510561059E +:10126000710511F44EE301C040E2BC018C2F0F94D4 +:10127000EE53112309F49DCF80919D1790919E17F5 +:10128000A0919F17B091A0170A97A105B10509F089 +:1012900090CF0F941C5561E089EE9DE9DF91CF91CD +:1012A0001F910F910C94B56321E0422F50E060E054 +:1012B00070E080919D1790919E17A0919F17B0911B +:1012C000A01784179507A607B70780F0422F50E0B4 +:1012D00041505109662757FD6095762F40939D1721 +:1012E00050939E1760939F177093A01740919D177E +:1012F0008091A21790E00396242F30E08217930785 +:101300004CF48DEF840F8093A21700939B02DCEFC7 +:10131000D40FCFEFCF5FDF5FC43008F486CDDF910D +:10132000CF911F910F9108958F929F92AF92BF928C +:10133000CF92DF92EF92FF920F931F9320E030E065 +:1013400042E053E460913A1770913B1780913C174B +:1013500090913D170F9439C218160CF093C08091EC +:101360009D1790919E17A0919F17B091A017892B60 +:101370008A2B8B2B09F46BC00E9408688091721035 +:101380008F5F803109F480E090917110981709F413 +:101390005EC060919D1770919E17882777FD80959C +:1013A000982F0F94ACC020918A1730918B174091E1 +:1013B0008C1750918D170F940BC39B01AC0160915A +:1013C0002C0A70912D0A80912E0A90912F0A0F9469 +:1013D0001ABF60932C0A70932D0A80932E0A909363 +:1013E0002F0A10929D1710929E1710929F1710921D +:1013F000A017E090280AF090290A00912A0A10917B +:101400002B0A2091240A3091250A4091260A5091F6 +:10141000270A6091200A7091210A8091220A9091F6 +:10142000230AECE0FAE0FF93EF93E5E58E2E982C8B +:10143000E5EDAE2EEFE3BE2EFCE2CF2EFAE0DF2E7E +:101440000F94152681E080939B020F900F9080915E +:101450009B02882349F08CE29AE00F94B467BC01A8 +:1014600085E79DE90F94CF788091A31782FF40C054 +:1014700001E021E040E050E0BA0182ED91E00F94FC +:101480002B5536C00F94326140E060E084EA97E16A +:101490000E94C959E091530AF0E0EE0FFF1FE75F89 +:1014A000FE47859194910F94BE7842E060E084EA13 +:1014B00097E10E94C959E091530AF0E0EE0FFF1F37 +:1014C000E954F248859194910F94BE7860ED77E0ED +:1014D00080E090E00F9453B71F910F91FF90EF9031 +:1014E000DF90CF90BF90AF909F908F900D94055953 +:1014F0001F910F91FF90EF90DF90CF90BF90AF9032 +:101500009F908F90089520E030E042E053E4609196 +:101510003A1770913B1780913C1790913D170F94AB +:1015200039C2181634F461E086EC9BE90E94B56379 +:101530002CC00F94326140E060E084EA97E10E94A1 +:10154000C959E091530AF0E0EE0FFF1FE75FFE4735 +:10155000859194910F94BE7842E060E084EA97E12F +:101560000E94C959E091530AF0E0EE0FFF1FE954C1 +:10157000F248859194910F94BE7860ED77E080E019 +:1015800090E00F9453B70F9432610D9405590F9466 +:10159000326141E060E084EA97E10E94C959E0913C +:1015A000530AF0E0EE0FFF1FED50F0488591949143 +:1015B0000F94BE7842E060E084EA97E10E94C95946 +:1015C000E091530AF0E0EE0FFF1FE755F2488591D6 +:1015D00094910D94BE780F94326142E060E084EA09 +:1015E00097E10E94C959E091530AF0E0EE0FFF1F06 +:1015F000ED56FE47859194910D94BE781F93CF933D +:10160000DF930F94326140E060E084EA97E10E944A +:10161000C959E091530AF0E0EE0FFF1FE754F0487C +:10162000859194910F94BE7842E060E084EA97E15E +:101630000E94C959E091530AF0E0EE0FFF1FEB52F0 +:10164000F248859194910F94BE7810E043E0612FA9 +:1016500084EA97E10E94C9596BE774E084EA97E154 +:101660000F94E3B9CAE0D0E00F94224D81E00E94CC +:10167000487665E570E080E090E00F9453B72197DD +:1016800099F71F5F143111F7DF91CF911F910895E2 +:101690001F93CF93DF930F94326140E060E084EAC0 +:1016A00097E10E94C959E091530AF0E0EE0FFF1F45 +:1016B000E555F048859194910F94BE7842E060E042 +:1016C00084EA97E10E94C959E091530AF0E0EE0FD5 +:1016D000FF1FEB52F248859194910F94BE7810E071 +:1016E00043E0612F84EA97E10E94C9596BE774E0F7 +:1016F00084EA97E10F94E3B9CAE0D0E00F94224D59 +:1017000081E00E94487669E870E080E090E00F9404 +:1017100053B7219799F71F5F143111F7DF91CF91DC +:101720001F9108950F931F93CF93DF930F9432610E +:1017300040E060E084EA97E10E94C959E091530AD1 +:10174000F0E0EE0FFF1FE55BFE47859194910F944B +:10175000BE7841E061E084EA97E10E94C959E091D6 +:10176000530AF0E0EE0FFF1FEB51F648859194917C +:101770000F94BE7842E061E084EA97E10E94C95983 +:10178000E091530AF0E0EE0FFF1FEF56F14885910C +:1017900094910F94BE7843E061E084EA97E10E945F +:1017A000C959E091530AF0E0EE0FFF1FE156F148EE +:1017B000859194910F94BE7841E060E084EA97E1CE +:1017C0000E94C95962E475E084EA97E10F94E3B995 +:1017D00000914318112707FD1095C1E0D0E08091DA +:1017E000780A9091790A892B09F072C00F94224DE2 +:1017F00081E00E94487620914318332727FD3095D9 +:10180000C801821B930B97FF03C0919581959109A5 +:1018100005970CF44DC0201731070CF421970217DF +:1018200013070CF42196C430D1052CF4209729F429 +:10183000C1E0D0E002C0C3E0D0E041E060E084EA73 +:1018400097E10E94C9596BE776E084EA97E10F942B +:10185000E3B942E060E084EA97E10E94C9596BE78E +:1018600076E084EA97E10F94E3B943E060E084EA2C +:1018700097E10E94C9596BE776E084EA97E10F94FB +:10188000E3B94C2F60E084EA97E10E94C95962E411 +:1018900075E084EA97E10F94E3B9009143181127AA +:1018A00007FD109564E670E080E090E00F9453B778 +:1018B0000F94EC65882309F492CFD093790AC093F2 +:1018C000780A64EF71E080E090E00F9453B787CF1F +:1018D0000F943261DF91CF911F910F910D940559B3 +:1018E00020E030E042E053E460913A1770913B17FA +:1018F00080913C1790913D170F9439C21816F4F45B +:1019000081E08093470A8093460A61E081EC9BE97D +:101910000E94B563EBE3F6E08191882339F0909162 +:10192000C00095FFFCCF8093C600F6CF8091C00029 +:1019300085FFFCCF8AE08093C6002CC00F943261F3 +:1019400040E060E084EA97E10E94C959E091530ABF +:10195000F0E0EE0FFF1FE75FFE47859194910F9433 +:10196000BE7842E060E084EA97E10E94C959E091C4 +:10197000530AF0E0EE0FFF1FE954F248859194916D +:101980000F94BE7860ED77E080E090E00F9453B75D +:101990000F9432610D9405598F929F92AF92BF922E +:1019A000DF92EF92FF920F931F93CF93DF931092EA +:1019B000241880919D1790919E17A0919F17B09128 +:1019C000A01781309048A105B10540F010929D17F5 +:1019D00010929E1710929F171092A01780919D173A +:1019E00090919E17A0919F17B091A0174091A217B8 +:1019F00050E060E070E084179507A607B70710F481 +:101A00008093A217D091A2171091A31712FB112750 +:101A100010F9C0E0DD24D39440919D1750919E179A +:101A200060919F177091A017D1113AC080919B02CD +:101A30008823A9F0E091530AF0E0EE0FFF1FE75072 +:101A4000F6488591949123E0452B462B472B11F4C2 +:101A500043E001C040E2BC018C2F0F94EE531123F0 +:101A600009F482C080919D1790919E17A0919F17B5 +:101A7000B091A017892B8A2B8B2B09F075C00F947E +:101A80001C5580E691E0DF91CF911F910F91FF905F +:101A9000EF90DF90BF90AF909F908F900D94F35593 +:101AA000D13089F580919B02882371F020E241308A +:101AB00051056105710511F44EE301C040E263ED8B +:101AC0007EE98C2F0F94EE53112309F44DC08091C1 +:101AD0009D1790919E17A0919F17B091A017019705 +:101AE000A105B10509F040C00F941C55DF91CF91BD +:101AF0001F910F91FF90EF90DF90BF90AF909F905C +:101B00008F900C94F6B3D23079F580919B028823A4 +:101B100071F020E2423051056105710511F44EE388 +:101B200001C040E26AEC7EE98C2F0F94EE53112342 +:101B3000D9F080919D1790919E17A0919F17B09119 +:101B4000A0170297A105B10579F40F941C55DF91F8 +:101B5000CF911F910F91FF90EF90DF90BF90AF90CA +:101B60009F908F900C94B9B480919F0A811105C009 +:101B70008091820A882309F44FC020E030E040E0E1 +:101B800050E46091280A7091290A80912A0A909164 +:101B90002B0A0F940AC087FF3FC08091810A8111F0 +:101BA0003BC08091550A811137C0D33011F004E059 +:101BB00034C080919B028823E1F0E091530AF0E069 +:101BC000EE0FFF1FE15EFC476591749180919D17B8 +:101BD00090919E17A0919F17B091A0172EE70397A1 +:101BE000A105B10511F44EE301C040E28C2F0F9422 +:101BF000EE531123E1F280919D1790919E17A091D1 +:101C00009F17B091A0170397A105B10581F60F9416 +:101C10001C5580E391E038C003E0809172109091F0 +:101C20007110891B8F7040919D1750919E17609184 +:101C30009F177091A017811109C080919F0A81118F +:101C400005C08091820A882309F446C00D134CC058 +:101C500080919B02811125C0112309F445C0802F7A +:101C600090E0A0E0B0E040919D1750919E176091E8 +:101C70009F177091A017481759076A077B07A1F5AE +:101C80000F941C5588E691E0DF91CF911F910F9141 +:101C9000FF90EF90DF90BF90AF909F908F900D944A +:101CA0005557E091530AF0E0EE0FFF1FE15BF54856 +:101CB00085919491802E912CA12CB12C2EE7481562 +:101CC00059056A057B0511F44EE301C040E2BC01F1 +:101CD0008C2F0F94EE53C0CF0D1306C080919B0242 +:101CE000811164C311117DC30F5F8091A00A4091DF +:101CF0009D1750919E1760919F177091A017882390 +:101D000009F4F0C08091890C882309F4D9C080912E +:101D1000550A811120C18091810A81111CC18091D5 +:101D20009F0A882309F444C00D1384C080919B024C +:101D30008823D1F0E091530AF0E0EE0FFF1FE95B3A +:101D4000F14885919491802E912CA12CB12C20E208 +:101D5000481559056A057B0511F44EE301C040E2C0 +:101D6000BC018C2F0F94EE53112309F463C0802F14 +:101D700090E0A0E0B0E040919D1750919E176091D7 +:101D80009F177091A017481759076A077B0709F03A +:101D900051C00F941C55DF91CF911F910F91FF906F +:101DA000EF90DF90BF90AF909F908F900D94195956 +:101DB0000D1340C080919B028823D1F0E091530A1B +:101DC000F0E0EE0FFF1FEB5BF24885919491802EBF +:101DD000912CA12CB12C20E2481559056A057B05F0 +:101DE00011F44EE301C040E2BC018C2F0F94EE537E +:101DF000112301F1802F90E0A0E0B0E040919D1709 +:101E000050919E1760919F177091A017481759071E +:101E10006A077B0779F40F941C55DF91CF911F91CE +:101E20000F91FF90EF90DF90BF90AF909F908F90B9 +:101E30000D941159FF24F394F00EFD123EC08091D1 +:101E40009B02882311F1E091530AF0E0EE0FFF1F8F +:101E5000E353F548859194914F2D50E060E070E098 +:101E600080909D1790909E17A0909F17B090A017FC +:101E70002EE784169506A606B70611F44EE301C0B8 +:101E800040E2BC018C2F0F94EE531123B1F04F2D83 +:101E900050E060E070E080909D1790909E17A090B9 +:101EA0009F17B090A01784169506A606B70629F4CA +:101EB0000F941C5582E991E0E7CE01E00F0D4BC075 +:101EC0008091820A811147C00D1344C080919B020A +:101ED000882331F1E091530AF0E0EE0FFF1FEF5538 +:101EE000FE470DC00D1336C080919B028823C1F0C0 +:101EF000E091530AF0E0EE0FFF1FEB58F148859197 +:101F00009491802E912CA12CB12C2EE748155905C7 +:101F10006A057B05E9F040E2BC018C2F0F94EE537B +:101F20001123C1F0802F90E0A0E0B0E040919D1718 +:101F300050919E1760919F177091A01748175907ED +:101F40006A077B0739F40F941C5584ED91E09CCE11 +:101F50004EE3E2CF0F5F20919F0A80919D179091F1 +:101F60009E17A0919F17B091A017211104C0209136 +:101F7000820A2223B9F120911D18222309F44BC1B2 +:101F80000D132EC020919B02222391F0402F50E090 +:101F900060E070E02EE784179507A607B70711F4F5 +:101FA0004EE301C040E26EEB7EE98C2F0F94EE53BE +:101FB0001123B1F0802F90E0A0E0B0E040919D1798 +:101FC00050919E1760919F177091A017481759075D +:101FD0006A077B0729F40F941C558AE791E054CED9 +:101FE0000F5F19C10D133EC020919B022223C9F03F +:101FF000E091530AF0E0EE0FFF1FE356F0486591C1 +:102000007491802E912CA12CB12C20E28815990579 +:10201000AA05BB0511F44EE301C040E28C2F0F94DA +:10202000EE531123F9F0802F90E0A0E0B0E0409152 +:102030009D1750919E1760919F177091A017481798 +:1020400059076A077B0771F40F941C55DF91CF91F4 +:102050001F910F91FF90EF90DF90BF90AF909F90F6 +:102060008F903ECCEE24E394E00EED1247C08091B9 +:102070009B02882311F1E091530AF0E0EE0FFF1F5D +:10208000EF5CF548A591B4914E2D50E060E070E012 +:1020900080909D1790909E17A0909F17B090A017CA +:1020A00020E284169506A606B70611F44EE301C099 +:1020B00040E2BD018C2F0F94EE531123F9F08E2DC9 +:1020C00090E0A0E0B0E040919D1750919E17609184 +:1020D0009F177091A017481759076A077B0771F47B +:1020E0000F941C55DF91CF911F910F91FF90EF90AE +:1020F000DF90BF90AF909F908F9005CA72E0E72E5F +:10210000E00EED123EC080919B02882311F1E09118 +:10211000530AF0E0EE0FFF1FE558F448A591B49183 +:102120004E2D50E060E070E080909D1790909E17DB +:10213000A0909F17B090A0172EE784169506A606CC +:10214000B70611F44EE301C040E2BD018C2F0F949D +:10215000EE531123B1F08E2D90E0A0E0B0E040915D +:102160009D1750919E1760919F177091A017481767 +:1021700059076A077B0729F40F941C5582E391E005 +:1021800083CD53E0E52EE00E80911E18811142C0F0 +:10219000ED123EC080919B02882311F1E091530A19 +:1021A000F0E0EE0FFF1FE95BF048A591B4914E2DD2 +:1021B00050E060E070E080909D1790909E17A09096 +:1021C0009F17B090A0172EE784169506A606B706AF +:1021D00011F44EE301C040E2BD018C2F0F94EE5389 +:1021E0001123B1F08E2D90E0A0E0B0E040919D175A +:1021F00050919E1760919F177091A017481759072B +:102200006A077B0729F40F941C558CE691E03CCDBE +:102210000C5F01C00E2D8091820A811140C00D1308 +:102220003DC080919B02882309F1E091530AF0E0C0 +:10223000EE0FFF1FED5DF44865917491802F90E0E3 +:10224000A0E0B0E080909D1790909E17A0909F17FF +:10225000B090A0172EE788169906AA06BB0611F4BF +:102260004EE301C040E28C2F0F94EE531123B1F0E6 +:10227000802F90E0A0E0B0E040919D1750919E1714 +:1022800060919F177091A017481759076A077B073D +:1022900029F40F941C558CE991E0F6CC0F5F0D13D7 +:1022A0003DC080919B02882309F1E091530AF0E040 +:1022B000EE0FFF1FE154F54865917491802F90E077 +:1022C000A0E0B0E080909D1790909E17A0909F177F +:1022D000B090A0172EE788169906AA06BB0611F43F +:1022E0004EE301C040E28C2F0F94EE531123B1F066 +:1022F000802F90E0A0E0B0E040919D1750919E1794 +:1023000060919F177091A017481759076A077B07BC +:1023100029F40F941C558AEA91E0B6CCFF24F3947B +:10232000F00E8F2D90E0A0E0B0E040919D1750910D +:102330009E1760919F177091A017481759076A0759 +:102340007B0778F08F2D90E00197AA2797FDA09545 +:10235000BA2F80939D1790939E17A0939F17B093C9 +:10236000A01740919D178091A21790E00396242F0B +:1023700030E0821793074CF48DEF840F8093A217FF +:10238000D0929B02DCEFD40FCFEFCF5FDF5FC43082 +:1023900008F442CBDF91CF911F910F91FF90EF9006 +:1023A000DF90BF90AF909F908F900895E091530A77 +:1023B000F0E0EE0FFF1FEB53F24885919491802ED1 +:1023C000912CA12CB12C2EE7481559056A057B05E7 +:1023D00011F44EE301C040E2BC018C2F0F94EE5388 +:1023E00081CC402F50E060E070E080909D1790908D +:1023F0009E17A0909F17B090A01784169506A6066A +:10240000B70609F071CC0F941C5588E991E03CCCDB +:102410004F925F926F927F928F929F92AF92BF92F4 +:10242000CF92DF92EF92FF920F931F93CF93DF93A0 +:10243000CDB7DEB72C970FB6F894DEBF0FBECDBF79 +:1024400080919F0A882309F4ECC0C0904C0AD09078 +:102450004D0AE0904E0AF0904F0AC701B60120EAFB +:1024600036E841E050E00F94FCC429873A874B8757 +:102470005C873E832D830F9424B70091C50710918C +:10248000C6072091C7073091C807601B710B820BEC +:10249000930B28EE33E040E050E00F94FCC4290198 +:1024A0003A01C90160E17EE00F94E9C44B0180EF7D +:1024B00091EF689F9001699F300D789F300D112436 +:1024C000C901840D951D6CE370E00F94E9C48B0184 +:1024D00044EC46035001479FB00C1124A20EB31EDA +:1024E000A40CB51C40E060E084EA97E10E94C95961 +:1024F000E091530AF0E0EE0FFF1FEB5EF448859188 +:1025000094910F94BE7841E066E084EA97E10E94DE +:10251000C959CE0105960F94626ABC0184EA97E11D +:102520000F94E3B96CE476E084EA97E10F94E3B9A1 +:10253000A985BA8520E639E74EEF5FEF0F9450C5C5 +:102540006C0D7D1D8E1D9F1D2AE030E040E050E0A7 +:102550000F94FCC4B901882777FD8095982F0F94BC +:10256000ACC069837A838B839C83CE0101960F94E0 +:102570008468BC0184EA97E10F94E3B96FE476E0E4 +:1025800084EA97E10F94E3B942E060E084EA97E1DE +:102590000E94C959E091530AF0E0EE0FFF1FE95F76 +:1025A000F448859194910F94BE7843E068E084EA02 +:1025B00097E10E94C9598982CE0101960F949C67C8 +:1025C000BC0184EA97E10F94E3B962E576E084EA1E +:1025D00097E10F94E3B90983CE0101960F949C67AC +:1025E000BC0184EA97E10F94E3B96CE476E084EAF5 +:1025F00097E10F94E3B9A982CE0101960F949C67ED +:10260000BC0184EA97E10F94E3B966E575E084EADA +:1026100097E10F94E3B90F94EC65882309F468C13E +:1026200063C181EF9FE00F9465CB6B017C018DEE60 +:102630009FE00F9465CB4B015C01C701B6010F947D +:10264000AAC069837A838B839C8320EAC21626E81A +:10265000D20621E0E206F10450F0C701B60120EAFB +:1026600036E841E050E00F94FCC4D90102C0A0E07C +:10267000B0E0B887AF831A161B0684F420E639E76A +:102680004EEF5FEF0F9450C56C0D7D1D8E1D9F1D8D +:102690000F94AAC069837A838B839C83C501B4019C +:1026A00020EA35E040E050E00F94FCC4122F032FE5 +:1026B000A0EAB5E00F9446C5A5019401261B370B8F +:1026C000480B590BCA01B9012CE330E040E050E05F +:1026D0000F94FCC4F22E30E6139F800C11244CE3BF +:1026E000F49E801811240F94326140E060E084EA87 +:1026F00097E10E94C959E091530AF0E0EE0FFF1FE5 +:10270000E750F548859194910F94BE78CE010196DB +:102710000F948468FC0101900020E9F7682F6E1B7C +:102720006E5E41E084EA97E10E94C959CE010196AC +:102730000F948468BC0184EA97E10F94E3B98F8118 +:102740009885181619067CF5CE0101960F948468B9 +:10275000FC0101900020E9F7682F6E1B615F41E0EA +:1027600084EA97E10E94C95965E576E084EA97E139 +:102770000F94E3B9CE0101960F948468FC01019097 +:102780000020E9F7682F6E1B665F41E084EA97E15D +:102790000E94C959CE0107960F944478BC0184EA7F +:1027A00097E10F94E3B941E062E184EA97E10E9486 +:1027B000C95960E576E084EA97E10F94E3B942E015 +:1027C00060E084EA97E10E94C959E091530AF0E081 +:1027D000EE0FFF1FE551F548859194910F94BE7857 +:1027E00043E062E184EA97E10E94C95960E576E03E +:1027F00084EA97E10F94E3B943E06EE084EA97E15D +:102800000E94C959912C9E828D82CE0105960F940B +:10281000626ABC0184EA97E10F94E3B943E06EE099 +:1028200084EA97E10E94C95969E375E084EA97E177 +:102830000F94E3B943E06CE084EA97E10E94C95940 +:1028400068E576E084EA97E10F94E3B943E069E054 +:1028500084EA97E10E94C9598F2D90E09E838D8371 +:10286000CE0105960F94626ABC0184EA97E10F9449 +:10287000E3B943E069E084EA97E10E94C95969E35A +:1028800075E084EA97E10F94E3B943E067E084EAF6 +:1028900097E10E94C95969E376E084EA97E10F94D1 +:1028A000E3B943E064E084EA97E10E94C959812FCB +:1028B000902F9E838D83CE0105960F94626ABC0192 +:1028C00084EA97E10F94E3B90F94EC6581110CC091 +:1028D0000F94224D81E00E94487664E670E080E02B +:1028E00090E00F9453B7F0CF0F941C550F940559F7 +:1028F0002C960FB6F894DEBF0FBECDBFDF91CF91FF +:102900001F910F91FF90EF90DF90CF90BF90AF900D +:102910009F908F907F906F905F904F900895CF928F +:10292000DF92EF92FF920F94326140E061E084EA1F +:1029300097E10E94C959E091530AF0E0EE0FFF1FA2 +:10294000E359F448859194910F94BE7860919D1756 +:1029500070919E17882777FD8095982F0F94ACC0B3 +:102960002091A3023091A4024091A5025091A602A9 +:102970000F941ABF6B017C0120E030E848E953E472 +:102980000F9439C218164CF0C092A302D092A40240 +:10299000E092A502F092A6020CC080E090E8A8E9BF +:1029A000B3E48093A3029093A402A093A502B093F2 +:1029B000A60220E030E040E751E46091A30270916C +:1029C000A4028091A5029091A6020F940AC087FFED +:1029D0000CC080E090E0A0E7B1E48093A302909364 +:1029E000A402A093A502B093A60210929D17109284 +:1029F0009E1710929F171092A01742E061E084EAA0 +:102A000097E10E94C95983EA92E00F944377BC0191 +:102A100084EA97E10F94E3B90F94EC65882379F089 +:102A200087E090E090932218809321180F94055925 +:102A300082E0FF90EF90DF90CF900D94CB63FF90FA +:102A4000EF90DF90CF900895BF92CF92DF92EF92F8 +:102A5000FF92CF93DF93D62FC42F0F94B86542E037 +:102A6000CC23D9F060E084EA97E10E94C95988E458 +:102A70009BE90F94BE78E091530AF0E0EE0FFF1F40 +:102A8000EB51F648859194910F94BE7843E061E054 +:102A900084EA97E10E94C9591AC061E084EA97E18B +:102AA0000E94C959E091530AF0E0EE0FFF1FEB516D +:102AB000F648859194910F94BE7843E060E084EAF3 +:102AC00097E10E94C95986E49BE90F94BE78E09192 +:102AD000530AF0E0EE0FFF1FE355F1488591949102 +:102AE0000F94BE780F9424B76B017C01B09043180B +:102AF000DD2369F00F9424B76C197D098E099F09B5 +:102B000069397A438105910510F08FEF5CC00F940D +:102B1000224D81E00E9448762B2D332727FD3095EA +:102B200080914318281B310987FD339537FF03C077 +:102B3000319521953109253031058CF142E060E075 +:102B400084EA97E10E94C95980914318B81694F419 +:102B5000CC2319F184E49BE90F94BE7843E060E054 +:102B600084EA97E10E94C95982E49BE90F94BE78F8 +:102B7000C0E013C08B158CF4C1110FC080E49BE939 +:102B80000F94BE7843E060E084EA97E10E94C9595F +:102B90008EE39BE90F94BE78C1E0B09043180F9488 +:102BA000EC65882309F4A4CF0F94EC658111FCCF68 +:102BB0006AE070E080E090E00F9453B70F94EC650A +:102BC0008111FCCF8C2FDF91CF91FF90EF90DF90A0 +:102BD000CF90BF9008950F9340E061E082E89DE9B7 +:102BE00033DF882341F061E08EE79DE90E94B56301 +:102BF0000F94055909C001E021E040E050E0BA011E +:102C000082E391E00F942B5581E00F94C56482E03C +:102C100080939B020F9108958F929F92AF92BF92E3 +:102C2000EF92FF920F931F93CF93DF9341E063E204 +:102C300078E18FEF9FE00F94B96180919D1790919B +:102C40009E17A0919F17B091A01781309048A105C1 +:102C5000B10540F010929D1710929E1710929F1789 +:102C60001092A01780919D1790919E17A0919F1789 +:102C7000B091A0174091A21750E060E070E0841777 +:102C80009507A607B70710F48093A217D091A21753 +:102C90001091A31712FB112710F9C0E001E0409139 +:102CA0009D1750919E1760919F177091A017D11199 +:102CB00039C080919B028823A9F0E091530AF0E08B +:102CC000EE0FFF1FEF58F0488591949123E0452BBC +:102CD000462B472B11F443E001C040E2BC018C2F8E +:102CE0000F94EE53112309F44CC080919D179091DD +:102CF0009E17A0919F17B091A017892B8A2B8B2B21 +:102D000009F03FC00F941C5582EB91E0DF91CF9109 +:102D10001F910F91FF90EF90BF90AF909F908F9079 +:102D20000D94F355D13069F580919B028823B1F061 +:102D3000E091530AF0E0EE0FFF1FEF54F548859144 +:102D400094912EE7413051056105710511F44EE370 +:102D500001C040E2BC018C2F0F94EE53112389F087 +:102D600080919D1790919E17A0919F17B091A017E9 +:102D70000197A105B10529F40F941C558EE691E049 +:102D80003BC08091810A811143C0D23019F033E0F9 +:102D9000F32E40C080919B028823E1F0E091530A1A +:102DA000F0E0EE0FFF1FE55DF048659174918091B2 +:102DB0009D1790919E17A0919F17B091A0172EE795 +:102DC0000297A105B10511F44EE301C040E28C2F3A +:102DD0000F94EE531123D9F280919D1790919E1775 +:102DE000A0919F17B091A0170297A105B10579F6A0 +:102DF0000F941C5584E991E0DF91CF911F910F91C1 +:102E0000FF90EF90BF90AF909F908F900D9455578B +:102E100092E0F92E80911E1881114CC0FD1249C01C +:102E200080919B02882309F1E091530AF0E0EE0FB4 +:102E3000FF1FE35DFE47659174918F2D90E0A0E048 +:102E4000B0E080909D1790909E17A0909F17B09033 +:102E5000A01720E288169906AA06BB0611F44EE3D5 +:102E600001C040E28C2F0F94EE53112311F18F2DEE +:102E700090E0A0E0B0E040919D1750919E176091C6 +:102E80009F177091A017481759076A077B0789F4A5 +:102E90000F941C5561E083EB9DE9DF91CF911F9169 +:102EA0000F91FF90EF90BF90AF909F908F900C94F8 +:102EB000B563F3948091231840919D1750919E170C +:102EC00060919F177091A017882329F080911D1899 +:102ED000882309F443C0FD1275C080919B028823AA +:102EE000D1F0E091530AF0E0EE0FFF1FEF5AF448E3 +:102EF000859194918F2C912CA12CB12C20E2481516 +:102F000059056A057B0511F44EE301C040E2BC019E +:102F10008C2F0F94EE53112309F454C08F2D90E0A1 +:102F2000A0E0B0E040919D1750919E1760919F17CF +:102F30007091A017481759076A077B0709F042C02C +:102F40000F941C55DF91CF911F910F91FF90EF903F +:102F5000BF90AF909F908F900D94C155FD1232C0DD +:102F600080919B028823D1F0E091530AF0E0EE0FAC +:102F7000FF1FED5BF448859194918F2C912CA12C2F +:102F8000B12C20E2481559056A057B0511F44EE382 +:102F900001C040E2BC018C2F0F94EE53112391F03D +:102FA0004F2D50E060E070E080909D1790909E174C +:102FB000A0909F17B090A01784169506A606B70696 +:102FC00009F4BECFF39480911E18811144C0809102 +:102FD000810A811140C0FD123DC080919B0288236F +:102FE00009F1E091530AF0E0EE0FFF1FE15EFC47AC +:102FF000659174918F2D90E0A0E0B0E080909D17D6 +:1030000090909E17A0909F17B090A0172EE788165B +:103010009906AA06BB0611F44EE301C040E28C2FCC +:103020000F94EE531123B1F08F2D90E0A0E0B0E0AB +:1030300040919D1750919E1760919F177091A01716 +:10304000481759076A077B0729F40F941C5580E33A +:1030500091E0D2CEF394FD123DC080919B02882373 +:1030600009F1E091530AF0E0EE0FFF1FE953F04839 +:10307000659174918F2D90E0A0E0B0E080909D1755 +:1030800090909E17A0909F17B090A0172EE78816DB +:103090009906AA06BB0611F44EE301C040E28C2F4C +:1030A0000F94EE531123B1F08F2D90E0A0E0B0E02B +:1030B00040919D1750919E1760919F177091A01796 +:1030C000481759076A077B0729F40F941C5580E7B6 +:1030D00091E092CEEE24E394EF0C8091630C40914A +:1030E0009D1750919E1760919F177091A01788238C +:1030F00009F443C0ED1275C080919B028823D1F082 +:10310000E091530AF0E0EE0FFF1FE35AF548859176 +:1031100094918E2C912CA12CB12C20E248155905AC +:103120006A057B0511F44EE301C040E2BC018C2F1F +:103130000F94EE53112309F454C04E2D50E060E07B +:1031400070E080919D1790919E17A0919F17B0916C +:10315000A01784179507A607B70709F042C00F9478 +:103160001C55DF91CF911F910F91FF90EF90BF9071 +:10317000AF909F908F900D94EF54ED1232C08091DC +:103180009B028823D1F0E091530AF0E0EE0FFF1F7D +:10319000E559F548859194918E2C912CA12CB12C58 +:1031A00020E2481559056A057B0511F44EE301C07C +:1031B00040E2BC018C2F0F94EE53112391F04E2D61 +:1031C00050E060E070E080909D1790909E17A09076 +:1031D0009F17B090A01784169506A606B70609F4A7 +:1031E000BECFF394F39480911D18882309F47DC019 +:1031F000FD1236C080919B028823D1F08F2D90E084 +:10320000A0E0B0E040919D1750919E1760919F17EC +:103210007091A0172EE7481759076A077B0711F42A +:103220004EE301C040E267EA7DE98C2F0F94EE5334 +:103230001123B1F08F2D90E0A0E0B0E040919D17F8 +:1032400050919E1760919F177091A01748175907CA +:103250006A077B0729F40F941C558AE791E0CCCDCF +:10326000EE24E394EF0CED123EC080919B02882384 +:10327000D1F04D2F50E060E070E080909D1790906D +:103280009E17A0909F17B090A01720E28416950675 +:10329000A606B70611F44EE301C040E265E97DE9F8 +:1032A0008C2F0F94EE531123F1F08E2D90E0A0E0BF +:1032B000B0E040919D1750919E1760919F177091BB +:1032C000A017481759076A077B0769F40F941C5524 +:1032D000DF91CF911F910F91FF90EF90BF90AF9032 +:1032E0009F908F9078CCF394F3948F2D90E0A0E092 +:1032F000B0E040919D1750919E1760919F1770917B +:10330000A017481759076A077B0778F08F2D90E0C0 +:103310000197AA2797FDA095BA2F80939D179093A8 +:103320009E17A0939F17B093A01740919D1780916F +:10333000A21790E00396242F30E0821793074CF4F5 +:103340008DEF840F8093A21700939B02DCEFD40FC4 +:10335000CFEFCF5FDF5FC43008F4A1CCDF91CF9116 +:103360001F910F91FF90EF90BF90AF909F908F9023 +:1033700008958F929F92AF92BF92CF92DF92EF9279 +:10338000FF920F931F93CF93DF930F94326140E02E +:1033900060E084EA97E10E94C95962E475E084EA3A +:1033A00097E10F94E3B903E81AE037EAE32E3FE030 +:1033B000F32EC0E0D0E04C2F61E084EA97E10E9458 +:1033C000C9596AE576E084EA97E10F94E3B94AE0E7 +:1033D00050E0BE0184EA97E10F9480BA66E474E09D +:1033E00084EA97E10F94E3B9B801C7010F947161C2 +:1033F000F801608171810E5F1F4F605371094AE0CF +:1034000050E084EA97E10F9480BA219682E0E80EBA +:10341000F11CC430D10579F600914318112707FD3E +:103420001095C0E0D0E00F94224D81E00E944876D4 +:1034300020914318332727FD3095C801821B930B39 +:1034400097FF03C091958195910903970CF45BC098 +:10345000201731070CF42197021713070CF421965B +:10346000C430D1053CF4CF3F9FEFD90729F4C0E029 +:10347000D0E002C0C3E0D0E040E060E084EA97E141 +:103480000E94C9596BE776E084EA97E10F94E3B9AB +:1034900041E060E084EA97E10E94C9596BE776E079 +:1034A00084EA97E10F94E3B942E060E084EA97E1AF +:1034B0000E94C9596BE776E084EA97E10F94E3B97B +:1034C00043E060E084EA97E10E94C9596BE776E047 +:1034D00084EA97E10F94E3B94C2F60E084EA97E126 +:1034E0000E94C95962E475E084EA97E10F94E3B958 +:1034F00000914318112707FD109564E670E080E005 +:1035000090E00F9453B70F94EC65882309F48BCFA8 +:103510000F94EC658111FCCF6AE070E080E090E0F0 +:103520000F9453B70F94EC658111FCCF0F94326167 +:103530006E01CC0CDD1CF601ED57F54F5F017F01EC +:103540000F94224D81E00E94487641E061E084EAD8 +:1035500097E10E94C9596AE576E084EA97E10F9401 +:10356000E3B94AE050E0BE0184EA97E10F9480BAE3 +:1035700066E474E084EA97E10F94E3B941E06DE01A +:1035800084EA97E10E94C959F50160817181605315 +:1035900071094AE050E084EA97E10F9480BA809183 +:1035A0004318992787FD90959801281B390B37FF01 +:1035B00003C0319521953109233031050CF443C006 +:1035C00080179107E4F4F70180819181019791833D +:1035D000808341E06DE084EA97E10E94C959F701D8 +:1035E00060817181605371094AE050E084EA97E19B +:1035F0000F9480BA00914318112707FD1095809110 +:103600004318992787FD909508171907E4F4F701E7 +:103610008081918101969183808341E06DE084EA0D +:1036200097E10E94C959F701608171816053710966 +:103630004AE050E084EA97E10F9480BA0091431881 +:10364000112707FD109564E670E080E090E00F948C +:1036500053B70F94EC65882309F472CF0F94EC658F +:103660008111FCCF6AE070E080E090E00F9453B7E6 +:103670000F94EC658111FCCFB6016D57754FC601F3 +:103680008955904F0F94606140E061E08EE09BE9C6 +:10369000DBD9882309F456C081E00F94C5640F94E8 +:1036A000326100914318112707FD10954C2F60E0FF +:1036B00084EA97E10E94C95962E475E084EA97E1DF +:1036C0000F94E3B983E8C82E8AE0D82E97EAA92E92 +:1036D0009FE0B92EE12CF12C4E2D61E084EA97E1B8 +:1036E0000E94C9596AE576E084EA97E10F94E3B94C +:1036F0004AE050E0B70184EA97E10F9480BA66E4AB +:1037000074E084EA97E10F94E3B9B601C5010F9420 +:103710007161F60160817181F2E0CF0ED11C6053BE +:1037200071094AE050E084EA97E10F9480BA8FEF84 +:10373000E81AF80A92E0A90EB11CE4E0EE16F104D2 +:1037400059F671CEDF91CF911F910F91FF90EF90BD +:10375000DF90CF90BF90AF909F908F9008952F9261 +:103760003F924F925F926F927F928F929F92AF9211 +:10377000BF92CF92DF92EF92FF920F931F93CF935E +:10378000DF9300D000D0CDB7DEB78C831092280A2B +:103790001092290A10922A0A10922B0A2091240AC8 +:1037A0003091250A4091260A5091270A6091200AFB +:1037B0007091210A8091220A9091230ABCE2CB2EBB +:1037C000BAE0DB2EE12CF12C87010F94C032198274 +:1037D0000F9424B7E091530A0C81F0E0EE0FFF1F25 +:1037E000002319F0E15FF04802C0E35EF048259045 +:1037F0003490C1010F94B8659B838A830F9424B7DA +:103800002B013C011092431810929D1710929E17A5 +:1038100010929F171092A0172A813B813E832D831F +:103820000F94224D81E00E94487680914318992799 +:1038300087FD909597FF03C0919581959109049715 +:103840000CF488C062E370E080E090E00F9453B71E +:103850000F9424B740919D1750919E1760919F1728 +:103860007091A0179091431894304CF0892F859552 +:103870008595992787FD9095A92FB92F0DC097FDA4 +:103880009D5F892F85958595992781950CF4909555 +:10389000AA2797FDA095BA2F8C019D01040F151F33 +:1038A000261F371FC901B80100939D1710939E175B +:1038B00020939F173093A0171092431820917210F5 +:1038C0002F5F203109F420E030917110321709F494 +:1038D00041C00F94AAC02091280A3091290A409132 +:1038E0002A0A50912B0A0F941ABF7B018C01609316 +:1038F000280A7093290A80932A0A90932B0A10921F +:103900009D1710929E1710929F171092A01720914A +:10391000240A3091250A4091260A5091270A609185 +:10392000200A7091210A8091220A9091230AACE02A +:10393000BAE0BF93AF93E5E58E2E982CE5E8AE2E66 +:10394000E1E4BE2EFCE2CF2EFAE0DF2E0F94152626 +:103950000F900F900F94EC65882389F00F94A024AA +:103960000F94EC658111FCCF6AE070E080E090E09C +:103970000F9453B70F94EC658111FCCF12C00A81EC +:103980001B81012B09F44CCF0F9424B764197509DE +:1039900086099709693873418105910508F440CF7C +:1039A0008AC0298121110BC0E091530AF0E0EE0F8B +:1039B000FF1FE959FE47859194910F94F565E091B9 +:1039C000530AF0E0EE0FFF1FEB58FE4785919491EC +:1039D00040E060E039D88F3F09F46BC0813019F0C6 +:1039E00031E03983F5CE80E090E0AFE4B3E480933A +:1039F000280A9093290AA0932A0AB0932B0A2091AF +:103A0000240A3091250A4091260A5091270A609194 +:103A1000200A7091210A8091220A9091230AECE2F7 +:103A2000CE2EEAE0DE2EE12CF12C0FE413E40F940D +:103A3000C032E091530A8C81F0E0EE0FFF1F882323 +:103A4000A1F0ED59F048859194910F94B86541E04B +:103A500050E063E080E00F943D61E091530AF0E0B4 +:103A6000EE0FFF1FEB5AF0481EC0EB5AF14885914C +:103A700094910F94F565E091530AF0E0EE0FFF1F6B +:103A8000E356FF47859194910F94B86541E050E06B +:103A900062E080E00F943D61E091530AF0E0EE0FA8 +:103AA000FF1FE157FF47859194910F94BE7881E005 +:103AB00013C080E011C0AD81BE81AB2B11F43E82FA +:103AC0002D828D819E810F94B8659E838D830F9486 +:103AD00024B72B013C01A4CE26960FB6F894DEBF86 +:103AE0000FBECDBFDF91CF911F910F91FF90EF904F +:103AF000DF90CF90BF90AF909F908F907F906F900E +:103B00005F904F903F902F9008950F931F93CF9306 +:103B1000DF93EC01843091053CF08730910539F05A +:103B20008C010350110905C000E010E002C003E061 +:103B300010E040E060E084EA97E10E94C95968E63D +:103B400076E084EA97E10F94E3B940E061E084EA2B +:103B500097E10E94C959000F111FF801EB52F0487C +:103B6000859194910F94BE7841E060E084EA97E1FA +:103B70000E94C95968E676E084EA97E10F94E3B9B8 +:103B800041E061E084EA97E10E94C959F801E952F5 +:103B9000F048859194910F94BE7842E060E084EA09 +:103BA00097E10E94C95968E676E084EA97E10F94AC +:103BB000E3B942E061E084EA97E10E94C959F80163 +:103BC000E752F048859194910F94BE7843E060E00D +:103BD00084EA97E10E94C95968E676E084EA97E1B1 +:103BE0000F94E3B943E061E084EA97E10E94C95988 +:103BF00005521048F801859194910F94BE78C13018 +:103C0000D10511F440E012C0C230D10511F441E0F9 +:103C10000DC0C330D1057CF042E060E084EA97E15A +:103C20000E94C959C730D10531F443E060E084EA0D +:103C300097E10E94C95962E475E084EA97E10F9424 +:103C4000E3B9C630D10584F040E063E184EA97E14E +:103C50000E94C9596EE076E084EA97E1DF91CF9146 +:103C60001F910F910D94E3B943E063E184EA97E17A +:103C70000E94C95963E176E084EA97E10F94E3B9C1 +:103C8000249714F7DF91CF911F910F9108950F930F +:103C90001F93CF93DF938FEF8093530A0F94C660E7 +:103CA0000F94326181E090E030DF009143181127DA +:103CB00007FD1095C1E0D0E08091530A8F3F09F0D5 +:103CC00048C00F94224D81E00E944876209143180D +:103CD000332727FD3095C801821B930B97FF03C044 +:103CE0009195819591090597F4F0201731070CF40F +:103CF0002197021713070CF42196C830D1052CF434 +:103D0000209729F4C1E0D0E002C0C7E0D0E0CE01A6 +:103D1000FCDE00914318112707FD109564E670E062 +:103D200080E090E004C064E170E080E090E00F94F7 +:103D300053B70F94EC65882309F4BECF8C2F8150C4 +:103D40000F94DD5464EF71E080E090E00F9453B77E +:103D5000B3CF8091710790917207209173073091D2 +:103D60007407821B930B8F779927029724F0109288 +:103D7000530A10929E020F940E610F943261DF91EC +:103D8000CF911F910F910D940559EF92FF920F93D0 +:103D90001F93CF93DF930F94326140E060E084EA99 +:103DA00097E10E94C9596DE776E084EA97E10F94A4 +:103DB000E3B900E010E0C1E0D0E020914318422FC9 +:103DC000552741950CF45095CA0157FF03C09195B2 +:103DD00081959109039784F027FF02C0219702C0C3 +:103DE00021112196C330D1052CF4209729F4C1E08C +:103DF000D0E002C0C2E0D0E042E060E084EA97E1B7 +:103E00000E94C95962E776E084EA97E10F94E3B92A +:103E100043E060E084EA97E10E94C95962E776E0F6 +:103E200084EA97E10F94E3B942E062E084EA97E123 +:103E30000E94C959E091530AF0E0EE0FFF1FEB51C9 +:103E4000F648859194910F94BE7843E062E084EA4D +:103E500097E10E94C959E091530AF0E0EE0FFF1F6D +:103E6000E355F148859194910F94BE784C2F4F5FA4 +:103E700060E084EA97E10E94C95962E475E084EA4F +:103E800097E10F94E3B964E670E080E090E00F946E +:103E900053B70F5F1F4F0536110534F083E690E0EE +:103EA0000F94AD7100E010E00F94EC65882379F079 +:103EB00084E190E0C130D105D9F40F94AD7184E074 +:103EC00090E00F94AD71EE24E394F12C02C0E12C4C +:103ED000F12C0F94224D80E00E944876EF2809F4DF +:103EE0006CCFDF91CF911F910F91FF90EF900895CC +:103EF0000F94AD7185E090E00F94AD7192E0E92EE2 +:103F0000F12CE7CF0F931F9340E060E084EA97E144 +:103F10000E94C959E091530AF0E0EE0FFF1FE353EE +:103F2000F548859194910F94BE7842E062E084EA6E +:103F300097E10E94C959E091530AF0E0EE0FFF1F8C +:103F4000E355F148859194910F94BE7843E062E087 +:103F500084EA97E10E94C959E091530AF0E0EE0F1C +:103F6000FF1FEB51F648859194910F94BE7842E083 +:103F700060E084EA97E10E94C9596BE776E084EA41 +:103F800097E10F94E3B943E060E084EA97E10E948F +:103F9000C9596BE776E084EA97E10F94E3B9809121 +:103FA0009D1790919E17A0919F17B091A01703970E +:103FB000A105B10564F082E090E0A0E0B0E080935C +:103FC0009D1790939E17A0939F17B093A017809171 +:103FD0009D1790919E17A0919F17B091A01718164A +:103FE00019061A061B0664F081E090E0A0E0B0E03C +:103FF00080939D1790939E17A0939F17B093A0173F +:1040000040919D174F5F60E084EA97E10E94C95993 +:1040100062E475E084EA97E10F94E3B90F94EC65EC +:10402000882309F49BC080919D1790919E17A091C1 +:104030009F17B091A0170197A105B10511F40F9436 +:10404000055980919D1790919E17A0919F17B0914F +:10405000A0170297A105B10509F080C081E0809307 +:10406000FB091092930F8091550A811108C080912D +:10407000810A811104C00F94A0240F940A190E9490 +:104080004A63E091530AF0E0EE0FFF1FE357F24856 +:10409000859194910F944A6282E00F94CB631092C1 +:1040A0009F0A60E08DE99AE00E9442CE0F9424B707 +:1040B0006093C1077093C2078093C3079093C407AE +:1040C0000091C5071091C6072091C7073091C80716 +:1040D000601B710B820B930B00915E0A10915F0ABB +:1040E0002091600A3091610A601B710B820B930B67 +:1040F00028EE33E040E050E00F94FCC410925E0ADA +:1041000010925F0A1092600A1092610A60914C0A44 +:1041100070914D0A80914E0A90914F0A0E94DB7077 +:104120000F94055981E08093901710928F1782E0C9 +:1041300090E090932218809321188091010188606B +:10414000809301019FB7F89480910201877F80934B +:1041500002019FBF10920B0A10920A0A1F910F9141 +:1041600008950F931F93CF93DF931F92CDB7DEB7C0 +:10417000142F462F682F84EA97E159830E94C9596A +:10418000E12F5981F52F64918F010F5F1F4F662337 +:1041900031F084EA97E10E94A15BF801F4CF0F901F +:1041A000DF91CF911F910F910895CF92DF92EF92FF +:1041B000FF920F931F93CF93DF93CDB7DEB76E9728 +:1041C0000FB6F894DEBF0FBECDBF8091211890913D +:1041D0002218059759F580911F1890912018892B66 +:1041E000C1F48DE99AE00E940FCAE091530AF0E011 +:1041F000EE0FFF1FEF57FF47859194910F944A628E +:1042000083E080939B0281E090E09093201880935C +:104210001F1880911F1890912018019739F49091E0 +:10422000721080917110981709F4A5C3809121181C +:1042300090912218069709F089C080911F189091DB +:104240002018892B49F483E080939B0284E090E05E +:104250009093201880931F1880911F189091201818 +:10426000019739F49091721080917110981709F4A8 +:104270009BC380911F1890912018029709F04CC0A1 +:104280009091721080917110981346C08091730ABA +:104290008F938091720A8F9383E69CE99F938F930B +:1042A0008E010F5F1F4F1F930F930F9441C960E062 +:1042B000C8010E94B5636CE976E0C8010F94D5C8C7 +:1042C0008AE69AE00F940068BC01C8010F94B6C852 +:1042D00060E0C8010E94B5630F900F900F900F909F +:1042E0000F900F908091900A882309F4A9C361E090 +:1042F0008FE59CE90E94B56361E085E59CE90E9439 +:10430000B56361E081E59CE90E94B56381E090E0DE +:104310009093201880931F1880911F189091201857 +:10432000039739F49091721080917110981709F4E5 +:104330008BC380911F1890912018049739F49091A5 +:10434000721080917110981709F499C38091211807 +:1043500090912218029709F01FC180911F18909127 +:104360002018892B49F486E090E0909320188093E0 +:104370001F1881E08093470A80911F1890912018A0 +:10438000019739F49091721080917110981709F487 +:10439000BFC380911F1890912018029739F4909113 +:1043A000721080917110981709F4CEC380911F1874 +:1043B00090912018039739F49091721080917110A8 +:1043C000981709F4E0C380911F1890912018049762 +:1043D00039F49091721080917110981709F4DFC32D +:1043E00080911F1890912018059759F5909172109F +:1043F00080917110981325C0E091530AF0E0EE0F00 +:10440000FF1FE357F248859194910F944A6261E04F +:1044100084E29CE90E94B56361E087E19CE90E9427 +:10442000B5638091110A882309F4DEC38091120AD2 +:10443000882309F4D9C384E090E0909320188093F6 +:104440001F1880911F1890912018069739F49091A9 +:10445000721080917110981709F4C9C380911F18C8 +:1044600090912018079709F08AC09091721080915E +:104470007110981384C00F943261E091530AF0E0F8 +:10448000EE0FFF1FEF5CF5484591549160E080E02E +:1044900068DE69E375E084EA97E10F94E3B941E0EF +:1044A00060E084EA97E10E94C95962E475E084EA19 +:1044B00097E10F94E3B9E091530AF0E0EE0FFF1F8C +:1044C000E15CFC474591549161E081E04ADEE09176 +:1044D000530AF0E0EE0FFF1FED5DF5484591549152 +:1044E00062E081E03EDEE091530AF0E0EE0FFF1F54 +:1044F000E55CFE474591549163E081E032DE00E0E7 +:1045000010E0FF24F3940F94224D81E00E9448763E +:1045100020914318332727FD3095C801821B930B48 +:1045200097FF03C091958195910905970CF08EC373 +:104530000F94EC65882339F30F94EC658111FCCF5F +:104540006AE070E080E090E00F9453B70F94EC6560 +:104550008111FCCF8FEF8F0D61E0813009F4C4C36E +:10456000823009F4C4C38111C5C382E19CE90E9471 +:10457000B56383E090E09093201880931F1880919A +:104580001F1890912018089739F49091721080911B +:104590007110981709F4B1C38091211890912218D5 +:1045A000039721F41092221810922118809121185B +:1045B00090912218049709F05DC080911F18909186 +:1045C0002018892B49F486E090E09093201880937E +:1045D0001F1881E08093470A80911F18909120183E +:1045E000019739F49091721080917110981709F425 +:1045F0008BC380911F1890912018029739F49091E5 +:10460000721080917110981709F488C380911F1857 +:1046100090912018039739F4909172108091711045 +:10462000981709F482C380911F189091201804975D +:1046300039F49091721080917110981709F47CC32D +:1046400080911F1890912018059739F4909172105D +:1046500080917110981709F480C380911F18909170 +:104660002018069739F49091721080917110981764 +:1046700009F47AC38091211890912218079709F0C4 +:10468000A6C080911F1890912018892BA9F483E06F +:1046900090E09093450A8093440A21E030E0309303 +:1046A000430A2093420A2093470A23E020939B0267 +:1046B0009093201880931F1880911F1890912018B4 +:1046C000039739F49091721080917110981709F442 +:1046D0005EC380911F1890912018029709F05DC069 +:1046E00080912317882309F458C010922317109241 +:1046F000430A1092420AE091530AF0E0EE0FFF1FC6 +:10470000E15FF148859194910F944A6268E876E000 +:10471000CE0101960F94D5C880E397E10F9400680D +:10472000BC01CE0101960F94B6C86FE876E0CE01C9 +:1047300001960F94B6C88CE297E10F940068BC0113 +:10474000CE0101960F94B6C862E976E0CE010196DB +:104750000F94B6C888E297E10F940068BC01CE01BF +:1047600001960F94B6C860E0CE0101960E94B56331 +:1047700061E080ED9BE90E94B5630F9424B76093DC +:10478000111870931218809313189093141881E0E5 +:1047900090E09093201880931F1880911F1890919B +:1047A00020180197A1F40F9424B7009111181091CB +:1047B00012182091131830911418601B710B820B82 +:1047C000930B613D77408105910508F006C3809108 +:1047D000211890912218089709F04BC380911F1857 +:1047E00090912018892BA9F483E090E09093450ADA +:1047F0008093440A21E030E03093430A2093420A38 +:104800002093470A23E020939B02909320188093E3 +:104810001F1880911F1890912018039739F49091D8 +:10482000721080917110981709F4FDC280911F18C1 +:1048300090912018029709F05DC08091231788237A +:1048400009F458C0109223171092430A1092420A9A +:10485000E091530AF0E0EE0FFF1FE75CF14885910D +:1048600094910F944A6265E976E0CE0101960F9427 +:10487000D5C880E397E10F940068BC01CE01019692 +:104880000F94B6C86FE876E0CE0101960F94B6C8D3 +:104890008CE297E10F940068BC01CE0101960F9461 +:1048A000B6C862E976E0CE0101960F94B6C888E2F8 +:1048B00097E10F940068BC01CE0101960F94B6C831 +:1048C00060E0CE0101960E94B56361E08BEC9BE94C +:1048D0000E94B5630F9424B7609311187093121857 +:1048E000809313189093141881E090E0909320180F +:1048F00080931F1880911F1890912018019709F03C +:10490000B8C20F9424B70091111810911218209179 +:10491000131830911418601B710B820B930B613DBF +:1049200077408105910508F4A4C2E091530AF0E0B4 +:10493000EE0FFF1FE353F648859194910F944A625E +:104940001092450A1092440A1092470A80E090E0C3 +:10495000ACE5B2E48093A3029093A402A093A502D5 +:10496000B093A6021092201810921F1810922218CD +:10497000109221187EC2E091530AF0E0EE0FFF1F63 +:10498000E158F248859194910F944A6281E08093B6 +:104990001E180E9405811092221810922118109260 +:1049A000201810921F1842CC80918C0A8F9380910E +:1049B0008B0A8F938CE69CE99F938F938E010F5FF8 +:1049C0001F4F1F930F930F9441C960E0C8010E94CD +:1049D000B56310921E180F9424B7C0905E0AD09051 +:1049E0005F0AE090600AF090610A00915A0A109103 +:1049F0005B0A20915C0A30915D0AC01AD10AE20A72 +:104A0000F30AC60ED71EE81EF91EC0925E0AD092A7 +:104A10005F0AE092600AF092610A8DE99AE00E94D2 +:104A200008CA1092201810921F1810922218109283 +:104A300021180F900F900F900F900F900F9019CC9E +:104A400061E08BE59CE956CC61EA76E0CE01019607 +:104A50000F94D5C884E79AE00F944377BC01CE0148 +:104A600001960F94B6C860E0CE0101960E94B5632E +:104A700082E090E09093201880931F185ACC68EA47 +:104A800076E0CE0101960F94D5C884E79AE00F94A2 +:104A90004377BC01CE0101960F94B6C860E0CE0109 +:104AA00001960E94B5636FEA76E0CE0101960F94FD +:104AB000D5C882E69AE00F940068BC01CE01019649 +:104AC0000F94B6C864EB76E0CE0101960F94B6C899 +:104AD00086E69AE00F940068BC01CE0101960F941F +:104AE000B6C860E0CE0101960E94B563E091530A1A +:104AF000F0E0EE0FFF1FE75DF248859194910F946F +:104B00004A6283E090E09093201880931F181ECC97 +:104B10001092201810921F1810922218109221182B +:104B2000E091530AF0E0EE0FFF1FE353F648859142 +:104B300094910F944A621092450A1092440A10927E +:104B4000470A10921E1825CC109241171092401758 +:104B500061E089E49CE90E94B5630F94224DE091E5 +:104B6000530AF0E0EE0FFF1FE353F648859194914E +:104B70000F944A621092FB0981E090E09093201814 +:104B800080931F1813CC61E085E49CE90E94B56313 +:104B900082E090E09093201880931F1814CCE0914D +:104BA000530AF0E0EE0FFF1FEB52F248859194910B +:104BB0000F944A6261E081E49CE90E94B56361E080 +:104BC0008DE39CE90E94B56361E088E29CE90E9464 +:104BD000B5631092901710928F1783E090E0909336 +:104BE000201880931F18FCCB83E090E026CCE09146 +:104BF000530AF0E0EE0FFF1FE357F24885919491BE +:104C00000F944A6211E01093FB0910924117109221 +:104C100040171092431710924217109245171092A6 +:104C2000441710924717109246170F94224D109375 +:104C3000470A82E090E09093450A8093440A85E019 +:104C400090E09093201880931F1808CC201731070C +:104C50000CF4FA94021713070CF4F39423E02F15C5 +:104C60002CF01F142CF0FF24F39402C023E0F22E4A +:104C700041E060E084EA97E10E94C9596BE776E081 +:104C800084EA97E10F94E3B942E060E084EA97E1B7 +:104C90000E94C9596BE776E084EA97E10F94E3B983 +:104CA00043E060E084EA97E10E94C9596BE776E04F +:104CB00084EA97E10F94E3B94F2D60E084EA97E12D +:104CC0000E94C95962E475E084EA97E10F94E3B960 +:104CD00000914318112707FD109564E670E080E00D +:104CE00090E00F9453B724CC8BE09CE940CC84E057 +:104CF0009CE93DCC8FEF9BE93ACC87E090E0909324 +:104D0000201880931F1848CC40D810922018109279 +:104D10001F1810922218109221186BCC81E090E09D +:104D20009093201880931F1871CC82E090E09093AC +:104D3000201880931F1877CC61E08BEF9BE90E94CD +:104D4000B56361E086EE9BE90E94B56383E090E085 +:104D50009093201880931F1873CC84E090E0909378 +:104D6000201880931F1879CC61E082EE9BE90E94A5 +:104D7000B56361E085ED9BE90E94B5630F94B93E90 +:104D800085E090E09093201880931F1873CC67EB18 +:104D900076E0CE0101960F94D5C883EA92E00F9495 +:104DA0004377BC01CE0101960F94B6C860E0CE01F6 +:104DB00001960E94B563E091530AF0E0EE0FFF1FE9 +:104DC000EF5FF148859194910F944A6282E090E000 +:104DD0009093201880931F187CCCE091530AF0E048 +:104DE000EE0FFF1FE353F648859194910F944A62AA +:104DF0001092450A1092440A1092470A80E090E00F +:104E0000A2E5B3E48093A3029093A402A093A50229 +:104E1000B093A6021092201810921F181092221818 +:104E200010922118D4CC61EC76E0CE0101960F945B +:104E3000D5C88FE992E00F944377BC01CE0101966B +:104E40000F94B6C860E0CE0101960E94B563E09170 +:104E5000530AF0E0EE0FFF1FE55DF1488591949154 +:104E60000F944A6282E090E09093201880931F187C +:104E7000DDCC6E960FB6F894DEBF0FBECDBFDF91CE +:104E8000CF911F910F91FF90EF90DF90CF900895F9 +:104E90008F929F92AF92BF92CF92DF92EF92FF924A +:104EA0000F931F93CF93DF93CDB7DEB728970FB63D +:104EB000F894DEBF0FBECDBF80919E02813009F015 +:104EC0003DC010929E020F944F6180910518811190 +:104ED0000FC0E091530AF0E0EE0FFF1FE353F648D6 +:104EE0006591749144E150E080EF97E10F945DC8C3 +:104EF0008DEE9FE00F945DCB8F3F01F58EEE9FE02E +:104F00000F945DCB8F3FD1F48FEE9FE00F945DCB7C +:104F10008F3FA1F480EF9FE00F945DCB8F3F71F442 +:104F200040E050E0BA018DEE9FE00F9481CB40E06D +:104F300050E0BA0181EF9FE00F9481CB80919117EF +:104F4000882321F081508093911703C081E08093E2 +:104F50009B0280919B02882309F4CDC4809125187F +:104F60008F5F809325188E3129F40F94F958109291 +:104F700025180EC06AE00F94C8C4911109C020E042 +:104F800044E064E184EA97E10E94D95A0F945153B6 +:104F900020E030E040E05FE360913A1770913B170A +:104FA00080913C1790913D170F941ABF0F9479C0D0 +:104FB00078876F836091421770914317882777FD38 +:104FC0008095982F0F94ACC020E030E040E05FE384 +:104FD0000F941ABF0F9479C07E836D8340E060E028 +:104FE00084EA97E10E94C95962E084EA97E10F944C +:104FF000E4B9CE0107960F94626ABC0184EA97E196 +:105000000F94E3B96FE284EA97E10F94E4B9CE011B +:1050100005960F94F477BC0184EA97E10F94E3B905 +:105020008BEF9CE90F94BE7888EF9CE90F94BE78D3 +:1050300040E06AE084EA97E10E94C95984EF9CE964 +:105040000F94BE788091440A9091450A019729F403 +:105050008CEE9CE90F94BE7820C02CEA35EC47E238 +:1050600057E36091280A7091290A80912A0A909149 +:105070002B0A0F941ABF69837A838B839C83CE019A +:1050800001960F949069BC0184EA97E10F94E3B90B +:1050900060E284EA97E10F94E4B941E060E084EAD9 +:1050A00097E10E94C95920E030E040E05FE3609161 +:1050B00034177091351780913617909137170F94E8 +:1050C0001ABF0F9479C078876F83609140177091F1 +:1050D0004117882777FD8095982F0F94ACC020E06A +:1050E00030E040E05FE30F941ABF0F9479C07E83F5 +:1050F0006D8360E084EA97E10F94E4B9CE010796EE +:105100000F94626ABC0184EA97E10F94E3B96FE2FD +:1051100084EA97E10F94E4B9CE0105960F94F477F1 +:10512000BC0184EA97E10F94E3B989EE9CE90F94FE +:10513000BE7886EE9CE90F94BE7841E06AE084EA8E +:1051400097E10E94C95983EE9CE90F94BE7866E00E +:1051500084EA97E10F94E4B987E492E00F94626ADD +:10516000BC0184EA97E10F94E3B98CED9CE90F94BC +:10517000BE7842E060E084EA97E10E94C9598091DC +:10518000820A882319F089ED9CE902C086ED9CE92A +:105190000F94BE7880919F0A8823A9F18091890C91 +:1051A000882319F18091330D9091340DA091350D24 +:1051B000B091360D0097A105B105B9F0BC01CD0144 +:1051C0006D597F4F8F4F9F4F24E630E040E050E015 +:1051D0000F94FCC460913B0D70913C0D80913D0D8E +:1051E00090913E0D0F94FCC401C020E030E03A8362 +:1051F0002983CE0101960F94626ABC0184EA97E18B +:105200000F94E3B90DC08091820A882329F081EDC3 +:105210009CE90F94BE7809C08DEC9CE90F94BE7890 +:1052200065E284EA97E10F94E4B980911D18882320 +:1052300089F18AEC9CE90F94BE7860911B187091FB +:105240001C184AE050E084EA97E10F9480BA87EC9A +:105250009CE90F94BE7840E063E184EA97E10E9404 +:10526000C9590F9424B7C0907C0AD0907D0AE09071 +:105270007E0AF0907F0A6C197D098E099F096036BD +:105280007A4E8105910518F485EC9CE90BC083ECFE +:105290009CE908C042E06AE084EA97E10E94C959AB +:1052A00081EC9CE90F94BE7842E06BE084EA97E1E0 +:1052B0000E94C9598FEB9CE90F94BE7867E084EA9D +:1052C00097E10F94E4B98091C5079091C607A0912A +:1052D000C707B091C807892B8A2B8B2BE1F10F945C +:1052E00024B750E6C52E5AEED52EE12CF12CA7019D +:1052F00096010F94FCC449015A016091C507709151 +:10530000C6078091C7079091C807A70196010F941F +:10531000FCC4C401821B930B6CE370E00F94D5C4F2 +:10532000182F6983CE0101960F949C67BC0184EA13 +:1053300097E10F94E3B96AE384EA97E10F94E4B943 +:105340001983CE0101960F949C67BC0184EA97E112 +:105350000F94E3B904C089EB9CE90F94BE7886EB07 +:105360009CE90F94BE7843E060E084EA97E10E94F4 +:10537000C95980914A0A90914B0A009719F021E08F +:105380002093470A30919F0A2091470A332309F45A +:1053900082C0211180C06EEA7AE089EB97E10F9418 +:1053A000CCC8892B31F109EB17E1F80101900020FD +:1053B000E9F7AF0141505109495B574160E070E0A6 +:1053C000C8010F949CC88EEA9AE09F938F9383EB59 +:1053D0009CE99F938F931F930F930F9441C9109251 +:1053E000EF171092EE170F900F900F900F900F90F5 +:1053F0000F90EEEAFAE001900020E9F7EF5AFA4048 +:10540000759708F445C00091EE171091EF17C12C65 +:10541000D12C8091EE179091EF179801281B390B32 +:105420002431310534F001969093EF178093EE17F5 +:1054300010C2C114D104B9F798012356354F790130 +:10544000F9019189602F681B43E0911114C084EA2F +:1054500097E10E94C959F701608984EA97E10F94A6 +:10546000E4B91092EF171092EE1700E010E0CC2490 +:10547000C394D12CCECF84EA97E10E94C959F70199 +:10548000608984EA97E10F94E4B90F5F1F4FC1CFA1 +:1054900069EB77E1E3C1222309F4DEC1892B09F42A +:1054A0008EC08091480A9091490A01968E309105EC +:1054B00028F49093490A8093480A04C01092490A3C +:1054C0001092480A43E067E084EA97E10E94C959D4 +:1054D00085EA9CE90F94BE7800E010E08091480ACC +:1054E0009091490A0817190778F467E0600F43E0C4 +:1054F00084EA97E10E94C9596EE284EA97E10F9429 +:10550000E4B90F5F1F4FEACF80914A0A90914B0A8E +:105510008230910531F188F4019709F050C043E0E1 +:1055200060E084EA97E10E94C959E091530AF0E0F3 +:10553000EE0FFF1FEB5AFF472FC083309105F9F0A4 +:10554000049709F03CC043E060E084EA97E10E94E0 +:10555000C959E091530AF0E0EE0FFF1FEF55FD47E8 +:1055600020C043E060E084EA97E10E94C959E091DD +:10557000530AF0E0EE0FFF1FE95BFF4712C043E064 +:1055800060E084EA97E10E94C959E091530AF0E093 +:10559000EE0FFF1FED56FD47859194910F94BE7855 +:1055A0000EC0859194910F94BE7810924B0A109280 +:1055B0004A0A1092490A1092480A1092470A8091AA +:1055C000440A9091450A019709F093C08091420ADC +:1055D0009091430A8B30910560F143E060E084EAEA +:1055E00097E10E94C95980E99CE90F94BE7843E095 +:1055F00060E084EA97E10E94C959E091530AF0E023 +:10560000EE0FFF1FE35EFF47859194910F94BE78E4 +:105610008CE89CE90F94BE786091420A7091430A2D +:105620006A5071094AE050E084EA97E10F9493BA16 +:1056300060C00397E1F4E091530AF0E0EE0FFF1F22 +:10564000E353F648859194910F94BE78E091530A04 +:10565000F0E0EE0FFF1FE353F648859194910F940D +:105660004A621092470A1092450A1092440A8091A9 +:10567000420A9091430A0497069720F543E060E0C0 +:1056800084EA97E10E94C95988E79CE90F94BE78A3 +:1056900043E060E084EA97E10E94C959E091530A2F +:1056A000F0E0EE0FFF1FE55DFF47859194910F94A9 +:1056B000BE788091420A9091430A01979093430AE1 +:1056C0008093420A8091420A9091430A0A9789F492 +:1056D000E091530AF0E0EE0FFF1FE55DFF47859173 +:1056E00094910F94BE7889E090E09093430A809360 +:1056F000420A8091440A9091450A029731F460EF82 +:1057000077E184EA97E10F94E3B98091440A90919C +:10571000450A0397A1F560EF77E184EA97E10F94DA +:10572000E3B9209126173091271780912417909183 +:105730002517821793071CF18091420A9091430A22 +:10574000892BE9F043E06FE084EA97E10E94C959B0 +:1057500086E297E10F94626ABC0184EA97E10F94B4 +:10576000E3B96FE284EA97E10F94E4B984E297E148 +:105770000F94F477BC0184EA97E10F94E3B9809128 +:10578000440A9091450A049799F543E060E084EA61 +:1057900097E10E94C959E091530AF0E0EE0FFF1F14 +:1057A000ED55F548859194910F94BE7843E06FE0F4 +:1057B00084EA97E10E94C9598091430A8F938091AE +:1057C000420A8F938CEC96E09F938F938E010F5F2C +:1057D0001F4F1F930F930F9413C9B80184EA97E1E9 +:1057E0000F94E3B90F900F900F900F900F900F90C0 +:1057F0008091440A9091450A059759F543E060E08D +:1058000084EA97E10E94C959E091530AF0E0EE0F53 +:10581000FF1FEB51F248859194910F94BE788091CF +:10582000420A9091430A8937910598F485E79CE9EB +:105830000F94BE786091420A7091430A4AE050E0AA +:1058400084EA97E10F9493BA60E284EA97E10F94B7 +:10585000E4B900EF17E10BC060EF77E184EA97E16C +:105860000F94E3B9F6CFF8E104301F0759F0F801BF +:1058700081918F018032BCF760E284EA97E10F9456 +:10588000E4B9F1CF80911D18882351F18091A802CD +:105890009091A90201979093A9028093A8021816EB +:1058A000190654F084EB90E09093A9028093A8022B +:1058B00080E090E00F94AD718091A8029091A902D0 +:1058C0008A30910529F08D9759F485E190E006C062 +:1058D00080919F0A882321F084E190E00F94AD71BC +:1058E0008AE0809391178091211890912218892B3A +:1058F00011F00F94D5A08091A31782FB882780F91F +:1059000090919017992399F090918F17992339F0DE +:10591000811120C010928F17109290171BC08823FE +:10592000C9F00F941C5581E080938F1713C0882312 +:1059300089F08091211890912218029759F001E086 +:1059400021E040E050E0BA0182EB91E00F942B554A +:105950000F94F958809147029091480220919D1729 +:1059600030919E178436910534F4820F931F85364B +:1059700091054CF416C08436910599F0820F931F5F +:105980008436910574F410929D1710929E17109210 +:105990009F171092A01784E690E09093480280939E +:1059A0004702209147023091480280919D179091C3 +:1059B0009E172436310569F48B3091051CF0865A08 +:1059C0009F4F09C0863F2FEF92078CF482599F4F5B +:1059D00002C0820F931F9093480280934702109257 +:1059E0009D1710929E1710929F171092A0178091EA +:1059F0004702909148028A3091051CF48AE090E0B9 +:105A000005C0883E934034F087EE93E090934802BF +:105A10008093470280911D188823A9F08091A702E6 +:105A2000811111C043E060E084EA97E10E94C95906 +:105A3000E091530AF0E0EE0FFF1FE556F248859122 +:105A400094910F94BE7828960FB6F894DEBF0FBEDF +:105A5000CDBFDF91CF911F910F91FF90EF90DF901D +:105A6000CF90BF90AF909F908F900895CF92DF928C +:105A7000EF92FF921F93CF93DF930F940E610F94D9 +:105A80000F1980E00F94C5640F9432618CEA9BE992 +:105A90000F94BE7846EA5BE961E080E00F94B1A024 +:105AA0004EE95BE962E080E00F94B1A047E95BE971 +:105AB00063E080E00F94B1A0C5E3DAE011E020E0FC +:105AC00030E048E453E4688179818A819B810F94B6 +:105AD0000AC087FF21C046E95BE9612F88E00F9487 +:105AE000B1A0488159816A817B8122E030E084EA5B +:105AF00097E10F9471BB20E030E0A90168817981C2 +:105B00008A819B810F940AC0881F8827881F43E9D8 +:105B10005BE9612F835F04C04FE85BE9612F88E098 +:105B20000F94B1A024961F5F143049F684EF91E0E2 +:105B30000E9400770F94EC65811103C084E690E029 +:105B4000F7CF84EF91E00E9400770F9432618FE7E6 +:105B50009BE90F94BE78C090310AD090320AE09051 +:105B6000330AF090340A20E030E048EC52E4C701F8 +:105B7000B6010F940AC087FF1DC020E030E044E367 +:105B800053E4C701B6010F940BC32BED3FE049E48A +:105B900050E40F9411C0AB01BC0122E030E084EA74 +:105BA00097E10F9471BB63E176E084EA97E10F948B +:105BB000E3B906C04BE75BE960E08FE00F94B1A06A +:105BC00046E65BE961E080E00F94B1A049E55BE95E +:105BD00062E080E00F94B1A048E55BE962E08FE00D +:105BE0000F94B1A020E030E044E353E46091DD0481 +:105BF0007091DE048091DF049091E0040F940BC358 +:105C00002BED3FE049E450E40F9411C0AB01BC011F +:105C100022E030E084EA97E10F9471BB63E176E023 +:105C200084EA97E10F94E3B94BE45BE963E080E039 +:105C30000F94B1A04AE45BE963E08FE00F94B1A058 +:105C400020E030E044E353E46091D9047091DA0439 +:105C50008091DB049091DC040F940BC32BED3FE0AB +:105C600049E450E40F9411C0AB01BC0122E030E0E4 +:105C700084EA97E10F9471BB63E176E084EA97E1EF +:105C80000F94E3B984EF91E00E9400770F94EC65E4 +:105C9000811103C084E690E0F7CF84EF91E00E9489 +:105CA00000770F94C6600F94055981E00F94C56486 +:105CB00082E0DF91CF911F91FF90EF90DF90CF9026 +:105CC0000D94CB639F92AF92BF92CF92DF92EF92EF +:105CD000FF920F931F93CF93DF9380912618882311 +:105CE00021F090919B029230B1F581E080932618CB +:105CF0008091630C882339F068E278E18DE99AE0BD +:105D00000E9490D301C080E0809327188823E9F196 +:105D100080912B181F928F9380912A181F928F9336 +:105D2000809129181F928F93809128181F928F932A +:105D300082EB9EE99F938F938CE298E19F938F93E0 +:105D40000F9441C98DB79EB70C960FB6F8949EBFBD +:105D50000FBE8DBF1AC0909127189923B1F0909172 +:105D60002818911112C09091291891110EC090918C +:105D70002A1891110AC090912B18911106C08F5FBB +:105D800080932618803109F49EC380919D179091CD +:105D90009E17A0919F17B091A01781309048A10540 +:105DA000B10540F010929D1710929E1710929F1708 +:105DB0001092A01780919D1790919E17A0919F1708 +:105DC000B091A0174091A21750E060E070E08417F6 +:105DD0009507A607B70710F48093A217D091A217D2 +:105DE0001091A31712FB112710F9C0E09924939486 +:105DF000D1113FC080919B028823E1F0E091530ACA +:105E0000F0E0EE0FFF1FEF58F0486591749180911C +:105E10009D1790919E17A0919F17B091A01723E016 +:105E2000892B8A2B8B2B11F443E001C040E28C2F8D +:105E30000F94EE531123E9F080919D1790919E17D6 +:105E4000A0919F17B091A017892B8A2B8B2B89F4D7 +:105E50000F941C5582EB91E0DF91CF911F910F9130 +:105E6000FF90EF90DF90CF90BF90AF909F900D94F8 +:105E7000F3554ED40F942EC840919D1750919E1704 +:105E800060919F177091A017863090F4D130A9F5DA +:105E900080919B02882301F123E041305105610587 +:105EA000710511F443E001C040E26CE97EE911C0E4 +:105EB000D13019F580919B02882371F023E04130A5 +:105EC00051056105710511F443E001C040E26CE841 +:105ED0007EE98C2F0F94EE53112309F4B9C1809100 +:105EE0009D1790919E17A0919F17B091A0170197B1 +:105EF000A105B10509F0ACC1ABCFD23059F5809105 +:105F00009B028823B1F0E091530AF0E0EE0FFF1FEF +:105F1000EF58F2488591949123E042305105610594 +:105F2000710511F443E001C040E2BC018C2F0F94D5 +:105F3000EE53112309F48CC180919D1790919E1707 +:105F4000A0919F17B091A0170297A105B10509F084 +:105F50007FC17ECFD33059F580919B028823B1F069 +:105F6000E091530AF0E0EE0FFF1FED59F2488591E2 +:105F7000949123E0433051056105710511F443E02C +:105F800001C040E2BC018C2F0F94EE53112309F4A1 +:105F90005FC180919D1790919E17A0919F17B0911E +:105FA000A0170397A105B10509F052C151CFD43014 +:105FB00059F580919B028823B1F0E091530AF0E0FB +:105FC000EE0FFF1FEB5AF2488591949123E0443085 +:105FD00051056105710511F443E001C040E2BC01C7 +:105FE0008C2F0F94EE53112309F432C180919D1729 +:105FF00090919E17A0919F17B091A0170497A105AB +:10600000B10509F025C124CFD53019F580919B0247 +:10601000882371F023E0453051056105710511F4C5 +:1060200043E001C040E26FE77EE98C2F0F94EE530E +:10603000112309F40DC180919D1790919E17A09195 +:106040009F17B091A0170597A105B10509F000C1F0 +:10605000FFCED63019F580919B02882371F023E0A2 +:10606000463051056105710511F443E001C040E27D +:1060700064E77EE98C2F0F94EE53112309F4E8C0F6 +:1060800080919D1790919E17A0919F17B091A01796 +:106090000697A105B10509F0DBC0DACED73019F5B6 +:1060A00080919B02882371F023E047305105610500 +:1060B000710511F443E001C040E26BE67EE98C2FEC +:1060C0000F94EE53112309F4C3C080919D17909152 +:1060D0009E17A0919F17B091A0170797A105B10532 +:1060E00009F0B6C0B5CED83019F580919B0288234F +:1060F00071F023E0483051056105710511F443E06A +:1061000001C040E261E67EE98C2F0F94EE5311232B +:1061100009F49EC080919D1790919E17A0919F17A2 +:10612000B091A0170897A105B10509F091C090CED4 +:10613000D93019F580919B02882371F023E0493012 +:1061400051056105710511F443E001C040E264E5C9 +:106150007EE98C2F0F94EE53112309F479C08091BE +:106160009D1790919E17A0919F17B091A017099726 +:10617000A105B10509F06CC06BCEDA3019F580913C +:106180009B02882371F023E04A30510561057105B7 +:1061900011F443E001C040E26DE47EE98C2F0F94DE +:1061A000EE53112309F454C080919D1790919E17CE +:1061B000A0919F17B091A0170A97A105B10509F00A +:1061C00047C046CEDB3009F580919B02882371F0F1 +:1061D00023E04B3051056105710511F443E001C026 +:1061E00040E261E47EE98C2F0F94EE53112381F19C +:1061F00080919D1790919E17A0919F17B091A01725 +:106200000B97A105B10521F523CEDC3009F580916E +:106210009B02882371F023E04C3051056105710524 +:1062200011F443E001C040E260E37EE98C2F0F945B +:10623000EE53112369F080919D1790919E17A091C4 +:106240009F17B091A0170C97A105B10509F400CED6 +:1062500080912718882309F473C040919D175091AD +:106260009E1760919F177091A017DD3019F58091EE +:106270009B02882371F023E04D30510561057105C3 +:1062800011F443E001C040E263E27EE98C2F0F94F9 +:10629000EE53111102C000E154C080919D179091FE +:1062A0009E17A0919F17B091A0170D97A105B1055A +:1062B00091F7CECDDE3019F580919B02882371F0E5 +:1062C00023E04E3051056105710511F443E001C032 +:1062D00040E261E17EE98C2F0F94EE53112309F423 +:1062E00064C080919D1790919E17A0919F17B091C7 +:1062F000A0170E97A105B10509F057C0A9CDDF3051 +:1063000051F680919B02882359F04F305105610569 +:10631000710511F463E001C060E28C2F0F946B5A99 +:10632000112309F442C080919D1790919E17A0916E +:106330009F17B091A0170F97A105B105B1F588CDB2 +:106340000DE00D1333C080919B028823D1F0802F84 +:1063500090E0A0E0B0E040919D1750919E176091B1 +:106360009F177091A01723E0481759076A077B070A +:1063700011F443E001C040E264E07EE98C2F0F9409 +:10638000EE53112399F0802F90E0A0E0B0E040910F +:106390009D1750919E1760919F177091A0174817F5 +:1063A00059076A077B0711F453CD00E1AA24A3948F +:1063B000A00EAD123FC080919B028823D1F08D2F9B +:1063C00090E0A0E0B0E0C0909D17D0909E17E090C4 +:1063D0009F17F090A01720E2C816D906EA06FB0620 +:1063E00011F44EE301C040E263EF7DE98C2F0F947E +:1063F000EE531123F9F04A2D50E060E070E08091F7 +:106400009D1790919E17A0919F17B091A017841788 +:106410009507A607B70771F40F941C55DF91CF912C +:106420001F910F91FF90EF90DF90CF90BF90AF90B2 +:106430009F901CCB72E0B72EB00E4B2D50E060E069 +:1064400070E080919D1790919E17A0919F17B09139 +:10645000A01784179507A607B70780F04B2D50E0CB +:1064600041505109662757FD6095762F40939D173F +:1064700050939E1760939F177093A01740919D179C +:106480008091A21790E00396242F30E082179307A3 +:106490004CF48DEF840F8093A21790929B02DCEF57 +:1064A000D40FCFEFCF5FDF5FC43008F4A1CCDF9112 +:1064B000CF911F910F91FF90EF90DF90CF90BF9001 +:1064C000AF909F900895109226185FCCDF92EF92C4 +:1064D000FF920F931F93CF93DF93E0904318FF2415 +:1064E000E7FCF0940F943261E091530AF0E0EE0F74 +:1064F000FF1FEB57FE47859194910F94BE7841E0C2 +:1065000060E084EA97E10E94C95962E475E084EA98 +:1065100097E159D7C1E0E091530AF0E0EE0FFF1F79 +:10652000E751FF47459154916C2F81E00F94B1A042 +:10653000CF5FC43081F7DD24D394C0E0D0E001E028 +:1065400010E0E091530AF0E0EE0FFF1FE751FF4724 +:10655000859194910F942EC862E0680F402F84EAD1 +:1065600097E10E94C959B8016C0F7D1F4AE050E0C5 +:1065700084EA97E1C5D70F5F1F4F0430110509F773 +:106580000F94224D81E00E9448766091431877274E +:1065900067FD70959701261B370B37FF03C03195B8 +:1065A00021953109253031050CF488C06E157F0521 +:1065B0000CF4DA94E616F7060CF4D39483E08D1508 +:1065C00014F5209709F09CC00F943261E091530AB2 +:1065D000F0E0EE0FFF1FEB57FE47859194910F946B +:1065E000BE78C1E0E091530AF0E0EE0FFF1FE751E3 +:1065F000FF47459154916C2F81E00F94B1A0CF5F7C +:10660000C43081F77BC01D141CF12097F9F021974D +:106610000F943261E091530AF0E0EE0FFF1FEB5749 +:10662000FE47859194910F94BE7811E0E091530A52 +:10663000F0E0EE0FFF1FE751FF4745915491612FA6 +:1066400081E00F94B1A01F5F143081F7DD24D39453 +:1066500041E060E084EA97E10E94C9596BE776E087 +:1066600084EA97E1B0D642E060E084EA97E10E94D4 +:10667000C9596BE776E084EA97E1A5D643E060E08C +:1066800084EA97E10E94C9596BE776E084EA97E1D2 +:106690009AD64D2D60E084EA97E10E94C95962E4E0 +:1066A00075E084EA97E18FD6E0904318FF24E7FC79 +:1066B000F09464E670E080E090E0F5D30F94EC6530 +:1066C000882309F43CCF82E00F94CB630F94EC65F0 +:1066D0008111FCCF6AE070E080E090E0E4D30F9499 +:1066E000EC658111FCCF8C2F8D0D8150DF91CF9106 +:1066F0001F910F91FF90EF90DF900895C1E0D0E0DF +:1067000093E0D92EA5CF682F84EA97E10C94A15B82 +:1067100088EF9EE90895982F9F7D51F0893041F0D0 +:106720008A3031F091E08D3009F090E0892F0895A2 +:1067300081E008955F926F927F928F929F92AF92C5 +:10674000BF92CF92DF92EF92FF920F931F93CF935E +:10675000DF9300D01F92CDB7DEB7582E8B01682E85 +:10676000792E4301F30181913F0120ED280F2A305A +:10677000C0F38E3211F0712CC6C06F015601F601C4 +:1067800081916F0120ED280F2A30C0F38E3299F7E6 +:106790009F017901F90140812F5F3F4F80ED840F08 +:1067A0008A30B8F3842F4B839C83B5DF4B819C8167 +:1067B000811102C04D32F9F61A8219824AE050E086 +:1067C000BE016F5F7F4F852D0F94DDC6F801718389 +:1067D000608389819A818815990569F64AE050E0BD +:1067E000BE016F5F7F4FC3010F94DDC6F801738355 +:1067F000628389819A818A159B0509F0BCCF4AE0A2 +:1068000050E0BE016F5F7F4FC6010F94DDC6F801F7 +:1068100075836483A980BA80AE14BF0409F0ABCF3E +:106820008FE790E0978386836701FFEFCF1ADF0A37 +:10683000F70180818D3201F546017401FFEF8F1A57 +:106840009F0AF701808167DF782E8823B1F3EC1867 +:10685000FD089E2C970133272330310581F443E056 +:1068600050E06AEE7EE9C6010F944FC8892B41F5CE +:10687000F8011782168247C07724739444C02530EC +:10688000310561F445E050E064EE7EE9C6010F9405 +:106890004FC8892BA9F481E090E00EC02430310567 +:1068A00079F444E050E06FED7EE9C6010F944FC8E3 +:1068B000892B31F482E090E0F8019783868323C02E +:1068C0008EEF8E0D823008F056CFF5018181823730 +:1068D00009F051CF8281833609F04DCFF2E09F124B +:1068E00003C083E090E0E8CFF501238180ED820FC3 +:1068F0008A3008F040CF332727FD30952E523109DA +:10690000F80137832683872D0F900F900F900F90FB +:10691000DF91CF911F910F91FF90EF90DF90CF907B +:10692000BF90AF909F908F907F906F905F900895F1 +:106930004423B9F0FC012491FB013491231778F032 +:10694000FC012491FB013491321748F0FC012491A1 +:10695000222339F0415001966F5F7F4FE9CF81E0EC +:10696000089580E008956F927F928F929F92AF92E8 +:10697000BF92CF92DF92EF92FF920F931F93CF932C +:10698000DF93CDB7DEB727970FB6F894DEBF0FBE03 +:10699000CDBF4C018B01FC01849180538A3010F4EF +:1069A0003196FACF84918E3209F0F7C05F018FEFF4 +:1069B000A81AB80AF501849180538A3010F43196F0 +:1069C000FACF84918E3209F0E8C06F018FEFC81AB8 +:1069D000D80A7601F701849180538A3020F4EFEFD2 +:1069E000EE1AFE0AF7CFF701849195DE811105C0FA +:1069F000F70184918D3209F0D0C03501681879080B +:106A00008FEF860D853008F0C8C0682E712CA30169 +:106A1000B401CE0101960F941EC8E1E0F0E0EC0F46 +:106A2000FD1FE60DF71D10821F821E824AE050E016 +:106A3000BE016A5F7F4FCE0101960F94DDC6F8015B +:106A400071836083EE81FF8180818111A6C0460140 +:106A50008A189B088FEF880D853008F09EC0882E1D +:106A6000912CA401B501CE0101960F941EC8E1E05E +:106A7000F0E0EC0FFD1FE80DF91D10824AE050E038 +:106A8000BE016A5F7F4FCE0101960F94DDC6F8010B +:106A900073836283EE81FF81808181117EC0C70193 +:106AA0008C199D09853008F078C05C01BB24A501D4 +:106AB000B601CE0101960F941EC8E1E0F0E0EC0FA4 +:106AC000FD1FEA0DFB1D10824AE050E0BE016A5F27 +:106AD0007F4FCE0101960F94DDC6F8017583648364 +:106AE000EE81FF818081811158C08FE790E0F8012D +:106AF00097838683F70184918D3289F56701FFEFD3 +:106B0000CF1ADF0A5601F501849105DE982E811116 +:106B100004C08FEFA81AB80AF6CFAC18BD088A2CAB +:106B2000950133272330310541F44A2D6AEE7EE981 +:106B3000C601FEDE811107C015C025303105B1F058 +:106B400024303105E9F08EEF8A0D823030F542E0D5 +:106B50006CED7EE9C601ECDE81111FC020C09924D6 +:106B6000939431C0F801178216822DC04A2D64EE2D +:106B70007EE9C601DDDE8111E6CF81E090E009C04B +:106B80004A2D6FED7EE9C601D3DE8111DCCF82E0B4 +:106B900090E0F8019783868316C0912C14C0F2E030 +:106BA0008F1203C083E090E0F4CFF7013396849115 +:106BB00080538A3090F7E490F12CFEE2EF1AF1084E +:106BC000F801F782E682892D27960FB6F894DEBF8A +:106BD0000FBECDBFDF91CF911F910F91FF90EF902E +:106BE000DF90CF90BF90AF909F908F907F906F90ED +:106BF0000895DF92EF92FF920F931F93CF93DF934D +:106C0000CDB7DEB761970FB6F894DEBF0FBECDBF2C +:106C1000D82EE92EBE01675F7F4F8CDD811102C047 +:106C2000F12C74C0BE016F5F7F4F88EF9EE99BDE41 +:106C3000F82E8823A9F3FE013996DE011196BE01D4 +:106C40006F5E7F4F219131918D919D9182179307B6 +:106C500040F02817390708F459C0E617F70791F7ED +:106C600055C0E091530AF0E0EE0FFF1FE753F148E3 +:106C7000859194910F9401654BED5EE962E080E0AF +:106C80000F94B1A00D2D1E2DF801E1908F018E2DD6 +:106C900042DDF82E811103C08E2D35DDF5CFE09158 +:106CA000530AF0E0EE0FFF1FE554F148459154916F +:106CB00063E080E00F94B1A020E030E0A90168EE2D +:106CC00073E084E50FD582E390E00E94007784E5CD +:106CD0000F9498BE84EF91E00E94007720E030E0AE +:106CE000A90168EE73E084E5FDD482E390E00E94A0 +:106CF000007784E50F9498BE0F948C6681E00F9422 +:106D0000C5640F94326180E00F94CB638F2D619640 +:106D10000FB6F894DEBF0FBECDBFDF91CF911F91AC +:106D20000F91FF90EF90DF9008950F931F93CF93F3 +:106D3000DF93CDB7DEB728970FB6F894DEBF0FBE4E +:106D4000CDBF00E010E0F801E251F1466491C801C6 +:106D50000F946FCB0F5F1F4F0A301105A1F7BE01D3 +:106D60006F5F7F4F88EF9EE9FEDD8823C1F0698168 +:106D70007A818AE090E00F9489CB6B817C818CE0F2 +:106D800090E00F9489CB6D817E818EE090E00F942E +:106D900089CB6F81788580E190E00F9489CB28962C +:106DA0000FB6F894DEBF0FBECDBFDF91CF911F911C +:106DB0000F9108951F920F920FB60F9211242F93E7 +:106DC0003F938F939F93AF93BF938091451890917A +:106DD0004618A0914718B09148183091441823E004 +:106DE000230F2D3720F40196A11DB11D05C026E803 +:106DF000230F0296A11DB11D2093441880934518BE +:106E000090934618A0934718B0934818809149185A +:106E100090914A18A0914B18B0914C180196A11D61 +:106E2000B11D8093491890934A18A0934B18B093C2 +:106E30004C18BF91AF919F918F913F912F910F90DF +:106E40000FBE0F901F9018952FB7F89460914518BA +:106E50007091461880914718909148182FBF089557 +:106E60003FB7F8948091491890914A18A0914B1817 +:106E7000B0914C1826B5A89B05C02F3F19F001967C +:106E8000A11DB11D3FBF6627782F892F9A2F620F52 +:106E9000711D811D911D42E0660F771F881F991F8C +:106EA0004A95D1F708958F929F92AF92BF92CF9259 +:106EB000DF92EF92FF926B017C01D2DF4B015C010C +:106EC000C114D104E104F104E1F0B2D7C9DF6819BB +:106ED00079098A099B09683E73408105910580F311 +:106EE00021E0C21AD108E108F10888EE880E83E09B +:106EF000981EA11CB11CC114D104E104F10431F7A6 +:106F0000DFCFFF90EF90DF90CF90BF90AF909F903A +:106F10008F9008958230910538F0880F991F880F5F +:106F2000991F05970197F1F70895789484B58260C9 +:106F300084BD84B5816084BD85B5826085BD85B51D +:106F4000816085BDEEE6F0E0808181608083E1E8CC +:106F5000F0E0108280818260808380818160808304 +:106F6000E0E8F0E0808181608083E1EBF0E0808107 +:106F700084608083E0EBF0E0808181608083E1E9E0 +:106F8000F0E0808182608083808181608083E0E99D +:106F9000F0E0808181608083E1EAF0E080818260BE +:106FA0008083808181608083E0EAF0E0808181607D +:106FB0008083E1E2F1E08081826080838081816072 +:106FC0008083E0E2F1E0808181608083EAE7F0E0A5 +:106FD0008081846080838081826080838081816001 +:106FE00080838081806880831092C10008951F9300 +:106FF000CF93DF93182FEB0161E011D1209711F4AB +:1070000060E004C0CF3FD10531F461E0812FDF9112 +:10701000CF911F913DC1E12FF0E0ED5FF04644912B +:1070200050E0FA013197E231F10508F09BC0EB57CF +:10703000FF4F0D943AC584B5806884BDC7BD97C025 +:1070400084B5806284BDC8BD92C080918000806894 +:1070500080938000D0938900C093880088C080917D +:107060008000806280938000D0938B00C0938A0060 +:107070007EC080918000886080938000D0938D00D6 +:10708000C0938C0074C08091B00080688093B00081 +:10709000C093B3006CC08091B00080628093B00058 +:1070A000C093B40064C08091900080688093900089 +:1070B000D0939900C09398005AC08091900080624C +:1070C00080939000D0939B00C0939A0050C0809111 +:1070D0009000886080939000D0939D00C0939C00A6 +:1070E00046C08091A00080688093A0008091A0009D +:1070F0008F7B8093A000D093A900C093A80037C0D5 +:107100008091A00080628093A000D093AB00C093D8 +:10711000AA002DC08091A00088608093A000D09329 +:10712000AD00C093AC0023C08091200180688093A3 +:107130002001D0932901C093280119C0809120011A +:10714000806280932001D0932B01C0932A010FC04D +:1071500080912001886080932001D0932D01C093FD +:107160002C0105C0C038D1050CF04FCF49CFDF91BD +:10717000CF911F91089590E0FC013197E231F10524 +:1071800008F04CC0E956FF4F0D943AC5809180003D +:107190008F7703C0809180008F7D80938000089559 +:1071A00080918000877FF9CF84B58F7702C084B546 +:1071B0008F7D84BD08958091B0008F7703C080914A +:1071C000B0008F7D8093B0000895809190008F77FC +:1071D00007C0809190008F7D03C080919000877FD1 +:1071E0008093900008958091A0008F7707C08091D0 +:1071F000A0008F7D03C08091A000877F8093A000B6 +:107200000895809120018F7707C0809120018F7DA4 +:1072100003C080912001877F809320010895CF9340 +:10722000DF9390E0FC01E75AF0462491FC01E15520 +:10723000F0468491882349F190E0880F991FFC0162 +:10724000E75CFF45A591B491815E9F45FC01C59126 +:10725000D4919FB7611108C0F8948C912095822336 +:107260008C93888182230AC0623051F4F8948C9107 +:10727000322F309583238C938881822B888304C09E +:10728000F8948C91822B8C939FBFDF91CF910895BE +:107290000F931F93CF93DF931F92CDB7DEB7282FA5 +:1072A00030E0F901ED5FF0468491F901E75AF046CC +:1072B0001491F901E155F04604910023C1F08823AF +:1072C00019F0698358DF6981E02FF0E0EE0FFF1FAE +:1072D000E15EFF45A591B4919FB7F8948C9161113F +:1072E00003C01095812301C0812B8C939FBF0F9009 +:1072F000DF91CF911F910F910895CF93DF93282FA6 +:1073000030E0F901ED5FF0468491F901E75AF0466B +:10731000D491F901E155F046C491CC2389F0811153 +:107320002ADFEC2FF0E0EE0FFF1FEB5FFF45A5918A +:10733000B4912C912D2381E090E021F480E002C0F3 +:1073400080E090E0DF91CF910895CF92DF92EF92AD +:10735000FF920F931F93CF93DF937C016A01EB01A0 +:1073600000E010E00C151D0571F06991D701ED9159 +:10737000FC910190F081E02DC7011995892B19F03E +:107380000F5F1F4FEFCFC801DF91CF911F910F917A +:10739000FF90EF90DF90CF9008956115710581F017 +:1073A000DB010D900020E9F7AD0141505109461B6A +:1073B000570BDC01ED91FC910280F381E02D1994D3 +:1073C00080E090E00895E9CFDC01ED91FC9101901F +:1073D000F081E02D19948F929F92AF92BF92DF922D +:1073E000EF92FF920F931F93CF93DF93CDB7DEB74A +:1073F000A1970FB6F894DEBF0FBECDBF7C01F42F6E +:10740000D52ECB0119A2223008F42AE08E010F5D9F +:107410001F4F822E912CA12CB12C6F2F7D2DA501F9 +:1074200094010F94FCC4F22FD32ECA01015011090C +:107430006A3014F4E0E301C0E7E3E60FD801EC930F +:10744000232B242B252B49F7B801C701A6DFA196D2 +:107450000FB6F894DEBF0FBECDBFDF91CF911F9165 +:107460000F91FF90EF90DF90BF90AF909F908F9023 +:107470000895CF92DF92EF92FF920F931F93CF93D5 +:10748000DF93EC016A017B012115310579F4E88174 +:10749000F9810190F081E02D642FDF91CF911F9150 +:1074A0000F91FF90EF90DF90CF9019942A30310523 +:1074B000D9F477FF18C06DE287DF8C014427552788 +:1074C000BA014C195D096E097F092AE0CE0183DFFC +:1074D000800F911FDF91CF911F910F91FF90EF903F +:1074E000DF90CF9008952AE0B701A601CE01DF9189 +:1074F000CF911F910F91FF90EF90DF90CF906BCFC6 +:107500009A01AB01662757FD6095762FB2CF211502 +:10751000310541F4DC01ED91FC910190F081E02D09 +:10752000642F199458CF9A01AB0160E070E0EFCF5F +:107530004F925F926F927F928F929F92AF92BF9283 +:10754000CF92DF92EF92FF920F931F93CF93DF932F +:10755000EC016A017B01B22E9A01AB01C701B601B1 +:107560000F9405C4882319F064EE76E025C0260147 +:107570003701E89477F82FEF3FEF4FE75FE7C3015C +:10758000B2010F9405C481110CC02FEF3FEF4FE7FC +:107590005FE7C301B2013ED518161CF468EE76E031 +:1075A0000BC02FEF3FEF4FE75FE4C701B60161D794 +:1075B0001816A4F46CEE76E0CE01DF91CF911F9106 +:1075C0000F91FF90EF90DF90CF90BF90AF909F9082 +:1075D0008F907F906F905F904F90DFCE2FEF3FEFB7 +:1075E0004FE75FECC701B60115D587FDE3CF20E07B +:1075F00030E0A901C701B6010DD587FF09C06DE2D2 +:10760000CE01E2DE8C01F7FAF094F7F8F09402C0B4 +:1076100000E010E0A12C60E070E080E09FE3AB149C +:1076200039F020E030E040E251E4FBD4A394F7CFFE +:107630009B01AC01C701B601FDD36B017C015ED596 +:107640002B013C0187D59B01AC01C701B601F1D3E9 +:107650006B017C012AE0B301A201CE01BCDE080F60 +:10766000191FBB2031F06BE774E0CE0196DE080FE6 +:10767000191F7B2C772019F120E030E040E251E423 +:10768000C701B601C8D76B017C0133D54B01AA24D1 +:1076900097FCA094BA2C2AE030E0B501A401CE01F9 +:1076A000E8DE080F191FC501B40156D59B01AC01D6 +:1076B000C701B601BED36B017C017A94DBCFC80150 +:1076C000DF91CF911F910F91FF90EF90DF90CF90BE +:1076D000BF90AF909F908F907F906F905F904F90F2 +:1076E000089526CF3F924F925F926F927F928F9232 +:1076F0009F92AF92BF92CF92DF92EF92FF920F9341 +:107700001F93CF93DF9300D01F92CDB7DEB78B01CD +:1077100029013A019091AA02981721F09F3F09F0A0 +:10772000B7C204C0E3E5F0EA349004C18093AA0232 +:10773000E3E5F0EAE491EF3F09F4AAC2E23009F48C +:1077400080C074F5EE2309F45BC0E13009F0F1C0AC +:107750001092800010928100909181009860909327 +:10776000810090918100916090938100282F30E0FA +:10777000F901E155F046E491F0E0EE0FFF1FE15E04 +:10778000FF454591549150936B1840936A18F90145 +:10779000E75AF04624912093691833243394CCC0DF +:1077A000E43009F49EC00CF474C0E53009F0C1C0A7 +:1077B00010922001109221019091210198609093E4 +:1077C000210190912101916090932101282F30E0B7 +:1077D000F901E155F046E491F0E0EE0FFF1FE15EA4 +:1077E000FF454591549150934F1840934E18F9011D +:1077F000E75AF046249120934D1855E0352E9CC051 +:1078000014BC15BC94B5926094BD95B5916095BDBE +:10781000282F30E0F901E155F046E491F0E0EE0F59 +:10782000FF1FE15EFF4545915491509372184093BC +:107830007118F901E75AF046249120937018312C01 +:107840007BC01092B0001092B1009091B000926095 +:107850009093B0009091B10091609093B100282F67 +:1078600030E0F901E155F046E491F0E0EE0FFF1F42 +:10787000E15EFF454591549150936418409363181D +:10788000F901E75AF04624912093621822E0322E43 +:1078900053C01092900010929100909191009860C6 +:1078A0009093910090919100916090939100282F76 +:1078B00030E0F901E155F046E491F0E0EE0FFF1FF2 +:1078C000E15EFF454591549150935D1840935C18DB +:1078D000F901E75AF046249120935B18B3E03B2E60 +:1078E0002BC01092A0001092A1009091A10098606E +:1078F0009093A1009091A10091609093A100282FF6 +:1079000030E0F901E155F046E491F0E0EE0FFF1FA1 +:10791000E15EFF4545915491509356184093551898 +:10792000F901E75AF04624912093541874E0372E59 +:1079300003C03E2E37FCACC161E071DC4801A12CD4 +:10794000B12C832D8D7F09F0C6C060E072E18AE71B +:1079500090E0A50194010F941EC529833A834B83BF +:107960005C8369017A0181E0C81AD108E108F10855 +:107970009FEFC916D104E104F10409F008F499C09D +:1079800060E472E48FE090E0A50194010F941EC5BD +:1079900069017A01E1E0CE1AD108E108F108F2E0CC +:1079A0003F1219C08FEFC816D104E104F10409F0A9 +:1079B00008F489C060E970ED83E090E0A5019401CE +:1079C0000F941EC569017A0191E0C91AD108E10836 +:1079D000F10883E001C082E0EFEFCE16D104E104AC +:1079E000F10409F008F466C068E478EE81E090E004 +:1079F000A50194010F941EC569017A01F1E0CF1A27 +:107A0000D108E108F1083320E1F082E038121BC010 +:107A10009FEFC916D104E104F10409F008F436C15E +:107A200064E274EF80E090E0A50194010F941EC51C +:107A300069017A01E1E0CE1AD108E108F10885E098 +:107A400003C083E001C084E0FFEFCF16D104E1045E +:107A5000F10481F178F162E17AE780E090E0A5013C +:107A60009401ECD769017A0181E0C81AD108E108D4 +:107A7000F108311002C084E001C086E09FEFC91612 +:107A8000D104E104F104B1F0A8F0C980DA80EB8000 +:107A9000FC809AE0F594E794D794C7949A95D1F72F +:107AA000E1E0CE1AD108E108F108332031F087E097 +:107AB0000BC081E0332011F007C085E095B5987FB9 +:107AC000982B95BD54C082E09091B100987F982B7F +:107AD0009093B1004CC060E072E18AE790E0A501AC +:107AE0009401ACD769017A01F1E0CF1AD108E1081D +:107AF000F108C114D10481E0E806F10480F068E4E3 +:107B000078EE81E090E0A501940198D769017A01AF +:107B100091E0C91AD108E108F10893E001C091E0B1 +:107B2000E1E03E1207C080918100887F892B80931D +:107B300081001DC0F3E03F1207C080919100887F53 +:107B4000892B8093910013C084E0381207C0809184 +:107B5000A100887F892B8093A10009C0E5E03E1237 +:107B600006C080912101887F892B809321014114D7 +:107B700051046104710461F0D801AA0FBB1FA30175 +:107B8000920184D728EE33E040E050E035D703C0BF +:107B90002FEF3FEFA901F2E03F1609F443C0F315C0 +:107BA000BCF0332081F181E0381272C0D09289009C +:107BB000C092880020936C1830936D1840936E1813 +:107BC00050936F1880916F00826080936F0060C047 +:107BD00094E0391609F448C03916A4F1E5E03E12E4 +:107BE00057C0D0922901C092280120935018309399 +:107BF000511840935218509353188091730082602B +:107C00008093730045C0C7BC2093731830937418D9 +:107C1000409375185093761880916E00826080931F +:107C20006E0036C0C092B30020936518309366187A +:107C30004093671850936818809170008260809319 +:107C4000700026C0D0929900C092980020935E18D0 +:107C500030935F18409360185093611880917100C1 +:107C600082608093710014C0D092A900C092A800D5 +:107C700020935718309358184093591850935A1816 +:107C80008091720082608093720002C084E01CCFF9 +:107C90000F900F900F900F90DF91CF911F910F9148 +:107CA000FF90EF90DF90CF90BF90AF909F908F901C +:107CB0007F906F905F904F903F9008958230A9F031 +:107CC00028F4882349F0813051F00895843021F15F +:107CD000E8F0853039F1089510926E000895809192 +:107CE0006F008D7F80936F000895809170008D7F6D +:107CF0008093700081E08093B0008091B100887F14 +:107D000084608093B1001092B30008958091710057 +:107D10008D7F809371000895809172008D7F809394 +:107D200072000895809173008D7F80937300089591 +:107D3000CF93C82F8091AA028C1307C0E3E5F0EA25 +:107D400084919FEF9093AA0201C08FEFB7DF60E0AC +:107D50008C2FCF919DCA1F920F920FB60F921124B4 +:107D60000BB60F922F933F934F935F936F937F9335 +:107D70008F939F93AF93BF93EF93FF938091651879 +:107D800090916618A0916718B0916818892B8A2B7A +:107D90008B2B51F190916218E0916318F091641867 +:107DA0008081892780838091651890916618A091C1 +:107DB0006718B0916818181619061A061B06BCF445 +:107DC0008091651890916618A0916718B091681815 +:107DD0000197A109B1098093651890936618A09343 +:107DE0006718B093681803C08091AA02A1DFFF91C1 +:107DF000EF91BF91AF919F918F917F916F915F9123 +:107E00004F913F912F910F900BBE0F900FBE0F908F +:107E10001F901895089589D8FDDF0E94BD78C0E0B5 +:107E2000D0E00E943EB32097E1F30E940000F9CF1A +:107E300008955058BB27AA270ED0B9C282D230F07D +:107E400087D220F031F49F3F11F41EF441C20EF4AA +:107E5000E095E7FB0EC2E92FCCD280F3BA17620798 +:107E600073078407950718F071F49EF5FBC20EF4B2 +:107E7000E0950B2EBA2FA02D0B01B90190010C013A +:107E8000CA01A0011124FF27591B99F0593F50F452 +:107E9000503E68F11A16F040A22F232F342F4427AA +:107EA000585FF3CF469537952795A795F0405395A2 +:107EB000C9F77EF41F16BA0B620B730B840BBAF072 +:107EC0009150A1F0FF0FBB1F661F771F881FC2F7DD +:107ED0000EC0BA0F621F731F841F48F487957795F1 +:107EE0006795B795F7959E3F08F0B3CF9395880FA8 +:107EF00008F09927EE0F9795879508959F939F77A0 +:107F0000EEE389379E0720F4E2E5F1E009D209C0EB +:107F100071D19058A2EA2AED3FE049EC5FE39BDF84 +:107F200046D20F9007FC905808950BD258F080E885 +:107F300091E009F49EEF0CD228F040E851E059F4AA +:107F40005EEF09C0C5C18EC2E92FE07852D268F356 +:107F5000092E052AC1F3261737074807590738F0B5 +:107F60000E2E07F8E02569F0E025E0640AC0EF6313 +:107F700007F8009407FADB01B9019D01DC01CA0191 +:107F8000AD01EF935DD013D20AD05F91552331F04C +:107F90002BED3FE049E450FD49EC4CCF0895DF93D1 +:107FA000DD27B92FBF7740E85FE3161617064807AD +:107FB0005B0710F4D92FC2D29F938F937F936F9357 +:107FC00021D4E6E6F1E087D1F2D12F913F914F9194 +:107FD0005F912DD3DD2349F09058A2EA2AED3FE0CE +:107FE00049EC5FE3D0785D2736DFDF91E0C123D233 +:107FF00080F09F3740F491110EF435C260E070E0DC +:1080000080E89FE3089526F01B16611D711D811DF8 +:1080100036C150C10AD108F481E00895A1D1E39599 +:10802000D7C10CD0C4C194D140F08BD130F021F431 +:108030005F3F19F01EC1511116C24AC1DAD198F33F +:108040009923C9F35523B1F3951B550BBB27AA27D9 +:1080500062177307840738F09F5F5F4F220F331F4B +:10806000441FAA1FA9F333D00E2E3AF0E0E830D017 +:1080700091505040E695001CCAF729D0FE2F27D01A +:10808000660F771F881FBB1F261737074807AB07E8 +:10809000B0E809F0BB0B802DBF01FF2793585F4F5D +:1080A0002AF09E3F510568F0E4C0DDC15F3FECF36C +:1080B000983EDCF3869577956795B795F7959F5F22 +:1080C000C9F7880F911D9695879597F90895E1E076 +:1080D000660F771F881FBB1F621773078407BA07D5 +:1080E00020F0621B730B840BBA0BEE1F88F7E09530 +:1080F000089504D06894B111B6C1089582D188F072 +:108100009F5790F0B92F9927B751A0F0D1F0660F83 +:10811000771F881F991F1AF0BA95C9F712C0B1309E +:1081200081F0A0D1B1E008959DC1672F782F8827F5 +:10813000B85F39F0B93FCCF3869577956795B395DD +:10814000D9F73EF490958095709561957F4F8F4F4C +:108150009F4F0895E89409C097FB3EF49095809551 +:10816000709561957F4F8F4F9F4F9923A9F0F92FFD +:1081700096E9BB279395F695879577956795B7957B +:10818000F111F8CFFAF4BB0F11F460FF1BC06F5F61 +:108190007F4F8F4F9F4F16C0882311F096E911C073 +:1081A000772321F09EE8872F762F05C0662371F094 +:1081B00096E8862F70E060E02AF09A95660F771FA8 +:1081C000881FDAF7880F9695879597F9089533D128 +:1081D00080F09F3740F491110EF045C160E070E0EF +:1081E00080E89FEB089526F41B16611D711D811D0B +:1081F00046C060C0DF93CF931F930F938B01EC01B8 +:10820000E3E9F1E068D0D3D09801AE018B01EC0135 +:1082100060E070E080E89FE30CDEB6D29801AE012A +:108220000F911F91CF91DF9102C2990F0008550F56 +:10823000AA0BE0E8FEEF16161706E807F907C0F0EC +:1082400012161306E407F50798F0621B730B840BF4 +:10825000950B39F40A2661F0232B242B252B21F4CE +:1082600008950A2609F4A140A6958FEF811D811D6E +:10827000089597F99F6780E870E060E0089588238B +:1082800071F4772321F09850872B762F07C066234F +:1082900011F499270DC09051862B70E060E02AF010 +:1082A0009A95660F771F881FDAF7880F969587953E +:1082B00097F908959F3F31F0915020F48795779575 +:1082C0006795B795880F911D9695879597F90895AD +:1082D0009FEF80EC0895DF93CF931F930F93FF924E +:1082E000EF92DF927B018C01689405C0DA2EEF01DA +:1082F0009ED1FE01E894A591259135914591559126 +:10830000AEF3EF01A8DDFE019701A801DA9479F739 +:10831000DF90EF90FF900F911F91CF91DF91089523 +:108320009F938F937F936F93FF93EF939B01AC0188 +:1083300072D1EF91FF91CFDF2F913F914F915F91DC +:108340006AC100240A94161617061806090608952D +:1083500000240A9412161306140605060895B8CFD1 +:1083600050D0E8F3E894E0E0BB279F57F0F02AED07 +:108370003FE049EC06C0EE0FBB0F661F771F881F5A +:1083800028F0B23A62077307840728F0B25A620BEA +:10839000730B840BE3959A9572F7803830F49A95B5 +:1083A000BB0F661F771F881FD2F7904885CF092E15 +:1083B0000394000C11F4882352F0BB0F40F4BF2B40 +:1083C00011F460FF04C06F5F7F4F8F4F9F4F089580 +:1083D000EF93E0FF06C0A2EA2AED3FE049EC5FEB35 +:1083E0003ADDE5DF0F90039401FC9058EBEBF1E0F0 +:1083F00097CF57FD9058440F551F59F05F3F71F0CC +:108400004795880F97FB991F61F09F3F79F08795FB +:108410000895121613061406551FF2CF4695F1DF84 +:1084200008C0161617061806991FF1CF8695710514 +:10843000610508940895E5DFA0F0BEE7B91788F458 +:10844000BB279F3860F41616B11D672F782F882739 +:10845000985FF7CF869577956795B11D9395963977 +:10846000C8F30895E894BB2766277727CB0197F9CF +:108470000895DBDE08F48FEF089563DF19F068DFFD +:1084800009F026CFF6CEB901CA0114CF9F775F77E6 +:10849000B0DF98F39923B9F35523B9F3FF27951764 +:1084A00058F4E52FE91BED3070F75E3B10F0F1E476 +:1084B0001CC09034E0F40AC0E92FE51BED3028F72A +:1084C0009E3B10F0F1E411C0503488F4F9EA88239F +:1084D0002AF09A95660F771F881FDAF744232AF04F +:1084E0005A95220F331F441FDAF79F1B5F1BFF9320 +:1084F0001F930F93FF92EF9279018A01BB27AB2F55 +:108500009B01AC0196D09701A801BF937B018C0120 +:10851000AA27BA2FB901CA018CD0AF919701A8013F +:10852000EF90FF900F911F9196DC41DF2DD14F917D +:1085300040FF0895552747FD509509C09B01AC01A8 +:1085400060E070E080E89FE36CCD93CEB3CE59DF5E +:10855000E8F39923D9F3940F511DBBF39150504088 +:1085600094F059F0882332F0660F771F881F9150DE +:108570005040C1F79E3F510544F7880F911D9695D5 +:10858000879597F908955F3FACF0983E9CF0BB2724 +:10859000869577956795B79508F4B1609395C1F77F +:1085A000BB0F58F711F460FFE8CF6F5F7F4F8F4F1D +:1085B0009F4FE3CF58CF25DF58F19E5758F1985180 +:1085C000A0F0E9F0983020F5092E9927660F771F63 +:1085D000881F991F0A94D1F712C0062E672F782F93 +:1085E0008827985F11F4000C07C0993FB4F3869573 +:1085F000779567959395D9F7611D711D811D3EF49F +:1086000090958095709561957F4F8F4F9F4F0895FE +:10861000689429CF27CF0BD0CACE93DE28F098DEFE +:1086200018F0952309F025CE53CE11241CCFE1DE9E +:10863000A0F3959FD1F3950F50E0551F629FF00175 +:10864000729FBB27F00DB11D639FAA27F00DB11DCE +:10865000AA1F649F6627B00DA11D661F829F222757 +:10866000B00DA11D621F739FB00DA11D621F839FDE +:10867000A00D611D221F749F3327A00D611D231FB4 +:10868000849F600D211D822F762F6A2F11249F5702 +:1086900050408AF0E1F088234AF0EE0FFF1FBB1F25 +:1086A000661F771F881F91505040A9F79E3F5105C4 +:1086B00070F0DFCDD8CE5F3FECF3983EDCF38695CB +:1086C00077956795B795F795E7959F5FC1F7FE2B6F +:1086D000880F911D9695879597F90895FA01EE0FE9 +:1086E000FF1F30962105310599F16115710561F47F +:1086F0008038BFE39B0749F168949038810561F0A9 +:108700008038BFEF9B0741F0992342F5FF3FE10519 +:108710003105210511F1E8940894E795D901AA23C0 +:1087200029F4AB2FBE2FF85FD0F310C0FF5F70F4B9 +:10873000A695E0F7F73950F019F0FF3A38F49F7733 +:108740009F930CD00F9007FC905808953EF0C0CD39 +:1087500060E070E080E89FE308954FE79F775F93C4 +:108760004F933F932F9392D02F913F914F915F91D1 +:1087700052DF54C09F93F4DD0F9007FCEE5F28CECC +:1087800011F40EF4A5CD96CD3CDED0F39923D9F3A8 +:10879000CEF39F57550B87FF6DD00024A0E640EA2B +:1087A000900180585695979528F4805C660F771F46 +:1087B000881F20F026173707480730F4621B730B19 +:1087C000840B202931294A2BA6951794079420253C +:1087D00031254A2758F7660F771F881F20F0261784 +:1087E0003707480730F4620B730B840B200D311DE3 +:1087F000411DA09581F7B901842F9158880F969556 +:10880000879508959B01AC0106CF0FDD880B990B6E +:10881000089519F40EF02DCD25CE5ACDF2DDC8F312 +:108820009638C0F707F80F92E8942BE33AEA48EB42 +:108830005FE7FFDE0F920F920F924DB75EB70F9278 +:1088400065D0E9EDF1E047DD4F915F91EF91FF9148 +:10885000E595EE1FFF1F49F0FE57E0684427EE0F35 +:10886000441FFA95E1F74195550B71DE0F9007FE15 +:1088700065CE089591505040660F771F881FD2F73C +:1088800008950EF017CD24CD6894F3CCBADDC8F36B +:108890009923D1F3C6F3DF93CF931F930F93FF92E6 +:1088A000C92FDD2788232AF02197660F771F881F9D +:1088B000DAF720E030E040E85FEB9FE3883920F012 +:1088C000803E30F021968F77B5DAE1E0F2E003C028 +:1088D000B1DAEEE2F2E0FFDC8B01BE01EC01FB2E2F +:1088E0006F5771097595771F880B990B35DC28E157 +:1088F00032E741E35FE39BDEAF2D9801AE01FF90CD +:108900000F911F91CF91DF91A6DA51CDFA01DC01D1 +:10891000AA0FBB1F9B01AC01BF5728F422273327A6 +:10892000442750781FC0B75188F4AB2F00244695D8 +:1089300037952795011CA395D2F3002069F0220FEB +:10894000331F441FB395DAF30DD073CA613071053C +:10895000A0E88A07B94630F49B01AC016627772767 +:1089600088279078309621F0208331834283538387 +:108970000895DB018F939F9389D0BF91AF91A29F00 +:10898000800D911DA39F900DB29F900D112408950D +:1089900087FB082E062687FD819567FD61958AD0A5 +:1089A0000EF4919507FC81950895AA1BBB1B51E11C +:1089B00007C0AA1FBB1FA617B70710F0A61BB70B4F +:1089C000881F991F5A95A9F780959095BC01CD01F4 +:1089D000089597FB072E16F4009406D077FD08D073 +:1089E000E4DF07FC05D03EF4909581959F4F0895F4 +:1089F000709561957F4F0895A1E21A2EAA1BBB1BAB +:108A0000FD010DC0AA1FBB1FEE1FFF1FA217B3075A +:108A1000E407F50720F0A21BB30BE40BF50B661F70 +:108A2000771F881F991F1A9469F760957095809534 +:108A300090959B01AC01BD01CF010895052E97FBD8 +:108A400016F400940FD057FD05D0D6DF07FC02D0F6 +:108A500046F408C050954095309521953F4F4F4FB3 +:108A60005F4F089590958095709561957F4F8F4FDA +:108A70009F4F0895EE0FFF1F0590F491E02D19947C +:108A800025D0B7FF0895821B930B08951FD0A59F93 +:108A9000900DB49F900DA49F800D911D11240895F9 +:108AA000B7FFF4CFF3DF821B930B08950790F69185 +:108AB000E02D1994991B79E004C0991F961708F0CE +:108AC000961B881F7A95C9F780950895A29FB001DB +:108AD000B39FC001A39F700D811D1124911DB29FF2 +:108AE000700D811D1124911D08958F929F92AF9258 +:108AF000BF92CF92DF92EF92FF920F931F93CF938B +:108B0000DF938B016115710521F0DB018C931196C8 +:108B10009C93EC015E01BFEFAB1ABB0A7501C880E4 +:108B20008C2D90E07BD2892B11F0E501F3CFEDE2A3 +:108B3000CE1208C07E01F2E0EF0EF11CC980DD24E8 +:108B4000D39409C02BE2C21205C07E0142E0E40EBC +:108B5000F11CC980D12CE701219743E050E06CE57E +:108B600070EACE0184D2892BB9F4239645E050E017 +:108B700067E570EACE017BD2892B09F425960115B1 +:108B8000110519F0D801CD93DC93D11000C160E03C +:108B900070E080E89FE704C143E050E064E570EADC +:108BA000CE0165D2892B59F40115110509F4F4C0E1 +:108BB000B2E0EB0EF11CF801F182E082EDC0F701AA +:108BC00060E070E0CB01C0E0D0E07F01A0EDAA2E14 +:108BD000AC0C29E02A1528F14D2D4260B42E2D2D24 +:108BE0002870D2FE04C0211124C0219622C0211178 +:108BF0002197A5E0B0E09B01AC0148DF660F771F2D +:108C0000881F991F6A0D711D811D911D6839A9E981 +:108C10007A078A07A9E19A0760F0BD2DB660BB2EDE +:108C200008C02EEFA2120AC0D3FC50C04D2D4860E0 +:108C3000B42E3196D701CC90DB2CC7CF2C2D2F7DB5 +:108C4000253409F043C0A081AD3241F4BD2DB0619F +:108C5000DB2E7F0122E0E20EF11C0CC07F01AB3263 +:108C600031F04FEFE41AF40A21E030E006C0A2E050 +:108C7000EA0EF11CA18122E030E0A053AA3018F0E6 +:108C8000E21AF30A23C0F70120E030E02038BCE00C +:108C90003B075CF4A901440F551F440F551F240FD7 +:108CA000351F220F331F2A0F311DAF014F5F5F4F5A +:108CB0007A01A081A053AA3010F4FA01E7CFD4FEC4 +:108CC00003C0319521953109C20FD31FD1FE09C0D0 +:108CD0000115110531F0E1E0EE1AF108D801ED922D +:108CE000FC9238DA2D2D2370233019F04B015C01F2 +:108CF00006C04B015C01B7FAB094B7F8B09420E01D +:108D000030E0A901C501B40185D9882309F43CC02C +:108D1000D7FF06C0D195C195D10903E710EA02C07B +:108D20000BE810EA6801B8E1CB1AD10890E2E92E0D +:108D3000F12CCE15DF056CF0F801259135914591A8 +:108D40005491C501B40167DC4B015C01CE19DF0908 +:108D5000F0CF04501109F594E7940C151D0549F75F +:108D60008A2D880F8B2D881F8F3F41F020E030E047 +:108D7000A901C501B4014ED9811106C082E290E07B +:108D800090937C1880937B18C501B40109C060E002 +:108D900070E080E89FEF04C060E070E080EC9FE747 +:108DA000DF91CF911F910F91FF90EF90DF90CF90C7 +:108DB000BF90AF909F908F9008952F923F925F92B7 +:108DC0006F927F928F929F92AF92BF92CF92DF92DB +:108DD000EF92FF920F931F93CF93DF938B01EA01E2 +:108DE0006115710521F0DB018C9311969C932097FE +:108DF00039F09E01225031092332310508F0F8C0C4 +:108E00007C016701BFEFCB1ADB0A5601F7016080D6 +:108E1000862D90E003D1892B11F07601F2CFFDE28F +:108E20006F120AC0570182E0A80EB11CD70111963B +:108E30006C90772473940BC0BBE26B1207C0570190 +:108E4000E2E0AE0EB11CD70111966C90712CCE01F0 +:108E50008F7E892B89F4B0E36B1222C0F5018081EB +:108E60008F7D883541F56180F2E0AF0EB11C872D12 +:108E70008260782EC0E1D0E0C830D105F1F04CF42A +:108E8000C230D10511F5C12CD12CE12CB0E4FB2E60 +:108E90002EC0CA30D10531F0C031D10519F115C04D +:108EA000209751F7CAE0D0E0ACECCA2EDC2CEC2CB9 +:108EB000ACE0FA2E1CC02097F9F6C8E0D0E0C12C37 +:108EC000D12CE12CF0E1FF2E12C060E070E080E0D8 +:108ED00090E89E01442737FD4095542F8DDD6901B0 +:108EE0007A0105C0C12CD12CE12CE8E0FE2EF50161 +:108EF00060E020E030E0A9014E01AA2497FCA09494 +:108F0000BA2C1F0170ED572E560CA9E0A51570F470 +:108F10008FEB860D8A3118F499EC592E06C08FE933 +:108F2000860D8A3128F589EA582E560C852D90E059 +:108F30008C179D07ECF467FD17C0C216D306E40634 +:108F4000F50678F0C501B40114DD9B01AC01250DD7 +:108F5000311D411D511D213031054105B0E85B0730 +:108F600010F06FEF01C061E03196D1016C90C9CF74 +:108F7000872D81700115110571F0662329F0319755 +:108F8000D801ED93FC9307C071FE19C03297D80148 +:108F9000ED93FC9314C067FF12C0882329F020E0F2 +:108FA00030E040E050E804C02FEF3FEF4FEF5FE7C5 +:108FB00082E290E090937C1880937B1816C08823FF +:108FC00041F050954095309521953F4F4F4F5F4F61 +:108FD0000CC057FF0AC082E290E090937C18809307 +:108FE0007B182FEF3FEF4FEF5FE7B901CA0104C0D5 +:108FF00060E070E080E090E0DF91CF911F910F91F1 +:10900000FF90EF90DF90CF90BF90AF909F908F90A8 +:109010007F906F905F903F902F90089591118BC338 +:10902000803219F089508550D0F708959111089534 +:1090300081548A5108F4805E855A0895FB01DC0151 +:1090400002C005900D9241505040D8F70895FB01A1 +:10905000DC0105900D920020E1F70895FC010590D8 +:109060000020E9F7809590958E0F9F1F0895FB01D2 +:10907000DC014150504088F08D9181341CF08B35DB +:109080000CF4805E659161341CF06B350CF4605E0D +:10909000861B611171F3990B0895881BFCCFFB01AE +:1090A000DC014150504030F08D910590801919F449 +:1090B0000020B9F7881B990B0895FB01DC01415092 +:1090C000504048F005900D920020C9F701C01D9254 +:1090D00041505040E0F70895FB0155915523A9F008 +:1090E000BF01DC014D9145174111E1F759F4CD0164 +:1090F0000590002049F04D9140154111C9F3FB0145 +:109100004111EFCF81E090E001970895FB01DC0170 +:1091100004C08D910190801921F441505040C8F74E +:10912000881B990B0895FB01DC0102C001900D9290 +:1091300041505040D8F70895DC0101C06D93415073 +:109140005040E0F70895FB01DC018D9181341CF063 +:109150008B350CF4805E619161341CF06B350CF43E +:10916000605E861B611189F3990B0895FB01DC0198 +:109170000D900020E9F7119701900D920020E1F782 +:109180000895FC018191861721F08823D9F799274A +:1091900008953197CF010895FB01DC018D91019075 +:1091A00080190110D9F3990B0895FB01DC0101909E +:1091B0000D920020E1F70895FB01DC014150504081 +:1091C00030F08D910190801919F40020B9F7881BB7 +:1091D000990B0895FB01DC014150504048F001908B +:1091E0000D920020C9F701C01D9241505040E0F798 +:1091F0000895FB0151915523A9F0BF01DC014D9168 +:1092000045174111E1F759F4CD010190002049F0D3 +:109210004D9140154111C9F3FB014111EFCF81E0A0 +:1092200090E0019708950F931F93CF93DF93CDB7ED +:10923000DEB72E970FB6F894DEBF0FBECDBF0E89F6 +:109240001F8986E08C831A8309838FEF9FE79E83B3 +:109250008D83AE01465E5F4F688D798DCE0101969C +:109260003ED0EF81F885E00FF11F10822E960FB6E9 +:10927000F894DEBF0FBECDBFDF91CF911F910F914C +:1092800008950F931F93CF93DF93CDB7DEB72E973B +:109290000FB6F894DEBF0FBECDBF0E891F898EE0DA +:1092A0008C831A8309838FEF9FE79E838D83AE01A2 +:1092B000465E5F4F688D798DCE01019610D0EF81AB +:1092C000F885E00FF11F10822E960FB6F894DEBFDE +:1092D0000FBECDBFDF91CF911F910F9108952F92B7 +:1092E0003F924F925F926F927F928F929F92AF9236 +:1092F000BF92CF92DF92EF92FF920F931F93CF9383 +:10930000DF93CDB7DEB72C970FB6F894DEBF0FBE54 +:10931000CDBF7C016B018A01FC011782168283811B +:1093200081FFB0C1CE0101964C01F7019381F60196 +:1093300093FD859193FF81916F01882309F49EC16C +:10934000853239F493FD859193FF81916F018532C8 +:1093500021F4B70190E008D2E8CF512C312C20E065 +:109360002032A0F48B3269F030F4803259F083322D +:1093700069F420612CC08D3239F0803339F42160DA +:1093800026C02260246023C0286021C027FD27C09A +:1093900030ED380F3A3078F426FF06C0FAE05F9ED1 +:1093A000300D1124532E13C08AE0389E300D112445 +:1093B000332E20620CC08E3221F426FD5FC1206462 +:1093C00006C08C3611F4206802C0883641F4F601DC +:1093D00093FD859193FF81916F018111C1CF982FEA +:1093E0009F7D9554933028F40C5F1F4FFFE3F98362 +:1093F0000DC0833631F0833771F0833509F057C0E3 +:1094000021C0F801808189830E5F1F4F442443945B +:10941000512C540114C03801F2E06F0E711CF80198 +:10942000A080B18026FF03C0652D70E002C06FEF01 +:109430007FEFC5012C878DD12C0183012C852F77DF +:10944000222E16C03801F2E06F0E711CF801A080C8 +:10945000B18026FF03C0652D70E002C06FEF7FEF83 +:10946000C5012C876BD12C012C852068222E83010D +:1094700023FC19C0832D90E048165906A0F4B701CB +:1094800080E290E071D13A94F5CFF50127FC859107 +:1094900027FE81915F01B70190E066D131103A94C7 +:1094A000F1E04F1A51084114510479F7DEC08436B7 +:1094B00011F0893631F5F80127FF07C0608171810D +:1094C000828193810C5F1F4F08C060817181882762 +:1094D00077FD8095982F0E5F1F4F2F76B22E97FF46 +:1094E00009C090958095709561957F4F8F4F9F4FE4 +:1094F0002068B22E2AE030E0A40168D1A82EA81876 +:1095000043C0853729F42F7EB22E2AE030E025C0F3 +:10951000F22FF97FBF2E8F36C1F018F4883579F01D +:10952000ADC0803719F0883721F0A8C02F2F2061F7 +:10953000B22EB4FE0DC08B2D8460B82E09C024FF5E +:109540000AC09F2F9660B92E06C028E030E005C003 +:1095500020E130E002C020E132E0F801B7FE07C0B0 +:1095600060817181828193810C5F1F4F06C0608191 +:10957000718180E090E00E5F1F4FA40127D1A82EDB +:10958000A818FB2DFF77BF2EB6FE0BC02B2D2E7F0C +:10959000A51450F4B4FE0AC0B2FC08C02B2D2E7ED8 +:1095A00005C07A2C2B2D03C07A2C01C0752C24FF0A +:1095B0000DC0FE01EA0DF11D8081803311F4297E7A +:1095C00009C022FF06C07394739404C0822F86786A +:1095D00009F0739423FD12C020FF06C05A2C7314A7 +:1095E00018F4530C5718732C731460F4B70180E20D +:1095F00090E02C87B9D073942C85F6CF731410F4B7 +:10960000371801C0312C24FF11C0B70180E390E06E +:109610002C87AAD02C8522FF16C021FF03C088E525 +:1096200090E002C088E790E0B7010CC0822F8678F6 +:1096300051F021FD02C080E201C08BE227FD8DE2E6 +:10964000B70190E091D0A51430F4B70180E390E029 +:109650008BD05A94F8CFAA94F401EA0DF11D8081C1 +:10966000B70190E081D0A110F6CF332009F45DCE90 +:10967000B70180E290E078D03A94F7CFF701868185 +:10968000978102C08FEF9FEF2C960FB6F894DEBF44 +:109690000FBECDBFDF91CF911F910F91FF90EF9043 +:1096A000DF90CF90BF90AF909F908F907F906F9002 +:1096B0005F904F903F902F900895F999FECF92BD03 +:1096C00081BDF89A992780B50895A6E1B0E044E0FD +:1096D00050E0DCC0A8E1B0E042E050E0D7C0262F67 +:1096E000F999FECF92BD81BDF89A019700B4021698 +:1096F00039F01FBA20BD0FB6F894FA9AF99A0FBE46 +:1097000008950396272FECDFEADF252FE9DF242FCA +:10971000E7CF0196272FE4DFE2CF262FF999FECF7E +:109720001FBA92BD81BD20BD0FB6F894FA9AF99A7E +:109730000FBE01960895992788270895FC0105908A +:10974000615070400110D8F7809590958E0F9F1F43 +:109750000895FC016150704001900110D8F7809588 +:1097600090958E0F9F1F08950F931F93CF93DF93B4 +:10977000182F092FEB018B8181FD03C08FEF9FEF25 +:1097800020C082FF10C04E815F812C813D81421735 +:1097900053077CF4E881F9819F012F5F3F4F3983A4 +:1097A0002883108306C0E885F985812F1995892BB8 +:1097B00029F72E813F812F5F3F4F3F832E83812FDB +:1097C000902FDF91CF911F910F910895FA01AA2751 +:1097D000283051F1203181F1E8946F936E7F6E5FF4 +:1097E0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD0A2 +:1097F000670F781F891F9A1FA11D680F791F8A1F85 +:10980000911DA11D6A0F711D811D911DA11D20D0EB +:1098100009F468943F912AE0269F11243019305DA5 +:109820003193DEF6CF010895462F4770405D419396 +:10983000B3E00FD0C9F7F6CF462F4F70405D4A33E3 +:1098400018F0495D31FD4052419302D0A9F7EACFAB +:10985000B4E0A6959795879577956795BA95C9F7DA +:1098600000976105710508959B01AC010A2E0694CD +:109870005795479537952795BA95C9F7620F731F86 +:10988000841F951FA01D0895DC01CB01FC01F999EF +:10989000FECF06C0F2BDE1BDF89A319600B40D923C +:1098A00041505040B8F7089510EAC8E9D0EA00E006 +:1098B00005C022970109FE010BBFF8D8CA39D107AC +:0A98C00080E00807B1F7F894FFCF2D +:1098CA0000007D1880000160EA00000080BB4401AE +:1098DA0001000000410000344200005041000040F5 +:1098EA004000007A43000052430000524300000047 +:1098FA0000CDCC0CC09A99193E0000803F00004070 +:10990A0040640064006400640000803B4500803BC2 +:10991A0045000048440000000000000243FFFF0128 +:10992A00010101011C023E03F4010E013E03C201C2 +:10993A000E013E03C2010A01FF3FFF3FFF3F417E86 +:10994A00FF4411C8DB3EC3F56C420000803FB015EE +:10995A00C1432D18A63EB81EB341010260010100A1 +:10996A00005C4200005243011E00FF0000C8420092 +:10997A0000C8420000C843CD4C21430000FA43000E +:10998A0000FA43000040410000F04228230000286A +:10999A00230000F40100001027000000004000141A +:1099AA000054001010101010001F1511151F000090 +:1099BA000C12120C00000000040A0A0A0A11110E05 +:1099CA00040E1F041C0000000006191803130C00E3 +:1099DA00001C1F11111F00000004120912040000CC +:1099EA00000E1315110E00000000000000110A04F9 +:1099FA000000110A04110A0400000000A15BB8016A +:109A0A005052555341004D313132004D31313700FA +:109A1A0050696E670050524E00666E004E6F742099 +:109A2A00696E206661726D206D6F64652E006676C0 +:109A3A00004D32380046697200332E302E31322DF5 +:109A4A005243320052657600315F37356D6D5F4D96 +:109A5A004B322D52414D426F3133612D453344769D +:109A6A003666756C6C004C616E67004C7A00534523 +:109A7A005249414C204C4F570053455249414C20C2 +:109A8A004849474800426561740046520050727561 +:109A9A007361206933204D4B320020703A002069EF +:109AAA003A0020643A0020633A002E67636F000090 +:109ABA00000100250030001D000C001E00240031AA +:109ACA00001C000B00180023002F001B000A0017BF +:109ADA000047000400060022002B001A000300368B +:109AEA000037003500380058595A4500000000FB7D +:109AFA00C1B8012F006F70656E206661696C65647C +:109B0A002C2046696C653A20004E6F742070726989 +:109B1A006E74696E6700416E206572726F7220778B +:109B2A0068696C652077726974696E6720746F2042 +:109B3A0074686520534420436172642E0053442D97 +:109B4A005052494E54494E472020202020202020A0 +:109B5A00200066696E642062656420696E647563BC +:109B6A0074696F6E2073656E736F7220706F696EA1 +:109B7A007420787900496D70726F76652062656429 +:109B8A0020696E64756374696F6E2073656E736F96 +:109B9A007220706F696E74330035FA8E3B1F42096A +:109BAA003B504944204175746F74756E6520737417 +:109BBA0061727400504944204175746F74756E6502 +:109BCA00206661696C65642E204261642065787440 +:109BDA007275646572206E756D6265722E004F4BE8 +:109BEA00005B50524E3A005B5354303A005D5B536F +:109BFA0054423A005D5B4154303A005D5B41544245 +:109C0A003A003E004C616E67756167650053746186 +:109C1A0074697374696373005368697070696E67F5 +:109C2A00207072657000416C6C2044617461007B25 +:109C3A005B4552523A345D007B5B4552523A335D82 +:109C4A00007B5B4552523A325D007B5B4552523A89 +:109C5A00315D007B5B50524E3A355D007B007B5B89 +:109C6A0050524E3A305D5B50464E3A007B5B505242 +:109C7A004E3A395D007B5B50524E3A385D007B5B51 +:109C8A005245533A305D007B5B5245533A315D0091 +:109C9A007B5B50524E3A39395D005B5446553A0067 +:109CAA005D5B5043443A005D5B46454D3A005D5B5F +:109CBA00464E4D3A005D5B54494D3A005D5B46574E +:109CCA00523A005D7D004661726D206E6F005E0043 +:109CDA002F30000100206D6D007C002D2D2D2D2DC3 +:109CEA002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D00C7 +:109CFA00486F74656E6400426564004C6F61646904 +:109D0A006E672066696C616D656E74006D20006314 +:109D1A006D006820006B6D00680045787472756488 +:109D2A0065722000310034002020202020202020CD +:109D3A00202020202020202020202020005072696E +:109D4A006E74206F6B203F004D333031205000205D +:109D5A0049002044004D3330342050004731205A06 +:109D6A00004D3130392053004D31303420530047F3 +:109D7A00312058002059004D3330332045302053CC +:109D8A00004D33303320452D3120530025642F36C2 +:109D9A000000803B4500803B4500007A440000C833 +:109DAA00420D0A006E616E00696E66006F7666008B +:00000001FF diff --git a/Firmware/Firmware.ino.with_bootloader.rambo.hex b/Firmware/Firmware.ino.with_bootloader.rambo.hex new file mode 100644 index 000000000..6f6e0ad8c --- /dev/null +++ b/Firmware/Firmware.ino.with_bootloader.rambo.hex @@ -0,0 +1,15284 @@ +:100000000C944D500C947E500C947E500C947E5069 +:100010000C947E500C947E500C947E500C947E5028 +:100020000C947E500C947E500C947E500C947E5018 +:100030000C947E500D94ABBE0C947E500C947E506C +:100040000C947E500D94923E0C947E500C947E50F5 +:100050000C947E500C947E500D94A0510D94DAB601 +:100060000C947E500C94A65B0C947E500C947E50A5 +:100070000C947E500C947E500C947E500C947E50C8 +:100080000C947E500C947E500C947E500C947E50B8 +:100090000C947E500C947E500C947E500C947E50A8 +:1000A0000C947E500C947E500C947E500C947E5098 +:1000B0000C947E500C947E500C947E500C947E5088 +:1000C0000C947E500C947E500C947E500C947E5078 +:1000D0000C947E500C947E500C947E500C947E5068 +:1000E0000C947E50BA014001B40182016401CC013C +:1000F0008401C00174014601AE019001C2014401B6 +:1001000052013A01C6017C018C015A013E014801AD +:10011000A2016A019601580134012E01BC0142017D +:100120007801BE014C0196014E0154018E01B601C9 +:10013000A0013C0162015E01A801360188017E0137 +:10014000AC01A601D0019E01C401A801CE01560157 +:100150005001036EDB363D9A9999993DABAAAA2AC4 +:100160003E000000803F084AD73B3BCE016E84BC76 +:10017000BFFDC12F3D6C74319ABD56833DDA3D0001 +:10018000C77F11BED9E4BB4C3E916BAAAABE00004A +:1001900000803F072C7AA5BA6CC590DA3B9365FCCA +:1001A0008BBC53F810FD3C5692834DBD879D3AB6EB +:1001B0003DCBC9BF5BBE73DA0FC93F05A84CCDB2BA +:1001C000D44EB93836A9020C50B9918688083CA69D +:1001D000AAAA2ABE000000803F07634236B79BD818 +:1001E000A71A39685618AEBAAB558C1D3CB7CC5718 +:1001F00063BD6DEDFD753EF6177231BF00000080E6 +:100200003F08000000BE922449123EABAAAA2ABEB3 +:10021000CDCCCC4C3E00000080BEABAAAAAA3E00CA +:10022000000000BF000000803F0000000000084107 +:1002300078D3BB4387D1133D190E3CC3BD4282AD79 +:100240002B3E68EC8276BED98FE1A93E4C80EFFF51 +:10025000BE01C4FF7F3F0000000000000D9453B8B2 +:100260000D94BE7A0D940C960D944BB80D94DBB89A +:100270000D94147A0D941B7D0D94C6B80D9420B87E +:100280000D94FB510D9467B80D94CD7C0D94715273 +:100290000D9425B80D948D780D948AB80D9494B86A +:1002A0000D9409B90D94EC7C0D949EB80D9405B98C +:1002B0000D9443B80D941BB80D940B7A0D94D0B8DF +:1002C0000D9448A70D94CAB80D943F520D9421592E +:1002D0000D94FF6E0D9439B80D94DF860D946D6DFD +:1002E0000D94FC550D9471420D946D520D941D7C2E +:1002F0000D9471B80D9459760D942F7D0D94E5B839 +:100300000D9436590D9425520D9467520D94305921 +:100310000D94DFB80D9494890D94497D0D94A8B87F +:100320000D94967C0D94829F0D94D4580D94B2B880 +:100330000D94825D0D94A16A0D9408920D94F7B806 +:100340000D94D7B80D942FB80D949E1B0D94EDB855 +:100350000D940EB90D9462AE0D94E9B80D947952D6 +:100360000D94F9790D94CC8C0D9417520D94D4B84A +:100370000D94A5B90D94ED510D945DB80D9480B810 +:100380000D946B520D94B07C0D94FBB80D94257DAB +:100390000D94885F0D948F940D944D520D9401B976 +:1003A0000D94F3B80D945E570D949E5A0D94027AF5 +:1003B00048617264636F6465642044656661756C4E +:1003C000742053657474696E6773204C6F61646543 +:1003D000640053746F7265642073657474696E672A +:1003E00073207265747269657665640046696C6134 +:1003F0006D656E742073657474696E67733A20441A +:10040000697361626C6564002020204D32303020B9 +:10041000440046696C616D656E742073657474691F +:100420006E67733A002020204D323039205300414E +:1004300075746F2D526574726163743A20533D3048 +:1004400020746F2064697361626C652C20312074A4 +:100450006F20696E7465727072657420657874724D +:100460007564652D6F6E6C79206D6F766573206194 +:1004700073207265747261637473206F7220726589 +:10048000636F766572696573002046002020204DF9 +:100490003230382053005265636F7665723A2053CC +:1004A0003D4578747261206C656E67746820286DB4 +:1004B0006D2920463A537065656420286D6D2F6D57 +:1004C0002900205A002046002020204D32303720BD +:1004D0005300526574726163743A20533D4C656EEB +:1004E00067746820286D6D2920463A5370656564ED +:1004F00020286D6D2F6D29205A3A205A4C69667458 +:1005000020286D6D29002044002049002020204D26 +:10051000333034205000504944206865617462656E +:10052000642073657474696E67733A002044002018 +:1005300049002020204D33303120500050494420C4 +:1005400073657474696E67733A00205A002059000D +:1005500020204D323036205800486F6D65206F6680 +:100560006673657420286D6D293A00204500205A75 +:100570000020590020580020420020540020204D27 +:10058000323035205300416476616E6365642076B5 +:1005900061726961626C65733A20533D4D696E20EA +:1005A000666565647261746520286D6D2F73292CF2 +:1005B00020543D4D696E2074726176656C206665CD +:1005C00065647261746520286D6D2F73292C20423B +:1005D0003D6D696E696D756D207365676D656E74CF +:1005E0002074696D6520286D73292C20583D6D613C +:1005F00078696D756D205859206A65726B20286D79 +:100600006D2F73292C20205A3D6D6178696D756DB1 +:10061000205A206A65726B20286D6D2F73292C205B +:1006200020453D6D6178696D756D2045206A657264 +:100630006B20286D6D2F73290020540020204D322F +:100640003034205300416363656C65726174696F77 +:100650006E3A20533D616363656C65726174696FC6 +:100660006E2C20543D726574726163742061636303 +:10067000656C65726174696F6E00204500205A00D8 +:1006800020590020204D3230312058004D617869CA +:100690006D756D20416363656C65726174696F6E21 +:1006A00020286D6D2F7332293A00204500205A0012 +:1006B00020590020204D3230332058004D61786998 +:1006C0006D756D2066656564726174657320286D53 +:1006D0006D2F73293A00204500205A002059002030 +:1006E000204D393220580053746570732070657244 +:1006F00020756E69743A0053657474696E6773206F +:1007000053746F726564007364706F733A00506560 +:100710007263656E7420646F6E653A004D323620E8 +:10072000532564004D323400506F736974696F6EE5 +:1007300020726561642066726F6D20656570726FEE +:100740006D3A004D32332025730020423A00204597 +:100750003A00543A005A20736869667420617070D8 +:100760006C6965643A000A005A206C6976652061FC +:10077000646A757374206F7574206F662072616E81 +:1007800067652E2053657474696E6720746F20301E +:100790002E20436C69636B20746F20636F6E7469E5 +:1007A0006E75652E005A206C6976652061646A75E5 +:1007B0007374206F7574206F662072616E67652E8A +:1007C0002053657474696E6720746F203000205761 +:1007D0003A0020453A00543A004175746F002045B4 +:1007E0002F443D00416476616E6365204B3D0022DD +:1007F000005400496E76616C6964205420636F6414 +:10080000652E00496E76616C6964204D20636F64CB +:10081000652E004D3232302053256900203A2000E9 +:10082000004C414E472053454C20464F52434544CF +:10083000002200205A3A0020593A0020453A002070 +:100840005A3A0020593A00583A0020002E0020421F +:100850003A0020453A00543A002042403A002040F5 +:100860003A00202F003A00205400202F0020423A66 +:1008700000202F006F6B20543A002569206D696EAF +:100880002C2025692073656300496E76616C69646C +:10089000204D20636F6465004D6573682062656458 +:1008A000206C6576656C696E67206E6F742061637D +:1008B000746976652E000A002020000A4D65617378 +:1008C0007572656420706F696E74733A000A5A20FD +:1008D000736561726368206865696768743A2000AF +:1008E0002C004E756D20582C593A2000476F206817 +:1008F0006F6D652066696E6973686564004D657328 +:100900006820626564206C6576656C696E6720613D +:10091000637469766174656400557073616D706CA1 +:10092000652066696E697368656400426564206C61 +:100930006576656C696E6720636F72726563746952 +:100940006F6E2066696E697368656400206D696307 +:10095000726F6E73004578636573736976652062A4 +:100960006564206C6576656C696E6720636F727272 +:10097000656374696F6E3A200042656420636F722C +:1009800072656374696F6E2064617461206E6F7448 +:100990002076616C69640A0042656420636F72723C +:1009A000656374696F6E20646174612076616C693F +:1009B000640A006261627973746570206170706CA2 +:1009C00069656400636C65616E2075702066696E90 +:1009D000697368656420004D4553485F484F4D4535 +:1009E0005F5A5F5345415243483A20004D65736852 +:1009F00020626564206C6576656C696E6720776837 +:100A0000696C65206C6F6F702066696E69736865CC +:100A1000642E00006D65736820626564206C6576E5 +:100A2000656C696E673A20000A00593A2000005848 +:100A30003A20003A206E6F20787920636C616D70E7 +:100A4000696E670A003A20787920636C616D706581 +:100A5000642E0A00002C2063616C69627261746903 +:100A60006F6E207A3A2000426564206C6576656C72 +:100A7000696E672C20706F696E743A2000005A20EE +:100A80006A697474657220646174612066726F6D46 +:100A9000205A2063616C2E206E6F742076616C6921 +:100AA000642E0A005A206A69747465722064617445 +:100AB000612066726F6D205A2063616C2E20766112 +:100AC0006C69642E0A004E6F20636C616D70696EF4 +:100AD0006720666F722066697273742063616C6947 +:100AE00062726174696F6E20706F696E742E0A0095 +:100AF00046697273742063616C6962726174696FB4 +:100B00006E20706F696E7420636C616D7065642E09 +:100B10000A0047323820573000473238205730001B +:100B200054656D70657261747572652063616C697E +:100B300062726174696F6E20646F6E652E20436F00 +:100B40006E74696E7565207769746820707265735C +:100B500073696E6720746865206B6E6F622E00008B +:100B6000205A20736869667420286D6D293A0054F4 +:100B7000656D70657261747572653A2000002F367C +:100B800000537465703A2000005A45524F3A2000D5 +:100B90000050494E44412070726F62652063616C61 +:100BA0006962726174696F6E207374617274004758 +:100BB0003238205730000A00205A3A200020593A93 +:100BC000200020583A20004D323230205325690051 +:100BD000256920686F757273202569206D696E75AF +:100BE0007465730054494D454F55543A004D3131A9 +:100BF000300046756C6C20525820427566666572EE +:100C0000004D3239002055706C6F616420696E2090 +:100C100070726F677265737300466163746F727987 +:100C2000205245534554004A756C202036203230FE +:100C3000313700436F6D70696C65643A200033444E +:100C40002D677573736E65722C2054657374004A3A +:100C5000756C20203620323031372031303A31392E +:100C60003A34310073746172740025002020202012 +:100C70002020002020202020200045524153494EB2 +:100C80004720616C6C206461746100466163746F1D +:100C900072792052455345540022206661696C6583 +:100CA000643A204275666665722066756C6C210038 +:100CB000456E717565696E6720746F207468652074 +:100CC00066726F6E743A2022002200456E7175655F +:100CD000696E6720746F207468652066726F6E7429 +:100CE0003A20220022206661696C65643A204275D0 +:100CF000666665722066756C6C21002200FFFFFF3E +:100D00000000A0400000A0400000004000007A4326 +:100D1000333354439AD9514300000000CDCC0CC06A +:100D20009A99193E00007A43000052430000524352 +:100D300000000000CDCC0CC09A99193E6563686F25 +:100D40003A004572726F723A00000021104220632F +:100D5000308440A550C660E770088129914AA16B94 +:100D6000B18CC1ADD1CEE1EFF1311210027332522C +:100D700022B5529442F772D662399318837BB35AE4 +:100D8000A3BDD39CC3FFF3DEE362244334200401FC +:100D900014E664C774A44485546AA54BB528850934 +:100DA00095EEE5CFF5ACC58DD553367226111630CC +:100DB00006D776F6669556B4465BB77AA719973884 +:100DC00087DFF7FEE79DD7BCC7C448E5588668A70C +:100DD000784008611802282338CCC9EDD98EE9AFD4 +:100DE000F9488969990AA92BB9F55AD44AB77A966C +:100DF0006A711A500A333A122AFDDBDCCBBFFB9E24 +:100E0000EB799B588B3BBB1AABA66C877CE44CC53B +:100E10005C222C033C600C411CAEED8FFDECCDCD73 +:100E2000DD2AAD0BBD688D499D977EB66ED55EF40B +:100E30004E133E322E511E700E9FFFBEEFDDDFFCC3 +:100E4000CF1BBF3AAF599F788F8891A981CAB1EB68 +:100E5000A10CD12DC14EF16FE18010A100C230E391 +:100E6000200450254046706760B9839893FBA3DA4D +:100E7000B33DC31CD37FE35EF3B1029012F322D2E1 +:100E8000323542145277625672EAB5CBA5A89589DD +:100E9000856EF54FE52CD50DC5E234C324A0148131 +:100EA000046674476424540544DBA7FAB79987B8ED +:100EB000975FE77EF71DC73CD7D326F2369106B081 +:100EC0001657667676154634564CD96DC90EF92FED +:100ED000E9C899E9898AB9ABA944586548067827D1 +:100EE00068C018E1088238A3287DCB5CDB3FEB1E8D +:100EF000FBF98BD89BBBAB9ABB754A545A376A1621 +:100F00007AF10AD01AB32A923A2EFD0FED6CDD4D1C +:100F1000CDAABD8BADE89DC98D267C076C645C4570 +:100F20004CA23C832CE01CC10C1FEF3EFF5DCF7C2C +:100F3000DF9BAFBABFD98FF89F176E367E554E74C0 +:100F40005E932EB23ED10EF01E7C3C3E5E2B3D3FAA +:100F50002F5B5D3B2C2A225C004D383420582059F1 +:100F6000205A2045004D3234004D32332025730085 +:100F70006175746F25692E67000A002F000A002E24 +:100F80000044656C6574696F6E206661696C6564A8 +:100F90002C2046696C653A200046696C65206465C2 +:100FA0006C657465643A002E002E002E002E004EF3 +:100FB0006F772066726573682066696C653A2000F9 +:100FC0004E6F7720646F696E672066696C653A20A2 +:100FD000002220706F73002220706172656E743A77 +:100FE0002200535542524F5554494E452043414CDF +:100FF0004C207461726765743A2200747279696E6C +:101000006720746F2063616C6C207375622D676359 +:101010006F64652066696C657320776974682074F5 +:101020006F6F206D616E79206C6576656C732E2014 +:101030004D4158206C6576656C2069733A0050729A +:10104000757361206933204D4B3220676572656589 +:10105000642E005072757361206933204D4B32202D +:101060006265726569742E00507275736120693310 +:10107000204D4B3220676F746F776100507275732B +:1010800061206933204D4B3220707265702E005004 +:1010900072757361206933204D4B322070726F6E10 +:1010A00074612E005072757361206933204D4B328C +:1010B000206F6B005072757361206933204D4B3285 +:1010C0002072656164792E007A5F6D696E3A200046 +:1010D0007A5F6D61783A20005A204F6666736574B6 +:1010E00000795F6D696E3A2000795F6D61783A2012 +:1010F000004A61004A610054616B00536900536902 +:1011000000416E6F0059657300785F6D696E3A201B +:1011100000785F6D61783A200020576174636864DD +:101120006F6720526573657400496E666F20736344 +:101130006865726D00496E666F726D6174696F6E7D +:1011400000496E666F726D61636A65004D6F6E690E +:10115000746F72697A61720053636865726D61744D +:101160006120696E666F00496E666F726D616365BE +:1011700000496E666F2073637265656E0057616328 +:101180006874656E206F702061666B6F656C656E4C +:101190002076616E2068656174657220656E2062DC +:1011A00065642E0057617274656E2061756620411A +:1011B000626B7565686C756E6720766F6E2044751E +:1011C00065736520756E6420426574742E004F63EC +:1011D0007A656B6977616E6965206E6120777963E6 +:1011E000686C6F647A656E6965206479737A7920BA +:1011F0006920706F646B6C61646B692E004573705D +:101200006572616E646F20656E667269616D696595 +:101210006E746F206465206C612063616D6120795C +:101220002064656C206578747275736F722E004946 +:101230006E206174746573612064656C20726166F0 +:101240006672656464616D656E746F2064656C6C54 +:10125000612074657374696E6120652064656C201B +:1012600070696174746F0043656B616E69206E61B3 +:10127000207A63686C61646E757469207472797326 +:101280006B79206120706F646C6F7A6B792E0057D8 +:10129000616974696E6720666F72206E6F7A7A6C0E +:1012A0006520616E642062656420636F6F6C696E97 +:1012B00067005761636874656E206F7020676562B0 +:1012C0007275696B6572005761727465206175662D +:1012D000204E75747A65722E2E2E004573706572DD +:1012E000616E646F206F7264656E65730041747423 +:1012F000656E64656E646F207574656E7465005705 +:1013000061697420666F7220757365722E2E2E00CF +:101310004765627275696B742062696A20707269D0 +:101320006E740042656E75747A74206265696D2012 +:10133000447275636B00557A7974652070727A799E +:10134000206472756B7500557361646F20656E2043 +:10135000696D70726573696F6E0055736174692091 +:101360006E656C6C61207374616D706100506F7597 +:101370007A69746520626568656D207469736B7540 +:10138000005573656420647572696E6720707269B8 +:101390006E740046696C616D656E74207569746861 +:1013A000616C656E0046696C616D656E7420656E7A +:1013B000746E65686D656E0057796A616320666951 +:1013C0006C616D656E7400536F6C74617220666938 +:1013D0006C616D656E746F00536361726963612047 +:1013E00066696C616D656E746F0056796A6D6F75B4 +:1013F000742066696C616D656E7400556E6C6F610A +:10140000642066696C616D656E740046696C616D1F +:10141000656E742075697477657270656E004669D3 +:101420006C616D656E742061757377657266656E4B +:10143000005779737577616D2066696C616D656EB3 +:101440007400536F6C74616E646F2066696C616DBB +:10145000656E746F0052696C6173632E2066696CEF +:10146000616D656E746F005679736F7576616D206E +:1014700066696C616D656E7400556E6C6F61646950 +:101480006E672066696C616D656E7400556E6B6E7B +:101490006F776E20636F6D6D616E643A2022004637 +:1014A000696A6E696E7374656C6C696E67656E00EF +:1014B0004665696E65696E7374656C6C756E670000 +:1014C0004E617374726F696300416A7573746172FF +:1014D000005265676F6C61004C61646974005475FB +:1014E0006E65005344204B61727465205B466C73DB +:1014F000684169725D006B617274612053445B46A0 +:101500006C73684169725D005344206361726420AA +:101510005B466C73684169725D005344204B617295 +:101520007465205B6E6F726D616C5D006B617274CF +:1015300061205344205B6E6F726D616C5D0053449B +:101540002063617264205B6E6F726D616C5D005030 +:10155000494E444120542E6B616C2E205B4F4E5DF2 +:101560000050494E444120542E4B616C2E205B4F5D +:101570004E5D00436965706C2E206B616C2E205BA4 +:101580004F4E5D0043616C2E2074656D702E205BA4 +:101590004F4E5D0043616C2E2074656D702E205B94 +:1015A0004F4E5D005465706C2E206B616C2E205B7D +:1015B0004F4E5D0050494E444120542E63616C2EC5 +:1015C000205B4F4E5D0050494E444120542E6B61CC +:1015D0006C2E5B4F46465D0050494E444120542ED0 +:1015E0004B616C2E5B4F46465D00436965706C2E07 +:1015F000206B616C2E205B4F46465D0043616C2E74 +:101600002074656D702E205B4F46465D0043616C13 +:101610002E2074656D702E205B4F46465D0054652C +:10162000706C2E206B616C2E205B4F46465D005027 +:10163000494E444120542E63616C2E5B4F46465DFB +:101640000050494E44412074656D70657261747537 +:1016500075722063616C6962726174696520697377 +:10166000206B6C6161722E204B6C696B206F6D205A +:10167000646F6F72207465206761616E2E0044692B +:10168000652050494E44412054656D706572617407 +:1016900075726B616C696272696572756E672069DB +:1016A0007374206265656E6465742E204B6C69638B +:1016B0006B6520756D20666F72747A7566616872ED +:1016C000656E2E00436965706C6E61206B616C699C +:1016D000627261636A61207A616B6F6E637A6F6EAA +:1016E000612E204B6F6E74796E75756A2070727AF8 +:1016F000796369736B69656D0043616C69627261DE +:10170000636F6E2074656D706572617475726120AF +:101710007465726D696E6164612E205072657369C3 +:101720006F6E6172207061726120636F6E74696E9A +:101730007561722E005461726174757261207465F6 +:101740006D7065726174757261207465726D696E19 +:101750006174612E204661726520636C69636B2041 +:1017600070657220636F6E74696E756172652E00AC +:101770005465706C6F746E69206B616C6962726124 +:10178000636520646F6B6F6E63656E612E20506FB2 +:101790006B726163756A746520737469736B656DD0 +:1017A00020746C616369746B612E0050494E444132 +:1017B0002074656D70657261747572652063616C0B +:1017C0006962726174696F6E2069732066696E69FF +:1017D000736865642E20436C69636B20746F2063AB +:1017E0006F6E74696E75652E0050494E44412054E9 +:1017F000656D702E6B616C2E0050494E4441205433 +:10180000656D702E4B616C2E2020202020004369D6 +:1018100065706C2E206B616C2E20202020202020F3 +:1018200020200043616C2E2074656D702E202020D6 +:10183000202020202020200043616C2E2074656D24 +:10184000702E202020202020202020200054657091 +:101850006C2E206B616C2E20202020202020202048 +:10186000200050494E44412054656D702E63616CD8 +:101870002E20202020200054656D706572617475E3 +:1018800075720054656D706572617475720054658F +:101890006D70657261747572610054656D7065720A +:1018A00061747572610054656D70657261747572F2 +:1018B00061005465706C6F74610054656D70657281 +:1018C000617475726500506F6D6F6300536F706F58 +:1018D00072746500506F64706F7261005375707040 +:1018E0006F7274005072696E742073746F707065DB +:1018F0006E00447275636B20616262726563686535 +:101900006E005A6174727A796D6163206472756BCE +:1019100000446574656E657220696D7072657369E7 +:101920006F6E0041727265737461207374616D70C3 +:1019300061005A61737461766974207469736B0015 +:1019400053746F70207072696E7400474553544F22 +:1019500050542E2000474553544F5050542E2000D1 +:101960005041524144410041525245535441544F19 +:101970002E0053544F505045442E20005374657030 +:101980007261746520746F6F20686967683A20001F +:10199000546F74616C207072696E7474696A643A11 +:1019A00000546F74616C6520447275636B7A65696D +:1019B000743A00437A61732063616C6B6F7769746A +:1019C00079203A005469656D706F20746F74616C92 +:1019D000203A0054656D706F207374616D706120E2 +:1019E000746F743A0043656C6B6F76792063617332 +:1019F000203A00546F74616C207072696E742074A8 +:101A0000696D65203A0046696C616D656E7420747D +:101A10006F74616C3A200046696C616D656E74206C +:101A2000476573616D743A0046696C616D656E74EB +:101A3000206C61637A6E6965203A0046696C616D5D +:101A4000656E746F20746F74616C3A0046696C61E6 +:101A50006D656E746F20746F743A0046696C616DC9 +:101A6000656E742063656C6B656D203A00546F740D +:101A7000616C2066696C616D656E74203A0050720D +:101A8000696E7474696A643A202020004472756338 +:101A90006B7A6569743A202000437A61732064721E +:101AA000756B75203A2020005469656D706F206455 +:101AB0006520696D702E3A0054656D706F20646901 +:101AC000207374616D70613A0043617320746973AF +:101AD0006B75203A2020005072696E742074696D15 +:101AE000653A20200046696C616D656E747665729A +:101AF000627275696B3A0046696C616D656E7476E9 +:101B000065726272617563683A0046696C616D6501 +:101B10006E74203A20200046696C616D656E746FAA +:101B2000203A20200046696C616D656E746F2075E7 +:101B30007361746F3A0046696C616D656E74203A2A +:101B400020200046696C616D656E74207573656454 +:101B50003A2020005374617469737469656B656E13 +:101B60000053746174697374696B656E20005374FB +:101B70006174797374796B612020004573746164BA +:101B800069737469636120200053746174697374AC +:101B9000696368650053746174697374696B61206B +:101BA0002000537461746973746963732020004565 +:101BB00072726F72202D20737461746963206D6579 +:101BC0006D6F727920686173206265656E206F7633 +:101BD00065727772697474656E00536E656C6865C2 +:101BE000696400476573636877696E6469676B65EC +:101BF000697400507265646B6F73630056656C6F37 +:101C000063696461640056656C6F63697461005256 +:101C10007963686C6F73740053706565640020535A +:101C20006F667477617265205265736574004D6FDD +:101C300064652020202020205B6C656973655D0051 +:101C40004D6F64202020202020205B636963687929 +:101C50005D004D6F646F2020205B73696C656E635F +:101C6000696F5D004D6F646F205B73696C656E7AA0 +:101C7000696F736F5D004D6F64202020202020204D +:101C80005B74696368795D004D6F64652020202076 +:101C9000205B73696C656E745D004D6F6465205BDD +:101CA000486F6865204C656973745D004D6F6420F2 +:101CB0005B7720777964616A6E6F73635D004D6F47 +:101CC000646F205B72656E642E706C656E6F5D0074 +:101CD0004D6F64652020202020205B666F72746544 +:101CE0005D004D6F6420205B7679732E2076796BD2 +:101CF0006F6E5D004D6F6465205B6869676820707A +:101D00006F7765725D00546F6F6E20656E647374DB +:101D10006F707300416E7A656967656E20456E73FA +:101D20006368616C74657200506F6B617A206B72CE +:101D3000616E636F776B6900456E73656E612074C9 +:101D40006F70652066696E616C00537461746F20FA +:101D500066696E65636F7273610053746176206BA0 +:101D60006F6E632E207370696E2E0053686F77203C +:101D7000656E642073746F70730054656D702E20EF +:101D8000696E7374656C6C656E0054656D702E655C +:101D9000696E7374656C6C656E00557374617769F8 +:101DA000632074656D70657261747572650045734A +:101DB0007461626C656365722074656D702E3A00A3 +:101DC000496D706F7374612074656D7065726174B4 +:101DD000757261004E61737461767465207465700C +:101DE0006C6F74753A005365742074656D7065721C +:101DF00061747572653A00496E7374656C6C696ED6 +:101E000067656E0045696E7374656C6C756E6765A9 +:101E10006E00557374617769656E696100436F6E1A +:101E200066696775726163696F6E00496D706F7383 +:101E300074617A696F6E69004E6173746176656E64 +:101E4000690053657474696E6773004265647261FA +:101E500064696E6720666F7574005665726472619E +:101E60006874756E67736665686C657200426C6154 +:101E70006420706F6C61637A656E6961004572728F +:101E80006F7220646520636F6E6578696F6E0045C0 +:101E900072726F7265206361626C616767696F005F +:101EA0004368796261207A61706F6A656E69005774 +:101EB0006972696E67206572726F72005A656C662E +:101EC00074657374202073746172742020005365EC +:101ED0006C6273747465737420737461727420001F +:101EE0004175746F746573742073616C696461000B +:101EF0004176766961206175746F746573740053FF +:101F0000656C66207465737420737461727420202C +:101F100000436F6E74726F6C656572206175623A12 +:101F2000004269747465207072756566653A005385 +:101F30006B6F6E74726F6C756A203A00436F6E74CB +:101F4000726F6C61203A00566572696669636172EE +:101F5000653A005A6B6F6E74726F6C756A746520A7 +:101F60003A00506C6561736520636865636B203A65 +:101F7000005A656C6674657374204F4B0053656C32 +:101F800062737474657374204F4B004175746F7481 +:101F9000657374204F4B0053656C662074657374D1 +:101FA000204F4B004E6965742061616E6765736CEC +:101FB0006F74656E004E6963687420616E67657347 +:101FC00063686C6F7373656E004E696520706F6433 +:101FD0006C61637A6F6E6F202020004E6F20686105 +:101FE0007920636F6E6578696F6E2020004E6F6E8A +:101FF00020636F6E6E6573736F004E657A61706FEC +:102000006A656E6F20202020004E6F7420636F6E13 +:102010006E65637465640053696C6E696B004D6F27 +:10202000746F7265004D6F746F720043616C656E02 +:10203000742E2F5465726D6973746F7200526973D8 +:1020400063616C642E2F5465726D6973742E004841 +:1020500065617465722F546865726D6973746F720F +:1020600000526F7465657274004472656874004B49 +:1020700072656369207369650056656E74696C6189 +:10208000646F722067697261004769726100546F02 +:102090006369207365005370696E6E696E670052E4 +:1020A0006F7465657274206E69657400447265684A +:1020B00074206E69636874004E656B726563692095 +:1020C0007369650056656E74696C61646F72206E29 +:1020D0006F2067697261004E6F6E207369206769B7 +:1020E0007261004E65746F6369207365004E6F7492 +:1020F000207370696E6E696E67004C7565667465F5 +:10210000727465737400546573742077656E7479A6 +:102110006C61746F726100546573742064656C2027 +:1021200076656E74696C61646F720050726F76616F +:102130002064656C2076656E74696C61746F7200E2 +:10214000546573742076656E74696C61746F727512 +:102150000046616E2074657374005A656C66746520 +:102160007374206D69736C756B74200053656C62B9 +:10217000737474657374206D69736C75656B74002A +:1021800053656C6674657374206E69657564616E01 +:1021900079004175746F746573742066616C6C614D +:1021A000646F004175746F746573742066616C6C44 +:1021B00069746F0053656C66746573742073656C25 +:1021C00068616C20200053656C66746573742066CA +:1021D00061696C65642020004C696E6B65206661E6 +:1021E0006E3F004C696E6B6572204C756566746558 +:1021F000723F004C6577792077656E74206E6120A0 +:102200006479737A653F0056656E742E20656E2082 +:102210006C6120697A673F0056656E7420535820C0 +:1022200073756C6C277567656C6C6F3F004C6576D9 +:10223000792076656E74206E61207472797363659F +:102240003F004C65667420686F74656E642066613B +:102250006E3F005A656C667465737420466F7574C2 +:1022600020210053656C6273747465737420466535 +:10227000686C65722021004175746F7465737420F9 +:102280006572726F7221004175746F74657374208A +:102290006E6567617469766F0053656C667465730B +:1022A00074206572726F72202100456E6473746FC2 +:1022B00070206E6965742067657261616B7400459A +:1022C0006E647363682E206E2E206572726569637A +:1022D000687400546F70652066696E2E206E6F20E2 +:1022E000746F632E0046696E65632E2066756F728B +:1022F0006920706F722E00456E6473746F70206E6B +:102300006F742068697400456E64736368616C74EF +:10231000657200546F7065732066696E616C00466B +:10232000696E65636F7273612028322900456E649F +:1023300073746F707300546F70652066696E616CA2 +:102340000046696E65636F72736100456E647374F5 +:102350006F7000566F6F72646572652066616E3FC4 +:1023600000566F726465726572204C75656674659F +:10237000723F0050727A6F646E692077656E742EBA +:10238000206472756B753F0056656E742E20616C0B +:10239000206672656E74653F0056656E74206469D0 +:1023A000207374616D706120616E742E3F005072F5 +:1023B00065646E69207469736B6F76792076656EDB +:1023C000743F0046726F6E74207072696E7420667E +:1023D000616E3F00436F6E74726F6C656572205A58 +:1023E0002061732020202000507275656665205A98 +:1023F00020416368736520202020004B6F6E74724B +:102400006F6C61205A2061786973202000436F6EE1 +:1024100074726F6C2064656C20656A65205A005682 +:10242000657269666963612061737365205A004B48 +:102430006F6E74726F6C61205A206178697320200E +:1024400000436865636B696E67205A206178697321 +:10245000202000436F6E74726F6C65657220592086 +:102460006173202020200050727565666520592018 +:10247000416368736520202020004B6F6E74726F7B +:102480006C6120592061786973202000436F6E745D +:10249000726F6C2064656C20656A65205900566512 +:1024A00072696669636120617373652059004B6FBF +:1024B0006E74726F6C6120592061786973202000FE +:1024C000436865636B696E67205920617869732082 +:1024D0002000436F6E74726F6C65657220582061C6 +:1024E00073202020200050727565666520582041B9 +:1024F0006368736520202020004B6F6E74726F6CD0 +:102500006120582061786973202000436F6E7472D7 +:102510006F6C2064656C20656A6520580056657292 +:10252000696669636120617373652058004B6F6E43 +:1025300074726F6C612058206178697320200043A9 +:102540006865636B696E6720582061786973202025 +:1025500000436F6E74726F6C65657220686F74658E +:102560006E6420200050727565666520486F746542 +:102570006E642020202020004B6F6E74726F6C619F +:1025800020686F74656E64202000436F6E74726FF4 +:102590006C20686F74656E642000566572696669A8 +:1025A0006361207567656C6C6F004B6F6E74726F42 +:1025B0006C6120686F74656E6420200043686563F9 +:1025C0006B696E6720686F74656E64202000436FCE +:1025D0006E74726F6C65657220656E6473746F7073 +:1025E000730050727565666520456E64736368613B +:1025F0006C7465722020004B6F6E74726F6C61207A +:10260000656E6473746F707300436F6E742E207404 +:102610006F7065732066696E616C005665726966DD +:102620006963612066696E65636F727361004B6FE9 +:102630006E74726F6C6120656E6473746F7073007A +:10264000436865636B696E6720656E6473746F7051 +:102650007300436F6E74726F6C656572206265649F +:1026600020200050727565666520426574742020D4 +:10267000202020202020004B6F6E74726F6C612030 +:10268000626564202020202000436F6E74726F6C9E +:102690002064652063616D610056657269666963D7 +:1026A00061206C6574746F004B6F6E74726F6C6137 +:1026B00020626564202020202000436865636B69E8 +:1026C0006E6720626564202020202000416C6C65CC +:1026D0006D61616C20676F65642020202000416C73 +:1026E0006C6573207269636874696720202020001C +:1026F00057737A7973746B6F204F4B202020202002 +:102700002000546F646F2062696520004E6573730A +:10271000756E206572726F726500567365204F4B3F +:10272000202020202020202020202000416C6C2010 +:10273000636F727265637420202020202000426540 +:102740007474202F204865617465720043616D6167 +:102750002F43616C656E7461646F72004C657474B4 +:102760006F2F52697363616C642E00426564202F81 +:1027700020486561746572005A656C66746573748F +:102780002020202020202020200053656C627374BC +:102790007465737420202020202020004175746F00 +:1027A00074657374004175746F7465737400536558 +:1027B0006C66746573742020202020202020200067 +:1027C00057726974696E6720746F2066696C653A28 +:1027D0002000766F6C756D652E696E697420666178 +:1027E000696C6564002053697A653A20005344207F +:1027F00076657277696A64657264005344204B6140 +:1028000072746520656E746665726E74004B6172D9 +:1028100074612077796A657461005461726A6574C5 +:102820006120726574697261646100534420726949 +:102830006D6F737361004B617274612076796A6D9C +:1028400075746100436172642072656D6F766564B2 +:10285000005344207072696E74696E6720627974E7 +:102860006520006F70656E206661696C65642C2060 +:1028700046696C653A20006F70656E526F6F742008 +:102880006661696C656400534420696E67657374A2 +:102890006F6B656E005344204B61727465206569EF +:1028A0006E67657365747A74004B6172746120772A +:1028B0006C6F7A6F6E61005461726A657461206931 +:1028C0006E7365727461646100534420696E736550 +:1028D00072697461004B6172746120766C6F7A6505 +:1028E0006E61004361726420696E73657274656421 +:1028F00000534420696E6974206661696C00466902 +:102900006C652073656C65637465640046696C650D +:10291000206F70656E65643A20006572726F722078 +:1029200077726974696E6720746F2066696C6500E0 +:1029300053442063617264206F6B0043616E6E6F5D +:102940007420656E746572207375626469723A20D2 +:10295000005072696E742068657276617474656E79 +:1029600000447275636B20666F72747365747A6568 +:102970006E00577A6E617769616E69652064727561 +:102980006B75005265616E7564617220696D70725D +:102990006573696F6E005374616D706120696E209C +:1029A00072697072657361004F626E6F766F7661E7 +:1029B0006E69207469736B7500526573756D696E0D +:1029C00067207072696E74005072696E7420686559 +:1029D0007276617474656E00447275636B20666F05 +:1029E000727467657365747A7400577A6E6F77696D +:1029F000656E6965206472756B7500526573756DDF +:102A000069656E646F20696D70726573696F6E00C1 +:102A100052697072656E6469207374616D706100D3 +:102A20004F626E6F76656E69207469736B750052C4 +:102A30006573756D696E67207072696E740050728F +:102A4000696E742068657276617474656E00466F95 +:102A500072747365747A656E004B6F6E74796E75FF +:102A60006F776163005265616E7564617220696D94 +:102A7000707265732E0052697072656E646920739E +:102A800074616D706100506F6B7261636F76617419 +:102A900000526573756D65207072696E74005265C1 +:102AA00073656E643A2000686F77746F2E7072756C +:102AB000736133642E637A00686F77746F2E70725F +:102AC00075736133642E637A00686F77746F2E704C +:102AD0007275736133642E636F6D00666F72756D0E +:102AE0002E707275736133642E637A00666F72752F +:102AF0006D2E707275736133642E637A00666F7227 +:102B0000756D2E707275736133642E636F6D007016 +:102B10007275736133642E637A00707275736133FA +:102B2000642E637A00707275736133642E636F6D07 +:102B300000447275636B207061757A6572656E0012 +:102B4000447275636B2070617573696572740044BB +:102B500072756B207A6174727A796D616E79004951 +:102B60006D70726573696F6E20656E20706175732C +:102B700061005374616D706120696E2070617573BE +:102B800061005469736B20706F7A6173746176654C +:102B90006E005072696E74207061757365640050C8 +:102BA00072696E74206166676562726F6B656E0034 +:102BB000447275636B206162676562726F636865FA +:102BC0006E004472756B2070727A657277616E79EF +:102BD00000496D70726573696F6E2063616E636525 +:102BE0006C616461005374616D70612061626F7229 +:102BF00074697461005469736B20707265727573C7 +:102C0000656E005072696E742061626F72746564E3 +:102C1000005072696E746572206F6E74626F6E64BC +:102C2000656E00447275636B6572206765747265CA +:102C30006E74005072696E74657220646973636F9C +:102C40006E6E656374656400656E206472756B20DA +:102C50006F70206B6E6F7000756E64204B6E6F70BE +:102C6000662064727565636B656E004E616369739F +:102C70006E696A2070727A796369736B0050756C43 +:102C800073617220656C206D616E646F00652063F6 +:102C90006C696363617265206D616E6F706F6C61EA +:102CA000006120737469736B6E65746520746C6168 +:102CB0006369746B6F00616E64207072657373205A +:102CC000746865206B6E6F62005475697420766F4E +:102CD0006F727665727761726D656E2100447565FD +:102CE000736520766F726865697A656E21004E6142 +:102CF00067727A656A206479737A6521005072651B +:102D000063616C656E746172206578747275736F3F +:102D100072005072657269732E207567656C6C6FF6 +:102D2000210050726564656872656A74652074720A +:102D300079736B75210050726568656174207468E1 +:102D400065206E6F7A7A6C652100566F6F727665BA +:102D5000727761726D656E00566F726865697A652B +:102D60006E0047727A616E69650050726563616CCE +:102D7000656E7461720050726572697363616C6430 +:102D800061005072656465687265760050726568AE +:102D900065617400506F77657255700057616368A4 +:102DA0007420617562004269747465207761727481 +:102DB000656E0050726F737A6520637A656B61632C +:102DC00000506F72204661766F7220457370657295 +:102DD000617200417370657474610050726F736941 +:102DE0006D2063656B656A746500506C6561736521 +:102DF0002077616974002020506C616E6E657242AC +:102E0000756666657242797465733A200050494E62 +:102E10004441207761726D74206F700050494E44B8 +:102E20004120617566776172656D656E0047727AE3 +:102E3000616E69652050494E44410043616C656E86 +:102E400074616E646F2050494E444100526973634F +:102E5000616C642E2050494E4441004E6168726995 +:102E600076616E692050494E44410050494E4441BC +:102E70002048656174696E670050494E4441207472 +:102E8000656D70657261747575722063616C6962DD +:102E9000726174696520776173206E6F67206E6957 +:102EA0006574207569746765766F65726400504952 +:102EB0004E44412054656D70657261747572204B8B +:102EC000616C696272696572756E6720777572648C +:102ED00065206E6F6368206E696368742061757326 +:102EE000676566756568727400436965706C6E61CC +:102EF000206B616C69627261636A61206E69652032 +:102F000062796C612070727A6570726F7761647A31 +:102F10006F6E61004C612074656D706572617475CF +:102F200072612064652063616C6962726163696FBC +:102F30006E206E6F206861207369646F20616A750E +:102F400073746164610054617261747572612064AC +:102F5000656C6C612074656D706572617475726109 +:102F6000206E6F6E20616E636F726120657365679E +:102F700075697461005469736B61726E61206E656E +:102F800062796C61207465706C6F746E65207A6B09 +:102F9000616C6962726F76616E610050494E4441A6 +:102FA0002074656D70657261747572652063616C03 +:102FB0006962726174696F6E20686173206E6F74EC +:102FC000206265656E2072756E20796574005049C7 +:102FD00044206B616C2E202020202000504944208A +:102FE0004B616C2E2020202020004B616C2E205045 +:102FF00049440043616C2E20504944202020202069 +:103000002020202020200043616C2E2050494400C5 +:10301000504944206B616C2E20202020202020204D +:10302000202020005049442063616C2E2020202065 +:10303000202020202020202000504944206B616C5B +:103040002E206B6C616172202020202020005049CE +:1030500044204B616C2E20666572746967202020C5 +:103060002020004B616C2E20504944207A616B6F08 +:103070006E637A6F6E610043616C2E20504944206C +:103080007465726D696E6164610043616C2E2050DD +:10309000494420636F6D706C657461005049442031 +:1030A0006B616C2E20756B6F6E63656E61005049AD +:1030B000442063616C2E2066696E697368656420C4 +:1030C000202000504944206B616C69627261746910 +:1030D0006500504944204B616C6962726965727584 +:1030E0006E67004B616C69627261636A612050496E +:1030F000440043616C6962726163696F6E2050497C +:10310000440043616C696272617A696F6E65205038 +:10311000494400504944206B616C69627261636587 +:10312000005049442063616C6962726174696F6E1A +:103130000050494420626564206B616C2E20005071 +:1031400049442042657474204B616C2E0050494400 +:10315000206265642063616C2E2000504944206227 +:103160006564206B616C2E206B6C616172202000A5 +:103170005049442042657474204B616C2E20666572 +:103180007274696700504944206265642063616C11 +:103190002E20646F6E65202020005072696E7420AE +:1031A0007061757A6572656E005061757365005067 +:1031B000727A6572776163206472756B0050617515 +:1031C00073617220696D70726573696F6E004D6511 +:1031D00074746920696E20706175736100506F7A34 +:1031E00061737461766974207469736B00506175E2 +:1031F0007365207072696E74004C65672065656E3A +:103200002076656C20706170696572206F6E6465F0 +:10321000722068657420747569742074696A6465C5 +:103220006E73206465206B616C696272617469659C +:103230002076616E20646520656572737465203444 +:103240002070756E74656E2E20416C7320686574F5 +:103250002074756974206865742070617069657286 +:103260002076616E67742C205072696E74657220CE +:103270006F6E6D696464656C6C696A6B20756974E6 +:10328000736368616B656C656E2E004C65676520C5 +:103290007761656872656E6420646572204B616C4D +:1032A000696272696572756E672064657220657205 +:1032B0007374656E20342050756E6B74652065697B +:1032C0006E20426C61747420506170696572207563 +:1032D0006E746572206469652044756573652E207F +:1032E00057656E6E2064696520447565736520645A +:1032F00061732050617069657220626577656774DB +:103300002C20447275636B657220736F666F7274E4 +:1033100020617573736368616C74656E2100556D0F +:1033200069657363206B6172746B6520706170698D +:10333000657275206E6120706F646B6C616463658B +:1033400020692074727A796D616A20706F642064DC +:1033500079737A6120706F64637A617320706F6D26 +:1033600069617275207069657277737A7963682014 +:10337000342070756E6B746F772E204A65736C699C +:10338000206479737A61207A616861637A79206F49 +:10339000207061706965722C2077796C61637A2086 +:1033A0006472756B61726B652E00436F6C6F636145 +:1033B0007220756E6120686F6A612064652070619B +:1033C00070656C20736F627265206C61207375701C +:1033D0006572666963696520646520696D707265F0 +:1033E00073696F6E20647572616E7465206C612004 +:1033F00063616C6962726163696F6E206465206CE1 +:103400006F73207072696D65726F732034207075F0 +:103410006E746F732E205369206C6120626F71751A +:10342000696C6C61206D7565766520656C207061D6 +:1034300070656C2C2061706167617220696D7072BB +:1034400065736F726120696E6D6564696174616D29 +:10345000656E74652E00506F72726520756E206601 +:103460006F676C696F20736F74746F206C2775675A +:10347000656C6C6F20647572616E7465206C612080 +:1034800063616C696272617A696F6E6520646569F7 +:10349000207072696D6920342070756E74692E20F9 +:1034A000496E206361736F206C277567656C6C6F64 +:1034B000206D756F766120696C20666F676C696F2F +:1034C00020737065676E6572652070726F6E7461CF +:1034D0006D656E7465206C61207374616D70616ED2 +:1034E00074652E00556D697374657465206C69731D +:1034F0007420706170697275206E6120706F646CE9 +:103500006F7A6B752061207564727A756A746520B4 +:103510006A656A20706F6420747279736B6F7520AE +:10352000626568656D206D6572656E692070727682 +:103530006E696368203420626F64752E20506F6B53 +:10354000756420747279736B61207A616368797431 +:10355000692070617069722C207679706E6574656F +:10356000207469736B61726E752E00506C616365B7 +:103570002061207368656574206F662070617065D6 +:103580007220756E64657220746865206E6F7A7A39 +:103590006C6520647572696E67207468652063616C +:1035A0006C6962726174696F6E206F662066697201 +:1035B0007374203420706F696E74732E20496620F6 +:1035C000746865206E6F7A7A6C65206361746368D5 +:1035D0006573207468652070617065722C20706F4F +:1035E000776572206F666620746865207072696EF8 +:1035F00074657220696D6D6564696174656C792E9E +:10360000006F6B004F6666004765656E20626577E8 +:103610006567696E672E004B65696E652042657748 +:103620006567756E672E0053696E206D6F76696DE4 +:1036300069656E746F004E657373756E206D6F767D +:10364000696D656E746F2E004E6F206D6F76652EFE +:10365000004765656E205344206B61617274004BB6 +:1036600065696E65205344204B6172746500427237 +:10367000616B206B61727479205344004E6F206837 +:103680006179207461726A657461205344004E65EB +:103690007373756E61205344005A61646E612053E8 +:1036A00044206B61727461004E6F2053442063614B +:1036B00072640054756974004475657365004479DB +:1036C000737A6100426F7175696C6C610055676552 +:1036D0006C6C6F00547279736B61004E6F7A7A6C08 +:1036E000650046696C2E206E6965742067656C61A3 +:1036F00064656E0046696C2E206E6963687420678D +:10370000656C6164656E004272616B2066696C6114 +:103710006D656E74750046696C2E206E6F20696E43 +:1037200074726F64756369646F0046696C2E206EF5 +:103730006F6E20636172696361746F0046696C61CA +:103740006D656E74206E657A61766564656E00469F +:10375000696C616D656E74206E6F74206C6F61644E +:103760006564004B6C657572206E696574206475C4 +:103770006964656C696A6B004661726265206E6996 +:10378000636874206B6C61722E004B6F6C6F7220DB +:103790007A616E6965637A79737A2E00436F6C6F14 +:1037A00072206E6F20686F6D6F67656E656F004386 +:1037B0006F6C6F7265206E6F6E207075726F004255 +:1037C00061727661206E656E692063697374610051 +:1037D000436F6C6F72206E6F7420636C6561720052 +:1037E0004E6565004E65696E004E6965004E650068 +:1037F0004E6F00557067726164656E206175622E50 +:1038000000426974746520616B7475616C697369D9 +:103810006572656E2E0050726F737A65207A616BE7 +:103820007475616C697A6F77616300416374756167 +:103830006C697A617220706F72206661766F7200B7 +:10384000507265676120616767696F726E612E00F3 +:1038500050726F73696D20616B7475616C697A75F4 +:103860006A74652E00506C656173652075706772AF +:103870006164652E004E6965757765206669726DB5 +:10388000776172652076657273696520626573631E +:1038900068696B626161723A004E657565204669C0 +:1038A000726D776172652056657273696F6E2076EE +:1038B0006572667565676261723A005779737A6CF2 +:1038C00061206E6F776120776572736A6120666927 +:1038D000726D776172653A004E7565766F20666924 +:1038E000726D7761726520646973706F6E69626C66 +:1038F000653A004E756F76612076657273696F6EFA +:10390000652064656C206669726D776172652064FC +:103910006973706F6E6962696C65005679736C616A +:10392000206E6F7661207665727A65206669726DA9 +:10393000776172653A004E6577206669726D7761CE +:1039400072652076657273696F6E20617661696C4D +:1039500061626C653A00566572706C6161747320C7 +:103960005A00426577656765205A0050727A657320 +:10397000756E6163205A004D6F766572205A004D56 +:10398000756F7669205A00506F73756E6F7574206D +:103990005A004D6F7665205A00566572706C6161F1 +:1039A000747320590042657765676520590050722D +:1039B0007A6573756E61632059004D6F766572206C +:1039C00059004D756F7669205900506F73756E6F91 +:1039D00075742059004D6F766520590056657270D8 +:1039E0006C61617473205800426577656765205883 +:1039F0000050727A6573756E61632058004D6F7662 +:103A000065722058004D756F7669205800506F73AD +:103A1000756E6F75742058004D6F7665205800459F +:103A2000787472756972004D756F7669204573748C +:103A30007275736F72650045787472756465720093 +:103A40004B616C6962726572656E2076616E20589A +:103A5000595A2E204472616169206465206B6E6F33 +:103A600070206F6D206465205A2D776167656E2028 +:103A70006F6D686F6F67207465206761616E207479 +:103A80006F74206865742065696E64652073746F57 +:103A900070706572732E204B6C696B20616C7320A3 +:103AA0006B6C6161722E004B616C69627269657248 +:103AB000656E20766F6E205A2E2044726568656EA2 +:103AC000205369652064656E204B6E6F70662C20F4 +:103AD000626973206265696465205A2D5363686C5E +:103AE000697474656E206F6265726520416E7363E0 +:103AF00068616567652065727265696368656E2EC9 +:103B0000204B6C69636B656E2077656E6E20626515 +:103B10006964652067616E7A206F62656E207369E3 +:103B20006E642E004B616C69627261636A61205A37 +:103B30002E2050727A656B7265632067616C6B65CD +:103B40002C206162792070727A6573756E616320D2 +:103B50006F73205A20646F20676F726E79636820DC +:103B60006B72616E636F77656B2E204E6163697354 +:103B70006E696A2C20627920706F7477696572644F +:103B80007A69632E0043616C696272616E646F20B2 +:103B90005A2E204769726120656C20626F746F6EC7 +:103BA000207061726120737562697220656C206398 +:103BB0006172726F205A20686173746120676F6C44 +:103BC0007065207069657A617320737570657269BC +:103BD0006F7261732E204465737075657320686120 +:103BE0007A20636C69632E0043616C696272617A4A +:103BF000696F6E65205A2E2052756F746172652050 +:103C00006C61206D616E6F706F6C612070657220E9 +:103C1000616C7A61726520696C2063617272656C97 +:103C20006C6F205A2066696E6F20616C6C27616C26 +:103C300074657A7A61206D617373696D612E2043BA +:103C40006C69636B20706572207465726D696E615A +:103C500072652E004B616C696272616365205A2E39 +:103C6000204F746163656E696D20746C6163697463 +:103C70006B6120706F73756E7465205A206F737559 +:103C800020617A206B7E686F726E696D7520646F3B +:103C900072617A752E20506F747672647465207428 +:103CA0006C616369746B656D2E0043616C6962724F +:103CB0006174696E67205A2E20526F74617465209A +:103CC000746865206B6E6F6220746F206D6F76650F +:103CD00020746865205A206361727269616765208B +:103CE000757020746F2074686520656E642073742D +:103CF0006F70706572732E20436C69636B207768F8 +:103D0000656E20646F6E652E004B616C6962726532 +:103D100072656E2076616E2058595A2E2044726169 +:103D20006169206465206B6E6F70206F6D20646523 +:103D3000205A2D776167656E206F6D686F6F672001 +:103D40007465206761616E20746F742068657420EB +:103D500065696E64652073746F70706572732E2070 +:103D60004B6C696B20616C73206B6C6161722E000F +:103D70004B616C696272696572656E20766F6E2048 +:103D800058595A2E2044726568656E205369652023 +:103D900064656E204B6E6F70662C206269732062C2 +:103DA00065696465205A2D5363686C697474656E27 +:103DB000206F6265726520416E7363686165676537 +:103DC0002065727265696368656E2E204B6C69634D +:103DD0006B656E2077656E6E20626569646520672D +:103DE000616E7A206F62656E2073696E642E004B7F +:103DF000616C69627261636A612058595A2E205061 +:103E0000727A656B7265632067616C6B652C2061EB +:103E100062792070727A6573756E6163206F7320AA +:103E20005A20646F20676F726E796368206B7261CD +:103E30006E636F77656B2E204E616369736E696A7E +:103E40002C20627920706F7477696572647A696377 +:103E50002E0043616C696272616E646F2058595A1A +:103E60002E204769726120656C20626F746F6E202E +:103E70007061726120737562697220656C20636184 +:103E800072726F205A20686173746120676F6C7062 +:103E900065207069657A6173207375706572696FEA +:103EA0007261732E20446573707565732068617A42 +:103EB00020636C69632E0043616C696272617A6988 +:103EC0006F6E652058595A2E2052756F7461726555 +:103ED000206C61206D616E6F706F6C612070657217 +:103EE00020616C7A61726520696C20636172726511 +:103EF0006C6C6F205A2066696E6F20616C6C276154 +:103F00006C74657A7A61206D617373696D612E20BE +:103F1000436C69636B20706572207465726D696EA5 +:103F20006172652E004B616C696272616365205835 +:103F3000595A2E204F746163656E696D20746C61EF +:103F40006369746B6120706F73756E7465205A209D +:103F50006F737520617A206B7E686F726E696D7504 +:103F600020646F72617A752E20506F74767264745B +:103F70006520746C616369746B656D2E0043616CC0 +:103F80006962726174696E672058595A2E20526FA7 +:103F90007461746520746865206B6E6F6220746F45 +:103FA000206D6F766520746865205A206361727297 +:103FB0006961676520757020746F2074686520657D +:103FC0006E642073746F70706572732E20436C6919 +:103FD000636B207768656E20646F6E652E00417399 +:103FE00020766572706C61617473656E00426577EE +:103FF0006567652041636873650052756368206F6B +:104000007369004D6F76657220656A6573004D7542 +:104010006F7669206173736500506F73756E6F758D +:1040200074206F7375004D6F766520617869730039 +:104030004D657368206C6976656C2E206C657474B0 +:104040006F004D65736820426564204C6576656C31 +:10405000696E67004B616C69627261746965004BDF +:10406000616C696272696572756E67004B616C693B +:10407000627261636A610043616C69627261636963 +:104080006F6E0043616C696272617A696F6E650080 +:104090004B616C6962726163650043616C69627255 +:1040A0006174696F6E002076616E20390020766F32 +:1040B0006E203900207A20390020646520390020E4 +:1040C0007375203900207A203900206F662039006E +:1040D0004D6574656E2076616E20726566657265E9 +:1040E0006E636520686F6F6774652076616E20640B +:1040F00065206B616C6962726174696570756E745C +:10410000004D657373656E20646572205265666547 +:1041100072656E7A686F65686520646573204B61AF +:104120006C69627269657270756E6B746573004F4D +:104130006B7265736C616D207779736F6B6F7363EE +:10414000206F646E69657369656E69612070756E54 +:104150006B7475206B616C6962726163796A6E65FC +:10416000676F004D65646972206C6120616C7475C5 +:1041700072612064656C2070756E746F20646520B8 +:104180006C612063616C6962726163696F6E004D7E +:1041900069737572617265206C27616C74657A7AD7 +:1041A00061206469207269666572696D656E746FFD +:1041B0002064656C2070756E746F20646920636183 +:1041C0006C696272617A696F6E65004D6572696DC6 +:1041D000207265666572656E636E69207679736BB1 +:1041E00075206B616C69627261636E69686F2062D1 +:1041F0006F6475004D6561737572696E67207265D5 +:10420000666572656E636520686569676874206FAE +:10421000662063616C6962726174696F6E20706F91 +:10422000696E7400486F6F66646D656E75004861F5 +:104230007570746D656E7565004D656E7520676C83 +:104240006F776E65004D656E75207072696E63697B +:1042500070616C004D656E75207072696E63697077 +:10426000616C6500486C61766E69206E616269649C +:104270006B61004D61696E004D32323120496E76BE +:10428000616C696420657874727564657220004D94 +:1042900032313820496E76616C69642065787472B9 +:1042A0007564657220004D32303020496E76616C45 +:1042B0006964206578747275646572200052657057 +:1042C0006F7274696E6720656E6473746F702073AB +:1042D0007461747573004649524D574152455F4EA3 +:1042E000414D453A4D61726C696E2056312E302E2B +:1042F000323B20537072696E7465722F6772626C04 +:10430000206D617368757020666F722067656E3608 +:10431000204649524D574152455F55524C3A6874B8 +:104320007470733A2F2F6769746875622E636F6DAE +:104330002F707275736133642F50727573612D69BC +:10434000332D506C75732F2050524F544F434F4CA8 +:104350005F56455253494F4E3A312E30204D41431E +:1043600048494E455F545950453A50727573612023 +:104370006933204D4B322045585452554445525FC5 +:10438000434F554E543A3120555549443A30303018 +:1043900030303030302D303030302D303030302D26 +:1043A000303030302D303030303030303030303010 +:1043B000300A004D31303920496E76616C696420D5 +:1043C000657874727564657220004D31303520490E +:1043D0006E76616C696420657874727564657220AC +:1043E000004D31303420496E76616C696420657807 +:1043F00074727564657220004C6F736572207075FD +:104400006C6C6579004B6F6C6F207061736F7765B2 +:1044100000506F6C6561207375656C746100507538 +:104420006C6567676961206C656E74610055766FB5 +:104430006C6E656E612072656D656E69636B61009F +:104440004C6F6F73652070756C6C65790046696C94 +:10445000616D656E74206C6164656E0046696C61A7 +:104460006D656E74206C6164656E005770726F7755 +:1044700061647A2066696C616D656E7400496E7462 +:10448000726F64756369722066696C616D2E00439A +:1044900061726963612066696C616D656E746F003D +:1044A0005A61766573742066696C616D656E74001F +:1044B0004C6F61642066696C616D656E74004C615F +:1044C0006164652046696C616D656E740046696C57 +:1044D000616D656E74206C61656474005770726FF5 +:1044E000772E2066696C616D656E747500496E7417 +:1044F000726F64756369656E646F2066696C616D67 +:104500002E004361726963616E646F2066696C613D +:104510006D2E005A61766164656E692066696C6112 +:104520006D656E7475004C6F6164696E67206669B5 +:104530006C616D656E74004C61616465206B6C65C7 +:104540007572004C61646520466172626500437A51 +:1045500079737A637A2E206B6F6C6F72750043618A +:104560006D6269616E646F20636F6C6F720043618E +:10457000726963616E646F20636F6C6F7265004374 +:10458000697374656E69206261727679004C6F613F +:1045900064696E6720636F6C6F72004B696573208E +:1045A0007461616C00576165686C6520537072615D +:1045B000636865005779626F72206A657A796B610A +:1045C0000043616D6269616520656C206964696F93 +:1045D0006D610053656C657A696F6E61206C696E00 +:1045E000677561005679626572206A617A796B61DC +:1045F0000053656C656374206C616E6775616765F7 +:10460000004E656465726C616E6473004465757418 +:1046100073636800506F6C736B6900457370616EF3 +:104620006F6C004974616C69616E6F0043657374EF +:10463000696E6100456E676C697368004E4F4F4448 +:1046400053544F502F4B494C4C45442E200041426F +:10465000474542524F4348454E2E2000504152415B +:10466000444120444520454D455247454E4349412C +:1046700000494E2054494C542E004B494C4C454463 +:104680002E2000496E76616C6964206578747275BD +:104690006465720046696C616D656E7420696E7345 +:1046A00074656B656E0046696C616D656E7420653E +:1046B000696E6C6567656E005770726F7761647ABA +:1046C0002066696C616D656E7400496E74726F640A +:1046D000756369722066696C616D656E746F0049FF +:1046E0006E7365726972652066696C616D656E7462 +:1046F0006F00566C6F7A74652066696C616D656ECB +:104700007400496E736572742066696C616D656EC4 +:1047100074002076616E20390020766F6E2039009B +:10472000207A2039002064652039002073752039F3 +:1047300000207A203900206F662039004E6175779D +:104740006B65757269676865696420766572626514 +:10475000746572656E2062696A206B616C69627251 +:104760006174696570756E740047656E617569671F +:104770006B656974207665726265737365726E200D +:10478000626569204B616C69627269657270756EF1 +:104790006B7400506F7072617769616D2070726523 +:1047A00063797A796A6E6F73632070756E6B747556 +:1047B000206B616C6962726163796A6E65676F0014 +:1047C0004D656A6F72616E646F2063616D61207008 +:1047D000756E746F2064652063616C6962726163D9 +:1047E000696F6E0050657266657A696F6E2E20691A +:1047F0006C206C6574746F2070756E746F206469C2 +:104800002063616C696272617A2E005A6C65707304 +:10481000756A6920707265736E6F7374206B616C5A +:1048200069627261636E69686F20626F64750049C6 +:104830006D70726F76696E67206265642063616C6B +:104840006962726174696F6E20706F696E74004B7B +:10485000616C6962726572656E205A004B616C69A9 +:10486000627269657265205A004B616C696272758B +:104870006A65205A0043616C696272616E646F20E0 +:104880005A0043616C696272616E646F205A004B1A +:10489000616C696272756A69205A0043616C696271 +:1048A000726174696E67205A004B616C6269627252 +:1048B00061746965204F4B004B616C696272696578 +:1048C00072756E67204F4B004B616C696272616359 +:1048D0006A61204F4B0043616C6962726163696F6A +:1048E0006E204F4B0043616C696272617A696F6E32 +:1048F00065204F4B004B616C696272616365204FAC +:104900004B0043616C6962726174696F6E20646F01 +:104910006E65004B616C6962726572656E205A004B +:104920004B616C696272696572656E205A004B61F9 +:104930006C696272756A205A0043616C69627261C7 +:1049400072205A0043616C69627261205A004B61A7 +:104950006C6962726F766174205A0043616C69629F +:1049600072617465205A004F707761726D656E20B8 +:104970006B6C6161722E0041756667656865697A66 +:10498000656E206B6C61722E0047727A616E69658C +:10499000204F4B2E0043616C656E74616D69656ECE +:1049A000746F2066696E616C2E0052697363616C6E +:1049B000642E20636F6D706C65746F005A6168724D +:1049C0006976616E69204F4B2E0048656174696E8F +:1049D0006720646F6E652E004F707761726D656E33 +:1049E000004175666865697A656E0047727A616E26 +:1049F00069652E2E2E0043616C656E74616E646F66 +:104A00002E2E2E0052697363616C64616D656E7445 +:104A10006F2E2E2E005A6168726976616E690048A9 +:104A2000656174696E67002046726565204D656D2D +:104A30006F72793A20005072696E746572206973E2 +:104A4000206E6F67206E6965742067656B616C69A5 +:104A50006272656572642E20566F6C6720646520F3 +:104A600068616E646C656964696E672C20686F6F3D +:104A700066647374756B2046697273742073746511 +:104A800070732C207365637469652043616C69627F +:104A9000726174696F6E20666C6F772E0044657268 +:104AA00020447275636B6572207775726465206E41 +:104AB0006F6368206E69636874206B616C696272F1 +:104AC000696572742E20426974746520666F6C6724 +:104AD000656E205369652064656D2048616E64626F +:104AE0007563682C204B61706974656C204669722F +:104AF00073742073746570732C2041627363686EE5 +:104B00006974742043616C6962726174696F6E20AC +:104B1000666C6F772E004472756B61726B61206EEC +:104B20006965207A6F7374616C61206A65737A635A +:104B30007A6520736B616C6962726F77616E612E4A +:104B40002050726F737A65206B6965726F7761634D +:104B50002073696520696E737472756B636A612C6A +:104B600020726F7A647A69616C205A61637A796E17 +:104B7000616D792C20706F64726F7A647A69616CF0 +:104B80002053656C66746573742E00496D70726590 +:104B9000736F7261206E6F20657374612063616C46 +:104BA00069627261646120746F64617669612E204C +:104BB000506F72206661766F722075736172206526 +:104BC0006C206D616E75616C2C20656C206361706A +:104BD0006974756C6F2046697273742073746570A4 +:104BE000732C2073656C656363696F6E2043616C21 +:104BF0006962726174696F6E20666C6F772E005304 +:104C000074616D70616E746520616E636F72612096 +:104C10006E6F6E2063616C6962726174612E2053E5 +:104C200069207072656761206469207365677569C2 +:104C3000726520696C206D616E75616C652C2063F6 +:104C4000617069746F6C6F205052494D492050411A +:104C50005353492C2073657A696F6E652064656CC7 +:104C60006C612063616C696272617A696F6E652E36 +:104C7000005469736B61726E61206E6562796C615C +:104C8000206A65737465207A6B616C6962726F76F5 +:104C9000616E612E20506F73747570756A74652033 +:104CA00070726F73696D20706F646C65206D616EDA +:104CB00075616C752C206B617069746F6C61205A22 +:104CC0006163696E616D652C206F647374617665D4 +:104CD0006320506F73747570206B616C69627261D0 +:104CE00063652E005072696E74657220686173206E +:104CF0006E6F74206265656E2063616C69627261BB +:104D0000746564207965742E20506C65617365202C +:104D1000666F6C6C6F7720746865206D616E75616D +:104D20006C2C2063686170746572204669727374BC +:104D30002073746570732C2073656374696F6E20C3 +:104D400043616C6962726174696F6E20666C6F7723 +:104D50002E004475726368666C7573730050727AC6 +:104D600065706C797700466C756A6F00466C757378 +:104D7000736F00507275746F6B00466C6F770042F2 +:104D800065776567696E67656E2061667765726BCA +:104D9000656E004265776567756E67656E20626552 +:104DA000656E64656E004B6F6E637A656E69652033 +:104DB0006472756B75005465726D2E206D6F766927 +:104DC0006D69656E746F73004172726573746F20E4 +:104DD000696E20636F72736F00446F6B6F6E636FE9 +:104DE00076616E6920706F687962750046696E69D8 +:104DF0007368696E67206D6F76656D656E7473009C +:104E00002076616E20340020766F6E203400207A88 +:104E10002034002064652034002073752034002085 +:104E20007A203400206F662034005A6F656B65204D +:104E3000626564206B616C6962726174696570752A +:104E40006E740053756368652042657474204B610D +:104E50006C69627269657270756E6B7400537A75F5 +:104E60006B616D2070756E6B7475206B616C69621F +:104E7000726163796A6E65676F20706F646B6C61D5 +:104E8000646B690042757363616E646F2063616D6A +:104E9000612070756E746F2064652063616C696257 +:104EA000726163696F6E0052696365726361206449 +:104EB000656C206C6574746F2070756E746F2064FF +:104EC000692063616C696272617A2E00486C656466 +:104ED000616D206B616C69627261636E6920626FE3 +:104EE0006420706F646C6F7A6B79005365617263D4 +:104EF00068696E67206265642063616C69627261D3 +:104F000074696F6E20706F696E74004865726861B5 +:104F10006C696E672000576965646572686F6C75AF +:104F20006E6720004974657261636A612000526592 +:104F3000697465726163696F6E200052656974659A +:104F400072617A696F6E652000497465726163658C +:104F50002000497465726174696F6E2000446F6E41 +:104F60006520736176696E672066696C652E004402 +:104F70006F6E65207072696E74696E672066696C09 +:104F800065004973206B6C657572207A756976656A +:104F9000723F0049737420466172626520726569D0 +:104FA0006E3F00437A79206B6F6C6F72206A657375 +:104FB0007420637A797374793F00457320656C209F +:104FC0006E7565766F20636F6C6F72206E697469A1 +:104FD000646F3F00496C20636F6C6F7265206527BA +:104FE000206E697469646F3F004A65206261727661 +:104FF000612063697374613F00497320636F6C6F54 +:105000007220636C6561723F0057697373656C2031 +:1050100066696C616D656E740046696C616D656E84 +:10502000742D5765636873656C0057796D69656E9B +:1050300069632066696C616D656E740043616D62C1 +:105040006961722066696C616D656E746F004361A1 +:105050006D622E2066696C616D656E746F005679A5 +:105060006D656E69742066696C616D656E74004370 +:1050700068616E67652066696C616D656E74004677 +:10508000616E20736E656C68656964004C75656659 +:105090007465722D54656D706F00507265646B6F2E +:1050A00073632077656E742E0056656C6F63696458 +:1050B00061642056656E742E0056656C6F6369746A +:1050C000612076656E742E00527963686C6F73741C +:1050D0002076656E742E0046616E2073706565647F +:1050E00000656E717565696E67202200456B73748B +:1050F0007275646572004578747275736F720045DD +:1051000073747275736F7265004578747275646537 +:1051100072002045787465726E616C20526573650B +:1051200074005072696E7465722073746F7070656C +:10513000642064756520746F206572726F72732EBF +:105140002046697820746865206572726F722061EC +:105150006E6420757365204D39393920746F207263 +:105160006573746172742E202854656D7065726168 +:10517000747572652069732072657365742E20538F +:105180006574206974206166746572207265737439 +:10519000617274696E6729004E6F204C696E6520DC +:1051A0004E756D6265722077697468206368656307 +:1051B0006B73756D2C204C617374204C696E653A6D +:1051C00020004E6F20436865636B73756D207769AF +:1051D0007468206C696E65206E756D6265722C2036 +:1051E0004C617374204C696E653A200020746F6FB7 +:1051F000206C6F6E6720657874727573696F6E20AE +:1052000070726576656E746564004C696E65204EDB +:10521000756D626572206973206E6F74204C6173C6 +:1052200074204C696E65204E756D6265722B312C51 +:10523000204C617374204C696E653A20005072698D +:105240006E7465722068616C7465642E206B696C85 +:105250006C28292063616C6C6564210020636F6C8D +:105260006420657874727573696F6E2070726576EC +:10527000656E74656400636865636B73756D206D3E +:1052800069736D617463682C204C617374204C6980 +:105290006E653A2000464F55543A004645484C4505 +:1052A000523A00424C41443A004552524F52453A1C +:1052B0000043485942413A004552524F523A004544 +:1052C0006E642066696C65206C697374006F70652C +:1052D0006E0054524947474552454400656E647319 +:1052E000746F7073206869743A2000536C61706544 +:1052F0006E2E2E2E0057617274656E2E2E2E004576 +:105300006E2065737065726100536F7370656E73A4 +:10531000696F6E652E2E2E00536C6565702E2E2ED5 +:10532000004D6F746F72656E20756974004D6F74F7 +:105330006F72656E206175730057796C61637A795D +:10534000632073696C6E696B69004170616761729B +:10535000206D6F746F726573004469736162696C6C +:105360006974206D6F746F7269005679706E6F7515 +:1053700074206D6F746F72790044697361626C653B +:105380002073746570706572730041637475656530 +:105390006C00416B7475656C6C65730054796C6B53 +:1053A0006F20616B7475616C6E650041637475612B +:1053B0006C0041747475616C6500506F757A65207E +:1053C000616B7475616C6E690043757272656E74A1 +:1053D0000020436F756E7420583A2000576973732C +:1053E000656C206F6B3F005765636873656C206F59 +:1053F0006B3F0057796D69616E61206F6B3F0043B1 +:10540000616D626961646F20636F72726563742E8F +:105410003F0043616D626961746F20636F72722E29 +:105420003F0056796D656E61206F6B3F0043686188 +:105430006E67656420636F72726563746C793F0098 +:1054400041666B6F656C656E0041626B7565686C7B +:10545000656E00577963686C6F647A696300456EA6 +:1054600066726961720052616666726564646100A9 +:105470005A63686C6164697400436F6F6C646F7722 +:105480006E005265696E696720686574207475697D +:105490007420766F6F72206465206B616C69627234 +:1054A00061746965206175622E204B6C696B2061A7 +:1054B0006C73206B6C6161722E004269747465209C +:1054C0007265696E6967656E2053696520646965F8 +:1054D000204475657365207A7572204B616C696232 +:1054E00072696572756E672E204B6C69636B656EB1 +:1054F0002077656E6E207361756265722E00446C54 +:1055000061207072617769646C2E206B616C6962D6 +:105510007261636A692070726F737A65206F637A53 +:105520007973636963206479737A652E20506F7490 +:10553000772E2067757A696B69656D2E004C696DF1 +:105540007069617220626F7175696C6C6120706145 +:1055500072612063616C6962726163696F6E2E2093 +:10556000436C69636B206375616E646F2061636176 +:105570006265732E0050756C697265206C277567C3 +:10558000656C6C6F20706572206C612063616C6962 +:105590006272617A696F6E652C20706F6920666136 +:1055A000726520636C69636B2E0050726F20757397 +:1055B0007065736E6F75206B616C6962726163698F +:1055C000206F636973746574652070726F73696DA1 +:1055D000207469736B6F766F7520747279736B7555 +:1055E0002E20506F74767264746520746C616369E8 +:1055F000746B656D2E00506C6561736520636C651E +:10560000616E20746865206E6F7A7A6C6520666FB3 +:10561000722063616C6962726174696F6E2E2043DF +:105620006C69636B207768656E20646F6E652E0011 +:105630005A696A6E206265696465205A20776167DD +:10564000656E206865656C656D61616C20626F7662 +:10565000656E3F0053696E64206265696465205A17 +:10566000205363686C697474656E2067616E7A207C +:105670006F62656E3F004F626120776F7A6B6920C1 +:10568000646F6A656368616C7920646F20676F720C +:105690006E656A2072616D793F00436172726F734B +:1056A000205A20697A712E2F6465722E20657374DA +:1056B000616E20617272696261206D6178696D6FDF +:1056C0003F00492063617272656C6C69205A2073D7 +:1056D000696E2F64657320736F6E6F20616C7465E3 +:1056E0007A7A61206D61783F00446F6A656C792039 +:1056F0006F6261205A20766F7A696B79206B7E68C1 +:105700006F726E696D7520646F72617A753F0041CA +:105710007265206C65667420616E642072696768CA +:1057200074205A7E63617272696167657320616C6F +:105730006C2075703F00204C61737420557064615B +:105740007465643A20004B696573204578747275FE +:1057500064657200576165686C656E2053696520E9 +:105760004578747275646572005779626965727AFA +:1057700020656B7374727564657200456C6567694A +:1057800072206578747275736F723A0053656C6538 +:105790007A696F6E61206573747275736F72653AA2 +:1057A00000567962657274652065787472756465F7 +:1057B000723A0043686F6F73652065787472756420 +:1057C00065723A0057697373656C2073756363651E +:1057D00073766F6C21005765636873656C20657222 +:1057E000666F6C677265696368210057796D6961DE +:1057F0006E61206F6B210043616D62696F20636F82 +:1058000072726563746F0043616D62696F207269C3 +:1058100075736369746F21005A6D656E61207573CD +:105820007065736E6121004368616E6765207375F2 +:10583000636365737321005072696E742076616EC4 +:1058400020534400447275636B656E20766F6E2042 +:105850005344004472756B207A205344004D656EAA +:1058600075207461726A65746120534400537461D9 +:105870006D7061206461205344005469736B207A19 +:10588000205344005072696E742066726F6D20530D +:10589000440050494E44412054656D702E206B6188 +:1058A0006C2E0050494E44412054656D702E204BA3 +:1058B000616C2E00436965706C6E61206B616C6970 +:1058C00062722E0043616C6962726163696F6E205F +:1058D00074656D702E00546172617475726120740C +:1058E000656D702E005465706C6F742E206B616C4A +:1058F0006962726163650050494E44412054656D90 +:10590000702E2063616C2E0050494E444120546536 +:105910006D702E206B616C2E0050494E4441205416 +:10592000656D702E204B616C2E00536B616C69624B +:10593000726F7761630043616C69627261720043E8 +:10594000616C696272617265005A6B616C69627246 +:105950006F7661740050494E44412054656D702E3D +:105960002063616C2E0052657365742058595A206B +:105970006B616C6962722E005265736574205859B0 +:105980005A204B616C6962722E00526573657420F7 +:105990006B616C6962722E2058595A0052657365AA +:1059A000742058595A206B616C6962722E005265DE +:1059B0007365742058595A2063616C6962722E00B5 +:1059C0004B616C696272617469652058595A004B69 +:1059D000616C696272696572756E672058595A0008 +:1059E0004B616C69627261636A612058595A004365 +:1059F000616C696272612058595A0043616C696236 +:105A000072612058595A004B616C6962726163651A +:105A10002058595A0043616C69627261746520585C +:105A2000595A002042726F776E206F75742052654C +:105A300073657400426567696E2066696C65206CE9 +:105A40006973740058595A206B616C696272617491 +:105A50006965206765636F6D70726F6D69747465D9 +:105A60006572642E204C696E6B73766F6F72206B5B +:105A7000616C6962726174696570756E74206E69BB +:105A800065742062657265696B626161722E00588F +:105A9000595A2D4B616C696272696572756E672027 +:105AA000756E67656E61752E204C696E6B65722030 +:105AB000766F726465726572204B616C696272699F +:105AC000657270756E6B74206E69636874206572A0 +:105AD00072656963686261722E004B616C69627203 +:105AE00061636A612058595A206E6965646F6B6CF6 +:105AF00061646E612E204C6577792070727A6564DE +:105B00006E692070756E6B74207A62797420777973 +:105B100073756E6965747920646F2070727A6F6432 +:105B2000752E0043616C696272617A696F6E2058EC +:105B3000595A20636F6D70726F6D65746964612E60 +:105B40002050756E746F2064656C616E7465726F41 +:105B500020697A7175696572646F206E6F20616C5F +:105B600063616E7A61626C652E0043616C6962727A +:105B7000617A696F6E652058595A20636F6D707233 +:105B80006F6D657373612E2050756E746F20616E3A +:105B9000746572696F72652073696E697374726F70 +:105BA000206E6F6E207261676769756E67696269E2 +:105BB0006C652E004B616C69627261636520585997 +:105BC0005A206E65707265736E612E204C65767911 +:105BD00020707265646E6920626F64206D6F63204F +:105BE0007670726564752E0058595A2063616C692D +:105BF00062726174696F6E20636F6D70726F6D6930 +:105C00007365642E204C6566742066726F6E742016 +:105C100063616C6962726174696F6E20706F696E26 +:105C200074206E6F7420726561636861626C652EAA +:105C30000058595A206B616C696272617469652001 +:105C40006765636F6D70726F6D697474656572649A +:105C50002E20566F6F727A696A6465206B616C6979 +:105C600062726174696570756E74656E206E6965C7 +:105C7000742062657265696B626161722E005859A9 +:105C80005A2D4B616C696272696572756E67207519 +:105C90006E67656E61752E20566F72646572652041 +:105CA0004B616C69627269657270756E6B746520A8 +:105CB0006E69636874206572726569636862617297 +:105CC0002E004B616C6962722E2058595A206E6901 +:105CD00065646F6B6C61646E612E2050727A6564CE +:105CE0006E69652070756E6B7479206B616C69628A +:105CF000722E205A627974207779732E20646F2077 +:105D000070727A6F64752E0043616C696272617A99 +:105D1000696F6E2058595A20636F6D70726F6D6590 +:105D2000746964612E2050756E746F2064656C61B7 +:105D30006E7465726F73206E6F20616C63616E7A32 +:105D400061626C65732E0043616C696272617A698D +:105D50006F6E652058595A20636F6D70726F6D6554 +:105D60007373612E2050756E746920616E74657254 +:105D7000696F7269206E6F6E207261676769756EF8 +:105D8000676962696C692E004B616C69627261635C +:105D9000652058595A206E65707265736E612E20A9 +:105DA000507265646E69206B616C69627261636ECA +:105DB0006920626F6479206D6F632076707265640C +:105DC000752E0058595A2063616C6962726174695A +:105DD0006F6E20636F6D70726F6D697365642E20D6 +:105DE00046726F6E742063616C6962726174696F70 +:105DF0006E20706F696E7473206E6F7420726561AF +:105E0000636861626C652E0058595A206B616C6939 +:105E1000627261746965206F6B2E20582F592D6155 +:105E20007373656E207A696A6E2069657473207376 +:105E300063686565662E2053636865656668656995 +:105E40006420776F726474206175746F6D6174691A +:105E5000736368206765636F7272696765657264F2 +:105E60002E20476F65642067656461616E2100586C +:105E7000595A2D4B616C696272696572756E672043 +:105E80006F6B2E20582F592D41636873656E2073F8 +:105E9000696E6420657477617320736368696566F1 +:105EA0002E20536368696566686569742077697236 +:105EB00064206175746F6D617469736368206B6FC2 +:105EC00072726967696572742E2047757420676500 +:105ED0006D6163687421004B616C69627261636A11 +:105EE000612058595A207072617769646C6F7761CC +:105EF0002E204F73696520582F59206C656B6B6F8E +:105F000020736B6F736E652E20446F627261207216 +:105F10006F626F7461210043616C696272616369D1 +:105F20006F6E2058595A20636F7272656374612EC8 +:105F3000204C6F7320656A65732058202F205920EC +:105F4000657374616E206C69676572616D656E74EE +:105F50006520696E636C696E61646F732E20427593 +:105F6000656E2074726162616A6F210043616C69C1 +:105F70006272617A696F6E2058595A20636F72722B +:105F8000657474612E204173736920582F59206CF9 +:105F900065676765726D656E74652073746F727482 +:105FA000692E2042656E20666174746F21004B611A +:105FB0006C6962726163652058595A207620706F4F +:105FC0007261646B752E20582F59206F7379206D84 +:105FD00069726E65207A6B6F73656E652E20446FF3 +:105FE000627261207072616365210058595A2063A2 +:105FF000616C6962726174696F6E20616C6C207291 +:10600000696768742E20582F592061786573206164 +:10601000726520736C696768746C7920736B65773F +:1060200065642E20476F6F64206A6F6221005859A3 +:106030005A206B616C69627261746965206F6B2EA6 +:1060400020582F592D617373656E207A696A6E200E +:106050006865656C207363686565662E20536368A8 +:106060006565666865696420776F72647420617520 +:10607000746F6D617469736368206765636F7272B2 +:106080006967656572642E0058595A2D4B616C69B9 +:106090006272696572756E67206F6B2E20582F597A +:1060A0002D41636873656E2073696E642073656843 +:1060B00072207363686965662E205363686965663C +:1060C000686569742077697264206175746F6D61A9 +:1060D0007469736368206B6F727269676965727443 +:1060E0002E004B616C69627261636A612058595A73 +:1060F000207072617769646C6F77612E20536B6FCB +:1061000073792062656461206175746F6D61747963 +:10611000637A6E6965207779726F776E616E65203C +:1061200070727A79206472756B752E0043616C69A8 +:1061300062726163696F6E2058595A20636F727280 +:10614000656374612E204C6120696E636C696E61B9 +:1061500063696F6E20736520636F72726567697221 +:1061600061206175746F6D61746963616D656E74D2 +:10617000652E0043616C696272617A696F6E2058A6 +:10618000595A20636F7272657474612E204C6120BD +:10619000646973746F7273696F6E6520766572726D +:1061A0006127206175746F6D61746963616D656EDF +:1061B000746520636F6D70656E736174612E004B42 +:1061C000616C6962726163652058595A207620704B +:1061D0006F7261646B752E205A6B6F73656E6920E8 +:1061E00062756465206175746F6D617469636B7944 +:1061F000207679726F766E616E6F2070726920748E +:1062000069736B752E0058595A2063616C6962720C +:106210006174696F6E20616C6C2072696768742E9E +:1062200020536B65772077696C6C20626520636F03 +:1062300072726563746564206175746F6D617469F1 +:1062400063616C6C792E0058595A206B616C6962DD +:106250007261746965206D69736C756B742E204270 +:106260006564206B616C6962726174696570756EDA +:1062700074206E696574206765766F6E64656E2E36 +:106280000058595A2D4B616C696272696572756E5E +:1062900067206665686C67657363686C6167656EC7 +:1062A0002E20426574742D4B616C6962726965724F +:1062B00070756E6B74206E696368742067656675AF +:1062C0006E64656E2E004B616C6962722E205859A7 +:1062D0005A206E69657564616E612E204B616C6930 +:1062E00062726163796A6E792070756E6B7420706A +:1062F0006F646B6C61646B69206E69657A6E616C4A +:10630000657A696F6E792E0043616C6962726163B0 +:10631000696F6E2058595A2066616C6C6164612EF9 +:106320002050756E746F732064652063616C6962C0 +:10633000726163696F6E20656E206C612063616DB0 +:1063400061206E6F20656E636F6E747261646F732F +:106350002E0043616C696272617A696F6E652058C4 +:10636000595A2066616C6C6974612E20496C2070EA +:10637000756E746F2064692063616C696272617A02 +:10638000696F6E652073756C206C6574746F206E18 +:106390006F6E20652720737461746F2074726F763E +:1063A00061746F2E004B616C696272616365205885 +:1063B000595A2073656C68616C612E204B616C6961 +:1063C000627261636E6920626F6420706F646C6FCB +:1063D0007A6B79206E656E616C657A656E2E0058F9 +:1063E000595A2063616C6962726174696F6E2066CC +:1063F00061696C65642E204265642063616C69622A +:10640000726174696F6E20706F696E74207761734A +:10641000206E6F7420666F756E642E0058595A2076 +:106420006B616C69627261746965206F6B2E2058B4 +:106430002F592D617373656E20737461616E2070C6 +:10644000657270656E646963756C6169722E204750 +:106450006566656C69636974656572642100585985 +:106460005A2D4B616C696272696572756E67206F37 +:106470006B2E20582F592D41636873656E20736908 +:106480006E642073656E6B7265636874207A7565DF +:10649000696E616E6465722E20476C7565636B77FB +:1064A000756E73636821004B616C69627261636A27 +:1064B000612058595A206F6B2E204F736965205800 +:1064C0002F592073612070726F73746F7061646CE8 +:1064D000652E2047726174756C61636A65210043A3 +:1064E000616C6962726163696F6E2058595A206FDE +:1064F0006B2E20456A657320582F59207065727085 +:10650000656E646963756C617265732E2046656C97 +:10651000696369746163696F6E6573210043616CBF +:10652000696272617A696F6E652058595A204F4BC3 +:106530002E20476C69206173736920582F5920738E +:106540006F6E6F2070657270656E6469636F6C61E9 +:1065500072692E20436F6D706C696D656E74692170 +:10656000004B616C6962726163652058595A2076EC +:1065700020706F7261646B752E20582F59206F73D5 +:1065800079206A736F75206B6F6C6D652E20477272 +:106590006174756C756A69210058595A2063616C81 +:1065A0006962726174696F6E206F6B2E20582F596B +:1065B0002061786573206172652070657270656E08 +:1065C000646963756C61722E20436F6E67726174CB +:1065D000756C6174696F6E73210058595A206B6134 +:1065E0006C69627261746965206D69736C756B7436 +:1065F0002E2052616164706C656567206465206857 +:10660000616E646C656964696E672E0058595A2D15 +:106610004B616C696272696572756E672066656848 +:106620006C67657363686C6167656E2E2042697480 +:106630007465207363686175656E205369652069B0 +:106640006E206461732048616E64627563682E0019 +:106650004B616C69627261636A612058595A206E9D +:106660006965706F776965647A696F6E612E205312 +:1066700070726177647A6963207720696E737472CF +:10668000756B636A692E0043616C6962726163694C +:106690006F6E2058595A2066616C6C6164612E20BF +:1066A000436F6E73756C74617220656C206D616EE2 +:1066B00075616C20706F72206661766F722E004378 +:1066C000616C696272617A696F6E652058595A20EF +:1066D00066616C6C6974612E205369207072656705 +:1066E0006120646920636F6E73756C7461726520DC +:1066F000696C206D616E75616C652E004B616C6913 +:1067000062726163652058595A2073656C68616CC8 +:10671000612E204E61686C65646E65746520646FDF +:10672000206D616E75616C752E0058595A20636139 +:106730006C6962726174696F6E206661696C656410 +:106740002E20506C6561736520636F6E73756C7479 +:1067500020746865206D616E75616C2E0058595A01 +:10676000206B616C69627261746965206D69736C1C +:10677000756B742E204C696E6B73766F6F72206B25 +:10678000616C6962726174696570756E74206E699E +:1067900065742062657265696B626161722E005872 +:1067A000595A2D4B616C696272696572756E67200A +:1067B0006665686C67657363686C6167656E2E20DB +:1067C0004C696E6B657220766F6465726572204BE2 +:1067D000616C69627269657270756E6B74206E6946 +:1067E00063687420657272656963686261722E0005 +:1067F0004B616C6962722E2058595A206E6965751A +:1068000064616E612E204C6577792070727A6564C0 +:106810006E692070756E6B74207A62797420646F73 +:106820002070727A6F64752E205779726F776E615F +:1068300063206472756B61726B652E0043616C69D5 +:1068400062726163696F6E2058595A2066616C6C80 +:1068500061642E2050756E746F2064656C616E7477 +:1068600065726F20697A7175696572646F206E6FE9 +:1068700020616C63616E7A61626C652E0043616CAD +:10688000696272617A696F6E652058595A20666133 +:106890006C6C6974612E2050756E746F20616E741B +:1068A0006572696F72652073696E697374726F20A7 +:1068B0006E6F6E207261676769756E676962696C79 +:1068C000652E004B616C6962726163652058595A8C +:1068D0002073656C68616C612E204C657679207040 +:1068E0007265646E6920626F64206D6F63207670DC +:1068F000726564752E2053726F766E656A746520BA +:106900007469736B61726E752E0058595A206361F9 +:106910006C6962726174696F6E206661696C65642E +:106920002E204C6566742066726F6E742063616CF5 +:106930006962726174696F6E20706F696E74206E27 +:106940006F7420726561636861626C652E005859CE +:106950005A206B616C69627261746965206D69733C +:106960006C756B742E20566F6F727A696A6465203D +:106970006B616C6962726174696570756E74656E65 +:10698000206E6965742062657265696B626161720F +:106990002E0058595A2D4B616C6962726965727587 +:1069A0006E67206665686C67657363686C616765B0 +:1069B0006E2E20566F7264657265204B616C696241 +:1069C0007269657270756E6B7465206E6963687448 +:1069D00020657272656963686261722E004B616C3A +:1069E0006962722E2058595A206E69657564616E0D +:1069F000612E2050727A65642E2070756E6B7479EA +:106A0000206B616C6962722E207A62797420646FE7 +:106A10002070727A6F64752E205779726F776E616D +:106A200063206472756B61726B652E0043616C69E3 +:106A300062726163696F6E2058595A2066616C6C8E +:106A400061642E2050756E746F2064656C616E7485 +:106A500065726F73206E6F20616C63616E7A616224 +:106A60006C65732E0043616C696272617A696F6E46 +:106A7000652058595A2066616C6C6974612E2050EB +:106A8000756E746920616E746572696F7269206ECB +:106A90006F6E207261676769756E676962696C699C +:106AA0002E004B616C6962726163652058595A20EF +:106AB00073656C68616C612E20507265646E69202C +:106AC0006B616C69627261636E6920626F647920C8 +:106AD0006D6F63207670726564752E2053726F76C9 +:106AE0006E656A7465207469736B61726E752E00D1 +:106AF00058595A2063616C6962726174696F6E20C3 +:106B00006661696C65642E2046726F6E74206361E5 +:106B10006C6962726174696F6E20706F696E7473F4 +:106B2000206E6F7420726561636861626C652E000F +:106B3000426564206E6976656C6C6572696E67206B +:106B40006D69736C756B742E53656E736F72206E06 +:106B50006965742061616E6765736C6F74656E2022 +:106B60006F66206B6162656C20676562726F6B6532 +:106B70006E2E5761636874206F7020726573657440 +:106B800000426574742D4E6976656C6C696572752A +:106B90006E67206665686C67657363686C616765BE +:106BA0006E2E2053656E736F72206E696368742059 +:106BB000616E67657363686C6F7373656E206F6475 +:106BC0006572204B6162656C20646566656B742E2E +:106BD0002057617274652061756620526573657413 +:106BE0002E004B616C69627261636A61206E696537 +:106BF0007564616E612E2053656E736F72206F64D1 +:106C00006C61637A6F6E79206C75622075737A6B34 +:106C10006F647A2E206B6162656C2E20437A656BFF +:106C2000616D206E612072657365742E004E697609 +:106C3000656C6163696F6E2066616C6C6164612E66 +:106C40002053656E736F7220646573636F6E656346 +:106C50007461646F206F206361626C65732064618E +:106C60006E61646F732E204573706572616E646F20 +:106C70002072657365742E004C6976656C6C616D6D +:106C8000656E746F206C6574746F2066616C6C69DE +:106C9000746F2E2053656E736F7265206469736321 +:106CA0006F6E2E206F204361766F2044616E6E2ED2 +:106CB00020496E2061747465736120646920726577 +:106CC0007365742E004B616C696272616365205A52 +:106CD0002073656C68616C612E2053656E736F72F2 +:106CE000206A65206F64706F6A656E79206E6562D8 +:106CF0006F20707265727573656E79206B61626565 +:106D00006C2E2043656B616D206E6120726573652A +:106D1000742E00426564206C6576656C696E672030 +:106D20006661696C65642E2053656E736F722064B2 +:106D30006973636F6E6E6563746564206F72206340 +:106D400061626C652062726F6B656E2E205761699F +:106D500074696E6720666F722072657365742E00A9 +:106D6000426564206E6976656C6C6572696E672039 +:106D70006D69736C756B742E2053656E736F722022 +:106D8000776173206E6965742067656163746976E5 +:106D9000656572642E205675696C206F70206E6F69 +:106DA0007A7A6C653F205761636874206F70207237 +:106DB000657365742E00426574742D4E6976656C3A +:106DC0006C696572756E67206665686C676573636C +:106DD000686C6167656E2E2053656E736F722077E5 +:106DE00075726465206E6963687420617573676588 +:106DF0006C6F6573742E205363686D75747A696760 +:106E0000652044756573653F205761727465206124 +:106E100075662052657365742E004B616C696272F1 +:106E200061636A61206E69657564616E612E2053CD +:106E3000656E736F72206E696520646F746B6E612E +:106E40006C2E205A616E6965637A79737A2E20649C +:106E500079737A613F20437A656B616D206E6120A2 +:106E600072657365742E004E6976656C6163696F37 +:106E70006E2066616C6C6164612E2053656E736F69 +:106E800072206E6F2066756E63696F6E612E20458D +:106E900073636F6D62726F7320656E20426F7175E0 +:106EA000692E3F204573706572616E646F20726554 +:106EB0007365742E004C6976656C6C616D656E74DB +:106EC0006F206C6574746F2066616C6C69746F2ED2 +:106ED0004E6F5269737053656E736F722052657393 +:106EE00069647569207375207567656C6C6F3F20E8 +:106EF000496E2061747465736120646920726573E2 +:106F000065742E004B616C696272616365205A2062 +:106F100073656C68616C612E2053656E736F7220AF +:106F20006E657365706E756C2E205A6E656369733D +:106F300074656E6120747279736B613F2043656B79 +:106F4000616D206E612072657365742E0042656408 +:106F5000206C6576656C696E67206661696C656436 +:106F60002E2053656E736F72206469646E74207492 +:106F70007269676765722E20446562726973206F5B +:106F80006E206E6F7A7A6C653F2057616974696E06 +:106F90006720666F722072657365742E00426564A7 +:106FA000206E6976656C6C6572696E67206D6973B9 +:106FB0006C756B742E2045656E2073656E736F72F1 +:106FC00020686565667420746520686F6F67206748 +:106FD0006574726967676572642E205761636874AF +:106FE000206F702072657365742E00426574742D75 +:106FF0004E6976656C6C696572756E67206665684A +:107000006C67657363686C6167656E2E2053656E8F +:10701000736F72207775726465207A7520686F636C +:10702000682061757367656C6F6573742E20576196 +:10703000727465206175662052657365742E004B0D +:10704000616C69627261636A61205A206E6965755C +:1070500064616E612E2053656E736F7220646F746D +:107060006B2E207A61207779736F6B6F2E20437AB5 +:10707000656B616D206E612072657365742E004EC4 +:107080006976656C6163696F6E2066616C6C6164C2 +:10709000612E2053656E736F722066756E63696F23 +:1070A0006E612064656D61736961646F2074656DE4 +:1070B0007072616E6F2E204573706572616E646FC1 +:1070C0002072657365742E004C6976656C6C616D19 +:1070D000656E746F206C6574746F2066616C6C698A +:1070E000746F2E526973702073656E736F726520B2 +:1070F00074726F70706F2070726573746F496E2058 +:107100006174746573612064692072657365742E9F +:10711000004B616C696272616365205A2073656C13 +:1071200068616C612E2053656E736F722073657099 +:107130006E756C207072696C6973207679736F6BF1 +:107140006F2E2043656B616D206E612072657365E3 +:10715000742E00426564206C6576656C696E6720EC +:107160006661696C65642E2053656E736F7220745E +:10717000726967676572656420746F6F20686967FC +:10718000682E2057616974696E6720666F7220727D +:10719000657365742E00426564206F707761726D4F +:1071A000656E0042657474206175666865697A650C +:1071B0006E0047727A616E69652073746F6C696BDB +:1071C000612E2E0043616C656E74616E646F2042A7 +:1071D0006173650052697363616C642E206C657421 +:1071E000746F005A6168726976616E6920626564C5 +:1071F000004265642048656174696E670042656499 +:10720000204F4B2E0042657474204F4B0053746F17 +:107210006C696B204F4B2E00426173652070726564 +:107220007061726164610050696174746F2066619D +:1072300074746F2E00426564204F4B2E00426564CB +:1072400020646F6E6500526563687473202020208F +:107250005B756D5D00526563687473202020205B50 +:10726000756D5D005720707261776F205B756D5D85 +:1072700000446572656368612020205B756D5D0068 +:10728000446573747261202020205B756D5D00562B +:10729000707261766F205B756D5D0052696768740E +:1072A00020736964655B756D5D005A757275656301 +:1072B0006B7365747A656E00526573657400416323 +:1072C00068746572202020205B756D5D0048696ED2 +:1072D00074656E202020205B756D5D00446F207406 +:1072E000796C7520205B756D5D004174726173204F +:1072F000202020205B756D5D00526574726F202028 +:107300002020205B756D5D00567A61647520205BDE +:10731000756D5D00526561722073696465205B75EF +:107320006D5D00426564206A75697374004265741E +:1073300074206C6576656C206B6F7272656B74007F +:107340004B6F72656B746120706F646B6C61646B02 +:107350006900436F72722E206465206C6120636146 +:107360006D6100436F7272657A2E206C69762E6CA7 +:107370006574746F004B6F72656B636520706F642A +:107380006C6F7A6B7900426564206C6576656C2061 +:10739000636F7272656374004C696E6B732020209A +:1073A00020205B756D5D004C696E6B732020202082 +:1073B000205B756D5D0057206C65776F20205B75D5 +:1073C0006D5D00497A71756965726461205B756DE8 +:1073D0005D0053696E697374726120205B756D5D29 +:1073E00000566C65766F20205B756D5D004C6566A0 +:1073F000742073696465205B756D5D00566F6F72F4 +:107400007275697420205B756D5D00566F726E65D4 +:1074100020202020205B756D5D00446F2070727A03 +:107420006F6475205B756D5D004164656C616E74A1 +:107430006520205B756D5D0046726F6E746520205F +:1074400020205B756D5D00567072656475205B75FC +:107450006D5D0046726F6E7420736964655B756D57 +:107460005D00426574740053746F6C696B00426117 +:107470007365004C6574746F004265640041667307 +:1074800074616E642074757373656E207469702006 +:1074900076616E20686574207475697420656E204D +:1074A000686574207072696E74206F707065727692 +:1074B0006C616B206E6F67206E69657420766173F6 +:1074C0007467657374656C642E20566F6C672064F6 +:1074D000652068616E646C656964696E672C20461E +:1074E000697273742073746570732C207365637490 +:1074F0006965204669727374206C617965722063D6 +:10750000616C6962726174696F6E2E0044657220ED +:1075100041627374616E64207A7769736368656E23 +:107520002064657220537069747A652064657220E6 +:10753000447565736520756E6420646572204472BD +:1075400075636B6F626572666C6165636865202F39 +:10755000204265747420697374206E6F6368206EB6 +:10756000696368742065696E67657374656C6C74B3 +:107570002E20426974746520666F6C67656E2053B7 +:1075800069652064656D2048616E64627563682C6E +:107590002046697273742073746570732C20416285 +:1075A0007363686E697474204669727374206C61C9 +:1075B0007965722063616C6962726174696F6E2EA5 +:1075C000004F646C65676C6F7363206479737A79BC +:1075D000206F6420706F646B6C61646B69206E69EE +:1075E00065206A65737420736B616C6962726F7772 +:1075F000616E612E20506F73746570756A207A67B2 +:107600006F646E6965207A20696E737472756B633E +:107610006A6120726F7A647A69616C205A61637A58 +:10762000796E616D792C20706F64726F7A647A69FB +:10763000616C204B616C69627261636A6120706980 +:10764000657277737A656A20776172737477792EC1 +:107650000044697374616E63696120656E7472655C +:10766000206C612070756E7461206465206C6120EF +:10767000626F7175696C6C612079206C6120737523 +:107680007065726669636965206465206C6120635A +:10769000616D61206E6F2066696A61646120617549 +:1076A0006E2E20506F72206661766F72207369674C +:1076B0006120656C206D616E75616C2C206361705A +:1076C0006974756C6F204669727374207374657089 +:1076D000732C2073656363696F6E204669727374DF +:1076E000206C617965722063616C69627261746992 +:1076F0006F6E2E0044697374616E7A6120747261DA +:10770000206C612070756E74612064656C6C2775E7 +:1077100067656C6C6F2065206C6120737570657295 +:1077200066696369652064656C206C6574746F209C +:107730006E6F6E20616E636F726120696D706F7322 +:1077400074612E205369207072656761206469201E +:107750007365677569726520696C206D616E75610E +:107760006C652C2063617069746F6C6F2046697260 +:1077700073742073746570732C2073657A696F6EEF +:1077800065204669727374206C617965722063614B +:107790006C6962726174696F6E2E004E656E69204D +:1077A0007A6B616C6962726F76616E6120767A6461 +:1077B000616C656E6F737420747279736B79206F6E +:1077C00064207469736B6F766520706F646C6F7A78 +:1077D0006B792E20506F73747570756A74652070A4 +:1077E000726F73696D20706F646C65206D616E756A +:1077F000616C752C206B617069746F6C61205A61CB +:1078000063696E616D652C206F6473746176656366 +:10781000204E6173746176656E69207072766E6950 +:10782000207672737476792E0044697374616E6386 +:1078300065206265747765656E20746970206F6677 +:1078400020746865206E6F7A7A6C6520616E6420A2 +:107850007468652062656420737572666163652073 +:10786000686173206E6F74206265656E2073657445 +:10787000207965742E20506C6561736520666F6C8D +:107880006C6F7720746865206D616E75616C2C205B +:1078900063686170746572204669727374207374D2 +:1078A0006570732C2073656374696F6E204669720E +:1078B0007374206C617965722063616C69627261B6 +:1078C00074696F6E2E004C697665205A2061616E76 +:1078D00070617373656E004C697665205A20656926 +:1078E0006E7374656C6C656E00446F7374726F6A4E +:1078F000656E6965206F7379205A004D6963726FF8 +:107900007061736F20456A65205A00436F6D706522 +:107910006E73617A696F6E65205A00446F6C6164A2 +:10792000656E69206F7379205A004C697665206115 +:10793000646A757374205A0041646A757374696E61 +:1079400067205A005374617274706F73697469654B +:10795000005374617274706F736974696F6E004C58 +:107960006C6576617220616C206F726967656E006C +:1079700054726F7661206F726967696E6500417538 +:10798000746F20686F6D6500207C20417574686F8E +:10799000723A2000416C6C6500416C6C6500577355 +:1079A0007A7973746B6F00546F646F7300547574DD +:1079B00074690056736500416C6C004163746976AC +:1079C000652045787472756465723A2000B410A41D +:1079D000108F107C10681053103E10C810D010D8B3 +:1079E00010E110E91005110111FE10FB10F710F461 +:1079F00010F1100911111119117111671158114C61 +:107A0000114111351129118F1267122F12FD11CE5C +:107A100011A4117D11FF12FF12ED12DB12FF12C72C +:107A200012B21281136D135A134713361323131016 +:107A300013FB13EA13D813C713B813A513931379C1 +:107A40001467145514421431141E140B148C14DED4 +:107A500014D814D114C914C014B0149F14081508F4 +:107A60001508150815F614E31408153E153E153EC5 +:107A7000153E152C151A153E15B415A4159415842C +:107A800015731561154F152F161E160D16FC15EAE8 +:107A900015D815C615AB1770173517F916C4167E0D +:107AA00016411662184D18381823180E18F917E9E0 +:107AB00017BA18B218A6189A188E1883187718DCF7 +:107AC00018D418DC18CC18C618DC18DC1840193289 +:107AD00019231911190219F218E418721972196789 +:107AE000196019721955194B197C19F319E519D335 +:107AF00019C419B319A11990196D1A5B1A4C1A3BC4 +:107B00001A281A171A061AD71AC91AB81AA81A99C7 +:107B10001A8C1A7E1A431B361B251B171B0A1BF7D0 +:107B20001AE51AA21B951B891B7B1B6E1B611B543C +:107B30001BAF1B181C0F1C061CFC1BF31BE31BDAE2 +:107B40001B1E1C881C761C641C521C401C2E1C888E +:107B50001CF41CE21CD01CBE1CAC1C9A1CF41C6B3C +:107B60001D5A1D4A1D381D281D141D061DE61DD455 +:107B70001DC01DAE1D9A1D8A1D7A1D421E381E2B6A +:107B80001E1D1E121E041EF71DAF1EA01E8F1E7D81 +:107B90001E6D1E5A1E4B1EFF1EFF1EF01EE01EFF16 +:107BA0001ECE1EBC1E621F531F471F3C1F2F1F21CE +:107BB0001F111F971F971F8B1F971F971F7D1F71E7 +:107BC0001F0920FA1FED1FDB1FC91FB51FA41F25AA +:107BD0002025201E2025201720252025204F204F3E +:107BE000203D202B204F204F204F2096208E208993 +:107BF0002079206F2069206120ED20E320D720C468 +:107C000020B820AC209F20512140212B2117210694 +:107C100021FA205121C621B421A321922180216C77 +:107C2000215A2142222D2218220722F321E321D8B2 +:107C3000219922992287227722992263225322F7BF +:107C400022F722E522D322F722BF22AA222D232DBA +:107C5000231F2313232D2307232D234B234B2341A2 +:107C60002336234B234B234B23C323AE2399238853 +:107C70002373236123532341242F241F240D24FB2A +:107C800023E823D423C024AE249E248C247A2467A2 +:107C90002453243F252D251D250B25F924E624D228 +:107CA00024BC25AA259A258A2578256525512540B5 +:107CB000262E261B260926F725E225CE25BA26A83C +:107CC00026992689267726632652262C271A270CE2 +:107CD000270227F026DE26CC266B276B275C274C55 +:107CE000276B273E276B27AE27AE27A5279C27AEFD +:107CF000278A277827C027D227E527442836282B2C +:107D0000281A280D28FB27ED27512863287728E318 +:107D100028D528C928B728A92895288728F128FE1A +:107D2000280C291A2930293B29B929A82996298301 +:107D3000297229612951292F2A202A102AFB29EA90 +:107D400029D829C829912A862A762A652A592A4EAD +:107D50002A3E2A9E2AC92AB82AC92AC92AA72AC974 +:107D60002AC92AFD2AEC2AFD2AFD2ADB2AFD2AFD42 +:107D70002A252B1A2B252B252B0F2B252B252B9238 +:107D80002B822B722B5F2B4F2B402B312B032CF58F +:107D90002BE52BD12BC22BB02B9F2B332C332C3329 +:107DA0002C332C332C232C112CB62CA12C8D2C7D78 +:107DB0002C6B2C582C482C362D222D122DFD2CEE00 +:107DC0002CDD2CC92C8C2D822D762D6A2D622D5800 +:107DD0002D4A2D942DEA2DDB2DD32DC12DB32DA6AB +:107DE0002D9C2DF62D6B2E5B2E4C2E3B2E2D2E1CFE +:107DF0002E0D2E9B2F752F462F142FE92EAE2E7988 +:107E00002E243010300730F32FEA2FDC2FCE2FAE88 +:107E1000309C308A30773063304E30393021311326 +:107E2000310231F230E330D230C3304D314D314D7B +:107E3000314D314D313F313131853185318531859C +:107E400031853170315B31ED31DD31CE31BD31AF56 +:107E500031A9319A316B35E4345634AA331E338B51 +:107E600032F9310136043648364836363627364838 +:107E70003617360836A83699368E367C366E365F1B +:107E8000365136DB36D436CD36C436BE36B836B388 +:107E9000364F373C372A3716370737F436E236D0B5 +:107EA00037BF37AF379C378A3778376337F037EDCE +:107EB00037F037F037E937E437E037653850384086 +:107EC000382B3816380138F33736391B39F338D8A0 +:107ED00038BB3899387538923987397F3977396B9B +:107EE0003962395639D539CA39C239BA39AE39A5A4 +:107EF000399939183A0D3A053AFD39F139E839DC42 +:107F000039373A373A273A1F3A373A373A373AAA9F +:107F10003C543CE83B853B243BA73A403A7D3F2517 +:107F20003FB73E523EEF3D703D093D264019400EA1 +:107F3000400340FA3FED3FDE3F4240424030404286 +:107F4000404240424042409A409040834077406CDB +:107F5000405F405440CA40C540BF40B940B440AD06 +:107F600040A640F441CB418F4163412F410141D0B4 +:107F700040734264425442454239422E4224427880 +:107F8000428F42A642BD42D642B343CA43E1434078 +:107F9000442D441E4411440544F8434044B044A0D9 +:107FA000448F447D446B445C444D44264513450254 +:107FB00045ED44DC44CD44BE448D457F456E455E71 +:107FC000454E4543453745F145E445D345C145B4A4 +:107FD00045A5459B4534462C4623461B4614460C76 +:107FE0004601467A467A4671465C467A464E463C9B +:107FF0004683460247F246DF46CA46B846A646943E +:1080000046364731472B4725472047194712472F08 +:10801000480B48E447C047934769473C479B488F14 +:10802000488248754869485C484F480249F548E528 +:1080300048D648C848B848A9485B494E49444939D8 +:10804000492E4920491349CA49BC49AA4995498939 +:1080500049774967491F4A154A044AF649EB49E1FD +:1080600049D849274AE44C714CFF4B8B4B164B9D2A +:108070004A364A7A4D734D6C4D664D5D4D524D7A80 +:108080004DEC4DD94DC84DB64DA64D934D7F4D2469 +:108090004E1F4E194E134E0E4E074E004EEB4ECC59 +:1080A0004EA74E844E5D4E434E2A4E524F494F3B93 +:1080B0004F2E4F244F164F0B4F5D4F6F4FF94FE927 +:1080C0004FD44FBA4FA34F934F824F6F505E504ED5 +:1080D000503C502A5019500950D750C850B950A997 +:1080E000509A508C507F50E15009510951FF50F681 +:1080F00050EC5009510951125122519851C251EC82 +:10810000510A523D525C527652B852B152A952B8FD +:1081100052A3529B529552BF52CD52D252DC5218AA +:108120005318530953FF521853F552EB5279536ABF +:108130005359534A5339532D532153C953BA53B248 +:1081400053AB539C5392538A53D1532D5422541200 +:1081500054FF53F353E753DC537954705466545E21 +:1081600054535449544054F655AA5575553D55FE3F +:1081700054BA5482540F57E956C2569A56765654FA +:108180005630563657B357A1578C577B57695754BB +:10819000574657275818580758F757EB57D657C41C +:1081A0005784587A586D585D58535844583758F783 +:1081B00058E558D658C458B458A3589258555949F8 +:1081C000593F5936592A5919590859AE599C59AE2F +:1081D00059AE598A5978596659155A075AFB59EFB9 +:1081E00059E059CF59C059235A345AE85BB45B6AF5 +:1081F0005B235BDA5A8F5A445AC35D885D475D083A +:108200005DC25C7E5C315CEB5FAE5F6C5F175FD71D +:108210005E6F5E085E0662BF6173612C61E260881A +:10822000602E60DF63A56352630863C662816247A4 +:1082300062996561651D65DF64A7645E641C642ADC +:1082400067FC66BF66876650660C66DA650A69C3B6 +:10825000687D683C68F0679F675D67F06AA26A6541 +:108260006A2C6ADD6992694E69136DC56C786C2D54 +:108270006CE26B816B306B4D6F046FB56E676E1A7D +:108280006EB66D606D53711171C8707F703F70EB89 +:108290006F9D6FF171E371D471C471B271A3719666 +:1082A000713D723572277218720D720572FD719BE5 +:1082B000728F7280727172647255724672B872B83F +:1082C00072B872B872B872AA72B87214730873F97D +:1082D00072EA72DC72CD72BE72867375736373520A +:1082E0007340732D732373ED73E173D273C373B64D +:1082F00073A773987353744774387429741A740B82 +:1083000074FC737974797473746E746774627479BD +:108310007429789B77F4765176C1750C757D742A33 +:10832000791B790B79FB78E978D778C67838797E2C +:10833000797E7970795F797E79517944798879B7D6 +:1083400079B379AD79A7799E7999799479BB794593 +:108350007872656D65207370616E206F6620746839 +:1083600065205A2076616C7565732100626F7474A4 +:108370006F6D00746F700000506F696E74206865D7 +:108380006967687420746F6F20736D616C6C3A203C +:10839000007269676874006C6566740000506F69EC +:1083A0006E7420776964746820746F6F20736D61D8 +:1083B0006C6C3A2000002C20003A200046696E6167 +:1083C0006C2063616C63756C6174656420626564C4 +:1083D00020706F696E74200000793A000044697360 +:1083E00074616E63652066726F6D206D696E3A0010 +:1083F0000043616C63756C6174696F6E206F6620F9 +:10840000746865206D616368696E6520736B65775C +:1084100020616E64206F6666736574206661696CA6 +:1084200065642E00002C20003A200046696E616CC5 +:10843000206D656173757265642062656420706F7C +:10844000696E74200000206661696C65642E204CA2 +:108450006F776572696E67207A20746F20002C2018 +:10846000697465726174696F6E2000496D70726F16 +:1084700076696E672062656420706F696E74200093 +:10848000002C207A002C20697465726174696F6E0B +:108490002000496D70726F76696E67206265642096 +:1084A000706F696E742000006C6F7765722074685D +:1084B000616E20596D696E2E205920636F6F726452 +:1084C000696E61746520636C616D70696E67207799 +:1084D000617320757365642E0043616C696272611B +:1084E00074696F6E20706F696E742000417420593A +:1084F0005F4D494E5F504F53004174205930004941 +:108500006D70726F76696E6720626564206F666653 +:1085100073657420616E6420736B657700002C2096 +:10852000002C200020004D65617375726564200089 +:10853000002C200041646A757374656420706F7349 +:108540006974696F6E3A2000002C20683A002C2074 +:10855000646D61783A005061727469616C20706F6B +:10856000696E7420657374696D61746564207261ED +:108570006469757320746F6F20736D616C6C3A2041 +:1085800000005061727469616C20706F696E7420B4 +:108590006469616D6574657220746F6F20736D61BD +:1085A0006C6C3A2000746F70007269676874006CBC +:1085B000656674007269676874006C65667400743F +:1085C0006F70006661696C6564202D206E6F742089 +:1085D000666F756E640A007269676874006C656620 +:1085E0007400002C2000496E697469616C20706F02 +:1085F000736974696F6E3A200066696E6420626503 +:108600006420696E64756374696F6E2073656E7340 +:108610006F7220706F696E74207A005920736561E3 +:10862000726368696E672072616469757320686936 +:1086300067686572207468616E20585F4D41582EDE +:1086400020436C616D70696E672077617320646F81 +:108650006E652E005920736561726368696E6720CC +:10866000726164697573206C6F77657220746861DC +:108670006E20595F4D494E2E20436C616D70696EBE +:10868000672077617320646F6E652E0058207365D4 +:1086900061726368696E67207261646975732068CE +:1086A0006967686572207468616E20585F4D415833 +:1086B0002E20436C616D70696E6720776173206452 +:1086C0006F6E652E005820736561726368696E670E +:1086D00020726164697573206C6F776572207468AD +:1086E000616E20585F4D494E2E20436C616D70695C +:1086F0006E672077617320646F6E652E005361761C +:10870000696E67206265642063616C69627261747E +:10871000696F6E20766563746F727320746F204585 +:108720004550524F4D0050657270656E64696375B7 +:108730006C6172697479005A65726F20706F696E2E +:108740007420636F7272656374696F6E3A005920AA +:10875000766563746F72206C656E6774683A005852 +:1087600020766563746F72206C656E6774683A007A +:10877000203C20005741524E494E473A2046726FE6 +:108780006E7420706F696E74206E6F7420726561F4 +:10879000636861626C652E205920636F6F72646933 +:1087A0006E6174653A000070745B315D3A007074FC +:1087B0005B305D3A00004D656173757265643A0027 +:1087C0000063757272656E745F706F736974696F40 +:1087D0006E5B5A5F415849535D3A0000637572728F +:1087E000656E745F706F736974696F6E5B595F411A +:1087F0005849535D3A000063757272656E745F701C +:108800006F736974696F6E5B585F415849535D3A85 +:1088100000417420592D3400417420593000006308 +:108820006E74725B315D3A0000636E74725B305D32 +:108830003A00007665635F795B315D3A00007665EA +:10884000635F795B305D3A00007665635F785B312A +:108850005D3A00007665635F785B305D3A0056658F +:1088600063746F72733A2000497465726174696F42 +:108870006E3A2000496E76616C69642062656420FE +:10888000636F7272656374696F6E206D6174726973 +:10889000782E20526573657474696E6720746F203A +:1088A0006964656E746974792E00496E76616C69CD +:1088B000642062656420636F7272656374696F6EB1 +:1088C000206D61747269782E20582F592061786567 +:1088D0007320617265206661722066726F6D20621E +:1088E00065696E672070657270656E646963756C2A +:1088F00061722E00496E76616C6964206265642045 +:10890000636F7272656374696F6E206D61747269F2 +:10891000782E205368696674206F7574206F662006 +:1089200072616E67652E005A65726F20706F696E96 +:108930007420636F7272656374696F6E3A00496E7A +:1089400076616C69642062656420636F727265632E +:1089500074696F6E206D61747269782E204C656E3B +:10896000677468206F662074686520592076656397 +:10897000746F72206F7574206F662072616E676508 +:108980002E005920766563746F72206C656E677473 +:10899000683A00496E76616C6964206265642063A0 +:1089A0006F7272656374696F6E206D61747269783D +:1089B0002E204C656E677468206F66207468652091 +:1089C0005820766563746F72206F7574206F66200F +:1089D00072616E67652E005820766563746F722031 +:1089E0006C656E6774683A00556E646566696E659D +:1089F000642062656420636F7272656374696F6E70 +:108A0000206D61747269782E00000043616C63759B +:108A10006C617465206F666673657420616E642096 +:108A2000736B65772072657475726E696E672072FC +:108A30006573756C743A000000292C206572726FA2 +:108A4000723A20002C2000293B2074617267657403 +:108A50003A2028002C2000293B206D656173757237 +:108A600065642D636F727265637465643A202800D3 +:108A70002C20006D656173757265643A2028007062 +:108A80006F696E74202300446966666572656E6363 +:108A90006520616674657220636F727265637469C4 +:108AA0006F6E3A2000002C200063656E7465722C96 +:108AB0002061646A75737465643A2000002C20009C +:108AC0005920766563746F722C2061646A757374C3 +:108AD00065643A2000002C20005820766563746F8E +:108AE000722C2061646A75737465643A20000063B7 +:108AF0006E74725B315D3A0000636E74725B305D60 +:108B00003A0046696E616C20636E74722076616C07 +:108B10007565733A0000000077793A0000636E745F +:108B2000725B315D3A00005765696768745F793A36 +:108B3000000077783A0000636E74725B305D3A0033 +:108B4000005765696768745F783A00005665727906 +:108B5000206C6974746C6520736B65772064657430 +:108B600065637465642E204F7274686F676F6E6101 +:108B70006C697A696E672074686520617865732E08 +:108B800000004D61782E206572726F7220657563EA +:108B90006C696469616E3A004D61782E206572726D +:108BA0006F7220593A004D61782E206572726F7293 +:108BB00020583A004D61782E206572726F72733AB8 +:108BC0000000002C206572726F7220593A20002C30 +:108BD000206572726F7220583A20006572726F724F +:108BE0003A200029002C2000293B2074617267651F +:108BF000743A2028002C2000293B20636F72726594 +:108C0000637465643A2028002C20006D65617375DB +:108C10007265643A202800002C206572726F722001 +:108C20003E206D61782E206572726F7220657563CB +:108C30006C696469616E00506F696E74206E6F7448 +:108C4000206F6E20666972737420726F77002C201B +:108C50006572726F722059203E206D61782E2065FA +:108C600072726F722059002C206572726F722058D8 +:108C7000203E206D61782E206572726F7220580040 +:108C80002C2077656967746820593A2000506F6915 +:108C90006E74206F6E20666972737420726F770035 +:108CA0003A00706F696E742023004572726F7220F3 +:108CB000616674657220636F7272656374696F6E4A +:108CC0003A2000002C200063656E746572206E658A +:108CD000772C20696E7665727465643A2000002CEA +:108CE00020005920766563746F72206E65772C20A2 +:108CF000696E7665727465643A2000002C20005815 +:108D000020766563746F72206E65772C20696E76AD +:108D100065727465643A2000002C2000636F7272E3 +:108D2000656374696F6E20616E676C65733A2000CD +:108D3000002C2000636F7272656374656420616E3D +:108D4000676C65733A2000002C2000636F727265B7 +:108D50006374656420782F793A2000002C20002C61 +:108D600020002C20003B20636F7272656374696F72 +:108D70006E20766563746F723A2000697465726163 +:108D800074696F6E3A200000292C206572726F7230 +:108D90003A20002C2000293B207461726765743AE8 +:108DA0002028002C2000206D656173757265643A7F +:108DB000202800706F696E74202300002C2000634F +:108DC000656E7465722C20696E697469616C3A20F5 +:108DD00000002C20005920766563746F722C206986 +:108DE0006E697469616C3A2000002C20005820766E +:108DF0006563746F722C20696E697469616C3A20C6 +:108E00000063616C63756C617465206D6163686992 +:108E10006E6520736B657720616E64206F66667384 +:108E20006574204C53000000E442FCFFFFBF0000CB +:108E300057430000C0420000E442000042430000EB +:108E400040410000C04200004041FCFFFFBF000065 +:108E5000E442FCFFFFBF00005743FCFFFFBF0000E0 +:108E600057430000C0420000E4420000C04200003E +:108E700040410000C0420000404100004243000069 +:108E8000E4420000424300005743000042434530A3 +:108E90003A20005A3A2000593A2000583A20004D12 +:108EA00053312C4D53322050696E730A005A002002 +:108EB0005A3A00590020593A00580020583A0024E4 +:108EC000F4D43050C38E20C2A24017828B7011128E +:108ED0007A910D816CD90AA861E108C758660761CB +:108EE0005143061E4B5D05C145A7041A41110409F3 +:108EF0003D9803713931034036DB0265339102D46A +:108F0000305402802E1D02632CEE01752AC501B07B +:108F100028A001102781018F2564012B244B01E03B +:108F2000223401AC211F018D200D01801FFC008423 +:108F30001EED00971DDF00B81CD200E61BC6002006 +:108F40001BBC00641AB200B219A8000A19A0006A7A +:108F5000189900D117910040178B00B51684003185 +:108F6000167E00B31579003A157300C7146F0058C8 +:108F7000146A00EE1366008813630025135E00C7B1 +:108F8000125B006C12570015125400C11151007091 +:108F9000114F0021114B00D61049008D104700469B +:108FA00010440002104200C00F4000800F3E0042FB +:108FB0000F3C00060F3B00CB0E3800930E37005CD1 +:108FC0000E3500270E3400F30D3200C10D31009034 +:108FD0000D3000600D2E00320D2D00050D2C00D936 +:108FE0000C2B00AE0C2900850C29005C0C270035E9 +:108FF0000C27000E0C2600E80B2400C40B2400A054 +:109000000B23007D0B23005A0B2100390B21001884 +:109010000B2000F80A1F00D90A1E00BB0A1E009D83 +:109020000A1D00800A1D00630A1C00470A1B002C51 +:109030000A1B00110A1A00F7091A00DD091900C4F9 +:10904000091900AB091900920917007B0918006380 +:109050000917004C09160036091600200916000AE7 +:10906000091500F5081500E0081400CC081400B834 +:10907000081400A4081400900813007D0812006B67 +:109080000813005808120046081200340811002383 +:109090000811001208110001081100F0071000E08B +:1090A000071000D0071000C0071000B0070F00A184 +:1090B00007100091070E0083070F0074070F00656B +:1090C000070E0057070E0049070E003B070D002E44 +:1090D000070E0020070D0013070D0006070D00F90D +:1090E000060C00ED060D00E0060C00D4060C00C8CE +:1090F000060C00BC060C00B0060C00A4060B009980 +:10910000060C008D060B0082060B0077060B006C28 +:10911000060B0061060A0057060B004C060A0042C7 +:10912000060A0038060A002E060A0024060A001A5B +:10913000060A001006090007060A00FD050900F4EA +:10914000050900EB050900E2050900D9050900D071 +:10915000050900C7050900BE050900B5050800ADF1 +:10916000050800A50509009C050800940508008C69 +:10917000050800840508007C050800740508006CDB +:10918000050700650508005D050700560508004E47 +:1091900005070047050700400508003805070031AE +:1091A0000507002A050700230507001C0506001611 +:1091B0000507000F0507000805060002050700FB6C +:1091C000040600F5040700EE040600E8040600E2C9 +:1091D000040700DB040600D5040600CF040600C91E +:1091E000040600C3040600BD040600B7040600B16F +:1091F000040500AC040600A6040600A00405009BBC +:1092000004060095040500900406008A0405008504 +:10921000040500800406007A04050075040500704A +:109220000405006B04050066040500610405005C8C +:1092300004050057040500520405004D04050048CC +:10924000040500430405003E0404003A040500350B +:10925000040500300404002C040500270404002346 +:109260000405001E0404001A04040016040500117D +:109270000404000D040400090405000404040000B3 +:10928000040400FC030400F8030400F4030400F0E9 +:10929000030400EC030400E8030400E4030400E01A +:1092A000030400DC030400D8030400D4030400D04A +:1092B000030400CC030400C8030300C50303002417 +:1092C000F404D9201BC40C5C0E9804C4095F026529 +:1092D000077101F405F900FB04B30048048700C1DD +:1092E0000369005803550003034500BE023A008499 +:1092F00002310053022A002902250004022000E462 +:10930000011C00C8011900AF011700980114008466 +:10931000011300710110006101100051010E0043A2 +:10932000010D0036010B002B010B0020010B001575 +:109330000109000C01090003010800FB000800F30B +:10934000000800EB000700E4000600DE000600D87D +:10935000000600D2000600CC000500C7000500C2D0 +:10936000000500BD000400B9000400B5000400B110 +:10937000000400AD000400A9000400A5000300A241 +:109380000003009F0004009B000300980003009569 +:1093900000020093000300900003008D0002008B88 +:1093A00000030088000200860002008400030081A0 +:1093B0000002007F0002007D0002007B00020079B5 +:1093C00000020077000100760002007400020072C3 +:1093D000000100710002006F0002006D0001006CCE +:1093E0000002006A000100690002006700010066D7 +:1093F00000010065000100640002006200010061DC +:10940000000100600001005F0002005D0001005CDF +:109410000001005B0001005A0001005900010058E2 +:1094200000010057000100560001005500010054E2 +:1094300000010053000000530001005200010051E0 +:10944000000100500001004F0001004E0000004EDE +:109450000001004D0001004C0001004B0000004BDA +:109460000001004A000100490001004800000048D6 +:1094700000010047000100460000004600010045D1 +:1094800000000045000100440001004300000043CB +:1094900000010042000000420001004100000041C4 +:1094A000000100400001003F0000003F0001003EBD +:1094B0000000003E0001003D0000003D0001003CB6 +:1094C0000000003C0000003C0001003B0000003BAD +:1094D0000001003A0000003A0001003900000039A4 +:1094E000000100380000003800000038000100379B +:1094F0000000003700010036000000360000003692 +:109500000001003500000035000000350001003486 +:10951000000000340000003400010033000000337C +:109520000000003300010032000000320000003271 +:109530000001003100000031000000310001003066 +:1095400000000030000000300001002F0000002F5C +:109550000000002F0000002F0001002E0000002E50 +:109560000000002E0001002D0000002D0000002D45 +:109570000000002D0001002C0000002C0000002C39 +:109580000000002C0001002B0000002B0000002B2D +:109590000000002B0001002A0000002A0000002A21 +:1095A0000000002A00010029000000290000002915 +:1095B0000000002900000029000100280000002808 +:1095C00000000028000000280000002800010027FB +:1095D00000000027000000270000002700000027EF +:1095E00000010026000000260000002600000026E2 +:1095F00000000026000100250000002500000025D5 +:1096000000000025000000250000002500010024C6 +:1096100000000024000000240000002400000024BA +:1096200000010023000000230000002300000023AD +:10963000000000230000002300000023000100229E +:109640000000002200000022000000220000002292 +:109650000000002200010021000000210000002184 +:109660000000002100000021000000210000002176 +:109670000001002000000020000000200000002069 +:10968000000000200000002000000020000000205A +:109690000001001F0000001F0000001F0000001F4D +:1096A0000000001F0000001F0000001F0001001E3E +:1096B0000000001E0000001E0000001E000000450B +:1096C00072723A204D494E54454D50204245440057 +:1096D00054656D706572617475726520686561743A +:1096E00065642062656420737769746368656420CB +:1096F0006F66662E204D494E54454D502074726958 +:109700006767657265642021004572723A204D4199 +:109710005854454D50204245440054656D70657263 +:109720006174757265206865617465642062656442 +:10973000207377697463686564206F66662E204DB8 +:10974000415854454D50207472696767657265646D +:109750002021004572723A204D494E54454D50002B +:109760003A20457874727564657220737769746302 +:10977000686564206F66662E204D494E54454D50F5 +:109780002074726967676572656420210045727292 +:109790003A204D415854454D50003A204578747256 +:1097A00075646572207377697463686564206F6699 +:1097B000662E204D415854454D502074726967679C +:1097C0006572656420210020484F54454E44205462 +:1097D0004845524D414C2052554E41574159002069 +:1097E0004845415442454420544845524D414C203F +:1097F00052554E4157415900544845524D414C2015 +:1098000052554E4157415900424544205448455213 +:109810004D414C2052554E41574159002054484526 +:10982000524D414C2052554E41574159202820500D +:1098300052454845415420484F54454E4429002044 +:10984000544845524D414C2052554E4157415920A4 +:1098500028205052454845415420484541544245EE +:1098600044290050524548454154204552524F52D8 +:1098700000424544205052454845415420455252EB +:109880004F5200202D20496E76616C696420657806 +:10989000747275646572206E756D62657220210048 +:1098A000504944204175746F74756E652066696E09 +:1098B0006973686564212050757420746865206C34 +:1098C000617374204B702C204B6920616E64204BB7 +:1098D0006420636F6E7374616E74732066726F6D53 +:1098E0002061626F766520696E746F20436F6E66CB +:1098F000696775726174696F6E2E68005049442003 +:109900004175746F74756E65206661696C6564215C +:109910002074696D656F75740020403A006F6B208C +:10992000543A006F6B20423A00504944204175740C +:109930006F74756E65206661696C6564212054657D +:109940006D706572617475726520746F6F206869DF +:10995000676800204B643A2000204B693A200020C1 +:109960004B703A200020436C617373696320504947 +:109970004420002054753A2000204B753A200020E6 +:109980006D61783A2000206D696E3A200020643ABB +:10999000200020626961733A20001000C9021001A2 +:1099A0002C014001220170011801B0010E01F001EB +:1099B00004015002FA00B002F0003003E600D003C8 +:1099C000DC009004D2007005C800A006BE000008AC +:1099D000B400B009AA00D00BA000600E9600601180 +:1099E0008C000015820020197800C01D6E00A02296 +:1099F0006400B0275A00902C500000314600E0343B +:109A00003C0010383200903A2800603C1E00A03D17 +:109A10001400803E0A00203F000070012C019001DC +:109A20002701B0012201C0011D01F001180110023F +:109A3000130130020E016002090190020401C0020C +:109A4000FF000003FA004003F5008003F000D0039C +:109A5000EB002004E6007004E100E004DC004005B7 +:109A6000D700C005D2004006CD00D006C800800750 +:109A7000C3003008BE00F008B900C009B400B00A45 +:109A8000AF00B00BAA00D00CA500000EA000500F34 +:109A90009B00C01096005012910000148C00C0155D +:109AA0008700B0178200B0197D00D01B7800001E1F +:109AB000730040206E0090226900F024640040276B +:109AC0005F0090295A00E02B5500102E50002030E6 +:109AD0004B0010324600E033410090353C00103717 +:109AE000370070383200A0392D00B03A2800A03B72 +:109AF0002300603C1E00103D1900903D1400103EF4 +:109B00000F00703E0A00C03E0500003F0000436F9A +:109B10006E74696E7565207769746820616E6F7404 +:109B200068657220626F7764656E3F004737360064 +:109B30004D3435205A004D34350047383000200070 +:109B40003E003E0020003E003E00005365766572F8 +:109B50006520736B65773A0000536C696768742001 +:109B6000736B65773A002D2D2D2D2D2D2D2D2D2D3F +:109B70002D2D2D2D2D2D2D2D2D2D004E2F41004D18 +:109B80006561737572656420736B65773A20004E6A +:109B90002F41006D6D000052696768743A0043659B +:109BA0006E7465723A004C6566743A0059206469B7 +:109BB0007374616E63652066726F6D206D696E3AB5 +:109BC000004D373031004D373032004D35303000E8 +:109BD0004D353030004731205A313520463135304F +:109BE000300047393100473120583530205931395C +:109BF0003020453020463730303000473930004D76 +:109C0000373032004D3730322043004D373032206C +:109C100055004D373032004731205A31352046311A +:109C20003530300047393100473120583530205920 +:109C3000313930204530204637303030004D383310 +:109C400000473930004D3834004D31303420533026 +:109C500000473930004731204531004D3832004D42 +:109C60003833004D31303620532564004D323230C8 +:109C700020532564003A200020202020202020208E +:109C8000202020202020202020202000203A2000FA +:109C900020202020202020202020202020202020C4 +:109CA00020202020002020202020202020202020D4 +:109CB0002020002573002020002D2D3A2D2D00207E +:109CC00000200020004C002020002046002D2D2DDB +:109CD000003E555342005344002D2D0025202020E6 +:109CE0002020002020002020000120002020202D06 +:109CF0002D2D200020205A002020000120004D366C +:109D0000303000464C4558202D20203233302F353E +:109D1000300050502020202D20203235342F31307B +:109D2000300048495053202D20203232302F31301E +:109D3000300050455420202D20203234302F39302F +:109D40000041425320202D20203235352F31303034 +:109D500000504C4120202D20203231352F35350048 +:109D60004D3234004D323320257300052E2E00581D +:109D70000059005A0045787472756465720047395D +:109D8000390044697361626C65206661726D206D93 +:109D90006F64653F0044697361626C65206661723F +:109DA0006D206D6F6465004661726D206E756D6229 +:109DB0006572004D3834004D3834004731205A3137 +:109DC00035004732382057005A30005A3100593098 +:109DD00000593100583000583100456E64207374CA +:109DE0006F70732064696167004D34340047323806 +:109DF00020570058595A2063616C2E2064657461A5 +:109E0000696C73002D2D2D2D2D2D2D2D2D2D2D2DEE +:109E100000466C6173684169722049502041646456 +:109E2000723A002D2D2D2D2D2D2D2D2D2D2D2D006A +:109E300033442D677573736E65722C20546573748B +:109E4000004A756C2020362032303137004461746E +:109E5000653A20002D2D2D2D2D2D2D2D2D2D2D2D27 +:109E600000453344763666756C6C0052414D426F46 +:109E700031336100315F37356D6D5F4D4B32002DF1 +:109E80002D2D2D2D2D2D2D2D2D2D2D004657202DF9 +:109E900020332E302E31322D524332004669726DFE +:109EA00077617265202D20332E302E31322D5243B2 +:109EB000320025642E25642E25642E25640046611B +:109EC000726D206E756D62657200706F7369746972 +:109ED0006F6E00726573746F72650000726300626A +:109EE00065746100616C7068610064657600505251 +:109EF0005553413344465700332E302E31322D52C4 +:109F000043320000000A0B02090C0D0E080703047F +:109F10000100000000000000000000000000000040 +:109F2000000000000000000000000000000000121F +:109F30001110000000000000000000000000000000 +:109F40000000000000000000000000000000000011 +:109F5000000000000000000000010210202008089E +:109F6000102040102040800201020108040201017B +:109F70000204081020408080402010080402018064 +:109F800004020180402010080402010804020101BB +:109F900002040810204080010204081020408010B4 +:109FA00008040880102040044080102040048005F0 +:109FB000050505070508080808020202020A0A0842 +:109FC0000804040404010101010101010103030368 +:109FD0000303030303040707070C0C0C0C0C0C0C05 +:109FE0000C0202020206060606060606060B0B0B0C +:109FF0000B0B0B0B0B07070A0A0A0A0A0A050505D1 +:10A000000404040808000020002300260029002C76 +:10A01000002F0032000001000003010601090100C9 +:10A02000002200250028002B002E00310034000201 +:10A03000010000050108010B010000210024002798 +:10A04000002A002D00300033000101000004010748 +:10A05000010A01024E414E494E495459494E46CDDE +:10A06000CCCC3D0AD7233C17B7D13877CC2B3295CF +:10A0700095E6241FB14F0A000020410000C84200AD +:10A08000401C4620BCBE4CCA1B0E5AAEC59D740077 +:10A0900072B5A40172014A01ADB511241FBECFEF04 +:10A0A000D1E2DEBFCDBF00E00CBF16E0A0E0B2E021 +:10A0B000EAECF8E903E00BBF02C007900D92A03F65 +:10A0C000B107D9F728E1A0EFB6E001C01D92AD3786 +:10A0D000B207E1F710EAC8E9D0EA00E006C022972B +:10A0E0000109FE010BBF0F9456C5C039D10780E0AE +:10A0F0000807A9F70F940BBF0D9454CC0C940000E3 +:10A10000EF92FF920F931F93CF93DF931F92CDB7E0 +:10A11000DEB78C017B01460FF70161917F01F801E9 +:10A120008081918149830F948DCBF8018081918149 +:10A1300001969183808349814E11EECF0F90DF917C +:10A14000CF911F910F91FF90EF900895EF92FF92A2 +:10A150000F931F93CF93DF931F92CDB7DEB78C0180 +:10A160007B01460FF8018081918149830F945DCB7B +:10A17000F70181937F01F80180819181019691839C +:10A18000808349814E11EECF0F90DF91CF911F91C7 +:10A190000F91FF90EF9008950F931F93CF93DF934C +:10A1A000CDB7DEB72C970FB6F894DEBF0FBECDBF8C +:10A1B00080E390E3A0E3B0E08D839E83AF83B88714 +:10A1C00004E110E01C870B8744E0BE016B5F7F4F0A +:10A1D000CE010B9695DF40E16EE276E1CE010B9663 +:10A1E0008FDF40E16EE376E1CE010B9689DF40E13F +:10A1F0006EE176E1CE010B9683DF44E066E176E125 +:10A20000CE010B967DDF44E062E176E1CE010B9654 +:10A2100077DF44E06AE176E1CE010B9671DF44E03E +:10A220006EEF75E1CE010B966BDF44E06EE476E1F4 +:10A23000CE010B9665DF44E062E076E1CE010B963D +:10A240005FDF44E066E076E1CE010B9659DF44E043 +:10A250006AE076E1CE010B9653DF44E06EE076E1F2 +:10A26000CE010B964DDF4CE064E17AE0CE010B9617 +:10A2700047DF44E06DE07AE0CE010B9641DF44E039 +:10A2800066E972E0CE010B963BDF44E062E972E0E2 +:10A29000CE010B9635DF44E06EE872E0CE010B96FE +:10A2A0002FDF44E066E872E0CE010B9629DF44E040 +:10A2B00062E872E0CE010B9623DF44E06EE772E0C5 +:10A2C000CE010B961DDF80E290E09A87898742E0FD +:10A2D000BE01675F7F4FCE010B9612DF41E069E060 +:10A2E0007AE0CE010B960CDF44E06DE172E0CE0126 +:10A2F0000B9606DF44E065E172E0CE010B9600DFCD +:10A3000044E064E07AE0CE010B96FADE44E060E0DF +:10A310007AE0CE010B96F4DE44E061E172E0CE011A +:10A320000B96EEDE41E060E37AE0CE010B96E8DECC +:10A3300044E06DE372E0CE010B96E2DE86E591E348 +:10A34000A0E0B0E089839A83AB83BC831C870B8732 +:10A3500044E0BE016F5F7F4FCE010B96D1DEECE390 +:10A36000FDE08491882341F09091C00095FFFCCFDF +:10A370008093C6003196F5CFE7EFF6E0849188230D +:10A3800041F09091C00095FFFCCF8093C6003196BC +:10A39000F5CF8091C00085FFFCCF8AE08093C60096 +:10A3A0002C960FB6F894DEBF0FBECDBFDF91CF91D4 +:10A3B0001F910F910895CF93DF93CCE3DDE0FE0171 +:10A3C0008491882341F09091C00095FFFCCF809349 +:10A3D000C6003196F5CFE7EEF6E08491882341F090 +:10A3E0009091C00095FFFCCF8093C6003196F5CFC9 +:10A3F0008091C00085FFFCCF8AE08093C600FE01FB +:10A400008491ECE3FDE0882349F09091C00095FF32 +:10A41000FCCF8093C60031968491F5CF40912E16E3 +:10A4200050912F1660913016709131168FED96E095 +:10A430000E94C862409132165091331660913416D2 +:10A44000709135168CED96E00E94C86240913616E8 +:10A4500050913716609138167091391689ED96E053 +:10A460000E94C86240913A1650913B1660913C168A +:10A4700070913D1686ED96E00E94C8628091C00002 +:10A4800085FFFCCF8AE08093C600FE018491ECE357 +:10A49000FDE0882349F09091C00095FFFCCF8093A8 +:10A4A000C60031968491F5CFECEBF6E084918823D9 +:10A4B00041F09091C00095FFFCCF8093C60031968B +:10A4C000F5CF8091C00085FFFCCF8AE08093C60065 +:10A4D000FE018491ECE3FDE0882349F09091C000F7 +:10A4E00095FFFCCF8093C60031968491F5CF4091C3 +:10A4F0003E1650913F16609140167091411683EBC5 +:10A5000096E00E94C86240914216509143166091B5 +:10A5100044167091451680EB96E00E94C862409107 +:10A5200046165091471660914816709149168DEA6B +:10A5300096E00E94C86240914A1650914B16609175 +:10A540004C1670914D168AEA96E00E94C86280917E +:10A55000C00085FFFCCF8AE08093C600FE01849195 +:10A56000ECE3FDE0882349F09091C00095FFFCCF1B +:10A570008093C60031968491F5CFECE8F6E08491A3 +:10A58000882341F09091C00095FFFCCF8093C600D6 +:10A590003196F5CF8091C00085FFFCCF8AE0809393 +:10A5A000C600FE018491ECE3FDE0882349F0909120 +:10A5B000C00095FFFCCF8093C60031968491F5CF03 +:10A5C00040911E1650911F16609120167091211611 +:10A5D00083E896E00E94D96240912216509123169A +:10A5E000609124167091251680E896E00E94D96249 +:10A5F00040912616509127166091281670912916C1 +:10A600008DE796E00E94D96240912A1650912B1650 +:10A6100060912C1670912D168AE796E00E94D962FF +:10A620008091C00085FFFCCF8AE08093C600FE01C8 +:10A630008491ECE3FDE0882349F09091C00095FF00 +:10A64000FCCF8093C60031968491F5CFE5E4F6E027 +:10A650008491882341F09091C00095FFFCCF8093B6 +:10A66000C6003196F5CF8091C00085FFFCCF8AE00F +:10A670008093C600FE018491ECE3FDE0882349F05D +:10A680009091C00095FFFCCF8093C60031968491D5 +:10A69000F5CF4091161650911716609118167091CB +:10A6A00019168CE396E00E94C862409112165091F0 +:10A6B0001316609114167091151689E396E00E94A6 +:10A6C000C8628091C00085FFFCCF8AE08093C600FD +:10A6D000FE018491ECE3FDE0882349F09091C000F5 +:10A6E00095FFFCCF8093C60031968491F5CFE6E8C4 +:10A6F000F5E08491882341F09091C00095FFFCCF54 +:10A700008093C6003196F5CF8091C00085FFFCCFC5 +:10A710008AE08093C600FE018491ECE3FDE088238B +:10A7200049F09091C00095FFFCCF8093C600319610 +:10A730008491F5CF40911A1650911B1660911C160A +:10A7400070911D168DE795E00E94C8624091FE153C +:10A750005091FF1560910016709101168AE795E0FF +:10A760000E94C86240914E1650914F16609150164B +:10A770007091511687E795E00E94D96240910216C8 +:10A7800050910316609104167091051684E795E0C8 +:10A790000E94C862409106165091071660910816F3 +:10A7A0007091091681E795E00E94C86240910A16EF +:10A7B00050910B1660910C1670910D168EE695E077 +:10A7C0000E94C86240910E1650910F1660911016AB +:10A7D000709111168BE695E00E94C8628091C000CE +:10A7E00085FFFCCF8AE08093C600FE018491ECE3F4 +:10A7F000FDE0882349F09091C00095FFFCCF809345 +:10A80000C60031968491F5CFE9E5F5E0849188237F +:10A8100041F09091C00095FFFCCF8093C600319627 +:10A82000F5CF8091C00085FFFCCF8AE08093C60001 +:10A83000FE018491ECE3FDE0882349F09091C00093 +:10A8400095FFFCCF8093C60031968491F5CF40915F +:10A85000140A5091150A6091160A7091170A80E542 +:10A8600095E00E94C8624091180A5091190A6091BF +:10A870001A0A70911B0A8DE495E00E94C86240910B +:10A880001C0A50911D0A60911E0A70911F0A8AE4E9 +:10A8900095E00E94C8628091C00085FFFCCF8AE0ED +:10A8A0008093C600FE018491ECE3FDE0882349F02B +:10A8B0009091C00095FFFCCF8093C60031968491A3 +:10A8C000F5CFECE3F5E08491882341F09091C0004E +:10A8D00095FFFCCF8093C6003196F5CF8091C000E4 +:10A8E00085FFFCCF8AE08093C600FE018491ECE3F3 +:10A8F000FDE0882349F09091C00095FFFCCF809344 +:10A90000C60031968491F5CF4091960250919702FE +:10A91000609198027091990282E395E00E94C8626A +:10A9200060919202709193028091940290919502AD +:10A930000F943053AB01BC018FE295E00E94C862D6 +:10A9400060918E0270918F0280919002909191029D +:10A950000F943C53AB01BC018CE295E00E94C862AD +:10A960008091C00085FFFCCF8AE08093C600FE0185 +:10A970008491ECE3FDE0882349F09091C00095FFBD +:10A98000FCCF8093C60031968491F5CFE6E1F5E0E7 +:10A990008491882341F09091C00095FFFCCF809373 +:10A9A000C6003196F5CF8091C00085FFFCCF8AE0CC +:10A9B0008093C600FE018491ECE3FDE0882349F01A +:10A9C0009091C00095FFFCCF8093C6003196849192 +:10A9D000F5CF409186025091870260918802709174 +:10A9E00089028CE095E00E94C862609182027091B9 +:10A9F000830280918402909185020F943053AB01C1 +:10AA0000BC0189E095E00E94C86260917E0270916D +:10AA10007F0280918002909181020F943C53AB01A0 +:10AA2000BC0186E095E00E94C8628091C00085FF6D +:10AA3000FCCF8AE08093C600FE018491ECE3FDE048 +:10AA4000882349F09091C00095FFFCCF8093C60009 +:10AA500031968491F5CFE2EDF4E08491882341F0C2 +:10AA60009091C00095FFFCCF8093C6003196F5CF42 +:10AA70008091C00085FFFCCF8AE08093C600FE0174 +:10AA80008491ECE3FDE0882349F09091C00095FFAC +:10AA9000FCCF8093C60031968491F5CF40911D0282 +:10AAA00050911E0260911F027091200288EC94E088 +:10AAB0000E94C86220E030E040E752E46091150255 +:10AAC0007091160280911702909118020F940BC397 +:10AAD000AB01BC0185EC94E00E94C8624091040A7D +:10AAE0005091050A6091060A7091070A82EC94E081 +:10AAF0000E94C8628091C00085FFFCCF8AE08093ED +:10AB0000C600FE018491ECE3FDE0882349F09091BA +:10AB1000C00095FFFCCF8093C60031968491F5CF9D +:10AB2000E6E9F4E08491882341F09091C00095FF1C +:10AB3000FCCF8093C6003196F5CF8091C00085FF91 +:10AB4000FCCF8AE08093C600FE018491ECE3FDE037 +:10AB5000882349F09091C00095FFFCCF8093C600F8 +:10AB600031968491F5CF4091000A5091010A60918D +:10AB7000020A7091030A8CE894E00E94C86220E007 +:10AB800030E040E752E4609111027091120280912E +:10AB90001302909114020F940BC3AB01BC0189E81E +:10ABA00094E00E94C8628091C00085FFFCCF8AE0DB +:10ABB0008093C600FE018491ECE3FDE0882349F018 +:10ABC0009091C00095FFFCCF8093C6003196849190 +:10ABD000F5CFEFE2F4E08491882341F09091C0003A +:10ABE00095FFFCCF8093C6003196F5CF8091C000D1 +:10ABF00085FFFCCF8AE08093C600FE018491ECE3E0 +:10AC0000FDE0882349F09091C00095FFFCCF809330 +:10AC1000C60031968491F5CF4091090A50E060E07A +:10AC200070E085E294E00E94D9628091C00085FFC7 +:10AC3000FCCF8AE08093C600FE018491ECE3FDE046 +:10AC4000882349F09091C00095FFFCCF8093C60007 +:10AC500031968491F5CF8091300A8823A1F1E2E109 +:10AC6000F4E08491882341F09091C00095FFFCCFDF +:10AC70008093C6003196F5CF8091C00085FFFCCF50 +:10AC80008AE08093C600FE01C491ECE3FDE0CC2392 +:10AC900049F08091C00085FFFCCFC093C60031967B +:10ACA000C491F5CF40913D0250913E0260913F0228 +:10ACB0007091400288E094E00E94C8628091C000D8 +:10ACC00085FFFCCF11C0ECEEF3E08491882341F0C6 +:10ACD0009091C00095FFFCCF8093C6003196F5CFD0 +:10ACE0008091C00085FFFCCF8AE08093C600DF9191 +:10ACF000CF910895AF92BF92CF92DF92EF92FF92E1 +:10AD00000F931F93CF93DF93CDB7DEB7E0970FB6C6 +:10AD1000F894DEBF0FBECDBF80E1EBEAF2E0DE01CA +:10AD2000919601900D928A95E1F780E1EBEBF2E0CC +:10AD3000DE01519601900D928A95E1F780E1EBECEE +:10AD4000F2E0DE01119601900D928A95E1F76E0115 +:10AD500081E2C80ED11C8EE2E82E86E1F82E8E012B +:10AD60000F5E1F4F6EE376E1AE014F5F5F4F9EE1D6 +:10AD7000A92E96E1B92E20E030E0F6018191919163 +:10AD8000A191B1916F01F70181939193A193B19337 +:10AD90007F01F80181919191A191B1918F01FB0106 +:10ADA00081939193A193B193BF01FA018191919104 +:10ADB000A191B191AF01F50181939193A193B193C9 +:10ADC0005F012F5F3F4F24303105B9F60F946A348D +:10ADD00080E090E8ABEBB4E48093161690931716DE +:10ADE000A0931816B0931916809312169093131609 +:10ADF000A0931416B093151610921A1610921B16E3 +:10AE000010921C1610921D1680E29EE4A0E0B0E0A5 +:10AE100080934E1690934F16A0935016B0935116F0 +:10AE20001092FE151092FF15109200161092011646 +:10AE300080E090E0A0E2B1E48093021690930316C4 +:10AE4000A0930416B09305168093061690930716E8 +:10AE5000A0930816B09309168DEC9CECACE4BEE30D +:10AE600080930A1690930B16A0930C16B0930D16B0 +:10AE700080E090E0A0E2B0E480930E1690930F166D +:10AE8000A0931016B093111610921C0A10921D0A6E +:10AE900010921E0A10921F0A1092180A1092190A94 +:10AEA00010921A0A10921B0A1092140A1092150A94 +:10AEB0001092160A1092170A88EB9EE1A3EBB1E4F8 +:10AEC0008093960290939702A0939802B093990270 +:10AED00064EA70E78DEF9FE30F942A536093920228 +:10AEE0007093930280939402909395026BE774E1C0 +:10AEF0008DE792E40F94365360938E0270938F0225 +:10AF000080939002909391020F947F4480E090E0B0 +:10AF1000A0E8BFE380938A0290938B02A0938C02F7 +:10AF2000B0938D021092090A80E090E0A0E4B0E4B2 +:10AF300080931D0290931E02A0931F02B0932002E3 +:10AF400040E050E064E372E440931502509316022F +:10AF500060931702709318021092040A1092050A67 +:10AF60001092060A1092070A1092000A1092010A23 +:10AF70001092020A1092030A40E050E060E071E48F +:10AF800040931102509312026093130270931402C3 +:10AF90001092300A80933D0290933E02A0933F02AC +:10AFA000B09340020E94EE76ECE3FDE084918823AA +:10AFB00041F09091C00095FFFCCF8093C600319680 +:10AFC000F5CFE0EBF3E08491882341F09091C0004D +:10AFD00095FFFCCF8093C6003196F5CF8091C000DD +:10AFE00085FFFCCF8AE08093C600E0960FB6F89408 +:10AFF000DEBF0FBECDBFDF91CF911F910F91FF90AC +:10B00000EF90DF90CF90BF90AF900895CF93DF93F4 +:10B01000CDB7DEB72C970FB6F894DEBF0FBECDBF0D +:10B0200084E190E09C878B8786E591E3A0E0B0E027 +:10B0300089839A83AB83BC8344E0BE016B5F7F4FFF +:10B04000CE010B9683D843E050E0BE016B5F7F4F8B +:10B05000CE0101960F94DCC8892B09F0E1C040E1D4 +:10B060006EE276E1CE010B9671D840E16EE376E1B7 +:10B07000CE010B966BD840E16EE176E1CE010B96E6 +:10B0800065D80F946A3444E066E176E1CE010B9610 +:10B090005DD844E062E176E1CE010B9657D844E0FA +:10B0A0006AE176E1CE010B9651D844E06EEF75E18E +:10B0B000CE010B964BD844E06EE476E1CE010B96C0 +:10B0C00045D844E062E076E1CE010B963FD844E0FB +:10B0D00066E076E1CE010B9639D844E06AE076E18D +:10B0E000CE010B9633D844E06EE076E1CE010B96AC +:10B0F0002DD84CE064E17AE0CE010B9627D844E0ED +:10B100006DE07AE0CE010B9621D844E066E972E06A +:10B11000CE010B961BD844E062E972E0CE010B969B +:10B1200015D844E06EE872E0CE010B960FD844E0EB +:10B1300066E872E0CE010B9609D844E062E872E05E +:10B14000CE010B9603D844E06EE772E0CE010B9679 +:10B150000E94A65042E0BE01675F7F4FCE010B9672 +:10B160000E94A65041E069E07AE0CE010B960E9471 +:10B17000A65044E06DE172E0CE010B960E94A6500D +:10B1800044E065E172E0CE010B960E94A65044E0D7 +:10B1900064E07AE0CE010B960E94A65044E060E0A5 +:10B1A0007AE0CE010B960E94A65044E061E172E085 +:10B1B000CE010B960E94A65041E060E37AE0CE01FA +:10B1C0000B960E94A65044E06DE372E0CE010B9610 +:10B1D0000E94A6500E94EE760F947F44ECE3FDE0BF +:10B1E0008491882341F09091C00095FFFCCF80931B +:10B1F000C6003196F5CFE2EDF3E08491882341F06B +:10B200009091C00095FFFCCF8093C6003196F5CF9A +:10B210008091C00085FFFCCF8AE08093C60001C00A +:10B2200069DD2C960FB6F894DEBF0FBECDBFDF915F +:10B23000CF910895CF93DF93EC0160E08E810F945E +:10B2400048B981E090E00F948AB761E08E810F9455 +:10B2500048B981E090E00F948AB760E08E810F9446 +:10B2600048B984E690E0DF91CF910D948AB7CF92F0 +:10B27000DF92EF92FF920F931F93CF93DF937C01A6 +:10B28000C0E0D0E0C62ED12C87010C0F1D1F61E05D +:10B29000F80187810F940FB9B6010C2E02C0759585 +:10B2A00067950A94E2F76170F80187810F9448B9B5 +:10B2B0002196C430D10541F7C701DF91CF911F918D +:10B2C0000F91FF90EF90DF90CF90B4CFCF92DF92AD +:10B2D000EF92FF920F931F93CF93DF937C01C0E017 +:10B2E000D0E0C62ED12C87010C0F1D1F61E0F801A4 +:10B2F00087810F940FB9B6010C2E02C07595679522 +:10B300000A94E2F76170F80187810F9448B9219699 +:10B31000C830D10541F7C701DF91CF911F910F913F +:10B32000FF90EF90DF90CF9085CF1F93CF93DF9367 +:10B33000EC01162F642F8C810F9448B98D818F3FBB +:10B3400019F060E00F9448B98F85612F84FF05C024 +:10B35000CE01DF91CF911F91B9CF70E084E0759558 +:10B3600067958A95E1F7CE0182DF612FCE01DF91EB +:10B37000CF911F917CCF40E0D8CF61E0FCDF80E42B +:10B3800096E00D948AB762E0F6DF80E496E00D94D3 +:10B390008AB7CF93DF93CDB7DEB728970FB6F8946F +:10B3A000DEBF0FBECDBF28E0EBEDF2E0DE0111966F +:10B3B00001900D922A95E1F7FC012389421710F0C4 +:10B3C0004FEF420FFE013196E40FF11DE40FF11D26 +:10B3D0002081260F2068622F28960FB6F894DEBFD2 +:10B3E0000FBECDBFDF91CF91C6CFFC016089262F64 +:10B3F0002460208B6C60BFCFCF93DF93EC01423091 +:10B4000018F08F8588608F874B8B1C8A222329F048 +:10B41000413019F48F8584608F8780E593EC0F9419 +:10B420008AB760E08C810F9448B960E08E810F94F8 +:10B4300048B98D818F3F19F060E00F9448B96F854E +:10B4400064FD19C063E0CE0112DF84E991E10F943D +:10B450008AB763E0CE010BDF84E991E10F948AB7EC +:10B4600063E0CE0104DF86E990E00F948AB762E0E2 +:10B47000CE01FDDE13C06062CE017DDF84E991E183 +:10B480000F948AB76F856062CE0175DF86E990E020 +:10B490000F948AB76F856062CE016DDF6F85606241 +:10B4A000CE0169DF8CE390E00F948AB784E0888B4B +:10B4B000CE019BDF8CE390E00F948AB7CE015DDF75 +:10B4C00088EB9BE00F948AB782E0898B66E0CE011F +:10B4D00052DF8CE390E0DF91CF910D948AB76F92A9 +:10B4E0007F928F92AF92CF92EF920F931F93CF9351 +:10B4F000DF93CDB7DEB73C01162F842F5E854F85D5 +:10B5000038899989F301848325830683E782C0867D +:10B51000A1868286538744873587968761E00F949A +:10B520000FB9F30185818F3F19F061E00F940FB9D6 +:10B5300061E0F30186810F940FB9112319F0F30133 +:10B54000178603C080E1F301878720E041E060E1D6 +:10B55000C301DF91CF911F910F91EF90CF90AF90EA +:10B560008F907F906F9048CF8F92AF92CF92EF9253 +:10B570000F93DC0113961C921E921297ECE3F3E0FA +:10B58000ED93FC931F921F921F921F928C2CAE2C56 +:10B59000C02EE22E042F2FEF462F61E0A0DF0F9088 +:10B5A0000F900F900F900F91EF90CF90AF908F90E2 +:10B5B0000895CF93DF93EC01423018F08F858860B7 +:10B5C0008F874B8B1C8A222329F0413019F48F85F9 +:10B5D00084608F8780E593EC0F948AB760E08C815C +:10B5E0000F9448B960E08E810F9448B98D818F3FE8 +:10B5F00019F060E00F9448B96F8564FD19C063E0ED +:10B60000CE0135DE84E991E10F948AB763E0CE0183 +:10B610002EDE84E991E10F948AB763E0CE0127DE44 +:10B6200086E990E00F948AB762E0CE0120DE13C075 +:10B630006062CE01A0DE84E991E10F948AB76F8544 +:10B640006062CE0198DE86E990E00F948AB76F853C +:10B650006062CE0190DE6F856062CE018CDE8CE38D +:10B6600090E00F948AB784E0888BCE01BEDE8CE335 +:10B6700090E00F948AB7CE0186DE80E496E00F94C6 +:10B680008AB782E0898B66E0CE0175DE8CE390E0BC +:10B690000F948AB740E068E0CE017BDE68E776E091 +:10B6A000CE010F94E3B941E068E0CE0172DE68E7B5 +:10B6B00076E0CE010F94E3B942E066E0CE0169DEA8 +:10B6C00066E776E0CE01DF91CF910D94E3B9CF929A +:10B6D000DF92EF92FF920F931F93CF93DF931F920E +:10B6E0001F92CDB7DEB78C01677088E0689FB0010C +:10B6F00011246064C80149835A833DDE4981C42E08 +:10B700005A81D52EE12CF12CD6016D916D01D80115 +:10B71000ED91FC910190F081E02DC8011995BFEFEA +:10B72000EB1AFB0AE8E0EE16F10471F70F900F90A8 +:10B73000DF91CF911F910F91FF90EF90DF90CF900D +:10B74000089541E0F2DD81E090E008951F920F92AC +:10B750000FB60F9211240BB60F922F933F934F9376 +:10B760005F936F938F939F93EF93FF93CF93DF93A9 +:10B770001F92CDB7DEB78091C00084FF04C08091D6 +:10B78000C600898319C06091C6002091710730916D +:10B790007207C90101968F779927409173075091DD +:10B7A00074078417950741F0F901EF50F94F608352 +:10B7B00090937207809371070F90DF91CF91FF9163 +:10B7C000EF919F918F916F915F914F913F912F9149 +:10B7D0000F900BBE0F900FBE0F901F9018959A01FF +:10B7E000AB01211581EE38074105510549F182E091 +:10B7F0008093C00060E079E08DE390E00F941EC577 +:10B800002150310941095109CA01B90122E030E052 +:10B8100040E050E00F941EC53093C5002093C40053 +:10B820008091C10080618093C1008091C1008860D7 +:10B830008093C1008091C10080688093C100089509 +:10B840001092C00020E130E0E7CF209173073091E3 +:10B85000740780917107909172078217930771F0B6 +:10B86000F901EF50F94F80812F5F3F4F2F7733273A +:10B87000309374072093730790E008958FEF9FEF44 +:10B880000895809173079091740790937207809345 +:10B89000710708954F925F926F927F928F929F925D +:10B8A000AF92BF92CF92DF92EF92FF920F931F93CE +:10B8B000CF93DF93CDB7DEB7A0970FB6F894DEBF76 +:10B8C0000FBECDBF5C014115510561057105E9F45D +:10B8D00020E030E040E350E060E070E0A0960FB67A +:10B8E000F894DEBF0FBECDBFDF91CF911F910F91B6 +:10B8F000FF90EF90DF90CF90BF90AF909F908F9090 +:10B900007F906F905F904F905BC08E010F5F1F4FD5 +:10B91000C12CD12C76014801422E512C612C712C66 +:10B920008FEFC81AD80AE80AF80ACB01BA01A301B6 +:10B9300092010F94FCC4CA01F80161938F01A9011F +:10B94000BC01411551056105710551F7F1E0CF1AB0 +:10B95000D108E108F108F401EC0DFD1D80818A3069 +:10B9600010F440E301C047E3480F552747FD5095C9 +:10B97000652F752F20E030E0C50122D081E0C81A84 +:10B98000D108E108F108EFEFCE16DE06EE06FE065E +:10B9900011F7A0960FB6F894DEBF0FBECDBFDF91B2 +:10B9A000CF911F910F91FF90EF90DF90CF90BF90BC +:10B9B000AF909F908F907F906F905F904F90089581 +:10B9C0002115310539F48091C00085FFFCCF4093EB +:10B9D000C60008952A30310509F43FC05BCF9A01B3 +:10B9E000462F552747FD5095652F752FE9CFCF93EB +:10B9F000DF93EC0120E030E04DE050E060E070E0EB +:10BA0000DFDF20E030E04AE050E060E070E0CE01AF +:10BA1000DF91CF91D5CFFB012191BF01222339F0D6 +:10BA20003091C00035FFFCCF2093C600F4CFDFCFAC +:10BA30009A01AB01662757FD6095762FC1CFCF9352 +:10BA4000DF93EC019A01AB01662757FD6095762FD5 +:10BA5000B7DFCE01DF91CF91CACFCF92DF92EF92C5 +:10BA6000FF92CF93DF93EC016A017B0177FF0FC058 +:10BA700020E030E04DE250E060E070E0A1DFF094C3 +:10BA8000E094D094C094C11CD11CE11CF11C2AE0AC +:10BA9000B701A601CE01DF91CF91FF90EF90DF902B +:10BAA000CF90F8CE2115310539F48091C00085FF83 +:10BAB000FCCF4093C6000895EDCECF93DF93EC0109 +:10BAC0009A01462F50E060E070E0ECDFCE01DF919C +:10BAD000CF918DCFCF93DF93EC019A01AB0160E062 +:10BAE00070E0E0DFCE01DF91CF9181CFCF93DF9384 +:10BAF000EC01D8DFCE01DF91CF9179CF8F929F9269 +:10BB0000AF92BF92CF92DF92EF92FF921F93CF93AB +:10BB1000DF93EC016A017B01122F20E030E0A901E4 +:10BB2000C701B6010F940AC087FF0CC020E030E0C7 +:10BB30004DE250E060E070E0CE0142DFF7FAF094B1 +:10BB4000F7F8F094B12C60E070E080E09FE3B1166C +:10BB500041F020E030E040E251E40F9411C0B39492 +:10BB6000F6CF9B01AC01C701B6010F941ABF6B0160 +:10BB70007C010F947EC04B015C010F94AAC09B0115 +:10BB8000AC01C701B6010F9419BF6B017C012AE01B +:10BB9000B501A401CE017EDE112361F0EBE7F4E0F4 +:10BBA0008191882339F09091C00095FFFCCF80935C +:10BBB000C600F6CF112319F120E030E040E251E455 +:10BBC000C701B6010F940BC36B017C010F9479C0C0 +:10BBD0004B01AA2497FCA094BA2CB501A401CE0174 +:10BBE0003CDFC501B4010F94ACC09B01AC01C7019F +:10BBF000B6010F9419BF6B017C011150DBCFDF91AF +:10BC0000CF911F91FF90EF90DF90CF90BF90AF90BA +:10BC10009F908F90089572CFCF93DF93EC016EDFEA +:10BC2000CE01DF91CF91E3CEFC01659175918591B5 +:10BC3000949108952091DB073091DC07BC01C90184 +:10BC40008252984F0F94F9C89093D2078093D107EE +:10BC500021E0892B09F420E0822F0895682F7727AF +:10BC600067FD70958091DB079091DC078252984FB9 +:10BC70000F94C1C89093D2078093D10721E0892BFC +:10BC800009F420E0822F08958091D1079091D20786 +:10BC90004AE050E060E070E001960D94DDC6CF937D +:10BCA000C82F40910B0250910C0260910D027091CF +:10BCB0000E024093D7095093D8096093D909709325 +:10BCC000DA09209147023091480230938C0A209380 +:10BCD0008B0A24E630E030934802209347020F9409 +:10BCE00024B76093CD077093CE078093CF079093CE +:10BCF000D0078C2FCF910D947C3580E00F947C354C +:10BD00008091D7099091D809A091D909B091DA0909 +:10BD100080930B0290930C02A0930D02B0930E023D +:10BD200080918B0A90918C0A9093480280934702ED +:10BD30000F9424B76093CD077093CE078093CF07FD +:10BD40009093D00708950F931F93CF93DF930091A3 +:10BD5000D1071091D20765E470E0C8010F94C1C803 +:10BD6000EC01C8010196209741F460E070E0DF919A +:10BD7000CF911F910F910D9475C5188260E070E00E +:10BD80000F9475C525E42883DF91CF911F910F9102 +:10BD900008958091D1079091D20760E070E00196FC +:10BDA0000D9475C52091DB073091DC07E091D90730 +:10BDB000F091DA072E173F0739F44091D7075091D9 +:10BDC000D807141615068CF1AF01480F591FE2175A +:10BDD000F3073CF446595F4F81E04217530734F1B3 +:10BDE00024C0BA0165597F4F6E3E7140E0F04E5F4E +:10BDF0005F4F4E3E514018F429363105A4F4865960 +:10BE00009F4F821793078CF44DEE51E04E1B5F0B52 +:10BE100060E070E0CF018352984F0F949CC810925D +:10BE2000DA071092D90781E0089580E008952F92F3 +:10BE30003F924F925F926F927F928F929F92AF92BA +:10BE4000BF92CF92DF92EF92FF920F931F93CF9307 +:10BE5000DF93CDB7DEB72A970FB6F894DEBF0FBEDB +:10BE6000CDBF9E838D83FC01E350F34FB490880FC8 +:10BE7000991F880F991F9A878987805E954F9A83AB +:10BE80008983DC011D921D921D921C92139738E24A +:10BE9000232E3AE0332EF101E080F18002811381FC +:10BEA000A4E2BAE02D913D914D915C91E0E2FAE07F +:10BEB0006081718182819381ECE2CE2EEAE0DE2EF8 +:10BEC0000F94C03289859A85845F924FADDE6B01F5 +:10BED0007C016B2D772767FD7095872F972F0F9427 +:10BEE000ACC02B013C0129853A852551364F3C8356 +:10BEF0002B8320E030E040EC5FE3C701B6010F94F4 +:10BF00000BC3A30192010F940BC3AB81BC816D9352 +:10BF10007D938D939C931397E985FA85E75BFD4F9D +:10BF2000F887EF83608171818281938160930B0236 +:10BF300070930C0280930D0290930E0220E030E08B +:10BF400040E752E40F9411C04B015C01A3EFB9E04C +:10BF5000ED90FD900D911C91EFEEF9E02081318183 +:10BF600042815381ABEEB9E06D917D918D919C91B1 +:10BF7000ACE0BAE0BF93AF93F7EFCF2EF9E0DF2E3E +:10BF80000F9415260F94B93EA981BA811D921D9276 +:10BF90001D921C921397F101E080F18002811381C0 +:10BFA000A4E2BAE02D913D914D915C91E0E2FAE07E +:10BFB0006081718182819381ACE2CA2EAAE0DA2E7F +:10BFC0000F94C03229853A852050334F1901C90199 +:10BFD0002BDE9058A30192010F940BC3AB81BC815F +:10BFE0006D937D938D939C93139720E030E040E711 +:10BFF00052E460910B0270910C0280910D029091BD +:10C000000E020F9411C04B015C01E3EFF9E0E080F8 +:10C01000F18002811381AFEEB9E02D913D914D91F8 +:10C020005C91EBEEF9E06081718182819381ACE0FB +:10C03000BAE0BF93AF93B7EFCB2EB9E0DB2E0F94EE +:10C0400015260F94B93EC101EFDD9B01AC010F94A1 +:10C050001ABFA30192010F940BC3AB81BC816D93F6 +:10C060007D938D939C93139720E030E040E05FE355 +:10C07000EF81F88560817181828193810F940BC378 +:10C0800060930B0270930C0280930D0290930E024A +:10C0900020E030E040E752E40F9411C04B015C0116 +:10C0A000A3EFB9E0ED90FD900D911C91EFEEF9E05A +:10C0B0002081318142815381ABEEB9E06D917D9158 +:10C0C0008D919C91ACE0BAE0BF93AF930F9415268D +:10C0D0000F94B93E89859A85885E924FA5DD0985C2 +:10C0E0001A850C5E154FD8012D913D914D915C91B3 +:10C0F0000F941ABFE981FA816083718382839383ED +:10C1000089859A85805D924F8FDD29853A85235DEB +:10C110003D4F7901D8012D913D914D915C910F9446 +:10C120001ABFF701608371838283938389859A851F +:10C130008C5D924F79DD29853A852F5D3D4F7901E0 +:10C14000D8012D913D914D915C910F941ABFF7014B +:10C150006083718382839383E981FA8180819181F5 +:10C16000A281B381EB81FC8180839183A283B3831D +:10C1700010920B0210920C0210920D0210920E02FD +:10C180000F946435ED81FE81EF5EF54F81E0808391 +:10C190000F900F900F900F900F900F902A960FB660 +:10C1A000F894DEBF0FBECDBFDF91CF911F910F91ED +:10C1B000FF90EF90DF90CF90BF90AF909F908F90C7 +:10C1C0007F906F905F904F903F902F9008954F9287 +:10C1D0005F926F927F929F92AF92BF92CF92DF92C7 +:10C1E000EF92FF920F931F93CF93DF937C015B013C +:10C1F0008A01E9019090920F911014C0FC01808196 +:10C200009181A281B381FA0180839183A283B38358 +:10C21000FB0180819181A281B38188839983AA8364 +:10C22000BB837FC091FE55C0FC01208131814281DA +:10C2300053816091820F7091830F8091840F909150 +:10C24000850F0F940BC32B013C01F5012081318137 +:10C25000428153816091860F7091870F8091880F82 +:10C260009091890F0F940BC39B01AC01C301B201E4 +:10C270000F941ABFF8016083718382839383F7015F +:10C28000208131814281538160918A0F70918B0F9F +:10C2900080918C0F90918D0F0F940BC36B017C01DB +:10C2A000F501208131814281538160918E0F70911F +:10C2B0008F0F8091900F9091910F0F940BC39B0162 +:10C2C000AC01C701B6010F941ABF688379838A83D2 +:10C2D0009B8390FE26C020916A0F30916B0F409196 +:10C2E0006C0F50916D0FF801608171818281938193 +:10C2F0000F941ABFF8016083718382839383209126 +:10C300006E0F30916F0F4091700F5091710F6881D7 +:10C3100079818A819B810F941ABF688379838A838C +:10C320009B83DF91CF911F910F91FF90EF90DF9052 +:10C33000CF90BF90AF909F907F906F905F904F9005 +:10C3400008952F923F924F925F926F927F928F92B9 +:10C350009F92AF92BF92CF92DF92EF92FF920F9394 +:10C360001F93CF93DF93CDB7DEB728970FB6F8941E +:10C37000DEBF0FBECDBF8C011B019E012F5F3F4F63 +:10C38000AE014B5F5F4F23DF20E030E0A9016D81FC +:10C390007E818F8198850F940AC087FF07C01D8218 +:10C3A0001E821F821886FF24F39401C0F12C2DEC0D +:10C3B0003CEC4CE050EC69817A818B819C810F943C +:10C3C0000AC087FF0AC08DEC9CECACE0B0EC89831E +:10C3D0009A83AB83BC83FF24F39420E030E04AE7E8 +:10C3E00053E46D817E818F8198850F9439C2181630 +:10C3F00054F480E090E0AAE7B3E48D839E83AF839A +:10C40000B887FF24F39420E030E042E553E46981EB +:10C410007A818B819C810F9439C218164CF480E08C +:10C4200090E0A2E5B3E489839A83AB83BC8303C025 +:10C43000FF2009F483C0C980DA80EB80FC808D8006 +:10C440009E80AF80B8847090920F71100BC0F8017D +:10C4500080829182A282B382F101C082D182E28283 +:10C46000F3826AC070FE1CC020916A0F30916B0F7E +:10C4700040916C0F50916D0FC501B4010F9419BF1D +:10C480004B015C0120916E0F30916F0F4091700F46 +:10C490005091710FC701B6010F9419BF6B017C0158 +:10C4A00071FE4AC02091720F3091730F4091740F4A +:10C4B0005091750FC501B4010F940BC32B013C01C2 +:10C4C0002091760F3091770F4091780F5091790F2E +:10C4D000C701B6010F940BC39B01AC01C301B201AC +:10C4E0000F941ABFF8016083718382839383209134 +:10C4F0007A0F30917B0F40917C0F50917D0FC501D9 +:10C50000B4010F940BC34B015C0120917E0F30915D +:10C510007F0F4091800F5091810FC701B6010F949A +:10C520000BC39B01AC01C501B4010F941ABFF1010B +:10C530006083718382839383FF24F3948F2D2896E5 +:10C540000FB6F894DEBF0FBECDBFDF91CF911F9124 +:10C550000F91FF90EF90DF90CF90BF90AF909F90A2 +:10C560008F907F906F905F904F903F902F900895A5 +:10C57000682F87EF9FE00D946FCB089586EA9FE0C8 +:10C580000F945DCB91E0811101C090E0892F089557 +:10C59000FC012491222341F03091C00035FFFCCFF3 +:10C5A0002093C6000196F4CF22E030E080EF96E0C1 +:10C5B00032CBFC012491222341F03091C00035FFA1 +:10C5C000FCCF2093C6000196F4CF2AE030E080EF44 +:10C5D00096E068CA8091D7079091D8071816190677 +:10C5E0000CF056C001979093D8078093D707892BFA +:10C5F00099F48091D4079091D507892B21F410925A +:10C60000DA071092D9078091D9079091DA079093B1 +:10C61000DC078093DB073AC02091DB073091DC0711 +:10C620002F5F3F4F2F5F3F4FF901E452F84F40819A +:10C630004111F8CFC901382F292F8D3E41E09407D1 +:10C6400040F09093DC078093DB078D3E9140F1F43E +:10C650000EC00196FC01E452F84F4081442359F387 +:10C660003093DB072093DC07832F922FEECF80E0FF +:10C6700090E0382F292F0196FC01E452F84F4081B9 +:10C680004423B9F33093DB072093DC0781E008955E +:10C6900080E008959FDF8111FDCF08950F931F93D0 +:10C6A000CF93DF93EC018036910514F080E052C007 +:10C6B0008091D607811104C08DDF81E08093D60779 +:10C6C0004091DB075091DC078091D9079091DA0700 +:10C6D0004817590739F42091D7073091D807121617 +:10C6E000130624F32091D4073091D50712161306B0 +:10C6F00024F49C012F593F4F01C09C0184179507DA +:10C7000044F44C1B5D0B425051094217530774F21D +:10C7100009C0CE010196841795074CF44C1B5D0BA4 +:10C72000425051095093DC074093DB0712C00BEED7 +:10C7300011E00C1B1D0B021713070CF4B7CF60E0C0 +:10C7400070E08DED97E00F949CC81093DC07009388 +:10C75000DB0781E0DF91CF911F910F910895803623 +:10C7600091050CF41FCB80E00895FF920F931F9367 +:10C77000CF93DF93EC01F62E662321F00F942EC8A1 +:10C780008C0109C0FC0101900020E9F78F010150E4 +:10C790001109081B190BC801E2DF882309F474C0D2 +:10C7A0008091D9079091DA07FC01E352F84F23E01A +:10C7B00020830196BE018352984FFF2019F00F94F9 +:10C7C00027C802C00F94D5C8ECE3FDE0849188230C +:10C7D00041F09091C00095FFFCCF8093C600319648 +:10C7E000F5CFE7EEF0E885919491FC0124912223A6 +:10C7F00041F03091C00035FFFCCF2093C600019678 +:10C80000F4CFE091D907F091DA07E252F84F819125 +:10C81000882339F09091C00095FFFCCF8093C6002B +:10C82000F6CFEBEFFCE08491882341F09091C000BB +:10C8300095FFFCCF8093C6003196F5CF8091C00064 +:10C8400085FFFCCF8AE08093C6000E5F1F4F80916A +:10C85000D9079091DA07080F191F0D3EF1E01F0765 +:10C8600029F01093DA070093D90704C01092DA0771 +:10C870001092D9078091D7079091D807019690938D +:10C88000D8078093D70748C0E2E4FDE0849188236D +:10C8900041F09091C00095FFFCCF8093C600319687 +:10C8A000F5CFE7EEF0E885919491FC0124912223E5 +:10C8B00041F03091C00035FFFCCF2093C6000196B7 +:10C8C000F4CFFF2091F0FE018491882389F09091AC +:10C8D000C00095FFFCCF8093C6002196F4CF9091C5 +:10C8E000C00095FFFCCF8093C60089918111F7CFDE +:10C8F000E4EEFCE007C09091C00095FFFCCF809370 +:10C90000C600319684918111F6CF8091C00085FFD9 +:10C91000FCCF8AE08093C600DF91CF911F910F91E9 +:10C92000FF9008951F93CF93DF93EC01162F66239A +:10C9300019F00F942EC808C0FC0101900020E9F7FF +:10C94000CF0101978C1B9D0BA9DE882309F459C0E8 +:10C950008091DB079091DC07FC01E352F84F23E064 +:10C9600020830196BE018352984F112319F00F9432 +:10C9700027C802C00F94D5C88091D7079091D807D7 +:10C9800001969093D8078093D707ECE3FDE084915C +:10C99000882341F09091C00095FFFCCF8093C600A2 +:10C9A0003196F5CFEBECFCE08491882341F0909137 +:10C9B000C00095FFFCCF8093C6003196F5CFE09183 +:10C9C000DB07F091DC07E252F84F8191882339F0C0 +:10C9D0009091C00095FFFCCF8093C600F6CFE9ECA4 +:10C9E000FCE08491882341F09091C00095FFFCCF3A +:10C9F0008093C6003196F5CF8091C00085FFFCCFB3 +:10CA000042C0E2E4FDE08491882341F09091C000AF +:10CA100095FFFCCF8093C6003196F5CFE0EBFCE0AC +:10CA20008491882341F09091C00095FFFCCF8093C2 +:10CA3000C6003196F5CF112391F0FE018491882331 +:10CA400089F09091C00095FFFCCF8093C60021969D +:10CA5000F4CF9091C00095FFFCCF8093C6008991E0 +:10CA60008111F7CFE9E9FCE007C09091C00095FF84 +:10CA7000FCCF8093C600319684918111F6CF8091CE +:10CA8000C00085FFFCCF8AE08093C600DF91CF9184 +:10CA90001F91089581E02091D7073091D807232B6B +:10CAA00009F080E008959B9AA3980895EF92FF9271 +:10CAB0000F931F93CF93DF931F92CDB7DEB7898378 +:10CAC0000F9432618981823009F468C0B4F58823FB +:10CAD00009F442C0813009F0F4C09FB7F894809106 +:10CAE00002018460809302019FBFEFEFF1EE24E02A +:10CAF000E150F0402040E1F700C000009FB7F894FB +:10CB0000809102018B7F809302019FBF40E050E043 +:10CB1000BA018DEE9FE00F9481CB40E050E0BA0166 +:10CB200081EF9FE00F9481CB0F90DF91CF911F9108 +:10CB30000F91FF90EF900D940892833009F45CC040 +:10CB4000843009F0BEC00F90DF91CF911F910F91FB +:10CB5000FF90EF900D94B9999FB7F89480910201DE +:10CB60008460809302019FBF2FEF81EE94E02150FB +:10CB700080409040E1F700C000009FB7F89480919A +:10CB800002018B7F809302019FBF0F90DF91CF91B5 +:10CB90001F910F91FF90EF900D94DB610F94DB617B +:10CBA00080EFE6DC10921C1810921B1860911D1883 +:10CBB00084EC9FE00F946FCB6BE178E181EC9FE018 +:10CBC0000F9460619FB7F894809102018460809314 +:10CBD00002019FBF8FEF91EEE4E081509040E04072 +:10CBE000E1F700C000009FB7F894809102018B7FAD +:10CBF000809302019FBF65C08BE89CE00F94BE78D4 +:10CC00004AE75CE062E081E00F94B1A09FB7F8943E +:10CC1000809102018460809302019FBFFFEF21EEAB +:10CC200084E0F15020408040E1F700C000009FB751 +:10CC3000F894809102018B7F809302019FBF109234 +:10CC4000B9071092B80743E75CE063E083E00F9414 +:10CC5000B1A04091B8075091B90763E083E00F9409 +:10CC60003D61E12CF12C09E210E06FEFC7010F9458 +:10CC70008DCBC701B8010F94E9C4892BD9F48091F9 +:10CC8000B8079091B90701969093B9078093B807B8 +:10CC90004CE65CE063E083E00F94B1A04091B807FC +:10CCA0005091B90763E083E00F943D618AE69CE010 +:10CCB0000F94BE789FEFE91AF90AE114E0E1FE064D +:10CCC000A1F60F90DF91CF911F910F91FF90EF9000 +:10CCD000089580E1E0E2FAE0ABEEB9E001900D9258 +:10CCE0008A95E1F708954F925F926F927F928F92AB +:10CCF0009F92AF92BF92CF92DF92EF92FF92CF932B +:10CD0000DF9300D01F92CDB7DEB70F94B93E8BE40E +:10CD10000E942E5E882391F016D86B017C0120E0E2 +:10CD200030E0A9010F9439C287FD08C0C0926D1090 +:10CD3000D0926E10E0926F10F092701082E50E9417 +:10CD40002E5E882361F00E94A35E6B017C0120E0CF +:10CD500030E0A9010F940AC087FF89C006C0C12C2A +:10CD6000D12CF0E8EF2EFFEBFF2E84E40E942E5E24 +:10CD7000882329F00E94A35E4B015C0106C0812C30 +:10CD8000912CE0E8AE2EEFEBBE2E87E50E942E5EE2 +:10CD9000882329F00E94A35E2B013C0106C0412C90 +:10CDA000512C70E8672E7FEB772E88E40E942E5E70 +:10CDB000882339F00E94A35E69837A838B839C83E6 +:10CDC00008C080E090E0A0E8BFEB89839A83AB8342 +:10CDD000BC8320E030E0A901C501B4010F9439C241 +:10CDE00087FD45C020E030E0A901C301B2010F94E6 +:10CDF00039C287FD3CC020E030E0A90169817A8119 +:10CE00008B819C810F9439C287FD31C020E030E0D6 +:10CE1000A901C501B4010F940AC0882391F120E053 +:10CE200030E040E05FE3C501B4010F940BC36B0138 +:10CE30007C0129813A814B815C81C301B2010F944D +:10CE40000BC34B015C01A7019601C701B6010F940A +:10CE50000BC32BED3FE049E450E40F940BC39B015F +:10CE6000AC01C501B4010F9411C06B017C0120E03D +:10CE700030E0A901C701B6010F9439C287FF04C091 +:10CE80000BC0C12CD12C7601C0926910D0926A10CF +:10CE9000E0926B10F0926C10ECE3FDE0849188233B +:10CEA00041F09091C00095FFFCCF8093C600319671 +:10CEB000F5CFE4EEF7E08491882341F09091C00033 +:10CEC00095FFFCCF8093C6003196F5CF40916D1051 +:10CED00050916E1060916F107091701022E030E0F0 +:10CEE00080EF96E00E940B5E8091C00085FFFCCF32 +:10CEF0008AE08093C600EEEDF7E08491882341F04C +:10CF00009091C00095FFFCCF8093C6003196F5CF7D +:10CF1000C0906910D0906A10E0906B10F0906C1087 +:10CF200020E030E0A901C701B6010F940AC08823B0 +:10CF300069F022E030E0B701A60180EF96E00E94A0 +:10CF40000B5E8091C00085FFFCCF11C0E9EDF7E0DA +:10CF50008491882341F09091C00095FFFCCF80938D +:10CF6000C6003196F5CF8091C00085FFFCCF8AE0E6 +:10CF70008093C6000F900F900F900F90DF91CF918C +:10CF8000FF90EF90DF90CF90BF90AF909F908F90E9 +:10CF90007F906F905F904F9008958330910510F4CB +:10CFA0000C94175F0895CF92DF92EF92FF920F9348 +:10CFB0001F938FDE80E090E00E94175F81E090E099 +:10CFC0000E94175FE090280AF090290A00912A0A2F +:10CFD00010912B0A2091240A3091250A4091260AAB +:10CFE0005091270A6091200A7091210A8091220AAB +:10CFF0009091230AACE2CA2EAAE0DA2E0F94C03236 +:10D000001F910F91FF90EF90DF90CF900D946435BA +:10D010000F9424B76093CD077093CE078093CF070A +:10D020009093D007089520E030E0A90168EB71E00B +:10D0300084E50F9472BB69E170E080E090E00F94AA +:10D0400053B784E50F9498BE64E170E080E090E00F +:10D050000D9453B77F928F929F92AF92BF92CF92CF +:10D06000DF92EF92FF920F931F93CF93DF9300D045 +:10D070001F92CDB7DEB7109243171092421710924D +:10D080004117109240170F94326185E09CE00F9495 +:10D09000BE788E010F5F1F4F7E0125E0E20EF11C6E +:10D0A00080EF96E00E94255C8F3FEFEF9E07C1F373 +:10D0B000F80181938F01EE15FF0591F789809A8021 +:10D0C000AB80BC808091C00085FFFCCF8BE2809359 +:10D0D000C600C12CD12C7601BBE27B2E8091520A76 +:10D0E000882309F450C007E717E0C814D904EA04FC +:10D0F000FB04A1F080EF96E00E94255C8F3FFFEFDC +:10D100009F07C1F32FEFC21AD20AE20AF20AF8010E +:10D1100081938F01F7E0073B1F0739F767E777E057 +:10D120008DE99AE00E940DCD8091C00085FFFCCF73 +:10D130007092C6000F94224DC814D904EA04FB046F +:10D1400069F671DF60E08DE99AE00E9442CE1092AC +:10D15000520AE9EBF0E885919491FC012491222395 +:10D1600041F03091C00035FFFCCF2093C6000196FE +:10D17000F4CF8091C00085FFFCCF8AE08093C60089 +:10D1800080E090E000C00F900F900F900F90DF9123 +:10D19000CF911F910F91FF90EF90DF90CF90BF90B4 +:10D1A000AF909F908F907F9008950F9424B76093D5 +:10D1B000CD077093CE078093CF079093D007E0916F +:10D1C000DB07F091DC07E352F84F80818130B9F43E +:10D1D000E3E6FEE785919491FC012491222341F03E +:10D1E0003091C00035FFFCCF2093C6000196F4CFEC +:10D1F0008091C00085FFFCCF8AE08093C60008952F +:10D2000080EF96E00E94415CE3E5FDE78591949113 +:10D21000FC012491222341F03091C00035FFFCCF66 +:10D220002093C6000196F4CF4091CF095091D009C8 +:10D230006091D1097091D2094F5F5F4F6F4F7F4F5F +:10D240002AE030E080EF96E00E94E05C8091C00030 +:10D2500085FFFCCF8AE08093C600A7CF8F929F9274 +:10D26000AF92BF92CF92DF92EF92FF920F931F93F4 +:10D27000CF93DF93C7E2EC2EC4E0FC2E00E21AE06D +:10D28000CBEED9E08DE8C82E8AE0D82EF701819147 +:10D290007F010E942E5E882319F10E94C95E4B0116 +:10D2A0005C01F6018081811103C06091CA0901C04F +:10D2B00061E070E080E090E00F94ACC0F801208164 +:10D2C0003181428153810F940BC39B01AC01C50195 +:10D2D000B4010F941ABF688379838A839B8309C042 +:10D2E000F80180819181A281B38188839983AA8387 +:10D2F000BB830C5F1F4F2496FFEFCF1ADF0A8BE230 +:10D30000E81684E0F80611F686E40E942E5E882373 +:10D31000D9F00E94C95E6B017C016093DB097093B8 +:10D32000DC098093DD099093DE0920E030E0A9015B +:10D330000F9439C2181644F4C0920B02D0920C021A +:10D34000E0920D02F0920E02DF91CF911F910F91AA +:10D35000FF90EF90DF90CF90BF90AF909F908F9015 +:10D3600008957CDF89E40E942E5E882359F00E9494 +:10D37000C95E6093DF097093E0098093E10990939F +:10D38000E20908C01092DF091092E0091092E10949 +:10D390001092E2098AE40E942E5E882359F00E94CE +:10D3A000C95E6093E3097093E4098093E509909363 +:10D3B000E60908951092E3091092E4091092E50934 +:10D3C0001092E6090895CF92DF92EF92FF92CF93E9 +:10D3D000DF93EC01BC016C5F7F4F0E94A16120E0F4 +:10D3E00030E0A901609135027091360280913702D8 +:10D3F000909138020F941ABF6B017C019B01AC0124 +:10D40000688579858A859B850F940AC087FF04C04B +:10D41000C886D986EA86FB86C0902902D0902A0267 +:10D42000E0902B02F0902C02A70196016885798587 +:10D430008A859B850F9439C2181624F4C886D9862C +:10D44000EA86FB86DF91CF91FF90EF90DF90CF903F +:10D4500008952F923F924F925F926F927F928F9298 +:10D460009F92AF92BF92CF92DF92EF92FF920F9373 +:10D470001F93CF93DF93CDB7DEB7AB970FB6F8947A +:10D48000DEBF0FBECDBF9F878E87798B688B5B8B8E +:10D490004A8B3D8B2C8B1F8B0E8BED82DC018D908C +:10D4A0009D90AD90BC904090200A5090210A6090D1 +:10D4B000220A7090230ADB018D919D910D90BC9101 +:10D4C000A02D88879987AA87BB87C090240AD0900F +:10D4D000250AE090260AF090270A2091280A309128 +:10D4E000290A40912A0A50912B0AEA89FB89608116 +:10D4F0007181828193810F9419BF688F798F8A8F90 +:10D500009B8F8091930F811173C0AE89BF898D90DD +:10D510009D90AD90BC90EA89FB89E080F18002810A +:10D520001381A889B9892D913D914D915C91EE852A +:10D53000FF856081718182819381FE013596FF9321 +:10D54000EF93CC88DD880F941526EE85FF858081CA +:10D550009181A281B3818093200A9093210AA093A4 +:10D56000220AB093230AE889F98980819181A281F6 +:10D57000B3818093240A9093250AA093260AB0933E +:10D58000270AEA89FB8980819181A281B3818093F6 +:10D59000280A9093290AA0932A0AB0932B0AEC89AF +:10D5A000FD8980819181A281B38180932C0A90931F +:10D5B0002D0AA0932E0AB0932F0A0F900F90AB96CE +:10D5C0000FB6F894DEBF0FBECDBFDF91CF911F9194 +:10D5D0000F91FF90EF90DF90CF90BF90AF909F9012 +:10D5E0008F907F906F905F904F903F902F90089515 +:10D5F000A3019201C501B4010F9419BF2B013C0195 +:10D6000020E030E0A9010F9439C2530142011816FD +:10D6100024F0B7FAB094B7F8B094A70196016885E2 +:10D6200079858A859B850F9419BF688779878A8752 +:10D630009B8720E030E0A9010F9439C22885398505 +:10D640004A855B8518160CF05058C501B4010F943B +:10D650001ABF6B017C0120E030E0A9010F9439C2B0 +:10D6600018160CF052CF20E030E040EF51E4C70133 +:10D67000B6010F9411C00F94F7BF0F9479C07D8746 +:10D680006C87623071050CF440CF20912C0A3091E8 +:10D690002D0A40912E0A50912F0AAC89BD896D91B7 +:10D6A0007D918D919C910F9419BF6C8F7D8F8E8F82 +:10D6B0009F8F22242394312C8C859D85AA2797FD4A +:10D6C000A095BA2F88A799A7AAA7BBA7DE01159690 +:10D6D000BF83AE83B101882777FD8095982F0F9483 +:10D6E000ACC06B017C0168A579A58AA59BA50F94A8 +:10D6F000ACC09B01AC01C701B6010F9411C06B0116 +:10D700007C01EE89FF8980809180A280B3802C8D7E +:10D710003D8D4E8D5F8D0F940BC39B01AC016091CD +:10D720002C0A70912D0A80912E0A90912F0A0F9445 +:10D730001ABF69837A838B839C83288D398D4A8DA8 +:10D740005B8DC701B6010F940BC32091280A30915D +:10D75000290A40912A0A50912B0A0F941ABF68A3F4 +:10D7600079A38AA39BA3288539854A855B85C70150 +:10D77000B6010F940BC32091240A3091250A4091E1 +:10D78000260A5091270A0F941ABF6CA37DA38EA37B +:10D790009FA3A3019201C701B6010F940BC320916F +:10D7A000200A3091210A4091220A5091230A0F94B5 +:10D7B0001ABFFF81FF932E812F93DE0111966D0119 +:10D7C000E8A0F9A00AA11BA12CA13DA14EA15FA137 +:10D7D0000F941526BFEF2B1A3B0A0F900F90EC8584 +:10D7E000FD852E163F0609F075CF8FCE4F925F92C2 +:10D7F0006F927F928F929F92AF92BF92CF92DF9261 +:10D80000EF92FF920F931F93CF93DF93CDB7DEB7C5 +:10D8100028970FB6F894DEBF0FBECDBF8BEE99E010 +:10D82000D2DD0F9424B76093CD077093CE07809319 +:10D83000CF079093D0078091EB099091EC09A091CC +:10D84000ED09B091EE098D839E83AF83B8879C016B +:10D85000AD016091200A7091210A8091220A909175 +:10D86000230A0F940AC0811197C04090EF0950908D +:10D87000F0096090F1097090F209A30192016091A2 +:10D88000240A7091250A8091260A9091270A0F9404 +:10D890000AC0811181C020E030E040E752E460918D +:10D8A0000B0270910C0280910D0290910E020F9468 +:10D8B00011C04B015C01E090F309F090F409009174 +:10D8C000F5091091F6098CE09AE09F938F9327EF6A +:10D8D000C22E29E0D22EA30192016D817E818F811B +:10D8E00098850F9415260F900F908091EB099091D9 +:10D8F000EC09A091ED09B091EE098093200A909374 +:10D90000210AA093220AB093230A8091EF099091F3 +:10D91000F009A091F109B091F2098093240A909343 +:10D92000250AA093260AB093270A8091F3099091C3 +:10D93000F409A091F509B091F6098093280A909313 +:10D94000290AA0932A0AB0932B0A8091F709909193 +:10D95000F809A091F909B091FA0980932C0A9093E3 +:10D960002D0AA0932E0AB0932F0A28960FB6F8948A +:10D97000DEBF0FBECDBFDF91CF911F910F91FF9002 +:10D98000EF90DF90CF90BF90AF909F908F907F905F +:10D990006F905F904F900895E0900C0A609147025D +:10D9A00070914802882777FD8095982F0F94ACC01E +:10D9B00020910B0230910C0240910D0250910E0209 +:10D9C0000F940BC32EE333EC4EE259E30F940BC3D9 +:10D9D00069837A838B839C838E010F5F1F4F27EFB0 +:10D9E00039E043EF59E06FEE79E08BEE99E031DDFD +:10D9F0007CCF4F925F926F927F928F929F92AF9265 +:10DA0000BF92CF92DF92EF92FF920F931F93CF932B +:10DA1000C62FE0910C0AF0E0882309F4D9C0DF0199 +:10DA2000A85FB54F8C918111AFC18091200A909170 +:10DA3000210AA091220AB091230A8093EB099093C6 +:10DA4000EC09A093ED09B093EE098091240A90911E +:10DA5000250AA091260AB091270A8093EF09909396 +:10DA6000F009A093F109B093F2098091280A9091EE +:10DA7000290AA0912A0AB0912B0A8093F309909366 +:10DA8000F409A093F509B093F609C0902C0AD09040 +:10DA90002D0AE0902E0AF0902F0AC092F709D0923A +:10DAA000F809E092F909F092FA09EE0FFF1FEE0F64 +:10DAB000FF1FE75CFD4F2081318142815381662346 +:10DAC00049F06091190270911A0280911B029091A5 +:10DAD0001C0208C060911D0270911E0280911F02FD +:10DAE000909120020F9411C09B01AC01C701B601B7 +:10DAF0000F941ABF60932C0A70932D0A80932E0AFC +:10DB000090932F0A8CE29AE00F94443480900B0299 +:10DB100090900C02A0900D02B0900E0220E030E038 +:10DB200040E752E46091150270911602809117024D +:10DB3000909118020F940BC360930B0270930C0228 +:10DB400080930D0290930E02E0910C0AF0E0E85FE2 +:10DB5000F54F81E080834ADE2091040A3091050A66 +:10DB60004091060A5091070A6091280A7091290A8B +:10DB700080912A0A90912B0A0F9419BF7B018C0186 +:10DB80006093280A7093290A80932A0A90932B0A9B +:10DB90002091240A3091250A4091260A5091270AA3 +:10DBA0006091200A7091210A8091220A9091230AA3 +:10DBB000ECE2CE2EEAE0DE2E0F94C03217DE809229 +:10DBC0000B0290920C02A0920D02B0920E02DCC0E9 +:10DBD000E85FF54F8081882309F4D6C08090200A41 +:10DBE0009090210AA090220AB090230A8092EB091B +:10DBF0009092EC09A092ED09B092EE094090240AAF +:10DC00005090250A6090260A7090270A4092EF09EA +:10DC10005092F0096092F1097092F2096091280A1D +:10DC20007091290A80912A0A90912B0A6093F30936 +:10DC30007093F4098093F5099093F60900912C0AEA +:10DC400010912D0A20912E0A30912F0A0093F70986 +:10DC50001093F8092093F9093093FA092091040AE6 +:10DC60003091050A4091060A5091070A0F941ABF95 +:10DC70007B018C016093280A7093290A80932A0AF9 +:10DC800090932B0A3CE2C32E3AE0D32EA3019201DB +:10DC9000C501B4010F94C03210910C0ACC2389F055 +:10DCA0002091FC093091FD094091FE095091FF0936 +:10DCB0006091190270911A0280911B0290911C02CE +:10DCC00010C02091000A3091010A4091020A50913F +:10DCD000030A60911D0270911E0280911F029091B3 +:10DCE00020020F941ABF24E0129FF0011124E75C78 +:10DCF000FD4F20813181428153810F9411C09B01DE +:10DD0000AC0160912C0A70912D0A80912E0A90919D +:10DD10002F0A0F9419BF60932C0A70932D0A8093D9 +:10DD20002E0A90932F0A8CE29AE00F944434C0900C +:10DD30000B02D0900C02E0900D02F0900E0220E059 +:10DD400030E040E752E4609111027091120280913C +:10DD50001302909114020F940BC360930B02709303 +:10DD60000C0280930D0290930E02E0910C0AF0E0F9 +:10DD7000E85FF54F10823ADDC0920B02D0920C02A0 +:10DD8000E0920D02F0920E02CF911F910F91FF9041 +:10DD9000EF90DF90CF90BF90AF909F908F907F904B +:10DDA0006F905F904F900895AF92BF92CF92DF92A5 +:10DDB000EF92FF920F931F93CF93DF93D82F209171 +:10DDC000E3093091E4094091E5095091E609609139 +:10DDD000DF097091E0098091E1099091E2090F94C7 +:10DDE00046C2C62F172F082FF92E60914702709157 +:10DDF0004802882777FD8095982F0F94ACC020911A +:10DE00000B0230910C0240910D0250910E020F94C2 +:10DE10000BC320E030E040E752E40F9411C020E053 +:10DE200030E048EC52E40F9411C020910C0A2F937B +:10DE3000DF93FF920F931F93CF935B016C01B2E0CE +:10DE4000EB2E01E020E04FED59E06BEE79E080E24F +:10DE50009AE00F94A11B8091EB099091EC09A0919D +:10DE6000ED09B091EE098093200A9093210AA093C6 +:10DE7000220AB093230A8091EF099091F009A091B2 +:10DE8000F109B091F2098093240A9093250AA09396 +:10DE9000260AB093270A8091F3099091F409A09182 +:10DEA000F509B091F6098093280A9093290AA09366 +:10DEB0002A0AB0932B0A8091F7099091F809A09152 +:10DEC000F909B091FA0980932C0A90932D0AA09336 +:10DED0002E0AB0932F0A0F9424B76093CD07709346 +:10DEE000CE078093CF079093D0070F900F900F909D +:10DEF0000F900F900F90DF91CF911F910F91FF9096 +:10DF0000EF90DF90CF90BF90AF900895CF93DF93C5 +:10DF10001F92CDB7DEB78C01F8940F94BA45179ACB +:10DF20001092110A169A1092120A149A60E087E46D +:10DF30000F940FB9E2E4FDE08491882341F09091C1 +:10DF4000C00095FFFCCF8093C6003196F5CFE3E08B +:10DF5000F1E885919491FC012491222341F03091C4 +:10DF6000C00035FFFCCF2093C6000196F4CF80910E +:10DF7000C00085FFFCCF8AE08093C6000115110523 +:10DF8000E1F0F8018491F801882349F09091C000F4 +:10DF900095FFFCCF8093C60031968491F5CF809198 +:10DFA000C00085FFFCCF8AE08093C600BE016F5F92 +:10DFB0007F4FC8010F9401650BC0E091530AF0E058 +:10DFC000EE0FFF1FED51F048859194910F9475620B +:10DFD000789406E010E00150110951F068EC70E00F +:10DFE00080E090E00F9453B780E00F94CB63F3CFC1 +:10DFF000F894FFCF0F94BA458091BB07811142C0BE +:10E0000081E08093BB078091CF099091D009A091C6 +:10E01000D109B091D2098093CB099093CC09A093F8 +:10E02000CD09B093CE09E2E4FDE08491882341F06C +:10E030009091C00095FFFCCF8093C6003196F5CF3C +:10E04000E9EFF0E885919491FC012491222341F0BD +:10E050003091C00035FFFCCF2093C6000196F4CF6D +:10E060008091C00085FFFCCF8AE08093C600E091DC +:10E07000530AF0E0EE0FFF1FE552F54885919491A9 +:10E080000D944A6208958091BB070895CF93DF9362 +:10E09000EC0180910C0A8093BC0784E50E942E5EFF +:10E0A000811102C080E084C00E94C95E0F947EC0CE +:10E0B0006093BC076623B1F3ECE3FDE08491882311 +:10E0C00041F09091C00095FFFCCF8093C60031963F +:10E0D000F5CFCD36D10509F435C064F4C836D10585 +:10E0E000B1F0C936D10509F052C0EBE8FFE7A591C0 +:10E0F000B49124C0CA3DD10509F432C0CD3DD1054B +:10E1000009F045C0EFE7FFE7A591B4913DC0EDE808 +:10E11000FFE785919491FC012491222309F437C0F3 +:10E120003091C00035FFFCCF2093C6000196F3CF9D +:10E130009091C00095FFFCCF8093C6008D91811116 +:10E14000F7CF25C0E9E8FFE7A591B4918D91882329 +:10E15000F1F09091C00095FFFCCF8093C600F6CF00 +:10E16000E1E8FFE7A591B4918D91882381F090912A +:10E17000C00095FFFCCF8093C600F6CF9091C00001 +:10E1800095FFFCCF8093C6008D918111F7CF6091F0 +:10E19000BC0770E04AE050E080EF96E00E94185D16 +:10E1A0008091C00085FFFCCF8AE08093C60081E0AB +:10E1B000DF91CF9108954F925F926F927F928F92ED +:10E1C0009F92AF92BF92CF92DF92EF92FF92CF9346 +:10E1D000DF9300D01F92CDB7DEB72B013C0129831E +:10E1E0003A834B835C838DEE9FE00F945DCB8F3F32 +:10E1F00001F58EEE9FE00F945DCB8F3FD1F48FEE53 +:10E200009FE00F945DCB8F3FA1F480EF9FE00F94D0 +:10E210005DCB8F3F71F440E050E0BA018DEE9FE09E +:10E220000F9481CB40E050E0BA0181EF9FE00F9462 +:10E2300081CB81EF9FE00F9465CB4B015C018DEEAC +:10E240009FE00F9465CB6B017C0169817A818B81A2 +:10E250009C812CE330E040E050E00F94FCC4C20EFF +:10E26000D31EE41EF51EB701A6018DEE9FE00F94AC +:10E2700081CBC301B20128EE33E040E050E00F94BF +:10E28000FCC4BA01A901480D591D6A1D7B1D81EF0F +:10E290009FE00F9481CB10924C0A10924D0A10927D +:10E2A0004E0A10924F0A0F900F900F900F90DF912F +:10E2B000CF91FF90EF90DF90CF90BF90AF909F9065 +:10E2C0008F907F906F905F904F9008952F923F9224 +:10E2D0004F925F926F927F928F929F92AF92BF9276 +:10E2E000CF92DF92EF92FF920F931F93CF93DF9322 +:10E2F000CDB7DEB76F970FB6F894DEBF0FBECDBFB8 +:10E300008FE590E00E94D25E882309F4A8C4A12C76 +:10E3100052EFE52E5BE0F52E6AE0962EBB24B39417 +:10E3200079EFC72E70E8D72E809171079091720710 +:10E330002091730730917407821B930B8F77992775 +:10E34000009709F4C1C08F379105B9F4F7018491A2 +:10E35000E2EFFBE0882349F09091C00095FFFCCFED +:10E360008093C60031968491F5CF8091C00085FFDF +:10E37000FCCF9092C600AA24A39480EF96E00E945E +:10E38000255C182F0F9424B76093990A70939A0A0A +:10E3900080939B0A90939C0A0F9424B76093950AEC +:10E3A0007093960A8093970A9093980A17FDBCCFB2 +:10E3B0002091D4073091D5071A3031F01D3021F06B +:10E3C0002F3531050CF468C02115310509F40CC254 +:10E3D0000091D9071091DA07F901E352F84FE00FE5 +:10E3E000F11F11828091D30781113CC00252184F56 +:10E3F00060E473E0C8010F94F9C89093D20780934A +:10E40000D107892B09F0A8C26EE470E0C8010F940F +:10E41000C1C89093D2078093D107892B09F0E7C137 +:10E420009BC2F801E352F84FB082F3010190002043 +:10E43000E9F73197E619F709C80102968E0F9F1F79 +:10E440008D3E31E0930709F482C29093DA078093FE +:10E45000D9078091D7079091D80701969093D80754 +:10E460008093D7071092D5071092D4078091710737 +:10E47000909172072091730730917407821B930B60 +:10E480008F779927892B09F4EAC38FE590E00E94E2 +:10E49000D25E811149CFE3C31B3311F4B092D3078D +:10E4A0008091D307811140CFE091D907F091DA072D +:10E4B000C90101969093D5078093D407E20FF31F0B +:10E4C000E252F84F108330CF80911D18882309F451 +:10E4D00062C00F9424B76093950A7093960A809354 +:10E4E000970A9093980A0091990A10919A0A20919C +:10E4F0009B0A30919C0ADC01CB01801B910BA20B83 +:10E50000B30B81329340A105B10508F444C0E091FA +:10E51000D407F091D5071E161F060CF03CC0809161 +:10E52000D9079091DA07E352F84FE80FF91F1182EB +:10E53000DC01A252B84FFD0101900020E9F73197AC +:10E54000EA1BFB0B02968E0F9F1F9093DA078093B6 +:10E55000D9078D3E914021F41092DA071092D90725 +:10E560008091D7079091D80701969093D807809310 +:10E57000D7071092D5071092D407E4EEFBE0849100 +:10E58000882309F46CC39091C00095FFFCCF809361 +:10E59000C6003196F4CFAA20A9F02091D40730917B +:10E5A000D5071216130674F48091D9079091DA07F3 +:10E5B000821B930B9093DA078093D9071092D507AB +:10E5C0001092D40780919F0A882309F448C3809150 +:10E5D000D4079091D507892B09F041C38091D707C3 +:10E5E0009091D807892B11F41092760798EE492E56 +:10E5F00093E0592E612C712C2CE3822E912CA12CAE +:10E60000B12C8E010F5F1F4F34E0232E312C40912F +:10E610003B0D50913C0D60913D0D70913E0D8091F0 +:10E62000330D9091340DA091350DB091360D4817F2 +:10E6300059076A077B0708F012C38091760781119A +:10E640000EC380918E0C90918F0CA091900CB09184 +:10E65000910C80933B0D90933C0DA0933D0DB09396 +:10E660003E0D86E89CE00E9499BB8F8F8A3021F096 +:10E67000BF8DBD3009F068C240913B0D50913C0DFB +:10E6800060913D0D70913E0D8091330D9091340D50 +:10E69000A091350DB091360D481759076A077B07D1 +:10E6A00008F495C0EBEBF0E885919491FC0124917E +:10E6B000211163C28091C00085FFFCCFFAE0F09386 +:10E6C000C6000F9424B76093C1077093C20780936C +:10E6D000C3079093C407C090C507D090C607E090C9 +:10E6E000C707F090C8076C197D098E099F09C09073 +:10E6F0005E0AD0905F0AE090600AF090610A6C199F +:10E700007D098E099F09A30192010F94FCC4690140 +:10E710007A0110925E0A10925F0A1092600A1092BB +:10E72000610A60914C0A70914D0A80914E0A909155 +:10E730004F0A41DDC701B601A50194010F94FCC445 +:10E74000CA01B901A50194010F94FCC47F936F9392 +:10E75000C701B60120E13EE040E050E00F94FCC468 +:10E760003F932F93A0EDBBE0BF93AF931F930F9305 +:10E770000F9441C9ECE3FDE084910FB6F894DEBF3D +:10E780000FBECDBF811101C2F8018191811106C276 +:10E790008091C00085FFFCCF3AE03093C600C801ED +:10E7A0000F943D628DE99AE00E9437D361E08DE9D4 +:10E7B0009AE00E944ACD80911D18882341F086E09E +:10E7C00090E00F94AD7130922218209221184F8D55 +:10E7D000433219F481E080937607E091D407F091F9 +:10E7E000D507309709F0E1C11092D30738C26EE423 +:10E7F00070E0C8010F94C1C89093D2078093D107ED +:10E80000009709F446C04AE050E060E070E00196ED +:10E810000F94DDC66093D3097093D4098093D50912 +:10E820009093D6094090CF095090D0096090D109BB +:10E830007090D209FFEF4F1A5F0A6F0A7F0A0091AA +:10E84000D9071091DA07641575058605970509F44F +:10E85000C2C06DEE7BE0C8018252984F0F946CC825 +:10E86000892B09F0B8C040C1E091D107F091D207DF +:10E8700010828091D3099091D409A091D509B091CB +:10E88000D6098093CF099093D009A093D109B09372 +:10E89000D2098091D9079091DA0767E470E082523B +:10E8A000984F0F94C1C89093D2078093D1070097D7 +:10E8B00009F43AC020919F0A211108C02AE030E0F3 +:10E8C00030937B0A20937A0AB092820A2091BB0788 +:10E8D000222351F14AE050E060E070E001960F948D +:10E8E000DDC66430710500F5F60185919491FC0157 +:10E8F0002491222341F03091C00035FFFCCF2093BA +:10E90000C6000196F4CF8091C00085FFFCCF9092A5 +:10E91000C600E091530AF0E0EE0FFF1FE552F54804 +:10E92000859194910F944A620091D9071091DA076A +:10E9300098012252384F390166E473E0C9010F94FF +:10E94000CCC8892B09F06DCD80E090E0DFDA109221 +:10E95000DA071092D9077DCD6AE270E0C8010F9402 +:10E96000C1C8892B09F495CFE2E4FDE084918823A6 +:10E9700041F09091C00095FFFCCF8093C600319686 +:10E98000F5CFEBEFF0E885919491FC0124912223DF +:10E9900041F03091C00035FFFCCF2093C6000196B6 +:10E9A000F4CF4091CF095091D0096091D109709175 +:10E9B000D2092AE030E080EF96E00E94E05C80918E +:10E9C000C00085FFFCCF8AE08093C6001092D50777 +:10E9D0001092D40744C10252184F6AE270E0C80195 +:10E9E0000F94C1C89093D2078093D107009709F084 +:10E9F00035C0E2E4FDE08491882341F09091C000AD +:10EA000095FFFCCF8093C6003196F5CFEDEFF0E88F +:10EA100085919491FC012491222341F03091C00012 +:10EA200035FFFCCF2093C6000196F4CF4091CF096B +:10EA30005091D0096091D1097091D2092AE030E05B +:10EA400080EF96E00E94E05C8091C00085FFFCCFE3 +:10EA50008AE08093C6000E940069B8CFF80110E0F8 +:10EA6000E817F90719F021911227FACF4AE050E090 +:10EA700060E070E0CF0101960F94DDC6212F30E0F9 +:10EA80002617370709F4F0CEE2E4FDE084918823ED +:10EA900041F09091C00095FFFCCF8093C600319665 +:10EAA000F5CFE7E0F1E885919491FC0124912223D0 +:10EAB00041F03091C00035FFFCCF2093C600019695 +:10EAC000F4CF4091CF095091D0096091D109709154 +:10EAD000D2092AE030E080EF96E00E94E05C80916D +:10EAE000C00085FFFCCFB4CFE2E4FDE08491882331 +:10EAF00041F09091C00095FFFCCF8093C600319605 +:10EB0000F5CFE1E0F1E885919491FC012491222375 +:10EB100041F03091C00035FFFCCF2093C600019634 +:10EB2000F4CF4091CF095091D0096091D1097091F3 +:10EB3000D2092AE030E080EF96E00E94E05C80910C +:10EB4000C00085FFFCCF84CFEF8DE33229F4209104 +:10EB5000D307211104C090CDFF8DFA33C1F320916A +:10EB6000D4073091D5072F3531050CF085CD8F3F77 +:10EB70004FEF940709F058C07FCD3091C00035FFAA +:10EB8000FCCF2093C600019691CD9091C00095FFD7 +:10EB9000FCCF8093C60031968491F4CD9091C00053 +:10EBA00095FFFCCF8093C600F0CD8091D90790915E +:10EBB000DA07E352F84FE80FF91F1182FC01E35224 +:10EBC000F84FA2E0A0832091D7073091D8072F5F9C +:10EBD0003F4F3093D8072093D707DC01A252B84F9C +:10EBE000FD0101900020E9F73197EA1BFB0B02962B +:10EBF0008E0F9F1F8D3EB1E09B0729F09093DA079F +:10EC00008093D90704C01092DA071092D9071092A6 +:10EC1000D3071092D5071092D4078FE590E00E9499 +:10EC2000D25E8111F4CC1BC0EF8DEB3319F4F1E00F +:10EC3000F093D3074091D3074111E9CCE091D90774 +:10EC4000F091DA07A9014F5F5F4F5093D5074093CA +:10EC5000D407E20FF31FE252F84F8083D8CC6F96AF +:10EC60000FB6F894DEBF0FBECDBFDF91CF911F91DD +:10EC70000F91FF90EF90DF90CF90BF90AF909F905B +:10EC80008F907F906F905F904F903F902F9008955E +:10EC9000CF92DF92EF92FF920F931F93CF93C82FE3 +:10ECA0008091D7079091D80703970CF40FDB0F944E +:10ECB00024B70091C9071091CA072091CB07309162 +:10ECC000CC07C090CD07D090CE07E090CF07F09052 +:10ECD000D0076C197D098E099F09061717072807A9 +:10ECE000390738F4012B022B032B19F080E090E058 +:10ECF0000DD940910702509108026091090270916C +:10ED00000A02452B462B472B19F10F9424B700918B +:10ED1000CD071091CE072091CF073091D007601B0F +:10ED2000710B820B930B0091070210910802209146 +:10ED3000090230910A02061717072807390740F41D +:10ED40009091721080917110981302C0CC2349F0F9 +:10ED5000CF911F910F91FF90EF90DF90CF900D9486 +:10ED60008424179A1092110A169A1092120A149A71 +:10ED7000EFCFCF92DF92EF92FF922091300A2223C1 +:10ED8000F1F020E030E040E05FE30F940BC36B0153 +:10ED90007C0120E030E0A9010F940AC0882379F0BB +:10EDA000A7019601C701B6010F940BC32BED3FE0FD +:10EDB00049E450E40F940BC39B01AC0104C020E074 +:10EDC00030E040E85FE360E070E080E89FE30F94AC +:10EDD00011C0FF90EF90DF90CF90089560913D02B9 +:10EDE00070913E0280913F0290914002C2DF609399 +:10EDF000390270933A0280933B0290933C0208954B +:10EE0000CF93DF93EC010F94224D81E041DF80E04E +:10EE10000F94CB63209799F0C233D10540F062E3A1 +:10EE200070E080E090E00F9453B7E297ECCFBE0122 +:10EE300080E090E00F9453B7C0E0D0E0E4CFDF91E2 +:10EE4000CF9108952F923F924F925F926F927F924F +:10EE50008F929F92AF92BF92CF92DF92EF92FF92EA +:10EE60001F93CF93DF934B015C01CC24CA94DC2C1D +:10EE700076014EEC242E47E0342E58EE452E53E01A +:10EE8000552E612C712C1AE08091FB09811126C14D +:10EE90002FEFC216D206E206F20651F0F7FC1EC1B1 +:10EEA0000F9424B76C197D09683B7B4008F016C1AC +:10EEB0000F9424B7681979098A099B09693E734040 +:10EEC0008105910508F47FC080911D18811177C0DC +:10EED000E6EDF7E08491882341F09091C00095FF22 +:10EEE000FCCF8093C6003196F5CFE091BC0724E0BB +:10EEF000E29FF0011124E65CF84E4081518162816D +:10EF0000738121E030E080EF96E00E940B5EE2ED3D +:10EF1000F7E08491882341F09091C00095FFFCCFE9 +:10EF20008093C6003196F5CF6091BC0770E04AE04F +:10EF300050E080EF96E00E94185DF1018491EEECC4 +:10EF4000F7E0882349F09091C00095FFFCCF8093B3 +:10EF5000C60031968491F5CFF7FE03C0E6E8F6E0EF +:10EF600025C00F9424B74B015C01C701B60168545A +:10EF7000744F8F4F9F4F681979098A099B09A30124 +:10EF800092010F94FCC4BA01A9012AE030E080EF9D +:10EF900096E00E94E05C8091C00085FFFCCF0DC030 +:10EFA0009091C00095FFFCCF8093C60081918111A4 +:10EFB000F7CF8091C00085FFFCCF1093C6000F945F +:10EFC00024B74B015C010F94224D80E061DE80E0AC +:10EFD0000F94CB63FFEFCF16DF06EF06FF0609F0B5 +:10EFE00046C08091BA07E091BC07F0E0EF01CC0F7A +:10EFF000DD1FCC0FDD1FC65CD84EEE0FFF1FEE5B92 +:10F00000F84E8823D1F080819181BC01882777FD5B +:10F010008095982F0F94ACC020E030E040E85FE38B +:10F020000F9419BF9B01AC01688179818A819B8112 +:10F030000F9439C287FF4DC027CF80819181BC01D9 +:10F04000882777FD8095982F0F94ACC020E030E0A2 +:10F0500040E85FE30F941ABF9B01AC01688179819E +:10F060008A819B810F940AC018169CF50DCFF7FC7E +:10F070000BCFE091BC07F0E0EF01CC0FDD1FCC0F10 +:10F08000DD1FC65CD84EEE0FFF1FEE5BF84E808191 +:10F090009181BC01882777FD8095982F0F94ACC093 +:10F0A0009B01AC01688179818A819B810F9419BF92 +:10F0B0000F9479C097FF07C09095809570956195E2 +:10F0C0007F4F8F4F9F4F66307105810591050CF47E +:10F0D000DBCE0F9424B76B017C01D6CEDF91CF91AC +:10F0E0001F91FF90EF90DF90CF90BF90AF909F90D7 +:10F0F0008F907F906F905F904F903F902F900895EA +:10F10000CF93DF931F921F92CDB7DEB7BE016F5F23 +:10F110007F4F88EF9FE00F94716189819A818156BA +:10F12000904F803A9F4020F11A821982E5EAF7E079 +:10F130008491882341F09091C00095FFFCCF80938B +:10F14000C6003196F5CF8091C00085FFFCCF8AE0E4 +:10F150008093C600BE016F5F7F4F88EF9FE00F94E2 +:10F16000606188E697E00F94F56581E00F94C564CF +:10F170000F900F90DF91CF9108950E94536540E961 +:10F1800050ED63E070E080EF96E00E94EF5BE4E614 +:10F19000FCE08491882341F09091C00095FFFCCF62 +:10F1A0008093C6003196F5CF8091C00085FFFCCFDB +:10F1B0008AE08093C6002CE33DE0F9018491882326 +:10F1C00041F09091C00095FFFCCF8093C60031962E +:10F1D000F5CF44B740FF17C0E3EDFDE7859194916B +:10F1E000FC015491552341F06091C00065FFFCCFB4 +:10F1F0005093C6000196F4CF8091C00085FFFCCFEC +:10F200008AE08093C60041FF17C0E7EFF0E88591E0 +:10F210009491FC015491552341F06091C00065FF29 +:10F22000FCCF5093C6000196F4CF8091C00085FFBB +:10F23000FCCF8AE08093C60042FF17C0E7EEF1E8FA +:10F2400085919491FC015491552341F06091C00047 +:10F2500065FFFCCF5093C6000196F4CF8091C000AB +:10F2600085FFFCCF8AE08093C60043FF17C0E7EF1D +:10F27000F9E785919491FC015491552341F06091F7 +:10F28000C00065FFFCCF5093C6000196F4CF80917B +:10F29000C00085FFFCCF8AE08093C60045FF17C001 +:10F2A000E1E4FBE785919491FC014491442341F012 +:10F2B0005091C00055FFFCCF4093C6000196F4CF9B +:10F2C0008091C00085FFFCCF8AE08093C60014BE09 +:10F2D000F9018491ECE3FDE0882349F09091C000AE +:10F2E00095FFFCCF8093C60031968491F5CFE3E87B +:10F2F000F1E885919491FC014491442341F05091AF +:10F30000C00055FFFCCF4093C6000196F4CFEFE458 +:10F31000FCE08491882341F09091C00095FFFCCFE0 +:10F320008093C6003196F5CFEDE3F3E88591949193 +:10F33000FC014491442341F05091C00055FFFCCFA3 +:10F340004093C6000196F4CFEEE3FCE0849188235D +:10F3500041F09091C00095FFFCCF8093C60031969C +:10F36000F5CF8091C00085FFFCCF8AE08093C60076 +:10F37000E3E3FCE08491882341F09091C00095FF85 +:10F38000FCCF8093C6003196F5CFE7E2FCE0849194 +:10F39000882341F09091C00095FFFCCF8093C60078 +:10F3A0003196F5CF8091C00085FFFCCF8AE0809335 +:10F3B000C600F9012491ECE3FDE0222349F080919D +:10F3C000C00085FFFCCF2093C60031962491F5CF75 +:10F3D000E3E6F0E885919491FC012491222341F029 +:10F3E0003091C00035FFFCCF2093C6000196F4CFCA +:10F3F0000E94C7C14AE050E0BC0180EF96E00E9445 +:10F40000185DE3EEFDE785919491FC0124912223A0 +:10F4100041F03091C00035FFFCCF2093C60001962B +:10F42000F4CF4AE050E060E575E080EF96E00E949E +:10F43000185D8091C00085FFFCCF8AE08093C600F4 +:10F4400080E00F94C5640E9406580E94DEC10F94AC +:10F45000E2440F9449240F945A410E94A5EF0F945F +:10F4600090638091000186FD3BC0FFEF23ED80E3B8 +:10F47000F15020408040E1F700C000008091000181 +:10F4800086FD37C00F94326189E19CE00F94BE780D +:10F49000809101018460809301019FB7F89480916D +:10F4A00002018460809302019FBF8091000186FF6A +:10F4B000FCCF9FB7F894809102018B7F809302016B +:10F4C0009FBF9FEFE7EAF1E69150E040F040E1F79F +:10F4D00000C000000F94A16660E00E94566509C05C +:10F4E0002FEF83ED90E3215080409040E1F700C082 +:10F4F0000000159884EC9FE00F945DCB80931D185D +:10F500006BE178E181EC9FE00F94716120911D180F +:10F5100080911B1890911C182F3F11F4009721F037 +:10F520008F3FEFEF9E0711F410921D18019621F402 +:10F5300010921C1810921B1880911D18882321F01E +:10F5400088E090E00F94AD718BEB9FE00F945DCB62 +:10F5500091E0813009F090E09093630C8DE99AE09E +:10F560000E942FC98CEF9FE00F9465CB6F3F7F4FB8 +:10F570008F4F9F4FB9F488EF9FE00F9465CB6F3F9B +:10F580007F4F8F4F9F4F71F484EF9FE00F9465CBB7 +:10F590006F3F7F4F8F4F9F4F29F460E08FEF9FE0C9 +:10F5A0000F948DCB8EEF9FE00F945DCB8093530A29 +:10F5B000873010F00F94479E8FEA9FE00F945DCB49 +:10F5C0008F3F41F460E08FEA9FE00F948DCB109263 +:10F5D000800A06C091E0811101C090E09093800AFA +:10F5E00086EA9FE00F945DCB8F3F29F460E086EAC6 +:10F5F0009FE00F948DCB84DD87EF9FE00F945DCB70 +:10F600009FEF980F9E3F70F160E070E088EF9FE001 +:10F610000F9489CBE091530AF0E0EE0FFF1FEB59F6 +:10F62000FF47859194910F94F56563E87AE087EA46 +:10F630009FE00F94716165E87AE089EA9FE00F949A +:10F64000716167E87AE08BEA9FE00F94716169E885 +:10F650007AE08DEA9FE00F94716181E00F94C564B8 +:10F660000D9495B6863E41F4E091530AF0E0EE0F1A +:10F67000FF1FEF5EFC4711C08130B9F48091800A12 +:10F68000882399F20E94BE628111CFCFE091530A84 +:10F69000F0E0EE0FFF1FED50F248859194910F942A +:10F6A000F56581E00F94C564C0CF803F09F0BDCF00 +:10F6B000B1CF8F929F92AF92BF92CF92DF92EF9293 +:10F6C000FF920F931F93CF93DF9381E08093470ABC +:10F6D00085E090E09093450A8093440A89E790E0A2 +:10F6E0009093430A8093420A82E00F94CB63E091A7 +:10F6F0000C0A84E0E89FF0011124E65CF84E20E05B +:10F7000030E042E053E460817181828193810F9403 +:10F7100039C21816B4F420E030E040E85FE36091AD +:10F720002C0A70912D0A80912E0A90912F0A0F9425 +:10F7300019BF60932C0A70932D0A80932E0A909320 +:10F740002F0AE090280AF090290A00912A0A1091C5 +:10F750002B0A2091240A3091250A4091260A5091C3 +:10F76000270A6091200A7091210A8091220A9091C3 +:10F77000230ACCE0DAE0DF93CF93812C912CB8EC14 +:10F78000AB2EB3E4BB2EECE2CE2EEAE0DE2E0F94DD +:10F79000152680E090E0ACE8B2E48093200A9093D4 +:10F7A000210AA093220AB093230A80E090E0A0E40B +:10F7B000B0EC8093240A9093250AA093260AB09374 +:10F7C000270A80E090E0A0E8BFE38093280A9093A6 +:10F7D000290AA0932A0AB0932B0ADF93CF93812C96 +:10F7E000912CF8E4AF2EF2E4BF2EE12CF12C00E8CE +:10F7F0001FE320E030E040E450EC60E070E08CE893 +:10F8000092E40F9415260F94B93E0F900F900F902D +:10F810000F906091401770914117882777FD809570 +:10F82000982F0F94ACC09B01AC016091341770917C +:10F83000351780913617909137170F9419BF9F771E +:10F8400020E030E040E85FE30F9439C2181624F45A +:10F8500088EE93E0D5DADDCFC8E7D0E088EE93E01C +:10F86000CFDAD093430AC093420AC336D10519F0C8 +:10F87000C930D10511F482E001C081E00F94CB635F +:10F88000219761F71092450A1092440A1092430A98 +:10F890001092420A1092470ADF91CF911F910F9167 +:10F8A000FF90EF90DF90CF90BF90AF909F908F90A0 +:10F8B00008952F923F924F925F926F927F928F9214 +:10F8C0009F92AF92BF92CF92DF92EF92FF920F93EF +:10F8D0001F93CF93DF93CDB7DEB7CA58D2400FB690 +:10F8E000F894DEBF0FBECDBFC958DD4F6883798362 +:10F8F0008A839B83C757D240FE01E75FFD4F88E2B2 +:10F90000DF011D928A95E9F7E850F24080E991E025 +:10F91000DF019C011D9221503040E1F7C75ADD4FB5 +:10F9200019821882C955D240CE01875A9D4F5C0179 +:10F930004E019FE6891A9EEF990ADE01AF51BE4F34 +:10F940003D0190EBC92E9FE0D92E22E3E22EF12C4F +:10F9500000E010E0C359DD4F8882CD56D240CD582B +:10F96000DD4F9882C357D240B701882777FD809535 +:10F97000982F0F94ACC0D3016D937D938D939D937D +:10F980003D01F501619171915F01882777FD8095B7 +:10F99000982F0F94ACC0D4016D937D938D939D935C +:10F9A0004D010F5F1F4F0630110559F0B501C6011B +:10F9B0000F947161BAE0EB0EF11CE2E0CE0ED11CA7 +:10F9C000D3CFCF51DE4F288139814A815B81C15E1F +:10F9D000D140C958DD4F688179818A819B81C757A1 +:10F9E000D2400F940AC087FD2BC3FE01EF51FE4F9A +:10F9F0007F016E01FFE2CF1AFEEFDF0A3E012BEB23 +:10FA0000621A2DEF720AC359DD4F0881CD56D240DC +:10FA1000CD58DD4F1881C357D24085E090E0CF58D4 +:10FA2000DD4F99838883C157D240CF58DD4FA881DD +:10FA3000B981C157D2401197CF58DD4FB983A88300 +:10FA4000C157D240F701208931894289538964899D +:10FA50007589868997890F9419BF4B015C01D8017C +:10FA600050962D913D914D915C91539754966D9187 +:10FA70007D918D919C9157970F9419BFA501940189 +:10FA80000F9411C0F60192938293729362936F0167 +:10FA9000D301BE92AE929E928E923D010450110906 +:10FAA000B4E0EB1AF108CF58DD4FE881F981C15776 +:10FAB000D240EF2B09F0B9CF6E01FFECCF1AFDEF6A +:10FAC000DF0A3E0127E4621A2EEF720A2E013DE39F +:10FAD000430E511CCE0101967C0101E010E0D601DD +:10FAE0008D909D90AD90BC90139714962D913D9163 +:10FAF0004D915C911797C501B4010F941ABF9B01FA +:10FB0000AC010F941ABFF70164A775A786A797A742 +:10FB10000130110541F080A691A6A2A6B3A6848269 +:10FB20009582A682B7820F5F1F4FD30114962D9145 +:10FB30003D914D915C91179718966D917D918D91A6 +:10FB40009C911B970F9419BF20E030E040EC50E4EB +:10FB50000F940BC3F2016083718382839383F4E07B +:10FB6000CF0ED11C2CE2E20EF11C34E0630E711CAE +:10FB700088E2480E511C0530110509F0B0CF8E0106 +:10FB80000B5A1F4F6E0191E5C90ED11C22242394FC +:10FB9000312C2C0E3D1EA8ED2A0E311CF801B89711 +:10FBA0002081318142815381F8016081718182819C +:10FBB00093810F9411C04B015C01E12CF12C3601B3 +:10FBC000F8E26F1A710826014E0C5F1CF301EE0D6E +:10FBD000FF1D2481358146815781C501B4010F94F1 +:10FBE0000BC39B01AC01D20114966D917D918D9157 +:10FBF0009C9117970F9419BFF201648375838683D4 +:10FC00009783F4E0EF0EF11C24E1E216F104D9F63B +:10FC1000045D1F4F38E2C30ED11C0215130509F015 +:10FC2000BDCF1E0185EB280E311C6E0191EBC90E74 +:10FC3000D11C3E01A7EE6A1AADEF7A0AB4E0EB2EB2 +:10FC4000F12C270100E010E0812C912CA12CB12C8B +:10FC5000F601E00FF11FD301A00FB11F2D913D91CF +:10FC60004D915C9160817181828193810F940BC36E +:10FC70009B01AC01B401C5010F941ABF4B015C019B +:10FC8000BFEF4B1A5B0A0C5F1F4FE5E04E165104A5 +:10FC9000F9F69B01AC01D1016D917D918D919C9103 +:10FCA0000F9419BFF60120813181428153810F9455 +:10FCB00011C0D3016D937D938D939C931397B1E005 +:10FCC000EB1AF108E8E22E1A3108FCE2CF1AD1084B +:10FCD00024E0621A7108E114F10409F0B2CFCB50AC +:10FCE000DE4F88819981AA81BB81C55FD140C95708 +:10FCF000DD4F88839983AA83BB83C758D2408E0186 +:10FD0000075F1D4FDE01AF5CBD4FC558DD4FB983A6 +:10FD1000A883CB57D240C359DD4F2880CD56D2405F +:10FD2000CD58DD4F3880C357D240FE01EF51FE4F12 +:10FD3000C358DD4FF983E883CD57D240C358DD4F18 +:10FD4000A881B981CD57D240CD90DD90ED90FD9046 +:10FD5000C358DD4FB983A883CD57D240C958DD4F72 +:10FD6000288139814A815B81C757D240C701B601DA +:10FD70000F940AC01816B4F0C358DD4FE881F9811A +:10FD8000CD57D2402081318142815381C958DD4F06 +:10FD9000688179818A819B81C757D2400F940AC0BC +:10FDA0001816FCF4CF58DD4F28813981C157D24055 +:10FDB0002430310509F01FC1C957DD4F2881398131 +:10FDC0004A815B81C758D240C958DD4F688179812B +:10FDD0008A819B81C757D2400F9439C218160CF004 +:10FDE0000AC1D80114968D919D910D90BC91A02DC2 +:10FDF000C158DD4F88839983AA83BB83CF57D240F4 +:10FE0000F8014080518062807380C558DD4FA88121 +:10FE1000B981CB57D2408D919D910D90BC91A02D71 +:10FE2000C359DD4F88839983AA83BB83CD56D240C3 +:10FE3000D1018D919D910D90BC91A02DCD57DD4F9D +:10FE400088839983AA83BB83C358D240A7019601B4 +:10FE5000C958DD4F688179818A819B81C757D2401B +:10FE60000F9419BFCD58DD4F688379838A839B83B4 +:10FE7000C357D24020E030E040E450E40F946EC31A +:10FE80006B017C01A3019201C158DD4F688179812A +:10FE90008A819B81CF57D2400F9419BF4B015C01DF +:10FEA00020E030E040EC50E4C359DD4F68817981B7 +:10FEB0008A819B81CD56D2400F940BC39B01AC012C +:10FEC000C501B4010F9411C0A70196010F940BC393 +:10FED0006B017C0120E030E040E05FE3C301B20150 +:10FEE0000F940BC34B015C01CD58DD4F2881398144 +:10FEF0004A815B81C357D240CA01B9010F940BC339 +:10FF00009B01AC01C501B4010F940BC39B01AC0173 +:10FF1000C701B6010F941ABF6B017C01CD57DD4FAD +:10FF2000288139814A815B81C358D240F1016481C3 +:10FF30007581868197810F9419BFC359DD4F288140 +:10FF400039814A815B81CD56D2400F9411C04B015B +:10FF50005C01C359DD4F288139814A815B81CD56CF +:10FF6000D240CA01B9010F941ABFA30192010F94A4 +:10FF70000BC32B013C01C359DD4F288139814A81D4 +:10FF80005B81CD56D240C158DD4F688179818A812D +:10FF90009B81CF57D2400F940BC39B01AC01C3018F +:10FFA000B2010F941ABF20E030E040EC50E40F940F +:10FFB00011C09B01AC01C501B4010F9419BFCD580C +:10FFC000DD4F288139814A815B81C357D2400F942C +:10FFD0000BC39B01AC01C701B6010F941ABFCD57EB +:10FFE000DD4F288139814A815B81C358D2400F940B +:10FFF0001ABF4B015C01CF58DD4F28813981C157B1 +:020000021000EC +:10000000D2402F5F3F4FCF58DD4F39832883C157F0 +:10001000D2400C5F1F4FC558DD4F88819981CB5767 +:10002000D2400496C558DD4F99838883CB57D24080 +:1000300094E0290E311C2530310509F07FCE04C033 +:10004000812C912CA12CB12CB401C501C657DD4FD8 +:100050000FB6F894DEBF0FBECDBFDF91CF911F91D9 +:100060000F91FF90EF90DF90CF90BF90AF909F9057 +:100070008F907F906F905F904F903F902F9008955A +:100080008F929F92AF92BF92CF92DF92EF92FF92A8 +:100090000F931F93CF93DF931F921F92CDB7DEB7BD +:1000A0001A82198287EF9FE00F945DCB813009F0AF +:1000B0009DC02091401730914117EAE0F0E0C9015E +:1000C000BF010F94E9C4892BD9F4C901CC978932B7 +:1000D0009105B0F4BF010F94E9C4CB018852984F49 +:1000E000BE016F5F7F4F880F991F0F947161698107 +:1000F0007A81882777FD8095982F0F94ACC008C02F +:10010000B901882777FD8095982F0F94ACC0D1DB7B +:100110002091361630913716409138165091391685 +:100120000F9411C06B017C01E6E6F7E0849188230F +:1001300041F09091C00095FFFCCF8093C6003196AE +:10014000F5CFE5E5F7E08491882341F09091C00078 +:1001500095FFFCCF8093C6003196F5CF22E030E0CA +:10016000B701A60180EF96E00E940B5E20E030E030 +:1001700040E252E460915102709152028091530228 +:10018000909154020F9411C04B015C01A70196019C +:100190006091280A7091290A80912A0A90912B0A6D +:1001A0000F9419BF7B018C012091240A3091250AFC +:1001B0004091260A5091270A6091200A7091210AE5 +:1001C0008091220A9091230AECE0FAE0FF93EF93EA +:1001D000ECE2CE2EEAE0DE2E0F9415260F94B93E07 +:1001E00088E29AE00F9421340F900F900F900F90B7 +:1001F000DF91CF911F910F91FF90EF90DF90CF9003 +:10020000BF90AF909F908F9008954F925F926F92A2 +:100210007F928F929F92AF92BF92CF92DF92EF9296 +:10022000FF920F931F93CF93DF93CDB7DEB728973D +:100230000FB6F894DEBF0FBECDBF0F94B93E8091CC +:1002400047029091480290938C0A80938B0AE09128 +:100250000C0AF0E0EE0FFF1FEE5BF84E608171813B +:10026000882777FD8095982F0F94ACC06093740A0F +:100270007093750A8093760A9093770A80910A0AA0 +:1002800090910B0A9093730A8093720A0F9424B78B +:1002900060935A0A70935B0A80935C0A90935D0A9C +:1002A0008091200A9091210AA091220AB091230AFC +:1002B00089839A83AB83BC838093620A9093630A99 +:1002C000A093640AB093650A4090240A5090250ACE +:1002D0006090260A7090270A4092660A5092670A38 +:1002E0006092680A7092690A8091280A9091290A9E +:1002F000A0912A0AB0912B0A8D839E83AF83B88781 +:1003000080936A0A90936B0AA0936C0AB0936D0A6B +:1003100060912C0A70912D0A80912E0A90912F0ADB +:1003200060936E0A70936F0A8093700A9093710ABB +:1003300020E030E040E85FE30F9419BF60932C0A9F +:1003400070932D0A80932E0A90932F0A8CE09AE0E6 +:100350009F938F93812C912CB8ECAB2EB3E4BB2EE2 +:100360001CE2C12E1AE0D12EED80FE800F8118858F +:10037000A301920169817A818B819C810F9415265A +:1003800020E030E040EA51E46091280A7091290AA7 +:1003900080912A0A90912B0A0F941ABF2B013C01DD +:1003A0000F900F9020E030E042E553E40F9439C203 +:1003B00018164CF04092280A5092290A60922A0A94 +:1003C00070922B0A0CC080E090E0A2E5B3E4809329 +:1003D000280A9093290AA0932A0AB0932B0AE09046 +:1003E000280AF090290A00912A0A10912B0A2091DC +:1003F000240A3091250A4091260A5091270A6091DB +:10040000200A7091210A8091220A9091230AACE07F +:100410006A2EAAE07A2E7F926F92812C912CB0E7FF +:10042000AB2EB1E4BB2EECE2CE2EEAE0DE2E0F9432 +:1004300015261092431710924217109245171092EA +:100440004417109247171092461780E090E0A8E4F6 +:10045000B2E48093200A9093210AA093220AB093D9 +:10046000230A80E090E0AEE3B3E48093240A909303 +:10047000250AA093260AB093270AE090280AF09054 +:10048000290A00912A0A10912B0A7F926F92812CDF +:10049000912CF8E4AF2EF2E4BF2E9C01AD01C50112 +:1004A000B4010F94152610920B0A10920A0A0F90AD +:1004B0000F900F900F9028960FB6F894DEBF0FBEE6 +:1004C000CDBFDF91CF911F910F91FF90EF90DF9003 +:1004D000CF90BF90AF909F908F907F906F905F90E4 +:1004E0004F900D94B93EE0910C0A84E0E89FF00132 +:1004F0001124E65CF84E4081518162817381E2E50E +:10050000F7E08491882341F09091C00095FFFCCFE3 +:100510008093C6003196F5CF22E030E080EF96E080 +:100520000E940B5EEEE4F7E08491882341F0909105 +:10053000C00095FFFCCF8093C6003196F5CF609147 +:100540000C0A70E04AE050E080EF96E00E94185DEF +:10055000EAE4F7E08491882341F09091C00095FF90 +:10056000FCCF8093C6003196F5CF4091341750915F +:100570003517609136177091371721E030E080EF22 +:1005800096E00E940B5E8091C00085FFFCCF8AE060 +:100590008093C60008958091890C882349F040918A +:1005A0003B0D50913C0D60913D0D70913E0D03C08F +:1005B00040E050E0BA018AE99FE00D9481CB2F9290 +:1005C0003F924F925F926F927F928F929F92AF92E3 +:1005D000BF92CF92DF92EF92FF920F931F93CF9330 +:1005E000DF93CDB7DEB7C655D1090FB6F894DEBF9D +:1005F0000FBECDBF50988BE493E00E941A5E882313 +:10060000A1F00091D1071091D2070B5F1F4F6AE252 +:1006100070E0C8010F94C1C8009711F0DC011C9272 +:10062000C8010F943D620C9437AB80E493E00E94C4 +:100630001A5E882309F42BC180E593E00E941A5EBC +:10064000882391F080911D18882311F40C9437AB06 +:100650000F9424B76093910A7093920A8093930A3F +:100660009093940A0C9437AB85E593E00E941A5E50 +:10067000882361F06091500A7091510A4AE050E07D +:1006800080EF96E00E946A5D0C9437AB89E593E0B9 +:100690000E941A5E8823C1F080911D18882361F0A2 +:1006A00060911B1870911C184AE050E080EF96E0B2 +:1006B0000E941F5D0C9437AB6CE573E080EF96E011 +:1006C0000E940B5D0C9437AB8EE693E00E941A5E9D +:1006D000882379F16091D1077091D2076D5F7F4FC8 +:1006E00021E041E08DE99AE00E94B2CE80918E0C2B +:1006F00090918F0CA091900CB091910C80933B0D38 +:1007000090933C0DA0933D0DB0933E0D86E89CE088 +:100710000E9499BB2091C00025FFFCCF8093C600AA +:100720000A9721F760E08DE99AE00E9442CE0C948E +:1007300037AB81E793E00E941A5E882399F00E940C +:10074000136881E08093520A6091D1077091D207BB +:100750006C5F7F4F21E040E08DE99AE00E94B2CECD +:100760000C9437AB85E793E00E941A5E8823A9F0CA +:10077000E9E7F3E08191882339F09091C00095FF7B +:10078000FCCF8093C600F6CF8091C00085FFFCCFE0 +:100790008AE08093C6000C9437AB84E893E00E9413 +:1007A0001A5E8823A9F0E8E8F3E08191882339F004 +:1007B0009091C00095FFFCCF8093C600F6CF80914A +:1007C000C00085FFFCCF8AE08093C6000C9437AB55 +:1007D00086EA93E00E941A5E882321F00F94DB6181 +:1007E0000C9437AB8BEA93E00E941A5E882341F0A9 +:1007F00060E070E088EF9FE00F9460610C9437AB8D +:100800008EEA93E00E941A5E882359F06EEA73E044 +:1008100080EF96E00E940B5D40E950ED63E070E0F0 +:1008200010C089EB93E00E941A5E882381F069EB87 +:1008300073E080EF96E00E940B5D40EA55E266E2CD +:1008400070E080EF96E00E94EF5B0C9424B385EC9F +:1008500093E00E941A5E882361F00F9424B760939E +:100860007C0A70937D0A80937E0A90937F0A0C9491 +:1008700037AB8AEC93E00E941A5E882311F40C9443 +:1008800037AB61E080E00E9456650C9437AB8EE593 +:100890000E942E5E81110C9437AB87E40E942E5E7D +:1008A000882311F40C94AE900E94C95E0F9479C015 +:1008B0006B34710509F406C70CF050C06430710543 +:1008C00009F4FFC354F46230710509F4E2C30CF07B +:1008D000ECC377FF92C00C9437AB6B30710509F411 +:1008E00046C45CF46A30710511F00C9437AB60E0DB +:1008F00081E00E94F96C0C9437AB6C31710509F4FE +:100900003CC46E31710511F00C9437AB0F94B93EB5 +:1009100081E00E944F5E8091510290915202A0911D +:100920005302B091540280930B0290930C02A09357 +:100930000D02B0930E0220E030E043E060E070E092 +:1009400080E291EC0E94DEF2E091530AF0E0EE0FBB +:10095000FF1FED5FFC47859194914EC66735710589 +:1009600011F40C942E90DCF46035710511F40C94A4 +:10097000168F34F46C34710509F4D1C60C9437AB7E +:100980006135710511F40C94758F6635710511F0A0 +:100990000C9437AB86EE0E94B8620C9437AB6C3582 +:1009A000710511F40C9437907CF46A35710511F4DB +:1009B0000C9433906B35710511F00C9437AB81E0DA +:1009C0008093CA090C9437AB6236710511F40C940C +:1009D00099906336710511F00C9437AB10921D1885 +:1009E0000F94E06160911D1884EC9FE00F946FCB31 +:1009F00082E00F94CB630C9437AB8091BB078111DD +:100A00000C9437AB489BDAC2809147029091480220 +:100A100090934202809341022091200A3091210A52 +:100A20004091220A5091230A28AF39AF4AAF5BAFF9 +:100A30002F8F38A349A35AA34090240A5090250A27 +:100A40006090260A7090270A4BA25CA26DA27EA23B +:100A50008091280A9091290AA0912A0AB0912B0A24 +:100A60008CAF9DAFAEAFBFAF8FA398A7A9A7BAA712 +:100A700060912C0A70912D0A80912E0A90912F0A74 +:100A800029833A834B835C834D825E826F827886B2 +:100A90002CAD3DAD4EAD5FAD29873A874B875C8766 +:100AA0006D877E878F87988B20E030E040E050E4B0 +:100AB0000F9419BF6BA77CA78DA79EA71CE0212EC2 +:100AC0001AE0312E3F922F92812C912C08ECA02E0F +:100AD00003E4B02EAE01455D5F4F6A01ECACFDACA6 +:100AE0000EAD1FADA301920168AD79AD8AAD9BAD8E +:100AF0000F94152620E030E040EA51E46FA178A57C +:100B000089A59AA50F941ABF7B018C016FA378A7C2 +:100B100089A79AA72BA13CA14DA15EA16F8D78A1B9 +:100B200089A19AA13F922F92812C912CE6E9AE2EB9 +:100B3000E3E4BE2E0F9415261F8E18A219A21AA246 +:100B40008DEC9CECACE0B0EC8BA39CA3ADA3BEA35E +:100B5000EFA0F8A409A51AA53F922F92812C912C01 +:100B6000FCE8AF2EF2E4BF2E9C01AD0160E070E026 +:100B7000CB010F94152620E030E040EA52E46BA54B +:100B80007CA58DA59EA50F9419BF6BA77CA78DA7EB +:100B90009EA7EFA0F8A409A51AA52BA13CA14DA1E1 +:100BA0005EA16F8D78A189A19AA13F922F92812C8D +:100BB000912CA0EAAA2EA1E4BA2E0F9415260F9428 +:100BC000B93E149A64E670E080E090E00F9453B769 +:100BD0000F94C78A0FB6F894DEBF0FBECDBF00E0FA +:100BE00010E0F12C0F94EC6581112AC0F3940F945E +:100BF000224D81E00E944876F110F4CF043FF1E0ED +:100C00001F0711F400E010E08091010184608093DF +:100C100001010115110531F49FB7F894809102018B +:100C2000846008C00431110541F49FB7F8948091A5 +:100C300002018B7F809302019FBF0F5F1F4FD2CFB6 +:100C40009FB7F894809102018B7F809302019FBF30 +:100C500020E030E04CE852E46BA57CA58DA59EA574 +:100C60000F941ABF6BA77CA78DA79EA7EFA0F8A42F +:100C700009A51AA52BA13CA14DA15EA16F8D78A15C +:100C800089A19AA1FCE06F2EFAE07F2E7F926F92ED +:100C9000812C912CA0EAAA2EA1E4BA2EDE019B960B +:100CA0006D010F94152620E030E048E452E46BA576 +:100CB0007CA58DA59EA50F941ABF6BA77CA78DA7B9 +:100CC0009EA7EFA0F8A409A51AA52BA13CA14DA1B0 +:100CD0005EA16F8D78A189A19AA17F926F92812CDC +:100CE000912CA12CB0E4BB2E0F9415261092790AFA +:100CF0001092780A0F94488B0F900F900F900F90DE +:100D00008091780A9091790A019709F489C010922C +:100D1000790A1092780A0F94928B8091780A9091B8 +:100D2000790A8230910571F1039709F076C020E0CD +:100D300030E048E452E46BA57CA58DA59EA50F94F8 +:100D40001ABF6BA77CA78DA79EA7EFA0F8A409A543 +:100D50001AA52BA13CA14DA15EA16F8D78A189A1FF +:100D60009AA17F926F92812C912CA12CA0E4BA2E93 +:100D7000DE019B966D010F9415260F94FE8A0F904D +:100D80000F90BECF20E030E04CE852E46BA57CA58C +:100D90008DA59EA50F941ABF6BA77CA78DA79EA7B4 +:100DA000EFA0F8A409A51AA52BA13CA14DA15EA115 +:100DB0006F8D78A189A19AA17F926F92812C912C3D +:100DC000B0EAAB2EB1E4BB2EDE019B966D010F9411 +:100DD000152620E030E048E452E46BA57CA58DA503 +:100DE0009EA50F941ABF6BA77CA78DA79EA7EFA007 +:100DF000F8A409A51AA52BA13CA14DA15EA16F8D58 +:100E000078A189A19AA17F926F92812C912CA12C1B +:100E1000E0E4BE2E0F9415266DCF0F94EB8A70CFB1 +:100E200020E030E040EA50E46BA57CA58DA59EA5AE +:100E30000F941ABF6BA77CA78DA79EA7EFA0F8A45D +:100E400009A51AA52BA13CA14DA15EA16F8D78A18A +:100E500089A19AA1ECE06E2EEAE07E2E7F926F923D +:100E6000812C912CA12CF0E4BF2EFE01BB966F01CA +:100E70000F941526A50194016BA57CA58DA59EA5B3 +:100E80000F9419BF6BA77CA78DA79EA7EFA0F8A40E +:100E900009A51AA52BA13CA14DA15EA16F8D78A13A +:100EA00089A19AA17F926F92812C912CA8ECAA2EF5 +:100EB000A3E4BA2E0F941526EFA0F8A409A51AA54D +:100EC0002BA13CA14DA15EA16F8D78A189A19AA112 +:100ED0007F926F92812C912CBCE8AB2EB2E4BB2E9A +:100EE0000F941526EFA0F8A409A51AA52D813E811F +:100EF0004F81588569817A818B819C817F926F9225 +:100F00000F941526E984FA840B851C852D813E817A +:100F10004F81588569817A818B819C817F926F9204 +:100F2000812C912CE8E4AE2EE3E4BE2E0F9415261E +:100F300020E030E040E050E46BA57CA58DA59EA5A7 +:100F40000F941ABF6BA77CA78DA79EA7E984FA848C +:100F50000B851C852D813E814F81588569817A8161 +:100F60008B819C817F926F92812C912CF0EAAF2E25 +:100F7000F0E4BF2E0F941526CE010D960F94443445 +:100F800080914102909142028093470290934802DF +:100F90009F938F9387EC9BE09F938F938E01015DCE +:100FA0001F4F1F930F930F9441C960E0C8010E9427 +:100FB000B5630FB6F894DEBF0FBECDBF0E942E6999 +:100FC00060914C0A70914D0A80914E0A90914F0A9F +:100FD0000F94AAC04B015C01C0902C0AD0902D0A3E +:100FE000E0902E0AF0902F0A4090F7095090F809EF +:100FF0006090F9097090FA09A3019201C701B60146 +:101000000F9419BF20E030E048EC52E40F940BC37A +:101010009B01AC01C501B4010F9439C21816E4F468 +:10102000A7019601C301B2010F9419BF20E030E07F +:1010300048EC52E40F940BC39B01AC01C501B40111 +:101040000F941ABF0F947EC060934C0A70934D0AA0 +:1010500080934E0A90934F0A8091090A8823A9F041 +:1010600088E50E942E5E811110C089E50E942E5EE7 +:1010700081110BC08AE50E942E5E811106C085E4B5 +:101080000E942E5E81110C943AAB0E94F66B0C9478 +:1010900037AB8091BB0781110C9437AB0E94B169CB +:1010A00081E00E94D46E0C9437AB8091BB07811114 +:1010B0000C9437AB0E94B16980E00E94D46E0C940E +:1010C00037AB80E50E942E5E882339F00E94C95E0E +:1010D0000F947EC04B015C0103C0812C912C540104 +:1010E00083E50E942E5E882361F00E94C95E20E0A5 +:1010F00030E04AE754E40F940BC30F947EC04B01D9 +:101100005C0181149104A104B10459F0E091530AE7 +:10111000F0E0EE0FFF1FE15EFE47859194910F9482 +:101120004A620F94B93E0F9424B72B013C01480C3E +:10113000591C6A1C7B1C0F9424B76093CD077093D5 +:10114000CE078093CF079093D0070F9424B76415F0 +:1011500075058605970510F00C9437AB0F94224D5A +:1011600080E00E94487680E00F94CB63EECF60E091 +:1011700080E00E94F96C0C9437AB11E01093810A67 +:101180001092930F0E94DEEF0F94EF1880910B02E4 +:1011900090910C02A0910D02B0910E028093D7099C +:1011A0009093D809A093D909B093DA0980914702A6 +:1011B0009091480290938C0A80938B0A84E690E089 +:1011C00090934802809347020F9424B76093CD0711 +:1011D0007093CE078093CF079093D00781E00F9450 +:1011E0007C358091200A9091210AA091220AB09129 +:1011F000230A8093EB099093EC09A093ED09B09337 +:10120000EE094091240A5091250A6091260A7091B6 +:10121000270A4093EF095093F0096093F109709306 +:10122000F2094091280A5091290A60912A0A709186 +:101230002B0A4093F3095093F4096093F5097093D6 +:10124000F60940912C0A50912D0A60912E0A709156 +:101250002F0A4093F7095093F8096093F9097093A6 +:10126000FA0910920B0210920C0210920D021092C9 +:101270000E0288E50E942E5E882311F080E009C0EE +:1012800089E50E942E5E8111F9CF8AE50E942E5ECB +:10129000812780930F0281110C9469AB88E50E942D +:1012A0002E5E81110C9469AB80910F0281110C9418 +:1012B0006FAB89E50E942E5E81110C946FAB88E5BF +:1012C0000E942E5E882341F00E94445E672B682BAB +:1012D000692B11F00C9475AB89E50E942E5E882372 +:1012E00041F00E94445E672B682B692B11F00C942F +:1012F0008BAB80910F02811106C08AE50E942E5EA1 +:10130000882309F4EDC08091110A882311F40C940C +:10131000A1AB8091120A882311F40C94A1AB0E9416 +:1013200033F0EAE4FEE885919591A591B491898323 +:101330009A83AB83BC83E6E4FEE885919591A59101 +:10134000B4918F8F98A3A9A3BAA32FEE39E04BEEE7 +:1013500059E0BE016F5F7F4FCE014F960E94E7605C +:101360000E94A5EF2DEC3CEC4CE050EC6091EF09B5 +:101370007091F0098091F1099091F2090F940AC0DF +:1013800087FF0CC08DEC9CECACE0B0EC8093EF09D7 +:101390009093F009A093F109B093F20980E090E0F6 +:1013A000A0EAB0E48093F3099093F409A093F509BF +:1013B000B093F60920E030E040E251E46091510240 +:1013C0007091520280915302909154020F9411C077 +:1013D00060930B0270930C0280930D0290930E02A7 +:1013E0001092280A1092290A10922A0A10922B0AA7 +:1013F00080E00F947C35E090280AF090290A009153 +:101400002A0A10912B0A2091240A3091250A409132 +:10141000260A5091270A6091200A7091210A809132 +:10142000220A9091230AFCE2CF2EFAE0DF2E0F94DD +:10143000C03280900B0290900C02A0900D02B090F0 +:101440000E02E090F309F090F4090091F509109173 +:10145000F6092091EF093091F0094091F10950917E +:10146000F2096091EB097091EC098091ED0990917E +:10147000EE09ECE0FAE0FF93EF93A7EFCA2EA9E0A4 +:10148000DA2E0F9415260F94B93E8091EB099091B6 +:10149000EC09A091ED09B091EE098093200A909398 +:1014A000210AA093220AB093230A8091EF09909118 +:1014B000F009A091F109B091F2098093240A909368 +:1014C000250AA093260AB093270A81E00F947C3561 +:1014D0000F94643582E090E00E94175F0F900F90A8 +:1014E0008AE50E942E5E8823D1F00E94445E672B1D +:1014F000682B692BA1F00E94C95E20911C0A3091D3 +:101500001D0A40911E0A50911F0A0F941ABF609342 +:10151000280A7093290A80932A0A90932B0AE09054 +:10152000280AF090290A00912A0A10912B0A20918A +:10153000240A3091250A4091260A5091270A609189 +:10154000200A7091210A8091220A9091230AECE2EC +:10155000CE2EEAE0DE2E0F94C03280E00F947C3570 +:101560008091D7099091D809A091D909B091DA0951 +:1015700080930B0290930C02A0930D02B0930E0285 +:1015800080918B0A90918C0A909348028093470235 +:101590000F9424B76093CD077093CE078093CF0745 +:1015A0009093D0070F9464350E9433F00E944FF25D +:1015B00088E50E942E5E81110C94ABAB89E50E94F8 +:1015C0002E5E81110C94ABAB87E50E942E5E8111DB +:1015D0000C94ABAB8AE50E942E5E81110C94ABABF0 +:1015E0000F94B93E1092810A21C43091C00035FF9A +:1015F000FCCF2093C6000196FC0124912111F5CF68 +:10160000E2ECFBE08491882341F09091C00095FFCB +:10161000FCCF8093C6003196F5CF4091200A5091BF +:10162000210A6091220A7091230A25E030E080EFC0 +:1016300096E00E940B5EEDEBFBE08491882341F085 +:101640009091C00095FFFCCF8093C6003196F5CFF6 +:101650004091240A5091250A6091260A7091270A28 +:1016600025E030E080EF96E00E940B5EE8EBFBE0C7 +:101670008491882341F09091C00095FFFCCF809326 +:10168000C6003196F5CF4091280A5091290A609101 +:101690002A0A70912B0A25E030E080EF96E00E9444 +:1016A0000B5EE6EBFBE08491882341F09091C00053 +:1016B00095FFFCCF8093C6003196F5CF0E947D5EEA +:1016C0000C9437AB08E210E04AE050E0B80180EF3C +:1016D00096E00E94185DEAE7F6E08191882339F0F0 +:1016E0009091C00095FFFCCF8093C600F6CFB80163 +:1016F000882777FD8095982F0F94ACC00E94597C65 +:10170000AB01BC0122E030E080EF96E00E940C5E6D +:101710000F5F1F4F0F361105B9F60C9437AB82E3FC +:1017200090E090934117809340171A82198280911C +:10173000110A882341F08091120A882321F08091B8 +:10174000130A81110AC081E08093D60761E08FEA15 +:101750009BE00E9492640C9437ABE1E9FBE084913A +:10176000882341F09091C00095FFFCCF8093C60084 +:101770003196F5CF8091C00085FFFCCF8AE0809341 +:10178000C60084E090E09093450A8093440A81E08B +:1017900090E09093430A8093420AE091530AF0E06C +:1017A000EE0FFF1FED55F5488591949121E0892BAF +:1017B00009F420E02093470A80E090E0ACE8B2E42E +:1017C0008093200A9093210AA093220AB093230ABF +:1017D00080E090E0A0E4B0EC8093240A9093250A86 +:1017E000A093260AB093270A80E090E0A0E8BFE328 +:1017F0008093280A9093290AA0932A0AB0932B0A6F +:101800008CE09AE09F938F93812C912C18E4A12E69 +:1018100012E4B12E0CE2C02E0AE0D02EE12CF12C05 +:1018200000E81FE320E030E040E450EC60E070E0CE +:101830008CE892E40F9415260F94B93E0F900F9008 +:1018400020E030E048E452E460913417709135179D +:1018500080913617909137170F9419BF4B015C0197 +:1018600020E030E0A9010F9439C218168CF420E072 +:1018700030E040E85FE3C501B4010F9439C21816A7 +:101880008CF488EE93E00E9400770E947382D8CF98 +:1018900020E030E040E85FEBC501B4010F940AC0DE +:1018A00087FDEFCF08E710E088EE93E00E94007715 +:1018B0000E94738201501109B9F760E086EA9FE047 +:1018C0000F946FCB80E090E0A0EAB0E48093280A08 +:1018D0009093290AA0932A0AB0932B0A2091240AF4 +:1018E0003091250A4091260A5091270A6091200ADA +:1018F0007091210A8091220A9091230AECE0FAE08B +:10190000FF93EF93812C912CE8E4AE2EE2E4BE2EFF +:10191000FCE2CF2EFAE0DF2EE12CF12C00EA10E4FD +:101920000F941526E6E4FEE885919591A591B49172 +:101930008093200A9093210AA093220AB093230A4D +:10194000EAE4FEE825913591459154912093240ACB +:101950003093250A4093260A5093270AE090280ADC +:10196000F090290A00912A0A10912B0A6091200A0E +:101970007091210A8091220A9091230AECE0FAE00A +:10198000FF93EF93812C912CB8E4AB2EB2E4BB2EE5 +:101990000F9415260F94B93E20E030E043E060E05C +:1019A00070E080E89FEB0E94DEF22091280A3091DF +:1019B000290A40912A0A50912B0A28AF39AF4AAF21 +:1019C0005BAFE0E9FBE084910F900F900F900F90D8 +:1019D0004091280A5091290A60912A0A70912B0A95 +:1019E000882349F09091C00095FFFCCF8093C600FA +:1019F00031968491F5CF8091C00085FFFCCF8AE0BD +:101A00008093C600E9E8FBE08491882341F090913F +:101A1000C00095FFFCCF8093C6003196F5CF22E041 +:101A200030E080EF96E00E940B5EE8E8FBE08491F6 +:101A3000882341F09091C00095FFFCCF8093C600B1 +:101A40003196F5CF8091C00085FFFCCF8AE080936E +:101A5000C60012E0412E512C0CE3602E712C80EB5D +:101A6000282E8FE0382EE1E8FBE08491882341F0B6 +:101A70009091C00095FFFCCF8093C6003196F5CFC2 +:101A80004AE050E0B20180EF96E00E94185DEEE778 +:101A9000FBE08491882341F09091C00095FFFCCF3A +:101AA0008093C6003196F5CF8091C00085FFFCCFB2 +:101AB0008AE08093C6005092430A4092420AB301E2 +:101AC000882777FD8095982F0F94ACC06CAF7DAFC1 +:101AD0008EAF9FAF709241176092401720E030E0C8 +:101AE0004CE852E42093200A3093210A4093220AC2 +:101AF0005093230A80E090E0A0E4B0EC8093240AA5 +:101B00009093250AA093260AB093270A20E030E09C +:101B100040E85FE32093280A3093290A40932A0A79 +:101B200050932B0AACE0BAE0BF93AF93812C912C79 +:101B3000A8E4AA2EA2E4BA2EBCE2CB2EBAE0DB2E99 +:101B400079018A0120E030E040E450EC60E070E090 +:101B50008CE892E40F9415260F94B93E0F900F90E5 +:101B60002CAD3DAD4EAD5FAD609134177091351722 +:101B700080913617909137170F940AC087FF07C0DE +:101B800088EE93E00E9400770E947382E9CF08E715 +:101B900010E088EE93E00E9400770E94738201506B +:101BA0001109B9F720E030E040EA50E42093280A18 +:101BB0003093290A40932A0A50932B0A2091240A31 +:101BC0003091250A4091260A5091270A6091200AF7 +:101BD0007091210A8091220A9091230AACE0BAE028 +:101BE000BF93AF93812C912C18E4A12E12E4B12E57 +:101BF0000CE2C02E0AE0D02EE12CF12C00EA10E419 +:101C00000F941526E6E4FEE885919591A591B4918F +:101C10008093200A9093210AA093220AB093230A6A +:101C2000EAE4FEE825913591459154912093240AE8 +:101C30003093250A4093260A5093270AE090280AF9 +:101C4000F090290A00912A0A10912B0A6091200A2B +:101C50007091210A8091220A9091230AACE0BAE0A7 +:101C6000BF93AF93812C912CF8E4AF2EF2E4BF2EFA +:101C70000F9415260F94B93E20E030E043E060E079 +:101C800070E080E89FEB0E94DEF228AD39AD4AADEE +:101C90005BAD6091280A7091290A80912A0A90917F +:101CA0002B0A0F9419BF20913616309137164091A8 +:101CB0003816509139160F940BC30F9479C07A835C +:101CC0006983EDE7FBE084910F900F900F900F90E8 +:101CD000882349F09091C00095FFFCCF8093C60007 +:101CE00031968491F5CF8091C00085FFFCCF8AE0CA +:101CF0008093C600EFE6FBE08491882341F0909149 +:101D0000C00095FFFCCF8093C6003196F5CF4AE026 +:101D100050E0B30180EF96E00E94185DE0E6FBE042 +:101D20008491882341F09091C00095FFFCCF80936F +:101D3000C6003196F5CF28AD39AD4AAD5BAD6091A7 +:101D4000280A7091290A80912A0A90912B0A0F94EF +:101D500019BFAB01BC0122E030E080EF96E00E94A9 +:101D60000B5EEFE5FBE08491882341F09091C00089 +:101D700095FFFCCF8093C6003196F5CF8091C000CF +:101D800085FFFCCF8AE08093C600BE016F5F7F4F66 +:101D9000C1010F946061F2E02F0E311C2AE0620E47 +:101DA000711C3FEF431A530A4EE66416710409F0A2 +:101DB0005ACE1092450A1092440A1092470A61E0E6 +:101DC00086EA9FE00F946FCBE0E2FBE084918823EA +:101DD00041F09091C00095FFFCCF8093C6003196F2 +:101DE000F5CF8091C00085FFFCCF8AE08093C600CC +:101DF000179A1092110A169A1092120A149A1092B7 +:101E0000411710924017E091530AF0E0EE0FFF1FC8 +:101E1000EB56F548859194910F94F56581E00F9408 +:101E2000C56482E00F94CB630C9437AB81E0809360 +:101E3000550A86E50E942E5E8823A1F08091D10785 +:101E40009091D207DC0111962C91293069F02F7DF9 +:101E500071F04AE050E060E070E001960F94DDC65A +:101E600068AF07C018AE05C0B1E0B8AF02C0E1E08E +:101E7000E8AF8091110A009121181091221888234F +:101E800041F08091120A882321F08091130A811178 +:101E900011C00230110551F081E08093D60761E056 +:101EA00089E19BE00E9492640C9437AB1092550A32 +:101EB0000C9437AB8091750781110C94C8AB80915D +:101EC000800A882311F40C94C8AB0E94BE62882358 +:101ED00011F40C94C8AB8091401790914117C297B0 +:101EE00014F00C94B6AB0C94C8AB8091930F88237C +:101EF00009F49EC0E2EEF8E08491882341F09091CD +:101F0000C00095FFFCCF8093C6003196F5CF4AE024 +:101F100050E067E070E080EF96E00E94185DE0EE30 +:101F2000F8E08491882341F09091C00095FFFCCFA8 +:101F30008093C6003196F5CF4AE050E067E070E04C +:101F400080EF96E00E94185DEDECF8E08491882324 +:101F500041F09091C00095FFFCCF8093C600319670 +:101F6000F5CF4AE050E065E070E080EF96E00E9437 +:101F7000185DEBEBF8E08491882341F09091C0006C +:101F800095FFFCCF8093C6003196F5CF8091C000BD +:101F900085FFFCCF8AE08093C60000E010E088EB6C +:101FA000A82E88E0B82E96EB892E98E0992EE12C89 +:101FB000F12C9801255C3F4E6901F5018491E8EB15 +:101FC000F8E0882349F09091C00095FFFCCF809302 +:101FD000C60031968491F5CFF601EE0DFF1D4181CB +:101FE00052816381748125E030E080EF96E00E94A9 +:101FF0000B5EF4E0EF0EF11C2CE1E216F104E9F6C1 +:10200000F4018491E6EBF8E0882349F09091C00058 +:1020100095FFFCCF8093C60031968491F5CF0C518B +:1020200011090C33FFEF1F0709F0C1CF0C9437AB38 +:10203000E8E9F8E08491882341F09091C00095FF91 +:10204000FCCF8093C6003196F5CF8091C00085FF0C +:10205000FCCF8AE08093C6000C9437AB81E00E94ED +:10206000B8620C9437AB1092CA090C9437AB85E474 +:102070000E942E5E811102C00F94B93EF7E26F2ECE +:10208000F4E07F2EA4E18A2EAAE09A2EB0E2AB2ED5 +:10209000BAE0BB2E512CD3018D913D010E942E5EE2 +:1020A0008823D9F1B3E05B120CC00E94C95EF50130 +:1020B00060837183828393838CE29AE00F9444342B +:1020C0002CC00E94C95ED4012D913D914D915C912F +:1020D0000F941ABFF5016083718382839383E0902C +:1020E000280AF090290A00912A0A10912B0A2091BF +:1020F000240A3091250A4091260A5091270A6091BE +:10210000200A7091210A8091220A9091230AECE220 +:10211000CE2EEAE0DE2E0F94C0325394F4E08F0E00 +:10212000911C24E0A20EB11C34E05312B4CF0C94E5 +:1021300037AB81E080931D180F9424B76093910A08 +:102140007093920A8093930A9093940A60911D1859 +:1021500084EC9FE00F946FCB0C9437AB8DE40E941E +:102160002E5E882311F40C941FAAE091D107F09100 +:10217000D207319681918032E9F38930D9F38053C7 +:102180008A30B0F0E9E8F8E08491882341F090913A +:10219000C00095FFFCCF8093C6003196F5CF8091AB +:1021A000C00085FFFCCF8AE08093C6000C9437AB5B +:1021B0000E94C95E0F9479C06937710511F40C94BF +:1021C000EB9C0CF0E6C06D32710509F4CEC40CF046 +:1021D0006FC06931710509F408C3B4F56431710544 +:1021E00009F4ABC294F46131710509F495C234F479 +:1021F0006230710508F4DFC10C940AAA62317105DE +:1022000011F40C94C59A0C940AAA6631710509F46C +:10221000CEC20CF4C6C26731710509F4CEC2683172 +:10222000710511F00C940AAA8DE99AE00E9408CA7F +:102230000F9424B76093C5077093C6078093C707B0 +:102240009093C8070C9437AB6E31710509F418C32D +:102250008CF46B31710509F4DEC20CF4CEC26C3122 +:10226000710509F4DEC26D31710511F40C9437ABC0 +:102270000C940AAA6032710509F43AC30CF4CEC377 +:102280006A32710509F42AC46C32710511F00C949C +:102290000AAA8FEF0E94B86260E070E088EF9FE0CA +:1022A0000F9489CB0E944BEF0E94DEEF0C9437AB6A +:1022B0006936710509F412C6B4F56335710511F478 +:1022C0000C94C09AECF46035710511F40C94839A67 +:1022D0004CF46F32710511F00C940AAA0F942E7C05 +:1022E0000C9437AB6135710511F40C94989A6235F2 +:1022F000710511F00C940AAA1092900A0C9437AB55 +:102300006535710511F40C94119B14F40C94C59A65 +:102310006C35710511F40C942C9B6836710509F429 +:10232000AAC50C940AAA6037710509F4C2C59CF4C9 +:102330006B36710511F40C947D9A14F40C944D9A3B +:102340006D36710509F4D7C66E36710511F40C941B +:10235000AF9B0C940AAA6337710511F40C94CA9BC5 +:102360004CF46237710511F00C940AAAE7E4F8E026 +:102370000C94119C6737710511F40C94F09C68372C +:10238000710511F00C940AAA80E00F947C350C942E +:1023900037AB603341E0740711F40C9424A20CF0C5 +:1023A00077C0603D710511F40C94FB9FBCF56B3C4C +:1023B000710511F40C94F19EECF46E3B710509F477 +:1023C0003AC734F46C38710509F477C50C940AAA3D +:1023D000683C710511F40C945F9E693C710511F025 +:1023E0000C940AAA07E214E04EE1E42E46E1F42E32 +:1023F0000C94D69E6D3C710511F40C94309F14F42E +:102400000C940E9F6E3C710511F40C94A79F6F3CC9 +:10241000710511F40C94C49F0C940AAA603F7105D5 +:1024200011F40C9437ABCCF46C3D710511F40C94A1 +:1024300084A03CF4613D710511F40C9423A00C942C +:102440000AAA6D3D710511F40C9495A0623E7105C8 +:1024500011F40C94BFA00C940AAA6D3281E07807A5 +:1024600011F40C9459A13CF46C32714011F40C94A9 +:1024700021A10C940AAA6E32B1E07B0711F40C94EE +:10248000C6A26F32714011F40C94D5A20C940AAA22 +:102490006935F2E07F0711F40C94A8A7D4F5653FE5 +:1024A00031E0730711F40C9412A3ECF46F3551E092 +:1024B000750711F40C9424A83CF46E35714011F4A6 +:1024C0000C94EDA70C940AAA6039A1E07A0711F4E4 +:1024D0000C940EA3643F714011F00C940AAA0E9460 +:1024E000CC500C9437AB673FE1E07E0711F40C94BD +:1024F0001AA314F40C9416A36D3F21E0720711F493 +:102500000C941EA36835724011F40C942FA40C9403 +:102510000AAA643843E0740711F40C94C4A7DCF4ED +:102520006D3B82E0780711F40C9480A83CF46A3586 +:10253000724011F40C94B6A70C940AAA6E3BB2E058 +:102540007B0711F40C94A2A96335734011F40C9429 +:102550003CA30C940AAA6C38F3E07F0711F40C94A6 +:1025600037AB3CF46B38734011F40C94C7A70C9450 +:102570000AAA603A43E0740709F423C2673E734035 +:1025800011F00C940AAA1092BB070F947B62809101 +:10259000CB099091CC09A091CD09B091CE0980933F +:1025A000CF099093D009A093D109B093D2090E948A +:1025B00000690C9437AB0091D1071091D2070E5FE0 +:1025C0001F4F80E50E942E5E882379F00E94C95E2D +:1025D0000F947EC04B015C01FF24F39461157105DB +:1025E0008105910531F4F12C04C0F12C812C912C42 +:1025F000540183E50E942E5E882399F00E94C95EF3 +:1026000020E030E04AE754E40F940BC30F947EC0FF +:102610004B015C01EE24E394611571058105910580 +:1026200009F4E12C6AE270E0C8010F94C1C8009778 +:1026300011F0DC011C92F801CF0121912032E1F36D +:10264000F11007C0E11005C0222319F00F943D627C +:102650000BC0E091530AF0E0EE0FFF1FEB5EF54870 +:10266000859194910F944A6281E00F941D620F94BA +:10267000B93E0F9424B76093CD077093CE07809333 +:10268000CF079093D00781149104A104B104A9F05D +:102690000F9424B72B013C01480C591C6A1C7B1C6D +:1026A0000F9424B76415750586059705C8F40F9433 +:1026B000EC65811115C00C94CDB20F94EA658823A6 +:1026C00011F40C9437AB0F94EC6581110CC00F948E +:1026D000224D81E00E94487680E00F94CB63F3CFD7 +:1026E00080E00F941D6280919F0AE091530AF0E010 +:1026F000EE0FFF1F882341F0E95CF2488591949129 +:102700000F944A620C9437ABE353F6488591949149 +:102710000F944A620C9437ABE091530AF0E0EE0F4D +:10272000FF1FE959F148859194910F944A621798D7 +:102730001698159814980C9437ABE9EEF1E885914A +:102740009491FC012491222341F03091C00035FF87 +:10275000FCCF2093C6000196F4CF8091C00085FF86 +:10276000FCCF8AE08093C6008DE99AE00E94D9C828 +:10277000E7E1F1E885919491FC012491222341F055 +:102780003091C00035FFFCCF2093C6000196F4CFF6 +:102790008091C00085FFFCCF8AE08093C6000C9436 +:1027A00037AB8DE99AE00E942FC90C9437AB8DE9C5 +:1027B0009AE00E9404CA0C9437AB0091D1071091A3 +:1027C000D2070C5F1F4F6AE270E0C8010F94C1C8C6 +:1027D000009711F0DC011C9221E041E0B8018DE985 +:1027E0009AE00E94B2CE0C9437AB0E94CB828DE966 +:1027F0009AE00E940FCA0C9437AB8091A00A8823FC +:1028000011F40C9437AB83E50E942E5E81110C9479 +:10281000D7B20C9437AB8DE99AE00E94B4CB0C94FC +:1028200037AB8091D1079091D2076AE270E00496AD +:102830000F94C1C88C010097A9F08091DB0790919B +:10284000DC076EE470E08252984F0F94C1C860E2DA +:1028500070E00F94C1C801969093D2078093D1077E +:10286000F80110826091D1077091D2076C5F7F4FA1 +:1028700021E040E08DE99AE00E94B2CE0C9437ABA3 +:102880008091A00A882311F40C9437AB60E08DE9A5 +:102890009AE00E9442CE8091D1079091D2076AE2DD +:1028A00070E004960F94C1C88C010097A9F0809144 +:1028B000DB079091DC076EE470E08252984F0F9432 +:1028C000C1C860E270E00F94C1C801969093D2072E +:1028D0008093D107D8011C926091D1077091D207E3 +:1028E0006C5F7F4F8DE99AE00E9473CA0C9437ABFE +:1028F00080919F0A81110F94B93E0091D1071091E8 +:10290000D2070C5F1F4F6AE270E0C8010F94C1C884 +:102910007C0161E270E0C8010F94C1C8009719F012 +:102920008C010F5F1F4FE114F10411F0F7011082C9 +:1029300080E50E942E5EF82E2091D1073091D207BB +:102940000217130708F4F12C8091A00A882311F4D0 +:102950000C9437AB21E02F2541E0B8018DE99AE0D6 +:102960000E94B2CE83E50E942E5E8823B9F02091AA +:10297000D1073091D2072017310780F40E94445EBE +:10298000AB01BC0140933B0D50933C0D60933D0D5A +:1029900070933E0D86E89CE00E9462BC8DE99AE04F +:1029A0000E9408CAF1100C9437AB0F9424B76093BF +:1029B000C5077093C6078093C7079093C8070C9408 +:1029C00037AB8091D1079091D2076AE270E005960B +:1029D0000F94C1C88C010097A9F08091DB079091FA +:1029E000DC076EE470E08252984F0F94C1C860E239 +:1029F00070E00F94C1C801969093D2078093D107DD +:102A0000D8011C926091D1077091D2076B5F7F4F04 +:102A10008DE99AE00E94EFD10C9437AB0F9424B764 +:102A20006093C1077093C2078093C3079093C40754 +:102A30000091C5071091C6072091C7073091C807BC +:102A4000601B710B820B930B28EE33E040E050E0EB +:102A50000F94FCC4CA01B9012CE330E040E050E01F +:102A60000F94FCC47F936F933F932F938AE798E072 +:102A70009F938F93CE0101969F938F930F9441C99B +:102A8000ECE3FDE084910FB6F894DEBF0FBECDBF3E +:102A9000ECE3FDE0882349F09091C00095FFFCCF66 +:102AA0008093C60031968491F5CFFE0131968191D5 +:102AB000882339F09091C00095FFFCCF8093C60029 +:102AC000F6CF8091C00085FFFCCF8AE08093C600DE +:102AD000CE0101960F943D620C9437AB83E50E94C2 +:102AE0002E5E882311F40C9437AB0E94C95E0F94BC +:102AF00079C0F62EE72E862F9E2D8C0180E50E9450 +:102B00002E5E882331F00F3F110509F010F40C946C +:102B1000E8B20DE010E0EFEEF3E0819191918017C3 +:102B2000910711F40C9437AB24E0E732F207A9F7D0 +:102B30000630110539F48F2D9E2D90930B0A80934A +:102B40000A0A04C017FF02C00C9437AB61E0802F63 +:102B50000F940FB96F2D802F0F9448B96F2D7E2DD4 +:102B6000802F0F94F7B70C9437AB8AE50E942E5E46 +:102B7000382E811112C010924117109240171092F6 +:102B80004317109242171092451710924417109253 +:102B90004717109246170F94876180E00F94C56421 +:102BA00083E99FE00F94BC190E94DEEF0F940A198D +:102BB0001092110A1092120A1092130A832D0F9488 +:102BC000AF9B882309F452C10E94086820E030E0DE +:102BD00048E452E460913A1770913B1780913C179A +:102BE00090913D170F9439C2181684F020E030E020 +:102BF00048E452E46091341770913517809136178C +:102C0000909137170F9439C2181624F4332011F419 +:102C10000C94EFB280E090E0A0EAB0E48093280A40 +:102C20009093290AA0932A0AB0932B0A20E030E05F +:102C300040E252E46091510270915202809153023D +:102C4000909154020F9411C04B015C012091240A11 +:102C50003091250A4091260A5091270A6091200A56 +:102C60007091210A8091220A9091230AECE0FAE007 +:102C7000FF93EF93FCE2CF2EFAE0DF2EE12CF12C54 +:102C800000EA10E40F9415260F94B93E0E9469667D +:102C900081E00E944F5E0E94D36786E50E942E5E0F +:102CA0000F900F908823A1F08091D1079091D207C7 +:102CB000DC0111962C91293069F02F7D71F04AE0EA +:102CC00050E060E070E001960F94DDC668AF07C089 +:102CD00018AE05C0B1E0B8AF02C0E1E0E8AF332004 +:102CE000B1F00E947D5E0E9433F00E944FF20F947B +:102CF000120F882309F4BAC087EF9FE00F945DCBD1 +:102D0000803F09F0B3C081E00E94B862AFC08FEF8E +:102D10000E94B86260E070E088EF9FE00F9489CB7A +:102D20001982BE016F5F7F4F88AD0F945C073C0135 +:102D30000E947D5E212C312C70EA472E70E4572EC4 +:102D40002092280A3092290A40922A0A50922B0A8D +:102D500020E030E040E252E4609151027091520272 +:102D600080915302909154020F9411C04B015C0169 +:102D70002091240A3091250A4091260A5091270A71 +:102D80006091200A7091210A8091220A9091230A71 +:102D9000ACE0BAE0BF93AF93ECE2CE2EEAE0DE2ED9 +:102DA000820171010F9415260F94B93E0F900F9078 +:102DB00077FC48C0198283E99FE00F94BC190E94F8 +:102DC000A5EF81E00E944F5E0E94D367AE014F5F86 +:102DD0005F4F68AD81E00F9439113C010E947D5E28 +:102DE0002092280A3092290A40922A0A50922B0AED +:102DF00020E030E040E252E46091510270915202D2 +:102E000080915302909154020F9411C04B015C01C8 +:102E10002091240A3091250A4091260A5091270AD0 +:102E20006091200A7091210A8091220A9091230AD0 +:102E3000ACE0BAE0BF93AF930F9415260F94B93E60 +:102E40000F900F906981C3010F942C6677FC0EC020 +:102E500086EE0E94B862E091530AF0E0EE0FFF1F89 +:102E6000EF5EFC47859194910F94F56581E00F9496 +:102E7000C5640C9437AB88E690E00E9446708111DF +:102E80000C9437AB83E50E942E5E882371F000918D +:102E9000BC070E94C95E10E0000F111F0E5B184EA8 +:102EA0000F9479C0D8016D937C930F94B9450C941D +:102EB00037AB80E090E00E94866F83E50E942E5E33 +:102EC000882311F40C9437AB0E94C95E0F9479C02B +:102ED00070934117609340170C9437AB89E690E0EC +:102EE0000E94467081110C9437ABE4E7F8E08491BE +:102EF000882341F09091C00095FFFCCF8093C600DD +:102F00003196F5CFE091BC07B4E0EB9FF0011124BE +:102F1000E65CF84E408151816281738121E030E0AE +:102F200080EF96E00E940B5EE1E7F8E08491882351 +:102F300041F09091C00095FFFCCF8093C600319680 +:102F4000F5CFE091BC07F0E0EE0FFF1FEE5BF84E0F +:102F500060817181882777FD8095982F0F94ACC090 +:102F6000AB01BC0121E030E080EF96E00E940B5EF7 +:102F7000EDE6F8E08491882341F09091C00095FF40 +:102F8000FCCF8093C6003196F5CF40913417509115 +:102F90003517609136177091371721E030E080EFD8 +:102FA00096E00E940B5EEAE6F8E08491882341F007 +:102FB0009091C00095FFFCCF8093C6003196F5CF6D +:102FC0006091401770914117882777FD8095982F61 +:102FD0000F94ACC0AB01BC0121E030E080EF96E083 +:102FE0000E940B5EE7E6F8E08491882341F090911F +:102FF000C00095FFFCCF8093C6003196F5CF4AE024 +:1030000050E060E070E080EF96E00E94185DE5E639 +:10301000F8E08491882341F09091C00095FFFCCFA7 +:103020008093C6003196F5CF40913A1750913B17E7 +:1030300060913C1770913D1721E030E080EF96E001 +:103040000E940B5EE2E6F8E08491882341F09091C3 +:10305000C00095FFFCCF8093C6003196F5CF6091FC +:10306000421770914317882777FD8095982F0F940A +:10307000ACC0AB01BC0121E030E080EF96E00E94E3 +:103080000B5EEEE5F8E08491882341F09091C0005A +:1030900095FFFCCF8093C6003196F5CF8091BC0799 +:1030A00090E00F94AC444AE050E0BC0180EF96E021 +:1030B0000E94185DE9E5F8E08491882341F0909141 +:1030C000C00095FFFCCF8093C6003196F5CF8FEFFF +:1030D0009FEF0F94AC444AE050E0BC0180EF96E0D3 +:1030E0000E94185D8091C00085FFFCCF8AE080932C +:1030F000C6000C9424B38DE690E00E9446708111C6 +:103100000C9437ABE091530AF0E0EE0FFF1FEB5A3F +:10311000FF47859194910F944A6281E090E09093EB +:103120004B0A80934A0A80911D18882321F081E080 +:1031300090E00F94AD7183E50E942E5E882391F09C +:103140000091BC070E94C95E10E0000F111F0E5BCA +:10315000184E0F9479C0F8017183608381E08093E9 +:10316000060215C082E50E942E5E882381F0009140 +:10317000BC070E94C95E10E0000F111F0E5B184EC5 +:103180000F9479C0D8016D937C93109206020F942E +:10319000B9450F9424B76B017C010091BC0710E086 +:1031A000F801EE0FFF1FEE5BF84E608171818827FA +:1031B00077FD8095982F0F94ACC0F801EE0FFF1F9C +:1031C000EE0FFF1FE65CF84E11E020813181428155 +:1031D00053810F9439C218160CF010E01093BA07FF +:1031E0001092FB09C701B6010E942277E091530AB1 +:1031F000F0E0EE0FFF1FE95BFF47859194910F947C +:103200004A6282E090E090934B0A80934A0A809150 +:103210001D18882321F082E090E00F94AD710F9487 +:1032200024B76093CD077093CE078093CF07909318 +:10323000D0070C9437ABE091530AF0E0EE0FFF1F7C +:10324000ED56FD47859194910F944A6283E090E09A +:1032500090934B0A80934A0A80911D18882321F08D +:1032600081E090E00F94AD7183E50E942E5E88238B +:1032700061F00E94C95E0F9479C07093411760930A +:10328000401781E0809306020FC082E50E942E5E07 +:10329000882351F00E94C95E0F9479C07093411742 +:1032A00060934017109206020F9424B72B013C0143 +:1032B0001092FB096091401770914117882777FDA4 +:1032C0008095982F0F94ACC011E020913417309165 +:1032D000351740913617509137170F9439C2181689 +:1032E0000CF010E01093BA0706E518E082E5E82E2E +:1032F00088E0F82E9EE4A92E98E0B92E2AE0D22E7E +:103300008091BA076091401770914117882309F4A2 +:1033100090C08091FB0981118CC0882777FD809532 +:10332000982F0F94ACC020913417309135174091ED +:103330003617509137170F9439C218160CF090C0F9 +:103340000F9424B76419750986099709693E73407B +:103350008105910508F464C080911D1881115CC03D +:10336000E0910C0A24E0E29FF0011124E65CF84EA3 +:103370004081518162817381F8018491E6E5F8E032 +:10338000882349F09091C00095FFFCCF8093C60040 +:1033900031968491F5CF22E030E080EF96E00E94F4 +:1033A0000B5EF7018491E2E5F8E0882349F0909103 +:1033B000C00095FFFCCF8093C60031968491F5CF75 +:1033C00060910C0A70E04AE050E080EF96E00E94C5 +:1033D000185DF5018491EEE4F8E0882349F09091BE +:1033E000C00095FFFCCF8093C60031968491F5CF45 +:1033F00040913417509135176091361770913717F7 +:1034000021E030E080EF96E00E940B5E8091C000EA +:1034100085FFFCCFD092C6000F9424B72B013C014E +:103420000F94224D80E00E94487680E00F94CB6399 +:1034300067CF882777FD8095982F0F94ACC0209197 +:1034400034173091351740913617509137170F9434 +:103450000AC087FF05C080910602882309F470CF57 +:10346000E091530AF0E0EE0FFF1FEF55FD47859105 +:1034700094910F944A6284E090E090934B0A809379 +:103480004A0A0F9424B76093CD077093CE078093B8 +:10349000CF079093D0070C9437AB83E50E942E5E44 +:1034A000882319F10E94C95E20E030E0A9010F9441 +:1034B0000AC087FD0FC00E94C95E20E030E04FE7E0 +:1034C00053E40F9439C2181644F00E94C95E0F9459 +:1034D00079C005C060E070E002C06FEF70E07093EB +:1034E0000B0A60930A0A0C9437AB8FEF90E090932D +:1034F0000B0A80930A0A0C9437AB10920B0A1092B5 +:103500000A0A0C9437AB9B9AA39881E0809310022F +:10351000E091530AF0E0EE0FFF1FE353F648859168 +:1035200094910F944A6280E00F94CB630C9437AB74 +:103530000F94BA450F94B93E149A0F94373F1092E6 +:103540000B0A10920A0A68EE73E080E090E00F9494 +:1035500053B79B9AA39A10921002E5E6FEE74591B5 +:1035600054912CE438E06AE478E08DEC93E00E941A +:10357000D6D30F944A6280E00F94CB630C9437ABA0 +:1035800081E08093900A0C9437AB83E50E942E5E15 +:10359000882399F00E94C95E20E030E04AE754E4B5 +:1035A0000F940BC30F947EC06093070270930802C0 +:1035B0008093090290930A0230C088E50E942E5E33 +:1035C000811111C089E50E942E5E81110CC08AE52F +:1035D0000E942E5E811107C085E40E942E5E882322 +:1035E00011F40C941DB30F94B93E88E50E942E5E31 +:1035F000882319F0179A1092110A89E50E942E5E0D +:10360000882319F0169A1092120A8AE50E942E5EFB +:1036100085E40E942E5E8111149A1092410A0C9446 +:1036200037AB83E50E942E5E882311F40C9437ABF0 +:103630000E94C95E20E030E04AE754E40F940BC3D7 +:103640000F947EC06093C9077093CA078093CB071D +:103650009093CC070C9437AB27E234E039AF28AF16 +:103660000EE216E16EE3E62E66E1F62E7EEE272EE2 +:1036700075E1372ED12CA8ADB9AD8D91B9AFA8AFFA +:103680000E942E5E882309F45CC0B3E0DB1252C0B6 +:103690000E94C95E2B013C0120E030E040EA51E489 +:1036A0000F940AC087FF3FC0A3019201F801608117 +:1036B0007181828193810F9411C04B015C019B0148 +:1036C000AC0160910E1670910F16809110169091BA +:1036D00011160F940BC360930E1670930F16809300 +:1036E000101690931116A5019401D7016D917D914B +:1036F0008D919C910F940BC3F7016083718382833A +:103700009383D1016D917D918D919C910F94AAC06D +:10371000A50194010F940BC30F947EC0F101608347 +:10372000718382839383D8014D925D926D927C92D6 +:10373000139707C00E94C95EF8016083718382837A +:103740009383D3940C5F1F4FF4E0EF0EF11C24E041 +:10375000220E311C34E0D3128ECF0C9437AB8EE4A2 +:103760000E942E5E882361F00E94445E6093CF0920 +:103770007093D0098093D1099093D2090C9437AB00 +:103780001092CF091092D0091092D1091092D2094B +:103790000C9437AB86E50E942E5E8823B9F00F9417 +:1037A00088B3FC012491222341F03091C00035FF01 +:1037B000FCCF2093C6000196F4CF8091C00085FF16 +:1037C000FCCF8AE08093C6000C9437AB85E50E945D +:1037D0002E5E882369F08091D1079091D2070196DF +:1037E0009093D2078093D1070F94F9B50C9437AB1F +:1037F000E7E8FFE785919491FC012491222311F4DD +:103800000C9437AB3091C00035FFFCCF2093C6003D +:103810000196F2CF9091C00095FFFCCF8093C60037 +:10382000319684918111F6CF4091200A5091210A5E +:103830006091220A7091230A22E030E080EF96E046 +:103840000E940B5EE3E4F8E08491882341F09091BC +:10385000C00095FFFCCF8093C6003196F5CF409114 +:10386000240A5091250A6091260A7091270A22E0C5 +:1038700030E080EF96E00E940B5EEFE3F8E0849189 +:10388000882341F09091C00095FFFCCF8093C60043 +:103890003196F5CF4091280A5091290A60912A0A61 +:1038A00070912B0A22E030E080EF96E00E940B5EE0 +:1038B000EBE3F8E08491882341F09091C00095FFFC +:1038C000FCCF8093C6003196F5CF40912C0A5091E1 +:1038D0002D0A60912E0A70912F0A22E030E080EFCD +:1038E00096E00E940B5EE9E4F1E885919491FC0179 +:1038F0002491222341F03091C00035FFFCCF20936A +:10390000C6000196F4CF80E00F94163F0F94ACC030 +:1039100020912E1630912F1640913016509131166D +:103920000F9411C0AB01BC0122E030E080EF96E0C3 +:103930000E940B5EE7E3F8E08491882341F09091C8 +:10394000C00095FFFCCF8093C6003196F5CF81E093 +:103950000F94163F0F94ACC020913216309133165D +:1039600040913416509135160F9411C0AB01BC0133 +:1039700022E030E080EF96E00E940B5EE3E3F8E0A7 +:103980008491882341F09091C00095FFFCCF8093F3 +:10399000C6003196F5CF82E00F94163F0F94ACC06D +:1039A00020913616309137164091381650913916BD +:1039B0000F9411C0AB01BC0122E030E080EF96E033 +:1039C0000E940B5E8091C00085FFFCCF8AE080934F +:1039D000C6000C9437AB81E00F947C350C9437AB68 +:1039E000E5E8FFE785919491FC012491222341F0C1 +:1039F0003091C00035FFFCCF2093C6000196F4CF74 +:103A00008091C00085FFFCCF8AE08093C600E3EF81 +:103A1000F9E785919491FC012491222341F03091A2 +:103A2000C00035FFFCCF2093C6000196F4CF1E9B4B +:103A300010C0EBE1F1E885919491FC0124912223DF +:103A4000C1F03091C00035FFFCCF2093C600019635 +:103A5000F4CFE9E1F1E885919491FC0124912223CE +:103A600041F03091C00035FFFCCF2093C600019695 +:103A7000F4CF8091C00085FFFCCF8AE08093C60020 +:103A8000E5EFF9E785919491FC012491222341F01F +:103A90003091C00035FFFCCF2093C6000196F4CFD3 +:103AA000379910C0EBE1F1E885919491FC012491E4 +:103AB0002223C1F03091C00035FFFCCF2093C60017 +:103AC0000196F4CFE9E1F1E885919491FC0124910C +:103AD000222341F03091C00035FFFCCF2093C60077 +:103AE0000196F4CF8091C00085FFFCCF8AE08093DF +:103AF000C600E1EEF9E785919491FC01249122231F +:103B000041F03091C00035FFFCCF2093C6000196F4 +:103B1000F4CF1D9B10C0EBE1F1E885919491FC017D +:103B200024912223C1F03091C00035FFFCCF2093B7 +:103B3000C6000196F4CFE9E1F1E885919491FC018A +:103B40002491222341F03091C00035FFFCCF209317 +:103B5000C6000196F4CF8091C00085FFFCCF8AE0BB +:103B60008093C600E3EEF9E785919491FC012491DE +:103B7000222341F03091C00035FFFCCF2093C600D6 +:103B80000196F4CF029910C0EBE1F1E88591949190 +:103B9000FC0124912223C1F03091C00035FFFCCFFD +:103BA0002093C6000196F4CFE9E1F1E88591949164 +:103BB000FC012491222341F03091C00035FFFCCF5D +:103BC0002093C6000196F4CF8091C00085FFFCCF02 +:103BD0008AE08093C600EBEDF9E785919491FC01B2 +:103BE0002491222341F03091C00035FFFCCF209377 +:103BF000C6000196F4CF1C9B10C0EBE1F1E8859163 +:103C00009491FC0124912223C1F03091C00035FF32 +:103C1000FCCF2093C6000196F4CFE9E1F1E885914D +:103C20009491FC012491222341F03091C00035FF92 +:103C3000FCCF2093C6000196F4CF8091C00085FF91 +:103C4000FCCF8AE08093C600EDEDF9E78591949171 +:103C5000FC012491222341F03091C00035FFFCCFBC +:103C60002093C6000196F4CF019910C0EBE1F1E872 +:103C700085919491FC0124912223C1F03091C000E0 +:103C800035FFFCCF2093C6000196F4CFE9E1F1E8BF +:103C900085919491FC012491222341F03091C00040 +:103CA00035FFFCCF2093C6000196F4CF8091C00071 +:103CB00085FFFCCF8AE08093C6000C9437AB8091DF +:103CC0000C0A8093BC0784E50E942E5E882329F1AC +:103CD0000E94C95E0F947EC06093BC076623E9F022 +:103CE000ECE3FDE08491882341F09091C00095FFC2 +:103CF000FCCF8093C6003196F5CFE3E8FFE7A591AE +:103D0000B4918D91882311F40C9437AB9091C0003D +:103D100095FFFCCF8093C600F4CF84E40E942E5E12 +:103D2000882311F40C9437AB0E94C95E20E030E088 +:103D3000A9010F940AC0811103C01092300A32C049 +:103D40000091BC0710E00E94C95EF801EE0FFF1F52 +:103D5000EE0FFF1FE35CFD4F6083718382839383CB +:103D6000E0903D02F0903E0200913F02109140022F +:103D700020E030E0A901B701C8010F940AC0811109 +:103D800004C0E12CF12C00E410E4C701D8018093B9 +:103D90003D0290933E02A0933F02B093400281E027 +:103DA0008093300A0E94EE760C9437ABD8018D9147 +:103DB0008D010E942E5E882349F00E94C95E0F94F7 +:103DC0007EC0F7016083718382839383F4E0EF0EFA +:103DD000F11C24E00B32120749F70F946A340C945B +:103DE00037AB07E214E03EE3E32E36E1F32ED801D1 +:103DF0008D918D010E942E5E882339F00E94C95E4C +:103E0000F7016083718382839383F4E0EF0EF11CEA +:103E100024E00B32120759F70C9437AB83E50E946C +:103E20002E5E882351F00E94C95E6093161670932F +:103E30001716809318169093191684E50E942E5E2B +:103E4000882311F40C9437AB0E94C95E609312165C +:103E50007093131680931416909315160C9437AB29 +:103E600083E50E942E5E882351F00E94C95E609314 +:103E70001A1670931B1680931C1690931D1684E5DA +:103E80000E942E5E882351F00E94C95E6093FE1549 +:103E90007093FF15809300169093011682E40E94A0 +:103EA0002E5E882361F00E94C95E0F947EC06093ED +:103EB0004E1670934F16809350169093511688E5C6 +:103EC0000E942E5E882391F00E94C95E60930616C0 +:103ED0007093071680930816909309166093021644 +:103EE00070930316809304169093051689E50E943B +:103EF0002E5E882351F00E94C95E6093061670936F +:103F0000071680930816909309168AE50E942E5E84 +:103F1000882351F00E94C95E60930A1670930B16B5 +:103F200080930C1690930D1685E40E942E5E8823D4 +:103F300011F40C9437AB0E94C95E60930E16709317 +:103F40000F1680931016909311160C9437AB07E25E +:103F500014E024E1E22E2AE0F22ED8018D918D01A9 +:103F60000E942E5E882339F00E94C95EF7016083AB +:103F7000718382839383F4E0EF0EF11C24E00A3214 +:103F8000120759F70C9437AB83E50E942E5E882305 +:103F900051F00E94C95E60931D0270931E028093CF +:103FA0001F029093200286E40E942E5E882381F0F7 +:103FB0000E94C95E20E030E040E752E40F9411C057 +:103FC0006093150270931602809317029093180263 +:103FD0008AE50E942E5E882311F40C9437AB0E9470 +:103FE000C95E6093040A7093050A8093060A909351 +:103FF000070A0C9437AB83E50E942E5E882351F0AC +:104000000E94C95E6093000A7093010A8093020ABD +:104010009093030A86E40E942E5E882311F40C9488 +:1040200037AB0E94C95E20E030E040E752E40F94D5 +:1040300011C0609311027093120280931302909347 +:1040400014020C9437AB83E50E942E5E882311F492 +:104050000C9437AB0E94C95E0F9479C0611571054D +:1040600051F06130710569F481E08093090A109282 +:10407000080A0C9437AB1092090A1092080A0C94A3 +:1040800037ABECE3FDE08491882341F09091C000D0 +:1040900095FFFCCF8093C6003196F5CFEDE4FAE7AB +:1040A00085919491FC012491222341F03091C0002C +:1040B00035FFFCCF2093C6000196F4CFE091DB07DB +:1040C000F091DC07E252F84F8191882339F090910A +:1040D000C00095FFFCCF8093C600F6CFE1E3F8E087 +:1040E0008491882341F09091C00095FFFCCF80938C +:1040F000C6003196F5CF8091C00085FFFCCF8AE0E5 +:104100008093C6000C9437AB83E50E942E5E882313 +:1041100011F40C9437AB0E94C95E0F9479C0709370 +:104120004802609347020C9437AB83E50E942E5EF1 +:10413000882311F40C9437AB0E94C95E0F9479C0A8 +:104140006B017C0184E50E942E5E882391F08DED49 +:1041500090E00E94467081110C9437ABE091BC074F +:10416000F0E0EE0FFF1FED5BFD4FD182C0820C949B +:1041700037ABD0924602C09245020C9437AB80E533 +:104180000E942E5E882311F40C9437AB0E94C95E06 +:104190000F9479C0D62E062F172F83E50E942E5E2E +:1041A000882331F00E94C95E0F9479C07B0103C05F +:1041B000EE24EA94FE2CC7010196039710F00C94AC +:1041C00037ABEFEEF3E0819191918017910711F4F5 +:1041D0000C9437AB24E0E732F207A9F717FF02C0CF +:1041E0000C9437AB0F94B93ECD2C60E08D2D0F941D +:1041F0000FB93FEFE316F30631F0EA94EF2871F0C0 +:1042000000E010E00DC08D2D0F947DB931E020E06D +:10421000892B09F030E0032F122F02C001E010E0DB +:104220008C2D0F947DB98017910711F40C9437AB46 +:104230000F94224D80E00E94487680E00F94CB637B +:10424000EFCF83E50E942E5E882331F00E94C95E85 +:104250000F9479C08B0102C00EE610E080E50E9449 +:104260002E5E882331F00E94C95E0F9479C0CB0185 +:1042700002C088EE93E06C01EE24D7FCE094FE2CA3 +:104280001016110684F420E030E0A901B80184E59D +:104290000F9472BBC701B6010F9453B784E50F9416 +:1042A00098BE0C9437ABC701B6010F9453B70C946A +:1042B00037AB80E50E942E5E882351F00E94C95ED4 +:1042C000609396027093970280939802909399025C +:1042D00089E40E942E5E882361F00E94C95E0F94DB +:1042E0002A53609392027093930280939402909366 +:1042F000950284E40E942E5E882361F00E94C95ECC +:104300000F94365360938E0270938F0280939002C5 +:104310009093910283E40E942E5E882351F00E94C4 +:10432000C95E60938A0270938B0280938C02909393 +:104330008D020F947F44E3E6FEE785919491FC01A2 +:104340002491222341F03091C00035FFFCCF20930F +:10435000C6000196F4CFEAEDF3E08191882339F0AD +:104360009091C00095FFFCCF8093C600F6CF40919E +:10437000960250919702609198027091990222E002 +:1043800030E080EF96E00E940B5EEEEDF3E081916D +:10439000882339F09091C00095FFFCCF8093C60030 +:1043A000F6CF609192027091930280919402909165 +:1043B00095020F943053AB01BC0122E030E080EF56 +:1043C00096E00E940B5EE2EEF3E08191882339F0E3 +:1043D0009091C00095FFFCCF8093C600F6CF60910E +:1043E0008E0270918F0280919002909191020F94B1 +:1043F0003C53AB01BC0122E030E080EF96E00E942C +:104400000B5EE6EEF3E08191882339F09091C000D5 +:1044100095FFFCCF8093C600F6CF40918A02509161 +:104420008B0260918C0270918D0222E030E080EF6F +:1044300096E00E940B5E8091C00085FFFCCF8AE071 +:104440008093C6000C9437AB80E50E942E5E8823D3 +:1044500051F00E94C95E6093860270938702809338 +:1044600088029093890289E40E942E5E882361F07D +:104470000E94C95E0F942A53609382027093830254 +:10448000809384029093850284E40E942E5E8823A8 +:1044900061F00E94C95E0F94365360937E02709360 +:1044A0007F0280938002909381020F947F44E3E621 +:1044B000FEE785919491FC012491222341F03091F3 +:1044C000C00035FFFCCF2093C6000196F4CFEAED83 +:1044D000F3E08191882339F09091C00095FFFCCFE3 +:1044E0008093C600F6CF409186025091870260917A +:1044F00088027091890222E030E080EF96E00E940D +:104500000B5EEEEDF3E08191882339F09091C000CD +:1045100095FFFCCF8093C600F6CF60918202709128 +:10452000830280918402909185020F943053AB01F5 +:10453000BC0122E030E080EF96E00E940B5EE2EEEC +:10454000F3E08191882339F09091C00095FFFCCF72 +:104550008093C600F6CF60917E0270917F028091B9 +:104560008002909181020F943C53AB01BC0122E088 +:1045700030E080EF96E00E940B5E8091C00085FFE6 +:10458000FCCF8AE08093C6000C9437AB83E50E9491 +:104590002E5E882319F00E94C95E03C060E070E0BF +:1045A000CB010F9461340C9437AB85E40E942E5EEE +:1045B000882341F00E94C95E0F9479C08B0177FF78 +:1045C00003C009C000E010E0812C912CB6E1AB2EB5 +:1045D000B3E4BB2E06C0812C912CACE8AA2EA2E439 +:1045E000BA2E83E50E942E5E882321F00E94C95EC8 +:1045F0004B015C0183E40E942E5E882331F00E940F +:10460000C95E0F9479C09B0102C028E030E0A80188 +:10461000C501B4010F94CD450C9437AB0F94B93E4E +:104620000C9437AB0E9406580C9437AB0E947A5614 +:104630000C9437AB0E94DB510C9437AB0F94DB61C9 +:10464000ECE3FDE08491882341F09091C00095FF58 +:10465000FCCF8093C6003196F5CFE1E2F8E084917B +:10466000882311F40C9437AB9091C00095FFFCCFD8 +:104670008093C6003196F3CF8AE50E942E5E882390 +:1046800009F4AEC00E94C95E4B015C0120E030E03D +:1046900040E751EC0F9439C287FD4DC020E030E077 +:1046A00040EA50ECC501B4010F940AC018160CF48E +:1046B00042C0B7FAB094B7F8B09480920D0A9092C5 +:1046C0000E0AA0920F0AB092100AECE3FDE084916A +:1046D000882341F09091C00095FFFCCF8093C600E5 +:1046E0003196F5CFE3E6FEE745915491EFEDF9E71A +:1046F0008591949120E238E06BE776E00E94D6D372 +:10470000FC012491222341F03091C00035FFFCCF01 +:104710002093C6000196F4CF8091C00085FFFCCFA6 +:104720008AE08093C6008091C00085FFFCCF8AE0BC +:104730008093C6009CC7ECE3FDE08491882341F0A0 +:104740009091C00095FFFCCF8093C6003196F5CFC5 +:10475000EFEDF9E785919491FC012491222341F03A +:104760003091C00035FFFCCF2093C6000196F4CFF6 +:10477000EBEDF9E785919491FC012491222341F01E +:104780003091C00035FFFCCF2093C6000196F4CFD6 +:104790004AE050E061EF7FEF80EF96E00E94185D05 +:1047A000EDEDF9E785919491FC012491222341F0EC +:1047B0003091C00035FFFCCF2093C6000196F4CFA6 +:1047C0004AE050E06BEF7FEF80EF96E00E94185DCB +:1047D0008091C00085FFFCCF8AE08093C60047C768 +:1047E000ECE3FDE08491882341F09091C00095FFB7 +:1047F000FCCF8093C6003196F5CFEFEDF9E78591B8 +:1048000094916CE178E00E94B5D3FC0124912223BD +:1048100041F03091C00035FFFCCF2093C6000196D7 +:10482000F4CF8091C00085FFFCCF8AE08093C60062 +:1048300040910D0A50910E0A60910F0A7091100A72 +:10484000705822E030E080EF96E00E940B5E80918D +:10485000C00085FFFCCF8AE08093C60008C70F9494 +:10486000B93E80911D18882321F086E190E00F94D5 +:10487000AD718091470290914802909342028093DB +:104880004102C090200AD090210AE090220AF090C4 +:10489000230ACF8ED8A2E9A2FAA20091240A10918D +:1048A000250A2091260A3091270A0BA31CA32DA3C9 +:1048B0003EA34091280A5091290A60912A0A7091DA +:1048C0002B0A4FA358A769A77AA780912C0A909129 +:1048D0002D0AA0912E0AB0912F0A8BA79CA7ADA7F5 +:1048E000BEA7C982DA82EB82FC820D831E832F83EE +:1048F000388749875A876B877C878D879E87AF87E4 +:10490000B88B85E40E942E5E882359F00E94C95E10 +:104910009B01AC016BA57CA58DA59EA50F941ABF2C +:104920000AC020E030E040E050E46BA57CA58DA5F6 +:104930009EA50F9419BF6BA77CA78DA79EA7EFA07C +:10494000F8A409A51AA52BA13CA14DA15EA16F8DCC +:1049500078A189A19AA1ECE0FAE0FF93EF93812C72 +:10496000912CF8ECAF2EF3E4BF2EDE019B966D0187 +:104970000F9415268AE50E942E5E0F900F908823D3 +:1049800049F00E94C95E9B01AC016FA178A589A581 +:104990009AA51EC020E030E040EA51E46FA178A55E +:1049A00089A59AA50F941ABF4B015C016FA378A744 +:1049B00089A79AA720E030E040E251E40F940AC0B2 +:1049C00087FF0CC020E030E040E251E4C501B401B3 +:1049D0000F941ABF6FA378A789A79AA7EFA0F8A48E +:1049E00009A51AA52BA13CA14DA15EA16F8D78A1AF +:1049F00089A19AA1ECE0FAE0FF93EF93812C912C2E +:104A0000E0E7AE2EE1E4BE2EFE01BB966F010F94EF +:104A1000152688E50E942E5E0F900F90882379F06E +:104A20000E94C95E9B01AC016F8D78A189A19AA1FA +:104A30000F941ABF6F8F78A389A39AA304C01F8E07 +:104A400018A219A21AA289E50E942E5E882339F0C5 +:104A50000E94C95E6BA37CA38DA39EA308C08DECAE +:104A60009CECACE0B0EC8BA39CA3ADA3BEA3EFA0E9 +:104A7000F8A409A51AA52BA13CA14DA15EA16F8D9B +:104A800078A189A19AA1ECE0FAE0FF93EF93812C41 +:104A9000912CA8E4AA2EA2E4BA2EDE019B966D0109 +:104AA0000F9415260F94B93E81E08093470AE09158 +:104AB000530AF0E0EE0FFF1FE15CF54885919491F9 +:104AC0000F944A628CE40E942E5E0F900F90882310 +:104AD00059F00E94C95E9B01AC016BA57CA58DA518 +:104AE0009EA50F941ABF0AC020E030E040EA52E4CD +:104AF0006BA57CA58DA59EA50F9419BF6BA77CA760 +:104B00008DA79EA7EFA0F8A409A51AA52BA13CA1EB +:104B10004DA15EA16F8D78A189A19AA1ECE0FAE088 +:104B2000FF93EF93812C912CF8ECAF2EF3E4BF2E82 +:104B3000FE01BB966F010F9415260F94B93E149A8F +:104B400064E670E080E090E00F9453B70F94C78A5A +:104B50000F9424B76093560A7093570A8093580AAB +:104B60009093590A0F900F9000E010E0F12C0F94F1 +:104B7000EC6581112AC0F3940F94224D81E00E94CC +:104B80004876F110F4CF043FF1E01F0711F400E084 +:104B900010E08091010184608093010101151105ED +:104BA00031F49FB7F89480910201846008C0043109 +:104BB000110541F49FB7F894809102018B7F809397 +:104BC00002019FBF0F5F1F4FD2CF9FB7F894809114 +:104BD00002018B7F809302019FBF20E030E04CE810 +:104BE00052E46BA57CA58DA59EA50F941ABF6BA75B +:104BF0007CA78DA79EA7EFA0F8A409A51AA52BA1B5 +:104C00003CA14DA15EA16F8D78A189A19AA1ACE0D4 +:104C10006A2EAAE07A2E7F926F92812C912CB0EAB4 +:104C2000AB2EB1E4BB2EDE019B966D010F941526D1 +:104C300020E030E048E452E46BA57CA58DA59EA55C +:104C40000F941ABF6BA77CA78DA79EA7EFA0F8A40F +:104C500009A51AA52BA13CA14DA15EA16F8D78A13C +:104C600089A19AA17F926F92812C912CA12CE0E4D2 +:104C7000BE2E0F9415261092790A1092780A0F947E +:104C8000488B0F900F900F900F908091780A909121 +:104C9000790A019709F48CC01092790A1092780A67 +:104CA0000F94928B8091780A9091790A82309105C5 +:104CB00071F1039709F076C020E030E048E452E457 +:104CC0006BA57CA58DA59EA50F941ABF6BA77CA78D +:104CD0008DA79EA7EFA0F8A409A51AA52BA13CA11A +:104CE0004DA15EA16F8D78A189A19AA17F926F924B +:104CF000812C912CA12CB0E4BB2EDE019B966D0182 +:104D00000F9415260F94FE8A0F900F90BECF20E0CF +:104D100030E04CE852E46BA57CA58DA59EA50F94D0 +:104D20001ABF6BA77CA78DA79EA7EFA0F8A409A523 +:104D30001AA52BA13CA14DA15EA16F8D78A189A1DF +:104D40009AA17F926F92812C912CE0EAAE2EE1E441 +:104D5000BE2EDE019B966D010F94152620E030E0FB +:104D600048E452E46BA57CA58DA59EA50F941ABFBF +:104D70006BA77CA78DA79EA7EFA0F8A409A51AA5ED +:104D80002BA13CA14DA15EA16F8D78A189A19AA113 +:104D90007F926F92812C912CA12CF0E4BF2E0F9466 +:104DA00015266DCF0F94EB8A81E00F94C5646DCF0B +:104DB00020E030E040EA50E46BA57CA58DA59EA5DF +:104DC0000F941ABF6BA77CA78DA79EA7EFA0F8A48E +:104DD00009A51AA52BA13CA14DA15EA16F8D78A1BB +:104DE00089A19AA1ECE06E2EEAE07E2E7F926F926E +:104DF000812C912CA12CF0E4BF2EFE01BB966F01FB +:104E00000F941526A50194016BA57CA58DA59EA5E3 +:104E10000F9419BF6BA77CA78DA79EA7EFA0F8A43E +:104E200009A51AA52BA13CA14DA15EA16F8D78A16A +:104E300089A19AA17F926F92812C912CA8ECAA2E25 +:104E4000A3E4BA2E0F941526EFA0F8A409A51AA57D +:104E50002D813E814F81588569817A818B819C812A +:104E60007F926F92812C912CB8E4AB2EB2E4BB2ED2 +:104E70000F941526E984FA840B851C852D813E81CB +:104E80004F81588569817A818B819C817F926F9255 +:104E9000812C912CE0E7AE2EE1E4BE2E0F94152676 +:104EA00020E030E040E050E46BA57CA58DA59EA5F8 +:104EB0000F941ABF6BA77CA78DA79EA7E984FA84DD +:104EC0000B851C852D813E814F81588569817A81B2 +:104ED0008B819C817F926F92812C912CF8ECAF2E6C +:104EE000F3E4BF2E0F941526CE010D960F94443493 +:104EF0008091410290914202809347029093480230 +:104F00009F938F9383E198E09F938F938E01015D30 +:104F10001F4F1F930F930F9441C960E0C8010E9477 +:104F2000B563E091530AF0E0EE0FFF1FE353F6483C +:104F3000859194910F944A621092470A1092450A03 +:104F40001092440A0FB6F894DEBF0FBECDBF8FC3D8 +:104F50008091211890912218892B09F088C385E04F +:104F600090E0909322188093211881C3809121189A +:104F700090912218892B09F07AC386E090E09093F3 +:104F800022188093211873C30E94736670C388E54A +:104F90000E942E5E882339F00E94C95E0F9479C06A +:104FA00080E00F941E408AE50E942E5E882339F02F +:104FB0000E94C95E0F9479C081E00F941E4085E481 +:104FC0000E942E5E882309F452C30E94C95E0F948A +:104FD00079C082E00F941E404AC383E50E942E5E92 +:104FE000811104C007E214E0F12C10C010E00E940F +:104FF000C95E0F947EC0812F0F94F8401F5F15305B +:10500000B1F7F0CFF394B4E0FB1679F0D8018D91AD +:105010008D010E942E5E8823A9F30E94C95E0F9421 +:105020007EC08F2D0F94F840EDCF82E40E942E5E5B +:10503000882339F00E94C95E0F947EC084E00F94EB +:10504000F8400F94C34113C383E50E942E5E88236A +:1050500009F453C00E94C95E0F9479C06130710594 +:1050600041F06230710509F048C007E214E0F12C0C +:1050700025C007E214E0F12CF80181918F010E9414 +:105080002E5E882341F00E94C95E0F9479C04FEFD5 +:105090008F2D0F94BA40F394F4E0FF12EDCF82E429 +:1050A0000E942E5E882349F10E94C95E0F9479C048 +:1050B0004FEF20C0F394B4E0FB1689F0D8018D9136 +:1050C0008D010E942E5E8823A9F30E94C95E0F9471 +:1050D00079C0462F6FEF8F2D0F94BA40EBCF82E44B +:1050E0000E942E5E882349F00E94C95E0F9479C009 +:1050F000462F6FEF84E00F94BA400F94C341B7C2BC +:10510000159881E08093470A82E090E09093450AE9 +:105110008093440AE091530AF0E0EE0FFF1FE5553B +:10512000F048859194910F944A6220E030E04CE879 +:1051300052E460912C0A70912D0A80912E0A909170 +:105140002F0A0F941ABF60932C0A70932D0A809334 +:105150002E0A90932F0AE090280AF090290A0091D5 +:105160002A0A10912B0A2091240A3091250A409195 +:10517000260A5091270A6091200A7091210A809195 +:10518000220A9091230AECE06E2EEAE07E2E7F92B6 +:105190006F92812C912CF0ECAF2EF0E4BF2EACE29C +:1051A000CA2EAAE0DA2E0F94152620E030E048EC53 +:1051B00051E460912C0A70912D0A80912E0A9091F1 +:1051C0002F0A0F941ABF60932C0A70932D0A8093B4 +:1051D0002E0A90932F0AE090280AF090290A009155 +:1051E0002A0A10912B0A2091240A3091250A409115 +:1051F000260A5091270A6091200A7091210A809115 +:10520000220A9091230A7F926F92812C912CB0E810 +:10521000AB2EBFE3BB2E0F9415260F94B93E0F9013 +:105220000F900F900F9080911D188823D1F081E08E +:105230000F94C56482E00F94CB63E091530AF0E0D1 +:10524000EE0FFF1FE353F648859194910F944A6245 +:105250001092460A1092470A1092450A1092440A88 +:1052600006C28091460A882311F3E091530AF0E0C8 +:10527000EE0FFF1FE354FF478591949141E060E0FA +:105280000F94249591E0811101C090E0BCE06B2E59 +:10529000BAE07B2E9111CBCF81E00F94C56482E000 +:1052A0000F94CB6320E030E048EC51E460912C0A8D +:1052B00070912D0A80912E0A90912F0A0F941ABF97 +:1052C00060932C0A70932D0A80932E0A90932F0AD4 +:1052D000E090280AF090290A00912A0A10912B0ADE +:1052E0002091240A3091250A4091260A5091270ADC +:1052F0006091200A7091210A8091220A9091230ADC +:105300007F926F92812C912CB0E8AB2EBFE3BB2E25 +:10531000ECE2CE2EEAE0DE2E0F9415260F94B93E75 +:10532000E091530AF0E0EE0FFF1FE354FF47859131 +:10533000949141E060E00F9424950F900F908111BB +:1053400076CFAACF81E08093470A82E090E09093E5 +:10535000450A8093440AE091530AF0E0EE0FFF1FE4 +:10536000E15CF548859194910F944A6220E030E029 +:1053700040EA52E460912C0A70912D0A80912E0A25 +:1053800090912F0A0F9419BF60932C0A70932D0AE5 +:1053900080932E0A90932F0AE090280AF090290A11 +:1053A00000912A0A10912B0A2091240A3091250A93 +:1053B0004091260A5091270A6091200A7091210A93 +:1053C0008091220A9091230AECE0FAE0FF93EF9398 +:1053D000812C912CB8EEAB2EB2E4BB2EECE2CE2E9B +:1053E000EAE0DE2E0F9415260F94B93EE091530AA1 +:1053F000F0E0EE0FFF1FE353F648859194910F9470 +:105400004A621092470A1092450A1092440A0F907D +:105410000F902DC1E3E0F8E08491882341F0909152 +:10542000C00095FFFCCF8093C6003196F5CF8091E8 +:10543000C00085FFFCCF8AE08093C60018C184E5D8 +:105440000E942E5E882309F4D1C0E091D107F0912B +:10545000D207319681918032E9F38930D9F390ED0A +:10546000980F9A30E0F08F33A9F0E3EFF7E08491E2 +:10547000882341F09091C00095FFFCCF8093C60037 +:105480003196F5CF8091C00085FFFCCF8AE08093F4 +:10549000C600EDC00F9466B28093BC0706C00E94A0 +:1054A000C95E0F947EC06093BC072091BC0781E069 +:1054B00090E0022E01C0880F0A94EAF79091410A09 +:1054C000982B9093410A222309F442C0ECE3FDE0BB +:1054D0008491882341F09091C00095FFFCCF809388 +:1054E000C6003196F5CFE1EFF7E08491882341F0D3 +:1054F0009091C00095FFFCCF8093C6003196F5CF08 +:105500006091BC0770E04AE050E080EF96E00E94B6 +:10551000185D8091C00085FFFCCF8AE08093C600B3 +:10552000E1EFFFE785919491FC012491222341F062 +:105530003091C00035FFFCCF2093C6000196F4CF18 +:105540008091C00085FFFCCF8AE08093C6008FC0A9 +:1055500086E40E942E5E8823D9F00E94C95E4B012A +:105560005C016093DB097093DC098093DD09909303 +:10557000DE0920E030E0A9010F9439C2181644F486 +:1055800080920B0290920C02A0920D02B0920E0239 +:10559000ECE3FDE08491882341F09091C00095FFF9 +:1055A000FCCF8093C6003196F5CFEDE4F3E885910A +:1055B0009491FC012491222341F03091C00035FFE9 +:1055C000FCCF2093C6000196F4CF60910C0A70E0E6 +:1055D0004AE050E080EF96E00E94185D8091C000A4 +:1055E00085FFFCCF8AE08093C60041C0ECE3FDE07C +:1055F0008491882341F09091C00095FFFCCF809367 +:10560000C6003196F5CFEDE4FAE785919491FC015F +:105610002491222341F03091C00035FFFCCF20932C +:10562000C6000196F4CFE091DB07F091DC07E2526F +:10563000F84F8191882339F09091C00095FFFCCFFD +:105640008093C600F6CFEFEEF7E08491882341F017 +:105650009091C00095FFFCCF8093C6003196F5CFA6 +:105660008091C00085FFFCCF8AE08093C6000E9435 +:10567000D568EAC78090F7099090F809A090F909D9 +:10568000B090FA0920912C0A30912D0A40912E0AEF +:1056900050912F0AC501B4010F9419BF2DEC3CECB9 +:1056A0004CEC5DE30F9439C2181614F00C94458845 +:1056B00080922C0A90922D0AA0922E0AB0922F0A64 +:1056C0008CE29AE00F94443460E080E00E94F96C30 +:1056D000BBC780E090E00E94175F0C94548981E082 +:1056E00090E00E94175F0C945F890E94C95E209130 +:1056F000140A3091150A4091160A5091170A0F9416 +:105700001ABF6093200A7093210A8093220A909313 +:10571000230A0C946C890E94C95E2091180A30916A +:10572000190A40911A0A50911B0A0F941ABF6093EC +:10573000240A7093250A8093260A9093270A0C94D2 +:10574000798980E090E00E94175F81E090E00E94FC +:10575000175F0C948F8980911D18882321F084E1B4 +:1057600090E00F94AD711092810A81CF0230110543 +:1057700011F40C94568F0E94597B81E08093750739 +:105780008093D60761E082E19BE00E9492646FCF34 +:10579000109275070230110519F41092550A67CF5F +:1057A000F091470A2B96FFAF2B972091440A309136 +:1057B000450A2D963FAF2EAF2D974091420A50914A +:1057C000430A2F965FAF4EAF2F9781E08093470A31 +:1057D00081E090E09093450A8093440A83E190E051 +:1057E0009093430A8093420A81E00F94CB6383E94C +:1057F0009FE00F94BC190F94EF1880E090E0A0EAAE +:10580000B0E48093280A9093290AA0932A0AB093BF +:105810002B0A20E030E040E752E4609151027091A1 +:10582000520280915302909154020F9411C04B0187 +:105830005C012091240A3091250A4091260A50915A +:10584000270A6091200A7091210A8091220A909182 +:10585000230AECE0FAE0FF93EF93FCE2CF2EFAE0AC +:10586000DF2EE12CF12C00EA10E40F941526E6E47B +:10587000FEE885919591A591B4918093200A90932B +:10588000210AA093220AB093230AEAE4FEE8859154 +:105890009591A591B4918093240A9093250AA093A1 +:1058A000260AB093270A64E27AE080E29AE00E9436 +:1058B000A16126968FAF26970F900F9058AD1516C1 +:1058C0000CF461C020E030E040EF51E46091490207 +:1058D00070914A0280914B0290914C020F9411C03A +:1058E0004B015C01E090280AF090290A00912A0AF5 +:1058F00010912B0A2091240A3091250A4091260A02 +:105900005091270A6091200A7091210A8091220A01 +:105910009091230AECE0FAE0FF93EF93ECE2CE2EB5 +:10592000EAE0DE2E0F9415260F94B93E20E030E019 +:1059300040EA51E46091490270914A0280914B0221 +:1059400090914C020F9411C00F9479C08B0120E00C +:1059500030E040E252E46091510270915202809135 +:105960005302909154020F9411C00F9479C07B019F +:105970000E9491EF21968FAF21970F900F9088ADE5 +:10598000181614F12BC026969FAD2697992371F017 +:10599000E0EFFAE08491882309F494CF9091C0005D +:1059A00095FFFCCF8093C6003196F4CFE6ECFAE089 +:1059B0008491882309F486CF9091C00095FFFCCF95 +:1059C0008093C6003196F4CF21969FAD21979923FD +:1059D00079F1E4EAFAE08491811122C080E00E942A +:1059E0004F5EA6E4BEE82396BFAFAEAF2397212C4F +:1059F000312C9701442737FD4095542F63962CAFE7 +:105A00003DAF4EAF5FAF6397C801AA2797FDA09542 +:105A1000BA2F67968CAF9DAFAEAFBFAF679715C07B +:105A20009091C00095FFFCCF8093C6003196D3CFF4 +:105A3000EEE7FAE08491882389F29091C00095FF07 +:105A4000FCCF8093C6003196F5CFA8AD1A16A4F40A +:105A5000EDE7FAE08491882341F09091C00095FF32 +:105A6000FCCF8093C6003196F5CF8091C00085FFB2 +:105A7000FCCF8AE08093C600C10163E070E00F9420 +:105A8000E9C425967FAF6EAF25979DAF8CAF249666 +:105A9000FFAD2497F0FF06C022E030E0281B390B51 +:105AA0003DAF2CAF21963FAD2197332309F475C04C +:105AB0002114310409F471C025968EAD9FAD259750 +:105AC000880F991F25964EAD5FAD2597840F951FC2 +:105AD000ACADBDAD8A0F9B1F880F991F8D53904FA2 +:105AE0000F946ACBBC01882777FD8095982F0F947F +:105AF000ACC02AE037ED43E25CE30F940BC3209186 +:105B0000940F3091950F4091960F5091970F0F94ED +:105B10001ABF2B013C01B8AD1B160CF041C0E7E6E3 +:105B2000FAE08491882341F09091C00095FFFCCF6A +:105B30008093C6003196F5CF4AE050E0B10180EF86 +:105B400096E00E94185DE5E5FAE08491882341F033 +:105B50009091C00095FFFCCF8093C6003196F5CFA1 +:105B600025E030E0B301A20180EF96E00E940B5ED9 +:105B7000E4E5FAE08491882341F09091C00095FF1C +:105B8000FCCF8093C6003196F5CF8091C00085FF91 +:105B9000FCCF8AE08093C60003C0412C512C320117 +:105BA00020E030E040EA50E42093280A3093290AAC +:105BB00040932A0A50932B0A63966CAD7DAD8EAD4F +:105BC0009FAD63970F94ACC02A966CAF7DAF8EAF3C +:105BD0009FAF2A972091240A3091250A4091260AE6 +:105BE0005091270A6091200A7091210A8091220A1F +:105BF0009091230AACE0BAE0BF93AF932A968CACA5 +:105C00009DACAEACBFAC2A97FCE2CF2EFAE0DF2E03 +:105C1000E12CF12C00EA10E40F9415260F94B93E04 +:105C20002396EEADFFAD239785919591A591B49103 +:105C30008093200A9093210AA093220AB093230A0A +:105C40002396EEADFFAD2397349685919591A5915E +:105C5000B4918093240A9093250AA093260AB093C6 +:105C6000270A64E27AE080E29AE00E94A1610F9044 +:105C70000F90F8AD1F16B4F167966CAD7DAD8EAD8B +:105C80009FAD67970F94ACC04B015C01E090280A70 +:105C9000F090290A00912A0A10912B0A2091240AD7 +:105CA0003091250A4091260A5091270A6091200AD6 +:105CB0007091210A8091220A9091230AACE0BAE007 +:105CC000BF93AF93ECE2CE2EEAE0DE2E0F941526C2 +:105CD0000F94B93E0F900F902196FFAD2197F111CF +:105CE00029C034C04AE050E0B10180EF96E00E9444 +:105CF000185D26962FAD2697222371F0E5E4FAE091 +:105D00008491882309F4B8CF9091C00095FFFCCF0F +:105D10008093C6003196F4CFE3E3FAE084918823C0 +:105D200009F4AACF9091C00095FFFCCF8093C600E4 +:105D30003196F4CF2114310449F020E030E040E8FE +:105D40005FE3C301B2010F9419BF04C060E070E0CB +:105D500080E291EC20E030E043E00E94DEF281112D +:105D600008C0E091530AF0E0EE0FFF1FE958FD472D +:105D70001FC08090280A9090290AA0902A0AB0900B +:105D80002B0AA501940160E070E080EA90E40F9492 +:105D900019BF2DEC3CEC4CEC5DE30F940AC087FF7F +:105DA0000AC0E091530AF0E0EE0FFF1FE759FD47EC +:105DB00065907490E8C02196FFAD2197FF23B9F05C +:105DC000A5019401C301B2010F9419BF9F7720E090 +:105DD00030E040E85FE30F9439C2181644F4E091D4 +:105DE000530AF0E0EE0FFF1FEB57FD47E1CF28AD60 +:105DF0002A300CF457C0EFE2FAE08491882341F096 +:105E00009091C00095FFFCCF8093C6003196F5CFEE +:105E10004091200A5091210A6091220A7091230A30 +:105E200025E030E080EF96E00E940B5EEEE2FAE0C3 +:105E30008491882341F09091C00095FFFCCF80931E +:105E4000C6003196F5CF8091C00085FFFCCF8AE077 +:105E50008093C600EAE2FAE08491882341F09091B1 +:105E6000C00095FFFCCF8093C6003196F5CF4091DE +:105E7000240A5091250A6091260A7091270A25E08C +:105E800030E080EF96E00E940B5EE8E2FAE0849159 +:105E9000882359F09091C00095FFFCCF8093C600F5 +:105EA0003196F5CF38AD13167CF5E4E1FAE007C082 +:105EB0009091C00095FFFCCF8093C60031968491ED +:105EC0008111F6CF4091280A5091290A60912A0A3F +:105ED00070912B0A25E030E080EF96E00E940B5E87 +:105EE000E3E1FAE08491882341F09091C00095FFAE +:105EF000FCCF8093C6003196F5CF8091C00085FF1E +:105F0000FCCF8AE08093C60087E025964EAD5FAD5A +:105F10002597849FF001859FF00D11248CAD9DADD8 +:105F2000E80FF91FEE0FFF1FEE0FFF1FED56F04FAA +:105F30008091280A9091290AA0912A0AB0912B0AEF +:105F400081839283A383B4838091420A9091430A10 +:105F500001979093430A8093420A9FEF291A390AC6 +:105F600081E00F94CB632396AEADBFAD2397189617 +:105F70002396BFAFAEAF2397B9E02B16310409F0DB +:105F800064CD612C712CE8ADE431A4F0ECEEF9E0C5 +:105F90008491882341F09091C00095FFFCCF8093BD +:105FA000C6003196F5CF8091C00085FFFCCF8AE016 +:105FB0008093C60080E090E0A0EAB0E48093280AD5 +:105FC0009093290AA0932A0AB0932B0AF8ADF431D2 +:105FD00014F1E7EDF9E08491882341F09091C0003D +:105FE00095FFFCCF8093C6003196F5CF8091C0001D +:105FF00085FFFCCF8AE08093C6004091280A50912B +:10600000290A60912A0A70912B0A25E030E080EF7E +:1060100096E00E940B5EE090280AF090290A009119 +:106020002A0A10912B0A2091240A3091250A4091C6 +:10603000260A5091270A6091200A7091210A8091C6 +:10604000220A9091230AECE0FAE0FF93EF932A965C +:106050008CAC9DACAEACBFAC2A97ECE2CE2EEAE0A5 +:10606000DE2E0F9415260F94B93E0F900F9029E065 +:106070002216310419F0C3010C945B970E947D5ED7 +:10608000E4ECF9E08491882341F09091C00095FF01 +:10609000FCCF8093C6003196F5CF8091C00085FF7C +:1060A000FCCF8AE08093C6008091800A882321F08B +:1060B0000E94BE6281112DC20F94C918E3EBF9E072 +:1060C0008491882341F09091C00095FFFCCF80938C +:1060D000C6003196F5CF8091C00085FFFCCF8AE0E5 +:1060E0008093C60080EC9FE00F945DCBEE24E39498 +:1060F000813009F0E12C38AD131654F0AE014F5F3A +:106100005F4F6A01F12C2CE4622E36E4732E1CC022 +:10611000EE2069F0E8E9F9E08491882379F3909121 +:10612000C00095FFFCCF8093C6003196F5CFE9E71C +:10613000F9E08491882311F39091C00095FFFCCF82 +:106140008093C6003196F5CF698252E55A837B82EF +:1061500082E48C83D6018D916D010E942E5E88238E +:1061600019F00E94445E1EC0EE2009F436C1B1E071 +:10617000BF1528F0F11009C08FEB9FE00BC0E2E0E3 +:10618000FE1206C08DEB9FE005C08EEB9FE002C0C3 +:106190008CEB9FE00F945DCB682F772767FD7095A0 +:1061A000872F972F611571058105910509F415C198 +:1061B0000F94ACC02FE632E143E85AE30F940BC3CF +:1061C0004B015C019F7727E139ED4EEC5DE30F94C5 +:1061D00039C218160CF037C0E2E4FDE08491882340 +:1061E00041F09091C00095FFFCCF8093C60031969E +:1061F000F5CFE5E5F9E08491882341F09091C00066 +:1062000095FFFCCF8093C6003196F5CF22E030E0B9 +:10621000B501A40180EF96E00E940B5EECE4F9E08A +:106220008491882341F09091C00095FFFCCF80932A +:10623000C6003196F5CF8091C00085FFFCCF8AE083 +:106240008093C600CAC0F2E0FF1609F469C023E0DB +:10625000F21609F494C031E0F31689F120E030E041 +:1062600040E05FE3C501B4010F940BC31B012C0197 +:1062700004E91FE0A2019101D80114966D917D916E +:106280008D919C9117970F941ABFF80164837583C1 +:1062900086839783A50194016081718182819381B6 +:1062A0000F941ABFD8016D937D938D939C93139790 +:1062B000045E1F4FBFE0083E1B07E1F68EC020E0E2 +:1062C00030E040E05FE3C501B4010F940BC31B0154 +:1062D0002C0108E91FE0A2019101F80160817181A0 +:1062E000828193810F941ABFD8016D937D938D9312 +:1062F0009C931397A501940114966D917D918D91B6 +:106300009C9117970F941ABFF80164837583868355 +:106310009783045E1F4FFFE00C3E1F07E1F65DC050 +:1063200020E030E040E05FE3C501B4010F940BC30F +:106330001B012C0104E91FE0A2019101D8015C9628 +:106340006D917D918D919C915F970F941ABFF8018B +:10635000648F758F868F978FA501940160817181FD +:10636000828193810F941ABFD8016D937D938D9391 +:106370009D938D01BFE0003A1B07F1F62EC020E08F +:1063800030E040E05FE3C501B4010F940BC31B0193 +:106390002C0100EB1FE0A2019101F80160817181E5 +:1063A000828193810F941ABFD8016D937D938D9351 +:1063B0009D938D01A501940158966D917D918D91CC +:1063C0009C915B970F941ABFF801608F718F828F39 +:1063D000938FFFE00C3B1F07F1F6F39424E0F212D9 +:1063E000B3CEEBE2F9E08491882341F09091C000B4 +:1063F00095FFFCCF8093C6003196F5CF8091C00009 +:1064000085FFFCCF8AE08093C60083E99FE00F946C +:10641000D719E9E1F9E08491882341F09091C00017 +:1064200095FFFCCF8093C6003196F5CF8091C000D8 +:1064300085FFFCCF8AE08093C60081E08093930FB4 +:10644000EDEFF8E08491882341F09091C00095FF32 +:10645000FCCF8093C6003196F5CF8091C00085FFB8 +:10646000FCCF8AE08093C6000F94AC0EECEEF8E00F +:106470008491882341F09091C00095FFFCCF8093D8 +:10648000C6003196F5CF8091C00085FFFCCF8AE031 +:106490008093C600E0910C0A34E0E39FF0011124E0 +:1064A000E65CF84E20E030E042E053E46081718128 +:1064B000828193810F9439C2181674F48091800AF6 +:1064C000882351F00E94BE62882331F080914017EA +:1064D00090914117C29704F52B964FAD2B9740939F +:1064E000470A2D968EAD9FAD2D979093450A8093C8 +:1064F000440A2F96AEADBFAD2F97B093430AA09339 +:10650000420A1092550A1092540A82E00F94CB630B +:10651000AEC80E944080D0CD20E030E040E85FE38C +:1065200060912C0A70912D0A80912E0A90912F0A69 +:106530000F941ABF60932C0A70932D0A80932E0A31 +:1065400090932F0AE090280AF090290A00912A0AD5 +:1065500010912B0A2091240A3091250A4091260A95 +:106560005091270A6091200A7091210A8091220A95 +:106570009091230AECE0FAE0FF93EF93812C912CA9 +:10658000E8ECAE2EE3E4BE2EFCE2CF2EFAE0DF2EE6 +:106590000F9415260F900F909FCF0F94224D81E0FE +:1065A0000E94487680E00F94CB630C9450930E9435 +:1065B000445EAB01BC0140933B0D50933C0D609396 +:1065C0003D0D70933E0D86E89CE00E9462BC4FC872 +:1065D0000E94C95E0F9479C08B010C948B950F9427 +:1065E0005B77E091530AF0E0EE0FFF1FEB5AF148A2 +:1065F000859194910F94F565E091530AF0E0EE0FC8 +:10660000FF1FE356FF4785919491BE016F5F7F4F57 +:106610000F94016541E050E062E080E00F943D613D +:10662000E091530AF0E0EE0FFF1FE157FF4785911D +:1066300094910F94BE780C940A960F94B93E149AD4 +:106640000F94373F0C940D9BCA5ADF4F0FB6F89446 +:10665000DEBF0FBECDBFDF91CF911F910F91FF9095 +:10666000EF90DF90CF90BF90AF909F908F907F90F2 +:106670006F905F904F903F902F9008950F931F93CE +:1066800080917A0A90917B0A892BA1F00F9424B70C +:106690000091BD071091BE072091BF073091C00740 +:1066A000601B710B820B930B693E73408105910552 +:1066B00008F085C080917A0A90917B0A892B11F4A9 +:1066C0001092820A8091520A882319F00E942A6847 +:1066D00064C00E94667160E08DE99AE00E944ACD34 +:1066E0008091D7079091D807892B09F456C08091E3 +:1066F0009D0A8823B1F00091DB071091DC0702525C +:10670000184F61E07CE0C8010F946CC8892B09F533 +:10671000B8018DE99AE00E9499CC80919E0A882365 +:1067200019F00E94DF8231C0E3E6FEE78591949183 +:10673000FC012491222341F03091C00035FFFCCFB1 +:106740002093C6000196F4CF8091C00085FFFCCF56 +:1067500019C060E08DE99AE00E9442CEE9EBF0E8D2 +:1067600085919491FC012491222341F03091C00045 +:1067700035FFFCCF2093C6000196F4CF8091C00076 +:1067800085FFFCCF8AE08093C6008091D6078111F7 +:1067900002C00E94EA621092D6070F94224D8091A7 +:1067A0001E18882311F081E001C080E00E94487625 +:1067B0000F94B23480E01F910F910D94CB6381E070 +:1067C0008093820A80917A0A90917B0A0197909334 +:1067D0007B0A80937A0A0F9424B76093BD07709365 +:1067E000BE078093BF079093C00764CFCF92DF921C +:1067F000EF92FF920F931F93CF93DF93CDB7DEB746 +:10680000E0970FB6F894DEBF0FBECDBF85E0EAEE8D +:10681000F3E0DE019C9601900D928A95E1F78E01DE +:10682000015E1F4FBEE9EB2EBFE0FB2ED02EC12E26 +:10683000C7010F945DCBF80181938F01FFEFEF1A31 +:10684000FF0A86EAE8168FE0F80691F71FA2ED2D01 +:10685000FC2D8191882339F09091C00095FFFCCFE9 +:106860008093C600F6CFBE01645D7F4F8D2D9C2DB9 +:106870000F94B6C8CF92DF9283E497E09F938F93F3 +:106880008E010F5F1F4F1F930F930F9441C90F90FD +:106890000F900F900F900F900F907E0195E0E90EF2 +:1068A000F11CF7018081882349F0992787FD909595 +:1068B0000F9416C8F70181937F01F3CF60E0C80100 +:1068C0000E94B5638AE99FE00F9465CBF62EE72E10 +:1068D000D82EC92EE8E2F7E08491882341F0909108 +:1068E000C00095FFFCCF8093C6003196F5CF2AE01B +:1068F00030E04F2D5E2D6D2D7C2D80EF96E00E94B7 +:10690000765DF0923B0DE0923C0DD0923D0DC09231 +:106910003E0D4F2D5E2D6D2D7C2D86E89CE0D2D74F +:1069200061E084E297E00E94B563CF92DF92EF923C +:10693000FF928CE197E09F938F931F930F930F9497 +:1069400041C960E0C8010E94B5630FB6F894DEBF8C +:106950000FBECDBFE0960FB6F894DEBF0FBECDBF21 +:10696000DF91CF911F910F91FF90EF90DF90CF902B +:106970000895EEE0F7E08491882341F09091C00003 +:1069800095FFFCCF8093C6003196F5CF8091890C9E +:10699000882321F18091330D9091340DA091350D14 +:1069A000B091360D0097A105B105C1F0BC01CD0134 +:1069B0006D597F4F8F4F9F4F24E630E040E050E00D +:1069C0000F94FCC460913B0D70913C0D80913D0D86 +:1069D00090913E0D0F94FCC4622F01C060E040E036 +:1069E00050E080EF96E00E945D5DE7E0F7E0849183 +:1069F000882341F09091C00095FFFCCF8093C600A2 +:106A00003196F5CF8091890C882349F040913B0D58 +:106A100050913C0D60913D0D70913E0D03C040E0E2 +:106A200050E0BA012AE030E080EF96E00C94765D09 +:106A30002FE234E0FC01318320832781222319F0E7 +:106A400004960C9445BD08958F929F92AF92BF9289 +:106A5000CF92DF92EF92FF920F931F93CF93DF932A +:106A60008C018B519E4FE4DF680189E8C80ED11C70 +:106A7000C114D10419F1780181E4E81A8EEFF80A03 +:106A8000E70157018FE1A81AB1088FE2882E84E050 +:106A9000982ECC15DD0591F0FE01EE19FF09EA0DE7 +:106AA000FB1D91828082FE0178978081811102C056 +:106AB0006F97EFCFCE014B97E8D7FACFC801865931 +:106AC0009F4FB6DFC801875B9F4FDF91CF911F912A +:106AD0000F91FF90EF90DF90CF90BF90AF909F907D +:106AE0008F90A6CF8DE99AE00E94A9C60F9424B793 +:106AF0006093990A70939A0A80939B0A90939C0AD8 +:106B00000F9424B76093950A7093960A8093970A1E +:106B10009093980A0F9424B76093910A7093920A05 +:106B20008093930A9093940A0F9424B76056794700 +:106B30008E4F9F4F60937C0A70937D0A80937E0AEC +:106B400090937F0A0F9424B760935A0A70935B0A5C +:106B500080935C0A90935D0A08958DE99AE074CF62 +:106B60008FEF8EBD0DB407FEFDCF8EB508958EBD9F +:106B70000DB407FEFDCF089561E0FC0180810D9406 +:106B800048B9FC012281322F306A36953CBD20FD88 +:106B900006C031E0263009F430E0232F01C020E0A8 +:106BA0002DBD60E0FC0180810D9448B9CF92DF9249 +:106BB000EF92FF920F931F93CF93DF93EC018B0122 +:106BC0007A010F9424B76B01CBDF8B838F3F49F49D +:106BD0000F9424B76C197D096D327140A8F381E1DF +:106BE00044C08E3F11F08FE040C0E114F104D9F0B1 +:106BF000C70101972FEF2EBDF8014FEF9F01201B1A +:106C0000310B2817390738F40DB407FEFDCF2EB528 +:106C100021934EBDF3CF0DB407FEFDCF2EB5F80185 +:106C2000E80FF91F2083D801E00EF11EC12CD12CF2 +:106C3000AE15BF0579F08D91ED2DFF27E827EE0FFA +:106C4000FF1FE75BF24F85919491DC2CCC24C82682 +:106C5000D926EECF85DF082F10E0102F002780DF28 +:106C6000082BC016D10659F080E28983CE0184DF5B +:106C7000CD81CC2369F08FEF7ADFC0E009C0CE016F +:106C80007BDFCD81CC2319F08FEF71DF01C0C1E034 +:106C90008C2FDF91CF911F910F91FF90EF90DF909C +:106CA000CF9008950F931F93CF93DF93EB010F9431 +:106CB00024B78B0155DF8F3F49F00F9424B7601B39 +:106CC000710B6C177D07B0F380E001C081E0DF91AC +:106CD000CF911F910F910895CF92DF92FF920F9362 +:106CE0001F93CF93DF9300D01F92CDB7DEB76C0117 +:106CF000F62E29833A834B835C8343DF6CE271E099 +:106D0000C601D0DF8F2D806432DF08E110E05C81A6 +:106D10004B813A812981DA01C901002E04C0B69560 +:106D2000A795979587950A94D2F729833A834B8341 +:106D30005C831DDF0850110929813A814B815C81F8 +:106D4000083F8FEF180739F7FF2029F0E8E0FE161B +:106D500021F08FEF03C085E901C087E808DFFCE080 +:106D6000FF1201C0FDDE10E0FBDEF601838387FF2A +:106D700004C01F3F11F01F5FF7CF0F900F900F90CF +:106D80000F90DF91CF911F910F91FF90DF90CF90E7 +:106D90000895BF92CF92DF92EF92FF920F931F93CD +:106DA000CF93DF93EC01B62E1C82198248830F9497 +:106DB00024B78B0161E088810F940FB9CE01DCDE2E +:106DC00060E082E30F940FB961E083E30F940FB9A1 +:106DD00061E084E30F940FB961E085E30F940FB98C +:106DE00061E085E30F9448B985E08A8382E58CBD34 +:106DF0001DBC6AE0F62E8FEFBADEFA94E1F720E0D0 +:106E000030E0A90160E0CE0167DFF82E8B8381E0DE +:106E1000F81649F00F9424B7601B710B613D774061 +:106E200070F381E046C02AEA31E040E050E068E0DB +:106E3000CE0152DF82FF02C0FC820CC054E0F52E6E +:106E40008FDE8B83FA94E1F78A3A11F082E031C049 +:106E500082E08C838C81823031F4C12CD12CE12CE6 +:106E600040E4F42E03C0C12CD12C760120E030E0A8 +:106E7000A90167E3CE0130DFA701960169E2CE01E7 +:106E80002BDF8B83882349F00F9424B7601B710B91 +:106E9000613D774058F38AE00CC08C818230B1F4B8 +:106EA00020E030E0A9016AE3CE0116DF882329F053 +:106EB00088E08983CE0160DE14C052DE807C803C95 +:106EC00011F483E08C834CDE4BDE4ADECE0154DECF +:106ED00086E08B1518F488E1898303C0BA8281E0CB +:106EE00001C080E0DF91CF911F910F91FF90EF9053 +:106EF000DF90CF90BF900895AF92BF92CF92DF9274 +:106F0000EF92FF920F931F93CF93DF93EC016A01EF +:106F10007B0189018C81833039F0F9E0CC0CDD1CD8 +:106F2000EE1CFF1CFA95D1F773E0B72EE4E0AE2E0D +:106F3000BA94A701960161E1CE01CEDE882311F05B +:106F4000A98207C040E052E0B801CE012FDE8111D6 +:106F50000EC0CE01BB2049F00FDE20E030E0A901D9 +:106F60006CE0CE01B9DE1982E3CF06DE80E0DF916E +:106F7000CF911F910F91FF90EF90DF90CF90BF9036 +:106F8000AF900895CF93DF93EC016EBD20E030E029 +:106F90000DB407FEFDCFFA01E20FF31F80818EBD15 +:106FA0000DB407FEFDCF81818EBD2E5F3F4F2115B1 +:106FB00082E0380769F70DB407FEFDCF8FEFD7DD0C +:106FC0008FEFD5DDCDDD8B838F71853031F083E19F +:106FD0008983CE01D1DD80E001C081E0DF91CF91D6 +:106FE00008950F931F93CF93DF93EC0189018C8158 +:106FF000833039F0B9E0440F551F661F771FBA95EB +:10700000D1F79A01AB0168E1CE0166DE882311F069 +:1070100086E01EC0A8016EEFCE01B4DF8823C9F060 +:1070200068E572E0CE013EDE182F811102C087E1D3 +:107030000FC020E030E0A9016DE0CE014DDE8111EE +:1070400006C08EDD811103C0CE0196DD05C086E14C +:107050008983CE0191DD10E0812FDF91CF911F91C7 +:107060000F9108950F931F93CF93DF93EC010F942B +:1070700024B78B0175DD8B838F3F49F40F9424B7C0 +:10708000601B710B6D327140A8F381E103C08E3F2C +:1070900031F08FE08983CE016FDD80E001C081E0B7 +:1070A000DF91CF911F910F910895CF92DF92EF92D0 +:1070B000FF920F931F93CF93DF937C0169019A0195 +:1070C000AB0160E309DE882321F080E8F7018183CA +:1070D0001BC0C701C7DF8823B9F0E601C00ED11E6F +:1070E000CC15DD0519F03CDD8993FACF0230F2E0D2 +:1070F0001F0720F435DD0F5F1F4FF8CFC7013CDDC0 +:107100008FEF35DD81E003C0C70136DD80E0DF9120 +:10711000CF911F910F91FF90EF90DF90CF90089546 +:107120004F925F926F927F928F929F92AF92BF9297 +:10713000CF92DF92EF92FF920F931F934801590174 +:1071400051E09522AA24BB24240135014E0C5F1C7A +:10715000611C711C51E0451652E055066104710432 +:1071600030F0E12CE2E0FE2EE818F90804C0E1144A +:10717000F10409F448C0462E512C612C712C77245F +:1071800046947794662455244424662369F0477016 +:10719000842E912CA12CB12C5CE1880C991CAA1C8A +:1071A000BB1C5A95D1F70CC04F70842E912CA12C8A +:1071B000B12C4BE1880C991CAA1CBB1C4A95D1F739 +:1071C000B901A8016170772709E0440F551F661FB8 +:1071D000771F0A95D1F74429552966297729270170 +:1071E00021E0421A510821E05222612C712C4429DD +:1071F000552966297729482959296A297B29870130 +:10720000960153DF01C081E01F910F91FF90EF9035 +:10721000DF90CF90BF90AF909F908F907F906F90B6 +:107220005F904F900895CF93DF93EC019C012C5F0A +:107230003F4F41E050E060E070E0898D9A8D0E9400 +:1072400005C4882399F04D895E896F89788D452B17 +:10725000462B472B59F44C815D816E817F814D8B8C +:107260005E8B6F8B788F998190689983DF91CF9136 +:107270000895CF92DF92EF92FF920F931F93CF93D7 +:10728000DF93EC0189899A89AB89BC89803E9F4F45 +:10729000AF41B10510F080E06AC0CE01C4DF8823A1 +:1072A000D1F30E9419C2182F8823A9F3E98DFA8D12 +:1072B000CC80DD80EE80FF8032E0C31AD108E10887 +:1072C000F108058404C0CC0CDD1CEE1CFF1C0A94E4 +:1072D000D2F786859785A089B189C80ED91EEA1E86 +:1072E000FB1E81E080934C0DC0924F0FD092500F47 +:1072F000E092510FF092520F80E092E0EFE4FDE057 +:10730000DF019C011D9221503040E1F701E0E98D41 +:10731000FA8D8481081788F42FE43DE0B701A601B7 +:10732000400F511D611D711D80914D0D90914E0DAD +:1073300058DE8823E1F00F5FEACFC12C82E0D82E1F +:10734000E12CF12C058404C0CC0CDD1CEE1CFF1CD0 +:107350000A94D2F749895A896B897C894C0D5D1D45 +:107360006E1D7F1D498B5A8B6B8B7C8B812FDF9120 +:10737000CF911F910F91FF90EF90DF90CF900895E4 +:10738000CF93DF93EC0141E0611101C040E06C85D7 +:107390007D858E859F850E9459C2882341F088890A +:1073A00020E2829FC0011124815B924F02C080E0E5 +:1073B00090E0DF91CF91089530E020E04EE2DC01D3 +:1073C0005C91503271F0383029F4FB01E20FF11D6D +:1073D00040832F5FFB01E20FF11DDC015C915083C4 +:1073E0002F5F3F5F01963B3051F7FB01E20FF11D2C +:1073F00010820895CF93DF93EB01FC0123812111CB +:1074000002C080E00EC02250223020F48FE2888338 +:10741000198206C060E0B4DF009799F3BE01CCDFAB +:1074200081E0DF91CF910895FB012BE030E23193B1 +:107430002150E9F7DC0190E027E03A2FEB2F8D9106 +:1074400081110AC0DA013C931196EC9381E0FB01B3 +:107450009081903239F525C08F32A1F38E3219F028 +:10746000E9E4FFE008C02A30E1F098E02AE0E5CF47 +:1074700031963817B1F034913111FACF291788F0CD +:107480003FED380F3E3568F431E0390FFB01E90F6D +:10749000F11D9FE9980F9A3108F480528083932F51 +:1074A000CCCF80E008950F931F93CF93DF93EC012F +:1074B0008B018B81882311F080E042C0FB0187891A +:1074C000803139F18032C1F783E08B83F801428D3E +:1074D000538D648D758D4D8B5E8B6F8B788F9E0178 +:1074E0002F5E3F4FC8010E9410C3882329F31A8FD3 +:1074F000098F81E089831C821D821E821F8218866B +:1075000019861A861B861C861D861E861F86188A6B +:1075100017C082E08B831D8A1E8A1F8A188EFB018A +:10752000408D518D60E070E095E0440F551F661F5F +:10753000771F9A95D1F7498B5A8B6B8B7C8BD7CF62 +:10754000DF91CF911F910F9108952F923F924F920B +:107550005F926F927F928F929F92AF92BF92CF92E3 +:10756000DF92EF92FF920F931F93CF93DF93EC0183 +:107570005B016A018B81811103C08FEF9FEFC6C051 +:10758000898180FFFACF49895A896B897C898885EE +:107590009985AA85BB852601612C712C8A019B01E6 +:1075A000081B190B2A0B3B0B40165106620673068B +:1075B00018F06A01C81AD90A76013E0124E0620E69 +:1075C000711CE114F10409F476C0488559856A8577 +:1075D0007B854A0181E098222B811A012B01E9E089 +:1075E0005694479437942794EA95D1F7898D9A8DCC +:1075F000FC01223049F4628D738D848D958D620D6E +:10760000731D841D951D3CC01481115012218114DD +:107610009104C1F4111116C0452B462B472B49F498 +:107620008D899E89AF89B88D8C839D83AE83BF83FE +:1076300009C04C815D816E817F81930172D788235F +:1076400009F49BCFE98DFA8D6C817D818E819F81BC +:107650006250710981099109058404C0660F771F82 +:10766000881F991F0A94D2F726853785408951894A +:10767000620F731F841F951F610F711D811D911D66 +:1076800020E032E02819390987012E153F0508F45A +:1076900089010115F2E01F0761F520914F0F30912C +:1076A000500F4091510F5091520F6217730784078A +:1076B000950719F41EC0C60129C09501AB01BC0194 +:1076C00080914D0D90914E0D17DC882309F455CF14 +:1076D000A00EB11E88859985AA85BB85800F911F54 +:1076E000A11DB11D88879987AA87BB87E01AF10A77 +:1076F00068CF40E0DED6882309F43FCFB401615B58 +:10770000724FA801C5010F9493C8E2CFDF91CF91CA +:107710001F910F91FF90EF90DF90CF90BF90AF90AF +:107720009F908F907F906F905F904F903F902F90A1 +:107730000895CF93DF931F92CDB7DEB741E050E0BD +:10774000BE016F5F7F4F01DF019719F4898190E0DF +:1077500002C08FEF9FEF0F90DF91CF910895CF92EE +:10776000DF92EF92FF920F931F93CF93DF936C0101 +:10777000EB017A01FC018381823060F00085118584 +:10778000228533850F71112722273327012B022BE6 +:10779000032B11F08FEF5CC04115510511F0F7017B +:1077A00010821DE040E250E0BE01C601CEDE803214 +:1077B000910539F021E0892B09F420E0822F819591 +:1077C00047C028812223C1F0253E61F32E3251F3B8 +:1077D0003B853F733F3061F4E114F10449F04A8D79 +:1077E0005B8D452B29F42F713FEF320F343030F091 +:1077F0002B8523FDD7CF2CC080E02AC030E021505C +:107800003109129FC001139F900D1124F701E80F59 +:10781000F91F298120832B8121832D8122832F81B0 +:107820002383298524832E852583288926832A89F5 +:1078300027832C8920872E892187288D22872C8DCC +:1078400023872E8D2487288126FFD2CF1586D0CF7F +:10785000DF91CF911F910F91FF90EF90DF90CF902C +:1078600008951F93CF93DF93EC018B81823018F43E +:1078700080E090E023C0488559856A857B85A5E036 +:107880007695679557954795AA95D1F7142F1F7050 +:10789000CE014FDF97FDECCF488559856A857B8502 +:1078A000415E5F4F6F4F7F4F488759876A877B875D +:1078B00020E2129FC0011124815B924FDF91CF9192 +:1078C0001F9108954F925F926F927F92AF92BF92F5 +:1078D000CF92DF92EF92FF920F931F93CF93DF939C +:1078E000EC016A017B012B81222349F089899A8965 +:1078F000AB89BC8984179507A607B70710F480E009 +:107900006BC0223009F463C0C114D104E104F10456 +:1079100049F41C821D821E821F82188619861A86CF +:107920001B8659C088859985AA85BB85E98DFA8D06 +:10793000E585F0E03996AC01BD014150510961097E +:1079400071090E2E04C076956795579547950A9450 +:10795000D2F797018601015011092109310904C0AC +:107960003695279517950795EA95D2F704171507C9 +:107970002607370720F0892B8A2B8B2B49F48D891A +:107980009E89AF89B88D8C839D83AE83BF8304C0ED +:10799000041B150B260B370B280139015E0184E00F +:1079A000A80EB11C411451046104710481F04C8192 +:1079B0005D816E817F819501898D9A8DB2D591E02F +:1079C000491A5108610871088111ECCF05C0C886B9 +:1079D000D986EA86FB8681E0DF91CF911F910F91D6 +:1079E000FF90EF90DF90CF90BF90AF907F906F901F +:1079F0005F904F9008950F931F93CF93DF93EC0107 +:107A00008B818823D1F1898187FF32C061E0CE016B +:107A1000B7DC8C01009789F1FC018081853E69F11A +:107A20008B81823040F449895A896B897C89448FE3 +:107A3000558F668F778F4D895E896F89788DF801B4 +:107A4000538F428F758B648BE091460DF091470DFB +:107A5000309759F0B8016A5E7F4FC8014896199572 +:107A6000F801808D918D938B828B89818F778983AB +:107A7000DF91CF911F910F91DCC481E0888380E07A +:107A8000DF91CF911F910F910895CF93DF93EC0178 +:107A9000B2DF1B82DF91CF910895FC012381211178 +:107AA000F4CF08954F925F926F927F92AF92BF9200 +:107AB000CF92DF92EF92FF920F931F93CF93DF93BA +:107AC00000D01F92CDB7DEB75C016A017B01FC01DB +:107AD00083818130E9F4818181FF1AC0F5018189B8 +:107AE0009289A389B48984179507A607B70780F000 +:107AF000892B8A2B8B2B09F472C0F50140845184A9 +:107B000062847384B701A601C501DCDE811102C065 +:107B100080E066C0F501818D928DC114D104E1042D +:107B2000F10469F4458956896789708D77D7882370 +:107B300079F3F501158A168A178A108E37C0F50178 +:107B400044815581668177819E012F5F3F4FE9D443 +:107B50008823F1F249815A816B817C81F501818D05 +:107B6000928DFC012789203139F4483FFFEF5F07F0 +:107B700061057105D8F407C0483F2FEF520762072F +:107B80002FE0720798F44AD7882309F4C1CFF50192 +:107B900044815581668177810FEF1FEF2FEF3FE022 +:107BA000818D928DA3D5882309F4B2CFF501C18AC6 +:107BB000D28AE38AF48A818180688183C5011BDFD0 +:107BC000882309F4A5CFB701A6014C145D046E0407 +:107BD0007F0410F4B301A201C50174DE01C081E08D +:107BE0000F900F900F900F90DF91CF911F910F91F9 +:107BF000FF90EF90DF90CF90BF90AF907F906F900D +:107C00005F904F900895FF920F931F93CF93DF9350 +:107C1000EC01F42E80E2689FF0011124E15BF24F49 +:107C20008385817121F0842F827109F04EC080918B +:107C30004F0F9091500FA091510FB091520F8C8720 +:107C40009D87AE87BF87688B4489558960E070E067 +:107C5000BA0155274427028D138D20E030E0402BD8 +:107C6000512B622B732B4D8B5E8B6F8B788F8385A3 +:107C7000887151F4048D158D268D378D098B1A8BE3 +:107C80002B8B3C8B81E00BC08031F9F49E012F5E81 +:107C90003F4F898D9A8DC4D48823B9F084E08B83BB +:107CA0008F2D8F7089831C821D821E821F821886F1 +:107CB00019861A861B86F4FE0BC040E050E0BA011C +:107CC000CE01F0DE811104C011C01B8280E00EC025 +:107CD000F5FE0BC049895A896B897C89CE01DF91F9 +:107CE000CF911F910F91FF90EDCD81E0DF91CF916A +:107CF0001F910F91FF900895AF92BF92CF92DF92A4 +:107D0000EF92FF920F931F93CF93DF937C01EB01D0 +:107D10006A01B22E898D9A8DF701928F818F40E092 +:107D200050E0BA01CE01CEDDA12C088519852A8547 +:107D30003B8589899A89AB89BC89081719072A0765 +:107D40003B07A0F585E036952795179507958A9509 +:107D5000D1F70F70CE0185DD009709F481C0FC01D9 +:107D60002081222311F0253EB9F4A1100EC04091CC +:107D70004F0F5091500F6091510F7091520FF701BA +:107D80004487558766877787008BFC018081AA240A +:107D9000A3948111CACF0AC04BE050E0BC01C601D8 +:107DA0000F9486C8892B09F0C0CF58C08B2D8274E0 +:107DB000823409F055C0AA2049F0F701008961E03A +:107DC000C701DEDAEC01009769F44AC08B8182308A +:107DD00009F446C0CE014DDA882309F441C0CFE44E +:107DE000DDE000E080E2FE0111928A95E9F78BE088 +:107DF000F601DE0101900D928A95E1F7E091460DC2 +:107E0000F091470D309739F0BE01625F7F4FCE0190 +:107E10004096199508C081E298E2998B888B80E0A2 +:107E200098E09F878E87888999899B8B8A8B998F09 +:107E3000888F8E859F859F8B8E8BFBD2882381F0C8 +:107E40004B2D602FC701DF91CF911F910F91FF90B4 +:107E5000EF90DF90CF90BF90AF90D5CEB7FEF0CF30 +:107E600080E0DF91CF911F910F91FF90EF90DF9015 +:107E7000CF90BF90AF9008953F924F925F926F92D4 +:107E80007F928F929F92AF92BF92CF92DF92EF92AA +:107E9000FF920F931F93CF93DF93CDB7DEB7C354F9 +:107EA000D1090FB6F894DEBF0FBECDBF5C016B01E8 +:107EB00024965FAF4EAF2497522E1C8E1F8E1982D0 +:107EC0001C826115710511F410E073C0FC018381FF +:107ED0008111FACF2496EEADFFAD249780818F32C9 +:107EE00011F076011DC02496EEADFFAD2497808180 +:107EF0008F3231F431962496FFAFEEAF2497F3CF53 +:107F0000F60183818250823060F3F601618D728DBB +:107F1000CE010196C8DA8823B9F2CE0101967C0120 +:107F20008E01045E1F4F3801FE0131964F01402E35 +:107F3000312E19C08823A9F121E0AE01495C5F4FC1 +:107F4000B701C801D9DE882309F4BECFEC14FD04C3 +:107F500011F0C7019ADD0615170501F1942D832D47 +:107F60007801092F182FAE014E5B5F4FBE01695C8F +:107F70007F4F24968EAD9FAD249756DA882309F45F +:107F8000A3CF2496EEADFFAD249780818F3291F67A +:107F900031962496FFAFEEAF2497F3CF982D892D1D +:107FA000DFCF252DAE01495C5F4FB701C501A4DECF +:107FB000182FCE01019671DDCE014C966EDD812F1A +:107FC000CD5BDF4F0FB6F894DEBF0FBECDBFDF91A4 +:107FD000CF911F910F91FF90EF90DF90CF90BF90C6 +:107FE000AF909F908F907F906F905F904F903F9059 +:107FF0000895CF93DF93EC0140E050E0BA0152DDE9 +:10800000882361F061E0CE01BBD9009739F025EEFD +:10801000FC0120831B82DF91CF910BC280E0DF91B6 +:10802000CF9108951F93CF93DF93CDB7DEB76B97B2 +:108030000FB6F894DEBF0FBECDBFAB0119821C8214 +:1080400022E0BC01CE01019617DF182F882321F012 +:10805000CE010196CEDF182FCE0101961EDD812FB5 +:108060006B960FB6F894DEBF0FBECDBFDF91CF91F8 +:108070001F9108952F923F924F925F926F927F923D +:108080008F929F92AF92BF92CF92DF92EF92FF9228 +:108090000F931F93CF93DF9300D01F921F92CDB702 +:1080A000DEB78C015B013A01DC0113968C911397CA +:1080B0008130C1F411968C9181FF14C082FF18C0E9 +:1080C000F801418952896389748980859185A285E7 +:1080D000B38584179507A607B70751F0C801F2DBEF +:1080E000811106C081E0F80180838FEF9FEF37C1D7 +:1080F000630183C0D80159968D919C915A97FC01D8 +:10810000F481F1501A012B0169E056944794379499 +:1081100027946A95D1F7F221FD834A0121E092224A +:10812000FF2309F476C080E092E08819990976016E +:108130008C159D0508F47C01D8015996ED91FC91B0 +:108140005A9714962D903D904D905C901797B2E001 +:108150002B1A310841085108058404C0220C331C35 +:10816000441C551C0A94D2F786859785A089B1894D +:10817000280E391E4A1E5B1EED812E0E311C411C3D +:10818000511CE114F2E0FF0609F089C080914F0F05 +:108190009091500FA091510FB091520F82159305FD +:1081A000A405B50569F410924C0D8FEF9FEFDC012B +:1081B00080934F0F9093500FA093510FB093520F95 +:1081C0009501B201A10180914D0D90914E0D0E943B +:1081D000F1B7882309F486CFF80180859185A285BF +:1081E000B3858E0D9F1DA11DB11D80879187A2872C +:1081F000B387AE0CBF1CCE18DF08D80118964D917E +:108200005D916D917C911B97C114D10409F072CFDF +:108210007AC08114910409F086CF14964D915D9136 +:108220006D917C911797411551056105710559F4C0 +:1082300055968D919D910D90BC91A02D0097A10513 +:10824000B10539F520C09E012F5F3F4F6AD18823C9 +:1082500009F448CF89819A81AB81BC81F801218DD5 +:10826000328DF9012789203139F4883FFFEF9F07CC +:10827000A105B10540F40DC0883F2FEF9207A2077A +:108280002FE0B20730F0C8010E9413B981114BCF23 +:1082900029CFF80184839583A683B78344CF8114C3 +:1082A000910411F5D80118964D915D916D917C91D5 +:1082B0001B9751968D919D910D90BC91A02D4817C3 +:1082C00059076A077B0780F0B4D0882309F40ACFE6 +:1082D00081E080934C0D20924F0F3092500F4092CE +:1082E000510F5092520F07C041E0C201B101E1D0DD +:1082F000882309F4F7CEA701B501C401815B924F31 +:108300000F9493C869CF51968D919D910D90BC911A +:10831000A02DF801218184179507A607B70738F427 +:10832000418B528B638B748B206821830CC08091AE +:10833000460D9091470D892B31F06114710419F0AD +:108340002068F8012183D80111968C9183FD02C029 +:10835000C30105C0C8014FDB8111FACFC3CE0F9016 +:108360000F900F900F900F90DF91CF911F910F9171 +:10837000FF90EF90DF90CF90BF90AF909F908F9045 +:108380007F906F905F904F903F902F900895CF9384 +:10839000DF931F92CDB7DEB7209177183091781810 +:1083A000CE0101962115310519F0821B930B02C0F5 +:1083B0008D5798410F90DF91CF91089582EA92EA0C +:1083C000A0E0B0E080937D1890937E18A0937F1872 +:1083D000B0938018089581E040917D1850917E18E7 +:1083E00060917F1870918018423A524A6105710578 +:1083F00009F080E00895CF93DF931F92CDB7DEB7E9 +:10840000698341E050E0BE016F5F7F4F049632DE2A +:108410000F90DF91CF91089504962CCEFB0101902F +:108420000020E9F7AF0141505109461B570B049654 +:1084300021CECF9380914C0D8823B9F140914F0FFD +:108440005091500F6091510F7091520F2FE43DE009 +:1084500080914D0D90914E0D0E94F1B7C82F811162 +:1084600002C0C0E023C04091480D5091490D609179 +:108470004A0D70914B0D411551056105710591F043 +:108480002FE43DE080914D0D90914E0D0E94F1B78B +:10849000882339F31092480D1092490D10924A0D1D +:1084A00010924B0D10924C0D01C0C1E08C2FCF915A +:1084B0000895CF92DF92EF92FF92CF936B017C01F0 +:1084C000C42F80914F0F9091500FA091510FB091F8 +:1084D000520F8C159D05AE05BF05C9F0AADF8111AD +:1084E00002C080E018C02FE43DE0B701A6018091F2 +:1084F0004D0D90914E0D0E947CB7882391F3C09250 +:108500004F0FD092500FE092510FF092520F81E036 +:10851000C11180934C0DCF91FF90EF90DF90CF90E1 +:1085200008958F929F92AF92BF92CF92DF92EF9277 +:10853000FF920F931F93CF93DF93EC016A017B01AE +:10854000890189859A85AB85BC850196A11DB11DE0 +:1085500084179507A607B70710F480E054C08F89E9 +:10856000803129F49927872F762F652F0BC0803211 +:10857000A1F7CB01BA0127E0969587957795679586 +:108580002A95D1F78B889C88AD88BE88680D791DA7 +:108590008A1D9B1D80904F0F9090500FA090510FFF +:1085A000B090520F681579058A059B0581F48F8973 +:1085B000803191F4DD24EE24FF24F601EE0FFF1F3D +:1085C000E15BF24F80819181A0E0B0E016C040E015 +:1085D00070DF8111ECCFC1CFE894C7F8DD24EE2421 +:1085E000FF24F601EE0FFF1FEE0FFF1FE15BF24FBE +:1085F00080819181A281B381BF70F80180839183D2 +:10860000A283B38381E0DF91CF911F910F91FF90FF +:10861000EF90DF90CF90BF90AF909F908F90089594 +:108620004F925F926F927F92AF92BF92CF92DF9202 +:10863000EF92FF920F931F93CF93DF9300D01F927F +:10864000CDB7DEB78C0149835A836B837C83590194 +:10865000C12CD12C7601412C42E0542E612C712C7E +:1086600049815A816B817C819E012F5F3F4FC801F8 +:1086700058DF882341F1D301C201F801058404C009 +:10868000880F991FAA1FBB1F0A94D2F7C80ED91EC4 +:10869000EA1EFB1E49815A816B817C81878980316A +:1086A00039F481E0483F5F4F6105710538F4D8CF58 +:1086B00081E0483F5F4F6F4F7F4090F2F501C082ED +:1086C000D182E282F3820F900F900F900F90DF9192 +:1086D000CF911F910F91FF90EF90DF90CF90BF90BF +:1086E000AF907F906F905F904F9008954F925F9200 +:1086F0006F927F928F929F92AF92BF92CF92DF92B2 +:10870000EF92FF920F931F93CF93DF93EC014A01F7 +:108710005B0128013901423051056105710508F4FA +:1087200062C049855A856B857C854F5F5F4F6F4F6F +:108730007F4F481559056A057B0508F454C08F8999 +:10874000803129F4FF24EB2CDA2CC92C0CC08032A8 +:1087500009F049C07501640177E0F694E794D79475 +:10876000C7947A95D1F74B895C896D897E89C40E4F +:10877000D51EE61EF71E41E0C701B6019ADE88232A +:1087800091F19F89903159F49924AA24BB24F401D2 +:10879000EE0FFF1FE15BF24F5182408210C0E89460 +:1087A00087F89924AA24BB24F401EE0FFF1FEE0FD3 +:1087B000FF1FE15BF24F40825182628273829A898D +:1087C000923090F04D815E816F8178854C0D5D1DFA +:1087D0006E1D7F1D4093480D5093490D60934A0DC7 +:1087E00070934B0D01C080E0DF91CF911F910F91ED +:1087F000FF90EF90DF90CF90BF90AF909F908F90C1 +:108800007F906F905F904F9008952F923F924F927C +:108810005F926F927F928F929F92AF92BF92CF9210 +:10882000DF92EF92FF920F931F93CF93DF93CDB719 +:10883000DEB72F970FB6F894DEBF0FBECDBF1C0179 +:108840004C875D876E877F873B872A87DC01199677 +:108850000D911D912D913C911C970F5F1F4F2F4F34 +:108860003F4F0D831E832F833887EA85FB858080E9 +:108870009180A280B38081149104A104B10431F0ED +:10888000FFEF8F1A9F0AAF0ABF0A10C0DC018D905C +:108890009D90AD90BC90B1E0B9870C851D852E856B +:1088A0003F85013011052105310509F01986750153 +:1088B0006401412C512C3201F10181859285A385FF +:1088C000B485481659066A067B0608F04EC00D812D +:1088D0001E812F8138850C151D052E053F0550F48E +:1088E000F2E0CF2ED12CE12CF12CA2E08A2E912C9B +:1088F000A12CB12C9E012F5F3F4FB701A601C101F2 +:1089000010DE882391F149815A816B817C81D701E6 +:10891000C6010196A11DB11D452B462B472B19F011 +:108920004C015D010FC0AC01BD01481959096A092C +:108930007B090C851D852E853F85401751076207F1 +:10894000730741F01FEF411A510A610A710A6C0165 +:108950007D01B2CF0FEF1FEF2FEF3FE0B701A60170 +:10896000C101C4DE8D83811113C01D823DC026016B +:10897000370121E0421A5108610871089701860108 +:10898000B301A201C101B2DE882379F37301620150 +:108990008C149D04AE04BF0450F3AA85BB854D9191 +:1089A0005D916D917C914115510561057105A9F4A9 +:1089B000EA85FB8580829182A282B382F985FF23BA +:1089C00099F00FEF801A900AA00AB00AD1018D9297 +:1089D0009D92AD92BC92139707C095018401C1018D +:1089E00085DE8111E5CFC1CF8D812F960FB6F8942A +:1089F000DEBF0FBECDBFDF91CF911F910F91FF90D2 +:108A0000EF90DF90CF90BF90AF909F908F907F902E +:108A10006F905F904F903F902F900895AF92BF92CC +:108A2000CF92DF92EF92FF920F931F93CF93DF933A +:108A300000D01F92CDB7DEB75C016A017B0182E0F6 +:108A400090E0A0E0B0E0F50180839183A283B3833E +:108A50009E012F5F3F4FB701A601C50162DD811165 +:108A600002C080E023C000E010E09801B701A60139 +:108A7000C5013CDE8823A9F3C980DA80EB80FC8045 +:108A8000F5018789803149F481E0F8EFCF16FFEFD7 +:108A9000DF06E104F10450F4DBCF81E098EFC91662 +:108AA0009FEFD906E9069FE0F90690F20F900F902C +:108AB0000F900F90DF91CF911F910F91FF90EF904A +:108AC000DF90CF90BF90AF9008957F928F929F924A +:108AD000AF92BF92CF92DF92EF92FF920F931F93CC +:108AE000CF93DF93EC01142F70934E0D60934D0DD7 +:108AF0001F8A82E090E0A0E0B0E088839983AA8397 +:108B0000BB8310924C0D1092480D1092490D10929B +:108B10004A0D10924B0D8FEF9FEFDC0180934F0FAA +:108B20009093500FA093510FB093520F442349F1EB +:108B3000453008F0DEC040E060E070E0CB01B9DC19 +:108B4000882309F4D6C020E1129FF0011124E350DC +:108B5000F14F80818F7709F0CCC084859585A685FB +:108B6000B78584369105A105B10508F4C2C0C0845B +:108B7000D184E284F384C114D104E104F10421F42A +:108B8000B8C0C12CD12C760140E0C701B60191DC00 +:108B9000782E882309F4ADC080915A0D90915B0D19 +:108BA0008115924009F0A5C030915F0D332309F47F +:108BB000A0C080915D0D90915E0D892B09F499C044 +:108BC00020915C0D222309F494C03A8B2C831D86DE +:108BD00030E041E050E06D85062FCA01062E02C04C +:108BE000880F991F0A94E2F72817390731F081E0BE +:108BF000860F8D87683078F37CC02091650D3091A9 +:108C0000660D2115310519F040E050E008C02091B3 +:108C1000730D3091740D4091750D5091760D2D832B +:108C20003E834F83588780915D0D90915E0D460184 +:108C30005701880E991EA11CB11C8B8A9C8AAD8A93 +:108C4000BE8AE091600DF091610DF98FE88FA091DF +:108C50005F0DB0E00F9446C5680D791D8A1D9B1D00 +:108C60006A8F7B8F8C8F9D8FB5E0EE0FFF1FBA95BB +:108C7000E1F7E150FE4FEF2FFF27E695DC01CB0136 +:108C80008E0F9F1FA11DB11D8E879F87A88BB98B4B +:108C90008090620D9090630D8114910419F0A12CC5 +:108CA000B12C08C080906F0D9090700DA090710D48 +:108CB000B090720DA7019601281B390B4A0B5B0B74 +:108CC000DA01C901880D991DAA1DBB1D04C0B69506 +:108CD000A795979587950A95D2F789879A87AB8745 +:108CE000BC87853F3FE09307A105B10520F48CE0E8 +:108CF0008F8B712C15C0853F9F4FA105B10510F4D6 +:108D000080E10DC080917B0D90917C0DA0917D0D37 +:108D1000B0917E0D8A8F9B8FAC8FBD8F80E28F8B41 +:108D2000872DDF91CF911F910F91FF90EF90DF90F2 +:108D3000CF90BF90AF909F908F907F900895FC014F +:108D400014821782138212828FE294E091838083CF +:108D50000895CF92DF92EF92FF920F931F93CF93DC +:108D6000DF93EC01875B9F4FEADFCE0186599F4F6F +:108D7000E6DF7E0129E8E20EF11C87016E0131E495 +:108D8000C31A3EEFD30AC801DADF015E1F4F0C158C +:108D90001D05C9F7FE01EF53FE4F89E1818314825F +:108DA00015823696178ACE018B519E4FC8DFFE0181 +:108DB000EA56FD4F10821182128213823896108279 +:108DC0001182128213821A821B82188219826E010A +:108DD00086E6C81A8DEFD80AF60110821182128237 +:108DE0001382F80111821082FE01EC5FFD4F1082A8 +:108DF00086E391E0F7019C01119221503040E1F7A8 +:108E0000FE01EE55FD4F81E08083C95BDF4F198283 +:108E100018820F9424B768577C4E8F4F9F4FF601EE +:108E20006083718382839383DF91CF911F910F9130 +:108E3000FF90EF90DF90CF900895FC0120E03EE29C +:108E4000DB014C91403241F0283011F430833196EF +:108E5000DB014C91408331962F5F6F5F7F4F2B304A +:108E600079F7108208952F923F924F925F926F92FE +:108E70007F928F929F92AF92BF92CF92DF92EF92AA +:108E8000FF920F931F93CF93DF93CDB7DEB7CA58EE +:108E9000D1090FB6F894DEBF0FBECDBF8C016B01B8 +:108EA0007A014901CA57DF4F1882C658D04084E082 +:108EB000E80EF11C180191E1290E311CF801EA5B62 +:108EC000FF4FC957DF4FF983E883C758D0403801B7 +:108ED000FDE56F1AFDEF7F0A58018BE5A81A8DEFAB +:108EE000B80A80E4482E512C4C0E5D1E94E0490EC9 +:108EF000511CA101BE016F5F7F4FC7010E94AFBB34 +:108F000018160CF03CC12C85322F3871303109F025 +:108F10009DC0F301808191810197029708F496C06A +:108F2000BE016F5F7F4FCE0187589F4F86DFA096AF +:108F30001FAEA097F6018081811107C063E374E042 +:108F4000CE01815A9F4F0F94B6C8B601CE01815A07 +:108F50009F4F0F94B6C8BE0167587F4FCE01815A0C +:108F60009F4F0F94B6C863E374E0CE01815A9F4FC0 +:108F70000F94B6C8CE01805C9F4FE1DE21E0AE01C8 +:108F800047585F4FB701C2010E943CBF811136C0F4 +:108F9000F30180819181892B89F5ECE3FDE08491D7 +:108FA000882341F09091C00095FFFCCF8093C600CC +:108FB0003196F5CFE7E2FDE785919491FC0124918C +:108FC000222341F03091C00035FFFCCF2093C60032 +:108FD0000196F4CFFE01E758FF4F8191882339F0C5 +:108FE0009091C00095FFFCCF8093C600F6CF809192 +:108FF000C00085FFFCCF8AE08093C6008BE1FE01B4 +:10900000EC5BFF4FDE01959601900D928A95E1F79A +:1090100024968EAD9FAD24979CA38BA38FE294E002 +:109020009AA389A320E030E0AE014F5D5F4FBE01FF +:10903000615A7F4FC80117DFCE0181960E9418B593 +:10904000CE01805C9F4F0E9418B553CF8981882341 +:1090500009F495C08E3209F44CCF8F3509F449CF0D +:10906000F80181898E3209F444CF8F3509F441CF5C +:109070002E7009F03ECF81E0303109F080E0C95711 +:10908000DF4FE881F981C758D0408083811108C043 +:109090008985873409F02DCF8A858E3709F429CF49 +:1090A00098012C5F3F4FBE016F5F7F4FC901C757CB +:1090B000DF4F2883C958D040C657DF4F3883CA587E +:1090C000D040BBDEF30180819181C757DF4F2881FB +:1090D000C958D040C657DF4F3881CA58D040009792 +:1090E000F1F4F6018191882339F09091C00095FF49 +:1090F000FCCF8093C600F6CFF9018191882339F027 +:109100009091C00095FFFCCF8093C600F6CF809170 +:10911000C00085FFFCCF8AE08093C600EACE813094 +:10912000910539F4F50180819181019691838083C5 +:10913000E0CE029709F0DDCE8114910439F0B90137 +:10914000C4010F94A3C8892B71F419C0CA57DF4F0B +:10915000F881C658D0402F2F30E0F50180819181F1 +:109160002817390761F0CA57DF4FF881C658D04039 +:10917000FF5FCA57DF4FF883C658D040BACEC657F4 +:10918000DF4F0FB6F894DEBF0FBECDBFDF91CF919A +:109190001F910F91FF90EF90DF90CF90BF90AF9015 +:1091A0009F908F907F906F905F904F903F902F9007 +:1091B00008950F931F93CF93DF93CDB7DEB76F97CB +:1091C0000FB6F894DEBF0FBECDBF8C01FC01ED558C +:1091D000FD4F1182108240E050E0BA01835B9F4F47 +:1091E0000E9462BCC801875B9F4F2BE1FC01349653 +:1091F000DE01159601900D922A95E1F7FC0182811E +:1092000093819C838B838FE294E09A83898320E00F +:1092100030E0AE014F5F5F4F64E176E0C80123DECE +:10922000CE0101960E9418B56F960FB6F894DEBF76 +:109230000FBECDBFDF91CF911F910F9108952BE10C +:10924000FB013496DC01149601900D922A95E1F70A +:10925000FB0122813381FC01338322830895EF9245 +:10926000FF920F931F93CF93DF93EC011B82FC01BE +:10927000E05BFF4F8081882329F0CE01835B9F4F05 +:109280000E9445BD7E018FE3E81A8EEFF80A45E3A0 +:1092900060E0C7010E94C9B6811122C0ECE3FDE085 +:1092A0008491882341F09091C00095FFFCCF80937A +:1092B000C6003196F5CFEDE1FDE785919491FC0173 +:1092C0002491222341F03091C00035FFFCCF209340 +:1092D000C6000196F4CF8091C00085FFFCCF7EC010 +:1092E0008E0109531E4F41E0B701C801EEDB811129 +:1092F00028C040E0B701C801E8DB811122C0E2E4E8 +:10930000FDE08491882341F09091C00095FFFCCF4F +:109310008093C6003196F5CFE7EFFCE785919491F5 +:10932000FC012491222341F03091C00035FFFCCF95 +:109330002093C6000196F4CF8091C00085FFFCCF3A +:109340004DC0B801CE01835B9F4F0E9453BA81117B +:1093500022C0E2E4FDE08491882341F09091C000B6 +:1093600095FFFCCF8093C6003196F5CFEDE0FDE789 +:1093700085919491FC012491222341F03091C00009 +:1093800035FFFCCF2093C6000196F4CF8091C0003A +:1093900085FFFCCF23C081E08B83ECE3FDE084916B +:1093A000882341F09091C00095FFFCCF8093C600C8 +:1093B0003196F5CFE5E2FDE785919491FC0124918A +:1093C000222341F03091C00035FFFCCF2093C6002E +:1093D0000196F4CF8091C00085FFFCCF8AE0809396 +:1093E000C6008E01075B1F4FB801CE0186599F4F03 +:1093F00026DFC859DF4F19830883DF91CF911F9172 +:109400000F91FF90EF900895FC011282138208954E +:10941000FC012381222311F021E022830895FC0125 +:109420002281211112820895AF92BF92CF92DF92D2 +:10943000EF92FF920F931F93CF93DF931F92CDB7BD +:10944000DEB78C018FE2FB0181935F01D12C41E0FB +:109450007801F1E4EF1AFEEFFF0A9FE1C92E2D2DEE +:1094600030E0F7018081918128173907D8F4C29E36 +:10947000C001C39E900D112483579F4FB501800FEB +:10948000911F49830E94FAB9C50149815C01019687 +:10949000F5012081222321F04D3810F44F5FF6CFE3 +:1094A000D394DDCF47FD11C0B501C80187519E4F50 +:1094B0000F90DF91CF911F910F91FF90EF90DF9070 +:1094C000CF90BF90AF900C94FAB9F50110820F9035 +:1094D000DF91CF911F910F91FF90EF90DF90CF9090 +:1094E000BF90AF9008953F924F925F926F927F929C +:1094F0008F929F92AF92BF92CF92DF92EF92FF92A4 +:109500000F931F93CF93DF93CDB7DEB7AC970FB612 +:10951000F894DEBF0FBECDBF7C015B01FC018381EF +:10952000882309F409C1C70187519E4F0E9445BD98 +:10953000F7011282CE0101966C0101DC270198E649 +:10954000490E511CC701875B9F4FF20191838083B5 +:10955000F50180818F3209F084C06FE270E0C501AF +:109560000F94C1C88C010F5F1F4F2AE0322E0115E6 +:10957000110509F47CC06FE270E0C8010F94C1C806 +:109580004C01009709F474C00817190708F070C05F +:109590003C01601A710AA301B801CE0180960F94B4 +:1095A000EAC8E0E2F0E0EC0FFD1FE60DF71D1082C7 +:1095B000FE01B0968191882339F09091C00095FF0B +:1095C000FCCF8093C600F6CF8091C00085FFFCCF12 +:1095D0003092C600F201608171816115710519F048 +:1095E0006C5F7F4F02C060E070E021E0AE01405E42 +:1095F0005F4FCE0105960E943CBF81112BC0E5E371 +:10960000F4E08491882341F09091C00095FFFCCF55 +:109610008093C6003196F5CFFE01B09681918823E4 +:1096200039F09091C00095FFFCCF8093C600F6CF33 +:10963000E7EAFFE08491882341F09091C00095FF14 +:10964000FCCF8093C6003196F5CF8091C00085FF96 +:10965000FCCF6CC0F201D182C08284010F5F1F4F2A +:1096600086CFC70186599F4FF20191838083850180 +:10967000F20180819181009711F0049602C080E090 +:1096800090E0B8010E9412C0882339F1E9E9FFE0B7 +:109690008491882341F09091C00095FFFCCF809386 +:1096A000C6003196F5CFF8018191882339F0909169 +:1096B000C00095FFFCCF8093C600F6CF8091C0001C +:1096C00085FFFCCF8AE08093C600F701E256FD4F8C +:1096D00010821182128213822CC0E1E8FFE0849193 +:1096E000882341F09091C00095FFFCCF8093C60085 +:1096F0003196F5CFF8018191882339F09091C0001F +:1097000095FFFCCF8093C600F6CFEFE7FFE0849192 +:10971000882341F09091C00095FFFCCF8093C60054 +:109720003196F5CF8091C00085FFFCCF8AE0809311 +:10973000C600C6010E9418B5AC960FB6F894DEBFFD +:109740000FBECDBFDF91CF911F910F91FF90EF9092 +:10975000DF90CF90BF90AF909F908F907F906F9051 +:109760005F904F903F9008958F929F92AF92BF92DB +:10977000CF92DF92EF92FF92CF93DF931F92CDB7FC +:10978000DEB77C01FC018281882309F4B2C07196A6 +:109790008191882339F09091C00095FFFCCF809390 +:1097A000C600F6CFEDE7FFE08491882341F0909169 +:1097B000C00095FFFCCF8093C6003196F5CFE9E05D +:1097C000FDE785919491FC012491222341F0309191 +:1097D000C00035FFFCCF2093C6000196F4CFF701FF +:1097E000E256FD4F40815181628173812AE030E071 +:1097F00080EF96E00E94525DEBE7FFE084918823C2 +:1098000041F09091C00095FFFCCF8093C600319647 +:10981000F5CFF701EA56FD4F408151816281738196 +:109820002AE030E080EF96E00E94525D8091C00017 +:1098300085FFFCCF8AE08093C6000F9424B730E602 +:10984000C32E3AEED32EE12CF12CA70196010F94F2 +:10985000FCC449015A016091C5077091C607809107 +:10986000C7079091C807A70196010F94FCC4821AFC +:10987000930AC4016CE370E00F94D5C46983CE01F0 +:1098800001960F949C67FC012191CF01222339F0AE +:109890003091C00035FFFCCF2093C600F4CF40E0EC +:1098A00050E06AE380EF96E00E94EF5CC4016CE355 +:1098B00070E00F94D5C48983CE0101960F949C6704 +:1098C000FC012191CF01222339F03091C00035FFF6 +:1098D000FCCF2093C600F4CFE9E7FFE08491882312 +:1098E000E1F09091C00095FFFCCF8093C6003196C7 +:1098F000F5CFE9E4F4E08491882341F09091C00031 +:1099000095FFFCCF8093C6003196F5CF8091C000C3 +:1099100085FFFCCF8AE08093C6000F90DF91CF9146 +:10992000FF90EF90DF90CF90BF90AF909F908F907F +:109930000895AF92BF92CF92DF92EF92FF920F9372 +:109940001F93CF93DF935C01EB01FB01019000209B +:10995000E9F78F0101501109061B170B6C01F7E1A4 +:10996000CF1AFEEFDF0AF60110826EE470E0CE013E +:109970000F94C1C87C01009729F4F8013197EC0FCE +:10998000FD1F0DC060E270E00F94C1C8EC0121968C +:109990006AE270E0C7010F94C1C8FC0131978DE005 +:1099A00081838AE082831382BE01C5018B519E4F61 +:1099B0000E940EC2F6018081882321F1E2E4FDE0DD +:1099C0008491882341F09091C00095FFFCCF809353 +:1099D000C6003196F5CFE3E2FDE785919491FC0155 +:1099E0002491222341F03091C00035FFFCCF209319 +:1099F000C6000196F4CF8091C00085FFFCCF8AE0BD +:109A00008093C600DF91CF911F910F91FF90EF904F +:109A1000DF90CF90BF90AF900895CF93DF93EC018C +:109A200040E450E08B519E4F0E940CC2C751DE4F64 +:109A30008881882361F1E2E4FDE08491882341F08C +:109A40009091C00095FFFCCF8093C6003196F5CF72 +:109A5000E3E2FDE785919491FC012491222341F0FA +:109A60003091C00035FFFCCF2093C6000196F4CFA3 +:109A70008091C00085FFFCCF8AE08093C60066E538 +:109A800074E080EF96E0DF91CF910C940B5DDF9155 +:109A9000CF9108952F923F924F925F926F927F9253 +:109AA0008F929F92AF92BF92CF92DF92EF92FF92EE +:109AB0000F931F93CF93DF93CDB7DEB7CC55D1096A +:109AC0000FB6F894DEBF0FBECDBF4C018C010E5512 +:109AD0001D4F662339F0F8011082F4018381811152 +:109AE0001DC015C0F8018081882309F4B1C0F401BC +:109AF000E656FD4FC080D180E280F3800F9424B7FA +:109B0000C616D706E806F90608F4A2C0E4CFC401D9 +:109B1000A6DBF4018381882309F49AC07401F7E479 +:109B2000EF0EF11CF70181818F9380818F9380E785 +:109B30009FE09F938F938E01015C1F4F1F930F93A4 +:109B40000F9441C90F900F900F900F900F900F90AE +:109B5000B12CF80101900020E9F73197E01BF10BDF +:109B6000BE1684F46801CB0CD11CB7FCDA94F60164 +:109B70008081992787FD90950F9416C8F601808300 +:109B8000B394E7CFFDE48F0E911C40E050E0BA01A2 +:109B9000C4010E9462BC512CCE0101966C0149E6C1 +:109BA000642E4FE0742E5E0191E2A90EB11C40E0DC +:109BB00050E0B601C4010E94AFBB1816ECF5412C71 +:109BC000F60101900020E9F73197EC19FD094E16D6 +:109BD00074F41601240C311C47FC3A94F101808185 +:109BE00090E00F9416C8F10180834394E9CF8A85F1 +:109BF0008E37E9F245E050E0B801C6010F94DCC8A9 +:109C0000892BA9F61F930F937F926F92BF92AF9209 +:109C10000F9441C960E0C5010E94B56361E085E62B +:109C20009FE00E94B5630F900F900F900F900F90E0 +:109C30000F9055245394BBCF511004C08FEF9FEF6A +:109C4000F70104C0F701808191810196918380839F +:109C5000C45ADF4F0FB6F894DEBF0FBECDBFDF9101 +:109C6000CF911F910F91FF90EF90DF90CF90BF9019 +:109C7000AF909F908F907F906F905F904F903F90AC +:109C80002F9008950F931F93CF93DF93EC018C01D6 +:109C900007511E4FC8010E94FBBCC8010E9445BD70 +:109CA00018821982DF91CF911F910F910895CF9261 +:109CB000DF92EF92FF920F931F93CF93DF93CDB775 +:109CC000DEB76F970FB6F894DEBF0FBECDBF8C0125 +:109CD0006A017C0188E6E80EF11CC80186599F4F95 +:109CE000F70191838083E55CFD4F22E030E0318312 +:109CF000208332967183608340E050E0BA0104967D +:109D00000E9462BCF701808191812BE1FC013496B5 +:109D1000DE01159601900D922A95E1F7FC018281F2 +:109D200093819C838B838FE294E09A83898396014D +:109D3000AE014F5F5F4F64E176E0C80194D8CE0179 +:109D400001960E9418B56F960FB6F894DEBF0FBE4D +:109D5000CDBFDF91CF911F910F91FF90EF90DF90DA +:109D6000CF9008952F923F924F925F926F927F9281 +:109D70008F929F92AF92BF92CF92DF92EF92FF921B +:109D80000F931F93CF93DF93CDB7DEB7AC970FB68A +:109D9000F894DEBF0FBECDBF8C016B01342EFC01E9 +:109DA0008381882309F402C3E451FE4F8081882314 +:109DB00009F4FAC02111C6C07801FCEFEF1AFDEFDB +:109DC000FF0AF7018081882371F1E2E4FDE08491CC +:109DD000882341F09091C00095FFFCCF8093C6008E +:109DE0003196F5CFEBEFFFE08491882341F090911D +:109DF000C00095FFFCCF8093C6003196F5CF4AE0B6 +:109E000050E061E070E080EF96E00E94185D809184 +:109E1000C00085FFFCCF8AE08093C60080E090E020 +:109E20000E94866FC3C2ECE3FDE08491882341F079 +:109E30009091C00095FFFCCF8093C6003196F5CF7E +:109E4000E2EEFFE08491882341F09091C00095FFFD +:109E5000FCCF8093C6003196F5CFF601819188231F +:109E600039F09091C00095FFFCCF8093C600F6CFEB +:109E7000E7EDFFE08491882341F09091C00095FFC9 +:109E8000FCCF8093C6003196F5CFF70180816DE855 +:109E9000B62EB801B89E600D711D1124675F7D4F0D +:109EA000C801C2DAF7018081F801B89EE00DF11D0A +:109EB0001124E75FFD4F8191882339F09091C00014 +:109EC00095FFFCCF8093C600F6CFE1EDFFE08491D3 +:109ED000882341F09091C00095FFFCCF8093C6008D +:109EE0003196F5CF5801F2E6AF1AFDEFBF0AF50142 +:109EF00040815181628173812AE030E080EF96E0F9 +:109F00000E94525D8091C00085FFFCCF8AE0809363 +:109F1000C600F7012081F80184E0289FE00DF11DC3 +:109F20001124AF014B5F5D4FF50180819181A281CA +:109F3000B381FA0180839183A283B3832F5FF701FA +:109F400020832CC0ECE3FDE08491882341F09091C4 +:109F5000C00095FFFCCF8093C6003196F5CFE0ECB2 +:109F6000FFE08491882341F09091C00095FFFCCFE1 +:109F70008093C6003196F5CFF6018191882339F0A0 +:109F80009091C00095FFFCCF8093C600F6CF8091E2 +:109F9000C00085FFFCCF8AE08093C600C8018751CE +:109FA0009E4F0E9445BD30C0F801EC5FFD4F10820E +:109FB000ECE3FDE08491882341F09091C00095FF8F +:109FC000FCCF8093C6003196F5CFEFEAFFE0849195 +:109FD000882341F09091C00095FFFCCF8093C6008C +:109FE0003196F5CFF6018191882339F09091C00028 +:109FF00095FFFCCF8093C600F6CF8091C00085FF0F +:10A00000FCCF8AE08093C600F8011282CE0101964F +:10A010005C010E949FC6280198E6490E511CC801A8 +:10A02000875B9F4FF20191838083F60180818F329D +:10A0300009F087C06FE270E0C6010F94C1C80196B5 +:10A040007C015AE0252EE114F10409F480C06FE28E +:10A0500070E0C7010F94C1C84C01009709F478C0A3 +:10A06000E816F90608F074C03C016E187F08A301D9 +:10A07000B701CE0180960F94EAC8E0E2F0E0EC0F61 +:10A08000FD1FE60DF71D1082FE01B0968191882319 +:10A0900039F09091C00095FFFCCF8093C600F6CFB9 +:10A0A0008091C00085FFFCCF2092C600F201608144 +:10A0B00071816115710519F06C5F7F4F02C060E01E +:10A0C00070E021E0AE01405E5F4FCE0105960E9438 +:10A0D0003CBF81112EC0EBE0FDE785919491FC011E +:10A0E0002491222341F03091C00035FFFCCF209312 +:10A0F000C6000196F4CFFE01B0968191882339F015 +:10A100009091C00095FFFCCF8093C600F6CFEDEA9A +:10A11000FFE08491882341F09091C00095FFFCCF2F +:10A120008093C6003196F5CF8091C00085FFFCCFAB +:10A130000EC1F201B182A0827401FFEFEF1AFF0A93 +:10A1400082CFC80186599F4FF201918380837601A7 +:10A15000C80187519E4F4C01F2016081718133200B +:10A1600009F4BAC06115710519F06C5F7F4F02C028 +:10A1700060E070E021E0A701C4010E943CBF882399 +:10A1800009F47DC0F40181899289A389B489F80119 +:10A19000EA56FD4F80839183A283B383E1E2FDE71A +:10A1A00085919491FC012491D801AA56BD4F222398 +:10A1B00051F03091C00035FFFCCF2093C6000196CE +:10A1C000FC012491F4CFF7018191882339F090911B +:10A1D000C00095FFFCCF8093C600F6CFE9EFFCE707 +:10A1E00085919491FC012491222341F03091C0008B +:10A1F00035FFFCCF2093C6000196F4CF4D915D91C1 +:10A200006D917C912AE030E080EF96E00E94525DF3 +:10A210008091C00085FFFCCF8AE08093C600F801E2 +:10A22000E256FD4F1082118212821382EFE1FDE7A8 +:10A2300085919491FC012491222341F03091C0003A +:10A2400035FFFCCF2093C6000196F4CF8091C0006B +:10A2500085FFFCCF8AE08093C600A70160E070E034 +:10A26000C80125DDF8018189882319F0C8014196CC +:10A2700001C0C7010F943D628DE794E092C0EBE00E +:10A28000FDE785919491FC012491222341F03091C6 +:10A29000C00035FFFCCF2093C6000196F4CFF70134 +:10A2A0008191882339F09091C00095FFFCCF809375 +:10A2B000C600F6CFEBEAFFE08491882341F090914D +:10A2C000C00095FFFCCF8093C6003196F5CF8091FA +:10A2D000C00085FFFCCF3BC06115710519F06C5FB4 +:10A2E0007F4F02C060E070E026E5A701C4010E9434 +:10A2F0003CBF811130C0EBE0FDE785919491FC01FA +:10A300002491222341F03091C00035FFFCCF2093EF +:10A31000C6000196F4CFF7018191882339F090911E +:10A32000C00095FFFCCF8093C600F6CFE9EAFFE0BE +:10A330008491882341F09091C00095FFFCCF8093D9 +:10A34000C6003196F5CF8091C00085FFFCCF8AE032 +:10A350008093C60028C081E0F8018083E5EFFCE728 +:10A3600085919491FC012491222341F03091C00009 +:10A3700035FFFCCF2093C6000196F4CFF601819102 +:10A38000882339F09091C00095FFFCCF8093C600E0 +:10A39000F6CF8091C00085FFFCCF8AE08093C60095 +:10A3A000C7010F943D62C5010E9418B5AC960FB667 +:10A3B000F894DEBF0FBECDBFDF91CF911F910F91FB +:10A3C000FF90EF90DF90CF90BF90AF909F908F90D5 +:10A3D0007F906F905F904F903F902F90089521E075 +:10A3E000FC01218340E0BECCCF92DF92EF92FF923E +:10A3F0000F931F93CF93DF93CDB7DEB76F970FB651 +:10A40000F894DEBF0FBECDBF8C016C0128E6C20EF2 +:10A41000D11C86599F4FF60191838083E55CFD4FE7 +:10A4200021E030E0318320837801FBE5EF1AFDEF76 +:10A43000FF0AF7011182108240E050E0BA01049651 +:10A440000E9462BCF601808191812BE1FC0134966F +:10A45000DE01159601900D922A95E1F7FC018281AB +:10A4600093819C838B838FE294E09A83898320E09D +:10A4700030E0AE014F5F5F4F64E176E0C8010E94BB +:10A4800033C7CE0101960E9418B5F70180819181F2 +:10A490006F960FB6F894DEBF0FBECDBFDF91CF91A0 +:10A4A0001F910F91FF90EF90DF90CF900895AF92A2 +:10A4B000BF92CF92DF92EF92FF920F931F93CF93B1 +:10A4C000DF93CDB7DEB76F970FB6F894DEBF0FBE40 +:10A4D000CDBF8C017B01CE0101960E949FC6F80181 +:10A4E000EF58FF4F80816801811104C029E4C20E3A +:10A4F000D11C03C08AE6C80ED11C21E0A701B60119 +:10A500006C5F7F4FCE0105960E943CBF811130C029 +:10A51000ECE3FDE08491882341F09091C00095FF29 +:10A52000FCCF8093C6003196F5CFE7E2FDE7859139 +:10A530009491FC012491222341F03091C00035FF19 +:10A54000FCCF2093C6000196F4CFF70181918823B8 +:10A5500039F09091C00095FFFCCF8093C600F6CFF4 +:10A560008091C00085FFFCCF8AE08093C60036C092 +:10A57000F801E154FE4F808191818A30910530F5D8 +:10A580009C012F5F3F4F318320832FE1289F700173 +:10A59000299FF00C1124F9E8EF0EF11CE00EF11EDA +:10A5A0005C01B701C7014F960E941FC921E0A21AA2 +:10A5B000B1088FE1E81AF108EFEFAE16BE0689F791 +:10A5C000B601C80187579F4F0E941FC9BE016F5F28 +:10A5D0007F4FC80186599F4F0E941FC9CE01019627 +:10A5E0000E9418B56F960FB6F894DEBF0FBECDBFB0 +:10A5F000DF91CF911F910F91FF90EF90DF90CF905F +:10A60000BF90AF900895EF92FF920F931F93CF9357 +:10A61000DF93EC01C154DE4F2881398121153105CA +:10A62000F9F021503109398328838C0107571F4FD6 +:10A63000B80186599F4F0E941FC9C80100E010E071 +:10A640007C012FE1E20EF11C2881398102171307EA +:10A6500038F40F5F1F4FB7010E941FC9C701F0CF29 +:10A66000DF91CF911F910F91FF90EF900895EF929E +:10A67000FF920F931F93CF93DF93EC010F94B93E9A +:10A680008E010C5F1D4FF80180819E0127513E4FC6 +:10A6900079018823A1F1C9010E9445BDF80180819B +:10A6A00081508083BE01FDE88F9F600D711D1124D4 +:10A6B000675F7D4F21E041E0CE0154DBF8018081EE +:10A6C000FE0124E0829FE00DF11D1124EB5FFD4FA0 +:10A6D0004081518162817381FE01E256FD4F4083CA +:10A6E000518362837383C7010E9462BCCE01DF91F4 +:10A6F000CF911F910F91FF90EF900C9408CA0F9487 +:10A70000403FC7010E9445BD1A8261E089E59FE094 +:10A71000DF91CF911F910F91FF90EF900C94B56353 +:10A72000CF92DF92EF92FF920F931F93FB01108263 +:10A730001182128213826B0174E0E72EF12C00E586 +:10A7400015E020E030E041E061E08F539E4F0E9431 +:10A7500090B891E0811101C090E0892F1F910F9175 +:10A76000FF90EF90DF90CF9008950F931F93CF93BA +:10A77000DF93EC018B0144E150E0BC0183E59FE0F5 +:10A780000F945DC8CE010F942EC8992744E150E084 +:10A79000481B590BB8018D5A904F0F945DC883E543 +:10A7A0009FE0DF91CF911F910F910895AF92BF92DB +:10A7B000CF92DF92EF92FF920F931F93CF93DF938D +:10A7C000EC015B017A01690144E150E0BC0183E5E1 +:10A7D0009FE00F945DC8CE010F942EC8EC01DD27D9 +:10A7E00004E110E0A8014C1B5D0BB501CE018D5AB0 +:10A7F000904F0F945DC8C5010F942EC8C80FD91F84 +:10A80000DD27A8014C1B5D0BB701CE018D5A904F7F +:10A810000F945DC8C7010F942EC88C0F9D1F9927F8 +:10A82000A801481B590BB6018D5A904F0F945DC873 +:10A8300083E59FE0DF91CF911F910F91FF90EF9003 +:10A84000DF90CF90BF90AF9008954F925F926F923C +:10A850007F928F929F92AF92BF92CF92DF92EF92B0 +:10A86000FF920F931F93CF93DF93CDB7DEB7289757 +:10A870000FB6F894DEBF0FBECDBFDC01CD90DD90EA +:10A88000ED90FC901397C092820FD092830FE092CC +:10A89000840FF092850F14960D911D912D913C918E +:10A8A000179709831A832B833C8300938A0F109395 +:10A8B0008B0F20938C0F30938D0FDB010D911D9129 +:10A8C0002D913C9113970D831E832F83388700931E +:10A8D000860F1093870F2093880F3093890F14965B +:10A8E0004D905D906D907C90179740928E0F509296 +:10A8F0008F0F6092900F7092910FFA0160817181B9 +:10A900008281938160936A0F70936B0F80936C0FB9 +:10A9100090936D0F84809580A680B78080926E0F93 +:10A9200090926F0FA092700FB092710F20E030E004 +:10A93000A9010F940AC081110CC020E030E0A901E8 +:10A94000C501B4010F940AC0811103C01092920F87 +:10A9500003C081E08093920F20E030E040E85FE3A5 +:10A96000C701B6010F940AC0811121C020E030E078 +:10A97000A9016D817E818F8198850F940AC0811114 +:10A9800016C020E030E0A90169817A818B819C8129 +:10A990000F940AC081110BC020E030E040E85FE373 +:10A9A000C301B2010F940AC0882309F45EC08091EC +:10A9B000920F82608093920FA3019201C701B601AA +:10A9C0000F940BC34B015C012D813E814F81588553 +:10A9D00069817A818B819C810F940BC39B01AC01AF +:10A9E000C501B4010F9419BF4B015C019B01AC017F +:10A9F000C301B2010F9411C06093720F7093730F73 +:10AA00008093740F9093750F6D817E818F819885EF +:10AA10009058A50194010F9411C06093760F709324 +:10AA2000770F8093780F9093790F69817A818B816A +:10AA30009C819058A50194010F9411C060937A0FE6 +:10AA400070937B0F80937C0F90937D0FA5019401F1 +:10AA5000C701B6010F9411C060937E0F70937F0FF2 +:10AA60008093800F9093810F24C080E090E0A0E855 +:10AA7000BFE38093720F9093730FA093740FB09302 +:10AA8000750F1092760F1092770F1092780F109228 +:10AA9000790F10927A0F10927B0F10927C0F109208 +:10AAA0007D0F80937E0F90937F0FA093800FB093C4 +:10AAB000810F28960FB6F894DEBF0FBECDBFDF9191 +:10AAC000CF911F910F91FF90EF90DF90CF90BF90AB +:10AAD000AF909F908F907F906F905F904F90089570 +:10AAE0008F929F92AF92BF92CF92DF92EF92FF929E +:10AAF0000F931F9345015601ECE0FAE0FF93EF93AB +:10AB0000ECE2CE2EEAE0DE2E0F9415260F900F9089 +:10AB10001F910F91FF90EF90DF90CF90BF90AF907B +:10AB20009F908F900D94B93E8F929F92AF92BF925B +:10AB3000CF92DF92EF92FF920F931F93470158013C +:10AB4000E090280AF090290A00912A0A10912B0A15 +:10AB5000ECE0FAE0FF93EF93FCE2CF2EFAE0DF2E79 +:10AB60000F9415260F900F901F910F91FF90EF906B +:10AB7000DF90CF90BF90AF909F908F900D94B93E93 +:10AB80008F929F92AF92BF92CF92DF92EF92FF92FD +:10AB90000F931F934B015C01E090280AF090290A63 +:10ABA00000912A0A10912B0A2091240A3091250A3B +:10ABB0004091260A5091270A6091200A7091210A3B +:10ABC0008091220A9091230AECE0FAE0FF93EF9340 +:10ABD000ACE2CA2EAAE0DA2E0F9415260F900F9041 +:10ABE0001F910F91FF90EF90DF90CF90BF90AF90AB +:10ABF0009F908F900D94B93ECF92DF92EF92FF928B +:10AC00000F931F93CF93DF9380E00F94243FC0E214 +:10AC1000DAE0688379838A839B8381E00F94243F01 +:10AC2000B4E2CB2EBAE0DB2EF6016083718382831F +:10AC3000938382E00F94243F7B018C016093280A68 +:10AC40007093290A80932A0A90932B0AF601208197 +:10AC5000318142815381688179818A819B81CCE2F3 +:10AC6000CC2ECAE0DC2E0F94C032DF91CF911F9121 +:10AC70000F91FF90EF90DF90CF90089582E00F94B6 +:10AC8000243F6093280A7093290A80932A0A90939C +:10AC90002B0A88E29AE00D9421348F929F92AF9212 +:10ACA000BF92CF92DF92EF92FF920F931F936B01AF +:10ACB0007C0120E030E040E252E46091510270916A +:10ACC000520280915302909154020F9411C04B0193 +:10ACD0005C01A70196016091280A7091290A809170 +:10ACE0002A0A90912B0A0F9419BF7B018C012091A5 +:10ACF000240A3091250A4091260A5091270A609132 +:10AD0000200A7091210A8091220A9091230AECE096 +:10AD1000FAE0FF93EF93ECE2CE2EEAE0DE2E0F9402 +:10AD200015260F94B93E0F900F9088E29AE01F917C +:10AD30000F91FF90EF90DF90CF90BF90AF909F90DA +:10AD40008F900D942134CF92DF92EF92FF92643076 +:10AD500019F4882321F044C0833008F041C0FA017F +:10AD6000C080D180E280F3802CEC3CEC4CE45FE3CB +:10AD7000C701B6010F9439C287FF32C02DEC3CECFD +:10AD80004CE250ECC701B6010F940AC087FD23C006 +:10AD90002DEC3CEC4CE250E4C701B6010F941ABF15 +:10ADA00020E030E040E650E40F9411C06B017C01DC +:10ADB0009B01AC0160E070E080E89FE30F9419BF55 +:10ADC00023E333E343EB5EE30F940BC3A701960148 +:10ADD0000F941ABF09C063E373E383EB9EE304C0DF +:10ADE00060E070E080E89FE3FF90EF90DF90CF900D +:10ADF00008958F929F92AF92BF92CF92DF92EF927F +:10AE0000FF92643019F4882321F053C0833008F096 +:10AE100050C0FA01C080D180E280F3802CEC3CEC81 +:10AE20004CE45FE3C701B6010F9439C287FF38C015 +:10AE30002DEC3CEC4CE250ECC701B6010F940AC07B +:10AE400087FD33C02DEC3CEC4CE250E4C701B60169 +:10AE50000F941ABF20E030E040E650E40F9411C098 +:10AE60006B017C019B01AC0160E070E080E89FE336 +:10AE70000F9419BF20E030E0A9010F940BC34B01E0 +:10AE80005C012AE939E949E95EE3C701B6010F949B +:10AE90000BC39B01AC01C501B4010F941ABF0DC0D7 +:10AEA0006AE979E989E99EE308C060E070E0CB01D6 +:10AEB00004C060E070E080E89FE3FF90EF90DF90D7 +:10AEC000CF90BF90AF909F908F900895CF93DF93D6 +:10AED000EA01E6E2F5E82491222379F03091C000FE +:10AEE00035FFFCCF2093C6003196F5CF3091C000DE +:10AEF00035FFFCCF2093C6000196FC01249121115F +:10AF0000F5CFE4E2F5E88491882341F09091C00008 +:10AF100095FFFCCF8093C6003196F5CFFB014081B1 +:10AF200051816281738125E030E080EF96E00E94DC +:10AF30000B5EE1E2F5E88491882341F09091C00036 +:10AF400095FFFCCF8093C6003196F5CF488159819B +:10AF50006A817B8125E030E080EF96E00E940B5E05 +:10AF6000EEE1F5E88491882341F09091C00095FFCF +:10AF7000FCCF8093C6003196F5CF4091280A5091BE +:10AF8000290A60912A0A70912B0A25E030E080EFAF +:10AF900096E00E940B5EEDE1F5E88491882341F094 +:10AFA0009091C00095FFFCCF8093C6003196F5CFFD +:10AFB0008091C00085FFFCCF8AE08093C600DF91BE +:10AFC000CF9108952F923F924F925F926F927F920E +:10AFD0008F929F92AF92BF92CF92DF92EF92FF92A9 +:10AFE0000F931F93CF93DF93CDB7DEB7C05CD1092A +:10AFF0000FB6F894DEBF0FBECDBFCB57DF4F99839E +:10B000008883C558D040E1966FAFE197C957DF4FAD +:10B0100059834883C758D040A9963FAF2EAFA99710 +:10B02000AB961FAF0EAFAB976796FFAEEEAE6797CE +:10B03000AC96CFAEAC972C2D2A300CF4EEC1E1E0EB +:10B04000FEE88491882341F09091C00095FFFCCFE9 +:10B050008093C6003196F5CF8091C00085FFFCCF6C +:10B060008AE08093C600EDEEFDE88491882341F0EC +:10B070009091C00095FFFCCF8093C6003196F5CF2C +:10B08000A996AEADBFADA9974D915D916D917C91A3 +:10B0900025E030E080EF96E00E940B5EEAEEFDE8EE +:10B0A0008491882341F09091C00095FFFCCF80935C +:10B0B000C6003196F5CFA996EEADFFADA9974481B4 +:10B0C00055816681778125E030E080EF96E00E942F +:10B0D0000B5EE9EEFDE88491882341F09091C00079 +:10B0E00095FFFCCF8093C6003196F5CF8091C000CC +:10B0F00085FFFCCF8AE08093C600E5EDFDE88491F2 +:10B10000882341F09091C00095FFFCCF8093C6004A +:10B110003196F5CFAB96AEADBFADAB974D915D918E +:10B120006D917C9125E030E080EF96E00E940B5E0F +:10B13000E2EDFDE88491882341F09091C00095FFF5 +:10B14000FCCF8093C6003196F5CFAB96EEADFFAD48 +:10B15000AB97448155816681778125E030E080EFAF +:10B1600096E00E940B5EE1EDFDE88491882341F0BA +:10B170009091C00095FFFCCF8093C6003196F5CF2B +:10B180008091C00085FFFCCF8AE08093C600EFEB82 +:10B19000FDE88491882341F09091C00095FFFCCF99 +:10B1A0008093C6003196F5CF6796AEADBFAD679779 +:10B1B0004D915D916D917C9125E030E080EF96E0BE +:10B1C0000E940B5EECEBFDE88491882341F09091A6 +:10B1D000C00095FFFCCF8093C6003196F5CF6796EF +:10B1E000EEADFFAD6797448155816681778125E09B +:10B1F00030E080EF96E00E940B5EEBEBFDE884917F +:10B20000882341F09091C00095FFFCCF8093C60049 +:10B210003196F5CF8091C00085FFFCCF8AE0809306 +:10B22000C600C957DF4FE880F980C758D040CB57D8 +:10B23000DF4F08811981C558D040C12CD12C47E877 +:10B24000242E4DE8342EE1964FADE197C41608F058 +:10B25000E0C0E3EBFDE88491882341F09091C000C9 +:10B2600095FFFCCF8093C6003196F5CF4AE050E0C1 +:10B27000B60180EF96E00E94185DE6EAFDE8849151 +:10B28000882341F09091C00095FFFCCF8093C600C9 +:10B290003196F5CFD8014D915D916D917C9125E06E +:10B2A00030E080EF96E00E940B5EE3EAFDE88491D7 +:10B2B000882341F09091C00095FFFCCF8093C60099 +:10B2C0003196F5CFD80114964D915D916D917C9199 +:10B2D000179725E030E080EF96E00E940B5EE6E9EC +:10B2E000FDE88491882341F09091C00095FFFCCF48 +:10B2F0008093C6003196F5CFF70145915591659140 +:10B30000749125E030E080EF96E00E940B5EE3E967 +:10B31000FDE88491882341F09091C00095FFFCCF17 +:10B320008093C6003196F5CF5701F4E0AF0EB11C03 +:10B33000F501459155916591749125E030E080EFDC +:10B3400096E00E940B5EE8E8FDE88491882341F0D6 +:10B350009091C00095FFFCCF8093C6003196F5CF49 +:10B36000F7016591759185919491D8012D913D9149 +:10B370004D915C910F9419BF2B013C01F501659132 +:10B38000759185919491F801248135814681578189 +:10B390000F9419BF4B015C01A3019201C301B201DB +:10B3A0000F940BC32B013C01A5019401C501B4010D +:10B3B0000F940BC39B01AC01C301B2010F941ABFE0 +:10B3C0000F94C4C3AB01BC0125E030E080EF96E0F0 +:10B3D0000E940B5EF1018491E7E8FDE8882349F0C3 +:10B3E0009091C00095FFFCCF8093C6003196849168 +:10B3F000F5CF8091C00085FFFCCFFAE0F093C60046 +:10B400002FEFC21AD20A38E0E30EF11C085F1F4F7B +:10B410001ACF84E690E00E9400776796AEADBFAD8C +:10B4200067971D921D921D921C921397FD01148225 +:10B43000158216821782E3961FAE1EAEE397A7967B +:10B440001CAE1DAE1EAE1FAEA797A3961CAE1DAEC2 +:10B450001EAE1FAEA3979E012F5F3F4F63963FAF77 +:10B460002EAF6397AE014F5B5F4F65965FAF4EAFF8 +:10B470006597A3966CAD7DAD8EAD9FADA3970F94F0 +:10B480000EC0E9966CAF7DAF8EAF9FAFE997A396E4 +:10B490006CAD7DAD8EAD9FADA3970F94BAC3CF5663 +:10B4A000DF4F688379838A839B83C159D040A796F5 +:10B4B0006CAD7DAD8EAD9FADA7970F940EC0CB56F2 +:10B4C000DF4F688379838A839B83C559D040A796D1 +:10B4D0006CAD7DAD8EAD9FADA7970F94BAC3C75627 +:10B4E000DF4F688379838A839B83C959D04080E486 +:10B4F0006396AEADBFAD63971D928A95E9F780E183 +:10B500006596EEADFFAD659711928A95E9F79E01BC +:10B510002F5B3F4FC356DF4F39832883CD59D0402F +:10B52000AE014F5F5F4FEB965FAF4EAFEB9700E022 +:10B53000C756DF4F88819981AA81BB81C959D04004 +:10B54000B058CF57DF4F88839983AA83BB83C158F4 +:10B55000D040CB56DF4F288139814A815B81C55964 +:10B56000D0405058C757DF4F288339834A835B83C5 +:10B57000C958D040CF56DF4F88819981AA81BB81BD +:10B58000C159D040B058C357DF4F88839983AA83ED +:10B59000BB83CD58D04069961FAE1EAE699710E0B0 +:10B5A000CB57DF4F28803980C558D0406C961FAEEE +:10B5B0006C97C12CD12C76016C963FAD6C97E196BF +:10B5C0004FADE197341709F4E3C0013011F40C9446 +:10B5D00014EF113011F40C9428EF002311F1023014 +:10B5E00071F4D1012D913D914D915C91C357DF4F85 +:10B5F000688179818A819B81CD58D0400DC0F1014D +:10B600002481358146815781C757DF4F6881798111 +:10B610008A819B81C958D0400F940BC34B015C01B8 +:10B6200006C0812C912C30E8A32E3FE3B32E1123CA +:10B6300011F1123071F4D1012D913D914D915C9138 +:10B64000C357DF4F688179818A819B81CD58D04073 +:10B650000DC0F1012481358146815781C757DF4FE5 +:10B66000688179818A819B81C958D0400F940BC32E +:10B670002B013C0106C0412C512C20E8622E2FE307 +:10B68000722EA1014C5F5F4FE1966FADE1976C9612 +:10B690008FAD6C9758DBE0966CAF7DAF8EAF9FAFF0 +:10B6A000E097A3019201C501B4010F940BC3E0968A +:10B6B0002CAD3DAD4EAD5FADE0970F940BC39B013C +:10B6C000AC01C701B6010F941ABF6B017C010023C6 +:10B6D00009F453C0112309F450C0023011F00C9446 +:10B6E000EEEED1012D913D914D915C91E9966CADBD +:10B6F0007DAD8EAD9FADE9970F940BC34B015C01FF +:10B70000113011F40C940CEF123011F00C94FDEE8A +:10B71000D1012D913D914D915C91E9966CAD7DAD3E +:10B720008EAD9FADE9970F940BC32B013C01A10196 +:10B730004C5F5F4FE1966FADE1976C968FAD6C9764 +:10B7400058DBE0966CAF7DAF8EAF9FAFE097A30163 +:10B750009201C501B4010F940BC3E0962CAD3DAD31 +:10B760004EAD5FADE0970F940BC39B01AC01C701D9 +:10B77000B6010F941ABF6B017C016C96FFAD6C97FC +:10B78000FF5F6C96FFAF6C9728E0220E311C14CF40 +:10B79000EB96EEADFFADEB9769968EAD9FAD6997D9 +:10B7A000E80FF91FC082D182E282F3821F5F049604 +:10B7B00069969FAF8EAF6997409709F0F1CECB574E +:10B7C000DF4F28803980C558D040C957DF4FA88146 +:10B7D000B981C758D0406996BFAFAEAF699710E046 +:10B7E000E0961CAE1DAE1EAE1FAEE097E1962FADEB +:10B7F000E197121709F45CC1002331F1013059F1CE +:10B80000023071F4F1012081318142815381C357AB +:10B81000DF4F688179818A819B81CD58D0400FC0EC +:10B82000D10114962D913D914D915C911797C75779 +:10B83000DF4F688179818A819B81C958D0400F94FC +:10B840000BC34B015C010AC0812C912CB0E8AB2EDC +:10B85000BFE3BB2E03C0812C912C5401D1012D914B +:10B860003D914D915D916D96BFAFAEAF6D97CF5548 +:10B87000DF4F288339834A835B83C15AD040E996DE +:10B880006CAD7DAD8EAD9FADE9970F940BC36B0191 +:10B890007C01D10114962D913D914D915C911797AA +:10B8A000C358DF4F288339834A835B83CD57D04009 +:10B8B0006996EEADFFAD699745905590659074908F +:10B8C000C358DF4F288139814A815B81CD57D040F1 +:10B8D000C756DF4F688179818A819B81C959D040E1 +:10B8E0000F940BC39B01AC01C701B6010F9419BFA4 +:10B8F0006796EEADFFAD679720813181428153811C +:10B900000F941ABFA30192010F9419BFCB55DF4FBB +:10B91000688379838A839B83C55AD0406D964EADE8 +:10B920005FAD6D97E1966FADE197812F0CDA2B013A +:10B930003C01CB55DF4F288139814A815B81C55A53 +:10B94000D040C501B4010F940BC3A30192010F9421 +:10B950000BC39B01AC01E0966CAD7DAD8EAD9FAD90 +:10B96000E0970F941ABFE0966CAF7DAF8EAF9FAF9C +:10B97000E0970023C9F00130D9F00230F9F0C35844 +:10B98000DF4F288139814A815B81CD57D040CF5725 +:10B99000DF4F688179818A819B81C158D0400F94A3 +:10B9A0000BC36B017C010AC0C12CD12C760106C0EF +:10B9B000C12CD12CA0E8EA2EAFE3FA2E6996EEADA9 +:10B9C000FFAD6997349685909590A590B490CF552A +:10B9D000DF4F288139814A815B81C15AD040CF56DF +:10B9E000DF4F688179818A819B81C159D0400F9452 +:10B9F0000BC32B013C01C358DF4F288139814A8199 +:10BA00005B81CD57D040CB56DF4F688179818A81E9 +:10BA10009B81C559D0400F940BC39B01AC01C3015E +:10BA2000B2010F941ABF6796AEADBFAD679714967B +:10BA30002D913D914D915C9117970F941ABFA501DF +:10BA400094010F9419BF2B013C016D964EAD5FAD73 +:10BA50006D97E1966FADE197812FCBD94B015C01DA +:10BA6000A3019201C701B6010F940BC3A501940174 +:10BA70000F940BC39B01AC01E0966CAD7DAD8EAD18 +:10BA80009FADE0970F941ABFE0966CAF7DAF8EAF7D +:10BA90009FAFE0971F5F6996EEADFFAD699738964F +:10BAA0006996FFAFEEAF6997F8E02F0E311C9ECE7E +:10BAB000E0968CAD9DADAEADBFADE097B058C3562E +:10BAC000DF4FE881F981CD59D04081939193A193C3 +:10BAD000B193C356DF4FF983E883CD59D0400F5F50 +:10BAE000EB962EAD3FADEB97205F3F4FEB963FAF10 +:10BAF0002EAFEB97043009F04ECD25968CAD9DAD61 +:10BB0000AEADBFAD25976B968CAF9DAFAEAFBFAF5F +:10BB10006B972D813E814F815885E0962CAF3DAFCC +:10BB20004EAF5FAFE09789859A85AB85BC85E99676 +:10BB30008CAF9DAFAEAFBFAFE9972D853E854F85EA +:10BB40005889ED962CAF3DAF4EAF5FAFED97898131 +:10BB50009A81AB81BC81C358DF4F88839983AA83C4 +:10BB6000BB83CD57D04029962CAD3DAD4EAD5FADDA +:10BB70002997CF57DF4F288339834A835B83C15886 +:10BB8000D04089899A89AB89BC89C757DF4F8883A0 +:10BB90009983AA83BB83C958D040298D3A8D4B8D98 +:10BBA0005C8DC357DF4F288339834A835B83CD582D +:10BBB000D0408D8D9E8DAF8DB8A1CF56DF4F88833D +:10BBC0009983AA83BB83C159D0402D893E894F896F +:10BBD000588DCB56DF4F288339834A835B83C55901 +:10BBE000D0402D968CAD9DADAEADBFAD2D97C75657 +:10BBF000DF4F88839983AA83BB83C959D04029A189 +:10BC00003AA14BA15CA1C356DF4F288339834A83F5 +:10BC10005B83CD59D0408DA19EA1AFA1B8A5CF55D2 +:10BC2000DF4F88839983AA83BB83C15AD0402DA557 +:10BC30003EA54FA558A9CB55DF4F288339834A83AA +:10BC40005B83C55AD04089A59AA5ABA5BCA5C755AD +:10BC5000DF4F88839983AA83BB83C95AD0406196FA +:10BC60002CAD3DAD4EAD5FAD6197C355DF4F288321 +:10BC700039834A835B83CD5AD04089A99AA9ABA95D +:10BC8000BCA9CF54DF4F88839983AA83BB83C15B50 +:10BC9000D0402DA93EA94FA958ADCB54DF4F2883E2 +:10BCA00039834A835B83C55BD04089AD9AADABAD28 +:10BCB000BCADC754DF4F88839983AA83BB83C95B1C +:10BCC000D04021962CAD3DAD4EAD5FAD2197C35414 +:10BCD000DF4F288339834A835B83CD5BD04014E6F2 +:10BCE000412C512C32015301420173016201A30125 +:10BCF0009201E0966CAD7DAD8EAD9FADE0970F9457 +:10BD00000BC39B01AC016B966CAD7DAD8EAD9FAD51 +:10BD10006B970F9419BF2B013C01A5019401E99683 +:10BD20006CAD7DAD8EAD9FADE9970F940BC39B01BC +:10BD3000AC01C301B2010F9419BF2B013C01A70153 +:10BD40009601ED966CAD7DAD8EAD9FADED970F94E8 +:10BD50000BC39B01AC01C301B2010F9419BFC358BF +:10BD6000DF4F288139814A815B81CD57D0400F94C4 +:10BD700011C06F966CAF7DAF8EAF9FAF6F979B0179 +:10BD8000AC01C757DF4F688179818A819B81C9588F +:10BD9000D0400F940BC39B01AC01CF57DF4F68819C +:10BDA00079818A819B81C158D0400F9419BF2B01A2 +:10BDB0003C01A5019401C357DF4F688179818A81D5 +:10BDC0009B81CD58D0400F940BC39B01AC01C301A4 +:10BDD000B2010F9419BF4B015C01A7019601CF5628 +:10BDE000DF4F688179818A819B81C159D0400F944E +:10BDF0000BC39B01AC01C501B4010F9419BFCB5615 +:10BE0000DF4F288139814A815B81C559D0400F9429 +:10BE100011C02B013C016F962CAD3DAD4EAD5FAD19 +:10BE20006F97C356DF4F688179818A819B81CD5995 +:10BE3000D0400F940BC39B01AC01C756DF4F688104 +:10BE400079818A819B81C959D0400F9419BF4B01D8 +:10BE50005C01A3019201CF55DF4F688179818A810E +:10BE60009B81C15AD0400F940BC39B01AC01C5010B +:10BE7000B4010F9419BF4B015C01A7019601CB558A +:10BE8000DF4F688179818A819B81C55AD0400F94A8 +:10BE90000BC39B01AC01C501B4010F9419BFC75579 +:10BEA000DF4F288139814A815B81C95AD0400F9484 +:10BEB00011C04B015C016F962CAD3DAD4EAD5FAD39 +:10BEC0006F97CF54DF4F688179818A819B81C15BF5 +:10BED000D0400F940BC39B01AC01C355DF4F688169 +:10BEE00079818A819B81CD5AD0400F9419BF6B0113 +:10BEF0007C01A3019201CB54DF4F688179818A8153 +:10BF00009B81C55BD0400F940BC39B01AC01C70163 +:10BF1000B6010F9419BF6B017C01A5019401C754B0 +:10BF2000DF4F688179818A819B81C95BD0400F9402 +:10BF30000BC39B01AC01C701B6010F9419BFC354D9 +:10BF4000DF4F288139814A815B81CD5BD0400F94DE +:10BF500011C06B017C01115009F0C9CE6F962CAD58 +:10BF60003DAD4EAD5FAD6F976796AEADBFAD679718 +:10BF70006D917D918D919C910F941ABF6796EEAD56 +:10BF8000FFAD67976083718382839383A3019201DE +:10BF900064817581868197810F941ABF6796AEADD3 +:10BFA000BFAD679714966D937D938D939C93179770 +:10BFB000A5019401A3966CAD7DAD8EAD9FADA39709 +:10BFC0000F941ABFA3966CAF7DAF8EAF9FAFA397B0 +:10BFD000A7019601A7966CAD7DAD8EAD9FADA797DD +:10BFE0000F941ABFA7966CAF7DAF8EAF9FAFA79788 +:10BFF000AC96BFADAC97B4310CF42FC1EBE7FDE8C4 +:10C000008491882341F09091C00095FFFCCF8093EC +:10C01000C6003196F5CF4AE050E0E3966EAD7FADB5 +:10C02000E39780EF96E00E94185DE5E6FDE88491D5 +:10C03000882341F09091C00095FFFCCF8093C6000B +:10C040003196F5CF25E030E06F964CAD5DAD6EAD2D +:10C050007FAD6F9780EF96E00E940B5EE2E6FDE811 +:10C060008491882341F09091C00095FFFCCF80938C +:10C07000C6003196F5CF25E030E0B301A20180EF94 +:10C0800096E00E940B5EEFE5FDE88491882341F085 +:10C090009091C00095FFFCCF8093C6003196F5CFFC +:10C0A00025E030E0B501A40180EF96E00E940B5E30 +:10C0B000ECE5FDE88491882341F09091C00095FF64 +:10C0C000FCCF8093C6003196F5CF25E030E0B70174 +:10C0D000A60180EF96E00E940B5EEBE5FDE88491FF +:10C0E000882341F09091C00095FFFCCF8093C6005B +:10C0F0003196F5CF8091C00085FFFCCF8AE0809318 +:10C10000C600EBE4FDE88491882341F09091C000E3 +:10C1100095FFFCCF8093C6003196F5CF6796EEADC4 +:10C12000FFAD6797408151816281738125E030E0E6 +:10C1300080EF96E00E940B5EE8E4FDE8849188239E +:10C1400041F09091C00095FFFCCF8093C6003196DE +:10C15000F5CF6796AEADBFAD67974D915D916D918F +:10C160007C9125E030E080EF96E00E940B5EE7E4F2 +:10C17000FDE88491882341F09091C00095FFFCCFA9 +:10C180008093C6003196F5CF8091C00085FFFCCF2B +:10C190008AE08093C600E4E3FDE88491882341F0BF +:10C1A0009091C00095FFFCCF8093C6003196F5CFEB +:10C1B00020E030E044E353E4A3966CAD7DAD8EAD5A +:10C1C0009FADA3970F940BC32BED3FE049E450E4E0 +:10C1D0000F9411C0AB01BC0125E030E080EF96E088 +:10C1E0000E940B5EE1E3FDE88491882341F0909189 +:10C1F000C00095FFFCCF8093C6003196F5CF20E0BC +:10C2000030E044E353E4A7966CAD7DAD8EAD9FADB9 +:10C21000A7970F940BC32BED3FE049E450E40F9434 +:10C2200011C0AB01BC0125E030E080EF96E00E9438 +:10C230000B5EE0E3FDE88491882341F09091C0001B +:10C2400095FFFCCF8093C6003196F5CF8091C0005A +:10C2500085FFFCCF8AE08093C600E396EEADFFAD8C +:10C26000E3973196E396FFAFEEAFE397E436F1053F +:10C2700009F0FFC8A3966CAD7DAD8EAD9FADA397C1 +:10C280000F940EC0A996AEADBFADA9976D937D93E7 +:10C290008D939C931397A3966CAD7DAD8EAD9FADA2 +:10C2A000A3970F94BAC3A996EEADFFADA997648387 +:10C2B000758386839783A7966CAD7DAD8EAD9FAD5C +:10C2C000A7970F94BAC3DC01CB01B058AB96EEAD83 +:10C2D000FFADAB9780839183A283B383A7966CADA8 +:10C2E0007DAD8EAD9FADA7970F940EC0AB96AEAD52 +:10C2F000BFADAB9714966D937D938D939C931797D9 +:10C30000A3962CAD3DAD4EAD5FADA397A7966CAD9A +:10C310007DAD8EAD9FADA7970F9419BF6B017C01CA +:10C32000E894F7F8C092310AD092320AE092330AC8 +:10C33000F092340A2FE132E449E05BE3C701B60131 +:10C340000F9439C218168CF425E33AEF4EE85BE3FC +:10C35000C701B6010F9439C2181664F4E2E0F0E0A8 +:10C360006D96FFAFEEAF6D970BC06D961FAE1EAE14 +:10C370006D9706C021E030E06D963FAF2EAF6D9710 +:10C3800025E33AEF4EE85BE3A3966CAD7DAD8EAD51 +:10C390009FADA3979F770F9439C21816B4F025E389 +:10C3A0003AEF4EE85BE3A7966CAD7DAD8EAD9FADE9 +:10C3B000A7979F770F9439C218166CF482E090E02B +:10C3C0006D969FAF8EAF6D9706C042E050E06D96C0 +:10C3D0005FAF4EAF6D97AC969FADAC9719160CF052 +:10C3E00064C1ECE1FDE88491882341F09091C000A4 +:10C3F00095FFFCCF8093C6003196F5CF20E030E06A +:10C4000044E353E4A3966CAD7DAD8EAD9FADA39791 +:10C410000F940BC32BED3FE049E450E40F9411C09F +:10C42000AB01BC0125E030E080EF96E00E940B5E9E +:10C43000E9E1FDE88491882341F09091C00095FFE7 +:10C44000FCCF8093C6003196F5CF20E030E044E386 +:10C4500053E4A7966CAD7DAD8EAD9FADA7970F94BD +:10C460000BC32BED3FE049E450E40F9411C0AB0146 +:10C47000BC0125E030E080EF96E00E940B5EE8E131 +:10C48000FDE88491882341F09091C00095FFFCCF96 +:10C490008093C6003196F5CF8091C00085FFFCCF18 +:10C4A0008AE08093C600AC96AFADAC97AA300CF48E +:10C4B000FCC0EFEFFCE88491882341F09091C0002C +:10C4C00095FFFCCF8093C6003196F5CFA996EEADCF +:10C4D000FFADA997408151816281738125E030E0F1 +:10C4E00080EF96E00E940B5EECEFFCE884918823DD +:10C4F00041F09091C00095FFFCCF8093C60031962B +:10C50000F5CFA996AEADBFADA99714964D915D91AB +:10C510006D917C91179725E030E080EF96E00E94C6 +:10C520000B5EEBEFFCE88491882341F09091C00012 +:10C5300095FFFCCF8093C6003196F5CF8091C00067 +:10C5400085FFFCCF8AE08093C600E2EEFCE8849190 +:10C55000882341F09091C00095FFFCCF8093C600E6 +:10C560003196F5CFAB96EEADFFADAB9740815181E3 +:10C570006281738125E030E080EF96E00E940B5EDF +:10C58000EFEDFCE88491882341F09091C00095FF85 +:10C59000FCCF8093C6003196F5CFAB96AEADBFAD64 +:10C5A000AB9714964D915D916D917C91179725E015 +:10C5B00030E080EF96E00E940B5EEEEDFCE88491A7 +:10C5C000882341F09091C00095FFFCCF8093C60076 +:10C5D0003196F5CF8091C00085FFFCCF8AE0809333 +:10C5E000C600E7ECFCE88491882341F09091C000FC +:10C5F00095FFFCCF8093C6003196F5CF6796EEADE0 +:10C60000FFAD6797408151816281738125E030E001 +:10C6100080EF96E00E940B5EE4ECFCE884918823B6 +:10C6200041F09091C00095FFFCCF8093C6003196F9 +:10C63000F5CF6796AEADBFAD679714964D915D91FE +:10C640006D917C91179725E030E080EF96E00E9495 +:10C650000B5EE3ECFCE88491882341F09091C000EC +:10C6600095FFFCCF8093C6003196F5CF8091C00036 +:10C6700085FFFCCF8AE08093C60084E690E00E94AC +:10C680000077EAEAFCE88491882341F09091C000A9 +:10C6900095FFFCCF8093C6003196F5CF8091C00006 +:10C6A00085FFFCCF8AE08093C600CB57DF4F288000 +:10C6B0003980C558D040C957DF4F08811981C75804 +:10C6C000D040E3961FAE1EAEE397E2964FADE297E1 +:10C6D00068964FAF6897E1965FADE197451708F010 +:10C6E00015C3F10181909190A190B190E796FFAFB1 +:10C6F000EEAFE797D1011496CD90DD90ED90FC90D0 +:10C700001797A996EEADFFADA9972081318142819F +:10C710005381C501B4010F940BC32B013C01AB96AF +:10C72000AEADBFADAB972D913D914D915C91C701E1 +:10C73000B6010F940BC39B01AC01C301B2010F946E +:10C740001ABF6796EEADFFAD6797208131814281B8 +:10C7500053810F941ABFED966CAF7DAF8EAF9FAF34 +:10C76000ED97A996AEADBFADA99714962D913D91C9 +:10C770004D915C911797C501B4010F940BC34B0108 +:10C780005C01AB96EEADFFADAB9724813581468160 +:10C790005781C701B6010F940BC39B01AC01C501C2 +:10C7A000B4010F941ABF6796AEADBFAD67971496EC +:10C7B0002D913D914D915C9117970F941ABFC358DD +:10C7C000DF4F688379838A839B83CD57D040F801FC +:10C7D0006591759185919491ED962CAD3DAD4EADE1 +:10C7E0005FADED970F9419BF9B01AC010F940BC384 +:10C7F000E0966CAF7DAF8EAF9FAFE097F8013496B7 +:10C80000CF57DF4FF983E883C158D04065917591C8 +:10C8100085919491C358DF4F288139814A815B818A +:10C82000CD57D0400F9419BF9B01AC010F940BC39F +:10C830006B017C019B01AC01E0966CAD7DAD8EADD2 +:10C840009FADE0970F941ABF0F94C4C32B013C0116 +:10C85000AC96FFADAC97FA305CF1E2EAFCE884916B +:10C86000882341F09091C00095FFFCCF8093C600D3 +:10C870003196F5CF4AE050E0E3966EAD7FADE39799 +:10C8800080EF96E00E94185DE0EAFCE8849188233E +:10C8900041F09091C00095FFFCCF8093C600319687 +:10C8A000F5CF8091C00085FFFCCF8AE08093C60061 +:10C8B000E196FFADE197F43031F468962FAD6897BB +:10C8C000222339F0B8C068963FAD6897333008F03E +:10C8D000B2C0AC964FADAC9744312CF5E7964EAD57 +:10C8E0005FADE797E1966FADE19768968FAD68977A +:10C8F0000E94F9D64B015C01E0966CAD7DAD8EAD2A +:10C900009FADE0970F94C4C36B966CAF7DAF8EAFB5 +:10C910009FAF6B972DEC3CEC4CE45FE30F9439C276 +:10C9200018162CF10DC0EDE8FCE884918823B1F2D3 +:10C930009091C00095FFFCCF8093C6003196F5CF53 +:10C9400020E030E0A901C501B4010F940AC088239A +:10C9500009F490C0C701B6010F94C4C320E030E0D1 +:10C9600040EC5FE30F9439C218160CF083C0AC960C +:10C970005FADAC9754313CF48EEF9FEF6D969FAF57 +:10C980008EAF6D9777C0E0E8FCE88491882341F092 +:10C990009091C00095FFFCCF8093C6003196F5CFF3 +:10C9A00022E030E0B501A40180EF96E00E940B5E2A +:10C9B0002DEC3CEC4CE45FE36B966CAD7DAD8EAD45 +:10C9C0009FAD6B970F9439C218165CF020E030E0F1 +:10C9D000A901C501B4010F940AC081110FC00C94C4 +:10C9E000E6EEE7E6FCE88491882381F39091C000AD +:10C9F00095FFFCCF8093C6003196F5CFC701B601F5 +:10CA00000F94C4C320E030E040EC5FE30F9439C2E0 +:10CA1000181614F00C94E6EEEEE4FCE884918823FA +:10CA200011F40C94E6EE9091C00095FFFCCF80933A +:10CA3000C6003196F3CFAC969FADAC9794317CF0A5 +:10CA4000E7E3FCE88491882311F40C94D5EE9091EF +:10CA5000C00095FFFCCF8093C6003196F3CF2DEC3C +:10CA60003CEC4CE45FE3C301B2010F9439C21816E9 +:10CA70000CF482CFAC96AFADAC97AA300CF436C1B3 +:10CA8000E7E1FCE88491882341F09091C00095FF94 +:10CA9000FCCF8093C6003196F5CF8091C00085FF12 +:10CAA000FCCF8AE08093C600EBE0FCE88491882309 +:10CAB00041F09091C00095FFFCCF8093C600319665 +:10CAC000F5CFD1014D915D916D917C9125E030E0E4 +:10CAD00080EF96E00E940B5EE8E0FCE884918823FA +:10CAE00041F09091C00095FFFCCF8093C600319635 +:10CAF000F5CFD10114964D915D916D917C91179771 +:10CB000025E030E080EF96E00E940B5EE8EFFBE866 +:10CB10008491882341F09091C00095FFFCCF8093D1 +:10CB2000C6003196F5CF25E030E0ED964CAD5DAD19 +:10CB30006EAD7FADED9780EF96E00E940B5EE5EF66 +:10CB4000FBE88491882341F09091C00095FFFCCFD1 +:10CB50008093C6003196F5CF25E030E0C358DF4F13 +:10CB6000488159816A817B81CD57D04080EF96E022 +:10CB70000E940B5EE8EEFBE88491882341F09091DF +:10CB8000C00095FFFCCF8093C6003196F5CFF80129 +:10CB9000459155916591749125E030E080EF96E0E4 +:10CBA0000E940B5EE5EEFBE88491882341F09091B2 +:10CBB000C00095FFFCCF8093C6003196F5CFCF57CC +:10CBC000DF4FE881F981C158D04045915591659179 +:10CBD000749125E030E080EF96E00E940B5EE3EE7A +:10CBE000FBE88491882341F09091C00095FFFCCF31 +:10CBF0008093C6003196F5CF8091C00085FFFCCFB1 +:10CC00008AE08093C600EBEDFBE88491882341F035 +:10CC10009091C00095FFFCCF8093C6003196F5CF70 +:10CC200022E030E0B301A20180EF96E00E940B5EAB +:10CC3000EFECFBE88491882341F09091C00095FFD0 +:10CC4000FCCF8093C6003196F5CFE0966CAD7DADFC +:10CC50008EAD9FADE0970F94C4C3AB01BC0122E041 +:10CC600030E080EF96E00E940B5EE3ECFBE88491FD +:10CC7000882341F09091C00095FFFCCF8093C600BF +:10CC80003196F5CFC701B6010F94C4C3AB01BC0107 +:10CC900022E030E080EF96E00E940B5EE2ECFBE8E1 +:10CCA0008491882341F09091C00095FFFCCF809340 +:10CCB000C6003196F5CF8091C00085FFFCCF8AE099 +:10CCC0008093C600E1ECFBE88491882341F09091C9 +:10CCD000C00095FFFCCF8093C6003196F5CF8091C0 +:10CCE000C00085FFFCCF8AE08093C600E3962EAD9E +:10CCF0003FADE3972F5F3F4FE3963FAF2EAFE397F4 +:10CD0000085F1F4F38E0230E311CDFCCAC968FAD8F +:10CD1000AC9784310CF46DC0E4EBFBE8849188237C +:10CD200041F09091C00095FFFCCF8093C6003196F2 +:10CD3000F5CF8091C00085FFFCCF8AE08093C600CC +:10CD4000E6EAFBE88491882341F09091C00095FFCA +:10CD5000FCCF8093C6003196F5CF22E030E04DEC59 +:10CD60005CEC6CE47FE380EF96E00E940C5EE8E907 +:10CD7000FBE88491882341F09091C00095FFFCCF9F +:10CD80008093C6003196F5CF22E030E040E050E0DD +:10CD900060EC7FE380EF96E00E940C5EE2E8FBE847 +:10CDA0008491882341F09091C00095FFFCCF80933F +:10CDB000C6003196F5CF22E030E04DEC5CEC6CE43F +:10CDC0007FE380EF96E00E940C5EE1E8FBE884914F +:10CDD000882341F09091C00095FFFCCF8093C6005E +:10CDE0003196F5CF8091C00085FFFCCF8AE080931B +:10CDF000C6006D96AEADBFAD6D97AB2B09F0CFC33E +:10CE0000AC96BFADAC971B16A4F4ECE4FBE88491A0 +:10CE1000882341F09091C00095FFFCCF8093C6001D +:10CE20003196F5CF8091C00085FFFCCF8AE08093DA +:10CE3000C600A7962CAD3DAD4EAD5FADA797A396AE +:10CE40006CAD7DAD8EAD9FADA3970F941ABF20E062 +:10CE500030E040E05FE30F940BC34B015C010F94A3 +:10CE60000EC06B017C01A996EEADFFADA997608362 +:10CE7000718382839383C501B4010F94BAC3A996C9 +:10CE8000AEADBFADA99714966D937D938D939C9392 +:10CE90001797DC01CB01B058AB96EEADFFADAB9769 +:10CEA00080839183A283B383C482D582E682F78292 +:10CEB0006796EEADFFAD67971082118212821382E2 +:10CEC0001482158216821782A0961FAEA097412C5D +:10CED000512C3201A7964CAE5DAE6EAE7FAEA797D9 +:10CEE000E196FFADE197EF2FF0E0AE96FFAFEEAF2A +:10CEF000AE97A0962FADA097222E332427FC309416 +:10CF0000AE964EAD5FADAE97241635060CF081C2DD +:10CF10008101F3E0000F111FFA95E1F7CB57DF4FC6 +:10CF2000E881F981C558D040E00FF11F80809180E1 +:10CF3000A280B38098012C5F3F4F69963FAF2EAF20 +:10CF40006997CB57DF4FE881F981C558D040E20F90 +:10CF5000F31FC080D180E280F380A996AEADBFAD53 +:10CF6000A9972D913D914D915C91C501B4010F940C +:10CF70000BC3E5966CAF7DAF8EAF9FAFE597AB96D9 +:10CF8000EEADFFADAB972081318142815381C70166 +:10CF9000B6010F940BC39B01AC01E5966CAD7DAD62 +:10CFA0008EAD9FADE5970F941ABFE5966CAF7DAF40 +:10CFB0008EAF9FAFE597A996AEADBFADA99714967A +:10CFC0002D913D914D915C911797C501B4010F943E +:10CFD0000BC34B015C01AB96EEADFFADAB9724816B +:10CFE000358146815781C701B6010F940BC39B0160 +:10CFF000AC01C501B4010F941ABF69837A838B8396 +:10D000009C83AE014F5F5F4FE1966FADE197A096B5 +:10D010008FADA0970E94A3D66B017C01C957DF4F4B +:10D0200028813981C758D040020F131FF80165913C +:10D03000759185919491E5962CAD3DAD4EAD5FAD6A +:10D04000E5970F9419BF9B01AC01C701B6010F947E +:10D050000BC39B01AC016796AEADBFAD67976D91F9 +:10D060007D918D919C910F941ABF6796EEADFFADA7 +:10D0700067976083718382839383A7019601A79644 +:10D080006CAD7DAD8EAD9FADA7970F941ABFA796DF +:10D090006CAF7DAF8EAF9FAFA797AC96FFADAC974F +:10D0A000F4310CF4A1C04AE050E0B10180EF96E009 +:10D0B0000E94185DEBE4FBE88491882341F0909195 +:10D0C000C00095FFFCCF8093C6003196F5CF8091CC +:10D0D000C00085FFFCCF8AE08093C600E1E4FBE856 +:10D0E0008491882341F09091C00095FFFCCF8093FC +:10D0F000C6003196F5CF8091C00085FFFCCF8AE055 +:10D100008093C60022E030E0B701A60180EF96E0F0 +:10D110000E940B5EE0E4FBE88491882341F090914B +:10D12000C00095FFFCCF8093C6003196F5CF80916B +:10D13000C00085FFFCCF8AE08093C600E7E3FBE8F0 +:10D140008491882341F09091C00095FFFCCF80939B +:10D15000C6003196F5CF8091C00085FFFCCF8AE0F4 +:10D160008093C6006796AEADBFAD67974D915D9158 +:10D170006D917C9122E030E080EF96E00E940B5EA2 +:10D18000E6E3FBE88491882341F09091C00095FF8D +:10D19000FCCF8093C6003196F5CF8091C00085FF0B +:10D1A000FCCF8AE08093C600E2E3FBE88491882309 +:10D1B00041F09091C00095FFFCCF8093C60031965E +:10D1C000F5CF8091C00085FFFCCF8AE08093C60038 +:10D1D00022E030E0A7964CAD5DAD6EAD7FADA79778 +:10D1E00080EF96E00E940B5EAE014F5F5F4FE196CD +:10D1F0006FADE197A0968FADA0970E94F9D66B0115 +:10D200007C01C957DF4FE881F981C758D040699642 +:10D210002EAD3FAD6997E20FF31F65917591859132 +:10D22000949129813A814B815C810F9419BF9B01B4 +:10D23000AC01C701B6010F940BC39B01AC0167960B +:10D24000AEADBFAD679714966D917D918D919C9118 +:10D2500017970F941ABF6796EEADFFAD679764837B +:10D26000758386839783A7019601C301B2010F944A +:10D270001ABF2B013C01AC96FFADAC97F4310CF416 +:10D28000C0C0E1E3FBE88491882341F09091C000A5 +:10D2900095FFFCCF8093C6003196F5CF8091C000FA +:10D2A00085FFFCCF8AE08093C600E7E2FBE884912B +:10D2B000882341F09091C00095FFFCCF8093C60079 +:10D2C0003196F5CF8091C00085FFFCCF8AE0809336 +:10D2D000C60022E030E0B701A60180EF96E00E9490 +:10D2E0000B5EE6E2FBE88491882341F09091C00058 +:10D2F00095FFFCCF8093C6003196F5CF8091C0009A +:10D3000085FFFCCF8AE08093C600EDE1FBE88491C5 +:10D31000882341F09091C00095FFFCCF8093C60018 +:10D320003196F5CF8091C00085FFFCCF8AE08093D5 +:10D33000C6006796AEADBFAD679714964D915D91EF +:10D340006D917C91179722E030E080EF96E00E948B +:10D350000B5EECE1FBE88491882341F09091C000E2 +:10D3600095FFFCCF8093C6003196F5CF8091C00029 +:10D3700085FFFCCF8AE08093C600E8E1FBE884915A +:10D38000882341F09091C00095FFFCCF8093C600A8 +:10D390003196F5CF8091C00085FFFCCF8AE0809365 +:10D3A000C60022E030E0B301A20180EF96E00E94C7 +:10D3B0000B5EE7E1FBE88491882341F09091C00087 +:10D3C00095FFFCCF8093C6003196F5CF8091C000C9 +:10D3D00085FFFCCF8AE08093C600E6E1FBE88491FC +:10D3E000882341F09091C00095FFFCCF8093C60048 +:10D3F0003196F5CF8091C00085FFFCCF8AE0809305 +:10D40000C600A096FFADA097FF5FA096FFAFA097C4 +:10D4100070CDA7962CAD3DAD4EAD5FADA79767968D +:10D42000AEADBFAD67976D917D918D919C910F943D +:10D4300011C06796EEADFFAD6797608371838283FD +:10D440009383A301920164817581868197810F94F2 +:10D4500011C06796AEADBFAD679714966D937D937F +:10D460008D939C931797AC96BFADAC97B4310CF4E9 +:10D4700096C0E5E1FBE88491882341F09091C000DB +:10D4800095FFFCCF8093C6003196F5CF8091C00008 +:10D4900085FFFCCF8AE08093C600E2E0FBE8849140 +:10D4A000882341F09091C00095FFFCCF8093C60087 +:10D4B0003196F5CF8091C00085FFFCCF8AE0809344 +:10D4C000C600E9EFFAE88491882341F09091C0000A +:10D4D00095FFFCCF8093C6003196F5CF8091C000B8 +:10D4E00085FFFCCF8AE08093C6006796EEADFFAD66 +:10D4F0006797408151816281738122E030E080EF43 +:10D5000096E00E940B5EE8EFFAE88491882341F0F0 +:10D510009091C00095FFFCCF8093C6003196F5CF67 +:10D520008091C00085FFFCCF8AE08093C600EFEEBB +:10D53000FAE88491882341F09091C00095FFFCCFD8 +:10D540008093C6003196F5CF8091C00085FFFCCF57 +:10D550008AE08093C6006796AEADBFAD679714961C +:10D560004D915D916D917C91179722E030E080EFB5 +:10D5700096E00E940B5EEEEEFAE88491882341F07B +:10D580009091C00095FFFCCF8093C6003196F5CFF7 +:10D590008091C00085FFFCCF8AE08093C600A996E9 +:10D5A000EEADFFADA9974080518062807380AB964D +:10D5B000AEADBFADAB9714968D909D90AD90BC90E5 +:10D5C00017972481358146815781A3962CAF3DAFB3 +:10D5D0004EAF5FAFA397AB96AEADBFADAB972D91FE +:10D5E0003D914D915C91A7962CAF3DAF4EAF5FAF93 +:10D5F000A797A5019401C301B2010F940BC36B015E +:10D600007C01A7962CAD3DAD4EAD5FADA797A3961F +:10D610006CAD7DAD8EAD9FADA3970F940BC39B01F9 +:10D62000AC01C701B6010F9419BF6B017C019B01CE +:10D63000AC01C501B4010F9411C06B966CAF7DAF06 +:10D640008EAF9FAF6B97A7966CAD7DAD8EAD9FAD46 +:10D65000A7979058A70196010F9411C04B015C0148 +:10D66000A3966CAD7DAD8EAD9FADA3979058A701ED +:10D6700096010F9411C0A7966CAF7DAF8EAF9FAF90 +:10D68000A797A7019601C301B2010F9411C06B01C6 +:10D690007C016796AEADBFAD67972D913D914D91E1 +:10D6A0005C911397A3962CAF3DAF4EAF5FAFA3979E +:10D6B00014964D905D906D907C9017976B962CAD65 +:10D6C0003DAD4EAD5FAD6B97A996AEADBFADA99721 +:10D6D0002D933D934D935C931397A7962CAD3DAD41 +:10D6E0004EAD5FADA79714962D933D934D935C93EC +:10D6F0001797AB96EEADFFADAB9780829182A28279 +:10D70000B382DF0114966D937D938D939C9317974D +:10D710006B966CAD7DAD8EAD9FAD6B979058A3961B +:10D720002CAD3DAD4EAD5FADA3970F940BC36B9683 +:10D730006CAF7DAF8EAF9FAF6B97A3019201C50118 +:10D74000B4010F940BC39B01AC016B966CAD7DAD26 +:10D750008EAD9FAD6B970F9419BF6796EEADFFAD81 +:10D7600067976083718382839383A7966CAD7DAD49 +:10D770008EAD9FADA7979058A3962CAD3DAD4EAD05 +:10D780005FADA3970F940BC34B015C01A301920102 +:10D79000C701B6010F940BC39B01AC01C501B401D5 +:10D7A0000F9419BF6796AEADBFAD679714966D9392 +:10D7B0007D938D939C931797AC96BFADAC971B163A +:10D7C0000CF04BC3E9EDFAE88491882341F0909185 +:10D7D000C00095FFFCCF8093C6003196F5CFA99687 +:10D7E000EEADFFADA997408151816281738125E043 +:10D7F00030E080EF96E00E940B5EE6EDFAE884915F +:10D80000882341F09091C00095FFFCCF8093C60023 +:10D810003196F5CFA996AEADBFADA99714964D91AF +:10D820005D916D917C91179725E030E080EF96E057 +:10D830000E940B5EE5EDFAE88491882341F0909117 +:10D84000C00095FFFCCF8093C6003196F5CF809144 +:10D85000C00085FFFCCF8AE08093C600E0ECFAE8C8 +:10D860008491882341F09091C00095FFFCCF809374 +:10D87000C6003196F5CFAB96EEADFFADAB974081CC +:10D8800051816281738125E030E080EF96E00E9453 +:10D890000B5EEDEBFAE88491882341F09091C00093 +:10D8A00095FFFCCF8093C6003196F5CFAB96AEAD19 +:10D8B000BFADAB9714964D915D916D917C9117978B +:10D8C00025E030E080EF96E00E940B5EECEBFAE89A +:10D8D0008491882341F09091C00095FFFCCF809304 +:10D8E000C6003196F5CF8091C00085FFFCCF8AE05D +:10D8F0008093C600E9EAFAE88491882341F0909188 +:10D90000C00095FFFCCF8093C6003196F5CF679697 +:10D91000EEADFFAD6797408151816281738125E053 +:10D9200030E080EF96E00E940B5EE6EAFAE8849130 +:10D93000882341F09091C00095FFFCCF8093C600F2 +:10D940003196F5CF6796AEADBFAD679714964D9102 +:10D950005D916D917C91179725E030E080EF96E026 +:10D960000E940B5EE5EAFAE88491882341F09091E9 +:10D97000C00095FFFCCF8093C6003196F5CF809113 +:10D98000C00085FFFCCF8AE08093C60084E690E06B +:10D990000E940077AC96BFADAC97B13009F45DC280 +:10D9A000E7E8FAE88491882341F09091C00095FF60 +:10D9B000FCCF8093C6003196F5CF8091C00085FFE3 +:10D9C000FCCF8AE08093C600C957DF4F08811981D8 +:10D9D000C758D040CB57DF4F48805980C558D040FA +:10D9E000612C712CE1964FADE197641608F078C177 +:10D9F000F80165917591859194911801E4E02E0EDE +:10DA0000311CF10185909590A590B490A996AEAD8A +:10DA1000BFADA9972D913D914D915C910F940BC392 +:10DA20006B017C01AB96EEADFFADAB9720813181F0 +:10DA300042815381C501B4010F940BC39B01AC011A +:10DA4000C701B6010F941ABF6796AEADBFAD679719 +:10DA50002D913D914D915C910F941ABF6B017C010A +:10DA6000F8016591759185919491F1012591359118 +:10DA700045915491A3962CAF3DAF4EAF5FAFA397A6 +:10DA8000A996AEADBFADA99714962D913D914D913C +:10DA90005C9117970F940BC34B015C01AB96EEADF5 +:10DAA000FFADAB972481358146815781A3966CAD3C +:10DAB0007DAD8EAD9FADA3970F940BC39B01AC01C1 +:10DAC000C501B4010F941ABF6796AEADBFAD67979D +:10DAD00014962D913D914D915C9117970F941ABF1B +:10DAE0004B015C01EFE7FAE88491882341F09091C3 +:10DAF000C00095FFFCCF8093C6003196F5CF4AE079 +:10DB000050E0B30180EF96E00E94185DE3E7FAE889 +:10DB10008491882341F09091C00095FFFCCF8093C1 +:10DB2000C6003196F5CFD2014D915D916D917C91FA +:10DB300025E030E080EF96E00E940B5EE0E7FAE837 +:10DB40008491882341F09091C00095FFFCCF809391 +:10DB5000C6003196F5CFD20114964D915D916D912D +:10DB60007C91179725E030E080EF96E00E940B5EF5 +:10DB7000E7E5FAE88491882341F09091C00095FF91 +:10DB8000FCCF8093C6003196F5CF25E030E0B70199 +:10DB9000A60180EF96E00E940B5EE4E5FAE884912E +:10DBA000882341F09091C00095FFFCCF8093C60080 +:10DBB0003196F5CF25E030E0B501A40180EF96E085 +:10DBC0000E940B5EE7E4FAE88491882341F090918B +:10DBD000C00095FFFCCF8093C6003196F5CFF801C9 +:10DBE000459155916591749125E030E080EF96E084 +:10DBF0000E940B5EE4E4FAE88491882341F090915E +:10DC0000C00095FFFCCF8093C6003196F5CFF1019F +:10DC1000459155916591749125E030E080EF96E053 +:10DC20000E940B5EE9E3FAE88491882341F0909129 +:10DC3000C00095FFFCCF8093C6003196F5CFA701B9 +:10DC40009601D2016D917D918D919C910F9419BF98 +:10DC50006B017C01A5019401F201648175818681CB +:10DC600097810F9419BF4B015C01A7019601C70171 +:10DC7000B6010F940BC36B017C01A5019401C50192 +:10DC8000B4010F940BC39B01AC01C701B6010F9403 +:10DC90001ABF0F94C4C3AB01BC0122E030E080EF97 +:10DCA00096E00E940B5EE8E3FAE88491882341F055 +:10DCB0009091C00095FFFCCF8093C6003196F5CFC0 +:10DCC0008091C00085FFFCCFFAE0F093C6002FEFF3 +:10DCD000621A720A38E0430E511C085F1F4F82CE51 +:10DCE000AC965FADAC9754310CF45AC0E7E3FAE858 +:10DCF0008491882341F09091C00095FFFCCF8093E0 +:10DD0000C6003196F5CF8091C00085FFFCCF8AE038 +:10DD10008093C600EBE0FAE88491882341F090916B +:10DD2000C00095FFFCCF8093C6003196F5CF80915F +:10DD3000C00085FFFCCF8AE08093C6004AE050E037 +:10DD40006D966EAD7FAD6D9780EF96E00E94185D89 +:10DD5000EAE0FAE88491882341F09091C00095FFB1 +:10DD6000FCCF8093C6003196F5CF8091C00085FF2F +:10DD7000FCCF8AE08093C600E9E0FAE8849188232A +:10DD800041F09091C00095FFFCCF8093C600319682 +:10DD9000F5CF8091C00085FFFCCF8AE08093C6005C +:10DDA00084E690E00E94007758C02DEC3CEC4CE4F7 +:10DDB0005FE3C301B2010F9439C2181614F00C943A +:10DDC00040E5E8E1FCE8849181113AC08EEF9FEFD5 +:10DDD0006D969FAF8EAF6D970C9440E5F101248155 +:10DDE000358146815781CF57DF4F688179818A819C +:10DDF0009B81C158D0400C947CDBF101248135819A +:10DE000046815781CF57DF4F688179818A819B8115 +:10DE1000C158D0400C9493DB412C512C80E8682EE3 +:10DE20008FE3782E0C9497DB112311F40C94BDDB57 +:10DE3000812C912C90E8A92E9FE3B92E0C9480DBC5 +:10DE40009091C00095FFFCCF8093C6003196BBCF68 +:10DE500001110C946DDB0C94BDDB6D968EAD9FAD06 +:10DE60006D97C054DF4F0FB6F894DEBF0FBECDBF25 +:10DE7000DF91CF911F910F91FF90EF90DF90CF90A6 +:10DE8000BF90AF909F908F907F906F905F904F90DA +:10DE90003F902F9008954FEF5FEFBA0185EE9FE01E +:10DEA0000F9481CB4FEF5FEFBA0189EE9FE00F94A3 +:10DEB00081CB4FEF5FEFBA018DED9FE00F9481CBE7 +:10DEC0004FEF5FEFBA0181EE9FE00F9481CB4FEFF0 +:10DED0005FEFBA0185ED9FE00F9481CB4FEF5FEFCD +:10DEE000BA0189ED9FE00F9481CB4FEF5FEFBA014C +:10DEF00085EC9FE00F9481CB4FEF5FEFBA0189EC87 +:10DF00009FE00F9481CB4FEF5FEFBA018DEC9FE064 +:10DF10000F9481CB4FEF5FEFBA0181ED9FE00D943D +:10DF200081CBCF93DF93C5ECDFE0CE010F946ACBBA +:10DF3000019639F02296C53D8FE0D807B1F781E010 +:10DF400001C080E0DF91CF910895CF93DF93CDB7EB +:10DF5000DEB768970FB6F894DEBF0FBECDBF80E086 +:10DF600090E0A0E8BFE3898B9A8BAB8BBC8B1D8ABA +:10DF70001E8A1F8A188E19861A861B861C868D8714 +:10DF80009E87AF87B88B19821A821B821C821D82E2 +:10DF90001E821F821886AE014F5F5F4FBE01675F12 +:10DFA0007F4FCE0141960E9425D468960FB6F89413 +:10DFB000DEBF0FBECDBFDF91CF910895CF93DF932A +:10DFC000CDB7DEB768970FB6F894DEBF0FBECDBFF2 +:10DFD0008091920F8823F1F180E090E0A0E8BFE308 +:10DFE000898B9A8BAB8BBC8B1D8A1E8A1F8A188EDD +:10DFF00019861A861B861C868D879E87AF87B88BED +:10E0000019821A821B821C821D821E821F82188620 +:10E01000AE014F5F5F4FBE01675F7F4FCE014196FC +:10E020000E9425D40F94B93E80E00F94243F609362 +:10E03000200A7093210A8093220A9093230A81E098 +:10E040000F94243F6093240A7093250A8093260A34 +:10E050009093270A68960FB6F894DEBF0FBECDBF27 +:10E06000DF91CF9108954F925F926F927F928F923E +:10E070009F92AF92BF92CF92DF92EF92FF921F9347 +:10E08000CF93DF93CDB7DEB7A0970FB6F894DEBF7E +:10E090000FBECDBF85EE9FE00F9465CB9B01AC0119 +:10E0A000698B7A8B8B8B9C8B89EE9FE02D8F3E8FBB +:10E0B0004F8F58A30F9465CB2B013C016D8B7E8B4A +:10E0C0008F8B988F8DED9FE00F9465CB6B017C015A +:10E0D00069877A878B879C8781EE9FE00F9465CB59 +:10E0E0004B015C016D877E878F87988B85ED9FE064 +:10E0F0000F9465CB698F7A8F8B8F9C8F69837A831E +:10E100008B839C8389ED9FE00F9465CB6D837E8329 +:10E110008F8398872D8D3E8D4F8D58A12F3F3F4F78 +:10E120004F4F5F4FF9F04720462045204094D1F0F3 +:10E130003FEFC316D306E306F306A1F0EFEF8E160A +:10E140009E06AE06BE0671F0298D3A8D4B8D5C8D14 +:10E150002F3F3F4F4F4F5F4F29F06F3F7F4F8F4F04 +:10E160009F4F91F4E8EEF9E88491882341F0909173 +:10E17000C00095FFFCCF8093C6003196F5CF80910B +:10E18000C00085FFFCCFF3C0A7019601C701B6010F +:10E190000F940BC36B017C01A5019401C501B4016F +:10E1A0000F940BC39B01AC01C701B6010F941ABFBA +:10E1B0000F94C4C36B017C0126E636E646E65FE3B6 +:10E1C0000F940AC087FD0BC02DEC3CEC4CE85FE3DC +:10E1D000C701B6010F9439C218160CF0F2C0E7ED72 +:10E1E000F9E884918111DDC08091C00085FFFCCFEA +:10E1F0008AE08093C60022E030E0B701A60180EFFC +:10E2000096E00E940C5EE3E9F9E884918111D1C0A7 +:10E210008091C00085FFFCCF8AE08093C60011E0AA +:10E2200069817A818B819C81CD80DE80EF80F8844A +:10E230009B01AC010F940BC34B015C01A70196013C +:10E24000C701B6010F940BC39B01AC01C501B4011A +:10E250000F941ABF0F94C4C36B017C0126E636E607 +:10E2600046E65FE30F940AC087FDADC02DEC3CECA1 +:10E270004CE85FE3C701B6010F9439C218160CF4DD +:10E28000A2C069897A898B899C89CD88DE88EF88CC +:10E29000F88C9B01AC010F940BC34B015C01A701EF +:10E2A0009601C701B6010F940BC39B01AC01C501D8 +:10E2B000B4010F941ABF0F94C4C36B017C0120E01A +:10E2C00030E040E751E40F9439C218160CF5E7E24C +:10E2D000F9E884918111A9C08091C00085FFFCCF2D +:10E2E0008AE08093C60022E030E0B701A60180EF0B +:10E2F00096E00E940C5EE4EFF8E8849181119DC0E5 +:10E300008091C00085FFFCCF8AE08093C60011E0B9 +:10E3100029813A814B815C8169857A858B859C85D1 +:10E320000F940BC36B017C012D813E814F81588579 +:10E330006D857E858F8598890F940BC39B01AC01F9 +:10E34000C701B6010F941ABF9F772DEC3CEC4CEC43 +:10E350005DE30F9439C218160CF07FC0EAEAF8E8C2 +:10E360008491811172C08091C00085FFFCCF8AE04A +:10E370008093C600E4E7F8E88491882341F0909107 +:10E38000C00095FFFCCF8093C6003196F5CF8091F9 +:10E39000C00085FFFCCF8AE08093C6007CDDD5DD20 +:10E3A00068C09091C00095FFFCCF8093C600319665 +:10E3B00018CF9091C00095FFFCCF8093C600319696 +:10E3C00024CF10E02DCFE2E8F9E88491882341F0D2 +:10E3D0009091C00095FFFCCF8093C6003196F5CF99 +:10E3E0008091C00085FFFCCF8AE08093C60022E0C8 +:10E3F00030E0B701A60180EF96E00E940C5EEEE3EC +:10E40000F9E88491882341F09091C00095FFFCCFFA +:10E410008093C6003196F5CF8091C00085FFFCCF78 +:10E420008AE08093C60011E02CCF9091C00095FF48 +:10E43000FCCF8093C60031964CCF9091C00095FFE1 +:10E44000FCCF8093C600319658CF9091C00095FFC5 +:10E45000FCCF8093C600319683CF11118BCFAE01D4 +:10E460004F5E5F4FBE016F5F7F4FCE0109960E94E6 +:10E4700025D4A0960FB6F894DEBF0FBECDBFDF91B6 +:10E48000CF911F91FF90EF90DF90CF90BF90AF9012 +:10E490009F908F907F906F905F904F9008954F92D4 +:10E4A0005F926F927F928F929F92AF92BF92CF9224 +:10E4B000DF92EF92FF920F931F93CF93DF93C0E20F +:10E4C000DAE020916A0F30916B0F40916C0F509100 +:10E4D0006D0F688179818A819B810F9419BF4B01EF +:10E4E0005C0104E21AE020916E0F30916F0F4091B1 +:10E4F000700F5091710FF801608171818281938159 +:10E500000F9419BF6B017C012091720F3091730F32 +:10E510004091740F5091750FC501B4010F940BC356 +:10E520002B013C012091760F3091770F4091780FAD +:10E530005091790FC701B6010F940BC39B01AC0139 +:10E54000C301B2010F941ABF688379838A839B83C6 +:10E5500020917A0F30917B0F40917C0F50917D0F6D +:10E56000C501B4010F940BC34B015C0120917E0FD8 +:10E5700030917F0F4091800F5091810FC701B601FC +:10E580000F940BC39B01AC01C501B4010F941ABFDA +:10E59000F8016083718382839383DF91CF911F9110 +:10E5A0000F91FF90EF90DF90CF90BF90AF909F9032 +:10E5B0008F907F906F905F904F9008957F928F9291 +:10E5C0009F92AF92BF92CF92DF92EF92FF920F9302 +:10E5D0001F93CF93DF934B015C01742E2A303105DA +:10E5E000A4F0E9EFF5E88491882341F09091C00010 +:10E5F00095FFFCCF8093C6003196F5CF8091C00087 +:10E6000085FFFCCF8AE08093C60081E00F947C35C3 +:10E61000182F80E00F948235D82F0F947735809291 +:10E62000280A9092290AA0922A0AB0922B0A20E086 +:10E6300030E040E752E460915102709152028091C3 +:10E640005302909154020F9411C00E94C0D50E94B1 +:10E650003ED60F947735C82F882309F481C000E097 +:10E66000C12CD12C7601071509F454C020E030E00C +:10E6700040E05FE36091280A7091290A80912A0A9C +:10E6800090912B0A0F941ABF6093280A7093290A5D +:10E6900080932A0A90932B0A20E030E040E752E46E +:10E6A00060915102709152028091530290915402F4 +:10E6B0000F9411C00E94C0D58092280A9092290A16 +:10E6C000A0922A0AB0922B0A20E030E040E753E4FF +:10E6D00060915102709152028091530290915402C4 +:10E6E0000F9411C00E94C0D50E943ED60F9477357A +:10E6F0008823B1F12091280A3091290A40912A0AF1 +:10E7000050912B0AC701B6010F941ABF6B017C010F +:10E710000F5FA9CF023048F4C092280AD092290A8C +:10E72000E0922A0AF0922B0A14C0602F70E080E079 +:10E7300090E00F94AAC09B01AC01C701B6010F94F1 +:10E7400011C06093280A7093290A80932A0A909333 +:10E750002B0A812F0F947C358D2F0F94823507C0A3 +:10E76000812F0F947C358D2F0F948235C0E08C2F34 +:10E77000DF91CF911F910F91FF90EF90DF90CF909D +:10E78000BF90AF909F908F907F9008952F923F926F +:10E790004F925F926F927F928F929F92AF92BF92B1 +:10E7A000CF92DF92EF92FF920F931F93CF93DF935D +:10E7B000CDB7DEB7A3970FB6F894DEBF0FBECDBFBF +:10E7C0008C018A30910534F062E974E080EF96E0C4 +:10E7D0000E940B5D20E030E040E752E46091490286 +:10E7E00070914A0280914B0290914C020F9411C09B +:10E7F0002B013C01C090200AD090210AE090220A0F +:10E80000F090230A20E030E040E051E4C701B60177 +:10E810000F9419BF362E272E89839A8320E030E08B +:10E8200040E051E4C701B6010F941ABF6F837887A7 +:10E8300089879A878090240A9090250AA090260ABA +:10E84000B090270A20E030E040EC50E4C501B4016C +:10E850000F9419BF6B837C838D839E8320E030E00F +:10E8600040EC50E4C501B4010F941ABF6B877C875C +:10E870008D879E8720E030E0A901632D722D89816C +:10E880009A810F940AC087FF2DC00431110534F11D +:10E89000E5ECF6E88491882341F09091C00095FF63 +:10E8A000FCCF8093C6003196F5CF8091C00085FFE4 +:10E8B000FCCF8AE08093C60020E030E04AE753E4D2 +:10E8C0006F81788589859A850F9439C218160CF066 +:10E8D0007CC4312C212C19821A8213C0312C212C9A +:10E8E00019821A8220E030E04AE753E46F8178858C +:10E8F00089859A850F9439C2181684F5043111055B +:10E900003CF1ECE8F6E88491882341F09091C00056 +:10E9100095FFFCCF8093C6003196F5CF8091C00063 +:10E9200085FFFCCF8AE08093C6002DEC3CEC4CE0E8 +:10E9300050EC6B817C818D819E810F940AC01F8277 +:10E94000188687FD1BC02AE7298733E43A874BC026 +:10E950001F8218864AE7498753E45A872DEC3CEC1E +:10E960004CE050EC6B817C818D819E810F940AC0BC +:10E9700087FF39C00431110574F104C08AE7898723 +:10E9800093E49A87E4E5F6E88491882341F0909136 +:10E99000C00095FFFCCF8093C6003196F5CF8091E3 +:10E9A000C00085FFFCCF8AE08093C60020E030E005 +:10E9B00042E553E46B857C858D859E850F9439C235 +:10E9C0002DEC3CEC4CE050EC2B833C834D835E8380 +:10E9D0001816C4F03CC08DEC9CECACE0B0EC8B8322 +:10E9E0009C83AD83BE8320E030E042E553E46B8539 +:10E9F0007C858D859E850F9439C2181644F50431A7 +:10EA00001105ECF0EBE1F6E88491882341F0909158 +:10EA1000C00095FFFCCF8093C6003196F5CF809162 +:10EA2000C00085FFFCCF8AE08093C60080E090E0C4 +:10EA3000A2E5B3E48B879C87AD87BE8708C020E042 +:10EA400030E042E553E42B873C874D875E872B817E +:10EA50003C814D815E816B857C858D859E850F9483 +:10EA600019BF6B8B7C8B8D8B9E8B0F94F7BF0F9494 +:10EA700079C04B016F8B80E00F947C35E090280AC1 +:10EA8000F090290A00912A0A10912B0A6301520181 +:10EA90002B813C814D815E81632D722D89819A810C +:10EAA0000E9470D50F94643581E00F94823531E077 +:10EAB00038A39F89892F90E0A0E0B0E08F87988BE2 +:10EAC000A98BBA8BC401992701979C01442737FD74 +:10EAD0004095542F288F398F4A8F5B8F20E030E08C +:10EAE00040E251EC6091280A7091290A80912A0A2B +:10EAF00090912B0A0F9439C2181674F48B819C8163 +:10EB0000AD81BE818093240A9093250AA093260AA2 +:10EB1000B093270A1BA27AC00E94FCD51F86C401AD +:10EB2000992701979C01442737FD4095542F288F42 +:10EB3000398F4A8F5B8FA8C16F85788989899A89B7 +:10EB40000F94AAC09B01AC016DEC7CEC8CE49EE3BD +:10EB50000F9411C09B01AC016091280A7091290AA1 +:10EB600080912A0A90912B0A0F9419BF6093280A6A +:10EB70007093290A80932A0A90932B0A2091240AE1 +:10EB80003091250A4091260A5091270AA8A1AA236C +:10EB900009F442C0BF81A885E985E9A3FA8563012C +:10EBA00052017B018C016B2F7A2F89A19F2F0E942C +:10EBB00070D528A131E0232728A30F947735811140 +:10EBC000ABCF688D798D8A8D9B8D0F94ACC09B01E6 +:10EBD000AC016B897C898D899E890F9411C09B0142 +:10EBE000AC016091240A7091250A8091260A9091C7 +:10EBF000270A0F941ABF6093240A7093250A809302 +:10EC0000260A9093270A3BA13F5F3BA34BA15F8954 +:10EC1000451708F491CF05C0D101F981F9A3FA8114 +:10EC2000BECF1BA25BA18F89581708F057CF6F8505 +:10EC3000788989899A890F94AAC09B01AC016DECEF +:10EC40007CEC8CE49EE30F9411C09B01AC016091BD +:10EC5000280A7091290A80912A0A90912B0A0F9410 +:10EC600019BF6093280A7093290A80932A0A909307 +:10EC70002B0A2091240A3091250A4091260A5091AE +:10EC8000270AA8A1AA2331F0BF81A885E985E9A3B5 +:10EC9000FA8504C0D101F981F9A3FA816301520117 +:10ECA0007B018C016B2F7A2F89A19F2F0E9470D539 +:10ECB00028A131E0232728A30F94773581112CCF89 +:10ECC000688D798D8A8D9B8D0F94ACC09B01AC01B2 +:10ECD0006B897C898D899E890F9411C09B01AC0141 +:10ECE0006091240A7091250A8091260A9091270A42 +:10ECF0000F9419BF6093240A7093250A8093260A03 +:10ED00009093270A4BA14F5F4BA38CCF2091240AED +:10ED10003091250A4091260A5091270AAA2009F429 +:10ED2000D4C0BF81A885C984BA84830172016B2FC6 +:10ED30007A2F8C2D9B2D0E9494D50F9477358111BD +:10ED4000C8C0688D798D8A8D9B8D0F94ACC09B0156 +:10ED5000AC016B897C898D899E890F9411C09B01C0 +:10ED6000AC016091240A7091250A8091260A909145 +:10ED7000270A0F941ABF6093240A7093250A809380 +:10ED8000260A9093270AD39431E0A3264F89D416FC +:10ED900008F4BCCFD12C0E94FCD5DD2081F18090FD +:10EDA000240A9090250AA090260AB090270A80E0B5 +:10EDB0000F9482358B859C85AD85BE858093240A12 +:10EDC0009093250AA093260AB093270A8301720123 +:10EDD0009C01AD01632D722D89819A810E9494D589 +:10EDE00081E00F94823591E09AA3C12CFF89CF1660 +:10EDF00008F472C0D12C0E94FCD5D110B3C02F856D +:10EE00002F5F2F87233009F4DEC19F859923E1F11D +:10EE10002AE037ED43EA5CE36091280A7091290A01 +:10EE200080912A0A90912B0A0F9419BF6093280AA7 +:10EE30007093290A80932A0A90932B0A20E030E0ED +:10EE400040E752E460915102709152028091530266 +:10EE5000909154020F9411C05B016C012091240A1F +:10EE60003091250A4091260A5091270A6091200A84 +:10EE70007091210A8091220A9091230AE12CF12CB1 +:10EE800000EA10E40E9470D580E00F947C3580E0A9 +:10EE90000F9482352B813C814D815E812093240A21 +:10EEA0003093250A4093260A5093270A8301720162 +:10EEB000632D722D89819A810E9494D581E00F94EF +:10EEC0008235AA24A394D12C61CFD101C980BA8004 +:10EED0002CCFDD24D3945FCF2091240A3091250AD2 +:10EEE0004091260A5091270AAAA1AA2329F0BF819E +:10EEF000A885E985FA8503C0D101E981FA818301FA +:10EF000072016B2F7A2FCF010E9494D50F94773521 +:10EF1000811171CF688D798D8A8D9B8D0F94ACC0D6 +:10EF20009B01AC016B897C898D899E890F9411C0EE +:10EF30009B01AC016091240A7091250A8091260AF8 +:10EF40009091270A0F9419BF6093240A7093250AA1 +:10EF50008093260A9093270AC394BAA1E1E0BE27C2 +:10EF6000BAA344CF2091240A3091250A4091260A61 +:10EF70005091270AC501B4010F941ABF20E030E078 +:10EF800040E05FE30F940BC36093240A7093250A5B +:10EF90008093260A9093270A80E00F94823520916F +:10EFA000240A3091250A4091260A5091270A8301AC +:10EFB0007201632D722D89819A810E9494D581E01E +:10EFC0000F9482352091240A3091250A4091260A17 +:10EFD0005091270A6F81788589859A850E9494D5FA +:10EFE0000E94FCD50F947735882309F408CF8090D0 +:10EFF000200A9090210AA090220AB090230A80E073 +:10F000000F9482352091240A3091250A4091260AD6 +:10F010005091270A6F81788589859A850E9494D5B9 +:10F0200081E00F9482352091240A3091250A409185 +:10F03000260A5091270A632D722D89819A810E9498 +:10F0400094D50E94FCD50F947735882309F4D7CE48 +:10F050002091200A3091210A4091220A5091230ADE +:10F0600080E02C8F3D8F4E8F5F8F0F9482352C8DDB +:10F070003D8D4E8D5F8DC501B4010F941ABF20E008 +:10F0800030E040E05FE30F940BC36093200A70937D +:10F09000210A8093220A9093230A2091240A309116 +:10F0A000250A4091260A5091270A0E9494D580E0B3 +:10F0B0000F9482356091200A7091210A8091220A72 +:10F0C0009091230A2B813C814D815E810E9494D5D1 +:10F0D00081E00F9482356091200A7091210A80911D +:10F0E000220A9091230A2B853C854D855E850E94DE +:10F0F00094D50E94FCD50F947735882309F47FCEF0 +:10F100008090240A9090250AA090260AB090270AA1 +:10F1100080E00F9482356091200A7091210A8091DD +:10F12000220A9091230A2B853C854D855E850E949D +:10F1300094D581E00F9482356091200A7091210A64 +:10F140008091220A9091230A2B813C814D815E811E +:10F150000E9494D50E94FCD50F947735882309F43A +:10F160004ECE2091240A3091250A4091260A5091D2 +:10F17000270A80E02C8F3D8F4E8F5F8F0F94823552 +:10F180002C8D3D8D4E8D5F8DC501B4010F941ABF3E +:10F1900020E030E040E05FE30F940BC39B01AC0143 +:10F1A0006093240A7093250A8093260A9093270A75 +:10F1B0006091200A7091210A8091220A9091230A7D +:10F1C0000E9494D513C0D12C11C02DEC3CEC4CE026 +:10F1D00050EC6B817C818D819E810F940AC0312C13 +:10F1E000212C19821A8287FDCDCBFDCB80E00F94B4 +:10F1F00082358D2DA3960FB6F894DEBF0FBECDBF1E +:10F20000DF91CF911F910F91FF90EF90DF90CF9002 +:10F21000BF90AF909F908F907F906F905F904F9036 +:10F220003F902F9008952F923F924F925F926F924E +:10F230007F928F929F92AF92BF92CF92DF92EF9286 +:10F24000FF920F931F93CF93DF93CDB7DEB76997EC +:10F250000FB6F894DEBF0FBECDBF80E00F947C35B3 +:10F26000898F80E00F948235382E20E030E040E72F +:10F2700052E46091490270914A0280914B02909150 +:10F280004C020F9411C0698B7A8B8B8B9C8B4090B6 +:10F29000200A5090210A6090220A7090230A8090E0 +:10F2A000240A9090250AA090260AB090270A212CC3 +:10F2B00019861A861B861C861D821E821F8218864E +:10F2C00081E02816B9F0281660F092E029122CC0CF +:10F2D00024EF3DEF44EB50E4C301B2010F941ABF99 +:10F2E00012C024EF3DEF44EB50E4C301B2010F9490 +:10F2F00019BF09C024EF3DEF44EB50E4C301B20154 +:10F300000F941ABF19C06093EB097093EC098093B6 +:10F31000ED099093EE0924EF3DEF44EB50E4C50175 +:10F32000B4010F9419BF18C024EF3DEF44EB50E433 +:10F33000C301B2010F9419BF6093EB097093EC09FC +:10F340008093ED099093EE0924EF3DEF44EB50E4F8 +:10F35000C501B4010F941ABF6093EF097093F009CF +:10F360008093F1099093F2098091EB099091EC0957 +:10F37000A091ED09B091EE098D8B9E8BAF8BB88F6C +:10F38000A3019201BC01CD010F9419BF6D877E8747 +:10F390008F87988BA50194016091EF097091F00916 +:10F3A0008091F1099091F2090F9419BF69837A83D2 +:10F3B0008B839C832D853E854F855889CA01B90171 +:10F3C0000F940BC36B017C0129813A814B815C81D5 +:10F3D000CA01B9010F940BC39B01AC01C701B6016F +:10F3E0000F941ABF0F94C4C36B017C0120E030E07E +:10F3F000A9016D897E898F89988D0F940AC087FF36 +:10F400000FC01092EB091092EC091092ED091092C6 +:10F41000EE09A70196016D817E818F81988522C0BA +:10F4200020E030E04AE753E46D897E898F89988D2A +:10F430000F9439C2181664F580E090E0AAE7B3E4AF +:10F440008093EB099093EC09A093ED09B093EE093A +:10F450002D813E814F815885BC01CD010F9419BF8C +:10F46000A70196010F9411C029813A814B815C81DB +:10F470000F940BC39B01AC01C501B4010F941ABFDB +:10F480006093EF097093F0098093F1099093F2096A +:10F490008091EF099091F009A091F109B091F209E2 +:10F4A00089839A83AB83BC832DEC3CEC4CE050EC1D +:10F4B000BC01CD010F940AC087FF27C02DEC3CECA6 +:10F4C0004CE050E469857A858B859C850F941ABF42 +:10F4D000A70196010F9411C02D853E854F8558894F +:10F4E0000F940BC39B01AC01C301B2010F941ABF6F +:10F4F0006093EB097093EC098093ED099093EE090A +:10F500008DEC9CECACE0B0EC32C020E030E042E5A9 +:10F5100053E469817A818B819C810F9439C21816DA +:10F5200074F529853A854B855C8560E070E082E55D +:10F5300093E40F9419BFA70196010F9411C02D8574 +:10F540003E854F8558890F940BC39B01AC01C301C5 +:10F55000B2010F941ABF6093EB097093EC0980938A +:10F56000ED099093EE0980E090E0A2E5B3E480938A +:10F57000EF099093F009A093F109B093F20980E0AC +:10F580000F947C352091EF093091F0094091F109F9 +:10F590005091F2096091EB097091EC098091ED09AD +:10F5A0009091EE09E988FA880B891C890E9494D50C +:10F5B00081E00F947C35E988FA880B891C89A501C4 +:10F5C0009401C301B2010E9494D50E94FCD5209100 +:10F5D000200A3091210A4091220A5091230A6D811C +:10F5E0007E818F8198850F941ABF6D837E838F8370 +:10F5F00098872091240A3091250A4091260A50913B +:10F60000270A69857A858B859C850F941ABF69873F +:10F610007A878B879C87239494E0291251CE20E02F +:10F6200030E040E85EE36D817E818F8198850F94A4 +:10F630000BC36093200A7093210A8093220A90934F +:10F64000230A20E030E040E85EE369857A858B8517 +:10F650009C850F940BC36093240A7093250A8093B2 +:10F66000260A9093270A80E00F947C352091240A83 +:10F670003091250A4091260A5091270A6091200A6C +:10F680007091210A8091220A9091230AE988FA88D0 +:10F690000B891C890E9494D5898D0F947C35832D0C +:10F6A0000F94823580E069960FB6F894DEBF0FBEE6 +:10F6B000CDBFDF91CF911F910F91FF90EF90DF9021 +:10F6C000CF90BF90AF909F908F907F906F905F9002 +:10F6D0004F903F902F9008953F924F925F926F927C +:10F6E0007F928F929F92AF92BF92CF92DF92EF92D2 +:10F6F000FF920F931F93CF93DF93CDB7DEB7609741 +:10F700000FB6F894DEBF0FBECDBFD82E362E409078 +:10F71000200A5090210A6090220A7090230A80915A +:10F72000240A9091250AA091260AB091270A8D8774 +:10F730009E87AF87B88B80E00F947C3520E030E067 +:10F7400040E051E4C301B2010F9419BF4B015C01C9 +:10F7500020E030E040E051E4C301B2010F941ABF51 +:10F7600069877A878B879C8720E030E0A901C501F3 +:10F77000B4010F940AC087FF03C0812C912C54015F +:10F7800020E030E04AE753E469857A858B859C85E3 +:10F790000F9439C2181644F480E090E0AAE7B3E46D +:10F7A00089879A87AB87BC8780E00F94823520E0F9 +:10F7B00030E040E752E46091490270914A02809142 +:10F7C0004B0290914C020F9411C02091240A309169 +:10F7D000250A4091260A5091270A7B018C01C50118 +:10F7E000B4010E9494D581E00F94823520E030E08E +:10F7F00040E752E46091490270914A0280914B02C5 +:10F8000090914C020F9411C02091240A3091250A46 +:10F810004091260A5091270A7B018C0169857A85DF +:10F820008B859C850E9494D50E94FCD50F947735DA +:10F83000882309F4B5C08091200A9091210AA091F3 +:10F84000220AB091230A8D839E83AF83B88780E01C +:10F850000F94823520E030E040E752E460914902A5 +:10F8600070914A0280914B0290914C020F9411C00A +:10F870002091240A3091250A4091260A5091270AA6 +:10F880007B018C0169857A858B859C850E9494D546 +:10F8900081E00F94823520E030E040E752E460914F +:10F8A000490270914A0280914B0290914C020F9450 +:10F8B00011C02091240A3091250A4091260A5091C6 +:10F8C000270A7B018C01C501B4010E9494D50E94D6 +:10F8D000FCD50F947735882309F462C06091200A23 +:10F8E0007091210A8091220A9091230A69837A8378 +:10F8F0008B839C832D813E814F8158850F9419BF46 +:10F9000020E030E040E050E40F940AC087FF51C08F +:10F9100094E093159CF5EDE9F3E88491882341F098 +:10F920009091C00095FFFCCF8093C6003196F5CF33 +:10F930002D813E814F81588569817A818B819C819F +:10F940000F9419BFAB01BC0122E030E080EF96E0DC +:10F950000E940B5EECE9F3E88491882341F09091DA +:10F96000C00095FFFCCF8093C6003196F5CF809103 +:10F97000C00085FFFCCF8AE08093C6002D813E81C8 +:10F980004F81588569817A818B819C810F9419BF41 +:10F9900020E030E040E85FE30F940AC087FF0BC02F +:10F9A0004092200A5092210A6092220A7092230A01 +:10F9B00043C2912C02C099249394A4E0A31594F41B +:10F9C00044E25AE0BE016B5F7F4F87E993E80E94F3 +:10F9D00066D744E25AE0BE016F5F7F4F81E993E84A +:10F9E0000E9466D780E00F94823529813A814B814D +:10F9F0005C816D817E818F8198850F941ABF20E094 +:10FA000030E040E05FE30F940BC32B013C016093B7 +:10FA1000200A7093210A8093220A9093230A20E0FF +:10FA200030E040E752E46091490270914A028091CF +:10FA30004B0290914C020F9411C02091240A3091F6 +:10FA4000250A4091260A5091270A7B018C01C301A7 +:10FA5000B2010E9494D520E030E040E051E46D8591 +:10FA60007E858F8598890F9419BF2B013C0120E07A +:10FA700030E040E051E46D857E858F8598890F9454 +:10FA80001ABF69877A878B879C872DEC3CEC4CE00A +:10FA900050ECC301B2010F940AC087FF08C0FDEC0F +:10FAA0004F2EFCEC5F2EFCE06F2EF0EC7F2E20E062 +:10FAB00030E042E553E469857A858B859C850F9417 +:10FAC00039C2181644F480E090E0A2E5B3E48987D7 +:10FAD0009A87AB87BC8780E00F94823520E030E0C6 +:10FAE00040E752E46091490270914A0280914B02D2 +:10FAF00090914C020F9411C07B018C016091200AFF +:10FB00007091210A8091220A9091230AA301920107 +:10FB10000E9494D5DD2009F452C020E030E040E797 +:10FB200052E460915102709152028091530290917F +:10FB300054020F9411C05B016C0120E030E040ECF6 +:10FB40005FE36091280A7091290A80912A0A9091B6 +:10FB50002B0A0F941ABF7B018C016091200A7091CF +:10FB6000210A8091220A9091230AA30192010E9406 +:10FB700070D520E030E040E752E46091510270918E +:10FB8000520280915302909154020F9411C05B0174 +:10FB90006C01E090280AF090290A00912A0A10913D +:10FBA0002B0A6091200A7091210A8091220A90917B +:10FBB000230AA30192010E9470D51C9928C081E0FC +:10FBC0000F94823520E030E040E752E46091490232 +:10FBD00070914A0280914B0290914C020F9411C097 +:10FBE0007B018C016091200A7091210A8091220A88 +:10FBF0009091230A29853A854B855C850E9494D58E +:10FC00000E94FCD50F947735882309F4B5C0809104 +:10FC1000240A9091250AA091260AB091270A8D8383 +:10FC20009E83AF83B88780E00F94823520E030E078 +:10FC300040E752E46091490270914A0280914B0280 +:10FC400090914C020F9411C07B018C016091200AAD +:10FC50007091210A8091220A9091230A29853A8580 +:10FC60004B855C850E9494D581E00F94823520E01D +:10FC700030E040E752E46091490270914A0280917D +:10FC80004B0290914C020F9411C07B018C0160914A +:10FC9000200A7091210A8091220A9091230AA301DF +:10FCA00092010E9494D50E94FCD50F947735882349 +:10FCB00009F462C06091240A7091250A8091260A95 +:10FCC0009091270A69837A838B839C832D813E815F +:10FCD0004F8158850F9419BF20E030E040E050E498 +:10FCE0000F940AC087FF57C094E093159CF5E8E78E +:10FCF000F3E88491882341F09091C00095FFFCCFF8 +:10FD00008093C6003196F5CF2D813E814F81588575 +:10FD100069817A818B819C810F9419BFAB01BC01F1 +:10FD200022E030E080EF96E00E940B5EE7E7F3E828 +:10FD30008491882341F09091C00095FFFCCF80937F +:10FD4000C6003196F5CF8091C00085FFFCCF8AE0D8 +:10FD50008093C6002D813E814F81588569817A81CB +:10FD60008B819C810F9419BF20E030E040E85FE375 +:10FD70000F940AC087FF0DC08D859E85AF85B88919 +:10FD80008093240A9093250AA093260AB093270A09 +:10FD900053C09924939494E0931594F4AE014B5F6F +:10FDA0005F4F60E27AE083E793E80E9466D7AE0196 +:10FDB0004F5F5F4F60E27AE08CE693E80E9466D77F +:10FDC00080E00F94823529813A814B815C816D817D +:10FDD0007E818F8198850F941ABF20E030E040E04B +:10FDE0005FE30F940BC32B013C016093240A7093D3 +:10FDF000250A8093260A9093270A20E030E040E706 +:10FE000052E46091490270914A0280914B029091B4 +:10FE10004C020F9411C07B018C016091200A7091FB +:10FE2000210A8091220A9091230AA30192010E9443 +:10FE300094D581E0892526C080E00F94823520E0AA +:10FE400030E040E752E46091490270914A028091AB +:10FE50004B0290914C020F9411C07B018C012091B8 +:10FE6000240A3091250A4091260A5091270A609170 +:10FE7000200A7091210A8091220A9091230A0E94FF +:10FE800094D580E060960FB6F894DEBF0FBECDBF6C +:10FE9000DF91CF911F910F91FF90EF90DF90CF9066 +:10FEA000BF90AF909F908F907F906F905F904F909A +:10FEB0003F9008952F923F924F925F926F927F9260 +:10FEC0008F929F92AF92BF92CF92DF92EF92FF926A +:10FED0000F931F93CF93DF93CDB7DEB7E0970FB6A5 +:10FEE000F894DEBF0FBECDBF988F8F8B4090200A55 +:10FEF0005090210A6090220A7090230A8091240A6F +:10FF00009091250AA091260AB091270A8FA398A75D +:10FF1000A9A7BAA7AF89B88D549734F065EB74E000 +:10FF200080EF96E00E940B5D20E030E040E850E476 +:10FF3000C301B2010F9419BF698F7A8F8B8F9C8F89 +:10FF400020E030E040E850E4C301B2010F941ABF52 +:10FF500069A37AA38BA39CA320E030E040E850E49F +:10FF60006FA178A589A59AA50F9419BF6F87788B83 +:10FF7000898B9A8B20E030E040E850E46FA178A5AF +:10FF800089A59AA50F941ABF4B015C0120E030E0CF +:10FF9000A901698D7A8D8B8D9C8D0F940AC087FF86 +:10FFA00004C0198E1A8E1B8E1C8E20E030E04AE7AA +:10FFB00053E469A17AA18BA19CA10F9439C21816B0 +:10FFC00044F480E090E0AAE7B3E489A39AA3ABA34A +:10FFD000BCA32DEC3CEC4CE050EC6F857889898912 +:10FFE0009A890F940AC087FF08C09DEC9F87ACECEC +:10FFF000A88BBCE0B98B80EC8A8B20E030E042E536 +:020000022000DC +:1000000053E4C501B4010F9439C2181634F4812C9D +:10001000912CA2E5AA2EA3E4BA2EAF89B88D5497ED +:100020000CF440C0E6EEF5E88491882341F090910D +:10003000C00095FFFCCF8093C6003196F5CF22E03B +:1000400030E0B301A20180EF96E00E940B5EE3EE88 +:10005000F5E88491882341F09091C00095FFFCCF92 +:100060008093C6003196F5CF22E030E04FA158A52D +:1000700069A57AA580EF96E00E940B5EE2EEF5E8B6 +:100080008491882341F09091C00095FFFCCF80932C +:10009000C6003196F5CF8091C00085FFFCCF8AE085 +:1000A0008093C600BF85B98788898A8729883A885E +:1000B0001D8E1E8E1F8E18A21C861B861D861E86F8 +:1000C000A501940169857A85C1010F940AC087FF53 +:1000D00009C180E00F94823520E030E040E752E42F +:1000E0006091490270914A0280914B0290914C02BA +:1000F0000F9411C07B018C0129853A85A101698D7E +:100100007A8D8B8D9C8D0E9494D581E00F948235E1 +:1001100020E030E040E752E46091490270914A02E9 +:1001200080914B0290914C020F9411C07B018C0185 +:1001300029853A85A10169A17AA18BA19CA10E9480 +:1001400094D50E94FCD50F947735882309F4BDC05F +:100150008091200A9091210AA091220AB091230A4D +:100160008D839E83AF83B88780E00F94823520E033 +:1001700030E040E752E46091490270914A02809178 +:100180004B0290914C020F9411C07B018C01298588 +:100190003A85A10169A17AA18BA19CA10E9494D565 +:1001A00081E00F94823520E030E040E752E4609136 +:1001B000490270914A0280914B0290914C020F9437 +:1001C00011C07B018C0129853A85A101698D7A8D49 +:1001D0008B8D9C8D0E9494D50E94FCD50F94773511 +:1001E000882309F472C08091200A9091210AA0917D +:1001F000220AB091230A89839A83AB83BC83AF8997 +:10020000B88D159794F044E25AE0BE016B5F7F4FC2 +:100210008DED95E80E9466D744E25AE0BE016F5F1B +:100220007F4F87ED95E80E9466D789819A81AB81DF +:10023000BC818B8B9C8BAD8BBE8BCD80DE80EF80A9 +:10024000F884A7019601BC01CD010F9419BF162FA8 +:10025000072F8DA39EA32C853B854D855E850F942E +:1002600039C21816CCF42B893C894D895E89C701A7 +:10027000B6010F941ABF20E030E040E05FE30F9436 +:100280000BC36D8F7E8F8F8F98A31C870B879DA1CB +:100290009D87AEA1AE8719C020E030E0A9016C8532 +:1002A0007B858D859E850F9439C2181674F42DECCC +:1002B0003CEC4CEC5DE369857A85C1010F9419BF74 +:1002C0006F87788B898B9A8B0DC02DEC3CEC4CECB6 +:1002D0005DE369857A85C1010F941ABF69877A87C2 +:1002E0001C01EECE20E030E0A9016C857B858D8578 +:1002F0009E850F940AC081111BC08F89988D181696 +:1003000019064CF04092200A5092210A6092220A6B +:100310007092230A55C3E3ECF5E88491882391F3A6 +:100320009091C00095FFFCCF8093C6003196F5CF29 +:1003300080E00F94823520E030E040E752E46091A5 +:10034000490270914A0280914B0290914C020F94A5 +:1003500011C06B017C0120E030E040E051E46F858A +:10036000788989899A890F941ABF9B01AC0187010A +:1003700076016D8D7E8D8F8D98A10E9494D581E040 +:100380000F94823520E030E040E752E4609149026A +:1003900070914A0280914B0290914C020F9411C0CF +:1003A0006B017C0120E030E040E051E46F8578890A +:1003B00089899A890F9419BF5B018C012DEC3CEC63 +:1003C0004CE050EC0F9439C218162CF07DEC6CEC1C +:1003D0009CE080EC04C07A2D6B2D902F812F87013B +:1003E0007601272F362F492F582F6D8D7E8D8F8DBB +:1003F00098A10E9494D50E94FCD50F94773588234C +:1004000009F4DEC2AF89B88D159744F044E25AE092 +:1004100060E27AE08FEB95E80E9466D7B091240AFB +:10042000BDA38091250A8EA39091260A9BA7A09137 +:10043000270AACA72F85388949895A896B2F782FCD +:10044000892F9A2F0F940AC018160CF0B9C25DA01C +:100450004EA03BA47CA41DA61EA61FA618AA198602 +:100460001A861C86212C2F85388949895A89652D41 +:10047000742D832D972D0F9439C287FD09C180E01B +:100480000F94823520E030E040E752E46091490269 +:1004900070914A0280914B0290914C020F9411C0CE +:1004A0007B018C01252D342D432D572D698D7A8D9F +:1004B0008B8D9C8D0E9494D581E00F94823520E035 +:1004C00030E040E752E46091490270914A02809125 +:1004D0004B0290914C020F9411C07B018C01252D91 +:1004E000342D432D572D69A17AA18BA19CA10E9487 +:1004F00094D50E94FCD50F947735882309F4B9C0B0 +:100500008091200A9091210AA091220AB091230A99 +:100510008D839E83AF83B88780E00F94823520E07F +:1005200030E040E752E46091490270914A028091C4 +:100530004B0290914C020F9411C07B018C01252D30 +:10054000342D432D572D69A17AA18BA19CA10E9426 +:1005500094D581E00F94823520E030E040E752E40A +:100560006091490270914A0280914B0290914C0235 +:100570000F9411C07B018C01252D342D432D572D57 +:10058000698D7A8D8B8D9C8D0E9494D50E94FCD5AF +:100590000F947735882309F46CC08091200A9091DC +:1005A000210AA091220AB091230A89839A83AB83FE +:1005B000BC83AF89B88D159794F044E25AE0BE0130 +:1005C0006B5F7F4F8AEB95E80E9466D744E25AE062 +:1005D000BE016F5F7F4F84EB95E80E9466D78980EC +:1005E0009A80AB80BC80CD80DE80EF80F884A7014C +:1005F0009601C501B4010F9419BF162F072F8B87E1 +:10060000692E29853A854C85522D0F9439C21816CA +:10061000B4F4A5019401C701B6010F941ABF20E0FC +:1006200030E040E05FE30F940BC36DA77EA78FA778 +:1006300098AB19870A87BB85BC87262C1AC020E097 +:1006400030E0A90169857A858C85922D0F9439C295 +:1006500018167CF42DEC3CEC4CEC5DE3652D742D10 +:10066000832D972D0F941ABF6DA37EA38BA79CA7F4 +:100670000FC02DEC3CEC4CEC5DE3652D742D832D0F +:10068000972D0F9419BF562E472E382E792EEBCE6C +:1006900020E030E0A90169857A858C85922D0F9440 +:1006A0000AC0882309F41AC12DA13EA14BA55CA55F +:1006B0006F85788989899A890F941ABF20E030E084 +:1006C00040E05FE30F940BC36B877D878E879B8B26 +:1006D0008DA58D8F9EA59E8FAFA5AF8FB8A9B8A30E +:1006E0002F85388949895A89652D742D832D972D39 +:1006F0000F9439C287FDFAC080E00F94823520E064 +:1007000030E040E752E46091490270914A028091E2 +:100710004B0290914C020F9411C07B018C01252D4E +:10072000342D432D572D698D7A8D8B8D9C8D0E9494 +:1007300094D581E00F94823520E030E040E752E428 +:100740006091490270914A0280914B0290914C0253 +:100750000F9411C07B018C01252D342D432D572D75 +:1007600069A17AA18BA19CA10E9494D50E94FCD57D +:100770000F947735882309F4A2C08091200A9091C4 +:10078000210AA091220AB091230A8D839E83AF8310 +:10079000B88780E00F94823520E030E040E752E4F3 +:1007A0006091490270914A0280914B0290914C02F3 +:1007B0000F9411C07B018C01252D342D432D572D15 +:1007C00069A17AA18BA19CA10E9494D581E00F948C +:1007D000823520E030E040E752E4609149027091B8 +:1007E0004A0280914B0290914C020F9411C07B0100 +:1007F0008C01252D342D432D572D698D7A8D8B8DB0 +:100800009C8D0E9494D50E94FCD50F947735882347 +:1008100009F455C08091200A9091210AA091220AE2 +:10082000B091230A89839A83AB83BC838F89988D87 +:10083000059794F044E25AE0BE016B5F7F4F8FEA68 +:1008400095E80E9466D744E25AE0BE016F5F7F4F91 +:1008500089EA95E80E9466D789809A80AB80BC803F +:10086000CD80DE80EF80F884A7019601C501B40138 +:100870000F9419BF162F072F8DA7692E29853A854A +:100880004C85522D0F9439C21816CCF4A501940151 +:10089000C701B6010F941ABF20E030E040E05FE3EB +:1008A0000F940BC36D8F7E8F8F8F98A35B864D86C1 +:1008B0003E867B8A19870A879DA59C87262C2DEC6E +:1008C0003CEC4CEC5DE3652D742D832D972D0F943E +:1008D00019BF562E472E382E792E02CFAF85AB8703 +:1008E000B889BD8789898E879A899B8B80E00F9410 +:1008F000823520E030E040E752E460914902709197 +:100900004A0280914B0290914C020F9411C06B01EE +:100910007C0120E030E040E051E46B857D858E85F0 +:100920009B890F941ABF9B01AC01870176016D8DE5 +:100930007E8D8F8D98A10E9494D581E00F94823591 +:1009400020E030E040E752E46091490270914A02B1 +:1009500080914B0290914C020F9411C06B017C016D +:1009600020E030E040E051E46B857D858E859B89F9 +:100970000F9419BF5B018C012DEC3CEC4CE050EC6A +:100980000F9439C218162CF07DEC6CEC9CE080ECD6 +:1009900004C07A2D6B2D902F812F87017601272F90 +:1009A000362F492F582F6D8D7E8D8F8D98A10E94E7 +:1009B00094D50E94FCD50F947735382E81110DC047 +:1009C0008FA198A5A9A5BAA58093240A9093250A7A +:1009D000A093260AB093270A13C2AF89B88D159742 +:1009E00044F044E25AE060E27AE085EA95E80E9449 +:1009F00066D7C090240AD090250AE090260AF0908D +:100A0000270A20E030E040E05FE369857A858C8545 +:100A1000922D0F940BC3698F7A8F8B8F9C8F2DEC47 +:100A20003CEC4CE050E4C701B6010F941ABF298D8D +:100A30003A8D4B8D5C8D0F940AC087FFF8C02B85D3 +:100A40003D854E855B89C701B6010F940AC087FDBD +:100A50000CC020E030E040E85FE369857A858C8552 +:100A6000922D0F940AC087FF2EC08F89988D05970D +:100A70000CF41EC1E2E8F5E88491882341F09091DE +:100A8000C00095FFFCCF8093C6003196F5CF22E0E1 +:100A900030E049855A856C85722D80EF96E00E9482 +:100AA0000B5EE1E8F5E88491882341F09091C00065 +:100AB00095FFFCCF8093C6003196F5CF8091C000A2 +:100AC00085FFFCCF95C02B853D854E855B89C70191 +:100AD000B6010F9419BF2B013C0129853A854C853D +:100AE000522D69857A858C85922D0F940BC34B010D +:100AF0005C0120E030E040E051E4C301B2010F941A +:100B00000BC39B01AC01C501B4010F9411C04B0193 +:100B10005C0120E030E040E05FE3C301B2010F94EC +:100B20000BC39B01AC01C501B4010F941ABF4B016B +:100B30005C012DEC3CEC4CEC5FE30F940AC087FFAA +:100B40005BC0AF89B88D15970CF4B2C0E6E5F5E847 +:100B50008491882341F09091C00095FFFCCF809351 +:100B6000C6003196F5CF22E030E0B501A40180EF58 +:100B700096E00E940B5EEEE4F5E88491882341F054 +:100B80009091C00095FFFCCF8093C6003196F5CFC1 +:100B900022E030E049855A856C85722D80EF96E021 +:100BA0000E940B5EE9E4F5E88491882341F090917E +:100BB000C00095FFFCCF8093C6003196F5CF22E0B0 +:100BC00030E0B301A20180EF96E00E940B5EE8E402 +:100BD000F5E88491882341F09091C00095FFFCCF07 +:100BE0008093C6003196F5CF8091C00085FFFCCF81 +:100BF0008AE08093C6005CC0A5019401698D7A8D5E +:100C00008B8D9C8D0F941ABF20E030E040E05FE3B5 +:100C10000F940BC39B01AC01C701B6010F9419BF20 +:100C20006B877D878E879B8BDD24D39442C0DD2428 +:100C3000D39420E030E040E050E46D8D7E8D8F8DC8 +:100C400098A10F9439C287FDD12C20E030E040E01C +:100C500050EC6F85788989899A890F9439C2181662 +:100C600044F520E030E040E05FE36B857D858E85D4 +:100C70009B890F940BC34B015C012DA13EA14BA599 +:100C80005CA56F85788989899A890F941ABF20E0BD +:100C900030E040E85EE30F940BC39B01AC01C5015B +:100CA000B4010F941ABF6B877D878E879B8B01C021 +:100CB000D12C80E00F9482358D8D9E8DAF8DB8A1A3 +:100CC0008093200A9093210AA093220AB093230ACA +:100CD0008B859D85AE85BB898093240A9093250AD8 +:100CE000A093260AB093270A8F89988D44970CF415 +:100CF0004AC0E4E3F5E88491882341F09091C00074 +:100D000095FFFCCF8093C6003196F5CF4091200A25 +:100D10005091210A6091220A7091230A22E030E06A +:100D200080EF96E00E940B5EE1E3F5E88491882372 +:100D300041F09091C00095FFFCCF8093C6003196A2 +:100D4000F5CF4091240A5091250A6091260A7091AE +:100D5000270A22E030E080EF96E00E940B5EE0E39D +:100D6000F5E88491882341F09091C00095FFFCCF75 +:100D70008093C6003196F5CF8091C00085FFFCCFEF +:100D80008AE08093C60020E030E040E752E46091C2 +:100D9000490270914A0280914B0290914C020F944B +:100DA00011C04B015C01E090240AF090250A0091EB +:100DB000260A1091270A2DEC3CEC4CE050ECB701D0 +:100DC000C8010F940AC087FF05C0BDECACECFCE085 +:100DD000E0EC04C0BE2DAF2DF02FE12F6091200A72 +:100DE0007091210A8091220A9091230A8501740151 +:100DF0002B2F3A2F4F2F5E2F0E9494D5D11042C037 +:100E000080E00F9482352DEC3CEC4CE050EC60918E +:100E1000240A7091250A8091260A9091270A0F943E +:100E20000AC087FF0CC08DEC9CECACE0B0EC80936A +:100E3000240A9093250AA093260AB093270A20E05B +:100E400030E040E752E46091490270914A0280919B +:100E50004B0290914C020F9411C07B018C012091A8 +:100E6000240A3091250A4091260A5091270A609160 +:100E7000200A7091210A8091220A9091230A0E94EF +:100E800094D5312C832DE0960FB6F894DEBF0FBEBB +:100E9000CDBFDF91CF911F910F91FF90EF90DF9029 +:100EA000CF90BF90AF909F908F907F906F905F900A +:100EB0004F903F902F9008952F923F924F925F92C4 +:100EC0006F927F928F929F92AF92BF92CF92DF925A +:100ED000EF92FF920F931F93CF93DF93CDB7DEB7BF +:100EE00066970FB6F894DEBF0FBECDBF8A837C87AE +:100EF0006B870E94086884ECE4E9FFE0DF011D9243 +:100F00008A95E9F718861F82EA81FF27E7FDF095A9 +:100F1000FA8BE98BE8E6F8E88491882341F0909118 +:100F2000C00095FFFCCF8093C6003196F5CF2F808F +:100F30003884FFEF2F1A3F0A4AE050E0B10180EFFA +:100F400096E00E941F5D2A8124310CF42EC1EEE54B +:100F5000F8E88491882341F09091C00095FFFCCF80 +:100F60008093C6003196F5CF8091C00085FFFCCFFD +:100F70008AE08093C600E4E5F8E88491882341F094 +:100F80009091C00095FFFCCF8093C6003196F5CFBD +:100F90004091B40F5091B50F6091B60F7091B70F9B +:100FA00025E030E080EF96E00E940B5EE3E5F8E894 +:100FB0008491882341F09091C00095FFFCCF8093ED +:100FC000C6003196F5CF8091C00085FFFCCF8AE046 +:100FD0008093C600E9E4F8E88491882341F0909179 +:100FE000C00095FFFCCF8093C6003196F5CF4091AD +:100FF000B80F5091B90F6091BA0F7091BB0F25E0F7 +:1010000030E080EF96E00E940B5EE8E4F8E884911F +:10101000882341F09091C00095FFFCCF8093C600DB +:101020003196F5CF8091C00085FFFCCF8AE0809398 +:10103000C600EEE3F8E88491882341F09091C00067 +:1010400095FFFCCF8093C6003196F5CF4091BC0F41 +:101050005091BD0F6091BE0F7091BF0F25E030E041 +:1010600080EF96E00E940B5EEDE3F8E88491882320 +:1010700041F09091C00095FFFCCF8093C60031965F +:10108000F5CF8091C00085FFFCCF8AE08093C60039 +:10109000E3E3F8E88491882341F09091C00095FF44 +:1010A000FCCF8093C6003196F5CF4091C00F509190 +:1010B000C10F6091C20F7091C30F25E030E080EF47 +:1010C00096E00E940B5EE2E3F8E88491882341F009 +:1010D0009091C00095FFFCCF8093C6003196F5CF6C +:1010E0008091C00085FFFCCF8AE08093C600E9E2D2 +:1010F000F8E88491882341F09091C00095FFFCCFDF +:101100008093C6003196F5CF4091C40F5091C50F22 +:101110006091C60F7091C70F25E030E080EF96E038 +:101120000E940B5EE8E2F8E88491882341F09091F8 +:10113000C00095FFFCCF8093C6003196F5CF80911B +:10114000C00085FFFCCF8AE08093C600EFE1F8E89D +:101150008491882341F09091C00095FFFCCF80934B +:10116000C6003196F5CF4091C80F5091C90F6091DC +:10117000CA0F7091CB0F25E030E080EF96E00E941F +:101180000B5EEEE1F8E88491882341F09091C00075 +:1011900095FFFCCF8093C6003196F5CF8091C000BB +:1011A00085FFFCCF8AE08093C600E091530AF0E00F +:1011B000EE0FFF1FE356FF4785919491BE016F5FCD +:1011C0007F4F0F9401658981843010F083E089831B +:1011D000AF81B885BD01882777FD8095982F0F9442 +:1011E000ACC04B015C012DEC3CEC4CE45EE30F9495 +:1011F0000BC32AE939E949E95EE30F940BC36D8714 +:101200007E878F87988B20E030E040EA50E40F948F +:101210001ABF6093280A7093290A80932A0A909330 +:101220002B0AE6E2FEE8FE83ED8304E91FE01C8260 +:101230001B82C101AA2797FDA095BA2F8B8B9C8B8F +:10124000AD8BBE8B0E940868AB81BC811196BA87BA +:10125000A987AD01698180E00F943D61E091530A57 +:10126000F0E0EE0FFF1FE157FF47859194910F9437 +:10127000BE78BF81BB2389F0E091530AF0E0EE0F06 +:10128000FF1FE555FF474591549169816F5F80E0ED +:101290000F94B1A0C1010F94366120E030E040E727 +:1012A00052E46091510270915202809153029091E8 +:1012B00054020F9411C00E94C0D5EA81E4310CF4AD +:1012C00064C01092240A1092250A1092260A1092E5 +:1012D000270A20E030E040E752E460914902709133 +:1012E0004A0280914B0290914C020F9411C00E94CF +:1012F000C0D5E8E1F8E88491882341F09091C000DE +:1013000095FFFCCF8093C6003196F5CF8091C00049 +:1013100085FFFCCF8AE08093C60088E893E10E94B5 +:1013200000778DEC9CECACE0B0EC8093240A9093B9 +:10133000250AA093260AB093270A20E030E040E770 +:1013400052E46091490270914A0280914B0290915F +:101350004C020F9411C00E94C0D5E1E1F8E88491DD +:10136000882341F09091C00095FFFCCF8093C60088 +:101370003196F5CF8091C00085FFFCCF8AE0809345 +:10138000C60088E893E10E940077ED81FE81859197 +:101390009591A591B4918093200A9093210AA093EE +:1013A000220AB093230AED81FE81349685919591AE +:1013B000A591B4918093240A9093250AA093260ABC +:1013C000B093270AFA81F4310CF48DC0E7EFF7E807 +:1013D0008491882341F09091C00095FFFCCF8093C9 +:1013E000C6003196F5CF4091200A5091210A6091B4 +:1013F000220A7091230A25E030E080EF96E00E94F7 +:101400000B5EE6EFF7E88491882341F09091C000ED +:1014100095FFFCCF8093C6003196F5CF8091C00038 +:1014200085FFFCCF8AE08093C600ECEDF7E884915D +:10143000882341F09091C00095FFFCCF8093C600B7 +:101440003196F5CF4091240A5091250A6091260AE1 +:101450007091270A25E030E080EF96E00E940B5E55 +:10146000EBEDF7E88491882341F09091C00095FF5F +:10147000FCCF8093C6003196F5CF8091C00085FFE8 +:10148000FCCF8AE08093C600E1ECF7E884918823E2 +:1014900041F09091C00095FFFCCF8093C60031963B +:1014A000F5CF4091280A5091290A60912A0A70913B +:1014B0002B0A25E030E080EF96E00E940B5EE0EC26 +:1014C000F7E88491882341F09091C00095FFFCCF0C +:1014D0008093C6003196F5CF8091C00085FFFCCF88 +:1014E0008AE08093C60020E030E040E752E460915B +:1014F000490270914A0280914B0290914C020F94E4 +:1015000011C00E94C0D5FA81FA3024F088EB9BE02C +:101510000E94007789899A890E94C6F3882309F47A +:10152000FCC32B813C81232BD9F520E030E043E044 +:1015300060E070E080E291EC0E94DEF224E0F22EA6 +:1015400089899A890E945AFF81112AC0FA9409F464 +:10155000E4C32DEC3CEC4CEC5CE36091280A709108 +:10156000290A80912A0A90912B0A0F9419BF60933F +:10157000280A7093290A80932A0A90932B0A80E004 +:101580000F947C3580E00F94823560915102709108 +:10159000520280915302909154020E94C0D5D0CF44 +:1015A0003A813A30BCF188EB9BE00E9400778A8157 +:1015B000843184F1E6EBF7E88491882341F090913F +:1015C000C00095FFFCCF8093C6003196F5CF809187 +:1015D000C00085FFFCCF8AE08093C6004091200ABE +:1015E0005091210A6091220A7091230A22E030E092 +:1015F00080EF96E00E940C5E4091240A5091250AEB +:101600006091260A7091270A22E030E080EF96E090 +:101610000E940C5E6B897C898D899E890F94ACC079 +:101620006B017C01D8012D913D914D915C91C501DB +:10163000B4010F940BC3A70196010F9411C02B01A5 +:101640003C01A70196016091200A7091210A8091C6 +:10165000220A9091230A0F9411C09B01AC01C3018F +:10166000B2010F941ABFF801608371838283938360 +:101670002481358146815781C501B4010F940BC384 +:10168000A70196010F9411C02B013C01A7019601FF +:101690006091240A7091250A8091260A9091270A68 +:1016A0000F9411C09B01AC01C301B2010F941ABF8A +:1016B000D80114966D937D938D939C931797BA815F +:1016C000B4310CF444C0E5EBF7E88491882341F091 +:1016D0009091C00095FFFCCF8093C6003196F5CF66 +:1016E0008091C00085FFFCCF8AE08093C600EEEABF +:1016F000F7E88491882341F09091C00095FFFCCFDA +:101700008093C6003196F5CFD8014D915D916D91D2 +:101710007C9122E030E080EF96E00E940C5EE7EAE8 +:10172000F7E88491882341F09091C00095FFFCCFA9 +:101730008093C6003196F5CFF801448155816681CA +:10174000778122E030E080EF96E00E940C5E2DEC85 +:101750003CEC4CE050EC6091240A7091250A809199 +:10176000260A9091270A0F940AC087FF0CC08DECBF +:101770009CECACE0B0EC8093240A9093250AA093F3 +:10178000260AB093270A20E030E040E450E46D855B +:101790007E858F8598890F941ABF9B01AC0160915B +:1017A000280A7091290A80912A0A90912B0A0F9495 +:1017B0001ABF6093280A7093290A80932A0A90938B +:1017C0002B0A9A819A3024F1AB81BC81AB2B01F5B5 +:1017D0008DEC9CECACE0B0EC8093240A9093250A4D +:1017E000A093260AB093270A20E030E040E752E4B5 +:1017F0006091490270914A0280914B0290914C0293 +:101800000F9411C00E94C0D588EB9BE00E94007726 +:10181000085F1F4FAD81BE811896BE83AD83E985F9 +:10182000FA85E430F10519F0FC83EB830BCDFA81E6 +:10183000F431C4F42DEC3CEC4CE250EC6091980F88 +:101840007091990F80919A0F90919B0F0F940AC0FD +:1018500087FF87C0AB85BC858C9182608C93E6EA5C +:10186000F7E843C088EB9BE00E94007704E91FE0A3 +:101870000E940868F80180819181A281B3818093E0 +:10188000200A9093210AA093220AB093230A84810C +:101890009581A681B7818093240A9093250AA0930D +:1018A000260AB093270A20E030E040E752E4609136 +:1018B000490270914A0280914B0290914C020F9420 +:1018C00011C00E94C0D588EB9BE00E940077085FA2 +:1018D0001F4FFFE0043B1F0759F6ACCF9091C000AB +:1018E00095FFFCCF8093C600319684918111F6CF8D +:1018F0008091C00085FFFCCF8AE08093C600E4E7BA +:10190000F7E88491882341F09091C00095FFFCCFC7 +:101910008093C6003196F5CF4091980F5091990F62 +:1019200060919A0F70919B0F22E030E080EF96E07B +:101930000E940B5EE0E7F7E88491882341F09091E4 +:10194000C00095FFFCCF8093C6003196F5CF22E012 +:1019500030E04DEC5CEC6CE270EC80EF96E00E94C5 +:101960000C5ECA8094ECE92E9FE0F92E0CEB1FE090 +:1019700024EB3FE046E25EE864E084E99FE00E94F9 +:10198000E2D78C0197FDB9C1A7016CEB7FE084EB36 +:101990009FE00E9425D44091C40F5091C50F6091E3 +:1019A000C60F7091C70F85EE9FE00F9481CB4091D9 +:1019B000C80F5091C90F6091CA0F7091CB0F89EE7B +:1019C0009FE00F9481CB4091B40F5091B50F60917F +:1019D000B60F7091B70F8DED9FE00F9481CB4091C2 +:1019E000B80F5091B90F6091BA0F7091BB0F81EE93 +:1019F0009FE00F9481CB4091BC0F5091BD0F60913F +:101A0000BE0F7091BF0F85ED9FE00F9481CB409189 +:101A1000C00F5091C10F6091C20F7091C30F89ED3B +:101A20009FE00F9481CBBA81BA300CF41DC1609154 +:101A3000B40F7091B50F8091B60F9091B70FC09011 +:101A4000B80FD090B90FE090BA0FF090BB0F9B0188 +:101A5000AC010F940BC34B015C01A7019601C701B8 +:101A6000B6010F940BC39B01AC01C501B4010F94E7 +:101A70001ABF0F94C4C3AB01BC01EFE5F7E8849132 +:101A8000882341F09091C00095FFFCCF8093C60061 +:101A90003196F5CF8091C00085FFFCCF8AE080931E +:101AA000C60022E030E080EF96E00E940C5E60917C +:101AB000BC0F7091BD0F8091BE0F9091BF0FC09071 +:101AC000C00FD090C10FE090C20FF090C30F9B01E8 +:101AD000AC010F940BC34B015C01A7019601C70138 +:101AE000B6010F940BC39B01AC01C501B4010F9467 +:101AF0001ABF0F94C4C3AB01BC01EEE4F7E88491B4 +:101B0000882341F09091C00095FFFCCF8093C600E0 +:101B10003196F5CF8091C00085FFFCCF8AE080939D +:101B2000C60022E030E080EF96E00E940C5E6091FB +:101B3000C40F7091C50F8091C60F9091C70FC090D0 +:101B4000C80FD090C90FE090CA0FF090CB0F9B0147 +:101B5000AC010F940BC34B015C01A7019601C701B7 +:101B6000B6010F940BC39B01AC01C501B4010F94E6 +:101B70001ABF0F94C4C3AB01BC01E7E3F7E884913B +:101B8000882341F09091C00095FFFCCF8093C60060 +:101B90003196F5CF8091C00085FFFCCF8AE080931D +:101BA000C60022E030E080EF96E00E940C5E2091BB +:101BB000BC0F3091BD0F4091BE0F5091BF0F60918F +:101BC000B40F7091B50F8091B60F9091B70F0F942D +:101BD0000BC36B017C012091C00F3091C10F40916C +:101BE000C20F5091C30F6091B80F7091B90F8091DF +:101BF000BA0F9091BB0F0F940BC39B01AC01C701AF +:101C0000B6010F941ABFE6E2F7E82491222341F0CF +:101C10003091C00035FFFCCF2093C6003196F5CF40 +:101C20002091C00025FFFCCF2AE02093C600AB0125 +:101C3000BC017F7722E030E080EF96E00E940C5EEE +:101C4000EDEFF6E88491882341F09091C00095FF74 +:101C5000FCCF8093C6003196F5CF8091C00085FF00 +:101C6000FCCF8AE08093C6000E944FF2EA81E43103 +:101C70000CF458C088EB9BE00E94007786E4E82EC5 +:101C80008EE8F82E0E940868F70185919591A5913C +:101C9000B4918093200A9093210AA093220AB093D2 +:101CA000230AF701349685919591A591B49180937B +:101CB000240A9093250AA093260AB093270A20E0CD +:101CC00030E040E752E46091490270914A0280910D +:101CD0004B0290914C020F9411C00E94C0D588EB2A +:101CE0009BE00E940077F8E0EF0EF11C2EE8E21670 +:101CF0002EE8F20609F0C6CF15C08E3F3FEF9307DE +:101D000029F4AB85BC858C91823049F0B3E02B1669 +:101D1000310441F038862F82FDC88FEF01C08EEF6D +:101D20009FEF01C0C80166960FB6F894DEBF0FBEE4 +:101D3000CDBFDF91CF911F910F91FF90EF90DF907A +:101D4000CF90BF90AF909F908F907F906F905F905B +:101D50004F903F902F9008950F931F93CF93DF9351 +:101D60000E94086808E21AE080E090E0A0EAB0E48F +:101D7000F80180839183A283B383C1E5D2E020E0A0 +:101D800030E040E752E4688179818A819B810F9439 +:101D900011C00E94C0D58DEC9CECACE4BEE38093F6 +:101DA000200A9093210AA093220AB093230A80E08C +:101DB00090E0A0E0B0EC8093240A9093250AA093D1 +:101DC000260AB093270A64E27AE080E29AE00E9451 +:101DD000A16120E030E040E752E460914902709157 +:101DE0004A0280914B0290914C020F9411C00E94C4 +:101DF000C0D58AE999E9A9E1BEE3F801808391831E +:101E0000A283B38320E030E040E752E46881798127 +:101E10008A819B810F9411C0DF91CF911F910F9107 +:101E20000C94C0D52F923F924F925F926F927F9207 +:101E30008F929F92AF92BF92CF92DF92EF92FF92DA +:101E40000F931F93CF93DF9300D0CDB7DEB780E021 +:101E50000F947C358A8380E00F9482358B830E94B7 +:101E60000868E091530AF0E0EE0FFF1FED59F048CB +:101E700085919491BE016F5F7F4F0F9401658981B9 +:101E8000843010F083E0898341E050E0698180E094 +:101E90000F943D61E091530AF0E0EE0FFF1FEB5A03 +:101EA000F048859194910F94BE7880E090E0A0EA8C +:101EB000B0E48093280A9093290AA0932A0AB09349 +:101EC0002B0A20E030E040E752E46091510270912B +:101ED000520280915302909154020F9411C00E94BB +:101EE000C0D5E6E4FEE885919591A591B4918093E3 +:101EF000200A9093210AA093220AB093230AEAE4CD +:101F0000FEE885919591A591B4918093240A9093D0 +:101F1000250AA093260AB093270A64E27AE080E2B9 +:101F20009AE00E94A16120E030E040E752E4609135 +:101F3000490270914A0280914B0290914C020F9499 +:101F400011C00E94C0D580E1E0E2FAE0ABEEB9E05A +:101F500001900D928A95E1F781E00F947C3582E043 +:101F600090E00E94CD6780E00F947C3520E030E067 +:101F700043E060E070E080E291EC0E94DEF280914C +:101F8000280A9091290AA0912A0AB0912B0A8093DD +:101F9000940F9093950FA093960FB093970F0EE424 +:101FA000E02E0EE8F02E02E010E0412C512C80EAE9 +:101FB000682E80E4782E92E0892E27E0922E0E94EF +:101FC00008684092280A5092290A60922A0A709260 +:101FD0002B0A20E030E040E752E46091510270911A +:101FE000520280915302909154020F9411C00E94AA +:101FF000C0D5F70185919591A591B4918093200A60 +:102000009093210AA093220AB093230AF7013496F1 +:1020100085919591A591B4918093240A9093250A76 +:10202000A093260AB093270A64E27AE080E29AE05D +:102030000E94A16120E030E040E752E46091490253 +:1020400070914A0280914B0290914C020F9411C002 +:102050000E94C0D5A801698180E00F943D61E091A4 +:10206000530AF0E0EE0FFF1FEB5AF0488591949170 +:102070000F94BE7820E030E043E060E070E080E262 +:1020800091EC0E94DEF28FEF800F63E00F94C8C4E2 +:1020900080FF03C0282D291B922F392D282F2303C1 +:1020A000F0011124E90FF11D97FDFA95EE0FFF1FC6 +:1020B000EE0FFF1FED56F04F4091280A5091290A6C +:1020C00060912A0A70912B0A41835283638374833F +:1020D00038E0E30EF11C0F5F1F4F0A30110509F0C5 +:1020E0006ECF8090940F9090950F6090960F7090A7 +:1020F000970FE3E9EE2EEFE0FE2E1501260100E03A +:1021000010E0F701E00FF11FA180B280C380D480FE +:102110009501A601B401C3010F940AC087FD02C056 +:10212000450136019501A601B101C2010F940AC013 +:1021300087FF02C0510162010C5F1F4F0C30110577 +:1021400019F015012601DDCF8CE1E80EF11C27EE18 +:10215000E2162FE0F20689F69401A301B501C6014B +:102160000F9419BF20E030E040E450E40F9439C2EE +:10217000181654F063E9C62E6FE0D62EA12C75EC2C +:10218000E72E7FE0F72E16C0EFE4F3E88491882372 +:1021900041F09091C00095FFFCCF8093C60031962E +:1021A000F5CF8091C00085FFFCCF8AE08093C60008 +:1021B00080E049C000E010E0B12CB11002C0AA20BC +:1021C00039F12091940F3091950F4091960F5091D5 +:1021D000970FF601E00FF11F618172818381948175 +:1021E0000F9419BF20E030E048EC52E40F940BC389 +:1021F00020E030E040E05FE30F941ABF0F94E7C0A7 +:102200000F9479C0C7010F9489CB32E0E30EF11C23 +:10221000B3940C5F1F4F83E0B812CFCFA3942CE18F +:10222000C20ED11CA812C6CF83E99FE00F94D71924 +:1022300081E08093930F90DD8A810F947C358B81B0 +:102240000F94823581E00F900F900F90DF91CF9126 +:102250001F910F91FF90EF90DF90CF90BF90AF90C4 +:102260009F908F907F906F905F904F903F902F90B6 +:1022700008952F923F924F925F926F927F928F922A +:102280009F92AF92BF92CF92DF92EF92FF920F9305 +:102290001F93CF93DF93CDB7DEB765970FB6F89452 +:1022A000DEBF0FBECDBF8B8B6A872A010E940868F4 +:1022B000D2011C9284ECE4E9FFE0DF011D928A95D3 +:1022C000E9F7BA85BA30A4F0EFEFF4E884918823F7 +:1022D00041F09091C00095FFFCCF8093C6003196ED +:1022E000F5CF8091C00085FFFCCF8AE08093C600C7 +:1022F0000E9433F08091820F9091830FA091840F00 +:10230000B091850F8093DC0F9093DD0FA093DE0FCB +:10231000B093DF0F80918A0F90918B0FA0918C0F5B +:10232000B0918D0F8093E00F9093E10FA093E20F97 +:10233000B093E30F8091860F9091870FA091880F43 +:10234000B091890F8093E40F9093E50FA093E60F6F +:10235000B093E70F80918E0F90918F0FA091900F07 +:10236000B091910F8093E80F9093E90FA093EA0F3B +:10237000B093EB0F80916A0F90916B0FA0916C0F4F +:10238000B0916D0F8093EC0F9093ED0FA093EE0F33 +:10239000B093EF0F80916E0F90916F0FA091700F1F +:1023A000B091710F8093F00F9093F10FA093F20F03 +:1023B000B093F30F0E94A5EF80E00F947C35898BDA +:1023C00080E00F9482358A8BE091530AF0E0EE0FA3 +:1023D000FF1FE15FFF4785919491BE01675F7F4FCB +:1023E0000F9401658985843010F083E08987E4E9E2 +:1023F000FFE0FC87EB8706E4602E0EE8702E212CB0 +:10240000312C2A85332727FD30953D8B2C8B0E945C +:102410000868A1014F5F5F4F588B4F87698580E047 +:102420000F943D61E091530AF0E0EE0FFF1FEF5F64 +:10243000FF47859194910F94BE7880E090E0A0EAE8 +:10244000B0E48093280A9093290AA0932A0AB093B3 +:102450002B0A80E00F947C3580E00F94823520E0D9 +:1024600030E040E752E46091510270915202809155 +:102470005302909154020F9411C00E94C0D59A85C6 +:1024800094310CF464C01092240A1092250A109220 +:10249000260A1092270A20E030E040E752E46091DB +:1024A000490270914A0280914B0290914C020F9424 +:1024B00011C00E94C0D5E9EFF4E88491882341F06F +:1024C0009091C00095FFFCCF8093C6003196F5CF68 +:1024D0008091C00085FFFCCF8AE08093C60088E829 +:1024E00093E10E9400772DEC3CEC4CE050EC209303 +:1024F000240A3093250A4093260A5093270A20E0A5 +:1025000030E040E752E46091490270914A028091C4 +:102510004B0290914C020F9411C00E94C0D5ECEE7A +:10252000F4E88491882341F09091C00095FFFCCF9E +:102530008093C6003196F5CF8091C00085FFFCCF17 +:102540008AE08093C60088E893E10E940077F30157 +:10255000659175918591949183010C5F1F4FF801EE +:1025600085909590A590B4902091DC0F3091DD0F6F +:102570004091DE0F5091DF0F0F940BC36B017C0174 +:102580002091E40F3091E50F4091E60F5091E70F55 +:10259000C501B4010F940BC39B01AC01C701B60187 +:1025A0000F941ABF2091EC0F3091ED0F4091EE0F78 +:1025B0005091EF0F0F941ABF6093200A7093210A75 +:1025C0008093220A9093230AF30165917591859176 +:1025D0009491F80185909590A590B4902091E00F8A +:1025E0003091E10F4091E20F5091E30F0F940BC334 +:1025F0006B017C012091E80F3091E90F4091EA0FC7 +:102600005091EB0FC501B4010F940BC39B01AC01BA +:10261000C701B6010F941ABF2091F00F3091F10F4E +:102620004091F20F5091F30F0F941ABF6093240A58 +:102630007093250A8093260A9093270A2DEC3CEC90 +:102640004CE050EC0F940AC087FF44C08DEC9CEC2A +:10265000ACE0B0EC8093240A9093250AA093260A5C +:10266000B093270A9A859431ACF1E9EDF4E88491AE +:10267000882341F09091C00095FFFCCF8093C60065 +:102680003196F5CF4AE050E0B10180EF96E00E942C +:10269000185DE8EAF4E88491882341F09091C00045 +:1026A00095FFFCCF8093C6003196F5CFE7EAF4E8BA +:1026B0008491882341F09091C00095FFFCCF8093D6 +:1026C000C6003196F5CF8091C00085FFFCCF8AE02F +:1026D0008093C60020E030E040E752E46091490278 +:1026E00070914A0280914B0290914C020F9411C05C +:1026F0000E94C0D5AA85AA3024F088EB9BE00E94F6 +:10270000007720E030E043E060E070E080E291ECB0 +:102710000E94DEF2BA85BA3024F088EB9BE00E947A +:1027200000772DEC3CEC4CEC5CE36091280A709156 +:10273000290A80912A0A90912B0A0F9419BF60935D +:10274000280A7093290A80932A0A90932B0A10E092 +:1027500003E0EAE0EE2EFEE58F2EF4E89F2EA6E4DD +:10276000AA2EA4E8BA2EB5E4CB2EB4E8DB2EEA8577 +:10277000E5310CF459C0E2E9F4E88491882341F092 +:102780009091C00095FFFCCF8093C6003196F5CFA5 +:102790004AE050E0B10180EF96E00E94185DE5E864 +:1027A000F4E88491882341F09091C00095FFFCCF1C +:1027B0008093C6003196F5CF4AE050E0612F77272D +:1027C00067FD709580EF96E00E94185DE1E8F4E8FF +:1027D0008491882341F09091C00095FFFCCF8093B5 +:1027E000C6003196F5CF4091280A5091290A609190 +:1027F0002A0A70912B0A25E030E080EF96E00E94D3 +:102800000B5EE0E8F4E88491882341F09091C000E9 +:1028100095FFFCCF8093C6003196F5CF8091C00024 +:1028200085FFFCCFE092C600F2E0F2152CF08C8917 +:102830009D890E945AFF0DC02B89222341F021302F +:1028400009F057C06A8580E00E946CFB02C00E94BC +:1028500013F9882309F44DC0143064F12091200A43 +:102860003091210A4091220A5091230AAB85BC8500 +:102870006D917D918D919C910F941ABFEB85FC8594 +:1028800060837183828393832091240A3091250A87 +:102890004091260A5091270A64817581868197812B +:1028A0000F941ABFAB85BC8514966D937D938D9361 +:1028B0009C9317972DEC3CEC4CE050EC6091240A73 +:1028C0007091250A8091260A9091270A0F940AC0D8 +:1028D00087FF0CC02DEC3CEC4CE050EC2093240A1C +:1028E0003093250A4093260A5093270A1F5FF02E43 +:1028F0008FC0FF24FA94F00E002309F407C42DECD6 +:102900003CEC4CE45DE36091280A7091290A8091C7 +:102910002A0A90912B0A0F9419BF6093280A70938A +:10292000290A80932A0A90932B0A80E00F947C3521 +:1029300080E00F9482356091510270915202809133 +:102940005302909154020E94C0D53A8535300CF460 +:102950005FC0EBE6F4E88491882341F09091C000D9 +:1029600095FFFCCF8093C6003196F5CF4AE050E04A +:10297000B10180EF96E00E94185DF4018491EEE5CC +:10298000F4E8882349F09091C00095FFFCCF809334 +:10299000C60031968491F5CF4AE050E0612F772749 +:1029A00067FD709580EF96E00E94185DF5018491B7 +:1029B000E6E4F4E8882349F09091C00095FFFCCF4D +:1029C0008093C60031968491F5CF4091280A5091AA +:1029D000290A60912A0A70912B0A25E030E080EFE5 +:1029E00096E00E940B5EF6018491E5E4F4E888230A +:1029F00049F09091C00095FFFCCF8093C6003196BE +:102A00008491F5CF8091C00085FFFCCFE092C60095 +:102A1000183014F40F2DABCEFA85FA3024F088EB81 +:102A20009BE00E94007728E0620E711C4B855C855C +:102A3000485F5F4F5C874B878F8598898930910508 +:102A400011F01C01E4CC0E94086804E91FE020E0BA +:102A500030E040E85EE3D8016D917D918D919C91CD +:102A60000F940BC3F80161937193819391938F013C +:102A7000FFE00C3D1F0759F780E00F947C3580E0A4 +:102A80000F9482352A852530ACF42DEC3CEC4CE2D9 +:102A900050EC6091980F7091990F80919A0F9091DE +:102AA0009B0F0F940AC087FFCAC0D2018C9181602E +:102AB0008C93C5C080E090E0A0EAB0E48093280A3F +:102AC0009093290AA0932A0AB0932B0A24E9E22EB4 +:102AD0002FE0F22E00E010E03BE2632E34E8732E8C +:102AE00048E2C42E44E8D42E55E2A52E54E8B52E73 +:102AF00064E2862E64E8962E7AE0372E0E940868FB +:102B0000F70180819181A281B3818093200A909303 +:102B1000210AA093220AB093230A84819581A68179 +:102B2000B7818093240A9093250AA093260AB09334 +:102B3000270AFA85FA30A4F020E030E040E752E4BA +:102B40006091490270914A0280914B0290914C022F +:102B50000F9411C00E94C0D588EB9BE00E940077C3 +:102B6000F3018491EBE2F4E8882349F09091C000EE +:102B700095FFFCCF8093C60031968491F5CF4AE053 +:102B800050E0B80180EF96E00E94185DF601849154 +:102B9000E8E2F4E8882349F09091C00095FFFCCF6B +:102BA0008093C60031968491F5CF4091200A5091D0 +:102BB000210A6091220A7091230A25E030E080EF1B +:102BC00096E00E940B5EF5018491E5E2F4E888232B +:102BD00049F09091C00095FFFCCF8093C6003196DC +:102BE0008491F5CF4091240A5091250A6091260ADC +:102BF0007091270A25E030E080EF96E00E940B5E9E +:102C0000F4018491E4E2F4E8882349F09091C00053 +:102C100095FFFCCF8093C60031968491F5CF8091CB +:102C2000C00085FFFCCF3092C6000F5F1F4FF8E059 +:102C3000EF0EF11C0930110509F060CF26CF2DEC05 +:102C40003CEC4CE250EC6091A00F7091A10F809190 +:102C5000A20F9091A30F0F940AC087FF04C0F20146 +:102C60008081826080832DEC3CEC4CE250EC6091E2 +:102C7000A80F7091A90F8091AA0F9091AB0F0F949C +:102C80000AC087FF04C0D2018C9184608C93CA84EF +:102C90009CEEE92E9FE0F92E04EE1FE02CED3FE0C4 +:102CA00046E45EE869E084E99FE00E94E2D71C0107 +:102CB00097FF15C0E1EFF3E88491882341F09091EC +:102CC000C00095FFFCCF8093C6003196F5CF809170 +:102CD000C00085FFFCCF8AE08093C6001AC2B5E32E +:102CE0006B2EBAE07B2E16E4E12E1EE8F12E00E0FA +:102CF00010E08AE0D82EF701659175918591949145 +:102D0000F701349625913591459154912B873C8755 +:102D10004D875E872091E00F3091E10F4091E20FE7 +:102D20005091E30F0F940BC34B015C012091E80F0E +:102D30003091E90F4091EA0F5091EB0F6B857C8544 +:102D40008D859E850F940BC39B01AC01C501B40119 +:102D50000F941ABF2091F00F3091F10F4091F20FB4 +:102D60005091F30F0F941ABF4B015C01C02E2DEC54 +:102D70003CEC4CE250E40F941ABFD3016D937D9369 +:102D80008D939C931397BA85B4310CF466C0E0EF31 +:102D9000F3E88491882341F09091C00095FFFCCF27 +:102DA0008093C6003196F5CF8091C00085FFFCCF9F +:102DB000D092C600EDEDF3E88491882341F0909124 +:102DC000C00095FFFCCF8093C6003196F5CFD301AC +:102DD0004D915D916D917C9122E030E080EF96E025 +:102DE0000E940B5EECEDF3E88491882341F0909112 +:102DF000C00095FFFCCF8093C6003196F5CF80913F +:102E0000C00085FFFCCFD092C600E9EDF3E88491C5 +:102E1000882341F09091C00095FFFCCF8093C600BD +:102E20003196F5CF22E030E0B501A40180EF96E0C5 +:102E30000E940B5EE8EDF3E88491882341F09091C5 +:102E4000C00095FFFCCF8093C6003196F5CF8091EE +:102E5000C00085FFFCCFD092C6002DEC3CEC4CE2CC +:102E600050ECC501B4010F940AC087FF0BC081E08C +:102E700090E00C2C01C0880F0A94EAF7D2019C91D3 +:102E8000982B9C930F5F1F4FB8E0EB0EF11CE4E012 +:102E90006E0E711C0330110509F02DCF4CEE5FE072 +:102EA00064EE7FE08CED9FE00E9425D44091EC0F12 +:102EB0005091ED0F6091EE0F7091EF0F85EE9FE056 +:102EC0000F9481CB4091F00F5091F10F6091F20F70 +:102ED0007091F30F89EE9FE00F9481CB4091DC0F4E +:102EE0005091DD0F6091DE0F7091DF0F8DED9FE04F +:102EF0000F9481CB4091E00F5091E10F6091E20F70 +:102F00007091E30F81EE9FE00F9481CB4091E40F2D +:102F10005091E50F6091E60F7091E70F85ED9FE00E +:102F20000F9481CB4091E80F5091E90F6091EA0F27 +:102F30007091EB0F89ED9FE00F9481CB0E944FF2CF +:102F400080E00F947C3580E00F948235FA85F5306F +:102F500074F40F94120F882309F4DBC089890F944D +:102F60007C358A890F9482350E940868F8C088EB06 +:102F70009BE00E94007780E090E0A0EAB0E48093BC +:102F8000280A9093290AA0932A0AB0932B0A56E4A0 +:102F9000E52E5EE8F52E00E010E06CEB662E63E8AF +:102FA000762E79EBC72E73E8D72EE6EBAE2EE3E84C +:102FB000BE2EF5EB8F2EF3E89F2EAAE05A2E0E942C +:102FC0000868F70185919591A591B4918093200AA5 +:102FD0009093210AA093220AB093230AF701349612 +:102FE00085919591A591B4918093240A9093250A97 +:102FF000A093260AB093270A2A852A30A4F020E05D +:1030000030E040E752E46091490270914A028091B9 +:103010004B0290914C020F9411C00E94C0D588EBD6 +:103020009BE00E9400779E012F5F3F4FAE014B5FF8 +:103030005F4F64E27AE080E29AE00E94E760F30189 +:103040008491ECEBF3E8882349F09091C00095FF60 +:10305000FCCF8093C60031968491F5CF4AE050E0D2 +:10306000B80180EF96E00E94185DF6018491E9EBCB +:10307000F3E8882349F09091C00095FFFCCF80933E +:10308000C60031968491F5CF4D815E816F81788540 +:1030900025E030E080EF96E00E940B5EF501849120 +:1030A000E6EBF3E8882349F09091C00095FFFCCF50 +:1030B0008093C60031968491F5CF49815A816B8106 +:1030C0007C8125E030E080EF96E00E940B5EF40109 +:1030D0008491E5EBF3E8882349F09091C00095FFD7 +:1030E000FCCF8093C60031968491F5CF8091C000CB +:1030F00085FFFCCF5092C6000F5F1F4FF8E0EF0E28 +:10310000F11C0930110509F05ACF23CF22242A944B +:10311000322C0E94086880E090E0A0EAB0E480933E +:10312000280A9093290AA0932A0AB0932B0A20E038 +:1031300030E040E752E46091510270915202809178 +:103140005302909154020F9411C00E94C0D50E9466 +:103150004BEF89890F947C358A890F948235C101A0 +:1031600065960FB6F894DEBF0FBECDBFDF91CF914D +:103170001F910F91FF90EF90DF90CF90BF90AF9095 +:103180009F908F907F906F905F904F903F902F9087 +:10319000089587EF9FE00F945DCB863EF8F40E9480 +:1031A000807868E67FE088EF9FE00F94716160911E +:1031B000680F7091690F882777FD8095982F0F947D +:1031C000ACC0905820913616309137164091381681 +:1031D000509139160F9411C00C944DD608956091FA +:1031E000680F7091690F882777FD8095982F0F944D +:1031F000ACC0209136163091371640913816509158 +:1032000039160F9411C00E944DD61092690F10927A +:10321000680F08951092690F1092680F08952F9209 +:103220003F924F925F926F927F928F929F92AF9256 +:10323000BF92CF92DF92EF92FF920F931F93CF93A3 +:10324000DF93CDB7DEB728970FB6F894DEBF0FBE79 +:10325000CDBF89EE9FE00F9465CB69837A838B8322 +:103260009C8381EE9FE00F9465CB6B017C0185ED23 +:103270009FE00F9465CB4B015C0189ED9FE00F94BB +:1032800065CB2B013C01C501B4010F947EBF4B01FE +:103290005C01C701B6010F947EBF9B01AC01C50163 +:1032A000B40190580F9419BFDC01CB01BF77809314 +:1032B000310A9093320AA093330AB093340A26E479 +:1032C000222E2EE8322E05E31AE0F10125913591E8 +:1032D00045915491F101349685919591A591B491C0 +:1032E0008D839E83AF83B887C701B6010F940BC34C +:1032F0004B015C012D813E814F815885C301B20194 +:103300000F940BC39B01AC01C501B4010F941ABF0C +:1033100029813A814B815C810F941ABF2DEC3CECE2 +:103320004CE250E40F941ABFD8016D937D938D93B6 +:103330009D938D01B8E02B0E311CEEE52E16EEE8C4 +:103340003E0609F0C2CF28960FB6F894DEBF0FBE36 +:10335000CDBFDF91CF911F910F91FF90EF90DF9044 +:10336000CF90BF90AF909F908F907F906F905F9025 +:103370004F903F902F900895FC01108220E030E0A4 +:1033800040E050E0BC01620F731FFB01E40FF51F2A +:1033900011821282138214824C5F5F4F4C315105AF +:1033A000A1F7245E3F4F243C310551F708952F9239 +:1033B0003F924F925F926F927F928F929F92AF92C5 +:1033C000BF92CF92DF92EF92FF920F931F93CF9312 +:1033D000DF93CDB7DEB760970FB6F894DEBF0FBEB0 +:1033E000CDBF8B839D838B879C8703E010E0EB85AB +:1033F000FC8581859285A385B485818F928FA38F6B +:10340000B48F85819681A781B08585879687A787A8 +:10341000B08B22242394312CF3E02F16310409F4CD +:1034200091C0B101882777FD8095982F0F94ACC08B +:1034300025E535E547E052E40F940BC320E030E08A +:103440004CE052E40F941ABF6B017C0120E030E89D +:1034500048E053E40F9419BF2B013C0120E030E019 +:103460004EE653E4C701B6010F9419BF4B015C014E +:1034700020E030E04CE052E4C701B6010F9419BFE0 +:103480006B017C019101220F331F220F331F8B85AB +:103490009C85280F391F3A832983FC0121813281C1 +:1034A00043815481C301B2010F940BC3A501940160 +:1034B0000F940BC320E039EF40EA56E40F9411C09B +:1034C0006F83788789879A87EB85FC852585368584 +:1034D00047855089C701B6010F940BC3A50194011C +:1034E0000F940BC320E039EF40E256EC0F9411C06B +:1034F0009B01AC016F81788589859A850F941ABFED +:103500004B015C01EB85FC85218D328D438D548D03 +:10351000C701B6010F940BC3A30192010F940BC313 +:1035200020E039EF40EA56E40F9411C09B01AC0152 +:10353000C501B4010F941ABFE981FA8161837283D6 +:1035400083839483FFEF2F1A3F0A26E0221631046B +:1035500009F062CF015011098B859C854C969C87A0 +:103560008B870115110509F042CF9B819F87ED8163 +:10357000E88B27E030E03A832983EF85F88981AD35 +:1035800092ADA3ADB4ADE755FF4FFC83EB838083D1 +:103590009183A283B383EF85F889858D968DA78D5E +:1035A000B0A1EB5AFF4FFE83ED8380839183A2830A +:1035B000B383212C312C01E010E00330110509F414 +:1035C0008DC0B801882777FD8095982F0F94ACC0E7 +:1035D0002BEA3AEA42E052E40F940BC320E030E0D9 +:1035E00040EC50E40F941ABF6B017C0120E030E006 +:1035F00040ED52E40F9419BF2B013C0120E030E074 +:103600004AE453E4C701B6010F9419BF4B015C01B2 +:1036100020E030E040EC50E4C701B6010F9419BF40 +:103620006B017C012F853889220D331D38872F834C +:10363000EF85F8892181328143815481C301B20130 +:103640000F940BC3A50194010F940BC320E030E14C +:1036500046E956E40F9411C06B877C878D879E875F +:10366000ED81FE812081318142815381C701B60104 +:103670000F940BC3A50194010F940BC320E030E11C +:1036800046E156EC0F9411C09B01AC016B857C8523 +:103690008D859E850F941ABF4B015C01EB81FC81E7 +:1036A0002081318142815381C701B6010F940BC340 +:1036B000A30192010F940BC320E030E146E956E4E8 +:1036C0000F9411C09B01AC01C501B4010F941ABF46 +:1036D000EF81F885658F768F878F90A30F5F1F4FDF +:1036E000FCE12F0E311C0630110509F066CF29814F +:1036F0003A81215031093A8329838F85988904962C +:10370000988B8F87232B09F038CF60960FB6F894EB +:10371000DEBF0FBECDBFDF91CF911F910F91FF9004 +:10372000EF90DF90CF90BF90AF909F908F907F9061 +:103730006F905F904F903F902F90089583E99FE0A6 +:103740001BCE2F923F924F925F926F927F928F92F9 +:103750009F92AF92BF92CF92DF92EF92FF920F9320 +:103760001F93CF93DF93CDB7DEB7C155D1090FB605 +:10377000F894DEBF0FBECDBF1C0178A36F8F4A0146 +:103780002DAB0FAB2A96EFAE2A972E96ACAEBDAE00 +:10379000CEAEDFAE2E9734E0239F50011124FC0102 +:1037A000EA0DFB1D80819181A281B3818F8B988F5F +:1037B000A98FBA8FDA01AA0DBB1DBEAFADAF4D9078 +:1037C0005D906D907C90A30192016F89788D898DB9 +:1037D0009A8D0F941ABF23966CAF7DAF8EAF9FAFBB +:1037E0002397B4E00B9F80011124F101E00FF11F3A +:1037F000208131814281538129A33AA34BA35CA349 +:10380000A401400F511F25965FAF4EAF2597DA01F7 +:10381000CD90DD90ED90FC90A701960169A17AA171 +:103820008BA19CA10F941ABF29966CAF7DAF8EAF70 +:103830009FAF29972A96EFAD2A97B4E0EB9FC0017E +:103840001124F101E80FF91F208131814281538158 +:103850002B8F3C8F4D8F5E8FEF8DF8A1E80FF91FF6 +:1038600060817181828193810F9419BF6DA37EA3C2 +:103870008FA398A7AF8DB8A11C968D919D910D90A7 +:10388000BC91A02D62968CAF9DAFAEAFBFAF6297DB +:10389000D1011C962D913D914D915C911F9729A7C7 +:1038A0003AA74BA75CA777FA709477F87094A701B2 +:1038B000960150582B8B3C8B4D8B5E8BEF8DF8A176 +:1038C000EA0DFB1D80819181A281B3818DA79EA706 +:1038D000AFA7B8AB23962CAD3DAD4EAD5FAD2397F2 +:1038E000BC01CD010F9419BF6B017C01EF8DF8A1D4 +:1038F000E00FF11F208131814281538129AB3AAB26 +:103900004BAB5CAB29962CAD3DAD4EAD5FAD299771 +:1039100069A97AA98BA99CA90F9419BF4B015C01D5 +:10392000A7019601C301B2010F940BC369AF7AAF2F +:103930008BAF9CAFA50194016B897C898D899E8991 +:103940000F940BC39B01AC0169AD7AAD8BAD9CADFF +:103950000F941ABF69AF7AAF8BAF9CAFA5019401EA +:10396000C301B2010F940BC34B015C01A701960187 +:103970006B897C898D899E890F940BC39B01AC0157 +:10398000C501B4010F9419BF29AD3AAD4BAD5CAD83 +:103990000F94A4BF6B017C0120E030E0A9010F94DB +:1039A0000AC087FF0AC02BED3FE049EC50E4C70195 +:1039B000B6010F941ABF6B017C01AC968FADAC972A +:1039C000882351F02BED3FE049EC50E4C701B601EC +:1039D0000F9419BF6B017C012DA53EA54FA558A9D9 +:1039E0006F89788D898D9A8D0F940AC081111FC0BF +:1039F00029A93AA94BA95CA969A17AA18BA19CA18B +:103A00000F940AC0811113C020E030E0A901C70162 +:103A1000B6010F940AC081110AC02BED3FE049ECBA +:103A200050E4C701B6010F941ABF6B017C01AB963D +:103A30002CAD3DAD4EAD5FADAB97C701B6010F9458 +:103A40000BC32DA13EA14FA158A55F770F9446C28D +:103A50004B015C012FE632E143E85AE30F940AC0C0 +:103A600087FDD6C1C501B4010F94E7C00F947EC095 +:103A70007AA369A36115710521F481E090E09AA30E +:103A800089A3A9A1BAA1BD0180E090E00F94AAC0CA +:103A90004B015C019B01AC01C701B6010F9411C041 +:103AA0006F8B788F898F9A8FA50194016DA17EA16C +:103AB0008FA198A50F9411C06DA77EA78FA798AB73 +:103AC00029A53AA54BA55CA562966CAD7DAD8EADE2 +:103AD0009FAD62970F9419BFA50194010F9411C077 +:103AE00069AB7AAB8BAB9CAB20E030E040E05FE3AE +:103AF0006F89788D898D9A8D0F940BC32F89388D9E +:103B0000498D5A8D0F940BC39B01AC0160E070E0AE +:103B100080E89FE30F9419BF6DA37EA38FA398A79E +:103B2000CE010196FC012A962FAD2A97B4E02B9F77 +:103B3000E00DF11D11242B8D3C8D4D8D5E8D20836C +:103B400031834283538329A53AA54BA55CA52D87D4 +:103B50003E874F87588B1B8E22242394312CAC0137 +:103B60009DA984E0989F400D511D11245EAB4DAB83 +:103B7000A1E0B0E0AC0FBD1F3FA924E0329FA00D33 +:103B8000B11D1124B8AFAFABFAA7E9A7AE014459F4 +:103B90005F4F5A8B498BE9A1FAA12E163F0608F018 +:103BA00012C15B8D59310CF040C02DA13EA14FA137 +:103BB00058A56B897C898D899E890F940BC36B01F5 +:103BC0007C012F89388D498D5A8DC301B2010F9424 +:103BD0000BC3A70196010F941ABF7B018C012DA185 +:103BE0003EA14FA158A5C301B2010F940BC34B01D5 +:103BF0005C012F89388D498D5A8D6B897C898D891F +:103C00009E890F940BC39B01AC01C501B4010F94B5 +:103C100019BF2B013C018B8D8F5F8B8FA701B801E2 +:103C20004B8B5C8B6D8B7E8B66C0B10180E090E02E +:103C30000F94AAC02F89388D498D5A8D0F940BC3CC +:103C40006B017C010F940EC06B8B7C8B8D8B9E8BDC +:103C5000C701B6010F94BAC34B015C01ADADBEAD57 +:103C6000CD90DD90ED90FC90F7FAF094F7F8F09499 +:103C70002596AEADBFAD25972D913D914D915C91AF +:103C80002B8F3C8F4D8F5E8F2B893C894D895E89B0 +:103C9000C701B6010F940BC32B013C01A501940190 +:103CA0006B8D7C8D8D8D9E8D0F940BC39B01AC0114 +:103CB000C301B2010F941ABF2B013C01A50194016D +:103CC000C701B6010F940BC36B017C012B893C89A2 +:103CD0004D895E896B8D7C8D8D8D9E8D0F940BC370 +:103CE0009B01AC01C701B6010F9419BF6B8B7C8B94 +:103CF0008D8B9E8B1B8EA301920123966CAD7DADA7 +:103D00008EAD9FAD23970F941ABFEDA9FEA96083D6 +:103D10007183828393832B893C894D895E8929969F +:103D20006CAD7DAD8EAD9FAD29970F941ABFAFA935 +:103D3000B8AD6D937D938D939C9313972DA53EA560 +:103D40004FA558A9E9A5FAA5608171818281938167 +:103D50000F941ABFA9A5BAA56D937D938D939C93DB +:103D6000139729A93AA94BA95CA96D857E858F85F2 +:103D700098890F941ABF6D877E878F87988BCE01A5 +:103D800001960E94E369E984FA840B851C852D81E4 +:103D90003E814F81588569817A818B819C81BA8966 +:103DA000BF93E989EF932E968CAC9DACAEACBFACC3 +:103DB0002E97DE011D966D0138D7BFEF2B1A3B0AF7 +:103DC0000F900F90E8CECF8CD8A0FCE0CF0ED11C86 +:103DD000AF8DB8A11896ED90FD900D911C911B9799 +:103DE00014962D913D914D915C9117976D917D9118 +:103DF0008D919C91FE01E459FF4FFF93EF932E9616 +:103E00008CAC9DACAEACBFAC2E970FD70F900F9083 +:103E1000CF5ADF4F0FB6F894DEBF0FBECDBFDF9194 +:103E2000CF911F910F91FF90EF90DF90CF90BF90B7 +:103E3000AF909F908F907F906F905F904F903F904A +:103E40002F9008952F923F924F925F926F927F92A0 +:103E50008F929F92AF92BF92CF92DF92EF92FF929A +:103E60000F931F93CF93DF93CDB7DEB760970FB655 +:103E7000F894DEBF0FBECDBF1C012A013B014801F3 +:103E8000590120E030E04CE052E4C301B2010F944C +:103E900019BF25E535E547E052E40F9411C06B01E9 +:103EA0007C010F94E7C00F9479C08B0177FF12C09B +:103EB00020E030E040E85FE3C701B6010F9439C26B +:103EC00018160CF05DC0C12CD12C70E8E72E7FE3F2 +:103ED000F72E56C066307105DCF02AEA3AE24CE46F +:103EE00053E4C301B2010F9419BF25E535E547E05E +:103EF00052E40F9411C06B017C0120E030E0A90175 +:103F00000F940AC087FF3FC0C12CD12C76013BC063 +:103F1000882777FD8095982F0F94ACC025E535E56F +:103F200047E052E40F940BC320E030E04CE052E451 +:103F30000F941ABF9B01AC01C301B2010F9419BFCA +:103F400025E535E547E052E40F9411C06B017C0193 +:103F500020E030E0A9010F940AC087FD17C020E0DF +:103F600030E040E85FE3C701B6010F9439C218168C +:103F700084F4C12CD12C60E8E62E6FE3F62E09C044 +:103F800000E010E006C005E010E003C0C12CD12C19 +:103F9000760120E030E040EC50E4C501B4010F941C +:103FA00019BF2BEA3AEA42E052E40F9411C02B0108 +:103FB0003C010F94E7C00F9479C0788B6F8777FF2F +:103FC00012C020E030E040E85FE3C301B2010F948B +:103FD00039C218160CF05FC0412C512C50E8652EE8 +:103FE0005FE3752E58C0AF85B8891697E4F026E5D3 +:103FF00035E549E253E4C501B4010F9419BF2BEA3A +:104000003AEA42E052E40F9411C02B013C0120E057 +:1040100030E0A9010F940AC087FD40C0E5E0F0E060 +:10402000F88BEF8746C0882777FD8095982F0F94EF +:10403000ACC02BEA3AEA42E052E40F940BC320E012 +:1040400030E040EC50E40F941ABF9B01AC01C50175 +:10405000B4010F9419BF2BEA3AEA42E052E40F94FC +:1040600011C02B013C0120E030E0A9010F940AC0EF +:1040700087FD1CC020E030E040E85FE3C301B201EF +:104080000F9439C21816ACF4412C512C40E8642E20 +:104090004FE3742E0EC0188A1F860BC0412C512C82 +:1040A000320125E030E0388B2F8703C0412C512CA2 +:1040B0003201A701960160E070E080E89FE30F9471 +:1040C00019BF69837A838B839C83C80101969E8381 +:1040D0008D83AF85B8891196BA87A987A30192010C +:1040E00060E070E080E89FE30F9419BF6B877C87E6 +:1040F0008D879E8747E02F853889429FF001439F37 +:10410000F00D1124F887EF83E00FF11FEE0FFF1F72 +:10411000EE0FFF1FE20DF31D218132814381548197 +:1041200069817A818B819C810F940BC34B015C0167 +:10413000EF81F8858D819E81E80FF91FEE0FFF1F3B +:10414000EE0FFF1FE20DF31D218132814381548167 +:10415000C701B6010F940BC39B01AC01C501B401AB +:104160000F941ABF9B01AC016B857C858D859E8564 +:104170000F940BC34B015C0127E0E985FA852E9F64 +:10418000D0012F9FB00D1124B887AF83FD01E00F40 +:10419000F11FEE0FFF1FEE0FFF1FE20DF31D218138 +:1041A00032814381548169817A818B819C810F9412 +:1041B0000BC369837A838B839C83AF81B8858D81A0 +:1041C0009E81A80FB91FAA0FBB1FAA0FBB1FA20D6C +:1041D000B31D11962D913D914D915C911497C7019E +:1041E000B6010F940BC39B01AC0169817A818B816D +:1041F0009C810F941ABF9B01AC01C301B2010F94C3 +:104200000BC39B01AC01C501B4010F941ABF6096AA +:104210000FB6F894DEBF0FBECDBFDF91CF911F91D7 +:104220000F91FF90EF90DF90CF90BF90AF909F9055 +:104230008F907F906F905F904F903F902F90089558 +:104240002F923F924F925F926F927F928F929F92A6 +:10425000AF92BF92CF92DF92EF92FF920F931F9394 +:10426000CF93DF93CDB7DEB768970FB6F894DEBF74 +:104270000FBECDBF1C01CB01BA0128013901F101EC +:10428000E45BFF4FC080D180E280F380A7019601FC +:104290000F940BC30F94F7BF0F947EC04B015C01CA +:1042A000A7019601C301B2010F940BC30F94F7BF8E +:1042B0000F947EC008E780169104A104B10428F48D +:1042C000B8E78B2E912CA12CB12CD101D796CD9093 +:1042D000DD90ED90FC90DA9724013501C814D904E3 +:1042E000EA04FB0410F426013701683771058105E3 +:1042F000910520F468E770E080E090E069877A87B4 +:104300008B879C87C616D706E806F90620F4C9866F +:10431000DA86EB86FC8691012D5B3F4FD9018D91AA +:104320009D910D90BC91A02D89839A83AB83BC8312 +:10433000892B8A2B8B2B41F401E010E020E030E048 +:1043400009831A832B833C83A3019201C301B20129 +:104350000F94B9C46D877E878F87988BA7019601CC +:10436000C701B6010F94B9C44B015C0129853A8598 +:104370004B855C85CA01B9010F94B9C4698B7A8BEE +:104380008B8B9C8BE980FA800B811C81EE0CFF1CCF +:10439000001F111FED82FE820F831887C501B40133 +:1043A00061507109810991090D851E852F85388914 +:1043B000601B710B820B930BED80FE800F811885C3 +:1043C0006E0D7F1D801F911FA80197010F94FCC4E3 +:1043D00069017A01C501B40109891A892B893C89CF +:1043E000601B710B820B930B2D813E814F81588591 +:1043F0000F94FCC42C0D3D1D4E1D5F1DD101509628 +:104400008D909D90AD90BC905397281539054A0525 +:104410005B0548F4D501C401821B930BA40BB50BBB +:10442000AC01BD0194C029813A814B815C81E2E0FD +:10443000220F331F441F551FEA95D1F7D501C40140 +:1044400081709927AA27BB278D8B9E8BAF8BB88F46 +:104450008501740116950795F794E794E982FA822D +:104460000B831C83E988FA880B891C898D859E85BE +:10447000AF85B889E816F9060A071B0790F1BC0159 +:10448000CD0160957095809590956E0D7F1D801F74 +:10449000911F620F731F841F951FED88FE880F897F +:1044A000188DEF28E02AE12A41F0ED80FE800F818F +:1044B00018856E0D7F1D801F911F0F94FCC469012C +:1044C0007A0109811A812B813C81C00ED11EE21E26 +:1044D000F31E8C149D04AE04BF04B0F57501640195 +:1044E00033C06D857E858F859889E988FA880B8928 +:1044F0001C896E197F09800B910BED88FE880F894E +:10450000188DEF28E02AE12A41F0ED80FE800F812E +:1045100018856E0D7F1D801F911F0F94FCC4E980CC +:10452000FA800B811C812E0D3F1D401F511F8216EA +:104530009306A406B50610F4A50194017501640163 +:10454000C21AD30AE40AF50A40E050E0BA018FB774 +:10455000F894F101E55BFF4F9081911120C0D101EA +:104560005A96CD92DD92ED92FC925D97C40ED51EC7 +:10457000E61EF71EF101C68ED78EE0A2F1A2DB96F1 +:104580004D925D926D927C92DE97DF96E984FA847B +:104590000B851C85ED92FD920D931C9313978FBF95 +:1045A00068960FB6F894DEBF0FBECDBFDF91CF91F6 +:1045B0001F910F91FF90EF90DF90CF90BF90AF9041 +:1045C0009F908F907F906F905F904F903F902F9033 +:1045D00008952F923F924F925F926F927F928F92A7 +:1045E0009F92AF92BF92CF92DF92EF92FF920F9382 +:1045F0001F93CF93DF935C017090711080917210C4 +:1046000087198F70833008F486C0809172108111F1 +:1046100001C080E1815025E5829F800111240D5861 +:104620001F4E811101C080E1FF24FA94F80E85E548 +:10463000F89EE0011124CD58DF4EF71409F46DC047 +:104640009AA4CBA4DCA4EDA4292D3C2D4D2D5E2DE8 +:104650006EA17FA188A599A50F940AC0882309F4AB +:104660004CC0F80126A037A040A451A4A20191019A +:10467000692D7C2D8D2D9E2D0F940AC018169CF54A +:10468000A2019101C201B1010F940BC31B012C01C6 +:104690008AA99BA9ACA9BDA9BC01CD0190589B01D9 +:1046A000AC010F941ABF2EA53FA548A959A90F9494 +:1046B0000BC39B01AC01C201B1010F9419BF0F9450 +:1046C000C4C3662E872E8C01262F372FAC01692D8F +:1046D0007C2D8D2D9E2D0F940AC087FD04C0962C35 +:1046E000C82CD02EE12E892D9C2DAD2DBE2D8EA354 +:1046F0009FA3A8A7B9A7F1E0FEAB8F2DF11001C0D1 +:1047000080E1FF24FA94F80E25E5F29EC001112401 +:104710008E01EC0190CF823061F485E5789EE00156 +:104720001124CD58DF4E81E0870D803141F480E0C7 +:1047300006C0C0917210C11186C0C0E184C0782E3D +:1047400095E5899F40011124F401ED58FF4E4F017A +:1047500044244394CEA0DFA0E8A4F9A4F40156A019 +:1047600067A000A511A5252D362DA801C701B6010A +:104770000F940AC087FF40C0A7019601C701B60188 +:104780000F940BC36B017C018AA99BA9ACA9BDA99D +:10479000BC01CD0190589B01AC010F941ABF2EA50E +:1047A0003FA548A959A90F940BC39B01AC01C701B0 +:1047B000B6010F9419BF0F94C4C36B017C019B0118 +:1047C000AC01652D762DC8010F940AC087FF03C088 +:1047D000C52CD62C78019601A701652D762DC80130 +:1047E0000F940AC0882341F0C601D701F40186A3C3 +:1047F00097A3A0A7B1A746AAF40186A9811103C077 +:104800008EA9882361F0F40106A117A120A531A586 +:104810004EA15FA168A579A5CE0112DD1EAA81E097 +:10482000870D803109F480E0782EF5E58F9FC00177 +:1048300011248D589F4E20917210721609F479CF71 +:10484000E4014C0187CFC15025E5C202E0011124EB +:10485000CD58DF4EF50100811181228133814EA1B7 +:104860005FA168A579A5CE01EBDC1EAADF91CF91EF +:104870001F910F91FF90EF90DF90CF90BF90AF907E +:104880009F908F907F906F905F904F903F902F9070 +:104890000895109272101092711080E1EEEDF5E122 +:1048A000DF01982F1D929A95E9F7E9E5F0E1DF0124 +:1048B0001D928A95E9F71092CE151092CF1510929D +:1048C000D0151092D1151092D2151092D3151092C6 +:1048D000D4151092D5151092D6151092D7151092A6 +:1048E000D8151092D9151092DA151092DB15109286 +:1048F000DC151092DD151092CA151092CB1510928E +:10490000CC151092CD15089560910A0A90917110FE +:1049100080917210981781F08091711095E5899FB0 +:10492000F0011124E654FF4E6081909172108917B6 +:1049300019F08F5F8F70F9CF70E086E00D94F7B7B4 +:104940004F925F926F927F928F929F92AF92BF929F +:10495000CF92DF92EF92FF920F931F930F94403FFD +:1049600080E00F94163F6093DE157093DF158093FF +:10497000E0159093E11581E00F94163F6093E215E6 +:104980007093E3158093E4159093E51582E00F94FE +:10499000163F6093E6157093E7158093E8159093A2 +:1049A000E91583E00F94163F6093EA157093EB15B9 +:1049B0008093EC159093ED1580E00F94243F609365 +:1049C000200A7093210A8093220A9093230A81E09F +:1049D0000F94243F6093240A7093250A8093260A3B +:1049E0009093270A82E00F94243F6093280A7093E3 +:1049F000290A80932A0A90932B0A83E00F94243F7C +:104A000060932C0A70932D0A80932E0A90932F0A9C +:104A10008091930F882339F10091240A1091250A7F +:104A20002091260A3091270A4091200A5091210AAC +:104A30006091220A7091230A83E99FE003DA9B01C7 +:104A4000AC016091280A7091290A80912A0A9091FC +:104A50002B0A0F9419BF6093280A7093290A809338 +:104A60002A0A90932B0A1091920F112309F49AC0ED +:104A700010FF34C020916A0F30916B0F40916C0F82 +:104A800050916D0F6091200A7091210A8091220A45 +:104A90009091230A0F9419BF6093200A7093210A02 +:104AA0008093220A9093230A20916E0F30916F0F0A +:104AB0004091700F5091710F6091240A7091250AF6 +:104AC0008091260A9091270A0F9419BF6093240AB7 +:104AD0007093250A8093260A9093270A11FF62C0DB +:104AE0008090200A9090210AA090220AB090230A78 +:104AF000C090240AD090250AE090260AF090270A58 +:104B000020917A0F30917B0F40917C0F50917D0F57 +:104B1000C501B4010F940BC32B013C0120917E0F02 +:104B200030917F0F4091800F5091810FC701B601E6 +:104B30000F940BC39B01AC01C301B2010F941ABFC8 +:104B40002B013C012091720F3091730F4091740F33 +:104B50005091750FC501B4010F940BC34B015C015B +:104B60002091760F3091770F4091780F5091790F07 +:104B7000C701B6010F940BC39B01AC01C501B40181 +:104B80000F941ABF6093200A7093210A8093220A1F +:104B90009093230A4092240A5092250A6092260A92 +:104BA0007092270A80E1E0E2FAE0ABEEB9E0019012 +:104BB0000D928A95E1F71092CA151092CB151092BA +:104BC000CC151092CD151092CE151092CF151092D3 +:104BD000D0151092D1151092D2151092D3151092B3 +:104BE000D4151092D5151092D6151092D715109293 +:104BF000D8151092D9151092DA151092DB15109273 +:104C0000DC151092DD1581E0809358101F910F91F3 +:104C1000FF90EF90DF90CF90BF90AF909F908F90DC +:104C20007F906F905F904F9008952F923F924F9298 +:104C30005F926F927F928F929F92AF92BF92CF922C +:104C4000DF92EF92FF920F931F93CF93DF93CDB735 +:104C5000DEB7C158D1090FB6F894DEBF0FBECDBF85 +:104C60002A966FAF2A972B967FAF2B972C968FAFF4 +:104C70002C972D969FAF2D9729962CAF3DAF4EAF19 +:104C80005FAF2997E496ECAEFDAE0EAF1FAFE49791 +:104C9000E696DFAECEAEE6978BAA62969FAE62979F +:104CA000AFAE2296BFAE2297209172102F5F6E9604 +:104CB0002FAF6E97203119F46E961FAE6E9700914C +:104CC000711010E06E963FAD6E97832F992787FD88 +:104CD00090950817190729F01091920F111117C01C +:104CE000C2C0109258100F94224D80E00E94487666 +:104CF00080E00F94CB638091711090E08017910752 +:104D000091F38091581081110D94A632E5CF11FFD7 +:104D100070C02091820F3091830F4091840F509189 +:104D2000850F2A966FAD2A972B967FAD2B972C96E1 +:104D30008FAD2C972D969FAD2D970F940BC36B01C4 +:104D40007C012091860F3091870F4091880F509100 +:104D5000890F29966CAD7DAD8EAD9FAD29970F94CF +:104D60000BC39B01AC01C701B6010F941ABFD62E2D +:104D7000E72EF82E092F20918E0F30918F0F409142 +:104D8000900F5091910F29966CAD7DAD8EAD9FAD7A +:104D900029970F940BC34B015C0120918A0F30912E +:104DA0008B0F40918C0F50918D0F2A966FAD2A97E3 +:104DB0002B967FAD2B972C968FAD2C972D969FAD74 +:104DC0002D970F940BC3A50194010F941ABF299638 +:104DD0006CAF7DAF8EAF9FAF29972A96DFAE2A9733 +:104DE0002B96EFAE2B972C96FFAE2C972D960FAFF0 +:104DF0002D9710FF38C020916A0F30916B0F4091B2 +:104E00006C0F50916D0F2A966FAD2A972B967FAD40 +:104E10002B972C968FAD2C972D969FAD2D970F9499 +:104E20001ABF2A966FAF2A972B967FAF2B972C9697 +:104E30008FAF2C972D969FAF2D9720916E0F3091AD +:104E40006F0F4091700F5091710F29966CAD7DAD31 +:104E50008EAD9FAD29970F941ABF29966CAF7DAF89 +:104E60008EAF9FAF299720912E1630912F1640912B +:104E70003016509131162A966FAD2A972B967FAD3A +:104E80002B972C968FAD2C972D969FAD2D970F9429 +:104E90000BC30F94DBC2AC966CAF7DAF8EAF9FAFF0 +:104EA000AC972091321630913316409134165091C0 +:104EB000351629966CAD7DAD8EAD9FAD29970F94BB +:104EC0000BC30F94DBC2E0966CAF7DAF8EAF9FAF8C +:104ED000E0978091930F882349F129960CAD1DAD81 +:104EE0002EAD3FAD29972A964FAD2A972B965FADF1 +:104EF0002B972C966FAD2C972D967FAD2D9783E930 +:104F00009FE00F94221F9B01AC01E4966CAD7DAD38 +:104F10008EAD9FADE4970F941ABF20913616309155 +:104F2000371640913816509139160EC0209136161A +:104F3000309137164091381650913916E4966CAD81 +:104F40007DAD8EAD9FADE4970F940BC30F94DBC284 +:104F5000A2966CAF7DAF8EAF9FAFA297E696AEAD37 +:104F6000BFADE6974D905D906D907C9020913A1684 +:104F700030913B1640913C1650913D16C301B20151 +:104F80000F940BC30F94DBC261966CAF7DAF8EAFF5 +:104F90009FAF61972091591030915A1040915B104A +:104FA00050915C102A966FAD2A972B967FAD2B9768 +:104FB0002C968FAD2C972D969FAD2D970F9419BFE2 +:104FC0004B015C0120915D1030915E1040915F10AB +:104FD0005091601029966CAD7DAD8EAD9FAD299737 +:104FE0000F9419BF6B017C01A5019401C501B401A7 +:104FF0000F940BC34B015C01A7019601C701B601D9 +:105000000F940BC39B01AC01C501B4010F941ABFEF +:105010000F94C4C3C258DF4F688379838A839B830C +:10502000CE57D040209165103091661040916710A6 +:1050300050916810C301B2010F9419BFA8966CAFCC +:105040007DAF8EAF9FAFA8978091EA159091EB1539 +:10505000A091EC15B091ED1561962CAD3DAD4EAD26 +:105060005FAD6197281739074A075B0709F4D8C075 +:10507000E0910C0A34E0E39FF0011124E65CF84E65 +:105080002091590230915A0240915B0250915C028A +:1050900060817181828193810F940AC087FF40C033 +:1050A00061968CAD9DADAEADBFAD61978093EA15B5 +:1050B0009093EB15A093EC15B093ED15409265100D +:1050C000509266106092671070926810ECE3FDE0F9 +:1050D0008491882341F09091C00095FFFCCF80938C +:1050E000C6003196F5CFE5E0F1E885919491FC0199 +:1050F0002491222341F03091C00035FFFCCF209352 +:10510000C6000196F4CF8091C00085FFFCCF8AE0F5 +:105110008093C600A8961CAE1DAE1EAE1FAEA8970B +:105120008091EA159091EB15A091EC15B091ED15D9 +:1051300061962CAD3DAD4EAD5FAD6197281B390B2F +:105140004A0B5B0BCA01B90157FF07C090958095C8 +:10515000709561957F4F8F4F9F4F0F94ACC06B013F +:105160007C012AE939E147EE53E460913A167091E7 +:105170003B1680913C1690913D160F940BC39B01FA +:10518000AC01C701B6010F9439C218160CF048C023 +:1051900061968CAD9DADAEADBFAD61978093EA15C4 +:1051A0009093EB15A093EC15B093ED15E696EEAD4C +:1051B000FFADE69780819181A281B38180936510D4 +:1051C00090936610A0936710B0936810ECE3FDE035 +:1051D0008491882341F09091C00095FFFCCF80938B +:1051E000C6003196F5CFEFEFF0E885919491FC0180 +:1051F0002491222341F03091C00035FFFCCF209351 +:10520000C6000196F4CF8091C00085FFFCCF8AE0F4 +:105210008093C600A8961CAE1DAE1EAE1FAEA8970A +:1052200080917210F5E58F9F1001112491012D5886 +:105230003F4E1901F901E55BFF4F10828091DE15A9 +:105240009091DF15A091E015B091E1158BA79CA777 +:10525000ADA7BEA7AC968CAC9DACAEACBFACAC97CA +:10526000881A990AAA0ABB0AB7FE08C0B094A0948B +:1052700090948094811C911CA11CB11CD1018D9231 +:105280009D92AD92BC9213972091E2153091E31557 +:105290004091E4155091E5152FA738AB49AB5AABB7 +:1052A000E0968CAD9DADAEADBFADE097821B930B8C +:1052B000A40BB50B8FA398A7A9A7BAA7B7FF0BC0DC +:1052C000B095A095909581959F4FAF4FBF4F8FA3FD +:1052D00098A7A9A7BAA72FA138A549A55AA5D10172 +:1052E00014962D933D934D935C9317972091E6155B +:1052F0003091E7154091E8155091E9152FAB38AF83 +:1053000049AF5AAFA2964CAC5DAC6EAC7FACA297E5 +:10531000421A530A640A750A77FE08C070946094B2 +:1053200050944094411C511C611C711CD101189671 +:105330004D925D926D927C921B972091EA1530916F +:10534000EB154091EC155091ED152BAF3CAF4DAFE7 +:105350005EAF6196CCACDDACEEACFFAC6197C21A2F +:10536000D30AE40AF50AF7FE08C0F094E094D0945A +:10537000C094C11CD11CE11CF11CD1011C96CD9222 +:10538000DD92ED92FC921F97E0910C0AB4E0EB9F46 +:10539000F0011124E75CFD4F20813181428153816E +:1053A0006D962CAF3DAF4EAF5FAF6D9720E030E014 +:1053B00040E85FE36D966CAD7DAD8EAD9FAD6D97B2 +:1053C0000F940AC08823A9F0C701B6010F94ACC09E +:1053D0006D962CAD3DAD4EAD5FAD6D970F940BC38B +:1053E0000F9479C0D1011C966D937D938D939C93FE +:1053F0001F97A0914502B0914602A436B105A1F0D5 +:10540000F10124853585468557850F9450C524E6DE +:1054100030E040E050E00F941EC5D1011C962D9362 +:105420003D934D935C931F97F101448555856685A7 +:1054300077858FA198A5A9A5BAA584179507A60772 +:10544000B70714F4DB01CA0184159505A605B70555 +:1054500014F4D301C201B501A40188169906AA0665 +:10546000BB0614F4AC01BD01D10150964D935D9380 +:105470006D937C935397463051056105710510F487 +:105480000D94A632F101E95BFF4F80910A0A9091D9 +:105490000B0AAA2797FDA095BA2F80839183A28338 +:1054A000B383AC962CAD3DAD4EAD5FADAC978BA547 +:1054B0009CA5ADA5BEA5281739074A075B0724F0B0 +:1054C000D10158961C9203C081E0F101808FE096D3 +:1054D0002CAD3DAD4EAD5FADE0978FA598A9A9A9C4 +:1054E000BAA9281739074A075B073CF4D101589637 +:1054F0008C915897826058968C93A2962CAD3DADB6 +:105500004EAD5FADA2978FA998ADA9ADBAAD2817E2 +:1055100039074A075B073CF4D10158968C9158979C +:10552000846058968C9361962CAD3DAD4EAD5FADC9 +:1055300061978BAD9CADADADBEAD281739074A075D +:105540005B073CF4D10158968C9158978860589627 +:105550008C93C956DF4FE881F981C759D0408081CB +:10556000D10159968C9389288A288B2809F017989D +:10557000F10184819581A681B781892B8A2B8B2BA0 +:1055800009F01698F10180859185A285B385892B54 +:105590008A2B8B2B09F01598F10184859585A685BA +:1055A000B785892B8A2B8B2B91F18091C31588238A +:1055B00019F081508093C3158091C415882319F088 +:1055C00081508093C4158091C515882319F08150AE +:1055D0008093C515C956DF4FA881B981C759D040FE +:1055E0008C91813061F030F0823089F480E28093D8 +:1055F000C51508C0149880E28093C31508C080E2E6 +:105600008093C4158091C315811101C0149AD101F2 +:105610001C962D913D914D915C911F976D962CAFED +:105620003DAF4EAF5FAF6D97232B242B252B29F574 +:10563000B091FE15BFA3E091FF15EBA710910016E6 +:10564000009101162B2F3E2F412F502F6BA96296F0 +:105650007FAD62978FAD22969FAD22970F940AC0BF +:1056600087FD18C0FBA9FFA362962FAD62972BA7F9 +:105670001FAD22960FAD22970DC030911A163FA391 +:1056800040911B164BA710911C1600911D16232F3D +:10569000342FDACF8091DE159091DF15A091E015BF +:1056A000B091E115AC962CAD3DAD4EAD5FADAC9774 +:1056B000281B390B4A0B5B0BCA01B9010F94ACC014 +:1056C00020912E1630912F164091301650913116A0 +:1056D0000F9411C06BAB7CAB8DAB9EAB698B7A8B9F +:1056E0008B8B9C8BE0966CAD7DAD8EAD9FADE097C6 +:1056F0002FA538A949A95AA9621B730B840B950BD6 +:105700000F94ACC02091321630913316409134166C +:10571000509135160F9411C04B015C016D8B7E8B3F +:105720008F8B988FA2966CAD7DAD8EAD9FADA297FD +:105730002FA938AD49AD5AAD621B730B840B950B85 +:105740000F94ACC020913616309137164091381620 +:10575000509139160F9411C06B017C01698F7A8FBB +:105760008B8F9C8F61966CAD7DAD8EAD9FAD61973B +:105770002BAD3CAD4DAD5EAD621B730B840B950B39 +:105780000F94ACC020913A1630913B1640913C16D4 +:1057900050913D160F9411C0E0910C0A34E0E39F44 +:1057A000F0011124E75CFD4F20813181428153815A +:1057B0000F940BC32B013C0160914502709146028E +:1057C000882777FD8095982F0F94ACC09B01AC0182 +:1057D000C301B2010F940BC320E030E048EC52E467 +:1057E0000F9411C06D8F7E8F8F8F98A3D1012D9153 +:1057F0003D914D915C9113972FAB38AF49AF5AAFA4 +:10580000263031054105510504F514964D905D9003 +:105810006D907C901797B6E04B16510461047104AB +:10582000A4F4F1014084518462847384F6E04F163D +:105830005104610471044CF4DC01CB01BF77F10128 +:1058400086A797A7A0ABB1AB27C06BA97CA98DA9F0 +:105850009EA90F9402C42B013C01C501B4010F9411 +:1058600002C49B01AC01C301B2010F941ABF4B01EA +:105870005C01C701B6010F9402C49B01AC01C501D4 +:10588000B4010F941ABF0F94C4C3D1019E966D93B7 +:105890007D938D939C93D197D1019E962D913D91AF +:1058A0004D915C91D19765962CAF3DAF4EAF5FAFF8 +:1058B000659760E070E080E89FE30F9411C09B0162 +:1058C000AC016FA17BA5812F902F0F940BC32B01EF +:1058D0003C011091721080917110181B1F70E12F04 +:1058E000F0E02196FFAFEEAF2197CF010297069728 +:1058F00008F03FC0A301920160E074E284E799E4FC +:105900000F9411C00F94DBC26B017C0180914E1685 +:1059100090914F16A0915016B0915116C816D90605 +:10592000EA06FB0630F5BC01CD016C197D098E0934 +:105930009F09660F771F881F991F212F30E040E0D5 +:1059400050E00F94FCC4CA01B9010F94AAC00F948F +:10595000DBC26C0D7D1D8E1D9F1D0F94AAC09B0187 +:10596000AC0160E074E284E799E40F9411C02B016C +:105970003C01A301920165966CAD7DAD8EAD9FADEE +:1059800065970F940BC36BAB7CAB8DAB9EABD1011A +:1059900092966D937D938D939C93959750966D9170 +:1059A0007D918D919C9153970F94AAC06FA378A776 +:1059B00089A79AA7A30192010F940BC30F94F7BF75 +:1059C0000F947EC06B017C01F10167AB70AF81AFBA +:1059D00092AF9E012F5E3F4F3CAF2BAF4EE356E19F +:1059E000A4965FAF4EAFA497CE0181969EA38DA3E0 +:1059F000DE0111966796BFAFAEAF67971BA61FA6D5 +:105A000000E81FE3EBADFCAD619171918191919143 +:105A1000FCAFEBAFA30192010F940BC36796AEAD41 +:105A2000BFAD67976D937D938D939D936796BFAF41 +:105A3000AEAF67979B01AC015F7725962CAF3DAF6A +:105A40004EAF5FAF2597A496AEADBFADA4978D9036 +:105A50009D90AD90BD90A496BFAFAEAFA497A501A9 +:105A6000940125966CAD7DAD8EAD9FAD25970F94BD +:105A700039C21816ECF425962CAD3DAD4EAD5FAD98 +:105A80002597C501B4010F9411C0B62EA72E982EEC +:105A9000892E262F372F482F592F6BA57FA5C80198 +:105AA0000F940AC087FD04C0BBA6AFA6092D182D10 +:105AB000EBADFCAD2DA13EA1E217F30709F0A2CF9B +:105AC00020E030E040E85FE36BA57FA5C8010F94BC +:105AD0000AC087FF3BC04E0131E1830E911CAE012D +:105AE0004F5F5F4F5A012BA53FA5A801D5016D91CE +:105AF0007D918D919C910F940BC3F50161937193EE +:105B0000819391935F01E815F90569F72BA53FA5EE +:105B1000A8016BA97CA98DA99EA90F940BC3D101E3 +:105B200092966D937D938D939C939597C701B60143 +:105B30000F94AAC02BA53FA5A8010F940BC30F94E7 +:105B40007EC0F10167AB70AF81AF92AF65962CADAF +:105B50003DAD4EAD5FAD65976FA178A589A59AA5BE +:105B60000F9411C06B017C012FA938AD49AD5AAD1E +:105B7000232B242B252B59F5F10184819581A681B6 +:105B8000B781892B8A2B8B2B11F580859185A28576 +:105B9000B385892B8A2B8B2BD1F42091121630914F +:105BA00013164091141650911516C701B6010F94A3 +:105BB0000BC30F94F7BF81010D5B1F4F0F947EC085 +:105BC000D8016D937D938D939C931397F6C020918C +:105BD0001616309117164091181650911916C701D4 +:105BE000B6010F940BC30F94F7BF0F947EC08101D1 +:105BF0000D5B1F4FF8016083718382839383409014 +:105C0000EE155090EF156090F0157090F1150F940F +:105C1000AAC04B015C016FA978AD89AD9AAD0F9414 +:105C2000ACC09B01AC01C501B4010F940BC32FA103 +:105C300038A549A55AA50F9411C04B015C01C301B9 +:105C4000B2010F94AAC09B01AC01C501B4010F942D +:105C500039C2181634F4D8014D925D926D927C923F +:105C600013974090F2155090F3156090F4157090D2 +:105C7000F515F80160817181828193810F94AAC02A +:105C80004B015C01D10114966D917D918D919C9198 +:105C900017970F94ACC09B01AC01C501B4010F94E0 +:105CA0000BC32FA138A549A55AA50F9411C04B01CC +:105CB0005C01C301B2010F94AAC09B01AC01C501F4 +:105CC000B4010F9439C218162CF4F80140825182A5 +:105CD000628273824090FA155090FB156090FC151B +:105CE0007090FD1581010D5B1F4FD8016D917D9165 +:105CF0008D919C910F94AAC04B015C016D966CAD87 +:105D00007DAD8EAD9FAD6D970F94ACC09B01AC0186 +:105D1000C501B4010F940BC32FA138A549A55AA5FD +:105D20000F9411C04B015C01C301B2010F94AAC0D2 +:105D30009B01AC01C501B4010F9439C218162CF4B3 +:105D4000F80140825182628273824090F615509031 +:105D5000F7156090F8157090F915D8016D917D9147 +:105D60008D919C910F94AAC04B015C01F10160855B +:105D70007185828593850F94ACC09B01AC01C501F0 +:105D8000B4010F940BC32FA138A549A55AA50F94B0 +:105D900011C04B015C01C301B2010F94AAC09B0169 +:105DA000AC01C501B4010F9439C2181634F4D801FE +:105DB0004D925D926D927C921397F101ED5BFF4FD6 +:105DC00060817181828193810F94AAC04B015C0133 +:105DD000A70196010F9411C069966CAF7DAF8EAF8D +:105DE0009FAF6997F10162AB73AB84AB95AB2DEBC1 +:105DF00037E346E051E4C501B4010F940BC30F949F +:105E000079C0D10154966D937D938D939C93579750 +:105E10009296BC91BFA7F101F3A1FFABD10194967B +:105E2000BC91BBAFF101F5A1FBAB9E012F5E3F4FD3 +:105E30003EA32DA342E056E15CA74BA78E010F5F66 +:105E40001F4F4FA45FA86B2E7F2E1FA2D8018D90ED +:105E50009D90AD90BD908D01E894B7F8EBA5FCA5A1 +:105E6000C190D190E190F190FCA7EBA7A70196011A +:105E7000C501B4010F9439C2181684F5FFA1FF23A0 +:105E800049F19201A301C501B4010F940BC34B0169 +:105E90005C012FA53FA94BAD5BA9C701B6010F94CB +:105EA0000BC36B017C019B01AC01C501B4010F94D4 +:105EB00039C218169CF4A5019401C701B6010F94CC +:105EC00011C09B01AC01B201C3010F940BC32B01A4 +:105ED0003C0104C02601370121E02FA34DA15EA1A2 +:105EE0000417150709F0B2CFC201D30189A39AA301 +:105EF000ABA3BCA321968EAD9FAD219702970CF466 +:105F000057C19091CA159FA3A091CB15ABA7109133 +:105F1000CC150091CD1527E137EB41ED58E3692F02 +:105F20007A2F812F902F0F9439C218160CF040C190 +:105F3000B1E0A396BFAFA3972FA53FA94BAD5BA937 +:105F40006FA17BA5812F902F0F9439C21816A4F052 +:105F5000A3961FAEA3972FA53FA94BAD5BA96FA139 +:105F60007BA5812F902F0F9411C0EA966CAF7DAF67 +:105F70008EAF9FAFEA9716C02FA13BA5412F502FA0 +:105F80006FA57FA98BAD9BA90F9411C0EA966CAF4A +:105F90007DAF8EAF9FAFEA97EFA5EFA3FFA9FBA759 +:105FA0001BAD0BA92EEC35E123963FAF2EAF239707 +:105FB00042E056E1EC965FAF4EAFEC97CE01019612 +:105FC000EE969FAF8EAFEE97412C512C80E8682E55 +:105FD0008FE3782E1FAE2396AEADBFAD23978D9085 +:105FE0009D90AD90BD902396BFAFAEAF2397EE9638 +:105FF000EEADFFADEE97C190D190E190F190EE96AD +:10600000FFAFEEAFEE97A396FFADA397FF2361F02E +:10601000EA962CAD3DAD4EAD5FADEA97C501B4013A +:106020000F940BC34B015C012FAD222381F0A30120 +:106030009201C501B4010F940BC34B015C01A30194 +:106040009201C701B6010F940BC36B017C01A7013C +:106050009601C501B4010F9439C220E030E0A901D6 +:106060001816CCF4C701B6010F9439C218164CF0BB +:1060700020E030E0A901C501B4010F940AC087FFF8 +:1060800005C0A7019601C501B40118C0F7FAF09444 +:10609000F7F8F0941CC0C701B6010F940AC087FD41 +:1060A00009C020E030E0A901C501B4010F9439C254 +:1060B00018164CF4A5019401C701B6010F9419BF3D +:1060C0006B017C010EC0B7FAB094B7F8B094A70189 +:1060D0009601C501B4010F9439C2181614F4750164 +:1060E0006401EC96AEADBFADEC978D909D90AD90F8 +:1060F000BD90EC96BFAFAEAFEC97A5019401C70180 +:10610000B6010F9439C2181684F4A7019601C5018F +:10611000B4010F9411C09B01AC01C301B2010F94F3 +:106120000BC32B013C01B1E0BFAF2396EEADFFAD39 +:106130002397EE5DF54109F04ECF3FAD332361F07B +:10614000A30192016FA17BA5812F902F0F940BC308 +:106150006FA37BA7182F092F24EA30E74DE75FE3F1 +:106160006FA17BA5812F902F0F940BC36B017C0136 +:106170009B01AC016091C6157091C7158091C8153F +:106180009091C9150F9439C21816C4F4B9A0AAA0E9 +:106190009BA08CA0A70196016B2D7A2D892D982D9F +:1061A0000F9439C2181654F4BFA2ABA6840106C0DE +:1061B00049A14FA35AA15BA71BA10CA18FA19BA52D +:1061C000A12FB02FF10182A793A7A4A7B5A7C9A0BB +:1061D000DAA0EBA0FCA0A7019601C701B6010F94BD +:1061E0000BC34B015C0169966CAD7DAD8EAD9FAD6F +:1061F000699790589B01AC010F941ABF65962CAD1E +:106200003DAD4EAD5FAD65970F940BC39B01AC01E7 +:10621000C501B4010F9419BF0F94C4C3B62EA72EA5 +:10622000982E892E262F372F482F592F6FA17BA507 +:10623000812F902F0F940AC087FF05C04FA05BA449 +:10624000612E702E04C04B2C5A2C692C782CC20164 +:10625000D301F10186A397A3A0A7B1A781E086ABE4 +:1062600080E1FE013196AEECB5E101900D928A9588 +:10627000E1F78FA59FA9ABADBBA98093CA159093F9 +:10628000CB15A093CC15B093CD15C092C615D09266 +:10629000C715E092C815F092C9156D962CAD3DADAD +:1062A0004EAD5FAD6D97232B242B252B09F43EC0FB +:1062B000F10180819181A281B381892B8A2B8B2B63 +:1062C00041F484819581A681B781892B8A2B8B2B00 +:1062D00069F120E030E0A90160916D1070916E10BD +:1062E00080916F10909170100F940AC08823F1F084 +:1062F000F10180899189A289B3896D962CAD3DAD5C +:106300004EAD5FAD6D97281739074A075B0771F0EF +:1063100011E020E030E0A901A8966CAD7DAD8EAD16 +:106320009FADA8970F9439C218160CF010E0F10138 +:10633000E05BFF4F1083112309F469C080906D105A +:1063400090906E10A0906F10B09070103091691006 +:106350003FA340916A104BA700916B1010916C10F5 +:106360002DEB37E346E855E36FA17BA5C8010F94F9 +:106370000AC087FF11C0C258DF4F288139814A8186 +:106380005B81CE57D040A8966CAD7DAD8EAD9FADF4 +:10639000A8970F9411C003C06FA17BA5C8019B01F2 +:1063A000AC01C501B4010F940BC34B015C01D101D9 +:1063B000D7966D917D918D919C91DA970F94AAC09B +:1063C0009B01AC016FA57FA98BAD9BA90F9411C058 +:1063D0009B01AC01C501B4010F940BC320913A1687 +:1063E00030913B1640913C1650913D160F940BC3D3 +:1063F00020E030E040E853E40F940BC30F94DBC27D +:10640000F101EF5AFF4F608371838283938381018F +:10641000045B1F4FF10167A970AD81AD92AD0F9480 +:10642000AAC02FA53FA94BAD5BA90F9411C0D801FD +:106430006D937D938D939C93139797018601A20191 +:10644000B301C1010F9420216E96BFAD6E97B0933A +:106450007210AC962CAD3DAD4EAD5FADAC972093B8 +:10646000DE153093DF154093E0155093E115E0966B +:106470008CAD9DADAEADBFADE0978093E21590932E +:10648000E315A093E415B093E515A2962CAD3DADB0 +:106490004EAD5FADA2972093E6153093E71540937C +:1064A000E8155093E91561968CAD9DADAEADBFADCD +:1064B00061978093EA159093EB15A093EC15B09338 +:1064C000ED152A968FAD2A972B969FAD2B972C967C +:1064D000AFAD2C972D96BFAD2D978093591090930B +:1064E0005A10A0935B10B0935C1029962CAD3DAD73 +:1064F0004EAD5FAD299720935D1030935E104093B1 +:106500005F1050936010E4968CAD9DADAEADBFAD05 +:10651000E4978093611090936210A0936310B093FE +:106520006410E696EEADFFADE69780819181A28181 +:10653000B3818093651090936610A0936710B09319 +:106540006810CE0181960F94E922E4D2CF57DF4F35 +:106550000FB6F894DEBF0FBECDBFDF91CF911F9174 +:106560000F91FF90EF90DF90CF90BF90AF909F90F2 +:106570008F907F906F905F904F903F902F900895F5 +:106580002F923F924F925F926F927F928F929F9243 +:10659000AF92BF92CF92DF92EF92FF920F931F9331 +:1065A000CF93DF9300D01F92CDB7DEB72B013C0114 +:1065B00049015A01E982FA820B831C83160120915A +:1065C000820F3091830F4091840F5091850F0F946B +:1065D0000BC36B017C012091860F3091870F409196 +:1065E000880F5091890FC501B4010F940BC39B0113 +:1065F000AC01C701B6010F941ABF20916A0F309108 +:106600006B0F40916C0F50916D0F0F941ABF6B017F +:106610007C0120918A0F30918B0F40918C0F50910B +:106620008D0FC301B2010F940BC32B013C012091CC +:106630008E0F30918F0F4091900F5091910FC501A7 +:10664000B4010F940BC39B01AC01C301B2010F94C1 +:106650001ABF20916E0F30916F0F4091700F5091C3 +:10666000710F0F941ABF4B015C0120912E163091CF +:106670002F164091301650913116C701B6010F9474 +:106680000BC30F94DBC26093DE157093DF1580930C +:10669000E0159093E1152091321630913316409118 +:1066A000341650913516C501B4010F940BC30F94E5 +:1066B000DBC26093E2157093E3158093E415909329 +:1066C000E5158091930F8823C9F095018401B701E6 +:1066D000A60183E99FE00F94221F9B01AC01698111 +:1066E0007A818B819C810F941ABF2091361630914C +:1066F000371640913816509139160CC02091361635 +:1067000030913716409138165091391669817A8147 +:106710008B819C810F940BC30F94DBC26093E615B1 +:106720007093E7158093E8159093E91520913A1638 +:1067300030913B1640913C1650913D16D1016D9120 +:106740007D918D919C910F940BC30F94DBC260934C +:10675000EA157093EB158093EC159093ED15C092AC +:106760005910D0925A10E0925B10F0925C10809217 +:106770005D1090925E10A0925F10B09260108981BF +:106780009A81AB81BC818093611090936210A09339 +:106790006310B0936410F10180819181A281B38173 +:1067A0008093651090936610A0936710B093681063 +:1067B0002AEE35E146EE55E162EE75E18EED95E1AA +:1067C0000F94C93E1092CA151092CB151092CC1599 +:1067D0001092CD151092CE151092CF151092D015A3 +:1067E0001092D1151092D2151092D3151092D41583 +:1067F0001092D5151092D6151092D7151092D81563 +:106800001092D9151092DA151092DB151092DC1542 +:106810001092DD150F900F900F900F90DF91CF9198 +:106820001F910F91FF90EF90DF90CF90BF90AF90AE +:106830009F908F907F906F905F904F903F902F90A0 +:1068400008952091361630913716409138165091A0 +:106850003916FC0160817181828193810F940BC391 +:106860000F94DBC26093E6157093E7158093E815EB +:106870009093E9152AEE35E146EE55E162EE75E1B9 +:106880008EED95E10D94C93E20913A1630913B165C +:1068900040913C1650913D16FC01608171818281CE +:1068A00093810F940BC30F94DBC26093EA1570932E +:1068B000EB158093EC159093ED158AEE95E10D9410 +:1068C000053F6093590270935A0280935B02909344 +:1068D0005C020895CF92DF92EF92FF920F931F9385 +:1068E000CF93DF9300D01F92CDB7DEB73EE1C32E2A +:1068F00036E1D32E4EE2E42E46E1F42E0EEE15E103 +:10690000F60161917191819191916F01F70121914E +:106910003191419151917F0129833A834B835C836B +:106920000F94AAC029813A814B815C810F940BC3DB +:106930000F947EC0F80161937193819391938F01BD +:10694000FEE2CF16F6E1DF06D9F60F900F900F901A +:106950000F90DF91CF911F910F91FF90EF90DF90FB +:10696000CF900895CF93DF9380917A16811109C05B +:1069700080917916811105C080917816882309F4D9 +:10698000A0C0ECE3FDE08491882341F09091C00029 +:1069900095FFFCCF8093C6003196F5CFCDE1D1E8CD +:1069A000FE0185919491FC012491222341F03091C4 +:1069B000C00035FFFCCF2093C6000196F4CF809134 +:1069C0007A16882319F160917B1670917C1680915C +:1069D0007D1690917E160F94ACC020912E163091AA +:1069E0002F1640913016509131160F9411C0AB0103 +:1069F000BC018BEB9EE80E94C862FE0185919491D8 +:106A000069EB7EE80E94B5D30F944A6280917916B3 +:106A1000882319F160917F167091801680918116FC +:106A2000909182160F94ACC020913216309133169B +:106A300040913416509135160F9411C0AB01BC0132 +:106A400085EB9EE80E94C862FE018591949163EBFC +:106A50007EE80E94B5D30F944A628091781688230D +:106A600019F160918316709184168091851690912A +:106A700086160F94ACC0209136163091371640918F +:106A80003816509139160F9411C0AB01BC018FEA32 +:106A90009EE80E94C862FE01859194916DEA7EE8AD +:106AA0000E94B5D30F944A628091C00085FFFCCF4D +:106AB0008AE08093C60010927A161092791610928E +:106AC0007816DF91CF91089580917A16811107C0D1 +:106AD00080917916811103C08091781601C081E000 +:106AE00010927A1610927916109278160895809165 +:106AF000781610927816089590916302809363023D +:106B0000892F0895909171168093711610927816BE +:106B1000892F0895EFE6F0E08081826080830895F8 +:106B2000CF92DF92EF92FF920F931F93CF93DF9359 +:106B30001F92CDB7DEB78091AA169091AB16892B24 +:106B400009F0B0C19091721080917110981771F096 +:106B5000E091711045E5E49FF0011124ED58FF4EDE +:106B6000DF01A55BBF4F81E08C9302C0E0E0F0E065 +:106B7000F093AB16E093AA16309709F48DC11092EA +:106B80008D1610928E1610928F161092901667A97D +:106B900070AD61345CE9750728F461328EE47807E2 +:106BA00048F002C060E47CE9769567957695679534 +:106BB00084E007C06131A7E27A0730F076956795E7 +:106BC00082E080938A1608C081E080938A16603242 +:106BD000710510F460E270E0605271096115B8E06F +:106BE0007B07D0F0872F9927880F991F880F991F4F +:106BF00081549D46FC01329645915491AA27659F88 +:106C00009001649F210D3A1F06942A1F3A1F1124F8 +:106C1000FC01859194911DC0CB01969587958C7F41 +:106C200081549147FC01459154910296FC01859154 +:106C30009491FB01E770FF278E9F90018F9F300D8D +:106C40009E9F300D1124E3E036952795EA95E1F7F4 +:106C5000CA01821B930B84369105B0F4E9EEFAE782 +:106C6000A591B4918D91882339F09091C00095FF42 +:106C7000FCCF8093C600F6CF4AE050E080EF96E06C +:106C80000E946A5D84E690E090938916809388164E +:106C900080918A1680938716E091AA16F091AB1620 +:106CA00063AD74AD70938C1660938B1661344CE9B0 +:106CB000740728F461325EE4750748F002C060E4AE +:106CC0007CE9769567957695679584E007C0613194 +:106CD00087E2780730F07695679582E080938A1690 +:106CE00008C081E080938A166032710510F460E27A +:106CF00070E0605271096115A8E07A07E0F0872F13 +:106D00009927880F991F880F991F81549D46FC0170 +:106D1000329625913491AA27639FA001629F410D6D +:106D20005A1F06944A1F5A1F1124FC0125913491C1 +:106D3000241B350B1EC0CB01969587958C7F815403 +:106D40009147FC01259134910296FC0145915491A3 +:106D5000FB01E770FF274E9FC0014F9F900D5E9F84 +:106D6000900D112403E0969587950A95E1F7281B6D +:106D7000390B24363105B0F4E9EEFAE7A591B49168 +:106D80008D91882339F09091C00095FFFCCF8093BE +:106D9000C600F6CF4AE050E080EF96E00E946A5DC0 +:106DA00024E630E0C901A0E0B0E080939116909312 +:106DB0009216A0939316B093941630935F16209377 +:106DC0005E16E091AA16F091AB16DF01A05BBF4FF3 +:106DD0008C91882349F11196CD90DD90ED90FC9037 +:106DE000A0918B16B0918C16A70196010F9446C501 +:106DF000A1E19695879577956795AA95D1F77093B8 +:106E000055166093541667A970AD81AD92AD0F947D +:106E1000B9C4B1E19695879577956795BA95D1F7FD +:106E2000709357166093561680899189A289B38909 +:106E3000B695A79597958795B095A09590958195CE +:106E40009F4FAF4FBF4F8093A5169093A616A09368 +:106E5000A716B093A8168093A1169093A216A0939C +:106E6000A316B093A41680939D1690939E16A0939C +:106E70009F16B093A0168093991690939A16A0939C +:106E80009B16B0939C16109295161092961610921F +:106E900097161092981606C080ED97E090935F16B3 +:106EA00080935E16E091AA16F091AB16309709F424 +:106EB00081C6808D8093A9169FB780FF09C0F89482 +:106EC00080910B018D7F80930B019FBF8FEF08C0D6 +:106ED000F89480910B01826080930B019FBF81E049 +:106EE00080935F028091A9169FB781FF09C0F89433 +:106EF00080910B018E7F80930B019FBF8FEF08C0A5 +:106F0000F89480910B01816080930B019FBF81E019 +:106F1000809360022091A9163091630220FF3BC04C +:106F2000332309F472C01E9902C080E031C0809101 +:106F30007716882361F1E091AA16F091AB16808153 +:106F40009181A281B381181619061A061B06FCF45A +:106F50008091601690916116A0916216B0916316AF +:106F600080937B1690937C16A0937D16B0937E162B +:106F700081E080937A1680899189A289B389809370 +:106F8000951690939616A0939716B093981681E055 +:106F9000809377163AC03323C1F146B14095441F20 +:106FA0004427441F81F180917616882361F1E09196 +:106FB000AA16F091AB1680819181A281B381181637 +:106FC00019061A061B06FCF4809160169091611652 +:106FD000A0916216B091631680937B1690937C16F5 +:106FE000A0937D16B0937E1681E080937A168089F7 +:106FF0009189A289B3898093951690939616A09350 +:107000009716B09398164093761621FF3BC0332312 +:1070100009F472C01D9902C080E031C080917516DC +:10702000882361F1E091AA16F091AB1684819581D5 +:10703000A681B781181619061A061B06FCF4809162 +:10704000641690916516A0916616B09167168093AC +:107050007F1690938016A0938116B093821681E0DC +:107060008093791680899189A289B3898093951636 +:1070700090939616A0939716B093981681E08093FC +:1070800075163AC03323C1F130B141E032FB3327EA +:1070900030F9342779F180917416882359F1E09101 +:1070A000AA16F091AB1684819581A681B781181636 +:1070B00019061A061B06F4F4809164169091651661 +:1070C000A0916616B091671680937F1690938016F4 +:1070D000A0938116B0938216409379168089918986 +:1070E000A289B3898093951690939616A0939716CC +:1070F000B0939816309374169FB722FF49C0F89446 +:1071000080910B018B7F80930B019FBF8FEF80934A +:10711000610280916302882309F47EC08091711618 +:1071200081117AC01C9B31C080917316882361F154 +:10713000E091AA16F091AB1680859185A285B38562 +:10714000181619061A061B06FCF480916816909111 +:107150006916A0916A16B0916B168093831690936E +:107160008416A0938516B093861681E080937816D6 +:1071700080899189A289B3898093951690939616F8 +:10718000A0939716B093981681E08093731644C02D +:10719000F89480910B01846080930B019FBF31E0D4 +:1071A00030936102809163028823B1F120B126956A +:1071B0002170232779F180917216882359F1E0918B +:1071C000AA16F091AB1680859185A285B385181615 +:1071D00019061A061B06F4F4809168169091691638 +:1071E000A0916A16B0916B168093831690938416C3 +:1071F000A0938516B093861630937816808991896E +:10720000A289B3898093951690939616A0939716AA +:10721000B09398162093721680917116882371F19D +:107220001C9902C080E028C080917316882319F150 +:107230008091681690916916A0916A16B0916B16AC +:107240008093831690938416A0938516B093861628 +:1072500081E080937816E091AA16F091AB168089B0 +:107260009189A289B3898093951690939616A093DD +:107270009716B093981681E0809373168091A916A3 +:107280009FB783FF09C0F89480910B0180648093BD +:107290000B019FBF8FEF08C0F89480910B018F7B8B +:1072A00080930B019FBF81E08093620220E0809178 +:1072B0008A16281708F0B6C18091C00087FF21C048 +:1072C0008091C00084FF04C08091C600898319C0EA +:1072D0003091C6004091710750917207CA01019622 +:1072E0008F779927609173077091740786179707B6 +:1072F00041F0FA01EF50F94F308390937207809379 +:107300007107E091AA16F091AB16809199169091B1 +:107310009A16A0919B16B0919C164485558566855A +:107320007785840F951FA61FB71F8093991690939A +:107330009A16A0939B16B0939C16181619061A0657 +:107340001B06F4F54089518962897389841B950B6A +:10735000A60BB70B8093991690939A16A0939B1641 +:10736000B0939C164091620280916C1690916D16BC +:10737000A0916E16B0916F16552747FD5095652F59 +:10738000752F840F951FA61FB71F80936C169093BF +:107390006D16A0936E16B0936F168091A91683FF99 +:1073A00006C08091581690915916019705C080919A +:1073B0005816909159160196909359168093581625 +:1073C0008091A5169091A616A091A716B091A81627 +:1073D0004081518162817381840F951FA61FB71F61 +:1073E0008093A5169093A616A093A716B093A816FF +:1073F000181619061A061B06CCF5409AE091AA1633 +:10740000F091AB168091A5169091A616A091A716A3 +:10741000B091A8164089518962897389841B950BA4 +:10742000A60BB70B8093A5169093A616A093A7164C +:10743000B093A81640915F028091601690916116FA +:10744000A0916216B0916316552747FD5095652FA0 +:10745000752F840F951FA61FB71F809360169093FA +:107460006116A0936216B09363164098E091AA1635 +:10747000F091AB168091A1169091A216A091A3163F +:10748000B091A4164481558166817781840F951F40 +:10749000A61FB71F8093A1169093A216A093A316C0 +:1074A000B093A416181619061A061B06CCF5419AB5 +:1074B000E091AA16F091AB168091A1169091A216B8 +:1074C000A091A316B091A41640895189628973894D +:1074D000841B950BA60BB70B8093A1169093A21655 +:1074E000A093A316B093A4164091600280916416F5 +:1074F00090916516A0916616B0916716552747FDC5 +:107500005095652F752F840F951FA61FB71F809369 +:10751000641690936516A0936616B093671641980B +:10752000E091AA16F091AB1680919D1690919E164F +:10753000A0919F16B091A0164085518562857385F4 +:10754000840F951FA61FB71F80939D1690939E16BC +:10755000A0939F16B093A016181619061A061B06BC +:10756000CCF5429AE091AA16F091AB1680919D1647 +:1075700090919E16A0919F16B091A01640895189B6 +:1075800062897389841B950BA60BB70B80939D169C +:1075900090939E16A0939F16B093A01640916102FF +:1075A0008091681690916916A0916A16B0916B1639 +:1075B000552747FD5095652F752F840F951FA61FE2 +:1075C000B71F8093681690936916A0936A16B093BC +:1075D0006B1642988091951690919616A0919716E9 +:1075E000B09198160196A11DB11D809395169093A8 +:1075F0009616A0939716B0939816409195165091B1 +:1076000096166091971670919816E091AA16F091CF +:10761000AB1680899189A289B389481759076A07EF +:107620007B0720F1E091AA16F091AB16DF01A05B79 +:10763000BF4F1C911123E1F0809154169091551683 +:107640002091521630915316AC01421B530B90936C +:107650005316809352168091581690915916840FA4 +:10766000951F909359168093581602C02F5F1FCE16 +:107670008091581690915916892B21F010925D1621 +:1076800010925C164091951650919616609197163F +:1076900070919816828D938DA48DB58D8417950762 +:1076A000A607B70708F4F3C04091911650919216BF +:1076B00060919316709194160489158926893789EB +:1076C000AA27419FB12D529FC001629F900D619FDB +:1076D000800D911D429FB00D811D9A1F519FB00DCD +:1076E000811D9A1F609FB00D811D9A1F509FB10D83 +:1076F0008A1F9A1FB6958A1F9A1F112443AD54AD55 +:10770000480F591F50938C1640938B1687A990AD44 +:10771000A1ADB2AD60E070E084179507A607B7078A +:1077200020F490938C1680938B1660918B16709139 +:107730008C1661345CE9750728F461328EE47807B1 +:1077400048F002C060E47CE9769567957695679588 +:1077500084E007C06131A7E27A0730F0769567953B +:1077600082E080938A1608C081E080938A16603296 +:10777000710510F460E270E0605271096115B8E0C3 +:107780007B07E8F0872F9927880F991F880F991F8B +:1077900081549D46FC01329645915491AA27659FDC +:1077A0009001649F210D3A1F06942A1F3A1F11244D +:1077B000FC0145915491FA01E21BF30B1FC0CB0170 +:1077C000969587958C7F81549147FC012591349142 +:1077D0000296FC0145915491FB01E770FF274E9FF3 +:1077E000C0014F9F900D5E9F900D112413E0969560 +:1077F00087951A95E1F7F901E81BF90BE436F105D5 +:10780000B0F4E9EEFAE7A591B4918D91882339F0AF +:107810009091C00095FFFCCF8093C600F6CF4AE060 +:1078200050E080EF96E00E946A5DE4E6F0E0F093BD +:107830005F16E0935E168091911690919216A0913A +:107840009316B09194168E0F9F1FA11DB11D8093AA +:10785000911690939216A0939316B09394168091DC +:10786000AA169091AB16DC01A05BBF4F2C9122238E +:1078700009F41AC160918B1670918C168F5A9F4F24 +:10788000DC012D913D914D915C91DB0100C1409156 +:107890009516509196166091971670919816868D50 +:1078A000978DA0A1B1A184179507A607B70708F087 +:1078B00022C140918D1650918E1660918F16709155 +:1078C00090160489158926893789AA27419FB12DE9 +:1078D000529FC001629F900D619F800D911D429F3C +:1078E000B00D811D9A1F519FB00D811D9A1F609F81 +:1078F000B00D811D9A1F509FB10D8A1F9A1FB6951A +:107900008A1F9A1F112400918B1610918C16FF96D6 +:107910000817190718F40081118102C0081B190B00 +:1079200080819181A281B381A80160E070E0481755 +:1079300059076A077B0708F48C010134BCE91B076F +:1079400030F401324EE4140750F0B80102C060E494 +:107950007CE9769567957695679584E008C0013156 +:1079600057E2150738F0B8017695679582E0809365 +:107970008A160AC081E080938A160032110510F041 +:10798000B80102C060E270E060527109611588E0E0 +:107990007807E8F0872F9927880F991F880F991F7C +:1079A00081549D46FC01329645915491AA27659FCA +:1079B0009001649F210D3A1F06942A1F3A1F11243B +:1079C000FC0145915491FA01E21BF30B1FC0CB015E +:1079D000969587958C7F81549147FC012591349130 +:1079E0000296FC0145915491FB01E770FF274E9FE1 +:1079F000C0014F9F900D5E9F900D112443E096951E +:107A000087954A95E1F7F901E81BF90BE436F10592 +:107A1000B0F4E9EEFAE7A591B4918D91882339F09D +:107A20009091C00095FFFCCF8093C600F6CF4AE04E +:107A300050E080EF96E00E946A5DE4E6F0E0F093AB +:107A40005F16E0935E1680918D1690918E16A09130 +:107A50008F16B09190168E0F9F1FA11DB11D8093A0 +:107A60008D1690938E16A0938F16B09390168091DA +:107A7000AA169091AB16DC01A05BBF4F2C9122237C +:107A800099F011962D913D914D915C91D8010F94F3 +:107A900046C521E196958795779567952A95D1F703 +:107AA00070935516609354168091581690915916FC +:107AB000892BC1F020918A162E9FC0012F9F900D17 +:107AC00011242091581630915916609158167091D2 +:107AD0005916121613061CF07195619571090F94D1 +:107AE000D5C404C060915D0270915E0270935B1614 +:107AF00060935A163AC0112341F080915616909126 +:107B0000571690935516809354168091581690915D +:107B10005916E09187162091881630918916892B85 +:107B2000B1F0E29FC001E39F900D112440915816DF +:107B300050915916609158167091591614161506E1 +:107B40001CF07195619571090F94D5C404C06091C2 +:107B50005D0270915E0270935B1660935A163093CB +:107B60005F1620935E16E0938A1640919516509109 +:107B700096166091971670919816E091AA16F0915A +:107B8000AB1680899189A289B389481759076A077A +:107B90007B0780F01092AB161092AA16909172108B +:107BA00080917110981731F0809171108F5F8F70F4 +:107BB000809371100F90DF91CF911F910F91FF90E3 +:107BC000EF90DF90CF90089580915A1690915B16B8 +:107BD00090935D1680935C1680915816909159167B +:107BE000892BB9F1809158169091591697FF06C0CC +:107BF0009FB7F89480910B01806405C09FB7F894FB +:107C000080910B018F7B80930B019FBF20918A167F +:107C10008091581690915916892BD9F02223C9F0DA +:107C2000439A809158169091591697FF06C08091FB +:107C3000581690915916019605C08091581690914A +:107C400059160197909359168093581643982150CE +:107C5000DFCF089580915E1690915F16892B11F405 +:107C60000F94903580915C1690915D16892B09F4E4 +:107C7000ABDF20915C1630915D1680915E1690917D +:107C80005F1682179307C8F030938900209388000D +:107C900080915E1690915F16009751F020915C16CE +:107CA00030915D16821B930B90935F1680935E1646 +:107CB00010925D1610925C161FC0909389008093FD +:107CC000880080915C1690915D16009789F0209154 +:107CD0005D0230915E028217930751F020915E168B +:107CE00030915F16821B930B90935D1680935C1608 +:107CF00010925F1610925E162091880030918900D4 +:107D0000809184009091850040962817390748F4A7 +:107D10008091840090918500409690938900809393 +:107D2000880008951F920F920FB60F9211240BB680 +:107D30000F922F933F934F935F936F937F938F9304 +:107D40009F93AF93BF93EF93FF9384DFFF91EF91E6 +:107D5000BF91AF919F918F917F916F915F914F9163 +:107D60003F912F910F900BBE0F900FBE0F901F9061 +:107D700018959091721080917110981749F00F9496 +:107D8000224D81E00E94487680E00F94CB63F1CFD2 +:107D90000895CF93DF93EFB7F894EC018881998130 +:107DA000AA81BB818093601690936116A09362169E +:107DB000B0936316EB0188819981AA81BB8180937E +:107DC000641690936516A0936616B0936716EA0141 +:107DD00088819981AA81BB818093681690936916E6 +:107DE000A0936A16B0936B16E90188819981AA81E4 +:107DF000BB8180936C1690936D16A0936E16B09312 +:107E00006F16EFBFDF91CF9108952FB7F894FC0163 +:107E100080819181A281B38180936C1690936D16BD +:107E2000A0936E16B0936F162FBF08952FB7F894D6 +:107E300094E0899FF0011124E05AF94E608171812C +:107E4000828193812FBF0895CF93C82FEFDF0F94C6 +:107E5000ACC024E0C29FF0011124E25DF94E208104 +:107E60003181428153810F9411C0CF91089581DFF8 +:107E7000179A1092110A169A1092120A149A0895DB +:107E800080916F008D7F80936F0090917210809130 +:107E90007110981769F09091721080917110981775 +:107EA000A1F3809171108F5F8F7080937110EDCF6F +:107EB0001092AB161092AA1680916F008260809388 +:107EC0006F000895CF93DF93CDB7DEB72C970FB631 +:107ED000F894DEBF0FBECDBF813079F120F0823043 +:107EE00009F455C080C017982091090122709FB7EE +:107EF000662329F0F89480910B01826004C0F89405 +:107F000080910B018D7F80930B019FBF409A80E091 +:107F100090E0A0E0BFE389879A87AB87BC87409851 +:107F20009FB7222329F0F89480910B01826058C0FA +:107F3000F89480910B018D7F53C016982091090110 +:107F400021709FB7662329F0F89480910B0181601E +:107F500004C0F89480910B018E7F80930B019FBF2A +:107F6000419A8BEA9AEAAAE2BEE38D839E83AF83AD +:107F7000B88741989FB7222329F0F89480910B018C +:107F800081602EC0F89480910B018E7F29C01598D6 +:107F90002091090124709FB7662329F0F8948091FD +:107FA0000B01846004C0F89480910B018B7F809357 +:107FB0000B019FBF429A8BEA9AEAAAEABEE3898341 +:107FC0009A83AB83BC8342989FB7222329F0F8940D +:107FD00080910B01846004C0F89480910B018B7F29 +:107FE00080930B019FBF2C960FB6F894DEBF0FBE97 +:107FF000CDBFDF91CF910895EF92FF920F931F9322 +:10800000CF93DF931F92CDB7DEB77B018C01061BA8 +:10801000170B460FC701800F911F49830F945DCB4B +:10802000F70181937F0149814E13F4CF0F90DF91C7 +:10803000CF911F910F91FF90EF900895DB01811177 +:108040000DC02FEF30E00F9440C520ED37E040E049 +:1080500050E00F941EC5B9018EE21DC0813069F455 +:108060002FEF30E00F9440C520ED37E040E050E0C6 +:108070000F941EC5B9018DE20EC0823071F42FEF4E +:1080800030E00F9440C520ED37E040E050E00F9421 +:108090001EC5B9018CE20D94F7B7089541E060E781 +:1080A00076E18FEF9FE0A8DF61E08EE20F940FB9D9 +:1080B00061E08DE20F940FB961E08CE20F940FB98B +:1080C00080917016882321F080911D188823A9F0D3 +:1080D0008091640290916502909371028093700286 +:1080E000809166029091670290937302809372026E +:1080F000809168029091690214C080916A02909107 +:108100006B02909371028093700280916C02909147 +:108110006D02909373028093720280916E0290912F +:108120006F02909375028093740260917002709157 +:10813000710280E083DF609172027091730281E0CE +:108140007DDFA0917402B09175022FEF30E00F94A3 +:1081500040C520ED37E040E050E00F941EC5B90166 +:108160008CE20F94F7B780912101887F8160809322 +:1081700021010895CF93C42F67FD20C0813061F0A5 +:1081800028F0823079F0833099F018C088E20F949B +:1081900048B9C7FF1DC02AC085E40F9448B9C7FF7E +:1081A0001AC024C084E40F9448B9C7FF17C01EC08A +:1081B00081E40F9448B9C7FF14C018C0C7FD16C0AA +:1081C000813049F028F0823049F0833051F00EC000 +:1081D0006C2F89E208C06C2F87E205C06C2F83E406 +:1081E00002C06C2F82E4CF910D9448B9CF910895CD +:1081F000643079F028F4613041F0623041F0089544 +:10820000683051F0603141F0089540E003C040E033 +:1082100004C041E060E002C041E061E0ABCFFF920A +:108220000F931F93CF93DF9300D01F921F92CDB770 +:10823000DEB785E0E3EEF2E0DE01119601900D92EB +:108240008A95E1F761E088E20F940FB961E089E275 +:108250000F940FB961E085E40F940FB961E087E2F4 +:108260000F940FB961E084E40F940FB961E083E4E7 +:108270000F940FB961E081E40F940FB961E082E4DB +:108280000F940FB98E010F5F1F4FF12CF801619110 +:108290008F018F2DADDFF394F5E0FF12F7CF0F9034 +:1082A0000F900F900F900F90DF91CF911F910F9132 +:1082B000FF900895F3DEB3DFEAE0F1E080818260B1 +:1082C00080838081816080838081846080838081DD +:1082D000806480830F9A179A0E9A169A0D9A159AAF +:1082E0000C9A149A26982E9A25982D9A24982C9AAE +:1082F0003F98479A0A98129A0998119A389A409882 +:10830000179A1092110A399A4198169A1092120AE5 +:108310003A9A42983B9A4398149AA1E8B0E08C911B +:108320008F7E8C938C9188608C93E0E8F0E0808164 +:108330008D7F808380818E7F808380818F73808317 +:1083400080818F7C80838C91887F82608C9380E099 +:1083500090E4909389008093880010928500109299 +:108360008400EFE6F0E080818260808310925916ED +:1083700010925816109253161092521681E0809364 +:10838000630278940895EFE9FEE88491882341F030 +:108390009091C00095FFFCCF8093C6003196F5CF39 +:1083A000EBE9FEE88491882341F09091C00095FFAD +:1083B000FCCF8093C6003196F5CF88E20F947DB94B +:1083C0004AE050E0BC0180EF96E00E94185D89E22F +:1083D0000F947DB94AE050E0BC0180EF96E00E9426 +:1083E000185D8091C00085FFFCCF8AE08093C600B5 +:1083F000E7E9FEE88491882341F09091C00095FF61 +:10840000FCCF8093C6003196F5CF85E40F947DB9FB +:108410004AE050E0BC0180EF96E00E94185D87E2E0 +:108420000F947DB94AE050E0BC0180EF96E00E94D5 +:10843000185D8091C00085FFFCCF8AE08093C60064 +:10844000E3E9FEE88491882341F09091C00095FF14 +:10845000FCCF8093C6003196F5CF84E40F947DB9AC +:108460004AE050E0BC0180EF96E00E94185D83E492 +:108470000F947DB94AE050E0BC0180EF96E00E9485 +:10848000185D8091C00085FFFCCF8AE08093C60014 +:10849000EEE8FEE88491882341F09091C00095FFBA +:1084A000FCCF8093C6003196F5CF81E40F947DB95F +:1084B0004AE050E0BC0180EF96E00E94185D82E443 +:1084C0000F947DB94AE050E0BC0180EF96E00E9435 +:1084D000185D8091C00085FFFCCF8AE08093C600C4 +:1084E000089580915D0290915E0290935D16809355 +:1084F0005C1690935B1680935A1608954F925F9284 +:108500006F927F928F929F92AF92BF92CF92DF92A3 +:10851000EF92FF920F931F93CF93DF932C012EE1E5 +:108520003AE981E090E0F9014591549144165506ED +:108530000CF062C0AC0141505109DA01AA0FBB1F17 +:10854000AA0FBB1FA45EB546FD0165917491440F4F +:10855000551F440F551F465E5546FA0165907490AD +:10856000FC01EE0FFF1FEE0FFF1FE45EF546A59026 +:10857000B490FD0105911491F901C591D491FA01CE +:1085800085909490882777FD8095982F0F94ACC0A4 +:108590006B017C01B20166197709882777FD809508 +:1085A000982F0F94ACC02B013C01B501601B710BDF +:1085B000882777FD8095982F0F94ACC09B01AC0164 +:1085C000C301B2010F940BC32B013C01BE0168191A +:1085D0007909882777FD8095982F0F94ACC09B016F +:1085E000AC01C301B2010F9411C09B01AC01C701E2 +:1085F000B6010F941ABF11C001962C5F3F4F8D3307 +:10860000910509F090CFECE0FBE965917491882722 +:1086100077FD8095982F0F94ACC06B017C0120E012 +:1086200030E040E252E4C701B6010F9439C287FD41 +:108630001BC020E030E048E452E4C701B6010F94CB +:108640000AC018168CF020E030E040E252E4C70186 +:10865000B6010F9419BF20E030E040E05FE30F94D3 +:108660000BC39B01AC013FC020E030E048E452E482 +:10867000C701B6010F9439C218163CF520E030E06E +:1086800048EC52E4C701B6010F940AC01816ECF08A +:1086900020E030E040EA50E4C701B6010F941ABF71 +:1086A0004B015C0120E030E048E452E4C701B60130 +:1086B0000F9419BF2DEC3CEC4CEC5DE30F940BC315 +:1086C0009B01AC01C501B40110C020E030E048ECD2 +:1086D00052E4C701B6010F9439C2181654F420E0D1 +:1086E00030E040E251E4C701B6010F941ABF6B01BC +:1086F0007C01C701B601DF91CF911F910F91FF90CF +:10870000EF90DF90CF90BF90AF909F908F907F9031 +:108710006F905F904F9008954F925F926F927F920B +:108720008F929F92AF92BF92CF92DF92EF92FF9281 +:108730000F931F93CF93DF932C01662381F1E2E423 +:10874000FDE08491882341F09091C00095FFFCCF1B +:108750008093C6003196F5CF70E04AE050E080EF9C +:1087600096E00E94185DE3E8F8E98491882341F0DF +:108770009091C00095FFFCCF8093C6003196F5CF55 +:108780008091C00085FFFCCF8AE08093C60080E026 +:1087900090E00E94866F60E070E0CB017EC02EE921 +:1087A00039E981E090E0F90145915491441655066C +:1087B0000CF062C0AC0141505109DA01AA0FBB1F95 +:1087C000AA0FBB1FA456B646FD0165917491440FD4 +:1087D000551F440F551F46565646FA016590749032 +:1087E000FC01EE0FFF1FEE0FFF1FE456F646A590AB +:1087F000B490FD0105911491F901C591D491FA014C +:1088000085909490882777FD8095982F0F94ACC021 +:108810006B017C01B20166197709882777FD809585 +:10882000982F0F94ACC02B013C01B501601B710B5C +:10883000882777FD8095982F0F94ACC09B01AC01E1 +:10884000C301B2010F940BC32B013C01BE01681997 +:108850007909882777FD8095982F0F94ACC09B01EC +:10886000AC01C301B2010F9411C09B01AC01C7015F +:10887000B6010F941ABF11C001962C5F3F4F803292 +:10888000910509F090CFE8E1FAE9659174918827A4 +:1088900077FD8095982F0F94ACC0DF91CF911F91F9 +:1088A0000F91FF90EF90DF90CF90BF90AF909F908F +:1088B0008F907F906F905F904F90089560E08091CF +:1088C0003E1790913F1728DF60933A1770933B173C +:1088D00080933C1790933D178091381790913917EA +:1088E0000DDE60933417709335178093361790938D +:1088F00037178FB7F89410921B178FBF08952091E8 +:10890000920230919302409194025091950260E05E +:1089100070E08FE793E40F9411C06093FB1670939F +:10892000FC168093FD169093FE16209182023091E2 +:108930008302409184025091850260E070E08FE7ED +:1089400093E40F9411C06093DA167093DB16809352 +:10895000DC169093DD16089597FF03C080912217CF +:1089600004C0FC01E752F94E808190E00895CF9356 +:10897000DF93D82FC62FC19561E00F940FB96C2FEC +:108980008D2F0F9448B96C2F70E08D2FDF91CF9110 +:108990000D94F7B7CF93C1E020E030E048E452E413 +:1089A00060913A1770913B1780913C1790913D1759 +:1089B0000F9439C218160CF0C0E06C2F88E090E0DC +:1089C000CF91D5CFCF93DF931092FF16109200175F +:1089D0001092011710920217209192023091930287 +:1089E000409194025091950260E070E08FE793E42B +:1089F0000F9411C06093FB167093FC168093FD16C4 +:108A00009093FE161092DE161092DF161092E0166A +:108A10001092E116209182023091830240918402EB +:108A20005091850260E070E08FE793E40F9411C0ED +:108A30006093DA167093DB168093DC169093DD1644 +:108A40006D9A809101018061809301019D9A8091CE +:108A5000010188608093010187ED80937A00109274 +:108A60007E0010927D0080917E00816080937E0068 +:108A700080917E00826080937E0080917E00846081 +:108A800080937E0080E888BD80916E008460809332 +:108A90006E006AEF70E080E090E00F9453B78FE0D3 +:108AA00090E09093D2168093D11660E080917C0282 +:108AB00090917D0231DE20E030E040E751E40F94F8 +:108AC0000AC087FF0AC080917C0290917D02409786 +:108AD00090937D0280937C02E8CF81E391E09093B4 +:108AE0007B0280937A0260E08091D3169091D41635 +:108AF00013DE20E030E848E953E40F9439C2181639 +:108B000054F48091D3169091D41640969093D41635 +:108B10008093D316E8CFC0917802D0917902CE012C +:108B2000EDDC20E030E040E751E40F940AC087FF1D +:108B300006C06097D0937902C0937802ECCF809101 +:108B4000CF169091D016DADC20E030E046E153E415 +:108B50000F9439C2181654F48091CF169091D01604 +:108B600040969093D0168093CF16E9CFDF91CF91A6 +:108B700008950895109243171092421710924117CA +:108B8000109240171092D9167598109241171092B2 +:108B9000401710922217A59808952F923F924F9256 +:108BA0005F926F927F928F929F92AF92BF92CF927D +:108BB000DF92EF92FF920F931F93CF93DF93CDB786 +:108BC000DEB7A9970FB6F894DEBF0FBECDBF6D8B91 +:108BD0007E8B8F8B988F5E834D833FA32EA3309324 +:108BE00025172093241710922317109227171092FD +:108BF00026170F9424B76A8F7B8F8C8F9D8F0F94CD +:108C000024B76AA37BA38CA39DA38D809E80181498 +:108C100019041CF0E1EEF4E017C0E4EFF4E08191F8 +:108C2000882339F09091C00095FFFCCF8093C60057 +:108C3000F6CF8091C00085FFFCCF22C29091C0008A +:108C400095FFFCCF8093C60081918111F7CF809171 +:108C5000C00085FFFCCF8AE08093C6008BDFAD802B +:108C6000BE808FE7AB2891F1809322178A8C9B8C72 +:108C7000AC8CBD8C8B869C86AD86BE868F8298869A +:108C8000A986BA86198A20E42A8B3CE13B8B46E40C +:108C90004C8B18A6212C1F86188AEFE78E2E912C5C +:108CA000A12CB12C89829A82AB82BC82FFE7CF2EA5 +:108CB000D12CE12CF12C1E8E1F8E18A219A221E0BE +:108CC000298F312C00E010E019A606C08093D91638 +:108CD000CDCF80E00F94CB6380911B17882309F4DC +:108CE000F9C0ECDD8D809E80892851F030903417DA +:108CF00000913517109136179090371799A609C033 +:108D000030903A1700913B1710913C17A0903D17F7 +:108D1000A9A6232D302F412F59A568A5722D8F8527 +:108D200098890F9439C218162CF038A6202E1F8768 +:108D3000B9A4B88A232D302F412F59A569897A8982 +:108D40008B899C890F940AC087FD05C0398A0A8BDC +:108D50001B8B89A48C8A0F9424B78AA09BA0ACA0FB +:108D6000BDA0681979098A099B09653C794081058C +:108D7000910538F00FDE0F9424B76AA37BA38CA370 +:108D80009DA3898C882009F44FC02D893E894F8985 +:108D9000588D632D702F812F99A50F9439C2181605 +:108DA0000CF098C00F9424B78B849C84AD84BE844F +:108DB000681979098A099B09693873418105910508 +:108DC00008F488C0D701C60189809A80AB80BC8036 +:108DD00088199909AA09BB09AD80BE80B595A795E8 +:108DE00097958795AB2819F08093221702C080933E +:108DF000D9160F9424B76F83788789879A874B0198 +:108E00005C012B853C854D855E85821A930AA40AF8 +:108E1000B50A8E8E9F8EA8A2B9A28D8888A62E88AC +:108E20009F889F86A88CA88A2D893E894F89588D56 +:108E3000632D702F812F99A50F940AC087FF1DC342 +:108E40000F9424B78F809884A984BA84681979090B +:108E50008A099B09693873418105910508F40DC39E +:108E60000F9424B76B877C878D879E87AB01BC01ED +:108E7000481959096A097B0980912617909127178B +:108E8000181619060CF41FC189819A81AB81BC8127 +:108E90008C0D9D1DAE1DBF1D8D809E80B595A79527 +:108EA00097958795892809F4E5C2809322178091C8 +:108EB00026179091271701969093271780932617CE +:108EC0009D88998AAE88AA8ABF88BB8A888C8C8A3A +:108ED00021E0298F20E030E040EA51E46D897E896D +:108EE0008F89988D0F941ABF9B01AC01632D702F51 +:108EF000812F99A50F9439C2181694F4E9E2F9E983 +:108F00008491882341F09091C00095FFFCCF80931D +:108F1000C6003196F5CF8091C00085FFFCCFB0C070 +:108F20000F9424B78A8C9B8CAC8CBD8C6819790902 +:108F30008A099B09613D77408105910508F451C07C +:108F40008D809E80892889F080912217A82EB12CCF +:108F5000E3E2F9E984918823C9F09091C00095FF7C +:108F6000FCCF8093C6003196F5CF8091D916A82EFC +:108F7000B12CEDE1F9E98491882341F09091C00092 +:108F800095FFFCCF8093C6003196F5CF22E030E00C +:108F9000432D502F612F79A580EF96E00E940B5E44 +:108FA000E9E1F9E98491882341F09091C00095FFAF +:108FB000FCCF8093C6003196F5CF4AE050E0B50172 +:108FC00080EF96E00E94185D8091C00085FFFCCF85 +:108FD0008AE08093C6000F9424B76A8F7B8F8C8FB2 +:108FE0009D8F0F9424B74B015C010F9424B74B84E1 +:108FF0005C846D847E842F81388549855A85420E34 +:10900000531E641E751E84189508A608B708860EA0 +:10901000971EA81EB91E31E883163FE4930632E17D +:10902000A306B10490F0ECEFF8E98491882341F0B5 +:109030009091C00095FFFCCF8093C6003196F5CF8C +:109040008091C00085FFFCCF1BC0809126179091B6 +:1090500027178EA09FA0881699060CF03ACEE0EA5A +:10906000F8E98491882341F09091C00095FFFCCFEE +:109070008093C6003196F5CF8091C00085FFFCCF6C +:109080008AE08093C60081E080932317109227170F +:1090900010922617A9960FB6F894DEBF0FBECDBF6B +:1090A000DF91CF911F910F91FF90EF90DF90CF90C4 +:1090B000BF90AF909F908F907F906F905F904F90F8 +:1090C0003F902F9008954E8C5F8C68A079A0440E3D +:1090D000551E661E771E8E8C9F8CA8A0B9A0841A80 +:1090E000950AA60AB70AC501B40129813A814B81C4 +:1090F0005C810F94B9C4A30192010F941EC52C0D7D +:109100003D1D4E1D5F1D2431310541055105ECF01B +:1091100069017A012CEEC216D104E104F1042CF0AD +:109120006BEEC62ED12CE12CF12C30E8C316D10405 +:10913000E104F104CCF05EEF852E912CA12CB12C32 +:109140008C189D08AE08BF080AC034E1C32ED12C8C +:10915000E12CF12C44E1842E912CA12CB12C89829C +:109160009A82AB82BC8204C0C982DA82EB82FC8222 +:10917000E2E9F9E98491882341F09091C00095FFDC +:10918000FCCF8093C6003196F5CF2AE030E0B701DE +:10919000A60180EF96E00E94E05CEDE8F9E9849199 +:1091A000882341F09091C00095FFFCCF8093C600CA +:1091B0003196F5CF2AE030E049815A816B817C817C +:1091C00080EF96E00E94E05CE6E8F9E9849188236C +:1091D00041F09091C00095FFFCCF8093C60031967E +:1091E000F5CF22E030E049895A896B897C8980EF8C +:1091F00096E00E940B5EEFE7F9E98491882341F045 +:109200009091C00095FFFCCF8093C6003196F5CFBA +:1092100022E030E048A5522D6F85788980EF96E0F6 +:109220000E940B5E8091C00085FFFCCF8AE0809396 +:10923000C600809126179091271703970CF424CE2F +:1092400069817A818B819C810F94ACC020E030E0F1 +:1092500040E850E40F940BC34B015C0129893A8923 +:109260004B895C8968A5722D8F8598890F9419BFE9 +:1092700020ED3FE049E450E40F940BC320E030E0E0 +:1092800040E05FE30F940BC39B01AC01C501B40147 +:109290000F9411C04B015C01C301B2010F94ACC02B +:1092A00020E030E04AE754E40F9411C02B013C0168 +:1092B000E9E7F9E98491882341F09091C00095FF96 +:1092C000FCCF8093C6003196F5CF22E030E0B501A7 +:1092D000A40180EF96E00E940B5EE3E7F9E9849138 +:1092E000882341F09091C00095FFFCCF8093C60089 +:1092F0003196F5CF22E030E0B301A20180EF96E095 +:109300000E940B5E8091C00085FFFCCF8AE08093B5 +:10931000C6002AE939E949E15FE3C501B4010F94C8 +:109320000BC34B015C01609330177093311780932E +:109330003217909333179B01AC010F941ABFA3010E +:1093400092010F9411C060932C1770932D17809386 +:109350002E1790932F17A3019201C501B4010F940A +:109360000BC320E030E040E05EE30F940BC360935A +:1093700028177093291780932A1790932B17E5E6E7 +:10938000F9E98491882341F09091C00095FFFCCFCA +:109390008093C6003196F5CF8091C00085FFFCCF49 +:1093A0008AE08093C600EFE5F9E98491882341F0D3 +:1093B0009091C00095FFFCCF8093C6003196F5CF09 +:1093C00040913017509131176091321770913317D7 +:1093D00022E030E080EF96E00E940B5E8091C000BA +:1093E00085FFFCCF8AE08093C600E9E5F9E9849126 +:1093F000882341F09091C00095FFFCCF8093C60078 +:109400003196F5CF40912C1750912D1760912E1762 +:1094100070912F1722E030E080EF96E00E940B5E03 +:109420008091C00085FFFCCF8AE08093C600E3E511 +:10943000F9E98491882341F09091C00095FFFCCF19 +:109440008093C6003196F5CF409128175091291787 +:1094500060912A1770912B1722E030E080EF96E0A0 +:109460000E940B5E8091C00085FFFCCF8AE0809354 +:10947000C6000ACD8093D9161ACD198E2BCDCF9365 +:10948000DF93D82FC62F81E08093FB090F94403FD4 +:1094900080919F0A882339F010929F0A60E08DE93D +:1094A0009AE00E9442CE66DB179A1092110A169A31 +:1094B0001092120A149AC6D280E00F94CB638FB731 +:1094C000F894909102019460909302018FBF84EF11 +:1094D00091E00F948AB78FB7F894909102019B7F27 +:1094E000909302018FBF84E690E00F948AB7DD234A +:1094F00009F463C00E94FA6FCC2319F081E798E960 +:1095000002C083E698E90F947562E2E4FDE084917D +:10951000882341F09091C00095FFFCCF8093C60056 +:109520003196F5CFCC2391F0EFE3F8E984918823CD +:1095300041F09091C00095FFFCCF8093C60031961A +:10954000F5CF8091C00085FFFCCF11C0ECE1F8E9B8 +:109550008491882341F09091C00095FFFCCF8093C7 +:10956000C6003196F5CF8091C00085FFFCCF8AE020 +:109570008093C600809101018062809301018091F7 +:1095800001018860809301019FB7F89480910201E6 +:109590008062809302019FBF6FEF70E086E00F94BE +:1095A000F7B78FEF90E090930B0A80930A0A80ED53 +:1095B00097E0DF91CF910D948AB7CC2319F088E022 +:1095C00098E902C088EF97E90F947562E2E4FDE044 +:1095D0008491882341F09091C00095FFFCCF809347 +:1095E000C6003196F5CFCC2391F0EFEDF7E98491E9 +:1095F000882341F09091C00095FFFCCF8093C60076 +:109600003196F5CF8091C00085FFFCCF11C0E7EC0B +:10961000F7E98491882341F09091C00095FFFCCF39 +:109620008093C6003196F5CF8091C00085FFFCCFB6 +:109630008AE08093C600DF91CF9108952F923F92E8 +:109640004F925F926F927F928F929F92AF92CF9242 +:10965000DF92EF92FF920F931F93CF93DF93CDB7DB +:10966000DEB72C970FB6F894DEBF0FBECDBF1C013E +:109670002A013B0109831A832B833C83AA2049F0EA +:1096800028E631E03A87298780E090E0A0EAB0E45C +:1096900008C0ADE2B0E0BA87A98780E090E0A0E71B +:1096A000B1E48D839E83AF83B8870F9424B70F9462 +:1096B000AAC08101000F111F000F111FD801A45B68 +:1096C000B84E4D012D913D914D915C910F9419BF74 +:1096D00020E030E04AEF54E40F9439C218160CF041 +:1096E00099C10F9424B70F94AAC0F40160837183C9 +:1096F0008283938320E030E0A901C701B6010F9473 +:109700000AC0811107C0F101EE0FFF1FEC5BF84E9C +:10971000118210829801245A384E4901A301920106 +:10972000D4016D917D918D919C910F940AC08823F5 +:10973000B1F120E030E0A901C301B2010F9439C2B8 +:10974000F801E459F84E181604F580E090E0A0E81E +:10975000BFE380839183A283B383F401408251826B +:1097600062827382F801E953F94E89819A81AB8153 +:10977000BC8180839183A283B383F101EE0FFF1F2D +:10978000ED53F94E118210820AC0108211821282AA +:109790001382D4014D925D926D927C92139720E0DA +:1097A00030E040E85FE3F801E459F84E60817181F0 +:1097B000828193810F940AC081118BC0AA2059F035 +:1097C0002DEC3CEC4CE45FE3C301B2010F940BC3FE +:1097D0009B01AC0104C020E030E046E153E4698124 +:1097E0007A818B819C810F940AC087FF72C04101EE +:1097F000880C991CF401ED53F94E808191810196FA +:1098000091838083AA2019F020E130E002C028E093 +:1098100030E0281739070CF05CC0F801E953F94E25 +:10982000208131814281538169817A818B819C8140 +:109830000F9419BF20E030E040E050E40F940AC0DC +:109840009101220F331F3C872B8787FF09C0F4014A +:10985000E154F94E8081918101969183808306C005 +:10986000EB85FC85E154F94E11821082F401E1543C +:10987000F94E20813181AA2019F082E090E002C0E7 +:1098800085E090E0821793079CF480911D1888234F +:1098900021F080E090E00F94AD716A2D81E0EFDD62 +:1098A00080911D18882321F08BE590E00F94AD7115 +:1098B000F801E953F94E89819A81AB81BC8180839B +:1098C0009183A283B383EB85FC85ED53F94E11821E +:1098D0001082A301920169817A818B819C810F940E +:1098E00039C287FD19C0D801A459B84E4D0120E0F6 +:1098F00030E040E85FE36D917D918D919C910F94F4 +:109900000AC0811109C080E090E0A0E0B0E4F40159 +:1099100080839183A283B38320E030E0A901C70153 +:10992000B6010F9439C218160CF074C02D813E8117 +:109930004F815885C301B2010F9419BF29813A8123 +:109940004B815C810F940AC087FF1AC02D813E8134 +:109950004F815885C301B2010F941ABF9B01AC011E +:1099600069817A818B819C810F940AC087FF08C02E +:10997000F101EE0FFF1FEC5BF84E118210824AC01E +:10998000F801E459F84E20E030E040E85FE3608100 +:109990007181828193810F9439C21816DCF5F1012F +:1099A000EE0FFF1FEC5BF84E808191810196918351 +:1099B0008083880F991F29853A852817390754F520 +:1099C00080911D18882321F080E090E00F94AD7104 +:1099D0006A2D80E054DD80911D188823D9F08AE536 +:1099E00090E02C960FB6F894DEBF0FBECDBFDF918E +:1099F000CF911F910F91FF90EF90DF90CF90AF909C +:109A00009F908F907F906F905F904F903F902F909E +:109A10000D94AD712C960FB6F894DEBF0FBECDBF7E +:109A2000DF91CF911F910F91FF90EF90DF90CF903A +:109A3000AF909F908F907F906F905F904F903F90EE +:109A40002F9008952F923F924F925F926F927F9244 +:109A50008F929F92AF92BF92CF92DF92EF92FF923E +:109A60000F931F93CF93DF93CDB7DEB728970FB631 +:109A7000F894DEBF0FBECDBF80911B17882309F479 +:109A80002FC30F945E446091221770E080E090E055 +:109A90000F94ACC06B017C01409034175090351787 +:109AA000609036177090371760914017709141178A +:109AB000882777FD8095982F0F94ACC0AB01BC012F +:109AC000AA24A3949301820180E090E0B7DD609125 +:109AD000D91670E080E090E00F94ACC06B017C017F +:109AE00040903A1750903B1760903C1770903D178C +:109AF0006091421770914317882777FD8095982FC2 +:109B00000F94ACC0AB01BC01A12C9301820181E098 +:109B100090E094DD80903A1790903B17A0903C170E +:109B2000B0903D170091421710914317B801882754 +:109B300077FD8095982F0F94ACC0A50194010F94E8 +:109B400019BF6B017C016093031770930417809316 +:109B500005179093061720E030E040E251E40F949F +:109B600039C2181624F481E08093FA16F7C020E079 +:109B700030E040E251ECC701B6010F940AC087FD06 +:109B800002C0012B21F481E08093FA160CC1809170 +:109B9000FA16882351F01092171710921817109286 +:109BA000191710921A171092FA16209196023091F6 +:109BB00097024091980250919902C701B6010F9403 +:109BC0000BC369837A838B839C8360930F17709395 +:109BD0001017809311179093121720911717309137 +:109BE00018174091191750911A17C701B6010F9411 +:109BF0001ABF2B013C012090FF16309000171091E6 +:109C00000117009102179101412F502F0F940AC0A4 +:109C100087FD14C02090FB163090FC161091FD16A5 +:109C20000091FE169101412F502FB201C3010F94F4 +:109C300039C218161CF01201162D072DC101A12FD3 +:109C4000B02F8093171790931817A0931917B093FC +:109C50001A172091920230919302409194025091F0 +:109C60009502B101812F902F0F940BC36D837E83DA +:109C70008F83988760930B1770930C1780930D1741 +:109C800090930E17209113173091141740911517C8 +:109C900050911617C501B4010F9419BF20918E027F +:109CA00030918F0240919002509191020F940BC31A +:109CB00020ED3CEC4CE45DE30F940BC32B013C0125 +:109CC00023E333E343E75FE36091071770910817DD +:109CD0008091091790910A170F940BC39B01AC0157 +:109CE000C301B2010F941ABF2B013C016093071707 +:109CF000709308178093091790930A172D813E815E +:109D00004F81588569817A818B819C810F941ABF1C +:109D1000A30192010F9419BF2B013C0120E030E018 +:109D20004FE753E40F9439C220E030E0A901181640 +:109D3000E4F4C701B6010F9439C218167CF4A701E8 +:109D40009601B101812F902F0F9419BF60931717BF +:109D5000709318178093191790931A17412C512C50 +:109D6000BFE76B2EB3E47B2E21C0C301B2010F9479 +:109D70000AC087FF1BC020E030E0A901C701B6017F +:109D80000F940AC087FF0FC0A7019601B101812F70 +:109D9000902F0F9419BF6093171770931817809323 +:109DA000191790931A17412C512C320180921317D6 +:109DB00090921417A0921517B09216176091D116B1 +:109DC0007091D216882777FD8095982F0F94ACC09C +:109DD0009B01AC01C501B4010F9439C21816DCF423 +:109DE00060917A0270917B02882777FD8095982F89 +:109DF0000F94ACC09B01AC01C501B4010F940AC023 +:109E000087FF09C0C301B2010F9479C075956795AA +:109E10006093D91602C01092D9160F9424B70091FE +:109E2000D5161091D6162091D7163091D816601BF2 +:109E3000710B820B930B653C79408105910560F0B5 +:109E40000F94CA440F9424B76093D5167093D61616 +:109E50008093D7169093D81680903417909035172A +:109E6000A0903617B0903717609140177091411746 +:109E7000882777FD8095982F0F94ACC0A501940199 +:109E80000F9419BF6B017C016093E2167093E31687 +:109E90008093E4169093E516209186023091870214 +:109EA00040918802509189020F940BC369837A8391 +:109EB0008B839C836093EE167093EF168093F0165D +:109EC0009093F1162091F6163091F7164091F816FE +:109ED0005091F916C701B6010F941ABF8B011C01EE +:109EE0006090DE167090DF165090E0164090E116FC +:109EF0009301452D542D0F940AC087FD11C0609029 +:109F0000DA167090DB165090DC164090DD16930147 +:109F1000452D542DB801C1010F9439C218161CF4F7 +:109F20008301252C342CC801D1018093F61690931F +:109F3000F716A093F816B093F9162091820230918B +:109F400083024091840250918502B801C1010F94AF +:109F50000BC36D837E838F8398876093EA1670931B +:109F6000EB168093EC169093ED162091F21630913B +:109F7000F3164091F4165091F516C501B4010F94F3 +:109F800019BF20917E0230917F0240918002509152 +:109F900081020F940BC320ED3CEC4CE45DE30F9485 +:109FA0000BC32B013C0123E333E343E75FE3609101 +:109FB000E6167091E7168091E8169091E9160F94D5 +:109FC0000BC39B01AC01C301B2010F941ABF2B015B +:109FD0003C016093E6167093E7168093E816909321 +:109FE000E9168092F2169092F316A092F416B092AF +:109FF000F5162D813E814F81588569817A818B814B +:10A000009C810F941ABFA30192010F9419BF2B01D9 +:10A010003C0120E030E04FE753E40F9439C220E0E8 +:10A0200030E0A9011816ACF4C701B6010F9439C28B +:10A0300018166CF5A7019601B801C1010F9419BF5C +:10A040006093F6167093F7168093F8169093F916AE +:10A050001EC0C301B2010F940AC087FF22C020E0D6 +:10A0600030E0A901C701B6010F940AC087FF16C0EE +:10A07000A7019601B801C1010F9419BF6093F616AC +:10A080007093F7168093F8169093F91607C0412C39 +:10A09000512CFFE76F2EF3E47F2E03C0412C512C8F +:10A0A000320120E030E040E751E4C501B4010F94F3 +:10A0B00039C218169CF420E030E046E153E4C501B3 +:10A0C000B4010F940AC087FF09C0C301B2010F9405 +:10A0D00079C0759567956093221702C01092221778 +:10A0E00028960FB6F894DEBF0FBECDBFDF91CF919B +:10A0F0001F910F91FF90EF90DF90CF90BF90AF90A6 +:10A100009F908F907F906F905F904F903F902F9097 +:10A110000895CF93C82F0F94BA450E9443708111C0 +:10A1200034C0E2E4FDE09491992341F08091C000B5 +:10A1300085FFFCCF9093C6003196F5CF6C2F70E071 +:10A140004AE050E080EF96E00E94185D8091C000E8 +:10A1500085FFFCCF8AE08093C600EAE9F7E98491A5 +:10A16000882341F09091C00095FFFCCF8093C600FA +:10A170003196F5CF8091C00085FFFCCF8AE08093B7 +:10A18000C6008DE897E90F9475620E94FA6F80917E +:10A1900001018062809301018091010188608093B8 +:10A1A0000101809101018460809301019FB7F894BF +:10A1B000809102018860809302019FBF9FB7F8944D +:10A1C000809102018062809302019FBF9FB7F89443 +:10A1D000809102018460809302019FBF8FEF90E025 +:10A1E00090930B0A80930A0A80911D18882329F006 +:10A1F0008DE590E0CF910D94AD71CF910895CF93FF +:10A20000C82F0F94BA450E944370811134C0E2E414 +:10A21000FDE09491992341F08091C00085FFFCCF2F +:10A220009093C6003196F5CF6C2F70E04AE050E075 +:10A2300080EF96E00E94185D8091C00085FFFCCF02 +:10A240008AE08093C600E0E6F7E98491882341F034 +:10A250009091C00095FFFCCF8093C6003196F5CF5A +:10A260008091C00085FFFCCF8AE08093C60083E523 +:10A2700097E90F9475620E94FA6F80911D188823E8 +:10A2800029F08CE590E0CF910D94AD71CF910895B8 +:10A29000A5980E944370811125C0E2E4FDE08491FD +:10A2A000882341F09091C00095FFFCCF8093C600B9 +:10A2B0003196F5CFEAE1F7E98491882341F0909156 +:10A2C000C00095FFFCCF8093C6003196F5CF8091FA +:10A2D000C00085FFFCCF8AE08093C60089E097E943 +:10A2E0000F9475620C94FA6FA5980E9443708111C7 +:10A2F00025C0E2E4FDE08491882341F09091C00004 +:10A3000095FFFCCF8093C6003196F5CFE0EDF6E9DE +:10A310008491882341F09091C00095FFFCCF8093F9 +:10A32000C6003196F5CF8091C00085FFFCCF8AE052 +:10A330008093C6008FEB96E90F9475620C94FA6FC8 +:10A340001F920F920FB60F9211240BB60F920F931C +:10A350001F932F933F934F935F936F937F938F93AD +:10A360009F93AF93BF93CF93DF93EF93FF9380912E +:10A370007702811112C08091D9168093BE1688236E +:10A3800011F0759A01C07598809122178093BD16BF +:10A39000882311F0A59A01C0A5989091BE168091CE +:10A3A0007702981708F475989091BD1680917702FE +:10A3B000981708F4A598809177028F5F8F77809324 +:10A3C00077028091760290E08B30910508F093C07F +:10A3D000FC01EE58FF4F0D943AC510927B0080E4CB +:10A3E00080937C0080917A00806480937A000F943F +:10A3F0007E6281E019C020917800309179008091CF +:10A40000B9169091BA16A091BB16B091BC16820FE6 +:10A41000931FA11DB11D8093B9169093BA16A093F6 +:10A42000BB16B093BC1682E08093760264C0109293 +:10A430007B0082E480937C0080917A00806480932A +:10A440007A000F947E6283E0EFCF20917800309104 +:10A4500079008091B5169091B616A091B716B0917B +:10A46000B816820F931FA11DB11D8093B51690934E +:10A47000B616A093B716B093B81684E0D5CF109255 +:10A480007B0081E480937C0080917A0080648093DB +:10A490007A000F947E6285E0C7CF209178003091DA +:10A4A00079008091B1169091B216A091B316B09137 +:10A4B000B416820F931FA11DB11D8093B116909306 +:10A4C000B216A093B316B093B41686E0ADCF0F9436 +:10A4D0007E6287E0A9CF88E0A7CF0F947E6289E0F3 +:10A4E000A3CF109276028091B0168F5F8093B01642 +:10A4F00002C0109276028091B016803108F463C0D9 +:10A5000080911B17811110C08091B9169091BA16D5 +:10A5100090933F1780933E178091B5169091B61691 +:10A52000909339178093381781E080931B1710920E +:10A53000B0161092B9161092BA161092BB1610925D +:10A54000BC161092B1161092B2161092B316109259 +:10A55000B4161092AC161092AD161092AE16109260 +:10A56000AF161092B5161092B6161092B71610923A +:10A57000B81620913E1730913F178091D3169091D5 +:10A58000D4168217930714F080E0C3DD20913E17A4 +:10A5900030913F1780917C0290917D0228173907F6 +:10A5A00014F080E02CDE209138173091391780911B +:10A5B000CF169091D016821793072CF01092411766 +:10A5C0001092401765DE209138173091391780912D +:10A5D000780290917902281739070CF085DE00E0A7 +:10A5E00010E0E801CC0FDD1FC45ED84E8881998150 +:10A5F0001816190644F461E0802F0F94623F888199 +:10A600009981019709C0892B49F060E0802F0F9450 +:10A61000623F888199810196998388830F5F1F4FDC +:10A6200003301105F1F6FF91EF91DF91CF91BF91CA +:10A63000AF919F918F917F916F915F914F913F91DA +:10A640002F911F910F910F900BBE0F900FBE0F9087 +:10A650001F9018952CEA35EC47E25EE30D940BC38E +:10A660002CEA35EC47E25EE30D9411C02CEA35ECA0 +:10A6700047E25EE30D9411C02CEA35EC47E25EE35D +:10A680000D940BC3FC019491903249F0892F8B7F7C +:10A69000893029F081E09A3019F080E0089581E056 +:10A6A0000895CF93DF93CDB7DEB7C054D1090FB66D +:10A6B000F894DEBF0FBECDBF88E0E8EEF2E0DE0129 +:10A6C000D99601900D928A95E1F788E0E0EFF2E0EB +:10A6D000DE01D19601900D928A95E1F788E0E8EFCE +:10A6E000F2E0DE01999601900D928A95E1F788E0FB +:10A6F000E0E0F3E0DE01919601900D928A95E1F79A +:10A7000088E0E8E0F3E0DE01599601900D928A9529 +:10A71000E1F788E0E0E1F3E0DE01519601900D926F +:10A720008A95E1F788E0E8E1F3E0DE01199601900F +:10A730000D928A95E1F788E0E0E2F3E0DE01119600 +:10A7400001900D928A95E1F7AE01475C5F4F60E0A2 +:10A7500084EA97E10E94675BAE014F5C5F4F61E066 +:10A7600084EA97E10E94675BAE01475D5F4F62E05C +:10A7700084EA97E10E94675BAE014F5D5F4F63E043 +:10A7800084EA97E10E94675BAE01475E5F4F64E039 +:10A7900084EA97E10E94675BAE014F5E5F4F65E020 +:10A7A00084EA97E10E94675BAE01475F5F4F66E016 +:10A7B00084EA97E10E94675BAE014F5F5F4F67E0FD +:10A7C00084EA97E10E94675BC05CDF4F0FB6F894A4 +:10A7D000DEBF0FBECDBFDF91CF9108950F931F93C2 +:10A7E000CF93DF93EB01142F022F482F60E084EA10 +:10A7F00097E10E94C959612F84EA97E10F94E4B967 +:10A8000011E1FE016491662311F0111117C01123AB +:10A8100039F060E284EA97E10F94E4B91150F7CF80 +:10A82000602F84EA97E10F94E4B960E284EA97E14B +:10A83000DF91CF911F910F910D94E4B984EA97E1D4 +:10A840000F94E4B921961150DCCFEF92FF920F9351 +:10A850001F93CF93DF93EB01E42E8901F90101905F +:10A860000020E9F7F22EFE1A92E1F90E482F60E07F +:10A8700084EA97E10E94C9596E2D84EA97E10F940A +:10A88000E4B9FE016491662311F0F11019C06AE386 +:10A8900084EA97E10F94E4B9FF2039F060E284EA9A +:10A8A00097E10F94E4B9FA94F7CFB80184EA97E1FD +:10A8B000DF91CF911F910F91FF90EF900D94E3B92D +:10A8C00084EA97E10F94E4B92196FA94DACFCF9213 +:10A8D000DF92EF92FF920F931F93CF93DF93D82EC7 +:10A8E000C62E7A01E901482F84EA97E10E94C959EE +:10A8F00081E0E816F10469F182E0E816F10409F05C +:10A900004FC0BE0184EA97E10F94E3B9FE010190C4 +:10A910000020E9F73197EC1BFD0B6C2D6E0F4D2DD0 +:10A9200084EA97E10E94C95969E375E084EA97E1F6 +:10A930000F94E3B9FE0101900020E9F76C2D6C1B28 +:10A940006E0F4D2D84EA97E10E94C9596EE175E0C2 +:10A9500028C0BE0184EA97E10F94E3B9FE0101909B +:10A960000020E9F73197EC1BFD0B6C2D6E0F4D2D80 +:10A9700084EA97E10E94C95969E375E084EA97E1A6 +:10A980000F94E3B9FE0101900020E9F76C2D6C1BD8 +:10A990006E0F4D2D84EA97E10E94C959B80101C09C +:10A9A000BE0184EA97E1DF91CF911F910F91FF9053 +:10A9B000EF90DF90CF900D94E3B98093530A91E02C +:10A9C00090939E02682F8EEF9FE00F946FCB809143 +:10A9D0008E17813019F482E080938E170895E3E694 +:10A9E000FCE0608181E0682760838BEB9FE00D9441 +:10A9F0006FCBCF9380910101846080930101CAE005 +:10AA00009FB7F894809102018460809302019FBFF8 +:10AA100084E690E00F948AB79FB7F8948091020182 +:10AA20008B7F809302019FBF84E690E00F948AB7EA +:10AA3000C15031F7CF91089582E080939B0210922C +:10AA40000718D7CF109224188DE99AE00E9403D3FB +:10AA50001092A21708950F93E0919C02F0919D022D +:10AA6000E817F907C9F090939D0280939C024093E8 +:10AA70009D1750939E1760939F177093A017002304 +:10AA800039F08DE1E6E2F8E1DF011D928A95E9F700 +:10AA9000222311F00F91D0CF0F9108950F9361E011 +:10AAA00080EC9FE00F946FCB60E08FEB9FE00F9402 +:10AAB0006FCB60E08EEB9FE00F946FCB60E08DEB8F +:10AAC0009FE00F946FCB60E08CEB9FE00F946FCB17 +:10AAD00001E020E040E050E0BA018AE991E0BBDF0C +:10AAE000109236180F9108950F93FB01BA01A90136 +:10AAF00020919C0230919D023093271820932618B4 +:10AB000020919D1730919E17309329182093281873 +:10AB100022E020939B0290932B1880932A18F093A5 +:10AB20002D18E0932C18CB01AA2797FDA095BA2FDA +:10AB300080932E1890932F18A0933018B09331184B +:10AB4000662757FD6095762F481B590B6A0B7B0BC8 +:10AB5000409332185093331860933418709335181B +:10AB600040815181662757FD6095762F481B590B10 +:10AB70006A0B7B0B00E021E088E391E06CDF0F9132 +:10AB800008950F9361E080912318811160E0609334 +:10AB900023188FEF9FE00F946FCB0F944E4001E08E +:10ABA00021E047E050E060E070E082E391E053DFB5 +:10ABB0000F9108950F9361E080912318811160E057 +:10ABC000609323188FEF9FE00F946FCB0F944E404C +:10ABD00001E021E049E050E060E070E088E691E0CB +:10ABE0003ADF0F9108950F9301E021E040E050E03B +:10ABF000BA0131DF0F9108957F928F929F92AF92A9 +:10AC0000BF92CF92DF92EF92FF920F931F93CF9359 +:10AC1000DF9380919D1790919E17A0919F17B091FF +:10AC2000A01781309048A105B10540F010929D1702 +:10AC300010929E1710929F171092A01780919D1747 +:10AC400090919E17A0919F17B091A0174091A217C5 +:10AC500050E060E070E084179507A607B70710F48E +:10AC60008093A217A090A2179090A31792FA99240C +:10AC700090F8B12C8824839480918E17811127C07D +:10AC8000AA2019F07724739425C080919B02882311 +:10AC9000D9F0E091530AF0E0EE0FFF1FE558F448B9 +:10ACA0006591749180919D1790919E17A0919F1727 +:10ACB000B091A01723E0892B8A2B8B2B11F443E052 +:10ACC00001C040E28B2D8ADD91100DC0DBCF8230B8 +:10ACD000D9F0712C05ED1FE7C0E0D0E0CA2CD12CD3 +:10ACE000E12CF12C60C080919D1790919E17A0914E +:10ACF0009F17B091A017892B8A2B8B2B09F0C2CFFD +:10AD00009BDE82E391E034C0A110BCCF80919B0216 +:10AD10008823D9F0E091530AF0E0EE0FFF1FE750CF +:10AD2000F6486591749180919D1790919E17A0911E +:10AD30009F17B091A01723E0892B8A2B8B2B11F43E +:10AD400043E001C040E28B2D49DD992009F49ACF00 +:10AD500080919D1790919E17A0919F17B091A01779 +:10AD6000892B8A2B8B2B09F08DCF66DE80E691E054 +:10AD7000DF91CF911F910F91FF90EF90DF90CF90D7 +:10AD8000BF90AF909F908F907F902DCF80919B022E +:10AD900081110CC0911021C0739421960E5F1F4F3A +:10ADA000C730D105B9F17A10F7CFF0CFF80165912E +:10ADB000749180919D1790919E17A0919F17B091CB +:10ADC000A01720E28C159D05AE05BF0511F44EE3DA +:10ADD00001C040E28B2D02DDDDCF80919D17909167 +:10ADE0009E17A0919F17B091A0178C159D05AE05D9 +:10ADF000BF0591F621DE8C2FDF91CF911F910F912E +:10AE0000FF90EF90DF90CF90BF90AF909F908F908A +:10AE10007F90D3CD472D50E060E070E080919D178A +:10AE200090919E17A0919F17B091A0178417950736 +:10AE3000A607B70780F0472D50E04150510966271B +:10AE400057FD6095762F40939D1750939E17609302 +:10AE50009F177093A01740919D178091A21790E0C3 +:10AE60000396242F30E0821793075CF48DEF840F54 +:10AE70008093A21780929B028CEFA82EA40EBB2475 +:10AE8000BA94B394A39483E08B1508F0F5CEDF91C8 +:10AE9000CF911F910F91FF90EF90DF90CF90BF90D7 +:10AEA000AF909F908F907F9008950F9301E021E0E5 +:10AEB00040E050E0BA01CFDD0F910895CF92DF92CC +:10AEC000EF92FF920F931F93CF93DF9380919D1783 +:10AED00090919E17A0919F17B091A0178130904834 +:10AEE000A105B10540F010929D1710929E17109287 +:10AEF0009F171092A01780919D1790919E17A09177 +:10AF00009F17B091A0174091A21750E060E070E049 +:10AF100084179507A607B70710F48093A217D0915E +:10AF2000A2171091A31712FB112710F9C0E024E01B +:10AF3000C22ED12CE12CF12C01E040919D175091B3 +:10AF40009E1760919F177091A017D11134C0809106 +:10AF50009B028823A1F0E091530AF0E0EE0FFF1F5F +:10AF6000E558F4488591949123E0452B462B472BD7 +:10AF700011F443E001C040E2BC018C2F2FDC11230F +:10AF800009F4DBC080919D1790919E17A0919F17A7 +:10AF9000B091A017892B8A2B8B2B09F0CEC04CDDEA +:10AFA00082E391E0DF91CF911F910F91FF90EF909D +:10AFB000DF90CF9018CED13069F580919B02882325 +:10AFC000A9F0E091530AF0E0EE0FFF1FED50F148B9 +:10AFD000859194912EE7413051056105710511F479 +:10AFE0004EE301C040E2BC018C2FF8DB112309F4D1 +:10AFF000A4C080919D1790919E17A0919F17B0912A +:10B00000A0170197A105B10509F097C015DD8CE5E2 +:10B0100091E08AC0D23069F580919B028823A9F023 +:10B02000E091530AF0E0EE0FFF1FEB51F1488591DC +:10B0300094912EE7423051056105710511F44EE3FC +:10B0400001C040E2BC018C2FC9DB112309F475C09B +:10B0500080919D1790919E17A0919F17B091A01776 +:10B060000297A105B10509F068C0E6DC86ED91E024 +:10B070005BC0D33069F580919B028823A9F0E091F1 +:10B08000530AF0E0EE0FFF1FE952F14885919491C9 +:10B090002EE7433051056105710511F44EE301C0FF +:10B0A00040E2BC018C2F9ADB112309F446C0809149 +:10B0B0009D1790919E17A0919F17B091A01703978D +:10B0C000A105B10509F039C0B7DC80EB91E02CC0D7 +:10B0D000D43099F580919B028823A9F0E091530A1E +:10B0E000F0E0EE0FFF1FEF5FF048859194912EE79F +:10B0F000443051056105710511F44EE301C040E291 +:10B10000BC018C2F6BDB1123C1F080919D179091B6 +:10B110009E17A0919F17B091A0170497A105B105A4 +:10B1200061F48ADC8AE891E0DF91CF911F910F9161 +:10B13000FF90EF90DF90CF90B8CE40919D17509147 +:10B140009E1760919F177091A017453051056105BA +:10B15000710540F0C0929D17D0929E17E0929F1704 +:10B16000F092A01740919D178091A21790E003964E +:10B17000242F30E0821793074CF48DEF840F8093D7 +:10B18000A21700939B02DCEFD40FCFEFCF5FDF5FFE +:10B19000C43008F4D2CEDF91CF911F910F91FF9070 +:10B1A000EF90DF90CF90089580E090E0A0E8BFE3BB +:10B1B00080938A1790938B17A0938C17B0938D1759 +:10B1C0007DCE0F936091800A81E068276093800AAA +:10B1D0008FEA9FE00F946FCB0F944E4001E021E087 +:10B1E00042E050E060E070E088EC91E034DC0F91E8 +:10B1F000089520E044E064E184EA97E10E94FC596C +:10B2000050DA84EA97E10C94BD590F93F2DF01E024 +:10B2100020E040E050E0BA0180E691E01CDC0F91B4 +:10B220000895F3DF86E090E0909322188093211830 +:10B230000895EBDF85E090E0909322188093211829 +:10B24000089581E08093540A61E08AE39BE90E94BB +:10B25000B563DBCF61E086E39BE90E94B563D5CFA0 +:10B2600061E080E39BE90E94B563CFCF61E08CE2AF +:10B270009BE90E94B563C9CF109243171092421701 +:10B28000109241171092401710920B0A10920A0A5E +:10B29000BCCF87ED90E0909343178093421787E3EC +:10B2A00090E0909341178093401710920B0A1092F0 +:10B2B0000A0AABDF0D94B9458FEF90E090934317E6 +:10B2C0008093421784E690E0909341178093401753 +:10B2D00010920B0A10920A0A98DF0D94B9458EEF6E +:10B2E00090E0909343178093421784E690E0909308 +:10B2F00041178093401710920B0A10920A0A85DFBB +:10B300000D94B94580EF90E09093431780934217D6 +:10B310008AE590E0909341178093401710920B0AB2 +:10B3200010920A0A72DF0D94B9458CED90E090936B +:10B3300043178093421784E690E0909341178093DF +:10B34000401710920B0A10920A0A5FDF0D94B9455C +:10B3500086EE90E0909343178093421782E390E04B +:10B36000909341178093401710920B0A10920A0A8B +:10B370004CDF0D94B945E1E2F5E02191222339F04B +:10B380003091C00035FFFCCF2093C600F6CF4AE0D5 +:10B3900050E0BC0180EF96E00E94185DE5ECF5E01E +:10B3A0008191882339F09091C00095FFFCCF809364 +:10B3B000C600F6CF0895E6EAF5E08191882339F0DA +:10B3C0009091C00095FFFCCF8093C600F6CF6091AE +:10B3D0001B1870911C184AE050E080EF96E00E9424 +:10B3E000185DE5ECF5E08191882339F09091C0007B +:10B3F00095FFFCCF8093C600F6CF0895E7E2F5E015 +:10B400008191882339F09091C00095FFFCCF809303 +:10B41000C600F6CF60914217709143174AE050E0A2 +:10B4200080EF96E00E94185DEDE2F5E081918823BF +:10B4300039F09091C00095FFFCCF8093C600F6CF05 +:10B4400060914017709141174AE050E080EF96E01C +:10B450000E94185DE4E3F5E08191882339F0909132 +:10B46000C00095FFFCCF8093C600F6CF40913A17FD +:10B4700050913B1760913C1770913D1722E030E0EE +:10B4800080EF96E00E940B5EEBE3F5E0819188236C +:10B4900039F09091C00095FFFCCF8093C600F6CFA5 +:10B4A00040913417509135176091361770913717C6 +:10B4B00022E030E080EF96E00E940B5EE5ECF5E0E4 +:10B4C0008191882339F09091C00095FFFCCF809343 +:10B4D000C600F6CF08951F93CF93DF93C62F482F52 +:10B4E00060E084EA97E10E94C9596C2F84EA97E1F1 +:10B4F0000F94E4B9CCE2D8E111E16991662311F02F +:10B50000111116C0112339F060E284EA97E10F941B +:10B51000E4B91150F7CF63E084EA97E10F94E4B9FE +:10B5200060E284EA97E1DF91CF911F910D94E4B935 +:10B5300084EA97E10F94E4B91150DFCF2F923F9244 +:10B540004F925F926F927F928F929F92AF92BF9233 +:10B55000CF92DF92EF92FF920F931F93CF93DF93DF +:10B56000CDB7DEB7A2970FB6F894DEBF0FBECDBF42 +:10B5700080919B02811104C08091A31782FFA9C210 +:10B580008DE99AE00E94F4D140919D1750919E1749 +:10B5900060919F177091A017413050486105710567 +:10B5A00040F010929D1710929E1710929F171092C4 +:10B5B000A01740919D1750919E1760919F17709111 +:10B5C000A0170091A21710E020E030E040175107CB +:10B5D0006207730710F44093A2174090A2173090AF +:10B5E000A31732FA332430F8512C9C012150310931 +:10B5F00039A328A3411032C080919B028823D9F03F +:10B60000E091530AF0E0EE0FFF1FEF58F04865910C +:10B61000749180919D1790919E17A0919F17B09162 +:10B62000A01723E0892B8A2B8B2B11F443E001C058 +:10B6300040E2852DD3D8332089F080919D179091D9 +:10B640009E17A0919F17B091A017892B8A2B8B2B47 +:10B6500029F4F2D982EB91E0C6DA3BC261EA7AE0E2 +:10B660008BE09BE00E94FAB98091A10A8F3229F009 +:10B6700031E0431669F022E001C021E0A8A0B9A0A2 +:10B68000C42CD12CE12CF12C22242394240C41C075 +:10B6900080919B028823A1F080919D1790919E1725 +:10B6A000A0919F17B091A01720E20197A105B105C5 +:10B6B00011F44EE301C040E26BE67DE9852D8ED8A2 +:10B6C0003320C9F280919D1790919E17A0919F17EA +:10B6D000B091A0170197A105B10569F6ADD9B2D90E +:10B6E000F8C1241177C140E050E0B5018DE99AE03E +:10B6F0000E9457CE9091E30A80919B02992309F40E +:10B700009BC081110BC0311079C0222D31E0A31AEA +:10B71000B1088FEFA816B80621F75EC1E091530A71 +:10B72000F0E0EE0FFF1FEF55FE4785919491809159 +:10B730009D1790919E17A0919F17B091A017452D2E +:10B7400060E08C159D05AE05BF0561F584EA97E1C3 +:10B750000E94C9596EE384EA97E10F94E4B965E069 +:10B7600084EA97E10F94E4B98091AE0A882329F026 +:10B770001092C00A0EEA1AE002C001EA1AE082E161 +:10B78000982EF80161918F01662311F0911062C12A +:10B79000992009F4B8CF60E284EA97E10F94E4B904 +:10B7A0009A94F6CF84EA97E10E94C95960E284EA4C +:10B7B00097E10F94E4B965E084EA97E10F94E4B966 +:10B7C0008091AE0A882329F01092C00A0EEA1AE08E +:10B7D00002C001EA1AE0B2E19B2EF80161918F01EB +:10B7E000662311F091103CC1992009F48CCF60E2DE +:10B7F00084EA97E10F94E4B99A94F6CF80919D176B +:10B8000090919E17A0919F17B091A0178C159D0540 +:10B81000AE05BF0509F079CF0FD961EA7AE08DE96D +:10B820009AE00E9457D210929D1710929E17109284 +:10B830009F171092A0174DC1811103C0311076C01F +:10B8400064CFE091530AF0E0EE0FFF1FEF55FE4783 +:10B850008591949180919D1790919E17A0919F172B +:10B86000B091A0178C159D05AE05BF05B1F52091CF +:10B8700043182F8F10E0412F60E084EA97E10E9487 +:10B88000C95960E284EA97E10F94E4B91F5F14306C +:10B8900091F7452D60E084EA97E10E94C9596EE373 +:10B8A00084EA97E10F94E4B96FEA862E6AE0962E57 +:10B8B0007EEA672E7AE0772E01E010E0F301219115 +:10B8C0003F012111D3C014E1101B60E284EA97E12B +:10B8D0000F94E4B91150C9F7B1CF452D60E084EA67 +:10B8E00097E10E94C95960E284EA97E10F94E4B9B4 +:10B8F0008091AE0A882329F01092C10A0EEA1AE05C +:10B9000002C001EA1AE053E1952EF80161918F011E +:10B91000662311F09110D7C0992009F48FCF60E20F +:10B9200084EA97E10F94E4B99A94F6CF80919D1739 +:10B9300090919E17A0919F17B091A0178C159D050F +:10B94000AE05BF0509F0E1CE77D81092460A81EA2C +:10B950009AE09F938F9384E69DE99F938F938E0146 +:10B960000F5F1F4F1F930F930F9441C90F900F90BC +:10B970000F900F900F900F907E01F5E0EF0EF11CED +:10B98000F7018081882349F0992787FD90950F94CE +:10B9900016C8F70181937F01F3CF60E0C8010E94D0 +:10B9A000B56341EAE42E4AE0F42E0EE91FE0F70108 +:10B9B00061917F01C8010F948DCB0F5F1F4F063A35 +:10B9C000FFE01F07A1F761E080E69DE90E94B563F3 +:10B9D0001CDC7FC02F5F9ACE822F90E0A0E0B0E009 +:10B9E00040919D1750919E1760919F177091A017DD +:10B9F000481759076A077B0778F0822F90E0019774 +:10BA0000AA2797FDA095BA2F80939D1790939E1714 +:10BA1000A0939F17B093A01740919D178091A217F4 +:10BA200090E00396242F30E08217930764F48DEFA3 +:10BA3000840F8093A21781E080939B023CEF432EFA +:10BA4000440E55245A945394439493E0951508F06A +:10BA5000D1CD3FC084EA97E10F94E4B99A9491CE96 +:10BA600084EA97E10F94E4B99A94B7CE452D602FFC +:10BA700084EA97E12AA30E94C9592AA1622F84EA85 +:10BA800097E10F94E4B90F5F1F4F0431110509F0DE +:10BA900015CF34010CE211E08091A31782FD05C09F +:10BAA000809143183F8D381739F001501109A1F7E3 +:10BAB0008FEF881A980A00CF61E070E080E090E094 +:10BAC0000F9453B7F2CF84EA97E10F94E4B99A94B4 +:10BAD0001CCFA2960FB6F894DEBF0FBECDBFDF918C +:10BAE000CF911F910F91FF90EF90DF90CF90BF907B +:10BAF000AF909F908F907F906F905F904F903F900E +:10BB00002F900895CF92DF92EF92FF920F931F93A1 +:10BB1000CF93DF9380919D1790919E17A0919F17CF +:10BB2000B091A01781309048A105B10540F0109266 +:10BB30009D1710929E1710929F171092A017809138 +:10BB40009D1790919E17A0919F17B091A0174091BB +:10BB5000A21750E060E070E084179507A607B707CA +:10BB600010F48093A217D091A2171091A31712FB83 +:10BB7000112710F9C0E0B7E0CB2ED12CE12CF12C2D +:10BB800001E040919D1750919E1760919F17709111 +:10BB9000A017D11137C080919B028823A9F0E091B2 +:10BBA000530AF0E0EE0FFF1FEF58F0488591949193 +:10BBB00023E0452B462B472B11F443E001C040E224 +:10BBC000BC018C2F0F94EE53112309F46AC18091AC +:10BBD0009D1790919E17A0919F17B091A017892B48 +:10BBE0008A2B8B2B09F05DC10F941C5582EB91E0E1 +:10BBF000DF91CF911F910F91FF90EF90DF90CF9049 +:10BC00000D94F355D13069F580919B02882371F032 +:10BC100020E2413051056105710511F44EE301C088 +:10BC200040E261E57DE98C2F0F94EE53112309F476 +:10BC300038C180919D1790919E17A0919F17B09148 +:10BC4000A0170197A105B10509F02BC10F941C5550 +:10BC5000DF91CF911F910F91FF90EF90DF90CF90E8 +:10BC600018CBD23069F580919B02882371F020E2D5 +:10BC7000423051056105710511F44EE301C040E207 +:10BC800061E47DE98C2F0F94EE53112309F409C16F +:10BC900080919D1790919E17A0919F17B091A0172A +:10BCA0000297A105B10509F0FCC00F941C55DF9166 +:10BCB000CF911F910F91FF90EF90DF90CF90FCCA32 +:10BCC000D33069F580919B02882371F020E24330E4 +:10BCD00051056105710511F44EE301C040E262E3D4 +:10BCE0007DE98C2F0F94EE53112309F4DAC0809173 +:10BCF0009D1790919E17A0919F17B091A017039741 +:10BD0000A105B10509F0CDC00F941C55DF91CF916D +:10BD10001F910F91FF90EF90DF90CF90F3CAD43036 +:10BD200069F580919B02882371F020E2443051052F +:10BD30006105710511F44EE301C040E262E27DE964 +:10BD40008C2F0F94EE53112309F4ABC080919D17F3 +:10BD500090919E17A0919F17B091A0170497A105ED +:10BD6000B10509F09EC00F941C55DF91CF911F9132 +:10BD70000F91FF90EF90DF90CF90D7CAD53069F543 +:10BD800080919B02882371F020E2453051056105C6 +:10BD9000710511F44EE301C040E262E17DE98C2FB0 +:10BDA0000F94EE53112309F47CC080919D1790915C +:10BDB0009E17A0919F17B091A0170597A105B105F7 +:10BDC00009F06FC00F941C55DF91CF911F910F9117 +:10BDD000FF90EF90DF90CF9082CAD63069F58091C6 +:10BDE0009B02882371F020E2463051056105710500 +:10BDF00011F44EE301C040E263E07DE98C2F0F9423 +:10BE0000EE53112309F44DC080919D1790919E1718 +:10BE1000A0919F17B091A0170697A105B10509F051 +:10BE200040C00F941C55DF91CF911F910F91FF904F +:10BE3000EF90DF90CF908CCAD73099F580919B021C +:10BE40008823B1F0E091530AF0E0EE0FFF1FE75AAC +:10BE5000FE478591949120E24730510561057105B7 +:10BE600011F44EE301C040E2BC018C2F0F94EE535D +:10BE70001123B9F080919D1790919E17A0919F1763 +:10BE8000B091A0170797A105B10559F40F941C555F +:10BE9000DF91CF911F910F91FF90EF90DF90CF90A6 +:10BEA000EBC940919D1750919E1760919F1770911B +:10BEB000A017483051056105710540F0C0929D17EB +:10BEC000D0929E17E0929F17F092A01740919D1775 +:10BED0008091A21790E00396242F30E082179307F9 +:10BEE0004CF48DEF840F8093A21700939B02DCEF3C +:10BEF000D40FCFEFCF5FDF5FC43008F442CEDF91C5 +:10BF0000CF911F910F91FF90EF90DF90CF90089508 +:10BF1000CF92DF92EF92FF920F931F93CF93DF9315 +:10BF200080919D1790919E17A0919F17B091A01797 +:10BF300081309048A105B10540F010929D171092F4 +:10BF40009E1710929F171092A01780919D179091A5 +:10BF50009E17A0919F17B091A0174091A21750E093 +:10BF600060E070E084179507A607B70710F4809388 +:10BF7000A217D091A2171091A31712FB112710F945 +:10BF8000C0E042E0C42ED12CE12CF12C01E0409124 +:10BF90009D1750919E1760919F177091A017D11116 +:10BFA00037C080919B028823A9F0E091530AF0E00A +:10BFB000EE0FFF1FE95BF0488591949123E0452B3C +:10BFC000462B472B11F443E001C040E2BC018C2F0B +:10BFD0000F94EE53112309F453C080919D17909153 +:10BFE0009E17A0919F17B091A017892B8A2B8B2B9E +:10BFF00009F046C00F941C558CE691E0DF91CF917B +:10C000001F910F91FF90EF90DF90CF900D94F3551B +:10C01000D130B1F580919B028823B1F0E091530AB1 +:10C02000F0E0EE0FFF1FE354FE47859194912EE759 +:10C03000413051056105710511F44EE301C040E244 +:10C04000BC018C2F0F94EE531123D1F080919D17DA +:10C0500090919E17A0919F17B091A0170197A105ED +:10C06000B10571F40F941C5580E891E0DF91CF91F8 +:10C070001F910F91FF90EF90DF90CF900D94555747 +:10C080008091800A40919D1750919E1760919F1753 +:10C090007091A01781110FC0D23009F041C080917A +:10C0A0009B02882311F1E091530AF0E0EE0FFF1F8D +:10C0B000E957F5480DC0D23099F580919B0288234D +:10C0C000A1F0E091530AF0E0EE0FFF1FE758F548AA +:10C0D0008591949120E24230510561057105F1F09E +:10C0E00040E2BC018C2F0F94EE531123C9F08091D4 +:10C0F0009D1790919E17A0919F17B091A01702973E +:10C10000A105B10569F40F941C55DF91CF911F91E2 +:10C110000F91FF90EF90DF90CF9053C84EE3E1CFA7 +:10C1200080919D1790919E17A0919F17B091A01795 +:10C130000397A105B10540F0C0929D17D0929E17BC +:10C14000E0929F17F092A01740919D178091A2173F +:10C1500090E00396242F30E0821793074CF48DEF84 +:10C16000840F8093A21700939B02DCEFD40FCFEFD4 +:10C17000CF5FDF5FC43008F40ACFDF91CF911F910A +:10C180000F91FF90EF90DF90CF900895CF93DF93C2 +:10C19000CDB7DEB728970FB6F894DEBF0FBECDBF80 +:10C1A00088E0E8E2F3E0DE01119601900D928A95B5 +:10C1B000E1F7AE014F5F5F4F61E084EA97E10E94D3 +:10C1C000675B28960FB6F894DEBF0FBECDBFDF9138 +:10C1D000CF910895CF93DF93CDB7DEB728970FB6F1 +:10C1E000F894DEBF0FBECDBF88E0E0E3F3E0DE01F0 +:10C1F000119601900D928A95E1F7AE014F5F5F4F66 +:10C2000061E084EA97E10E94675B28960FB6F89494 +:10C21000DEBF0FBECDBFDF91CF910895CF93DF93E7 +:10C22000CDB7DEB728970FB6F894DEBF0FBECDBFEF +:10C2300088E0E0EFF2E0DE01119601900D928A9520 +:10C24000E1F7AE014F5F5F4F61E084EA97E10E9442 +:10C25000675B28960FB6F894DEBF0FBECDBFDF91A7 +:10C26000CF91089584EA97E10C94BD594AE050E0DB +:10C27000BC0184EA97E10D9480BACF93DF93EA0181 +:10C28000462F682F84EA97E10E94C9594AE050E09E +:10C29000BE0184EA97E1DF91CF910D9480BA8EEFD1 +:10C2A0009FE00F945DCB873028F48093530A10925F +:10C2B0008E1708951092530A81E080938E17089587 +:10C2C0001F93CF93DF93EC01FB01608111810F94E9 +:10C2D0006FCB612FCE010196DF91CF911F910D940D +:10C2E0006FCBFF920F931F93CF93DF938C01EB01E2 +:10C2F0000F945DCBF82EC80101960F945DCBF882A8 +:10C300008983DF91CF911F910F91FF90089561E094 +:10C3100080EC9FE00F946FCB60E08FEB9FE00F9479 +:10C320006FCB60E08EEB9FE00F946FCB60E08DEB06 +:10C330009FE00F946FCB60E08CEB9FE00F946FCB8E +:10C3400010923C1810923B181092371810923E1819 +:10C3500010923D18109238181092401810923F1801 +:10C3600010923918109242181092411810923A18EF +:10C370000895EF92FF920F931F93CF93DF931F9235 +:10C38000CDB7DEB77B018C01061B170B460FC7012B +:10C39000800F911F49830F945DCBF70181937F013B +:10C3A00049814E13F4CF0F90DF91CF911F910F91E0 +:10C3B000FF90EF9008956EEF8EEF9FE00D946FCB9E +:10C3C00081E08093A70208950F931F93CF938091EC +:10C3D0001D18882371F10E944A65C82F0F9424B755 +:10C3E0000091910A1091920A2091930A3091940A37 +:10C3F000601B710B820B930B0F94AAC02FE632E1E6 +:10C4000043E85AE30F940BC3CC2329F020E030E03B +:10C4100040E752E404C020E030E046E154E40F94E9 +:10C4200039C218161CF41092A70203C081E0809351 +:10C43000A702CF911F910F910895809390171092AA +:10C440008F170895E0EFF7E101900020E9F73197A9 +:10C45000E05FF7411E161F0634F01092041882E0C8 +:10C4600080939B02089580E2E431F105B4F7DF0187 +:10C47000A051B84E8C933196F7CF20910518211119 +:10C4800008C044E150E0BC0180EF97E10F94EAC896 +:10C49000D9CF089520910518211108C044E150E03A +:10C4A000BC0180EF97E10F945DC8CCCF089561E0A7 +:10C4B0008EEF9CE90E94B56381E08093470A82E099 +:10C4C00090E09093450A8093440AE091530AF0E08B +:10C4D000EE0FFF1FEF57FF4785919491DBDF0F941D +:10C4E000055983E080939B020895D4DF81E0809317 +:10C4F00005180D9405591092051808950F931F9370 +:10C50000CF93C0910301C2FBCC27C0F981E0C827BB +:10C510008091030181FFC26080919A02882309F40F +:10C52000C4C08091000186FD89C00F9424B768566D +:10C53000754C8F4F9F4F609386177093871780932A +:10C540008817909389170F9424B7009108181091B9 +:10C55000091820910A1830910B1806171707280799 +:10C56000390708F0A6C00F9424B768537F4F8F4F48 +:10C570009F4F609308187093091880930A1890933E +:10C580000B188091071881112EC08091101881110D +:10C590002AC080919C0290919D0221E0803B9207ED +:10C5A000A1F0909397178093961780919D17909183 +:10C5B0009E17A0919F17B091A01780939917909301 +:10C5C0009A17A0939B17B0939C170F9424B760936E +:10C5D0000C1870930D1880930E1890930F1881E02B +:10C5E0008093071866C00F9424B700910C1810911F +:10C5F0000D1820910E1830910F18601B710B820BD3 +:10C60000930B693E73408105910508F452C081E0A7 +:10C610008093101880E090E0A0E8BFE380938A1731 +:10C6200090938B17A0938C17B0938D1701E021E0A6 +:10C6300040E050E0BA0180EB91E02BC080910718F8 +:10C64000882381F10F9424B768537F4F8F4F9F4FFA +:10C65000609308187093091880930A1890930B1828 +:10C660002091101880919C0290919D02211114C07C +:10C67000805B9140E9F44091991750919A1760912D +:10C680009B1770919C1701E021E080919617909183 +:10C6900097170F942B550DC0805B914051F40F9468 +:10C6A0001C5507C01092101804C08091000186FF2D +:10C6B000C460C093A3178091A31781709091A317B2 +:10C6C00091FD82609091A117891721F18130F1F0DD +:10C6D00028F0823089F08330A1F01CC0913021F421 +:10C6E000909143189F5F05C09230A1F49091431838 +:10C6F0009150909343180EC0992391F3933051F4C5 +:10C70000F5CF923069F3913029F4F0CF933041F3B3 +:10C71000992361F38093A117CF911F910F910895F1 +:10C720000F94F958E4E0F1E080818B7F8083808171 +:10C730008D7F80839FB7F894E5E0F1E0808184608D +:10C7400080839FBF9FB7F8948081826080839FBF62 +:10C75000E1E0F1E080818F7B80839FB7F894E2E095 +:10C76000F1E08081806480839FBF60E08FE00F9460 +:10C770000FB99FB7F894E5E0F1E080818160808394 +:10C780009FBF809103018095817080939817B6DEDA +:10C79000109243180895CF92DF92EF92FF929091FA +:10C7A0009B02981710F480939B0280919A02882331 +:10C7B00009F4E6C0A3DE80910301817091E089272E +:10C7C000209198178217F1F082E080939B0280916C +:10C7D000030181708927809398170F94F9588091ED +:10C7E0009817882309F4C0C08DE99AE00E942FC9E8 +:10C7F000E091530AF0E0EE0FFF1FE15FF2488591F0 +:10C80000949148DEC0909217D0909317E0909417BF +:10C81000F09095170F9424B7C616D706E806F906C8 +:10C8200008F098C080914318482F552747FD509530 +:10C8300057FF03C051954195510944305105ACF162 +:10C8400090919B02911103C091E090939B0287FD10 +:10C850008D5F482F45954595552747FD5095652F88 +:10C86000752F80919D1790919E17A0919F17B09161 +:10C87000A017840F951FA61FB71F80939D17909335 +:10C880009E17A0939F17B093A017109243180F9470 +:10C8900024B76856754C8F4F9F4F609386177093DF +:10C8A000871780938817909389178091A31782FF29 +:10C8B0000EC00F9424B76856754C8F4F9F4F6093EE +:10C8C0008617709387178093881790938917E09144 +:10C8D0009C02F0919D021995C0908617D090871701 +:10C8E000E0908817F09089170F9424B7C616D706E2 +:10C8F000E806F906A8F4E0919C02F0919D0281E01F +:10C90000E036F80769F0309731F081E0809306183F +:10C910001995109206180F94055982E080939B0296 +:10C9200080919B02823009F49DDC80919B028823D8 +:10C9300019F0815080939B020F9424B76C597F4F5C +:10C940008F4F9F4F60939217709393178093941714 +:10C95000909395170E94EBC1811101C016D1FF90F1 +:10C96000EF90DF90CF9030CD8DE99AE00E9404CA1D +:10C97000E091530AF0E0EE0FFF1FE550F3483FCF80 +:10C98000FF90EF90DF90CF90089590919A029817C2 +:10C99000B9F180939A02882399F110929D17109211 +:10C9A0009E1710929F171092A017109243180F9481 +:10C9B00024B76856754C8F4F9F4F609386177093BE +:10C9C000871780938817909389170F9424B7615025 +:10C9D000710981099109609392177093931780935D +:10C9E0009417909395173EDC80919C0290919D0244 +:10C9F0008056914011F412DC01C0C8DB82E0CBCE3E +:10CA000008958F929F92AF92BF92CF92DF92EF9252 +:10CA1000FF920F931F93CF93DF938C015B0180E014 +:10CA2000B4DF20DC40E060E084EA97E10E94C9596D +:10CA30007801812C912CC8010F944253882319F05E +:10CA40000F5F1F4FF8CFF8018491882309F467C066 +:10CA5000492D60E084EA97E10E94C959C8010F940A +:10CA60002EC88431910508F084E17801E80EF11CAC +:10CA7000F3E0E7019F1214C0843191F4CE010F94CA +:10CA80004253882311F02196F9CFFE018491882327 +:10CA900031F0E70122977E018824839401C0812C24 +:10CAA000FE018491882309F454C0CE010F944253AF +:10CAB00081114FC0FE01849192ED980F923008F4DD +:10CAC00048C08C3209F445C096EC980F923008F4B7 +:10CAD00040C08F3309F43DC0813209F43AC00C17CD +:10CAE0001D07A0F56E01F1E0CF1AD108C6010F9421 +:10CAF000425381112BC0E601F2CFF80164916E37E9 +:10CB000009F460E284EA97E10F94E4B90F5F1F4FE4 +:10CB10000E151F0590F39394F4E09F128CCF88209C +:10CB200061F058DB43E063E184EA97E10E94C95970 +:10CB300061E084EA97E10F94E4B9F50190828110F5 +:10CB400003C080E090E007C0C70105C0C017D1074F +:10CB5000F9F27E01DDCFDF91CF911F910F91FF9010 +:10CB6000EF90DF90CF90BF90AF909F908F900895FF +:10CB7000CF93DF931F92CDB7DEB7BE016F5F7F4FBC +:10CB800040DF0F90DF91CF91089580910101846083 +:10CB9000809301019FB7F894809102018460809393 +:10CBA00002019FBF68EE73E080E090E00F9453B7FE +:10CBB0009FB7F894809102018B7F809302019FBF01 +:10CBC000E1E3FBE785919491D3DF88EE93E00E9447 +:10CBD0000077FBCF81E008959091A31792FB8827FF +:10CBE00080F992FD109207180895DF92EF92FF925C +:10CBF0000F931F93CF93DF93E82ED92EB9DF8C01CB +:10CC0000EC0194E6F92E82E390E00E940077E4DFE5 +:10CC1000882369F0E1DF8111FDCF6AE070E080E0F8 +:10CC200090E00F9453B7D8DF8111FDCF0DC0FA9477 +:10CC300051F70115110529F3209711F4CE2DDD2DA3 +:10CC4000CE0196DFEC01DDCFDF91CF911F910F91E7 +:10CC5000FF90EF90DF900895CF93DF93EC01E09188 +:10CC6000530ACF3F8FEFD80731F4F0E0EE0FFF1FEC +:10CC7000ED5DFD474CC0CE3F8FEFD80779F4F0E073 +:10CC8000EE0FFF1F662379F1623011F0673019F45F +:10CC9000E55AFD473CC0E35BFD4739C061110EC05A +:10CCA000E091530AC130D10539F1C230D10551F1BB +:10CCB000CD2BE1F0F0E0EE0FFF1F15C0F0E0EE0F1E +:10CCC000FF1F623011F0673019F4E750FE4702C0D1 +:10CCD000E551FE478591949188DF1C161D0604F3EB +:10CCE000DF91CF910895E15CFD4711C0F0E0EE0FB8 +:10CCF000FF1FEF5CFD470BC0F0E0EE0FFF1FE95F89 +:10CD0000FD4705C0F0E0EE0FFF1FEB5EFD4785918C +:10CD10009491DF91CF9169CF0F94224D81E00E94D1 +:10CD200048765ADF8823C1F357DF8111FDCF6AE0CF +:10CD300070E080E090E00F9453B74EDF8111FDCF9B +:10CD40000895DF92EF92FF920F931F93CF93DF939B +:10CD5000CDB7DEB728970FB6F894DEBF0FBECDBFB4 +:10CD600084E495E09A8389838DE495E09C838B83AA +:10CD700088E595E09E838D8386E695E098878F838E +:10CD8000E0904318FF24E7FCF0946CDA40E060E0A8 +:10CD900084EA97E10E94C95962E475E084EA97E168 +:10CDA0000F94E3B9D12C00E010E0402F61E084EA59 +:10CDB00097E10E94C959E0917C17F0917D17E00F2F +:10CDC000F11FEE0FFF1F81E090E08C0F9D1FE80F19 +:10CDD000F91F6081718184EA97E10F94E3B90F5FD5 +:10CDE0001F4F0430110509F70F94224D81E00E9476 +:10CDF000487620914318332727FD3095C701821BC1 +:10CE0000930B97FF03C091958195910905970CF4B9 +:10CE10006FC02E153F050CF4DA94E216F3060CF4FD +:10CE2000D39493E09D156CF480917C1790917D17BD +:10CE300097FF7FC0019690937D1780937C1712DA3D +:10CE400078C0D7FE0EC080917C1790917D17181680 +:10CE5000190634F4019790937D1780937C1702DABA +:10CE6000D12C40E060E084EA97E10E94C9596BE769 +:10CE700076E084EA97E10F94E3B941E060E084EA68 +:10CE800097E10E94C9596BE776E084EA97E10F9435 +:10CE9000E3B942E060E084EA97E10E94C9596BE798 +:10CEA00076E084EA97E10F94E3B943E060E084EA36 +:10CEB00097E10E94C9596BE776E084EA97E10F9405 +:10CEC000E3B94D2D60E084EA97E10E94C95962E41C +:10CED00075E084EA97E10F94E3B9E0904318FF24EA +:10CEE000E7FCF09464E670E080E090E00F9453B7C4 +:10CEF00073DE882309F457CF6FDE8111FDCF6AE01E +:10CF000070E080E090E00F9453B766DE8111FDCFB2 +:10CF100080917C178D0D28960FB6F894DEBF0FBE5A +:10CF2000CDBFDF91CF911F910F91FF90EF90DF90D8 +:10CF3000089513E0D12E95CFFC01808190E02AE086 +:10CF400030E0B9010F94E9C4482FCB01B9010F9427 +:10CF5000E9C4805D80937E17405D40937F171092F7 +:10CF600080178EE797E1089520E030E040E251E439 +:10CF7000FC0160817181828193810F940BC30F94B6 +:10CF800079C077FD02C02BE201C02DE220937E170D +:10CF90009B0177FF04C022273327261B370BC901CB +:10CFA00068EE73E00F94E9C4CB01EAE0F0E0BF0162 +:10CFB0000F94E9C4805D80937F17C90164E670E037 +:10CFC0000F94E9C4CB01BF010F94E9C4805D809345 +:10CFD0008017C901BF010F94E9C4282FCB01BF01FD +:10CFE0000F94E9C4805D809381178EE2809382174D +:10CFF000205D20938317109284178EE797E10895A0 +:10D000008F929F92AF92BF92CF92DF92EF92FF9258 +:10D01000CF9320E030E048EC52E4FC016081718164 +:10D02000828193810F940BC30F9479C06B017C01B3 +:10D0300097FD12C020E137E240E050E00F941EC59A +:10D04000CA01B9012AE030E040E050E00F941EC56B +:10D05000605D60937E1703C08DE280937E17F7FEBC +:10D0600008C0F094E094D094C094C11CD11CE11C81 +:10D07000F11CC701B60128EE33E040E050E00F9408 +:10D080001EC59AE0892E912CA12CB12CCA01B901A0 +:10D09000A50194010F941EC5605D60937F17C701C1 +:10D0A000B60124E630E040E050E00F941EC5CA010E +:10D0B000B901A50194010F941EC5605D60938017AE +:10D0C0008EE280938117C701B601A50194010F94E8 +:10D0D0001EC5C62FCA01B901A50194010F941EC532 +:10D0E000605D60938217C05DC093831710928417B0 +:10D0F0008EE797E1CF91FF90EF90DF90CF90BF90B8 +:10D10000AF909F908F9008958F929F92AF92BF9211 +:10D11000CF92DF92EF92FF92CF93FC01C080D1803B +:10D12000E280F38020E030E0A901C701B6010F944E +:10D1300039C218161CF4C701B60103C0C701B601F5 +:10D1400090580F9479C06B017C016031F7E27F0742 +:10D150008105910584F020E137E240E050E00F9432 +:10D160001EC5CA01B9012AE030E040E050E00F944A +:10D170001EC5605D01C060E260937E1788EEC81630 +:10D1800083E0D806E104F10494F0C701B60128EE6B +:10D1900033E040E050E00F941EC5CA01B9012AE017 +:10D1A00030E040E050E00F941EC5605D01C060E2D9 +:10D1B00060937F17E4E6CE16D104E104F10494F005 +:10D1C000C701B60124E630E040E050E00F941EC5F0 +:10D1D000CA01B9012AE030E040E050E00F941EC5DA +:10D1E000605D01C060E3609380178EE280938117D9 +:10D1F0002AE0822E912CA12CB12CC701B601A501E9 +:10D2000094010F941EC5C62FCA01B901A50194014E +:10D210000F941EC5605D60938217C05DC093831735 +:10D220008EE797E1CF91FF90EF90DF90CF90BF9086 +:10D23000AF909F908F9008958F929F92AF92BF92E0 +:10D24000CF92DF92EF92FF92CF9320E030E04AE757 +:10D2500054E4FC0160817181828193810F940BC33E +:10D260000F9479C097FD02C020E201C02DE2209307 +:10D270007E176B017C0197FF08C0F094E094D09476 +:10D28000C094C11CD11CE11CF11CC701B60128EEE1 +:10D2900033E040E050E00F941EC5EAE08E2E912C62 +:10D2A000A12CB12CCA01B901A50194010F941EC58E +:10D2B000605D60937F178EE280938017C701B6018F +:10D2C00024E630E040E050E00F941EC5CA01B901E9 +:10D2D000A50194010F941EC5605D60938117C7017D +:10D2E000B601A50194010F941EC5C62FCA01B9014C +:10D2F000A50194010F941EC5605D60938217C05D07 +:10D30000C0938317109284178EE797E1CF91FF9017 +:10D31000EF90DF90CF90BF90AF909F908F90089547 +:10D320008F929F92AF92BF92CF92DF92EF92FF9235 +:10D33000FC0180809180A280B38020E030E048EC46 +:10D3400052E4C501B4010F940BC36B017C0120E0D2 +:10D3500030E0A9010F9439C218161CF4C701B601B8 +:10D3600003C0C701B60190580F9479C06B017C01CE +:10D3700020E030E0A901C501B4010F940AC087FF85 +:10D3800012C08DE280937E17C701B60128EE33E00C +:10D3900040E050E00F941EC5CA01B9012AE030E018 +:10D3A00040E050E036C0C701B60120E137E240E07E +:10D3B00050E00F941EC5AAE08A2E912CA12CB12C0E +:10D3C000CA01B901A50194010F941EC5662391F00D +:10D3D000605D60937E17C701B60128EE33E040E040 +:10D3E00050E00F941EC5CA01B901A50194010F9424 +:10D3F0001EC513C080E280937E17C701B60128EED8 +:10D4000033E040E050E00F941EC5CA01B901A50108 +:10D4100094010F941EC5662311F0605D01C060E2A7 +:10D4200060937F17C701B60124E630E040E050E08A +:10D430000F941EC5FAE08F2E912CA12CB12CCA019D +:10D44000B901A50194010F941EC5605D609380171A +:10D45000C701B601A50194010F941EC5662381F092 +:10D46000605D60938317CA01B901A50194010F940F +:10D470001EC5605D609382178EE28093811715C090 +:10D48000CA01B901A50194010F941EC5662329F0B4 +:10D49000605D609382178EE203C080E28093821702 +:10D4A0008093811780E280938317109284178EE710 +:10D4B00097E1FF90EF90DF90CF90BF90AF909F905B +:10D4C0008F900895FC012081318137FF07C08DE2E4 +:10D4D00080937E1731952195310914C0243631058A +:10D4E00074F0C90164E670E00F94E9C4CB016AE00E +:10D4F00070E00F94E9C4805D80937E1706C080E2DF +:10D5000080937E172A30310564F0EAE0F0E0C9012B +:10D51000BF010F94E9C4CB01BF010F94E9C4805D42 +:10D5200001C080E280937F17C9016AE070E00F9428 +:10D53000E9C4805D80938017109281178EE797E190 +:10D540000895AF92BF92CF92DF92EF92FF920F9326 +:10D550001F93CF93DF938091361881115EC081E0D5 +:10D56000809336188FEB9FE00F945DCB082F282F08 +:10D57000332727FD309530933C1820933B18809338 +:10D5800037188EEB9FE00F945DCB182F282F332791 +:10D5900027FD309530933E1820933D18809338181E +:10D5A0008DEB9FE00F945DCBD82F282F332727FDDD +:10D5B00030953093401820933F18809339188CEBA6 +:10D5C0009FE00F945DCBC82F282F332727FD309580 +:10D5D000309342182093411880933A1880EC9FE0D2 +:10D5E0000F945DCB813009F067C20E5C053608F000 +:10D5F00063C21E5C153608F05FC2DE5CD53608F0EB +:10D600005BC2CE5CC53608F057C281E080939B02B6 +:10D6100061E080EC9FE00F946FCB60913B187091BC +:10D620003C1880913718992787FD909586179707A2 +:10D6300031F0609337188FEB9FE00F946FCB6091C0 +:10D640003D1870913E1880913818992787FD909564 +:10D650008617970731F0609338188EEB9FE00F9490 +:10D660006FCB60913F1870914018809139189927BD +:10D6700087FD90958617970731F0609339188DEBE9 +:10D680009FE00F946FCB6091411870914218809188 +:10D690003A18992787FD90958617970731F0609380 +:10D6A0003A188CEB9FE00F946FCB80919D1790916F +:10D6B0009E17A0919F17B091A01781309048A105A7 +:10D6C000B10540F010929D1710929E1710929F176F +:10D6D0001092A01780919D1790919E17A0919F176F +:10D6E000B091A0174091A21750E060E070E084175D +:10D6F0009507A607B70710F48093A2170091A21709 +:10D70000B090A317B2FABB24B0F810E085E0C82EA1 +:10D71000D12CE12CF12CAA24A39480919D179091F7 +:10D720009E17A0919F17B091A017011138C02091AA +:10D730009B022223A1F0E091530AF0E0EE0FFF1FBD +:10D74000E558F4486591749123E0892B8A2B8B2B43 +:10D7500011F443E001C040E2812F0F94EE53BB204F +:10D7600009F472C180919D1790919E17A0919F1707 +:10D77000B091A017892B8A2B8B2B09F065C10F94D0 +:10D780001C558CE691E0DF91CF911F910F91FF9096 +:10D79000EF90DF90CF90BF90AF900D94F355013094 +:10D7A00009F042C020919B022223E1F0E091530A4C +:10D7B000F0E0EE0FFF1FE951FD47C591D4910197AD +:10D7C000A105B10531F48BE398E17CDE9C014EE3C9 +:10D7D00005C08BE398E176DE9C0140E2BE01812F1B +:10D7E0000F942554BB2009F42FC180919D1790916F +:10D7F0009E17A0919F17B091A0170197A105B105A1 +:10D8000009F022C10F941C55E091530AF0E0EE0F8D +:10D81000FF1FE951FD478591949122E330E04EECE2 +:10D820005FEF6BE378E144C0023009F04DC0209116 +:10D830009B022223E1F0E091530AF0E0EE0FFF1F7C +:10D84000E155FD47C591D4910297A105B10531F489 +:10D850008DE398E137DE9C014EE305C08DE398E14E +:10D8600031DE9C0140E2BE01812F0F942554BB2084 +:10D8700009F4EAC080919D1790919E17A0919F177F +:10D88000B091A0170297A105B10509F0DDC00F9472 +:10D890001C55E091530AF0E0EE0FFF1FE155FD47E4 +:10D8A0008591949122E330E04EEC5FEF6DE378E1F7 +:10D8B000DF91CF911F910F91FF90EF90DF90CF906C +:10D8C000BF90AF900D947455033009F042C0209181 +:10D8D0009B022223E1F0E091530AF0E0EE0FFF1FDC +:10D8E000EB50FD47C591D4910397A105B10531F4E3 +:10D8F0008FE398E1E7DD9C014EE305C08FE398E1FB +:10D90000E1DD9C0140E2BE01812F0F942554BB2034 +:10D9100009F49AC080919D1790919E17A0919F172E +:10D92000B091A0170397A105B10509F08DC00F9420 +:10D930001C55E091530AF0E0EE0FFF1FEB50FD473E +:10D940008591949122E330E04EEC5FEF6FE378E154 +:10D95000AFCF043009F042C020919B022223E1F0B6 +:10D96000E091530AF0E0EE0FFF1FE553FD47C5912C +:10D97000D4910497A105B10531F481E498E1A2DDC9 +:10D980009C014EE305C081E498E19CDD9C0140E2EE +:10D99000BE01812F0F942554BB2009F455C08091FE +:10D9A0009D1790919E17A0919F17B091A017049773 +:10D9B000A105B10509F048C00F941C55E091530A28 +:10D9C000F0E0EE0FFF1FE553FD478591949122E3B0 +:10D9D00030E04EEC5FEF61E478E16ACF0530A1F50D +:10D9E00020919B022223A1F0E091530AF0E0EE0F78 +:10D9F000FF1FE354FD476591749120E20597A1054F +:10DA0000B10511F44EE301C040E2812F0F94EE53B3 +:10DA1000BB20D1F080919D1790919E17A0919F17E8 +:10DA2000B091A0170597A105B10571F40F941C558D +:10DA3000DF91CF911F910F91FF90EF90DF90CF90EA +:10DA4000BF90AF900D944E5580919D1790919E1769 +:10DA5000A0919F17B091A0170697A105B10540F0BE +:10DA6000C0929D17D0929E17E0929F17F092A01738 +:10DA700040919D178091A21790E00396242F30E0EB +:10DA8000821793074CF48DEF840F8093A217A09216 +:10DA90009B020CEF040F1FEF1F5F0F5F143008F4A1 +:10DAA0003CCEDF91CF911F910F91FF90EF90DF90CF +:10DAB000CF90BF90AF90089510923C1810923B18F1 +:10DAC00010923E1810923D181092401810923F1874 +:10DAD000109242181092411898CDAF92BF92CF92F7 +:10DAE000DF92EF92FF920F931F93CF93DF9380917A +:10DAF0009D1790919E17A0919F17B091A01781300C +:10DB00009048A105B10540F010929D1710929E1704 +:10DB100010929F171092A01780919D1790919E17B9 +:10DB2000A0919F17B091A0174091A21750E060E01C +:10DB300070E084179507A607B70710F48093A21723 +:10DB40000091A217B090A317B2FABB24B0F810E06E +:10DB500083E0C82ED12CE12CF12CAA24A39440916F +:10DB60009D1750919E1760919F177091A0170111FA +:10DB700039C080919B028823A9F0E091530AF0E01C +:10DB8000EE0FFF1FE558F4488591949123E0452B53 +:10DB9000462B472B11F443E001C040E2BC01812F2A +:10DBA0000F94EE53BB2009F4F2C080919D17909121 +:10DBB0009E17A0919F17B091A017892B8A2B8B2BB2 +:10DBC00009F0E5C00F941C5582E391E0DF91CF91FD +:10DBD0001F910F91FF90EF90DF90CF90BF90AF908B +:10DBE0000D94F355013009F041C080919B028823C8 +:10DBF000D9F0E091530AF0E0EE0FFF1FED57F14826 +:10DC0000C591D49182E497E14130510561057105D8 +:10DC100021F458DC9C014EE303C054DC9C0140E23B +:10DC2000BE01812F0F942554BB2009F4B0C0809110 +:10DC30009D1790919E17A0919F17B091A0170197E3 +:10DC4000A105B10509F0A3C00F941C55E091530A3A +:10DC5000F0E0EE0FFF1FED57F1488591949127E218 +:10DC600031E040E050E062E477E185C0023009F045 +:10DC700041C080919B028823D9F0E091530AF0E0E3 +:10DC8000EE0FFF1FED5FFC47C591D49180E497E153 +:10DC9000423051056105710521F414DC9C014EE30D +:10DCA00003C010DC9C0140E2BE01812F0F9425547B +:10DCB000BB2009F46CC080919D1790919E17A09194 +:10DCC0009F17B091A0170297A105B10509F05FC099 +:10DCD0000F941C55E091530AF0E0EE0FFF1FED5F2B +:10DCE000FC478591949123E930E040E050E060E406 +:10DCF00077E141C0033009F04AC080919B0288233C +:10DD0000D9F0E091530AF0E0EE0FFF1FE752FF4712 +:10DD1000C591D4918AE09AE04330510561057105BF +:10DD200021F4D0DB9C014EE303C0CCDB9C0140E23C +:10DD3000BE01812F0F942554BB2049F180919D177E +:10DD400090919E17A0919F17B091A0170397A105DE +:10DD5000B105E9F40F941C55E091530AF0E0EE0F81 +:10DD6000FF1FE752FF47859194912FEF30E040E08D +:10DD700050E06AE07AE0DF91CF911F910F91FF9020 +:10DD8000EF90DF90CF90BF90AF900D94745580913D +:10DD90009D1790919E17A0919F17B091A01704977F +:10DDA000A105B10540F0C0929D17D0929E17E09258 +:10DDB0009F17F092A01740919D178091A21790E0B5 +:10DDC0000396242F30E0821793074CF48DEF840FD5 +:10DDD0008093A217A0929B020CEF040F1FEF1F5F0E +:10DDE0000F5F143008F4BBCEDF91CF911F910F91DC +:10DDF000FF90EF90DF90CF90BF90AF900895AF92DB +:10DE0000BF92CF92DF92EF92FF920F931F93CF9327 +:10DE1000DF9341E063E278E18FEF9FE00F94B96117 +:10DE200080919D1790919E17A0919F17B091A01778 +:10DE300081309048A105B10540F010929D171092D5 +:10DE40009E1710929F171092A01780919D17909186 +:10DE50009E17A0919F17B091A0174091A21750E074 +:10DE600060E070E084179507A607B70710F4809369 +:10DE7000A2170091A217B090A317B2FABB24B0F872 +:10DE800010E0E7E0CE2ED12CE12CF12CAA24A394B3 +:10DE900080919D1790919E17A0919F17B091A01708 +:10DEA000011138C020919B022223A1F0E091530A76 +:10DEB000F0E0EE0FFF1FEF58F0486591749123E0FA +:10DEC000892B8A2B8B2B11F443E001C040E2812F78 +:10DED0000F94EE53BB2009F4B7C180919D17909128 +:10DEE0009E17A0919F17B091A017892B8A2B8B2B7F +:10DEF00009F0AAC10F941C5582EB91E0DF91CF91FC +:10DF00001F910F91FF90EF90DF90CF90BF90AF9057 +:10DF10000D94F355013009F042C020919B02222359 +:10DF2000E1F0E091530AF0E0EE0FFF1FED5CF448E2 +:10DF3000C591D4910197A105B10531F487E492E030 +:10DF4000C1DA9C014EE305C087E492E0BBDA9C0194 +:10DF500040E2BE01812F0F942554BB2009F474C107 +:10DF600080919D1790919E17A0919F17B091A01737 +:10DF70000197A105B10509F067C10F941C55E09107 +:10DF8000530AF0E0EE0FFF1FED5CF4488591949189 +:10DF900027EE33E04AE050E067E472E044C002302C +:10DFA00009F04DC020919B022223E1F0E091530A39 +:10DFB000F0E0EE0FFF1FED57F148C591D4910297A5 +:10DFC000A105B10531F482E497E17CDA9C014EE3CE +:10DFD00005C082E497E176DA9C0140E2BE01812F20 +:10DFE0000F942554BB2009F42FC180919D17909167 +:10DFF0009E17A0919F17B091A0170297A105B10598 +:10E0000009F022C10F941C55E091530AF0E0EE0F85 +:10E01000FF1FED57F1488591949127E231E040E0F0 +:10E0200050E062E477E1DF91CF911F910F91FF9073 +:10E03000EF90DF90CF90BF90AF900D947455033068 +:10E0400009F042C020919B022223E1F0E091530AA3 +:10E05000F0E0EE0FFF1FED5FFC47C591D4910397F1 +:10E06000A105B10531F480E497E12CDA9C014EE37F +:10E0700005C080E497E126DA9C0140E2BE01812FD1 +:10E080000F942554BB2009F4DFC080919D17909117 +:10E090009E17A0919F17B091A0170397A105B105F6 +:10E0A00009F0D2C00F941C55E091530AF0E0EE0F36 +:10E0B000FF1FED5FFC47859194912CE830E040E034 +:10E0C00050E060E477E1AFCF043009F042C0209126 +:10E0D0009B022223E1F0E091530AF0E0EE0FFF1FD4 +:10E0E000E752FF47C591D4910497A105B10531F4DA +:10E0F0008AE09AE0E7D99C014EE305C08AE09AE005 +:10E10000E1D99C0140E2BE01812F0F942554BB2030 +:10E1100009F49AC080919D1790919E17A0919F1726 +:10E12000B091A0170497A105B10509F08DC00F9417 +:10E130001C55E091530AF0E0EE0FFF1FE752FF4736 +:10E14000859194912FEF30E040E050E06AE07AE072 +:10E150006ACF053009F042C020919B022223E1F0F2 +:10E16000E091530AF0E0EE0FFF1FED58FF47C59115 +:10E17000D4910597A105B10531F485E492E0A2D9C7 +:10E180009C014EE305C085E492E09CD99C0140E2ED +:10E19000BE01812F0F942554BB2009F455C08091F6 +:10E1A0009D1790919E17A0919F17B091A01705976A +:10E1B000A105B10509F048C00F941C55E091530A20 +:10E1C000F0E0EE0FFF1FED58FF478591949127EE89 +:10E1D00033E04AE050E065E472E025CF0630A1F577 +:10E1E00020919B022223A1F0E091530AF0E0EE0F70 +:10E1F000FF1FE553FF476591749120E20697A10543 +:10E20000B10511F44EE301C040E2812F0F94EE53AB +:10E21000BB20D1F080919D1790919E17A0919F17E0 +:10E22000B091A0170697A105B10571F40F941C5584 +:10E23000DF91CF911F910F91FF90EF90DF90CF90E2 +:10E24000BF90AF900D9457622091231880919D1735 +:10E2500090919E17A0919F17B091A01721110FC008 +:10E26000073009F042C020919B02222301F1E09186 +:10E27000530AF0E0EE0FFF1FEF5AF4480DC00730CD +:10E28000A1F520919B02222391F0E091530AF0E046 +:10E29000EE0FFF1FED5BF4486591749120E2079744 +:10E2A000A105B10501F140E2812F0F94EE53BB208F +:10E2B000E1F080919D1790919E17A0919F17B091CA +:10E2C000A0170797A105B10581F40F941C55DF91A4 +:10E2D000CF911F910F91FF90EF90DF90CF90BF9063 +:10E2E000AF900D94DA554EE3DFCF80919D1790915A +:10E2F0009E17A0919F17B091A0170897A105B1058F +:10E3000040F0C0929D17D0929E17E0929F17F09216 +:10E31000A01740919D178091A21790E00396242F9B +:10E3200030E0821793074CF48DEF840F8093A2178F +:10E33000A0929B020CEF040F1FEF1F5F0F5F1430C2 +:10E3400008F4A6CDDF91CF911F910F91FF90EF9030 +:10E35000DF90CF90BF90AF9008958F929F92AF9231 +:10E36000BF92CF92DF92EF92FF92CF93DF931F92F3 +:10E370001F92CDB7DEB78830910509F449C0C4F4C7 +:10E380008430910509F44DC064F48130910509F49D +:10E390009DC18230910509F4C7C1892B09F07CC465 +:10E3A00043C086309105B9F1CCF1ECEAF5E0D3C277 +:10E3B0008A35910521F164F48531910531F1863179 +:10E3C000910501F1449709F067C4ECE9F5E01CC33D +:10E3D0008C35910571F084F08D35910539F08336D7 +:10E3E000910509F059C4E0EDF5E01CC4EFE6F5E055 +:10E3F000F6C3E8E7F5E0D0C3E1E8F5E0AAC3EAE850 +:10E40000F5E084C3E3E9F5E055C3ECE9F5E02EC39C +:10E41000EEE9F5E0CCC2E5EBF5E075C2EEEBF5E038 +:10E4200049C2E7ECF5E01DC280919F0AECE9F5E0F6 +:10E43000882309F42CC18191882339F09091C00080 +:10E4400095FFFCCF8093C600F6CF84E090E00F9458 +:10E45000BB590F94DB59EAEDF5E08191882339F03F +:10E460009091C00095FFFCCF8093C600F6CF4091FD +:10E470004C0A50914D0A60914E0A70914F0A2AE061 +:10E4800030E080EF96E00E94525DE0EEF5E0819191 +:10E49000882339F09091C00095FFFCCF8093C6008F +:10E4A000F6CF8091890C882319F18091330D9091DA +:10E4B000340DA091350DB091360D0097A105B10531 +:10E4C000B9F0BC01CD016D597F4F8F4F9F4F24E6AE +:10E4D00030E040E050E00F94FCC460913B0D70913F +:10E4E0003C0D80913D0D90913E0D0F94FCC401C0F8 +:10E4F00020E030E03A832983CE0101960F94626ACE +:10E50000FC012191CF01222339F03091C00035FF69 +:10E51000FCCF2093C600F4CFE7EEF5E0819188238D +:10E5200039F09091C00095FFFCCF8093C600F6CFE4 +:10E5300087E492E00F94626AFC012191CF012223CB +:10E5400039F03091C00035FFFCCF2093C600F4CFE6 +:10E55000EEEEF5E08191882339F09091C00095FFAF +:10E56000FCCF8093C600F6CFE9EBF7E181918823D9 +:10E5700039F09091C00095FFFCCF8093C600F6CF94 +:10E58000E5EFF5E08191882339F09091C00095FF87 +:10E59000FCCF8093C600F6CF8091C5079091C60747 +:10E5A000A091C707B091C807892B8A2B8B2B49F103 +:10E5B0000F9424B7F8EE8F2EF3E09F2EA12CB12CF0 +:10E5C000A50194010F94FCC469017A016091C5070B +:10E5D0007091C6078091C7079091C807A501940163 +:10E5E0000F94FCC4C21AD30AE40AF50A2AE030E008 +:10E5F000B701A60180EF96E00E94525DECEFF5E0D6 +:10E600000FC04AE050E060E070E080EF96E00E94CA +:10E61000185DF4CF9091C00095FFFCCF8093C600A9 +:10E6200081918111F7CFE9E7F3E08191882339F0F7 +:10E630009091C00095FFFCCF8093C600F6CFE5EC2B +:10E64000F5E08191882339F09091C00095FFFCCFCF +:10E650008093C600F6CFE4E0F6E08191882339F09C +:10E660009091C00095FFFCCF8093C600F6CF8091BB +:10E67000C00085FFFCCF8AE08093C60084E090E074 +:10E680003AC29091C00095FFFCCF8093C600819163 +:10E690008111F7CF81E090E00F94BB590F94DB59C3 +:10E6A000E4E0F6E08191882339F09091C00095FF75 +:10E6B000FCCF8093C600F6CF8091C00085FFFCCFD1 +:10E6C0008AE08093C60081E090E015C282E090E08D +:10E6D00090931A1880931918ECE9F5E0819188233A +:10E6E00039F09091C00095FFFCCF8093C600F6CF23 +:10E6F00082E090E00F94BB590F94DB59E4E0F6E020 +:10E700008191882339F09091C00095FFFCCF8093D0 +:10E71000C600F6CF8091C00085FFFCCF8AE08093D1 +:10E72000C60082E090E090C083E090E090931A18D9 +:10E7300080931918ECE9F5E08191882339F09091E4 +:10E74000C00095FFFCCF8093C600F6CF83E090E039 +:10E750000F94BB590F94DB59E4E0F6E081918823D4 +:10E7600039F09091C00095FFFCCF8093C600F6CFA2 +:10E770008091C00085FFFCCF8AE08093C60083E0D3 +:10E7800090E09093510A8093500A81E090E090933A +:10E79000A9028093A80280919F0A811103C0ECE92D +:10E7A000F5E034C084E090E090931A188093191833 +:10E7B000ECE9F5E08191882339F09091C00095FF54 +:10E7C000FCCF8093C600F6CF84E090E00F94BB5955 +:10E7D0000F94DB59E4E0F6E08191882339F09091C1 +:10E7E000C00095FFFCCF8093C600F6CF8091C0009B +:10E7F00085FFFCCF8AE08093C60084E090E024C0CF +:10E800009091C00095FFFCCF8093C600819181114B +:10E81000F7CF83E090E00F94BB590F94DB59E4E00D +:10E82000F6E08191882339F09091C00095FFFCCFEC +:10E830008093C600F6CF8091C00085FFFCCF8AE0B0 +:10E840008093C60083E090E09093510A8093500A31 +:10E8500081E090E000C19091C00095FFFCCF8093D3 +:10E86000C60081918111F7CF8091C00085FFFCCF58 +:10E870008AE08093C6008091500A9091510A0F94CB +:10E88000BB590F94DB59E4E0F6E08191882339F01D +:10E890009091C00095FFFCCF8093C600F6CF809189 +:10E8A000C00085FFFCCFA4C09091C00095FFFCCFB5 +:10E8B0008093C60081918111F7CF8091C00085FFC0 +:10E8C000FCCF8AE08093C6008091500A9091510A53 +:10E8D0000F94BB590F94DB59E4E0F6E08191882353 +:10E8E00039F09091C00095FFFCCF8093C600F6CF21 +:10E8F0008091C00085FFFCCF7BC09091C00095FF48 +:10E90000FCCF8093C60081918111F7CF8091C00028 +:10E9100085FFFCCF8AE08093C6000F94DB59E4E0CA +:10E92000F6E08191882339F09091C00095FFFCCFEB +:10E930008093C600F6CF8091C00085FFFCCF8AE0AF +:10E940008093C60088E090E027C09091C00095FFBA +:10E95000FCCF8093C60081918111F7CF8091C000D8 +:10E9600085FFFCCF8AE08093C6000F94DB59E4E07A +:10E97000F6E08191882339F09091C00095FFFCCF9B +:10E980008093C600F6CF8091C00085FFFCCF8AE05F +:10E990008093C60089E090E09093510A8093500ADA +:10E9A0002AC09091C00095FFFCCF8093C600819152 +:10E9B0008111F7CF1092510A1092500A60911B18E2 +:10E9C00070911C184AE050E080EF96E00E94185DBC +:10E9D000E3E0F6E08191882339F09091C00095FF43 +:10E9E000FCCF8093C600F6CF8091C00085FFFCCF9E +:10E9F0008AE08093C60082E090E02DC09091C00034 +:10EA000095FFFCCF8093C60081918111F7CF809153 +:10EA1000C00085FFFCCF8AE08093C6008091500A39 +:10EA20009091510A0F94BB590F94DB59E4E0F6E042 +:10EA30008191882339F09091C00095FFFCCF80939D +:10EA4000C600F6CF8091C00085FFFCCF8AE080939E +:10EA5000C60085E090E09093A9028093A8021CC1B3 +:10EA60009091C00095FFFCCF8093C60081918111E9 +:10EA7000F7CF0F94FE590F94DB598091500A909173 +:10EA8000510A0F94BB59E4E0F6E08191882339F0F4 +:10EA90009091C00095FFFCCF8093C600F6CF809187 +:10EAA000C00085FFFCCFF5C09091C00095FFFCCF62 +:10EAB0008093C60081918111F7CF8091C00085FFBE +:10EAC000FCCF8AE08093C6000F94DB59E4E0F6E0C7 +:10EAD0008191882339F09091C00095FFFCCF8093FD +:10EAE000C600F6CF8091C00085FFFCCF8AE08093FE +:10EAF000C60085E090E09093510A8093500ACCC004 +:10EB00009091C00095FFFCCF8093C6008191811148 +:10EB1000F7CF8091C00085FFFCCF8AE08093C600CC +:10EB20000F94DB59E4E0F6E08191882339F090916D +:10EB3000C00095FFFCCF8093C600F6CF8091C00047 +:10EB400085FFFCCFA6C09091C00095FFFCCF8093BD +:10EB5000C60081918111F7CF8091C00085FFFCCF65 +:10EB60008AE08093C6000F94DB59E4E0F6E08191DF +:10EB7000882339F09091C00095FFFCCF8093C600A8 +:10EB8000F6CF8091C00085FFFCCF83C09091C0007C +:10EB900095FFFCCF8093C60081918111F7CF8091C2 +:10EBA000C00085FFFCCF8AE08093C6000F94DB593C +:10EBB000E4E0F6E08191882339F09091C00095FF60 +:10EBC000FCCF8093C600F6CF8091C00085FFFCCFBC +:10EBD00060C09091C00095FFFCCF8093C6008191EA +:10EBE0008111F7CF8091C00085FFFCCF8AE0809330 +:10EBF000C6000F94DB59E4E0F6E08191882339F0F8 +:10EC00009091C00095FFFCCF8093C600F6CF809115 +:10EC1000C00085FFFCCF3DC09091C00095FFFCCFA8 +:10EC20008093C60081918111F7CF0F94FE59E6EAD7 +:10EC3000F5E08191882339F09091C00095FFFCCFD9 +:10EC40008093C600F6CF60911B1870911C184AE0A3 +:10EC500050E080EF96E00E94185DE5ECF5E08191D0 +:10EC6000882339F09091C00095FFFCCF8093C600B7 +:10EC7000F6CFE4E0F6E08191882339F09091C0006E +:10EC800095FFFCCF8093C600F6CF8091C00085FF32 +:10EC9000FCCF8AE08093C6000F900F90DF91CF9158 +:10ECA000FF90EF90DF90CF90BF90AF909F908F90AC +:10ECB0000895BF92CF92DF92EF92FF920F931F932E +:10ECC000CF93DF93C0911B18D0911C180F94326121 +:10ECD00040E060E084EA97E10E94C95966E076E08E +:10ECE00084EA97E10F94E3B9B12CA4E6EA2EF12C63 +:10ECF000BAE0CB2ED12C20914318422F55274195B5 +:10ED00000CF45095CA0157FF03C091958195910964 +:10ED100003970CF444C027FF1FC051E0B51659F00B +:10ED200082E0B81681F0B11038C0C436D105ACF11C +:10ED3000C456D10932C0CE01B7010F94E9C40A9775 +:10ED400064F12A972AC0CE01B6010F94E9C41816BF +:10ED500019061CF5219721C02223F9F041E0B416D1 +:10ED600061F052E0B51691F0B11017C0C43883E0DD +:10ED7000D8079CF4CC59DF4F10C0CE01B7010F94D7 +:10ED8000E9C48A3591054CF42A9607C0CE01B60134 +:10ED90000F94E9C4099709F021961092431842E0B4 +:10EDA00060E084EA97E10E94C959C436D1057CF439 +:10EDB00061E176E084EA97E10F94E3B9CA30D105C6 +:10EDC00034F461E176E084EA97E10F94E3B94AE034 +:10EDD00050E0BE0184EA97E10F9480BA6AE776E0DA +:10EDE00084EA97E10F94E3B943E060E084EA97E1B5 +:10EDF0000E94C95969E776E084EA97E10F94E3B984 +:10EE000043E06B2D84EA97E10E94C9596EE076E0F9 +:10EE100084EA97E10F94E3B964E670E080E090E063 +:10EE20000F9453B70F94EC658823E1F068EC70E021 +:10EE300080E090E00F9453B7B39443E0B41212C053 +:10EE4000D0931C18C0931B186BE178E181EC9FE014 +:10EE50000F94606184E190E080DA0F94055901E03D +:10EE600010E002C000E010E00F94224D012B09F4E5 +:10EE700042CFDF91CF911F910F91FF90EF90DF90E4 +:10EE8000CF90BF900895CF93DF931F921F92CDB77D +:10EE9000DEB7FC0160817181828193810F9479C01A +:10EEA0007A836983CE0101960F94626A0F900F9066 +:10EEB000DF91CF910895CF93DF9300D01F92CDB70C +:10EEC000DEB70F940E6120E030E048E452E4609138 +:10EED0003A1770913B1780913C1790913D170F9412 +:10EEE00039C21816CCF020E030E048E452E46091DA +:10EEF00034177091351780913617909137170F940A +:10EF000039C218164CF00F94C6600F900F900F90F6 +:10EF10000F90DF91CF910895E091530AF0E0EE0F4A +:10EF2000FF1FE95FF548859194910F94B86544E01F +:10EF300060E084EA97E10E94C95962E084EA97E1BF +:10EF40000F94E4B980913A1790913B17A0913C1728 +:10EF5000B0913D1789839A83AB83BC83CE01019620 +:10EF600092DFBC0184EA97E10F94E3B960E176E0B7 +:10EF700084EA97E10F94E3B963E176E084EA97E1EC +:10EF80000F94E3B944E069E084EA97E10E94C9592B +:10EF900060E084EA97E10F94E4B98091341790918E +:10EFA0003517A0913617B091371789839A83AB83B1 +:10EFB000BC83CE01019667DFBC0184EA97E10F9420 +:10EFC000E3B960E176E084EA97E10F94E3B963E1A5 +:10EFD00076E084EA97E10F94E3B90F94515388EEF9 +:10EFE00093E00E9400776FCFFC018081918184368D +:10EFF000910524F164E670E00F94E9C4CB012AE0A6 +:10F0000030E0B9010F94E9C4805D80937E17808160 +:10F010009181B9010F94E9C4CB01B9010F94E9C4FE +:10F02000805D80937F1780819181B9010F94E9C43D +:10F03000805D809380171092811723C08A309105DC +:10F04000BCF02AE030E0B9010F94E9C4CB01B9016A +:10F050000F94E9C4805D80937E1780819181B9010E +:10F060000F94E9C4805D80937F171092801709C0C8 +:10F070006AE070E00F94E9C4805D80937E1710927F +:10F080007F178EE797E10895FC0180819181883E8A +:10F0900023E092075CF068EE73E00F94E9C4CB01C3 +:10F0A0006AE070E00F94E9C4805D01C080E2809363 +:10F0B0007E1780819181843691055CF064E670E072 +:10F0C0000F94E9C4CB016AE070E00F94E9C4805D5D +:10F0D00001C080E280937F17808191818A30910501 +:10F0E0005CF02AE030E0B9010F94E9C4CB01B9012A +:10F0F0000F94E9C4805D01C080E280938017808115 +:10F1000091816AE070E00F94E9C4805D809381177B +:10F11000109282178EE797E10895CF92EF920F93A6 +:10F120000F9424B7609315187093161880931718CE +:10F13000909318180F9424B760930C1870930D18BF +:10F1400080930E1890930F180F9424B760930818AB +:10F150007093091880930A1890930B18E7E4CE2E49 +:10F16000F5E5EF2E06E423E142E162E584EA97E16A +:10F170000E94B45A0F91EF90CF900895CF93DF93F0 +:10F18000FC016491EC012196662331F084EA97E159 +:10F190000E94A15BCE01F4CFDF91CF9108950F9330 +:10F1A0001F93CF93DF938C01EB0141E061E084EA90 +:10F1B00097E10E94C959C801E1DF6AE384EA97E157 +:10F1C0000F94E4B9FE0101900020E9F76C2F6E1B4B +:10F1D0006C5E41E084EA97E10E94C959BE0184EA6D +:10F1E00097E1DF91CF911F910F910D94E3B92F9289 +:10F1F0003F924F925F926F927F928F929F92AF92C7 +:10F20000BF92CF92DF92EF92FF920F931F93CF9313 +:10F21000DF931C01EB017A01490180919D179091C8 +:10F220009E17A0919F17B091A017892B8A2B8B2B2B +:10F2300009F4AFC00E940868809172108F5F80311E +:10F2400009F480E090917110981709F4A2C08E0122 +:10F25000000F111F000F111FC801805E954F5C0148 +:10F2600060919D1770919E17882777FD8095982F44 +:10F270000F94ACC020918A1730918B1740918C1756 +:10F2800050918D170F940BC3F5012081318142817C +:10F2900053810F941ABF2B013C01B701882777FDDA +:10F2A0008095982F0F94ACC06B017C019B01AC0141 +:10F2B000C301B2010F940AC0F50187FD05C0408269 +:10F2C00051826282738204C0C082D182E282F38260 +:10F2D000B401882777FD8095982F0F94ACC04B011F +:10F2E0005C01C801805E954F7C01A5019401FC0181 +:10F2F00060817181828193810F9439C218162CF438 +:10F30000F70180829182A282B38210929D1710929F +:10F310009E1710929F171092A01764E27AE080E285 +:10F320009AE00E94A161F801EF52F94F20E030E02D +:10F3300040E752E460817181828193810F9411C012 +:10F340004B015C01E090280AF090290A00912A0AFA +:10F3500010912B0A2091240A3091250A4091260A07 +:10F360005091270A6091200A7091210A8091220A07 +:10F370009091230AECE0FAE0FF93EF93BCE2CB2EEE +:10F38000BAE0DB2E0F94152681E080939B020F904C +:10F390000F9080919B02882361F0CE01880F991F06 +:10F3A000880F991F805E954F0F94B467BC01C1010F +:10F3B000F6DE8091A31782FF09C001E021E040E062 +:10F3C00050E0BA0182ED91E00F942B55DF91CF917F +:10F3D0001F910F91FF90EF90DF90CF90BF90AF9073 +:10F3E0009F908F907F906F905F904F903F902F9065 +:10F3F000089522ED30E040E050E062E070E083E705 +:10F400009DE9F5CE22ED30E04EEF5FEF61E070E078 +:10F4100081E79DE9ECCE2AEF30E040E050E060E08B +:10F4200070E08FE69DE9E3CE0F93CF93DF931F92B9 +:10F430001F92CDB7DEB780919D1790919E17A09136 +:10F440009F17B091A017B7FF08C010929D17109298 +:10F450009E1710929F171092A017809132189091CA +:10F460003318A0913418B091351840919D175091E0 +:10F470009E1760919F177091A01784179507A60794 +:10F48000B70744F480939D1790939E17A0939F17FE +:10F49000B093A01780919B028823B1F080912E1821 +:10F4A00090912F1820919D1730919E17820F931FD6 +:10F4B0009A838983CE0101960F94626ABC01809180 +:10F4C0002A1890912B186BDE8091A31782FF1EC023 +:10F4D000E0912C18F0912D1880912E1890912F18F2 +:10F4E00020919D1730919E17820F931F91838083E7 +:10F4F000409128185091291860E070E000E021E068 +:10F5000080912618909127180F942B550F900F90EB +:10F51000DF91CF910F9108950F931F93CF93DF93B6 +:10F520008C01EB0141E060E084EA97E10E94C95957 +:10F53000C80124DE6AE384EA97E10F94E4B9FE018E +:10F5400001900020E9F7BE016E1B7F0B6B5E7F4FC1 +:10F550007695679543E084EA97E10E94C959BE0118 +:10F5600084EA97E10F94E3B965E176E084EA97E1F4 +:10F57000DF91CF911F910F910D94E3B90F931F93DA +:10F58000CF93DF93EDE2F3E8C591D49180912618F3 +:10F5900081117BC011E0109326180E94807867E2E9 +:10F5A00078E18CEF9FE00F94716169E278E18AEF76 +:10F5B0009FE00F9471616BE278E188EF9FE00F9418 +:10F5C00071616091271870912818882777FD8095C0 +:10F5D000982F0F94ACC020912E1630912F16409189 +:10F5E0003016509131160F9411C060932D187093FE +:10F5F0002E1880932F1890933018609129187091CD +:10F600002A18882777FD8095982F0F94ACC02091F9 +:10F6100032163091331640913416509135160F94AE +:10F6200011C06093311870933218809333189093FF +:10F63000341860912B1870912C18882777FD8095CD +:10F64000982F0F94ACC02091361630913716409108 +:10F650003816509139160F9411C060933518709375 +:10F660003618809337189093381810939B020F9494 +:10F6700024B76057704A8E4F9F4F609386177093E0 +:10F680008717809388179093891740919D17509101 +:10F690009E1760919F177091A017452B462B472B03 +:10F6A00009F46BC08091810A882341F010929D1764 +:10F6B00010929E1710929F171092A01780912B18EE +:10F6C00090912C1820919D1730919E17820F931FB7 +:10F6D00090932C1880932B18813620EF92073CF4DE +:10F6E00081E690EF90932C1880932B1819C0181670 +:10F6F00019062CF410922C1810922B1811C04FB729 +:10F70000F894809120179091211720919D173091A6 +:10F710009E17820F931F90932117809320174FBF3E +:10F7200060912B1870912C18882777FD8095982F61 +:10F730000F94ACC020913616309137164091381690 +:10F74000509139160F9411C0609335187093361884 +:10F75000809337189093381862E370E080E090E06F +:10F760000F9453B710929D1710929E1710929F17E7 +:10F770001092A01781E080939B0280919B028823C6 +:10F7800039F085E398E10F941C69BC01CE01C4DE19 +:10F790008091A31782FD12C08091061881110EC0BE +:10F7A0008091A31782FF11C001E021E040E050E00A +:10F7B000BA0182EB91E00F942B5507C06BE278E120 +:10F7C00088EF9FE00F946061EBCFDF91CF911F91A5 +:10F7D0000F91089540E060E084EA97E10E94C959E2 +:10F7E0008AED9DE9CBDC41E060E084EA97E10E948C +:10F7F000C9591E9B03C087ED9DE902C084ED9DE9B8 +:10F80000BDDC42E060E084EA97E10E94C9591D9B9B +:10F8100003C081ED9DE902C08EEC9DE9AFDC43E0C1 +:10F8200060E084EA97E10E94C9591C9B03C08BECFD +:10F830009DE902C088EC9DE9A1CC0F93CBDF8091BC +:10F84000A31782FF09C001E021E040E050E0BA01C7 +:10F850008CE691E00F942B550F9108950F9432612F +:10F860000F94224D81E00E944876B4DF0F94EC653E +:10F870008823B1F30F94EC658111FCCF6AE070E04E +:10F8800080E090E00F9453B70F94EC658111FCCFAA +:10F890000F9432610D940559EF92FF920F931F93CD +:10F8A000CF93DF937C01EB018A010F94F9541092FE +:10F8B00043171092421710924117109240170F945D +:10F8C000224D80E00E9448760F94326140E060E073 +:10F8D00084EA97E10E94C9592091530A30E0220F2F +:10F8E000331F2F5C3348F9018591949147DC41E047 +:10F8F00060E084EA97E10E94C9592091530A30E000 +:10F90000220F331F2B553448F9018591949136DC31 +:10F91000F7013197E830F10508F0E2C0E358FF4FF6 +:10F9200042E060E084EA97E10D943AC50E94C9592B +:10F93000E091530AF0E0EE0FFF1FE352F448859187 +:10F9400094911CDC43E060E084EA97E10E94C9598D +:10F95000E091530AF0E0EE0FFF1FEF53F44819C097 +:10F960000E94C959E091530AF0E0EE0FFF1FE752E1 +:10F97000F3488591949102DC43E060E084EA97E1EA +:10F980000E94C959E091530AF0E0EE0FFF1FE757BC +:10F99000F44885919491F2DBA3C00E94C959E0918B +:10F9A000530AF0E0EE0FFF1FE35BF348859194915B +:10F9B000E5DB43E060E084EA97E10E94C959E09109 +:10F9C000530AF0E0EE0FFF1FE757F448859194913A +:10F9D000D5DB43E061E17BC00E94C959E091530A45 +:10F9E000F0E0EE0FFF1FE153F44885919491C6DBE0 +:10F9F00042E062E184EA97E10E94C959BE0184EACB +:10FA000097E10F94E3B943E060E084EA97E10E9454 +:10FA1000C959E091530AF0E0EE0FFF1FE55AF34891 +:10FA200085919491ABDB43E062E184EA97E10E9427 +:10FA3000C959B80151C00E94C959E091530AF0E078 +:10FA4000EE0FFF1FE15CF3482DC00E94C959E09101 +:10FA5000530AF0E0EE0FFF1FE759F34809C00E9478 +:10FA6000C959E091530AF0E0EE0FFF1FED5DF34836 +:10FA70008591949183DB43E060E084EA97E10E9402 +:10FA8000C959E091530AF0E0EE0FFF1FE757F44821 +:10FA900019C00E94C959E091530AF0E0EE0FFF1F10 +:10FAA000E157F0488591949169DB43E060E084EA96 +:10FAB00097E10E94C959E091530AF0E0EE0FFF1F51 +:10FAC000E153F4488591949159DB43E062E184EA83 +:10FAD00097E10E94C959BE0184EA97E10F94E3B906 +:10FAE00068EE73E080E090E00F9453B70F94F95400 +:10FAF00064E670E080E090E00F9453B70F94224DDD +:10FB000080E00E9448760F94EC65882389F3E091A9 +:10FB1000530AF0E0EE0FFF1FEB5EF34885919491DE +:10FB20000F947562DF91CF911F910F91FF90EF902D +:10FB30000D9405592F923F924F925F926F927F9250 +:10FB40008F929F92AF92BF92CF92DF92EF92FF92ED +:10FB50000F931F93CF93DF93CDB7DEB728970FB6E0 +:10FB6000F894DEBF0FBECDBF1C010E94086881E083 +:10FB70000E944876C101880F991F880F991F9E83A4 +:10FB80008D83805E954F2C01DC018D919D910D90B0 +:10FB9000BC91A02D89839A83AB83BC8320E030E0A5 +:10FBA00040E050E4BC01CD010F941ABFF201608324 +:10FBB000718382839383E090280AF090290A009150 +:10FBC0002A0A10912B0A2091240A3091250A40918B +:10FBD000260A5091270A6091200A7091210A80918B +:10FBE000220A9091230AECE0FAE0FF93EF93812C34 +:10FBF000912CE8E4AE2EE2E4BE2EFCE2CF2EFAE039 +:10FC0000DF2E0F9415260F900F90A5E06A2E712C11 +:10FC100058864F82BCE04B2EBAE05B2E0E940868EB +:10FC200020E030E048E452E4AF81B8856D917D91E9 +:10FC30008D919C910F941ABFEF81F8856083718339 +:10FC40008283938362E573E080E00F941E40E0902E +:10FC5000280AF090290A00912A0A10912B0A209173 +:10FC6000240A3091250A4091260A5091270A609172 +:10FC7000200A7091210A8091220A9091230A5F92B2 +:10FC80004F92812C912CA8E4AA2EA3E4BA2EBCE2B8 +:10FC9000CB2EBAE0DB2E0F9415260F94B93E0F90B1 +:10FCA0000F9080912318813019F46EE071E002C04A +:10FCB0006CE172E080E00F941E4020E030E048E408 +:10FCC00052E4AF81B8856D917D918D919C910F9497 +:10FCD00019BFEF81F8856083718382839383E090FD +:10FCE000280AF090290A00912A0A10912B0A2091E3 +:10FCF000240A3091250A4091260A5091270A6091E2 +:10FD0000200A7091210A8091220A9091230A5F9221 +:10FD10004F92812C912CE8E4AE2EE2E4BE2EFCE260 +:10FD2000CF2EFAE0DF2E0F9415260F94B93E0F90D8 +:10FD30000F901E9965C01D9963C0B1E06B1A7108E0 +:10FD400009F06CCF0F9424B72B013C01F4EC4F0E5B +:10FD5000F9E05F1E611C711C81E00E9448768D8174 +:10FD60009E81805E954F98878F831E9957C01D99FD +:10FD700055C020E030E040E85FE3EF81F885608126 +:10FD80007181828193810F9419BFAF81B8856D9382 +:10FD90007D938D939C931397E090280AF090290A05 +:10FDA00000912A0A10912B0A2091240A3091250AE9 +:10FDB0004091260A5091270A6091200A7091210AE9 +:10FDC0008091220A9091230AACE0BAE0BF93AF93EE +:10FDD000812C912CE8E4AE2EE2E4BE2EFCE2CF2E84 +:10FDE000FAE0DF2E0F9415260F94B93E0F9424B736 +:10FDF0000F900F90461657066806790608F0B5CFA3 +:10FE0000232849F065EB76E044E156E088E090E095 +:10FE100043DD80E067C062EB76E0F6CF0D811E81A6 +:10FE2000005E154FD8014D905D906D907C9020E064 +:10FE300030E040E85FE369817A818B819C810F9497 +:10FE400019BFA30192010F940AC01816CCF220E04A +:10FE500030E040E85FE369817A818B819C810F9477 +:10FE60001ABFA30192010F9439C287FDC9CF20E0C8 +:10FE700030E040E751E4C301B2010F941ABFD8014A +:10FE80006D937D938D939C931397E090280AF09047 +:10FE9000290A00912A0A10912B0A2091240A3091F4 +:10FEA000250A4091260A5091270A6091200A7091F4 +:10FEB000210A8091220A9091230AECE0FAE0FF9354 +:10FEC000EF93812C912CA8E4AA2EA2E4BA2EBCE2D6 +:10FED000CB2EBAE0DB2E0F9415260F94B93E0F906F +:10FEE0000F9081E028960FB6F894DEBF0FBECDBF0D +:10FEF000DF91CF911F910F91FF90EF90DF90CF9006 +:10FF0000BF90AF909F908F907F906F905F904F9039 +:10FF10003F902F900895FF920F931F93CF93DF93FD +:10FF2000EC010F94326140E060E084EA97E10E94C6 +:10FF3000C959E091530AF0E0EE0FFF1FE95FF34863 +:10FF4000859194911BD9C130D10509F1C230D105F9 +:10FF500009F03DC041E060E084EA97E10E94C959A0 +:10FF6000E091530AF0E0EE0FFF1FE759F348859147 +:10FF7000949104D9809101018860809301016FEF11 +:10FF800070E086E00F94F7B706E010E022C041E091 +:10FF900060E084EA97E10E94C959E091530AF0E0D9 +:10FFA000EE0FFF1FED5DF34885919491E7D88091A6 +:10FFB00001018062809301019FB7F8948091020152 +:10FFC0008062809302019FBF07E010E002C000E062 +:10FFD00010E064EF71E080E090E00F9453B742E0EE +:10FFE00061E084EA97E10E94C959E091530AF0E088 +:10FFF000EE0FFF1FE551F44885919491BFD843E07F +:020000023000CC +:1000000060E084EA97E10E94C95962E475E084EAFD +:1000100097E10F94E3B943E061E084EA97E10E943D +:10002000C959E091530AF0E0EE0FFF1FE750F44882 +:1000300085919491A3D8F12CC130D10571F0C230D3 +:10004000D105C1F4809101018860809301016FEFB7 +:1000500070E086E00F94F7B70DC0809101018062D7 +:10006000809301019FB7F894809102018062809390 +:1000700002019FBF80914318482F552741950CF4EA +:1000800050959A0157FF03C03195219531092330CE +:1000900031050CF47DC087FF3AC042E060E084EA9D +:1000A00097E10E94C95962E475E084EA97E10F94F0 +:1000B000E3B942E061E084EA97E10E94C959E09126 +:1000C000530AF0E0EE0FFF1FE551F448859194913B +:1000D00055D843E060E084EA97E10E94C9596BE794 +:1000E00076E084EA97E10F94E3B943E061E084EAC3 +:1000F00097E10E94C959E091530AF0E0EE0FFF1F0B +:10010000E750F4488591949139D8FF24F394809175 +:10011000431818160CF03AC042E060E084EA97E118 +:100120000E94C9596BE776E084EA97E10F94E3B93E +:1001300042E061E084EA97E10E94C959E091530AE4 +:10014000F0E0EE0FFF1FE551F4488591949116D829 +:1001500043E060E084EA97E10E94C95962E475E0F7 +:1001600084EA97E10F94E3B943E061E084EA97E120 +:100170000E94C959E091530AF0E0EE0FFF1FE750CB +:10018000F448859194910F94BE78F12C1092431805 +:100190000F94224D64E670E080E090E00F9453B736 +:1001A0000F94EC65882309F447CF809101018062A8 +:1001B000809301019FB7F894809102018F7D809315 +:1001C00002019FBF8091010188608093010160E07E +:1001D00070E086E00F94F7B710920B0A10920A0AAB +:1001E0000F94224DF11005C060E070E0AB01C80132 +:1001F00053DB8F2DDF91CF911F910F91FF900895C9 +:100200006F927F928F929F92AF92BF92CF92DF9226 +:10021000EF92FF920F931F93CF93DF931F92CDB76F +:10022000DEB73C016B017A01580129830F9424B792 +:10023000605C7D4B8F4F9F4F609392177093931725 +:1002400080939417909395172981EC14FD042CF456 +:10025000EEE28E2EE6E09E2E04C079E1872E76E057 +:10026000972E21110F94326140E060E084EA97E11B +:100270000E94C9598FEF6816780641F4E091530A3D +:10028000F0E0EE0FFF1FE956F4480AC06114710454 +:1002900061F4E091530AF0E0EE0FFF1FE155F348DF +:1002A000859194910F94BE782CC0E1E06E16710494 +:1002B00061F4E091530AF0E0EE0FFF1FEF55F348B1 +:1002C000859194910F94BE7828C0F2E06F16710466 +:1002D00061F4E091530AF0E0EE0FFF1FED56F34892 +:1002E000859194910F94BE7830C083E068167104B4 +:1002F00041F4E091530AF0E0EE0FFF1FEB57F34893 +:100300002FC0E4E06E16710441F4E091530AF0E06E +:10031000EE0FFF1FE958F34823C0F5E06F16710494 +:1003200041F4E091530AF0E0EE0FFF1FE354F3486D +:1003300017C086E06816710441F4E091530AF0E0BA +:10034000EE0FFF1FE553F3480BC0E7E06E16710494 +:1003500059F4E091530AF0E0EE0FFF1FEB5EF34813 +:10036000859194910F94BE7841E060E084EA97E132 +:100370000E94C9596BE176E084EA97E10F94E3B9F2 +:10038000F7E06F16710409F47CC081E0681671040F +:1003900031F01614170434F040E050E005C041E09D +:1003A00050E002C042E050E0840120E336E069E022 +:1003B00070E083E090E00F946754E2E06E16710401 +:1003C00039F0F2E06F16710434F440E050E005C0FB +:1003D00041E050E002C042E050E0840122EB36E010 +:1003E00062E070E082E090E00F94675483E068166A +:1003F000710439F0E3E06E16710434F440E050E02B +:1004000005C041E050E002C042E050E0840125EB2D +:1004100036E068E070E082E090E00F946754F4E02A +:100420006F16710439F084E06816710434F440E00A +:1004300050E005C041E050E002C042E050E08401DD +:100440002FE936E06EE070E082E090E00F946754B0 +:10045000E5E06E16710439F0F5E06F16710434F4BE +:1004600040E050E005C041E050E002C042E050E012 +:10047000840127E336E060E070E083E090E00F94D1 +:1004800067541A141B043CF4B501882777FD809546 +:10049000982F0F9453B78FEFC81AD80AEE0CFF1C91 +:1004A000EC14FD041CF480E090E001C0C6010F9044 +:1004B000DF91CF911F910F91FF90EF90DF90CF9040 +:1004C000BF90AF909F908F907F906F9008952F92E4 +:1004D0003F924F925F926F927F928F929F92AF92D4 +:1004E000BF92CF92DF92EF92FF920F931F93CF9321 +:1004F000DF93CDB7DEB72D970FB6F894DEBF0FBEF2 +:10050000CDBF2C019B01CB016AE070E00F94E9C4E0 +:100510003B01620E731E1C821B821D861C861A8282 +:10052000198218861F82312CC201880F991F880FEB +:10053000991F805E954F9E838D8322242394D20140 +:100540001296BA87A98720E030E040E85FE3ED81AA +:10055000FE8160817181828193810F9419BFAD8189 +:10056000BE816D937D938D939C931397E090280AA1 +:10057000F090290A00912A0A10912B0A2091240A4E +:100580003091250A4091260A5091270A6091200A4D +:100590007091210A8091220A9091230AACE0BAE07E +:1005A000BF93AF93812C912CF8E4AF2EF2E4BF2ED1 +:1005B000ACE2CA2EAAE0DA2E0F9415260F94B93EAB +:1005C0000F900F901E9906C01D9904C01C9902C07F +:1005D00030E00FC04114510409F063C033B036FA63 +:1005E000332430F81D997DC082E090E09D878C8790 +:1005F00031E0EB81FC81E630F10524F43196FC8397 +:10060000EB8310C000E010E020E043E050E06F8199 +:10061000788589859A853B87F3DD98878F831C824F +:100620001B823B853B870F94224D81E00E944876D8 +:100630003B8589819A816816790634F001969A8300 +:100640008983332309F47FCF311053C091E04916D9 +:10065000510439F0A2E04A16510431F062EB76E021 +:1006600005C065EB76E002C06FE976E0EC85FD85BC +:10067000E130F10529F0329731F042EB56E005C048 +:1006800045EB56E002C04FE956E089819A81861514 +:1006900097051CF085E090E002C084E090E0FCD873 +:1006A00028C091E04916510449F433B035FA332497 +:1006B00030F81E991BC0A2E0B0E015C0B2E04B16A6 +:1006C000510409F095CF33B034FA332430F883B1B4 +:1006D0008295869586958370822581708C871D868C +:1006E00087CFA1E0B0E0BD87AC8782CF1D861C8696 +:1006F0007FCF832D2D960FB6F894DEBF0FBECDBFF2 +:10070000DF91CF911F910F91FF90EF90DF90CF90ED +:10071000BF90AF909F908F907F906F905F904F9021 +:100720003F902F9008952F923F924F925F926F9239 +:100730007F928F929F92AF92BF92CF92DF92EF9271 +:10074000FF920F931F93CF93DF93CDB7DEB7289718 +:100750000FB6F894DEBF0FBECDBF0F94326140E0FC +:1007600060E084EA97E10E94C959E091530AF0E001 +:10077000EE0FFF1FE956F448859194910F94BE78CF +:1007800060ED77E080E090E00F9453B781E090E077 +:10079000C2DB882309F4ACC282E090E0BCDB582EB7 +:1007A000882309F4A5C200ED17E021E043E050E002 +:1007B00060E070E080E090E023DD3C011E9904C021 +:1007C0001D9902C01C9B48C01E9BDEC220E030E089 +:1007D00040E251E46091200A7091210A8091220A3E +:1007E0009091230A0F941ABF6093200A7093210AF4 +:1007F0008093220A9093230A1D9BCFC220E030E011 +:1008000040E251E46091240A7091250A8091260A01 +:100810009091270A0F941ABF6093240A7093250AB7 +:100820008093260A9093270A1C9BC0C220E030E0E8 +:1008300040E251E46091280A7091290A80912A0AC5 +:1008400090912B0A0F941ABF6093280A7093290A7B +:1008500080932A0A90932B0AE090280AF090290AA4 +:1008600000912A0A10912B0A2091240A3091250A1E +:100870004091260A5091270A6091200A7091210A1E +:100880008091220A9091230AECE0FAE0FF93EF9323 +:10089000812C912CE8E4AE2EE2E4BE2EFCE2CF2EB9 +:1008A000FAE0DF2E0F94152664EF71E080E090E00F +:1008B0000F9453B70F900F901E9904C01D9902C05A +:1008C0001C9B26C019821A821B821C821E9B06C09A +:1008D00062EB76E0CE0101960F94B6C81D9B06C070 +:1008E00065EB76E0CE0101960F94B6C81C9B06C05E +:1008F0006FE976E0CE0101960F94B6C844E156E068 +:10090000BE016F5F7F4F83E090E00F944C7C512CD1 +:100910000F94224D81E00E944876552009F4EAC1E7 +:1009200008EE13E021E043E050E0B30181E090E005 +:1009300067DC3C01C0903A17D0903B17E0903C1721 +:10094000F0903D17609134177091351780913617EC +:10095000909137170F9479C06D837E838F8398872A +:1009600088EC90E0909343178093421710924117C0 +:10097000109240170F94224D81E00E9448768CE33C +:10098000282E312CA12CB12C0F94224D81E00E94F5 +:10099000487600E911E020E042E050E0B50181E056 +:1009A00090E02EDC5C0121E0221A310869F71092F8 +:1009B00043171092421710924117109240170F944C +:1009C000224D80903A1790903B17A0903C17B09022 +:1009D0003D172D813E81B901882777FD8095982F9D +:1009E0000F94ACC09B01AC01609134177091351726 +:1009F00080913617909137170F9419BF0F9479C0D3 +:100A000063307105DCF4C701B6010F9479C0882703 +:100A100077FD8095982F0F94ACC09B01AC01C50168 +:100A2000B4010F9419BF0F9479C06A30710574F442 +:100A300044E156E0BA0181E090E005C044E156E0AF +:100A4000BA0182E090E00F944C7C512C0F94224D1F +:100A500081E00E944876552009F44CC120E030E046 +:100A600040E751E46091280A7091290A80912A0A8E +:100A700090912B0A0F941ABF6093280A7093290A49 +:100A800080932A0A90932B0A00ED17E021E043E0BF +:100A900050E0B30182E090E0B3DB3C016AEF70E02C +:100AA00080E090E014DD882309F424C100E010E028 +:100AB00021E043E050E0B30182E090E0A1DB3C01A3 +:100AC00080E090E037D8882309F414C10CED15E0DC +:100AD00021E043E050E0B30183E090E091DB3C0192 +:100AE00062ED70E081E090E0F2DC882309F402C15D +:100AF00000E010E021E043E050E0B30183E090E04B +:100B00007FDB3C0181E090E015D8882309F4F2C036 +:100B100020E030E040E450E46091200A7091210A26 +:100B20008091220A9091230A0F9419BF6093200AA2 +:100B30007093210A8093220A9093230A20E030E0E8 +:100B400040E651E46091240A7091250A8091260ABA +:100B50009091270A0F9419BF6093240A7093250A75 +:100B60008093260A9093270A0CED15E021E043E0DC +:100B700050E0B30184E090E043DB3C0162ED70E0C3 +:100B800082E090E0A4DCB82E61E082EC9DE90E9456 +:100B9000B56361E08BEB9DE90E94B563BB2009F46E +:100BA000A9C000ED17E021E043E050E0B30185E08B +:100BB00090E026DB3C01C0903417D0903517E090D0 +:100BC0003617F090371760913A1770913B17809164 +:100BD0003C1790913D170F9479C06D837E838F836E +:100BE0009887109243171092421784E690E09093F2 +:100BF0004117809340170F94224D81E00E94487660 +:100C000004EB402E512C812C912C0F94224D81E02D +:100C10000E94487600E911E020E042E050E0B40193 +:100C200085E090E0EDDA4C0131E0431A510869F7B4 +:100C300010924317109242171092411710924017CA +:100C40000F94224D2090341730903517409036176E +:100C5000509037172D813E81B901882777FD809507 +:100C6000982F0F94ACC09B01AC0160913A17709122 +:100C70003B1780913C1790913D170F9419BF0F942B +:100C800079C06A307105DCF4C701B6010F9479C0F0 +:100C9000882777FD8095982F0F94ACC09B01AC01FD +:100CA000C201B1010F9419BF0F9479C0633071056F +:100CB00074F444E156E0BA0181E090E005C044E1FB +:100CC00056E0BA0182E090E00F944C7CB12C0F9476 +:100CD000224D81E00E944876BB2061F008E813E1D4 +:100CE00021E043E050E0B30186E090E089DA0CC0F7 +:100CF000612C712C08E813E121E043E050E0B301DE +:100D000087E090E07DDAB12C1092051861E087EB66 +:100D10009DE90E94B5630F9432610F9424B76C591A +:100D20007F4F8F4F9F4F60939217709393178093CD +:100D3000941790939517E091530AF0E0EE0FFF1F80 +:100D4000BB2019F0ED54F44802C0EB5EF3488591E6 +:100D500094910F94756228960FB6F894DEBF0FBE7B +:100D6000CDBFDF91CF911F910F91FF90EF90DF905A +:100D7000CF90BF90AF909F908F907F906F905F903B +:100D80004F903F902F9008956091200A7091210A12 +:100D90008091220A9091230A27CD6091240A7091B4 +:100DA000250A8091260A9091270A36CD6091280A5B +:100DB0007091290A80912A0A90912B0A45CD0F93B0 +:100DC0001F93CF93DF9380919D1790919E17A091D1 +:100DD0009F17B091A01781309048A105B10540F050 +:100DE00010929D1710929E1710929F171092A017A5 +:100DF00080919D1790919E17A0919F17B091A01779 +:100E00004091A21750E060E070E084179507A607B4 +:100E1000B70710F48093A217D091A2171091A317CF +:100E200012FB112710F9C0E001E0D11138C0809108 +:100E30009B028823E1F0E091530AF0E0EE0FFF1FE0 +:100E4000EF58F0486591749180919D1790919E178D +:100E5000A0919F17B091A01723E0892B8A2B8B2B91 +:100E600011F443E001C040E28C2F0F94EE531123A4 +:100E7000B1F080919D1790919E17A0919F17B0910E +:100E8000A017892B8A2B8B2B51F40F941C5582EBC6 +:100E900091E0DF91CF911F910F910D94F3558091C7 +:100EA0001E18811101C240919D1750919E176091AB +:100EB0009F177091A017D13089F580919B028823EC +:100EC000B1F0E091530AF0E0EE0FFF1FE951F34853 +:100ED0008591949120E2413051056105710511F42D +:100EE0004EE301C040E2BC018C2F0F94EE5311235E +:100EF00009F45FC180919D1790919E17A0919F1753 +:100F0000B091A0170197A105B10509F052C10F9446 +:100F10001C55DF91CF911F910F9105CCD23091F5E7 +:100F200080919B028823B1F0E091530AF0E0EE0F2C +:100F3000FF1FE752FE478591949120E24230510510 +:100F40006105710511F44EE301C040E2BC018C2F34 +:100F50000F94EE53112309F42CC180919D179091A9 +:100F60009E17A0919F17B091A0170297A105B105F8 +:100F700009F01FC10F941C55DF91CF911F910F9164 +:100F80000D942A59D33079F580919B028823B1F0D2 +:100F9000E091530AF0E0EE0FFF1FE75CFF478591F9 +:100FA00094912EE7433051056105710511F44EE32C +:100FB00001C040E2BC018C2F0F94EE53112309F4C1 +:100FC000F8C080919D1790919E17A0919F17B091A6 +:100FD000A0170397A105B10509F0EBC00F941C55AC +:100FE00086E891E030C0D430A1F580919B0288233F +:100FF000B1F0E091530AF0E0EE0FFF1FE75CF0481C +:10100000859194912EE7443051056105710511F4E5 +:101010004EE301C040E2BC018C2F0F94EE5311232C +:1010200009F4C7C080919D1790919E17A0919F17BA +:10103000B091A0170497A105B10509F0BAC00F94AB +:101040001C5586E691E0DF91CF911F910F910D9491 +:101050005557D53081F580919B028823B1F0E091FE +:10106000530AF0E0EE0FFF1FE15DFC47859194917C +:1010700020E2453051056105710511F44EE301C0D0 +:1010800040E2BC018C2F0F94EE53112309F491C060 +:1010900080919D1790919E17A0919F17B091A017D6 +:1010A0000597A105B10509F084C00F941C5561E0B6 +:1010B0008DEE9DE9F3C0D63079F580919B028823AF +:1010C000B1F0E091530AF0E0EE0FFF1FE752FD4749 +:1010D000859194912EE7463051056105710511F413 +:1010E0004EE301C040E2BC018C2F0F94EE5311235C +:1010F00009F45FC080919D1790919E17A0919F1752 +:10110000B091A0170697A105B10509F052C00F9440 +:101110001C558AE991E097CFD73069F580919B0201 +:101120008823B1F0E091530AF0E0EE0FFF1FE15584 +:10113000FE47859194912EE7473051056105710571 +:1011400011F44EE301C040E2BC018C2F0F94EE532A +:10115000112379F180919D1790919E17A0919F176F +:10116000B091A0170797A105B10519F50F941C556B +:1011700088EC91E068CFD83079F580919B02882384 +:10118000B1F0E091530AF0E0EE0FFF1FE35EF1488B +:10119000859194912EE7483051056105710511F450 +:1011A0004EE301C040E2BC018C2F0F94EE531111AD +:1011B00002C02BE07AC080919D1790919E17A0915C +:1011C0009F17B091A0170897A105B10591F70F944B +:1011D0001C558AEC91E037CFD93071F580919B0294 +:1011E0008823B1F0E091530AF0E0EE0FFF1FE15ABF +:1011F000F448859194912EE74930510561057105B8 +:1012000011F44EE301C040E2BC018C2F0F94EE5369 +:10121000112379F280919D1790919E17A0919F17AD +:10122000B091A0170997A105B10509F0C2CF0F949D +:101230001C5586E791E007CFDA3009F0BACF8091EC +:101240009B028823B1F0E091530AF0E0EE0FFF1FFC +:10125000E553FE478591949120E24A30510561059E +:10126000710511F44EE301C040E2BC018C2F0F94D4 +:10127000EE53112309F49DCF80919D1790919E17F5 +:10128000A0919F17B091A0170A97A105B10509F089 +:1012900090CF0F941C5561E089EE9DE9DF91CF91CD +:1012A0001F910F910C94B56321E0422F50E060E054 +:1012B00070E080919D1790919E17A0919F17B0911B +:1012C000A01784179507A607B70780F0422F50E0B4 +:1012D00041505109662757FD6095762F40939D1721 +:1012E00050939E1760939F177093A01740919D177E +:1012F0008091A21790E00396242F30E08217930785 +:101300004CF48DEF840F8093A21700939B02DCEFC7 +:10131000D40FCFEFCF5FDF5FC43008F486CDDF910D +:10132000CF911F910F9108958F929F92AF92BF928C +:10133000CF92DF92EF92FF920F931F9320E030E065 +:1013400042E053E460913A1770913B1780913C174B +:1013500090913D170F9439C218160CF093C08091EC +:101360009D1790919E17A0919F17B091A017892B60 +:101370008A2B8B2B09F46BC00E9408688091721035 +:101380008F5F803109F480E090917110981709F413 +:101390005EC060919D1770919E17882777FD80959C +:1013A000982F0F94ACC020918A1730918B174091E1 +:1013B0008C1750918D170F940BC39B01AC0160915A +:1013C0002C0A70912D0A80912E0A90912F0A0F9469 +:1013D0001ABF60932C0A70932D0A80932E0A909363 +:1013E0002F0A10929D1710929E1710929F1710921D +:1013F000A017E090280AF090290A00912A0A10917B +:101400002B0A2091240A3091250A4091260A5091F6 +:10141000270A6091200A7091210A8091220A9091F6 +:10142000230AECE0FAE0FF93EF93E5E58E2E982C8B +:10143000E5EDAE2EEFE3BE2EFCE2CF2EFAE0DF2E7E +:101440000F94152681E080939B020F900F9080915E +:101450009B02882349F08CE29AE00F94B467BC01A8 +:1014600085E79DE90F94CF788091A31782FF40C054 +:1014700001E021E040E050E0BA0182ED91E00F94FC +:101480002B5536C00F94326140E060E084EA97E16A +:101490000E94C959E091530AF0E0EE0FFF1FE75F89 +:1014A000FE47859194910F94BE7842E060E084EA13 +:1014B00097E10E94C959E091530AF0E0EE0FFF1F37 +:1014C000E954F248859194910F94BE7860ED77E0ED +:1014D00080E090E00F9453B71F910F91FF90EF9031 +:1014E000DF90CF90BF90AF909F908F900D94055953 +:1014F0001F910F91FF90EF90DF90CF90BF90AF9032 +:101500009F908F90089520E030E042E053E4609196 +:101510003A1770913B1780913C1790913D170F94AB +:1015200039C2181634F461E086EC9BE90E94B56379 +:101530002CC00F94326140E060E084EA97E10E94A1 +:10154000C959E091530AF0E0EE0FFF1FE75FFE4735 +:10155000859194910F94BE7842E060E084EA97E12F +:101560000E94C959E091530AF0E0EE0FFF1FE954C1 +:10157000F248859194910F94BE7860ED77E080E019 +:1015800090E00F9453B70F9432610D9405590F9466 +:10159000326141E060E084EA97E10E94C959E0913C +:1015A000530AF0E0EE0FFF1FED50F0488591949143 +:1015B0000F94BE7842E060E084EA97E10E94C95946 +:1015C000E091530AF0E0EE0FFF1FE755F2488591D6 +:1015D00094910D94BE780F94326142E060E084EA09 +:1015E00097E10E94C959E091530AF0E0EE0FFF1F06 +:1015F000ED56FE47859194910D94BE781F93CF933D +:10160000DF930F94326140E060E084EA97E10E944A +:10161000C959E091530AF0E0EE0FFF1FE754F0487C +:10162000859194910F94BE7842E060E084EA97E15E +:101630000E94C959E091530AF0E0EE0FFF1FEB52F0 +:10164000F248859194910F94BE7810E043E0612FA9 +:1016500084EA97E10E94C9596BE774E084EA97E154 +:101660000F94E3B9CAE0D0E00F94224D81E00E94CC +:10167000487665E570E080E090E00F9453B72197DD +:1016800099F71F5F143111F7DF91CF911F910895E2 +:101690001F93CF93DF930F94326140E060E084EAC0 +:1016A00097E10E94C959E091530AF0E0EE0FFF1F45 +:1016B000E555F048859194910F94BE7842E060E042 +:1016C00084EA97E10E94C959E091530AF0E0EE0FD5 +:1016D000FF1FEB52F248859194910F94BE7810E071 +:1016E00043E0612F84EA97E10E94C9596BE774E0F7 +:1016F00084EA97E10F94E3B9CAE0D0E00F94224D59 +:1017000081E00E94487669E870E080E090E00F9404 +:1017100053B7219799F71F5F143111F7DF91CF91DC +:101720001F9108950F931F93CF93DF930F9432610E +:1017300040E060E084EA97E10E94C959E091530AD1 +:10174000F0E0EE0FFF1FE55BFE47859194910F944B +:10175000BE7841E061E084EA97E10E94C959E091D6 +:10176000530AF0E0EE0FFF1FEB51F648859194917C +:101770000F94BE7842E061E084EA97E10E94C95983 +:10178000E091530AF0E0EE0FFF1FEF56F14885910C +:1017900094910F94BE7843E061E084EA97E10E945F +:1017A000C959E091530AF0E0EE0FFF1FE156F148EE +:1017B000859194910F94BE7841E060E084EA97E1CE +:1017C0000E94C95962E475E084EA97E10F94E3B995 +:1017D00000914318112707FD1095C1E0D0E08091DA +:1017E000780A9091790A892B09F072C00F94224DE2 +:1017F00081E00E94487620914318332727FD3095D9 +:10180000C801821B930B97FF03C0919581959109A5 +:1018100005970CF44DC0201731070CF421970217DF +:1018200013070CF42196C430D1052CF4209729F429 +:10183000C1E0D0E002C0C3E0D0E041E060E084EA73 +:1018400097E10E94C9596BE776E084EA97E10F942B +:10185000E3B942E060E084EA97E10E94C9596BE78E +:1018600076E084EA97E10F94E3B943E060E084EA2C +:1018700097E10E94C9596BE776E084EA97E10F94FB +:10188000E3B94C2F60E084EA97E10E94C95962E411 +:1018900075E084EA97E10F94E3B9009143181127AA +:1018A00007FD109564E670E080E090E00F9453B778 +:1018B0000F94EC65882309F492CFD093790AC093F2 +:1018C000780A64EF71E080E090E00F9453B787CF1F +:1018D0000F943261DF91CF911F910F910D940559B3 +:1018E00020E030E042E053E460913A1770913B17FA +:1018F00080913C1790913D170F9439C21816F4F45B +:1019000081E08093470A8093460A61E081EC9BE97D +:101910000E94B563EBE3F6E08191882339F0909162 +:10192000C00095FFFCCF8093C600F6CF8091C00029 +:1019300085FFFCCF8AE08093C6002CC00F943261F3 +:1019400040E060E084EA97E10E94C959E091530ABF +:10195000F0E0EE0FFF1FE75FFE47859194910F9433 +:10196000BE7842E060E084EA97E10E94C959E091C4 +:10197000530AF0E0EE0FFF1FE954F248859194916D +:101980000F94BE7860ED77E080E090E00F9453B75D +:101990000F9432610D9405598F929F92AF92BF922E +:1019A000DF92EF92FF920F931F93CF93DF931092EA +:1019B000241880919D1790919E17A0919F17B09128 +:1019C000A01781309048A105B10540F010929D17F5 +:1019D00010929E1710929F171092A01780919D173A +:1019E00090919E17A0919F17B091A0174091A217B8 +:1019F00050E060E070E084179507A607B70710F481 +:101A00008093A217D091A2171091A31712FB112750 +:101A100010F9C0E0DD24D39440919D1750919E179A +:101A200060919F177091A017D1113AC080919B02CD +:101A30008823A9F0E091530AF0E0EE0FFF1FE75072 +:101A4000F6488591949123E0452B462B472B11F4C2 +:101A500043E001C040E2BC018C2F0F94EE531123F0 +:101A600009F482C080919D1790919E17A0919F17B5 +:101A7000B091A017892B8A2B8B2B09F075C00F947E +:101A80001C5580E691E0DF91CF911F910F91FF905F +:101A9000EF90DF90BF90AF909F908F900D94F35593 +:101AA000D13089F580919B02882371F020E241308A +:101AB00051056105710511F44EE301C040E263ED8B +:101AC0007EE98C2F0F94EE53112309F44DC08091C1 +:101AD0009D1790919E17A0919F17B091A017019705 +:101AE000A105B10509F040C00F941C55DF91CF91BD +:101AF0001F910F91FF90EF90DF90BF90AF909F905C +:101B00008F900C94F6B3D23079F580919B028823A4 +:101B100071F020E2423051056105710511F44EE388 +:101B200001C040E26AEC7EE98C2F0F94EE53112342 +:101B3000D9F080919D1790919E17A0919F17B09119 +:101B4000A0170297A105B10579F40F941C55DF91F8 +:101B5000CF911F910F91FF90EF90DF90BF90AF90CA +:101B60009F908F900C94B9B480919F0A811105C009 +:101B70008091820A882309F44FC020E030E040E0E1 +:101B800050E46091280A7091290A80912A0A909164 +:101B90002B0A0F940AC087FF3FC08091810A8111F0 +:101BA0003BC08091550A811137C0D33011F004E059 +:101BB00034C080919B028823E1F0E091530AF0E069 +:101BC000EE0FFF1FE15EFC476591749180919D17B8 +:101BD00090919E17A0919F17B091A0172EE70397A1 +:101BE000A105B10511F44EE301C040E28C2F0F9422 +:101BF000EE531123E1F280919D1790919E17A091D1 +:101C00009F17B091A0170397A105B10581F60F9416 +:101C10001C5580E391E038C003E0809172109091F0 +:101C20007110891B8F7040919D1750919E17609184 +:101C30009F177091A017811109C080919F0A81118F +:101C400005C08091820A882309F446C00D134CC058 +:101C500080919B02811125C0112309F445C0802F7A +:101C600090E0A0E0B0E040919D1750919E176091E8 +:101C70009F177091A017481759076A077B07A1F5AE +:101C80000F941C5588E691E0DF91CF911F910F9141 +:101C9000FF90EF90DF90BF90AF909F908F900D944A +:101CA0005557E091530AF0E0EE0FFF1FE15BF54856 +:101CB00085919491802E912CA12CB12C2EE7481562 +:101CC00059056A057B0511F44EE301C040E2BC01F1 +:101CD0008C2F0F94EE53C0CF0D1306C080919B0242 +:101CE000811164C311117DC30F5F8091A00A4091DF +:101CF0009D1750919E1760919F177091A017882390 +:101D000009F4F0C08091890C882309F4D9C080912E +:101D1000550A811120C18091810A81111CC18091D5 +:101D20009F0A882309F444C00D1384C080919B024C +:101D30008823D1F0E091530AF0E0EE0FFF1FE95B3A +:101D4000F14885919491802E912CA12CB12C20E208 +:101D5000481559056A057B0511F44EE301C040E2C0 +:101D6000BC018C2F0F94EE53112309F463C0802F14 +:101D700090E0A0E0B0E040919D1750919E176091D7 +:101D80009F177091A017481759076A077B0709F03A +:101D900051C00F941C55DF91CF911F910F91FF906F +:101DA000EF90DF90BF90AF909F908F900D94195956 +:101DB0000D1340C080919B028823D1F0E091530A1B +:101DC000F0E0EE0FFF1FEB5BF24885919491802EBF +:101DD000912CA12CB12C20E2481559056A057B05F0 +:101DE00011F44EE301C040E2BC018C2F0F94EE537E +:101DF000112301F1802F90E0A0E0B0E040919D1709 +:101E000050919E1760919F177091A017481759071E +:101E10006A077B0779F40F941C55DF91CF911F91CE +:101E20000F91FF90EF90DF90BF90AF909F908F90B9 +:101E30000D941159FF24F394F00EFD123EC08091D1 +:101E40009B02882311F1E091530AF0E0EE0FFF1F8F +:101E5000E353F548859194914F2D50E060E070E098 +:101E600080909D1790909E17A0909F17B090A017FC +:101E70002EE784169506A606B70611F44EE301C0B8 +:101E800040E2BC018C2F0F94EE531123B1F04F2D83 +:101E900050E060E070E080909D1790909E17A090B9 +:101EA0009F17B090A01784169506A606B70629F4CA +:101EB0000F941C5582E991E0E7CE01E00F0D4BC075 +:101EC0008091820A811147C00D1344C080919B020A +:101ED000882331F1E091530AF0E0EE0FFF1FEF5538 +:101EE000FE470DC00D1336C080919B028823C1F0C0 +:101EF000E091530AF0E0EE0FFF1FEB58F148859197 +:101F00009491802E912CA12CB12C2EE748155905C7 +:101F10006A057B05E9F040E2BC018C2F0F94EE537B +:101F20001123C1F0802F90E0A0E0B0E040919D1718 +:101F300050919E1760919F177091A01748175907ED +:101F40006A077B0739F40F941C5584ED91E09CCE11 +:101F50004EE3E2CF0F5F20919F0A80919D179091F1 +:101F60009E17A0919F17B091A017211104C0209136 +:101F7000820A2223B9F120911D18222309F44BC1B2 +:101F80000D132EC020919B02222391F0402F50E090 +:101F900060E070E02EE784179507A607B70711F4F5 +:101FA0004EE301C040E26EEB7EE98C2F0F94EE53BE +:101FB0001123B1F0802F90E0A0E0B0E040919D1798 +:101FC00050919E1760919F177091A017481759075D +:101FD0006A077B0729F40F941C558AE791E054CED9 +:101FE0000F5F19C10D133EC020919B022223C9F03F +:101FF000E091530AF0E0EE0FFF1FE356F0486591C1 +:102000007491802E912CA12CB12C20E28815990579 +:10201000AA05BB0511F44EE301C040E28C2F0F94DA +:10202000EE531123F9F0802F90E0A0E0B0E0409152 +:102030009D1750919E1760919F177091A017481798 +:1020400059076A077B0771F40F941C55DF91CF91F4 +:102050001F910F91FF90EF90DF90BF90AF909F90F6 +:102060008F903ECCEE24E394E00EED1247C08091B9 +:102070009B02882311F1E091530AF0E0EE0FFF1F5D +:10208000EF5CF548A591B4914E2D50E060E070E012 +:1020900080909D1790909E17A0909F17B090A017CA +:1020A00020E284169506A606B70611F44EE301C099 +:1020B00040E2BD018C2F0F94EE531123F9F08E2DC9 +:1020C00090E0A0E0B0E040919D1750919E17609184 +:1020D0009F177091A017481759076A077B0771F47B +:1020E0000F941C55DF91CF911F910F91FF90EF90AE +:1020F000DF90BF90AF909F908F9005CA72E0E72E5F +:10210000E00EED123EC080919B02882311F1E09118 +:10211000530AF0E0EE0FFF1FE558F448A591B49183 +:102120004E2D50E060E070E080909D1790909E17DB +:10213000A0909F17B090A0172EE784169506A606CC +:10214000B70611F44EE301C040E2BD018C2F0F949D +:10215000EE531123B1F08E2D90E0A0E0B0E040915D +:102160009D1750919E1760919F177091A017481767 +:1021700059076A077B0729F40F941C5582E391E005 +:1021800083CD53E0E52EE00E80911E18811142C0F0 +:10219000ED123EC080919B02882311F1E091530A19 +:1021A000F0E0EE0FFF1FE95BF048A591B4914E2DD2 +:1021B00050E060E070E080909D1790909E17A09096 +:1021C0009F17B090A0172EE784169506A606B706AF +:1021D00011F44EE301C040E2BD018C2F0F94EE5389 +:1021E0001123B1F08E2D90E0A0E0B0E040919D175A +:1021F00050919E1760919F177091A017481759072B +:102200006A077B0729F40F941C558CE691E03CCDBE +:102210000C5F01C00E2D8091820A811140C00D1308 +:102220003DC080919B02882309F1E091530AF0E0C0 +:10223000EE0FFF1FED5DF44865917491802F90E0E3 +:10224000A0E0B0E080909D1790909E17A0909F17FF +:10225000B090A0172EE788169906AA06BB0611F4BF +:102260004EE301C040E28C2F0F94EE531123B1F0E6 +:10227000802F90E0A0E0B0E040919D1750919E1714 +:1022800060919F177091A017481759076A077B073D +:1022900029F40F941C558CE991E0F6CC0F5F0D13D7 +:1022A0003DC080919B02882309F1E091530AF0E040 +:1022B000EE0FFF1FE154F54865917491802F90E077 +:1022C000A0E0B0E080909D1790909E17A0909F177F +:1022D000B090A0172EE788169906AA06BB0611F43F +:1022E0004EE301C040E28C2F0F94EE531123B1F066 +:1022F000802F90E0A0E0B0E040919D1750919E1794 +:1023000060919F177091A017481759076A077B07BC +:1023100029F40F941C558AEA91E0B6CCFF24F3947B +:10232000F00E8F2D90E0A0E0B0E040919D1750910D +:102330009E1760919F177091A017481759076A0759 +:102340007B0778F08F2D90E00197AA2797FDA09545 +:10235000BA2F80939D1790939E17A0939F17B093C9 +:10236000A01740919D178091A21790E00396242F0B +:1023700030E0821793074CF48DEF840F8093A217FF +:10238000D0929B02DCEFD40FCFEFCF5FDF5FC43082 +:1023900008F442CBDF91CF911F910F91FF90EF9006 +:1023A000DF90BF90AF909F908F900895E091530A77 +:1023B000F0E0EE0FFF1FEB53F24885919491802ED1 +:1023C000912CA12CB12C2EE7481559056A057B05E7 +:1023D00011F44EE301C040E2BC018C2F0F94EE5388 +:1023E00081CC402F50E060E070E080909D1790908D +:1023F0009E17A0909F17B090A01784169506A6066A +:10240000B70609F071CC0F941C5588E991E03CCCDB +:102410004F925F926F927F928F929F92AF92BF92F4 +:10242000CF92DF92EF92FF920F931F93CF93DF93A0 +:10243000CDB7DEB72C970FB6F894DEBF0FBECDBF79 +:1024400080919F0A882309F4ECC0C0904C0AD09078 +:102450004D0AE0904E0AF0904F0AC701B60120EAFB +:1024600036E841E050E00F94FCC429873A874B8757 +:102470005C873E832D830F9424B70091C50710918C +:10248000C6072091C7073091C807601B710B820BEC +:10249000930B28EE33E040E050E00F94FCC4290198 +:1024A0003A01C90160E17EE00F94E9C44B0180EF7D +:1024B00091EF689F9001699F300D789F300D112436 +:1024C000C901840D951D6CE370E00F94E9C48B0184 +:1024D00044EC46035001479FB00C1124A20EB31EDA +:1024E000A40CB51C40E060E084EA97E10E94C95961 +:1024F000E091530AF0E0EE0FFF1FEB5EF448859188 +:1025000094910F94BE7841E066E084EA97E10E94DE +:10251000C959CE0105960F94626ABC0184EA97E11D +:102520000F94E3B96CE476E084EA97E10F94E3B9A1 +:10253000A985BA8520E639E74EEF5FEF0F9450C5C5 +:102540006C0D7D1D8E1D9F1D2AE030E040E050E0A7 +:102550000F94FCC4B901882777FD8095982F0F94BC +:10256000ACC069837A838B839C83CE0101960F94E0 +:102570008468BC0184EA97E10F94E3B96FE476E0E4 +:1025800084EA97E10F94E3B942E060E084EA97E1DE +:102590000E94C959E091530AF0E0EE0FFF1FE95F76 +:1025A000F448859194910F94BE7843E068E084EA02 +:1025B00097E10E94C9598982CE0101960F949C67C8 +:1025C000BC0184EA97E10F94E3B962E576E084EA1E +:1025D00097E10F94E3B90983CE0101960F949C67AC +:1025E000BC0184EA97E10F94E3B96CE476E084EAF5 +:1025F00097E10F94E3B9A982CE0101960F949C67ED +:10260000BC0184EA97E10F94E3B966E575E084EADA +:1026100097E10F94E3B90F94EC65882309F468C13E +:1026200063C181EF9FE00F9465CB6B017C018DEE60 +:102630009FE00F9465CB4B015C01C701B6010F947D +:10264000AAC069837A838B839C8320EAC21626E81A +:10265000D20621E0E206F10450F0C701B60120EAFB +:1026600036E841E050E00F94FCC4D90102C0A0E07C +:10267000B0E0B887AF831A161B0684F420E639E76A +:102680004EEF5FEF0F9450C56C0D7D1D8E1D9F1D8D +:102690000F94AAC069837A838B839C83C501B4019C +:1026A00020EA35E040E050E00F94FCC4122F032FE5 +:1026B000A0EAB5E00F9446C5A5019401261B370B8F +:1026C000480B590BCA01B9012CE330E040E050E05F +:1026D0000F94FCC4F22E30E6139F800C11244CE3BF +:1026E000F49E801811240F94326140E060E084EA87 +:1026F00097E10E94C959E091530AF0E0EE0FFF1FE5 +:10270000E750F548859194910F94BE78CE010196DB +:102710000F948468FC0101900020E9F7682F6E1B7C +:102720006E5E41E084EA97E10E94C959CE010196AC +:102730000F948468BC0184EA97E10F94E3B98F8118 +:102740009885181619067CF5CE0101960F948468B9 +:10275000FC0101900020E9F7682F6E1B615F41E0EA +:1027600084EA97E10E94C95965E576E084EA97E139 +:102770000F94E3B9CE0101960F948468FC01019097 +:102780000020E9F7682F6E1B665F41E084EA97E15D +:102790000E94C959CE0107960F944478BC0184EA7F +:1027A00097E10F94E3B941E062E184EA97E10E9486 +:1027B000C95960E576E084EA97E10F94E3B942E015 +:1027C00060E084EA97E10E94C959E091530AF0E081 +:1027D000EE0FFF1FE551F548859194910F94BE7857 +:1027E00043E062E184EA97E10E94C95960E576E03E +:1027F00084EA97E10F94E3B943E06EE084EA97E15D +:102800000E94C959912C9E828D82CE0105960F940B +:10281000626ABC0184EA97E10F94E3B943E06EE099 +:1028200084EA97E10E94C95969E375E084EA97E177 +:102830000F94E3B943E06CE084EA97E10E94C95940 +:1028400068E576E084EA97E10F94E3B943E069E054 +:1028500084EA97E10E94C9598F2D90E09E838D8371 +:10286000CE0105960F94626ABC0184EA97E10F9449 +:10287000E3B943E069E084EA97E10E94C95969E35A +:1028800075E084EA97E10F94E3B943E067E084EAF6 +:1028900097E10E94C95969E376E084EA97E10F94D1 +:1028A000E3B943E064E084EA97E10E94C959812FCB +:1028B000902F9E838D83CE0105960F94626ABC0192 +:1028C00084EA97E10F94E3B90F94EC6581110CC091 +:1028D0000F94224D81E00E94487664E670E080E02B +:1028E00090E00F9453B7F0CF0F941C550F940559F7 +:1028F0002C960FB6F894DEBF0FBECDBFDF91CF91FF +:102900001F910F91FF90EF90DF90CF90BF90AF900D +:102910009F908F907F906F905F904F900895CF928F +:10292000DF92EF92FF920F94326140E061E084EA1F +:1029300097E10E94C959E091530AF0E0EE0FFF1FA2 +:10294000E359F448859194910F94BE7860919D1756 +:1029500070919E17882777FD8095982F0F94ACC0B3 +:102960002091A3023091A4024091A5025091A602A9 +:102970000F941ABF6B017C0120E030E848E953E472 +:102980000F9439C218164CF0C092A302D092A40240 +:10299000E092A502F092A6020CC080E090E8A8E9BF +:1029A000B3E48093A3029093A402A093A502B093F2 +:1029B000A60220E030E040E751E46091A30270916C +:1029C000A4028091A5029091A6020F940AC087FFED +:1029D0000CC080E090E0A0E7B1E48093A302909364 +:1029E000A402A093A502B093A60210929D17109284 +:1029F0009E1710929F171092A01742E061E084EAA0 +:102A000097E10E94C95983EA92E00F944377BC0191 +:102A100084EA97E10F94E3B90F94EC65882379F089 +:102A200087E090E090932218809321180F94055925 +:102A300082E0FF90EF90DF90CF900D94CB63FF90FA +:102A4000EF90DF90CF900895BF92CF92DF92EF92F8 +:102A5000FF92CF93DF93D62FC42F0F94B86542E037 +:102A6000CC23D9F060E084EA97E10E94C95988E458 +:102A70009BE90F94BE78E091530AF0E0EE0FFF1F40 +:102A8000EB51F648859194910F94BE7843E061E054 +:102A900084EA97E10E94C9591AC061E084EA97E18B +:102AA0000E94C959E091530AF0E0EE0FFF1FEB516D +:102AB000F648859194910F94BE7843E060E084EAF3 +:102AC00097E10E94C95986E49BE90F94BE78E09192 +:102AD000530AF0E0EE0FFF1FE355F1488591949102 +:102AE0000F94BE780F9424B76B017C01B09043180B +:102AF000DD2369F00F9424B76C197D098E099F09B5 +:102B000069397A438105910510F08FEF5CC00F940D +:102B1000224D81E00E9448762B2D332727FD3095EA +:102B200080914318281B310987FD339537FF03C077 +:102B3000319521953109253031058CF142E060E075 +:102B400084EA97E10E94C95980914318B81694F419 +:102B5000CC2319F184E49BE90F94BE7843E060E054 +:102B600084EA97E10E94C95982E49BE90F94BE78F8 +:102B7000C0E013C08B158CF4C1110FC080E49BE939 +:102B80000F94BE7843E060E084EA97E10E94C9595F +:102B90008EE39BE90F94BE78C1E0B09043180F9488 +:102BA000EC65882309F4A4CF0F94EC658111FCCF68 +:102BB0006AE070E080E090E00F9453B70F94EC650A +:102BC0008111FCCF8C2FDF91CF91FF90EF90DF90A0 +:102BD000CF90BF9008950F9340E061E082E89DE9B7 +:102BE00033DF882341F061E08EE79DE90E94B56301 +:102BF0000F94055909C001E021E040E050E0BA011E +:102C000082E391E00F942B5581E00F94C56482E03C +:102C100080939B020F9108958F929F92AF92BF92E3 +:102C2000EF92FF920F931F93CF93DF9341E063E204 +:102C300078E18FEF9FE00F94B96180919D1790919B +:102C40009E17A0919F17B091A01781309048A105C1 +:102C5000B10540F010929D1710929E1710929F1789 +:102C60001092A01780919D1790919E17A0919F1789 +:102C7000B091A0174091A21750E060E070E0841777 +:102C80009507A607B70710F48093A217D091A21753 +:102C90001091A31712FB112710F9C0E001E0409139 +:102CA0009D1750919E1760919F177091A017D11199 +:102CB00039C080919B028823A9F0E091530AF0E08B +:102CC000EE0FFF1FEF58F0488591949123E0452BBC +:102CD000462B472B11F443E001C040E2BC018C2F8E +:102CE0000F94EE53112309F44CC080919D179091DD +:102CF0009E17A0919F17B091A017892B8A2B8B2B21 +:102D000009F03FC00F941C5582EB91E0DF91CF9109 +:102D10001F910F91FF90EF90BF90AF909F908F9079 +:102D20000D94F355D13069F580919B028823B1F061 +:102D3000E091530AF0E0EE0FFF1FEF54F548859144 +:102D400094912EE7413051056105710511F44EE370 +:102D500001C040E2BC018C2F0F94EE53112389F087 +:102D600080919D1790919E17A0919F17B091A017E9 +:102D70000197A105B10529F40F941C558EE691E049 +:102D80003BC08091810A811143C0D23019F033E0F9 +:102D9000F32E40C080919B028823E1F0E091530A1A +:102DA000F0E0EE0FFF1FE55DF048659174918091B2 +:102DB0009D1790919E17A0919F17B091A0172EE795 +:102DC0000297A105B10511F44EE301C040E28C2F3A +:102DD0000F94EE531123D9F280919D1790919E1775 +:102DE000A0919F17B091A0170297A105B10579F6A0 +:102DF0000F941C5584E991E0DF91CF911F910F91C1 +:102E0000FF90EF90BF90AF909F908F900D9455578B +:102E100092E0F92E80911E1881114CC0FD1249C01C +:102E200080919B02882309F1E091530AF0E0EE0FB4 +:102E3000FF1FE35DFE47659174918F2D90E0A0E048 +:102E4000B0E080909D1790909E17A0909F17B09033 +:102E5000A01720E288169906AA06BB0611F44EE3D5 +:102E600001C040E28C2F0F94EE53112311F18F2DEE +:102E700090E0A0E0B0E040919D1750919E176091C6 +:102E80009F177091A017481759076A077B0789F4A5 +:102E90000F941C5561E083EB9DE9DF91CF911F9169 +:102EA0000F91FF90EF90BF90AF909F908F900C94F8 +:102EB000B563F3948091231840919D1750919E170C +:102EC00060919F177091A017882329F080911D1899 +:102ED000882309F443C0FD1275C080919B028823AA +:102EE000D1F0E091530AF0E0EE0FFF1FEF5AF448E3 +:102EF000859194918F2C912CA12CB12C20E2481516 +:102F000059056A057B0511F44EE301C040E2BC019E +:102F10008C2F0F94EE53112309F454C08F2D90E0A1 +:102F2000A0E0B0E040919D1750919E1760919F17CF +:102F30007091A017481759076A077B0709F042C02C +:102F40000F941C55DF91CF911F910F91FF90EF903F +:102F5000BF90AF909F908F900D94C155FD1232C0DD +:102F600080919B028823D1F0E091530AF0E0EE0FAC +:102F7000FF1FED5BF448859194918F2C912CA12C2F +:102F8000B12C20E2481559056A057B0511F44EE382 +:102F900001C040E2BC018C2F0F94EE53112391F03D +:102FA0004F2D50E060E070E080909D1790909E174C +:102FB000A0909F17B090A01784169506A606B70696 +:102FC00009F4BECFF39480911E18811144C0809102 +:102FD000810A811140C0FD123DC080919B0288236F +:102FE00009F1E091530AF0E0EE0FFF1FE15EFC47AC +:102FF000659174918F2D90E0A0E0B0E080909D17D6 +:1030000090909E17A0909F17B090A0172EE788165B +:103010009906AA06BB0611F44EE301C040E28C2FCC +:103020000F94EE531123B1F08F2D90E0A0E0B0E0AB +:1030300040919D1750919E1760919F177091A01716 +:10304000481759076A077B0729F40F941C5580E33A +:1030500091E0D2CEF394FD123DC080919B02882373 +:1030600009F1E091530AF0E0EE0FFF1FE953F04839 +:10307000659174918F2D90E0A0E0B0E080909D1755 +:1030800090909E17A0909F17B090A0172EE78816DB +:103090009906AA06BB0611F44EE301C040E28C2F4C +:1030A0000F94EE531123B1F08F2D90E0A0E0B0E02B +:1030B00040919D1750919E1760919F177091A01796 +:1030C000481759076A077B0729F40F941C5580E7B6 +:1030D00091E092CEEE24E394EF0C8091630C40914A +:1030E0009D1750919E1760919F177091A01788238C +:1030F00009F443C0ED1275C080919B028823D1F082 +:10310000E091530AF0E0EE0FFF1FE35AF548859176 +:1031100094918E2C912CA12CB12C20E248155905AC +:103120006A057B0511F44EE301C040E2BC018C2F1F +:103130000F94EE53112309F454C04E2D50E060E07B +:1031400070E080919D1790919E17A0919F17B0916C +:10315000A01784179507A607B70709F042C00F9478 +:103160001C55DF91CF911F910F91FF90EF90BF9071 +:10317000AF909F908F900D94EF54ED1232C08091DC +:103180009B028823D1F0E091530AF0E0EE0FFF1F7D +:10319000E559F548859194918E2C912CA12CB12C58 +:1031A00020E2481559056A057B0511F44EE301C07C +:1031B00040E2BC018C2F0F94EE53112391F04E2D61 +:1031C00050E060E070E080909D1790909E17A09076 +:1031D0009F17B090A01784169506A606B70609F4A7 +:1031E000BECFF394F39480911D18882309F47DC019 +:1031F000FD1236C080919B028823D1F08F2D90E084 +:10320000A0E0B0E040919D1750919E1760919F17EC +:103210007091A0172EE7481759076A077B0711F42A +:103220004EE301C040E267EA7DE98C2F0F94EE5334 +:103230001123B1F08F2D90E0A0E0B0E040919D17F8 +:1032400050919E1760919F177091A01748175907CA +:103250006A077B0729F40F941C558AE791E0CCCDCF +:10326000EE24E394EF0CED123EC080919B02882384 +:10327000D1F04D2F50E060E070E080909D1790906D +:103280009E17A0909F17B090A01720E28416950675 +:10329000A606B70611F44EE301C040E265E97DE9F8 +:1032A0008C2F0F94EE531123F1F08E2D90E0A0E0BF +:1032B000B0E040919D1750919E1760919F177091BB +:1032C000A017481759076A077B0769F40F941C5524 +:1032D000DF91CF911F910F91FF90EF90BF90AF9032 +:1032E0009F908F9078CCF394F3948F2D90E0A0E092 +:1032F000B0E040919D1750919E1760919F1770917B +:10330000A017481759076A077B0778F08F2D90E0C0 +:103310000197AA2797FDA095BA2F80939D179093A8 +:103320009E17A0939F17B093A01740919D1780916F +:10333000A21790E00396242F30E0821793074CF4F5 +:103340008DEF840F8093A21700939B02DCEFD40FC4 +:10335000CFEFCF5FDF5FC43008F4A1CCDF91CF9116 +:103360001F910F91FF90EF90BF90AF909F908F9023 +:1033700008958F929F92AF92BF92CF92DF92EF9279 +:10338000FF920F931F93CF93DF930F94326140E02E +:1033900060E084EA97E10E94C95962E475E084EA3A +:1033A00097E10F94E3B903E81AE037EAE32E3FE030 +:1033B000F32EC0E0D0E04C2F61E084EA97E10E9458 +:1033C000C9596AE576E084EA97E10F94E3B94AE0E7 +:1033D00050E0BE0184EA97E10F9480BA66E474E09D +:1033E00084EA97E10F94E3B9B801C7010F947161C2 +:1033F000F801608171810E5F1F4F605371094AE0CF +:1034000050E084EA97E10F9480BA219682E0E80EBA +:10341000F11CC430D10579F600914318112707FD3E +:103420001095C0E0D0E00F94224D81E00E944876D4 +:1034300020914318332727FD3095C801821B930B39 +:1034400097FF03C091958195910903970CF45BC098 +:10345000201731070CF42197021713070CF421965B +:10346000C430D1053CF4CF3F9FEFD90729F4C0E029 +:10347000D0E002C0C3E0D0E040E060E084EA97E141 +:103480000E94C9596BE776E084EA97E10F94E3B9AB +:1034900041E060E084EA97E10E94C9596BE776E079 +:1034A00084EA97E10F94E3B942E060E084EA97E1AF +:1034B0000E94C9596BE776E084EA97E10F94E3B97B +:1034C00043E060E084EA97E10E94C9596BE776E047 +:1034D00084EA97E10F94E3B94C2F60E084EA97E126 +:1034E0000E94C95962E475E084EA97E10F94E3B958 +:1034F00000914318112707FD109564E670E080E005 +:1035000090E00F9453B70F94EC65882309F48BCFA8 +:103510000F94EC658111FCCF6AE070E080E090E0F0 +:103520000F9453B70F94EC658111FCCF0F94326167 +:103530006E01CC0CDD1CF601ED57F54F5F017F01EC +:103540000F94224D81E00E94487641E061E084EAD8 +:1035500097E10E94C9596AE576E084EA97E10F9401 +:10356000E3B94AE050E0BE0184EA97E10F9480BAE3 +:1035700066E474E084EA97E10F94E3B941E06DE01A +:1035800084EA97E10E94C959F50160817181605315 +:1035900071094AE050E084EA97E10F9480BA809183 +:1035A0004318992787FD90959801281B390B37FF01 +:1035B00003C0319521953109233031050CF443C006 +:1035C00080179107E4F4F70180819181019791833D +:1035D000808341E06DE084EA97E10E94C959F701D8 +:1035E00060817181605371094AE050E084EA97E19B +:1035F0000F9480BA00914318112707FD1095809110 +:103600004318992787FD909508171907E4F4F701E7 +:103610008081918101969183808341E06DE084EA0D +:1036200097E10E94C959F701608171816053710966 +:103630004AE050E084EA97E10F9480BA0091431881 +:10364000112707FD109564E670E080E090E00F948C +:1036500053B70F94EC65882309F472CF0F94EC658F +:103660008111FCCF6AE070E080E090E00F9453B7E6 +:103670000F94EC658111FCCFB6016D57754FC601F3 +:103680008955904F0F94606140E061E08EE09BE9C6 +:10369000DBD9882309F456C081E00F94C5640F94E8 +:1036A000326100914318112707FD10954C2F60E0FF +:1036B00084EA97E10E94C95962E475E084EA97E1DF +:1036C0000F94E3B983E8C82E8AE0D82E97EAA92E92 +:1036D0009FE0B92EE12CF12C4E2D61E084EA97E1B8 +:1036E0000E94C9596AE576E084EA97E10F94E3B94C +:1036F0004AE050E0B70184EA97E10F9480BA66E4AB +:1037000074E084EA97E10F94E3B9B601C5010F9420 +:103710007161F60160817181F2E0CF0ED11C6053BE +:1037200071094AE050E084EA97E10F9480BA8FEF84 +:10373000E81AF80A92E0A90EB11CE4E0EE16F104D2 +:1037400059F671CEDF91CF911F910F91FF90EF90BD +:10375000DF90CF90BF90AF909F908F9008952F9261 +:103760003F924F925F926F927F928F929F92AF9211 +:10377000BF92CF92DF92EF92FF920F931F93CF935E +:10378000DF9300D000D0CDB7DEB78C831092280A2B +:103790001092290A10922A0A10922B0A2091240AC8 +:1037A0003091250A4091260A5091270A6091200AFB +:1037B0007091210A8091220A9091230ABCE2CB2EBB +:1037C000BAE0DB2EE12CF12C87010F94C032198274 +:1037D0000F9424B7E091530A0C81F0E0EE0FFF1F25 +:1037E000002319F0E15FF04802C0E35EF048259045 +:1037F0003490C1010F94B8659B838A830F9424B7DA +:103800002B013C011092431810929D1710929E17A5 +:1038100010929F171092A0172A813B813E832D831F +:103820000F94224D81E00E94487680914318992799 +:1038300087FD909597FF03C0919581959109049715 +:103840000CF488C062E370E080E090E00F9453B71E +:103850000F9424B740919D1750919E1760919F1728 +:103860007091A0179091431894304CF0892F859552 +:103870008595992787FD9095A92FB92F0DC097FDA4 +:103880009D5F892F85958595992781950CF4909555 +:10389000AA2797FDA095BA2F8C019D01040F151F33 +:1038A000261F371FC901B80100939D1710939E175B +:1038B00020939F173093A0171092431820917210F5 +:1038C0002F5F203109F420E030917110321709F494 +:1038D00041C00F94AAC02091280A3091290A409132 +:1038E0002A0A50912B0A0F941ABF7B018C01609316 +:1038F000280A7093290A80932A0A90932B0A10921F +:103900009D1710929E1710929F171092A01720914A +:10391000240A3091250A4091260A5091270A609185 +:10392000200A7091210A8091220A9091230AACE02A +:10393000BAE0BF93AF93E5E58E2E982CE5E8AE2E66 +:10394000E1E4BE2EFCE2CF2EFAE0DF2E0F94152626 +:103950000F900F900F94EC65882389F00F94A024AA +:103960000F94EC658111FCCF6AE070E080E090E09C +:103970000F9453B70F94EC658111FCCF12C00A81EC +:103980001B81012B09F44CCF0F9424B764197509DE +:1039900086099709693873418105910508F440CF7C +:1039A0008AC0298121110BC0E091530AF0E0EE0F8B +:1039B000FF1FE959FE47859194910F94F565E091B9 +:1039C000530AF0E0EE0FFF1FEB58FE4785919491EC +:1039D00040E060E039D88F3F09F46BC0813019F0C6 +:1039E00031E03983F5CE80E090E0AFE4B3E480933A +:1039F000280A9093290AA0932A0AB0932B0A2091AF +:103A0000240A3091250A4091260A5091270A609194 +:103A1000200A7091210A8091220A9091230AECE2F7 +:103A2000CE2EEAE0DE2EE12CF12C0FE413E40F940D +:103A3000C032E091530A8C81F0E0EE0FFF1F882323 +:103A4000A1F0ED59F048859194910F94B86541E04B +:103A500050E063E080E00F943D61E091530AF0E0B4 +:103A6000EE0FFF1FEB5AF0481EC0EB5AF14885914C +:103A700094910F94F565E091530AF0E0EE0FFF1F6B +:103A8000E356FF47859194910F94B86541E050E06B +:103A900062E080E00F943D61E091530AF0E0EE0FA8 +:103AA000FF1FE157FF47859194910F94BE7881E005 +:103AB00013C080E011C0AD81BE81AB2B11F43E82FA +:103AC0002D828D819E810F94B8659E838D830F9486 +:103AD00024B72B013C01A4CE26960FB6F894DEBF86 +:103AE0000FBECDBFDF91CF911F910F91FF90EF904F +:103AF000DF90CF90BF90AF909F908F907F906F900E +:103B00005F904F903F902F9008950F931F93CF9306 +:103B1000DF93EC01843091053CF08730910539F05A +:103B20008C010350110905C000E010E002C003E061 +:103B300010E040E060E084EA97E10E94C95968E63D +:103B400076E084EA97E10F94E3B940E061E084EA2B +:103B500097E10E94C959000F111FF801EB52F0487C +:103B6000859194910F94BE7841E060E084EA97E1FA +:103B70000E94C95968E676E084EA97E10F94E3B9B8 +:103B800041E061E084EA97E10E94C959F801E952F5 +:103B9000F048859194910F94BE7842E060E084EA09 +:103BA00097E10E94C95968E676E084EA97E10F94AC +:103BB000E3B942E061E084EA97E10E94C959F80163 +:103BC000E752F048859194910F94BE7843E060E00D +:103BD00084EA97E10E94C95968E676E084EA97E1B1 +:103BE0000F94E3B943E061E084EA97E10E94C95988 +:103BF00005521048F801859194910F94BE78C13018 +:103C0000D10511F440E012C0C230D10511F441E0F9 +:103C10000DC0C330D1057CF042E060E084EA97E15A +:103C20000E94C959C730D10531F443E060E084EA0D +:103C300097E10E94C95962E475E084EA97E10F9424 +:103C4000E3B9C630D10584F040E063E184EA97E14E +:103C50000E94C9596EE076E084EA97E1DF91CF9146 +:103C60001F910F910D94E3B943E063E184EA97E17A +:103C70000E94C95963E176E084EA97E10F94E3B9C1 +:103C8000249714F7DF91CF911F910F9108950F930F +:103C90001F93CF93DF938FEF8093530A0F94C660E7 +:103CA0000F94326181E090E030DF009143181127DA +:103CB00007FD1095C1E0D0E08091530A8F3F09F0D5 +:103CC00048C00F94224D81E00E944876209143180D +:103CD000332727FD3095C801821B930B97FF03C044 +:103CE0009195819591090597F4F0201731070CF40F +:103CF0002197021713070CF42196C830D1052CF434 +:103D0000209729F4C1E0D0E002C0C7E0D0E0CE01A6 +:103D1000FCDE00914318112707FD109564E670E062 +:103D200080E090E004C064E170E080E090E00F94F7 +:103D300053B70F94EC65882309F4BECF8C2F8150C4 +:103D40000F94DD5464EF71E080E090E00F9453B77E +:103D5000B3CF8091710790917207209173073091D2 +:103D60007407821B930B8F779927029724F0109288 +:103D7000530A10929E020F940E610F943261DF91EC +:103D8000CF911F910F910D940559EF92FF920F93D0 +:103D90001F93CF93DF930F94326140E060E084EA99 +:103DA00097E10E94C9596DE776E084EA97E10F94A4 +:103DB000E3B900E010E0C1E0D0E020914318422FC9 +:103DC000552741950CF45095CA0157FF03C09195B2 +:103DD00081959109039784F027FF02C0219702C0C3 +:103DE00021112196C330D1052CF4209729F4C1E08C +:103DF000D0E002C0C2E0D0E042E060E084EA97E1B7 +:103E00000E94C95962E776E084EA97E10F94E3B92A +:103E100043E060E084EA97E10E94C95962E776E0F6 +:103E200084EA97E10F94E3B942E062E084EA97E123 +:103E30000E94C959E091530AF0E0EE0FFF1FEB51C9 +:103E4000F648859194910F94BE7843E062E084EA4D +:103E500097E10E94C959E091530AF0E0EE0FFF1F6D +:103E6000E355F148859194910F94BE784C2F4F5FA4 +:103E700060E084EA97E10E94C95962E475E084EA4F +:103E800097E10F94E3B964E670E080E090E00F946E +:103E900053B70F5F1F4F0536110534F083E690E0EE +:103EA0000F94AD7100E010E00F94EC65882379F079 +:103EB00084E190E0C130D105D9F40F94AD7184E074 +:103EC00090E00F94AD71EE24E394F12C02C0E12C4C +:103ED000F12C0F94224D80E00E944876EF2809F4DF +:103EE0006CCFDF91CF911F910F91FF90EF900895CC +:103EF0000F94AD7185E090E00F94AD7192E0E92EE2 +:103F0000F12CE7CF0F931F9340E060E084EA97E144 +:103F10000E94C959E091530AF0E0EE0FFF1FE353EE +:103F2000F548859194910F94BE7842E062E084EA6E +:103F300097E10E94C959E091530AF0E0EE0FFF1F8C +:103F4000E355F148859194910F94BE7843E062E087 +:103F500084EA97E10E94C959E091530AF0E0EE0F1C +:103F6000FF1FEB51F648859194910F94BE7842E083 +:103F700060E084EA97E10E94C9596BE776E084EA41 +:103F800097E10F94E3B943E060E084EA97E10E948F +:103F9000C9596BE776E084EA97E10F94E3B9809121 +:103FA0009D1790919E17A0919F17B091A01703970E +:103FB000A105B10564F082E090E0A0E0B0E080935C +:103FC0009D1790939E17A0939F17B093A017809171 +:103FD0009D1790919E17A0919F17B091A01718164A +:103FE00019061A061B0664F081E090E0A0E0B0E03C +:103FF00080939D1790939E17A0939F17B093A0173F +:1040000040919D174F5F60E084EA97E10E94C95993 +:1040100062E475E084EA97E10F94E3B90F94EC65EC +:10402000882309F49BC080919D1790919E17A091C1 +:104030009F17B091A0170197A105B10511F40F9436 +:10404000055980919D1790919E17A0919F17B0914F +:10405000A0170297A105B10509F080C081E0809307 +:10406000FB091092930F8091550A811108C080912D +:10407000810A811104C00F94A0240F940A190E9490 +:104080004A63E091530AF0E0EE0FFF1FE357F24856 +:10409000859194910F944A6282E00F94CB631092C1 +:1040A0009F0A60E08DE99AE00E9442CE0F9424B707 +:1040B0006093C1077093C2078093C3079093C407AE +:1040C0000091C5071091C6072091C7073091C80716 +:1040D000601B710B820B930B00915E0A10915F0ABB +:1040E0002091600A3091610A601B710B820B930B67 +:1040F00028EE33E040E050E00F94FCC410925E0ADA +:1041000010925F0A1092600A1092610A60914C0A44 +:1041100070914D0A80914E0A90914F0A0E94DB7077 +:104120000F94055981E08093901710928F1782E0C9 +:1041300090E090932218809321188091010188606B +:10414000809301019FB7F89480910201877F80934B +:1041500002019FBF10920B0A10920A0A1F910F9141 +:1041600008950F931F93CF93DF931F92CDB7DEB7C0 +:10417000142F462F682F84EA97E159830E94C9596A +:10418000E12F5981F52F64918F010F5F1F4F662337 +:1041900031F084EA97E10E94A15BF801F4CF0F901F +:1041A000DF91CF911F910F910895CF92DF92EF92FF +:1041B000FF920F931F93CF93DF93CDB7DEB76E9728 +:1041C0000FB6F894DEBF0FBECDBF8091211890913D +:1041D0002218059759F580911F1890912018892B66 +:1041E000C1F48DE99AE00E940FCAE091530AF0E011 +:1041F000EE0FFF1FEF57FF47859194910F944A628E +:1042000083E080939B0281E090E09093201880935C +:104210001F1880911F1890912018019739F49091E0 +:10422000721080917110981709F4A5C3809121181C +:1042300090912218069709F089C080911F189091DB +:104240002018892B49F483E080939B0284E090E05E +:104250009093201880931F1880911F189091201818 +:10426000019739F49091721080917110981709F4A8 +:104270009BC380911F1890912018029709F04CC0A1 +:104280009091721080917110981346C08091730ABA +:104290008F938091720A8F9383E69CE99F938F930B +:1042A0008E010F5F1F4F1F930F930F9441C960E062 +:1042B000C8010E94B5636CE976E0C8010F94D5C8C7 +:1042C0008AE69AE00F940068BC01C8010F94B6C852 +:1042D00060E0C8010E94B5630F900F900F900F909F +:1042E0000F900F908091900A882309F4A9C361E090 +:1042F0008FE59CE90E94B56361E085E59CE90E9439 +:10430000B56361E081E59CE90E94B56381E090E0DE +:104310009093201880931F1880911F189091201857 +:10432000039739F49091721080917110981709F4E5 +:104330008BC380911F1890912018049739F49091A5 +:10434000721080917110981709F499C38091211807 +:1043500090912218029709F01FC180911F18909127 +:104360002018892B49F486E090E0909320188093E0 +:104370001F1881E08093470A80911F1890912018A0 +:10438000019739F49091721080917110981709F487 +:10439000BFC380911F1890912018029739F4909113 +:1043A000721080917110981709F4CEC380911F1874 +:1043B00090912018039739F49091721080917110A8 +:1043C000981709F4E0C380911F1890912018049762 +:1043D00039F49091721080917110981709F4DFC32D +:1043E00080911F1890912018059759F5909172109F +:1043F00080917110981325C0E091530AF0E0EE0F00 +:10440000FF1FE357F248859194910F944A6261E04F +:1044100084E29CE90E94B56361E087E19CE90E9427 +:10442000B5638091110A882309F4DEC38091120AD2 +:10443000882309F4D9C384E090E0909320188093F6 +:104440001F1880911F1890912018069739F49091A9 +:10445000721080917110981709F4C9C380911F18C8 +:1044600090912018079709F08AC09091721080915E +:104470007110981384C00F943261E091530AF0E0F8 +:10448000EE0FFF1FEF5CF5484591549160E080E02E +:1044900068DE69E375E084EA97E10F94E3B941E0EF +:1044A00060E084EA97E10E94C95962E475E084EA19 +:1044B00097E10F94E3B9E091530AF0E0EE0FFF1F8C +:1044C000E15CFC474591549161E081E04ADEE09176 +:1044D000530AF0E0EE0FFF1FED5DF5484591549152 +:1044E00062E081E03EDEE091530AF0E0EE0FFF1F54 +:1044F000E55CFE474591549163E081E032DE00E0E7 +:1045000010E0FF24F3940F94224D81E00E9448763E +:1045100020914318332727FD3095C801821B930B48 +:1045200097FF03C091958195910905970CF08EC373 +:104530000F94EC65882339F30F94EC658111FCCF5F +:104540006AE070E080E090E00F9453B70F94EC6560 +:104550008111FCCF8FEF8F0D61E0813009F4C4C36E +:10456000823009F4C4C38111C5C382E19CE90E9471 +:10457000B56383E090E09093201880931F1880919A +:104580001F1890912018089739F49091721080911B +:104590007110981709F4B1C38091211890912218D5 +:1045A000039721F41092221810922118809121185B +:1045B00090912218049709F05DC080911F18909186 +:1045C0002018892B49F486E090E09093201880937E +:1045D0001F1881E08093470A80911F18909120183E +:1045E000019739F49091721080917110981709F425 +:1045F0008BC380911F1890912018029739F49091E5 +:10460000721080917110981709F488C380911F1857 +:1046100090912018039739F4909172108091711045 +:10462000981709F482C380911F189091201804975D +:1046300039F49091721080917110981709F47CC32D +:1046400080911F1890912018059739F4909172105D +:1046500080917110981709F480C380911F18909170 +:104660002018069739F49091721080917110981764 +:1046700009F47AC38091211890912218079709F0C4 +:10468000A6C080911F1890912018892BA9F483E06F +:1046900090E09093450A8093440A21E030E0309303 +:1046A000430A2093420A2093470A23E020939B0267 +:1046B0009093201880931F1880911F1890912018B4 +:1046C000039739F49091721080917110981709F442 +:1046D0005EC380911F1890912018029709F05DC069 +:1046E00080912317882309F458C010922317109241 +:1046F000430A1092420AE091530AF0E0EE0FFF1FC6 +:10470000E15FF148859194910F944A6268E876E000 +:10471000CE0101960F94D5C880E397E10F9400680D +:10472000BC01CE0101960F94B6C86FE876E0CE01C9 +:1047300001960F94B6C88CE297E10F940068BC0113 +:10474000CE0101960F94B6C862E976E0CE010196DB +:104750000F94B6C888E297E10F940068BC01CE01BF +:1047600001960F94B6C860E0CE0101960E94B56331 +:1047700061E080ED9BE90E94B5630F9424B76093DC +:10478000111870931218809313189093141881E0E5 +:1047900090E09093201880931F1880911F1890919B +:1047A00020180197A1F40F9424B7009111181091CB +:1047B00012182091131830911418601B710B820B82 +:1047C000930B613D77408105910508F006C3809108 +:1047D000211890912218089709F04BC380911F1857 +:1047E00090912018892BA9F483E090E09093450ADA +:1047F0008093440A21E030E03093430A2093420A38 +:104800002093470A23E020939B02909320188093E3 +:104810001F1880911F1890912018039739F49091D8 +:10482000721080917110981709F4FDC280911F18C1 +:1048300090912018029709F05DC08091231788237A +:1048400009F458C0109223171092430A1092420A9A +:10485000E091530AF0E0EE0FFF1FE75CF14885910D +:1048600094910F944A6265E976E0CE0101960F9427 +:10487000D5C880E397E10F940068BC01CE01019692 +:104880000F94B6C86FE876E0CE0101960F94B6C8D3 +:104890008CE297E10F940068BC01CE0101960F9461 +:1048A000B6C862E976E0CE0101960F94B6C888E2F8 +:1048B00097E10F940068BC01CE0101960F94B6C831 +:1048C00060E0CE0101960E94B56361E08BEC9BE94C +:1048D0000E94B5630F9424B7609311187093121857 +:1048E000809313189093141881E090E0909320180F +:1048F00080931F1880911F1890912018019709F03C +:10490000B8C20F9424B70091111810911218209179 +:10491000131830911418601B710B820B930B613DBF +:1049200077408105910508F4A4C2E091530AF0E0B4 +:10493000EE0FFF1FE353F648859194910F944A625E +:104940001092450A1092440A1092470A80E090E0C3 +:10495000ACE5B2E48093A3029093A402A093A502D5 +:10496000B093A6021092201810921F1810922218CD +:10497000109221187EC2E091530AF0E0EE0FFF1F63 +:10498000E158F248859194910F944A6281E08093B6 +:104990001E180E9405811092221810922118109260 +:1049A000201810921F1842CC80918C0A8F9380910E +:1049B0008B0A8F938CE69CE99F938F938E010F5FF8 +:1049C0001F4F1F930F930F9441C960E0C8010E94CD +:1049D000B56310921E180F9424B7C0905E0AD09051 +:1049E0005F0AE090600AF090610A00915A0A109103 +:1049F0005B0A20915C0A30915D0AC01AD10AE20A72 +:104A0000F30AC60ED71EE81EF91EC0925E0AD092A7 +:104A10005F0AE092600AF092610A8DE99AE00E94D2 +:104A200008CA1092201810921F1810922218109283 +:104A300021180F900F900F900F900F900F9019CC9E +:104A400061E08BE59CE956CC61EA76E0CE01019607 +:104A50000F94D5C884E79AE00F944377BC01CE0148 +:104A600001960F94B6C860E0CE0101960E94B5632E +:104A700082E090E09093201880931F185ACC68EA47 +:104A800076E0CE0101960F94D5C884E79AE00F94A2 +:104A90004377BC01CE0101960F94B6C860E0CE0109 +:104AA00001960E94B5636FEA76E0CE0101960F94FD +:104AB000D5C882E69AE00F940068BC01CE01019649 +:104AC0000F94B6C864EB76E0CE0101960F94B6C899 +:104AD00086E69AE00F940068BC01CE0101960F941F +:104AE000B6C860E0CE0101960E94B563E091530A1A +:104AF000F0E0EE0FFF1FE75DF248859194910F946F +:104B00004A6283E090E09093201880931F181ECC97 +:104B10001092201810921F1810922218109221182B +:104B2000E091530AF0E0EE0FFF1FE353F648859142 +:104B300094910F944A621092450A1092440A10927E +:104B4000470A10921E1825CC109241171092401758 +:104B500061E089E49CE90E94B5630F94224DE091E5 +:104B6000530AF0E0EE0FFF1FE353F648859194914E +:104B70000F944A621092FB0981E090E09093201814 +:104B800080931F1813CC61E085E49CE90E94B56313 +:104B900082E090E09093201880931F1814CCE0914D +:104BA000530AF0E0EE0FFF1FEB52F248859194910B +:104BB0000F944A6261E081E49CE90E94B56361E080 +:104BC0008DE39CE90E94B56361E088E29CE90E9464 +:104BD000B5631092901710928F1783E090E0909336 +:104BE000201880931F18FCCB83E090E026CCE09146 +:104BF000530AF0E0EE0FFF1FE357F24885919491BE +:104C00000F944A6211E01093FB0910924117109221 +:104C100040171092431710924217109245171092A6 +:104C2000441710924717109246170F94224D109375 +:104C3000470A82E090E09093450A8093440A85E019 +:104C400090E09093201880931F1808CC201731070C +:104C50000CF4FA94021713070CF4F39423E02F15C5 +:104C60002CF01F142CF0FF24F39402C023E0F22E4A +:104C700041E060E084EA97E10E94C9596BE776E081 +:104C800084EA97E10F94E3B942E060E084EA97E1B7 +:104C90000E94C9596BE776E084EA97E10F94E3B983 +:104CA00043E060E084EA97E10E94C9596BE776E04F +:104CB00084EA97E10F94E3B94F2D60E084EA97E12D +:104CC0000E94C95962E475E084EA97E10F94E3B960 +:104CD00000914318112707FD109564E670E080E00D +:104CE00090E00F9453B724CC8BE09CE940CC84E057 +:104CF0009CE93DCC8FEF9BE93ACC87E090E0909324 +:104D0000201880931F1848CC40D810922018109279 +:104D10001F1810922218109221186BCC81E090E09D +:104D20009093201880931F1871CC82E090E09093AC +:104D3000201880931F1877CC61E08BEF9BE90E94CD +:104D4000B56361E086EE9BE90E94B56383E090E085 +:104D50009093201880931F1873CC84E090E0909378 +:104D6000201880931F1879CC61E082EE9BE90E94A5 +:104D7000B56361E085ED9BE90E94B5630F94B93E90 +:104D800085E090E09093201880931F1873CC67EB18 +:104D900076E0CE0101960F94D5C883EA92E00F9495 +:104DA0004377BC01CE0101960F94B6C860E0CE01F6 +:104DB00001960E94B563E091530AF0E0EE0FFF1FE9 +:104DC000EF5FF148859194910F944A6282E090E000 +:104DD0009093201880931F187CCCE091530AF0E048 +:104DE000EE0FFF1FE353F648859194910F944A62AA +:104DF0001092450A1092440A1092470A80E090E00F +:104E0000A2E5B3E48093A3029093A402A093A50229 +:104E1000B093A6021092201810921F181092221818 +:104E200010922118D4CC61EC76E0CE0101960F945B +:104E3000D5C88FE992E00F944377BC01CE0101966B +:104E40000F94B6C860E0CE0101960E94B563E09170 +:104E5000530AF0E0EE0FFF1FE55DF1488591949154 +:104E60000F944A6282E090E09093201880931F187C +:104E7000DDCC6E960FB6F894DEBF0FBECDBFDF91CE +:104E8000CF911F910F91FF90EF90DF90CF900895F9 +:104E90008F929F92AF92BF92CF92DF92EF92FF924A +:104EA0000F931F93CF93DF93CDB7DEB728970FB63D +:104EB000F894DEBF0FBECDBF80919E02813009F015 +:104EC0003DC010929E020F944F6180910518811190 +:104ED0000FC0E091530AF0E0EE0FFF1FE353F648D6 +:104EE0006591749144E150E080EF97E10F945DC8C3 +:104EF0008DEE9FE00F945DCB8F3F01F58EEE9FE02E +:104F00000F945DCB8F3FD1F48FEE9FE00F945DCB7C +:104F10008F3FA1F480EF9FE00F945DCB8F3F71F442 +:104F200040E050E0BA018DEE9FE00F9481CB40E06D +:104F300050E0BA0181EF9FE00F9481CB80919117EF +:104F4000882321F081508093911703C081E08093E2 +:104F50009B0280919B02882309F4CDC4809125187F +:104F60008F5F809325188E3129F40F94F958109291 +:104F700025180EC06AE00F94C8C4911109C020E042 +:104F800044E064E184EA97E10E94D95A0F945153B6 +:104F900020E030E040E05FE360913A1770913B170A +:104FA00080913C1790913D170F941ABF0F9479C0D0 +:104FB00078876F836091421770914317882777FD38 +:104FC0008095982F0F94ACC020E030E040E05FE384 +:104FD0000F941ABF0F9479C07E836D8340E060E028 +:104FE00084EA97E10E94C95962E084EA97E10F944C +:104FF000E4B9CE0107960F94626ABC0184EA97E196 +:105000000F94E3B96FE284EA97E10F94E4B9CE011B +:1050100005960F94F477BC0184EA97E10F94E3B905 +:105020008BEF9CE90F94BE7888EF9CE90F94BE78D3 +:1050300040E06AE084EA97E10E94C95984EF9CE964 +:105040000F94BE788091440A9091450A019729F403 +:105050008CEE9CE90F94BE7820C02CEA35EC47E238 +:1050600057E36091280A7091290A80912A0A909149 +:105070002B0A0F941ABF69837A838B839C83CE019A +:1050800001960F949069BC0184EA97E10F94E3B90B +:1050900060E284EA97E10F94E4B941E060E084EAD9 +:1050A00097E10E94C95920E030E040E05FE3609161 +:1050B00034177091351780913617909137170F94E8 +:1050C0001ABF0F9479C078876F83609140177091F1 +:1050D0004117882777FD8095982F0F94ACC020E06A +:1050E00030E040E05FE30F941ABF0F9479C07E83F5 +:1050F0006D8360E084EA97E10F94E4B9CE010796EE +:105100000F94626ABC0184EA97E10F94E3B96FE2FD +:1051100084EA97E10F94E4B9CE0105960F94F477F1 +:10512000BC0184EA97E10F94E3B989EE9CE90F94FE +:10513000BE7886EE9CE90F94BE7841E06AE084EA8E +:1051400097E10E94C95983EE9CE90F94BE7866E00E +:1051500084EA97E10F94E4B987E492E00F94626ADD +:10516000BC0184EA97E10F94E3B98CED9CE90F94BC +:10517000BE7842E060E084EA97E10E94C9598091DC +:10518000820A882319F089ED9CE902C086ED9CE92A +:105190000F94BE7880919F0A8823A9F18091890C91 +:1051A000882319F18091330D9091340DA091350D24 +:1051B000B091360D0097A105B105B9F0BC01CD0144 +:1051C0006D597F4F8F4F9F4F24E630E040E050E015 +:1051D0000F94FCC460913B0D70913C0D80913D0D8E +:1051E00090913E0D0F94FCC401C020E030E03A8362 +:1051F0002983CE0101960F94626ABC0184EA97E18B +:105200000F94E3B90DC08091820A882329F081EDC3 +:105210009CE90F94BE7809C08DEC9CE90F94BE7890 +:1052200065E284EA97E10F94E4B980911D18882320 +:1052300089F18AEC9CE90F94BE7860911B187091FB +:105240001C184AE050E084EA97E10F9480BA87EC9A +:105250009CE90F94BE7840E063E184EA97E10E9404 +:10526000C9590F9424B7C0907C0AD0907D0AE09071 +:105270007E0AF0907F0A6C197D098E099F096036BD +:105280007A4E8105910518F485EC9CE90BC083ECFE +:105290009CE908C042E06AE084EA97E10E94C959AB +:1052A00081EC9CE90F94BE7842E06BE084EA97E1E0 +:1052B0000E94C9598FEB9CE90F94BE7867E084EA9D +:1052C00097E10F94E4B98091C5079091C607A0912A +:1052D000C707B091C807892B8A2B8B2BE1F10F945C +:1052E00024B750E6C52E5AEED52EE12CF12CA7019D +:1052F00096010F94FCC449015A016091C507709151 +:10530000C6078091C7079091C807A70196010F941F +:10531000FCC4C401821B930B6CE370E00F94D5C4F2 +:10532000182F6983CE0101960F949C67BC0184EA13 +:1053300097E10F94E3B96AE384EA97E10F94E4B943 +:105340001983CE0101960F949C67BC0184EA97E112 +:105350000F94E3B904C089EB9CE90F94BE7886EB07 +:105360009CE90F94BE7843E060E084EA97E10E94F4 +:10537000C95980914A0A90914B0A009719F021E08F +:105380002093470A30919F0A2091470A332309F45A +:1053900082C0211180C06EEA7AE089EB97E10F9418 +:1053A000CCC8892B31F109EB17E1F80101900020FD +:1053B000E9F7AF0141505109495B574160E070E0A6 +:1053C000C8010F949CC88EEA9AE09F938F9383EB59 +:1053D0009CE99F938F931F930F930F9441C9109251 +:1053E000EF171092EE170F900F900F900F900F90F5 +:1053F0000F90EEEAFAE001900020E9F7EF5AFA4048 +:10540000759708F445C00091EE171091EF17C12C65 +:10541000D12C8091EE179091EF179801281B390B32 +:105420002431310534F001969093EF178093EE17F5 +:1054300010C2C114D104B9F798012356354F790130 +:10544000F9019189602F681B43E0911114C084EA2F +:1054500097E10E94C959F701608984EA97E10F94A6 +:10546000E4B91092EF171092EE1700E010E0CC2490 +:10547000C394D12CCECF84EA97E10E94C959F70199 +:10548000608984EA97E10F94E4B90F5F1F4FC1CFA1 +:1054900069EB77E1E3C1222309F4DEC1892B09F42A +:1054A0008EC08091480A9091490A01968E309105EC +:1054B00028F49093490A8093480A04C01092490A3C +:1054C0001092480A43E067E084EA97E10E94C959D4 +:1054D00085EA9CE90F94BE7800E010E08091480ACC +:1054E0009091490A0817190778F467E0600F43E0C4 +:1054F00084EA97E10E94C9596EE284EA97E10F9429 +:10550000E4B90F5F1F4FEACF80914A0A90914B0A8E +:105510008230910531F188F4019709F050C043E0E1 +:1055200060E084EA97E10E94C959E091530AF0E0F3 +:10553000EE0FFF1FEB5AFF472FC083309105F9F0A4 +:10554000049709F03CC043E060E084EA97E10E94E0 +:10555000C959E091530AF0E0EE0FFF1FEF55FD47E8 +:1055600020C043E060E084EA97E10E94C959E091DD +:10557000530AF0E0EE0FFF1FE95BFF4712C043E064 +:1055800060E084EA97E10E94C959E091530AF0E093 +:10559000EE0FFF1FED56FD47859194910F94BE7855 +:1055A0000EC0859194910F94BE7810924B0A109280 +:1055B0004A0A1092490A1092480A1092470A8091AA +:1055C000440A9091450A019709F093C08091420ADC +:1055D0009091430A8B30910560F143E060E084EAEA +:1055E00097E10E94C95980E99CE90F94BE7843E095 +:1055F00060E084EA97E10E94C959E091530AF0E023 +:10560000EE0FFF1FE35EFF47859194910F94BE78E4 +:105610008CE89CE90F94BE786091420A7091430A2D +:105620006A5071094AE050E084EA97E10F9493BA16 +:1056300060C00397E1F4E091530AF0E0EE0FFF1F22 +:10564000E353F648859194910F94BE78E091530A04 +:10565000F0E0EE0FFF1FE353F648859194910F940D +:105660004A621092470A1092450A1092440A8091A9 +:10567000420A9091430A0497069720F543E060E0C0 +:1056800084EA97E10E94C95988E79CE90F94BE78A3 +:1056900043E060E084EA97E10E94C959E091530A2F +:1056A000F0E0EE0FFF1FE55DFF47859194910F94A9 +:1056B000BE788091420A9091430A01979093430AE1 +:1056C0008093420A8091420A9091430A0A9789F492 +:1056D000E091530AF0E0EE0FFF1FE55DFF47859173 +:1056E00094910F94BE7889E090E09093430A809360 +:1056F000420A8091440A9091450A029731F460EF82 +:1057000077E184EA97E10F94E3B98091440A90919C +:10571000450A0397A1F560EF77E184EA97E10F94DA +:10572000E3B9209126173091271780912417909183 +:105730002517821793071CF18091420A9091430A22 +:10574000892BE9F043E06FE084EA97E10E94C959B0 +:1057500086E297E10F94626ABC0184EA97E10F94B4 +:10576000E3B96FE284EA97E10F94E4B984E297E148 +:105770000F94F477BC0184EA97E10F94E3B9809128 +:10578000440A9091450A049799F543E060E084EA61 +:1057900097E10E94C959E091530AF0E0EE0FFF1F14 +:1057A000ED55F548859194910F94BE7843E06FE0F4 +:1057B00084EA97E10E94C9598091430A8F938091AE +:1057C000420A8F938CEC96E09F938F938E010F5F2C +:1057D0001F4F1F930F930F9413C9B80184EA97E1E9 +:1057E0000F94E3B90F900F900F900F900F900F90C0 +:1057F0008091440A9091450A059759F543E060E08D +:1058000084EA97E10E94C959E091530AF0E0EE0F53 +:10581000FF1FEB51F248859194910F94BE788091CF +:10582000420A9091430A8937910598F485E79CE9EB +:105830000F94BE786091420A7091430A4AE050E0AA +:1058400084EA97E10F9493BA60E284EA97E10F94B7 +:10585000E4B900EF17E10BC060EF77E184EA97E16C +:105860000F94E3B9F6CFF8E104301F0759F0F801BF +:1058700081918F018032BCF760E284EA97E10F9456 +:10588000E4B9F1CF80911D18882351F18091A802CD +:105890009091A90201979093A9028093A8021816EB +:1058A000190654F084EB90E09093A9028093A8022B +:1058B00080E090E00F94AD718091A8029091A902D0 +:1058C0008A30910529F08D9759F485E190E006C062 +:1058D00080919F0A882321F084E190E00F94AD71BC +:1058E0008AE0809391178091211890912218892B3A +:1058F00011F00F94D5A08091A31782FB882780F91F +:1059000090919017992399F090918F17992339F0DE +:10591000811120C010928F17109290171BC08823FE +:10592000C9F00F941C5581E080938F1713C0882312 +:1059300089F08091211890912218029759F001E086 +:1059400021E040E050E0BA0182EB91E00F942B554A +:105950000F94F958809147029091480220919D1729 +:1059600030919E178436910534F4820F931F85364B +:1059700091054CF416C08436910599F0820F931F5F +:105980008436910574F410929D1710929E17109210 +:105990009F171092A01784E690E09093480280939E +:1059A0004702209147023091480280919D179091C3 +:1059B0009E172436310569F48B3091051CF0865A08 +:1059C0009F4F09C0863F2FEF92078CF482599F4F5B +:1059D00002C0820F931F9093480280934702109257 +:1059E0009D1710929E1710929F171092A0178091EA +:1059F0004702909148028A3091051CF48AE090E0B9 +:105A000005C0883E934034F087EE93E090934802BF +:105A10008093470280911D188823A9F08091A702E6 +:105A2000811111C043E060E084EA97E10E94C95906 +:105A3000E091530AF0E0EE0FFF1FE556F248859122 +:105A400094910F94BE7828960FB6F894DEBF0FBEDF +:105A5000CDBFDF91CF911F910F91FF90EF90DF901D +:105A6000CF90BF90AF909F908F900895CF92DF928C +:105A7000EF92FF921F93CF93DF930F940E610F94D9 +:105A80000F1980E00F94C5640F9432618CEA9BE992 +:105A90000F94BE7846EA5BE961E080E00F94B1A024 +:105AA0004EE95BE962E080E00F94B1A047E95BE971 +:105AB00063E080E00F94B1A0C5E3DAE011E020E0FC +:105AC00030E048E453E4688179818A819B810F94B6 +:105AD0000AC087FF21C046E95BE9612F88E00F9487 +:105AE000B1A0488159816A817B8122E030E084EA5B +:105AF00097E10F9471BB20E030E0A90168817981C2 +:105B00008A819B810F940AC0881F8827881F43E9D8 +:105B10005BE9612F835F04C04FE85BE9612F88E098 +:105B20000F94B1A024961F5F143049F684EF91E0E2 +:105B30000E9400770F94EC65811103C084E690E029 +:105B4000F7CF84EF91E00E9400770F9432618FE7E6 +:105B50009BE90F94BE78C090310AD090320AE09051 +:105B6000330AF090340A20E030E048EC52E4C701F8 +:105B7000B6010F940AC087FF1DC020E030E044E367 +:105B800053E4C701B6010F940BC32BED3FE049E48A +:105B900050E40F9411C0AB01BC0122E030E084EA74 +:105BA00097E10F9471BB63E176E084EA97E10F948B +:105BB000E3B906C04BE75BE960E08FE00F94B1A06A +:105BC00046E65BE961E080E00F94B1A049E55BE95E +:105BD00062E080E00F94B1A048E55BE962E08FE00D +:105BE0000F94B1A020E030E044E353E46091DD0481 +:105BF0007091DE048091DF049091E0040F940BC358 +:105C00002BED3FE049E450E40F9411C0AB01BC011F +:105C100022E030E084EA97E10F9471BB63E176E023 +:105C200084EA97E10F94E3B94BE45BE963E080E039 +:105C30000F94B1A04AE45BE963E08FE00F94B1A058 +:105C400020E030E044E353E46091D9047091DA0439 +:105C50008091DB049091DC040F940BC32BED3FE0AB +:105C600049E450E40F9411C0AB01BC0122E030E0E4 +:105C700084EA97E10F9471BB63E176E084EA97E1EF +:105C80000F94E3B984EF91E00E9400770F94EC65E4 +:105C9000811103C084E690E0F7CF84EF91E00E9489 +:105CA00000770F94C6600F94055981E00F94C56486 +:105CB00082E0DF91CF911F91FF90EF90DF90CF9026 +:105CC0000D94CB639F92AF92BF92CF92DF92EF92EF +:105CD000FF920F931F93CF93DF9380912618882311 +:105CE00021F090919B029230B1F581E080932618CB +:105CF0008091630C882339F068E278E18DE99AE0BD +:105D00000E9490D301C080E0809327188823E9F196 +:105D100080912B181F928F9380912A181F928F9336 +:105D2000809129181F928F93809128181F928F932A +:105D300082EB9EE99F938F938CE298E19F938F93E0 +:105D40000F9441C98DB79EB70C960FB6F8949EBFBD +:105D50000FBE8DBF1AC0909127189923B1F0909172 +:105D60002818911112C09091291891110EC090918C +:105D70002A1891110AC090912B18911106C08F5FBB +:105D800080932618803109F49EC380919D179091CD +:105D90009E17A0919F17B091A01781309048A10540 +:105DA000B10540F010929D1710929E1710929F1708 +:105DB0001092A01780919D1790919E17A0919F1708 +:105DC000B091A0174091A21750E060E070E08417F6 +:105DD0009507A607B70710F48093A217D091A217D2 +:105DE0001091A31712FB112710F9C0E09924939486 +:105DF000D1113FC080919B028823E1F0E091530ACA +:105E0000F0E0EE0FFF1FEF58F0486591749180911C +:105E10009D1790919E17A0919F17B091A01723E016 +:105E2000892B8A2B8B2B11F443E001C040E28C2F8D +:105E30000F94EE531123E9F080919D1790919E17D6 +:105E4000A0919F17B091A017892B8A2B8B2B89F4D7 +:105E50000F941C5582EB91E0DF91CF911F910F9130 +:105E6000FF90EF90DF90CF90BF90AF909F900D94F8 +:105E7000F3554ED40F942EC840919D1750919E1704 +:105E800060919F177091A017863090F4D130A9F5DA +:105E900080919B02882301F123E041305105610587 +:105EA000710511F443E001C040E26CE97EE911C0E4 +:105EB000D13019F580919B02882371F023E04130A5 +:105EC00051056105710511F443E001C040E26CE841 +:105ED0007EE98C2F0F94EE53112309F4B9C1809100 +:105EE0009D1790919E17A0919F17B091A0170197B1 +:105EF000A105B10509F0ACC1ABCFD23059F5809105 +:105F00009B028823B1F0E091530AF0E0EE0FFF1FEF +:105F1000EF58F2488591949123E042305105610594 +:105F2000710511F443E001C040E2BC018C2F0F94D5 +:105F3000EE53112309F48CC180919D1790919E1707 +:105F4000A0919F17B091A0170297A105B10509F084 +:105F50007FC17ECFD33059F580919B028823B1F069 +:105F6000E091530AF0E0EE0FFF1FED59F2488591E2 +:105F7000949123E0433051056105710511F443E02C +:105F800001C040E2BC018C2F0F94EE53112309F4A1 +:105F90005FC180919D1790919E17A0919F17B0911E +:105FA000A0170397A105B10509F052C151CFD43014 +:105FB00059F580919B028823B1F0E091530AF0E0FB +:105FC000EE0FFF1FEB5AF2488591949123E0443085 +:105FD00051056105710511F443E001C040E2BC01C7 +:105FE0008C2F0F94EE53112309F432C180919D1729 +:105FF00090919E17A0919F17B091A0170497A105AB +:10600000B10509F025C124CFD53019F580919B0247 +:10601000882371F023E0453051056105710511F4C5 +:1060200043E001C040E26FE77EE98C2F0F94EE530E +:10603000112309F40DC180919D1790919E17A09195 +:106040009F17B091A0170597A105B10509F000C1F0 +:10605000FFCED63019F580919B02882371F023E0A2 +:10606000463051056105710511F443E001C040E27D +:1060700064E77EE98C2F0F94EE53112309F4E8C0F6 +:1060800080919D1790919E17A0919F17B091A01796 +:106090000697A105B10509F0DBC0DACED73019F5B6 +:1060A00080919B02882371F023E047305105610500 +:1060B000710511F443E001C040E26BE67EE98C2FEC +:1060C0000F94EE53112309F4C3C080919D17909152 +:1060D0009E17A0919F17B091A0170797A105B10532 +:1060E00009F0B6C0B5CED83019F580919B0288234F +:1060F00071F023E0483051056105710511F443E06A +:1061000001C040E261E67EE98C2F0F94EE5311232B +:1061100009F49EC080919D1790919E17A0919F17A2 +:10612000B091A0170897A105B10509F091C090CED4 +:10613000D93019F580919B02882371F023E0493012 +:1061400051056105710511F443E001C040E264E5C9 +:106150007EE98C2F0F94EE53112309F479C08091BE +:106160009D1790919E17A0919F17B091A017099726 +:10617000A105B10509F06CC06BCEDA3019F580913C +:106180009B02882371F023E04A30510561057105B7 +:1061900011F443E001C040E26DE47EE98C2F0F94DE +:1061A000EE53112309F454C080919D1790919E17CE +:1061B000A0919F17B091A0170A97A105B10509F00A +:1061C00047C046CEDB3009F580919B02882371F0F1 +:1061D00023E04B3051056105710511F443E001C026 +:1061E00040E261E47EE98C2F0F94EE53112381F19C +:1061F00080919D1790919E17A0919F17B091A01725 +:106200000B97A105B10521F523CEDC3009F580916E +:106210009B02882371F023E04C3051056105710524 +:1062200011F443E001C040E260E37EE98C2F0F945B +:10623000EE53112369F080919D1790919E17A091C4 +:106240009F17B091A0170C97A105B10509F400CED6 +:1062500080912718882309F473C040919D175091AD +:106260009E1760919F177091A017DD3019F58091EE +:106270009B02882371F023E04D30510561057105C3 +:1062800011F443E001C040E263E27EE98C2F0F94F9 +:10629000EE53111102C000E154C080919D179091FE +:1062A0009E17A0919F17B091A0170D97A105B1055A +:1062B00091F7CECDDE3019F580919B02882371F0E5 +:1062C00023E04E3051056105710511F443E001C032 +:1062D00040E261E17EE98C2F0F94EE53112309F423 +:1062E00064C080919D1790919E17A0919F17B091C7 +:1062F000A0170E97A105B10509F057C0A9CDDF3051 +:1063000051F680919B02882359F04F305105610569 +:10631000710511F463E001C060E28C2F0F946B5A99 +:10632000112309F442C080919D1790919E17A0916E +:106330009F17B091A0170F97A105B105B1F588CDB2 +:106340000DE00D1333C080919B028823D1F0802F84 +:1063500090E0A0E0B0E040919D1750919E176091B1 +:106360009F177091A01723E0481759076A077B070A +:1063700011F443E001C040E264E07EE98C2F0F9409 +:10638000EE53112399F0802F90E0A0E0B0E040910F +:106390009D1750919E1760919F177091A0174817F5 +:1063A00059076A077B0711F453CD00E1AA24A3948F +:1063B000A00EAD123FC080919B028823D1F08D2F9B +:1063C00090E0A0E0B0E0C0909D17D0909E17E090C4 +:1063D0009F17F090A01720E2C816D906EA06FB0620 +:1063E00011F44EE301C040E263EF7DE98C2F0F947E +:1063F000EE531123F9F04A2D50E060E070E08091F7 +:106400009D1790919E17A0919F17B091A017841788 +:106410009507A607B70771F40F941C55DF91CF912C +:106420001F910F91FF90EF90DF90CF90BF90AF90B2 +:106430009F901CCB72E0B72EB00E4B2D50E060E069 +:1064400070E080919D1790919E17A0919F17B09139 +:10645000A01784179507A607B70780F04B2D50E0CB +:1064600041505109662757FD6095762F40939D173F +:1064700050939E1760939F177093A01740919D179C +:106480008091A21790E00396242F30E082179307A3 +:106490004CF48DEF840F8093A21790929B02DCEF57 +:1064A000D40FCFEFCF5FDF5FC43008F4A1CCDF9112 +:1064B000CF911F910F91FF90EF90DF90CF90BF9001 +:1064C000AF909F900895109226185FCCDF92EF92C4 +:1064D000FF920F931F93CF93DF93E0904318FF2415 +:1064E000E7FCF0940F943261E091530AF0E0EE0F74 +:1064F000FF1FEB57FE47859194910F94BE7841E0C2 +:1065000060E084EA97E10E94C95962E475E084EA98 +:1065100097E159D7C1E0E091530AF0E0EE0FFF1F79 +:10652000E751FF47459154916C2F81E00F94B1A042 +:10653000CF5FC43081F7DD24D394C0E0D0E001E028 +:1065400010E0E091530AF0E0EE0FFF1FE751FF4724 +:10655000859194910F942EC862E0680F402F84EAD1 +:1065600097E10E94C959B8016C0F7D1F4AE050E0C5 +:1065700084EA97E1C5D70F5F1F4F0430110509F773 +:106580000F94224D81E00E9448766091431877274E +:1065900067FD70959701261B370B37FF03C03195B8 +:1065A00021953109253031050CF488C06E157F0521 +:1065B0000CF4DA94E616F7060CF4D39483E08D1508 +:1065C00014F5209709F09CC00F943261E091530AB2 +:1065D000F0E0EE0FFF1FEB57FE47859194910F946B +:1065E000BE78C1E0E091530AF0E0EE0FFF1FE751E3 +:1065F000FF47459154916C2F81E00F94B1A0CF5F7C +:10660000C43081F77BC01D141CF12097F9F021974D +:106610000F943261E091530AF0E0EE0FFF1FEB5749 +:10662000FE47859194910F94BE7811E0E091530A52 +:10663000F0E0EE0FFF1FE751FF4745915491612FA6 +:1066400081E00F94B1A01F5F143081F7DD24D39453 +:1066500041E060E084EA97E10E94C9596BE776E087 +:1066600084EA97E1B0D642E060E084EA97E10E94D4 +:10667000C9596BE776E084EA97E1A5D643E060E08C +:1066800084EA97E10E94C9596BE776E084EA97E1D2 +:106690009AD64D2D60E084EA97E10E94C95962E4E0 +:1066A00075E084EA97E18FD6E0904318FF24E7FC79 +:1066B000F09464E670E080E090E0F5D30F94EC6530 +:1066C000882309F43CCF82E00F94CB630F94EC65F0 +:1066D0008111FCCF6AE070E080E090E0E4D30F9499 +:1066E000EC658111FCCF8C2F8D0D8150DF91CF9106 +:1066F0001F910F91FF90EF90DF900895C1E0D0E0DF +:1067000093E0D92EA5CF682F84EA97E10C94A15B82 +:1067100088EF9EE90895982F9F7D51F0893041F0D0 +:106720008A3031F091E08D3009F090E0892F0895A2 +:1067300081E008955F926F927F928F929F92AF92C5 +:10674000BF92CF92DF92EF92FF920F931F93CF935E +:10675000DF9300D01F92CDB7DEB7582E8B01682E85 +:10676000792E4301F30181913F0120ED280F2A305A +:10677000C0F38E3211F0712CC6C06F015601F601C4 +:1067800081916F0120ED280F2A30C0F38E3299F7E6 +:106790009F017901F90140812F5F3F4F80ED840F08 +:1067A0008A30B8F3842F4B839C83B5DF4B819C8167 +:1067B000811102C04D32F9F61A8219824AE050E086 +:1067C000BE016F5F7F4F852D0F94DDC6F801718389 +:1067D000608389819A818815990569F64AE050E0BD +:1067E000BE016F5F7F4FC3010F94DDC6F801738355 +:1067F000628389819A818A159B0509F0BCCF4AE0A2 +:1068000050E0BE016F5F7F4FC6010F94DDC6F801F7 +:1068100075836483A980BA80AE14BF0409F0ABCF3E +:106820008FE790E0978386836701FFEFCF1ADF0A37 +:10683000F70180818D3201F546017401FFEF8F1A57 +:106840009F0AF701808167DF782E8823B1F3EC1867 +:10685000FD089E2C970133272330310581F443E056 +:1068600050E06AEE7EE9C6010F944FC8892B41F5CE +:10687000F8011782168247C07724739444C02530EC +:10688000310561F445E050E064EE7EE9C6010F9405 +:106890004FC8892BA9F481E090E00EC02430310567 +:1068A00079F444E050E06FED7EE9C6010F944FC8E3 +:1068B000892B31F482E090E0F8019783868323C02E +:1068C0008EEF8E0D823008F056CFF5018181823730 +:1068D00009F051CF8281833609F04DCFF2E09F124B +:1068E00003C083E090E0E8CFF501238180ED820FC3 +:1068F0008A3008F040CF332727FD30952E523109DA +:10690000F80137832683872D0F900F900F900F90FB +:10691000DF91CF911F910F91FF90EF90DF90CF907B +:10692000BF90AF909F908F907F906F905F900895F1 +:106930004423B9F0FC012491FB013491231778F032 +:10694000FC012491FB013491321748F0FC012491A1 +:10695000222339F0415001966F5F7F4FE9CF81E0EC +:10696000089580E008956F927F928F929F92AF92E8 +:10697000BF92CF92DF92EF92FF920F931F93CF932C +:10698000DF93CDB7DEB727970FB6F894DEBF0FBE03 +:10699000CDBF4C018B01FC01849180538A3010F4EF +:1069A0003196FACF84918E3209F0F7C05F018FEFF4 +:1069B000A81AB80AF501849180538A3010F43196F0 +:1069C000FACF84918E3209F0E8C06F018FEFC81AB8 +:1069D000D80A7601F701849180538A3020F4EFEFD2 +:1069E000EE1AFE0AF7CFF701849195DE811105C0FA +:1069F000F70184918D3209F0D0C03501681879080B +:106A00008FEF860D853008F0C8C0682E712CA30169 +:106A1000B401CE0101960F941EC8E1E0F0E0EC0F46 +:106A2000FD1FE60DF71D10821F821E824AE050E016 +:106A3000BE016A5F7F4FCE0101960F94DDC6F8015B +:106A400071836083EE81FF8180818111A6C0460140 +:106A50008A189B088FEF880D853008F09EC0882E1D +:106A6000912CA401B501CE0101960F941EC8E1E05E +:106A7000F0E0EC0FFD1FE80DF91D10824AE050E038 +:106A8000BE016A5F7F4FCE0101960F94DDC6F8010B +:106A900073836283EE81FF81808181117EC0C70193 +:106AA0008C199D09853008F078C05C01BB24A501D4 +:106AB000B601CE0101960F941EC8E1E0F0E0EC0FA4 +:106AC000FD1FEA0DFB1D10824AE050E0BE016A5F27 +:106AD0007F4FCE0101960F94DDC6F8017583648364 +:106AE000EE81FF818081811158C08FE790E0F8012D +:106AF00097838683F70184918D3289F56701FFEFD3 +:106B0000CF1ADF0A5601F501849105DE982E811116 +:106B100004C08FEFA81AB80AF6CFAC18BD088A2CAB +:106B2000950133272330310541F44A2D6AEE7EE981 +:106B3000C601FEDE811107C015C025303105B1F058 +:106B400024303105E9F08EEF8A0D823030F542E0D5 +:106B50006CED7EE9C601ECDE81111FC020C09924D6 +:106B6000939431C0F801178216822DC04A2D64EE2D +:106B70007EE9C601DDDE8111E6CF81E090E009C04B +:106B80004A2D6FED7EE9C601D3DE8111DCCF82E0B4 +:106B900090E0F8019783868316C0912C14C0F2E030 +:106BA0008F1203C083E090E0F4CFF7013396849115 +:106BB00080538A3090F7E490F12CFEE2EF1AF1084E +:106BC000F801F782E682892D27960FB6F894DEBF8A +:106BD0000FBECDBFDF91CF911F910F91FF90EF902E +:106BE000DF90CF90BF90AF909F908F907F906F90ED +:106BF0000895DF92EF92FF920F931F93CF93DF934D +:106C0000CDB7DEB761970FB6F894DEBF0FBECDBF2C +:106C1000D82EE92EBE01675F7F4F8CDD811102C047 +:106C2000F12C74C0BE016F5F7F4F88EF9EE99BDE41 +:106C3000F82E8823A9F3FE013996DE011196BE01D4 +:106C40006F5E7F4F219131918D919D9182179307B6 +:106C500040F02817390708F459C0E617F70791F7ED +:106C600055C0E091530AF0E0EE0FFF1FE753F148E3 +:106C7000859194910F9401654BED5EE962E080E0AF +:106C80000F94B1A00D2D1E2DF801E1908F018E2DD6 +:106C900042DDF82E811103C08E2D35DDF5CFE09158 +:106CA000530AF0E0EE0FFF1FE554F148459154916F +:106CB00063E080E00F94B1A020E030E0A90168EE2D +:106CC00073E084E50FD582E390E00E94007784E5CD +:106CD0000F9498BE84EF91E00E94007720E030E0AE +:106CE000A90168EE73E084E5FDD482E390E00E94A0 +:106CF000007784E50F9498BE0F948C6681E00F9422 +:106D0000C5640F94326180E00F94CB638F2D619640 +:106D10000FB6F894DEBF0FBECDBFDF91CF911F91AC +:106D20000F91FF90EF90DF9008950F931F93CF93F3 +:106D3000DF93CDB7DEB728970FB6F894DEBF0FBE4E +:106D4000CDBF00E010E0F801E251F1466491C801C6 +:106D50000F946FCB0F5F1F4F0A301105A1F7BE01D3 +:106D60006F5F7F4F88EF9EE9FEDD8823C1F0698168 +:106D70007A818AE090E00F9489CB6B817C818CE0F2 +:106D800090E00F9489CB6D817E818EE090E00F942E +:106D900089CB6F81788580E190E00F9489CB28962C +:106DA0000FB6F894DEBF0FBECDBFDF91CF911F911C +:106DB0000F9108951F920F920FB60F9211242F93E7 +:106DC0003F938F939F93AF93BF938091451890917A +:106DD0004618A0914718B09148183091441823E004 +:106DE000230F2D3720F40196A11DB11D05C026E803 +:106DF000230F0296A11DB11D2093441880934518BE +:106E000090934618A0934718B0934818809149185A +:106E100090914A18A0914B18B0914C180196A11D61 +:106E2000B11D8093491890934A18A0934B18B093C2 +:106E30004C18BF91AF919F918F913F912F910F90DF +:106E40000FBE0F901F9018952FB7F89460914518BA +:106E50007091461880914718909148182FBF089557 +:106E60003FB7F8948091491890914A18A0914B1817 +:106E7000B0914C1826B5A89B05C02F3F19F001967C +:106E8000A11DB11D3FBF6627782F892F9A2F620F52 +:106E9000711D811D911D42E0660F771F881F991F8C +:106EA0004A95D1F708958F929F92AF92BF92CF9259 +:106EB000DF92EF92FF926B017C01D2DF4B015C010C +:106EC000C114D104E104F104E1F0B2D7C9DF6819BB +:106ED00079098A099B09683E73408105910580F311 +:106EE00021E0C21AD108E108F10888EE880E83E09B +:106EF000981EA11CB11CC114D104E104F10431F7A6 +:106F0000DFCFFF90EF90DF90CF90BF90AF909F903A +:106F10008F9008958230910538F0880F991F880F5F +:106F2000991F05970197F1F70895789484B58260C9 +:106F300084BD84B5816084BD85B5826085BD85B51D +:106F4000816085BDEEE6F0E0808181608083E1E8CC +:106F5000F0E0108280818260808380818160808304 +:106F6000E0E8F0E0808181608083E1EBF0E0808107 +:106F700084608083E0EBF0E0808181608083E1E9E0 +:106F8000F0E0808182608083808181608083E0E99D +:106F9000F0E0808181608083E1EAF0E080818260BE +:106FA0008083808181608083E0EAF0E0808181607D +:106FB0008083E1E2F1E08081826080838081816072 +:106FC0008083E0E2F1E0808181608083EAE7F0E0A5 +:106FD0008081846080838081826080838081816001 +:106FE00080838081806880831092C10008951F9300 +:106FF000CF93DF93182FEB0161E011D1209711F4AB +:1070000060E004C0CF3FD10531F461E0812FDF9112 +:10701000CF911F913DC1E12FF0E0ED5FF04644912B +:1070200050E0FA013197E231F10508F09BC0EB57CF +:10703000FF4F0D943AC584B5806884BDC7BD97C025 +:1070400084B5806284BDC8BD92C080918000806894 +:1070500080938000D0938900C093880088C080917D +:107060008000806280938000D0938B00C0938A0060 +:107070007EC080918000886080938000D0938D00D6 +:10708000C0938C0074C08091B00080688093B00081 +:10709000C093B3006CC08091B00080628093B00058 +:1070A000C093B40064C08091900080688093900089 +:1070B000D0939900C09398005AC08091900080624C +:1070C00080939000D0939B00C0939A0050C0809111 +:1070D0009000886080939000D0939D00C0939C00A6 +:1070E00046C08091A00080688093A0008091A0009D +:1070F0008F7B8093A000D093A900C093A80037C0D5 +:107100008091A00080628093A000D093AB00C093D8 +:10711000AA002DC08091A00088608093A000D09329 +:10712000AD00C093AC0023C08091200180688093A3 +:107130002001D0932901C093280119C0809120011A +:10714000806280932001D0932B01C0932A010FC04D +:1071500080912001886080932001D0932D01C093FD +:107160002C0105C0C038D1050CF04FCF49CFDF91BD +:10717000CF911F91089590E0FC013197E231F10524 +:1071800008F04CC0E956FF4F0D943AC5809180003D +:107190008F7703C0809180008F7D80938000089559 +:1071A00080918000877FF9CF84B58F7702C084B546 +:1071B0008F7D84BD08958091B0008F7703C080914A +:1071C000B0008F7D8093B0000895809190008F77FC +:1071D00007C0809190008F7D03C080919000877FD1 +:1071E0008093900008958091A0008F7707C08091D0 +:1071F000A0008F7D03C08091A000877F8093A000B6 +:107200000895809120018F7707C0809120018F7DA4 +:1072100003C080912001877F809320010895CF9340 +:10722000DF9390E0FC01E75AF0462491FC01E15520 +:10723000F0468491882349F190E0880F991FFC0162 +:10724000E75CFF45A591B491815E9F45FC01C59126 +:10725000D4919FB7611108C0F8948C912095822336 +:107260008C93888182230AC0623051F4F8948C9107 +:10727000322F309583238C938881822B888304C09E +:10728000F8948C91822B8C939FBFDF91CF910895BE +:107290000F931F93CF93DF931F92CDB7DEB7282FA5 +:1072A00030E0F901ED5FF0468491F901E75AF046CC +:1072B0001491F901E155F04604910023C1F08823AF +:1072C00019F0698358DF6981E02FF0E0EE0FFF1FAE +:1072D000E15EFF45A591B4919FB7F8948C9161113F +:1072E00003C01095812301C0812B8C939FBF0F9009 +:1072F000DF91CF911F910F910895CF93DF93282FA6 +:1073000030E0F901ED5FF0468491F901E75AF0466B +:10731000D491F901E155F046C491CC2389F0811153 +:107320002ADFEC2FF0E0EE0FFF1FEB5FFF45A5918A +:10733000B4912C912D2381E090E021F480E002C0F3 +:1073400080E090E0DF91CF910895CF92DF92EF92AD +:10735000FF920F931F93CF93DF937C016A01EB01A0 +:1073600000E010E00C151D0571F06991D701ED9159 +:10737000FC910190F081E02DC7011995892B19F03E +:107380000F5F1F4FEFCFC801DF91CF911F910F917A +:10739000FF90EF90DF90CF9008956115710581F017 +:1073A000DB010D900020E9F7AD0141505109461B6A +:1073B000570BDC01ED91FC910280F381E02D1994D3 +:1073C00080E090E00895E9CFDC01ED91FC9101901F +:1073D000F081E02D19948F929F92AF92BF92DF922D +:1073E000EF92FF920F931F93CF93DF93CDB7DEB74A +:1073F000A1970FB6F894DEBF0FBECDBF7C01F42F6E +:10740000D52ECB0119A2223008F42AE08E010F5D9F +:107410001F4F822E912CA12CB12C6F2F7D2DA501F9 +:1074200094010F94FCC4F22FD32ECA01015011090C +:107430006A3014F4E0E301C0E7E3E60FD801EC930F +:10744000232B242B252B49F7B801C701A6DFA196D2 +:107450000FB6F894DEBF0FBECDBFDF91CF911F9165 +:107460000F91FF90EF90DF90BF90AF909F908F9023 +:107470000895CF92DF92EF92FF920F931F93CF93D5 +:10748000DF93EC016A017B012115310579F4E88174 +:10749000F9810190F081E02D642FDF91CF911F9150 +:1074A0000F91FF90EF90DF90CF9019942A30310523 +:1074B000D9F477FF18C06DE287DF8C014427552788 +:1074C000BA014C195D096E097F092AE0CE0183DFFC +:1074D000800F911FDF91CF911F910F91FF90EF903F +:1074E000DF90CF9008952AE0B701A601CE01DF9189 +:1074F000CF911F910F91FF90EF90DF90CF906BCFC6 +:107500009A01AB01662757FD6095762FB2CF211502 +:10751000310541F4DC01ED91FC910190F081E02D09 +:10752000642F199458CF9A01AB0160E070E0EFCF5F +:107530004F925F926F927F928F929F92AF92BF9283 +:10754000CF92DF92EF92FF920F931F93CF93DF932F +:10755000EC016A017B01B22E9A01AB01C701B601B1 +:107560000F9405C4882319F064EE76E025C0260147 +:107570003701E89477F82FEF3FEF4FE75FE7C3015C +:10758000B2010F9405C481110CC02FEF3FEF4FE7FC +:107590005FE7C301B2013ED518161CF468EE76E031 +:1075A0000BC02FEF3FEF4FE75FE4C701B60161D794 +:1075B0001816A4F46CEE76E0CE01DF91CF911F9106 +:1075C0000F91FF90EF90DF90CF90BF90AF909F9082 +:1075D0008F907F906F905F904F90DFCE2FEF3FEFB7 +:1075E0004FE75FECC701B60115D587FDE3CF20E07B +:1075F00030E0A901C701B6010DD587FF09C06DE2D2 +:10760000CE01E2DE8C01F7FAF094F7F8F09402C0B4 +:1076100000E010E0A12C60E070E080E09FE3AB149C +:1076200039F020E030E040E251E4FBD4A394F7CFFE +:107630009B01AC01C701B601FDD36B017C015ED596 +:107640002B013C0187D59B01AC01C701B601F1D3E9 +:107650006B017C012AE0B301A201CE01BCDE080F60 +:10766000191FBB2031F06BE774E0CE0196DE080FE6 +:10767000191F7B2C772019F120E030E040E251E423 +:10768000C701B601C8D76B017C0133D54B01AA24D1 +:1076900097FCA094BA2C2AE030E0B501A401CE01F9 +:1076A000E8DE080F191FC501B40156D59B01AC01D6 +:1076B000C701B601BED36B017C017A94DBCFC80150 +:1076C000DF91CF911F910F91FF90EF90DF90CF90BE +:1076D000BF90AF909F908F907F906F905F904F90F2 +:1076E000089526CF3F924F925F926F927F928F9232 +:1076F0009F92AF92BF92CF92DF92EF92FF920F9341 +:107700001F93CF93DF9300D01F92CDB7DEB78B01CD +:1077100029013A019091AA02981721F09F3F09F0A0 +:10772000B7C204C0E3E5F0EA349004C18093AA0232 +:10773000E3E5F0EAE491EF3F09F4AAC2E23009F48C +:1077400080C074F5EE2309F45BC0E13009F0F1C0AC +:107750001092800010928100909181009860909327 +:10776000810090918100916090938100282F30E0FA +:10777000F901E155F046E491F0E0EE0FFF1FE15E04 +:10778000FF454591549150936B1840936A18F90145 +:10779000E75AF04624912093691833243394CCC0DF +:1077A000E43009F49EC00CF474C0E53009F0C1C0A7 +:1077B00010922001109221019091210198609093E4 +:1077C000210190912101916090932101282F30E0B7 +:1077D000F901E155F046E491F0E0EE0FFF1FE15EA4 +:1077E000FF454591549150934F1840934E18F9011D +:1077F000E75AF046249120934D1855E0352E9CC051 +:1078000014BC15BC94B5926094BD95B5916095BDBE +:10781000282F30E0F901E155F046E491F0E0EE0F59 +:10782000FF1FE15EFF4545915491509372184093BC +:107830007118F901E75AF046249120937018312C01 +:107840007BC01092B0001092B1009091B000926095 +:107850009093B0009091B10091609093B100282F67 +:1078600030E0F901E155F046E491F0E0EE0FFF1F42 +:10787000E15EFF454591549150936418409363181D +:10788000F901E75AF04624912093621822E0322E43 +:1078900053C01092900010929100909191009860C6 +:1078A0009093910090919100916090939100282F76 +:1078B00030E0F901E155F046E491F0E0EE0FFF1FF2 +:1078C000E15EFF454591549150935D1840935C18DB +:1078D000F901E75AF046249120935B18B3E03B2E60 +:1078E0002BC01092A0001092A1009091A10098606E +:1078F0009093A1009091A10091609093A100282FF6 +:1079000030E0F901E155F046E491F0E0EE0FFF1FA1 +:10791000E15EFF4545915491509356184093551898 +:10792000F901E75AF04624912093541874E0372E59 +:1079300003C03E2E37FCACC161E071DC4801A12CD4 +:10794000B12C832D8D7F09F0C6C060E072E18AE71B +:1079500090E0A50194010F941EC529833A834B83BF +:107960005C8369017A0181E0C81AD108E108F10855 +:107970009FEFC916D104E104F10409F008F499C09D +:1079800060E472E48FE090E0A50194010F941EC5BD +:1079900069017A01E1E0CE1AD108E108F108F2E0CC +:1079A0003F1219C08FEFC816D104E104F10409F0A9 +:1079B00008F489C060E970ED83E090E0A5019401CE +:1079C0000F941EC569017A0191E0C91AD108E10836 +:1079D000F10883E001C082E0EFEFCE16D104E104AC +:1079E000F10409F008F466C068E478EE81E090E004 +:1079F000A50194010F941EC569017A01F1E0CF1A27 +:107A0000D108E108F1083320E1F082E038121BC010 +:107A10009FEFC916D104E104F10409F008F436C15E +:107A200064E274EF80E090E0A50194010F941EC51C +:107A300069017A01E1E0CE1AD108E108F10885E098 +:107A400003C083E001C084E0FFEFCF16D104E1045E +:107A5000F10481F178F162E17AE780E090E0A5013C +:107A60009401ECD769017A0181E0C81AD108E108D4 +:107A7000F108311002C084E001C086E09FEFC91612 +:107A8000D104E104F104B1F0A8F0C980DA80EB8000 +:107A9000FC809AE0F594E794D794C7949A95D1F72F +:107AA000E1E0CE1AD108E108F108332031F087E097 +:107AB0000BC081E0332011F007C085E095B5987FB9 +:107AC000982B95BD54C082E09091B100987F982B7F +:107AD0009093B1004CC060E072E18AE790E0A501AC +:107AE0009401ACD769017A01F1E0CF1AD108E1081D +:107AF000F108C114D10481E0E806F10480F068E4E3 +:107B000078EE81E090E0A501940198D769017A01AF +:107B100091E0C91AD108E108F10893E001C091E0B1 +:107B2000E1E03E1207C080918100887F892B80931D +:107B300081001DC0F3E03F1207C080919100887F53 +:107B4000892B8093910013C084E0381207C0809184 +:107B5000A100887F892B8093A10009C0E5E03E1237 +:107B600006C080912101887F892B809321014114D7 +:107B700051046104710461F0D801AA0FBB1FA30175 +:107B8000920184D728EE33E040E050E035D703C0BF +:107B90002FEF3FEFA901F2E03F1609F443C0F315C0 +:107BA000BCF0332081F181E0381272C0D09289009C +:107BB000C092880020936C1830936D1840936E1813 +:107BC00050936F1880916F00826080936F0060C047 +:107BD00094E0391609F448C03916A4F1E5E03E12E4 +:107BE00057C0D0922901C092280120935018309399 +:107BF000511840935218509353188091730082602B +:107C00008093730045C0C7BC2093731830937418D9 +:107C1000409375185093761880916E00826080931F +:107C20006E0036C0C092B30020936518309366187A +:107C30004093671850936818809170008260809319 +:107C4000700026C0D0929900C092980020935E18D0 +:107C500030935F18409360185093611880917100C1 +:107C600082608093710014C0D092A900C092A800D5 +:107C700020935718309358184093591850935A1816 +:107C80008091720082608093720002C084E01CCFF9 +:107C90000F900F900F900F90DF91CF911F910F9148 +:107CA000FF90EF90DF90CF90BF90AF909F908F901C +:107CB0007F906F905F904F903F9008958230A9F031 +:107CC00028F4882349F0813051F00895843021F15F +:107CD000E8F0853039F1089510926E000895809192 +:107CE0006F008D7F80936F000895809170008D7F6D +:107CF0008093700081E08093B0008091B100887F14 +:107D000084608093B1001092B30008958091710057 +:107D10008D7F809371000895809172008D7F809394 +:107D200072000895809173008D7F80937300089591 +:107D3000CF93C82F8091AA028C1307C0E3E5F0EA25 +:107D400084919FEF9093AA0201C08FEFB7DF60E0AC +:107D50008C2FCF919DCA1F920F920FB60F921124B4 +:107D60000BB60F922F933F934F935F936F937F9335 +:107D70008F939F93AF93BF93EF93FF938091651879 +:107D800090916618A0916718B0916818892B8A2B7A +:107D90008B2B51F190916218E0916318F091641867 +:107DA0008081892780838091651890916618A091C1 +:107DB0006718B0916818181619061A061B06BCF445 +:107DC0008091651890916618A0916718B091681815 +:107DD0000197A109B1098093651890936618A09343 +:107DE0006718B093681803C08091AA02A1DFFF91C1 +:107DF000EF91BF91AF919F918F917F916F915F9123 +:107E00004F913F912F910F900BBE0F900FBE0F908F +:107E10001F901895089589D8FDDF0E94BD78C0E0B5 +:107E2000D0E00E943EB32097E1F30E940000F9CF1A +:107E300008955058BB27AA270ED0B9C282D230F07D +:107E400087D220F031F49F3F11F41EF441C20EF4AA +:107E5000E095E7FB0EC2E92FCCD280F3BA17620798 +:107E600073078407950718F071F49EF5FBC20EF4B2 +:107E7000E0950B2EBA2FA02D0B01B90190010C013A +:107E8000CA01A0011124FF27591B99F0593F50F452 +:107E9000503E68F11A16F040A22F232F342F4427AA +:107EA000585FF3CF469537952795A795F0405395A2 +:107EB000C9F77EF41F16BA0B620B730B840BBAF072 +:107EC0009150A1F0FF0FBB1F661F771F881FC2F7DD +:107ED0000EC0BA0F621F731F841F48F487957795F1 +:107EE0006795B795F7959E3F08F0B3CF9395880FA8 +:107EF00008F09927EE0F9795879508959F939F77A0 +:107F0000EEE389379E0720F4E2E5F1E009D209C0EB +:107F100071D19058A2EA2AED3FE049EC5FE39BDF84 +:107F200046D20F9007FC905808950BD258F080E885 +:107F300091E009F49EEF0CD228F040E851E059F4AA +:107F40005EEF09C0C5C18EC2E92FE07852D268F356 +:107F5000092E052AC1F3261737074807590738F0B5 +:107F60000E2E07F8E02569F0E025E0640AC0EF6313 +:107F700007F8009407FADB01B9019D01DC01CA0191 +:107F8000AD01EF935DD013D20AD05F91552331F04C +:107F90002BED3FE049E450FD49EC4CCF0895DF93D1 +:107FA000DD27B92FBF7740E85FE3161617064807AD +:107FB0005B0710F4D92FC2D29F938F937F936F9357 +:107FC00021D4E6E6F1E087D1F2D12F913F914F9194 +:107FD0005F912DD3DD2349F09058A2EA2AED3FE0CE +:107FE00049EC5FE3D0785D2736DFDF91E0C123D233 +:107FF00080F09F3740F491110EF435C260E070E0DC +:1080000080E89FE3089526F01B16611D711D811DF8 +:1080100036C150C10AD108F481E00895A1D1E39599 +:10802000D7C10CD0C4C194D140F08BD130F021F431 +:108030005F3F19F01EC1511116C24AC1DAD198F33F +:108040009923C9F35523B1F3951B550BBB27AA27D9 +:1080500062177307840738F09F5F5F4F220F331F4B +:10806000441FAA1FA9F333D00E2E3AF0E0E830D017 +:1080700091505040E695001CCAF729D0FE2F27D01A +:10808000660F771F881FBB1F261737074807AB07E8 +:10809000B0E809F0BB0B802DBF01FF2793585F4F5D +:1080A0002AF09E3F510568F0E4C0DDC15F3FECF36C +:1080B000983EDCF3869577956795B795F7959F5F22 +:1080C000C9F7880F911D9695879597F90895E1E076 +:1080D000660F771F881FBB1F621773078407BA07D5 +:1080E00020F0621B730B840BBA0BEE1F88F7E09530 +:1080F000089504D06894B111B6C1089582D188F072 +:108100009F5790F0B92F9927B751A0F0D1F0660F83 +:10811000771F881F991F1AF0BA95C9F712C0B1309E +:1081200081F0A0D1B1E008959DC1672F782F8827F5 +:10813000B85F39F0B93FCCF3869577956795B395DD +:10814000D9F73EF490958095709561957F4F8F4F4C +:108150009F4F0895E89409C097FB3EF49095809551 +:10816000709561957F4F8F4F9F4F9923A9F0F92FFD +:1081700096E9BB279395F695879577956795B7957B +:10818000F111F8CFFAF4BB0F11F460FF1BC06F5F61 +:108190007F4F8F4F9F4F16C0882311F096E911C073 +:1081A000772321F09EE8872F762F05C0662371F094 +:1081B00096E8862F70E060E02AF09A95660F771FA8 +:1081C000881FDAF7880F9695879597F9089533D128 +:1081D00080F09F3740F491110EF045C160E070E0EF +:1081E00080E89FEB089526F41B16611D711D811D0B +:1081F00046C060C0DF93CF931F930F938B01EC01B8 +:10820000E3E9F1E068D0D3D09801AE018B01EC0135 +:1082100060E070E080E89FE30CDEB6D29801AE012A +:108220000F911F91CF91DF9102C2990F0008550F56 +:10823000AA0BE0E8FEEF16161706E807F907C0F0EC +:1082400012161306E407F50798F0621B730B840BF4 +:10825000950B39F40A2661F0232B242B252B21F4CE +:1082600008950A2609F4A140A6958FEF811D811D6E +:10827000089597F99F6780E870E060E0089588238B +:1082800071F4772321F09850872B762F07C066234F +:1082900011F499270DC09051862B70E060E02AF010 +:1082A0009A95660F771F881FDAF7880F969587953E +:1082B00097F908959F3F31F0915020F48795779575 +:1082C0006795B795880F911D9695879597F90895AD +:1082D0009FEF80EC0895DF93CF931F930F93FF924E +:1082E000EF92DF927B018C01689405C0DA2EEF01DA +:1082F0009ED1FE01E894A591259135914591559126 +:10830000AEF3EF01A8DDFE019701A801DA9479F739 +:10831000DF90EF90FF900F911F91CF91DF91089523 +:108320009F938F937F936F93FF93EF939B01AC0188 +:1083300072D1EF91FF91CFDF2F913F914F915F91DC +:108340006AC100240A94161617061806090608952D +:1083500000240A9412161306140605060895B8CFD1 +:1083600050D0E8F3E894E0E0BB279F57F0F02AED07 +:108370003FE049EC06C0EE0FBB0F661F771F881F5A +:1083800028F0B23A62077307840728F0B25A620BEA +:10839000730B840BE3959A9572F7803830F49A95B5 +:1083A000BB0F661F771F881FD2F7904885CF092E15 +:1083B0000394000C11F4882352F0BB0F40F4BF2B40 +:1083C00011F460FF04C06F5F7F4F8F4F9F4F089580 +:1083D000EF93E0FF06C0A2EA2AED3FE049EC5FEB35 +:1083E0003ADDE5DF0F90039401FC9058EBEBF1E0F0 +:1083F00097CF57FD9058440F551F59F05F3F71F0CC +:108400004795880F97FB991F61F09F3F79F08795FB +:108410000895121613061406551FF2CF4695F1DF84 +:1084200008C0161617061806991FF1CF8695710514 +:10843000610508940895E5DFA0F0BEE7B91788F458 +:10844000BB279F3860F41616B11D672F782F882739 +:10845000985FF7CF869577956795B11D9395963977 +:10846000C8F30895E894BB2766277727CB0197F9CF +:108470000895DBDE08F48FEF089563DF19F068DFFD +:1084800009F026CFF6CEB901CA0114CF9F775F77E6 +:10849000B0DF98F39923B9F35523B9F3FF27951764 +:1084A00058F4E52FE91BED3070F75E3B10F0F1E476 +:1084B0001CC09034E0F40AC0E92FE51BED3028F72A +:1084C0009E3B10F0F1E411C0503488F4F9EA88239F +:1084D0002AF09A95660F771F881FDAF744232AF04F +:1084E0005A95220F331F441FDAF79F1B5F1BFF9320 +:1084F0001F930F93FF92EF9279018A01BB27AB2F55 +:108500009B01AC0196D09701A801BF937B018C0120 +:10851000AA27BA2FB901CA018CD0AF919701A8013F +:10852000EF90FF900F911F9196DC41DF2DD14F917D +:1085300040FF0895552747FD509509C09B01AC01A8 +:1085400060E070E080E89FE36CCD93CEB3CE59DF5E +:10855000E8F39923D9F3940F511DBBF39150504088 +:1085600094F059F0882332F0660F771F881F9150DE +:108570005040C1F79E3F510544F7880F911D9695D5 +:10858000879597F908955F3FACF0983E9CF0BB2724 +:10859000869577956795B79508F4B1609395C1F77F +:1085A000BB0F58F711F460FFE8CF6F5F7F4F8F4F1D +:1085B0009F4FE3CF58CF25DF58F19E5758F1985180 +:1085C000A0F0E9F0983020F5092E9927660F771F63 +:1085D000881F991F0A94D1F712C0062E672F782F93 +:1085E0008827985F11F4000C07C0993FB4F3869573 +:1085F000779567959395D9F7611D711D811D3EF49F +:1086000090958095709561957F4F8F4F9F4F0895FE +:10861000689429CF27CF0BD0CACE93DE28F098DEFE +:1086200018F0952309F025CE53CE11241CCFE1DE9E +:10863000A0F3959FD1F3950F50E0551F629FF00175 +:10864000729FBB27F00DB11D639FAA27F00DB11DCE +:10865000AA1F649F6627B00DA11D661F829F222757 +:10866000B00DA11D621F739FB00DA11D621F839FDE +:10867000A00D611D221F749F3327A00D611D231FB4 +:10868000849F600D211D822F762F6A2F11249F5702 +:1086900050408AF0E1F088234AF0EE0FFF1FBB1F25 +:1086A000661F771F881F91505040A9F79E3F5105C4 +:1086B00070F0DFCDD8CE5F3FECF3983EDCF38695CB +:1086C00077956795B795F795E7959F5FC1F7FE2B6F +:1086D000880F911D9695879597F90895FA01EE0FE9 +:1086E000FF1F30962105310599F16115710561F47F +:1086F0008038BFE39B0749F168949038810561F0A9 +:108700008038BFEF9B0741F0992342F5FF3FE10519 +:108710003105210511F1E8940894E795D901AA23C0 +:1087200029F4AB2FBE2FF85FD0F310C0FF5F70F4B9 +:10873000A695E0F7F73950F019F0FF3A38F49F7733 +:108740009F930CD00F9007FC905808953EF0C0CD39 +:1087500060E070E080E89FE308954FE79F775F93C4 +:108760004F933F932F9392D02F913F914F915F91D1 +:1087700052DF54C09F93F4DD0F9007FCEE5F28CECC +:1087800011F40EF4A5CD96CD3CDED0F39923D9F3A8 +:10879000CEF39F57550B87FF6DD00024A0E640EA2B +:1087A000900180585695979528F4805C660F771F46 +:1087B000881F20F026173707480730F4621B730B19 +:1087C000840B202931294A2BA6951794079420253C +:1087D00031254A2758F7660F771F881F20F0261784 +:1087E0003707480730F4620B730B840B200D311DE3 +:1087F000411DA09581F7B901842F9158880F969556 +:10880000879508959B01AC0106CF0FDD880B990B6E +:10881000089519F40EF02DCD25CE5ACDF2DDC8F312 +:108820009638C0F707F80F92E8942BE33AEA48EB42 +:108830005FE7FFDE0F920F920F924DB75EB70F9278 +:1088400065D0E9EDF1E047DD4F915F91EF91FF9148 +:10885000E595EE1FFF1F49F0FE57E0684427EE0F35 +:10886000441FFA95E1F74195550B71DE0F9007FE15 +:1088700065CE089591505040660F771F881FD2F73C +:1088800008950EF017CD24CD6894F3CCBADDC8F36B +:108890009923D1F3C6F3DF93CF931F930F93FF92E6 +:1088A000C92FDD2788232AF02197660F771F881F9D +:1088B000DAF720E030E040E85FEB9FE3883920F012 +:1088C000803E30F021968F77B5DAE1E0F2E003C028 +:1088D000B1DAEEE2F2E0FFDC8B01BE01EC01FB2E2F +:1088E0006F5771097595771F880B990B35DC28E157 +:1088F00032E741E35FE39BDEAF2D9801AE01FF90CD +:108900000F911F91CF91DF91A6DA51CDFA01DC01D1 +:10891000AA0FBB1F9B01AC01BF5728F422273327A6 +:10892000442750781FC0B75188F4AB2F00244695D8 +:1089300037952795011CA395D2F3002069F0220FEB +:10894000331F441FB395DAF30DD073CA613071053C +:10895000A0E88A07B94630F49B01AC016627772767 +:1089600088279078309621F0208331834283538387 +:108970000895DB018F939F9389D0BF91AF91A29F00 +:10898000800D911DA39F900DB29F900D112408950D +:1089900087FB082E062687FD819567FD61958AD0A5 +:1089A0000EF4919507FC81950895AA1BBB1B51E11C +:1089B00007C0AA1FBB1FA617B70710F0A61BB70B4F +:1089C000881F991F5A95A9F780959095BC01CD01F4 +:1089D000089597FB072E16F4009406D077FD08D073 +:1089E000E4DF07FC05D03EF4909581959F4F0895F4 +:1089F000709561957F4F0895A1E21A2EAA1BBB1BAB +:108A0000FD010DC0AA1FBB1FEE1FFF1FA217B3075A +:108A1000E407F50720F0A21BB30BE40BF50B661F70 +:108A2000771F881F991F1A9469F760957095809534 +:108A300090959B01AC01BD01CF010895052E97FBD8 +:108A400016F400940FD057FD05D0D6DF07FC02D0F6 +:108A500046F408C050954095309521953F4F4F4FB3 +:108A60005F4F089590958095709561957F4F8F4FDA +:108A70009F4F0895EE0FFF1F0590F491E02D19947C +:108A800025D0B7FF0895821B930B08951FD0A59F93 +:108A9000900DB49F900DA49F800D911D11240895F9 +:108AA000B7FFF4CFF3DF821B930B08950790F69185 +:108AB000E02D1994991B79E004C0991F961708F0CE +:108AC000961B881F7A95C9F780950895A29FB001DB +:108AD000B39FC001A39F700D811D1124911DB29FF2 +:108AE000700D811D1124911D08958F929F92AF9258 +:108AF000BF92CF92DF92EF92FF920F931F93CF938B +:108B0000DF938B016115710521F0DB018C931196C8 +:108B10009C93EC015E01BFEFAB1ABB0A7501C880E4 +:108B20008C2D90E07BD2892B11F0E501F3CFEDE2A3 +:108B3000CE1208C07E01F2E0EF0EF11CC980DD24E8 +:108B4000D39409C02BE2C21205C07E0142E0E40EBC +:108B5000F11CC980D12CE701219743E050E06CE57E +:108B600070EACE0184D2892BB9F4239645E050E017 +:108B700067E570EACE017BD2892B09F425960115B1 +:108B8000110519F0D801CD93DC93D11000C160E03C +:108B900070E080E89FE704C143E050E064E570EADC +:108BA000CE0165D2892B59F40115110509F4F4C0E1 +:108BB000B2E0EB0EF11CF801F182E082EDC0F701AA +:108BC00060E070E0CB01C0E0D0E07F01A0EDAA2E14 +:108BD000AC0C29E02A1528F14D2D4260B42E2D2D24 +:108BE0002870D2FE04C0211124C0219622C0211178 +:108BF0002197A5E0B0E09B01AC0148DF660F771F2D +:108C0000881F991F6A0D711D811D911D6839A9E981 +:108C10007A078A07A9E19A0760F0BD2DB660BB2EDE +:108C200008C02EEFA2120AC0D3FC50C04D2D4860E0 +:108C3000B42E3196D701CC90DB2CC7CF2C2D2F7DB5 +:108C4000253409F043C0A081AD3241F4BD2DB0619F +:108C5000DB2E7F0122E0E20EF11C0CC07F01AB3263 +:108C600031F04FEFE41AF40A21E030E006C0A2E050 +:108C7000EA0EF11CA18122E030E0A053AA3018F0E6 +:108C8000E21AF30A23C0F70120E030E02038BCE00C +:108C90003B075CF4A901440F551F440F551F240FD7 +:108CA000351F220F331F2A0F311DAF014F5F5F4F5A +:108CB0007A01A081A053AA3010F4FA01E7CFD4FEC4 +:108CC00003C0319521953109C20FD31FD1FE09C0D0 +:108CD0000115110531F0E1E0EE1AF108D801ED922D +:108CE000FC9238DA2D2D2370233019F04B015C01F2 +:108CF00006C04B015C01B7FAB094B7F8B09420E01D +:108D000030E0A901C501B40185D9882309F43CC02C +:108D1000D7FF06C0D195C195D10903E710EA02C07B +:108D20000BE810EA6801B8E1CB1AD10890E2E92E0D +:108D3000F12CCE15DF056CF0F801259135914591A8 +:108D40005491C501B40167DC4B015C01CE19DF0908 +:108D5000F0CF04501109F594E7940C151D0549F75F +:108D60008A2D880F8B2D881F8F3F41F020E030E047 +:108D7000A901C501B4014ED9811106C082E290E07B +:108D800090937C1880937B18C501B40109C060E002 +:108D900070E080E89FEF04C060E070E080EC9FE747 +:108DA000DF91CF911F910F91FF90EF90DF90CF90C7 +:108DB000BF90AF909F908F9008952F923F925F92B7 +:108DC0006F927F928F929F92AF92BF92CF92DF92DB +:108DD000EF92FF920F931F93CF93DF938B01EA01E2 +:108DE0006115710521F0DB018C9311969C932097FE +:108DF00039F09E01225031092332310508F0F8C0C4 +:108E00007C016701BFEFCB1ADB0A5601F7016080D6 +:108E1000862D90E003D1892B11F07601F2CFFDE28F +:108E20006F120AC0570182E0A80EB11CD70111963B +:108E30006C90772473940BC0BBE26B1207C0570190 +:108E4000E2E0AE0EB11CD70111966C90712CCE01F0 +:108E50008F7E892B89F4B0E36B1222C0F5018081EB +:108E60008F7D883541F56180F2E0AF0EB11C872D12 +:108E70008260782EC0E1D0E0C830D105F1F04CF42A +:108E8000C230D10511F5C12CD12CE12CB0E4FB2E60 +:108E90002EC0CA30D10531F0C031D10519F115C04D +:108EA000209751F7CAE0D0E0ACECCA2EDC2CEC2CB9 +:108EB000ACE0FA2E1CC02097F9F6C8E0D0E0C12C37 +:108EC000D12CE12CF0E1FF2E12C060E070E080E0D8 +:108ED00090E89E01442737FD4095542F8DDD6901B0 +:108EE0007A0105C0C12CD12CE12CE8E0FE2EF50161 +:108EF00060E020E030E0A9014E01AA2497FCA09494 +:108F0000BA2C1F0170ED572E560CA9E0A51570F470 +:108F10008FEB860D8A3118F499EC592E06C08FE933 +:108F2000860D8A3128F589EA582E560C852D90E059 +:108F30008C179D07ECF467FD17C0C216D306E40634 +:108F4000F50678F0C501B40114DD9B01AC01250DD7 +:108F5000311D411D511D213031054105B0E85B0730 +:108F600010F06FEF01C061E03196D1016C90C9CF74 +:108F7000872D81700115110571F0662329F0319755 +:108F8000D801ED93FC9307C071FE19C03297D80148 +:108F9000ED93FC9314C067FF12C0882329F020E0F2 +:108FA00030E040E050E804C02FEF3FEF4FEF5FE7C5 +:108FB00082E290E090937C1880937B1816C08823FF +:108FC00041F050954095309521953F4F4F4F5F4F61 +:108FD0000CC057FF0AC082E290E090937C18809307 +:108FE0007B182FEF3FEF4FEF5FE7B901CA0104C0D5 +:108FF00060E070E080E090E0DF91CF911F910F91F1 +:10900000FF90EF90DF90CF90BF90AF909F908F90A8 +:109010007F906F905F903F902F90089591118BC338 +:10902000803219F089508550D0F708959111089534 +:1090300081548A5108F4805E855A0895FB01DC0151 +:1090400002C005900D9241505040D8F70895FB01A1 +:10905000DC0105900D920020E1F70895FC010590D8 +:109060000020E9F7809590958E0F9F1F0895FB01D2 +:10907000DC014150504088F08D9181341CF08B35DB +:109080000CF4805E659161341CF06B350CF4605E0D +:10909000861B611171F3990B0895881BFCCFFB01AE +:1090A000DC014150504030F08D910590801919F449 +:1090B0000020B9F7881B990B0895FB01DC01415092 +:1090C000504048F005900D920020C9F701C01D9254 +:1090D00041505040E0F70895FB0155915523A9F008 +:1090E000BF01DC014D9145174111E1F759F4CD0164 +:1090F0000590002049F04D9140154111C9F3FB0145 +:109100004111EFCF81E090E001970895FB01DC0170 +:1091100004C08D910190801921F441505040C8F74E +:10912000881B990B0895FB01DC0102C001900D9290 +:1091300041505040D8F70895DC0101C06D93415073 +:109140005040E0F70895FB01DC018D9181341CF063 +:109150008B350CF4805E619161341CF06B350CF43E +:10916000605E861B611189F3990B0895FB01DC0198 +:109170000D900020E9F7119701900D920020E1F782 +:109180000895FC018191861721F08823D9F799274A +:1091900008953197CF010895FB01DC018D91019075 +:1091A00080190110D9F3990B0895FB01DC0101909E +:1091B0000D920020E1F70895FB01DC014150504081 +:1091C00030F08D910190801919F40020B9F7881BB7 +:1091D000990B0895FB01DC014150504048F001908B +:1091E0000D920020C9F701C01D9241505040E0F798 +:1091F0000895FB0151915523A9F0BF01DC014D9168 +:1092000045174111E1F759F4CD010190002049F0D3 +:109210004D9140154111C9F3FB014111EFCF81E0A0 +:1092200090E0019708950F931F93CF93DF93CDB7ED +:10923000DEB72E970FB6F894DEBF0FBECDBF0E89F6 +:109240001F8986E08C831A8309838FEF9FE79E83B3 +:109250008D83AE01465E5F4F688D798DCE0101969C +:109260003ED0EF81F885E00FF11F10822E960FB6E9 +:10927000F894DEBF0FBECDBFDF91CF911F910F914C +:1092800008950F931F93CF93DF93CDB7DEB72E973B +:109290000FB6F894DEBF0FBECDBF0E891F898EE0DA +:1092A0008C831A8309838FEF9FE79E838D83AE01A2 +:1092B000465E5F4F688D798DCE01019610D0EF81AB +:1092C000F885E00FF11F10822E960FB6F894DEBFDE +:1092D0000FBECDBFDF91CF911F910F9108952F92B7 +:1092E0003F924F925F926F927F928F929F92AF9236 +:1092F000BF92CF92DF92EF92FF920F931F93CF9383 +:10930000DF93CDB7DEB72C970FB6F894DEBF0FBE54 +:10931000CDBF7C016B018A01FC011782168283811B +:1093200081FFB0C1CE0101964C01F7019381F60196 +:1093300093FD859193FF81916F01882309F49EC16C +:10934000853239F493FD859193FF81916F018532C8 +:1093500021F4B70190E008D2E8CF512C312C20E065 +:109360002032A0F48B3269F030F4803259F083322D +:1093700069F420612CC08D3239F0803339F42160DA +:1093800026C02260246023C0286021C027FD27C09A +:1093900030ED380F3A3078F426FF06C0FAE05F9ED1 +:1093A000300D1124532E13C08AE0389E300D112445 +:1093B000332E20620CC08E3221F426FD5FC1206462 +:1093C00006C08C3611F4206802C0883641F4F601DC +:1093D00093FD859193FF81916F018111C1CF982FEA +:1093E0009F7D9554933028F40C5F1F4FFFE3F98362 +:1093F0000DC0833631F0833771F0833509F057C0E3 +:1094000021C0F801808189830E5F1F4F442443945B +:10941000512C540114C03801F2E06F0E711CF80198 +:10942000A080B18026FF03C0652D70E002C06FEF01 +:109430007FEFC5012C878DD12C0183012C852F77DF +:10944000222E16C03801F2E06F0E711CF801A080C8 +:10945000B18026FF03C0652D70E002C06FEF7FEF83 +:10946000C5012C876BD12C012C852068222E83010D +:1094700023FC19C0832D90E048165906A0F4B701CB +:1094800080E290E071D13A94F5CFF50127FC859107 +:1094900027FE81915F01B70190E066D131103A94C7 +:1094A000F1E04F1A51084114510479F7DEC08436B7 +:1094B00011F0893631F5F80127FF07C0608171810D +:1094C000828193810C5F1F4F08C060817181882762 +:1094D00077FD8095982F0E5F1F4F2F76B22E97FF46 +:1094E00009C090958095709561957F4F8F4F9F4FE4 +:1094F0002068B22E2AE030E0A40168D1A82EA81876 +:1095000043C0853729F42F7EB22E2AE030E025C0F3 +:10951000F22FF97FBF2E8F36C1F018F4883579F01D +:10952000ADC0803719F0883721F0A8C02F2F2061F7 +:10953000B22EB4FE0DC08B2D8460B82E09C024FF5E +:109540000AC09F2F9660B92E06C028E030E005C003 +:1095500020E130E002C020E132E0F801B7FE07C0B0 +:1095600060817181828193810C5F1F4F06C0608191 +:10957000718180E090E00E5F1F4FA40127D1A82EDB +:10958000A818FB2DFF77BF2EB6FE0BC02B2D2E7F0C +:10959000A51450F4B4FE0AC0B2FC08C02B2D2E7ED8 +:1095A00005C07A2C2B2D03C07A2C01C0752C24FF0A +:1095B0000DC0FE01EA0DF11D8081803311F4297E7A +:1095C00009C022FF06C07394739404C0822F86786A +:1095D00009F0739423FD12C020FF06C05A2C7314A7 +:1095E00018F4530C5718732C731460F4B70180E20D +:1095F00090E02C87B9D073942C85F6CF731410F4B7 +:10960000371801C0312C24FF11C0B70180E390E06E +:109610002C87AAD02C8522FF16C021FF03C088E525 +:1096200090E002C088E790E0B7010CC0822F8678F6 +:1096300051F021FD02C080E201C08BE227FD8DE2E6 +:10964000B70190E091D0A51430F4B70180E390E029 +:109650008BD05A94F8CFAA94F401EA0DF11D8081C1 +:10966000B70190E081D0A110F6CF332009F45DCE90 +:10967000B70180E290E078D03A94F7CFF701868185 +:10968000978102C08FEF9FEF2C960FB6F894DEBF44 +:109690000FBECDBFDF91CF911F910F91FF90EF9043 +:1096A000DF90CF90BF90AF909F908F907F906F9002 +:1096B0005F904F903F902F900895F999FECF92BD03 +:1096C00081BDF89A992780B50895A6E1B0E044E0FD +:1096D00050E0DCC0A8E1B0E042E050E0D7C0262F67 +:1096E000F999FECF92BD81BDF89A019700B4021698 +:1096F00039F01FBA20BD0FB6F894FA9AF99A0FBE46 +:1097000008950396272FECDFEADF252FE9DF242FCA +:10971000E7CF0196272FE4DFE2CF262FF999FECF7E +:109720001FBA92BD81BD20BD0FB6F894FA9AF99A7E +:109730000FBE01960895992788270895FC0105908A +:10974000615070400110D8F7809590958E0F9F1F43 +:109750000895FC016150704001900110D8F7809588 +:1097600090958E0F9F1F08950F931F93CF93DF93B4 +:10977000182F092FEB018B8181FD03C08FEF9FEF25 +:1097800020C082FF10C04E815F812C813D81421735 +:1097900053077CF4E881F9819F012F5F3F4F3983A4 +:1097A0002883108306C0E885F985812F1995892BB8 +:1097B00029F72E813F812F5F3F4F3F832E83812FDB +:1097C000902FDF91CF911F910F910895FA01AA2751 +:1097D000283051F1203181F1E8946F936E7F6E5FF4 +:1097E0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD0A2 +:1097F000670F781F891F9A1FA11D680F791F8A1F85 +:10980000911DA11D6A0F711D811D911DA11D20D0EB +:1098100009F468943F912AE0269F11243019305DA5 +:109820003193DEF6CF010895462F4770405D419396 +:10983000B3E00FD0C9F7F6CF462F4F70405D4A33E3 +:1098400018F0495D31FD4052419302D0A9F7EACFAB +:10985000B4E0A6959795879577956795BA95C9F7DA +:1098600000976105710508959B01AC010A2E0694CD +:109870005795479537952795BA95C9F7620F731F86 +:10988000841F951FA01D0895DC01CB01FC01F999EF +:10989000FECF06C0F2BDE1BDF89A319600B40D923C +:1098A00041505040B8F7089510EAC8E9D0EA00E006 +:1098B00005C022970109FE010BBFF8D8CA39D107AC +:0A98C00080E00807B1F7F894FFCF2D +:1098CA0000007D1880000160EA00000080BB4401AE +:1098DA0001000000410000344200005041000040F5 +:1098EA004000007A43000052430000524300000047 +:1098FA0000CDCC0CC09A99193E0000803F00004070 +:10990A0040640064006400640000803B4500803BC2 +:10991A0045000048440000000000000243FFFF0128 +:10992A00010101011C023E03F4010E013E03C201C2 +:10993A000E013E03C2010A01FF3FFF3FFF3F417E86 +:10994A00FF4411C8DB3EC3F56C420000803FB015EE +:10995A00C1432D18A63EB81EB341010260010100A1 +:10996A00005C4200005243011E00FF0000C8420092 +:10997A0000C8420000C843CD4C21430000FA43000E +:10998A0000FA43000040410000F04228230000286A +:10999A00230000F40100001027000000004000141A +:1099AA000054001010101010001F1511151F000090 +:1099BA000C12120C00000000040A0A0A0A11110E05 +:1099CA00040E1F041C0000000006191803130C00E3 +:1099DA00001C1F11111F00000004120912040000CC +:1099EA00000E1315110E00000000000000110A04F9 +:1099FA000000110A04110A0400000000A15BB8016A +:109A0A005052555341004D313132004D31313700FA +:109A1A0050696E670050524E00666E004E6F742099 +:109A2A00696E206661726D206D6F64652E006676C0 +:109A3A00004D32380046697200332E302E31322DF5 +:109A4A005243320052657600315F37356D6D5F4D96 +:109A5A004B322D52414D426F3133612D453344769D +:109A6A003666756C6C004C616E67004C7A00534523 +:109A7A005249414C204C4F570053455249414C20C2 +:109A8A004849474800426561740046520050727561 +:109A9A007361206933204D4B320020703A002069EF +:109AAA003A0020643A0020633A002E67636F000090 +:109ABA00000100250030001D000C001E00240031AA +:109ACA00001C000B00180023002F001B000A0017BF +:109ADA000047000400060022002B001A000300368B +:109AEA000037003500380058595A4500000000FB7D +:109AFA00C1B8012F006F70656E206661696C65647C +:109B0A002C2046696C653A20004E6F742070726989 +:109B1A006E74696E6700416E206572726F7220778B +:109B2A0068696C652077726974696E6720746F2042 +:109B3A0074686520534420436172642E0053442D97 +:109B4A005052494E54494E472020202020202020A0 +:109B5A00200066696E642062656420696E647563BC +:109B6A0074696F6E2073656E736F7220706F696EA1 +:109B7A007420787900496D70726F76652062656429 +:109B8A0020696E64756374696F6E2073656E736F96 +:109B9A007220706F696E74330035FA8E3B1F42096A +:109BAA003B504944204175746F74756E6520737417 +:109BBA0061727400504944204175746F74756E6502 +:109BCA00206661696C65642E204261642065787440 +:109BDA007275646572206E756D6265722E004F4BE8 +:109BEA00005B50524E3A005B5354303A005D5B536F +:109BFA0054423A005D5B4154303A005D5B41544245 +:109C0A003A003E004C616E67756167650053746186 +:109C1A0074697374696373005368697070696E67F5 +:109C2A00207072657000416C6C2044617461007B25 +:109C3A005B4552523A345D007B5B4552523A335D82 +:109C4A00007B5B4552523A325D007B5B4552523A89 +:109C5A00315D007B5B50524E3A355D007B007B5B89 +:109C6A0050524E3A305D5B50464E3A007B5B505242 +:109C7A004E3A395D007B5B50524E3A385D007B5B51 +:109C8A005245533A305D007B5B5245533A315D0091 +:109C9A007B5B50524E3A39395D005B5446553A0067 +:109CAA005D5B5043443A005D5B46454D3A005D5B5F +:109CBA00464E4D3A005D5B54494D3A005D5B46574E +:109CCA00523A005D7D004661726D206E6F005E0043 +:109CDA002F30000100206D6D007C002D2D2D2D2DC3 +:109CEA002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D00C7 +:109CFA00486F74656E6400426564004C6F61646904 +:109D0A006E672066696C616D656E74006D20006314 +:109D1A006D006820006B6D00680045787472756488 +:109D2A0065722000310034002020202020202020CD +:109D3A00202020202020202020202020005072696E +:109D4A006E74206F6B203F004D333031205000205D +:109D5A0049002044004D3330342050004731205A06 +:109D6A00004D3130392053004D31303420530047F3 +:109D7A00312058002059004D3330332045302053CC +:109D8A00004D33303320452D3120530025642F36C2 +:109D9A000000803B4500803B4500007A440000C833 +:109DAA00420D0A006E616E00696E66006F7666008B +:020000023000CC +:10E000000D9489F10D94B2F10D94B2F10D94B2F129 +:10E010000D94B2F10D94B2F10D94B2F10D94B2F1F0 +:10E020000D94B2F10D94B2F10D94B2F10D94B2F1E0 +:10E030000D94B2F10D94B2F10D94B2F10D94B2F1D0 +:10E040000D94B2F10D94B2F10D94B2F10D94B2F1C0 +:10E050000D94B2F10D94B2F10D94B2F10D94B2F1B0 +:10E060000D94B2F10D94B2F10D94B2F10D94B2F1A0 +:10E070000D94B2F10D94B2F10D94B2F10D94B2F190 +:10E080000D94B2F10D94B2F10D94B2F10D94B2F180 +:10E090000D94B2F10D94B2F10D94B2F10D94B2F170 +:10E0A0000D94B2F10D94B2F10D94B2F10D94B2F160 +:10E0B0000D94B2F10D94B2F10D94B2F10D94B2F150 +:10E0C0000D94B2F10D94B2F10D94B2F10D94B2F140 +:10E0D0000D94B2F10D94B2F10D94B2F10D94B2F130 +:10E0E0000D94B2F141546D656761323536300041AF +:10E0F000726475696E6F206578706C6F72657220DE +:10E1000073746B3530305632206279204D4C530099 +:10E11000426F6F746C6F616465723E004875683F52 +:10E1200000436F6D70696C6564206F6E203D200048 +:10E130004350552054797065202020203D20005FF9 +:10E140005F4156525F415243485F5F3D2000415658 +:10E1500052204C696243205665723D20004743437C +:10E160002056657273696F6E203D20004350552024 +:10E1700049442020202020203D20004C6F7720663D +:10E18000757365202020203D20004869676820665F +:10E190007573652020203D200045787420667573D6 +:10E1A00065202020203D20004C6F636B2066757336 +:10E1B000652020203D20004D617220203720323024 +:10E1C000313300312E362E3800342E332E350056A2 +:10E1D00023202020414444522020206F7020636F70 +:10E1E00064652020202020696E73747275637469E1 +:10E1F0006F6E2061646472202020496E74657272B3 +:10E20000757074006E6F20766563746F7200726A49 +:10E210006D702020006A6D70200057686174207056 +:10E220006F72743A00506F7274206E6F7420737541 +:10E2300070706F72746564004D7573742062652030 +:10E2400061206C6574746572002000577269747483 +:10E25000696E672045450052656164696E672045B7 +:10E26000450045452065727220636E743D00504F35 +:10E27000525400303D5A65726F2061646472003FF1 +:10E280003D43505520737461747300403D454550C3 +:10E29000524F4D207465737400423D426C696E6B41 +:10E2A000204C454400453D44756D70204545505215 +:10E2B0004F4D00463D44756D7020464C415348001B +:10E2C000483D48656C70004C3D4C69737420492F83 +:10E2D0004F20506F72747300513D51756974005234 +:10E2E0003D44756D702052414D00563D73686F7707 +:10E2F00020696E7465727275707420566563746FF0 +:10E30000727300593D506F727420626C696E6B00BD +:10E310002A0011241FBECFEFD1E2DEBFCDBF01E046 +:10E320000CBF12E0A0E0B2E0EEE1FDEF03E00BBFB6 +:10E3300002C007900D92A030B107D9F712E0A0E01B +:10E34000B2E001C01D92AE30B107E1F70F9460F367 +:10E350000D948DFE01E20EBF0FEF0DBF11241FBE05 +:10E360000D9460F30D9400F020E030E040ED57E0B4 +:10E3700005C0FA013197F1F72F5F3F4F2817390792 +:10E38000C0F308959C01260F311DC901A0E0B0E043 +:10E390002F5F3F4FABBFFC018791882361F08093D3 +:10E3A000C6008091C00086FFFCCF8091C0008064D1 +:10E3B0008093C000EACF08958DE08093C6008091DD +:10E3C000C00086FFFCCF8091C00080648093C000B5 +:10E3D0008AE08093C6008091C00086FFFCCF8091C8 +:10E3E000C00080648093C00008950F94C2F10F9420 +:10E3F000DCF10895FC019081992359F09093C600B7 +:10E400008091C00086FFFCCF8091C0008064809323 +:10E41000C0003196992379F70895282F982F929567 +:10E420009F70892F805D8A3308F0895F8093C600D2 +:10E430008091C00086FFFCCF8091C00080648093F3 +:10E44000C000822F8F70982F905D9A3308F0995FEB +:10E450009093C6008091C00086FFFCCF8091C000E1 +:10E4600080648093C00008959C01FB01853691056E +:10E470001CF46330710594F0C90164E670E00F94F8 +:10E480002EFE605D7F4F6093C6008091C00086FFC6 +:10E49000FCCF8091C00080648093C0002B30310598 +:10E4A00014F43297B4F0C90164E670E00F942EFEC4 +:10E4B0006AE070E00F942EFE605D7F4F6093C600AF +:10E4C0008091C00086FFFCCF8091C0008064809363 +:10E4D000C000C9016AE070E00F942EFEC0968093E0 +:10E4E000C6008091C00086FFFCCF8091C000806490 +:10E4F0008093C00008951F93182F8EE692EE60E07F +:10E500000F94C2F11093C6008091C00086FFFCCF2B +:10E510008091C00080648093C0000F94DCF11F9153 +:10E5200008952F923F924F925F926F927F928F92B7 +:10E530009F92AF92BF92CF92DF92EF92FF920F9392 +:10E540001F93DF93CF93CDB7DEB762970FB6F894E2 +:10E55000DEBF0FBECDBF382E622ECA01DB015C01CB +:10E560006D01772420E2222E2E010894411C511CBB +:10E570008BC081E0A81680E0B80681E0C80680E084 +:10E58000D80628F0C601AA27BB270F940DF2BB2797 +:10E59000AD2D9C2D8B2D0F940DF28A2D0F940DF225 +:10E5A0002092C6008091C00086FFFCCF8091C00001 +:10E5B00080648093C0009DE29093C6008091C0006B +:10E5C00086FFFCCF8091C00080648093C0002092C1 +:10E5D000C6008091C00086FFFCCF8091C00080649F +:10E5E0008093C00019828601750188249924A1E0D6 +:10E5F0003A1651F03A1620F0B2E03B1661F409C029 +:10E600000BBFF701779007C0C7010F9477FE782EF4 +:10E6100002C0F7017080872D0F940DF22092C60082 +:10E620008091C00086FFFCCF8091C0008064809301 +:10E63000C000872D8052F401EF70F0708F3520F408 +:10E64000E40DF51D708204C0E40DF51D8EE280839B +:10E650000894E11CF11C011D111D0894811C911CE2 +:10E6600090E18916910409F0C2CF80E190E0A0E02A +:10E67000B0E0A80EB91ECA1EDB1E198AC2010F9493 +:10E68000FAF10F94DCF16A94662009F072CF629679 +:10E690000FB6F894DEBF0FBECDBFCF91DF911F91B3 +:10E6A0000F91FF90EF90DF90CF90BF90AF909F9031 +:10E6B0008F907F906F905F904F903F902F90089534 +:10E6C0002F923F924F925F926F927F928F929F9282 +:10E6D000AF92BF92CF92DF92EF92FF920F931F9370 +:10E6E000DF93CF93CDB7DEB7CD53D1400FB6F894BB +:10E6F000DEBF0FBECDBF01E20EBF0FEF0DBF94B75F +:10E70000F894A89514BE80916000886180936000A1 +:10E7100010926000789493FF05C0E0910002F091A0 +:10E7200001021995279A2F9A8091C00082608093E8 +:10E73000C00080E18093C40088E18093C1000000A4 +:10E74000EE24FF24870144E0A42EB12CCC24DD2448 +:10E7500024C0C5010197F1F70894E11CF11C011DCB +:10E76000111D21E2E2162EE4F20620E0020720E06D +:10E77000120718F031E0C32ED12CC801B70127ECE5 +:10E780003BE140E050E00F9441FE611571058105C9 +:10E79000910519F485B1805885B98091C00087FD35 +:10E7A00003C0C114D104A9F2A6014F5F5F4FC25E3E +:10E7B000DE4F59834883CE51D140C25EDE4F8881FF +:10E7C0009981CE51D140019711F00D9410FEC05D9A +:10E7D000DE4F19821882C053D14060E0C15DDE4F28 +:10E7E0001882CF52D14088249924C35DDE4F19820C +:10E7F0001882CD52D140C05EDE4F188219821A8233 +:10E800001B82C052D140CE5CDE4F188219821A8220 +:10E810001B82C253D140EE24FF2487010BBFF701B6 +:10E8200007911691C45CDE4F19830883CC53D14005 +:10E830000D940BFEC25EDE4F28813981CE51D1404E +:10E840002130310509F52091C600C25EDE4F1982E4 +:10E850001882CE51D14022C02F5F3F4F4F4F5F4FA4 +:10E86000213082E138078AE7480780E0580780F0C6 +:10E87000C45CDE4FE881F981CC53D140EF5FFF4F9C +:10E8800019F0EE27FF27099420E030E040E050E047 +:10E890008091C00087FFE0CF2091C600C35DDE4FAE +:10E8A00048815981CD52D1404F5F5F4FC35DDE4FEC +:10E8B00059834883CD52D140213209F063C64A3092 +:10E8C000510508F05FC60894811C911C53E0851621 +:10E8D000910409F059C600E010E018C081E280936D +:10E8E000C6008091C00086FFFCCF8091C00080648C +:10E8F0008093C0002F5F3F4F2931310579F70F9486 +:10E90000DCF10F5F1F4F0530110519F020E030E0FA +:10E91000E5CF10920A0210920B0210920C02109294 +:10E920000D02109206021092070210920802109235 +:10E930000902109202021092030210920402109235 +:10E9400005028FEE90EE60E00F94F5F180E191EE1C +:10E9500060E00F94C2F18091C00087FFFCCF9091DE +:10E96000C600903608F09F759032B8F09093C600BC +:10E970008091C00086FFFCCF8091C00080648093AE +:10E98000C000A0E2A093C6008091C00086FFFCCF2B +:10E990008091C00080648093C000983409F4D7C18E +:10E9A0009934B8F4923409F459C1933458F490333B +:10E9B00019F1903308F4E3C59F33A1F1903409F0C5 +:10E9C000DEC5BDC0953409F470C1963409F0D7C5D1 +:10E9D00098C1923509F42BC2933538F49C3409F46C +:10E9E000F5C1913509F0CBC518C2963509F445C279 +:10E9F000993509F0C4C567C483E792EE62E00F94CD +:10EA0000F5F110920602109207021092080210927D +:10EA1000090210920A0210920B0210920C0210923C +:10EA20000D0213C18FE792EE62E00F94F5F18FEEC5 +:10EA300090EE60E00F94F5F181E291EE60E00F94CA +:10EA4000C2F187EB91EE60E00F94F5F180E391EE77 +:10EA500060E00F94C2F184EE90EE60E00F94F5F167 +:10EA60008FE391EE60E00F94C2F186E090E061E008 +:10EA700070E00F9434F20F94DCF18DE591EE60E0DC +:10EA80000F94C2F189EC91EE60E00F94F5F18EE401 +:10EA900091EE60E00F94C2F183EC91EE60E00F9490 +:10EAA000F5F18CE691EE60E00F94C2F18EE10F94E7 +:10EAB0000DF288E90F940DF281E00F940DF20F949E +:10EAC000DCF18BE791EE60E00F94C2F119E0E0E039 +:10EAD000F0E010935700E4918E2F0F940DF20F94F5 +:10EAE000DCF18AE891EE60E00F94C2F1E3E0F0E03F +:10EAF00010935700E4918E2F0F940DF20F94DCF1D8 +:10EB000089E991EE60E00F94C2F1E2E0F0E0109349 +:10EB10005700E4918E2F0F940DF20F94DCF188EAE8 +:10EB200091EE60E00F94C2F1E1E0F0E01093570045 +:10EB30001491812F0F940DF20F94DCF107CF8BE825 +:10EB400092EE62E00F94F5F18BE492EE60E00F94A8 +:10EB5000F5F10F94DCF100E010E019C0C8016F2D51 +:10EB60000F947FFEFF2031F489E492EE60E00F9471 +:10EB7000C2F10BC0F092C6008091C00086FFFCCFAE +:10EB80008091C00080648093C0000F5F1F4FC80158 +:10EB900081519F41A0E0B0E0ABBFFC01F790BAE229 +:10EBA000FB1621F0E2E000301E07C1F60F94DCF105 +:10EBB0000F94DCF187E592EE60E00F94F5F10F948D +:10EBC000DCF1CC24DD2400E010E01EC0C8010F946D +:10EBD00077FEF82E882331F489E492EE60E00F94FA +:10EBE000C2F10BC08093C6008091C00086FFFCCFAD +:10EBF0008091C00080648093C000FE1419F00894D6 +:10EC0000C11CD11C0F5F1F4FC80181519F41A0E063 +:10EC1000B0E0ABBFFC01E790FAE2EF1621F022E092 +:10EC20000030120799F60F94DCF10F94DCF182E6C4 +:10EC300092EE60E00F94C2F1C60161E070E00F94C3 +:10EC400034F20F94DCF10F94DCF110920202109276 +:10EC50000302109204021092050278CE89E992EE26 +:10EC600062E00F94F5F1279A2F9A16C02F9880E052 +:10EC700090E0E0EDF7E03197F1F7019684369105E9 +:10EC8000C1F72F9A80E090E0E0EDF7E03197F1F7DF +:10EC9000019684369105C1F78091C00087FFE6CFC9 +:10ECA0008091C00087FFFCCF64C485EA92EE62E0E9 +:10ECB0000F94F5F140910202509103026091040219 +:10ECC0007091050281E020E10F9491F2809102029F +:10ECD00090910302A0910402B091050280509F4FD1 +:10ECE000AF4FBF4F8093020290930302A0930402A0 +:10ECF000B093050280509041A040B04008F426CE69 +:10ED0000A4CF83EB92EE62E00F94F5F140910602FE +:10ED100050910702609108027091090280E020E1A1 +:10ED20000F9491F28091060290910702A09108023F +:10ED3000B091090280509F4FAF4FBF4F80930602A2 +:10ED400090930702A0930802B0930902FFCD80ECD4 +:10ED500092EE62E00F94F5F183E792EE60E00F949B +:10ED6000F5F18FE792EE60E00F94F5F18BE892EE0B +:10ED700060E00F94F5F189E992EE60E00F94F5F10F +:10ED800085EA92EE60E00F94F5F183EB92EE60E09D +:10ED90000F94F5F180EC92EE60E00F94F5F187ECC2 +:10EDA00092EE60E00F94F5F188ED92EE60E00F9442 +:10EDB000F5F18FED92EE60E00F94F5F18AEE92EEB0 +:10EDC00060E00F94F5F183E093EEBDCD87EC92EE19 +:10EDD00062E00F94F5F181E40F947BF282E40F94EA +:10EDE0007BF283E40F947BF284E40F947BF285E45E +:10EDF0000F947BF286E40F947BF287E40F947BF20E +:10EE000088E40F947BF28AE40F947BF28BE40F94F6 +:10EE10007BF28CE40F947BF299CD88ED92EE62E068 +:10EE20000F94F5F1772473948824992409C48FED05 +:10EE300092EE62E00F94F5F140910A0250910B02BC +:10EE400060910C0270910D0282E020E10F9491F22A +:10EE500080910A0290910B02A0910C02B0910D02D8 +:10EE600080509F4FAF4FBF4F80930A0290930B0289 +:10EE7000A0930C02B0930D0269CD8AEE92EE62E08F +:10EE80000F94F5F184EE90EE60E00F94F5F18FECC5 +:10EE900091EE60E00F94F5F1662477244301CC5D98 +:10EEA000DE4F19821882C452D140D401C301B695F5 +:10EEB000A79597958795CA5DDE4F88839983AA8326 +:10EEC000BB83C652D140CC5DDE4FA881B981C4520C +:10EED000D1401196CC5DDE4FB983A883C452D14096 +:10EEE000CD0162E070E00F9434F2B0E2B093C6005E +:10EEF0008091C00086FFFCCF8091C0008064809329 +:10EF0000C000EDE2E093C6008091C00086FFFCCF18 +:10EF10008091C00080648093C000F0E2F093C6004E +:10EF20008091C00086FFFCCF8091C00080648093F8 +:10EF3000C000CA5DDE4FE880F9800A811B81C6529D +:10EF4000D140BB27A12F902F8F2D0F940DF2CA5DBA +:10EF5000DE4F8881C652D1400F940DF2B0E2FB2EF5 +:10EF6000F092C6008091C00086FFFCCF8091C00067 +:10EF700080648093C0000DE30093C6008091C000C0 +:10EF800086FFFCCF8091C00080648093C00010E2B7 +:10EF90001093C6008091C00086FFFCCF8091C00016 +:10EFA00080648093C0008BBEF3012791C65DDE4F65 +:10EFB0002883CA52D140A22EBB24CC24DD2408943D +:10EFC000611C711C811C911C8BBEF3018791282E42 +:10EFD0003324442455240894611C711C811C911C09 +:10EFE0008BBEF3013791C55DDE4F3883CB52D140E4 +:10EFF0000894611C711C811C911C8BBEF30147910C +:10F00000C45DDE4F4883CC52D140ADEFEA2EAFEF66 +:10F01000FA2EAFEF0A2FAFEF1A2F6E0C7F1C801E57 +:10F02000911E142D032DF22CEE24EA0CFB1C0C1D5A +:10F030001D1D0F940DF220E22093C6008091C000A8 +:10F0400086FFFCCF8091C00080648093C000C65DC5 +:10F05000DE4F8881CA52D1400F940DF230E23093D6 +:10F06000C6008091C00086FFFCCF8091C000806404 +:10F070008093C000C45DDE4F8881CC52D1400F9494 +:10F080000DF240E24093C6008091C00086FFFCCFA5 +:10F090008091C00080648093C000C55DDE4F888190 +:10F0A000CB52D1400F940DF250E25093C6008091A4 +:10F0B000C00086FFFCCF8091C00080648093C000B8 +:10F0C0008FEFE8168FEFF80680E0080780E018075A +:10F0D00031F484E092EE60E00F94C2F1DFC0D80119 +:10F0E000C7018070907CA070B0708050904CA040A0 +:10F0F000B040D1F52FEF3FE340E050E0E222F322B1 +:10F1000004231523CA5DDE4FA880B980CA80DB8046 +:10F11000C652D140AE0CBF1CC01ED11EAA0CBB1CD7 +:10F12000CC1CDD1C8EE092EE60E00F94C2F1BB2798 +:10F13000A12F902F8F2D0F940DF28E2D0F940DF285 +:10F1400030E23093C6008091C00086FFFCCF8091F2 +:10F15000C00080648093C0004EE34093C60080915D +:10F16000C00086FFFCCF87C08EE09EEFA0E0B0E03D +:10F17000E822F9220A231B239CE0E91694E9F90608 +:10F1800090E0090790E0190709F088C0C45DDE4FE0 +:10F19000A881CC52D140EA2EFF2400E010E0102FCD +:10F1A0000F2DFE2CEE24C55DDE4FB881CB52D14031 +:10F1B000EB0EF11C011D111DD601C501817090706F +:10F1C000A070B070DC0199278827E80EF91E0A1F8D +:10F1D0001B1F20EF30E040E050E0A222B322C42207 +:10F1E000D52241E1AA0CBB1CCC1CDD1C4A95D1F7F1 +:10F1F000EA0CFB1C0C1D1D1D81E090E0A0E0B0E0BE +:10F20000282239224A225B2235E1220C331C441C7D +:10F21000551C3A95D1F7E20CF31C041D151D57013E +:10F220006801AA0CBB1CCC1CDD1C85E192EE60E0E1 +:10F230000F94C2F1C801AA27BB270F940DF2BB2778 +:10F24000A12F902F8F2D0F940DF28E2D0F940DF274 +:10F2500090E29093C6008091C00086FFFCCF809121 +:10F26000C00080648093C000AEE3A093C60080918C +:10F27000C00086FFFCCF8091C00080648093C000F6 +:10F28000C601AA27BB270F940DF2BB27AD2D9C2DDD +:10F290008B2D0F940DF28A2D0F940DF20F94DCF14B +:10F2A000CC5DDE4FE881F981C452D140F99709F471 +:10F2B0004DCBF4E0EF2EF12C012D112D6E0C7F1CA7 +:10F2C000801E911EF2CD83E093EE62E00F94F5F183 +:10F2D0008AE192EE60E00F94C2F18091C00087FF56 +:10F2E000FCCF1091C6001F751093C6008091C0001E +:10F2F00086FFFCCF8091C00080648093C0000F9493 +:10F30000DCF1812F81548A3108F036C1163409F4BA +:10F3100095C0173490F4133409F44EC0143430F40B +:10F320001134F1F0123409F01DC130C0143409F465 +:10F3300059C0153409F016C16BC01A3409F4C4C0A1 +:10F340001B3438F4173409F48FC0183409F00AC19B +:10F35000A1C01B3409F4D2C01C3409F003C1E8C0B9 +:10F360008FEF81B90DC082B1809582B980E090E0C5 +:10F37000E0EDF7E03197F1F70196883C9105C1F790 +:10F380008091C00087FFEFCF12B8EFC08FEF84B934 +:10F390000DC085B1809585B980E090E0E0EDF7E0A3 +:10F3A0003197F1F70196883C9105C1F78091C00033 +:10F3B00087FFEFCF15B8D9C08FEF87B90DC088B1DF +:10F3C000809588B980E090E0E0EDF7E03197F1F7C3 +:10F3D0000196883C9105C1F78091C00087FFEFCF6F +:10F3E00018B8C3C08FEF8AB90DC08BB180958BB9A7 +:10F3F00080E090E0E0EDF7E03197F1F70196883C8E +:10F400009105C1F78091C00087FFEFCF1BB8ADC059 +:10F410008FEF8DB90DC08EB180958EB980E090E0F0 +:10F42000E0EDF7E03197F1F70196883C9105C1F7DF +:10F430008091C00087FFEFCF1EB897C08FEF80BBD1 +:10F440000DC081B3809581BB80E090E0E0EDF7E0F6 +:10F450003197F1F70196883C9105C1F78091C00082 +:10F4600087FFEFCF11BA81C08FEF83BB0DC084B38C +:10F47000809584BB80E090E0E0EDF7E03197F1F714 +:10F480000196883C9105C1F78091C00087FFEFCFBE +:10F4900014BA6BC08FEF809301010FC080910201FD +:10F4A00080958093020180E090E0E0EDF7E03197F5 +:10F4B000F1F70196883C9105C1F78091C00087FF64 +:10F4C000EDCF1092020151C08FEF809304010FC065 +:10F4D0008091050180958093050180E090E0E0ED4A +:10F4E000F7E03197F1F70196883C9105C1F78091DB +:10F4F000C00087FFEDCF1092050137C08FEF8093DA +:10F5000007010FC08091080180958093080180E079 +:10F5100090E0E0EDF7E03197F1F70196883C910536 +:10F52000C1F78091C00087FFEDCF109208011DC088 +:10F530008FEF80930A010FC080910B01809580931B +:10F540000B0180E090E0E0EDF7E03197F1F70196F4 +:10F55000883C9105C1F78091C00087FFEDCF1092E4 +:10F560000B0103C085E292EEEEC98091C00087FFD7 +:10F57000FCCF8091C600EAC988E392EEE4C98CE131 +:10F5800091EEE1C988249924933011F1943028F444 +:10F59000913089F09230B8F408C0953061F195301F +:10F5A000F0F0963009F048C043C02B3109F042C951 +:10F5B00091E06BE13FC96227C15DDE4F2883CF52E6 +:10F5C000D14092E037C9B22FA0E0622793E032C960 +:10F5D000822F90E0A82BB92B622794E02BC92E3004 +:10F5E00009F039C3622795E0C05DDE4F19821882A9 +:10F5F000C053D1401FC9E1E0F0E0EC0FFD1FC05D3A +:10F60000DE4F08811981C053D140E00FF11F2083E4 +:10F610000F5F1F4FC05DDE4F19830883C053D14079 +:10F6200062270A171B0709F005C9D80196E002C92D +:10F63000261709F010C303C0973009F0FBC87724E0 +:10F640009981933109F412C19431C8F4963009F4C8 +:10F65000D8C0973050F4923009F406C1933009F4C1 +:10F660006DC0913009F059C253C0913109F477C08F +:10F67000923108F0BBC0903109F04FC2F5C098310B +:10F6800009F487C0993150F4953109F4EFC09531F0 +:10F6900008F4C6C1963109F040C2C2C19A3109F4DA +:10F6A0006CC09A3108F491C09B3109F45BC09D3164 +:10F6B00009F033C29D81903359F48F81882311F46E +:10F6C0009EE11CC0813011F091E018C098E916C08D +:10F6D000892F807591F0903539F4E0E0F0E089E011 +:10F6E0008093570094910AC0983539F4E3E0F0E034 +:10F6F00089E080935700949101C090E01A821B82A8 +:10F700008D818C831D829E831F8227E030E009C299 +:10F710001A8288E08B8381E48C8386E58D8382E581 +:10F720008E8389E48F8383E5888780E589878FE5E9 +:10F730008A8782E38B872BE030E0F3C18A818139AD +:10F7400041F0823941F0803911F48FE005C080E04A +:10F7500003C082E001C08AE01A828B8344C0772410 +:10F76000739482C08D81882311F48EE12CC0813086 +:10F7700011F081E028C088E926C01A82E1E0F0E0BB +:10F7800089E08093570084918B831C8224E030E0D1 +:10F79000C8C18B81803589F48C81883039F4E2E0EE +:10F7A000F0E089E08093570084910DC0E0E0F0E044 +:10F7B00089E080935700849106C0E3E0F0E089E09F +:10F7C0008093570084911A82DFCF8D81836C99E0FA +:10F7D000E1E0F0E0082E90935700E89507B600FCB2 +:10F7E000FDCF1A821B8223E030E09BC180EC8A832C +:10F7F000CE5CDE4F188219821A821B82C253D1401E +:10F800008EC18A8190E0A0E0B0E0582F44273327D2 +:10F8100022278B8190E0A0E0B0E0DC0199278827C7 +:10F82000282B392B4A2B5B2B8D8190E0A0E0B0E098 +:10F83000282B392B4A2B5B2B8C8190E0A0E0B0E089 +:10F84000BA2FA92F982F8827282B392B4A2B5B2BCF +:10F85000220F331F441F551FC05EDE4F288339839C +:10F860004A835B83C052D1401A8259C13A81C95C34 +:10F87000DE4F3883C753D140CA5CDE4F1882C6536F +:10F88000D1408B81C82EDD24CA5CDE4F488159816E +:10F89000C653D140C42AD52A933109F082C0CE5C28 +:10F8A000DE4F88819981AA81BB81C253D1408050AB +:10F8B000904CA340B04030F583E0CE5CDE4FE88052 +:10F8C000F9800A811B81C253D140F70100935B008C +:10F8D00080935700E89507B600FCFDCFCE5CDE4F65 +:10F8E000088119812A813B81C253D14000501F4FAA +:10F8F0002F4F3F4FCE5CDE4F088319832A833B8313 +:10F90000C253D140C05EDE4F488159816A817B81FC +:10F91000C052D140DE011B9631E08C9111962C91A2 +:10F9200011971296C75CDE4F2883C953D140C85C3B +:10F93000DE4F1882C853D14090E0C85CDE4FE881AA +:10F94000F981C853D1408E2B9F2B0C01FA01609393 +:10F950005B0030935700E89511244E5F5F4F6F4F67 +:10F960007F4F0EEFE02E0FEFF02ECE0CDF1CC114F8 +:10F97000D10499F685E0C05EDE4F088119812A81A5 +:10F980003B81C052D140F80120935B008093570027 +:10F99000E89507B600FCFDCF81E180935700E8951C +:10F9A00035C0C05EDE4F88819981AA81BB81C0527B +:10F9B000D140B695A795979587957C018601ABE0D8 +:10F9C000AA2EB12CAC0EBD1E0BC0D5016D915D01F0 +:10F9D000C7010F947FFE0894E11CF11C01501040F8 +:10F9E0000115110591F7A60160E070E0440F551F65 +:10F9F000661F771FC05EDE4FE880F9800A811B8199 +:10FA0000C052D1404E0D5F1D601F711F1A82C05E33 +:10FA1000DE4F488359836A837B83C052D1407FC0C5 +:10FA2000FA80C55CDE4FF882CB53D140C65CDE4F16 +:10FA30001882CA53D1408B81C82EDD24C65CDE4FAC +:10FA400008811981CA53D140C02AD12A1A828981DA +:10FA5000BE016D5F7F4F843121F59601C05EDE4FA0 +:10FA6000E880F9800A811B81C052D1400BBFF701A9 +:10FA700087919691DB018C9311969C936E5F7F4FDB +:10FA8000D801C7010296A11DB11DC05EDE4F88835B +:10FA90009983AA83BB83C052D14022503040F1F6F3 +:10FAA00036C0C05EDE4F288139814A815B81C052F9 +:10FAB000D1400894C108D108760100E010E0089414 +:10FAC000C11CD11C0894E11CF11C011D111DE20E8A +:10FAD000F31E041F151F21BDBB27A52F942F832FB5 +:10FAE00082BD2F5F3F4F4F4F5F4FF89A80B5DB01CC +:10FAF0008D93BD012E153F054007510761F7C05E8C +:10FB0000DE4F288339834A835B83C052D1409601FC +:10FB10002D5F3F4FFB01108204C080EC8A8322E0FE +:10FB200030E08BE18093C6008091C00086FFFCCF5F +:10FB30008091C00080648093C000C15DDE4FF88179 +:10FB4000CF52D140F093C6008091C00086FFFCCF19 +:10FB50008091C00080648093C000432F3093C60022 +:10FB60008091C00086FFFCCF8091C00080648093AC +:10FB7000C000922F2093C6008091C00086FFFCCF6A +:10FB80008091C00080648093C0008EE08093C600A6 +:10FB90008091C00086FFFCCF8091C000806480937C +:10FBA000C00065E1C15DDE4FE880CF52D1406E25D7 +:10FBB00069276427FE01319610C090819093C6009A +:10FBC0008091C00086FFFCCF31968091C000806498 +:10FBD0008093C0006927215030402115310569F715 +:10FBE0006093C6008091C00086FFFCCF8091C0006A +:10FBF00080648093C00085B1805885B9772081F4F6 +:10FC0000C15DDE4F0881CF52D1400F5FC15DDE4F35 +:10FC10000883CF52D14090E0A0E0B0E00D941AF4F8 +:10FC200027982F9880E090E020ED37E0F901319798 +:10FC3000F1F7019684369105C9F700008091C00064 +:10FC40008D7F8093C00081E180935700E895EE2777 +:10FC5000FF270994FFCF90E00D941AF497FB092E2B +:10FC600007260AD077FD04D02ED006D000201AF443 +:10FC7000709561957F4F0895F6F7909581959F4F08 +:10FC80000895A1E21A2EAA1BBB1BFD010DC0AA1FDD +:10FC9000BB1FEE1FFF1FA217B307E407F50720F0F5 +:10FCA000A21BB30BE40BF50B661F771F881F991F70 +:10FCB0001A9469F760957095809590959B01AC01B9 +:10FCC000BD01CF010895AA1BBB1B51E107C0AA1FAC +:10FCD000BB1FA617B70710F0A61BB70B881F991FED +:10FCE0005A95A9F780959095BC01CD010895F99991 +:10FCF000FECF92BD81BDF89A992780B50895262F31 +:10FD0000F999FECF1FBA92BD81BD20BD0FB6F89400 +:0EFD1000FA9AF99A0FBE01960895F894FFCF63 +:040000033000E000E9 +:00000001FF diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index e17768518..32d2df74f 100644 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -1,351 +1,355 @@ -// Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware. -// License: GPL - -#ifndef MARLIN_H -#define MARLIN_H - -#define FORCE_INLINE __attribute__((always_inline)) inline - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -#include "fastio.h" -#include "Configuration.h" -#include "pins.h" - -#ifndef AT90USB -#define HardwareSerial_h // trick to disable the standard HWserial -#endif - -#if (ARDUINO >= 100) -# include "Arduino.h" -#else -# include "WProgram.h" -#endif - -// Arduino < 1.0.0 does not define this, so we need to do it ourselves -#ifndef analogInputToDigitalPin -# define analogInputToDigitalPin(p) ((p) + A0) -#endif - -#ifdef AT90USB -#include "HardwareSerial.h" -#endif - -#include "MarlinSerial.h" - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#include "WString.h" - -#ifdef AT90USB - #ifdef BTENABLED - #define MYSERIAL bt - #else - #define MYSERIAL Serial - #endif // BTENABLED -#else - #define MYSERIAL MSerial -#endif - -#define SERIAL_PROTOCOL(x) (MYSERIAL.print(x)) -#define SERIAL_PROTOCOL_F(x,y) (MYSERIAL.print(x,y)) -#define SERIAL_PROTOCOLPGM(x) (serialprintPGM(PSTR(x))) -#define SERIAL_PROTOCOLRPGM(x) (serialprintPGM((x))) -#define SERIAL_PROTOCOLLN(x) (MYSERIAL.print(x),MYSERIAL.write('\n')) -#define SERIAL_PROTOCOLLNPGM(x) (serialprintPGM(PSTR(x)),MYSERIAL.write('\n')) -#define SERIAL_PROTOCOLLNRPGM(x) (serialprintPGM((x)),MYSERIAL.write('\n')) - - -extern const char errormagic[] PROGMEM; -extern const char echomagic[] PROGMEM; - -#define SERIAL_ERROR_START (serialprintPGM(errormagic)) -#define SERIAL_ERROR(x) SERIAL_PROTOCOL(x) -#define SERIAL_ERRORPGM(x) SERIAL_PROTOCOLPGM(x) -#define SERIAL_ERRORRPGM(x) SERIAL_PROTOCOLRPGM(x) -#define SERIAL_ERRORLN(x) SERIAL_PROTOCOLLN(x) -#define SERIAL_ERRORLNPGM(x) SERIAL_PROTOCOLLNPGM(x) -#define SERIAL_ERRORLNRPGM(x) SERIAL_PROTOCOLLNRPGM(x) - -#define SERIAL_ECHO_START (serialprintPGM(echomagic)) -#define SERIAL_ECHO(x) SERIAL_PROTOCOL(x) -#define SERIAL_ECHOPGM(x) SERIAL_PROTOCOLPGM(x) -#define SERIAL_ECHORPGM(x) SERIAL_PROTOCOLRPGM(x) -#define SERIAL_ECHOLN(x) SERIAL_PROTOCOLLN(x) -#define SERIAL_ECHOLNPGM(x) SERIAL_PROTOCOLLNPGM(x) -#define SERIAL_ECHOLNRPGM(x) SERIAL_PROTOCOLLNRPGM(x) - -#define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value))) - -void serial_echopair_P(const char *s_P, float v); -void serial_echopair_P(const char *s_P, double v); -void serial_echopair_P(const char *s_P, unsigned long v); - - -//Things to write to serial from Program memory. Saves 400 to 2k of RAM. -FORCE_INLINE void serialprintPGM(const char *str) -{ - char ch=pgm_read_byte(str); - while(ch) - { - MYSERIAL.write(ch); - ch=pgm_read_byte(++str); - } -} - -bool is_buffer_empty(); -void get_command(); -void process_commands(); -void ramming(); - -void manage_inactivity(bool ignore_stepper_queue=false); - -#if defined(X_ENABLE_PIN) && X_ENABLE_PIN > -1 - #define enable_x() WRITE(X_ENABLE_PIN, X_ENABLE_ON) - #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); axis_known_position[X_AXIS] = false; } -#else - #define enable_x() ; - #define disable_x() ; -#endif - -#if defined(Y_ENABLE_PIN) && Y_ENABLE_PIN > -1 - #ifdef Y_DUAL_STEPPER_DRIVERS - #define enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, Y_ENABLE_ON); } - #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; } - #else - #define enable_y() WRITE(Y_ENABLE_PIN, Y_ENABLE_ON) - #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; } - #endif -#else - #define enable_y() ; - #define disable_y() ; -#endif - -#if defined(Z_ENABLE_PIN) && Z_ENABLE_PIN > -1 - #if defined(Z_AXIS_ALWAYS_ON) - #ifdef Z_DUAL_STEPPER_DRIVERS - #define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } - #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } - #else - #define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) - #define disable_z() ; - #endif - #else - #ifdef Z_DUAL_STEPPER_DRIVERS - #define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } - #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } - #else - #define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) - #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } - #endif - #endif -#else - #define enable_z() ; - #define disable_z() ; -#endif - - - - -//#if defined(Z_ENABLE_PIN) && Z_ENABLE_PIN > -1 -//#ifdef Z_DUAL_STEPPER_DRIVERS -//#define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } -//#define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } -//#else -//#define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) -//#define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } -//#endif -//#else -//#define enable_z() ; -//#define disable_z() ; -//#endif - - -#if defined(E0_ENABLE_PIN) && (E0_ENABLE_PIN > -1) - #define enable_e0() WRITE(E0_ENABLE_PIN, E_ENABLE_ON) - #define disable_e0() WRITE(E0_ENABLE_PIN,!E_ENABLE_ON) -#else - #define enable_e0() /* nothing */ - #define disable_e0() /* nothing */ -#endif - -#if (EXTRUDERS > 1) && defined(E1_ENABLE_PIN) && (E1_ENABLE_PIN > -1) - #define enable_e1() WRITE(E1_ENABLE_PIN, E_ENABLE_ON) - #define disable_e1() WRITE(E1_ENABLE_PIN,!E_ENABLE_ON) -#else - #define enable_e1() /* nothing */ - #define disable_e1() /* nothing */ -#endif - -#if (EXTRUDERS > 2) && defined(E2_ENABLE_PIN) && (E2_ENABLE_PIN > -1) - #define enable_e2() WRITE(E2_ENABLE_PIN, E_ENABLE_ON) - #define disable_e2() WRITE(E2_ENABLE_PIN,!E_ENABLE_ON) -#else - #define enable_e2() /* nothing */ - #define disable_e2() /* nothing */ -#endif - - -enum AxisEnum {X_AXIS=0, Y_AXIS=1, Z_AXIS=2, E_AXIS=3, X_HEAD=4, Y_HEAD=5}; - - -void FlushSerialRequestResend(); -void ClearToSend(); - -void get_coordinates(); -void prepare_move(); -void kill(const char *full_screen_message = NULL); -void Stop(); - -bool IsStopped(); - -//put an ASCII command at the end of the current buffer. -void enquecommand(const char *cmd, bool from_progmem = false); -//put an ASCII command at the end of the current buffer, read from flash -#define enquecommand_P(cmd) enquecommand(cmd, true) -void enquecommand_front(const char *cmd, bool from_progmem = false); -//put an ASCII command at the end of the current buffer, read from flash -#define enquecommand_P(cmd) enquecommand(cmd, true) -#define enquecommand_front_P(cmd) enquecommand_front(cmd, true) -void repeatcommand_front(); -// Remove all lines from the command queue. -void cmdqueue_reset(); - -void prepare_arc_move(char isclockwise); -void clamp_to_software_endstops(float target[3]); - -void refresh_cmd_timeout(void); - -#ifdef FAST_PWM_FAN -void setPwmFrequency(uint8_t pin, int val); -#endif - -#ifndef CRITICAL_SECTION_START - #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli(); - #define CRITICAL_SECTION_END SREG = _sreg; -#endif //CRITICAL_SECTION_START - -extern float homing_feedrate[]; -extern bool axis_relative_modes[]; -extern int feedmultiply; -extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders -extern bool volumetric_enabled; -extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually -extern float filament_size[EXTRUDERS]; // cross-sectional area of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder. -extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner -extern float current_position[NUM_AXIS] ; -extern float destination[NUM_AXIS] ; -extern float add_homing[3]; -extern float min_pos[3]; -extern float max_pos[3]; -extern bool axis_known_position[3]; -extern float zprobe_zoffset; -extern int fanSpeed; -extern void homeaxis(int axis); - - -#ifdef FAN_SOFT_PWM -extern unsigned char fanSpeedSoftPwm; -#endif - -#ifdef FILAMENT_SENSOR - extern float filament_width_nominal; //holds the theoretical filament diameter ie., 3.00 or 1.75 - extern bool filament_sensor; //indicates that filament sensor readings should control extrusion - extern float filament_width_meas; //holds the filament diameter as accurately measured - extern signed char measurement_delay[]; //ring buffer to delay measurement - extern int delay_index1, delay_index2; //index into ring buffer - extern float delay_dist; //delay distance counter - extern int meas_delay_cm; //delay distance -#endif - -#ifdef FWRETRACT -extern bool autoretract_enabled; -extern bool retracted[EXTRUDERS]; -extern float retract_length, retract_length_swap, retract_feedrate, retract_zlift; -extern float retract_recover_length, retract_recover_length_swap, retract_recover_feedrate; -#endif - -extern unsigned long starttime; -extern unsigned long stoptime; -extern int bowden_length[4]; -extern bool is_usb_printing; -extern bool homing_flag; -extern bool temp_cal_active; -extern bool loading_flag; -extern unsigned int usb_printing_counter; - -extern unsigned long kicktime; - -extern unsigned long total_filament_used; -void save_statistics(unsigned long _total_filament_used, unsigned long _total_print_time); -extern unsigned int heating_status; -extern unsigned int status_number; -extern unsigned int heating_status_counter; -extern bool custom_message; -extern unsigned int custom_message_type; -extern unsigned int custom_message_state; -extern char snmm_filaments_used; -extern unsigned long PingTime; - - -// Handling multiple extruders pins -extern uint8_t active_extruder; - -#ifdef DIGIPOT_I2C -extern void digipot_i2c_set_current( int channel, float current ); -extern void digipot_i2c_init(); -#endif - -#endif - -//Long pause -extern int saved_feedmultiply; -extern float HotendTempBckp; -extern int fanSpeedBckp; -extern float pause_lastpos[4]; -extern unsigned long pause_time; -extern unsigned long start_pause_print; - -extern bool mesh_bed_leveling_flag; -extern bool mesh_bed_run_from_menu; - -extern float distance_from_min[3]; -extern float angleDiff; - -extern void calculate_volumetric_multipliers(); - -// Similar to the default Arduino delay function, -// but it keeps the background tasks running. -extern void delay_keep_alive(unsigned int ms); - -extern void check_babystep(); - -extern void long_pause(); - -#ifdef DIS - -void d_setup(); -float d_ReadData(); -void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_points_num, float shift_x, float shift_y); - -#endif -float temp_comp_interpolation(float temperature); -void temp_compensation_apply(); -void temp_compensation_start(); -void wait_for_heater(long codenum); -void serialecho_temperatures(); \ No newline at end of file +// Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware. +// License: GPL + +#ifndef MARLIN_H +#define MARLIN_H + +#define FORCE_INLINE __attribute__((always_inline)) inline + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + + +#include "fastio.h" +#include "Configuration.h" +#include "pins.h" + +#ifndef AT90USB +#define HardwareSerial_h // trick to disable the standard HWserial +#endif + +#if (ARDUINO >= 100) +# include "Arduino.h" +#else +# include "WProgram.h" +#endif + +// Arduino < 1.0.0 does not define this, so we need to do it ourselves +#ifndef analogInputToDigitalPin +# define analogInputToDigitalPin(p) ((p) + A0) +#endif + +#ifdef AT90USB +#include "HardwareSerial.h" +#endif + +#include "MarlinSerial.h" + +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +#include "WString.h" + +#ifdef AT90USB + #ifdef BTENABLED + #define MYSERIAL bt + #else + #define MYSERIAL Serial + #endif // BTENABLED +#else + #define MYSERIAL MSerial +#endif + +#define SERIAL_PROTOCOL(x) (MYSERIAL.print(x)) +#define SERIAL_PROTOCOL_F(x,y) (MYSERIAL.print(x,y)) +#define SERIAL_PROTOCOLPGM(x) (serialprintPGM(PSTR(x))) +#define SERIAL_PROTOCOLRPGM(x) (serialprintPGM((x))) +#define SERIAL_PROTOCOLLN(x) (MYSERIAL.print(x),MYSERIAL.write('\n')) +#define SERIAL_PROTOCOLLNPGM(x) (serialprintPGM(PSTR(x)),MYSERIAL.write('\n')) +#define SERIAL_PROTOCOLLNRPGM(x) (serialprintPGM((x)),MYSERIAL.write('\n')) + + +extern const char errormagic[] PROGMEM; +extern const char echomagic[] PROGMEM; + +#define SERIAL_ERROR_START (serialprintPGM(errormagic)) +#define SERIAL_ERROR(x) SERIAL_PROTOCOL(x) +#define SERIAL_ERRORPGM(x) SERIAL_PROTOCOLPGM(x) +#define SERIAL_ERRORRPGM(x) SERIAL_PROTOCOLRPGM(x) +#define SERIAL_ERRORLN(x) SERIAL_PROTOCOLLN(x) +#define SERIAL_ERRORLNPGM(x) SERIAL_PROTOCOLLNPGM(x) +#define SERIAL_ERRORLNRPGM(x) SERIAL_PROTOCOLLNRPGM(x) + +#define SERIAL_ECHO_START (serialprintPGM(echomagic)) +#define SERIAL_ECHO(x) SERIAL_PROTOCOL(x) +#define SERIAL_ECHOPGM(x) SERIAL_PROTOCOLPGM(x) +#define SERIAL_ECHORPGM(x) SERIAL_PROTOCOLRPGM(x) +#define SERIAL_ECHOLN(x) SERIAL_PROTOCOLLN(x) +#define SERIAL_ECHOLNPGM(x) SERIAL_PROTOCOLLNPGM(x) +#define SERIAL_ECHOLNRPGM(x) SERIAL_PROTOCOLLNRPGM(x) + +#define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value))) + +void serial_echopair_P(const char *s_P, float v); +void serial_echopair_P(const char *s_P, double v); +void serial_echopair_P(const char *s_P, unsigned long v); + + +//Things to write to serial from Program memory. Saves 400 to 2k of RAM. +FORCE_INLINE void serialprintPGM(const char *str) +{ + char ch=pgm_read_byte(str); + while(ch) + { + MYSERIAL.write(ch); + ch=pgm_read_byte(++str); + } +} + +bool is_buffer_empty(); +void get_command(); +void process_commands(); +void ramming(); + +void manage_inactivity(bool ignore_stepper_queue=false); + +#if defined(X_ENABLE_PIN) && X_ENABLE_PIN > -1 + #define enable_x() WRITE(X_ENABLE_PIN, X_ENABLE_ON) + #define disable_x() { WRITE(X_ENABLE_PIN,!X_ENABLE_ON); axis_known_position[X_AXIS] = false; } +#else + #define enable_x() ; + #define disable_x() ; +#endif + +#if defined(Y_ENABLE_PIN) && Y_ENABLE_PIN > -1 + #ifdef Y_DUAL_STEPPER_DRIVERS + #define enable_y() { WRITE(Y_ENABLE_PIN, Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, Y_ENABLE_ON); } + #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); WRITE(Y2_ENABLE_PIN, !Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; } + #else + #define enable_y() WRITE(Y_ENABLE_PIN, Y_ENABLE_ON) + #define disable_y() { WRITE(Y_ENABLE_PIN,!Y_ENABLE_ON); axis_known_position[Y_AXIS] = false; } + #endif +#else + #define enable_y() ; + #define disable_y() ; +#endif + +#if defined(Z_ENABLE_PIN) && Z_ENABLE_PIN > -1 + #if defined(Z_AXIS_ALWAYS_ON) + #ifdef Z_DUAL_STEPPER_DRIVERS + #define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } + #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } + #else + #define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) + #define disable_z() ; + #endif + #else + #ifdef Z_DUAL_STEPPER_DRIVERS + #define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } + #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } + #else + #define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) + #define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } + #endif + #endif +#else + #define enable_z() ; + #define disable_z() ; +#endif + + + + +//#if defined(Z_ENABLE_PIN) && Z_ENABLE_PIN > -1 +//#ifdef Z_DUAL_STEPPER_DRIVERS +//#define enable_z() { WRITE(Z_ENABLE_PIN, Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN, Z_ENABLE_ON); } +//#define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); WRITE(Z2_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } +//#else +//#define enable_z() WRITE(Z_ENABLE_PIN, Z_ENABLE_ON) +//#define disable_z() { WRITE(Z_ENABLE_PIN,!Z_ENABLE_ON); axis_known_position[Z_AXIS] = false; } +//#endif +//#else +//#define enable_z() ; +//#define disable_z() ; +//#endif + + +#if defined(E0_ENABLE_PIN) && (E0_ENABLE_PIN > -1) + #define enable_e0() WRITE(E0_ENABLE_PIN, E_ENABLE_ON) + #define disable_e0() WRITE(E0_ENABLE_PIN,!E_ENABLE_ON) +#else + #define enable_e0() /* nothing */ + #define disable_e0() /* nothing */ +#endif + +#if (EXTRUDERS > 1) && defined(E1_ENABLE_PIN) && (E1_ENABLE_PIN > -1) + #define enable_e1() WRITE(E1_ENABLE_PIN, E_ENABLE_ON) + #define disable_e1() WRITE(E1_ENABLE_PIN,!E_ENABLE_ON) +#else + #define enable_e1() /* nothing */ + #define disable_e1() /* nothing */ +#endif + +#if (EXTRUDERS > 2) && defined(E2_ENABLE_PIN) && (E2_ENABLE_PIN > -1) + #define enable_e2() WRITE(E2_ENABLE_PIN, E_ENABLE_ON) + #define disable_e2() WRITE(E2_ENABLE_PIN,!E_ENABLE_ON) +#else + #define enable_e2() /* nothing */ + #define disable_e2() /* nothing */ +#endif + + +enum AxisEnum {X_AXIS=0, Y_AXIS=1, Z_AXIS=2, E_AXIS=3, X_HEAD=4, Y_HEAD=5}; + + +void FlushSerialRequestResend(); +void ClearToSend(); + +void get_coordinates(); +void prepare_move(); +void kill(const char *full_screen_message = NULL); +void Stop(); + +bool IsStopped(); + +//put an ASCII command at the end of the current buffer. +void enquecommand(const char *cmd, bool from_progmem = false); +//put an ASCII command at the end of the current buffer, read from flash +#define enquecommand_P(cmd) enquecommand(cmd, true) +void enquecommand_front(const char *cmd, bool from_progmem = false); +//put an ASCII command at the end of the current buffer, read from flash +#define enquecommand_P(cmd) enquecommand(cmd, true) +#define enquecommand_front_P(cmd) enquecommand_front(cmd, true) +void repeatcommand_front(); +// Remove all lines from the command queue. +void cmdqueue_reset(); + +void prepare_arc_move(char isclockwise); +void clamp_to_software_endstops(float target[3]); + +void refresh_cmd_timeout(void); + +#ifdef FAST_PWM_FAN +void setPwmFrequency(uint8_t pin, int val); +#endif + +#ifndef CRITICAL_SECTION_START + #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli(); + #define CRITICAL_SECTION_END SREG = _sreg; +#endif //CRITICAL_SECTION_START + +extern float homing_feedrate[]; +extern bool axis_relative_modes[]; +extern int feedmultiply; +extern int extrudemultiply; // Sets extrude multiply factor (in percent) for all extruders +extern bool volumetric_enabled; +extern int extruder_multiply[EXTRUDERS]; // sets extrude multiply factor (in percent) for each extruder individually +extern float filament_size[EXTRUDERS]; // cross-sectional area of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder. +extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner +extern float current_position[NUM_AXIS] ; +extern float destination[NUM_AXIS] ; +extern float add_homing[3]; +extern float min_pos[3]; +extern float max_pos[3]; +extern bool axis_known_position[3]; +extern float zprobe_zoffset; +extern int fanSpeed; +extern void homeaxis(int axis); + + +#ifdef FAN_SOFT_PWM +extern unsigned char fanSpeedSoftPwm; +#endif + +#ifdef FILAMENT_SENSOR + extern float filament_width_nominal; //holds the theoretical filament diameter ie., 3.00 or 1.75 + extern bool filament_sensor; //indicates that filament sensor readings should control extrusion + extern float filament_width_meas; //holds the filament diameter as accurately measured + extern signed char measurement_delay[]; //ring buffer to delay measurement + extern int delay_index1, delay_index2; //index into ring buffer + extern float delay_dist; //delay distance counter + extern int meas_delay_cm; //delay distance +#endif + +#ifdef FWRETRACT +extern bool autoretract_enabled; +extern bool retracted[EXTRUDERS]; +extern float retract_length, retract_length_swap, retract_feedrate, retract_zlift; +extern float retract_recover_length, retract_recover_length_swap, retract_recover_feedrate; +#endif + +extern unsigned long starttime; +extern unsigned long stoptime; +extern int bowden_length[4]; +extern bool is_usb_printing; +extern bool homing_flag; +extern bool temp_cal_active; +extern bool loading_flag; +extern unsigned int usb_printing_counter; + +extern unsigned long kicktime; + +extern unsigned long total_filament_used; +void save_statistics(unsigned long _total_filament_used, unsigned long _total_print_time); +extern unsigned int heating_status; +extern unsigned int status_number; +extern unsigned int heating_status_counter; +extern bool custom_message; +extern unsigned int custom_message_type; +extern unsigned int custom_message_state; +extern char snmm_filaments_used; +extern unsigned long PingTime; + + +// Handling multiple extruders pins +extern uint8_t active_extruder; + +#ifdef DIGIPOT_I2C +extern void digipot_i2c_set_current( int channel, float current ); +extern void digipot_i2c_init(); +#endif + +#endif + +//Long pause +extern int saved_feedmultiply; +extern float HotendTempBckp; +extern int fanSpeedBckp; +extern float pause_lastpos[4]; +extern unsigned long pause_time; +extern unsigned long start_pause_print; + +extern bool mesh_bed_leveling_flag; +extern bool mesh_bed_run_from_menu; + +extern float distance_from_min[3]; +extern float angleDiff; + +extern void calculate_volumetric_multipliers(); + +// Similar to the default Arduino delay function, +// but it keeps the background tasks running. +extern void delay_keep_alive(unsigned int ms); + +extern void check_babystep(); + +extern void long_pause(); + +#ifdef DIS + +void d_setup(); +float d_ReadData(); +void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_points_num, float shift_x, float shift_y); + +#endif +float temp_comp_interpolation(float temperature); +void temp_compensation_apply(); +void temp_compensation_start(); +void wait_for_heater(long codenum); +void serialecho_temperatures(); + +extern void save_print_to_eeprom(); +extern void restore_print_from_eeprom(); +extern void position_menu(); \ No newline at end of file diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index a7fa31a44..c416dea2c 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1380,7 +1380,6 @@ void get_command() continue; if(serial_char == '\n' || serial_char == '\r' || - (serial_char == ':' && comment_mode == false) || serial_count >= (MAX_CMD_SIZE - 1) ) { if(!serial_count) { //if empty line @@ -3491,6 +3490,7 @@ void process_commands() starttime=millis(); break; case 25: //M25 - Pause SD print + save_print_to_eeprom(); card.pauseSDPrint(); break; case 26: //M26 - Set SD index @@ -4379,6 +4379,12 @@ Sigma_Exit: } } break; + case 110: // M110 - reset line pos + if (code_seen('N')) + gcode_LastN = code_value_long(); + else + gcode_LastN = 0; + break; case 115: // M115 if (code_seen('V')) { // Report the Prusa version number. @@ -6651,4 +6657,42 @@ void serialecho_temperatures() { SERIAL_PROTOCOLPGM(" B:"); SERIAL_PROTOCOL_F(degBed(), 1); SERIAL_PROTOCOLLN(""); -} \ No newline at end of file +} + + +void save_print_to_eeprom() { + + eeprom_update_dword((uint32_t*)(EEPROM_FILE_POSITION), card.get_sdpos()); + } + + void restore_print_from_eeprom() { + char cmd[30]; + char* c; + char filename[13]; + char str[5] = ".gco"; + for (int i = 0; i < 8; i++) { + filename[i] = eeprom_read_byte((uint8_t*)EEPROM_FILENAME + i); + } + filename[8] = '\0'; + MYSERIAL.print(filename); + strcat(filename, str); + sprintf_P(cmd, PSTR("M23 %s"), filename); + for (c = &cmd[4]; *c; c++) + *c = tolower(*c); + enquecommand(cmd); + uint32_t position = eeprom_read_dword((uint32_t*)(EEPROM_FILE_POSITION)); + SERIAL_ECHOPGM("Position read from eeprom:"); + MYSERIAL.println(position); + + card.setIndex(position); + enquecommand_P(PSTR("M24")); + sprintf_P(cmd, PSTR("M26 S%d"), position); + enquecommand(cmd); + } + + void position_menu() { + SERIAL_ECHOPGM("Percent done:"); + MYSERIAL.println(card.percentDone()); + SERIAL_ECHOPGM("sdpos:"); + MYSERIAL.println(card.get_sdpos()); + } \ No newline at end of file diff --git a/Firmware/Sd2Card.cpp b/Firmware/Sd2Card.cpp index 76f767485..0154ee03c 100644 --- a/Firmware/Sd2Card.cpp +++ b/Firmware/Sd2Card.cpp @@ -1,813 +1,813 @@ -/* Arduino Sd2Card Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - * - * This Library 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 Library 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 the Arduino Sd2Card Library. If not, see - * . - */ -#include "Marlin.h" - -#ifdef SDSUPPORT -#include "Sd2Card.h" -//------------------------------------------------------------------------------ -#ifndef SOFTWARE_SPI -// functions for hardware SPI -//------------------------------------------------------------------------------ -// make sure SPCR rate is in expected bits -#if (SPR0 != 0 || SPR1 != 1) -#error unexpected SPCR bits -#endif -/** - * Initialize hardware SPI - * Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6] - */ -static void spiInit(uint8_t spiRate) { - // See avr processor documentation - SPCR = (1 << SPE) | (1 << MSTR) | (spiRate >> 1); - SPSR = spiRate & 1 || spiRate == 6 ? 0 : 1 << SPI2X; -} -//------------------------------------------------------------------------------ -/** SPI receive a byte */ -static uint8_t spiRec() { - SPDR = 0XFF; - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } - return SPDR; -} -//------------------------------------------------------------------------------ -/** SPI read data - only one call so force inline */ -static inline __attribute__((always_inline)) -void spiRead(uint8_t* buf, uint16_t nbyte) { - if (nbyte-- == 0) return; - SPDR = 0XFF; - for (uint16_t i = 0; i < nbyte; i++) { - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } - buf[i] = SPDR; - SPDR = 0XFF; - } - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } - buf[nbyte] = SPDR; -} -//------------------------------------------------------------------------------ -/** SPI send a byte */ -static void spiSend(uint8_t b) { - SPDR = b; - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } -} -//------------------------------------------------------------------------------ -/** SPI send block - only one call so force inline */ -static inline __attribute__((always_inline)) - void spiSendBlock(uint8_t token, const uint8_t* buf) { - SPDR = token; - for (uint16_t i = 0; i < 512; i += 2) { - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } - SPDR = buf[i]; - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } - SPDR = buf[i + 1]; - } - while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } -} -//------------------------------------------------------------------------------ -#else // SOFTWARE_SPI -//------------------------------------------------------------------------------ -/** nop to tune soft SPI timing */ -#define nop asm volatile ("nop\n\t") -//------------------------------------------------------------------------------ -/** Soft SPI receive byte */ -static uint8_t spiRec() { - uint8_t data = 0; - // no interrupts during byte receive - about 8 us - cli(); - // output pin high - like sending 0XFF - fastDigitalWrite(SPI_MOSI_PIN, HIGH); - - for (uint8_t i = 0; i < 8; i++) { - fastDigitalWrite(SPI_SCK_PIN, HIGH); - - // adjust so SCK is nice - nop; - nop; - - data <<= 1; - - if (fastDigitalRead(SPI_MISO_PIN)) data |= 1; - - fastDigitalWrite(SPI_SCK_PIN, LOW); - } - // enable interrupts - sei(); - return data; -} -//------------------------------------------------------------------------------ -/** Soft SPI read data */ -static void spiRead(uint8_t* buf, uint16_t nbyte) { - for (uint16_t i = 0; i < nbyte; i++) { - buf[i] = spiRec(); - } -} -//------------------------------------------------------------------------------ -/** Soft SPI send byte */ -static void spiSend(uint8_t data) { - // no interrupts during byte send - about 8 us - cli(); - for (uint8_t i = 0; i < 8; i++) { - fastDigitalWrite(SPI_SCK_PIN, LOW); - - fastDigitalWrite(SPI_MOSI_PIN, data & 0X80); - - data <<= 1; - - fastDigitalWrite(SPI_SCK_PIN, HIGH); - } - // hold SCK high for a few ns - nop; - nop; - nop; - nop; - - fastDigitalWrite(SPI_SCK_PIN, LOW); - // enable interrupts - sei(); -} -//------------------------------------------------------------------------------ -/** Soft SPI send block */ - void spiSendBlock(uint8_t token, const uint8_t* buf) { - spiSend(token); - for (uint16_t i = 0; i < 512; i++) { - spiSend(buf[i]); - } -} -#endif // SOFTWARE_SPI -//------------------------------------------------------------------------------ -// send command and return error code. Return zero for OK -uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) { - // select card - chipSelectLow(); - - // wait up to 300 ms if busy - waitNotBusy(300); - - // send command - spiSend(cmd | 0x40); - - // send argument - for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s); - - // send CRC - uint8_t crc = 0XFF; - if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0 - if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA - spiSend(crc); - - // skip stuff byte for stop read - if (cmd == CMD12) spiRec(); - - // wait for response - for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) { /* Intentionally left empty */ } - return status_; -} -//------------------------------------------------------------------------------ -/** - * Determine the size of an SD flash memory card. - * - * \return The number of 512 byte data blocks in the card - * or zero if an error occurs. - */ -uint32_t Sd2Card::cardSize() { - csd_t csd; - if (!readCSD(&csd)) return 0; - if (csd.v1.csd_ver == 0) { - uint8_t read_bl_len = csd.v1.read_bl_len; - uint16_t c_size = (csd.v1.c_size_high << 10) - | (csd.v1.c_size_mid << 2) | csd.v1.c_size_low; - uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1) - | csd.v1.c_size_mult_low; - return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7); - } else if (csd.v2.csd_ver == 1) { - uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16) - | (csd.v2.c_size_mid << 8) | csd.v2.c_size_low; - return (c_size + 1) << 10; - } else { - error(SD_CARD_ERROR_BAD_CSD); - return 0; - } -} -//------------------------------------------------------------------------------ -void Sd2Card::chipSelectHigh() { - digitalWrite(chipSelectPin_, HIGH); -} -//------------------------------------------------------------------------------ -void Sd2Card::chipSelectLow() { -#ifndef SOFTWARE_SPI - spiInit(spiRate_); -#endif // SOFTWARE_SPI - digitalWrite(chipSelectPin_, LOW); -} -//------------------------------------------------------------------------------ -/** Erase a range of blocks. - * - * \param[in] firstBlock The address of the first block in the range. - * \param[in] lastBlock The address of the last block in the range. - * - * \note This function requests the SD card to do a flash erase for a - * range of blocks. The data on the card after an erase operation is - * either 0 or 1, depends on the card vendor. The card must support - * single block erase. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) { - csd_t csd; - if (!readCSD(&csd)) goto fail; - // check for single block erase - if (!csd.v1.erase_blk_en) { - // erase size mask - uint8_t m = (csd.v1.sector_size_high << 1) | csd.v1.sector_size_low; - if ((firstBlock & m) != 0 || ((lastBlock + 1) & m) != 0) { - // error card can't erase specified area - error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK); - goto fail; - } - } - if (type_ != SD_CARD_TYPE_SDHC) { - firstBlock <<= 9; - lastBlock <<= 9; - } - if (cardCommand(CMD32, firstBlock) - || cardCommand(CMD33, lastBlock) - || cardCommand(CMD38, 0)) { - error(SD_CARD_ERROR_ERASE); - goto fail; - } - if (!waitNotBusy(SD_ERASE_TIMEOUT)) { - error(SD_CARD_ERROR_ERASE_TIMEOUT); - goto fail; - } - chipSelectHigh(); - return true; - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Determine if card supports single block erase. - * - * \return The value one, true, is returned if single block erase is supported. - * The value zero, false, is returned if single block erase is not supported. - */ -bool Sd2Card::eraseSingleBlockEnable() { - csd_t csd; - return readCSD(&csd) ? csd.v1.erase_blk_en : false; -} -//------------------------------------------------------------------------------ -/** - * Initialize an SD flash memory card. - * - * \param[in] sckRateID SPI clock rate selector. See setSckRate(). - * \param[in] chipSelectPin SD chip select pin number. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. The reason for failure - * can be determined by calling errorCode() and errorData(). - */ -bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { - errorCode_ = type_ = 0; - chipSelectPin_ = chipSelectPin; - // 16-bit init start time allows over a minute - uint16_t t0 = (uint16_t)millis(); - uint32_t arg; - - // set pin modes - pinMode(chipSelectPin_, OUTPUT); - chipSelectHigh(); - pinMode(SPI_MISO_PIN, INPUT); - pinMode(SPI_MOSI_PIN, OUTPUT); - pinMode(SPI_SCK_PIN, OUTPUT); - -#ifndef SOFTWARE_SPI - // SS must be in output mode even it is not chip select - pinMode(SS_PIN, OUTPUT); - // set SS high - may be chip select for another SPI device -#if SET_SPI_SS_HIGH - digitalWrite(SS_PIN, HIGH); -#endif // SET_SPI_SS_HIGH - // set SCK rate for initialization commands - spiRate_ = SPI_SD_INIT_RATE; - spiInit(spiRate_); -#endif // SOFTWARE_SPI - - // must supply min of 74 clock cycles with CS high. - for (uint8_t i = 0; i < 10; i++) spiSend(0XFF); - - // command to go idle in SPI mode - while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) { - if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { - error(SD_CARD_ERROR_CMD0); - goto fail; - } - } - // check SD version - if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { - type(SD_CARD_TYPE_SD1); - } else { - // only need last byte of r7 response - for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); - if (status_ != 0XAA) { - error(SD_CARD_ERROR_CMD8); - goto fail; - } - type(SD_CARD_TYPE_SD2); - } - // initialize card and send host supports SDHC if SD2 - arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0; - - while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) { - // check for timeout - if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { - error(SD_CARD_ERROR_ACMD41); - goto fail; - } - } - // if SD2 read OCR register to check for SDHC card - if (type() == SD_CARD_TYPE_SD2) { - if (cardCommand(CMD58, 0)) { - error(SD_CARD_ERROR_CMD58); - goto fail; - } - if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC); - // discard rest of ocr - contains allowed voltage range - for (uint8_t i = 0; i < 3; i++) spiRec(); - } - chipSelectHigh(); - -#ifndef SOFTWARE_SPI - return setSckRate(sckRateID); -#else // SOFTWARE_SPI - return true; -#endif // SOFTWARE_SPI - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** - * Read a 512 byte block from an SD card. - * - * \param[in] blockNumber Logical block to be read. - * \param[out] dst Pointer to the location that will receive the data. - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) { -#ifdef SD_CHECK_AND_RETRY - uint8_t retryCnt = 3; - // use address if not SDHC card - if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9; - retry2: - retryCnt --; - if (cardCommand(CMD17, blockNumber)) { - error(SD_CARD_ERROR_CMD17); - if (retryCnt > 0) goto retry; - goto fail; - } - if (!readData(dst, 512)) - { - if (retryCnt > 0) goto retry; - goto fail; - } - return true; - retry: - chipSelectHigh(); - cardCommand(CMD12, 0);//Try sending a stop command, but ignore the result. - errorCode_ = 0; - goto retry2; -#else - // use address if not SDHC card - if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD17, blockNumber)) { - error(SD_CARD_ERROR_CMD17); - goto fail; - } - return readData(dst, 512); -#endif - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Read one data block in a multiple block read sequence - * - * \param[in] dst Pointer to the location for the data to be read. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readData(uint8_t *dst) { - chipSelectLow(); - return readData(dst, 512); -} - -#ifdef SD_CHECK_AND_RETRY -static const uint16_t crctab[] PROGMEM = { - 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, - 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, - 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, - 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, - 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, - 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, - 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, - 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, - 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, - 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, - 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, - 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, - 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, - 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, - 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, - 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, - 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, - 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, - 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, - 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, - 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, - 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, - 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, - 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, - 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, - 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, - 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, - 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, - 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, - 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, - 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, - 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 -}; -static uint16_t CRC_CCITT(const uint8_t* data, size_t n) { - uint16_t crc = 0; - for (size_t i = 0; i < n; i++) { - crc = pgm_read_word(&crctab[(crc >> 8 ^ data[i]) & 0XFF]) ^ (crc << 8); - } - return crc; -} -#endif - -//------------------------------------------------------------------------------ -bool Sd2Card::readData(uint8_t* dst, uint16_t count) { - // wait for start block token - uint16_t t0 = millis(); - while ((status_ = spiRec()) == 0XFF) { - if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) { - error(SD_CARD_ERROR_READ_TIMEOUT); - goto fail; - } - } - if (status_ != DATA_START_BLOCK) { - error(SD_CARD_ERROR_READ); - goto fail; - } - // transfer data - spiRead(dst, count); - -#ifdef SD_CHECK_AND_RETRY - { - uint16_t calcCrc = CRC_CCITT(dst, count); - uint16_t recvCrc = spiRec() << 8; - recvCrc |= spiRec(); - if (calcCrc != recvCrc) - { - error(SD_CARD_ERROR_CRC); - goto fail; - } - } -#else - // discard CRC - spiRec(); - spiRec(); -#endif - chipSelectHigh(); - // Toshiba FlashAir Patch. Purge pending status byte. - if (flash_air_compatible_) - spiSend(0XFF); - return true; - - fail: - chipSelectHigh(); - // Toshiba FlashAir Patch. Purge pending status byte. - if (flash_air_compatible_) - spiSend(0XFF); - return false; -} -//------------------------------------------------------------------------------ -/** read CID or CSR register */ -bool Sd2Card::readRegister(uint8_t cmd, void* buf) { - uint8_t* dst = reinterpret_cast(buf); - if (cardCommand(cmd, 0)) { - error(SD_CARD_ERROR_READ_REG); - goto fail; - } - return readData(dst, 16); - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Start a read multiple blocks sequence. - * - * \param[in] blockNumber Address of first block in sequence. - * - * \note This function is used with readData() and readStop() for optimized - * multiple block reads. SPI chipSelect must be low for the entire sequence. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readStart(uint32_t blockNumber) { - if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD18, blockNumber)) { - error(SD_CARD_ERROR_CMD18); - goto fail; - } - chipSelectHigh(); - return true; - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** End a read multiple blocks sequence. - * -* \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readStop() { - chipSelectLow(); - if (cardCommand(CMD12, 0)) { - error(SD_CARD_ERROR_CMD12); - goto fail; - } - chipSelectHigh(); - return true; - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** - * Set the SPI clock rate. - * - * \param[in] sckRateID A value in the range [0, 6]. - * - * The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum - * SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128 - * for \a scsRateID = 6. - * - * \return The value one, true, is returned for success and the value zero, - * false, is returned for an invalid value of \a sckRateID. - */ -bool Sd2Card::setSckRate(uint8_t sckRateID) { - if (sckRateID > 6) { - error(SD_CARD_ERROR_SCK_RATE); - return false; - } - spiRate_ = sckRateID; - return true; -} -//------------------------------------------------------------------------------ -// wait for card to go not busy -bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) { - uint16_t t0 = millis(); - while (spiRec() != 0XFF) { - if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail; - } - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -/** - * Writes a 512 byte block to an SD card. - * - * \param[in] blockNumber Logical block to be written. - * \param[in] src Pointer to the location of the data to be written. - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) { - // use address if not SDHC card - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD24, blockNumber)) { - error(SD_CARD_ERROR_CMD24); - goto fail; - } - if (!writeData(DATA_START_BLOCK, src)) goto fail; - - // wait for flash programming to complete - if (!waitNotBusy(SD_WRITE_TIMEOUT)) { - error(SD_CARD_ERROR_WRITE_TIMEOUT); - goto fail; - } - // response is r2 so get and check two bytes for nonzero - if (cardCommand(CMD13, 0) || spiRec()) { - error(SD_CARD_ERROR_WRITE_PROGRAMMING); - goto fail; - } - chipSelectHigh(); - return true; - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Write one data block in a multiple block write sequence - * \param[in] src Pointer to the location of the data to be written. - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeData(const uint8_t* src) { - chipSelectLow(); - // wait for previous write to finish - if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; - if (!writeData(WRITE_MULTIPLE_TOKEN, src)) goto fail; - chipSelectHigh(); - return true; - - fail: - error(SD_CARD_ERROR_WRITE_MULTIPLE); - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -// send one block of data for write block or write multiple blocks -bool Sd2Card::writeData(uint8_t token, const uint8_t* src) { - spiSendBlock(token, src); - - spiSend(0xff); // dummy crc - spiSend(0xff); // dummy crc - - status_ = spiRec(); - if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) { - error(SD_CARD_ERROR_WRITE); - goto fail; - } - return true; - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Start a write multiple blocks sequence. - * - * \param[in] blockNumber Address of first block in sequence. - * \param[in] eraseCount The number of blocks to be pre-erased. - * - * \note This function is used with writeData() and writeStop() - * for optimized multiple block writes. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) { - // send pre-erase count - if (cardAcmd(ACMD23, eraseCount)) { - error(SD_CARD_ERROR_ACMD23); - goto fail; - } - // use address if not SDHC card - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD25, blockNumber)) { - error(SD_CARD_ERROR_CMD25); - goto fail; - } - chipSelectHigh(); - return true; - - fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** End a write multiple blocks sequence. - * -* \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeStop() { - chipSelectLow(); - if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; - spiSend(STOP_TRAN_TOKEN); - if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; - chipSelectHigh(); - return true; - - fail: - error(SD_CARD_ERROR_STOP_TRAN); - chipSelectHigh(); - return false; -} - -//------------------------------------------------------------------------------ -/** Wait for start block token */ -//FIXME Vojtech: Copied from a current version of Sd2Card Arduino code. -// We shall likely upgrade the rest of the Sd2Card. -uint8_t Sd2Card::waitStartBlock(void) { - uint16_t t0 = millis(); - while ((status_ = spiRec()) == 0XFF) { - if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) { - error(SD_CARD_ERROR_READ_TIMEOUT); - goto fail; - } - } - if (status_ != DATA_START_BLOCK) { - error(SD_CARD_ERROR_READ); - goto fail; - } - return true; - - fail: - chipSelectHigh(); - return false; -} - -// Toshiba FlashAir support, copied from -// https://flashair-developers.com/en/documents/tutorials/arduino/ - -//------------------------------------------------------------------------------ -/** Perform Extention Read. */ -uint8_t Sd2Card::readExt(uint32_t arg, uint8_t* dst, uint16_t count) { - uint16_t i; - - // send command and argument. - if (cardCommand(CMD48, arg)) { - error(SD_CARD_ERROR_CMD48); - goto fail; - } - - // wait for start block token. - if (!waitStartBlock()) { - goto fail; - } - - // receive data - for (i = 0; i < count; ++i) { - dst[i] = spiRec(); - } - - // skip dummy bytes and 16-bit crc. - for (; i < 514; ++i) { - spiRec(); - } - - chipSelectHigh(); - spiSend(0xFF); // dummy clock to force FlashAir finish the command. - return true; - - fail: - chipSelectHigh(); - return false; -} - -//------------------------------------------------------------------------------ -/** - * Read an extension register space. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -uint8_t Sd2Card::readExtMemory(uint8_t mio, uint8_t func, - uint32_t addr, uint16_t count, uint8_t* dst) { - uint32_t offset = addr & 0x1FF; - if (offset + count > 512) count = 512 - offset; - - if (count == 0) return true; - - uint32_t arg = - (((uint32_t)mio & 0x1) << 31) | - (mio ? (((uint32_t)func & 0x7) << 28) : (((uint32_t)func & 0xF) << 27)) | - ((addr & 0x1FFFF) << 9) | - ((count - 1) & 0x1FF); - - return readExt(arg, dst, count); -} - -#endif +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library 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 Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#include "Marlin.h" + +#ifdef SDSUPPORT +#include "Sd2Card.h" +//------------------------------------------------------------------------------ +#ifndef SOFTWARE_SPI +// functions for hardware SPI +//------------------------------------------------------------------------------ +// make sure SPCR rate is in expected bits +#if (SPR0 != 0 || SPR1 != 1) +#error unexpected SPCR bits +#endif +/** + * Initialize hardware SPI + * Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6] + */ +static void spiInit(uint8_t spiRate) { + // See avr processor documentation + SPCR = (1 << SPE) | (1 << MSTR) | (spiRate >> 1); + SPSR = spiRate & 1 || spiRate == 6 ? 0 : 1 << SPI2X; +} +//------------------------------------------------------------------------------ +/** SPI receive a byte */ +static uint8_t spiRec() { + SPDR = 0XFF; + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } + return SPDR; +} +//------------------------------------------------------------------------------ +/** SPI read data - only one call so force inline */ +static inline __attribute__((always_inline)) +void spiRead(uint8_t* buf, uint16_t nbyte) { + if (nbyte-- == 0) return; + SPDR = 0XFF; + for (uint16_t i = 0; i < nbyte; i++) { + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } + buf[i] = SPDR; + SPDR = 0XFF; + } + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } + buf[nbyte] = SPDR; +} +//------------------------------------------------------------------------------ +/** SPI send a byte */ +static void spiSend(uint8_t b) { + SPDR = b; + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } +} +//------------------------------------------------------------------------------ +/** SPI send block - only one call so force inline */ +static inline __attribute__((always_inline)) + void spiSendBlock(uint8_t token, const uint8_t* buf) { + SPDR = token; + for (uint16_t i = 0; i < 512; i += 2) { + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } + SPDR = buf[i]; + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } + SPDR = buf[i + 1]; + } + while (!(SPSR & (1 << SPIF))) { /* Intentionally left empty */ } +} +//------------------------------------------------------------------------------ +#else // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** nop to tune soft SPI timing */ +#define nop asm volatile ("nop\n\t") +//------------------------------------------------------------------------------ +/** Soft SPI receive byte */ +static uint8_t spiRec() { + uint8_t data = 0; + // no interrupts during byte receive - about 8 us + cli(); + // output pin high - like sending 0XFF + fastDigitalWrite(SPI_MOSI_PIN, HIGH); + + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, HIGH); + + // adjust so SCK is nice + nop; + nop; + + data <<= 1; + + if (fastDigitalRead(SPI_MISO_PIN)) data |= 1; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + } + // enable interrupts + sei(); + return data; +} +//------------------------------------------------------------------------------ +/** Soft SPI read data */ +static void spiRead(uint8_t* buf, uint16_t nbyte) { + for (uint16_t i = 0; i < nbyte; i++) { + buf[i] = spiRec(); + } +} +//------------------------------------------------------------------------------ +/** Soft SPI send byte */ +static void spiSend(uint8_t data) { + // no interrupts during byte send - about 8 us + cli(); + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, LOW); + + fastDigitalWrite(SPI_MOSI_PIN, data & 0X80); + + data <<= 1; + + fastDigitalWrite(SPI_SCK_PIN, HIGH); + } + // hold SCK high for a few ns + nop; + nop; + nop; + nop; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + // enable interrupts + sei(); +} +//------------------------------------------------------------------------------ +/** Soft SPI send block */ + void spiSendBlock(uint8_t token, const uint8_t* buf) { + spiSend(token); + for (uint16_t i = 0; i < 512; i++) { + spiSend(buf[i]); + } +} +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +// send command and return error code. Return zero for OK +uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) { + // select card + chipSelectLow(); + + // wait up to 300 ms if busy + waitNotBusy(300); + + // send command + spiSend(cmd | 0x40); + + // send argument + for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s); + + // send CRC + uint8_t crc = 0XFF; + if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0 + if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA + spiSend(crc); + + // skip stuff byte for stop read + if (cmd == CMD12) spiRec(); + + // wait for response + for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) { /* Intentionally left empty */ } + return status_; +} +//------------------------------------------------------------------------------ +/** + * Determine the size of an SD flash memory card. + * + * \return The number of 512 byte data blocks in the card + * or zero if an error occurs. + */ +uint32_t Sd2Card::cardSize() { + csd_t csd; + if (!readCSD(&csd)) return 0; + if (csd.v1.csd_ver == 0) { + uint8_t read_bl_len = csd.v1.read_bl_len; + uint16_t c_size = (csd.v1.c_size_high << 10) + | (csd.v1.c_size_mid << 2) | csd.v1.c_size_low; + uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1) + | csd.v1.c_size_mult_low; + return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7); + } else if (csd.v2.csd_ver == 1) { + uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16) + | (csd.v2.c_size_mid << 8) | csd.v2.c_size_low; + return (c_size + 1) << 10; + } else { + error(SD_CARD_ERROR_BAD_CSD); + return 0; + } +} +//------------------------------------------------------------------------------ +void Sd2Card::chipSelectHigh() { + digitalWrite(chipSelectPin_, HIGH); +} +//------------------------------------------------------------------------------ +void Sd2Card::chipSelectLow() { +#ifndef SOFTWARE_SPI + spiInit(spiRate_); +#endif // SOFTWARE_SPI + digitalWrite(chipSelectPin_, LOW); +} +//------------------------------------------------------------------------------ +/** Erase a range of blocks. + * + * \param[in] firstBlock The address of the first block in the range. + * \param[in] lastBlock The address of the last block in the range. + * + * \note This function requests the SD card to do a flash erase for a + * range of blocks. The data on the card after an erase operation is + * either 0 or 1, depends on the card vendor. The card must support + * single block erase. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) { + csd_t csd; + if (!readCSD(&csd)) goto fail; + // check for single block erase + if (!csd.v1.erase_blk_en) { + // erase size mask + uint8_t m = (csd.v1.sector_size_high << 1) | csd.v1.sector_size_low; + if ((firstBlock & m) != 0 || ((lastBlock + 1) & m) != 0) { + // error card can't erase specified area + error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK); + goto fail; + } + } + if (type_ != SD_CARD_TYPE_SDHC) { + firstBlock <<= 9; + lastBlock <<= 9; + } + if (cardCommand(CMD32, firstBlock) + || cardCommand(CMD33, lastBlock) + || cardCommand(CMD38, 0)) { + error(SD_CARD_ERROR_ERASE); + goto fail; + } + if (!waitNotBusy(SD_ERASE_TIMEOUT)) { + error(SD_CARD_ERROR_ERASE_TIMEOUT); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Determine if card supports single block erase. + * + * \return The value one, true, is returned if single block erase is supported. + * The value zero, false, is returned if single block erase is not supported. + */ +bool Sd2Card::eraseSingleBlockEnable() { + csd_t csd; + return readCSD(&csd) ? csd.v1.erase_blk_en : false; +} +//------------------------------------------------------------------------------ +/** + * Initialize an SD flash memory card. + * + * \param[in] sckRateID SPI clock rate selector. See setSckRate(). + * \param[in] chipSelectPin SD chip select pin number. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. The reason for failure + * can be determined by calling errorCode() and errorData(). + */ +bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { + errorCode_ = type_ = 0; + chipSelectPin_ = chipSelectPin; + // 16-bit init start time allows over a minute + uint16_t t0 = (uint16_t)millis(); + uint32_t arg; + + // set pin modes + pinMode(chipSelectPin_, OUTPUT); + chipSelectHigh(); + pinMode(SPI_MISO_PIN, INPUT); + pinMode(SPI_MOSI_PIN, OUTPUT); + pinMode(SPI_SCK_PIN, OUTPUT); + +#ifndef SOFTWARE_SPI + // SS must be in output mode even it is not chip select + pinMode(SS_PIN, OUTPUT); + // set SS high - may be chip select for another SPI device +#if SET_SPI_SS_HIGH + digitalWrite(SS_PIN, HIGH); +#endif // SET_SPI_SS_HIGH + // set SCK rate for initialization commands + spiRate_ = SPI_SD_INIT_RATE; + spiInit(spiRate_); +#endif // SOFTWARE_SPI + + // must supply min of 74 clock cycles with CS high. + for (uint8_t i = 0; i < 10; i++) spiSend(0XFF); + + // command to go idle in SPI mode + while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) { + if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_CMD0); + goto fail; + } + } + // check SD version + if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { + type(SD_CARD_TYPE_SD1); + } else { + // only need last byte of r7 response + for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); + if (status_ != 0XAA) { + error(SD_CARD_ERROR_CMD8); + goto fail; + } + type(SD_CARD_TYPE_SD2); + } + // initialize card and send host supports SDHC if SD2 + arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0; + + while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) { + // check for timeout + if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_ACMD41); + goto fail; + } + } + // if SD2 read OCR register to check for SDHC card + if (type() == SD_CARD_TYPE_SD2) { + if (cardCommand(CMD58, 0)) { + error(SD_CARD_ERROR_CMD58); + goto fail; + } + if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC); + // discard rest of ocr - contains allowed voltage range + for (uint8_t i = 0; i < 3; i++) spiRec(); + } + chipSelectHigh(); + +#ifndef SOFTWARE_SPI + return setSckRate(sckRateID); +#else // SOFTWARE_SPI + return true; +#endif // SOFTWARE_SPI + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Read a 512 byte block from an SD card. + * + * \param[in] blockNumber Logical block to be read. + * \param[out] dst Pointer to the location that will receive the data. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) { +#ifdef SD_CHECK_AND_RETRY + uint8_t retryCnt = 3; + // use address if not SDHC card + if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9; + retry2: + retryCnt --; + if (cardCommand(CMD17, blockNumber)) { + error(SD_CARD_ERROR_CMD17); + if (retryCnt > 0) goto retry; + goto fail; + } + if (!readData(dst, 512)) + { + if (retryCnt > 0) goto retry; + goto fail; + } + return true; + retry: + chipSelectHigh(); + cardCommand(CMD12, 0);//Try sending a stop command, but ignore the result. + errorCode_ = 0; + goto retry2; +#else + // use address if not SDHC card + if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD17, blockNumber)) { + error(SD_CARD_ERROR_CMD17); + goto fail; + } + return readData(dst, 512); +#endif + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Read one data block in a multiple block read sequence + * + * \param[in] dst Pointer to the location for the data to be read. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readData(uint8_t *dst) { + chipSelectLow(); + return readData(dst, 512); +} + +#ifdef SD_CHECK_AND_RETRY +static const uint16_t crctab[] PROGMEM = { + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, + 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, + 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, + 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, + 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, + 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, + 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, + 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, + 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, + 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, + 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, + 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, + 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, + 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, + 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, + 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, + 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, + 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, + 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, + 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, + 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, + 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, + 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 +}; +static uint16_t CRC_CCITT(const uint8_t* data, size_t n) { + uint16_t crc = 0; + for (size_t i = 0; i < n; i++) { + crc = pgm_read_word(&crctab[(crc >> 8 ^ data[i]) & 0XFF]) ^ (crc << 8); + } + return crc; +} +#endif + +//------------------------------------------------------------------------------ +bool Sd2Card::readData(uint8_t* dst, uint16_t count) { + // wait for start block token + uint16_t t0 = millis(); + while ((status_ = spiRec()) == 0XFF) { + if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) { + error(SD_CARD_ERROR_READ_TIMEOUT); + goto fail; + } + } + if (status_ != DATA_START_BLOCK) { + error(SD_CARD_ERROR_READ); + goto fail; + } + // transfer data + spiRead(dst, count); + +#ifdef SD_CHECK_AND_RETRY + { + uint16_t calcCrc = CRC_CCITT(dst, count); + uint16_t recvCrc = spiRec() << 8; + recvCrc |= spiRec(); + if (calcCrc != recvCrc) + { + error(SD_CARD_ERROR_CRC); + goto fail; + } + } +#else + // discard CRC + spiRec(); + spiRec(); +#endif + chipSelectHigh(); + // Toshiba FlashAir Patch. Purge pending status byte. + if (flash_air_compatible_) + spiSend(0XFF); + return true; + + fail: + chipSelectHigh(); + // Toshiba FlashAir Patch. Purge pending status byte. + if (flash_air_compatible_) + spiSend(0XFF); + return false; +} +//------------------------------------------------------------------------------ +/** read CID or CSR register */ +bool Sd2Card::readRegister(uint8_t cmd, void* buf) { + uint8_t* dst = reinterpret_cast(buf); + if (cardCommand(cmd, 0)) { + error(SD_CARD_ERROR_READ_REG); + goto fail; + } + return readData(dst, 16); + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Start a read multiple blocks sequence. + * + * \param[in] blockNumber Address of first block in sequence. + * + * \note This function is used with readData() and readStop() for optimized + * multiple block reads. SPI chipSelect must be low for the entire sequence. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readStart(uint32_t blockNumber) { + if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD18, blockNumber)) { + error(SD_CARD_ERROR_CMD18); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** End a read multiple blocks sequence. + * +* \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readStop() { + chipSelectLow(); + if (cardCommand(CMD12, 0)) { + error(SD_CARD_ERROR_CMD12); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Set the SPI clock rate. + * + * \param[in] sckRateID A value in the range [0, 6]. + * + * The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum + * SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128 + * for \a scsRateID = 6. + * + * \return The value one, true, is returned for success and the value zero, + * false, is returned for an invalid value of \a sckRateID. + */ +bool Sd2Card::setSckRate(uint8_t sckRateID) { + if (sckRateID > 6) { + error(SD_CARD_ERROR_SCK_RATE); + return false; + } + spiRate_ = sckRateID; + return true; +} +//------------------------------------------------------------------------------ +// wait for card to go not busy +bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) { + uint16_t t0 = millis(); + while (spiRec() != 0XFF) { + if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail; + } + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +/** + * Writes a 512 byte block to an SD card. + * + * \param[in] blockNumber Logical block to be written. + * \param[in] src Pointer to the location of the data to be written. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) { + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD24, blockNumber)) { + error(SD_CARD_ERROR_CMD24); + goto fail; + } + if (!writeData(DATA_START_BLOCK, src)) goto fail; + + // wait for flash programming to complete + if (!waitNotBusy(SD_WRITE_TIMEOUT)) { + error(SD_CARD_ERROR_WRITE_TIMEOUT); + goto fail; + } + // response is r2 so get and check two bytes for nonzero + if (cardCommand(CMD13, 0) || spiRec()) { + error(SD_CARD_ERROR_WRITE_PROGRAMMING); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Write one data block in a multiple block write sequence + * \param[in] src Pointer to the location of the data to be written. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeData(const uint8_t* src) { + chipSelectLow(); + // wait for previous write to finish + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + if (!writeData(WRITE_MULTIPLE_TOKEN, src)) goto fail; + chipSelectHigh(); + return true; + + fail: + error(SD_CARD_ERROR_WRITE_MULTIPLE); + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +// send one block of data for write block or write multiple blocks +bool Sd2Card::writeData(uint8_t token, const uint8_t* src) { + spiSendBlock(token, src); + + spiSend(0xff); // dummy crc + spiSend(0xff); // dummy crc + + status_ = spiRec(); + if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) { + error(SD_CARD_ERROR_WRITE); + goto fail; + } + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Start a write multiple blocks sequence. + * + * \param[in] blockNumber Address of first block in sequence. + * \param[in] eraseCount The number of blocks to be pre-erased. + * + * \note This function is used with writeData() and writeStop() + * for optimized multiple block writes. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) { + // send pre-erase count + if (cardAcmd(ACMD23, eraseCount)) { + error(SD_CARD_ERROR_ACMD23); + goto fail; + } + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD25, blockNumber)) { + error(SD_CARD_ERROR_CMD25); + goto fail; + } + chipSelectHigh(); + return true; + + fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** End a write multiple blocks sequence. + * +* \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeStop() { + chipSelectLow(); + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + spiSend(STOP_TRAN_TOKEN); + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + chipSelectHigh(); + return true; + + fail: + error(SD_CARD_ERROR_STOP_TRAN); + chipSelectHigh(); + return false; +} + +//------------------------------------------------------------------------------ +/** Wait for start block token */ +//FIXME Vojtech: Copied from a current version of Sd2Card Arduino code. +// We shall likely upgrade the rest of the Sd2Card. +uint8_t Sd2Card::waitStartBlock(void) { + uint16_t t0 = millis(); + while ((status_ = spiRec()) == 0XFF) { + if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) { + error(SD_CARD_ERROR_READ_TIMEOUT); + goto fail; + } + } + if (status_ != DATA_START_BLOCK) { + error(SD_CARD_ERROR_READ); + goto fail; + } + return true; + + fail: + chipSelectHigh(); + return false; +} + +// Toshiba FlashAir support, copied from +// https://flashair-developers.com/en/documents/tutorials/arduino/ + +//------------------------------------------------------------------------------ +/** Perform Extention Read. */ +uint8_t Sd2Card::readExt(uint32_t arg, uint8_t* dst, uint16_t count) { + uint16_t i; + + // send command and argument. + if (cardCommand(CMD48, arg)) { + error(SD_CARD_ERROR_CMD48); + goto fail; + } + + // wait for start block token. + if (!waitStartBlock()) { + goto fail; + } + + // receive data + for (i = 0; i < count; ++i) { + dst[i] = spiRec(); + } + + // skip dummy bytes and 16-bit crc. + for (; i < 514; ++i) { + spiRec(); + } + + chipSelectHigh(); + spiSend(0xFF); // dummy clock to force FlashAir finish the command. + return true; + + fail: + chipSelectHigh(); + return false; +} + +//------------------------------------------------------------------------------ +/** + * Read an extension register space. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +uint8_t Sd2Card::readExtMemory(uint8_t mio, uint8_t func, + uint32_t addr, uint16_t count, uint8_t* dst) { + uint32_t offset = addr & 0x1FF; + if (offset + count > 512) count = 512 - offset; + + if (count == 0) return true; + + uint32_t arg = + (((uint32_t)mio & 0x1) << 31) | + (mio ? (((uint32_t)func & 0x7) << 28) : (((uint32_t)func & 0xF) << 27)) | + ((addr & 0x1FFFF) << 9) | + ((count - 1) & 0x1FF); + + return readExt(arg, dst, count); +} + +#endif diff --git a/Firmware/Sd2Card.h b/Firmware/Sd2Card.h index f3936f4d0..537d249c9 100644 --- a/Firmware/Sd2Card.h +++ b/Firmware/Sd2Card.h @@ -1,262 +1,262 @@ -/* Arduino Sd2Card Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - * - * This Library 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 Library 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 the Arduino Sd2Card Library. If not, see - * . - */ - -#include "Marlin.h" -#ifdef SDSUPPORT - -#ifndef Sd2Card_h -#define Sd2Card_h -/** - * \file - * \brief Sd2Card class for V2 SD/SDHC cards - */ -#include "SdFatConfig.h" -#include "Sd2PinMap.h" -#include "SdInfo.h" -//------------------------------------------------------------------------------ -// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6 -/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */ -uint8_t const SPI_FULL_SPEED = 0; -/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */ -uint8_t const SPI_HALF_SPEED = 1; -/** Set SCK rate to F_CPU/8. See Sd2Card::setSckRate(). */ -uint8_t const SPI_QUARTER_SPEED = 2; -/** Set SCK rate to F_CPU/16. See Sd2Card::setSckRate(). */ -uint8_t const SPI_EIGHTH_SPEED = 3; -/** Set SCK rate to F_CPU/32. See Sd2Card::setSckRate(). */ -uint8_t const SPI_SIXTEENTH_SPEED = 4; -//------------------------------------------------------------------------------ -/** init timeout ms */ -uint16_t const SD_INIT_TIMEOUT = 2000; -/** erase timeout ms */ -uint16_t const SD_ERASE_TIMEOUT = 10000; -/** read timeout ms */ -uint16_t const SD_READ_TIMEOUT = 300; -/** write time out ms */ -uint16_t const SD_WRITE_TIMEOUT = 600; -//------------------------------------------------------------------------------ -// SD card errors -/** timeout error for command CMD0 (initialize card in SPI mode) */ -uint8_t const SD_CARD_ERROR_CMD0 = 0X1; -/** CMD8 was not accepted - not a valid SD card*/ -uint8_t const SD_CARD_ERROR_CMD8 = 0X2; -/** card returned an error response for CMD12 (write stop) */ -uint8_t const SD_CARD_ERROR_CMD12 = 0X3; -/** card returned an error response for CMD17 (read block) */ -uint8_t const SD_CARD_ERROR_CMD17 = 0X4; -/** card returned an error response for CMD18 (read multiple block) */ -uint8_t const SD_CARD_ERROR_CMD18 = 0X5; -/** card returned an error response for CMD24 (write block) */ -uint8_t const SD_CARD_ERROR_CMD24 = 0X6; -/** WRITE_MULTIPLE_BLOCKS command failed */ -uint8_t const SD_CARD_ERROR_CMD25 = 0X7; -/** card returned an error response for CMD58 (read OCR) */ -uint8_t const SD_CARD_ERROR_CMD58 = 0X8; -/** SET_WR_BLK_ERASE_COUNT failed */ -uint8_t const SD_CARD_ERROR_ACMD23 = 0X9; -/** ACMD41 initialization process timeout */ -uint8_t const SD_CARD_ERROR_ACMD41 = 0XA; -/** card returned a bad CSR version field */ -uint8_t const SD_CARD_ERROR_BAD_CSD = 0XB; -/** erase block group command failed */ -uint8_t const SD_CARD_ERROR_ERASE = 0XC; -/** card not capable of single block erase */ -uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0XD; -/** Erase sequence timed out */ -uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0XE; -/** card returned an error token instead of read data */ -uint8_t const SD_CARD_ERROR_READ = 0XF; -/** read CID or CSD failed */ -uint8_t const SD_CARD_ERROR_READ_REG = 0X10; -/** timeout while waiting for start of read data */ -uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X11; -/** card did not accept STOP_TRAN_TOKEN */ -uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X12; -/** card returned an error token as a response to a write operation */ -uint8_t const SD_CARD_ERROR_WRITE = 0X13; -/** attempt to write protected block zero */ -uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X14; // REMOVE - not used -/** card did not go ready for a multiple block write */ -uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X15; -/** card returned an error to a CMD13 status check after a write */ -uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X16; -/** timeout occurred during write programming */ -uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X17; -/** incorrect rate selected */ -uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18; -/** init() not called */ -uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19; -/** crc check error */ -uint8_t const SD_CARD_ERROR_CRC = 0X20; - -/** Toshiba FlashAir: iSDIO */ -uint8_t const SD_CARD_ERROR_CMD48 = 0x80; -/** Toshiba FlashAir: iSDIO */ -uint8_t const SD_CARD_ERROR_CMD49 = 0x81; - -//------------------------------------------------------------------------------ -// card types -/** Standard capacity V1 SD card */ -uint8_t const SD_CARD_TYPE_SD1 = 1; -/** Standard capacity V2 SD card */ -uint8_t const SD_CARD_TYPE_SD2 = 2; -/** High Capacity SD card */ -uint8_t const SD_CARD_TYPE_SDHC = 3; -/** - * define SOFTWARE_SPI to use bit-bang SPI - */ -//------------------------------------------------------------------------------ -#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__)) -#define SOFTWARE_SPI -#elif USE_SOFTWARE_SPI -#define SOFTWARE_SPI -#endif // MEGA_SOFT_SPI -//------------------------------------------------------------------------------ -// SPI pin definitions - do not edit here - change in SdFatConfig.h -// -#ifndef SOFTWARE_SPI -// hardware pin defs -/** The default chip select pin for the SD card is SS. */ -uint8_t const SD_CHIP_SELECT_PIN = SS_PIN; -// The following three pins must not be redefined for hardware SPI. -/** SPI Master Out Slave In pin */ -uint8_t const SPI_MOSI_PIN = MOSI_PIN; -/** SPI Master In Slave Out pin */ -uint8_t const SPI_MISO_PIN = MISO_PIN; -/** SPI Clock pin */ -uint8_t const SPI_SCK_PIN = SCK_PIN; - -#else // SOFTWARE_SPI - -/** SPI chip select pin */ -uint8_t const SD_CHIP_SELECT_PIN = SOFT_SPI_CS_PIN; -/** SPI Master Out Slave In pin */ -uint8_t const SPI_MOSI_PIN = SOFT_SPI_MOSI_PIN; -/** SPI Master In Slave Out pin */ -uint8_t const SPI_MISO_PIN = SOFT_SPI_MISO_PIN; -/** SPI Clock pin */ -uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN; -#endif // SOFTWARE_SPI -//------------------------------------------------------------------------------ -/** - * \class Sd2Card - * \brief Raw access to SD and SDHC flash memory cards. - */ -class Sd2Card { - public: - /** Construct an instance of Sd2Card. */ - Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0), flash_air_compatible_(false) {} - uint32_t cardSize(); - bool erase(uint32_t firstBlock, uint32_t lastBlock); - bool eraseSingleBlockEnable(); - /** - * Set SD error code. - * \param[in] code value for error code. - */ - void error(uint8_t code) {errorCode_ = code;} - /** - * \return error code for last error. See Sd2Card.h for a list of error codes. - */ - int errorCode() const {return errorCode_;} - /** \return error data for last error. */ - int errorData() const {return status_;} - /** - * Initialize an SD flash memory card with default clock rate and chip - * select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). - * - * \return true for success or false for failure. - */ - bool init(uint8_t sckRateID = SPI_FULL_SPEED, - uint8_t chipSelectPin = SD_CHIP_SELECT_PIN); - bool readBlock(uint32_t block, uint8_t* dst); - /** - * Read a card's CID register. The CID contains card identification - * information such as Manufacturer ID, Product name, Product serial - * number and Manufacturing date. - * - * \param[out] cid pointer to area for returned data. - * - * \return true for success or false for failure. - */ - bool readCID(cid_t* cid) { - return readRegister(CMD10, cid); - } - /** - * Read a card's CSD register. The CSD contains Card-Specific Data that - * provides information regarding access to the card's contents. - * - * \param[out] csd pointer to area for returned data. - * - * \return true for success or false for failure. - */ - bool readCSD(csd_t* csd) { - return readRegister(CMD9, csd); - } - bool readData(uint8_t *dst); - bool readStart(uint32_t blockNumber); - bool readStop(); - bool setSckRate(uint8_t sckRateID); - /** Return the card type: SD V1, SD V2 or SDHC - * \return 0 - SD V1, 1 - SD V2, or 3 - SDHC. - */ - int type() const {return type_;} - bool writeBlock(uint32_t blockNumber, const uint8_t* src); - bool writeData(const uint8_t* src); - bool writeStart(uint32_t blockNumber, uint32_t eraseCount); - bool writeStop(); - - // Toshiba FlashAir support - uint8_t readExtMemory(uint8_t mio, uint8_t func, uint32_t addr, uint16_t count, uint8_t* dst); - - void setFlashAirCompatible(bool flashAirCompatible) { flash_air_compatible_ = flashAirCompatible; } - bool getFlashAirCompatible() const { return flash_air_compatible_; } - - private: - //---------------------------------------------------------------------------- - uint8_t chipSelectPin_; - uint8_t errorCode_; - uint8_t spiRate_; - uint8_t status_; - uint8_t type_; - bool flash_air_compatible_; - // private functions - uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { - cardCommand(CMD55, 0); - return cardCommand(cmd, arg); - } - uint8_t cardCommand(uint8_t cmd, uint32_t arg); - - bool readData(uint8_t* dst, uint16_t count); - bool readRegister(uint8_t cmd, void* buf); - void chipSelectHigh(); - void chipSelectLow(); - void type(uint8_t value) {type_ = value;} - bool waitNotBusy(uint16_t timeoutMillis); - bool writeData(uint8_t token, const uint8_t* src); - - - // Toshiba FlashAir support - uint8_t waitStartBlock(void); - uint8_t readExt(uint32_t arg, uint8_t* dst, uint16_t count); -}; -#endif // Sd2Card_h - - +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library 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 Library 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 the Arduino Sd2Card Library. If not, see + * . + */ + +#include "Marlin.h" +#ifdef SDSUPPORT + +#ifndef Sd2Card_h +#define Sd2Card_h +/** + * \file + * \brief Sd2Card class for V2 SD/SDHC cards + */ +#include "SdFatConfig.h" +#include "Sd2PinMap.h" +#include "SdInfo.h" +//------------------------------------------------------------------------------ +// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6 +/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */ +uint8_t const SPI_FULL_SPEED = 0; +/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */ +uint8_t const SPI_HALF_SPEED = 1; +/** Set SCK rate to F_CPU/8. See Sd2Card::setSckRate(). */ +uint8_t const SPI_QUARTER_SPEED = 2; +/** Set SCK rate to F_CPU/16. See Sd2Card::setSckRate(). */ +uint8_t const SPI_EIGHTH_SPEED = 3; +/** Set SCK rate to F_CPU/32. See Sd2Card::setSckRate(). */ +uint8_t const SPI_SIXTEENTH_SPEED = 4; +//------------------------------------------------------------------------------ +/** init timeout ms */ +uint16_t const SD_INIT_TIMEOUT = 2000; +/** erase timeout ms */ +uint16_t const SD_ERASE_TIMEOUT = 10000; +/** read timeout ms */ +uint16_t const SD_READ_TIMEOUT = 300; +/** write time out ms */ +uint16_t const SD_WRITE_TIMEOUT = 600; +//------------------------------------------------------------------------------ +// SD card errors +/** timeout error for command CMD0 (initialize card in SPI mode) */ +uint8_t const SD_CARD_ERROR_CMD0 = 0X1; +/** CMD8 was not accepted - not a valid SD card*/ +uint8_t const SD_CARD_ERROR_CMD8 = 0X2; +/** card returned an error response for CMD12 (write stop) */ +uint8_t const SD_CARD_ERROR_CMD12 = 0X3; +/** card returned an error response for CMD17 (read block) */ +uint8_t const SD_CARD_ERROR_CMD17 = 0X4; +/** card returned an error response for CMD18 (read multiple block) */ +uint8_t const SD_CARD_ERROR_CMD18 = 0X5; +/** card returned an error response for CMD24 (write block) */ +uint8_t const SD_CARD_ERROR_CMD24 = 0X6; +/** WRITE_MULTIPLE_BLOCKS command failed */ +uint8_t const SD_CARD_ERROR_CMD25 = 0X7; +/** card returned an error response for CMD58 (read OCR) */ +uint8_t const SD_CARD_ERROR_CMD58 = 0X8; +/** SET_WR_BLK_ERASE_COUNT failed */ +uint8_t const SD_CARD_ERROR_ACMD23 = 0X9; +/** ACMD41 initialization process timeout */ +uint8_t const SD_CARD_ERROR_ACMD41 = 0XA; +/** card returned a bad CSR version field */ +uint8_t const SD_CARD_ERROR_BAD_CSD = 0XB; +/** erase block group command failed */ +uint8_t const SD_CARD_ERROR_ERASE = 0XC; +/** card not capable of single block erase */ +uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0XD; +/** Erase sequence timed out */ +uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0XE; +/** card returned an error token instead of read data */ +uint8_t const SD_CARD_ERROR_READ = 0XF; +/** read CID or CSD failed */ +uint8_t const SD_CARD_ERROR_READ_REG = 0X10; +/** timeout while waiting for start of read data */ +uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X11; +/** card did not accept STOP_TRAN_TOKEN */ +uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X12; +/** card returned an error token as a response to a write operation */ +uint8_t const SD_CARD_ERROR_WRITE = 0X13; +/** attempt to write protected block zero */ +uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X14; // REMOVE - not used +/** card did not go ready for a multiple block write */ +uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X15; +/** card returned an error to a CMD13 status check after a write */ +uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X16; +/** timeout occurred during write programming */ +uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X17; +/** incorrect rate selected */ +uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18; +/** init() not called */ +uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19; +/** crc check error */ +uint8_t const SD_CARD_ERROR_CRC = 0X20; + +/** Toshiba FlashAir: iSDIO */ +uint8_t const SD_CARD_ERROR_CMD48 = 0x80; +/** Toshiba FlashAir: iSDIO */ +uint8_t const SD_CARD_ERROR_CMD49 = 0x81; + +//------------------------------------------------------------------------------ +// card types +/** Standard capacity V1 SD card */ +uint8_t const SD_CARD_TYPE_SD1 = 1; +/** Standard capacity V2 SD card */ +uint8_t const SD_CARD_TYPE_SD2 = 2; +/** High Capacity SD card */ +uint8_t const SD_CARD_TYPE_SDHC = 3; +/** + * define SOFTWARE_SPI to use bit-bang SPI + */ +//------------------------------------------------------------------------------ +#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__)) +#define SOFTWARE_SPI +#elif USE_SOFTWARE_SPI +#define SOFTWARE_SPI +#endif // MEGA_SOFT_SPI +//------------------------------------------------------------------------------ +// SPI pin definitions - do not edit here - change in SdFatConfig.h +// +#ifndef SOFTWARE_SPI +// hardware pin defs +/** The default chip select pin for the SD card is SS. */ +uint8_t const SD_CHIP_SELECT_PIN = SS_PIN; +// The following three pins must not be redefined for hardware SPI. +/** SPI Master Out Slave In pin */ +uint8_t const SPI_MOSI_PIN = MOSI_PIN; +/** SPI Master In Slave Out pin */ +uint8_t const SPI_MISO_PIN = MISO_PIN; +/** SPI Clock pin */ +uint8_t const SPI_SCK_PIN = SCK_PIN; + +#else // SOFTWARE_SPI + +/** SPI chip select pin */ +uint8_t const SD_CHIP_SELECT_PIN = SOFT_SPI_CS_PIN; +/** SPI Master Out Slave In pin */ +uint8_t const SPI_MOSI_PIN = SOFT_SPI_MOSI_PIN; +/** SPI Master In Slave Out pin */ +uint8_t const SPI_MISO_PIN = SOFT_SPI_MISO_PIN; +/** SPI Clock pin */ +uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN; +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** + * \class Sd2Card + * \brief Raw access to SD and SDHC flash memory cards. + */ +class Sd2Card { + public: + /** Construct an instance of Sd2Card. */ + Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0), flash_air_compatible_(false) {} + uint32_t cardSize(); + bool erase(uint32_t firstBlock, uint32_t lastBlock); + bool eraseSingleBlockEnable(); + /** + * Set SD error code. + * \param[in] code value for error code. + */ + void error(uint8_t code) {errorCode_ = code;} + /** + * \return error code for last error. See Sd2Card.h for a list of error codes. + */ + int errorCode() const {return errorCode_;} + /** \return error data for last error. */ + int errorData() const {return status_;} + /** + * Initialize an SD flash memory card with default clock rate and chip + * select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). + * + * \return true for success or false for failure. + */ + bool init(uint8_t sckRateID = SPI_FULL_SPEED, + uint8_t chipSelectPin = SD_CHIP_SELECT_PIN); + bool readBlock(uint32_t block, uint8_t* dst); + /** + * Read a card's CID register. The CID contains card identification + * information such as Manufacturer ID, Product name, Product serial + * number and Manufacturing date. + * + * \param[out] cid pointer to area for returned data. + * + * \return true for success or false for failure. + */ + bool readCID(cid_t* cid) { + return readRegister(CMD10, cid); + } + /** + * Read a card's CSD register. The CSD contains Card-Specific Data that + * provides information regarding access to the card's contents. + * + * \param[out] csd pointer to area for returned data. + * + * \return true for success or false for failure. + */ + bool readCSD(csd_t* csd) { + return readRegister(CMD9, csd); + } + bool readData(uint8_t *dst); + bool readStart(uint32_t blockNumber); + bool readStop(); + bool setSckRate(uint8_t sckRateID); + /** Return the card type: SD V1, SD V2 or SDHC + * \return 0 - SD V1, 1 - SD V2, or 3 - SDHC. + */ + int type() const {return type_;} + bool writeBlock(uint32_t blockNumber, const uint8_t* src); + bool writeData(const uint8_t* src); + bool writeStart(uint32_t blockNumber, uint32_t eraseCount); + bool writeStop(); + + // Toshiba FlashAir support + uint8_t readExtMemory(uint8_t mio, uint8_t func, uint32_t addr, uint16_t count, uint8_t* dst); + + void setFlashAirCompatible(bool flashAirCompatible) { flash_air_compatible_ = flashAirCompatible; } + bool getFlashAirCompatible() const { return flash_air_compatible_; } + + private: + //---------------------------------------------------------------------------- + uint8_t chipSelectPin_; + uint8_t errorCode_; + uint8_t spiRate_; + uint8_t status_; + uint8_t type_; + bool flash_air_compatible_; + // private functions + uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { + cardCommand(CMD55, 0); + return cardCommand(cmd, arg); + } + uint8_t cardCommand(uint8_t cmd, uint32_t arg); + + bool readData(uint8_t* dst, uint16_t count); + bool readRegister(uint8_t cmd, void* buf); + void chipSelectHigh(); + void chipSelectLow(); + void type(uint8_t value) {type_ = value;} + bool waitNotBusy(uint16_t timeoutMillis); + bool writeData(uint8_t token, const uint8_t* src); + + + // Toshiba FlashAir support + uint8_t waitStartBlock(void); + uint8_t readExt(uint32_t arg, uint8_t* dst, uint16_t count); +}; +#endif // Sd2Card_h + + #endif \ No newline at end of file diff --git a/Firmware/Sd2PinMap.h b/Firmware/Sd2PinMap.h index 93ab943ce..8a608731e 100644 --- a/Firmware/Sd2PinMap.h +++ b/Firmware/Sd2PinMap.h @@ -1,368 +1,368 @@ -/* Arduino SdFat Library - * Copyright (C) 2010 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library 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 Library 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 the Arduino SdFat Library. If not, see - * . - */ -// Warning this file was generated by a program. -#include "Marlin.h" -#ifdef SDSUPPORT - -#ifndef Sd2PinMap_h -#define Sd2PinMap_h -#include -//------------------------------------------------------------------------------ -/** struct for mapping digital pins */ -struct pin_map_t { - volatile uint8_t* ddr; - volatile uint8_t* pin; - volatile uint8_t* port; - uint8_t bit; -}; -//------------------------------------------------------------------------------ -#if defined(__AVR_ATmega1280__)\ -|| defined(__AVR_ATmega2560__) -// Mega - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 20; // D1 -uint8_t const SCL_PIN = 21; // D0 - -#undef MOSI_PIN -#undef MISO_PIN -// SPI port -uint8_t const SS_PIN = 53; // B0 -uint8_t const MOSI_PIN = 51; // B2 -uint8_t const MISO_PIN = 50; // B3 -uint8_t const SCK_PIN = 52; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRE, &PINE, &PORTE, 0}, // E0 0 - {&DDRE, &PINE, &PORTE, 1}, // E1 1 - {&DDRE, &PINE, &PORTE, 4}, // E4 2 - {&DDRE, &PINE, &PORTE, 5}, // E5 3 - {&DDRG, &PING, &PORTG, 5}, // G5 4 - {&DDRE, &PINE, &PORTE, 3}, // E3 5 - {&DDRH, &PINH, &PORTH, 3}, // H3 6 - {&DDRH, &PINH, &PORTH, 4}, // H4 7 - {&DDRH, &PINH, &PORTH, 5}, // H5 8 - {&DDRH, &PINH, &PORTH, 6}, // H6 9 - {&DDRB, &PINB, &PORTB, 4}, // B4 10 - {&DDRB, &PINB, &PORTB, 5}, // B5 11 - {&DDRB, &PINB, &PORTB, 6}, // B6 12 - {&DDRB, &PINB, &PORTB, 7}, // B7 13 - {&DDRJ, &PINJ, &PORTJ, 1}, // J1 14 - {&DDRJ, &PINJ, &PORTJ, 0}, // J0 15 - {&DDRH, &PINH, &PORTH, 1}, // H1 16 - {&DDRH, &PINH, &PORTH, 0}, // H0 17 - {&DDRD, &PIND, &PORTD, 3}, // D3 18 - {&DDRD, &PIND, &PORTD, 2}, // D2 19 - {&DDRD, &PIND, &PORTD, 1}, // D1 20 - {&DDRD, &PIND, &PORTD, 0}, // D0 21 - {&DDRA, &PINA, &PORTA, 0}, // A0 22 - {&DDRA, &PINA, &PORTA, 1}, // A1 23 - {&DDRA, &PINA, &PORTA, 2}, // A2 24 - {&DDRA, &PINA, &PORTA, 3}, // A3 25 - {&DDRA, &PINA, &PORTA, 4}, // A4 26 - {&DDRA, &PINA, &PORTA, 5}, // A5 27 - {&DDRA, &PINA, &PORTA, 6}, // A6 28 - {&DDRA, &PINA, &PORTA, 7}, // A7 29 - {&DDRC, &PINC, &PORTC, 7}, // C7 30 - {&DDRC, &PINC, &PORTC, 6}, // C6 31 - {&DDRC, &PINC, &PORTC, 5}, // C5 32 - {&DDRC, &PINC, &PORTC, 4}, // C4 33 - {&DDRC, &PINC, &PORTC, 3}, // C3 34 - {&DDRC, &PINC, &PORTC, 2}, // C2 35 - {&DDRC, &PINC, &PORTC, 1}, // C1 36 - {&DDRC, &PINC, &PORTC, 0}, // C0 37 - {&DDRD, &PIND, &PORTD, 7}, // D7 38 - {&DDRG, &PING, &PORTG, 2}, // G2 39 - {&DDRG, &PING, &PORTG, 1}, // G1 40 - {&DDRG, &PING, &PORTG, 0}, // G0 41 - {&DDRL, &PINL, &PORTL, 7}, // L7 42 - {&DDRL, &PINL, &PORTL, 6}, // L6 43 - {&DDRL, &PINL, &PORTL, 5}, // L5 44 - {&DDRL, &PINL, &PORTL, 4}, // L4 45 - {&DDRL, &PINL, &PORTL, 3}, // L3 46 - {&DDRL, &PINL, &PORTL, 2}, // L2 47 - {&DDRL, &PINL, &PORTL, 1}, // L1 48 - {&DDRL, &PINL, &PORTL, 0}, // L0 49 - {&DDRB, &PINB, &PORTB, 3}, // B3 50 - {&DDRB, &PINB, &PORTB, 2}, // B2 51 - {&DDRB, &PINB, &PORTB, 1}, // B1 52 - {&DDRB, &PINB, &PORTB, 0}, // B0 53 - {&DDRF, &PINF, &PORTF, 0}, // F0 54 - {&DDRF, &PINF, &PORTF, 1}, // F1 55 - {&DDRF, &PINF, &PORTF, 2}, // F2 56 - {&DDRF, &PINF, &PORTF, 3}, // F3 57 - {&DDRF, &PINF, &PORTF, 4}, // F4 58 - {&DDRF, &PINF, &PORTF, 5}, // F5 59 - {&DDRF, &PINF, &PORTF, 6}, // F6 60 - {&DDRF, &PINF, &PORTF, 7}, // F7 61 - {&DDRK, &PINK, &PORTK, 0}, // K0 62 - {&DDRK, &PINK, &PORTK, 1}, // K1 63 - {&DDRK, &PINK, &PORTK, 2}, // K2 64 - {&DDRK, &PINK, &PORTK, 3}, // K3 65 - {&DDRK, &PINK, &PORTK, 4}, // K4 66 - {&DDRK, &PINK, &PORTK, 5}, // K5 67 - {&DDRK, &PINK, &PORTK, 6}, // K6 68 - {&DDRK, &PINK, &PORTK, 7} // K7 69 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega644P__)\ -|| defined(__AVR_ATmega644__)\ -|| defined(__AVR_ATmega1284P__) -// Sanguino - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 17; // C1 -uint8_t const SCL_PIN = 18; // C2 - -// SPI port -uint8_t const SS_PIN = 4; // B4 -uint8_t const MOSI_PIN = 5; // B5 -uint8_t const MISO_PIN = 6; // B6 -uint8_t const SCK_PIN = 7; // B7 - -static const pin_map_t digitalPinMap[] = { - {&DDRB, &PINB, &PORTB, 0}, // B0 0 - {&DDRB, &PINB, &PORTB, 1}, // B1 1 - {&DDRB, &PINB, &PORTB, 2}, // B2 2 - {&DDRB, &PINB, &PORTB, 3}, // B3 3 - {&DDRB, &PINB, &PORTB, 4}, // B4 4 - {&DDRB, &PINB, &PORTB, 5}, // B5 5 - {&DDRB, &PINB, &PORTB, 6}, // B6 6 - {&DDRB, &PINB, &PORTB, 7}, // B7 7 - {&DDRD, &PIND, &PORTD, 0}, // D0 8 - {&DDRD, &PIND, &PORTD, 1}, // D1 9 - {&DDRD, &PIND, &PORTD, 2}, // D2 10 - {&DDRD, &PIND, &PORTD, 3}, // D3 11 - {&DDRD, &PIND, &PORTD, 4}, // D4 12 - {&DDRD, &PIND, &PORTD, 5}, // D5 13 - {&DDRD, &PIND, &PORTD, 6}, // D6 14 - {&DDRD, &PIND, &PORTD, 7}, // D7 15 - {&DDRC, &PINC, &PORTC, 0}, // C0 16 - {&DDRC, &PINC, &PORTC, 1}, // C1 17 - {&DDRC, &PINC, &PORTC, 2}, // C2 18 - {&DDRC, &PINC, &PORTC, 3}, // C3 19 - {&DDRC, &PINC, &PORTC, 4}, // C4 20 - {&DDRC, &PINC, &PORTC, 5}, // C5 21 - {&DDRC, &PINC, &PORTC, 6}, // C6 22 - {&DDRC, &PINC, &PORTC, 7}, // C7 23 - {&DDRA, &PINA, &PORTA, 7}, // A7 24 - {&DDRA, &PINA, &PORTA, 6}, // A6 25 - {&DDRA, &PINA, &PORTA, 5}, // A5 26 - {&DDRA, &PINA, &PORTA, 4}, // A4 27 - {&DDRA, &PINA, &PORTA, 3}, // A3 28 - {&DDRA, &PINA, &PORTA, 2}, // A2 29 - {&DDRA, &PINA, &PORTA, 1}, // A1 30 - {&DDRA, &PINA, &PORTA, 0} // A0 31 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega32U4__) -// Teensy 2.0 - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 6; // D1 -uint8_t const SCL_PIN = 5; // D0 - -// SPI port -uint8_t const SS_PIN = 0; // B0 -uint8_t const MOSI_PIN = 2; // B2 -uint8_t const MISO_PIN = 3; // B3 -uint8_t const SCK_PIN = 1; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRB, &PINB, &PORTB, 0}, // B0 0 - {&DDRB, &PINB, &PORTB, 1}, // B1 1 - {&DDRB, &PINB, &PORTB, 2}, // B2 2 - {&DDRB, &PINB, &PORTB, 3}, // B3 3 - {&DDRB, &PINB, &PORTB, 7}, // B7 4 - {&DDRD, &PIND, &PORTD, 0}, // D0 5 - {&DDRD, &PIND, &PORTD, 1}, // D1 6 - {&DDRD, &PIND, &PORTD, 2}, // D2 7 - {&DDRD, &PIND, &PORTD, 3}, // D3 8 - {&DDRC, &PINC, &PORTC, 6}, // C6 9 - {&DDRC, &PINC, &PORTC, 7}, // C7 10 - {&DDRD, &PIND, &PORTD, 6}, // D6 11 - {&DDRD, &PIND, &PORTD, 7}, // D7 12 - {&DDRB, &PINB, &PORTB, 4}, // B4 13 - {&DDRB, &PINB, &PORTB, 5}, // B5 14 - {&DDRB, &PINB, &PORTB, 6}, // B6 15 - {&DDRF, &PINF, &PORTF, 7}, // F7 16 - {&DDRF, &PINF, &PORTF, 6}, // F6 17 - {&DDRF, &PINF, &PORTF, 5}, // F5 18 - {&DDRF, &PINF, &PORTF, 4}, // F4 19 - {&DDRF, &PINF, &PORTF, 1}, // F1 20 - {&DDRF, &PINF, &PORTF, 0}, // F0 21 - {&DDRD, &PIND, &PORTD, 4}, // D4 22 - {&DDRD, &PIND, &PORTD, 5}, // D5 23 - {&DDRE, &PINE, &PORTE, 6} // E6 24 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_AT90USB646__)\ -|| defined(__AVR_AT90USB1286__) -// Teensy++ 1.0 & 2.0 - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 1; // D1 -uint8_t const SCL_PIN = 0; // D0 - -// SPI port -uint8_t const SS_PIN = 20; // B0 -uint8_t const MOSI_PIN = 22; // B2 -uint8_t const MISO_PIN = 23; // B3 -uint8_t const SCK_PIN = 21; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRD, &PIND, &PORTD, 0}, // D0 0 - {&DDRD, &PIND, &PORTD, 1}, // D1 1 - {&DDRD, &PIND, &PORTD, 2}, // D2 2 - {&DDRD, &PIND, &PORTD, 3}, // D3 3 - {&DDRD, &PIND, &PORTD, 4}, // D4 4 - {&DDRD, &PIND, &PORTD, 5}, // D5 5 - {&DDRD, &PIND, &PORTD, 6}, // D6 6 - {&DDRD, &PIND, &PORTD, 7}, // D7 7 - {&DDRE, &PINE, &PORTE, 0}, // E0 8 - {&DDRE, &PINE, &PORTE, 1}, // E1 9 - {&DDRC, &PINC, &PORTC, 0}, // C0 10 - {&DDRC, &PINC, &PORTC, 1}, // C1 11 - {&DDRC, &PINC, &PORTC, 2}, // C2 12 - {&DDRC, &PINC, &PORTC, 3}, // C3 13 - {&DDRC, &PINC, &PORTC, 4}, // C4 14 - {&DDRC, &PINC, &PORTC, 5}, // C5 15 - {&DDRC, &PINC, &PORTC, 6}, // C6 16 - {&DDRC, &PINC, &PORTC, 7}, // C7 17 - {&DDRE, &PINE, &PORTE, 6}, // E6 18 - {&DDRE, &PINE, &PORTE, 7}, // E7 19 - {&DDRB, &PINB, &PORTB, 0}, // B0 20 - {&DDRB, &PINB, &PORTB, 1}, // B1 21 - {&DDRB, &PINB, &PORTB, 2}, // B2 22 - {&DDRB, &PINB, &PORTB, 3}, // B3 23 - {&DDRB, &PINB, &PORTB, 4}, // B4 24 - {&DDRB, &PINB, &PORTB, 5}, // B5 25 - {&DDRB, &PINB, &PORTB, 6}, // B6 26 - {&DDRB, &PINB, &PORTB, 7}, // B7 27 - {&DDRA, &PINA, &PORTA, 0}, // A0 28 - {&DDRA, &PINA, &PORTA, 1}, // A1 29 - {&DDRA, &PINA, &PORTA, 2}, // A2 30 - {&DDRA, &PINA, &PORTA, 3}, // A3 31 - {&DDRA, &PINA, &PORTA, 4}, // A4 32 - {&DDRA, &PINA, &PORTA, 5}, // A5 33 - {&DDRA, &PINA, &PORTA, 6}, // A6 34 - {&DDRA, &PINA, &PORTA, 7}, // A7 35 - {&DDRE, &PINE, &PORTE, 4}, // E4 36 - {&DDRE, &PINE, &PORTE, 5}, // E5 37 - {&DDRF, &PINF, &PORTF, 0}, // F0 38 - {&DDRF, &PINF, &PORTF, 1}, // F1 39 - {&DDRF, &PINF, &PORTF, 2}, // F2 40 - {&DDRF, &PINF, &PORTF, 3}, // F3 41 - {&DDRF, &PINF, &PORTF, 4}, // F4 42 - {&DDRF, &PINF, &PORTF, 5}, // F5 43 - {&DDRF, &PINF, &PORTF, 6}, // F6 44 - {&DDRF, &PINF, &PORTF, 7} // F7 45 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega168__)\ -||defined(__AVR_ATmega168P__)\ -||defined(__AVR_ATmega328P__) -// 168 and 328 Arduinos - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 18; // C4 -uint8_t const SCL_PIN = 19; // C5 - -// SPI port -uint8_t const SS_PIN = 10; // B2 -uint8_t const MOSI_PIN = 11; // B3 -uint8_t const MISO_PIN = 12; // B4 -uint8_t const SCK_PIN = 13; // B5 - -static const pin_map_t digitalPinMap[] = { - {&DDRD, &PIND, &PORTD, 0}, // D0 0 - {&DDRD, &PIND, &PORTD, 1}, // D1 1 - {&DDRD, &PIND, &PORTD, 2}, // D2 2 - {&DDRD, &PIND, &PORTD, 3}, // D3 3 - {&DDRD, &PIND, &PORTD, 4}, // D4 4 - {&DDRD, &PIND, &PORTD, 5}, // D5 5 - {&DDRD, &PIND, &PORTD, 6}, // D6 6 - {&DDRD, &PIND, &PORTD, 7}, // D7 7 - {&DDRB, &PINB, &PORTB, 0}, // B0 8 - {&DDRB, &PINB, &PORTB, 1}, // B1 9 - {&DDRB, &PINB, &PORTB, 2}, // B2 10 - {&DDRB, &PINB, &PORTB, 3}, // B3 11 - {&DDRB, &PINB, &PORTB, 4}, // B4 12 - {&DDRB, &PINB, &PORTB, 5}, // B5 13 - {&DDRC, &PINC, &PORTC, 0}, // C0 14 - {&DDRC, &PINC, &PORTC, 1}, // C1 15 - {&DDRC, &PINC, &PORTC, 2}, // C2 16 - {&DDRC, &PINC, &PORTC, 3}, // C3 17 - {&DDRC, &PINC, &PORTC, 4}, // C4 18 - {&DDRC, &PINC, &PORTC, 5} // C5 19 -}; -#else // defined(__AVR_ATmega1280__) -#error unknown chip -#endif // defined(__AVR_ATmega1280__) -//------------------------------------------------------------------------------ -static const uint8_t digitalPinCount = sizeof(digitalPinMap)/sizeof(pin_map_t); - -uint8_t badPinNumber(void) - __attribute__((error("Pin number is too large or not a constant"))); - -static inline __attribute__((always_inline)) - bool getPinMode(uint8_t pin) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - return (*digitalPinMap[pin].ddr >> digitalPinMap[pin].bit) & 1; - } else { - return badPinNumber(); - } -} -static inline __attribute__((always_inline)) - void setPinMode(uint8_t pin, uint8_t mode) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - if (mode) { - *digitalPinMap[pin].ddr |= 1 << digitalPinMap[pin].bit; - } else { - *digitalPinMap[pin].ddr &= ~(1 << digitalPinMap[pin].bit); - } - } else { - badPinNumber(); - } -} -static inline __attribute__((always_inline)) - bool fastDigitalRead(uint8_t pin) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - return (*digitalPinMap[pin].pin >> digitalPinMap[pin].bit) & 1; - } else { - return badPinNumber(); - } -} -static inline __attribute__((always_inline)) - void fastDigitalWrite(uint8_t pin, uint8_t value) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - if (value) { - *digitalPinMap[pin].port |= 1 << digitalPinMap[pin].bit; - } else { - *digitalPinMap[pin].port &= ~(1 << digitalPinMap[pin].bit); - } - } else { - badPinNumber(); - } -} -#endif // Sd2PinMap_h - - +/* Arduino SdFat Library + * Copyright (C) 2010 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library 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 Library 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 the Arduino SdFat Library. If not, see + * . + */ +// Warning this file was generated by a program. +#include "Marlin.h" +#ifdef SDSUPPORT + +#ifndef Sd2PinMap_h +#define Sd2PinMap_h +#include +//------------------------------------------------------------------------------ +/** struct for mapping digital pins */ +struct pin_map_t { + volatile uint8_t* ddr; + volatile uint8_t* pin; + volatile uint8_t* port; + uint8_t bit; +}; +//------------------------------------------------------------------------------ +#if defined(__AVR_ATmega1280__)\ +|| defined(__AVR_ATmega2560__) +// Mega + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 20; // D1 +uint8_t const SCL_PIN = 21; // D0 + +#undef MOSI_PIN +#undef MISO_PIN +// SPI port +uint8_t const SS_PIN = 53; // B0 +uint8_t const MOSI_PIN = 51; // B2 +uint8_t const MISO_PIN = 50; // B3 +uint8_t const SCK_PIN = 52; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRE, &PINE, &PORTE, 0}, // E0 0 + {&DDRE, &PINE, &PORTE, 1}, // E1 1 + {&DDRE, &PINE, &PORTE, 4}, // E4 2 + {&DDRE, &PINE, &PORTE, 5}, // E5 3 + {&DDRG, &PING, &PORTG, 5}, // G5 4 + {&DDRE, &PINE, &PORTE, 3}, // E3 5 + {&DDRH, &PINH, &PORTH, 3}, // H3 6 + {&DDRH, &PINH, &PORTH, 4}, // H4 7 + {&DDRH, &PINH, &PORTH, 5}, // H5 8 + {&DDRH, &PINH, &PORTH, 6}, // H6 9 + {&DDRB, &PINB, &PORTB, 4}, // B4 10 + {&DDRB, &PINB, &PORTB, 5}, // B5 11 + {&DDRB, &PINB, &PORTB, 6}, // B6 12 + {&DDRB, &PINB, &PORTB, 7}, // B7 13 + {&DDRJ, &PINJ, &PORTJ, 1}, // J1 14 + {&DDRJ, &PINJ, &PORTJ, 0}, // J0 15 + {&DDRH, &PINH, &PORTH, 1}, // H1 16 + {&DDRH, &PINH, &PORTH, 0}, // H0 17 + {&DDRD, &PIND, &PORTD, 3}, // D3 18 + {&DDRD, &PIND, &PORTD, 2}, // D2 19 + {&DDRD, &PIND, &PORTD, 1}, // D1 20 + {&DDRD, &PIND, &PORTD, 0}, // D0 21 + {&DDRA, &PINA, &PORTA, 0}, // A0 22 + {&DDRA, &PINA, &PORTA, 1}, // A1 23 + {&DDRA, &PINA, &PORTA, 2}, // A2 24 + {&DDRA, &PINA, &PORTA, 3}, // A3 25 + {&DDRA, &PINA, &PORTA, 4}, // A4 26 + {&DDRA, &PINA, &PORTA, 5}, // A5 27 + {&DDRA, &PINA, &PORTA, 6}, // A6 28 + {&DDRA, &PINA, &PORTA, 7}, // A7 29 + {&DDRC, &PINC, &PORTC, 7}, // C7 30 + {&DDRC, &PINC, &PORTC, 6}, // C6 31 + {&DDRC, &PINC, &PORTC, 5}, // C5 32 + {&DDRC, &PINC, &PORTC, 4}, // C4 33 + {&DDRC, &PINC, &PORTC, 3}, // C3 34 + {&DDRC, &PINC, &PORTC, 2}, // C2 35 + {&DDRC, &PINC, &PORTC, 1}, // C1 36 + {&DDRC, &PINC, &PORTC, 0}, // C0 37 + {&DDRD, &PIND, &PORTD, 7}, // D7 38 + {&DDRG, &PING, &PORTG, 2}, // G2 39 + {&DDRG, &PING, &PORTG, 1}, // G1 40 + {&DDRG, &PING, &PORTG, 0}, // G0 41 + {&DDRL, &PINL, &PORTL, 7}, // L7 42 + {&DDRL, &PINL, &PORTL, 6}, // L6 43 + {&DDRL, &PINL, &PORTL, 5}, // L5 44 + {&DDRL, &PINL, &PORTL, 4}, // L4 45 + {&DDRL, &PINL, &PORTL, 3}, // L3 46 + {&DDRL, &PINL, &PORTL, 2}, // L2 47 + {&DDRL, &PINL, &PORTL, 1}, // L1 48 + {&DDRL, &PINL, &PORTL, 0}, // L0 49 + {&DDRB, &PINB, &PORTB, 3}, // B3 50 + {&DDRB, &PINB, &PORTB, 2}, // B2 51 + {&DDRB, &PINB, &PORTB, 1}, // B1 52 + {&DDRB, &PINB, &PORTB, 0}, // B0 53 + {&DDRF, &PINF, &PORTF, 0}, // F0 54 + {&DDRF, &PINF, &PORTF, 1}, // F1 55 + {&DDRF, &PINF, &PORTF, 2}, // F2 56 + {&DDRF, &PINF, &PORTF, 3}, // F3 57 + {&DDRF, &PINF, &PORTF, 4}, // F4 58 + {&DDRF, &PINF, &PORTF, 5}, // F5 59 + {&DDRF, &PINF, &PORTF, 6}, // F6 60 + {&DDRF, &PINF, &PORTF, 7}, // F7 61 + {&DDRK, &PINK, &PORTK, 0}, // K0 62 + {&DDRK, &PINK, &PORTK, 1}, // K1 63 + {&DDRK, &PINK, &PORTK, 2}, // K2 64 + {&DDRK, &PINK, &PORTK, 3}, // K3 65 + {&DDRK, &PINK, &PORTK, 4}, // K4 66 + {&DDRK, &PINK, &PORTK, 5}, // K5 67 + {&DDRK, &PINK, &PORTK, 6}, // K6 68 + {&DDRK, &PINK, &PORTK, 7} // K7 69 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega644P__)\ +|| defined(__AVR_ATmega644__)\ +|| defined(__AVR_ATmega1284P__) +// Sanguino + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 17; // C1 +uint8_t const SCL_PIN = 18; // C2 + +// SPI port +uint8_t const SS_PIN = 4; // B4 +uint8_t const MOSI_PIN = 5; // B5 +uint8_t const MISO_PIN = 6; // B6 +uint8_t const SCK_PIN = 7; // B7 + +static const pin_map_t digitalPinMap[] = { + {&DDRB, &PINB, &PORTB, 0}, // B0 0 + {&DDRB, &PINB, &PORTB, 1}, // B1 1 + {&DDRB, &PINB, &PORTB, 2}, // B2 2 + {&DDRB, &PINB, &PORTB, 3}, // B3 3 + {&DDRB, &PINB, &PORTB, 4}, // B4 4 + {&DDRB, &PINB, &PORTB, 5}, // B5 5 + {&DDRB, &PINB, &PORTB, 6}, // B6 6 + {&DDRB, &PINB, &PORTB, 7}, // B7 7 + {&DDRD, &PIND, &PORTD, 0}, // D0 8 + {&DDRD, &PIND, &PORTD, 1}, // D1 9 + {&DDRD, &PIND, &PORTD, 2}, // D2 10 + {&DDRD, &PIND, &PORTD, 3}, // D3 11 + {&DDRD, &PIND, &PORTD, 4}, // D4 12 + {&DDRD, &PIND, &PORTD, 5}, // D5 13 + {&DDRD, &PIND, &PORTD, 6}, // D6 14 + {&DDRD, &PIND, &PORTD, 7}, // D7 15 + {&DDRC, &PINC, &PORTC, 0}, // C0 16 + {&DDRC, &PINC, &PORTC, 1}, // C1 17 + {&DDRC, &PINC, &PORTC, 2}, // C2 18 + {&DDRC, &PINC, &PORTC, 3}, // C3 19 + {&DDRC, &PINC, &PORTC, 4}, // C4 20 + {&DDRC, &PINC, &PORTC, 5}, // C5 21 + {&DDRC, &PINC, &PORTC, 6}, // C6 22 + {&DDRC, &PINC, &PORTC, 7}, // C7 23 + {&DDRA, &PINA, &PORTA, 7}, // A7 24 + {&DDRA, &PINA, &PORTA, 6}, // A6 25 + {&DDRA, &PINA, &PORTA, 5}, // A5 26 + {&DDRA, &PINA, &PORTA, 4}, // A4 27 + {&DDRA, &PINA, &PORTA, 3}, // A3 28 + {&DDRA, &PINA, &PORTA, 2}, // A2 29 + {&DDRA, &PINA, &PORTA, 1}, // A1 30 + {&DDRA, &PINA, &PORTA, 0} // A0 31 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega32U4__) +// Teensy 2.0 + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 6; // D1 +uint8_t const SCL_PIN = 5; // D0 + +// SPI port +uint8_t const SS_PIN = 0; // B0 +uint8_t const MOSI_PIN = 2; // B2 +uint8_t const MISO_PIN = 3; // B3 +uint8_t const SCK_PIN = 1; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRB, &PINB, &PORTB, 0}, // B0 0 + {&DDRB, &PINB, &PORTB, 1}, // B1 1 + {&DDRB, &PINB, &PORTB, 2}, // B2 2 + {&DDRB, &PINB, &PORTB, 3}, // B3 3 + {&DDRB, &PINB, &PORTB, 7}, // B7 4 + {&DDRD, &PIND, &PORTD, 0}, // D0 5 + {&DDRD, &PIND, &PORTD, 1}, // D1 6 + {&DDRD, &PIND, &PORTD, 2}, // D2 7 + {&DDRD, &PIND, &PORTD, 3}, // D3 8 + {&DDRC, &PINC, &PORTC, 6}, // C6 9 + {&DDRC, &PINC, &PORTC, 7}, // C7 10 + {&DDRD, &PIND, &PORTD, 6}, // D6 11 + {&DDRD, &PIND, &PORTD, 7}, // D7 12 + {&DDRB, &PINB, &PORTB, 4}, // B4 13 + {&DDRB, &PINB, &PORTB, 5}, // B5 14 + {&DDRB, &PINB, &PORTB, 6}, // B6 15 + {&DDRF, &PINF, &PORTF, 7}, // F7 16 + {&DDRF, &PINF, &PORTF, 6}, // F6 17 + {&DDRF, &PINF, &PORTF, 5}, // F5 18 + {&DDRF, &PINF, &PORTF, 4}, // F4 19 + {&DDRF, &PINF, &PORTF, 1}, // F1 20 + {&DDRF, &PINF, &PORTF, 0}, // F0 21 + {&DDRD, &PIND, &PORTD, 4}, // D4 22 + {&DDRD, &PIND, &PORTD, 5}, // D5 23 + {&DDRE, &PINE, &PORTE, 6} // E6 24 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_AT90USB646__)\ +|| defined(__AVR_AT90USB1286__) +// Teensy++ 1.0 & 2.0 + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 1; // D1 +uint8_t const SCL_PIN = 0; // D0 + +// SPI port +uint8_t const SS_PIN = 20; // B0 +uint8_t const MOSI_PIN = 22; // B2 +uint8_t const MISO_PIN = 23; // B3 +uint8_t const SCK_PIN = 21; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRE, &PINE, &PORTE, 0}, // E0 8 + {&DDRE, &PINE, &PORTE, 1}, // E1 9 + {&DDRC, &PINC, &PORTC, 0}, // C0 10 + {&DDRC, &PINC, &PORTC, 1}, // C1 11 + {&DDRC, &PINC, &PORTC, 2}, // C2 12 + {&DDRC, &PINC, &PORTC, 3}, // C3 13 + {&DDRC, &PINC, &PORTC, 4}, // C4 14 + {&DDRC, &PINC, &PORTC, 5}, // C5 15 + {&DDRC, &PINC, &PORTC, 6}, // C6 16 + {&DDRC, &PINC, &PORTC, 7}, // C7 17 + {&DDRE, &PINE, &PORTE, 6}, // E6 18 + {&DDRE, &PINE, &PORTE, 7}, // E7 19 + {&DDRB, &PINB, &PORTB, 0}, // B0 20 + {&DDRB, &PINB, &PORTB, 1}, // B1 21 + {&DDRB, &PINB, &PORTB, 2}, // B2 22 + {&DDRB, &PINB, &PORTB, 3}, // B3 23 + {&DDRB, &PINB, &PORTB, 4}, // B4 24 + {&DDRB, &PINB, &PORTB, 5}, // B5 25 + {&DDRB, &PINB, &PORTB, 6}, // B6 26 + {&DDRB, &PINB, &PORTB, 7}, // B7 27 + {&DDRA, &PINA, &PORTA, 0}, // A0 28 + {&DDRA, &PINA, &PORTA, 1}, // A1 29 + {&DDRA, &PINA, &PORTA, 2}, // A2 30 + {&DDRA, &PINA, &PORTA, 3}, // A3 31 + {&DDRA, &PINA, &PORTA, 4}, // A4 32 + {&DDRA, &PINA, &PORTA, 5}, // A5 33 + {&DDRA, &PINA, &PORTA, 6}, // A6 34 + {&DDRA, &PINA, &PORTA, 7}, // A7 35 + {&DDRE, &PINE, &PORTE, 4}, // E4 36 + {&DDRE, &PINE, &PORTE, 5}, // E5 37 + {&DDRF, &PINF, &PORTF, 0}, // F0 38 + {&DDRF, &PINF, &PORTF, 1}, // F1 39 + {&DDRF, &PINF, &PORTF, 2}, // F2 40 + {&DDRF, &PINF, &PORTF, 3}, // F3 41 + {&DDRF, &PINF, &PORTF, 4}, // F4 42 + {&DDRF, &PINF, &PORTF, 5}, // F5 43 + {&DDRF, &PINF, &PORTF, 6}, // F6 44 + {&DDRF, &PINF, &PORTF, 7} // F7 45 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega168__)\ +||defined(__AVR_ATmega168P__)\ +||defined(__AVR_ATmega328P__) +// 168 and 328 Arduinos + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; // C4 +uint8_t const SCL_PIN = 19; // C5 + +// SPI port +uint8_t const SS_PIN = 10; // B2 +uint8_t const MOSI_PIN = 11; // B3 +uint8_t const MISO_PIN = 12; // B4 +uint8_t const SCK_PIN = 13; // B5 + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRB, &PINB, &PORTB, 0}, // B0 8 + {&DDRB, &PINB, &PORTB, 1}, // B1 9 + {&DDRB, &PINB, &PORTB, 2}, // B2 10 + {&DDRB, &PINB, &PORTB, 3}, // B3 11 + {&DDRB, &PINB, &PORTB, 4}, // B4 12 + {&DDRB, &PINB, &PORTB, 5}, // B5 13 + {&DDRC, &PINC, &PORTC, 0}, // C0 14 + {&DDRC, &PINC, &PORTC, 1}, // C1 15 + {&DDRC, &PINC, &PORTC, 2}, // C2 16 + {&DDRC, &PINC, &PORTC, 3}, // C3 17 + {&DDRC, &PINC, &PORTC, 4}, // C4 18 + {&DDRC, &PINC, &PORTC, 5} // C5 19 +}; +#else // defined(__AVR_ATmega1280__) +#error unknown chip +#endif // defined(__AVR_ATmega1280__) +//------------------------------------------------------------------------------ +static const uint8_t digitalPinCount = sizeof(digitalPinMap)/sizeof(pin_map_t); + +uint8_t badPinNumber(void) + __attribute__((error("Pin number is too large or not a constant"))); + +static inline __attribute__((always_inline)) + bool getPinMode(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].ddr >> digitalPinMap[pin].bit) & 1; + } else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void setPinMode(uint8_t pin, uint8_t mode) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (mode) { + *digitalPinMap[pin].ddr |= 1 << digitalPinMap[pin].bit; + } else { + *digitalPinMap[pin].ddr &= ~(1 << digitalPinMap[pin].bit); + } + } else { + badPinNumber(); + } +} +static inline __attribute__((always_inline)) + bool fastDigitalRead(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].pin >> digitalPinMap[pin].bit) & 1; + } else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void fastDigitalWrite(uint8_t pin, uint8_t value) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (value) { + *digitalPinMap[pin].port |= 1 << digitalPinMap[pin].bit; + } else { + *digitalPinMap[pin].port &= ~(1 << digitalPinMap[pin].bit); + } + } else { + badPinNumber(); + } +} +#endif // Sd2PinMap_h + + #endif \ No newline at end of file diff --git a/Firmware/SdFatUtil.h b/Firmware/SdFatUtil.h index 8a6957bfa..c42b74b1c 100644 --- a/Firmware/SdFatUtil.h +++ b/Firmware/SdFatUtil.h @@ -1,51 +1,51 @@ -/* Arduino SdFat Library - * Copyright (C) 2008 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library 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 Library 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 the Arduino SdFat Library. If not, see - * . - */ -#include "Marlin.h" -#ifdef SDSUPPORT - -#ifndef SdFatUtil_h -#define SdFatUtil_h -/** - * \file - * \brief Useful utility functions. - */ -#include "Marlin.h" -#include "MarlinSerial.h" -/** Store and print a string in flash memory.*/ -#define PgmPrint(x) SerialPrint_P(PSTR(x)) -/** Store and print a string in flash memory followed by a CR/LF.*/ -#define PgmPrintln(x) SerialPrintln_P(PSTR(x)) - -namespace SdFatUtil { - int FreeRam(); - void print_P( PGM_P str); - void println_P( PGM_P str); - void SerialPrint_P(PGM_P str); - void SerialPrintln_P(PGM_P str); - void set_stack_guard(); - bool test_stack_integrity(); - uint32_t get_stack_guard_test_value(); -} - -using namespace SdFatUtil; // NOLINT -#endif // #define SdFatUtil_h - - +/* Arduino SdFat Library + * Copyright (C) 2008 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library 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 Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "Marlin.h" +#ifdef SDSUPPORT + +#ifndef SdFatUtil_h +#define SdFatUtil_h +/** + * \file + * \brief Useful utility functions. + */ +#include "Marlin.h" +#include "MarlinSerial.h" +/** Store and print a string in flash memory.*/ +#define PgmPrint(x) SerialPrint_P(PSTR(x)) +/** Store and print a string in flash memory followed by a CR/LF.*/ +#define PgmPrintln(x) SerialPrintln_P(PSTR(x)) + +namespace SdFatUtil { + int FreeRam(); + void print_P( PGM_P str); + void println_P( PGM_P str); + void SerialPrint_P(PGM_P str); + void SerialPrintln_P(PGM_P str); + void set_stack_guard(); + bool test_stack_integrity(); + uint32_t get_stack_guard_test_value(); +} + +using namespace SdFatUtil; // NOLINT +#endif // #define SdFatUtil_h + + #endif \ No newline at end of file diff --git a/Firmware/SdFile.cpp b/Firmware/SdFile.cpp index 29f5efadc..2fb4d5943 100644 --- a/Firmware/SdFile.cpp +++ b/Firmware/SdFile.cpp @@ -1,95 +1,95 @@ -/* Arduino SdFat Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library 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 Library 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 the Arduino SdFat Library. If not, see - * . - */ -#include "Marlin.h" - -#ifdef SDSUPPORT -#include "SdFile.h" -/** Create a file object and open it in the current working directory. - * - * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. - * - * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive - * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). - */ -SdFile::SdFile(const char* path, uint8_t oflag) : SdBaseFile(path, oflag) { -} -//------------------------------------------------------------------------------ -/** Write data to an open file. - * - * \note Data is moved to the cache but may not be written to the - * storage device until sync() is called. - * - * \param[in] buf Pointer to the location of the data to be written. - * - * \param[in] nbyte Number of bytes to write. - * - * \return For success write() returns the number of bytes written, always - * \a nbyte. If an error occurs, write() returns -1. Possible errors - * include write() is called before a file has been opened, write is called - * for a read-only file, device is full, a corrupt file system or an I/O error. - * - */ -int16_t SdFile::write(const void* buf, uint16_t nbyte) { - return SdBaseFile::write(buf, nbyte); -} -//------------------------------------------------------------------------------ -/** Write a byte to a file. Required by the Arduino Print class. - * \param[in] b the byte to be written. - * Use writeError to check for errors. - */ -#if ARDUINO >= 100 -size_t SdFile::write(uint8_t b) -{ - return SdBaseFile::write(&b, 1); -} -#else -void SdFile::write(uint8_t b) -{ - SdBaseFile::write(&b, 1); -} -#endif -//------------------------------------------------------------------------------ -/** Write a string to a file. Used by the Arduino Print class. - * \param[in] str Pointer to the string. - * Use writeError to check for errors. - */ -void SdFile::write(const char* str) { - SdBaseFile::write(str, strlen(str)); -} -//------------------------------------------------------------------------------ -/** Write a PROGMEM string to a file. - * \param[in] str Pointer to the PROGMEM string. - * Use writeError to check for errors. - */ -void SdFile::write_P(PGM_P str) { - for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); -} -//------------------------------------------------------------------------------ -/** Write a PROGMEM string followed by CR/LF to a file. - * \param[in] str Pointer to the PROGMEM string. - * Use writeError to check for errors. - */ -void SdFile::writeln_P(PGM_P str) { - write_P(str); - write_P(PSTR("\r\n")); -} - - -#endif +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library 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 Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "Marlin.h" + +#ifdef SDSUPPORT +#include "SdFile.h" +/** Create a file object and open it in the current working directory. + * + * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. + * + * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive + * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). + */ +SdFile::SdFile(const char* path, uint8_t oflag) : SdBaseFile(path, oflag) { +} +//------------------------------------------------------------------------------ +/** Write data to an open file. + * + * \note Data is moved to the cache but may not be written to the + * storage device until sync() is called. + * + * \param[in] buf Pointer to the location of the data to be written. + * + * \param[in] nbyte Number of bytes to write. + * + * \return For success write() returns the number of bytes written, always + * \a nbyte. If an error occurs, write() returns -1. Possible errors + * include write() is called before a file has been opened, write is called + * for a read-only file, device is full, a corrupt file system or an I/O error. + * + */ +int16_t SdFile::write(const void* buf, uint16_t nbyte) { + return SdBaseFile::write(buf, nbyte); +} +//------------------------------------------------------------------------------ +/** Write a byte to a file. Required by the Arduino Print class. + * \param[in] b the byte to be written. + * Use writeError to check for errors. + */ +#if ARDUINO >= 100 +size_t SdFile::write(uint8_t b) +{ + return SdBaseFile::write(&b, 1); +} +#else +void SdFile::write(uint8_t b) +{ + SdBaseFile::write(&b, 1); +} +#endif +//------------------------------------------------------------------------------ +/** Write a string to a file. Used by the Arduino Print class. + * \param[in] str Pointer to the string. + * Use writeError to check for errors. + */ +void SdFile::write(const char* str) { + SdBaseFile::write(str, strlen(str)); +} +//------------------------------------------------------------------------------ +/** Write a PROGMEM string to a file. + * \param[in] str Pointer to the PROGMEM string. + * Use writeError to check for errors. + */ +void SdFile::write_P(PGM_P str) { + for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); +} +//------------------------------------------------------------------------------ +/** Write a PROGMEM string followed by CR/LF to a file. + * \param[in] str Pointer to the PROGMEM string. + * Use writeError to check for errors. + */ +void SdFile::writeln_P(PGM_P str) { + write_P(str); + write_P(PSTR("\r\n")); +} + + +#endif diff --git a/Firmware/SdInfo.h b/Firmware/SdInfo.h index ea3108358..93f094314 100644 --- a/Firmware/SdInfo.h +++ b/Firmware/SdInfo.h @@ -1,286 +1,286 @@ -/* Arduino Sd2Card Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - * - * This Library 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 Library 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 the Arduino Sd2Card Library. If not, see - * . - */ -#include "Marlin.h" -#ifdef SDSUPPORT - -#ifndef SdInfo_h -#define SdInfo_h -#include -// Based on the document: -// -// SD Specifications -// Part 1 -// Physical Layer -// Simplified Specification -// Version 3.01 -// May 18, 2010 -// -// http://www.sdcard.org/developers/tech/sdcard/pls/simplified_specs -//------------------------------------------------------------------------------ -// SD card commands -/** GO_IDLE_STATE - init card in spi mode if CS low */ -uint8_t const CMD0 = 0X00; -/** SEND_IF_COND - verify SD Memory Card interface operating condition.*/ -uint8_t const CMD8 = 0X08; -/** SEND_CSD - read the Card Specific Data (CSD register) */ -uint8_t const CMD9 = 0X09; -/** SEND_CID - read the card identification information (CID register) */ -uint8_t const CMD10 = 0X0A; -/** STOP_TRANSMISSION - end multiple block read sequence */ -uint8_t const CMD12 = 0X0C; -/** SEND_STATUS - read the card status register */ -uint8_t const CMD13 = 0X0D; -/** READ_SINGLE_BLOCK - read a single data block from the card */ -uint8_t const CMD17 = 0X11; -/** READ_MULTIPLE_BLOCK - read a multiple data blocks from the card */ -uint8_t const CMD18 = 0X12; -/** WRITE_BLOCK - write a single data block to the card */ -uint8_t const CMD24 = 0X18; -/** WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION */ -uint8_t const CMD25 = 0X19; -/** ERASE_WR_BLK_START - sets the address of the first block to be erased */ -uint8_t const CMD32 = 0X20; -/** ERASE_WR_BLK_END - sets the address of the last block of the continuous - range to be erased*/ -uint8_t const CMD33 = 0X21; -/** ERASE - erase all previously selected blocks */ -uint8_t const CMD38 = 0X26; - -/** Toshiba FlashAir: iSDIO */ -uint8_t const CMD48 = 0x30; -/** Toshiba FlashAir: iSDIO */ -uint8_t const CMD49 = 0x31; - -/** APP_CMD - escape for application specific command */ -uint8_t const CMD55 = 0X37; -/** READ_OCR - read the OCR register of a card */ -uint8_t const CMD58 = 0X3A; -/** SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be - pre-erased before writing */ -uint8_t const ACMD23 = 0X17; -/** SD_SEND_OP_COMD - Sends host capacity support information and - activates the card's initialization process */ -uint8_t const ACMD41 = 0X29; -//------------------------------------------------------------------------------ -/** status for card in the ready state */ -uint8_t const R1_READY_STATE = 0X00; -/** status for card in the idle state */ -uint8_t const R1_IDLE_STATE = 0X01; -/** status bit for illegal command */ -uint8_t const R1_ILLEGAL_COMMAND = 0X04; -/** start data token for read or write single block*/ -uint8_t const DATA_START_BLOCK = 0XFE; -/** stop token for write multiple blocks*/ -uint8_t const STOP_TRAN_TOKEN = 0XFD; -/** start data token for write multiple blocks*/ -uint8_t const WRITE_MULTIPLE_TOKEN = 0XFC; -/** mask for data response tokens after a write block operation */ -uint8_t const DATA_RES_MASK = 0X1F; -/** write data accepted token */ -uint8_t const DATA_RES_ACCEPTED = 0X05; -//------------------------------------------------------------------------------ -/** Card IDentification (CID) register */ -typedef struct CID { - // byte 0 - /** Manufacturer ID */ - unsigned char mid; - // byte 1-2 - /** OEM/Application ID */ - char oid[2]; - // byte 3-7 - /** Product name */ - char pnm[5]; - // byte 8 - /** Product revision least significant digit */ - unsigned char prv_m : 4; - /** Product revision most significant digit */ - unsigned char prv_n : 4; - // byte 9-12 - /** Product serial number */ - uint32_t psn; - // byte 13 - /** Manufacturing date year low digit */ - unsigned char mdt_year_high : 4; - /** not used */ - unsigned char reserved : 4; - // byte 14 - /** Manufacturing date month */ - unsigned char mdt_month : 4; - /** Manufacturing date year low digit */ - unsigned char mdt_year_low :4; - // byte 15 - /** not used always 1 */ - unsigned char always1 : 1; - /** CRC7 checksum */ - unsigned char crc : 7; -}cid_t; -//------------------------------------------------------------------------------ -/** CSD for version 1.00 cards */ -typedef struct CSDV1 { - // byte 0 - unsigned char reserved1 : 6; - unsigned char csd_ver : 2; - // byte 1 - unsigned char taac; - // byte 2 - unsigned char nsac; - // byte 3 - unsigned char tran_speed; - // byte 4 - unsigned char ccc_high; - // byte 5 - unsigned char read_bl_len : 4; - unsigned char ccc_low : 4; - // byte 6 - unsigned char c_size_high : 2; - unsigned char reserved2 : 2; - unsigned char dsr_imp : 1; - unsigned char read_blk_misalign :1; - unsigned char write_blk_misalign : 1; - unsigned char read_bl_partial : 1; - // byte 7 - unsigned char c_size_mid; - // byte 8 - unsigned char vdd_r_curr_max : 3; - unsigned char vdd_r_curr_min : 3; - unsigned char c_size_low :2; - // byte 9 - unsigned char c_size_mult_high : 2; - unsigned char vdd_w_cur_max : 3; - unsigned char vdd_w_curr_min : 3; - // byte 10 - unsigned char sector_size_high : 6; - unsigned char erase_blk_en : 1; - unsigned char c_size_mult_low : 1; - // byte 11 - unsigned char wp_grp_size : 7; - unsigned char sector_size_low : 1; - // byte 12 - unsigned char write_bl_len_high : 2; - unsigned char r2w_factor : 3; - unsigned char reserved3 : 2; - unsigned char wp_grp_enable : 1; - // byte 13 - unsigned char reserved4 : 5; - unsigned char write_partial : 1; - unsigned char write_bl_len_low : 2; - // byte 14 - unsigned char reserved5: 2; - unsigned char file_format : 2; - unsigned char tmp_write_protect : 1; - unsigned char perm_write_protect : 1; - unsigned char copy : 1; - /** Indicates the file format on the card */ - unsigned char file_format_grp : 1; - // byte 15 - unsigned char always1 : 1; - unsigned char crc : 7; -}csd1_t; -//------------------------------------------------------------------------------ -/** CSD for version 2.00 cards */ -typedef struct CSDV2 { - // byte 0 - unsigned char reserved1 : 6; - unsigned char csd_ver : 2; - // byte 1 - /** fixed to 0X0E */ - unsigned char taac; - // byte 2 - /** fixed to 0 */ - unsigned char nsac; - // byte 3 - unsigned char tran_speed; - // byte 4 - unsigned char ccc_high; - // byte 5 - /** This field is fixed to 9h, which indicates READ_BL_LEN=512 Byte */ - unsigned char read_bl_len : 4; - unsigned char ccc_low : 4; - // byte 6 - /** not used */ - unsigned char reserved2 : 4; - unsigned char dsr_imp : 1; - /** fixed to 0 */ - unsigned char read_blk_misalign :1; - /** fixed to 0 */ - unsigned char write_blk_misalign : 1; - /** fixed to 0 - no partial read */ - unsigned char read_bl_partial : 1; - // byte 7 - /** not used */ - unsigned char reserved3 : 2; - /** high part of card size */ - unsigned char c_size_high : 6; - // byte 8 - /** middle part of card size */ - unsigned char c_size_mid; - // byte 9 - /** low part of card size */ - unsigned char c_size_low; - // byte 10 - /** sector size is fixed at 64 KB */ - unsigned char sector_size_high : 6; - /** fixed to 1 - erase single is supported */ - unsigned char erase_blk_en : 1; - /** not used */ - unsigned char reserved4 : 1; - // byte 11 - unsigned char wp_grp_size : 7; - /** sector size is fixed at 64 KB */ - unsigned char sector_size_low : 1; - // byte 12 - /** write_bl_len fixed for 512 byte blocks */ - unsigned char write_bl_len_high : 2; - /** fixed value of 2 */ - unsigned char r2w_factor : 3; - /** not used */ - unsigned char reserved5 : 2; - /** fixed value of 0 - no write protect groups */ - unsigned char wp_grp_enable : 1; - // byte 13 - unsigned char reserved6 : 5; - /** always zero - no partial block read*/ - unsigned char write_partial : 1; - /** write_bl_len fixed for 512 byte blocks */ - unsigned char write_bl_len_low : 2; - // byte 14 - unsigned char reserved7: 2; - /** Do not use always 0 */ - unsigned char file_format : 2; - unsigned char tmp_write_protect : 1; - unsigned char perm_write_protect : 1; - unsigned char copy : 1; - /** Do not use always 0 */ - unsigned char file_format_grp : 1; - // byte 15 - /** not used always 1 */ - unsigned char always1 : 1; - /** checksum */ - unsigned char crc : 7; -}csd2_t; -//------------------------------------------------------------------------------ -/** union of old and new style CSD register */ -union csd_t { - csd1_t v1; - csd2_t v2; -}; -#endif // SdInfo_h - +/* Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + * + * This Library 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 Library 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 the Arduino Sd2Card Library. If not, see + * . + */ +#include "Marlin.h" +#ifdef SDSUPPORT + +#ifndef SdInfo_h +#define SdInfo_h +#include +// Based on the document: +// +// SD Specifications +// Part 1 +// Physical Layer +// Simplified Specification +// Version 3.01 +// May 18, 2010 +// +// http://www.sdcard.org/developers/tech/sdcard/pls/simplified_specs +//------------------------------------------------------------------------------ +// SD card commands +/** GO_IDLE_STATE - init card in spi mode if CS low */ +uint8_t const CMD0 = 0X00; +/** SEND_IF_COND - verify SD Memory Card interface operating condition.*/ +uint8_t const CMD8 = 0X08; +/** SEND_CSD - read the Card Specific Data (CSD register) */ +uint8_t const CMD9 = 0X09; +/** SEND_CID - read the card identification information (CID register) */ +uint8_t const CMD10 = 0X0A; +/** STOP_TRANSMISSION - end multiple block read sequence */ +uint8_t const CMD12 = 0X0C; +/** SEND_STATUS - read the card status register */ +uint8_t const CMD13 = 0X0D; +/** READ_SINGLE_BLOCK - read a single data block from the card */ +uint8_t const CMD17 = 0X11; +/** READ_MULTIPLE_BLOCK - read a multiple data blocks from the card */ +uint8_t const CMD18 = 0X12; +/** WRITE_BLOCK - write a single data block to the card */ +uint8_t const CMD24 = 0X18; +/** WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION */ +uint8_t const CMD25 = 0X19; +/** ERASE_WR_BLK_START - sets the address of the first block to be erased */ +uint8_t const CMD32 = 0X20; +/** ERASE_WR_BLK_END - sets the address of the last block of the continuous + range to be erased*/ +uint8_t const CMD33 = 0X21; +/** ERASE - erase all previously selected blocks */ +uint8_t const CMD38 = 0X26; + +/** Toshiba FlashAir: iSDIO */ +uint8_t const CMD48 = 0x30; +/** Toshiba FlashAir: iSDIO */ +uint8_t const CMD49 = 0x31; + +/** APP_CMD - escape for application specific command */ +uint8_t const CMD55 = 0X37; +/** READ_OCR - read the OCR register of a card */ +uint8_t const CMD58 = 0X3A; +/** SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be + pre-erased before writing */ +uint8_t const ACMD23 = 0X17; +/** SD_SEND_OP_COMD - Sends host capacity support information and + activates the card's initialization process */ +uint8_t const ACMD41 = 0X29; +//------------------------------------------------------------------------------ +/** status for card in the ready state */ +uint8_t const R1_READY_STATE = 0X00; +/** status for card in the idle state */ +uint8_t const R1_IDLE_STATE = 0X01; +/** status bit for illegal command */ +uint8_t const R1_ILLEGAL_COMMAND = 0X04; +/** start data token for read or write single block*/ +uint8_t const DATA_START_BLOCK = 0XFE; +/** stop token for write multiple blocks*/ +uint8_t const STOP_TRAN_TOKEN = 0XFD; +/** start data token for write multiple blocks*/ +uint8_t const WRITE_MULTIPLE_TOKEN = 0XFC; +/** mask for data response tokens after a write block operation */ +uint8_t const DATA_RES_MASK = 0X1F; +/** write data accepted token */ +uint8_t const DATA_RES_ACCEPTED = 0X05; +//------------------------------------------------------------------------------ +/** Card IDentification (CID) register */ +typedef struct CID { + // byte 0 + /** Manufacturer ID */ + unsigned char mid; + // byte 1-2 + /** OEM/Application ID */ + char oid[2]; + // byte 3-7 + /** Product name */ + char pnm[5]; + // byte 8 + /** Product revision least significant digit */ + unsigned char prv_m : 4; + /** Product revision most significant digit */ + unsigned char prv_n : 4; + // byte 9-12 + /** Product serial number */ + uint32_t psn; + // byte 13 + /** Manufacturing date year low digit */ + unsigned char mdt_year_high : 4; + /** not used */ + unsigned char reserved : 4; + // byte 14 + /** Manufacturing date month */ + unsigned char mdt_month : 4; + /** Manufacturing date year low digit */ + unsigned char mdt_year_low :4; + // byte 15 + /** not used always 1 */ + unsigned char always1 : 1; + /** CRC7 checksum */ + unsigned char crc : 7; +}cid_t; +//------------------------------------------------------------------------------ +/** CSD for version 1.00 cards */ +typedef struct CSDV1 { + // byte 0 + unsigned char reserved1 : 6; + unsigned char csd_ver : 2; + // byte 1 + unsigned char taac; + // byte 2 + unsigned char nsac; + // byte 3 + unsigned char tran_speed; + // byte 4 + unsigned char ccc_high; + // byte 5 + unsigned char read_bl_len : 4; + unsigned char ccc_low : 4; + // byte 6 + unsigned char c_size_high : 2; + unsigned char reserved2 : 2; + unsigned char dsr_imp : 1; + unsigned char read_blk_misalign :1; + unsigned char write_blk_misalign : 1; + unsigned char read_bl_partial : 1; + // byte 7 + unsigned char c_size_mid; + // byte 8 + unsigned char vdd_r_curr_max : 3; + unsigned char vdd_r_curr_min : 3; + unsigned char c_size_low :2; + // byte 9 + unsigned char c_size_mult_high : 2; + unsigned char vdd_w_cur_max : 3; + unsigned char vdd_w_curr_min : 3; + // byte 10 + unsigned char sector_size_high : 6; + unsigned char erase_blk_en : 1; + unsigned char c_size_mult_low : 1; + // byte 11 + unsigned char wp_grp_size : 7; + unsigned char sector_size_low : 1; + // byte 12 + unsigned char write_bl_len_high : 2; + unsigned char r2w_factor : 3; + unsigned char reserved3 : 2; + unsigned char wp_grp_enable : 1; + // byte 13 + unsigned char reserved4 : 5; + unsigned char write_partial : 1; + unsigned char write_bl_len_low : 2; + // byte 14 + unsigned char reserved5: 2; + unsigned char file_format : 2; + unsigned char tmp_write_protect : 1; + unsigned char perm_write_protect : 1; + unsigned char copy : 1; + /** Indicates the file format on the card */ + unsigned char file_format_grp : 1; + // byte 15 + unsigned char always1 : 1; + unsigned char crc : 7; +}csd1_t; +//------------------------------------------------------------------------------ +/** CSD for version 2.00 cards */ +typedef struct CSDV2 { + // byte 0 + unsigned char reserved1 : 6; + unsigned char csd_ver : 2; + // byte 1 + /** fixed to 0X0E */ + unsigned char taac; + // byte 2 + /** fixed to 0 */ + unsigned char nsac; + // byte 3 + unsigned char tran_speed; + // byte 4 + unsigned char ccc_high; + // byte 5 + /** This field is fixed to 9h, which indicates READ_BL_LEN=512 Byte */ + unsigned char read_bl_len : 4; + unsigned char ccc_low : 4; + // byte 6 + /** not used */ + unsigned char reserved2 : 4; + unsigned char dsr_imp : 1; + /** fixed to 0 */ + unsigned char read_blk_misalign :1; + /** fixed to 0 */ + unsigned char write_blk_misalign : 1; + /** fixed to 0 - no partial read */ + unsigned char read_bl_partial : 1; + // byte 7 + /** not used */ + unsigned char reserved3 : 2; + /** high part of card size */ + unsigned char c_size_high : 6; + // byte 8 + /** middle part of card size */ + unsigned char c_size_mid; + // byte 9 + /** low part of card size */ + unsigned char c_size_low; + // byte 10 + /** sector size is fixed at 64 KB */ + unsigned char sector_size_high : 6; + /** fixed to 1 - erase single is supported */ + unsigned char erase_blk_en : 1; + /** not used */ + unsigned char reserved4 : 1; + // byte 11 + unsigned char wp_grp_size : 7; + /** sector size is fixed at 64 KB */ + unsigned char sector_size_low : 1; + // byte 12 + /** write_bl_len fixed for 512 byte blocks */ + unsigned char write_bl_len_high : 2; + /** fixed value of 2 */ + unsigned char r2w_factor : 3; + /** not used */ + unsigned char reserved5 : 2; + /** fixed value of 0 - no write protect groups */ + unsigned char wp_grp_enable : 1; + // byte 13 + unsigned char reserved6 : 5; + /** always zero - no partial block read*/ + unsigned char write_partial : 1; + /** write_bl_len fixed for 512 byte blocks */ + unsigned char write_bl_len_low : 2; + // byte 14 + unsigned char reserved7: 2; + /** Do not use always 0 */ + unsigned char file_format : 2; + unsigned char tmp_write_protect : 1; + unsigned char perm_write_protect : 1; + unsigned char copy : 1; + /** Do not use always 0 */ + unsigned char file_format_grp : 1; + // byte 15 + /** not used always 1 */ + unsigned char always1 : 1; + /** checksum */ + unsigned char crc : 7; +}csd2_t; +//------------------------------------------------------------------------------ +/** union of old and new style CSD register */ +union csd_t { + csd1_t v1; + csd2_t v2; +}; +#endif // SdInfo_h + #endif \ No newline at end of file diff --git a/Firmware/SdVolume.cpp b/Firmware/SdVolume.cpp index f14d7bc70..9d6abf300 100644 --- a/Firmware/SdVolume.cpp +++ b/Firmware/SdVolume.cpp @@ -1,405 +1,405 @@ -/* Arduino SdFat Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library 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 Library 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 the Arduino SdFat Library. If not, see - * . - */ -#include "Marlin.h" -#ifdef SDSUPPORT - -#include "SdVolume.h" -//------------------------------------------------------------------------------ -#if !USE_MULTIPLE_CARDS -// raw block cache -uint32_t SdVolume::cacheBlockNumber_; // current block number -cache_t SdVolume::cacheBuffer_; // 512 byte cache for Sd2Card -Sd2Card* SdVolume::sdCard_; // pointer to SD card object -bool SdVolume::cacheDirty_; // cacheFlush() will write block if true -uint32_t SdVolume::cacheMirrorBlock_; // mirror block for second FAT -#endif // USE_MULTIPLE_CARDS -//------------------------------------------------------------------------------ -// find a contiguous group of clusters -bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) { - // start of group - uint32_t bgnCluster; - // end of group - uint32_t endCluster; - // last cluster of FAT - uint32_t fatEnd = clusterCount_ + 1; - - // flag to save place to start next search - bool setStart; - - // set search start cluster - if (*curCluster) { - // try to make file contiguous - bgnCluster = *curCluster + 1; - - // don't save new start location - setStart = false; - } else { - // start at likely place for free cluster - bgnCluster = allocSearchStart_; - - // save next search start if one cluster - setStart = count == 1; - } - // end of group - endCluster = bgnCluster; - - // search the FAT for free clusters - for (uint32_t n = 0;; n++, endCluster++) { - // can't find space checked all clusters - if (n >= clusterCount_) goto fail; - - // past end - start from beginning of FAT - if (endCluster > fatEnd) { - bgnCluster = endCluster = 2; - } - uint32_t f; - if (!fatGet(endCluster, &f)) goto fail; - - if (f != 0) { - // cluster in use try next cluster as bgnCluster - bgnCluster = endCluster + 1; - } else if ((endCluster - bgnCluster + 1) == count) { - // done - found space - break; - } - } - // mark end of chain - if (!fatPutEOC(endCluster)) goto fail; - - // link clusters - while (endCluster > bgnCluster) { - if (!fatPut(endCluster - 1, endCluster)) goto fail; - endCluster--; - } - if (*curCluster != 0) { - // connect chains - if (!fatPut(*curCluster, bgnCluster)) goto fail; - } - // return first cluster number to caller - *curCluster = bgnCluster; - - // remember possible next free cluster - if (setStart) allocSearchStart_ = bgnCluster + 1; - - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -bool SdVolume::cacheFlush() { - if (cacheDirty_) { - if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) { - goto fail; - } - // mirror FAT tables - if (cacheMirrorBlock_) { - if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) { - goto fail; - } - cacheMirrorBlock_ = 0; - } - cacheDirty_ = 0; - } - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -bool SdVolume::cacheRawBlock(uint32_t blockNumber, bool dirty) { - if (cacheBlockNumber_ != blockNumber) { - if (!cacheFlush()) goto fail; - if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) goto fail; - cacheBlockNumber_ = blockNumber; - } - if (dirty) cacheDirty_ = true; - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -// return the size in bytes of a cluster chain -bool SdVolume::chainSize(uint32_t cluster, uint32_t* size) { - uint32_t s = 0; - do { - if (!fatGet(cluster, &cluster)) goto fail; - s += 512UL << clusterSizeShift_; - } while (!isEOC(cluster)); - *size = s; - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -// Fetch a FAT entry -bool SdVolume::fatGet(uint32_t cluster, uint32_t* value) { - uint32_t lba; - if (cluster > (clusterCount_ + 1)) goto fail; - if (FAT12_SUPPORT && fatType_ == 12) { - uint16_t index = cluster; - index += index >> 1; - lba = fatStartBlock_ + (index >> 9); - if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; - index &= 0X1FF; - uint16_t tmp = cacheBuffer_.data[index]; - index++; - if (index == 512) { - if (!cacheRawBlock(lba + 1, CACHE_FOR_READ)) goto fail; - index = 0; - } - tmp |= cacheBuffer_.data[index] << 8; - *value = cluster & 1 ? tmp >> 4 : tmp & 0XFFF; - return true; - } - if (fatType_ == 16) { - lba = fatStartBlock_ + (cluster >> 8); - } else if (fatType_ == 32) { - lba = fatStartBlock_ + (cluster >> 7); - } else { - goto fail; - } - if (lba != cacheBlockNumber_) { - if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; - } - if (fatType_ == 16) { - *value = cacheBuffer_.fat16[cluster & 0XFF]; - } else { - *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK; - } - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -// Store a FAT entry -bool SdVolume::fatPut(uint32_t cluster, uint32_t value) { - uint32_t lba; - // error if reserved cluster - if (cluster < 2) goto fail; - - // error if not in FAT - if (cluster > (clusterCount_ + 1)) goto fail; - - if (FAT12_SUPPORT && fatType_ == 12) { - uint16_t index = cluster; - index += index >> 1; - lba = fatStartBlock_ + (index >> 9); - if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; - // mirror second FAT - if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; - index &= 0X1FF; - uint8_t tmp = value; - if (cluster & 1) { - tmp = (cacheBuffer_.data[index] & 0XF) | tmp << 4; - } - cacheBuffer_.data[index] = tmp; - index++; - if (index == 512) { - lba++; - index = 0; - if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; - // mirror second FAT - if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; - } - tmp = value >> 4; - if (!(cluster & 1)) { - tmp = ((cacheBuffer_.data[index] & 0XF0)) | tmp >> 4; - } - cacheBuffer_.data[index] = tmp; - return true; - } - if (fatType_ == 16) { - lba = fatStartBlock_ + (cluster >> 8); - } else if (fatType_ == 32) { - lba = fatStartBlock_ + (cluster >> 7); - } else { - goto fail; - } - if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; - // store entry - if (fatType_ == 16) { - cacheBuffer_.fat16[cluster & 0XFF] = value; - } else { - cacheBuffer_.fat32[cluster & 0X7F] = value; - } - // mirror second FAT - if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -// free a cluster chain -bool SdVolume::freeChain(uint32_t cluster) { - uint32_t next; - - // clear free cluster location - allocSearchStart_ = 2; - - do { - if (!fatGet(cluster, &next)) goto fail; - - // free cluster - if (!fatPut(cluster, 0)) goto fail; - - cluster = next; - } while (!isEOC(cluster)); - - return true; - - fail: - return false; -} -//------------------------------------------------------------------------------ -/** Volume free space in clusters. - * - * \return Count of free clusters for success or -1 if an error occurs. - */ -int32_t SdVolume::freeClusterCount() { - uint32_t free = 0; - uint16_t n; - uint32_t todo = clusterCount_ + 2; - - if (fatType_ == 16) { - n = 256; - } else if (fatType_ == 32) { - n = 128; - } else { - // put FAT12 here - return -1; - } - - for (uint32_t lba = fatStartBlock_; todo; todo -= n, lba++) { - if (!cacheRawBlock(lba, CACHE_FOR_READ)) return -1; - if (todo < n) n = todo; - if (fatType_ == 16) { - for (uint16_t i = 0; i < n; i++) { - if (cacheBuffer_.fat16[i] == 0) free++; - } - } else { - for (uint16_t i = 0; i < n; i++) { - if (cacheBuffer_.fat32[i] == 0) free++; - } - } - } - return free; -} -//------------------------------------------------------------------------------ -/** Initialize a FAT volume. - * - * \param[in] dev The SD card where the volume is located. - * - * \param[in] part The partition to be used. Legal values for \a part are - * 1-4 to use the corresponding partition on a device formatted with - * a MBR, Master Boot Record, or zero if the device is formatted as - * a super floppy with the FAT boot sector in block zero. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. Reasons for - * failure include not finding a valid partition, not finding a valid - * FAT file system in the specified partition or an I/O error. - */ -bool SdVolume::init(Sd2Card* dev, uint8_t part) { - uint32_t totalBlocks; - uint32_t volumeStartBlock = 0; - fat32_boot_t* fbs; - - sdCard_ = dev; - fatType_ = 0; - allocSearchStart_ = 2; - cacheDirty_ = 0; // cacheFlush() will write block if true - cacheMirrorBlock_ = 0; - cacheBlockNumber_ = 0XFFFFFFFF; - - // if part == 0 assume super floppy with FAT boot sector in block zero - // if part > 0 assume mbr volume with partition table - if (part) { - if (part > 4)goto fail; - if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; - part_t* p = &cacheBuffer_.mbr.part[part-1]; - if ((p->boot & 0X7F) !=0 || - p->totalSectors < 100 || - p->firstSector == 0) { - // not a valid partition - goto fail; - } - volumeStartBlock = p->firstSector; - } - if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; - fbs = &cacheBuffer_.fbs32; - if (fbs->bytesPerSector != 512 || - fbs->fatCount == 0 || - fbs->reservedSectorCount == 0 || - fbs->sectorsPerCluster == 0) { - // not valid FAT volume - goto fail; - } - fatCount_ = fbs->fatCount; - blocksPerCluster_ = fbs->sectorsPerCluster; - // determine shift that is same as multiply by blocksPerCluster_ - clusterSizeShift_ = 0; - while (blocksPerCluster_ != (1 << clusterSizeShift_)) { - // error if not power of 2 - if (clusterSizeShift_++ > 7) goto fail; - } - blocksPerFat_ = fbs->sectorsPerFat16 ? - fbs->sectorsPerFat16 : fbs->sectorsPerFat32; - - fatStartBlock_ = volumeStartBlock + fbs->reservedSectorCount; - - // count for FAT16 zero for FAT32 - rootDirEntryCount_ = fbs->rootDirEntryCount; - - // directory start for FAT16 dataStart for FAT32 - rootDirStart_ = fatStartBlock_ + fbs->fatCount * blocksPerFat_; - - // data start for FAT16 and FAT32 - dataStartBlock_ = rootDirStart_ + ((32 * fbs->rootDirEntryCount + 511)/512); - - // total blocks for FAT16 or FAT32 - totalBlocks = fbs->totalSectors16 ? - fbs->totalSectors16 : fbs->totalSectors32; - // total data blocks - clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock); - - // divide by cluster size to get cluster count - clusterCount_ >>= clusterSizeShift_; - - // FAT type is determined by cluster count - if (clusterCount_ < 4085) { - fatType_ = 12; - if (!FAT12_SUPPORT) goto fail; - } else if (clusterCount_ < 65525) { - fatType_ = 16; - } else { - rootDirStart_ = fbs->fat32RootCluster; - fatType_ = 32; - } - return true; - - fail: - return false; -} +/* Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino SdFat Library + * + * This Library 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 Library 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 the Arduino SdFat Library. If not, see + * . + */ +#include "Marlin.h" +#ifdef SDSUPPORT + +#include "SdVolume.h" +//------------------------------------------------------------------------------ +#if !USE_MULTIPLE_CARDS +// raw block cache +uint32_t SdVolume::cacheBlockNumber_; // current block number +cache_t SdVolume::cacheBuffer_; // 512 byte cache for Sd2Card +Sd2Card* SdVolume::sdCard_; // pointer to SD card object +bool SdVolume::cacheDirty_; // cacheFlush() will write block if true +uint32_t SdVolume::cacheMirrorBlock_; // mirror block for second FAT +#endif // USE_MULTIPLE_CARDS +//------------------------------------------------------------------------------ +// find a contiguous group of clusters +bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) { + // start of group + uint32_t bgnCluster; + // end of group + uint32_t endCluster; + // last cluster of FAT + uint32_t fatEnd = clusterCount_ + 1; + + // flag to save place to start next search + bool setStart; + + // set search start cluster + if (*curCluster) { + // try to make file contiguous + bgnCluster = *curCluster + 1; + + // don't save new start location + setStart = false; + } else { + // start at likely place for free cluster + bgnCluster = allocSearchStart_; + + // save next search start if one cluster + setStart = count == 1; + } + // end of group + endCluster = bgnCluster; + + // search the FAT for free clusters + for (uint32_t n = 0;; n++, endCluster++) { + // can't find space checked all clusters + if (n >= clusterCount_) goto fail; + + // past end - start from beginning of FAT + if (endCluster > fatEnd) { + bgnCluster = endCluster = 2; + } + uint32_t f; + if (!fatGet(endCluster, &f)) goto fail; + + if (f != 0) { + // cluster in use try next cluster as bgnCluster + bgnCluster = endCluster + 1; + } else if ((endCluster - bgnCluster + 1) == count) { + // done - found space + break; + } + } + // mark end of chain + if (!fatPutEOC(endCluster)) goto fail; + + // link clusters + while (endCluster > bgnCluster) { + if (!fatPut(endCluster - 1, endCluster)) goto fail; + endCluster--; + } + if (*curCluster != 0) { + // connect chains + if (!fatPut(*curCluster, bgnCluster)) goto fail; + } + // return first cluster number to caller + *curCluster = bgnCluster; + + // remember possible next free cluster + if (setStart) allocSearchStart_ = bgnCluster + 1; + + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +bool SdVolume::cacheFlush() { + if (cacheDirty_) { + if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) { + goto fail; + } + // mirror FAT tables + if (cacheMirrorBlock_) { + if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) { + goto fail; + } + cacheMirrorBlock_ = 0; + } + cacheDirty_ = 0; + } + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +bool SdVolume::cacheRawBlock(uint32_t blockNumber, bool dirty) { + if (cacheBlockNumber_ != blockNumber) { + if (!cacheFlush()) goto fail; + if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) goto fail; + cacheBlockNumber_ = blockNumber; + } + if (dirty) cacheDirty_ = true; + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +// return the size in bytes of a cluster chain +bool SdVolume::chainSize(uint32_t cluster, uint32_t* size) { + uint32_t s = 0; + do { + if (!fatGet(cluster, &cluster)) goto fail; + s += 512UL << clusterSizeShift_; + } while (!isEOC(cluster)); + *size = s; + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +// Fetch a FAT entry +bool SdVolume::fatGet(uint32_t cluster, uint32_t* value) { + uint32_t lba; + if (cluster > (clusterCount_ + 1)) goto fail; + if (FAT12_SUPPORT && fatType_ == 12) { + uint16_t index = cluster; + index += index >> 1; + lba = fatStartBlock_ + (index >> 9); + if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; + index &= 0X1FF; + uint16_t tmp = cacheBuffer_.data[index]; + index++; + if (index == 512) { + if (!cacheRawBlock(lba + 1, CACHE_FOR_READ)) goto fail; + index = 0; + } + tmp |= cacheBuffer_.data[index] << 8; + *value = cluster & 1 ? tmp >> 4 : tmp & 0XFFF; + return true; + } + if (fatType_ == 16) { + lba = fatStartBlock_ + (cluster >> 8); + } else if (fatType_ == 32) { + lba = fatStartBlock_ + (cluster >> 7); + } else { + goto fail; + } + if (lba != cacheBlockNumber_) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; + } + if (fatType_ == 16) { + *value = cacheBuffer_.fat16[cluster & 0XFF]; + } else { + *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK; + } + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +// Store a FAT entry +bool SdVolume::fatPut(uint32_t cluster, uint32_t value) { + uint32_t lba; + // error if reserved cluster + if (cluster < 2) goto fail; + + // error if not in FAT + if (cluster > (clusterCount_ + 1)) goto fail; + + if (FAT12_SUPPORT && fatType_ == 12) { + uint16_t index = cluster; + index += index >> 1; + lba = fatStartBlock_ + (index >> 9); + if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + index &= 0X1FF; + uint8_t tmp = value; + if (cluster & 1) { + tmp = (cacheBuffer_.data[index] & 0XF) | tmp << 4; + } + cacheBuffer_.data[index] = tmp; + index++; + if (index == 512) { + lba++; + index = 0; + if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + } + tmp = value >> 4; + if (!(cluster & 1)) { + tmp = ((cacheBuffer_.data[index] & 0XF0)) | tmp >> 4; + } + cacheBuffer_.data[index] = tmp; + return true; + } + if (fatType_ == 16) { + lba = fatStartBlock_ + (cluster >> 8); + } else if (fatType_ == 32) { + lba = fatStartBlock_ + (cluster >> 7); + } else { + goto fail; + } + if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; + // store entry + if (fatType_ == 16) { + cacheBuffer_.fat16[cluster & 0XFF] = value; + } else { + cacheBuffer_.fat32[cluster & 0X7F] = value; + } + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +// free a cluster chain +bool SdVolume::freeChain(uint32_t cluster) { + uint32_t next; + + // clear free cluster location + allocSearchStart_ = 2; + + do { + if (!fatGet(cluster, &next)) goto fail; + + // free cluster + if (!fatPut(cluster, 0)) goto fail; + + cluster = next; + } while (!isEOC(cluster)); + + return true; + + fail: + return false; +} +//------------------------------------------------------------------------------ +/** Volume free space in clusters. + * + * \return Count of free clusters for success or -1 if an error occurs. + */ +int32_t SdVolume::freeClusterCount() { + uint32_t free = 0; + uint16_t n; + uint32_t todo = clusterCount_ + 2; + + if (fatType_ == 16) { + n = 256; + } else if (fatType_ == 32) { + n = 128; + } else { + // put FAT12 here + return -1; + } + + for (uint32_t lba = fatStartBlock_; todo; todo -= n, lba++) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) return -1; + if (todo < n) n = todo; + if (fatType_ == 16) { + for (uint16_t i = 0; i < n; i++) { + if (cacheBuffer_.fat16[i] == 0) free++; + } + } else { + for (uint16_t i = 0; i < n; i++) { + if (cacheBuffer_.fat32[i] == 0) free++; + } + } + } + return free; +} +//------------------------------------------------------------------------------ +/** Initialize a FAT volume. + * + * \param[in] dev The SD card where the volume is located. + * + * \param[in] part The partition to be used. Legal values for \a part are + * 1-4 to use the corresponding partition on a device formatted with + * a MBR, Master Boot Record, or zero if the device is formatted as + * a super floppy with the FAT boot sector in block zero. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. Reasons for + * failure include not finding a valid partition, not finding a valid + * FAT file system in the specified partition or an I/O error. + */ +bool SdVolume::init(Sd2Card* dev, uint8_t part) { + uint32_t totalBlocks; + uint32_t volumeStartBlock = 0; + fat32_boot_t* fbs; + + sdCard_ = dev; + fatType_ = 0; + allocSearchStart_ = 2; + cacheDirty_ = 0; // cacheFlush() will write block if true + cacheMirrorBlock_ = 0; + cacheBlockNumber_ = 0XFFFFFFFF; + + // if part == 0 assume super floppy with FAT boot sector in block zero + // if part > 0 assume mbr volume with partition table + if (part) { + if (part > 4)goto fail; + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; + part_t* p = &cacheBuffer_.mbr.part[part-1]; + if ((p->boot & 0X7F) !=0 || + p->totalSectors < 100 || + p->firstSector == 0) { + // not a valid partition + goto fail; + } + volumeStartBlock = p->firstSector; + } + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; + fbs = &cacheBuffer_.fbs32; + if (fbs->bytesPerSector != 512 || + fbs->fatCount == 0 || + fbs->reservedSectorCount == 0 || + fbs->sectorsPerCluster == 0) { + // not valid FAT volume + goto fail; + } + fatCount_ = fbs->fatCount; + blocksPerCluster_ = fbs->sectorsPerCluster; + // determine shift that is same as multiply by blocksPerCluster_ + clusterSizeShift_ = 0; + while (blocksPerCluster_ != (1 << clusterSizeShift_)) { + // error if not power of 2 + if (clusterSizeShift_++ > 7) goto fail; + } + blocksPerFat_ = fbs->sectorsPerFat16 ? + fbs->sectorsPerFat16 : fbs->sectorsPerFat32; + + fatStartBlock_ = volumeStartBlock + fbs->reservedSectorCount; + + // count for FAT16 zero for FAT32 + rootDirEntryCount_ = fbs->rootDirEntryCount; + + // directory start for FAT16 dataStart for FAT32 + rootDirStart_ = fatStartBlock_ + fbs->fatCount * blocksPerFat_; + + // data start for FAT16 and FAT32 + dataStartBlock_ = rootDirStart_ + ((32 * fbs->rootDirEntryCount + 511)/512); + + // total blocks for FAT16 or FAT32 + totalBlocks = fbs->totalSectors16 ? + fbs->totalSectors16 : fbs->totalSectors32; + // total data blocks + clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock); + + // divide by cluster size to get cluster count + clusterCount_ >>= clusterSizeShift_; + + // FAT type is determined by cluster count + if (clusterCount_ < 4085) { + fatType_ = 12; + if (!FAT12_SUPPORT) goto fail; + } else if (clusterCount_ < 65525) { + fatType_ = 16; + } else { + rootDirStart_ = fbs->fat32RootCluster; + fatType_ = 32; + } + return true; + + fail: + return false; +} #endif \ No newline at end of file diff --git a/Firmware/cardreader.h b/Firmware/cardreader.h index 3e87b3315..ec7f3e7c5 100644 --- a/Firmware/cardreader.h +++ b/Firmware/cardreader.h @@ -47,6 +47,7 @@ public: FORCE_INLINE void setIndex(long index) {sdpos = index;file.seekSet(index);}; FORCE_INLINE uint8_t percentDone(){if(!isFileOpen()) return 0; if(filesize) return sdpos/((filesize+99)/100); else return 0;}; FORCE_INLINE char* getWorkDirName(){workDir.getFilename(filename);return filename;}; + FORCE_INLINE uint32_t get_sdpos() { if (!isFileOpen()) return 0; else return(sdpos); }; bool ToshibaFlashAir_isEnabled() const { return card.getFlashAirCompatible(); } void ToshibaFlashAir_enable(bool enable) { card.setFlashAirCompatible(enable); } diff --git a/Firmware/language_de.h b/Firmware/language_de.h index 9a20facea..e60ead10f 100644 --- a/Firmware/language_de.h +++ b/Firmware/language_de.h @@ -315,4 +315,4 @@ #define(length=20) MSG_EXTRUDER_1 "Extruder 1" #define(length=20) MSG_EXTRUDER_2 "Extruder 2" #define(length=20) MSG_EXTRUDER_3 "Extruder 3" -#define(length=20) MSG_EXTRUDER_4 "Extruder 4" +#define(length=20) MSG_EXTRUDER_4 "Extruder 4" \ No newline at end of file diff --git a/Firmware/language_en.h b/Firmware/language_en.h index f1215c823..2261a9227 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -273,9 +273,15 @@ #define MSG_MESH_BED_LEVELING "Mesh Bed Leveling" #define MSG_MENU_CALIBRATION "Calibration" +<<<<<<< HEAD #define(length=20) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]" #define(length=20) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]" #define(length=20) MSG_PRINTER_DISCONNECTED "Printer disconnected" +======= +#define(length=19, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]" +#define(length=19, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]" +#define(length=20, lines=1) MSG_PRINTER_DISCONNECTED "Printer disconnected" +>>>>>>> refs/remotes/prusa3d/MK2 #define(length=20, lines=1) MSG_FINISHING_MOVEMENTS "Finishing movements" #define(length=20, lines=1) MSG_PRINT_PAUSED "Print paused" #define(length=20, lines=1) MSG_RESUMING_PRINT "Resuming print" diff --git a/Firmware/language_it.h b/Firmware/language_it.h index 0f138b71b..629754760 100644 --- a/Firmware/language_it.h +++ b/Firmware/language_it.h @@ -1,289 +1,289 @@ -#define WELCOME_MSG CUSTOM_MENDEL_NAME " pronta." -#define MSG_SD_INSERTED "SD inserita" -#define MSG_SD_REMOVED "SD rimossa" -#define MSG_MAIN "Menu principale" -#define MSG_DISABLE_STEPPERS "Disabilit motori" -#define MSG_AUTO_HOME "Trova origine" -#define MSG_SET_HOME_OFFSETS "Set home offsets" -#define MSG_SET_ORIGIN "Set origin" -#define MSG_COOLDOWN "Raffredda" -#define MSG_SWITCH_PS_ON "Switch power on" -#define MSG_SWITCH_PS_OFF "Switch power off" -#define MSG_MOVE_AXIS "Muovi asse" -#define MSG_MOVE_X "Muovi X" -#define MSG_MOVE_Y "Muovi Y" -#define MSG_MOVE_Z "Muovi Z" -#define MSG_MOVE_E "Muovi Estrusore" -#define MSG_MOVE_01MM "Move 0.1mm" -#define MSG_MOVE_1MM "Move 1mm" -#define MSG_MOVE_10MM "Move 10mm" -#define MSG_SPEED "Velocita" -#define MSG_NOZZLE "Ugello" -#define MSG_NOZZLE1 "Nozzle2" -#define MSG_NOZZLE2 "Nozzle3" -#define MSG_BED "Letto" -#define MSG_FAN_SPEED "Velocita vent." -#define MSG_FLOW "Flusso" -#define MSG_TEMPERATURE "Temperatura" -#define MSG_MOTION "Motion" -#define MSG_VOLUMETRIC "Filament" -#define MSG_VOLUMETRIC_ENABLED "E in mm3" -#define MSG_STORE_EPROM "Store memory" -#define MSG_LOAD_EPROM "Load memory" -#define MSG_RESTORE_FAILSAFE "Restore failsafe" -#define MSG_REFRESH "\xF8" "Refresh" -#define MSG_WATCH "Schermata info" -#define MSG_TUNE "Regola" -#define MSG_PAUSE_PRINT "Metti in pausa" -#define MSG_RESUME_PRINT "Riprendi stampa" -#define MSG_STOP_PRINT "Arresta stampa" -#define MSG_CARD_MENU "Stampa da SD" -#define MSG_NO_CARD "Nessuna SD" -#define MSG_DWELL "Sospensione..." -#define MSG_USERWAIT "Attendendo utente" -#define MSG_RESUMING "Riprendi stampa" -#define MSG_PRINT_ABORTED "Stampa abortita" -#define MSG_NO_MOVE "Nessun movimento." -#define MSG_KILLED "IN TILT." -#define MSG_STOPPED "ARRESTATO." -#define MSG_FILAMENTCHANGE "Camb. filamento" -#define MSG_INIT_SDCARD "Init. SD card" -#define MSG_CNG_SDCARD "Change SD card" -#define MSG_ZPROBE_OUT "Z probe out. bed" -#define MSG_POSITION_UNKNOWN "Home X/Y before Z" -#define MSG_ZPROBE_ZOFFSET "Z Offset" -#define MSG_BABYSTEP_X "Babystep X" -#define MSG_BABYSTEP_Y "Babystep Y" -#define MSG_BABYSTEP_Z "Compensazione Z" -#define MSG_ADJUSTZ "Autoregolare Z?" -#define MSG_PICK_Z "Pick print" - -#define MSG_SETTINGS "Impostazioni" -#define MSG_PREHEAT "Preriscalda" -#define MSG_HEATING "Riscaldamento..." -#define MSG_SUPPORT "Support" -#define MSG_YES "Si" -#define MSG_NO "No" -#define MSG_NOT_LOADED "Fil. non caricato" -#define MSG_NOT_COLOR "Colore non puro" -#define MSG_LOADING_COLOR "Caricando colore" -#define MSG_CHANGE_SUCCESS "Cambio riuscito!" -#define MSG_PRESS "e cliccare manopola" -#define MSG_INSERT_FILAMENT "Inserire filamento" -#define MSG_CHANGING_FILAMENT "Cambiando filam." - -#define MSG_PLEASE_WAIT "Aspetta" -#define MSG_PREHEAT_NOZZLE "Preris. ugello!" -#define MSG_HEATING_COMPLETE "Riscald. completo" -#define MSG_BED_HEATING "Riscald. letto" -#define MSG_BED_DONE "Piatto fatto." -#define MSG_ERROR "ERRORE:" -#define MSG_CORRECTLY "Cambiato corr.?" -#define MSG_LOADING_FILAMENT "Caricando filam." -#define MSG_UNLOAD_FILAMENT "Scarica filamento" -#define MSG_LOAD_FILAMENT "Carica filamento" - -#define MSG_SILENT_MODE_ON "Modo [silenzioso]" -#define MSG_SILENT_MODE_OFF "Mode [forte]" -#define MSG_REBOOT "Riavvia stampante" -#define MSG_TAKE_EFFECT " per attualizzare" - -#define MSG_Enqueing "enqueing \"" -#define MSG_POWERUP "PowerUp" -#define MSG_CONFIGURATION_VER " Last Updated: " -#define MSG_FREE_MEMORY " Free Memory: " -#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " -#define MSG_OK "ok" -#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: " -#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: " -#define MSG_BEGIN_FILE_LIST "Begin file list" -#define MSG_END_FILE_LIST "End file list" -#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder " -#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder " -#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder " -#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder " -#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder " -#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" -#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder " -#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" -#define MSG_ERR_KILLED "Printer halted. kill() called!" -#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" -#define MSG_RESEND "Resend: " -#define MSG_M119_REPORT "Reporting endstop status" -#define MSG_ENDSTOP_HIT "TRIGGERED" -#define MSG_ENDSTOP_OPEN "open" -#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir" -#define MSG_SD_INIT_FAIL "SD init fail" -#define MSG_SD_VOL_INIT_FAIL "volume.init failed" -#define MSG_SD_OPENROOT_FAIL "openRoot failed" -#define MSG_SD_CARD_OK "SD card ok" -#define MSG_SD_WORKDIR_FAIL "workDir open failed" -#define MSG_SD_OPEN_FILE_FAIL "open failed, File: " -#define MSG_SD_FILE_OPENED "File opened: " -#define MSG_SD_FILE_SELECTED "File selected" -#define MSG_SD_WRITE_TO_FILE "Writing to file: " -#define MSG_SD_PRINTING_BYTE "SD printing byte " -#define MSG_SD_NOT_PRINTING "Not SD printing" -#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file" -#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir: " -#define MSG_STEPPER_TOO_HIGH "Steprate too high: " -#define MSG_ENDSTOPS_HIT "endstops hit: " -#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" -#define MSG_BABYSTEPPING_X "Babystepping X" -#define MSG_BABYSTEPPING_Y "Babystepping Y" -#define MSG_BABYSTEPPING_Z "Adjusting Z" -#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" - -#define MSG_LANGUAGE_NAME "Italiano" -#define MSG_LANGUAGE_SELECT "Seleziona lingua" -#define MSG_PRUSA3D "prusa3d.com" -#define MSG_PRUSA3D_FORUM "forum.prusa3d.com" -#define MSG_PRUSA3D_HOWTO "howto.prusa3d.com" - -#define MSG_SELFTEST_ERROR "Autotest negativo" -#define MSG_SELFTEST_PLEASECHECK "Verificare:" -#define MSG_SELFTEST_NOTCONNECTED "Non connesso" -#define MSG_SELFTEST_HEATERTHERMISTOR "Riscald./Termist." -#define MSG_SELFTEST_BEDHEATER "Letto/Riscald." -#define MSG_SELFTEST_WIRINGERROR "Errore cablaggio" -#define MSG_SELFTEST_ENDSTOPS "Finecorsa (2)" -#define MSG_SELFTEST_MOTOR "Motore" -#define MSG_SELFTEST_ENDSTOP "Finecorsa" -#define MSG_SELFTEST_ENDSTOP_NOTHIT "Finec. fuori por." -#define MSG_SELFTEST_OK "Autotest OK" - -#define(length=20) MSG_SELFTEST_FAN "Prova del ventilator"; -#define(length=20) MSG_SELFTEST_COOLING_FAN "Vent di stampa ant.?"; -#define(length=20) MSG_SELFTEST_EXTRUDER_FAN "Vent SX sull'ugello?"; -#define MSG_SELFTEST_FAN_YES "Gira"; -#define MSG_SELFTEST_FAN_NO "Non si gira"; - -#define MSG_STATS_TOTALFILAMENT "Filamento tot:" -#define MSG_STATS_TOTALPRINTTIME "Tempo stampa tot:" -#define MSG_STATS_FILAMENTUSED "Filamento usato:" -#define MSG_STATS_PRINTTIME "Tempo di stampa:" -#define MSG_SELFTEST_START "Avvia autotest" -#define MSG_SELFTEST_CHECK_ENDSTOPS "Verifica finecorsa" -#define MSG_SELFTEST_CHECK_HOTEND "Verifica ugello" -#define MSG_SELFTEST_CHECK_X "Verifica asse X" -#define MSG_SELFTEST_CHECK_Y "Verifica asse Y" -#define MSG_SELFTEST_CHECK_Z "Verifica asse Z" -#define MSG_SELFTEST_CHECK_BED "Verifica letto" -#define MSG_SELFTEST_CHECK_ALLCORRECT "Nessun errore" -#define MSG_SELFTEST "Autotest" -#define MSG_SELFTEST_FAILED "Autotest fallito" -#define MSG_STATISTICS "Statistiche" -#define MSG_USB_PRINTING "Stampa da USB" -#define MSG_HOMEYZ "Calibra Z" -#define MSG_HOMEYZ_PROGRESS "Calibrando Z" -#define MSG_HOMEYZ_DONE "Calibrazione OK" - - - -#define MSG_SHOW_END_STOPS "Stato finecorsa" -#define MSG_CALIBRATE_BED "Calibra XYZ" -#define MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." - -#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." -#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." - -#define MSG_CONFIRM_NOZZLE_CLEAN "Pulire l'ugello per la calibrazione, poi fare click." -#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "I carrelli Z sin/des sono altezza max?" - -#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Ricerca del letto punto di calibraz." -#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 " su 4" -#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Perfezion. il letto punto di calibraz." -#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 " su 9" -#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 "Misurare l'altezza di riferimento del punto di calibrazione" -#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 " su 9" -#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION "Reiterazione " - -#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato." -#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "Calibrazione XYZ fallita. Si prega di consultare il manuale." -#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!" -#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!" -#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "Calibrazion XYZ corretta. La distorsione verra' automaticamente compensata." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." -#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." -#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili." - -#define MSG_BED_LEVELING_FAILED_POINT_LOW "Livellamento letto fallito.NoRispSensor Residui su ugello? In attesa di reset." -#define MSG_BED_LEVELING_FAILED_POINT_HIGH "Livellamento letto fallito.Risp sensore troppo prestoIn attesa di reset." -#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED "Livellamento letto fallito. Sensore discon. o Cavo Dann. In attesa di reset." - -#define MSG_NEW_FIRMWARE_AVAILABLE "Nuova versione del firmware disponibile" -#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE "Prega aggiorna." - -#define MSG_FOLLOW_CALIBRATION_FLOW "Stampante ancora non calibrata. Si prega di seguire il manuale, capitolo PRIMI PASSI, sezione della calibrazione." -#define MSG_BABYSTEP_Z_NOT_SET "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo First steps, sezione First layer calibration." - -#define MSG_BED_CORRECTION_MENU "Correz. liv.letto" -#define MSG_BED_CORRECTION_LEFT "Sinistra [um]" -#define MSG_BED_CORRECTION_RIGHT "Destra [um]" -#define MSG_BED_CORRECTION_FRONT "Fronte [um]" -#define MSG_BED_CORRECTION_REAR "Retro [um]" -#define MSG_BED_CORRECTION_RESET "Reset" - -#define MSG_MESH_BED_LEVELING "Mesh livel. letto" -#define MSG_MENU_CALIBRATION "Calibrazione" -#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]" -#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]" - -#define MSG_LOOSE_PULLEY "Puleggia lenta" -#define MSG_FILAMENT_LOADING_T0 "Inserire filamento nell'estrusore 1. Click per continuare." -#define MSG_FILAMENT_LOADING_T1 "Inserire filamento nell'estrusore 2. Click per continuare." -#define MSG_FILAMENT_LOADING_T2 "Inserire filamento nell'estrusore 3. Click per continuare." -#define MSG_FILAMENT_LOADING_T3 "Inserire filamento nell'estrusore 4. Click per continuare." -#define MSG_CHANGE_EXTR "Cambio estrusore." - -#define MSG_FIL_ADJUSTING "Filamento in fase di regolazione. Attendere prego." -#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ "I filamenti sono regolati. Si prega di pulire l'ugello per la calibrazione. Click per continuare." -#define MSG_CALIBRATE_E "Calibra E" -#define MSG_E_CAL_KNOB "Girare la manopola affinche' il segno raggiunga il corpo dell'estrusore. Click per continuare." -#define MSG_MARK_FIL "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare." -#define MSG_CLEAN_NOZZLE_E "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare." -#define MSG_WAITING_TEMP "In attesa del raffreddamento della testina e del piatto" -#define MSG_FILAMENT_CLEAN "Il colore e' nitido?" -#define MSG_UNLOADING_FILAMENT "Rilasc. filamento" -#define MSG_PAPER "Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante." - -#define MSG_FINISHING_MOVEMENTS "Arresto in corso" -#define MSG_PRINT_PAUSED "Stampa in pausa" -#define MSG_RESUMING_PRINT "Stampa in ripresa" -#define MSG_PID_EXTRUDER "Calibrazione PID" -#define MSG_SET_TEMPERATURE "Imposta temperatura" -#define MSG_PID_FINISHED "Cal. PID completa" -#define MSG_PID_RUNNING "Cal. PID" - -#define MSG_CALIBRATE_PINDA "Calibrare" -#define MSG_CALIBRATION_PINDA_MENU "Taratura temp." -#define MSG_PINDA_NOT_CALIBRATED "Taratura della temperatura non ancora eseguita" -#define MSG_PINDA_PREHEAT "Riscald. PINDA" -#define MSG_TEMP_CALIBRATION "Cal. temp. " -#define MSG_TEMP_CALIBRATION_DONE "Taratura temperatura terminata. Fare click per continuare." -#define MSG_TEMP_CALIBRATION_ON "Cal. temp. [ON]" -#define MSG_TEMP_CALIBRATION_OFF "Cal. temp. [OFF]" - -#define MSG_LOAD_ALL "Caricare tutti" -#define MSG_LOAD_FILAMENT_1 "Caricare fil. 1" -#define MSG_LOAD_FILAMENT_2 "Caricare fil. 2" -#define MSG_LOAD_FILAMENT_3 "Caricare fil. 3" -#define MSG_LOAD_FILAMENT_4 "Caricare fil. 4" -#define MSG_UNLOAD_FILAMENT_1 "Rilasciare fil. 1" -#define MSG_UNLOAD_FILAMENT_2 "Rilasciare fil. 1" -#define MSG_UNLOAD_FILAMENT_3 "Rilasciare fil. 1" -#define MSG_UNLOAD_FILAMENT_4 "Rilasciare fil. 1" -#define MSG_UNLOAD_ALL "Rilasciare tutti" -#define MSG_PREPARE_FILAMENT "Preparare filamento" -#define MSG_ALL "Tutti" -#define MSG_USED "Usati nella stampa" -#define MSG_CURRENT "Attuale" -#define MSG_CHOOSE_EXTRUDER "Seleziona estrusore:" -#define MSG_EXTRUDER "Estrusore" -#define MSG_EXTRUDER_1 "Estrusore 1" -#define MSG_EXTRUDER_2 "Estrusore 2" -#define MSG_EXTRUDER_3 "Estrusore 3" +#define WELCOME_MSG CUSTOM_MENDEL_NAME " pronta." +#define MSG_SD_INSERTED "SD inserita" +#define MSG_SD_REMOVED "SD rimossa" +#define MSG_MAIN "Menu principale" +#define MSG_DISABLE_STEPPERS "Disabilit motori" +#define MSG_AUTO_HOME "Trova origine" +#define MSG_SET_HOME_OFFSETS "Set home offsets" +#define MSG_SET_ORIGIN "Set origin" +#define MSG_COOLDOWN "Raffredda" +#define MSG_SWITCH_PS_ON "Switch power on" +#define MSG_SWITCH_PS_OFF "Switch power off" +#define MSG_MOVE_AXIS "Muovi asse" +#define MSG_MOVE_X "Muovi X" +#define MSG_MOVE_Y "Muovi Y" +#define MSG_MOVE_Z "Muovi Z" +#define MSG_MOVE_E "Muovi Estrusore" +#define MSG_MOVE_01MM "Move 0.1mm" +#define MSG_MOVE_1MM "Move 1mm" +#define MSG_MOVE_10MM "Move 10mm" +#define MSG_SPEED "Velocita" +#define MSG_NOZZLE "Ugello" +#define MSG_NOZZLE1 "Nozzle2" +#define MSG_NOZZLE2 "Nozzle3" +#define MSG_BED "Letto" +#define MSG_FAN_SPEED "Velocita vent." +#define MSG_FLOW "Flusso" +#define MSG_TEMPERATURE "Temperatura" +#define MSG_MOTION "Motion" +#define MSG_VOLUMETRIC "Filament" +#define MSG_VOLUMETRIC_ENABLED "E in mm3" +#define MSG_STORE_EPROM "Store memory" +#define MSG_LOAD_EPROM "Load memory" +#define MSG_RESTORE_FAILSAFE "Restore failsafe" +#define MSG_REFRESH "\xF8" "Refresh" +#define MSG_WATCH "Schermata info" +#define MSG_TUNE "Regola" +#define MSG_PAUSE_PRINT "Metti in pausa" +#define MSG_RESUME_PRINT "Riprendi stampa" +#define MSG_STOP_PRINT "Arresta stampa" +#define MSG_CARD_MENU "Stampa da SD" +#define MSG_NO_CARD "Nessuna SD" +#define MSG_DWELL "Sospensione..." +#define MSG_USERWAIT "Attendendo utente" +#define MSG_RESUMING "Riprendi stampa" +#define MSG_PRINT_ABORTED "Stampa abortita" +#define MSG_NO_MOVE "Nessun movimento." +#define MSG_KILLED "IN TILT." +#define MSG_STOPPED "ARRESTATO." +#define MSG_FILAMENTCHANGE "Camb. filamento" +#define MSG_INIT_SDCARD "Init. SD card" +#define MSG_CNG_SDCARD "Change SD card" +#define MSG_ZPROBE_OUT "Z probe out. bed" +#define MSG_POSITION_UNKNOWN "Home X/Y before Z" +#define MSG_ZPROBE_ZOFFSET "Z Offset" +#define MSG_BABYSTEP_X "Babystep X" +#define MSG_BABYSTEP_Y "Babystep Y" +#define MSG_BABYSTEP_Z "Compensazione Z" +#define MSG_ADJUSTZ "Autoregolare Z?" +#define MSG_PICK_Z "Pick print" + +#define MSG_SETTINGS "Impostazioni" +#define MSG_PREHEAT "Preriscalda" +#define MSG_HEATING "Riscaldamento..." +#define MSG_SUPPORT "Support" +#define MSG_YES "Si" +#define MSG_NO "No" +#define MSG_NOT_LOADED "Fil. non caricato" +#define MSG_NOT_COLOR "Colore non puro" +#define MSG_LOADING_COLOR "Caricando colore" +#define MSG_CHANGE_SUCCESS "Cambio riuscito!" +#define MSG_PRESS "e cliccare manopola" +#define MSG_INSERT_FILAMENT "Inserire filamento" +#define MSG_CHANGING_FILAMENT "Cambiando filam." + +#define MSG_PLEASE_WAIT "Aspetta" +#define MSG_PREHEAT_NOZZLE "Preris. ugello!" +#define MSG_HEATING_COMPLETE "Riscald. completo" +#define MSG_BED_HEATING "Riscald. letto" +#define MSG_BED_DONE "Piatto fatto." +#define MSG_ERROR "ERRORE:" +#define MSG_CORRECTLY "Cambiato corr.?" +#define MSG_LOADING_FILAMENT "Caricando filam." +#define MSG_UNLOAD_FILAMENT "Scarica filamento" +#define MSG_LOAD_FILAMENT "Carica filamento" + +#define MSG_SILENT_MODE_ON "Modo [silenzioso]" +#define MSG_SILENT_MODE_OFF "Mode [forte]" +#define MSG_REBOOT "Riavvia stampante" +#define MSG_TAKE_EFFECT " per attualizzare" + +#define MSG_Enqueing "enqueing \"" +#define MSG_POWERUP "PowerUp" +#define MSG_CONFIGURATION_VER " Last Updated: " +#define MSG_FREE_MEMORY " Free Memory: " +#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: " +#define MSG_OK "ok" +#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line: " +#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line: " +#define MSG_BEGIN_FILE_LIST "Begin file list" +#define MSG_END_FILE_LIST "End file list" +#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder " +#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder " +#define MSG_M200_INVALID_EXTRUDER "M200 Invalid extruder " +#define MSG_M218_INVALID_EXTRUDER "M218 Invalid extruder " +#define MSG_M221_INVALID_EXTRUDER "M221 Invalid extruder " +#define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" +#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder " +#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" CUSTOM_MENDEL_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n" +#define MSG_ERR_KILLED "Printer halted. kill() called!" +#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" +#define MSG_RESEND "Resend: " +#define MSG_M119_REPORT "Reporting endstop status" +#define MSG_ENDSTOP_HIT "TRIGGERED" +#define MSG_ENDSTOP_OPEN "open" +#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir" +#define MSG_SD_INIT_FAIL "SD init fail" +#define MSG_SD_VOL_INIT_FAIL "volume.init failed" +#define MSG_SD_OPENROOT_FAIL "openRoot failed" +#define MSG_SD_CARD_OK "SD card ok" +#define MSG_SD_WORKDIR_FAIL "workDir open failed" +#define MSG_SD_OPEN_FILE_FAIL "open failed, File: " +#define MSG_SD_FILE_OPENED "File opened: " +#define MSG_SD_FILE_SELECTED "File selected" +#define MSG_SD_WRITE_TO_FILE "Writing to file: " +#define MSG_SD_PRINTING_BYTE "SD printing byte " +#define MSG_SD_NOT_PRINTING "Not SD printing" +#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file" +#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir: " +#define MSG_STEPPER_TOO_HIGH "Steprate too high: " +#define MSG_ENDSTOPS_HIT "endstops hit: " +#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented" +#define MSG_BABYSTEPPING_X "Babystepping X" +#define MSG_BABYSTEPPING_Y "Babystepping Y" +#define MSG_BABYSTEPPING_Z "Adjusting Z" +#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure" + +#define MSG_LANGUAGE_NAME "Italiano" +#define MSG_LANGUAGE_SELECT "Seleziona lingua" +#define MSG_PRUSA3D "prusa3d.com" +#define MSG_PRUSA3D_FORUM "forum.prusa3d.com" +#define MSG_PRUSA3D_HOWTO "howto.prusa3d.com" + +#define MSG_SELFTEST_ERROR "Autotest negativo" +#define MSG_SELFTEST_PLEASECHECK "Verificare:" +#define MSG_SELFTEST_NOTCONNECTED "Non connesso" +#define MSG_SELFTEST_HEATERTHERMISTOR "Riscald./Termist." +#define MSG_SELFTEST_BEDHEATER "Letto/Riscald." +#define MSG_SELFTEST_WIRINGERROR "Errore cablaggio" +#define MSG_SELFTEST_ENDSTOPS "Finecorsa (2)" +#define MSG_SELFTEST_MOTOR "Motore" +#define MSG_SELFTEST_ENDSTOP "Finecorsa" +#define MSG_SELFTEST_ENDSTOP_NOTHIT "Finec. fuori por." +#define MSG_SELFTEST_OK "Autotest OK" + +#define(length=20) MSG_SELFTEST_FAN "Prova del ventilator"; +#define(length=20) MSG_SELFTEST_COOLING_FAN "Vent di stampa ant.?"; +#define(length=20) MSG_SELFTEST_EXTRUDER_FAN "Vent SX sull'ugello?"; +#define MSG_SELFTEST_FAN_YES "Gira"; +#define MSG_SELFTEST_FAN_NO "Non si gira"; + +#define MSG_STATS_TOTALFILAMENT "Filamento tot:" +#define MSG_STATS_TOTALPRINTTIME "Tempo stampa tot:" +#define MSG_STATS_FILAMENTUSED "Filamento usato:" +#define MSG_STATS_PRINTTIME "Tempo di stampa:" +#define MSG_SELFTEST_START "Avvia autotest" +#define MSG_SELFTEST_CHECK_ENDSTOPS "Verifica finecorsa" +#define MSG_SELFTEST_CHECK_HOTEND "Verifica ugello" +#define MSG_SELFTEST_CHECK_X "Verifica asse X" +#define MSG_SELFTEST_CHECK_Y "Verifica asse Y" +#define MSG_SELFTEST_CHECK_Z "Verifica asse Z" +#define MSG_SELFTEST_CHECK_BED "Verifica letto" +#define MSG_SELFTEST_CHECK_ALLCORRECT "Nessun errore" +#define MSG_SELFTEST "Autotest" +#define MSG_SELFTEST_FAILED "Autotest fallito" +#define MSG_STATISTICS "Statistiche" +#define MSG_USB_PRINTING "Stampa da USB" +#define MSG_HOMEYZ "Calibra Z" +#define MSG_HOMEYZ_PROGRESS "Calibrando Z" +#define MSG_HOMEYZ_DONE "Calibrazione OK" + + + +#define MSG_SHOW_END_STOPS "Stato finecorsa" +#define MSG_CALIBRATE_BED "Calibra XYZ" +#define MSG_CALIBRATE_BED_RESET "Reset XYZ calibr." + +#define MSG_MOVE_CARRIAGE_TO_THE_TOP "Calibrazione XYZ. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." +#define MSG_MOVE_CARRIAGE_TO_THE_TOP_Z "Calibrazione Z. Ruotare la manopola per alzare il carrello Z fino all'altezza massima. Click per terminare." + +#define MSG_CONFIRM_NOZZLE_CLEAN "Pulire l'ugello per la calibrazione, poi fare click." +#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "I carrelli Z sin/des sono altezza max?" + +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Ricerca del letto punto di calibraz." +#define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 " su 4" +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Perfezion. il letto punto di calibraz." +#define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2 " su 9" +#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 "Misurare l'altezza di riferimento del punto di calibrazione" +#define MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2 " su 9" +#define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION "Reiterazione " + +#define MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND "Calibrazione XYZ fallita. Il punto di calibrazione sul letto non e' stato trovato." +#define MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED "Calibrazione XYZ fallita. Si prega di consultare il manuale." +#define MSG_BED_SKEW_OFFSET_DETECTION_PERFECT "Calibrazione XYZ OK. Gli assi X/Y sono perpendicolari. Complimenti!" +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD "Calibrazion XYZ corretta. Assi X/Y leggermente storti. Ben fatto!" +#define MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME "Calibrazion XYZ corretta. La distorsione verra' automaticamente compensata." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_LEFT_FAR "Calibrazione XYZ fallita. Punto anteriore sinistro non raggiungibile." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_RIGHT_FAR "Calibrazione XYZ fallita. Punto anteriore destro non raggiungibile." +#define MSG_BED_SKEW_OFFSET_DETECTION_FAILED_FRONT_BOTH_FAR "Calibrazione XYZ fallita. Punti anteriori non raggiungibili." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_LEFT_FAR "Calibrazione XYZ compromessa. Punto anteriore sinistro non raggiungibile." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." +#define MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili." + +#define MSG_BED_LEVELING_FAILED_POINT_LOW "Livellamento letto fallito.NoRispSensor Residui su ugello? In attesa di reset." +#define MSG_BED_LEVELING_FAILED_POINT_HIGH "Livellamento letto fallito.Risp sensore troppo prestoIn attesa di reset." +#define MSG_BED_LEVELING_FAILED_PROBE_DISCONNECTED "Livellamento letto fallito. Sensore discon. o Cavo Dann. In attesa di reset." + +#define MSG_NEW_FIRMWARE_AVAILABLE "Nuova versione del firmware disponibile" +#define MSG_NEW_FIRMWARE_PLEASE_UPGRADE "Prega aggiorna." + +#define MSG_FOLLOW_CALIBRATION_FLOW "Stampante ancora non calibrata. Si prega di seguire il manuale, capitolo PRIMI PASSI, sezione della calibrazione." +#define MSG_BABYSTEP_Z_NOT_SET "Distanza tra la punta dell'ugello e la superficie del letto non ancora imposta. Si prega di seguire il manuale, capitolo First steps, sezione First layer calibration." + +#define MSG_BED_CORRECTION_MENU "Correz. liv.letto" +#define MSG_BED_CORRECTION_LEFT "Sinistra [um]" +#define MSG_BED_CORRECTION_RIGHT "Destra [um]" +#define MSG_BED_CORRECTION_FRONT "Fronte [um]" +#define MSG_BED_CORRECTION_REAR "Retro [um]" +#define MSG_BED_CORRECTION_RESET "Reset" + +#define MSG_MESH_BED_LEVELING "Mesh livel. letto" +#define MSG_MENU_CALIBRATION "Calibrazione" +#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]" +#define MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]" + +#define MSG_LOOSE_PULLEY "Puleggia lenta" +#define MSG_FILAMENT_LOADING_T0 "Inserire filamento nell'estrusore 1. Click per continuare." +#define MSG_FILAMENT_LOADING_T1 "Inserire filamento nell'estrusore 2. Click per continuare." +#define MSG_FILAMENT_LOADING_T2 "Inserire filamento nell'estrusore 3. Click per continuare." +#define MSG_FILAMENT_LOADING_T3 "Inserire filamento nell'estrusore 4. Click per continuare." +#define MSG_CHANGE_EXTR "Cambio estrusore." + +#define MSG_FIL_ADJUSTING "Filamento in fase di regolazione. Attendere prego." +#define MSG_CONFIRM_NOZZLE_CLEAN_FIL_ADJ "I filamenti sono regolati. Si prega di pulire l'ugello per la calibrazione. Click per continuare." +#define MSG_CALIBRATE_E "Calibra E" +#define MSG_E_CAL_KNOB "Girare la manopola affinche' il segno raggiunga il corpo dell'estrusore. Click per continuare." +#define MSG_MARK_FIL "Segnare il filamento a 100 mm di distanza dal corpo dell'estrusore. Click per continuare." +#define MSG_CLEAN_NOZZLE_E "Calibrazione E terminata. Si prega di pulire l'ugello. Click per continuare." +#define MSG_WAITING_TEMP "In attesa del raffreddamento della testina e del piatto" +#define MSG_FILAMENT_CLEAN "Il colore e' nitido?" +#define MSG_UNLOADING_FILAMENT "Rilasc. filamento" +#define MSG_PAPER "Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante." + +#define MSG_FINISHING_MOVEMENTS "Arresto in corso" +#define MSG_PRINT_PAUSED "Stampa in pausa" +#define MSG_RESUMING_PRINT "Stampa in ripresa" +#define MSG_PID_EXTRUDER "Calibrazione PID" +#define MSG_SET_TEMPERATURE "Imposta temperatura" +#define MSG_PID_FINISHED "Cal. PID completa" +#define MSG_PID_RUNNING "Cal. PID" + +#define MSG_CALIBRATE_PINDA "Calibrare" +#define MSG_CALIBRATION_PINDA_MENU "Taratura temp." +#define MSG_PINDA_NOT_CALIBRATED "Taratura della temperatura non ancora eseguita" +#define MSG_PINDA_PREHEAT "Riscald. PINDA" +#define MSG_TEMP_CALIBRATION "Cal. temp. " +#define MSG_TEMP_CALIBRATION_DONE "Taratura temperatura terminata. Fare click per continuare." +#define MSG_TEMP_CALIBRATION_ON "Cal. temp. [ON]" +#define MSG_TEMP_CALIBRATION_OFF "Cal. temp. [OFF]" + +#define MSG_LOAD_ALL "Caricare tutti" +#define MSG_LOAD_FILAMENT_1 "Caricare fil. 1" +#define MSG_LOAD_FILAMENT_2 "Caricare fil. 2" +#define MSG_LOAD_FILAMENT_3 "Caricare fil. 3" +#define MSG_LOAD_FILAMENT_4 "Caricare fil. 4" +#define MSG_UNLOAD_FILAMENT_1 "Rilasciare fil. 1" +#define MSG_UNLOAD_FILAMENT_2 "Rilasciare fil. 1" +#define MSG_UNLOAD_FILAMENT_3 "Rilasciare fil. 1" +#define MSG_UNLOAD_FILAMENT_4 "Rilasciare fil. 1" +#define MSG_UNLOAD_ALL "Rilasciare tutti" +#define MSG_PREPARE_FILAMENT "Preparare filamento" +#define MSG_ALL "Tutti" +#define MSG_USED "Usati nella stampa" +#define MSG_CURRENT "Attuale" +#define MSG_CHOOSE_EXTRUDER "Seleziona estrusore:" +#define MSG_EXTRUDER "Estrusore" +#define MSG_EXTRUDER_1 "Estrusore 1" +#define MSG_EXTRUDER_2 "Estrusore 2" +#define MSG_EXTRUDER_3 "Estrusore 3" #define MSG_EXTRUDER_4 "Estrusore 4" \ No newline at end of file diff --git a/Firmware/mesh_bed_calibration.cpp b/Firmware/mesh_bed_calibration.cpp index 9c3f8f6b2..5220c1aff 100644 --- a/Firmware/mesh_bed_calibration.cpp +++ b/Firmware/mesh_bed_calibration.cpp @@ -1,2464 +1,2469 @@ -#include "Marlin.h" -#include "Configuration.h" -#include "ConfigurationStore.h" -#include "language_all.h" -#include "mesh_bed_calibration.h" -#include "mesh_bed_leveling.h" -#include "stepper.h" -#include "ultralcd.h" - -uint8_t world2machine_correction_mode; -float world2machine_rotation_and_skew[2][2]; -float world2machine_rotation_and_skew_inv[2][2]; -float world2machine_shift[2]; - -// Weight of the Y coordinate for the least squares fitting of the bed induction sensor targets. -// Only used for the first row of the points, which may not befully in reach of the sensor. -#define WEIGHT_FIRST_ROW_X_HIGH (1.f) -#define WEIGHT_FIRST_ROW_X_LOW (0.35f) -#define WEIGHT_FIRST_ROW_Y_HIGH (0.3f) -#define WEIGHT_FIRST_ROW_Y_LOW (0.0f) - -#define BED_ZERO_REF_X (- 22.f + X_PROBE_OFFSET_FROM_EXTRUDER) -#define BED_ZERO_REF_Y (- 0.6f + Y_PROBE_OFFSET_FROM_EXTRUDER) - -// Scaling of the real machine axes against the programmed dimensions in the firmware. -// The correction is tiny, here around 0.5mm on 250mm length. -//#define MACHINE_AXIS_SCALE_X ((250.f - 0.5f) / 250.f) -//#define MACHINE_AXIS_SCALE_Y ((250.f - 0.5f) / 250.f) -#define MACHINE_AXIS_SCALE_X 1.f -#define MACHINE_AXIS_SCALE_Y 1.f - -#define BED_CALIBRATION_POINT_OFFSET_MAX_EUCLIDIAN (0.8f) -#define BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X (0.8f) -#define BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y (1.5f) - -#define MIN_BED_SENSOR_POINT_RESPONSE_DMR (2.0f) - -//#define Y_MIN_POS_FOR_BED_CALIBRATION (MANUAL_Y_HOME_POS-0.2f) -#define Y_MIN_POS_FOR_BED_CALIBRATION (Y_MIN_POS) -// Distances toward the print bed edge may not be accurate. -#define Y_MIN_POS_CALIBRATION_POINT_ACCURATE (Y_MIN_POS + 3.f) -// When the measured point center is out of reach of the sensor, Y coordinate will be ignored -// by the Least Squares fitting and the X coordinate will be weighted low. -#define Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH (Y_MIN_POS - 0.5f) - -// 0.12 degrees equals to an offset of 0.5mm on 250mm length. -const float bed_skew_angle_mild = (0.12f * M_PI / 180.f); -// 0.25 degrees equals to an offset of 1.1mm on 250mm length. -const float bed_skew_angle_extreme = (0.25f * M_PI / 180.f); - -// Positions of the bed reference points in the machine coordinates, referenced to the P.I.N.D.A sensor. -// The points are ordered in a zig-zag fashion to speed up the calibration. -const float bed_ref_points[] PROGMEM = { - 13.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, - 115.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, - 216.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, - - 216.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, - 115.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, - 13.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, - - 13.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y, - 115.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y, - 216.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y -}; - -// Positions of the bed reference points in the machine coordinates, referenced to the P.I.N.D.A sensor. -// The points are the following: center front, center right, center rear, center left. -const float bed_ref_points_4[] PROGMEM = { - 115.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, - 216.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, - 115.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y, - 13.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y -}; - -static inline float sqr(float x) { return x * x; } - -static inline bool point_on_1st_row(const uint8_t i, const uint8_t npts) -{ - if (npts == 4) return (i == 0); - else return (i < 3); -} - -// Weight of a point coordinate in a least squares optimization. -// The first row of points may not be fully reachable -// and the y values may be shortened a bit by the bed carriage -// pulling the belt up. -static inline float point_weight_x(const uint8_t i, const uint8_t npts, const float &y) -{ - float w = 1.f; - if (point_on_1st_row(i, npts)) { - if (y >= Y_MIN_POS_CALIBRATION_POINT_ACCURATE) { - w = WEIGHT_FIRST_ROW_X_HIGH; - } else if (y < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) { - // If the point is fully outside, give it some weight. - w = WEIGHT_FIRST_ROW_X_LOW; - } else { - // Linearly interpolate the weight from 1 to WEIGHT_FIRST_ROW_X. - float t = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) / (Y_MIN_POS_CALIBRATION_POINT_ACCURATE - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); - w = (1.f - t) * WEIGHT_FIRST_ROW_X_LOW + t * WEIGHT_FIRST_ROW_X_HIGH; - } - } - return w; -} - -// Weight of a point coordinate in a least squares optimization. -// The first row of points may not be fully reachable -// and the y values may be shortened a bit by the bed carriage -// pulling the belt up. -static inline float point_weight_y(const uint8_t i, const uint8_t npts, const float &y) -{ - float w = 1.f; - if (point_on_1st_row(i, npts)) { - if (y >= Y_MIN_POS_CALIBRATION_POINT_ACCURATE) { - w = WEIGHT_FIRST_ROW_Y_HIGH; - } else if (y < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) { - // If the point is fully outside, give it some weight. - w = WEIGHT_FIRST_ROW_Y_LOW; - } else { - // Linearly interpolate the weight from 1 to WEIGHT_FIRST_ROW_X. - float t = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) / (Y_MIN_POS_CALIBRATION_POINT_ACCURATE - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); - w = (1.f - t) * WEIGHT_FIRST_ROW_Y_LOW + t * WEIGHT_FIRST_ROW_Y_HIGH; - } - } - return w; -} - -// Non-Linear Least Squares fitting of the bed to the measured induction points -// using the Gauss-Newton method. -// This method will maintain a unity length of the machine axes, -// which is the correct approach if the sensor points are not measured precisely. -BedSkewOffsetDetectionResultType calculate_machine_skew_and_offset_LS( - // Matrix of maximum 9 2D points (18 floats) - const float *measured_pts, - uint8_t npts, - const float *true_pts, - // Resulting correction matrix. - float *vec_x, - float *vec_y, - float *cntr, - // Temporary values, 49-18-(2*3)=25 floats - // , float *temp - int8_t verbosity_level - ) -{ - if (verbosity_level >= 10) { - SERIAL_ECHOLNPGM("calculate machine skew and offset LS"); - - // Show the initial state, before the fitting. - SERIAL_ECHOPGM("X vector, initial: "); - MYSERIAL.print(vec_x[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(vec_x[1], 5); - SERIAL_ECHOLNPGM(""); - - SERIAL_ECHOPGM("Y vector, initial: "); - MYSERIAL.print(vec_y[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(vec_y[1], 5); - SERIAL_ECHOLNPGM(""); - - SERIAL_ECHOPGM("center, initial: "); - MYSERIAL.print(cntr[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(cntr[1], 5); - SERIAL_ECHOLNPGM(""); - - for (uint8_t i = 0; i < npts; ++i) { - SERIAL_ECHOPGM("point #"); - MYSERIAL.print(int(i)); - SERIAL_ECHOPGM(" measured: ("); - MYSERIAL.print(measured_pts[i * 2], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(measured_pts[i * 2 + 1], 5); - SERIAL_ECHOPGM("); target: ("); - MYSERIAL.print(pgm_read_float(true_pts + i * 2), 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(pgm_read_float(true_pts + i * 2 + 1), 5); - SERIAL_ECHOPGM("), error: "); - MYSERIAL.print(sqrt( - sqr(pgm_read_float(true_pts + i * 2) - measured_pts[i * 2]) + - sqr(pgm_read_float(true_pts + i * 2 + 1) - measured_pts[i * 2 + 1])), 5); - SERIAL_ECHOLNPGM(""); - } - delay_keep_alive(100); - } - - // Run some iterations of the Gauss-Newton method of non-linear least squares. - // Initial set of parameters: - // X,Y offset - cntr[0] = 0.f; - cntr[1] = 0.f; - // Rotation of the machine X axis from the bed X axis. - float a1 = 0; - // Rotation of the machine Y axis from the bed Y axis. - float a2 = 0; - for (int8_t iter = 0; iter < 100; ++iter) { - float c1 = cos(a1) * MACHINE_AXIS_SCALE_X; - float s1 = sin(a1) * MACHINE_AXIS_SCALE_X; - float c2 = cos(a2) * MACHINE_AXIS_SCALE_Y; - float s2 = sin(a2) * MACHINE_AXIS_SCALE_Y; - // Prepare the Normal equation for the Gauss-Newton method. - float A[4][4] = { 0.f }; - float b[4] = { 0.f }; - float acc; - for (uint8_t r = 0; r < 4; ++r) { - for (uint8_t c = 0; c < 4; ++c) { - acc = 0; - // J^T times J - for (uint8_t i = 0; i < npts; ++i) { - // First for the residuum in the x axis: - if (r != 1 && c != 1) { - float a = - (r == 0) ? 1.f : - ((r == 2) ? (-s1 * measured_pts[2 * i]) : - (-c2 * measured_pts[2 * i + 1])); - float b = - (c == 0) ? 1.f : - ((c == 2) ? (-s1 * measured_pts[2 * i]) : - (-c2 * measured_pts[2 * i + 1])); - float w = point_weight_x(i, npts, measured_pts[2 * i + 1]); - acc += a * b * w; - } - // Second for the residuum in the y axis. - // The first row of the points have a low weight, because their position may not be known - // with a sufficient accuracy. - if (r != 0 && c != 0) { - float a = - (r == 1) ? 1.f : - ((r == 2) ? ( c1 * measured_pts[2 * i]) : - (-s2 * measured_pts[2 * i + 1])); - float b = - (c == 1) ? 1.f : - ((c == 2) ? ( c1 * measured_pts[2 * i]) : - (-s2 * measured_pts[2 * i + 1])); - float w = point_weight_y(i, npts, measured_pts[2 * i + 1]); - acc += a * b * w; - } - } - A[r][c] = acc; - } - // J^T times f(x) - acc = 0.f; - for (uint8_t i = 0; i < npts; ++i) { - { - float j = - (r == 0) ? 1.f : - ((r == 1) ? 0.f : - ((r == 2) ? (-s1 * measured_pts[2 * i]) : - (-c2 * measured_pts[2 * i + 1]))); - float fx = c1 * measured_pts[2 * i] - s2 * measured_pts[2 * i + 1] + cntr[0] - pgm_read_float(true_pts + i * 2); - float w = point_weight_x(i, npts, measured_pts[2 * i + 1]); - acc += j * fx * w; - } - { - float j = - (r == 0) ? 0.f : - ((r == 1) ? 1.f : - ((r == 2) ? ( c1 * measured_pts[2 * i]) : - (-s2 * measured_pts[2 * i + 1]))); - float fy = s1 * measured_pts[2 * i] + c2 * measured_pts[2 * i + 1] + cntr[1] - pgm_read_float(true_pts + i * 2 + 1); - float w = point_weight_y(i, npts, measured_pts[2 * i + 1]); - acc += j * fy * w; - } - } - b[r] = -acc; - } - - // Solve for h by a Gauss iteration method. - float h[4] = { 0.f }; - for (uint8_t gauss_iter = 0; gauss_iter < 100; ++gauss_iter) { - h[0] = (b[0] - A[0][1] * h[1] - A[0][2] * h[2] - A[0][3] * h[3]) / A[0][0]; - h[1] = (b[1] - A[1][0] * h[0] - A[1][2] * h[2] - A[1][3] * h[3]) / A[1][1]; - h[2] = (b[2] - A[2][0] * h[0] - A[2][1] * h[1] - A[2][3] * h[3]) / A[2][2]; - h[3] = (b[3] - A[3][0] * h[0] - A[3][1] * h[1] - A[3][2] * h[2]) / A[3][3]; - } - - // and update the current position with h. - // It may be better to use the Levenberg-Marquart method here, - // but because we are very close to the solution alread, - // the simple Gauss-Newton non-linear Least Squares method works well enough. - cntr[0] += h[0]; - cntr[1] += h[1]; - a1 += h[2]; - a2 += h[3]; - - if (verbosity_level >= 20) { - SERIAL_ECHOPGM("iteration: "); - MYSERIAL.print(int(iter)); - SERIAL_ECHOPGM("; correction vector: "); - MYSERIAL.print(h[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(h[1], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(h[2], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(h[3], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("corrected x/y: "); - MYSERIAL.print(cntr[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(cntr[0], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("corrected angles: "); - MYSERIAL.print(180.f * a1 / M_PI, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(180.f * a2 / M_PI, 5); - SERIAL_ECHOLNPGM(""); - } - } - - vec_x[0] = cos(a1) * MACHINE_AXIS_SCALE_X; - vec_x[1] = sin(a1) * MACHINE_AXIS_SCALE_X; - vec_y[0] = -sin(a2) * MACHINE_AXIS_SCALE_Y; - vec_y[1] = cos(a2) * MACHINE_AXIS_SCALE_Y; - - BedSkewOffsetDetectionResultType result = BED_SKEW_OFFSET_DETECTION_PERFECT; - { - angleDiff = fabs(a2 - a1); - if (angleDiff > bed_skew_angle_mild) - result = (angleDiff > bed_skew_angle_extreme) ? - BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME : - BED_SKEW_OFFSET_DETECTION_SKEW_MILD; - if (fabs(a1) > bed_skew_angle_extreme || - fabs(a2) > bed_skew_angle_extreme) - result = BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME; - } - - if (verbosity_level >= 1) { - SERIAL_ECHOPGM("correction angles: "); - MYSERIAL.print(180.f * a1 / M_PI, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(180.f * a2 / M_PI, 5); - SERIAL_ECHOLNPGM(""); - } - - if (verbosity_level >= 10) { - // Show the adjusted state, before the fitting. - SERIAL_ECHOPGM("X vector new, inverted: "); - MYSERIAL.print(vec_x[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(vec_x[1], 5); - SERIAL_ECHOLNPGM(""); - - SERIAL_ECHOPGM("Y vector new, inverted: "); - MYSERIAL.print(vec_y[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(vec_y[1], 5); - SERIAL_ECHOLNPGM(""); - - SERIAL_ECHOPGM("center new, inverted: "); - MYSERIAL.print(cntr[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(cntr[1], 5); - SERIAL_ECHOLNPGM(""); - delay_keep_alive(100); - - SERIAL_ECHOLNPGM("Error after correction: "); - } - - // Measure the error after correction. - for (uint8_t i = 0; i < npts; ++i) { - float x = vec_x[0] * measured_pts[i * 2] + vec_y[0] * measured_pts[i * 2 + 1] + cntr[0]; - float y = vec_x[1] * measured_pts[i * 2] + vec_y[1] * measured_pts[i * 2 + 1] + cntr[1]; - float errX = sqr(pgm_read_float(true_pts + i * 2) - x); - float errY = sqr(pgm_read_float(true_pts + i * 2 + 1) - y); - float err = sqrt(errX + errY); - if (verbosity_level >= 10) { - SERIAL_ECHOPGM("point #"); - MYSERIAL.print(int(i)); - SERIAL_ECHOLNPGM(":"); - } - - if (point_on_1st_row(i, npts)) { - if(verbosity_level >= 20) SERIAL_ECHOPGM("Point on first row"); - float w = point_weight_y(i, npts, measured_pts[2 * i + 1]); - if (sqrt(errX) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X || - (w != 0.f && sqrt(errY) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y)) { - result = BED_SKEW_OFFSET_DETECTION_FITTING_FAILED; - if (verbosity_level >= 20) { - SERIAL_ECHOPGM(", weigth Y: "); - MYSERIAL.print(w); - if (sqrt(errX) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X) SERIAL_ECHOPGM(", error X > max. error X"); - if (w != 0.f && sqrt(errY) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y) SERIAL_ECHOPGM(", error Y > max. error Y"); - } - } - } - else { - if(verbosity_level >=20 ) SERIAL_ECHOPGM("Point not on first row"); - if (err > BED_CALIBRATION_POINT_OFFSET_MAX_EUCLIDIAN) { - result = BED_SKEW_OFFSET_DETECTION_FITTING_FAILED; - if(verbosity_level >= 20) SERIAL_ECHOPGM(", error > max. error euclidian"); - } - } - if (verbosity_level >= 10) { - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("measured: ("); - MYSERIAL.print(measured_pts[i * 2], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(measured_pts[i * 2 + 1], 5); - SERIAL_ECHOPGM("); corrected: ("); - MYSERIAL.print(x, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(y, 5); - SERIAL_ECHOPGM("); target: ("); - MYSERIAL.print(pgm_read_float(true_pts + i * 2), 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(pgm_read_float(true_pts + i * 2 + 1), 5); - SERIAL_ECHOLNPGM(")"); - SERIAL_ECHOPGM("error: "); - MYSERIAL.print(err); - SERIAL_ECHOPGM(", error X: "); - MYSERIAL.print(sqrt(errX)); - SERIAL_ECHOPGM(", error Y: "); - MYSERIAL.print(sqrt(errY)); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM(""); - } - } - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM("Max. errors:"); - SERIAL_ECHOPGM("Max. error X:"); - MYSERIAL.println(BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X); - SERIAL_ECHOPGM("Max. error Y:"); - MYSERIAL.println(BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y); - SERIAL_ECHOPGM("Max. error euclidian:"); - MYSERIAL.println(BED_CALIBRATION_POINT_OFFSET_MAX_EUCLIDIAN); - SERIAL_ECHOLNPGM(""); - } - - #if 0 - if (result == BED_SKEW_OFFSET_DETECTION_PERFECT && fabs(a1) < bed_skew_angle_mild && fabs(a2) < bed_skew_angle_mild) { - if (verbosity_level > 0) - SERIAL_ECHOLNPGM("Very little skew detected. Disabling skew correction."); - // Just disable the skew correction. - vec_x[0] = MACHINE_AXIS_SCALE_X; - vec_x[1] = 0.f; - vec_y[0] = 0.f; - vec_y[1] = MACHINE_AXIS_SCALE_Y; - } - #else - if (result == BED_SKEW_OFFSET_DETECTION_PERFECT) { - if (verbosity_level > 0) - SERIAL_ECHOLNPGM("Very little skew detected. Orthogonalizing the axes."); - // Orthogonalize the axes. - a1 = 0.5f * (a1 + a2); - vec_x[0] = cos(a1) * MACHINE_AXIS_SCALE_X; - vec_x[1] = sin(a1) * MACHINE_AXIS_SCALE_X; - vec_y[0] = -sin(a1) * MACHINE_AXIS_SCALE_Y; - vec_y[1] = cos(a1) * MACHINE_AXIS_SCALE_Y; - // Refresh the offset. - cntr[0] = 0.f; - cntr[1] = 0.f; - float wx = 0.f; - float wy = 0.f; - for (int8_t i = 0; i < npts; ++ i) { - float x = vec_x[0] * measured_pts[i * 2] + vec_y[0] * measured_pts[i * 2 + 1]; - float y = vec_x[1] * measured_pts[i * 2] + vec_y[1] * measured_pts[i * 2 + 1]; - float w = point_weight_x(i, npts, y); - cntr[0] += w * (pgm_read_float(true_pts + i * 2) - x); - wx += w; - if (verbosity_level >= 20) { - MYSERIAL.print(i); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("Weight_x:"); - MYSERIAL.print(w); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("cntr[0]:"); - MYSERIAL.print(cntr[0]); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("wx:"); - MYSERIAL.print(wx); - } - w = point_weight_y(i, npts, y); - cntr[1] += w * (pgm_read_float(true_pts + i * 2 + 1) - y); - wy += w; - - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("Weight_y:"); - MYSERIAL.print(w); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("cntr[1]:"); - MYSERIAL.print(cntr[1]); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("wy:"); - MYSERIAL.print(wy); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM(""); - } - } - cntr[0] /= wx; - cntr[1] /= wy; - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("Final cntr values:"); - SERIAL_ECHOLNPGM("cntr[0]:"); - MYSERIAL.print(cntr[0]); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("cntr[1]:"); - MYSERIAL.print(cntr[1]); - SERIAL_ECHOLNPGM(""); - } - - } - #endif - - // Invert the transformation matrix made of vec_x, vec_y and cntr. - { - float d = vec_x[0] * vec_y[1] - vec_x[1] * vec_y[0]; - float Ainv[2][2] = { - { vec_y[1] / d, -vec_y[0] / d }, - { -vec_x[1] / d, vec_x[0] / d } - }; - float cntrInv[2] = { - -Ainv[0][0] * cntr[0] - Ainv[0][1] * cntr[1], - -Ainv[1][0] * cntr[0] - Ainv[1][1] * cntr[1] - }; - vec_x[0] = Ainv[0][0]; - vec_x[1] = Ainv[1][0]; - vec_y[0] = Ainv[0][1]; - vec_y[1] = Ainv[1][1]; - cntr[0] = cntrInv[0]; - cntr[1] = cntrInv[1]; - } - - if (verbosity_level >= 1) { - // Show the adjusted state, before the fitting. - SERIAL_ECHOPGM("X vector, adjusted: "); - MYSERIAL.print(vec_x[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(vec_x[1], 5); - SERIAL_ECHOLNPGM(""); - - SERIAL_ECHOPGM("Y vector, adjusted: "); - MYSERIAL.print(vec_y[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(vec_y[1], 5); - SERIAL_ECHOLNPGM(""); - - SERIAL_ECHOPGM("center, adjusted: "); - MYSERIAL.print(cntr[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(cntr[1], 5); - SERIAL_ECHOLNPGM(""); - delay_keep_alive(100); - } - - if (verbosity_level >= 2) { - SERIAL_ECHOLNPGM("Difference after correction: "); - for (uint8_t i = 0; i < npts; ++i) { - float x = vec_x[0] * pgm_read_float(true_pts + i * 2) + vec_y[0] * pgm_read_float(true_pts + i * 2 + 1) + cntr[0]; - float y = vec_x[1] * pgm_read_float(true_pts + i * 2) + vec_y[1] * pgm_read_float(true_pts + i * 2 + 1) + cntr[1]; - SERIAL_ECHOPGM("point #"); - MYSERIAL.print(int(i)); - SERIAL_ECHOPGM("measured: ("); - MYSERIAL.print(measured_pts[i * 2], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(measured_pts[i * 2 + 1], 5); - SERIAL_ECHOPGM("); measured-corrected: ("); - MYSERIAL.print(x, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(y, 5); - SERIAL_ECHOPGM("); target: ("); - MYSERIAL.print(pgm_read_float(true_pts + i * 2), 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(pgm_read_float(true_pts + i * 2 + 1), 5); - SERIAL_ECHOPGM("), error: "); - MYSERIAL.print(sqrt(sqr(measured_pts[i * 2] - x) + sqr(measured_pts[i * 2 + 1] - y))); - SERIAL_ECHOLNPGM(""); - } - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM("Calculate offset and skew returning result:"); - MYSERIAL.print(int(result)); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOLNPGM(""); - } - delay_keep_alive(100); - } - - return result; -} - -void reset_bed_offset_and_skew() -{ - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_CENTER+0), 0x0FFFFFFFF); - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_CENTER+4), 0x0FFFFFFFF); - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_X +0), 0x0FFFFFFFF); - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_X +4), 0x0FFFFFFFF); - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_Y +0), 0x0FFFFFFFF); - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_Y +4), 0x0FFFFFFFF); - - // Reset the 8 16bit offsets. - for (int8_t i = 0; i < 4; ++ i) - eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_Z_JITTER+i*4), 0x0FFFFFFFF); -} - -bool is_bed_z_jitter_data_valid() -// offsets of the Z heiths of the calibration points from the first point are saved as 16bit signed int, scaled to tenths of microns -{ - for (int8_t i = 0; i < 8; ++ i) - if (eeprom_read_word((uint16_t*)(EEPROM_BED_CALIBRATION_Z_JITTER+i*2)) == 0x0FFFF) - return false; - return true; -} - -static void world2machine_update(const float vec_x[2], const float vec_y[2], const float cntr[2]) -{ - world2machine_rotation_and_skew[0][0] = vec_x[0]; - world2machine_rotation_and_skew[1][0] = vec_x[1]; - world2machine_rotation_and_skew[0][1] = vec_y[0]; - world2machine_rotation_and_skew[1][1] = vec_y[1]; - world2machine_shift[0] = cntr[0]; - world2machine_shift[1] = cntr[1]; - // No correction. - world2machine_correction_mode = WORLD2MACHINE_CORRECTION_NONE; - if (world2machine_shift[0] != 0.f || world2machine_shift[1] != 0.f) - // Shift correction. - world2machine_correction_mode |= WORLD2MACHINE_CORRECTION_SHIFT; - if (world2machine_rotation_and_skew[0][0] != 1.f || world2machine_rotation_and_skew[0][1] != 0.f || - world2machine_rotation_and_skew[1][0] != 0.f || world2machine_rotation_and_skew[1][1] != 1.f) { - // Rotation & skew correction. - world2machine_correction_mode |= WORLD2MACHINE_CORRECTION_SKEW; - // Invert the world2machine matrix. - float d = world2machine_rotation_and_skew[0][0] * world2machine_rotation_and_skew[1][1] - world2machine_rotation_and_skew[1][0] * world2machine_rotation_and_skew[0][1]; - world2machine_rotation_and_skew_inv[0][0] = world2machine_rotation_and_skew[1][1] / d; - world2machine_rotation_and_skew_inv[0][1] = -world2machine_rotation_and_skew[0][1] / d; - world2machine_rotation_and_skew_inv[1][0] = -world2machine_rotation_and_skew[1][0] / d; - world2machine_rotation_and_skew_inv[1][1] = world2machine_rotation_and_skew[0][0] / d; - } else { - world2machine_rotation_and_skew_inv[0][0] = 1.f; - world2machine_rotation_and_skew_inv[0][1] = 0.f; - world2machine_rotation_and_skew_inv[1][0] = 0.f; - world2machine_rotation_and_skew_inv[1][1] = 1.f; - } -} - -void world2machine_reset() -{ - const float vx[] = { 1.f, 0.f }; - const float vy[] = { 0.f, 1.f }; - const float cntr[] = { 0.f, 0.f }; - world2machine_update(vx, vy, cntr); -} - -void world2machine_revert_to_uncorrected() -{ - if (world2machine_correction_mode != WORLD2MACHINE_CORRECTION_NONE) { - // Reset the machine correction matrix. - const float vx[] = { 1.f, 0.f }; - const float vy[] = { 0.f, 1.f }; - const float cntr[] = { 0.f, 0.f }; - world2machine_update(vx, vy, cntr); - // Wait for the motors to stop and update the current position with the absolute values. - st_synchronize(); - current_position[X_AXIS] = st_get_position_mm(X_AXIS); - current_position[Y_AXIS] = st_get_position_mm(Y_AXIS); - } -} - -static inline bool vec_undef(const float v[2]) -{ - const uint32_t *vx = (const uint32_t*)v; - return vx[0] == 0x0FFFFFFFF || vx[1] == 0x0FFFFFFFF; -} - -void world2machine_initialize() -{ - //SERIAL_ECHOLNPGM("world2machine_initialize"); - float cntr[2] = { - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER+0)), - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER+4)) - }; - float vec_x[2] = { - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +0)), - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +4)) - }; - float vec_y[2] = { - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +0)), - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +4)) - }; - - bool reset = false; - if (vec_undef(cntr) || vec_undef(vec_x) || vec_undef(vec_y)) { - SERIAL_ECHOLNPGM("Undefined bed correction matrix."); - reset = true; - } - else { - // Length of the vec_x shall be close to unity. - float l = sqrt(vec_x[0] * vec_x[0] + vec_x[1] * vec_x[1]); - if (l < 0.9 || l > 1.1) { - SERIAL_ECHOLNPGM("X vector length:"); - MYSERIAL.println(l); - SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the X vector out of range."); - reset = true; - } - // Length of the vec_y shall be close to unity. - l = sqrt(vec_y[0] * vec_y[0] + vec_y[1] * vec_y[1]); - if (l < 0.9 || l > 1.1) { - SERIAL_ECHOLNPGM("Y vector length:"); - MYSERIAL.println(l); - SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the Y vector out of range."); - reset = true; - } - // Correction of the zero point shall be reasonably small. - l = sqrt(cntr[0] * cntr[0] + cntr[1] * cntr[1]); - if (l > 15.f) { - SERIAL_ECHOLNPGM("Zero point correction:"); - MYSERIAL.println(l); - SERIAL_ECHOLNPGM("Invalid bed correction matrix. Shift out of range."); - reset = true; - } - // vec_x and vec_y shall be nearly perpendicular. - l = vec_x[0] * vec_y[0] + vec_x[1] * vec_y[1]; - if (fabs(l) > 0.1f) { - SERIAL_ECHOLNPGM("Invalid bed correction matrix. X/Y axes are far from being perpendicular."); - reset = true; - } - } - - if (reset) { - SERIAL_ECHOLNPGM("Invalid bed correction matrix. Resetting to identity."); - reset_bed_offset_and_skew(); - world2machine_reset(); - } else { - world2machine_update(vec_x, vec_y, cntr); - /* - SERIAL_ECHOPGM("world2machine_initialize() loaded: "); - MYSERIAL.print(world2machine_rotation_and_skew[0][0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(world2machine_rotation_and_skew[0][1], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(world2machine_rotation_and_skew[1][0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(world2machine_rotation_and_skew[1][1], 5); - SERIAL_ECHOPGM(", offset "); - MYSERIAL.print(world2machine_shift[0], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(world2machine_shift[1], 5); - SERIAL_ECHOLNPGM(""); - */ - } -} - -// When switching from absolute to corrected coordinates, -// this will get the absolute coordinates from the servos, -// applies the inverse world2machine transformation -// and stores the result into current_position[x,y]. -void world2machine_update_current() -{ - float x = current_position[X_AXIS] - world2machine_shift[0]; - float y = current_position[Y_AXIS] - world2machine_shift[1]; - current_position[X_AXIS] = world2machine_rotation_and_skew_inv[0][0] * x + world2machine_rotation_and_skew_inv[0][1] * y; - current_position[Y_AXIS] = world2machine_rotation_and_skew_inv[1][0] * x + world2machine_rotation_and_skew_inv[1][1] * y; -} - -static inline void go_xyz(float x, float y, float z, float fr) -{ - plan_buffer_line(x, y, z, current_position[E_AXIS], fr, active_extruder); - st_synchronize(); -} - -static inline void go_xy(float x, float y, float fr) -{ - plan_buffer_line(x, y, current_position[Z_AXIS], current_position[E_AXIS], fr, active_extruder); - st_synchronize(); -} - -static inline void go_to_current(float fr) -{ - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], fr, active_extruder); - st_synchronize(); -} - -static inline void update_current_position_xyz() -{ - current_position[X_AXIS] = st_get_position_mm(X_AXIS); - current_position[Y_AXIS] = st_get_position_mm(Y_AXIS); - current_position[Z_AXIS] = st_get_position_mm(Z_AXIS); - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); -} - -static inline void update_current_position_z() -{ - current_position[Z_AXIS] = st_get_position_mm(Z_AXIS); - plan_set_z_position(current_position[Z_AXIS]); -} - -// At the current position, find the Z stop. -inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, int verbosity_level) -{ - if(verbosity_level >= 10) SERIAL_ECHOLNPGM("find bed induction sensor point z"); - bool endstops_enabled = enable_endstops(true); - bool endstop_z_enabled = enable_z_endstop(false); - float z = 0.f; - endstop_z_hit_on_purpose(); - - // move down until you find the bed - current_position[Z_AXIS] = minimum_z; - go_to_current(homing_feedrate[Z_AXIS]/60); - // we have to let the planner know where we are right now as it is not where we said to go. - update_current_position_z(); - if (! endstop_z_hit_on_purpose()) - goto error; - - for (uint8_t i = 0; i < n_iter; ++ i) { - // Move up the retract distance. - current_position[Z_AXIS] += .5f; - go_to_current(homing_feedrate[Z_AXIS]/60); - // Move back down slowly to find bed. - current_position[Z_AXIS] = minimum_z; - go_to_current(homing_feedrate[Z_AXIS]/(4*60)); - // we have to let the planner know where we are right now as it is not where we said to go. - update_current_position_z(); - if (! endstop_z_hit_on_purpose()) - goto error; -// SERIAL_ECHOPGM("Bed find_bed_induction_sensor_point_z low, height: "); -// MYSERIAL.print(current_position[Z_AXIS], 5); -// SERIAL_ECHOLNPGM(""); - z += current_position[Z_AXIS]; - } - current_position[Z_AXIS] = z; - if (n_iter > 1) - current_position[Z_AXIS] /= float(n_iter); - - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); -// SERIAL_ECHOLNPGM("find_bed_induction_sensor_point_z 3"); - return true; - -error: -// SERIAL_ECHOLNPGM("find_bed_induction_sensor_point_z 4"); - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); - return false; -} - -// Search around the current_position[X,Y], -// look for the induction sensor response. -// Adjust the current_position[X,Y,Z] to the center of the target dot and its response Z coordinate. -#define FIND_BED_INDUCTION_SENSOR_POINT_X_RADIUS (8.f) -#define FIND_BED_INDUCTION_SENSOR_POINT_Y_RADIUS (6.f) -#define FIND_BED_INDUCTION_SENSOR_POINT_XY_STEP (1.f) -#define FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP (0.2f) -inline bool find_bed_induction_sensor_point_xy(int verbosity_level) -{ - if(verbosity_level >= 10) MYSERIAL.println("find bed induction sensor point xy"); - float feedrate = homing_feedrate[X_AXIS] / 60.f; - bool found = false; - - { - float x0 = current_position[X_AXIS] - FIND_BED_INDUCTION_SENSOR_POINT_X_RADIUS; - float x1 = current_position[X_AXIS] + FIND_BED_INDUCTION_SENSOR_POINT_X_RADIUS; - float y0 = current_position[Y_AXIS] - FIND_BED_INDUCTION_SENSOR_POINT_Y_RADIUS; - float y1 = current_position[Y_AXIS] + FIND_BED_INDUCTION_SENSOR_POINT_Y_RADIUS; - uint8_t nsteps_y; - uint8_t i; - if (x0 < X_MIN_POS) { - x0 = X_MIN_POS; - if (verbosity_level >= 20) SERIAL_ECHOLNPGM("X searching radius lower than X_MIN. Clamping was done."); - } - if (x1 > X_MAX_POS) { - x1 = X_MAX_POS; - if (verbosity_level >= 20) SERIAL_ECHOLNPGM("X searching radius higher than X_MAX. Clamping was done."); - } - if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) { - y0 = Y_MIN_POS_FOR_BED_CALIBRATION; - if (verbosity_level >= 20) SERIAL_ECHOLNPGM("Y searching radius lower than Y_MIN. Clamping was done."); - } - if (y1 > Y_MAX_POS) { - y1 = Y_MAX_POS; - if (verbosity_level >= 20) SERIAL_ECHOLNPGM("Y searching radius higher than X_MAX. Clamping was done."); - } - nsteps_y = int(ceil((y1 - y0) / FIND_BED_INDUCTION_SENSOR_POINT_XY_STEP)); - - enable_endstops(false); - bool dir_positive = true; - -// go_xyz(current_position[X_AXIS], current_position[Y_AXIS], MESH_HOME_Z_SEARCH, homing_feedrate[Z_AXIS]/60); - go_xyz(x0, y0, current_position[Z_AXIS], feedrate); - // Continously lower the Z axis. - endstops_hit_on_purpose(); - enable_z_endstop(true); - while (current_position[Z_AXIS] > -10.f) { - // Do nsteps_y zig-zag movements. - current_position[Y_AXIS] = y0; - for (i = 0; i < nsteps_y; current_position[Y_AXIS] += (y1 - y0) / float(nsteps_y - 1), ++ i) { - // Run with a slightly decreasing Z axis, zig-zag movement. Stop at the Z end-stop. - current_position[Z_AXIS] -= FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP / float(nsteps_y); - go_xyz(dir_positive ? x1 : x0, current_position[Y_AXIS], current_position[Z_AXIS], feedrate); - dir_positive = ! dir_positive; - if (endstop_z_hit_on_purpose()) - goto endloop; - } - for (i = 0; i < nsteps_y; current_position[Y_AXIS] -= (y1 - y0) / float(nsteps_y - 1), ++ i) { - // Run with a slightly decreasing Z axis, zig-zag movement. Stop at the Z end-stop. - current_position[Z_AXIS] -= FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP / float(nsteps_y); - go_xyz(dir_positive ? x1 : x0, current_position[Y_AXIS], current_position[Z_AXIS], feedrate); - dir_positive = ! dir_positive; - if (endstop_z_hit_on_purpose()) - goto endloop; - } - } - endloop: -// SERIAL_ECHOLN("First hit"); - - // we have to let the planner know where we are right now as it is not where we said to go. - update_current_position_xyz(); - - // Search in this plane for the first hit. Zig-zag first in X, then in Y axis. - for (int8_t iter = 0; iter < 3; ++ iter) { - if (iter > 0) { - // Slightly lower the Z axis to get a reliable trigger. - current_position[Z_AXIS] -= 0.02f; - go_xyz(current_position[X_AXIS], current_position[Y_AXIS], MESH_HOME_Z_SEARCH, homing_feedrate[Z_AXIS]/60); - } - - // Do nsteps_y zig-zag movements. - float a, b; - enable_endstops(false); - enable_z_endstop(false); - current_position[Y_AXIS] = y0; - go_xy(x0, current_position[Y_AXIS], feedrate); - enable_z_endstop(true); - found = false; - for (i = 0, dir_positive = true; i < nsteps_y; current_position[Y_AXIS] += (y1 - y0) / float(nsteps_y - 1), ++ i, dir_positive = ! dir_positive) { - go_xy(dir_positive ? x1 : x0, current_position[Y_AXIS], feedrate); - if (endstop_z_hit_on_purpose()) { - found = true; - break; - } - } - update_current_position_xyz(); - if (! found) { -// SERIAL_ECHOLN("Search in Y - not found"); - continue; - } -// SERIAL_ECHOLN("Search in Y - found"); - a = current_position[Y_AXIS]; - - enable_z_endstop(false); - current_position[Y_AXIS] = y1; - go_xy(x0, current_position[Y_AXIS], feedrate); - enable_z_endstop(true); - found = false; - for (i = 0, dir_positive = true; i < nsteps_y; current_position[Y_AXIS] -= (y1 - y0) / float(nsteps_y - 1), ++ i, dir_positive = ! dir_positive) { - go_xy(dir_positive ? x1 : x0, current_position[Y_AXIS], feedrate); - if (endstop_z_hit_on_purpose()) { - found = true; - break; - } - } - update_current_position_xyz(); - if (! found) { -// SERIAL_ECHOLN("Search in Y2 - not found"); - continue; - } -// SERIAL_ECHOLN("Search in Y2 - found"); - b = current_position[Y_AXIS]; - current_position[Y_AXIS] = 0.5f * (a + b); - - // Search in the X direction along a cross. - found = false; - enable_z_endstop(false); - go_xy(x0, current_position[Y_AXIS], feedrate); - enable_z_endstop(true); - go_xy(x1, current_position[Y_AXIS], feedrate); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { -// SERIAL_ECHOLN("Search X span 0 - not found"); - continue; - } -// SERIAL_ECHOLN("Search X span 0 - found"); - a = current_position[X_AXIS]; - enable_z_endstop(false); - go_xy(x1, current_position[Y_AXIS], feedrate); - enable_z_endstop(true); - go_xy(x0, current_position[Y_AXIS], feedrate); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { -// SERIAL_ECHOLN("Search X span 1 - not found"); - continue; - } -// SERIAL_ECHOLN("Search X span 1 - found"); - b = current_position[X_AXIS]; - // Go to the center. - enable_z_endstop(false); - current_position[X_AXIS] = 0.5f * (a + b); - go_xy(current_position[X_AXIS], current_position[Y_AXIS], feedrate); - found = true; - -#if 1 - // Search in the Y direction along a cross. - found = false; - enable_z_endstop(false); - go_xy(current_position[X_AXIS], y0, feedrate); - enable_z_endstop(true); - go_xy(current_position[X_AXIS], y1, feedrate); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { -// SERIAL_ECHOLN("Search Y2 span 0 - not found"); - continue; - } -// SERIAL_ECHOLN("Search Y2 span 0 - found"); - a = current_position[Y_AXIS]; - enable_z_endstop(false); - go_xy(current_position[X_AXIS], y1, feedrate); - enable_z_endstop(true); - go_xy(current_position[X_AXIS], y0, feedrate); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { -// SERIAL_ECHOLN("Search Y2 span 1 - not found"); - continue; - } -// SERIAL_ECHOLN("Search Y2 span 1 - found"); - b = current_position[Y_AXIS]; - // Go to the center. - enable_z_endstop(false); - current_position[Y_AXIS] = 0.5f * (a + b); - go_xy(current_position[X_AXIS], current_position[Y_AXIS], feedrate); - found = true; -#endif - break; - } - } - - enable_z_endstop(false); - return found; -} - -// Search around the current_position[X,Y,Z]. -// It is expected, that the induction sensor is switched on at the current position. -// Look around this center point by painting a star around the point. -inline bool improve_bed_induction_sensor_point() -{ - static const float search_radius = 8.f; - - bool endstops_enabled = enable_endstops(false); - bool endstop_z_enabled = enable_z_endstop(false); - bool found = false; - float feedrate = homing_feedrate[X_AXIS] / 60.f; - float center_old_x = current_position[X_AXIS]; - float center_old_y = current_position[Y_AXIS]; - float center_x = 0.f; - float center_y = 0.f; - - for (uint8_t iter = 0; iter < 4; ++ iter) { - switch (iter) { - case 0: - destination[X_AXIS] = center_old_x - search_radius * 0.707; - destination[Y_AXIS] = center_old_y - search_radius * 0.707; - break; - case 1: - destination[X_AXIS] = center_old_x + search_radius * 0.707; - destination[Y_AXIS] = center_old_y + search_radius * 0.707; - break; - case 2: - destination[X_AXIS] = center_old_x + search_radius * 0.707; - destination[Y_AXIS] = center_old_y - search_radius * 0.707; - break; - case 3: - default: - destination[X_AXIS] = center_old_x - search_radius * 0.707; - destination[Y_AXIS] = center_old_y + search_radius * 0.707; - break; - } - - // Trim the vector from center_old_[x,y] to destination[x,y] by the bed dimensions. - float vx = destination[X_AXIS] - center_old_x; - float vy = destination[Y_AXIS] - center_old_y; - float l = sqrt(vx*vx+vy*vy); - float t; - if (destination[X_AXIS] < X_MIN_POS) { - // Exiting the bed at xmin. - t = (center_x - X_MIN_POS) / l; - destination[X_AXIS] = X_MIN_POS; - destination[Y_AXIS] = center_old_y + t * vy; - } else if (destination[X_AXIS] > X_MAX_POS) { - // Exiting the bed at xmax. - t = (X_MAX_POS - center_x) / l; - destination[X_AXIS] = X_MAX_POS; - destination[Y_AXIS] = center_old_y + t * vy; - } - if (destination[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION) { - // Exiting the bed at ymin. - t = (center_y - Y_MIN_POS_FOR_BED_CALIBRATION) / l; - destination[X_AXIS] = center_old_x + t * vx; - destination[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; - } else if (destination[Y_AXIS] > Y_MAX_POS) { - // Exiting the bed at xmax. - t = (Y_MAX_POS - center_y) / l; - destination[X_AXIS] = center_old_x + t * vx; - destination[Y_AXIS] = Y_MAX_POS; - } - - // Move away from the measurement point. - enable_endstops(false); - go_xy(destination[X_AXIS], destination[Y_AXIS], feedrate); - // Move towards the measurement point, until the induction sensor triggers. - enable_endstops(true); - go_xy(center_old_x, center_old_y, feedrate); - update_current_position_xyz(); -// if (! endstop_z_hit_on_purpose()) return false; - center_x += current_position[X_AXIS]; - center_y += current_position[Y_AXIS]; - } - - // Calculate the new center, move to the new center. - center_x /= 4.f; - center_y /= 4.f; - current_position[X_AXIS] = center_x; - current_position[Y_AXIS] = center_y; - enable_endstops(false); - go_xy(current_position[X_AXIS], current_position[Y_AXIS], feedrate); - - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); - return found; -} - -static inline void debug_output_point(const char *type, const float &x, const float &y, const float &z) -{ - SERIAL_ECHOPGM("Measured "); - SERIAL_ECHORPGM(type); - SERIAL_ECHOPGM(" "); - MYSERIAL.print(x, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(y, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(z, 5); - SERIAL_ECHOLNPGM(""); -} - -// Search around the current_position[X,Y,Z]. -// It is expected, that the induction sensor is switched on at the current position. -// Look around this center point by painting a star around the point. -#define IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS (8.f) -inline bool improve_bed_induction_sensor_point2(bool lift_z_on_min_y, int8_t verbosity_level) -{ - float center_old_x = current_position[X_AXIS]; - float center_old_y = current_position[Y_AXIS]; - float a, b; - bool point_small = false; - - enable_endstops(false); - - { - float x0 = center_old_x - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; - float x1 = center_old_x + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; - if (x0 < X_MIN_POS) - x0 = X_MIN_POS; - if (x1 > X_MAX_POS) - x1 = X_MAX_POS; - - // Search in the X direction along a cross. - enable_z_endstop(false); - go_xy(x0, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x1, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - current_position[X_AXIS] = center_old_x; - goto canceled; - } - a = current_position[X_AXIS]; - enable_z_endstop(false); - go_xy(x1, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x0, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - current_position[X_AXIS] = center_old_x; - goto canceled; - } - b = current_position[X_AXIS]; - if (b - a < MIN_BED_SENSOR_POINT_RESPONSE_DMR) { - if (verbosity_level >= 5) { - SERIAL_ECHOPGM("Point width too small: "); - SERIAL_ECHO(b - a); - SERIAL_ECHOLNPGM(""); - } - // We force the calibration routine to move the Z axis slightly down to make the response more pronounced. - if (b - a < 0.5f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { - // Don't use the new X value. - current_position[X_AXIS] = center_old_x; - goto canceled; - } else { - // Use the new value, but force the Z axis to go a bit lower. - point_small = true; - } - } - if (verbosity_level >= 5) { - debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); - debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); - } - - // Go to the center. - enable_z_endstop(false); - current_position[X_AXIS] = 0.5f * (a + b); - go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - } - - { - float y0 = center_old_y - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; - float y1 = center_old_y + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; - if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) - y0 = Y_MIN_POS_FOR_BED_CALIBRATION; - if (y1 > Y_MAX_POS) - y1 = Y_MAX_POS; - - // Search in the Y direction along a cross. - enable_z_endstop(false); - go_xy(current_position[X_AXIS], y0, homing_feedrate[X_AXIS] / 60.f); - if (lift_z_on_min_y) { - // The first row of points are very close to the end stop. - // Lift the sensor to disengage the trigger. This is necessary because of the sensor hysteresis. - go_xyz(current_position[X_AXIS], y0, current_position[Z_AXIS]+1.5f, homing_feedrate[Z_AXIS] / 60.f); - // and go back. - go_xyz(current_position[X_AXIS], y0, current_position[Z_AXIS], homing_feedrate[Z_AXIS] / 60.f); - } - if (lift_z_on_min_y && (READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) { - // Already triggering before we started the move. - // Shift the trigger point slightly outwards. - // a = current_position[Y_AXIS] - 1.5f; - a = current_position[Y_AXIS]; - } else { - enable_z_endstop(true); - go_xy(current_position[X_AXIS], y1, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - current_position[Y_AXIS] = center_old_y; - goto canceled; - } - a = current_position[Y_AXIS]; - } - enable_z_endstop(false); - go_xy(current_position[X_AXIS], y1, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(current_position[X_AXIS], y0, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - current_position[Y_AXIS] = center_old_y; - goto canceled; - } - b = current_position[Y_AXIS]; - if (b - a < MIN_BED_SENSOR_POINT_RESPONSE_DMR) { - // We force the calibration routine to move the Z axis slightly down to make the response more pronounced. - if (verbosity_level >= 5) { - SERIAL_ECHOPGM("Point height too small: "); - SERIAL_ECHO(b - a); - SERIAL_ECHOLNPGM(""); - } - if (b - a < 0.5f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { - // Don't use the new Y value. - current_position[Y_AXIS] = center_old_y; - goto canceled; - } else { - // Use the new value, but force the Z axis to go a bit lower. - point_small = true; - } - } - if (verbosity_level >= 5) { - debug_output_point(PSTR("top" ), current_position[X_AXIS], a, current_position[Z_AXIS]); - debug_output_point(PSTR("bottom"), current_position[X_AXIS], b, current_position[Z_AXIS]); - } - - // Go to the center. - enable_z_endstop(false); - current_position[Y_AXIS] = 0.5f * (a + b); - go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - } - - // If point is small but not too small, then force the Z axis to be lowered a bit, - // but use the new value. This is important when the initial position was off in one axis, - // for example if the initial calibration was shifted in the Y axis systematically. - // Then this first step will center. - return ! point_small; - -canceled: - // Go back to the center. - enable_z_endstop(false); - go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - return false; -} - -// Searching the front points, where one cannot move the sensor head in front of the sensor point. -// Searching in a zig-zag movement in a plane for the maximum width of the response. -// This function may set the current_position[Y_AXIS] below Y_MIN_POS, if the function succeeded. -// If this function failed, the Y coordinate will never be outside the working space. -#define IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS (4.f) -#define IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y (0.1f) -inline bool improve_bed_induction_sensor_point3(int verbosity_level) -{ - float center_old_x = current_position[X_AXIS]; - float center_old_y = current_position[Y_AXIS]; - float a, b; - bool result = true; - - if (verbosity_level >= 20) MYSERIAL.println("Improve bed induction sensor point3"); - // Was the sensor point detected too far in the minus Y axis? - // If yes, the center of the induction point cannot be reached by the machine. - { - float x0 = center_old_x - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float x1 = center_old_x + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float y0 = center_old_y - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float y1 = center_old_y + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float y = y0; - - if (x0 < X_MIN_POS) - x0 = X_MIN_POS; - if (x1 > X_MAX_POS) - x1 = X_MAX_POS; - if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) - y0 = Y_MIN_POS_FOR_BED_CALIBRATION; - if (y1 > Y_MAX_POS) - y1 = Y_MAX_POS; - - if (verbosity_level >= 20) { - SERIAL_ECHOPGM("Initial position: "); - SERIAL_ECHO(center_old_x); - SERIAL_ECHOPGM(", "); - SERIAL_ECHO(center_old_y); - SERIAL_ECHOLNPGM(""); - } - - // Search in the positive Y direction, until a maximum diameter is found. - // (the next diameter is smaller than the current one.) - float dmax = 0.f; - float xmax1 = 0.f; - float xmax2 = 0.f; - for (y = y0; y < y1; y += IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { - enable_z_endstop(false); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - continue; - // SERIAL_PROTOCOLPGM("Failed 1\n"); - // current_position[X_AXIS] = center_old_x; - // goto canceled; - } - a = current_position[X_AXIS]; - enable_z_endstop(false); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - continue; - // SERIAL_PROTOCOLPGM("Failed 2\n"); - // current_position[X_AXIS] = center_old_x; - // goto canceled; - } - b = current_position[X_AXIS]; - if (verbosity_level >= 5) { - debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); - debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); - } - float d = b - a; - if (d > dmax) { - xmax1 = 0.5f * (a + b); - dmax = d; - } else if (dmax > 0.) { - y0 = y - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y; - break; - } - } - if (dmax == 0.) { - if (verbosity_level > 0) - SERIAL_PROTOCOLPGM("failed - not found\n"); - current_position[X_AXIS] = center_old_x; - current_position[Y_AXIS] = center_old_y; - goto canceled; - } - - { - // Find the positive Y hit. This gives the extreme Y value for the search of the maximum diameter in the -Y direction. - enable_z_endstop(false); - go_xy(xmax1, y0 + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(xmax1, max(y0 - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, Y_MIN_POS_FOR_BED_CALIBRATION), homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - current_position[Y_AXIS] = center_old_y; - goto canceled; - } - if (verbosity_level >= 5) - debug_output_point(PSTR("top" ), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); - y1 = current_position[Y_AXIS]; - } - - if (y1 <= y0) { - // Either the induction sensor is too high, or the induction sensor target is out of reach. - current_position[Y_AXIS] = center_old_y; - goto canceled; - } - - // Search in the negative Y direction, until a maximum diameter is found. - dmax = 0.f; - // if (y0 + 1.f < y1) - // y1 = y0 + 1.f; - for (y = y1; y >= y0; y -= IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { - enable_z_endstop(false); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - continue; - /* - current_position[X_AXIS] = center_old_x; - SERIAL_PROTOCOLPGM("Failed 3\n"); - goto canceled; - */ - } - a = current_position[X_AXIS]; - enable_z_endstop(false); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - continue; - /* - current_position[X_AXIS] = center_old_x; - SERIAL_PROTOCOLPGM("Failed 4\n"); - goto canceled; - */ - } - b = current_position[X_AXIS]; - if (verbosity_level >= 5) { - debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); - debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); - } - float d = b - a; - if (d > dmax) { - xmax2 = 0.5f * (a + b); - dmax = d; - } else if (dmax > 0.) { - y1 = y + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y; - break; - } - } - float xmax, ymax; - if (dmax == 0.f) { - // Only the hit in the positive direction found. - xmax = xmax1; - ymax = y0; - } else { - // Both positive and negative directions found. - xmax = xmax2; - ymax = 0.5f * (y0 + y1); - for (; y >= y0; y -= IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { - enable_z_endstop(false); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - continue; - /* - current_position[X_AXIS] = center_old_x; - SERIAL_PROTOCOLPGM("Failed 3\n"); - goto canceled; - */ - } - a = current_position[X_AXIS]; - enable_z_endstop(false); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - continue; - /* - current_position[X_AXIS] = center_old_x; - SERIAL_PROTOCOLPGM("Failed 4\n"); - goto canceled; - */ - } - b = current_position[X_AXIS]; - if (verbosity_level >= 5) { - debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); - debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); - } - float d = b - a; - if (d > dmax) { - xmax = 0.5f * (a + b); - ymax = y; - dmax = d; - } - } - } - - { - // Compare the distance in the Y+ direction with the diameter in the X direction. - // Find the positive Y hit once again, this time along the Y axis going through the X point with the highest diameter. - enable_z_endstop(false); - go_xy(xmax, ymax + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(xmax, max(ymax - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, Y_MIN_POS_FOR_BED_CALIBRATION), homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (! endstop_z_hit_on_purpose()) { - current_position[Y_AXIS] = center_old_y; - goto canceled; - } - if (verbosity_level >= 5) - debug_output_point(PSTR("top" ), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); - if (current_position[Y_AXIS] - Y_MIN_POS_FOR_BED_CALIBRATION < 0.5f * dmax) { - // Probably not even a half circle was detected. The induction point is likely too far in the minus Y direction. - // First verify, if the measurement has been done at a sufficient height. If no, lower the Z axis a bit. - if (current_position[Y_AXIS] < ymax || dmax < 0.5f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { - if (verbosity_level >= 5) { - SERIAL_ECHOPGM("Partial point diameter too small: "); - SERIAL_ECHO(dmax); - SERIAL_ECHOLNPGM(""); - } - result = false; - } else { - // Estimate the circle radius from the maximum diameter and height: - float h = current_position[Y_AXIS] - ymax; - float r = dmax * dmax / (8.f * h) + 0.5f * h; - if (r < 0.8f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { - if (verbosity_level >= 5) { - SERIAL_ECHOPGM("Partial point estimated radius too small: "); - SERIAL_ECHO(r); - SERIAL_ECHOPGM(", dmax:"); - SERIAL_ECHO(dmax); - SERIAL_ECHOPGM(", h:"); - SERIAL_ECHO(h); - SERIAL_ECHOLNPGM(""); - } - result = false; - } else { - // The point may end up outside of the machine working space. - // That is all right as it helps to improve the accuracy of the measurement point - // due to averaging. - // For the y correction, use an average of dmax/2 and the estimated radius. - r = 0.5f * (0.5f * dmax + r); - ymax = current_position[Y_AXIS] - r; - } - } - } else { - // If the diameter of the detected spot was smaller than a minimum allowed, - // the induction sensor is probably too high. Returning false will force - // the sensor to be lowered a tiny bit. - result = xmax >= MIN_BED_SENSOR_POINT_RESPONSE_DMR; - if (y0 > Y_MIN_POS_FOR_BED_CALIBRATION + 0.2f) - // Only in case both left and right y tangents are known, use them. - // If y0 is close to the bed edge, it may not be symmetric to the right tangent. - ymax = 0.5f * ymax + 0.25f * (y0 + y1); - } - } - - // Go to the center. - enable_z_endstop(false); - current_position[X_AXIS] = xmax; - current_position[Y_AXIS] = ymax; - if (verbosity_level >= 20) { - SERIAL_ECHOPGM("Adjusted position: "); - SERIAL_ECHO(current_position[X_AXIS]); - SERIAL_ECHOPGM(", "); - SERIAL_ECHO(current_position[Y_AXIS]); - SERIAL_ECHOLNPGM(""); - } - - // Don't clamp current_position[Y_AXIS], because the out-of-reach Y coordinate may actually be true. - // Only clamp the coordinate to go. - go_xy(current_position[X_AXIS], max(Y_MIN_POS, current_position[Y_AXIS]), homing_feedrate[X_AXIS] / 60.f); - // delay_keep_alive(3000); - } - - if (result) - return true; - // otherwise clamp the Y coordinate - -canceled: - // Go back to the center. - enable_z_endstop(false); - if (current_position[Y_AXIS] < Y_MIN_POS) - current_position[Y_AXIS] = Y_MIN_POS; - go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); - return false; -} - -// Scan the mesh bed induction points one by one by a left-right zig-zag movement, -// write the trigger coordinates to the serial line. -// Useful for visualizing the behavior of the bed induction detector. -inline void scan_bed_induction_sensor_point() -{ - float center_old_x = current_position[X_AXIS]; - float center_old_y = current_position[Y_AXIS]; - float x0 = center_old_x - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float x1 = center_old_x + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float y0 = center_old_y - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float y1 = center_old_y + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; - float y = y0; - - if (x0 < X_MIN_POS) - x0 = X_MIN_POS; - if (x1 > X_MAX_POS) - x1 = X_MAX_POS; - if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) - y0 = Y_MIN_POS_FOR_BED_CALIBRATION; - if (y1 > Y_MAX_POS) - y1 = Y_MAX_POS; - - for (float y = y0; y < y1; y += IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { - enable_z_endstop(false); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (endstop_z_hit_on_purpose()) - debug_output_point(PSTR("left" ), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); - enable_z_endstop(false); - go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); - enable_z_endstop(true); - go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); - update_current_position_xyz(); - if (endstop_z_hit_on_purpose()) - debug_output_point(PSTR("right"), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); - } - - enable_z_endstop(false); - current_position[X_AXIS] = center_old_x; - current_position[Y_AXIS] = center_old_y; - go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); -} - -#define MESH_BED_CALIBRATION_SHOW_LCD - -BedSkewOffsetDetectionResultType find_bed_offset_and_skew(int8_t verbosity_level, uint8_t &too_far_mask) -{ - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - // Reusing the z_values memory for the measurement cache. - // 7x7=49 floats, good for 16 (x,y,z) vectors. - float *pts = &mbl.z_values[0][0]; - float *vec_x = pts + 2 * 4; - float *vec_y = vec_x + 2; - float *cntr = vec_y + 2; - memset(pts, 0, sizeof(float) * 7 * 7); - uint8_t iteration = 0; - BedSkewOffsetDetectionResultType result; - -// SERIAL_ECHOLNPGM("find_bed_offset_and_skew verbosity level: "); -// SERIAL_ECHO(int(verbosity_level)); -// SERIAL_ECHOPGM(""); - - while (iteration < 3) { - - SERIAL_ECHOPGM("Iteration: "); - MYSERIAL.println(int(iteration + 1)); - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM("Vectors: "); - - SERIAL_ECHOPGM("vec_x[0]:"); - MYSERIAL.print(vec_x[0], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("vec_x[1]:"); - MYSERIAL.print(vec_x[1], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("vec_y[0]:"); - MYSERIAL.print(vec_y[0], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("vec_y[1]:"); - MYSERIAL.print(vec_y[1], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("cntr[0]:"); - MYSERIAL.print(cntr[0], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("cntr[1]:"); - MYSERIAL.print(cntr[1], 5); - SERIAL_ECHOLNPGM(""); - } -#ifdef MESH_BED_CALIBRATION_SHOW_LCD - uint8_t next_line; - lcd_display_message_fullscreen_P(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1, next_line); - if (next_line > 3) - next_line = 3; -#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ - - // Collect the rear 2x3 points. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH + FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP * iteration * 0.3; - for (int k = 0; k < 4; ++k) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); -#ifdef MESH_BED_CALIBRATION_SHOW_LCD - lcd_implementation_print_at(0, next_line, k + 1); - lcd_printPGM(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2); - - if (iteration > 0) { - lcd_print_at_PGM(0, next_line + 1, MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION); - lcd_implementation_print(int(iteration + 1)); - } -#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ - float *pt = pts + k * 2; - // Go up to z_initial. - - go_to_current(homing_feedrate[Z_AXIS] / 60.f); - if (verbosity_level >= 20) { - // Go to Y0, wait, then go to Y-4. - current_position[Y_AXIS] = 0.f; - go_to_current(homing_feedrate[X_AXIS] / 60.f); - SERIAL_ECHOLNPGM("At Y0"); - delay_keep_alive(5000); - current_position[Y_AXIS] = Y_MIN_POS; - go_to_current(homing_feedrate[X_AXIS] / 60.f); - SERIAL_ECHOLNPGM("At Y-4"); - delay_keep_alive(5000); - } - // Go to the measurement point position. - //if (iteration == 0) { - current_position[X_AXIS] = pgm_read_float(bed_ref_points_4 + k * 2); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + k * 2 + 1); - /*} - else { - // if first iteration failed, count corrected point coordinates as initial - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - - current_position[X_AXIS] = vec_x[0] * pgm_read_float(bed_ref_points_4 + k * 2) + vec_y[0] * pgm_read_float(bed_ref_points_4 + k * 2 + 1) + cntr[0]; - current_position[Y_AXIS] = vec_x[1] * pgm_read_float(bed_ref_points_4 + k * 2) + vec_y[1] * pgm_read_float(bed_ref_points_4 + k * 2 + 1) + cntr[1]; - - // The calibration points are very close to the min Y. - if (current_position[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION) - current_position[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; - - }*/ - if (verbosity_level >= 20) { - SERIAL_ECHOPGM("current_position[X_AXIS]:"); - MYSERIAL.print(current_position[X_AXIS], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("current_position[Y_AXIS]:"); - MYSERIAL.print(current_position[Y_AXIS], 5); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("current_position[Z_AXIS]:"); - MYSERIAL.print(current_position[Z_AXIS], 5); - SERIAL_ECHOLNPGM(""); - } - - - go_to_current(homing_feedrate[X_AXIS] / 60.f); - if (verbosity_level >= 10) - delay_keep_alive(3000); - if (!find_bed_induction_sensor_point_xy(verbosity_level)) - return BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; -#if 1 - - if (k == 0) { - // Improve the position of the 1st row sensor points by a zig-zag movement. - find_bed_induction_sensor_point_z(); - int8_t i = 4; - for (;;) { - if (improve_bed_induction_sensor_point3(verbosity_level)) - break; - if (--i == 0) - return BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; - // Try to move the Z axis down a bit to increase a chance of the sensor to trigger. - current_position[Z_AXIS] -= 0.025f; - enable_endstops(false); - enable_z_endstop(false); - go_to_current(homing_feedrate[Z_AXIS]); - } - if (i == 0) - // not found - return BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; - } -#endif - if (verbosity_level >= 10) - delay_keep_alive(3000); - // Save the detected point position and then clamp the Y coordinate, which may have been estimated - // to lie outside the machine working space. - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM("Measured:"); - MYSERIAL.println(current_position[X_AXIS]); - MYSERIAL.println(current_position[Y_AXIS]); - } - pt[0] = (pt[0] * iteration) / (iteration + 1); - pt[0] += (current_position[X_AXIS]/(iteration + 1)); //count average - pt[1] = (pt[1] * iteration) / (iteration + 1); - pt[1] += (current_position[Y_AXIS] / (iteration + 1)); - - - //pt[0] += current_position[X_AXIS]; - //if(iteration > 0) pt[0] = pt[0] / 2; - - //pt[1] += current_position[Y_AXIS]; - //if (iteration > 0) pt[1] = pt[1] / 2; - - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("pt[0]:"); - MYSERIAL.println(pt[0]); - SERIAL_ECHOPGM("pt[1]:"); - MYSERIAL.println(pt[1]); - } - - if (current_position[Y_AXIS] < Y_MIN_POS) - current_position[Y_AXIS] = Y_MIN_POS; - // Start searching for the other points at 3mm above the last point. - current_position[Z_AXIS] += 3.f + FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP * iteration * 0.3; - //cntr[0] += pt[0]; - //cntr[1] += pt[1]; - if (verbosity_level >= 10 && k == 0) { - // Show the zero. Test, whether the Y motor skipped steps. - current_position[Y_AXIS] = MANUAL_Y_HOME_POS; - go_to_current(homing_feedrate[X_AXIS] / 60.f); - delay_keep_alive(3000); - } - } - - if (verbosity_level >= 20) { - // Test the positions. Are the positions reproducible? Now the calibration is active in the planner. - delay_keep_alive(3000); - for (int8_t mesh_point = 0; mesh_point < 4; ++mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Go to the measurement point. - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - current_position[X_AXIS] = pts[mesh_point * 2]; - current_position[Y_AXIS] = pts[mesh_point * 2 + 1]; - go_to_current(homing_feedrate[X_AXIS] / 60); - delay_keep_alive(3000); - } - } - - if (pts[1] < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) { - too_far_mask |= 1 << 1; //front center point is out of reach - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("WARNING: Front point not reachable. Y coordinate:"); - MYSERIAL.print(pts[1]); - SERIAL_ECHOPGM(" < "); - MYSERIAL.println(Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); - } - - result = calculate_machine_skew_and_offset_LS(pts, 4, bed_ref_points_4, vec_x, vec_y, cntr, verbosity_level); - if (result >= 0) { - world2machine_update(vec_x, vec_y, cntr); -#if 1 - // Fearlessly store the calibration values into the eeprom. - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 0), cntr[0]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 4), cntr[1]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 0), vec_x[0]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 4), vec_x[1]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 0), vec_y[0]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 4), vec_y[1]); -#endif - if (verbosity_level >= 10) { - // Length of the vec_x - float l = sqrt(vec_x[0] * vec_x[0] + vec_x[1] * vec_x[1]); - SERIAL_ECHOLNPGM("X vector length:"); - MYSERIAL.println(l); - - // Length of the vec_y - l = sqrt(vec_y[0] * vec_y[0] + vec_y[1] * vec_y[1]); - SERIAL_ECHOLNPGM("Y vector length:"); - MYSERIAL.println(l); - // Zero point correction - l = sqrt(cntr[0] * cntr[0] + cntr[1] * cntr[1]); - SERIAL_ECHOLNPGM("Zero point correction:"); - MYSERIAL.println(l); - - // vec_x and vec_y shall be nearly perpendicular. - l = vec_x[0] * vec_y[0] + vec_x[1] * vec_y[1]; - SERIAL_ECHOLNPGM("Perpendicularity"); - MYSERIAL.println(fabs(l)); - SERIAL_ECHOLNPGM("Saving bed calibration vectors to EEPROM"); - } - // Correct the current_position to match the transformed coordinate system after world2machine_rotation_and_skew and world2machine_shift were set. - world2machine_update_current(); - - - if (verbosity_level >= 20) { - // Test the positions. Are the positions reproducible? Now the calibration is active in the planner. - delay_keep_alive(3000); - for (int8_t mesh_point = 0; mesh_point < 9; ++mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Go to the measurement point. - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - current_position[X_AXIS] = pgm_read_float(bed_ref_points + mesh_point * 2); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points + mesh_point * 2 + 1); - go_to_current(homing_feedrate[X_AXIS] / 60); - delay_keep_alive(3000); - } - } - return result; - } - if (result == BED_SKEW_OFFSET_DETECTION_FITTING_FAILED && too_far_mask == 2) return result; //if fitting failed and front center point is out of reach, terminate calibration and inform user - iteration++; - } - return result; -} - -BedSkewOffsetDetectionResultType improve_bed_offset_and_skew(int8_t method, int8_t verbosity_level, uint8_t &too_far_mask) -{ - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - // Mask of the first three points. Are they too far? - too_far_mask = 0; - - // Reusing the z_values memory for the measurement cache. - // 7x7=49 floats, good for 16 (x,y,z) vectors. - float *pts = &mbl.z_values[0][0]; - float *vec_x = pts + 2 * 9; - float *vec_y = vec_x + 2; - float *cntr = vec_y + 2; - memset(pts, 0, sizeof(float) * 7 * 7); - - if (verbosity_level >= 10) SERIAL_ECHOLNPGM("Improving bed offset and skew"); - - // Cache the current correction matrix. - world2machine_initialize(); - vec_x[0] = world2machine_rotation_and_skew[0][0]; - vec_x[1] = world2machine_rotation_and_skew[1][0]; - vec_y[0] = world2machine_rotation_and_skew[0][1]; - vec_y[1] = world2machine_rotation_and_skew[1][1]; - cntr[0] = world2machine_shift[0]; - cntr[1] = world2machine_shift[1]; - // and reset the correction matrix, so the planner will not do anything. - world2machine_reset(); - - bool endstops_enabled = enable_endstops(false); - bool endstop_z_enabled = enable_z_endstop(false); - -#ifdef MESH_BED_CALIBRATION_SHOW_LCD - uint8_t next_line; - lcd_display_message_fullscreen_P(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1, next_line); - if (next_line > 3) - next_line = 3; -#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ - - // Collect a matrix of 9x9 points. - BedSkewOffsetDetectionResultType result = BED_SKEW_OFFSET_DETECTION_PERFECT; - for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Print the decrasing ID of the measurement point. -#ifdef MESH_BED_CALIBRATION_SHOW_LCD - lcd_implementation_print_at(0, next_line, mesh_point+1); - lcd_printPGM(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2); -#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ - - // Move up. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - enable_endstops(false); - enable_z_endstop(false); - go_to_current(homing_feedrate[Z_AXIS]/60); - if (verbosity_level >= 20) { - // Go to Y0, wait, then go to Y-4. - current_position[Y_AXIS] = 0.f; - go_to_current(homing_feedrate[X_AXIS] / 60.f); - SERIAL_ECHOLNPGM("At Y0"); - delay_keep_alive(5000); - current_position[Y_AXIS] = Y_MIN_POS; - go_to_current(homing_feedrate[X_AXIS] / 60.f); - SERIAL_ECHOLNPGM("At Y_MIN_POS"); - delay_keep_alive(5000); - } - // Go to the measurement point. - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - current_position[X_AXIS] = vec_x[0] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[0] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[0]; - current_position[Y_AXIS] = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; - // The calibration points are very close to the min Y. - if (current_position[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION){ - current_position[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; - if (verbosity_level >= 20) { - SERIAL_ECHOPGM("Calibration point "); - SERIAL_ECHO(mesh_point); - SERIAL_ECHOPGM("lower than Ymin. Y coordinate clamping was used."); - SERIAL_ECHOLNPGM(""); - } - } - go_to_current(homing_feedrate[X_AXIS]/60); - // Find its Z position by running the normal vertical search. - if (verbosity_level >= 10) - delay_keep_alive(3000); - find_bed_induction_sensor_point_z(); - if (verbosity_level >= 10) - delay_keep_alive(3000); - // Try to move the Z axis down a bit to increase a chance of the sensor to trigger. - current_position[Z_AXIS] -= 0.025f; - // Improve the point position by searching its center in a current plane. - int8_t n_errors = 3; - for (int8_t iter = 0; iter < 8; ) { - if (verbosity_level > 20) { - SERIAL_ECHOPGM("Improving bed point "); - SERIAL_ECHO(mesh_point); - SERIAL_ECHOPGM(", iteration "); - SERIAL_ECHO(iter); - SERIAL_ECHOPGM(", z"); - MYSERIAL.print(current_position[Z_AXIS], 5); - SERIAL_ECHOLNPGM(""); - } - bool found = false; - if (mesh_point < 3) { - // Because the sensor cannot move in front of the first row - // of the sensor points, the y position cannot be measured - // by a cross center method. - // Use a zig-zag search for the first row of the points. - found = improve_bed_induction_sensor_point3(verbosity_level); - } else { - switch (method) { - case 0: found = improve_bed_induction_sensor_point(); break; - case 1: found = improve_bed_induction_sensor_point2(mesh_point < 3, verbosity_level); break; - default: break; - } - } - if (found) { - if (iter > 3) { - // Average the last 4 measurements. - pts[mesh_point*2 ] += current_position[X_AXIS]; - pts[mesh_point*2+1] += current_position[Y_AXIS]; - } - if (current_position[Y_AXIS] < Y_MIN_POS) - current_position[Y_AXIS] = Y_MIN_POS; - ++ iter; - } else if (n_errors -- == 0) { - // Give up. - result = BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; - goto canceled; - } else { - // Try to move the Z axis down a bit to increase a chance of the sensor to trigger. - current_position[Z_AXIS] -= 0.05f; - enable_endstops(false); - enable_z_endstop(false); - go_to_current(homing_feedrate[Z_AXIS]); - if (verbosity_level >= 5) { - SERIAL_ECHOPGM("Improving bed point "); - SERIAL_ECHO(mesh_point); - SERIAL_ECHOPGM(", iteration "); - SERIAL_ECHO(iter); - SERIAL_ECHOPGM(" failed. Lowering z to "); - MYSERIAL.print(current_position[Z_AXIS], 5); - SERIAL_ECHOLNPGM(""); - } - } - } - if (verbosity_level >= 10) - delay_keep_alive(3000); - } - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - // Average the last 4 measurements. - for (int8_t i = 0; i < 18; ++ i) - pts[i] *= (1.f/4.f); - - enable_endstops(false); - enable_z_endstop(false); - - if (verbosity_level >= 5) { - // Test the positions. Are the positions reproducible? - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Go to the measurement point. - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - current_position[X_AXIS] = pts[mesh_point*2]; - current_position[Y_AXIS] = pts[mesh_point*2+1]; - if (verbosity_level >= 10) { - go_to_current(homing_feedrate[X_AXIS]/60); - delay_keep_alive(3000); - } - SERIAL_ECHOPGM("Final measured bed point "); - SERIAL_ECHO(mesh_point); - SERIAL_ECHOPGM(": "); - MYSERIAL.print(current_position[X_AXIS], 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(current_position[Y_AXIS], 5); - SERIAL_ECHOLNPGM(""); - } - } - - { - // First fill in the too_far_mask from the measured points. - for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) - if (pts[mesh_point * 2 + 1] < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) - too_far_mask |= 1 << mesh_point; - result = calculate_machine_skew_and_offset_LS(pts, 9, bed_ref_points, vec_x, vec_y, cntr, verbosity_level); - if (result < 0) { - SERIAL_ECHOLNPGM("Calculation of the machine skew and offset failed."); - goto canceled; - } - // In case of success, update the too_far_mask from the calculated points. - for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) { - float y = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; - distance_from_min[mesh_point] = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); - if (verbosity_level >= 20) { - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("Distance from min:"); - MYSERIAL.print(distance_from_min[mesh_point]); - SERIAL_ECHOLNPGM(""); - SERIAL_ECHOPGM("y:"); - MYSERIAL.print(y); - SERIAL_ECHOLNPGM(""); - } - if (y < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) - too_far_mask |= 1 << mesh_point; - } - } - - world2machine_update(vec_x, vec_y, cntr); -#if 1 - // Fearlessly store the calibration values into the eeprom. - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER+0), cntr [0]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER+4), cntr [1]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +0), vec_x[0]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +4), vec_x[1]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +0), vec_y[0]); - eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +4), vec_y[1]); -#endif - - // Correct the current_position to match the transformed coordinate system after world2machine_rotation_and_skew and world2machine_shift were set. - world2machine_update_current(); - - enable_endstops(false); - enable_z_endstop(false); - - if (verbosity_level >= 5) { - // Test the positions. Are the positions reproducible? Now the calibration is active in the planner. - delay_keep_alive(3000); - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Go to the measurement point. - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - current_position[X_AXIS] = pgm_read_float(bed_ref_points+mesh_point*2); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points+mesh_point*2+1); - if (verbosity_level >= 10) { - go_to_current(homing_feedrate[X_AXIS]/60); - delay_keep_alive(3000); - } - { - float x, y; - world2machine(current_position[X_AXIS], current_position[Y_AXIS], x, y); - SERIAL_ECHOPGM("Final calculated bed point "); - SERIAL_ECHO(mesh_point); - SERIAL_ECHOPGM(": "); - MYSERIAL.print(x, 5); - SERIAL_ECHOPGM(", "); - MYSERIAL.print(y, 5); - SERIAL_ECHOLNPGM(""); - } - } - } - - // Sample Z heights for the mesh bed leveling. - // In addition, store the results into an eeprom, to be used later for verification of the bed leveling process. - if (! sample_mesh_and_store_reference()) - goto canceled; - - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - return result; - -canceled: - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Print head up. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - go_to_current(homing_feedrate[Z_AXIS]/60); - // Store the identity matrix to EEPROM. - reset_bed_offset_and_skew(); - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); - return result; -} - -void go_home_with_z_lift() -{ - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Go home. - // First move up to a safe height. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - go_to_current(homing_feedrate[Z_AXIS]/60); - // Second move to XY [0, 0]. - current_position[X_AXIS] = X_MIN_POS+0.2; - current_position[Y_AXIS] = Y_MIN_POS+0.2; - // Clamp to the physical coordinates. - world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); - go_to_current(homing_feedrate[X_AXIS]/60); - // Third move up to a safe height. - current_position[Z_AXIS] = Z_MIN_POS; - go_to_current(homing_feedrate[Z_AXIS]/60); -} - -// Sample the 9 points of the bed and store them into the EEPROM as a reference. -// When calling this function, the X, Y, Z axes should be already homed, -// and the world2machine correction matrix should be active. -// Returns false if the reference values are more than 3mm far away. -bool sample_mesh_and_store_reference() -{ - bool endstops_enabled = enable_endstops(false); - bool endstop_z_enabled = enable_z_endstop(false); - - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - -#ifdef MESH_BED_CALIBRATION_SHOW_LCD - uint8_t next_line; - lcd_display_message_fullscreen_P(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1, next_line); - if (next_line > 3) - next_line = 3; - // display "point xx of yy" - lcd_implementation_print_at(0, next_line, 1); - lcd_printPGM(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2); -#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ - - // Sample Z heights for the mesh bed leveling. - // In addition, store the results into an eeprom, to be used later for verification of the bed leveling process. - { - // The first point defines the reference. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - go_to_current(homing_feedrate[Z_AXIS]/60); - current_position[X_AXIS] = pgm_read_float(bed_ref_points); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points+1); - world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); - go_to_current(homing_feedrate[X_AXIS]/60); - memcpy(destination, current_position, sizeof(destination)); - enable_endstops(true); - homeaxis(Z_AXIS); - enable_endstops(false); - find_bed_induction_sensor_point_z(); - mbl.set_z(0, 0, current_position[Z_AXIS]); - } - for (int8_t mesh_point = 1; mesh_point != MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS; ++ mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - // Print the decrasing ID of the measurement point. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - go_to_current(homing_feedrate[Z_AXIS]/60); - current_position[X_AXIS] = pgm_read_float(bed_ref_points+2*mesh_point); - current_position[Y_AXIS] = pgm_read_float(bed_ref_points+2*mesh_point+1); - world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); - go_to_current(homing_feedrate[X_AXIS]/60); -#ifdef MESH_BED_CALIBRATION_SHOW_LCD - // display "point xx of yy" - lcd_implementation_print_at(0, next_line, mesh_point+1); - lcd_printPGM(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2); -#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ - find_bed_induction_sensor_point_z(); - // Get cords of measuring point - int8_t ix = mesh_point % MESH_MEAS_NUM_X_POINTS; - int8_t iy = mesh_point / MESH_MEAS_NUM_X_POINTS; - if (iy & 1) ix = (MESH_MEAS_NUM_X_POINTS - 1) - ix; // Zig zag - mbl.set_z(ix, iy, current_position[Z_AXIS]); - } - { - // Verify the span of the Z values. - float zmin = mbl.z_values[0][0]; - float zmax = zmax; - for (int8_t j = 0; j < 3; ++ j) - for (int8_t i = 0; i < 3; ++ i) { - zmin = min(zmin, mbl.z_values[j][i]); - zmax = min(zmax, mbl.z_values[j][i]); - } - if (zmax - zmin > 3.f) { - // The span of the Z offsets is extreme. Give up. - // Homing failed on some of the points. - SERIAL_PROTOCOLLNPGM("Exreme span of the Z values!"); - return false; - } - } - - // Store the correction values to EEPROM. - // Offsets of the Z heiths of the calibration points from the first point. - // The offsets are saved as 16bit signed int, scaled to tenths of microns. - { - uint16_t addr = EEPROM_BED_CALIBRATION_Z_JITTER; - for (int8_t j = 0; j < 3; ++ j) - for (int8_t i = 0; i < 3; ++ i) { - if (i == 0 && j == 0) - continue; - float dif = mbl.z_values[j][i] - mbl.z_values[0][0]; - int16_t dif_quantized = int16_t(floor(dif * 100.f + 0.5f)); - eeprom_update_word((uint16_t*)addr, *reinterpret_cast(&dif_quantized)); - #if 0 - { - uint16_t z_offset_u = eeprom_read_word((uint16_t*)addr); - float dif2 = *reinterpret_cast(&z_offset_u) * 0.01; - - SERIAL_ECHOPGM("Bed point "); - SERIAL_ECHO(i); - SERIAL_ECHOPGM(","); - SERIAL_ECHO(j); - SERIAL_ECHOPGM(", differences: written "); - MYSERIAL.print(dif, 5); - SERIAL_ECHOPGM(", read: "); - MYSERIAL.print(dif2, 5); - SERIAL_ECHOLNPGM(""); - } - #endif - addr += 2; - } - } - - mbl.upsample_3x3(); - mbl.active = true; - - go_home_with_z_lift(); - - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); - return true; -} - -bool scan_bed_induction_points(int8_t verbosity_level) -{ - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - // Reusing the z_values memory for the measurement cache. - // 7x7=49 floats, good for 16 (x,y,z) vectors. - float *pts = &mbl.z_values[0][0]; - float *vec_x = pts + 2 * 9; - float *vec_y = vec_x + 2; - float *cntr = vec_y + 2; - memset(pts, 0, sizeof(float) * 7 * 7); - - // Cache the current correction matrix. - world2machine_initialize(); - vec_x[0] = world2machine_rotation_and_skew[0][0]; - vec_x[1] = world2machine_rotation_and_skew[1][0]; - vec_y[0] = world2machine_rotation_and_skew[0][1]; - vec_y[1] = world2machine_rotation_and_skew[1][1]; - cntr[0] = world2machine_shift[0]; - cntr[1] = world2machine_shift[1]; - // and reset the correction matrix, so the planner will not do anything. - world2machine_reset(); - - bool endstops_enabled = enable_endstops(false); - bool endstop_z_enabled = enable_z_endstop(false); - - // Collect a matrix of 9x9 points. - for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - // Move up. - current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; - enable_endstops(false); - enable_z_endstop(false); - go_to_current(homing_feedrate[Z_AXIS]/60); - // Go to the measurement point. - // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). - current_position[X_AXIS] = vec_x[0] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[0] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[0]; - current_position[Y_AXIS] = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; - // The calibration points are very close to the min Y. - if (current_position[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION) - current_position[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; - go_to_current(homing_feedrate[X_AXIS]/60); - find_bed_induction_sensor_point_z(); - scan_bed_induction_sensor_point(); - } - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - enable_endstops(false); - enable_z_endstop(false); - - // Don't let the manage_inactivity() function remove power from the motors. - refresh_cmd_timeout(); - - enable_endstops(endstops_enabled); - enable_z_endstop(endstop_z_enabled); - return true; -} - -// Shift a Z axis by a given delta. -// To replace loading of the babystep correction. -static void shift_z(float delta) -{ - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] - delta, current_position[E_AXIS], homing_feedrate[Z_AXIS]/40, active_extruder); - st_synchronize(); - plan_set_z_position(current_position[Z_AXIS]); -} - -#define BABYSTEP_LOADZ_BY_PLANNER - -// Number of baby steps applied -static int babystepLoadZ = 0; - -void babystep_apply() -{ - // Apply Z height correction aka baby stepping before mesh bed leveling gets activated. - if(calibration_status() < CALIBRATION_STATUS_LIVE_ADJUST) - { - check_babystep(); //checking if babystep is in allowed range, otherwise setting babystep to 0 - - // End of G80: Apply the baby stepping value. - EEPROM_read_B(EEPROM_BABYSTEP_Z,&babystepLoadZ); - - #if 0 - SERIAL_ECHO("Z baby step: "); - SERIAL_ECHO(babystepLoadZ); - SERIAL_ECHO(", current Z: "); - SERIAL_ECHO(current_position[Z_AXIS]); - SERIAL_ECHO("correction: "); - SERIAL_ECHO(float(babystepLoadZ) / float(axis_steps_per_unit[Z_AXIS])); - SERIAL_ECHOLN(""); - #endif - #ifdef BABYSTEP_LOADZ_BY_PLANNER - shift_z(- float(babystepLoadZ) / float(axis_steps_per_unit[Z_AXIS])); - #else - babystepsTodoZadd(babystepLoadZ); - #endif /* BABYSTEP_LOADZ_BY_PLANNER */ - } -} - -void babystep_undo() -{ -#ifdef BABYSTEP_LOADZ_BY_PLANNER - shift_z(float(babystepLoadZ) / float(axis_steps_per_unit[Z_AXIS])); -#else - babystepsTodoZsubtract(babystepLoadZ); -#endif /* BABYSTEP_LOADZ_BY_PLANNER */ - babystepLoadZ = 0; -} - -void babystep_reset() -{ - babystepLoadZ = 0; -} - -void count_xyz_details() { - float a1, a2; - float cntr[2] = { - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 0)), - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 4)) - }; - float vec_x[2] = { - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 0)), - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 4)) - }; - float vec_y[2] = { - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 0)), - eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 4)) - }; - a2 = -1 * asin(vec_y[0] / MACHINE_AXIS_SCALE_Y); - a1 = asin(vec_x[1] / MACHINE_AXIS_SCALE_X); - angleDiff = fabs(a2 - a1); - for (uint8_t mesh_point = 0; mesh_point < 3; ++mesh_point) { - float y = vec_x[1] * pgm_read_float(bed_ref_points + mesh_point * 2) + vec_y[1] * pgm_read_float(bed_ref_points + mesh_point * 2 + 1) + cntr[1]; - distance_from_min[mesh_point] = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); - } -} - -/*countDistanceFromMin() { - -}*/ - - - +#include "Marlin.h" +#include "Configuration.h" +#include "ConfigurationStore.h" +#include "language_all.h" +#include "mesh_bed_calibration.h" +#include "mesh_bed_leveling.h" +#include "stepper.h" +#include "ultralcd.h" + +uint8_t world2machine_correction_mode; +float world2machine_rotation_and_skew[2][2]; +float world2machine_rotation_and_skew_inv[2][2]; +float world2machine_shift[2]; + +// Weight of the Y coordinate for the least squares fitting of the bed induction sensor targets. +// Only used for the first row of the points, which may not befully in reach of the sensor. +#define WEIGHT_FIRST_ROW_X_HIGH (1.f) +#define WEIGHT_FIRST_ROW_X_LOW (0.35f) +#define WEIGHT_FIRST_ROW_Y_HIGH (0.3f) +#define WEIGHT_FIRST_ROW_Y_LOW (0.0f) + +#define BED_ZERO_REF_X (- 22.f + X_PROBE_OFFSET_FROM_EXTRUDER) +#define BED_ZERO_REF_Y (- 0.6f + Y_PROBE_OFFSET_FROM_EXTRUDER) + +// Scaling of the real machine axes against the programmed dimensions in the firmware. +// The correction is tiny, here around 0.5mm on 250mm length. +//#define MACHINE_AXIS_SCALE_X ((250.f - 0.5f) / 250.f) +//#define MACHINE_AXIS_SCALE_Y ((250.f - 0.5f) / 250.f) +#define MACHINE_AXIS_SCALE_X 1.f +#define MACHINE_AXIS_SCALE_Y 1.f + +#define BED_CALIBRATION_POINT_OFFSET_MAX_EUCLIDIAN (0.8f) +#define BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X (0.8f) +#define BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y (1.5f) + +#define MIN_BED_SENSOR_POINT_RESPONSE_DMR (2.0f) + +//#define Y_MIN_POS_FOR_BED_CALIBRATION (MANUAL_Y_HOME_POS-0.2f) +#define Y_MIN_POS_FOR_BED_CALIBRATION (Y_MIN_POS) +// Distances toward the print bed edge may not be accurate. +#define Y_MIN_POS_CALIBRATION_POINT_ACCURATE (Y_MIN_POS + 3.f) +// When the measured point center is out of reach of the sensor, Y coordinate will be ignored +// by the Least Squares fitting and the X coordinate will be weighted low. +#define Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH (Y_MIN_POS - 0.5f) + +// 0.12 degrees equals to an offset of 0.5mm on 250mm length. +const float bed_skew_angle_mild = (0.12f * M_PI / 180.f); +// 0.25 degrees equals to an offset of 1.1mm on 250mm length. +const float bed_skew_angle_extreme = (0.25f * M_PI / 180.f); + +// Positions of the bed reference points in the machine coordinates, referenced to the P.I.N.D.A sensor. +// The points are ordered in a zig-zag fashion to speed up the calibration. +const float bed_ref_points[] PROGMEM = { + 13.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, + 115.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, + 216.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, + + 216.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, + 115.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, + 13.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, + + 13.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y, + 115.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y, + 216.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y +}; + +// Positions of the bed reference points in the machine coordinates, referenced to the P.I.N.D.A sensor. +// The points are the following: center front, center right, center rear, center left. +const float bed_ref_points_4[] PROGMEM = { + 115.f - BED_ZERO_REF_X, 6.4f - BED_ZERO_REF_Y, + 216.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y, + 115.f - BED_ZERO_REF_X, 202.4f - BED_ZERO_REF_Y, + 13.f - BED_ZERO_REF_X, 104.4f - BED_ZERO_REF_Y +}; + +static inline float sqr(float x) { return x * x; } + +static inline bool point_on_1st_row(const uint8_t i, const uint8_t npts) +{ + if (npts == 4) return (i == 0); + else return (i < 3); +} + +// Weight of a point coordinate in a least squares optimization. +// The first row of points may not be fully reachable +// and the y values may be shortened a bit by the bed carriage +// pulling the belt up. +static inline float point_weight_x(const uint8_t i, const uint8_t npts, const float &y) +{ + float w = 1.f; + if (point_on_1st_row(i, npts)) { + if (y >= Y_MIN_POS_CALIBRATION_POINT_ACCURATE) { + w = WEIGHT_FIRST_ROW_X_HIGH; + } else if (y < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) { + // If the point is fully outside, give it some weight. + w = WEIGHT_FIRST_ROW_X_LOW; + } else { + // Linearly interpolate the weight from 1 to WEIGHT_FIRST_ROW_X. + float t = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) / (Y_MIN_POS_CALIBRATION_POINT_ACCURATE - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); + w = (1.f - t) * WEIGHT_FIRST_ROW_X_LOW + t * WEIGHT_FIRST_ROW_X_HIGH; + } + } + return w; +} + +// Weight of a point coordinate in a least squares optimization. +// The first row of points may not be fully reachable +// and the y values may be shortened a bit by the bed carriage +// pulling the belt up. +static inline float point_weight_y(const uint8_t i, const uint8_t npts, const float &y) +{ + float w = 1.f; + if (point_on_1st_row(i, npts)) { + if (y >= Y_MIN_POS_CALIBRATION_POINT_ACCURATE) { + w = WEIGHT_FIRST_ROW_Y_HIGH; + } else if (y < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) { + // If the point is fully outside, give it some weight. + w = WEIGHT_FIRST_ROW_Y_LOW; + } else { + // Linearly interpolate the weight from 1 to WEIGHT_FIRST_ROW_X. + float t = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) / (Y_MIN_POS_CALIBRATION_POINT_ACCURATE - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); + w = (1.f - t) * WEIGHT_FIRST_ROW_Y_LOW + t * WEIGHT_FIRST_ROW_Y_HIGH; + } + } + return w; +} + +// Non-Linear Least Squares fitting of the bed to the measured induction points +// using the Gauss-Newton method. +// This method will maintain a unity length of the machine axes, +// which is the correct approach if the sensor points are not measured precisely. +BedSkewOffsetDetectionResultType calculate_machine_skew_and_offset_LS( + // Matrix of maximum 9 2D points (18 floats) + const float *measured_pts, + uint8_t npts, + const float *true_pts, + // Resulting correction matrix. + float *vec_x, + float *vec_y, + float *cntr, + // Temporary values, 49-18-(2*3)=25 floats + // , float *temp + int8_t verbosity_level + ) +{ + if (verbosity_level >= 10) { + SERIAL_ECHOLNPGM("calculate machine skew and offset LS"); + + // Show the initial state, before the fitting. + SERIAL_ECHOPGM("X vector, initial: "); + MYSERIAL.print(vec_x[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(vec_x[1], 5); + SERIAL_ECHOLNPGM(""); + + SERIAL_ECHOPGM("Y vector, initial: "); + MYSERIAL.print(vec_y[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(vec_y[1], 5); + SERIAL_ECHOLNPGM(""); + + SERIAL_ECHOPGM("center, initial: "); + MYSERIAL.print(cntr[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(cntr[1], 5); + SERIAL_ECHOLNPGM(""); + + for (uint8_t i = 0; i < npts; ++i) { + SERIAL_ECHOPGM("point #"); + MYSERIAL.print(int(i)); + SERIAL_ECHOPGM(" measured: ("); + MYSERIAL.print(measured_pts[i * 2], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(measured_pts[i * 2 + 1], 5); + SERIAL_ECHOPGM("); target: ("); + MYSERIAL.print(pgm_read_float(true_pts + i * 2), 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(pgm_read_float(true_pts + i * 2 + 1), 5); + SERIAL_ECHOPGM("), error: "); + MYSERIAL.print(sqrt( + sqr(pgm_read_float(true_pts + i * 2) - measured_pts[i * 2]) + + sqr(pgm_read_float(true_pts + i * 2 + 1) - measured_pts[i * 2 + 1])), 5); + SERIAL_ECHOLNPGM(""); + } + delay_keep_alive(100); + } + + // Run some iterations of the Gauss-Newton method of non-linear least squares. + // Initial set of parameters: + // X,Y offset + cntr[0] = 0.f; + cntr[1] = 0.f; + // Rotation of the machine X axis from the bed X axis. + float a1 = 0; + // Rotation of the machine Y axis from the bed Y axis. + float a2 = 0; + for (int8_t iter = 0; iter < 100; ++iter) { + float c1 = cos(a1) * MACHINE_AXIS_SCALE_X; + float s1 = sin(a1) * MACHINE_AXIS_SCALE_X; + float c2 = cos(a2) * MACHINE_AXIS_SCALE_Y; + float s2 = sin(a2) * MACHINE_AXIS_SCALE_Y; + // Prepare the Normal equation for the Gauss-Newton method. + float A[4][4] = { 0.f }; + float b[4] = { 0.f }; + float acc; + for (uint8_t r = 0; r < 4; ++r) { + for (uint8_t c = 0; c < 4; ++c) { + acc = 0; + // J^T times J + for (uint8_t i = 0; i < npts; ++i) { + // First for the residuum in the x axis: + if (r != 1 && c != 1) { + float a = + (r == 0) ? 1.f : + ((r == 2) ? (-s1 * measured_pts[2 * i]) : + (-c2 * measured_pts[2 * i + 1])); + float b = + (c == 0) ? 1.f : + ((c == 2) ? (-s1 * measured_pts[2 * i]) : + (-c2 * measured_pts[2 * i + 1])); + float w = point_weight_x(i, npts, measured_pts[2 * i + 1]); + acc += a * b * w; + } + // Second for the residuum in the y axis. + // The first row of the points have a low weight, because their position may not be known + // with a sufficient accuracy. + if (r != 0 && c != 0) { + float a = + (r == 1) ? 1.f : + ((r == 2) ? ( c1 * measured_pts[2 * i]) : + (-s2 * measured_pts[2 * i + 1])); + float b = + (c == 1) ? 1.f : + ((c == 2) ? ( c1 * measured_pts[2 * i]) : + (-s2 * measured_pts[2 * i + 1])); + float w = point_weight_y(i, npts, measured_pts[2 * i + 1]); + acc += a * b * w; + } + } + A[r][c] = acc; + } + // J^T times f(x) + acc = 0.f; + for (uint8_t i = 0; i < npts; ++i) { + { + float j = + (r == 0) ? 1.f : + ((r == 1) ? 0.f : + ((r == 2) ? (-s1 * measured_pts[2 * i]) : + (-c2 * measured_pts[2 * i + 1]))); + float fx = c1 * measured_pts[2 * i] - s2 * measured_pts[2 * i + 1] + cntr[0] - pgm_read_float(true_pts + i * 2); + float w = point_weight_x(i, npts, measured_pts[2 * i + 1]); + acc += j * fx * w; + } + { + float j = + (r == 0) ? 0.f : + ((r == 1) ? 1.f : + ((r == 2) ? ( c1 * measured_pts[2 * i]) : + (-s2 * measured_pts[2 * i + 1]))); + float fy = s1 * measured_pts[2 * i] + c2 * measured_pts[2 * i + 1] + cntr[1] - pgm_read_float(true_pts + i * 2 + 1); + float w = point_weight_y(i, npts, measured_pts[2 * i + 1]); + acc += j * fy * w; + } + } + b[r] = -acc; + } + + // Solve for h by a Gauss iteration method. + float h[4] = { 0.f }; + for (uint8_t gauss_iter = 0; gauss_iter < 100; ++gauss_iter) { + h[0] = (b[0] - A[0][1] * h[1] - A[0][2] * h[2] - A[0][3] * h[3]) / A[0][0]; + h[1] = (b[1] - A[1][0] * h[0] - A[1][2] * h[2] - A[1][3] * h[3]) / A[1][1]; + h[2] = (b[2] - A[2][0] * h[0] - A[2][1] * h[1] - A[2][3] * h[3]) / A[2][2]; + h[3] = (b[3] - A[3][0] * h[0] - A[3][1] * h[1] - A[3][2] * h[2]) / A[3][3]; + } + + // and update the current position with h. + // It may be better to use the Levenberg-Marquart method here, + // but because we are very close to the solution alread, + // the simple Gauss-Newton non-linear Least Squares method works well enough. + cntr[0] += h[0]; + cntr[1] += h[1]; + a1 += h[2]; + a2 += h[3]; + + if (verbosity_level >= 20) { + SERIAL_ECHOPGM("iteration: "); + MYSERIAL.print(int(iter)); + SERIAL_ECHOPGM("; correction vector: "); + MYSERIAL.print(h[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(h[1], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(h[2], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(h[3], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("corrected x/y: "); + MYSERIAL.print(cntr[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(cntr[0], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("corrected angles: "); + MYSERIAL.print(180.f * a1 / M_PI, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(180.f * a2 / M_PI, 5); + SERIAL_ECHOLNPGM(""); + } + } + + vec_x[0] = cos(a1) * MACHINE_AXIS_SCALE_X; + vec_x[1] = sin(a1) * MACHINE_AXIS_SCALE_X; + vec_y[0] = -sin(a2) * MACHINE_AXIS_SCALE_Y; + vec_y[1] = cos(a2) * MACHINE_AXIS_SCALE_Y; + + BedSkewOffsetDetectionResultType result = BED_SKEW_OFFSET_DETECTION_PERFECT; + { + angleDiff = fabs(a2 - a1); + if (angleDiff > bed_skew_angle_mild) + result = (angleDiff > bed_skew_angle_extreme) ? + BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME : + BED_SKEW_OFFSET_DETECTION_SKEW_MILD; + if (fabs(a1) > bed_skew_angle_extreme || + fabs(a2) > bed_skew_angle_extreme) + result = BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME; + } + + if (verbosity_level >= 1) { + SERIAL_ECHOPGM("correction angles: "); + MYSERIAL.print(180.f * a1 / M_PI, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(180.f * a2 / M_PI, 5); + SERIAL_ECHOLNPGM(""); + } + + if (verbosity_level >= 10) { + // Show the adjusted state, before the fitting. + SERIAL_ECHOPGM("X vector new, inverted: "); + MYSERIAL.print(vec_x[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(vec_x[1], 5); + SERIAL_ECHOLNPGM(""); + + SERIAL_ECHOPGM("Y vector new, inverted: "); + MYSERIAL.print(vec_y[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(vec_y[1], 5); + SERIAL_ECHOLNPGM(""); + + SERIAL_ECHOPGM("center new, inverted: "); + MYSERIAL.print(cntr[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(cntr[1], 5); + SERIAL_ECHOLNPGM(""); + delay_keep_alive(100); + + SERIAL_ECHOLNPGM("Error after correction: "); + } + + // Measure the error after correction. + for (uint8_t i = 0; i < npts; ++i) { + float x = vec_x[0] * measured_pts[i * 2] + vec_y[0] * measured_pts[i * 2 + 1] + cntr[0]; + float y = vec_x[1] * measured_pts[i * 2] + vec_y[1] * measured_pts[i * 2 + 1] + cntr[1]; + float errX = sqr(pgm_read_float(true_pts + i * 2) - x); + float errY = sqr(pgm_read_float(true_pts + i * 2 + 1) - y); + float err = sqrt(errX + errY); + if (verbosity_level >= 10) { + SERIAL_ECHOPGM("point #"); + MYSERIAL.print(int(i)); + SERIAL_ECHOLNPGM(":"); + } + + if (point_on_1st_row(i, npts)) { + if(verbosity_level >= 20) SERIAL_ECHOPGM("Point on first row"); + float w = point_weight_y(i, npts, measured_pts[2 * i + 1]); + if (sqrt(errX) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X || + (w != 0.f && sqrt(errY) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y)) { + result = BED_SKEW_OFFSET_DETECTION_FITTING_FAILED; + if (verbosity_level >= 20) { + SERIAL_ECHOPGM(", weigth Y: "); + MYSERIAL.print(w); + if (sqrt(errX) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X) SERIAL_ECHOPGM(", error X > max. error X"); + if (w != 0.f && sqrt(errY) > BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y) SERIAL_ECHOPGM(", error Y > max. error Y"); + } + } + } + else { + if(verbosity_level >=20 ) SERIAL_ECHOPGM("Point not on first row"); + if (err > BED_CALIBRATION_POINT_OFFSET_MAX_EUCLIDIAN) { + result = BED_SKEW_OFFSET_DETECTION_FITTING_FAILED; + if(verbosity_level >= 20) SERIAL_ECHOPGM(", error > max. error euclidian"); + } + } + if (verbosity_level >= 10) { + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("measured: ("); + MYSERIAL.print(measured_pts[i * 2], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(measured_pts[i * 2 + 1], 5); + SERIAL_ECHOPGM("); corrected: ("); + MYSERIAL.print(x, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(y, 5); + SERIAL_ECHOPGM("); target: ("); + MYSERIAL.print(pgm_read_float(true_pts + i * 2), 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(pgm_read_float(true_pts + i * 2 + 1), 5); + SERIAL_ECHOLNPGM(")"); + SERIAL_ECHOPGM("error: "); + MYSERIAL.print(err); + SERIAL_ECHOPGM(", error X: "); + MYSERIAL.print(sqrt(errX)); + SERIAL_ECHOPGM(", error Y: "); + MYSERIAL.print(sqrt(errY)); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM(""); + } + } + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM("Max. errors:"); + SERIAL_ECHOPGM("Max. error X:"); + MYSERIAL.println(BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_X); + SERIAL_ECHOPGM("Max. error Y:"); + MYSERIAL.println(BED_CALIBRATION_POINT_OFFSET_MAX_1ST_ROW_Y); + SERIAL_ECHOPGM("Max. error euclidian:"); + MYSERIAL.println(BED_CALIBRATION_POINT_OFFSET_MAX_EUCLIDIAN); + SERIAL_ECHOLNPGM(""); + } + + #if 0 + if (result == BED_SKEW_OFFSET_DETECTION_PERFECT && fabs(a1) < bed_skew_angle_mild && fabs(a2) < bed_skew_angle_mild) { + if (verbosity_level > 0) + SERIAL_ECHOLNPGM("Very little skew detected. Disabling skew correction."); + // Just disable the skew correction. + vec_x[0] = MACHINE_AXIS_SCALE_X; + vec_x[1] = 0.f; + vec_y[0] = 0.f; + vec_y[1] = MACHINE_AXIS_SCALE_Y; + } + #else + if (result == BED_SKEW_OFFSET_DETECTION_PERFECT) { + if (verbosity_level > 0) + SERIAL_ECHOLNPGM("Very little skew detected. Orthogonalizing the axes."); + // Orthogonalize the axes. + a1 = 0.5f * (a1 + a2); + vec_x[0] = cos(a1) * MACHINE_AXIS_SCALE_X; + vec_x[1] = sin(a1) * MACHINE_AXIS_SCALE_X; + vec_y[0] = -sin(a1) * MACHINE_AXIS_SCALE_Y; + vec_y[1] = cos(a1) * MACHINE_AXIS_SCALE_Y; + // Refresh the offset. + cntr[0] = 0.f; + cntr[1] = 0.f; + float wx = 0.f; + float wy = 0.f; + for (int8_t i = 0; i < npts; ++ i) { + float x = vec_x[0] * measured_pts[i * 2] + vec_y[0] * measured_pts[i * 2 + 1]; + float y = vec_x[1] * measured_pts[i * 2] + vec_y[1] * measured_pts[i * 2 + 1]; + float w = point_weight_x(i, npts, y); + cntr[0] += w * (pgm_read_float(true_pts + i * 2) - x); + wx += w; + if (verbosity_level >= 20) { + MYSERIAL.print(i); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("Weight_x:"); + MYSERIAL.print(w); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("cntr[0]:"); + MYSERIAL.print(cntr[0]); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("wx:"); + MYSERIAL.print(wx); + } + w = point_weight_y(i, npts, y); + cntr[1] += w * (pgm_read_float(true_pts + i * 2 + 1) - y); + wy += w; + + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("Weight_y:"); + MYSERIAL.print(w); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("cntr[1]:"); + MYSERIAL.print(cntr[1]); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("wy:"); + MYSERIAL.print(wy); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM(""); + } + } + cntr[0] /= wx; + cntr[1] /= wy; + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("Final cntr values:"); + SERIAL_ECHOLNPGM("cntr[0]:"); + MYSERIAL.print(cntr[0]); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("cntr[1]:"); + MYSERIAL.print(cntr[1]); + SERIAL_ECHOLNPGM(""); + } + + } + #endif + + // Invert the transformation matrix made of vec_x, vec_y and cntr. + { + float d = vec_x[0] * vec_y[1] - vec_x[1] * vec_y[0]; + float Ainv[2][2] = { + { vec_y[1] / d, -vec_y[0] / d }, + { -vec_x[1] / d, vec_x[0] / d } + }; + float cntrInv[2] = { + -Ainv[0][0] * cntr[0] - Ainv[0][1] * cntr[1], + -Ainv[1][0] * cntr[0] - Ainv[1][1] * cntr[1] + }; + vec_x[0] = Ainv[0][0]; + vec_x[1] = Ainv[1][0]; + vec_y[0] = Ainv[0][1]; + vec_y[1] = Ainv[1][1]; + cntr[0] = cntrInv[0]; + cntr[1] = cntrInv[1]; + } + + if (verbosity_level >= 1) { + // Show the adjusted state, before the fitting. + SERIAL_ECHOPGM("X vector, adjusted: "); + MYSERIAL.print(vec_x[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(vec_x[1], 5); + SERIAL_ECHOLNPGM(""); + + SERIAL_ECHOPGM("Y vector, adjusted: "); + MYSERIAL.print(vec_y[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(vec_y[1], 5); + SERIAL_ECHOLNPGM(""); + + SERIAL_ECHOPGM("center, adjusted: "); + MYSERIAL.print(cntr[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(cntr[1], 5); + SERIAL_ECHOLNPGM(""); + delay_keep_alive(100); + } + + if (verbosity_level >= 2) { + SERIAL_ECHOLNPGM("Difference after correction: "); + for (uint8_t i = 0; i < npts; ++i) { + float x = vec_x[0] * pgm_read_float(true_pts + i * 2) + vec_y[0] * pgm_read_float(true_pts + i * 2 + 1) + cntr[0]; + float y = vec_x[1] * pgm_read_float(true_pts + i * 2) + vec_y[1] * pgm_read_float(true_pts + i * 2 + 1) + cntr[1]; + SERIAL_ECHOPGM("point #"); + MYSERIAL.print(int(i)); + SERIAL_ECHOPGM("measured: ("); + MYSERIAL.print(measured_pts[i * 2], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(measured_pts[i * 2 + 1], 5); + SERIAL_ECHOPGM("); measured-corrected: ("); + MYSERIAL.print(x, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(y, 5); + SERIAL_ECHOPGM("); target: ("); + MYSERIAL.print(pgm_read_float(true_pts + i * 2), 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(pgm_read_float(true_pts + i * 2 + 1), 5); + SERIAL_ECHOPGM("), error: "); + MYSERIAL.print(sqrt(sqr(measured_pts[i * 2] - x) + sqr(measured_pts[i * 2 + 1] - y))); + SERIAL_ECHOLNPGM(""); + } + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM("Calculate offset and skew returning result:"); + MYSERIAL.print(int(result)); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOLNPGM(""); + } + delay_keep_alive(100); + } + + return result; +} + +void reset_bed_offset_and_skew() +{ + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_CENTER+0), 0x0FFFFFFFF); + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_CENTER+4), 0x0FFFFFFFF); + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_X +0), 0x0FFFFFFFF); + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_X +4), 0x0FFFFFFFF); + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_Y +0), 0x0FFFFFFFF); + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_VEC_Y +4), 0x0FFFFFFFF); + + // Reset the 8 16bit offsets. + for (int8_t i = 0; i < 4; ++ i) + eeprom_update_dword((uint32_t*)(EEPROM_BED_CALIBRATION_Z_JITTER+i*4), 0x0FFFFFFFF); +} + +bool is_bed_z_jitter_data_valid() +// offsets of the Z heiths of the calibration points from the first point are saved as 16bit signed int, scaled to tenths of microns +{ + for (int8_t i = 0; i < 8; ++ i) + if (eeprom_read_word((uint16_t*)(EEPROM_BED_CALIBRATION_Z_JITTER+i*2)) == 0x0FFFF) + return false; + return true; +} + +static void world2machine_update(const float vec_x[2], const float vec_y[2], const float cntr[2]) +{ + world2machine_rotation_and_skew[0][0] = vec_x[0]; + world2machine_rotation_and_skew[1][0] = vec_x[1]; + world2machine_rotation_and_skew[0][1] = vec_y[0]; + world2machine_rotation_and_skew[1][1] = vec_y[1]; + world2machine_shift[0] = cntr[0]; + world2machine_shift[1] = cntr[1]; + // No correction. + world2machine_correction_mode = WORLD2MACHINE_CORRECTION_NONE; + if (world2machine_shift[0] != 0.f || world2machine_shift[1] != 0.f) + // Shift correction. + world2machine_correction_mode |= WORLD2MACHINE_CORRECTION_SHIFT; + if (world2machine_rotation_and_skew[0][0] != 1.f || world2machine_rotation_and_skew[0][1] != 0.f || + world2machine_rotation_and_skew[1][0] != 0.f || world2machine_rotation_and_skew[1][1] != 1.f) { + // Rotation & skew correction. + world2machine_correction_mode |= WORLD2MACHINE_CORRECTION_SKEW; + // Invert the world2machine matrix. + float d = world2machine_rotation_and_skew[0][0] * world2machine_rotation_and_skew[1][1] - world2machine_rotation_and_skew[1][0] * world2machine_rotation_and_skew[0][1]; + world2machine_rotation_and_skew_inv[0][0] = world2machine_rotation_and_skew[1][1] / d; + world2machine_rotation_and_skew_inv[0][1] = -world2machine_rotation_and_skew[0][1] / d; + world2machine_rotation_and_skew_inv[1][0] = -world2machine_rotation_and_skew[1][0] / d; + world2machine_rotation_and_skew_inv[1][1] = world2machine_rotation_and_skew[0][0] / d; + } else { + world2machine_rotation_and_skew_inv[0][0] = 1.f; + world2machine_rotation_and_skew_inv[0][1] = 0.f; + world2machine_rotation_and_skew_inv[1][0] = 0.f; + world2machine_rotation_and_skew_inv[1][1] = 1.f; + } +} + +void world2machine_reset() +{ + const float vx[] = { 1.f, 0.f }; + const float vy[] = { 0.f, 1.f }; + const float cntr[] = { 0.f, 0.f }; + world2machine_update(vx, vy, cntr); +} + +void world2machine_revert_to_uncorrected() +{ + if (world2machine_correction_mode != WORLD2MACHINE_CORRECTION_NONE) { + // Reset the machine correction matrix. + const float vx[] = { 1.f, 0.f }; + const float vy[] = { 0.f, 1.f }; + const float cntr[] = { 0.f, 0.f }; + world2machine_update(vx, vy, cntr); + // Wait for the motors to stop and update the current position with the absolute values. + st_synchronize(); + current_position[X_AXIS] = st_get_position_mm(X_AXIS); + current_position[Y_AXIS] = st_get_position_mm(Y_AXIS); + } +} + +static inline bool vec_undef(const float v[2]) +{ + const uint32_t *vx = (const uint32_t*)v; + return vx[0] == 0x0FFFFFFFF || vx[1] == 0x0FFFFFFFF; +} + +void world2machine_initialize() +{ + //SERIAL_ECHOLNPGM("world2machine_initialize"); + float cntr[2] = { + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER+0)), + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER+4)) + }; + float vec_x[2] = { + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +0)), + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +4)) + }; + float vec_y[2] = { + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +0)), + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +4)) + }; + + bool reset = false; + if (vec_undef(cntr) || vec_undef(vec_x) || vec_undef(vec_y)) { + SERIAL_ECHOLNPGM("Undefined bed correction matrix."); + reset = true; + } + else { + // Length of the vec_x shall be close to unity. + float l = sqrt(vec_x[0] * vec_x[0] + vec_x[1] * vec_x[1]); + if (l < 0.9 || l > 1.1) { + SERIAL_ECHOLNPGM("X vector length:"); + MYSERIAL.println(l); + SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the X vector out of range."); + reset = true; + } + // Length of the vec_y shall be close to unity. + l = sqrt(vec_y[0] * vec_y[0] + vec_y[1] * vec_y[1]); + if (l < 0.9 || l > 1.1) { + SERIAL_ECHOLNPGM("Y vector length:"); + MYSERIAL.println(l); + SERIAL_ECHOLNPGM("Invalid bed correction matrix. Length of the Y vector out of range."); + reset = true; + } + // Correction of the zero point shall be reasonably small. + l = sqrt(cntr[0] * cntr[0] + cntr[1] * cntr[1]); + if (l > 15.f) { + SERIAL_ECHOLNPGM("Zero point correction:"); + MYSERIAL.println(l); + SERIAL_ECHOLNPGM("Invalid bed correction matrix. Shift out of range."); + reset = true; + } + // vec_x and vec_y shall be nearly perpendicular. + l = vec_x[0] * vec_y[0] + vec_x[1] * vec_y[1]; + if (fabs(l) > 0.1f) { + SERIAL_ECHOLNPGM("Invalid bed correction matrix. X/Y axes are far from being perpendicular."); + reset = true; + } + } + + if (reset) { + SERIAL_ECHOLNPGM("Invalid bed correction matrix. Resetting to identity."); + reset_bed_offset_and_skew(); + world2machine_reset(); + } else { + world2machine_update(vec_x, vec_y, cntr); + /* + SERIAL_ECHOPGM("world2machine_initialize() loaded: "); + MYSERIAL.print(world2machine_rotation_and_skew[0][0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(world2machine_rotation_and_skew[0][1], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(world2machine_rotation_and_skew[1][0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(world2machine_rotation_and_skew[1][1], 5); + SERIAL_ECHOPGM(", offset "); + MYSERIAL.print(world2machine_shift[0], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(world2machine_shift[1], 5); + SERIAL_ECHOLNPGM(""); + */ + } +} + +// When switching from absolute to corrected coordinates, +// this will get the absolute coordinates from the servos, +// applies the inverse world2machine transformation +// and stores the result into current_position[x,y]. +void world2machine_update_current() +{ + float x = current_position[X_AXIS] - world2machine_shift[0]; + float y = current_position[Y_AXIS] - world2machine_shift[1]; + current_position[X_AXIS] = world2machine_rotation_and_skew_inv[0][0] * x + world2machine_rotation_and_skew_inv[0][1] * y; + current_position[Y_AXIS] = world2machine_rotation_and_skew_inv[1][0] * x + world2machine_rotation_and_skew_inv[1][1] * y; +} + +static inline void go_xyz(float x, float y, float z, float fr) +{ + plan_buffer_line(x, y, z, current_position[E_AXIS], fr, active_extruder); + st_synchronize(); +} + +static inline void go_xy(float x, float y, float fr) +{ + plan_buffer_line(x, y, current_position[Z_AXIS], current_position[E_AXIS], fr, active_extruder); + st_synchronize(); +} + +static inline void go_to_current(float fr) +{ + plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], fr, active_extruder); + st_synchronize(); +} + +static inline void update_current_position_xyz() +{ + current_position[X_AXIS] = st_get_position_mm(X_AXIS); + current_position[Y_AXIS] = st_get_position_mm(Y_AXIS); + current_position[Z_AXIS] = st_get_position_mm(Z_AXIS); + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); +} + +static inline void update_current_position_z() +{ + current_position[Z_AXIS] = st_get_position_mm(Z_AXIS); + plan_set_z_position(current_position[Z_AXIS]); +} + +// At the current position, find the Z stop. +inline bool find_bed_induction_sensor_point_z(float minimum_z, uint8_t n_iter, int verbosity_level) +{ + if(verbosity_level >= 10) SERIAL_ECHOLNPGM("find bed induction sensor point z"); + bool endstops_enabled = enable_endstops(true); + bool endstop_z_enabled = enable_z_endstop(false); + float z = 0.f; + endstop_z_hit_on_purpose(); + + // move down until you find the bed + current_position[Z_AXIS] = minimum_z; + go_to_current(homing_feedrate[Z_AXIS]/60); + // we have to let the planner know where we are right now as it is not where we said to go. + update_current_position_z(); + if (! endstop_z_hit_on_purpose()) + goto error; + + for (uint8_t i = 0; i < n_iter; ++ i) { + // Move up the retract distance. + current_position[Z_AXIS] += .5f; + go_to_current(homing_feedrate[Z_AXIS]/60); + // Move back down slowly to find bed. + current_position[Z_AXIS] = minimum_z; + go_to_current(homing_feedrate[Z_AXIS]/(4*60)); + // we have to let the planner know where we are right now as it is not where we said to go. + update_current_position_z(); + if (! endstop_z_hit_on_purpose()) + goto error; +// SERIAL_ECHOPGM("Bed find_bed_induction_sensor_point_z low, height: "); +// MYSERIAL.print(current_position[Z_AXIS], 5); +// SERIAL_ECHOLNPGM(""); + z += current_position[Z_AXIS]; + } + current_position[Z_AXIS] = z; + if (n_iter > 1) + current_position[Z_AXIS] /= float(n_iter); + + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); +// SERIAL_ECHOLNPGM("find_bed_induction_sensor_point_z 3"); + return true; + +error: +// SERIAL_ECHOLNPGM("find_bed_induction_sensor_point_z 4"); + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); + return false; +} + +// Search around the current_position[X,Y], +// look for the induction sensor response. +// Adjust the current_position[X,Y,Z] to the center of the target dot and its response Z coordinate. +#define FIND_BED_INDUCTION_SENSOR_POINT_X_RADIUS (8.f) +#define FIND_BED_INDUCTION_SENSOR_POINT_Y_RADIUS (6.f) +#define FIND_BED_INDUCTION_SENSOR_POINT_XY_STEP (1.f) +#define FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP (0.2f) +inline bool find_bed_induction_sensor_point_xy(int verbosity_level) +{ + if(verbosity_level >= 10) MYSERIAL.println("find bed induction sensor point xy"); + float feedrate = homing_feedrate[X_AXIS] / 60.f; + bool found = false; + + { + float x0 = current_position[X_AXIS] - FIND_BED_INDUCTION_SENSOR_POINT_X_RADIUS; + float x1 = current_position[X_AXIS] + FIND_BED_INDUCTION_SENSOR_POINT_X_RADIUS; + float y0 = current_position[Y_AXIS] - FIND_BED_INDUCTION_SENSOR_POINT_Y_RADIUS; + float y1 = current_position[Y_AXIS] + FIND_BED_INDUCTION_SENSOR_POINT_Y_RADIUS; + uint8_t nsteps_y; + uint8_t i; + if (x0 < X_MIN_POS) { + x0 = X_MIN_POS; + if (verbosity_level >= 20) SERIAL_ECHOLNPGM("X searching radius lower than X_MIN. Clamping was done."); + } + if (x1 > X_MAX_POS) { + x1 = X_MAX_POS; + if (verbosity_level >= 20) SERIAL_ECHOLNPGM("X searching radius higher than X_MAX. Clamping was done."); + } + if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) { + y0 = Y_MIN_POS_FOR_BED_CALIBRATION; + if (verbosity_level >= 20) SERIAL_ECHOLNPGM("Y searching radius lower than Y_MIN. Clamping was done."); + } + if (y1 > Y_MAX_POS) { + y1 = Y_MAX_POS; + if (verbosity_level >= 20) SERIAL_ECHOLNPGM("Y searching radius higher than X_MAX. Clamping was done."); + } + nsteps_y = int(ceil((y1 - y0) / FIND_BED_INDUCTION_SENSOR_POINT_XY_STEP)); + + enable_endstops(false); + bool dir_positive = true; + +// go_xyz(current_position[X_AXIS], current_position[Y_AXIS], MESH_HOME_Z_SEARCH, homing_feedrate[Z_AXIS]/60); + go_xyz(x0, y0, current_position[Z_AXIS], feedrate); + // Continously lower the Z axis. + endstops_hit_on_purpose(); + enable_z_endstop(true); + while (current_position[Z_AXIS] > -10.f) { + // Do nsteps_y zig-zag movements. + current_position[Y_AXIS] = y0; + for (i = 0; i < nsteps_y; current_position[Y_AXIS] += (y1 - y0) / float(nsteps_y - 1), ++ i) { + // Run with a slightly decreasing Z axis, zig-zag movement. Stop at the Z end-stop. + current_position[Z_AXIS] -= FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP / float(nsteps_y); + go_xyz(dir_positive ? x1 : x0, current_position[Y_AXIS], current_position[Z_AXIS], feedrate); + dir_positive = ! dir_positive; + if (endstop_z_hit_on_purpose()) + goto endloop; + } + for (i = 0; i < nsteps_y; current_position[Y_AXIS] -= (y1 - y0) / float(nsteps_y - 1), ++ i) { + // Run with a slightly decreasing Z axis, zig-zag movement. Stop at the Z end-stop. + current_position[Z_AXIS] -= FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP / float(nsteps_y); + go_xyz(dir_positive ? x1 : x0, current_position[Y_AXIS], current_position[Z_AXIS], feedrate); + dir_positive = ! dir_positive; + if (endstop_z_hit_on_purpose()) + goto endloop; + } + } + endloop: +// SERIAL_ECHOLN("First hit"); + + // we have to let the planner know where we are right now as it is not where we said to go. + update_current_position_xyz(); + + // Search in this plane for the first hit. Zig-zag first in X, then in Y axis. + for (int8_t iter = 0; iter < 3; ++ iter) { + if (iter > 0) { + // Slightly lower the Z axis to get a reliable trigger. + current_position[Z_AXIS] -= 0.02f; + go_xyz(current_position[X_AXIS], current_position[Y_AXIS], MESH_HOME_Z_SEARCH, homing_feedrate[Z_AXIS]/60); + } + + // Do nsteps_y zig-zag movements. + float a, b; + enable_endstops(false); + enable_z_endstop(false); + current_position[Y_AXIS] = y0; + go_xy(x0, current_position[Y_AXIS], feedrate); + enable_z_endstop(true); + found = false; + for (i = 0, dir_positive = true; i < nsteps_y; current_position[Y_AXIS] += (y1 - y0) / float(nsteps_y - 1), ++ i, dir_positive = ! dir_positive) { + go_xy(dir_positive ? x1 : x0, current_position[Y_AXIS], feedrate); + if (endstop_z_hit_on_purpose()) { + found = true; + break; + } + } + update_current_position_xyz(); + if (! found) { +// SERIAL_ECHOLN("Search in Y - not found"); + continue; + } +// SERIAL_ECHOLN("Search in Y - found"); + a = current_position[Y_AXIS]; + + enable_z_endstop(false); + current_position[Y_AXIS] = y1; + go_xy(x0, current_position[Y_AXIS], feedrate); + enable_z_endstop(true); + found = false; + for (i = 0, dir_positive = true; i < nsteps_y; current_position[Y_AXIS] -= (y1 - y0) / float(nsteps_y - 1), ++ i, dir_positive = ! dir_positive) { + go_xy(dir_positive ? x1 : x0, current_position[Y_AXIS], feedrate); + if (endstop_z_hit_on_purpose()) { + found = true; + break; + } + } + update_current_position_xyz(); + if (! found) { +// SERIAL_ECHOLN("Search in Y2 - not found"); + continue; + } +// SERIAL_ECHOLN("Search in Y2 - found"); + b = current_position[Y_AXIS]; + current_position[Y_AXIS] = 0.5f * (a + b); + + // Search in the X direction along a cross. + found = false; + enable_z_endstop(false); + go_xy(x0, current_position[Y_AXIS], feedrate); + enable_z_endstop(true); + go_xy(x1, current_position[Y_AXIS], feedrate); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { +// SERIAL_ECHOLN("Search X span 0 - not found"); + continue; + } +// SERIAL_ECHOLN("Search X span 0 - found"); + a = current_position[X_AXIS]; + enable_z_endstop(false); + go_xy(x1, current_position[Y_AXIS], feedrate); + enable_z_endstop(true); + go_xy(x0, current_position[Y_AXIS], feedrate); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { +// SERIAL_ECHOLN("Search X span 1 - not found"); + continue; + } +// SERIAL_ECHOLN("Search X span 1 - found"); + b = current_position[X_AXIS]; + // Go to the center. + enable_z_endstop(false); + current_position[X_AXIS] = 0.5f * (a + b); + go_xy(current_position[X_AXIS], current_position[Y_AXIS], feedrate); + found = true; + +#if 1 + // Search in the Y direction along a cross. + found = false; + enable_z_endstop(false); + go_xy(current_position[X_AXIS], y0, feedrate); + enable_z_endstop(true); + go_xy(current_position[X_AXIS], y1, feedrate); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { +// SERIAL_ECHOLN("Search Y2 span 0 - not found"); + continue; + } +// SERIAL_ECHOLN("Search Y2 span 0 - found"); + a = current_position[Y_AXIS]; + enable_z_endstop(false); + go_xy(current_position[X_AXIS], y1, feedrate); + enable_z_endstop(true); + go_xy(current_position[X_AXIS], y0, feedrate); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { +// SERIAL_ECHOLN("Search Y2 span 1 - not found"); + continue; + } +// SERIAL_ECHOLN("Search Y2 span 1 - found"); + b = current_position[Y_AXIS]; + // Go to the center. + enable_z_endstop(false); + current_position[Y_AXIS] = 0.5f * (a + b); + go_xy(current_position[X_AXIS], current_position[Y_AXIS], feedrate); + found = true; +#endif + break; + } + } + + enable_z_endstop(false); + return found; +} + +// Search around the current_position[X,Y,Z]. +// It is expected, that the induction sensor is switched on at the current position. +// Look around this center point by painting a star around the point. +inline bool improve_bed_induction_sensor_point() +{ + static const float search_radius = 8.f; + + bool endstops_enabled = enable_endstops(false); + bool endstop_z_enabled = enable_z_endstop(false); + bool found = false; + float feedrate = homing_feedrate[X_AXIS] / 60.f; + float center_old_x = current_position[X_AXIS]; + float center_old_y = current_position[Y_AXIS]; + float center_x = 0.f; + float center_y = 0.f; + + for (uint8_t iter = 0; iter < 4; ++ iter) { + switch (iter) { + case 0: + destination[X_AXIS] = center_old_x - search_radius * 0.707; + destination[Y_AXIS] = center_old_y - search_radius * 0.707; + break; + case 1: + destination[X_AXIS] = center_old_x + search_radius * 0.707; + destination[Y_AXIS] = center_old_y + search_radius * 0.707; + break; + case 2: + destination[X_AXIS] = center_old_x + search_radius * 0.707; + destination[Y_AXIS] = center_old_y - search_radius * 0.707; + break; + case 3: + default: + destination[X_AXIS] = center_old_x - search_radius * 0.707; + destination[Y_AXIS] = center_old_y + search_radius * 0.707; + break; + } + + // Trim the vector from center_old_[x,y] to destination[x,y] by the bed dimensions. + float vx = destination[X_AXIS] - center_old_x; + float vy = destination[Y_AXIS] - center_old_y; + float l = sqrt(vx*vx+vy*vy); + float t; + if (destination[X_AXIS] < X_MIN_POS) { + // Exiting the bed at xmin. + t = (center_x - X_MIN_POS) / l; + destination[X_AXIS] = X_MIN_POS; + destination[Y_AXIS] = center_old_y + t * vy; + } else if (destination[X_AXIS] > X_MAX_POS) { + // Exiting the bed at xmax. + t = (X_MAX_POS - center_x) / l; + destination[X_AXIS] = X_MAX_POS; + destination[Y_AXIS] = center_old_y + t * vy; + } + if (destination[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION) { + // Exiting the bed at ymin. + t = (center_y - Y_MIN_POS_FOR_BED_CALIBRATION) / l; + destination[X_AXIS] = center_old_x + t * vx; + destination[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; + } else if (destination[Y_AXIS] > Y_MAX_POS) { + // Exiting the bed at xmax. + t = (Y_MAX_POS - center_y) / l; + destination[X_AXIS] = center_old_x + t * vx; + destination[Y_AXIS] = Y_MAX_POS; + } + + // Move away from the measurement point. + enable_endstops(false); + go_xy(destination[X_AXIS], destination[Y_AXIS], feedrate); + // Move towards the measurement point, until the induction sensor triggers. + enable_endstops(true); + go_xy(center_old_x, center_old_y, feedrate); + update_current_position_xyz(); +// if (! endstop_z_hit_on_purpose()) return false; + center_x += current_position[X_AXIS]; + center_y += current_position[Y_AXIS]; + } + + // Calculate the new center, move to the new center. + center_x /= 4.f; + center_y /= 4.f; + current_position[X_AXIS] = center_x; + current_position[Y_AXIS] = center_y; + enable_endstops(false); + go_xy(current_position[X_AXIS], current_position[Y_AXIS], feedrate); + + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); + return found; +} + +static inline void debug_output_point(const char *type, const float &x, const float &y, const float &z) +{ + SERIAL_ECHOPGM("Measured "); + SERIAL_ECHORPGM(type); + SERIAL_ECHOPGM(" "); + MYSERIAL.print(x, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(y, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(z, 5); + SERIAL_ECHOLNPGM(""); +} + +// Search around the current_position[X,Y,Z]. +// It is expected, that the induction sensor is switched on at the current position. +// Look around this center point by painting a star around the point. +#define IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS (8.f) +inline bool improve_bed_induction_sensor_point2(bool lift_z_on_min_y, int8_t verbosity_level) +{ + float center_old_x = current_position[X_AXIS]; + float center_old_y = current_position[Y_AXIS]; + float a, b; + bool point_small = false; + + enable_endstops(false); + + { + float x0 = center_old_x - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; + float x1 = center_old_x + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; + if (x0 < X_MIN_POS) + x0 = X_MIN_POS; + if (x1 > X_MAX_POS) + x1 = X_MAX_POS; + + // Search in the X direction along a cross. + enable_z_endstop(false); + go_xy(x0, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x1, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + current_position[X_AXIS] = center_old_x; + goto canceled; + } + a = current_position[X_AXIS]; + enable_z_endstop(false); + go_xy(x1, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x0, current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + current_position[X_AXIS] = center_old_x; + goto canceled; + } + b = current_position[X_AXIS]; + if (b - a < MIN_BED_SENSOR_POINT_RESPONSE_DMR) { + if (verbosity_level >= 5) { + SERIAL_ECHOPGM("Point width too small: "); + SERIAL_ECHO(b - a); + SERIAL_ECHOLNPGM(""); + } + // We force the calibration routine to move the Z axis slightly down to make the response more pronounced. + if (b - a < 0.5f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { + // Don't use the new X value. + current_position[X_AXIS] = center_old_x; + goto canceled; + } else { + // Use the new value, but force the Z axis to go a bit lower. + point_small = true; + } + } + if (verbosity_level >= 5) { + debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); + debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); + } + + // Go to the center. + enable_z_endstop(false); + current_position[X_AXIS] = 0.5f * (a + b); + go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + } + + { + float y0 = center_old_y - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; + float y1 = center_old_y + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS; + if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) + y0 = Y_MIN_POS_FOR_BED_CALIBRATION; + if (y1 > Y_MAX_POS) + y1 = Y_MAX_POS; + + // Search in the Y direction along a cross. + enable_z_endstop(false); + go_xy(current_position[X_AXIS], y0, homing_feedrate[X_AXIS] / 60.f); + if (lift_z_on_min_y) { + // The first row of points are very close to the end stop. + // Lift the sensor to disengage the trigger. This is necessary because of the sensor hysteresis. + go_xyz(current_position[X_AXIS], y0, current_position[Z_AXIS]+1.5f, homing_feedrate[Z_AXIS] / 60.f); + // and go back. + go_xyz(current_position[X_AXIS], y0, current_position[Z_AXIS], homing_feedrate[Z_AXIS] / 60.f); + } + if (lift_z_on_min_y && (READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) { + // Already triggering before we started the move. + // Shift the trigger point slightly outwards. + // a = current_position[Y_AXIS] - 1.5f; + a = current_position[Y_AXIS]; + } else { + enable_z_endstop(true); + go_xy(current_position[X_AXIS], y1, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + current_position[Y_AXIS] = center_old_y; + goto canceled; + } + a = current_position[Y_AXIS]; + } + enable_z_endstop(false); + go_xy(current_position[X_AXIS], y1, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(current_position[X_AXIS], y0, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + current_position[Y_AXIS] = center_old_y; + goto canceled; + } + b = current_position[Y_AXIS]; + if (b - a < MIN_BED_SENSOR_POINT_RESPONSE_DMR) { + // We force the calibration routine to move the Z axis slightly down to make the response more pronounced. + if (verbosity_level >= 5) { + SERIAL_ECHOPGM("Point height too small: "); + SERIAL_ECHO(b - a); + SERIAL_ECHOLNPGM(""); + } + if (b - a < 0.5f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { + // Don't use the new Y value. + current_position[Y_AXIS] = center_old_y; + goto canceled; + } else { + // Use the new value, but force the Z axis to go a bit lower. + point_small = true; + } + } + if (verbosity_level >= 5) { + debug_output_point(PSTR("top" ), current_position[X_AXIS], a, current_position[Z_AXIS]); + debug_output_point(PSTR("bottom"), current_position[X_AXIS], b, current_position[Z_AXIS]); + } + + // Go to the center. + enable_z_endstop(false); + current_position[Y_AXIS] = 0.5f * (a + b); + go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + } + + // If point is small but not too small, then force the Z axis to be lowered a bit, + // but use the new value. This is important when the initial position was off in one axis, + // for example if the initial calibration was shifted in the Y axis systematically. + // Then this first step will center. + return ! point_small; + +canceled: + // Go back to the center. + enable_z_endstop(false); + go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + return false; +} + +// Searching the front points, where one cannot move the sensor head in front of the sensor point. +// Searching in a zig-zag movement in a plane for the maximum width of the response. +// This function may set the current_position[Y_AXIS] below Y_MIN_POS, if the function succeeded. +// If this function failed, the Y coordinate will never be outside the working space. +#define IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS (4.f) +#define IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y (0.1f) +inline bool improve_bed_induction_sensor_point3(int verbosity_level) +{ + float center_old_x = current_position[X_AXIS]; + float center_old_y = current_position[Y_AXIS]; + float a, b; + bool result = true; + + if (verbosity_level >= 20) MYSERIAL.println("Improve bed induction sensor point3"); + // Was the sensor point detected too far in the minus Y axis? + // If yes, the center of the induction point cannot be reached by the machine. + { + float x0 = center_old_x - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float x1 = center_old_x + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float y0 = center_old_y - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float y1 = center_old_y + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float y = y0; + + if (x0 < X_MIN_POS) + x0 = X_MIN_POS; + if (x1 > X_MAX_POS) + x1 = X_MAX_POS; + if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) + y0 = Y_MIN_POS_FOR_BED_CALIBRATION; + if (y1 > Y_MAX_POS) + y1 = Y_MAX_POS; + + if (verbosity_level >= 20) { + SERIAL_ECHOPGM("Initial position: "); + SERIAL_ECHO(center_old_x); + SERIAL_ECHOPGM(", "); + SERIAL_ECHO(center_old_y); + SERIAL_ECHOLNPGM(""); + } + + // Search in the positive Y direction, until a maximum diameter is found. + // (the next diameter is smaller than the current one.) + float dmax = 0.f; + float xmax1 = 0.f; + float xmax2 = 0.f; + for (y = y0; y < y1; y += IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { + enable_z_endstop(false); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + continue; + // SERIAL_PROTOCOLPGM("Failed 1\n"); + // current_position[X_AXIS] = center_old_x; + // goto canceled; + } + a = current_position[X_AXIS]; + enable_z_endstop(false); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + continue; + // SERIAL_PROTOCOLPGM("Failed 2\n"); + // current_position[X_AXIS] = center_old_x; + // goto canceled; + } + b = current_position[X_AXIS]; + if (verbosity_level >= 5) { + debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); + debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); + } + float d = b - a; + if (d > dmax) { + xmax1 = 0.5f * (a + b); + dmax = d; + } else if (dmax > 0.) { + y0 = y - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y; + break; + } + } + if (dmax == 0.) { + if (verbosity_level > 0) + SERIAL_PROTOCOLPGM("failed - not found\n"); + current_position[X_AXIS] = center_old_x; + current_position[Y_AXIS] = center_old_y; + goto canceled; + } + + { + // Find the positive Y hit. This gives the extreme Y value for the search of the maximum diameter in the -Y direction. + enable_z_endstop(false); + go_xy(xmax1, y0 + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(xmax1, max(y0 - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, Y_MIN_POS_FOR_BED_CALIBRATION), homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + current_position[Y_AXIS] = center_old_y; + goto canceled; + } + if (verbosity_level >= 5) + debug_output_point(PSTR("top" ), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); + y1 = current_position[Y_AXIS]; + } + + if (y1 <= y0) { + // Either the induction sensor is too high, or the induction sensor target is out of reach. + current_position[Y_AXIS] = center_old_y; + goto canceled; + } + + // Search in the negative Y direction, until a maximum diameter is found. + dmax = 0.f; + // if (y0 + 1.f < y1) + // y1 = y0 + 1.f; + for (y = y1; y >= y0; y -= IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { + enable_z_endstop(false); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + continue; + /* + current_position[X_AXIS] = center_old_x; + SERIAL_PROTOCOLPGM("Failed 3\n"); + goto canceled; + */ + } + a = current_position[X_AXIS]; + enable_z_endstop(false); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + continue; + /* + current_position[X_AXIS] = center_old_x; + SERIAL_PROTOCOLPGM("Failed 4\n"); + goto canceled; + */ + } + b = current_position[X_AXIS]; + if (verbosity_level >= 5) { + debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); + debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); + } + float d = b - a; + if (d > dmax) { + xmax2 = 0.5f * (a + b); + dmax = d; + } else if (dmax > 0.) { + y1 = y + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y; + break; + } + } + float xmax, ymax; + if (dmax == 0.f) { + // Only the hit in the positive direction found. + xmax = xmax1; + ymax = y0; + } else { + // Both positive and negative directions found. + xmax = xmax2; + ymax = 0.5f * (y0 + y1); + for (; y >= y0; y -= IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { + enable_z_endstop(false); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + continue; + /* + current_position[X_AXIS] = center_old_x; + SERIAL_PROTOCOLPGM("Failed 3\n"); + goto canceled; + */ + } + a = current_position[X_AXIS]; + enable_z_endstop(false); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + continue; + /* + current_position[X_AXIS] = center_old_x; + SERIAL_PROTOCOLPGM("Failed 4\n"); + goto canceled; + */ + } + b = current_position[X_AXIS]; + if (verbosity_level >= 5) { + debug_output_point(PSTR("left" ), a, current_position[Y_AXIS], current_position[Z_AXIS]); + debug_output_point(PSTR("right"), b, current_position[Y_AXIS], current_position[Z_AXIS]); + } + float d = b - a; + if (d > dmax) { + xmax = 0.5f * (a + b); + ymax = y; + dmax = d; + } + } + } + + { + // Compare the distance in the Y+ direction with the diameter in the X direction. + // Find the positive Y hit once again, this time along the Y axis going through the X point with the highest diameter. + enable_z_endstop(false); + go_xy(xmax, ymax + IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(xmax, max(ymax - IMPROVE_BED_INDUCTION_SENSOR_SEARCH_RADIUS, Y_MIN_POS_FOR_BED_CALIBRATION), homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (! endstop_z_hit_on_purpose()) { + current_position[Y_AXIS] = center_old_y; + goto canceled; + } + if (verbosity_level >= 5) + debug_output_point(PSTR("top" ), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); + if (current_position[Y_AXIS] - Y_MIN_POS_FOR_BED_CALIBRATION < 0.5f * dmax) { + // Probably not even a half circle was detected. The induction point is likely too far in the minus Y direction. + // First verify, if the measurement has been done at a sufficient height. If no, lower the Z axis a bit. + if (current_position[Y_AXIS] < ymax || dmax < 0.5f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { + if (verbosity_level >= 5) { + SERIAL_ECHOPGM("Partial point diameter too small: "); + SERIAL_ECHO(dmax); + SERIAL_ECHOLNPGM(""); + } + result = false; + } else { + // Estimate the circle radius from the maximum diameter and height: + float h = current_position[Y_AXIS] - ymax; + float r = dmax * dmax / (8.f * h) + 0.5f * h; + if (r < 0.8f * MIN_BED_SENSOR_POINT_RESPONSE_DMR) { + if (verbosity_level >= 5) { + SERIAL_ECHOPGM("Partial point estimated radius too small: "); + SERIAL_ECHO(r); + SERIAL_ECHOPGM(", dmax:"); + SERIAL_ECHO(dmax); + SERIAL_ECHOPGM(", h:"); + SERIAL_ECHO(h); + SERIAL_ECHOLNPGM(""); + } + result = false; + } else { + // The point may end up outside of the machine working space. + // That is all right as it helps to improve the accuracy of the measurement point + // due to averaging. + // For the y correction, use an average of dmax/2 and the estimated radius. + r = 0.5f * (0.5f * dmax + r); + ymax = current_position[Y_AXIS] - r; + } + } + } else { + // If the diameter of the detected spot was smaller than a minimum allowed, + // the induction sensor is probably too high. Returning false will force + // the sensor to be lowered a tiny bit. + result = xmax >= MIN_BED_SENSOR_POINT_RESPONSE_DMR; + if (y0 > Y_MIN_POS_FOR_BED_CALIBRATION + 0.2f) + // Only in case both left and right y tangents are known, use them. + // If y0 is close to the bed edge, it may not be symmetric to the right tangent. + ymax = 0.5f * ymax + 0.25f * (y0 + y1); + } + } + + // Go to the center. + enable_z_endstop(false); + current_position[X_AXIS] = xmax; + current_position[Y_AXIS] = ymax; + if (verbosity_level >= 20) { + SERIAL_ECHOPGM("Adjusted position: "); + SERIAL_ECHO(current_position[X_AXIS]); + SERIAL_ECHOPGM(", "); + SERIAL_ECHO(current_position[Y_AXIS]); + SERIAL_ECHOLNPGM(""); + } + + // Don't clamp current_position[Y_AXIS], because the out-of-reach Y coordinate may actually be true. + // Only clamp the coordinate to go. + go_xy(current_position[X_AXIS], max(Y_MIN_POS, current_position[Y_AXIS]), homing_feedrate[X_AXIS] / 60.f); + // delay_keep_alive(3000); + } + + if (result) + return true; + // otherwise clamp the Y coordinate + +canceled: + // Go back to the center. + enable_z_endstop(false); + if (current_position[Y_AXIS] < Y_MIN_POS) + current_position[Y_AXIS] = Y_MIN_POS; + go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); + return false; +} + +// Scan the mesh bed induction points one by one by a left-right zig-zag movement, +// write the trigger coordinates to the serial line. +// Useful for visualizing the behavior of the bed induction detector. +inline void scan_bed_induction_sensor_point() +{ + float center_old_x = current_position[X_AXIS]; + float center_old_y = current_position[Y_AXIS]; + float x0 = center_old_x - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float x1 = center_old_x + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float y0 = center_old_y - IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float y1 = center_old_y + IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_RADIUS; + float y = y0; + + if (x0 < X_MIN_POS) + x0 = X_MIN_POS; + if (x1 > X_MAX_POS) + x1 = X_MAX_POS; + if (y0 < Y_MIN_POS_FOR_BED_CALIBRATION) + y0 = Y_MIN_POS_FOR_BED_CALIBRATION; + if (y1 > Y_MAX_POS) + y1 = Y_MAX_POS; + + for (float y = y0; y < y1; y += IMPROVE_BED_INDUCTION_SENSOR_POINT3_SEARCH_STEP_FINE_Y) { + enable_z_endstop(false); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (endstop_z_hit_on_purpose()) + debug_output_point(PSTR("left" ), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); + enable_z_endstop(false); + go_xy(x1, y, homing_feedrate[X_AXIS] / 60.f); + enable_z_endstop(true); + go_xy(x0, y, homing_feedrate[X_AXIS] / 60.f); + update_current_position_xyz(); + if (endstop_z_hit_on_purpose()) + debug_output_point(PSTR("right"), current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS]); + } + + enable_z_endstop(false); + current_position[X_AXIS] = center_old_x; + current_position[Y_AXIS] = center_old_y; + go_xy(current_position[X_AXIS], current_position[Y_AXIS], homing_feedrate[X_AXIS] / 60.f); +} + +#define MESH_BED_CALIBRATION_SHOW_LCD + +BedSkewOffsetDetectionResultType find_bed_offset_and_skew(int8_t verbosity_level, uint8_t &too_far_mask) +{ + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + // Reusing the z_values memory for the measurement cache. + // 7x7=49 floats, good for 16 (x,y,z) vectors. + float *pts = &mbl.z_values[0][0]; + float *vec_x = pts + 2 * 4; + float *vec_y = vec_x + 2; + float *cntr = vec_y + 2; + memset(pts, 0, sizeof(float) * 7 * 7); + uint8_t iteration = 0; + BedSkewOffsetDetectionResultType result; + +// SERIAL_ECHOLNPGM("find_bed_offset_and_skew verbosity level: "); +// SERIAL_ECHO(int(verbosity_level)); +// SERIAL_ECHOPGM(""); + + while (iteration < 3) { + + SERIAL_ECHOPGM("Iteration: "); + MYSERIAL.println(int(iteration + 1)); + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM("Vectors: "); + + SERIAL_ECHOPGM("vec_x[0]:"); + MYSERIAL.print(vec_x[0], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("vec_x[1]:"); + MYSERIAL.print(vec_x[1], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("vec_y[0]:"); + MYSERIAL.print(vec_y[0], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("vec_y[1]:"); + MYSERIAL.print(vec_y[1], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("cntr[0]:"); + MYSERIAL.print(cntr[0], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("cntr[1]:"); + MYSERIAL.print(cntr[1], 5); + SERIAL_ECHOLNPGM(""); + } +#ifdef MESH_BED_CALIBRATION_SHOW_LCD + uint8_t next_line; + lcd_display_message_fullscreen_P(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1, next_line); + if (next_line > 3) + next_line = 3; +#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ + + // Collect the rear 2x3 points. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH + FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP * iteration * 0.3; + for (int k = 0; k < 4; ++k) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); +#ifdef MESH_BED_CALIBRATION_SHOW_LCD + lcd_implementation_print_at(0, next_line, k + 1); + lcd_printPGM(MSG_FIND_BED_OFFSET_AND_SKEW_LINE2); + + if (iteration > 0) { + lcd_print_at_PGM(0, next_line + 1, MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION); + lcd_implementation_print(int(iteration + 1)); + } +#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ + float *pt = pts + k * 2; + // Go up to z_initial. + + go_to_current(homing_feedrate[Z_AXIS] / 60.f); + if (verbosity_level >= 20) { + // Go to Y0, wait, then go to Y-4. + current_position[Y_AXIS] = 0.f; + go_to_current(homing_feedrate[X_AXIS] / 60.f); + SERIAL_ECHOLNPGM("At Y0"); + delay_keep_alive(5000); + current_position[Y_AXIS] = Y_MIN_POS; + go_to_current(homing_feedrate[X_AXIS] / 60.f); + SERIAL_ECHOLNPGM("At Y-4"); + delay_keep_alive(5000); + } + // Go to the measurement point position. + //if (iteration == 0) { + current_position[X_AXIS] = pgm_read_float(bed_ref_points_4 + k * 2); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points_4 + k * 2 + 1); + /*} + else { + // if first iteration failed, count corrected point coordinates as initial + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + + current_position[X_AXIS] = vec_x[0] * pgm_read_float(bed_ref_points_4 + k * 2) + vec_y[0] * pgm_read_float(bed_ref_points_4 + k * 2 + 1) + cntr[0]; + current_position[Y_AXIS] = vec_x[1] * pgm_read_float(bed_ref_points_4 + k * 2) + vec_y[1] * pgm_read_float(bed_ref_points_4 + k * 2 + 1) + cntr[1]; + + // The calibration points are very close to the min Y. + if (current_position[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION) + current_position[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; + + }*/ + if (verbosity_level >= 20) { + SERIAL_ECHOPGM("current_position[X_AXIS]:"); + MYSERIAL.print(current_position[X_AXIS], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("current_position[Y_AXIS]:"); + MYSERIAL.print(current_position[Y_AXIS], 5); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("current_position[Z_AXIS]:"); + MYSERIAL.print(current_position[Z_AXIS], 5); + SERIAL_ECHOLNPGM(""); + } + + + go_to_current(homing_feedrate[X_AXIS] / 60.f); + if (verbosity_level >= 10) + delay_keep_alive(3000); + if (!find_bed_induction_sensor_point_xy(verbosity_level)) + return BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; +#if 1 + + if (k == 0) { + // Improve the position of the 1st row sensor points by a zig-zag movement. + find_bed_induction_sensor_point_z(); + int8_t i = 4; + for (;;) { + if (improve_bed_induction_sensor_point3(verbosity_level)) + break; + if (--i == 0) + return BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; + // Try to move the Z axis down a bit to increase a chance of the sensor to trigger. + current_position[Z_AXIS] -= 0.025f; + enable_endstops(false); + enable_z_endstop(false); + go_to_current(homing_feedrate[Z_AXIS]); + } + if (i == 0) + // not found + return BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; + } +#endif + if (verbosity_level >= 10) + delay_keep_alive(3000); + // Save the detected point position and then clamp the Y coordinate, which may have been estimated + // to lie outside the machine working space. + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM("Measured:"); + MYSERIAL.println(current_position[X_AXIS]); + MYSERIAL.println(current_position[Y_AXIS]); + } + pt[0] = (pt[0] * iteration) / (iteration + 1); + pt[0] += (current_position[X_AXIS]/(iteration + 1)); //count average + pt[1] = (pt[1] * iteration) / (iteration + 1); + pt[1] += (current_position[Y_AXIS] / (iteration + 1)); + + + //pt[0] += current_position[X_AXIS]; + //if(iteration > 0) pt[0] = pt[0] / 2; + + //pt[1] += current_position[Y_AXIS]; + //if (iteration > 0) pt[1] = pt[1] / 2; + + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("pt[0]:"); + MYSERIAL.println(pt[0]); + SERIAL_ECHOPGM("pt[1]:"); + MYSERIAL.println(pt[1]); + } + + if (current_position[Y_AXIS] < Y_MIN_POS) + current_position[Y_AXIS] = Y_MIN_POS; + // Start searching for the other points at 3mm above the last point. + current_position[Z_AXIS] += 3.f + FIND_BED_INDUCTION_SENSOR_POINT_Z_STEP * iteration * 0.3; + //cntr[0] += pt[0]; + //cntr[1] += pt[1]; + if (verbosity_level >= 10 && k == 0) { + // Show the zero. Test, whether the Y motor skipped steps. + current_position[Y_AXIS] = MANUAL_Y_HOME_POS; + go_to_current(homing_feedrate[X_AXIS] / 60.f); + delay_keep_alive(3000); + } + } + + if (verbosity_level >= 20) { + // Test the positions. Are the positions reproducible? Now the calibration is active in the planner. + delay_keep_alive(3000); + for (int8_t mesh_point = 0; mesh_point < 4; ++mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Go to the measurement point. + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + current_position[X_AXIS] = pts[mesh_point * 2]; + current_position[Y_AXIS] = pts[mesh_point * 2 + 1]; + go_to_current(homing_feedrate[X_AXIS] / 60); + delay_keep_alive(3000); + } + } + + if (pts[1] < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) { + too_far_mask |= 1 << 1; //front center point is out of reach + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("WARNING: Front point not reachable. Y coordinate:"); + MYSERIAL.print(pts[1]); + SERIAL_ECHOPGM(" < "); + MYSERIAL.println(Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); + } + + result = calculate_machine_skew_and_offset_LS(pts, 4, bed_ref_points_4, vec_x, vec_y, cntr, verbosity_level); + if (result >= 0) { + world2machine_update(vec_x, vec_y, cntr); +#if 1 + // Fearlessly store the calibration values into the eeprom. + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 0), cntr[0]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 4), cntr[1]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 0), vec_x[0]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 4), vec_x[1]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 0), vec_y[0]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 4), vec_y[1]); +#endif + if (verbosity_level >= 10) { + // Length of the vec_x + float l = sqrt(vec_x[0] * vec_x[0] + vec_x[1] * vec_x[1]); + SERIAL_ECHOLNPGM("X vector length:"); + MYSERIAL.println(l); + + // Length of the vec_y + l = sqrt(vec_y[0] * vec_y[0] + vec_y[1] * vec_y[1]); + SERIAL_ECHOLNPGM("Y vector length:"); + MYSERIAL.println(l); + // Zero point correction + l = sqrt(cntr[0] * cntr[0] + cntr[1] * cntr[1]); + SERIAL_ECHOLNPGM("Zero point correction:"); + MYSERIAL.println(l); + + // vec_x and vec_y shall be nearly perpendicular. + l = vec_x[0] * vec_y[0] + vec_x[1] * vec_y[1]; + SERIAL_ECHOLNPGM("Perpendicularity"); + MYSERIAL.println(fabs(l)); + SERIAL_ECHOLNPGM("Saving bed calibration vectors to EEPROM"); + } + // Correct the current_position to match the transformed coordinate system after world2machine_rotation_and_skew and world2machine_shift were set. + world2machine_update_current(); + + + if (verbosity_level >= 20) { + // Test the positions. Are the positions reproducible? Now the calibration is active in the planner. + delay_keep_alive(3000); + for (int8_t mesh_point = 0; mesh_point < 9; ++mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Go to the measurement point. + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + current_position[X_AXIS] = pgm_read_float(bed_ref_points + mesh_point * 2); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points + mesh_point * 2 + 1); + go_to_current(homing_feedrate[X_AXIS] / 60); + delay_keep_alive(3000); + } + } + return result; + } + if (result == BED_SKEW_OFFSET_DETECTION_FITTING_FAILED && too_far_mask == 2) return result; //if fitting failed and front center point is out of reach, terminate calibration and inform user + iteration++; + } + return result; +} + +BedSkewOffsetDetectionResultType improve_bed_offset_and_skew(int8_t method, int8_t verbosity_level, uint8_t &too_far_mask) +{ + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + // Mask of the first three points. Are they too far? + too_far_mask = 0; + + // Reusing the z_values memory for the measurement cache. + // 7x7=49 floats, good for 16 (x,y,z) vectors. + float *pts = &mbl.z_values[0][0]; + float *vec_x = pts + 2 * 9; + float *vec_y = vec_x + 2; + float *cntr = vec_y + 2; + memset(pts, 0, sizeof(float) * 7 * 7); + + if (verbosity_level >= 10) SERIAL_ECHOLNPGM("Improving bed offset and skew"); + + // Cache the current correction matrix. + world2machine_initialize(); + vec_x[0] = world2machine_rotation_and_skew[0][0]; + vec_x[1] = world2machine_rotation_and_skew[1][0]; + vec_y[0] = world2machine_rotation_and_skew[0][1]; + vec_y[1] = world2machine_rotation_and_skew[1][1]; + cntr[0] = world2machine_shift[0]; + cntr[1] = world2machine_shift[1]; + // and reset the correction matrix, so the planner will not do anything. + world2machine_reset(); + + bool endstops_enabled = enable_endstops(false); + bool endstop_z_enabled = enable_z_endstop(false); + +#ifdef MESH_BED_CALIBRATION_SHOW_LCD + uint8_t next_line; + lcd_display_message_fullscreen_P(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1, next_line); + if (next_line > 3) + next_line = 3; +#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ + + // Collect a matrix of 9x9 points. + BedSkewOffsetDetectionResultType result = BED_SKEW_OFFSET_DETECTION_PERFECT; + for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Print the decrasing ID of the measurement point. +#ifdef MESH_BED_CALIBRATION_SHOW_LCD + lcd_implementation_print_at(0, next_line, mesh_point+1); + lcd_printPGM(MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE2); +#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ + + // Move up. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + enable_endstops(false); + enable_z_endstop(false); + go_to_current(homing_feedrate[Z_AXIS]/60); + if (verbosity_level >= 20) { + // Go to Y0, wait, then go to Y-4. + current_position[Y_AXIS] = 0.f; + go_to_current(homing_feedrate[X_AXIS] / 60.f); + SERIAL_ECHOLNPGM("At Y0"); + delay_keep_alive(5000); + current_position[Y_AXIS] = Y_MIN_POS; + go_to_current(homing_feedrate[X_AXIS] / 60.f); + SERIAL_ECHOLNPGM("At Y_MIN_POS"); + delay_keep_alive(5000); + } + // Go to the measurement point. + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + current_position[X_AXIS] = vec_x[0] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[0] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[0]; + current_position[Y_AXIS] = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; + // The calibration points are very close to the min Y. + if (current_position[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION){ + current_position[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; + if (verbosity_level >= 20) { + SERIAL_ECHOPGM("Calibration point "); + SERIAL_ECHO(mesh_point); + SERIAL_ECHOPGM("lower than Ymin. Y coordinate clamping was used."); + SERIAL_ECHOLNPGM(""); + } + } + go_to_current(homing_feedrate[X_AXIS]/60); + // Find its Z position by running the normal vertical search. + if (verbosity_level >= 10) + delay_keep_alive(3000); + find_bed_induction_sensor_point_z(); + if (verbosity_level >= 10) + delay_keep_alive(3000); + // Try to move the Z axis down a bit to increase a chance of the sensor to trigger. + current_position[Z_AXIS] -= 0.025f; + // Improve the point position by searching its center in a current plane. + int8_t n_errors = 3; + for (int8_t iter = 0; iter < 8; ) { + if (verbosity_level > 20) { + SERIAL_ECHOPGM("Improving bed point "); + SERIAL_ECHO(mesh_point); + SERIAL_ECHOPGM(", iteration "); + SERIAL_ECHO(iter); + SERIAL_ECHOPGM(", z"); + MYSERIAL.print(current_position[Z_AXIS], 5); + SERIAL_ECHOLNPGM(""); + } + bool found = false; + if (mesh_point < 3) { + // Because the sensor cannot move in front of the first row + // of the sensor points, the y position cannot be measured + // by a cross center method. + // Use a zig-zag search for the first row of the points. + found = improve_bed_induction_sensor_point3(verbosity_level); + } else { + switch (method) { + case 0: found = improve_bed_induction_sensor_point(); break; + case 1: found = improve_bed_induction_sensor_point2(mesh_point < 3, verbosity_level); break; + default: break; + } + } + if (found) { + if (iter > 3) { + // Average the last 4 measurements. + pts[mesh_point*2 ] += current_position[X_AXIS]; + pts[mesh_point*2+1] += current_position[Y_AXIS]; + } + if (current_position[Y_AXIS] < Y_MIN_POS) + current_position[Y_AXIS] = Y_MIN_POS; + ++ iter; + } else if (n_errors -- == 0) { + // Give up. + result = BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND; + goto canceled; + } else { + // Try to move the Z axis down a bit to increase a chance of the sensor to trigger. + current_position[Z_AXIS] -= 0.05f; + enable_endstops(false); + enable_z_endstop(false); + go_to_current(homing_feedrate[Z_AXIS]); + if (verbosity_level >= 5) { + SERIAL_ECHOPGM("Improving bed point "); + SERIAL_ECHO(mesh_point); + SERIAL_ECHOPGM(", iteration "); + SERIAL_ECHO(iter); + SERIAL_ECHOPGM(" failed. Lowering z to "); + MYSERIAL.print(current_position[Z_AXIS], 5); + SERIAL_ECHOLNPGM(""); + } + } + } + if (verbosity_level >= 10) + delay_keep_alive(3000); + } + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + // Average the last 4 measurements. + for (int8_t i = 0; i < 18; ++ i) + pts[i] *= (1.f/4.f); + + enable_endstops(false); + enable_z_endstop(false); + + if (verbosity_level >= 5) { + // Test the positions. Are the positions reproducible? + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Go to the measurement point. + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + current_position[X_AXIS] = pts[mesh_point*2]; + current_position[Y_AXIS] = pts[mesh_point*2+1]; + if (verbosity_level >= 10) { + go_to_current(homing_feedrate[X_AXIS]/60); + delay_keep_alive(3000); + } + SERIAL_ECHOPGM("Final measured bed point "); + SERIAL_ECHO(mesh_point); + SERIAL_ECHOPGM(": "); + MYSERIAL.print(current_position[X_AXIS], 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(current_position[Y_AXIS], 5); + SERIAL_ECHOLNPGM(""); + } + } + + { + // First fill in the too_far_mask from the measured points. + for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) + if (pts[mesh_point * 2 + 1] < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) + too_far_mask |= 1 << mesh_point; + result = calculate_machine_skew_and_offset_LS(pts, 9, bed_ref_points, vec_x, vec_y, cntr, verbosity_level); + if (result < 0) { + SERIAL_ECHOLNPGM("Calculation of the machine skew and offset failed."); + goto canceled; + } + // In case of success, update the too_far_mask from the calculated points. + for (uint8_t mesh_point = 0; mesh_point < 3; ++ mesh_point) { + float y = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; + distance_from_min[mesh_point] = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); + if (verbosity_level >= 20) { + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("Distance from min:"); + MYSERIAL.print(distance_from_min[mesh_point]); + SERIAL_ECHOLNPGM(""); + SERIAL_ECHOPGM("y:"); + MYSERIAL.print(y); + SERIAL_ECHOLNPGM(""); + } + if (y < Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH) + too_far_mask |= 1 << mesh_point; + } + } + + world2machine_update(vec_x, vec_y, cntr); +#if 1 + // Fearlessly store the calibration values into the eeprom. + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER+0), cntr [0]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_CENTER+4), cntr [1]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +0), vec_x[0]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_X +4), vec_x[1]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +0), vec_y[0]); + eeprom_update_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y +4), vec_y[1]); +#endif + + // Correct the current_position to match the transformed coordinate system after world2machine_rotation_and_skew and world2machine_shift were set. + world2machine_update_current(); + + enable_endstops(false); + enable_z_endstop(false); + + if (verbosity_level >= 5) { + // Test the positions. Are the positions reproducible? Now the calibration is active in the planner. + delay_keep_alive(3000); + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Go to the measurement point. + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + current_position[X_AXIS] = pgm_read_float(bed_ref_points+mesh_point*2); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points+mesh_point*2+1); + if (verbosity_level >= 10) { + go_to_current(homing_feedrate[X_AXIS]/60); + delay_keep_alive(3000); + } + { + float x, y; + world2machine(current_position[X_AXIS], current_position[Y_AXIS], x, y); + SERIAL_ECHOPGM("Final calculated bed point "); + SERIAL_ECHO(mesh_point); + SERIAL_ECHOPGM(": "); + MYSERIAL.print(x, 5); + SERIAL_ECHOPGM(", "); + MYSERIAL.print(y, 5); + SERIAL_ECHOLNPGM(""); + } + } + } + + // Sample Z heights for the mesh bed leveling. + // In addition, store the results into an eeprom, to be used later for verification of the bed leveling process. + if (! sample_mesh_and_store_reference()) + goto canceled; + + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + return result; + +canceled: + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Print head up. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + go_to_current(homing_feedrate[Z_AXIS]/60); + // Store the identity matrix to EEPROM. + reset_bed_offset_and_skew(); + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); + return result; +} + +void go_home_with_z_lift() +{ + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Go home. + // First move up to a safe height. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + go_to_current(homing_feedrate[Z_AXIS]/60); + // Second move to XY [0, 0]. + current_position[X_AXIS] = X_MIN_POS+0.2; + current_position[Y_AXIS] = Y_MIN_POS+0.2; + // Clamp to the physical coordinates. + world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); + go_to_current(homing_feedrate[X_AXIS]/60); + // Third move up to a safe height. + current_position[Z_AXIS] = Z_MIN_POS; + go_to_current(homing_feedrate[Z_AXIS]/60); +} + +// Sample the 9 points of the bed and store them into the EEPROM as a reference. +// When calling this function, the X, Y, Z axes should be already homed, +// and the world2machine correction matrix should be active. +// Returns false if the reference values are more than 3mm far away. +bool sample_mesh_and_store_reference() +{ + bool endstops_enabled = enable_endstops(false); + bool endstop_z_enabled = enable_z_endstop(false); + + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + +#ifdef MESH_BED_CALIBRATION_SHOW_LCD + uint8_t next_line; + lcd_display_message_fullscreen_P(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1, next_line); + if (next_line > 3) + next_line = 3; + // display "point xx of yy" + lcd_implementation_print_at(0, next_line, 1); + lcd_printPGM(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2); +#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ + + // Sample Z heights for the mesh bed leveling. + // In addition, store the results into an eeprom, to be used later for verification of the bed leveling process. + { + // The first point defines the reference. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + go_to_current(homing_feedrate[Z_AXIS]/60); + current_position[X_AXIS] = pgm_read_float(bed_ref_points); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points+1); + world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); + go_to_current(homing_feedrate[X_AXIS]/60); + memcpy(destination, current_position, sizeof(destination)); + enable_endstops(true); + homeaxis(Z_AXIS); + enable_endstops(false); + find_bed_induction_sensor_point_z(); + mbl.set_z(0, 0, current_position[Z_AXIS]); + } + for (int8_t mesh_point = 1; mesh_point != MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS; ++ mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + // Print the decrasing ID of the measurement point. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + go_to_current(homing_feedrate[Z_AXIS]/60); + current_position[X_AXIS] = pgm_read_float(bed_ref_points+2*mesh_point); + current_position[Y_AXIS] = pgm_read_float(bed_ref_points+2*mesh_point+1); + world2machine_clamp(current_position[X_AXIS], current_position[Y_AXIS]); + go_to_current(homing_feedrate[X_AXIS]/60); +#ifdef MESH_BED_CALIBRATION_SHOW_LCD + // display "point xx of yy" + lcd_implementation_print_at(0, next_line, mesh_point+1); + lcd_printPGM(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2); +#endif /* MESH_BED_CALIBRATION_SHOW_LCD */ + find_bed_induction_sensor_point_z(); + // Get cords of measuring point + int8_t ix = mesh_point % MESH_MEAS_NUM_X_POINTS; + int8_t iy = mesh_point / MESH_MEAS_NUM_X_POINTS; + if (iy & 1) ix = (MESH_MEAS_NUM_X_POINTS - 1) - ix; // Zig zag + mbl.set_z(ix, iy, current_position[Z_AXIS]); + } + { + // Verify the span of the Z values. + float zmin = mbl.z_values[0][0]; + float zmax = zmax; + for (int8_t j = 0; j < 3; ++ j) + for (int8_t i = 0; i < 3; ++ i) { + zmin = min(zmin, mbl.z_values[j][i]); + zmax = min(zmax, mbl.z_values[j][i]); + } + if (zmax - zmin > 3.f) { + // The span of the Z offsets is extreme. Give up. + // Homing failed on some of the points. + SERIAL_PROTOCOLLNPGM("Exreme span of the Z values!"); + return false; + } + } + + // Store the correction values to EEPROM. + // Offsets of the Z heiths of the calibration points from the first point. + // The offsets are saved as 16bit signed int, scaled to tenths of microns. + { + uint16_t addr = EEPROM_BED_CALIBRATION_Z_JITTER; + for (int8_t j = 0; j < 3; ++ j) + for (int8_t i = 0; i < 3; ++ i) { + if (i == 0 && j == 0) + continue; + float dif = mbl.z_values[j][i] - mbl.z_values[0][0]; + int16_t dif_quantized = int16_t(floor(dif * 100.f + 0.5f)); + eeprom_update_word((uint16_t*)addr, *reinterpret_cast(&dif_quantized)); + #if 0 + { + uint16_t z_offset_u = eeprom_read_word((uint16_t*)addr); + float dif2 = *reinterpret_cast(&z_offset_u) * 0.01; + + SERIAL_ECHOPGM("Bed point "); + SERIAL_ECHO(i); + SERIAL_ECHOPGM(","); + SERIAL_ECHO(j); + SERIAL_ECHOPGM(", differences: written "); + MYSERIAL.print(dif, 5); + SERIAL_ECHOPGM(", read: "); + MYSERIAL.print(dif2, 5); + SERIAL_ECHOLNPGM(""); + } + #endif + addr += 2; + } + } + + mbl.upsample_3x3(); + mbl.active = true; + + go_home_with_z_lift(); + + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); + return true; +} + +bool scan_bed_induction_points(int8_t verbosity_level) +{ + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + // Reusing the z_values memory for the measurement cache. + // 7x7=49 floats, good for 16 (x,y,z) vectors. + float *pts = &mbl.z_values[0][0]; + float *vec_x = pts + 2 * 9; + float *vec_y = vec_x + 2; + float *cntr = vec_y + 2; + memset(pts, 0, sizeof(float) * 7 * 7); + + // Cache the current correction matrix. + world2machine_initialize(); + vec_x[0] = world2machine_rotation_and_skew[0][0]; + vec_x[1] = world2machine_rotation_and_skew[1][0]; + vec_y[0] = world2machine_rotation_and_skew[0][1]; + vec_y[1] = world2machine_rotation_and_skew[1][1]; + cntr[0] = world2machine_shift[0]; + cntr[1] = world2machine_shift[1]; + // and reset the correction matrix, so the planner will not do anything. + world2machine_reset(); + + bool endstops_enabled = enable_endstops(false); + bool endstop_z_enabled = enable_z_endstop(false); + + // Collect a matrix of 9x9 points. + for (int8_t mesh_point = 0; mesh_point < 9; ++ mesh_point) { + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + // Move up. + current_position[Z_AXIS] = MESH_HOME_Z_SEARCH; + enable_endstops(false); + enable_z_endstop(false); + go_to_current(homing_feedrate[Z_AXIS]/60); + // Go to the measurement point. + // Use the coorrected coordinate, which is a result of find_bed_offset_and_skew(). + current_position[X_AXIS] = vec_x[0] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[0] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[0]; + current_position[Y_AXIS] = vec_x[1] * pgm_read_float(bed_ref_points+mesh_point*2) + vec_y[1] * pgm_read_float(bed_ref_points+mesh_point*2+1) + cntr[1]; + // The calibration points are very close to the min Y. + if (current_position[Y_AXIS] < Y_MIN_POS_FOR_BED_CALIBRATION) + current_position[Y_AXIS] = Y_MIN_POS_FOR_BED_CALIBRATION; + go_to_current(homing_feedrate[X_AXIS]/60); + find_bed_induction_sensor_point_z(); + scan_bed_induction_sensor_point(); + } + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + enable_endstops(false); + enable_z_endstop(false); + + // Don't let the manage_inactivity() function remove power from the motors. + refresh_cmd_timeout(); + + enable_endstops(endstops_enabled); + enable_z_endstop(endstop_z_enabled); + return true; +} + +// Shift a Z axis by a given delta. +// To replace loading of the babystep correction. +static void shift_z(float delta) +{ + plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] - delta, current_position[E_AXIS], homing_feedrate[Z_AXIS]/40, active_extruder); + st_synchronize(); + plan_set_z_position(current_position[Z_AXIS]); +} + +#define BABYSTEP_LOADZ_BY_PLANNER + +// Number of baby steps applied +static int babystepLoadZ = 0; + +void babystep_apply() +{ + // Apply Z height correction aka baby stepping before mesh bed leveling gets activated. + if(calibration_status() < CALIBRATION_STATUS_LIVE_ADJUST) + { + check_babystep(); //checking if babystep is in allowed range, otherwise setting babystep to 0 + + // End of G80: Apply the baby stepping value. + EEPROM_read_B(EEPROM_BABYSTEP_Z,&babystepLoadZ); + + #if 0 + SERIAL_ECHO("Z baby step: "); + SERIAL_ECHO(babystepLoadZ); + SERIAL_ECHO(", current Z: "); + SERIAL_ECHO(current_position[Z_AXIS]); + SERIAL_ECHO("correction: "); + SERIAL_ECHO(float(babystepLoadZ) / float(axis_steps_per_unit[Z_AXIS])); + SERIAL_ECHOLN(""); + #endif + #ifdef BABYSTEP_LOADZ_BY_PLANNER + shift_z(- float(babystepLoadZ) / float(axis_steps_per_unit[Z_AXIS])); + #else + babystepsTodoZadd(babystepLoadZ); + #endif /* BABYSTEP_LOADZ_BY_PLANNER */ + } +} + +void babystep_undo() +{ +#ifdef BABYSTEP_LOADZ_BY_PLANNER + shift_z(float(babystepLoadZ) / float(axis_steps_per_unit[Z_AXIS])); +#else + babystepsTodoZsubtract(babystepLoadZ); +#endif /* BABYSTEP_LOADZ_BY_PLANNER */ + babystepLoadZ = 0; +} + +void babystep_reset() +{ + babystepLoadZ = 0; +} + +void count_xyz_details() { + float a1, a2; + float cntr[2] = { + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 0)), + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 4)) + }; + float vec_x[2] = { + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 0)), + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_X + 4)) + }; + float vec_y[2] = { + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 0)), + eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_VEC_Y + 4)) + }; + a2 = -1 * asin(vec_y[0] / MACHINE_AXIS_SCALE_Y); +/* SERIAL_ECHOLNPGM("par:"); + MYSERIAL.println(vec_y[0]); + MYSERIAL.println(a2);*/ + a1 = asin(vec_x[1] / MACHINE_AXIS_SCALE_X); +/* MYSERIAL.println(vec_x[1]); + MYSERIAL.println(a1);*/ + angleDiff = fabs(a2 - a1); + for (uint8_t mesh_point = 0; mesh_point < 3; ++mesh_point) { + float y = vec_x[1] * pgm_read_float(bed_ref_points + mesh_point * 2) + vec_y[1] * pgm_read_float(bed_ref_points + mesh_point * 2 + 1) + cntr[1]; + distance_from_min[mesh_point] = (y - Y_MIN_POS_CALIBRATION_POINT_OUT_OF_REACH); + } +} + +/*countDistanceFromMin() { + +}*/ + + + diff --git a/Firmware/mesh_bed_calibration.h b/Firmware/mesh_bed_calibration.h index ee18087cc..5fe7dcece 100644 --- a/Firmware/mesh_bed_calibration.h +++ b/Firmware/mesh_bed_calibration.h @@ -1,186 +1,186 @@ -#ifndef MESH_BED_CALIBRATION_H -#define MESH_BED_CALIBRATION_H - -// Exact positions of the print head above the bed reference points, in the world coordinates. -// The world coordinates match the machine coordinates only in case, when the machine -// is built properly, the end stops are at the correct positions and the axes are perpendicular. -extern const float bed_ref_points[] PROGMEM; - -extern const float bed_skew_angle_mild; -extern const float bed_skew_angle_extreme; - -// Is the world2machine correction activated? -enum World2MachineCorrectionMode -{ - WORLD2MACHINE_CORRECTION_NONE = 0, - WORLD2MACHINE_CORRECTION_SHIFT = 1, - WORLD2MACHINE_CORRECTION_SKEW = 2, -}; -extern uint8_t world2machine_correction_mode; -// 2x2 transformation matrix from the world coordinates to the machine coordinates. -// Corrects for the rotation and skew of the machine axes. -// Used by the planner's plan_buffer_line() and plan_set_position(). -extern float world2machine_rotation_and_skew[2][2]; -extern float world2machine_rotation_and_skew_inv[2][2]; -// Shift of the machine zero point, in the machine coordinates. -extern float world2machine_shift[2]; - -// Resets the transformation to identity. -extern void world2machine_reset(); -// Resets the transformation to identity and update current_position[X,Y] from the servos. -extern void world2machine_revert_to_uncorrected(); -// Loads the transformation from the EEPROM, if available. -extern void world2machine_initialize(); - -// When switching from absolute to corrected coordinates, -// this will apply an inverse world2machine transformation -// to current_position[x,y]. -extern void world2machine_update_current(); - -inline void world2machine(const float &x, const float &y, float &out_x, float &out_y) -{ - if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { - // No correction. - out_x = x; - out_y = y; - } else { - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { - // Firs the skew & rotation correction. - out_x = world2machine_rotation_and_skew[0][0] * x + world2machine_rotation_and_skew[0][1] * y; - out_y = world2machine_rotation_and_skew[1][0] * x + world2machine_rotation_and_skew[1][1] * y; - } - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { - // Then add the offset. - out_x += world2machine_shift[0]; - out_y += world2machine_shift[1]; - } - } -} - -inline void world2machine(float &x, float &y) -{ - if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { - // No correction. - } else { - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { - // Firs the skew & rotation correction. - float out_x = world2machine_rotation_and_skew[0][0] * x + world2machine_rotation_and_skew[0][1] * y; - float out_y = world2machine_rotation_and_skew[1][0] * x + world2machine_rotation_and_skew[1][1] * y; - x = out_x; - y = out_y; - } - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { - // Then add the offset. - x += world2machine_shift[0]; - y += world2machine_shift[1]; - } - } -} - -inline void machine2world(float x, float y, float &out_x, float &out_y) -{ - if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { - // No correction. - out_x = x; - out_y = y; - } else { - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { - // Then add the offset. - x -= world2machine_shift[0]; - y -= world2machine_shift[1]; - } - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { - // Firs the skew & rotation correction. - out_x = world2machine_rotation_and_skew_inv[0][0] * x + world2machine_rotation_and_skew_inv[0][1] * y; - out_y = world2machine_rotation_and_skew_inv[1][0] * x + world2machine_rotation_and_skew_inv[1][1] * y; - } - } -} - -inline void machine2world(float &x, float &y) -{ - if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { - // No correction. - } else { - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { - // Then add the offset. - x -= world2machine_shift[0]; - y -= world2machine_shift[1]; - } - if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { - // Firs the skew & rotation correction. - float out_x = world2machine_rotation_and_skew_inv[0][0] * x + world2machine_rotation_and_skew_inv[0][1] * y; - float out_y = world2machine_rotation_and_skew_inv[1][0] * x + world2machine_rotation_and_skew_inv[1][1] * y; - x = out_x; - y = out_y; - } - } -} - -inline bool world2machine_clamp(float &x, float &y) -{ - bool clamped = false; - float tmpx, tmpy; - world2machine(x, y, tmpx, tmpy); - if (tmpx < X_MIN_POS) { - tmpx = X_MIN_POS; - clamped = true; - } - if (tmpy < Y_MIN_POS) { - tmpy = Y_MIN_POS; - clamped = true; - } - if (tmpx > X_MAX_POS) { - tmpx = X_MAX_POS; - clamped = true; - } - if (tmpy > Y_MAX_POS) { - tmpy = Y_MAX_POS; - clamped = true; - } - if (clamped) - machine2world(tmpx, tmpy, x, y); - return clamped; -} - -extern bool find_bed_induction_sensor_point_z(float minimum_z = -10.f, uint8_t n_iter = 3, int verbosity_level = 0); -extern bool find_bed_induction_sensor_point_xy(int verbosity_level = 0); -extern void go_home_with_z_lift(); - -// Positive or zero: ok -// Negative: failed -enum BedSkewOffsetDetectionResultType { - // Detection failed, some point was not found. - BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND = -1, - BED_SKEW_OFFSET_DETECTION_FITTING_FAILED = -2, - - // Detection finished with success. - BED_SKEW_OFFSET_DETECTION_PERFECT = 0, - BED_SKEW_OFFSET_DETECTION_SKEW_MILD = 1, - BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME = 2 -}; - -extern BedSkewOffsetDetectionResultType find_bed_offset_and_skew(int8_t verbosity_level, uint8_t &too_far_mask); -extern BedSkewOffsetDetectionResultType improve_bed_offset_and_skew(int8_t method, int8_t verbosity_level, uint8_t &too_far_mask); - -extern bool sample_mesh_and_store_reference(); - -extern void reset_bed_offset_and_skew(); -extern bool is_bed_z_jitter_data_valid(); - -// Scan the mesh bed induction points one by one by a left-right zig-zag movement, -// write the trigger coordinates to the serial line. -// Useful for visualizing the behavior of the bed induction detector. -extern bool scan_bed_induction_points(int8_t verbosity_level); - -// Apply Z babystep value from the EEPROM through the planner. -extern void babystep_apply(); - -// Undo the current Z babystep value. -extern void babystep_undo(); - -// Reset the current babystep counter without moving the axes. -extern void babystep_reset(); -extern void count_xyz_details(); - -#endif /* MESH_BED_CALIBRATION_H */ +#ifndef MESH_BED_CALIBRATION_H +#define MESH_BED_CALIBRATION_H + +// Exact positions of the print head above the bed reference points, in the world coordinates. +// The world coordinates match the machine coordinates only in case, when the machine +// is built properly, the end stops are at the correct positions and the axes are perpendicular. +extern const float bed_ref_points[] PROGMEM; + +extern const float bed_skew_angle_mild; +extern const float bed_skew_angle_extreme; + +// Is the world2machine correction activated? +enum World2MachineCorrectionMode +{ + WORLD2MACHINE_CORRECTION_NONE = 0, + WORLD2MACHINE_CORRECTION_SHIFT = 1, + WORLD2MACHINE_CORRECTION_SKEW = 2, +}; +extern uint8_t world2machine_correction_mode; +// 2x2 transformation matrix from the world coordinates to the machine coordinates. +// Corrects for the rotation and skew of the machine axes. +// Used by the planner's plan_buffer_line() and plan_set_position(). +extern float world2machine_rotation_and_skew[2][2]; +extern float world2machine_rotation_and_skew_inv[2][2]; +// Shift of the machine zero point, in the machine coordinates. +extern float world2machine_shift[2]; + +// Resets the transformation to identity. +extern void world2machine_reset(); +// Resets the transformation to identity and update current_position[X,Y] from the servos. +extern void world2machine_revert_to_uncorrected(); +// Loads the transformation from the EEPROM, if available. +extern void world2machine_initialize(); + +// When switching from absolute to corrected coordinates, +// this will apply an inverse world2machine transformation +// to current_position[x,y]. +extern void world2machine_update_current(); + +inline void world2machine(const float &x, const float &y, float &out_x, float &out_y) +{ + if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { + // No correction. + out_x = x; + out_y = y; + } else { + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { + // Firs the skew & rotation correction. + out_x = world2machine_rotation_and_skew[0][0] * x + world2machine_rotation_and_skew[0][1] * y; + out_y = world2machine_rotation_and_skew[1][0] * x + world2machine_rotation_and_skew[1][1] * y; + } + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { + // Then add the offset. + out_x += world2machine_shift[0]; + out_y += world2machine_shift[1]; + } + } +} + +inline void world2machine(float &x, float &y) +{ + if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { + // No correction. + } else { + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { + // Firs the skew & rotation correction. + float out_x = world2machine_rotation_and_skew[0][0] * x + world2machine_rotation_and_skew[0][1] * y; + float out_y = world2machine_rotation_and_skew[1][0] * x + world2machine_rotation_and_skew[1][1] * y; + x = out_x; + y = out_y; + } + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { + // Then add the offset. + x += world2machine_shift[0]; + y += world2machine_shift[1]; + } + } +} + +inline void machine2world(float x, float y, float &out_x, float &out_y) +{ + if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { + // No correction. + out_x = x; + out_y = y; + } else { + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { + // Then add the offset. + x -= world2machine_shift[0]; + y -= world2machine_shift[1]; + } + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { + // Firs the skew & rotation correction. + out_x = world2machine_rotation_and_skew_inv[0][0] * x + world2machine_rotation_and_skew_inv[0][1] * y; + out_y = world2machine_rotation_and_skew_inv[1][0] * x + world2machine_rotation_and_skew_inv[1][1] * y; + } + } +} + +inline void machine2world(float &x, float &y) +{ + if (world2machine_correction_mode == WORLD2MACHINE_CORRECTION_NONE) { + // No correction. + } else { + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SHIFT) { + // Then add the offset. + x -= world2machine_shift[0]; + y -= world2machine_shift[1]; + } + if (world2machine_correction_mode & WORLD2MACHINE_CORRECTION_SKEW) { + // Firs the skew & rotation correction. + float out_x = world2machine_rotation_and_skew_inv[0][0] * x + world2machine_rotation_and_skew_inv[0][1] * y; + float out_y = world2machine_rotation_and_skew_inv[1][0] * x + world2machine_rotation_and_skew_inv[1][1] * y; + x = out_x; + y = out_y; + } + } +} + +inline bool world2machine_clamp(float &x, float &y) +{ + bool clamped = false; + float tmpx, tmpy; + world2machine(x, y, tmpx, tmpy); + if (tmpx < X_MIN_POS) { + tmpx = X_MIN_POS; + clamped = true; + } + if (tmpy < Y_MIN_POS) { + tmpy = Y_MIN_POS; + clamped = true; + } + if (tmpx > X_MAX_POS) { + tmpx = X_MAX_POS; + clamped = true; + } + if (tmpy > Y_MAX_POS) { + tmpy = Y_MAX_POS; + clamped = true; + } + if (clamped) + machine2world(tmpx, tmpy, x, y); + return clamped; +} + +extern bool find_bed_induction_sensor_point_z(float minimum_z = -10.f, uint8_t n_iter = 3, int verbosity_level = 0); +extern bool find_bed_induction_sensor_point_xy(int verbosity_level = 0); +extern void go_home_with_z_lift(); + +// Positive or zero: ok +// Negative: failed +enum BedSkewOffsetDetectionResultType { + // Detection failed, some point was not found. + BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND = -1, + BED_SKEW_OFFSET_DETECTION_FITTING_FAILED = -2, + + // Detection finished with success. + BED_SKEW_OFFSET_DETECTION_PERFECT = 0, + BED_SKEW_OFFSET_DETECTION_SKEW_MILD = 1, + BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME = 2 +}; + +extern BedSkewOffsetDetectionResultType find_bed_offset_and_skew(int8_t verbosity_level, uint8_t &too_far_mask); +extern BedSkewOffsetDetectionResultType improve_bed_offset_and_skew(int8_t method, int8_t verbosity_level, uint8_t &too_far_mask); + +extern bool sample_mesh_and_store_reference(); + +extern void reset_bed_offset_and_skew(); +extern bool is_bed_z_jitter_data_valid(); + +// Scan the mesh bed induction points one by one by a left-right zig-zag movement, +// write the trigger coordinates to the serial line. +// Useful for visualizing the behavior of the bed induction detector. +extern bool scan_bed_induction_points(int8_t verbosity_level); + +// Apply Z babystep value from the EEPROM through the planner. +extern void babystep_apply(); + +// Undo the current Z babystep value. +extern void babystep_undo(); + +// Reset the current babystep counter without moving the axes. +extern void babystep_reset(); +extern void count_xyz_details(); + +#endif /* MESH_BED_CALIBRATION_H */ diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 754262192..0eae8ded4 100644 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -1,1986 +1,1989 @@ -/* - temperature.c - temperature control - Part of Marlin - - Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - - 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 . - */ - -/* - This firmware is a mashup between Sprinter and grbl. - (https://github.com/kliment/Sprinter) - (https://github.com/simen/grbl/tree) - - It has preliminary support for Matthew Roberts advance algorithm - http://reprap.org/pipermail/reprap-dev/2011-May/003323.html - - */ - - -#include "Marlin.h" -#include "ultralcd.h" -#include "temperature.h" -#include "watchdog.h" -#include "cardreader.h" - -#include "Sd2PinMap.h" - - -//=========================================================================== -//=============================public variables============================ -//=========================================================================== -int target_temperature[EXTRUDERS] = { 0 }; -int target_temperature_bed = 0; -int current_temperature_raw[EXTRUDERS] = { 0 }; -float current_temperature[EXTRUDERS] = { 0.0 }; -int current_temperature_bed_raw = 0; -float current_temperature_bed = 0.0; -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - int redundant_temperature_raw = 0; - float redundant_temperature = 0.0; -#endif - - -#ifdef PIDTEMP - float _Kp, _Ki, _Kd; - int pid_cycle, pid_number_of_cycles; - bool pid_tuning_finished = false; - float Kp=DEFAULT_Kp; - float Ki=(DEFAULT_Ki*PID_dT); - float Kd=(DEFAULT_Kd/PID_dT); - #ifdef PID_ADD_EXTRUSION_RATE - float Kc=DEFAULT_Kc; - #endif -#endif //PIDTEMP - -#ifdef PIDTEMPBED - float bedKp=DEFAULT_bedKp; - float bedKi=(DEFAULT_bedKi*PID_dT); - float bedKd=(DEFAULT_bedKd/PID_dT); -#endif //PIDTEMPBED - -#ifdef FAN_SOFT_PWM - unsigned char fanSpeedSoftPwm; -#endif - -unsigned char soft_pwm_bed; - -#ifdef BABYSTEPPING - volatile int babystepsTodo[3]={0,0,0}; -#endif - -#ifdef FILAMENT_SENSOR - int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only -#endif -//=========================================================================== -//=============================private variables============================ -//=========================================================================== -static volatile bool temp_meas_ready = false; - -#ifdef PIDTEMP - //static cannot be external: - static float temp_iState[EXTRUDERS] = { 0 }; - static float temp_dState[EXTRUDERS] = { 0 }; - static float pTerm[EXTRUDERS]; - static float iTerm[EXTRUDERS]; - static float dTerm[EXTRUDERS]; - //int output; - static float pid_error[EXTRUDERS]; - static float temp_iState_min[EXTRUDERS]; - static float temp_iState_max[EXTRUDERS]; - // static float pid_input[EXTRUDERS]; - // static float pid_output[EXTRUDERS]; - static bool pid_reset[EXTRUDERS]; -#endif //PIDTEMP -#ifdef PIDTEMPBED - //static cannot be external: - static float temp_iState_bed = { 0 }; - static float temp_dState_bed = { 0 }; - static float pTerm_bed; - static float iTerm_bed; - static float dTerm_bed; - //int output; - static float pid_error_bed; - static float temp_iState_min_bed; - static float temp_iState_max_bed; -#else //PIDTEMPBED - static unsigned long previous_millis_bed_heater; -#endif //PIDTEMPBED - static unsigned char soft_pwm[EXTRUDERS]; - -#ifdef FAN_SOFT_PWM - static unsigned char soft_pwm_fan; -#endif -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) - static unsigned long extruder_autofan_last_check; -#endif - -#if EXTRUDERS > 3 - # error Unsupported number of extruders -#elif EXTRUDERS > 2 - # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2, v3 } -#elif EXTRUDERS > 1 - # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2 } -#else - # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1 } -#endif - -// Init min and max temp with extreme values to prevent false errors during startup -static int minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP ); -static int maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP ); -static int minttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS( 0, 0, 0 ); -static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS( 16383, 16383, 16383 ); -#ifdef BED_MINTEMP -static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; -#endif -#ifdef BED_MAXTEMP -static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; -#endif - -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - static void *heater_ttbl_map[2] = {(void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE }; - static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN }; -#else - static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE ); - static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN ); -#endif - -static float analog2temp(int raw, uint8_t e); -static float analog2tempBed(int raw); -static void updateTemperaturesFromRawValues(); - -enum TempRunawayStates -{ - TempRunaway_INACTIVE = 0, - TempRunaway_PREHEAT = 1, - TempRunaway_ACTIVE = 2, -}; - -#ifdef WATCH_TEMP_PERIOD -int watch_start_temp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); -unsigned long watchmillis[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); -#endif //WATCH_TEMP_PERIOD - -#ifndef SOFT_PWM_SCALE -#define SOFT_PWM_SCALE 0 -#endif - -#ifdef FILAMENT_SENSOR - static int meas_shift_index; //used to point to a delayed sample in buffer for filament width sensor -#endif -//=========================================================================== -//============================= functions ============================ -//=========================================================================== - - void PID_autotune(float temp, int extruder, int ncycles) - { - pid_number_of_cycles = ncycles; - pid_tuning_finished = false; - float input = 0.0; - pid_cycle=0; - bool heating = true; - - unsigned long temp_millis = millis(); - unsigned long t1=temp_millis; - unsigned long t2=temp_millis; - long t_high = 0; - long t_low = 0; - - long bias, d; - float Ku, Tu; - float max = 0, min = 10000; - -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) - unsigned long extruder_autofan_last_check = millis(); -#endif - - if ((extruder >= EXTRUDERS) - #if (TEMP_BED_PIN <= -1) - ||(extruder < 0) - #endif - ){ - SERIAL_ECHOLN("PID Autotune failed. Bad extruder number."); - pid_tuning_finished = true; - pid_cycle = 0; - return; - } - - SERIAL_ECHOLN("PID Autotune start"); - - disable_heater(); // switch off all heaters. - - if (extruder<0) - { - soft_pwm_bed = (MAX_BED_POWER)/2; - bias = d = (MAX_BED_POWER)/2; - } - else - { - soft_pwm[extruder] = (PID_MAX)/2; - bias = d = (PID_MAX)/2; - } - - - - - for(;;) { - - if(temp_meas_ready == true) { // temp sample ready - updateTemperaturesFromRawValues(); - - input = (extruder<0)?current_temperature_bed:current_temperature[extruder]; - - max=max(max,input); - min=min(min,input); - - #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) - if(millis() - extruder_autofan_last_check > 2500) { - checkExtruderAutoFans(); - extruder_autofan_last_check = millis(); - } - #endif - - if(heating == true && input > temp) { - if(millis() - t2 > 5000) { - heating=false; - if (extruder<0) - soft_pwm_bed = (bias - d) >> 1; - else - soft_pwm[extruder] = (bias - d) >> 1; - t1=millis(); - t_high=t1 - t2; - max=temp; - } - } - if(heating == false && input < temp) { - if(millis() - t1 > 5000) { - heating=true; - t2=millis(); - t_low=t2 - t1; - if(pid_cycle > 0) { - bias += (d*(t_high - t_low))/(t_low + t_high); - bias = constrain(bias, 20 ,(extruder<0?(MAX_BED_POWER):(PID_MAX))-20); - if(bias > (extruder<0?(MAX_BED_POWER):(PID_MAX))/2) d = (extruder<0?(MAX_BED_POWER):(PID_MAX)) - 1 - bias; - else d = bias; - - SERIAL_PROTOCOLPGM(" bias: "); SERIAL_PROTOCOL(bias); - SERIAL_PROTOCOLPGM(" d: "); SERIAL_PROTOCOL(d); - SERIAL_PROTOCOLPGM(" min: "); SERIAL_PROTOCOL(min); - SERIAL_PROTOCOLPGM(" max: "); SERIAL_PROTOCOLLN(max); - if(pid_cycle > 2) { - Ku = (4.0*d)/(3.14159*(max-min)/2.0); - Tu = ((float)(t_low + t_high)/1000.0); - SERIAL_PROTOCOLPGM(" Ku: "); SERIAL_PROTOCOL(Ku); - SERIAL_PROTOCOLPGM(" Tu: "); SERIAL_PROTOCOLLN(Tu); - _Kp = 0.6*Ku; - _Ki = 2*_Kp/Tu; - _Kd = _Kp*Tu/8; - SERIAL_PROTOCOLLNPGM(" Classic PID "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(_Kp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(_Ki); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(_Kd); - /* - _Kp = 0.33*Ku; - _Ki = _Kp/Tu; - _Kd = _Kp*Tu/3; - SERIAL_PROTOCOLLNPGM(" Some overshoot "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(_Kp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(_Ki); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(_Kd); - _Kp = 0.2*Ku; - _Ki = 2*_Kp/Tu; - _Kd = _Kp*Tu/3; - SERIAL_PROTOCOLLNPGM(" No overshoot "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(_Kp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(_Ki); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(_Kd); - */ - } - } - if (extruder<0) - soft_pwm_bed = (bias + d) >> 1; - else - soft_pwm[extruder] = (bias + d) >> 1; - pid_cycle++; - min=temp; - } - } - } - if(input > (temp + 20)) { - SERIAL_PROTOCOLLNPGM("PID Autotune failed! Temperature too high"); - pid_tuning_finished = true; - pid_cycle = 0; - return; - } - if(millis() - temp_millis > 2000) { - int p; - if (extruder<0){ - p=soft_pwm_bed; - SERIAL_PROTOCOLPGM("ok B:"); - }else{ - p=soft_pwm[extruder]; - SERIAL_PROTOCOLPGM("ok T:"); - } - - SERIAL_PROTOCOL(input); - SERIAL_PROTOCOLPGM(" @:"); - SERIAL_PROTOCOLLN(p); - - temp_millis = millis(); - } - if(((millis() - t1) + (millis() - t2)) > (10L*60L*1000L*2L)) { - SERIAL_PROTOCOLLNPGM("PID Autotune failed! timeout"); - pid_tuning_finished = true; - pid_cycle = 0; - return; - } - if(pid_cycle > ncycles) { - SERIAL_PROTOCOLLNPGM("PID Autotune finished! Put the last Kp, Ki and Kd constants from above into Configuration.h"); - pid_tuning_finished = true; - pid_cycle = 0; - return; - } - lcd_update(); - } -} - -void updatePID() -{ -#ifdef PIDTEMP - for(int e = 0; e < EXTRUDERS; e++) { - temp_iState_max[e] = PID_INTEGRAL_DRIVE_MAX / Ki; - } -#endif -#ifdef PIDTEMPBED - temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi; -#endif -} - -int getHeaterPower(int heater) { - if (heater<0) - return soft_pwm_bed; - return soft_pwm[heater]; -} - -#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) - - #if defined(FAN_PIN) && FAN_PIN > -1 - #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN - #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN" - #endif - #if EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN - #error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN" - #endif - #if EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN - #error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN" - #endif - #endif - -void setExtruderAutoFanState(int pin, bool state) -{ - unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0; - // this idiom allows both digital and PWM fan outputs (see M42 handling). - pinMode(pin, OUTPUT); - digitalWrite(pin, newFanSpeed); - analogWrite(pin, newFanSpeed); -} - -void checkExtruderAutoFans() -{ - uint8_t fanState = 0; - - // which fan pins need to be turned on? - #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 - if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE) - fanState |= 1; - #endif - #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1 - if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) - { - if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else - fanState |= 2; - } - #endif - #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1 - if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) - { - if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) - fanState |= 2; - else - fanState |= 4; - } - #endif - - // update extruder auto fan states - #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 - setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0); - #endif - #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1 - if (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_1_AUTO_FAN_PIN, (fanState & 2) != 0); - #endif - #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1 - if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN - && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_2_AUTO_FAN_PIN, (fanState & 4) != 0); - #endif -} - -#endif // any extruder auto fan pins set - -void manage_heater() -{ - float pid_input; - float pid_output; - - if(temp_meas_ready != true) //better readability - return; - - updateTemperaturesFromRawValues(); - -#ifdef TEMP_RUNAWAY_BED_HYSTERESIS - temp_runaway_check(0, target_temperature_bed, current_temperature_bed, (int)soft_pwm_bed, true); -#endif - - for(int e = 0; e < EXTRUDERS; e++) - { - -#ifdef TEMP_RUNAWAY_EXTRUDER_HYSTERESIS - temp_runaway_check(e+1, target_temperature[e], current_temperature[e], (int)soft_pwm[e], false); -#endif - - #ifdef PIDTEMP - pid_input = current_temperature[e]; - - #ifndef PID_OPENLOOP - pid_error[e] = target_temperature[e] - pid_input; - if(pid_error[e] > PID_FUNCTIONAL_RANGE) { - pid_output = BANG_MAX; - pid_reset[e] = true; - } - else if(pid_error[e] < -PID_FUNCTIONAL_RANGE || target_temperature[e] == 0) { - pid_output = 0; - pid_reset[e] = true; - } - else { - if(pid_reset[e] == true) { - temp_iState[e] = 0.0; - pid_reset[e] = false; - } - pTerm[e] = Kp * pid_error[e]; - temp_iState[e] += pid_error[e]; - temp_iState[e] = constrain(temp_iState[e], temp_iState_min[e], temp_iState_max[e]); - iTerm[e] = Ki * temp_iState[e]; - - //K1 defined in Configuration.h in the PID settings - #define K2 (1.0-K1) - dTerm[e] = (Kd * (pid_input - temp_dState[e]))*K2 + (K1 * dTerm[e]); - pid_output = pTerm[e] + iTerm[e] - dTerm[e]; - if (pid_output > PID_MAX) { - if (pid_error[e] > 0 ) temp_iState[e] -= pid_error[e]; // conditional un-integration - pid_output=PID_MAX; - } else if (pid_output < 0){ - if (pid_error[e] < 0 ) temp_iState[e] -= pid_error[e]; // conditional un-integration - pid_output=0; - } - } - temp_dState[e] = pid_input; - #else - pid_output = constrain(target_temperature[e], 0, PID_MAX); - #endif //PID_OPENLOOP - #ifdef PID_DEBUG - SERIAL_ECHO_START; - SERIAL_ECHO(" PID_DEBUG "); - SERIAL_ECHO(e); - SERIAL_ECHO(": Input "); - SERIAL_ECHO(pid_input); - SERIAL_ECHO(" Output "); - SERIAL_ECHO(pid_output); - SERIAL_ECHO(" pTerm "); - SERIAL_ECHO(pTerm[e]); - SERIAL_ECHO(" iTerm "); - SERIAL_ECHO(iTerm[e]); - SERIAL_ECHO(" dTerm "); - SERIAL_ECHOLN(dTerm[e]); - #endif //PID_DEBUG - #else /* PID off */ - pid_output = 0; - if(current_temperature[e] < target_temperature[e]) { - pid_output = PID_MAX; - } - #endif - - // Check if temperature is within the correct range - if((current_temperature[e] > minttemp[e]) && (current_temperature[e] < maxttemp[e])) - { - soft_pwm[e] = (int)pid_output >> 1; - } - else { - soft_pwm[e] = 0; - } - - #ifdef WATCH_TEMP_PERIOD - if(watchmillis[e] && millis() - watchmillis[e] > WATCH_TEMP_PERIOD) - { - if(degHotend(e) < watch_start_temp[e] + WATCH_TEMP_INCREASE) - { - setTargetHotend(0, e); - LCD_MESSAGEPGM("Heating failed"); - SERIAL_ECHO_START; - SERIAL_ECHOLN("Heating failed"); - }else{ - watchmillis[e] = 0; - } - } - #endif - #ifdef TEMP_SENSOR_1_AS_REDUNDANT - if(fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) { - disable_heater(); - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is too high !"); - LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR"); - } - #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); - #endif - } - #endif - } // End extruder for loop - - #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ - (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) - if(millis() - extruder_autofan_last_check > 2500) // only need to check fan state very infrequently - { - checkExtruderAutoFans(); - extruder_autofan_last_check = millis(); - } - #endif - - #ifndef PIDTEMPBED - if(millis() - previous_millis_bed_heater < BED_CHECK_INTERVAL) - return; - previous_millis_bed_heater = millis(); - #endif - - #if TEMP_SENSOR_BED != 0 - - #ifdef PIDTEMPBED - pid_input = current_temperature_bed; - - #ifndef PID_OPENLOOP - pid_error_bed = target_temperature_bed - pid_input; - pTerm_bed = bedKp * pid_error_bed; - temp_iState_bed += pid_error_bed; - temp_iState_bed = constrain(temp_iState_bed, temp_iState_min_bed, temp_iState_max_bed); - iTerm_bed = bedKi * temp_iState_bed; - - //K1 defined in Configuration.h in the PID settings - #define K2 (1.0-K1) - dTerm_bed= (bedKd * (pid_input - temp_dState_bed))*K2 + (K1 * dTerm_bed); - temp_dState_bed = pid_input; - - pid_output = pTerm_bed + iTerm_bed - dTerm_bed; - if (pid_output > MAX_BED_POWER) { - if (pid_error_bed > 0 ) temp_iState_bed -= pid_error_bed; // conditional un-integration - pid_output=MAX_BED_POWER; - } else if (pid_output < 0){ - if (pid_error_bed < 0 ) temp_iState_bed -= pid_error_bed; // conditional un-integration - pid_output=0; - } - - #else - pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER); - #endif //PID_OPENLOOP - - if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) - { - soft_pwm_bed = (int)pid_output >> 1; - } - else { - soft_pwm_bed = 0; - } - - #elif !defined(BED_LIMIT_SWITCHING) - // Check if temperature is within the correct range - if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) - { - if(current_temperature_bed >= target_temperature_bed) - { - soft_pwm_bed = 0; - } - else - { - soft_pwm_bed = MAX_BED_POWER>>1; - } - } - else - { - soft_pwm_bed = 0; - WRITE(HEATER_BED_PIN,LOW); - } - #else //#ifdef BED_LIMIT_SWITCHING - // Check if temperature is within the correct band - if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) - { - if(current_temperature_bed > target_temperature_bed + BED_HYSTERESIS) - { - soft_pwm_bed = 0; - } - else if(current_temperature_bed <= target_temperature_bed - BED_HYSTERESIS) - { - soft_pwm_bed = MAX_BED_POWER>>1; - } - } - else - { - soft_pwm_bed = 0; - WRITE(HEATER_BED_PIN,LOW); - } - #endif - #endif - -//code for controlling the extruder rate based on the width sensor -#ifdef FILAMENT_SENSOR - if(filament_sensor) - { - meas_shift_index=delay_index1-meas_delay_cm; - if(meas_shift_index<0) - meas_shift_index = meas_shift_index + (MAX_MEASUREMENT_DELAY+1); //loop around buffer if needed - - //get the delayed info and add 100 to reconstitute to a percent of the nominal filament diameter - //then square it to get an area - - if(meas_shift_index<0) - meas_shift_index=0; - else if (meas_shift_index>MAX_MEASUREMENT_DELAY) - meas_shift_index=MAX_MEASUREMENT_DELAY; - - volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] = pow((float)(100+measurement_delay[meas_shift_index])/100.0,2); - if (volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] <0.01) - volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]=0.01; - } -#endif -} - -#define PGM_RD_W(x) (short)pgm_read_word(&x) -// Derived from RepRap FiveD extruder::getTemperature() -// For hot end temperature measurement. -static float analog2temp(int raw, uint8_t e) { -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - if(e > EXTRUDERS) -#else - if(e >= EXTRUDERS) -#endif - { - SERIAL_ERROR_START; - SERIAL_ERROR((int)e); - SERIAL_ERRORLNPGM(" - Invalid extruder number !"); - kill(); - return 0.0; - } - #ifdef HEATER_0_USES_MAX6675 - if (e == 0) - { - return 0.25 * raw; - } - #endif - - if(heater_ttbl_map[e] != NULL) - { - float celsius = 0; - uint8_t i; - short (*tt)[][2] = (short (*)[][2])(heater_ttbl_map[e]); - - for (i=1; i raw) - { - celsius = PGM_RD_W((*tt)[i-1][1]) + - (raw - PGM_RD_W((*tt)[i-1][0])) * - (float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i-1][1])) / - (float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i-1][0])); - break; - } - } - - // Overflow: Set to last value in the table - if (i == heater_ttbllen_map[e]) celsius = PGM_RD_W((*tt)[i-1][1]); - - return celsius; - } - return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET; -} - -// Derived from RepRap FiveD extruder::getTemperature() -// For bed temperature measurement. -static float analog2tempBed(int raw) { - #ifdef BED_USES_THERMISTOR - float celsius = 0; - byte i; - - for (i=1; i raw) - { - celsius = PGM_RD_W(BEDTEMPTABLE[i-1][1]) + - (raw - PGM_RD_W(BEDTEMPTABLE[i-1][0])) * - (float)(PGM_RD_W(BEDTEMPTABLE[i][1]) - PGM_RD_W(BEDTEMPTABLE[i-1][1])) / - (float)(PGM_RD_W(BEDTEMPTABLE[i][0]) - PGM_RD_W(BEDTEMPTABLE[i-1][0])); - break; - } - } - - // Overflow: Set to last value in the table - if (i == BEDTEMPTABLE_LEN) celsius = PGM_RD_W(BEDTEMPTABLE[i-1][1]); - - - // temperature offset adjustment -#ifdef BED_OFFSET - float _offset = BED_OFFSET; - float _offset_center = BED_OFFSET_CENTER; - float _offset_start = BED_OFFSET_START; - float _first_koef = (_offset / 2) / (_offset_center - _offset_start); - float _second_koef = (_offset / 2) / (100 - _offset_center); - - - if (celsius >= _offset_start && celsius <= _offset_center) - { - celsius = celsius + (_first_koef * (celsius - _offset_start)); - } - else if (celsius > _offset_center && celsius <= 100) - { - celsius = celsius + (_first_koef * (_offset_center - _offset_start)) + ( _second_koef * ( celsius - ( 100 - _offset_center ) )) ; - } - else if (celsius > 100) - { - celsius = celsius + _offset; - } -#endif - - - return celsius; - #elif defined BED_USES_AD595 - return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET; - #else - return 0; - #endif -} - -/* Called to get the raw values into the the actual temperatures. The raw values are created in interrupt context, - and this function is called from normal context as it is too slow to run in interrupts and will block the stepper routine otherwise */ -static void updateTemperaturesFromRawValues() -{ - for(uint8_t e=0;e -1) //check if a sensor is supported - filament_width_meas = analog2widthFil(); - #endif - //Reset the watchdog after we know we have a temperature measurement. - watchdog_reset(); - - CRITICAL_SECTION_START; - temp_meas_ready = false; - CRITICAL_SECTION_END; -} - - -// For converting raw Filament Width to milimeters -#ifdef FILAMENT_SENSOR -float analog2widthFil() { -return current_raw_filwidth/16383.0*5.0; -//return current_raw_filwidth; -} - -// For converting raw Filament Width to a ratio -int widthFil_to_size_ratio() { - -float temp; - -temp=filament_width_meas; -if(filament_width_measMEASURED_UPPER_LIMIT) - temp= MEASURED_UPPER_LIMIT; - - -return(filament_width_nominal/temp*100); - - -} -#endif - - - - - -void tp_init() -{ -#if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) - //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector - MCUCR=(1< -1) - SET_OUTPUT(HEATER_0_PIN); - #endif - #if defined(HEATER_1_PIN) && (HEATER_1_PIN > -1) - SET_OUTPUT(HEATER_1_PIN); - #endif - #if defined(HEATER_2_PIN) && (HEATER_2_PIN > -1) - SET_OUTPUT(HEATER_2_PIN); - #endif - #if defined(HEATER_BED_PIN) && (HEATER_BED_PIN > -1) - SET_OUTPUT(HEATER_BED_PIN); - #endif - #if defined(FAN_PIN) && (FAN_PIN > -1) - SET_OUTPUT(FAN_PIN); - #ifdef FAST_PWM_FAN - setPwmFrequency(FAN_PIN, 1); // No prescaling. Pwm frequency = F_CPU/256/8 - #endif - #ifdef FAN_SOFT_PWM - soft_pwm_fan = fanSpeedSoftPwm / 2; - #endif - #endif - - #ifdef HEATER_0_USES_MAX6675 - #ifndef SDSUPPORT - SET_OUTPUT(SCK_PIN); - WRITE(SCK_PIN,0); - - SET_OUTPUT(MOSI_PIN); - WRITE(MOSI_PIN,1); - - SET_INPUT(MISO_PIN); - WRITE(MISO_PIN,1); - #endif - /* Using pinMode and digitalWrite, as that was the only way I could get it to compile */ - - //Have to toggle SD card CS pin to low first, to enable firmware to talk with SD card - pinMode(SS_PIN, OUTPUT); - digitalWrite(SS_PIN,0); - pinMode(MAX6675_SS, OUTPUT); - digitalWrite(MAX6675_SS,1); - #endif - - // Set analog inputs - ADCSRA = 1< -1) - #if TEMP_0_PIN < 8 - DIDR0 |= 1 << TEMP_0_PIN; - #else - DIDR2 |= 1<<(TEMP_0_PIN - 8); - #endif - #endif - #if defined(TEMP_1_PIN) && (TEMP_1_PIN > -1) - #if TEMP_1_PIN < 8 - DIDR0 |= 1< -1) - #if TEMP_2_PIN < 8 - DIDR0 |= 1 << TEMP_2_PIN; - #else - DIDR2 |= 1<<(TEMP_2_PIN - 8); - #endif - #endif - #if defined(TEMP_BED_PIN) && (TEMP_BED_PIN > -1) - #if TEMP_BED_PIN < 8 - DIDR0 |= 1< -1) - #if FILWIDTH_PIN < 8 - DIDR0 |= 1< HEATER_0_MAXTEMP) { -#if HEATER_0_RAW_LO_TEMP < HEATER_0_RAW_HI_TEMP - maxttemp_raw[0] -= OVERSAMPLENR; -#else - maxttemp_raw[0] += OVERSAMPLENR; -#endif - } -#endif //MAXTEMP - -#if (EXTRUDERS > 1) && defined(HEATER_1_MINTEMP) - minttemp[1] = HEATER_1_MINTEMP; - while(analog2temp(minttemp_raw[1], 1) < HEATER_1_MINTEMP) { -#if HEATER_1_RAW_LO_TEMP < HEATER_1_RAW_HI_TEMP - minttemp_raw[1] += OVERSAMPLENR; -#else - minttemp_raw[1] -= OVERSAMPLENR; -#endif - } -#endif // MINTEMP 1 -#if (EXTRUDERS > 1) && defined(HEATER_1_MAXTEMP) - maxttemp[1] = HEATER_1_MAXTEMP; - while(analog2temp(maxttemp_raw[1], 1) > HEATER_1_MAXTEMP) { -#if HEATER_1_RAW_LO_TEMP < HEATER_1_RAW_HI_TEMP - maxttemp_raw[1] -= OVERSAMPLENR; -#else - maxttemp_raw[1] += OVERSAMPLENR; -#endif - } -#endif //MAXTEMP 1 - -#if (EXTRUDERS > 2) && defined(HEATER_2_MINTEMP) - minttemp[2] = HEATER_2_MINTEMP; - while(analog2temp(minttemp_raw[2], 2) < HEATER_2_MINTEMP) { -#if HEATER_2_RAW_LO_TEMP < HEATER_2_RAW_HI_TEMP - minttemp_raw[2] += OVERSAMPLENR; -#else - minttemp_raw[2] -= OVERSAMPLENR; -#endif - } -#endif //MINTEMP 2 -#if (EXTRUDERS > 2) && defined(HEATER_2_MAXTEMP) - maxttemp[2] = HEATER_2_MAXTEMP; - while(analog2temp(maxttemp_raw[2], 2) > HEATER_2_MAXTEMP) { -#if HEATER_2_RAW_LO_TEMP < HEATER_2_RAW_HI_TEMP - maxttemp_raw[2] -= OVERSAMPLENR; -#else - maxttemp_raw[2] += OVERSAMPLENR; -#endif - } -#endif //MAXTEMP 2 - -#ifdef BED_MINTEMP - /* No bed MINTEMP error implemented?!? */ - while(analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) { -#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP - bed_minttemp_raw += OVERSAMPLENR; -#else - bed_minttemp_raw -= OVERSAMPLENR; -#endif - } - -#endif //BED_MINTEMP -#ifdef BED_MAXTEMP - while(analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) { -#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP - bed_maxttemp_raw -= OVERSAMPLENR; -#else - bed_maxttemp_raw += OVERSAMPLENR; -#endif - } -#endif //BED_MAXTEMP -} - -void setWatch() -{ -#ifdef WATCH_TEMP_PERIOD - for (int e = 0; e < EXTRUDERS; e++) - { - if(degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) - { - watch_start_temp[e] = degHotend(e); - watchmillis[e] = millis(); - } - } -#endif -} - -#if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) -void temp_runaway_check(int _heater_id, float _target_temperature, float _current_temperature, float _output, bool _isbed) -{ - float __hysteresis = 0; - int __timeout = 0; - bool temp_runaway_check_active = false; - static float __preheat_start[2] = { 0,0}; //currently just bed and one extruder - static int __preheat_counter[2] = { 0,0}; - static int __preheat_errors[2] = { 0,0}; - - -#ifdef TEMP_RUNAWAY_BED_TIMEOUT - if (_isbed) - { - __hysteresis = TEMP_RUNAWAY_BED_HYSTERESIS; - __timeout = TEMP_RUNAWAY_BED_TIMEOUT; - } -#endif -#ifdef TEMP_RUNAWAY_EXTRUDER_TIMEOUT - if (!_isbed) - { - __hysteresis = TEMP_RUNAWAY_EXTRUDER_HYSTERESIS; - __timeout = TEMP_RUNAWAY_EXTRUDER_TIMEOUT; - } -#endif - - if (millis() - temp_runaway_timer[_heater_id] > 2000) - { - - temp_runaway_timer[_heater_id] = millis(); - if (_output == 0) - { - temp_runaway_check_active = false; - temp_runaway_error_counter[_heater_id] = 0; - } - - if (temp_runaway_target[_heater_id] != _target_temperature) - { - if (_target_temperature > 0) - { - temp_runaway_status[_heater_id] = TempRunaway_PREHEAT; - temp_runaway_target[_heater_id] = _target_temperature; - __preheat_start[_heater_id] = _current_temperature; - __preheat_counter[_heater_id] = 0; - } - else - { - temp_runaway_status[_heater_id] = TempRunaway_INACTIVE; - temp_runaway_target[_heater_id] = _target_temperature; - } - } - - if (temp_runaway_status[_heater_id] == TempRunaway_PREHEAT) - { - if (_current_temperature < ((_isbed) ? (0.8 * _target_temperature) : 150)) //check only in area where temperature is changing fastly for heater, check to 0.8 x target temperature for bed - { - __preheat_counter[_heater_id]++; - if (__preheat_counter[_heater_id] > ((_isbed) ? 16 : 8)) // periodicaly check if current temperature changes - { - /*SERIAL_ECHOPGM("Heater:"); - MYSERIAL.print(_heater_id); - SERIAL_ECHOPGM(" T:"); - MYSERIAL.print(_current_temperature); - SERIAL_ECHOPGM(" Tstart:"); - MYSERIAL.print(__preheat_start[_heater_id]);*/ - - if (_current_temperature - __preheat_start[_heater_id] < 2) { - __preheat_errors[_heater_id]++; - /*SERIAL_ECHOPGM(" Preheat errors:"); - MYSERIAL.println(__preheat_errors[_heater_id]);*/ - } - else { - //SERIAL_ECHOLNPGM(""); - __preheat_errors[_heater_id] = 0; - } - - if (__preheat_errors[_heater_id] > ((_isbed) ? 2 : 5)) - { - if (farm_mode) { prusa_statistics(0); } - temp_runaway_stop(true, _isbed); - if (farm_mode) { prusa_statistics(91); } - } - __preheat_start[_heater_id] = _current_temperature; - __preheat_counter[_heater_id] = 0; - } - } - } - - if (_current_temperature >= _target_temperature && temp_runaway_status[_heater_id] == TempRunaway_PREHEAT) - { - temp_runaway_status[_heater_id] = TempRunaway_ACTIVE; - temp_runaway_check_active = false; - } - - if (!temp_runaway_check_active && _output > 0) - { - temp_runaway_check_active = true; - } - - - if (temp_runaway_check_active) - { - // we are in range - if (_target_temperature - __hysteresis < _current_temperature && _current_temperature < _target_temperature + __hysteresis) - { - temp_runaway_check_active = false; - temp_runaway_error_counter[_heater_id] = 0; - } - else - { - if (temp_runaway_status[_heater_id] > TempRunaway_PREHEAT) - { - temp_runaway_error_counter[_heater_id]++; - if (temp_runaway_error_counter[_heater_id] * 2 > __timeout) - { - if (farm_mode) { prusa_statistics(0); } - temp_runaway_stop(false, _isbed); - if (farm_mode) { prusa_statistics(90); } - } - } - } - } - - } -} - -void temp_runaway_stop(bool isPreheat, bool isBed) -{ - cancel_heatup = true; - quickStop(); - if (card.sdprinting) - { - card.sdprinting = false; - card.closefile(); - } - - disable_heater(); - disable_x(); - disable_y(); - disable_e0(); - disable_e1(); - disable_e2(); - manage_heater(); - lcd_update(); - WRITE(BEEPER, HIGH); - delayMicroseconds(500); - WRITE(BEEPER, LOW); - delayMicroseconds(100); - - if (isPreheat) - { - Stop(); - isBed ? LCD_ALERTMESSAGEPGM("BED PREHEAT ERROR") : LCD_ALERTMESSAGEPGM("PREHEAT ERROR"); - SERIAL_ERROR_START; - isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); - SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); - SET_OUTPUT(FAN_PIN); - WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1); - analogWrite(FAN_PIN, 255); - fanSpeed = 255; - delayMicroseconds(2000); - } - else - { - isBed ? LCD_ALERTMESSAGEPGM("BED THERMAL RUNAWAY") : LCD_ALERTMESSAGEPGM("THERMAL RUNAWAY"); - SERIAL_ERROR_START; - isBed ? SERIAL_ERRORLNPGM(" HEATBED THERMAL RUNAWAY") : SERIAL_ERRORLNPGM(" HOTEND THERMAL RUNAWAY"); - } -} -#endif - - -void disable_heater() -{ - for(int i=0;i -1 - target_temperature[0]=0; - soft_pwm[0]=0; - #if defined(HEATER_0_PIN) && HEATER_0_PIN > -1 - WRITE(HEATER_0_PIN,LOW); - #endif - #endif - - #if defined(TEMP_1_PIN) && TEMP_1_PIN > -1 && EXTRUDERS > 1 - target_temperature[1]=0; - soft_pwm[1]=0; - #if defined(HEATER_1_PIN) && HEATER_1_PIN > -1 - WRITE(HEATER_1_PIN,LOW); - #endif - #endif - - #if defined(TEMP_2_PIN) && TEMP_2_PIN > -1 && EXTRUDERS > 2 - target_temperature[2]=0; - soft_pwm[2]=0; - #if defined(HEATER_2_PIN) && HEATER_2_PIN > -1 - WRITE(HEATER_2_PIN,LOW); - #endif - #endif - - #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1 - target_temperature_bed=0; - soft_pwm_bed=0; - #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 - WRITE(HEATER_BED_PIN,LOW); - #endif - #endif -} - -void max_temp_error(uint8_t e) { - disable_heater(); - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLN((int)e); - SERIAL_ERRORLNPGM(": Extruder switched off. MAXTEMP triggered !"); - LCD_ALERTMESSAGEPGM("Err: MAXTEMP"); - } - #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); - - - - #endif - SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); - SET_OUTPUT(FAN_PIN); - SET_OUTPUT(BEEPER); - WRITE(FAN_PIN, 1); - WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1); - WRITE(BEEPER, 1); - // fanSpeed will consumed by the check_axes_activity() routine. - fanSpeed=255; - if (farm_mode) { prusa_statistics(93); } -} - -void min_temp_error(uint8_t e) { - disable_heater(); - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLN((int)e); - SERIAL_ERRORLNPGM(": Extruder switched off. MINTEMP triggered !"); - LCD_ALERTMESSAGEPGM("Err: MINTEMP"); - } - #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); - #endif - if (farm_mode) { prusa_statistics(92); } - -} - -void bed_max_temp_error(void) { -#if HEATER_BED_PIN > -1 - WRITE(HEATER_BED_PIN, 0); -#endif - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Temperature heated bed switched off. MAXTEMP triggered !"); - LCD_ALERTMESSAGEPGM("Err: MAXTEMP BED"); - } - #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); - #endif - -} - -void bed_min_temp_error(void) { -#if HEATER_BED_PIN > -1 - WRITE(HEATER_BED_PIN, 0); -#endif - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Temperature heated bed switched off. MINTEMP triggered !"); - LCD_ALERTMESSAGEPGM("Err: MINTEMP BED"); - } -#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); -#endif -} - -#ifdef HEATER_0_USES_MAX6675 -#define MAX6675_HEAT_INTERVAL 250 -long max6675_previous_millis = MAX6675_HEAT_INTERVAL; -int max6675_temp = 2000; - -int read_max6675() -{ - if (millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL) - return max6675_temp; - - max6675_previous_millis = millis(); - max6675_temp = 0; - - #ifdef PRR - PRR &= ~(1<> 3; - } - - return max6675_temp; -} -#endif - - -// Timer 0 is shared with millies -ISR(TIMER0_COMPB_vect) -{ - //these variables are only accesible from the ISR, but static, so they don't lose their value - static unsigned char temp_count = 0; - static unsigned long raw_temp_0_value = 0; - static unsigned long raw_temp_1_value = 0; - static unsigned long raw_temp_2_value = 0; - static unsigned long raw_temp_bed_value = 0; - static unsigned char temp_state = 10; - static unsigned char pwm_count = (1 << SOFT_PWM_SCALE); - static unsigned char soft_pwm_0; -#ifdef SLOW_PWM_HEATERS - static unsigned char slow_pwm_count = 0; - static unsigned char state_heater_0 = 0; - static unsigned char state_timer_heater_0 = 0; -#endif -#if (EXTRUDERS > 1) || defined(HEATERS_PARALLEL) - static unsigned char soft_pwm_1; -#ifdef SLOW_PWM_HEATERS - static unsigned char state_heater_1 = 0; - static unsigned char state_timer_heater_1 = 0; -#endif -#endif -#if EXTRUDERS > 2 - static unsigned char soft_pwm_2; -#ifdef SLOW_PWM_HEATERS - static unsigned char state_heater_2 = 0; - static unsigned char state_timer_heater_2 = 0; -#endif -#endif -#if HEATER_BED_PIN > -1 - static unsigned char soft_pwm_b; -#ifdef SLOW_PWM_HEATERS - static unsigned char state_heater_b = 0; - static unsigned char state_timer_heater_b = 0; -#endif -#endif - -#if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1) - static unsigned long raw_filwidth_value = 0; //added for filament width sensor -#endif - -#ifndef SLOW_PWM_HEATERS - /* - * standard PWM modulation - */ - if(pwm_count == 0){ - soft_pwm_0 = soft_pwm[0]; - if(soft_pwm_0 > 0) { - WRITE(HEATER_0_PIN,1); -#ifdef HEATERS_PARALLEL - WRITE(HEATER_1_PIN,1); -#endif - } else WRITE(HEATER_0_PIN,0); - -#if EXTRUDERS > 1 - soft_pwm_1 = soft_pwm[1]; - if(soft_pwm_1 > 0) WRITE(HEATER_1_PIN,1); else WRITE(HEATER_1_PIN,0); -#endif -#if EXTRUDERS > 2 - soft_pwm_2 = soft_pwm[2]; - if(soft_pwm_2 > 0) WRITE(HEATER_2_PIN,1); else WRITE(HEATER_2_PIN,0); -#endif -#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 - soft_pwm_b = soft_pwm_bed; - if(soft_pwm_b > 0) WRITE(HEATER_BED_PIN,1); else WRITE(HEATER_BED_PIN,0); -#endif -#ifdef FAN_SOFT_PWM - soft_pwm_fan = fanSpeedSoftPwm / 2; - if(soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0); -#endif - } - if(soft_pwm_0 < pwm_count) { - WRITE(HEATER_0_PIN,0); -#ifdef HEATERS_PARALLEL - WRITE(HEATER_1_PIN,0); -#endif - } -#if EXTRUDERS > 1 - if(soft_pwm_1 < pwm_count) WRITE(HEATER_1_PIN,0); -#endif -#if EXTRUDERS > 2 - if(soft_pwm_2 < pwm_count) WRITE(HEATER_2_PIN,0); -#endif -#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 - if(soft_pwm_b < pwm_count) WRITE(HEATER_BED_PIN,0); -#endif -#ifdef FAN_SOFT_PWM - if(soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0); -#endif - - pwm_count += (1 << SOFT_PWM_SCALE); - pwm_count &= 0x7f; - -#else //ifndef SLOW_PWM_HEATERS - /* - * SLOW PWM HEATERS - * - * for heaters drived by relay - */ -#ifndef MIN_STATE_TIME -#define MIN_STATE_TIME 16 // MIN_STATE_TIME * 65.5 = time in milliseconds -#endif - if (slow_pwm_count == 0) { - // EXTRUDER 0 - soft_pwm_0 = soft_pwm[0]; - if (soft_pwm_0 > 0) { - // turn ON heather only if the minimum time is up - if (state_timer_heater_0 == 0) { - // if change state set timer - if (state_heater_0 == 0) { - state_timer_heater_0 = MIN_STATE_TIME; - } - state_heater_0 = 1; - WRITE(HEATER_0_PIN, 1); -#ifdef HEATERS_PARALLEL - WRITE(HEATER_1_PIN, 1); -#endif - } - } else { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_0 == 0) { - // if change state set timer - if (state_heater_0 == 1) { - state_timer_heater_0 = MIN_STATE_TIME; - } - state_heater_0 = 0; - WRITE(HEATER_0_PIN, 0); -#ifdef HEATERS_PARALLEL - WRITE(HEATER_1_PIN, 0); -#endif - } - } - -#if EXTRUDERS > 1 - // EXTRUDER 1 - soft_pwm_1 = soft_pwm[1]; - if (soft_pwm_1 > 0) { - // turn ON heather only if the minimum time is up - if (state_timer_heater_1 == 0) { - // if change state set timer - if (state_heater_1 == 0) { - state_timer_heater_1 = MIN_STATE_TIME; - } - state_heater_1 = 1; - WRITE(HEATER_1_PIN, 1); - } - } else { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_1 == 0) { - // if change state set timer - if (state_heater_1 == 1) { - state_timer_heater_1 = MIN_STATE_TIME; - } - state_heater_1 = 0; - WRITE(HEATER_1_PIN, 0); - } - } -#endif - -#if EXTRUDERS > 2 - // EXTRUDER 2 - soft_pwm_2 = soft_pwm[2]; - if (soft_pwm_2 > 0) { - // turn ON heather only if the minimum time is up - if (state_timer_heater_2 == 0) { - // if change state set timer - if (state_heater_2 == 0) { - state_timer_heater_2 = MIN_STATE_TIME; - } - state_heater_2 = 1; - WRITE(HEATER_2_PIN, 1); - } - } else { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_2 == 0) { - // if change state set timer - if (state_heater_2 == 1) { - state_timer_heater_2 = MIN_STATE_TIME; - } - state_heater_2 = 0; - WRITE(HEATER_2_PIN, 0); - } - } -#endif - -#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 - // BED - soft_pwm_b = soft_pwm_bed; - if (soft_pwm_b > 0) { - // turn ON heather only if the minimum time is up - if (state_timer_heater_b == 0) { - // if change state set timer - if (state_heater_b == 0) { - state_timer_heater_b = MIN_STATE_TIME; - } - state_heater_b = 1; - WRITE(HEATER_BED_PIN, 1); - } - } else { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_b == 0) { - // if change state set timer - if (state_heater_b == 1) { - state_timer_heater_b = MIN_STATE_TIME; - } - state_heater_b = 0; - WRITE(HEATER_BED_PIN, 0); - } - } -#endif - } // if (slow_pwm_count == 0) - - // EXTRUDER 0 - if (soft_pwm_0 < slow_pwm_count) { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_0 == 0) { - // if change state set timer - if (state_heater_0 == 1) { - state_timer_heater_0 = MIN_STATE_TIME; - } - state_heater_0 = 0; - WRITE(HEATER_0_PIN, 0); -#ifdef HEATERS_PARALLEL - WRITE(HEATER_1_PIN, 0); -#endif - } - } - -#if EXTRUDERS > 1 - // EXTRUDER 1 - if (soft_pwm_1 < slow_pwm_count) { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_1 == 0) { - // if change state set timer - if (state_heater_1 == 1) { - state_timer_heater_1 = MIN_STATE_TIME; - } - state_heater_1 = 0; - WRITE(HEATER_1_PIN, 0); - } - } -#endif - -#if EXTRUDERS > 2 - // EXTRUDER 2 - if (soft_pwm_2 < slow_pwm_count) { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_2 == 0) { - // if change state set timer - if (state_heater_2 == 1) { - state_timer_heater_2 = MIN_STATE_TIME; - } - state_heater_2 = 0; - WRITE(HEATER_2_PIN, 0); - } - } -#endif - -#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 - // BED - if (soft_pwm_b < slow_pwm_count) { - // turn OFF heather only if the minimum time is up - if (state_timer_heater_b == 0) { - // if change state set timer - if (state_heater_b == 1) { - state_timer_heater_b = MIN_STATE_TIME; - } - state_heater_b = 0; - WRITE(HEATER_BED_PIN, 0); - } - } -#endif - -#ifdef FAN_SOFT_PWM - if (pwm_count == 0){ - soft_pwm_fan = fanSpeedSoftPwm / 2; - if (soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0); - } - if (soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0); -#endif - - pwm_count += (1 << SOFT_PWM_SCALE); - pwm_count &= 0x7f; - - // increment slow_pwm_count only every 64 pwm_count circa 65.5ms - if ((pwm_count % 64) == 0) { - slow_pwm_count++; - slow_pwm_count &= 0x7f; - - // Extruder 0 - if (state_timer_heater_0 > 0) { - state_timer_heater_0--; - } - -#if EXTRUDERS > 1 - // Extruder 1 - if (state_timer_heater_1 > 0) - state_timer_heater_1--; -#endif - -#if EXTRUDERS > 2 - // Extruder 2 - if (state_timer_heater_2 > 0) - state_timer_heater_2--; -#endif - -#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 - // Bed - if (state_timer_heater_b > 0) - state_timer_heater_b--; -#endif - } //if ((pwm_count % 64) == 0) { - -#endif //ifndef SLOW_PWM_HEATERS - - switch(temp_state) { - case 0: // Prepare TEMP_0 - #if defined(TEMP_0_PIN) && (TEMP_0_PIN > -1) - #if TEMP_0_PIN > 7 - ADCSRB = 1< -1) - raw_temp_0_value += ADC; - #endif - #ifdef HEATER_0_USES_MAX6675 // TODO remove the blocking - raw_temp_0_value = read_max6675(); - #endif - temp_state = 2; - break; - case 2: // Prepare TEMP_BED - #if defined(TEMP_BED_PIN) && (TEMP_BED_PIN > -1) - #if TEMP_BED_PIN > 7 - ADCSRB = 1< -1) - raw_temp_bed_value += ADC; - #endif - temp_state = 4; - break; - case 4: // Prepare TEMP_1 - #if defined(TEMP_1_PIN) && (TEMP_1_PIN > -1) - #if TEMP_1_PIN > 7 - ADCSRB = 1< -1) - raw_temp_1_value += ADC; - #endif - temp_state = 6; - break; - case 6: // Prepare TEMP_2 - #if defined(TEMP_2_PIN) && (TEMP_2_PIN > -1) - #if TEMP_2_PIN > 7 - ADCSRB = 1< -1) - raw_temp_2_value += ADC; - #endif - temp_state = 8;//change so that Filament Width is also measured - - break; - case 8: //Prepare FILWIDTH - #if defined(FILWIDTH_PIN) && (FILWIDTH_PIN> -1) - #if FILWIDTH_PIN>7 - ADCSRB = 1< -1) - //raw_filwidth_value += ADC; //remove to use an IIR filter approach - if(ADC>102) //check that ADC is reading a voltage > 0.5 volts, otherwise don't take in the data. - { - raw_filwidth_value= raw_filwidth_value-(raw_filwidth_value>>7); //multipliy raw_filwidth_value by 127/128 - - raw_filwidth_value= raw_filwidth_value + ((unsigned long)ADC<<7); //add new ADC reading - } - #endif - temp_state = 0; - - temp_count++; - break; - - - case 10: //Startup, delay initial temp reading a tiny bit so the hardware can settle. - temp_state = 0; - break; -// default: -// SERIAL_ERROR_START; -// SERIAL_ERRORLNPGM("Temp measurement error!"); -// break; - } - - if(temp_count >= OVERSAMPLENR) // 10 * 16 * 1/(16000000/64/256) = 164ms. - { - if (!temp_meas_ready) //Only update the raw values if they have been read. Else we could be updating them during reading. - { - current_temperature_raw[0] = raw_temp_0_value; -#if EXTRUDERS > 1 - current_temperature_raw[1] = raw_temp_1_value; -#endif -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - redundant_temperature_raw = raw_temp_1_value; -#endif -#if EXTRUDERS > 2 - current_temperature_raw[2] = raw_temp_2_value; -#endif - current_temperature_bed_raw = raw_temp_bed_value; - } - -//Add similar code for Filament Sensor - can be read any time since IIR filtering is used -#if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1) - current_raw_filwidth = raw_filwidth_value>>10; //need to divide to get to 0-16384 range since we used 1/128 IIR filter approach -#endif - - - temp_meas_ready = true; - temp_count = 0; - raw_temp_0_value = 0; - raw_temp_1_value = 0; - raw_temp_2_value = 0; - raw_temp_bed_value = 0; - -#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP - if(current_temperature_raw[0] <= maxttemp_raw[0]) { -#else - if(current_temperature_raw[0] >= maxttemp_raw[0]) { -#endif - max_temp_error(0); - } -#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP - if(current_temperature_raw[0] >= minttemp_raw[0]) { -#else - if(current_temperature_raw[0] <= minttemp_raw[0]) { -#endif - min_temp_error(0); - } -#if EXTRUDERS > 1 -#if HEATER_1_RAW_LO_TEMP > HEATER_1_RAW_HI_TEMP - if(current_temperature_raw[1] <= maxttemp_raw[1]) { -#else - if(current_temperature_raw[1] >= maxttemp_raw[1]) { -#endif - max_temp_error(1); - } -#if HEATER_1_RAW_LO_TEMP > HEATER_1_RAW_HI_TEMP - if(current_temperature_raw[1] >= minttemp_raw[1]) { -#else - if(current_temperature_raw[1] <= minttemp_raw[1]) { -#endif - min_temp_error(1); - } -#endif -#if EXTRUDERS > 2 -#if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP - if(current_temperature_raw[2] <= maxttemp_raw[2]) { -#else - if(current_temperature_raw[2] >= maxttemp_raw[2]) { -#endif - max_temp_error(2); - } -#if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP - if(current_temperature_raw[2] >= minttemp_raw[2]) { -#else - if(current_temperature_raw[2] <= minttemp_raw[2]) { -#endif - min_temp_error(2); - } -#endif - - /* No bed MINTEMP error? */ - - -#if defined(BED_MAXTEMP) && (TEMP_SENSOR_BED != 0) -# if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP - if(current_temperature_bed_raw <= bed_maxttemp_raw) { -#else - if(current_temperature_bed_raw >= bed_maxttemp_raw) { -#endif - target_temperature_bed = 0; - bed_max_temp_error(); - } - } - -# if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP - if(current_temperature_bed_raw >= bed_minttemp_raw) { -#else - if(current_temperature_bed_raw <= bed_minttemp_raw) { -#endif - bed_min_temp_error(); - } - -#endif - -#ifdef BABYSTEPPING - for(uint8_t axis=0;axis<3;axis++) - { - int curTodo=babystepsTodo[axis]; //get rid of volatile for performance - - if(curTodo>0) - { - babystep(axis,/*fwd*/true); - babystepsTodo[axis]--; //less to do next time - } - else - if(curTodo<0) - { - babystep(axis,/*fwd*/false); - babystepsTodo[axis]++; //less to do next time - } - } -#endif //BABYSTEPPING -} - -#ifdef PIDTEMP -// Apply the scale factors to the PID values - - -float scalePID_i(float i) -{ - return i*PID_dT; -} - -float unscalePID_i(float i) -{ - return i/PID_dT; -} - -float scalePID_d(float d) -{ - return d/PID_dT; -} - -float unscalePID_d(float d) -{ - return d*PID_dT; -} - -#endif //PIDTEMP - - +/* + temperature.c - temperature control + Part of Marlin + + Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + + 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 . + */ + +/* + This firmware is a mashup between Sprinter and grbl. + (https://github.com/kliment/Sprinter) + (https://github.com/simen/grbl/tree) + + It has preliminary support for Matthew Roberts advance algorithm + http://reprap.org/pipermail/reprap-dev/2011-May/003323.html + + */ + + +#include "Marlin.h" +#include "ultralcd.h" +#include "temperature.h" +#include "watchdog.h" +#include "cardreader.h" + +#include "Sd2PinMap.h" + + +//=========================================================================== +//=============================public variables============================ +//=========================================================================== +int target_temperature[EXTRUDERS] = { 0 }; +int target_temperature_bed = 0; +int current_temperature_raw[EXTRUDERS] = { 0 }; +float current_temperature[EXTRUDERS] = { 0.0 }; +int current_temperature_bed_raw = 0; +float current_temperature_bed = 0.0; +#ifdef TEMP_SENSOR_1_AS_REDUNDANT + int redundant_temperature_raw = 0; + float redundant_temperature = 0.0; +#endif + + +#ifdef PIDTEMP + float _Kp, _Ki, _Kd; + int pid_cycle, pid_number_of_cycles; + bool pid_tuning_finished = false; + float Kp=DEFAULT_Kp; + float Ki=(DEFAULT_Ki*PID_dT); + float Kd=(DEFAULT_Kd/PID_dT); + #ifdef PID_ADD_EXTRUSION_RATE + float Kc=DEFAULT_Kc; + #endif +#endif //PIDTEMP + +#ifdef PIDTEMPBED + float bedKp=DEFAULT_bedKp; + float bedKi=(DEFAULT_bedKi*PID_dT); + float bedKd=(DEFAULT_bedKd/PID_dT); +#endif //PIDTEMPBED + +#ifdef FAN_SOFT_PWM + unsigned char fanSpeedSoftPwm; +#endif + +unsigned char soft_pwm_bed; + +#ifdef BABYSTEPPING + volatile int babystepsTodo[3]={0,0,0}; +#endif + +#ifdef FILAMENT_SENSOR + int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only +#endif +//=========================================================================== +//=============================private variables============================ +//=========================================================================== +static volatile bool temp_meas_ready = false; + +#ifdef PIDTEMP + //static cannot be external: + static float temp_iState[EXTRUDERS] = { 0 }; + static float temp_dState[EXTRUDERS] = { 0 }; + static float pTerm[EXTRUDERS]; + static float iTerm[EXTRUDERS]; + static float dTerm[EXTRUDERS]; + //int output; + static float pid_error[EXTRUDERS]; + static float temp_iState_min[EXTRUDERS]; + static float temp_iState_max[EXTRUDERS]; + // static float pid_input[EXTRUDERS]; + // static float pid_output[EXTRUDERS]; + static bool pid_reset[EXTRUDERS]; +#endif //PIDTEMP +#ifdef PIDTEMPBED + //static cannot be external: + static float temp_iState_bed = { 0 }; + static float temp_dState_bed = { 0 }; + static float pTerm_bed; + static float iTerm_bed; + static float dTerm_bed; + //int output; + static float pid_error_bed; + static float temp_iState_min_bed; + static float temp_iState_max_bed; +#else //PIDTEMPBED + static unsigned long previous_millis_bed_heater; +#endif //PIDTEMPBED + static unsigned char soft_pwm[EXTRUDERS]; + +#ifdef FAN_SOFT_PWM + static unsigned char soft_pwm_fan; +#endif +#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + static unsigned long extruder_autofan_last_check; +#endif + +#if EXTRUDERS > 3 + # error Unsupported number of extruders +#elif EXTRUDERS > 2 + # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2, v3 } +#elif EXTRUDERS > 1 + # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2 } +#else + # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1 } +#endif + +// Init min and max temp with extreme values to prevent false errors during startup +static int minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP ); +static int maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP ); +static int minttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS( 0, 0, 0 ); +static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS( 16383, 16383, 16383 ); +#ifdef BED_MINTEMP +static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; +#endif +#ifdef BED_MAXTEMP +static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; +#endif + +#ifdef TEMP_SENSOR_1_AS_REDUNDANT + static void *heater_ttbl_map[2] = {(void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE }; + static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN }; +#else + static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE ); + static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN ); +#endif + +static float analog2temp(int raw, uint8_t e); +static float analog2tempBed(int raw); +static void updateTemperaturesFromRawValues(); + +enum TempRunawayStates +{ + TempRunaway_INACTIVE = 0, + TempRunaway_PREHEAT = 1, + TempRunaway_ACTIVE = 2, +}; + +#ifdef WATCH_TEMP_PERIOD +int watch_start_temp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); +unsigned long watchmillis[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); +#endif //WATCH_TEMP_PERIOD + +#ifndef SOFT_PWM_SCALE +#define SOFT_PWM_SCALE 0 +#endif + +#ifdef FILAMENT_SENSOR + static int meas_shift_index; //used to point to a delayed sample in buffer for filament width sensor +#endif +//=========================================================================== +//============================= functions ============================ +//=========================================================================== + + void PID_autotune(float temp, int extruder, int ncycles) + { + pid_number_of_cycles = ncycles; + pid_tuning_finished = false; + float input = 0.0; + pid_cycle=0; + bool heating = true; + + unsigned long temp_millis = millis(); + unsigned long t1=temp_millis; + unsigned long t2=temp_millis; + long t_high = 0; + long t_low = 0; + + long bias, d; + float Ku, Tu; + float max = 0, min = 10000; + +#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + unsigned long extruder_autofan_last_check = millis(); +#endif + + if ((extruder >= EXTRUDERS) + #if (TEMP_BED_PIN <= -1) + ||(extruder < 0) + #endif + ){ + SERIAL_ECHOLN("PID Autotune failed. Bad extruder number."); + pid_tuning_finished = true; + pid_cycle = 0; + return; + } + + SERIAL_ECHOLN("PID Autotune start"); + + disable_heater(); // switch off all heaters. + + if (extruder<0) + { + soft_pwm_bed = (MAX_BED_POWER)/2; + bias = d = (MAX_BED_POWER)/2; + } + else + { + soft_pwm[extruder] = (PID_MAX)/2; + bias = d = (PID_MAX)/2; + } + + + + + for(;;) { + + if(temp_meas_ready == true) { // temp sample ready + updateTemperaturesFromRawValues(); + + input = (extruder<0)?current_temperature_bed:current_temperature[extruder]; + + max=max(max,input); + min=min(min,input); + + #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + if(millis() - extruder_autofan_last_check > 2500) { + checkExtruderAutoFans(); + extruder_autofan_last_check = millis(); + } + #endif + + if(heating == true && input > temp) { + if(millis() - t2 > 5000) { + heating=false; + if (extruder<0) + soft_pwm_bed = (bias - d) >> 1; + else + soft_pwm[extruder] = (bias - d) >> 1; + t1=millis(); + t_high=t1 - t2; + max=temp; + } + } + if(heating == false && input < temp) { + if(millis() - t1 > 5000) { + heating=true; + t2=millis(); + t_low=t2 - t1; + if(pid_cycle > 0) { + bias += (d*(t_high - t_low))/(t_low + t_high); + bias = constrain(bias, 20 ,(extruder<0?(MAX_BED_POWER):(PID_MAX))-20); + if(bias > (extruder<0?(MAX_BED_POWER):(PID_MAX))/2) d = (extruder<0?(MAX_BED_POWER):(PID_MAX)) - 1 - bias; + else d = bias; + + SERIAL_PROTOCOLPGM(" bias: "); SERIAL_PROTOCOL(bias); + SERIAL_PROTOCOLPGM(" d: "); SERIAL_PROTOCOL(d); + SERIAL_PROTOCOLPGM(" min: "); SERIAL_PROTOCOL(min); + SERIAL_PROTOCOLPGM(" max: "); SERIAL_PROTOCOLLN(max); + if(pid_cycle > 2) { + Ku = (4.0*d)/(3.14159*(max-min)/2.0); + Tu = ((float)(t_low + t_high)/1000.0); + SERIAL_PROTOCOLPGM(" Ku: "); SERIAL_PROTOCOL(Ku); + SERIAL_PROTOCOLPGM(" Tu: "); SERIAL_PROTOCOLLN(Tu); + _Kp = 0.6*Ku; + _Ki = 2*_Kp/Tu; + _Kd = _Kp*Tu/8; + SERIAL_PROTOCOLLNPGM(" Classic PID "); + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(_Kp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(_Ki); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(_Kd); + /* + _Kp = 0.33*Ku; + _Ki = _Kp/Tu; + _Kd = _Kp*Tu/3; + SERIAL_PROTOCOLLNPGM(" Some overshoot "); + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(_Kp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(_Ki); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(_Kd); + _Kp = 0.2*Ku; + _Ki = 2*_Kp/Tu; + _Kd = _Kp*Tu/3; + SERIAL_PROTOCOLLNPGM(" No overshoot "); + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(_Kp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(_Ki); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(_Kd); + */ + } + } + if (extruder<0) + soft_pwm_bed = (bias + d) >> 1; + else + soft_pwm[extruder] = (bias + d) >> 1; + pid_cycle++; + min=temp; + } + } + } + if(input > (temp + 20)) { + SERIAL_PROTOCOLLNPGM("PID Autotune failed! Temperature too high"); + pid_tuning_finished = true; + pid_cycle = 0; + return; + } + if(millis() - temp_millis > 2000) { + int p; + if (extruder<0){ + p=soft_pwm_bed; + SERIAL_PROTOCOLPGM("ok B:"); + }else{ + p=soft_pwm[extruder]; + SERIAL_PROTOCOLPGM("ok T:"); + } + + SERIAL_PROTOCOL(input); + SERIAL_PROTOCOLPGM(" @:"); + SERIAL_PROTOCOLLN(p); + + temp_millis = millis(); + } + if(((millis() - t1) + (millis() - t2)) > (10L*60L*1000L*2L)) { + SERIAL_PROTOCOLLNPGM("PID Autotune failed! timeout"); + pid_tuning_finished = true; + pid_cycle = 0; + return; + } + if(pid_cycle > ncycles) { + SERIAL_PROTOCOLLNPGM("PID Autotune finished! Put the last Kp, Ki and Kd constants from above into Configuration.h"); + pid_tuning_finished = true; + pid_cycle = 0; + return; + } + lcd_update(); + } +} + +void updatePID() +{ +#ifdef PIDTEMP + for(int e = 0; e < EXTRUDERS; e++) { + temp_iState_max[e] = PID_INTEGRAL_DRIVE_MAX / Ki; + } +#endif +#ifdef PIDTEMPBED + temp_iState_max_bed = PID_INTEGRAL_DRIVE_MAX / bedKi; +#endif +} + +int getHeaterPower(int heater) { + if (heater<0) + return soft_pwm_bed; + return soft_pwm[heater]; +} + +#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + + #if defined(FAN_PIN) && FAN_PIN > -1 + #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN + #error "You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN" + #endif + #if EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN + #error "You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN" + #endif + #if EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN + #error "You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN" + #endif + #endif + +void setExtruderAutoFanState(int pin, bool state) +{ + unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0; + // this idiom allows both digital and PWM fan outputs (see M42 handling). + pinMode(pin, OUTPUT); + digitalWrite(pin, newFanSpeed); + analogWrite(pin, newFanSpeed); +} + +void checkExtruderAutoFans() +{ + uint8_t fanState = 0; + + // which fan pins need to be turned on? + #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 + if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE) + fanState |= 1; + #endif + #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1 + if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) + { + if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) + fanState |= 1; + else + fanState |= 2; + } + #endif + #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1 + if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) + { + if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) + fanState |= 1; + else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) + fanState |= 2; + else + fanState |= 4; + } + #endif + + // update extruder auto fan states + #if defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1 + setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0); + #endif + #if defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1 + if (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) + setExtruderAutoFanState(EXTRUDER_1_AUTO_FAN_PIN, (fanState & 2) != 0); + #endif + #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1 + if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN + && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN) + setExtruderAutoFanState(EXTRUDER_2_AUTO_FAN_PIN, (fanState & 4) != 0); + #endif +} + +#endif // any extruder auto fan pins set + +void manage_heater() +{ + float pid_input; + float pid_output; + + if(temp_meas_ready != true) //better readability + return; + + updateTemperaturesFromRawValues(); + +#ifdef TEMP_RUNAWAY_BED_HYSTERESIS + temp_runaway_check(0, target_temperature_bed, current_temperature_bed, (int)soft_pwm_bed, true); +#endif + + for(int e = 0; e < EXTRUDERS; e++) + { + +#ifdef TEMP_RUNAWAY_EXTRUDER_HYSTERESIS + temp_runaway_check(e+1, target_temperature[e], current_temperature[e], (int)soft_pwm[e], false); +#endif + + #ifdef PIDTEMP + pid_input = current_temperature[e]; + + #ifndef PID_OPENLOOP + pid_error[e] = target_temperature[e] - pid_input; + if(pid_error[e] > PID_FUNCTIONAL_RANGE) { + pid_output = BANG_MAX; + pid_reset[e] = true; + } + else if(pid_error[e] < -PID_FUNCTIONAL_RANGE || target_temperature[e] == 0) { + pid_output = 0; + pid_reset[e] = true; + } + else { + if(pid_reset[e] == true) { + temp_iState[e] = 0.0; + pid_reset[e] = false; + } + pTerm[e] = Kp * pid_error[e]; + temp_iState[e] += pid_error[e]; + temp_iState[e] = constrain(temp_iState[e], temp_iState_min[e], temp_iState_max[e]); + iTerm[e] = Ki * temp_iState[e]; + + //K1 defined in Configuration.h in the PID settings + #define K2 (1.0-K1) + dTerm[e] = (Kd * (pid_input - temp_dState[e]))*K2 + (K1 * dTerm[e]); + pid_output = pTerm[e] + iTerm[e] - dTerm[e]; + if (pid_output > PID_MAX) { + if (pid_error[e] > 0 ) temp_iState[e] -= pid_error[e]; // conditional un-integration + pid_output=PID_MAX; + } else if (pid_output < 0){ + if (pid_error[e] < 0 ) temp_iState[e] -= pid_error[e]; // conditional un-integration + pid_output=0; + } + } + temp_dState[e] = pid_input; + #else + pid_output = constrain(target_temperature[e], 0, PID_MAX); + #endif //PID_OPENLOOP + #ifdef PID_DEBUG + SERIAL_ECHO_START; + SERIAL_ECHO(" PID_DEBUG "); + SERIAL_ECHO(e); + SERIAL_ECHO(": Input "); + SERIAL_ECHO(pid_input); + SERIAL_ECHO(" Output "); + SERIAL_ECHO(pid_output); + SERIAL_ECHO(" pTerm "); + SERIAL_ECHO(pTerm[e]); + SERIAL_ECHO(" iTerm "); + SERIAL_ECHO(iTerm[e]); + SERIAL_ECHO(" dTerm "); + SERIAL_ECHOLN(dTerm[e]); + #endif //PID_DEBUG + #else /* PID off */ + pid_output = 0; + if(current_temperature[e] < target_temperature[e]) { + pid_output = PID_MAX; + } + #endif + + // Check if temperature is within the correct range + if((current_temperature[e] > minttemp[e]) && (current_temperature[e] < maxttemp[e])) + { + soft_pwm[e] = (int)pid_output >> 1; + } + else { + soft_pwm[e] = 0; + } + + #ifdef WATCH_TEMP_PERIOD + if(watchmillis[e] && millis() - watchmillis[e] > WATCH_TEMP_PERIOD) + { + if(degHotend(e) < watch_start_temp[e] + WATCH_TEMP_INCREASE) + { + setTargetHotend(0, e); + LCD_MESSAGEPGM("Heating failed"); + SERIAL_ECHO_START; + SERIAL_ECHOLN("Heating failed"); + }else{ + watchmillis[e] = 0; + } + } + #endif + #ifdef TEMP_SENSOR_1_AS_REDUNDANT + if(fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) { + disable_heater(); + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is too high !"); + LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR"); + } + #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); + #endif + } + #endif + } // End extruder for loop + + #if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_1_AUTO_FAN_PIN) && EXTRUDER_1_AUTO_FAN_PIN > -1) || \ + (defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1) + if(millis() - extruder_autofan_last_check > 2500) // only need to check fan state very infrequently + { + checkExtruderAutoFans(); + extruder_autofan_last_check = millis(); + } + #endif + + #ifndef PIDTEMPBED + if(millis() - previous_millis_bed_heater < BED_CHECK_INTERVAL) + return; + previous_millis_bed_heater = millis(); + #endif + + #if TEMP_SENSOR_BED != 0 + + #ifdef PIDTEMPBED + pid_input = current_temperature_bed; + + #ifndef PID_OPENLOOP + pid_error_bed = target_temperature_bed - pid_input; + pTerm_bed = bedKp * pid_error_bed; + temp_iState_bed += pid_error_bed; + temp_iState_bed = constrain(temp_iState_bed, temp_iState_min_bed, temp_iState_max_bed); + iTerm_bed = bedKi * temp_iState_bed; + + //K1 defined in Configuration.h in the PID settings + #define K2 (1.0-K1) + dTerm_bed= (bedKd * (pid_input - temp_dState_bed))*K2 + (K1 * dTerm_bed); + temp_dState_bed = pid_input; + + pid_output = pTerm_bed + iTerm_bed - dTerm_bed; + if (pid_output > MAX_BED_POWER) { + if (pid_error_bed > 0 ) temp_iState_bed -= pid_error_bed; // conditional un-integration + pid_output=MAX_BED_POWER; + } else if (pid_output < 0){ + if (pid_error_bed < 0 ) temp_iState_bed -= pid_error_bed; // conditional un-integration + pid_output=0; + } + + #else + pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER); + #endif //PID_OPENLOOP + + if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) + { + soft_pwm_bed = (int)pid_output >> 1; + } + else { + soft_pwm_bed = 0; + } + + #elif !defined(BED_LIMIT_SWITCHING) + // Check if temperature is within the correct range + if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) + { + if(current_temperature_bed >= target_temperature_bed) + { + soft_pwm_bed = 0; + } + else + { + soft_pwm_bed = MAX_BED_POWER>>1; + } + } + else + { + soft_pwm_bed = 0; + WRITE(HEATER_BED_PIN,LOW); + } + #else //#ifdef BED_LIMIT_SWITCHING + // Check if temperature is within the correct band + if((current_temperature_bed > BED_MINTEMP) && (current_temperature_bed < BED_MAXTEMP)) + { + if(current_temperature_bed > target_temperature_bed + BED_HYSTERESIS) + { + soft_pwm_bed = 0; + } + else if(current_temperature_bed <= target_temperature_bed - BED_HYSTERESIS) + { + soft_pwm_bed = MAX_BED_POWER>>1; + } + } + else + { + soft_pwm_bed = 0; + WRITE(HEATER_BED_PIN,LOW); + } + #endif + #endif + +//code for controlling the extruder rate based on the width sensor +#ifdef FILAMENT_SENSOR + if(filament_sensor) + { + meas_shift_index=delay_index1-meas_delay_cm; + if(meas_shift_index<0) + meas_shift_index = meas_shift_index + (MAX_MEASUREMENT_DELAY+1); //loop around buffer if needed + + //get the delayed info and add 100 to reconstitute to a percent of the nominal filament diameter + //then square it to get an area + + if(meas_shift_index<0) + meas_shift_index=0; + else if (meas_shift_index>MAX_MEASUREMENT_DELAY) + meas_shift_index=MAX_MEASUREMENT_DELAY; + + volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] = pow((float)(100+measurement_delay[meas_shift_index])/100.0,2); + if (volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] <0.01) + volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]=0.01; + } +#endif +} + +#define PGM_RD_W(x) (short)pgm_read_word(&x) +// Derived from RepRap FiveD extruder::getTemperature() +// For hot end temperature measurement. +static float analog2temp(int raw, uint8_t e) { +#ifdef TEMP_SENSOR_1_AS_REDUNDANT + if(e > EXTRUDERS) +#else + if(e >= EXTRUDERS) +#endif + { + SERIAL_ERROR_START; + SERIAL_ERROR((int)e); + SERIAL_ERRORLNPGM(" - Invalid extruder number !"); + kill(); + return 0.0; + } + #ifdef HEATER_0_USES_MAX6675 + if (e == 0) + { + return 0.25 * raw; + } + #endif + + if(heater_ttbl_map[e] != NULL) + { + float celsius = 0; + uint8_t i; + short (*tt)[][2] = (short (*)[][2])(heater_ttbl_map[e]); + + for (i=1; i raw) + { + celsius = PGM_RD_W((*tt)[i-1][1]) + + (raw - PGM_RD_W((*tt)[i-1][0])) * + (float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i-1][1])) / + (float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i-1][0])); + break; + } + } + + // Overflow: Set to last value in the table + if (i == heater_ttbllen_map[e]) celsius = PGM_RD_W((*tt)[i-1][1]); + + return celsius; + } + return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET; +} + +// Derived from RepRap FiveD extruder::getTemperature() +// For bed temperature measurement. +static float analog2tempBed(int raw) { + #ifdef BED_USES_THERMISTOR + float celsius = 0; + byte i; + + for (i=1; i raw) + { + celsius = PGM_RD_W(BEDTEMPTABLE[i-1][1]) + + (raw - PGM_RD_W(BEDTEMPTABLE[i-1][0])) * + (float)(PGM_RD_W(BEDTEMPTABLE[i][1]) - PGM_RD_W(BEDTEMPTABLE[i-1][1])) / + (float)(PGM_RD_W(BEDTEMPTABLE[i][0]) - PGM_RD_W(BEDTEMPTABLE[i-1][0])); + break; + } + } + + // Overflow: Set to last value in the table + if (i == BEDTEMPTABLE_LEN) celsius = PGM_RD_W(BEDTEMPTABLE[i-1][1]); + + + // temperature offset adjustment +#ifdef BED_OFFSET + float _offset = BED_OFFSET; + float _offset_center = BED_OFFSET_CENTER; + float _offset_start = BED_OFFSET_START; + float _first_koef = (_offset / 2) / (_offset_center - _offset_start); + float _second_koef = (_offset / 2) / (100 - _offset_center); + + + if (celsius >= _offset_start && celsius <= _offset_center) + { + celsius = celsius + (_first_koef * (celsius - _offset_start)); + } + else if (celsius > _offset_center && celsius <= 100) + { + celsius = celsius + (_first_koef * (_offset_center - _offset_start)) + ( _second_koef * ( celsius - ( 100 - _offset_center ) )) ; + } + else if (celsius > 100) + { + celsius = celsius + _offset; + } +#endif + + + return celsius; + #elif defined BED_USES_AD595 + return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET; + #else + return 0; + #endif +} + +/* Called to get the raw values into the the actual temperatures. The raw values are created in interrupt context, + and this function is called from normal context as it is too slow to run in interrupts and will block the stepper routine otherwise */ +static void updateTemperaturesFromRawValues() +{ + for(uint8_t e=0;e -1) //check if a sensor is supported + filament_width_meas = analog2widthFil(); + #endif + //Reset the watchdog after we know we have a temperature measurement. + watchdog_reset(); + + CRITICAL_SECTION_START; + temp_meas_ready = false; + CRITICAL_SECTION_END; +} + + +// For converting raw Filament Width to milimeters +#ifdef FILAMENT_SENSOR +float analog2widthFil() { +return current_raw_filwidth/16383.0*5.0; +//return current_raw_filwidth; +} + +// For converting raw Filament Width to a ratio +int widthFil_to_size_ratio() { + +float temp; + +temp=filament_width_meas; +if(filament_width_measMEASURED_UPPER_LIMIT) + temp= MEASURED_UPPER_LIMIT; + + +return(filament_width_nominal/temp*100); + + +} +#endif + + + + + +void tp_init() +{ +#if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) + //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector + MCUCR=(1< -1) + SET_OUTPUT(HEATER_0_PIN); + #endif + #if defined(HEATER_1_PIN) && (HEATER_1_PIN > -1) + SET_OUTPUT(HEATER_1_PIN); + #endif + #if defined(HEATER_2_PIN) && (HEATER_2_PIN > -1) + SET_OUTPUT(HEATER_2_PIN); + #endif + #if defined(HEATER_BED_PIN) && (HEATER_BED_PIN > -1) + SET_OUTPUT(HEATER_BED_PIN); + #endif + #if defined(FAN_PIN) && (FAN_PIN > -1) + SET_OUTPUT(FAN_PIN); + #ifdef FAST_PWM_FAN + setPwmFrequency(FAN_PIN, 1); // No prescaling. Pwm frequency = F_CPU/256/8 + #endif + #ifdef FAN_SOFT_PWM + soft_pwm_fan = fanSpeedSoftPwm / 2; + #endif + #endif + + #ifdef HEATER_0_USES_MAX6675 + #ifndef SDSUPPORT + SET_OUTPUT(SCK_PIN); + WRITE(SCK_PIN,0); + + SET_OUTPUT(MOSI_PIN); + WRITE(MOSI_PIN,1); + + SET_INPUT(MISO_PIN); + WRITE(MISO_PIN,1); + #endif + /* Using pinMode and digitalWrite, as that was the only way I could get it to compile */ + + //Have to toggle SD card CS pin to low first, to enable firmware to talk with SD card + pinMode(SS_PIN, OUTPUT); + digitalWrite(SS_PIN,0); + pinMode(MAX6675_SS, OUTPUT); + digitalWrite(MAX6675_SS,1); + #endif + + // Set analog inputs + ADCSRA = 1< -1) + #if TEMP_0_PIN < 8 + DIDR0 |= 1 << TEMP_0_PIN; + #else + DIDR2 |= 1<<(TEMP_0_PIN - 8); + #endif + #endif + #if defined(TEMP_1_PIN) && (TEMP_1_PIN > -1) + #if TEMP_1_PIN < 8 + DIDR0 |= 1< -1) + #if TEMP_2_PIN < 8 + DIDR0 |= 1 << TEMP_2_PIN; + #else + DIDR2 |= 1<<(TEMP_2_PIN - 8); + #endif + #endif + #if defined(TEMP_BED_PIN) && (TEMP_BED_PIN > -1) + #if TEMP_BED_PIN < 8 + DIDR0 |= 1< -1) + #if FILWIDTH_PIN < 8 + DIDR0 |= 1< HEATER_0_MAXTEMP) { +#if HEATER_0_RAW_LO_TEMP < HEATER_0_RAW_HI_TEMP + maxttemp_raw[0] -= OVERSAMPLENR; +#else + maxttemp_raw[0] += OVERSAMPLENR; +#endif + } +#endif //MAXTEMP + +#if (EXTRUDERS > 1) && defined(HEATER_1_MINTEMP) + minttemp[1] = HEATER_1_MINTEMP; + while(analog2temp(minttemp_raw[1], 1) < HEATER_1_MINTEMP) { +#if HEATER_1_RAW_LO_TEMP < HEATER_1_RAW_HI_TEMP + minttemp_raw[1] += OVERSAMPLENR; +#else + minttemp_raw[1] -= OVERSAMPLENR; +#endif + } +#endif // MINTEMP 1 +#if (EXTRUDERS > 1) && defined(HEATER_1_MAXTEMP) + maxttemp[1] = HEATER_1_MAXTEMP; + while(analog2temp(maxttemp_raw[1], 1) > HEATER_1_MAXTEMP) { +#if HEATER_1_RAW_LO_TEMP < HEATER_1_RAW_HI_TEMP + maxttemp_raw[1] -= OVERSAMPLENR; +#else + maxttemp_raw[1] += OVERSAMPLENR; +#endif + } +#endif //MAXTEMP 1 + +#if (EXTRUDERS > 2) && defined(HEATER_2_MINTEMP) + minttemp[2] = HEATER_2_MINTEMP; + while(analog2temp(minttemp_raw[2], 2) < HEATER_2_MINTEMP) { +#if HEATER_2_RAW_LO_TEMP < HEATER_2_RAW_HI_TEMP + minttemp_raw[2] += OVERSAMPLENR; +#else + minttemp_raw[2] -= OVERSAMPLENR; +#endif + } +#endif //MINTEMP 2 +#if (EXTRUDERS > 2) && defined(HEATER_2_MAXTEMP) + maxttemp[2] = HEATER_2_MAXTEMP; + while(analog2temp(maxttemp_raw[2], 2) > HEATER_2_MAXTEMP) { +#if HEATER_2_RAW_LO_TEMP < HEATER_2_RAW_HI_TEMP + maxttemp_raw[2] -= OVERSAMPLENR; +#else + maxttemp_raw[2] += OVERSAMPLENR; +#endif + } +#endif //MAXTEMP 2 + +#ifdef BED_MINTEMP + /* No bed MINTEMP error implemented?!? */ + while(analog2tempBed(bed_minttemp_raw) < BED_MINTEMP) { +#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP + bed_minttemp_raw += OVERSAMPLENR; +#else + bed_minttemp_raw -= OVERSAMPLENR; +#endif + } + +#endif //BED_MINTEMP +#ifdef BED_MAXTEMP + while(analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) { +#if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP + bed_maxttemp_raw -= OVERSAMPLENR; +#else + bed_maxttemp_raw += OVERSAMPLENR; +#endif + } +#endif //BED_MAXTEMP +} + +void setWatch() +{ +#ifdef WATCH_TEMP_PERIOD + for (int e = 0; e < EXTRUDERS; e++) + { + if(degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) + { + watch_start_temp[e] = degHotend(e); + watchmillis[e] = millis(); + } + } +#endif +} + +#if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) +void temp_runaway_check(int _heater_id, float _target_temperature, float _current_temperature, float _output, bool _isbed) +{ + float __hysteresis = 0; + int __timeout = 0; + bool temp_runaway_check_active = false; + static float __preheat_start[2] = { 0,0}; //currently just bed and one extruder + static int __preheat_counter[2] = { 0,0}; + static int __preheat_errors[2] = { 0,0}; + + +#ifdef TEMP_RUNAWAY_BED_TIMEOUT + if (_isbed) + { + __hysteresis = TEMP_RUNAWAY_BED_HYSTERESIS; + __timeout = TEMP_RUNAWAY_BED_TIMEOUT; + } +#endif +#ifdef TEMP_RUNAWAY_EXTRUDER_TIMEOUT + if (!_isbed) + { + __hysteresis = TEMP_RUNAWAY_EXTRUDER_HYSTERESIS; + __timeout = TEMP_RUNAWAY_EXTRUDER_TIMEOUT; + } +#endif + + if (millis() - temp_runaway_timer[_heater_id] > 2000) + { + + temp_runaway_timer[_heater_id] = millis(); + if (_output == 0) + { + temp_runaway_check_active = false; + temp_runaway_error_counter[_heater_id] = 0; + } + + if (temp_runaway_target[_heater_id] != _target_temperature) + { + if (_target_temperature > 0) + { + temp_runaway_status[_heater_id] = TempRunaway_PREHEAT; + temp_runaway_target[_heater_id] = _target_temperature; + __preheat_start[_heater_id] = _current_temperature; + __preheat_counter[_heater_id] = 0; + } + else + { + temp_runaway_status[_heater_id] = TempRunaway_INACTIVE; + temp_runaway_target[_heater_id] = _target_temperature; + } + } + + if (temp_runaway_status[_heater_id] == TempRunaway_PREHEAT) + { + if (_current_temperature < ((_isbed) ? (0.8 * _target_temperature) : 150)) //check only in area where temperature is changing fastly for heater, check to 0.8 x target temperature for bed + { + __preheat_counter[_heater_id]++; + //SERIAL_ECHOPGM("counter[0]:"); MYSERIAL.println(__preheat_counter[0]); + //SERIAL_ECHOPGM("counter[1]:"); MYSERIAL.println(__preheat_counter[1]); + //SERIAL_ECHOPGM("_isbed"); MYSERIAL.println(_isbed); + if (__preheat_counter[_heater_id] > ((_isbed) ? 16 : 8)) // periodicaly check if current temperature changes + { + /*SERIAL_ECHOLNPGM("Heater:"); + MYSERIAL.print(_heater_id); + SERIAL_ECHOPGM(" Current temperature:"); + MYSERIAL.print(_current_temperature); + SERIAL_ECHOPGM(" Tstart:"); + MYSERIAL.print(__preheat_start[_heater_id]);*/ + + if (_current_temperature - __preheat_start[_heater_id] < 2) { + __preheat_errors[_heater_id]++; + /*SERIAL_ECHOPGM(" Preheat errors:"); + MYSERIAL.println(__preheat_errors[_heater_id]);*/ + } + else { + //SERIAL_ECHOLNPGM(""); + __preheat_errors[_heater_id] = 0; + } + + if (__preheat_errors[_heater_id] > ((_isbed) ? 2 : 5)) + { + if (farm_mode) { prusa_statistics(0); } + temp_runaway_stop(true, _isbed); + if (farm_mode) { prusa_statistics(91); } + } + __preheat_start[_heater_id] = _current_temperature; + __preheat_counter[_heater_id] = 0; + } + } + } + + if (_current_temperature >= _target_temperature && temp_runaway_status[_heater_id] == TempRunaway_PREHEAT) + { + temp_runaway_status[_heater_id] = TempRunaway_ACTIVE; + temp_runaway_check_active = false; + } + + if (!temp_runaway_check_active && _output > 0) + { + temp_runaway_check_active = true; + } + + + if (temp_runaway_check_active) + { + // we are in range + if (_target_temperature - __hysteresis < _current_temperature && _current_temperature < _target_temperature + __hysteresis) + { + temp_runaway_check_active = false; + temp_runaway_error_counter[_heater_id] = 0; + } + else + { + if (temp_runaway_status[_heater_id] > TempRunaway_PREHEAT) + { + temp_runaway_error_counter[_heater_id]++; + if (temp_runaway_error_counter[_heater_id] * 2 > __timeout) + { + if (farm_mode) { prusa_statistics(0); } + temp_runaway_stop(false, _isbed); + if (farm_mode) { prusa_statistics(90); } + } + } + } + } + + } +} + +void temp_runaway_stop(bool isPreheat, bool isBed) +{ + cancel_heatup = true; + quickStop(); + if (card.sdprinting) + { + card.sdprinting = false; + card.closefile(); + } + + disable_heater(); + disable_x(); + disable_y(); + disable_e0(); + disable_e1(); + disable_e2(); + manage_heater(); + lcd_update(); + WRITE(BEEPER, HIGH); + delayMicroseconds(500); + WRITE(BEEPER, LOW); + delayMicroseconds(100); + + if (isPreheat) + { + Stop(); + isBed ? LCD_ALERTMESSAGEPGM("BED PREHEAT ERROR") : LCD_ALERTMESSAGEPGM("PREHEAT ERROR"); + SERIAL_ERROR_START; + isBed ? SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HEATBED)") : SERIAL_ERRORLNPGM(" THERMAL RUNAWAY ( PREHEAT HOTEND)"); + SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); + SET_OUTPUT(FAN_PIN); + WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1); + analogWrite(FAN_PIN, 255); + fanSpeed = 255; + delayMicroseconds(2000); + } + else + { + isBed ? LCD_ALERTMESSAGEPGM("BED THERMAL RUNAWAY") : LCD_ALERTMESSAGEPGM("THERMAL RUNAWAY"); + SERIAL_ERROR_START; + isBed ? SERIAL_ERRORLNPGM(" HEATBED THERMAL RUNAWAY") : SERIAL_ERRORLNPGM(" HOTEND THERMAL RUNAWAY"); + } +} +#endif + + +void disable_heater() +{ + for(int i=0;i -1 + target_temperature[0]=0; + soft_pwm[0]=0; + #if defined(HEATER_0_PIN) && HEATER_0_PIN > -1 + WRITE(HEATER_0_PIN,LOW); + #endif + #endif + + #if defined(TEMP_1_PIN) && TEMP_1_PIN > -1 && EXTRUDERS > 1 + target_temperature[1]=0; + soft_pwm[1]=0; + #if defined(HEATER_1_PIN) && HEATER_1_PIN > -1 + WRITE(HEATER_1_PIN,LOW); + #endif + #endif + + #if defined(TEMP_2_PIN) && TEMP_2_PIN > -1 && EXTRUDERS > 2 + target_temperature[2]=0; + soft_pwm[2]=0; + #if defined(HEATER_2_PIN) && HEATER_2_PIN > -1 + WRITE(HEATER_2_PIN,LOW); + #endif + #endif + + #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1 + target_temperature_bed=0; + soft_pwm_bed=0; + #if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 + WRITE(HEATER_BED_PIN,LOW); + #endif + #endif +} + +void max_temp_error(uint8_t e) { + disable_heater(); + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLN((int)e); + SERIAL_ERRORLNPGM(": Extruder switched off. MAXTEMP triggered !"); + LCD_ALERTMESSAGEPGM("Err: MAXTEMP"); + } + #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); + + + + #endif + SET_OUTPUT(EXTRUDER_0_AUTO_FAN_PIN); + SET_OUTPUT(FAN_PIN); + SET_OUTPUT(BEEPER); + WRITE(FAN_PIN, 1); + WRITE(EXTRUDER_0_AUTO_FAN_PIN, 1); + WRITE(BEEPER, 1); + // fanSpeed will consumed by the check_axes_activity() routine. + fanSpeed=255; + if (farm_mode) { prusa_statistics(93); } +} + +void min_temp_error(uint8_t e) { + disable_heater(); + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLN((int)e); + SERIAL_ERRORLNPGM(": Extruder switched off. MINTEMP triggered !"); + LCD_ALERTMESSAGEPGM("Err: MINTEMP"); + } + #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); + #endif + if (farm_mode) { prusa_statistics(92); } + +} + +void bed_max_temp_error(void) { +#if HEATER_BED_PIN > -1 + WRITE(HEATER_BED_PIN, 0); +#endif + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM("Temperature heated bed switched off. MAXTEMP triggered !"); + LCD_ALERTMESSAGEPGM("Err: MAXTEMP BED"); + } + #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); + #endif + +} + +void bed_min_temp_error(void) { +#if HEATER_BED_PIN > -1 + WRITE(HEATER_BED_PIN, 0); +#endif + if(IsStopped() == false) { + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM("Temperature heated bed switched off. MINTEMP triggered !"); + LCD_ALERTMESSAGEPGM("Err: MINTEMP BED"); + } +#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + Stop(); +#endif +} + +#ifdef HEATER_0_USES_MAX6675 +#define MAX6675_HEAT_INTERVAL 250 +long max6675_previous_millis = MAX6675_HEAT_INTERVAL; +int max6675_temp = 2000; + +int read_max6675() +{ + if (millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL) + return max6675_temp; + + max6675_previous_millis = millis(); + max6675_temp = 0; + + #ifdef PRR + PRR &= ~(1<> 3; + } + + return max6675_temp; +} +#endif + + +// Timer 0 is shared with millies +ISR(TIMER0_COMPB_vect) +{ + //these variables are only accesible from the ISR, but static, so they don't lose their value + static unsigned char temp_count = 0; + static unsigned long raw_temp_0_value = 0; + static unsigned long raw_temp_1_value = 0; + static unsigned long raw_temp_2_value = 0; + static unsigned long raw_temp_bed_value = 0; + static unsigned char temp_state = 10; + static unsigned char pwm_count = (1 << SOFT_PWM_SCALE); + static unsigned char soft_pwm_0; +#ifdef SLOW_PWM_HEATERS + static unsigned char slow_pwm_count = 0; + static unsigned char state_heater_0 = 0; + static unsigned char state_timer_heater_0 = 0; +#endif +#if (EXTRUDERS > 1) || defined(HEATERS_PARALLEL) + static unsigned char soft_pwm_1; +#ifdef SLOW_PWM_HEATERS + static unsigned char state_heater_1 = 0; + static unsigned char state_timer_heater_1 = 0; +#endif +#endif +#if EXTRUDERS > 2 + static unsigned char soft_pwm_2; +#ifdef SLOW_PWM_HEATERS + static unsigned char state_heater_2 = 0; + static unsigned char state_timer_heater_2 = 0; +#endif +#endif +#if HEATER_BED_PIN > -1 + static unsigned char soft_pwm_b; +#ifdef SLOW_PWM_HEATERS + static unsigned char state_heater_b = 0; + static unsigned char state_timer_heater_b = 0; +#endif +#endif + +#if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1) + static unsigned long raw_filwidth_value = 0; //added for filament width sensor +#endif + +#ifndef SLOW_PWM_HEATERS + /* + * standard PWM modulation + */ + if(pwm_count == 0){ + soft_pwm_0 = soft_pwm[0]; + if(soft_pwm_0 > 0) { + WRITE(HEATER_0_PIN,1); +#ifdef HEATERS_PARALLEL + WRITE(HEATER_1_PIN,1); +#endif + } else WRITE(HEATER_0_PIN,0); + +#if EXTRUDERS > 1 + soft_pwm_1 = soft_pwm[1]; + if(soft_pwm_1 > 0) WRITE(HEATER_1_PIN,1); else WRITE(HEATER_1_PIN,0); +#endif +#if EXTRUDERS > 2 + soft_pwm_2 = soft_pwm[2]; + if(soft_pwm_2 > 0) WRITE(HEATER_2_PIN,1); else WRITE(HEATER_2_PIN,0); +#endif +#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 + soft_pwm_b = soft_pwm_bed; + if(soft_pwm_b > 0) WRITE(HEATER_BED_PIN,1); else WRITE(HEATER_BED_PIN,0); +#endif +#ifdef FAN_SOFT_PWM + soft_pwm_fan = fanSpeedSoftPwm / 2; + if(soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0); +#endif + } + if(soft_pwm_0 < pwm_count) { + WRITE(HEATER_0_PIN,0); +#ifdef HEATERS_PARALLEL + WRITE(HEATER_1_PIN,0); +#endif + } +#if EXTRUDERS > 1 + if(soft_pwm_1 < pwm_count) WRITE(HEATER_1_PIN,0); +#endif +#if EXTRUDERS > 2 + if(soft_pwm_2 < pwm_count) WRITE(HEATER_2_PIN,0); +#endif +#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 + if(soft_pwm_b < pwm_count) WRITE(HEATER_BED_PIN,0); +#endif +#ifdef FAN_SOFT_PWM + if(soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0); +#endif + + pwm_count += (1 << SOFT_PWM_SCALE); + pwm_count &= 0x7f; + +#else //ifndef SLOW_PWM_HEATERS + /* + * SLOW PWM HEATERS + * + * for heaters drived by relay + */ +#ifndef MIN_STATE_TIME +#define MIN_STATE_TIME 16 // MIN_STATE_TIME * 65.5 = time in milliseconds +#endif + if (slow_pwm_count == 0) { + // EXTRUDER 0 + soft_pwm_0 = soft_pwm[0]; + if (soft_pwm_0 > 0) { + // turn ON heather only if the minimum time is up + if (state_timer_heater_0 == 0) { + // if change state set timer + if (state_heater_0 == 0) { + state_timer_heater_0 = MIN_STATE_TIME; + } + state_heater_0 = 1; + WRITE(HEATER_0_PIN, 1); +#ifdef HEATERS_PARALLEL + WRITE(HEATER_1_PIN, 1); +#endif + } + } else { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_0 == 0) { + // if change state set timer + if (state_heater_0 == 1) { + state_timer_heater_0 = MIN_STATE_TIME; + } + state_heater_0 = 0; + WRITE(HEATER_0_PIN, 0); +#ifdef HEATERS_PARALLEL + WRITE(HEATER_1_PIN, 0); +#endif + } + } + +#if EXTRUDERS > 1 + // EXTRUDER 1 + soft_pwm_1 = soft_pwm[1]; + if (soft_pwm_1 > 0) { + // turn ON heather only if the minimum time is up + if (state_timer_heater_1 == 0) { + // if change state set timer + if (state_heater_1 == 0) { + state_timer_heater_1 = MIN_STATE_TIME; + } + state_heater_1 = 1; + WRITE(HEATER_1_PIN, 1); + } + } else { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_1 == 0) { + // if change state set timer + if (state_heater_1 == 1) { + state_timer_heater_1 = MIN_STATE_TIME; + } + state_heater_1 = 0; + WRITE(HEATER_1_PIN, 0); + } + } +#endif + +#if EXTRUDERS > 2 + // EXTRUDER 2 + soft_pwm_2 = soft_pwm[2]; + if (soft_pwm_2 > 0) { + // turn ON heather only if the minimum time is up + if (state_timer_heater_2 == 0) { + // if change state set timer + if (state_heater_2 == 0) { + state_timer_heater_2 = MIN_STATE_TIME; + } + state_heater_2 = 1; + WRITE(HEATER_2_PIN, 1); + } + } else { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_2 == 0) { + // if change state set timer + if (state_heater_2 == 1) { + state_timer_heater_2 = MIN_STATE_TIME; + } + state_heater_2 = 0; + WRITE(HEATER_2_PIN, 0); + } + } +#endif + +#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 + // BED + soft_pwm_b = soft_pwm_bed; + if (soft_pwm_b > 0) { + // turn ON heather only if the minimum time is up + if (state_timer_heater_b == 0) { + // if change state set timer + if (state_heater_b == 0) { + state_timer_heater_b = MIN_STATE_TIME; + } + state_heater_b = 1; + WRITE(HEATER_BED_PIN, 1); + } + } else { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_b == 0) { + // if change state set timer + if (state_heater_b == 1) { + state_timer_heater_b = MIN_STATE_TIME; + } + state_heater_b = 0; + WRITE(HEATER_BED_PIN, 0); + } + } +#endif + } // if (slow_pwm_count == 0) + + // EXTRUDER 0 + if (soft_pwm_0 < slow_pwm_count) { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_0 == 0) { + // if change state set timer + if (state_heater_0 == 1) { + state_timer_heater_0 = MIN_STATE_TIME; + } + state_heater_0 = 0; + WRITE(HEATER_0_PIN, 0); +#ifdef HEATERS_PARALLEL + WRITE(HEATER_1_PIN, 0); +#endif + } + } + +#if EXTRUDERS > 1 + // EXTRUDER 1 + if (soft_pwm_1 < slow_pwm_count) { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_1 == 0) { + // if change state set timer + if (state_heater_1 == 1) { + state_timer_heater_1 = MIN_STATE_TIME; + } + state_heater_1 = 0; + WRITE(HEATER_1_PIN, 0); + } + } +#endif + +#if EXTRUDERS > 2 + // EXTRUDER 2 + if (soft_pwm_2 < slow_pwm_count) { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_2 == 0) { + // if change state set timer + if (state_heater_2 == 1) { + state_timer_heater_2 = MIN_STATE_TIME; + } + state_heater_2 = 0; + WRITE(HEATER_2_PIN, 0); + } + } +#endif + +#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 + // BED + if (soft_pwm_b < slow_pwm_count) { + // turn OFF heather only if the minimum time is up + if (state_timer_heater_b == 0) { + // if change state set timer + if (state_heater_b == 1) { + state_timer_heater_b = MIN_STATE_TIME; + } + state_heater_b = 0; + WRITE(HEATER_BED_PIN, 0); + } + } +#endif + +#ifdef FAN_SOFT_PWM + if (pwm_count == 0){ + soft_pwm_fan = fanSpeedSoftPwm / 2; + if (soft_pwm_fan > 0) WRITE(FAN_PIN,1); else WRITE(FAN_PIN,0); + } + if (soft_pwm_fan < pwm_count) WRITE(FAN_PIN,0); +#endif + + pwm_count += (1 << SOFT_PWM_SCALE); + pwm_count &= 0x7f; + + // increment slow_pwm_count only every 64 pwm_count circa 65.5ms + if ((pwm_count % 64) == 0) { + slow_pwm_count++; + slow_pwm_count &= 0x7f; + + // Extruder 0 + if (state_timer_heater_0 > 0) { + state_timer_heater_0--; + } + +#if EXTRUDERS > 1 + // Extruder 1 + if (state_timer_heater_1 > 0) + state_timer_heater_1--; +#endif + +#if EXTRUDERS > 2 + // Extruder 2 + if (state_timer_heater_2 > 0) + state_timer_heater_2--; +#endif + +#if defined(HEATER_BED_PIN) && HEATER_BED_PIN > -1 + // Bed + if (state_timer_heater_b > 0) + state_timer_heater_b--; +#endif + } //if ((pwm_count % 64) == 0) { + +#endif //ifndef SLOW_PWM_HEATERS + + switch(temp_state) { + case 0: // Prepare TEMP_0 + #if defined(TEMP_0_PIN) && (TEMP_0_PIN > -1) + #if TEMP_0_PIN > 7 + ADCSRB = 1< -1) + raw_temp_0_value += ADC; + #endif + #ifdef HEATER_0_USES_MAX6675 // TODO remove the blocking + raw_temp_0_value = read_max6675(); + #endif + temp_state = 2; + break; + case 2: // Prepare TEMP_BED + #if defined(TEMP_BED_PIN) && (TEMP_BED_PIN > -1) + #if TEMP_BED_PIN > 7 + ADCSRB = 1< -1) + raw_temp_bed_value += ADC; + #endif + temp_state = 4; + break; + case 4: // Prepare TEMP_1 + #if defined(TEMP_1_PIN) && (TEMP_1_PIN > -1) + #if TEMP_1_PIN > 7 + ADCSRB = 1< -1) + raw_temp_1_value += ADC; + #endif + temp_state = 6; + break; + case 6: // Prepare TEMP_2 + #if defined(TEMP_2_PIN) && (TEMP_2_PIN > -1) + #if TEMP_2_PIN > 7 + ADCSRB = 1< -1) + raw_temp_2_value += ADC; + #endif + temp_state = 8;//change so that Filament Width is also measured + + break; + case 8: //Prepare FILWIDTH + #if defined(FILWIDTH_PIN) && (FILWIDTH_PIN> -1) + #if FILWIDTH_PIN>7 + ADCSRB = 1< -1) + //raw_filwidth_value += ADC; //remove to use an IIR filter approach + if(ADC>102) //check that ADC is reading a voltage > 0.5 volts, otherwise don't take in the data. + { + raw_filwidth_value= raw_filwidth_value-(raw_filwidth_value>>7); //multipliy raw_filwidth_value by 127/128 + + raw_filwidth_value= raw_filwidth_value + ((unsigned long)ADC<<7); //add new ADC reading + } + #endif + temp_state = 0; + + temp_count++; + break; + + + case 10: //Startup, delay initial temp reading a tiny bit so the hardware can settle. + temp_state = 0; + break; +// default: +// SERIAL_ERROR_START; +// SERIAL_ERRORLNPGM("Temp measurement error!"); +// break; + } + + if(temp_count >= OVERSAMPLENR) // 10 * 16 * 1/(16000000/64/256) = 164ms. + { + if (!temp_meas_ready) //Only update the raw values if they have been read. Else we could be updating them during reading. + { + current_temperature_raw[0] = raw_temp_0_value; +#if EXTRUDERS > 1 + current_temperature_raw[1] = raw_temp_1_value; +#endif +#ifdef TEMP_SENSOR_1_AS_REDUNDANT + redundant_temperature_raw = raw_temp_1_value; +#endif +#if EXTRUDERS > 2 + current_temperature_raw[2] = raw_temp_2_value; +#endif + current_temperature_bed_raw = raw_temp_bed_value; + } + +//Add similar code for Filament Sensor - can be read any time since IIR filtering is used +#if defined(FILWIDTH_PIN) &&(FILWIDTH_PIN > -1) + current_raw_filwidth = raw_filwidth_value>>10; //need to divide to get to 0-16384 range since we used 1/128 IIR filter approach +#endif + + + temp_meas_ready = true; + temp_count = 0; + raw_temp_0_value = 0; + raw_temp_1_value = 0; + raw_temp_2_value = 0; + raw_temp_bed_value = 0; + +#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP + if(current_temperature_raw[0] <= maxttemp_raw[0]) { +#else + if(current_temperature_raw[0] >= maxttemp_raw[0]) { +#endif + max_temp_error(0); + } +#if HEATER_0_RAW_LO_TEMP > HEATER_0_RAW_HI_TEMP + if(current_temperature_raw[0] >= minttemp_raw[0]) { +#else + if(current_temperature_raw[0] <= minttemp_raw[0]) { +#endif + min_temp_error(0); + } +#if EXTRUDERS > 1 +#if HEATER_1_RAW_LO_TEMP > HEATER_1_RAW_HI_TEMP + if(current_temperature_raw[1] <= maxttemp_raw[1]) { +#else + if(current_temperature_raw[1] >= maxttemp_raw[1]) { +#endif + max_temp_error(1); + } +#if HEATER_1_RAW_LO_TEMP > HEATER_1_RAW_HI_TEMP + if(current_temperature_raw[1] >= minttemp_raw[1]) { +#else + if(current_temperature_raw[1] <= minttemp_raw[1]) { +#endif + min_temp_error(1); + } +#endif +#if EXTRUDERS > 2 +#if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP + if(current_temperature_raw[2] <= maxttemp_raw[2]) { +#else + if(current_temperature_raw[2] >= maxttemp_raw[2]) { +#endif + max_temp_error(2); + } +#if HEATER_2_RAW_LO_TEMP > HEATER_2_RAW_HI_TEMP + if(current_temperature_raw[2] >= minttemp_raw[2]) { +#else + if(current_temperature_raw[2] <= minttemp_raw[2]) { +#endif + min_temp_error(2); + } +#endif + + /* No bed MINTEMP error? */ + + +#if defined(BED_MAXTEMP) && (TEMP_SENSOR_BED != 0) +# if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP + if(current_temperature_bed_raw <= bed_maxttemp_raw) { +#else + if(current_temperature_bed_raw >= bed_maxttemp_raw) { +#endif + target_temperature_bed = 0; + bed_max_temp_error(); + } + } + +# if HEATER_BED_RAW_LO_TEMP > HEATER_BED_RAW_HI_TEMP + if(current_temperature_bed_raw >= bed_minttemp_raw) { +#else + if(current_temperature_bed_raw <= bed_minttemp_raw) { +#endif + bed_min_temp_error(); + } + +#endif + +#ifdef BABYSTEPPING + for(uint8_t axis=0;axis<3;axis++) + { + int curTodo=babystepsTodo[axis]; //get rid of volatile for performance + + if(curTodo>0) + { + babystep(axis,/*fwd*/true); + babystepsTodo[axis]--; //less to do next time + } + else + if(curTodo<0) + { + babystep(axis,/*fwd*/false); + babystepsTodo[axis]++; //less to do next time + } + } +#endif //BABYSTEPPING +} + +#ifdef PIDTEMP +// Apply the scale factors to the PID values + + +float scalePID_i(float i) +{ + return i*PID_dT; +} + +float unscalePID_i(float i) +{ + return i/PID_dT; +} + +float scalePID_d(float d) +{ + return d/PID_dT; +} + +float unscalePID_d(float d) +{ + return d*PID_dT; +} + +#endif //PIDTEMP + + diff --git a/Firmware/temperature.h b/Firmware/temperature.h index 9e2a03cd7..4daae539d 100644 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -1,211 +1,211 @@ -/* - temperature.h - temperature controller - Part of Marlin - - Copyright (c) 2011 Erik van der Zalm - - Grbl 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. - - Grbl 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 Grbl. If not, see . -*/ - -#ifndef temperature_h -#define temperature_h - -#include "Marlin.h" -#include "planner.h" -#ifdef PID_ADD_EXTRUSION_RATE - #include "stepper.h" -#endif - -// public functions -void tp_init(); //initialize the heating -void manage_heater(); //it is critical that this is called periodically. - -#ifdef FILAMENT_SENSOR -// For converting raw Filament Width to milimeters - float analog2widthFil(); - -// For converting raw Filament Width to an extrusion ratio - int widthFil_to_size_ratio(); -#endif - -// low level conversion routines -// do not use these routines and variables outside of temperature.cpp -extern int target_temperature[EXTRUDERS]; -extern float current_temperature[EXTRUDERS]; -#ifdef SHOW_TEMP_ADC_VALUES - extern int current_temperature_raw[EXTRUDERS]; - extern int current_temperature_bed_raw; -#endif -extern int target_temperature_bed; -extern float current_temperature_bed; -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - extern float redundant_temperature; -#endif - -#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1 - extern unsigned char soft_pwm_bed; -#endif - -#ifdef PIDTEMP - extern int pid_cycle, pid_number_of_cycles; - extern float Kp,Ki,Kd,Kc,_Kp,_Ki,_Kd; - extern bool pid_tuning_finished; - float scalePID_i(float i); - float scalePID_d(float d); - float unscalePID_i(float i); - float unscalePID_d(float d); - -#endif -#ifdef PIDTEMPBED - extern float bedKp,bedKi,bedKd; -#endif - - -#ifdef BABYSTEPPING - extern volatile int babystepsTodo[3]; -#endif - -inline void babystepsTodoZadd(int n) -{ - if (n != 0) { - CRITICAL_SECTION_START - babystepsTodo[Z_AXIS] += n; - CRITICAL_SECTION_END - } -} - -inline void babystepsTodoZsubtract(int n) -{ - if (n != 0) { - CRITICAL_SECTION_START - babystepsTodo[Z_AXIS] -= n; - CRITICAL_SECTION_END - } -} - -//high level conversion routines, for use outside of temperature.cpp -//inline so that there is no performance decrease. -//deg=degreeCelsius - -FORCE_INLINE float degHotend(uint8_t extruder) { - return current_temperature[extruder]; -}; - -#ifdef SHOW_TEMP_ADC_VALUES - FORCE_INLINE float rawHotendTemp(uint8_t extruder) { - return current_temperature_raw[extruder]; - }; - - FORCE_INLINE float rawBedTemp() { - return current_temperature_bed_raw; - }; -#endif - -FORCE_INLINE float degBed() { - return current_temperature_bed; -}; - -FORCE_INLINE float degTargetHotend(uint8_t extruder) { - return target_temperature[extruder]; -}; - -FORCE_INLINE float degTargetBed() { - return target_temperature_bed; -}; - -FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) { - target_temperature[extruder] = celsius; -}; - -FORCE_INLINE void setTargetBed(const float &celsius) { - target_temperature_bed = celsius; -}; - -FORCE_INLINE bool isHeatingHotend(uint8_t extruder){ - return target_temperature[extruder] > current_temperature[extruder]; -}; - -FORCE_INLINE bool isHeatingBed() { - return target_temperature_bed > current_temperature_bed; -}; - -FORCE_INLINE bool isCoolingHotend(uint8_t extruder) { - return target_temperature[extruder] < current_temperature[extruder]; -}; - -FORCE_INLINE bool isCoolingBed() { - return target_temperature_bed < current_temperature_bed; -}; - -#define degHotend0() degHotend(0) -#define degTargetHotend0() degTargetHotend(0) -#define setTargetHotend0(_celsius) setTargetHotend((_celsius), 0) -#define isHeatingHotend0() isHeatingHotend(0) -#define isCoolingHotend0() isCoolingHotend(0) -#if EXTRUDERS > 1 -#define degHotend1() degHotend(1) -#define degTargetHotend1() degTargetHotend(1) -#define setTargetHotend1(_celsius) setTargetHotend((_celsius), 1) -#define isHeatingHotend1() isHeatingHotend(1) -#define isCoolingHotend1() isCoolingHotend(1) -#else -#define setTargetHotend1(_celsius) do{}while(0) -#endif -#if EXTRUDERS > 2 -#define degHotend2() degHotend(2) -#define degTargetHotend2() degTargetHotend(2) -#define setTargetHotend2(_celsius) setTargetHotend((_celsius), 2) -#define isHeatingHotend2() isHeatingHotend(2) -#define isCoolingHotend2() isCoolingHotend(2) -#else -#define setTargetHotend2(_celsius) do{}while(0) -#endif -#if EXTRUDERS > 3 -#error Invalid number of extruders -#endif - -#if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) -static float temp_runaway_status[4]; -static float temp_runaway_target[4]; -static float temp_runaway_timer[4]; -static int temp_runaway_error_counter[4]; - -void temp_runaway_check(int _heater_id, float _target_temperature, float _current_temperature, float _output, bool _isbed); -void temp_runaway_stop(bool isPreheat, bool isBed); -#endif - -int getHeaterPower(int heater); -void disable_heater(); -void setWatch(); -void updatePID(); - - -FORCE_INLINE void autotempShutdown(){ - #ifdef AUTOTEMP - if(autotemp_enabled) - { - autotemp_enabled=false; - if(degTargetHotend(active_extruder)>autotemp_min) - setTargetHotend(0,active_extruder); - } - #endif -} - -void PID_autotune(float temp, int extruder, int ncycles); - -void setExtruderAutoFanState(int pin, bool state); -void checkExtruderAutoFans(); - -#endif - +/* + temperature.h - temperature controller + Part of Marlin + + Copyright (c) 2011 Erik van der Zalm + + Grbl 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. + + Grbl 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 Grbl. If not, see . +*/ + +#ifndef temperature_h +#define temperature_h + +#include "Marlin.h" +#include "planner.h" +#ifdef PID_ADD_EXTRUSION_RATE + #include "stepper.h" +#endif + +// public functions +void tp_init(); //initialize the heating +void manage_heater(); //it is critical that this is called periodically. + +#ifdef FILAMENT_SENSOR +// For converting raw Filament Width to milimeters + float analog2widthFil(); + +// For converting raw Filament Width to an extrusion ratio + int widthFil_to_size_ratio(); +#endif + +// low level conversion routines +// do not use these routines and variables outside of temperature.cpp +extern int target_temperature[EXTRUDERS]; +extern float current_temperature[EXTRUDERS]; +#ifdef SHOW_TEMP_ADC_VALUES + extern int current_temperature_raw[EXTRUDERS]; + extern int current_temperature_bed_raw; +#endif +extern int target_temperature_bed; +extern float current_temperature_bed; +#ifdef TEMP_SENSOR_1_AS_REDUNDANT + extern float redundant_temperature; +#endif + +#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1 + extern unsigned char soft_pwm_bed; +#endif + +#ifdef PIDTEMP + extern int pid_cycle, pid_number_of_cycles; + extern float Kp,Ki,Kd,Kc,_Kp,_Ki,_Kd; + extern bool pid_tuning_finished; + float scalePID_i(float i); + float scalePID_d(float d); + float unscalePID_i(float i); + float unscalePID_d(float d); + +#endif +#ifdef PIDTEMPBED + extern float bedKp,bedKi,bedKd; +#endif + + +#ifdef BABYSTEPPING + extern volatile int babystepsTodo[3]; +#endif + +inline void babystepsTodoZadd(int n) +{ + if (n != 0) { + CRITICAL_SECTION_START + babystepsTodo[Z_AXIS] += n; + CRITICAL_SECTION_END + } +} + +inline void babystepsTodoZsubtract(int n) +{ + if (n != 0) { + CRITICAL_SECTION_START + babystepsTodo[Z_AXIS] -= n; + CRITICAL_SECTION_END + } +} + +//high level conversion routines, for use outside of temperature.cpp +//inline so that there is no performance decrease. +//deg=degreeCelsius + +FORCE_INLINE float degHotend(uint8_t extruder) { + return current_temperature[extruder]; +}; + +#ifdef SHOW_TEMP_ADC_VALUES + FORCE_INLINE float rawHotendTemp(uint8_t extruder) { + return current_temperature_raw[extruder]; + }; + + FORCE_INLINE float rawBedTemp() { + return current_temperature_bed_raw; + }; +#endif + +FORCE_INLINE float degBed() { + return current_temperature_bed; +}; + +FORCE_INLINE float degTargetHotend(uint8_t extruder) { + return target_temperature[extruder]; +}; + +FORCE_INLINE float degTargetBed() { + return target_temperature_bed; +}; + +FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) { + target_temperature[extruder] = celsius; +}; + +FORCE_INLINE void setTargetBed(const float &celsius) { + target_temperature_bed = celsius; +}; + +FORCE_INLINE bool isHeatingHotend(uint8_t extruder){ + return target_temperature[extruder] > current_temperature[extruder]; +}; + +FORCE_INLINE bool isHeatingBed() { + return target_temperature_bed > current_temperature_bed; +}; + +FORCE_INLINE bool isCoolingHotend(uint8_t extruder) { + return target_temperature[extruder] < current_temperature[extruder]; +}; + +FORCE_INLINE bool isCoolingBed() { + return target_temperature_bed < current_temperature_bed; +}; + +#define degHotend0() degHotend(0) +#define degTargetHotend0() degTargetHotend(0) +#define setTargetHotend0(_celsius) setTargetHotend((_celsius), 0) +#define isHeatingHotend0() isHeatingHotend(0) +#define isCoolingHotend0() isCoolingHotend(0) +#if EXTRUDERS > 1 +#define degHotend1() degHotend(1) +#define degTargetHotend1() degTargetHotend(1) +#define setTargetHotend1(_celsius) setTargetHotend((_celsius), 1) +#define isHeatingHotend1() isHeatingHotend(1) +#define isCoolingHotend1() isCoolingHotend(1) +#else +#define setTargetHotend1(_celsius) do{}while(0) +#endif +#if EXTRUDERS > 2 +#define degHotend2() degHotend(2) +#define degTargetHotend2() degTargetHotend(2) +#define setTargetHotend2(_celsius) setTargetHotend((_celsius), 2) +#define isHeatingHotend2() isHeatingHotend(2) +#define isCoolingHotend2() isCoolingHotend(2) +#else +#define setTargetHotend2(_celsius) do{}while(0) +#endif +#if EXTRUDERS > 3 +#error Invalid number of extruders +#endif + +#if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) +static float temp_runaway_status[4]; +static float temp_runaway_target[4]; +static float temp_runaway_timer[4]; +static int temp_runaway_error_counter[4]; + +void temp_runaway_check(int _heater_id, float _target_temperature, float _current_temperature, float _output, bool _isbed); +void temp_runaway_stop(bool isPreheat, bool isBed); +#endif + +int getHeaterPower(int heater); +void disable_heater(); +void setWatch(); +void updatePID(); + + +FORCE_INLINE void autotempShutdown(){ + #ifdef AUTOTEMP + if(autotemp_enabled) + { + autotemp_enabled=false; + if(degTargetHotend(active_extruder)>autotemp_min) + setTargetHotend(0,active_extruder); + } + #endif +} + +void PID_autotune(float temp, int extruder, int ncycles); + +void setExtruderAutoFanState(int pin, bool state); +void checkExtruderAutoFans(); + +#endif + diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 20314a2f3..0645f68d3 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -563,7 +563,7 @@ void lcd_commands() enquecommand(cmd1); if (axis_relative_modes[3] == true) enquecommand_P(PSTR("M83")); // set extruder to relative mode. else enquecommand_P(PSTR("M82")); // set extruder to absolute mode - enquecommand_P(PSTR("G1 E" STRINGIFY((is_multi_material) ? DEFAULT_RETRACTION_MM : DEFAULT_RETRACTION_SM))); //unretract + enquecommand_P(PSTR("G1 E" STRINGIFY(DEFAULT_RETRACTION))); //unretract enquecommand_P(PSTR("G90")); //absolute positioning lcd_commands_step = 1; } @@ -3740,6 +3740,8 @@ static void lcd_main_menu() MENU_ITEM(back, MSG_WATCH, lcd_status_screen); + MENU_ITEM(function, PSTR("restore"), restore_print_from_eeprom); + MENU_ITEM(function, PSTR("position"), position_menu); /* if (farm_mode && !IS_SD_PRINTING ) { @@ -4047,6 +4049,7 @@ void lcd_sdcard_stop() lcd_return_to_status(); lcd_ignore_click(true); + lcd_commands_type = LCD_COMMAND_STOP_PRINT; // Turn off the print fan @@ -4897,6 +4900,9 @@ static void menu_action_sdfile(const char* filename, char* longFilename) for (c = &cmd[4]; *c; c++) *c = tolower(*c); enquecommand(cmd); + for (int i = 0; i < 8; i++) { + eeprom_write_byte((uint8_t*)EEPROM_FILENAME+i, filename[i]); + } enquecommand_P(PSTR("M24")); lcd_return_to_status(); } diff --git a/Firmware/ultralcd_implementation_hitachi_HD44780.h b/Firmware/ultralcd_implementation_hitachi_HD44780.h index 65402d170..f68e2e45c 100644 --- a/Firmware/ultralcd_implementation_hitachi_HD44780.h +++ b/Firmware/ultralcd_implementation_hitachi_HD44780.h @@ -742,6 +742,7 @@ static void lcd_implementation_status_screen() if (IS_SD_PRINTING) { lcd.print(itostr3(card.percentDone())); + card.get_sdpos(); lcd.print('%'); } else diff --git a/Firmware/util.cpp b/Firmware/util.cpp index 6791c95fa..8c575ca84 100644 --- a/Firmware/util.cpp +++ b/Firmware/util.cpp @@ -1,288 +1,288 @@ -#include "Configuration.h" - -#include "ultralcd.h" -#include "language.h" -#include "util.h" - -// Allocate the version string in the program memory. Otherwise the string lands either on the stack or in the global RAM. -const char FW_VERSION_STR[] PROGMEM = FW_version; - -const char* FW_VERSION_STR_P() -{ - return FW_VERSION_STR; -} - -const char FW_PRUSA3D_MAGIC_STR[] PROGMEM = FW_PRUSA3D_MAGIC; - -const char* FW_PRUSA3D_MAGIC_STR_P() -{ - return FW_PRUSA3D_MAGIC_STR; -} - -const char STR_REVISION_DEV [] PROGMEM = "dev"; -const char STR_REVISION_ALPHA[] PROGMEM = "alpha"; -const char STR_REVISION_BETA [] PROGMEM = "beta"; -const char STR_REVISION_RC [] PROGMEM = "rc"; - -inline bool is_whitespace_or_nl(char c) -{ - return c == ' ' || c == '\t' || c == '\n' || c == 'r'; -} - -inline bool is_whitespace_or_nl_or_eol(char c) -{ - return c == 0 || c == ' ' || c == '\t' || c == '\n' || c == '\r'; -} - -inline bool is_digit(char c) -{ - return c >= '0' && c <= '9'; -} - -// Parse a major.minor.revision version number. -// Return true if valid. -inline bool parse_version(const char *str, uint16_t version[4]) -{ -#if 0 - SERIAL_ECHOPGM("Parsing version string "); - SERIAL_ECHO(str); - SERIAL_ECHOLNPGM(""); -#endif - - const char *major = str; - const char *p = str; - while (is_digit(*p)) ++ p; - if (*p != '.') - return false; - const char *minor = ++ p; - while (is_digit(*p)) ++ p; - if (*p != '.') - return false; - const char *rev = ++ p; - while (is_digit(*p)) ++ p; - if (! is_whitespace_or_nl_or_eol(*p) && *p != '-') - return false; - - char *endptr = NULL; - version[0] = strtol(major, &endptr, 10); - if (endptr != minor - 1) - return false; - version[1] = strtol(minor, &endptr, 10); - if (endptr != rev - 1) - return false; - version[2] = strtol(rev, &endptr, 10); - if (endptr != p) - return false; - - version[3] = FIRMWARE_REVISION_RELEASED; - if (*p ++ == '-') { - const char *q = p; - while (! is_whitespace_or_nl_or_eol(*q)) - ++ q; - uint8_t n = q - p; - if (n == strlen_P(STR_REVISION_DEV) && strncmp_P(p, STR_REVISION_DEV, n) == 0) - version[3] = FIRMWARE_REVISION_DEV; - else if (n == strlen_P(STR_REVISION_ALPHA) && strncmp_P(p, STR_REVISION_ALPHA, n) == 0) - version[3] = FIRMWARE_REVISION_ALPHA; - else if (n == strlen_P(STR_REVISION_BETA) && strncmp_P(p, STR_REVISION_BETA, n) == 0) - version[3] = FIRMWARE_REVISION_BETA; - else if ((n == 2 || n == 3) && p[0] == 'r' && p[1] == 'c') { - if (n == 2) - version[3] = FIRMWARE_REVISION_RC; - else { - if (is_digit(p[2])) - version[3] = FIRMWARE_REVISION_RC + p[2] - '1'; - else - return false; - } - } else - return false; - } - -#if 0 - SERIAL_ECHOPGM("Version parsed, major: "); - SERIAL_ECHO(version[0]); - SERIAL_ECHOPGM(", minor: "); - SERIAL_ECHO(version[1]); - SERIAL_ECHOPGM(", revision: "); - SERIAL_ECHO(version[2]); - SERIAL_ECHOPGM(", flavor: "); - SERIAL_ECHO(version[3]); - SERIAL_ECHOLNPGM(""); -#endif - return true; -} - -inline bool strncmp_PP(const char *p1, const char *p2, uint8_t n) -{ - for (; n > 0; -- n, ++ p1, ++ p2) { - if (pgm_read_byte(p1) < pgm_read_byte(p2)) - return -1; - if (pgm_read_byte(p1) > pgm_read_byte(p2)) - return 1; - if (pgm_read_byte(p1) == 0) - return 0; - } - return 0; -} - -// Parse a major.minor.revision version number. -// Return true if valid. -inline bool parse_version_P(const char *str, uint16_t version[4]) -{ -#if 0 - SERIAL_ECHOPGM("Parsing version string "); - SERIAL_ECHORPGM(str); - SERIAL_ECHOLNPGM(""); -#endif - - const char *major = str; - const char *p = str; - while (is_digit(char(pgm_read_byte(p)))) ++ p; - if (pgm_read_byte(p) != '.') - return false; - const char *minor = ++ p; - while (is_digit(char(pgm_read_byte(p)))) ++ p; - if (pgm_read_byte(p) != '.') - return false; - const char *rev = ++ p; - while (is_digit(char(pgm_read_byte(p)))) ++ p; - if (! is_whitespace_or_nl_or_eol(char(pgm_read_byte(p))) && pgm_read_byte(p) != '-') - return false; - - char buf[5]; - uint8_t n = minor - major - 1; - if (n > 4) - return false; - memcpy_P(buf, major, n); buf[n] = 0; - char *endptr = NULL; - version[0] = strtol(buf, &endptr, 10); - if (*endptr != 0) - return false; - n = rev - minor - 1; - if (n > 4) - return false; - memcpy_P(buf, minor, n); buf[n] = 0; - version[1] = strtol(buf, &endptr, 10); - if (*endptr != 0) - return false; - n = p - rev; - if (n > 4) - return false; - memcpy_P(buf, rev, n); - buf[n] = 0; - version[2] = strtol(buf, &endptr, 10); - if (*endptr != 0) - return false; - - version[3] = FIRMWARE_REVISION_RELEASED; - if (pgm_read_byte(p ++) == '-') { - const char *q = p; - while (! is_whitespace_or_nl_or_eol(char(pgm_read_byte(q)))) - ++ q; - n = q - p; - if (n == strlen_P(STR_REVISION_DEV) && strncmp_PP(p, STR_REVISION_DEV, n) == 0) - version[3] = FIRMWARE_REVISION_DEV; - else if (n == strlen_P(STR_REVISION_ALPHA) && strncmp_PP(p, STR_REVISION_ALPHA, n) == 0) - version[3] = FIRMWARE_REVISION_ALPHA; - else if (n == strlen_P(STR_REVISION_BETA) && strncmp_PP(p, STR_REVISION_BETA, n) == 0) - version[3] = FIRMWARE_REVISION_BETA; - else if ((n == 2 || n == 3) && strncmp_PP(p, STR_REVISION_RC, 2) == 0) { - if (n == 2) - version[3] = FIRMWARE_REVISION_RC; - else { - p += 2; - if (is_digit(pgm_read_byte(p))) - version[3] = FIRMWARE_REVISION_RC + pgm_read_byte(p) - '1'; - else - return false; - } - } else - return false; - } - -#if 0 - SERIAL_ECHOPGM("Version parsed, major: "); - SERIAL_ECHO(version[0]); - SERIAL_ECHOPGM(", minor: "); - SERIAL_ECHO(version[1]); - SERIAL_ECHOPGM(", revision: "); - SERIAL_ECHO(version[2]); - SERIAL_ECHOPGM(", flavor: "); - SERIAL_ECHO(version[3]); - SERIAL_ECHOLNPGM(""); -#endif - return true; -} - -// 1 - yes, 0 - false, -1 - error; -inline int8_t is_provided_version_newer(const char *version_string) -{ - uint16_t ver_gcode[3], ver_current[3]; - if (! parse_version(version_string, ver_gcode)) - return -1; - if (! parse_version_P(FW_VERSION_STR, ver_current)) - return 0; // this shall not happen - for (uint8_t i = 0; i < 3; ++ i) - if (ver_gcode[i] > ver_current[i]) - return 1; - return 0; -} - -bool show_upgrade_dialog_if_version_newer(const char *version_string) -{ - uint16_t ver_gcode[4], ver_current[4]; - if (! parse_version(version_string, ver_gcode)) { -// SERIAL_PROTOCOLLNPGM("parse_version failed"); - return false; - } - if (! parse_version_P(FW_VERSION_STR, ver_current)) { -// SERIAL_PROTOCOLLNPGM("parse_version_P failed"); - return false; // this shall not happen - } -// SERIAL_PROTOCOLLNPGM("versions parsed"); - bool upgrade = false; - for (uint8_t i = 0; i < 4; ++ i) { - if (ver_gcode[i] > ver_current[i]) { - upgrade = true; - break; - } else if (ver_gcode[i] < ver_current[i]) - break; - } - - if (upgrade) { - lcd_display_message_fullscreen_P(MSG_NEW_FIRMWARE_AVAILABLE); - lcd_print_at_PGM(0, 2, PSTR("")); - for (const char *c = version_string; ! is_whitespace_or_nl_or_eol(*c); ++ c) - lcd_implementation_write(*c); - lcd_print_at_PGM(0, 3, MSG_NEW_FIRMWARE_PLEASE_UPGRADE); - tone(BEEPER, 1000); - delay_keep_alive(50); - noTone(BEEPER); - delay_keep_alive(500); - tone(BEEPER, 1000); - delay_keep_alive(50); - noTone(BEEPER); - lcd_wait_for_click(); - lcd_update_enable(true); - lcd_implementation_clear(); - lcd_update(); - } - - // Succeeded. - return true; -} - -void update_current_firmware_version_to_eeprom() -{ - for (int8_t i = 0; i < FW_PRUSA3D_MAGIC_LEN; ++ i) - eeprom_update_byte((uint8_t*)(EEPROM_FIRMWARE_PRUSA_MAGIC+i), pgm_read_byte(FW_PRUSA3D_MAGIC_STR+i)); - uint16_t ver_current[4]; - if (parse_version_P(FW_VERSION_STR, ver_current)) { - eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MAJOR, ver_current[0]); - eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MINOR, ver_current[1]); - eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_REVISION, ver_current[2]); - // See FirmwareRevisionFlavorType for the definition of firmware flavors. - eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR, ver_current[3]); - } -} +#include "Configuration.h" + +#include "ultralcd.h" +#include "language.h" +#include "util.h" + +// Allocate the version string in the program memory. Otherwise the string lands either on the stack or in the global RAM. +const char FW_VERSION_STR[] PROGMEM = FW_version; + +const char* FW_VERSION_STR_P() +{ + return FW_VERSION_STR; +} + +const char FW_PRUSA3D_MAGIC_STR[] PROGMEM = FW_PRUSA3D_MAGIC; + +const char* FW_PRUSA3D_MAGIC_STR_P() +{ + return FW_PRUSA3D_MAGIC_STR; +} + +const char STR_REVISION_DEV [] PROGMEM = "dev"; +const char STR_REVISION_ALPHA[] PROGMEM = "alpha"; +const char STR_REVISION_BETA [] PROGMEM = "beta"; +const char STR_REVISION_RC [] PROGMEM = "rc"; + +inline bool is_whitespace_or_nl(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == 'r'; +} + +inline bool is_whitespace_or_nl_or_eol(char c) +{ + return c == 0 || c == ' ' || c == '\t' || c == '\n' || c == '\r'; +} + +inline bool is_digit(char c) +{ + return c >= '0' && c <= '9'; +} + +// Parse a major.minor.revision version number. +// Return true if valid. +inline bool parse_version(const char *str, uint16_t version[4]) +{ +#if 0 + SERIAL_ECHOPGM("Parsing version string "); + SERIAL_ECHO(str); + SERIAL_ECHOLNPGM(""); +#endif + + const char *major = str; + const char *p = str; + while (is_digit(*p)) ++ p; + if (*p != '.') + return false; + const char *minor = ++ p; + while (is_digit(*p)) ++ p; + if (*p != '.') + return false; + const char *rev = ++ p; + while (is_digit(*p)) ++ p; + if (! is_whitespace_or_nl_or_eol(*p) && *p != '-') + return false; + + char *endptr = NULL; + version[0] = strtol(major, &endptr, 10); + if (endptr != minor - 1) + return false; + version[1] = strtol(minor, &endptr, 10); + if (endptr != rev - 1) + return false; + version[2] = strtol(rev, &endptr, 10); + if (endptr != p) + return false; + + version[3] = FIRMWARE_REVISION_RELEASED; + if (*p ++ == '-') { + const char *q = p; + while (! is_whitespace_or_nl_or_eol(*q)) + ++ q; + uint8_t n = q - p; + if (n == strlen_P(STR_REVISION_DEV) && strncmp_P(p, STR_REVISION_DEV, n) == 0) + version[3] = FIRMWARE_REVISION_DEV; + else if (n == strlen_P(STR_REVISION_ALPHA) && strncmp_P(p, STR_REVISION_ALPHA, n) == 0) + version[3] = FIRMWARE_REVISION_ALPHA; + else if (n == strlen_P(STR_REVISION_BETA) && strncmp_P(p, STR_REVISION_BETA, n) == 0) + version[3] = FIRMWARE_REVISION_BETA; + else if ((n == 2 || n == 3) && p[0] == 'r' && p[1] == 'c') { + if (n == 2) + version[3] = FIRMWARE_REVISION_RC; + else { + if (is_digit(p[2])) + version[3] = FIRMWARE_REVISION_RC + p[2] - '1'; + else + return false; + } + } else + return false; + } + +#if 0 + SERIAL_ECHOPGM("Version parsed, major: "); + SERIAL_ECHO(version[0]); + SERIAL_ECHOPGM(", minor: "); + SERIAL_ECHO(version[1]); + SERIAL_ECHOPGM(", revision: "); + SERIAL_ECHO(version[2]); + SERIAL_ECHOPGM(", flavor: "); + SERIAL_ECHO(version[3]); + SERIAL_ECHOLNPGM(""); +#endif + return true; +} + +inline bool strncmp_PP(const char *p1, const char *p2, uint8_t n) +{ + for (; n > 0; -- n, ++ p1, ++ p2) { + if (pgm_read_byte(p1) < pgm_read_byte(p2)) + return -1; + if (pgm_read_byte(p1) > pgm_read_byte(p2)) + return 1; + if (pgm_read_byte(p1) == 0) + return 0; + } + return 0; +} + +// Parse a major.minor.revision version number. +// Return true if valid. +inline bool parse_version_P(const char *str, uint16_t version[4]) +{ +#if 0 + SERIAL_ECHOPGM("Parsing version string "); + SERIAL_ECHORPGM(str); + SERIAL_ECHOLNPGM(""); +#endif + + const char *major = str; + const char *p = str; + while (is_digit(char(pgm_read_byte(p)))) ++ p; + if (pgm_read_byte(p) != '.') + return false; + const char *minor = ++ p; + while (is_digit(char(pgm_read_byte(p)))) ++ p; + if (pgm_read_byte(p) != '.') + return false; + const char *rev = ++ p; + while (is_digit(char(pgm_read_byte(p)))) ++ p; + if (! is_whitespace_or_nl_or_eol(char(pgm_read_byte(p))) && pgm_read_byte(p) != '-') + return false; + + char buf[5]; + uint8_t n = minor - major - 1; + if (n > 4) + return false; + memcpy_P(buf, major, n); buf[n] = 0; + char *endptr = NULL; + version[0] = strtol(buf, &endptr, 10); + if (*endptr != 0) + return false; + n = rev - minor - 1; + if (n > 4) + return false; + memcpy_P(buf, minor, n); buf[n] = 0; + version[1] = strtol(buf, &endptr, 10); + if (*endptr != 0) + return false; + n = p - rev; + if (n > 4) + return false; + memcpy_P(buf, rev, n); + buf[n] = 0; + version[2] = strtol(buf, &endptr, 10); + if (*endptr != 0) + return false; + + version[3] = FIRMWARE_REVISION_RELEASED; + if (pgm_read_byte(p ++) == '-') { + const char *q = p; + while (! is_whitespace_or_nl_or_eol(char(pgm_read_byte(q)))) + ++ q; + n = q - p; + if (n == strlen_P(STR_REVISION_DEV) && strncmp_PP(p, STR_REVISION_DEV, n) == 0) + version[3] = FIRMWARE_REVISION_DEV; + else if (n == strlen_P(STR_REVISION_ALPHA) && strncmp_PP(p, STR_REVISION_ALPHA, n) == 0) + version[3] = FIRMWARE_REVISION_ALPHA; + else if (n == strlen_P(STR_REVISION_BETA) && strncmp_PP(p, STR_REVISION_BETA, n) == 0) + version[3] = FIRMWARE_REVISION_BETA; + else if ((n == 2 || n == 3) && strncmp_PP(p, STR_REVISION_RC, 2) == 0) { + if (n == 2) + version[3] = FIRMWARE_REVISION_RC; + else { + p += 2; + if (is_digit(pgm_read_byte(p))) + version[3] = FIRMWARE_REVISION_RC + pgm_read_byte(p) - '1'; + else + return false; + } + } else + return false; + } + +#if 0 + SERIAL_ECHOPGM("Version parsed, major: "); + SERIAL_ECHO(version[0]); + SERIAL_ECHOPGM(", minor: "); + SERIAL_ECHO(version[1]); + SERIAL_ECHOPGM(", revision: "); + SERIAL_ECHO(version[2]); + SERIAL_ECHOPGM(", flavor: "); + SERIAL_ECHO(version[3]); + SERIAL_ECHOLNPGM(""); +#endif + return true; +} + +// 1 - yes, 0 - false, -1 - error; +inline int8_t is_provided_version_newer(const char *version_string) +{ + uint16_t ver_gcode[3], ver_current[3]; + if (! parse_version(version_string, ver_gcode)) + return -1; + if (! parse_version_P(FW_VERSION_STR, ver_current)) + return 0; // this shall not happen + for (uint8_t i = 0; i < 3; ++ i) + if (ver_gcode[i] > ver_current[i]) + return 1; + return 0; +} + +bool show_upgrade_dialog_if_version_newer(const char *version_string) +{ + uint16_t ver_gcode[4], ver_current[4]; + if (! parse_version(version_string, ver_gcode)) { +// SERIAL_PROTOCOLLNPGM("parse_version failed"); + return false; + } + if (! parse_version_P(FW_VERSION_STR, ver_current)) { +// SERIAL_PROTOCOLLNPGM("parse_version_P failed"); + return false; // this shall not happen + } +// SERIAL_PROTOCOLLNPGM("versions parsed"); + bool upgrade = false; + for (uint8_t i = 0; i < 4; ++ i) { + if (ver_gcode[i] > ver_current[i]) { + upgrade = true; + break; + } else if (ver_gcode[i] < ver_current[i]) + break; + } + + if (upgrade) { + lcd_display_message_fullscreen_P(MSG_NEW_FIRMWARE_AVAILABLE); + lcd_print_at_PGM(0, 2, PSTR("")); + for (const char *c = version_string; ! is_whitespace_or_nl_or_eol(*c); ++ c) + lcd_implementation_write(*c); + lcd_print_at_PGM(0, 3, MSG_NEW_FIRMWARE_PLEASE_UPGRADE); + tone(BEEPER, 1000); + delay_keep_alive(50); + noTone(BEEPER); + delay_keep_alive(500); + tone(BEEPER, 1000); + delay_keep_alive(50); + noTone(BEEPER); + lcd_wait_for_click(); + lcd_update_enable(true); + lcd_implementation_clear(); + lcd_update(); + } + + // Succeeded. + return true; +} + +void update_current_firmware_version_to_eeprom() +{ + for (int8_t i = 0; i < FW_PRUSA3D_MAGIC_LEN; ++ i) + eeprom_update_byte((uint8_t*)(EEPROM_FIRMWARE_PRUSA_MAGIC+i), pgm_read_byte(FW_PRUSA3D_MAGIC_STR+i)); + uint16_t ver_current[4]; + if (parse_version_P(FW_VERSION_STR, ver_current)) { + eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MAJOR, ver_current[0]); + eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_MINOR, ver_current[1]); + eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_REVISION, ver_current[2]); + // See FirmwareRevisionFlavorType for the definition of firmware flavors. + eeprom_update_word((uint16_t*)EEPROM_FIRMWARE_VERSION_FLAVOR, ver_current[3]); + } +} diff --git a/Firmware/util.h b/Firmware/util.h index d740aaf44..52e4b6bce 100644 --- a/Firmware/util.h +++ b/Firmware/util.h @@ -1,35 +1,35 @@ -#ifndef UTIL_H -#define UTIL_H - -extern const char* FW_VERSION_STR_P(); - -// Definition of a firmware flavor numerical values. -enum FirmwareRevisionFlavorType -{ - FIRMWARE_REVISION_DEV = 0, - FIRMWARE_REVISION_ALPHA = 1, - FIRMWARE_REVISION_BETA = 2, - FIRMWARE_REVISION_RC, - FIRMWARE_REVISION_RC2, - FIRMWARE_REVISION_RC3, - FIRMWARE_REVISION_RC4, - FIRMWARE_REVISION_RC5, - FIRMWARE_REVISION_RELEASED = 127 -}; - -extern bool show_upgrade_dialog_if_version_newer(const char *version_string); - -extern void update_current_firmware_version_to_eeprom(); - - - -inline int8_t eeprom_read_int8(unsigned char* addr) { - uint8_t v = eeprom_read_byte(addr); - return *reinterpret_cast(&v); -} - -inline void eeprom_update_int8(unsigned char* addr, int8_t v) { - eeprom_update_byte(addr, *reinterpret_cast(&v)); -} - -#endif /* UTIL_H */ +#ifndef UTIL_H +#define UTIL_H + +extern const char* FW_VERSION_STR_P(); + +// Definition of a firmware flavor numerical values. +enum FirmwareRevisionFlavorType +{ + FIRMWARE_REVISION_DEV = 0, + FIRMWARE_REVISION_ALPHA = 1, + FIRMWARE_REVISION_BETA = 2, + FIRMWARE_REVISION_RC, + FIRMWARE_REVISION_RC2, + FIRMWARE_REVISION_RC3, + FIRMWARE_REVISION_RC4, + FIRMWARE_REVISION_RC5, + FIRMWARE_REVISION_RELEASED = 127 +}; + +extern bool show_upgrade_dialog_if_version_newer(const char *version_string); + +extern void update_current_firmware_version_to_eeprom(); + + + +inline int8_t eeprom_read_int8(unsigned char* addr) { + uint8_t v = eeprom_read_byte(addr); + return *reinterpret_cast(&v); +} + +inline void eeprom_update_int8(unsigned char* addr, int8_t v) { + eeprom_update_byte(addr, *reinterpret_cast(&v)); +} + +#endif /* UTIL_H */