diff --git a/README.md b/README.md index f862456..1098f78 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,12 @@ Custom firmware for Tuya devices on the PHY622x2 chipset | Устройство | Файл Boot | Файл OTA | Маркировка на печатной плате | |:---:|:---:|:---:|:---:| -| [THB1](https://pvvx.github.io/THB1) | BOOT_THB1_v14.hex | THB1_v14.bin | нет | -| [THB2](https://pvvx.github.io/THB2) | BOOT_THB2_v14.hex | THB2_v14.bin | нет | -| [BTH01](https://pvvx.github.io/BTH01) | BOOT_BTH01_v14.hex | BTH01_v14.bin | нет | -| [TH05_V1.4](https://pvvx.github.io/TH-05) | BOOT_TH05_v14.hex | TH05_v1.4.bin | TH05_V1.4, TH05_V1.5, TH05_V1.6 с чипом BL55028 | -| [TH05_V1.3](https://pvvx.github.io/TH05-v1.3) | BOOT_TH05D_v14.hex | TH05D_v14.bin | RSH-TH05-V1.3 с чипом BL55072 | -| [TH05F](https://pvvx.github.io/TH05F) | BOOT_TH05F_v14.hex | TH05F_v14.bin | TH05Y_V1.1, TH05Y_V1.2 с чипом QD01 2332 NT | +| [THB1](https://pvvx.github.io/THB1) | BOOT_THB1_v15.hex | THB1_v15.bin | нет | +| [THB2](https://pvvx.github.io/THB2) | BOOT_THB2_v15.hex | THB2_v15.bin | нет | +| [BTH01](https://pvvx.github.io/BTH01) | BOOT_BTH01_v15.hex | BTH01_v15.bin | нет | +| [TH05_V1.4](https://pvvx.github.io/TH-05) | BOOT_TH05_v15.hex | TH05_v1.4.bin | TH05_V1.4, TH05_V1.5, TH05_V1.6 с чипом BL55028 | +| [TH05_V1.3](https://pvvx.github.io/TH05-v1.3) | BOOT_TH05D_v15.hex | TH05D_v15.bin | RSH-TH05-V1.3 с чипом BL55072 | +| [TH05F](https://pvvx.github.io/TH05F) | BOOT_TH05F_v15.hex | TH05F_v15.bin | TH05Y_V1.1, TH05Y_V1.2 с чипом QD01 2332 NT | Основные файлы прошивок, BOOT_xxx_vxx.hex для программирования через USB-COM адаптер и xxx_vxx.bin для OTA, находятся в директории [bin](https://github.com/pvvx/THB2/tree/master/bin). @@ -50,6 +50,7 @@ Custom firmware for Tuya devices on the PHY622x2 chipset | 1.2 | Обработка и передача событий open/close со счетчиком с вывода маркированного "RX2" (для THB2 - "RX1"). | | 1.3 | Добавлен THB1 и TH05V1.3. Следующий этап уменьшения потребления для версий с LCD дисплеем и опция отключения дисплея. | | 1.4 | Стабилизация соединения для всех вариантов устройств. Добавлен [TH05F](https://pvvx.github.io/TH05F). Коррекция хода RTC. Изменено BLE имя для TH05_V1.3 на "TH05D". Добавлены файлы для обновления Boot по OTA. | +| 1.5 | Добавлен вариант шифрования BLE рекламы с помощью BindKey. | ## Прошивка diff --git a/bin/BOOT_BTH01_v15.hex b/bin/BOOT_BTH01_v15.hex new file mode 100644 index 0000000..917cf92 --- /dev/null +++ b/bin/BOOT_BTH01_v15.hex @@ -0,0 +1,3003 @@ +:020000041100E9 +:10300000002373B52B4D2C4C28006361022601F080 +:1030100081F94021FE2221742800284B009601F0FE +:10302000CBF9002836D1217CFF222800244B0096C2 +:1030300001F0C2F900282DD1224BA2899A4226D153 +:10304000E389214A93420DD1204B6361204B2268D2 +:10305000002A03D1002B01D043CB43C4280001F048 +:1030600097F973BD1B4A934201D00023EFE71A4B37 +:103070001A4A1B68934206D9C02304222800217CE7 +:103080009B0001F00FFA114B6361154BDFE7002342 +:103090002374EAE7CC233821AC2228009B01217459 +:1030A00001F000FA0028F2D10E4B63610E4BE38170 +:1030B0000E4BCCE7F441FF1F9061FF1F9C61FF1F87 +:1030C0009E61FF1F59590000830500004141001116 +:1030D00068B9001182150000B461FF1F871300005A +:1030E00074B90011F9410011AAAAFFFF5CB90011DF +:1030F000F7B5164B0192C318021D002000938823D8 +:103100005B05D3181B685C1C1AD09CB2402C18D8E5 +:103110008D781E0CAC466746CD782D023D43AE42FD +:1031200006D1019800280ED110000C70240A4C70B2 +:1031300003249BB20733A343D218009B9A42DED3E9 +:10314000FEBD4432F9E71000FAE7C046FC0F00006C +:10315000802213B503000324019189B25201073183 +:103160009B18A14304305A1A88235B05C3181B68B7 +:10317000591C03D190429241104016BD99B240298A +:1031800007D80B000733A343C0189042ECD30020AC +:10319000F3E74430F9E7134B134A1B68126810B584 +:1031A000FA24934201D81A00F824104BE4021B6859 +:1031B0009A4210D813000E4A12689A420ED3013375 +:1031C00007D1F823DB029C4203D10A49054808F0E5 +:1031D0003FFB200010BDFC24E402ECE7FE24E402E7 +:1031E000F7E7C04600C0071100D0071100E0071143 +:1031F00000F00711FFFFFF7FF0B59BB015000490B2 +:103200000391402A00D9A0E006AB59801A80FFF74D +:10321000C2FF0400042816D9002206A9FFF768FFA0 +:10322000052810D906AB1B88AB420CD1002D07D066 +:10323000514B2A000499C01808F00AFA002802D15C +:1032400001201BB0F0BD06AB1D8020000699FFF7E2 +:103250007FFF041E7BD1069B0793FFF79CFF802313 +:103260005B01C618802307001B039E4201D3F8268A +:10327000F60288235B05F31801931B68013302D023 +:10328000019808F0EDF83D49019808F0E1FA3B1D7E +:103290000293331D05938822029B52059B181B68DD +:1032A00008935A1C3CD044219AB20091402A04D879 +:1032B0000320D11D814389B2009103991B0C8B42DD +:1032C00024D0402A22D80122300008A9FFF710FF9D +:1032D000021E1BD1380008A9FFF70AFF04000428CA +:1032E00031D9009A059B9B1880225201B218934253 +:1032F00040D288235B05C118009A09A808F008FA93 +:103300001D4B009A09A9F01808F082FA009A029B56 +:103310009446634402931A4B029AFB189A42BAD31A +:1033200088235B05FC1821680198013908F090FAA0 +:10333000200008F095F8039A07AB5A8030000799EF +:10334000FFF706FF0400002C03D1002079E70428D2 +:10335000FBD988235B05E018069908F079FA032366 +:10336000EA1C9A4300D16BE7034B0499E01808F07C +:103370004FFA65E70424ECE704000011FFFFFF7F2C +:10338000F80F0000F7B505001400402A21D80027E7 +:1033900001AE71803780FFF7FEFE042816D93A008F +:1033A0003100FFF7A5FE042810D93688BC420BD0A7 +:1033B000BD4209D0221CB44200D9321C064B92B245 +:1033C000C118280008F0A4F930B2FEBDC04300B215 +:1033D000FBE703204042F8E70400001137B5042260 +:1033E00004000D0001A81649FFF7CCFF02000428D5 +:1033F0000BD1019BA34208D3AB4204D0104901A8D2 +:103400000195FFF7F9FE01203EBD0E4C2368200018 +:10341000019308F025F8019920000139019108F085 +:1034200017FA80235B01E418074B9C42EED104227B +:10343000034901A80195FFF7DFFE0020E4E7C0463D +:103440005555000000C007110000081130B589B0C3 +:1034500008F03EF810226946254807F071FF254B19 +:10346000009A9A420ED1019B029A0F2B33D8002169 +:1034700001240698013B08D2002900D00292029B49 +:10348000013331D10023029325E0551CF2D1020013 +:103490002100EFE710341022200004A907F050FFAC +:1034A000029B013301D1069B0293882304995B059B +:1034B000C918059B06981A03120B049105928142C4 +:1034C00003D02B4201D108F023F9019B013B01936A +:1034D000019B002BDED1029B002B03D004930498A8 +:1034E0004168084709B030BDE025014C2D03EFE7E6 +:1034F00000000111504859368022F8B5964C974B80 +:10350000D200002120001C6007F0C2FF2300944A73 +:1035100088331A60934B1A786A23002A00D011333B +:10352000E3620A232365904B37221B780820A363AC +:103530008E4B2118E361102323628D4B3B25636181 +:10354000C823DB00A36123008C331A602823013ACF +:10355000E26320646364CA67043A211DCA672100DC +:10356000BC310D602100C03108602100C4310B6006 +:1035700021000635CC310D602100083DC8310D60B9 +:103580002100D0310A602200D43210602200D832EB +:10359000136022000227E032210017604222DC3152 +:1035A0000A6021001B3DE4310D602100E831086014 +:1035B0002100EC310B6023000521F4331960230056 +:1035C000F0331A602300183290331A6023009433CA +:1035D000186023001E3A98331A60AF23DB00236083 +:1035E000644BFA262363644B644DE360644BF03113 +:1035F000A3642300FF31FC33B600A16021611E608B +:10360000A5627325E5656D3D6565A56596255D4AF1 +:10361000AD00E264666258606766A566002709250A +:10362000A767E566584F594D606720002567E26738 +:103630003A6015279C30676007001A203860200028 +:10364000A0300700212038602000A83007004C4837 +:1036500038602000F830066026006427A436376002 +:1036600026005F3FAC3637602600033FB036376038 +:103670002600C637B436376026000027B8363760D4 +:1036800038269E60424E96205E64424E5A66DE6147 +:10369000414E9A645E62F53EFF3E9E621E269A6728 +:1036A000354A8000DE661F675F67DD651D6618624C +:1036B000DA67BE23394A5B00E250394BD8382350D1 +:1036C00004302250C4225200A350C623E4205B00E1 +:1036D000E1500433334AE1503349344BD16034492B +:1036E000800019503349E938FF3819503249043005 +:1036F000195032493248D16132491163324951631C +:103700001900F4310860CE20304940001160304982 +:10371000195019002F48F83108602F49D1658221CE +:103720002E4A89005A501A002D490832D1671A00D2 +:103730002C49B432116088212B4A89005A501A0052 +:103740002A49883211602A4ADA6407F0F9FE01201A +:1037500007F0A6FDF8BDC0460004FF1F2C64FF1F44 +:10376000106FFF1F2444FF1F4A0AFF1F3A07000083 +:1037700080C3C9019A020000DC0500006A1800003D +:1037800050C3000088130000F009FF1F204E000006 +:103790006509FF1F68100000C409000040420F00C7 +:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 +:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 +:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 +:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 +:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 +:1037F000851DFF1F0223F0B50124634D634E2B701E +:10380000634B91B01C70634F039333680021082011 +:10381000BB7006F009FC082006F000FB002398426C +:1038200005D0BA78552A02D0332A00D09FE0336001 +:10383000042006F073FD07F003FEFFF75DFE07F0BE +:103840004FFD1F2201240021534B10AE1A70534B21 +:103850001C70534B1970534B19689143163A0A4325 +:103860001A60602219689143403A0A431A6007F0CF +:10387000EFFC07F01DFDC120FF214B4B80001A58C3 +:103880008A431A50C522920098588843BF39014391 +:1038900099509858454908408021C901014380202A +:1038A00099509958C0050902090A0143995080218D +:1038B0003F48490107F094FE032322003D4901944B +:1038C00000933D4807F00CFF2C223C4905A807F067 +:1038D0001FFF05AC61782078023406F0BFFAA642DB +:1038E000F8D1374C0121002006F0CCFB0920012142 +:1038F00006F0C8FB2268334B03201A40A023DB02EA +:1039000013432360802322689B04134323602268AF +:103910002D4B1A4080239B03134323602B4A2C4BCF +:10392000934200D8012007F023FD07F099FE802381 +:103930002268DB0413432360287807F021FF039BF0 +:103940001878C0B207F044FE07F0F2FE21490420C7 +:1039500007F02EFE06F0AEFC00F0A8F800F0CEFD59 +:1039600000F076FE00F01AFA002011B0F0BD0093CE +:103970002100184A042007F0DBFD8023DB059C6250 +:10398000FFF764FD54E7C0464A0AFF1F34F00040C9 +:103990002444FF1FC061FF1F480AFF1F490AFF1F81 +:1039A000680AFF1FBCF0004000E100E0FF00FFFFDD +:1039B0002844FF1FAC56FF1F2854FF1F80B800117A +:1039C00014F00040FF7FF8FFFFFF9FFF0080FF1F04 +:1039D000106FFF1F3B00010870B500252549264ADE +:1039E00026484D6308CA1B051B0DED188242F9D10C +:1039F00000268022224B92058B630921214B224C09 +:103A00001E62224B1120DA67214BDA688A43DA60A2 +:103A10009A6820490A409A60266007F011FF112039 +:103A200007F02EFD8022636C93436364EE24E40070 +:103A30006C43194A200C0400642390420AD8FA22ED +:103A40003300D200904205D9144B0A21C01807F068 +:103A5000B7FCC3B2124A11201372D48007F020FDC4 +:103A6000104B1B78002B04D10F4B1021187807F056 +:103A7000FFFD70BD000005408805054000060540BB +:103A8000FF01000000F000400038004004E100E0C9 +:103A90003CF00040FFDFFFFFB70B000030F8FFFFF6 +:103AA000A861FF1FE263FF1FE061FF1F002210B546 +:103AB0001100112007F0B4FC10BD0000F8B5002380 +:103AC0000926374F374C3B62E3681120B343E3606C +:103AD00007F0D6FC112007F0B3FE112007F0D8FB49 +:103AE0004023226880251343236080236268DB0221 +:103AF00013436360A3682C4A2B43A360A36802218D +:103B00001340A3608023A2689B0113431022A3608B +:103B1000236C072093432364236C0F3A13432364DD +:103B200080235B003B62226B204B1A402263626B56 +:103B30001A406263A26B1A40A263E26B1340E36314 +:103B4000E3681B4A1340E36006F088F9012107206F +:103B500006F098FA174B11205A6C15435D6407F074 +:103B600017FCFD21144B154A89005A508023C720A9 +:103B7000626B5B0313436363E36880003343E3607A +:103B80000F4B104A19581140802212020A431A5052 +:103B9000802292051A6008220B4B5A63F8BDC0467A +:103BA00000F000403CF00040FFFFDFFFEFFFEFFFC1 +:103BB000FFFF7FFF003800400000FF1FD9390011D0 +:103BC00000E100E0FF00FFFF0000054030B503A862 +:103BD00004880B20002C0ED14968074D08784978DD +:103BE000090201430A20A94205D1012120001980C0 +:103BF000024B1B7A137030BD192A0000A861FF1F09 +:103C0000F7B5150008AA16884A680F4F147852783D +:103C1000120222430A24BA4214D10122DBB20192D9 +:103C200000962A0007F096FA041E0BD1074B1B687A +:103C3000002B07D068782A78000210434242504196 +:103C4000013098472000FEBD022900002C61FF1FB3 +:103C500030B5012503790400BFB02B4211D00A49C9 +:103C6000408806F0E3FD28420BD0084B01A95B8D8C +:103C70004D800B80064B00221B7A60880B7103F08D +:103C8000B5FE3FB030BDC0462461FF1F6840FF1F36 +:103C9000A861FF1F10B50549054806F07DFD042108 +:103CA000044A054806F03AFD10BDC0462461FF1FD6 +:103CB000FFFF0000ACB800116840FF1F10B50248BC +:103CC00004F016FD10BDC046513C001101230370E5 +:103CD0000B4B1A7A4270022282709A78C270DA789C +:103CE0000271032242711A7982715A79C2710C22CF +:103CF00002729A794272DB7983720B207047C04658 +:103D0000A861FF1F022310B50370013B4370053308 +:103D1000837010330371443B43712A3383714433FE +:103D2000C37100230372064B04001B8843720A30E0 +:103D3000FFF7CCFF831D0A30C0B2E37010BDC04650 +:103D4000A861FF1F10B5142007F01AFC124B1422B3 +:103D50000021186007F09CFB002007F001FC012007 +:103D600007F0F6FB022007F0CBFB032003F064FF13 +:103D7000042005F079FF052003F0A2F9062003F0E6 +:103D80006FFE072001F006FA082006F0A7FC0920C4 +:103D900000F0E8FF10BDC0463061FF1F07F030FCA7 +:103DA000012007F025FB07F093FC0000094B10B53C +:103DB0000400984205D0012904D12000064906F0EC +:103DC000EBFC10BD0229FCD1013904F04FFC0028A6 +:103DD000F3D0F6E7FEFF00005661FF1F70B50D7AC5 +:103DE000100004AA2C00168810221440154220D17D +:103DF000002E20D10A78022A18D14A685178157805 +:103E00000E4A09022943914205D00D4A914209D038 +:103E10001C800A2404E014220A491A8007F078FC66 +:103E2000200070BD0C2208491A80F7E71C8001248D +:103E3000F6E70824F4E70B24F2E7C046F3FF00009E +:103E4000F4FF0000B042FF1F8CB9001110B5040050 +:103E50000749084806F0A0FC074804F089FB002049 +:103E6000E40704D50721054A054806F057FC10BDB4 +:103E70005661FF1FFFFF0000AD3D0011F0B80011BB +:103E8000AC40FF1F00B50C4BBFB01A780B4902A81D +:103E900000F098FC6B4680B2D880002809D06A46B2 +:103EA000074B01A91B889380064B0022188803F05A +:103EB0009DFD3FB000BDC0463461FF1F3561FF1F4F +:103EC0000641FF1F1042FF1F00B50C4BBFB01A7810 +:103ED0000B4902A801F0D0FC6B4680B2D8800028C4 +:103EE00009D06A46074B01A95B8D9380064B0022DF +:103EF000188803F07BFD3FB000BDC0465E61FF1F28 +:103F00005F61FF1FAC40FF1F1042FF1FF7B50E009F +:103F1000377A1C0008AB11003D001A8820231D4091 +:103F20001F423CD13378022B3BD173681F785B78FA +:103F30001B023B431E4FBB4208D01E4FBB4214D056 +:103F40001D4DAB4221D00A252800FEBD002A2AD1F2 +:103F5000142C2AD82200F06807F0DAFB174B1C70EB +:103F6000012CF1D9FFF7B0FFEEE7002A1BD1202C7E +:103F70001BD82200F06807F0CBFB114B04211C700A +:103F8000104B187807F074FBDEE7E3B201240092CF +:103F900001940A00310007F0DDF80500D4E7082598 +:103FA000D2E70125D0E70B25CEE70D25CCE7C046AB +:103FB000F3FF0000F4FF0000022900005E61FF1F14 +:103FC0003461FF1FE061FF1F332310B5040003704D +:103FD0000A220749013007F09BFB064B0F201B68A4 +:103FE0001A0AE37222731A0C1B0E6273A37310BDBC +:103FF000A861FF1FD061FF1F30B5012503790400C0 +:10400000BFB02B4213D00B49408806F00FFC28426A +:104010000DD06A46084B02A81B889380FFF7D4FF97 +:104020006B46D8800022608801A903F0DFFC3FB016 +:1040300030BDC0465661FF1F0641FF1F10B5024844 +:1040400004F056FB10BDC046F93F001170B51600D4 +:1040500004AA148805AA15784A68507811780002D5 +:104060002A4A0843801805284BD807F0E9FA0313B9 +:104070001E29343F0720042C0BD80522121BAA420C +:1040800000D92A0022491A803000091907F040FBA4 +:10409000002070BD0720112CFBD81222121BAA424F +:1040A00000D92A001B491A80EEE707200E2CF0D811 +:1040B0000F22121BAA4200D92A0017491A80E3E7EF +:1040C0000720032CE5D80422121BAA4200D92A009B +:1040D00012491A80D8E70720032CDAD80422121BD1 +:1040E000AA4200D92A000E491A80CDE70720032CE6 +:1040F000CFD80422121BAA4200D92A0009491A80EB +:10410000C2E700220A201A80C3E7C046DCD5FFFFC1 +:104110003BB900117C61FF1F2BB9001126B90011BA +:1041200021B900111CB9001110B50D21024A034834 +:1041300006F0F4FA10BDC04610B900111C41FF1F73 +:10414000F0B50024274E85B03000B47100F0E2F8DD +:10415000254D264BEA89297C9A422FD10423300031 +:1041600003AA00F057F90400300000F011F9012310 +:10417000B371002C34D16B4699892B68C9BA4B4373 +:1041800029891B4A1B145B1853806B46D9896B68BD +:1041900049BA89B24B4369891B0C5B181548191C35 +:1041A0001BB2834200DD011C0B0400D500211388E3 +:1041B000918001331380200005B0F0BD022722005A +:1041C00003AB3000009700F0F7F80E230400297CC1 +:1041D0000122300000976B4400F0EEF80443C3E77F +:1041E0001C00E8E7F441FF1F9061FF1F83050000FA +:1041F000A861FF1F0F27000073B5234E300000F0A9 +:1042000089F8224D07236A463000297C00F002F924 +:1042100004003000002C33D16B461B787F2B2FD845 +:1042200000F0B6F86B46D878F02302041B031A405E +:104230006B469B8816495BBA9BB21A432B680009F0 +:1042400053432A891B0C9B184B806B465A789B78EA +:1042500012031B011A436B68024353436A891B0C08 +:104260009B180C481A1C1BB2834200DD021C13046D +:1042700000D500220B888A8001330B80200076BD98 +:1042800000F086F80124F9E7F441FF1F9061FF1F59 +:10429000A861FF1F0F27000070B5114C237C002B75 +:1042A0000FD0382B0ED10F4D280000F033F8CC235F +:1042B000AC222800217C9B0100F0F4F8280000F0DB +:1042C00067F870BD084BE2899A42FAD1054D280083 +:1042D00000F020F800222800217C00F0C5F8EDE76E +:1042E0009061FF1FF441FF1F8305000010B5084BCC +:1042F0001A7C002A09D05B69002B06D09847041E5F +:1043000001D0FEF77DFE200010BD0124F9E7C04674 +:104310009061FF1F70B5C17905000C00631E9C41C0 +:104320001A4BE402E41849000460C9B2007905F0B0 +:10433000DFFEE979687949000131C9B205F0D8FE9C +:10434000E8790930C0B206F0A3FF0023E3666133C9 +:104350002360AA795B3B002A0ED022689A43023B75 +:10436000134323600A23E36107332362002323639B +:10437000A3630133E36370BD22689A4302231343AE +:104380002360462363610633A361EFE700500040DA +:1043900070B5002504000368DD66C0790930C0B23D +:1043A00007F06EF82900207905F03EFE29006079BB +:1043B00005F03AFE70BD0000F8B51E0006AB1D7892 +:1043C000002304681700E366616007F081F80123A9 +:1043D0008022E3662B0027615200013B08D207F0E0 +:1043E000AFF908200A4A1168002D03D12800F8BD52 +:1043F0002261F2E7236F034203D02369013D33704A +:10440000013613685B1A032BEED90125EEE7C0468F +:104410006008FF1F70B51C00002305681600EB66DE +:10442000696007F055F801238022EB6623005200F3 +:10443000013B08D207F084F908200A4A1168002CD1 +:1044400003D1200070BD2A61F2E72B6F034203D035 +:104450002B69013C3370013613685B1A032BEED9CC +:104460000124EEE76008FF1F002370B50468150003 +:10447000E366616007F02CF80123E366256107F02D +:104480005FF98020064A80001168636B034205D102 +:1044900013685B1A032BF8D9012070BD0020FCE7DC +:1044A0006008FF1F70B51D00002304681600E36656 +:1044B000616007F00DF80123E36626610F33626B3C +:1044C0001A42FCD02B0A23611023626B1A42FCD0E3 +:1044D000EDB2256107F034F98020074A80001168A9 +:1044E000636B034205D113685B1A032BF8D90120D3 +:1044F00070BD0020FCE7C0466008FF1F10B5084CE7 +:10450000E368002B08D18022064B52021B689B18DF +:104510006360054B1B68236007F03AF9A06010BD8B +:10452000D061FF1FC8F00040CCF0004070B5184AC1 +:10453000936A916A9942FBD116498A689A421FD3BD +:104540009A1A8B60144B0126186893B2D202D20ECD +:104550004343424300204C681B0A1B1912029B185C +:104560000E4C0A684B60551CA3420CD8002801D0A1 +:104570004B600A600A4A136008680A4B186070BDF5 +:10458000581E821ADDE7084A30009B182A00EAE725 +:1045900000F00040D061FF1F140AFF1F40420F00CF +:1045A000C8F00040CCF00040C0BDF0FF70B51F4C1B +:1045B00023793F2B01D93F2323711D4B22791A7098 +:1045C0001878C0B207F00CF918231A491A4A0B8060 +:1045D0001A4913800B805380A379194980200B80DE +:1045E0000C21938001334B43164D191C000183426B +:1045F00000D9011C2980D1806379002B11D10133AE +:104600006371237A012B01D8022323726279237A02 +:104610000D4853430A21584306F0D2FE0B4D286043 +:1046200070BDA02BEDD9A023EAE7C046C461FF1FEF +:10463000480AFF1F0E42FF1FD043FF1F0C42FF1FFF +:104640000A42FF1F0842FF1F71020000B461FF1FF2 +:10465000F8B515210020FEF7C1FE114C011E114DC9 +:1046600009D10C22104BC1CBC1C4280006F010FFA9 +:10467000FFF79CFFF8BD0C2220000C49FEF782FEDC +:104680000C2802D0084B43CB43C40C222800084915 +:10469000FEF778FE0C28EBD00C220021E5E7C0469F +:1046A000C461FF1F9061FF1F80B90011FC0C000066 +:1046B000F50C0000F0B51D4C8022A54404008820B4 +:1046C00069465201400507F0ABF8902212016A4496 +:1046D0001300200032C832C316C816C38023144CFE +:1046E000144FA6689B033343A3603B6006F018FF9A +:1046F0008823A0685B05C01806F0B2FE0025882359 +:1047000029008022A0685B05C01840196944520046 +:1047100007F07EF880230135FF355B019D42EED125 +:10472000A6603E60044B9D44F0BDC046FCEFFFFF19 +:104730004043FF1F9808FF1F04100000F0B504005D +:1047400087B0002825D0684606F042FE1B4C0228A0 +:1047500006D106226946200006F07AFF002816D00E +:104760006946002301250F262F00E25C0133100962 +:104770001030874038002F00324097403A00024303 +:104780004A610439062BEFD16846FFF793FF07B063 +:10479000F0BD182269460A4807F042F86A46A300AD +:1047A000D358013305D01822FF21684606F070FE69 +:1047B000EAE70134062CF1D1E9E7C0466509FF1F9D +:1047C00000090011F0B5002504000E0085B0AA42D2 +:1047D00000D183E04B1C087801934B7889783779B6 +:1047E00009021943F3783F061B040B431F43039749 +:1047F00020706570252800D193E033D8112813D894 +:1048000006F0A6FF66000D010D010D010D01A700C8 +:10481000B500AE000D010D010D010D010D010D01E1 +:104820000D010D01E7000701232800D1C0E0DB28BE +:1048300000D016E1042A00D8A9E01025052A05D0E9 +:10484000551F2A003800711D06F062FF0522310055 +:10485000200006F05DFF2A003900601D06F058FFB9 +:1048600005353BE0562856D010D8332800D19AE0C1 +:10487000552836D02628DAD1894B29001322180072 +:104880001D0006F005FEFEF7BBFB59E0712800D1C4 +:1048900074E0722800D17DE0DC28C8D1022A00D85B +:1048A00075E07378BFB26370B378A370032A05D044 +:1048B000033A390092B2F01CFEF79EFC1022390038 +:1048C000E01CFEF75FFDC51C002807DA60705CE0A5 +:1048D0000C222000734906F01BFF0C25280005B0B0 +:1048E000F0BD013A704D0C2A13D8002A0AD02800D6 +:1048F000019906F00DFFFFF759FE0C2228006B49C5 +:10490000FEF77AFC29000C22601C06F001FF0D2541 +:10491000E4E70C22EBE7644D654B2A0043CB43C22E +:10492000E9E7013A5E4D0C2A11D8002A08D0019916 +:10493000280006F0EDFE0C2228005E49FEF75CFC24 +:1049400029001322601C06F0E3FE1425C6E70C22A2 +:10495000EDE705225849601C06F0DAFE0625BDE7A2 +:1049600012225649601C06F0D3FE1325B6E7082232 +:104970005349601C06F0CCFE0925AFE77178F02999 +:1049800005D8504B188801F0D3FB0225A6E7FF237A +:104990006370FAE74C4B012A03D072785A70627048 +:1049A000F3E75B78F4E72000FFF70EFB050095E7DF +:1049B000042A04D9454D2F6006F0EAFEA860FFF7EF +:1049C000B5FD0422039003A9601C06F0A1FE052595 +:1049D00084E73F4D062A15D906222800019906F0E2 +:1049E00037FE00280ED006220199280006F090FE1E +:1049F000062238492800FEF7FFFB0123324A51788E +:104A00000B43537029000622601C06F081FE072527 +:104A100064E7012ABBD07078FFF790FEB5E7012864 +:104A200000D004E7931E2C4F132B04D87378002B6F +:104A300009D100F009F9294B39001D78601C6A1E64 +:104A400006F066FE4AE7551E2A000199380006F076 +:104A50005FFE2349AAB23800FEF7CEFB00F02CF926 +:104A6000E9E7DA2893D1042A91D9082A15D9B3792C +:104A700072791B021343F27912041A43337A1B062C +:104A800013433B603B68052231002000039306F08E +:104A90003FFE0422601D03A96CE7FE236370F1E76B +:104AA0009061FF1F8CB90011C461FF1FFC0C000056 +:104AB00080B90011F50C00009C61FF1F7C61FF1F95 +:104AC0004443FF1F1042FF1FC061FF1FD061FF1F43 +:104AD0006509FF1FADAC0000C163FF1FBF63FF1F6F +:104AE000AEDE000070470000020010B5094B0A322C +:104AF000094C92B2DA815A8298811882207802F0A9 +:104B00007DF90422054B012120781A7006F0B0FDD2 +:104B100010BDC046CE42FF1F0A64FF1F0964FF1F7D +:104B2000013870B5042809D806F08AFD0309230866 +:104B300012001E4B0221187806F09AFD70BD1B4B27 +:104B40000821187806F00CFE0022194B1A72F5E7BE +:104B500080220024164B154D52001A810821287816 +:104B60001A68DC7206F054FC2100287806F028FE52 +:104B7000E4E70E4B0821187806F0F2FD0D48FFF728 +:104B8000C1F80D4B0D4A9B7993800D4A138000228A +:104B9000074BDA720132FF321A810A4B5B78002B25 +:104BA000CCD0094A136006F02BFEC7E7E061FF1F77 +:104BB000B461FF1F1942FF1FC461FF1FD043FF1FD5 +:104BC0000A42FF1FC061FF1F34F0004010B50029EA +:104BD00005D1082803D10131013005F053FA10BD89 +:104BE00010B501290FD108280DD10021013005F0A1 +:104BF00049FA054B1B78002B05D02622034B0448AD +:104C00005A72FFF771FF10BDE263FF1FB461FF1F0F +:104C1000C40900000300F0B50A4D8E18B14202D15C +:104C200052008018F0BD0C782F6824093C5D0F27D6 +:104C30001C700C7801313C402F683C5D5C70023385 +:104C4000ECE7C0460442FF1F0E22124B10B51A704B +:104C50000D23114C11492370093A043B104863702D +:104C600006F056FD2D2301220E490F48E371FFF790 +:104C7000D1FF01220D49FFF7CDFF01220C49FFF7BB +:104C8000C9FF030000200B4902001870FEF7B4FAB8 +:104C900010BDC046DE63FF1FBF63FF1F3BB900119D +:104CA000C163FF1F6709FF1FC763FF1F6609FF1F5F +:104CB0006509FF1FAEDE000070B5124C1422200003 +:104CC0001149FEF75FFB431E104D132B17D8AB782D +:104CD000002B14D0431C2B7009236B700023001988 +:104CE0000370287829000130C0B206F0A1FD2978B0 +:104CF00022000139C9B2002005F02EFC70BDFFF77B +:104D0000A3FFEEE7C163FF1FAEDE0000BF63FF1F1E +:104D100010B5114B1A781870002A0ED000280BD14C +:104D20000E4B1A78062A07D85423D340DB0703D545 +:104D30000B4B187802F062F810BD0028FCD0074B2E +:104D40001B78012B02D0033B022BF5D8044B012129 +:104D5000187806F08DFCEFE7E263FF1F0964FF1F80 +:104D60000A64FF1F70B5504E504A514930700820F8 +:104D700005F07EFA0121092005F084F9092005F0EB +:104D800065FA0121002005F07DF9002005F05EFAAA +:104D9000FEF736F906F0BCFB032246494648FFF70A +:104DA00039FF2D24030004221C7044490130FFF711 +:104DB00031FF30230470424D424C437083702E3BD0 +:104DC000062220004049EB87FEF7DCFA062813D0C4 +:104DD000200006F0FDFA022809D00321200006F089 +:104DE00067FB8D23E3706E3B2371193363710622D9 +:104DF00020003549FEF700FA344B1B68FC335C6435 +:104E0000FFF75AFF0020FFF783FF314C314A0121A1 +:104E1000314B1278207801F0B3FF304A304B1278D2 +:104E20000021207801F0ACFF01222E4B1A702E4B8E +:104E30009B78552B31D12D4B3B325A722C4B2D4A3E +:104E4000AB81EA812B826A822021307806F090FCC7 +:104E50000120404205F0CCFB0120404205F068FCF7 +:104E6000FFF762F9FEF716FF00F09EFC01204042BA +:104E7000FEF7ECFF012006F06BFAF02001F03CF9A0 +:104E80000121307806F0F4FB307802F013F91A486B +:104E900006F09EFCFEF712FE70BD6422174B5B7994 +:104EA00053431A000A32CBE7E061FF1FCD4B0011DC +:104EB000E14B00114443FF1F7C61FF1F9C61FF1FFA +:104EC000CE42FF1F6509FF1FADAC00002C64FF1F21 +:104ED0000A64FF1F3842FF1F1942FF1FDE63FF1FD6 +:104EE000BF63FF1FB063FF1FC061FF1FB461FF1FDF +:104EF000C4090000CE090000E261FF1FC461FF1F6A +:104F0000F8B50A0020230D001A40194251D0544B25 +:104F10001B78002B3CD0FFF709FB524B524C534EF1 +:104F200099686268737A8A1ADB039A4202D36160D5 +:104F3000FEF7C4FD327A217A531EDBB299422AD1A0 +:104F4000FFF7AAF9637A002B1FD0013BDBB2637233 +:104F5000002B1AD1464B9B78552B01D106F050FC03 +:104F6000E37A002B0CD00023424A434FE3721388AC +:104F7000380001331380FEF7C5FE390006F078FCD7 +:104F8000642370795843FFF7AFFD237A013323720E +:104F900020206840F8BD9142D4D300232372FFF74C +:104FA000A5F9354F3800FEF7ADFE390006F060FC7C +:104FB000C8E70BB2002B0ADA304B187806F0E0F99C +:104FC000002801D006F034FB80200002E1E7022433 +:104FD000214206D0244B01201A72FFF799FE2000CF +:104FE000D7E70B071BD5FFF7A1FA1E4B1E491F4C35 +:104FF00098684A68637A821ADB039A4202D348604F +:10500000FEF75CFDFFF772F9FFF746F900F0E6FBEB +:105010002368DB0701D5FFF711F80820B9E7102452 +:105020000E002640214206D00D4B1B78002BD6D116 +:10503000FEF744FED3E70124214209D0104800F0D6 +:105040006DF806F00DF93100092005F01BF8C6E7F0 +:1050500004240800204021429CD0FEF713FFBEE745 +:10506000E263FF1FD061FF1FB461FF1FC461FF1F18 +:10507000C061FF1FA861FF1F1942FF1FE061FF1FF2 +:10508000FC41FF1FF0B51B4B1B4F1B883A880400E7 +:105090001A4E1B4D85B09A420DD832889A420AD3D7 +:1050A000184B1A882B889A4205D1174A174B128839 +:1050B0001B889A421BD0052001F074F83B8802AA95 +:1050C00013803388019053802B88114D93800F4BB0 +:1050D00002A91B88D3800F4B2A78188802F090FD14 +:1050E0000D4B08212878019A1C7006F081FB05B051 +:1050F000F0BDC046AE63FF1F0E42FF1F0C42FF1FF4 +:105100000A42FF1FAC63FF1FAA63FF1F0842FF1F75 +:105110000A64FF1F1042FF1FA863FF1F13B50C4B4B +:105120001C78002C11D1002801D00A4B18600A4AC3 +:105130000A4B11780A4A10780A4A01920A4A0092E8 +:10514000002205F001F9200016BD1124FBE7C0463E +:105150000964FF1FA463FF1F0864FF1FF863FF1F9C +:105160000A64FF1FE463FF1FE863FF1F10B5064BCF +:1051700012201B78052B06D1044B13221988044BEF +:10518000187801F0EBF910BD0964FF1F1042FF1FF2 +:105190000A64FF1F10B500240122114B52421870FF +:1051A000104B1C70104B1A8001F084FF04220F4B2F +:1051B00021001A700E480C3206F03AF91022210034 +:1051C0000C4806F035F907220B4B1C600B4B1C708A +:1051D0000B4B1C700B4B1A700B4B1C7010BDC04658 +:1051E0000A64FF1F0964FF1F1042FF1F0864FF1FAE +:1051F000F863FF1FE863FF1FE463FF1FBE63FF1F29 +:10520000BD63FF1F1242FF1FBC63FF1FF8B5174CA1 +:105210000600257806A814240078052D23D1B41F94 +:10522000134FA5B21824BD421DD88D1FADB2BD428B +:1052300019D8FA256D00AA4215D21D000D4F0A3D5E +:10524000ADB2BD420FD80C4C26800C4C21800C49CD +:1052500000240A800B4A1380FFF714FF0A4B042135 +:10526000187806F07DFA2000F8BDC0460964FF1FDB +:10527000790C0000750C00000E42FF1F0C42FF1F4E +:105280000A42FF1F0842FF1F0A64FF1FF0B50BB25E +:105290000D0089B0002B00DB70E1A44E307806F0E1 +:1052A0006FF8041E50D00378A22B00D122E1D02B3E +:1052B0001AD0912B45D143780E2B42D19C4B82883A +:1052C0009A423ED19B4A83681278052A39D103203D +:1052D00018567F2835D0984B1B68002B31D05B685F +:1052E000002B2ED098472CE08078072829D806F08C +:1052F000A7F90428183F3F74A8D86378002B0CD175 +:1053000001218C4B19708D4B1A78002A5BD08C4B85 +:10531000307801F035FD002855D00722854B1A70F2 +:1053200051E061780029F8D1E378002B11D0854A4B +:10533000854B1278307801F023FD60706378002B84 +:10534000EBD1200006F074F980200002684009B01B +:10535000F0BD784B1B78022BF3D00121307806F09A +:105360001FF80028EAD10121307806F081F9E5E73D +:105370006378002BD1D16F4F032807D13B78052BE1 +:1053800002D101333B701EE00223FBE76F4B1A880A +:105390006F4B0293002A0BD01B78002B03D0012106 +:1053A000307806F025FA3B78062B04D1013BE9E77B +:1053B000029B1A70F7E7042B41D10121029B307840 +:1053C000197006F055F95C4B1B68002BB9D01B68AF +:1053D000002BB6D0574A107884E76378554F002BDE +:1053E00027D10622211D5B4806F092F962895A4BAB +:1053F0005A491A80A2895A4B1A80E3890B800521E9 +:10540000397058490A80584A1380228A574B1A80AB +:10541000574B1B78012B09D11F2000F0C3FEFA2245 +:10542000920042430421307806F0E2F90022484B12 +:1054300075E7312B00D070E70022454B1A7003232B +:10544000A0E706220021434805F0F2FF0023454A69 +:1054500004211380444A30781380444A138006F0B4 +:105460007FF90821307806F07BF9A379083B5A428E +:105470005341304A03331370304B1B78002B06D056 +:10548000334B30781A78002A06D001F0B7FC01229D +:10549000314B52421A8096E70121197006F0E8F864 +:1054A000F5E70821307806F05BF96378002B00D02F +:1054B00047E72C4B2D4F0293E388029A0421138077 +:1054C000294B307803932389039A138063893B80A7 +:1054D00005F066FF002800D033E7264B1B68002B41 +:1054E00000D12EE7039902983A88098800881B6842 +:1054F000984726E74379132B00D022E70389012B35 +:105500000AD11D4B1B78022B06D10821307806F0FA +:1055100027F9FFF72BFE14E7052000F043FE0821D2 +:105520000200307806F064F90BE7C0460A64FF1FFA +:10553000051400000964FF1FA463FF1F3842FF1F0A +:105540001942FF1FDE63FF1FBF63FF1FE063FF1FE2 +:10555000E263FF1FB163FF1F1042FF1FB863FF1F0D +:10556000BA63FF1FAE63FF1FAC63FF1FAA63FF1F79 +:10557000B063FF1FA063FF1FA863FF1F8020C0014F +:10558000014200D0E2E6CB0731D5324B1B78002B2D +:105590001DD0314E05AC3378052B1AD1023B237058 +:1055A0002E4B21001B7823722D4B1B7863722D4BE1 +:1055B000187801F089FB002809D007202A4B3070A9 +:1055C0001B68002B03D01B68002B00D098470120DC +:1055D000BCE60E20254B06221B7825492370254B5F +:1055E0001B78637002ABC01806F092F8D8E702236C +:1055F00008001840194209D0174B1B78052B03D11E +:105600001D4B188805F06CFF02209FE60424214200 +:1056100003D0FFF737FD200098E608230800184064 +:10562000194200D193E6154B1C78012C03D0022CB3 +:105630000DD008208AE6124B124A134913481B88E2 +:105640001288098800880094FFF7E0FDF1E7FFF772 +:105650008DFDEEE7E263FF1F0964FF1F1242FF1F8B +:10566000BC63FF1F0A64FF1FA463FF1FBE63FF1F0D +:105670001342FF1FBD63FF1F1042FF1FA863FF1FE0 +:105680000842FF1F0A42FF1F0C42FF1F0E42FF1F6E +:1056900010B502A804880B20002C10D149680878A6 +:1056A0004978090201430C48814209D1022119803D +:1056B0000A4B59881170DB7800205BB2537010BD23 +:1056C000074C0A20A142FAD102211980034B998884 +:1056D00011705B79F0E7C0466E2A0000A861FF1FD9 +:1056E0006F2A0000F7B5150008AA16884A680F4F00 +:1056F00014785278120222430A24BA4214D10122A9 +:10570000DBB2019200962A0005F024FD041E0BD1A5 +:10571000074B1B68002B07D068782A7800021043DB +:1057200042425041013098472000FEBD022900004E +:105730001C64FF1F30B5012503790400BFB02B4264 +:1057400025D01449408805F071F828420CD0124B3E +:1057500001A95B8D00220B8002234B800F4B5B88DD +:105760008B80608802F042F90D49608805F05EF890 +:10577000C0070CD50B4B01A91B8800220B8002230C +:105780004B80064B9B888B80608802F02FF93FB0DE +:1057900030BDC0461464FF1F3C42FF1FA861FF1FBD +:1057A0000C64FF1F9642FF1F10B5074C07492000ED +:1057B00004F0F2FF2000064904F0EEFF0721054A3D +:1057C000054804F0ABFF10BDFFFF00001464FF1F8D +:1057D0000C64FF1FACB900113C42FF1F10B502481A +:1057E00002F086FF10BDC046355700110200F0B52B +:1057F00001270A480A4E51188B1A002B00DCF0BD15 +:10580000082415784308684038404000805B013C1C +:1058100058406D08002CF5D10132EDE7FFFF000084 +:10582000C6B90011F0B500250F269D4200DBF0BD82 +:105830004C5D070944403440A400A058013578402D +:10584000F3E70000F0B589B06A460D000B000F27A2 +:10585000110010351C780133260024093E401670D3 +:1058600054700232AB42F5D12023024AFFF7DAFF2F +:1058700009B0F0BDCCB90011F0B54E780B7889B005 +:1058800036020C00170001901E43012A61D9954B86 +:105890009E4200D877E001339E421CD1062A17D1E0 +:1058A000CA788B7812021A430B791B0413434A7986 +:1058B00012061A438C4B5A6100221A705A808B4A86 +:1058C0005A608B4A9A608B4ADA60002009B0F0BDBA +:1058D00088225205EEE7884B9E423CD182498B7864 +:1058E000002B00D0F6E00C2A31D10F22A37893438D +:1058F000E2781202134322791204134362791206EA +:1059000013434B60E279A07912020243207A00042B +:105910001043627A12060243CA60E27AA07A120247 +:10592000024376484A81834208D804236E491422F0 +:1059300001980B7005F0ECFE1420C7E71201D21895 +:1059400089235B059A42F0D801238B70BDE7022AB8 +:10595000FAD00523EAE76A4A01239642E6D1FFF727 +:1059600005FC052F0CD9E378A2781B02134322799A +:1059700012041A4363791B061343624A03931360AC +:1059800005F03EFFA1E7584D2B78002B9DD1AB7859 +:10599000002B00D1A0E02B8901339BB20093B342CE +:1059A00000D091E0132AD4D9CF7C8B7C3F02122106 +:1059B00020001F43FFF71AFF874200D08EE0002E21 +:1059C0003DD1E378A2781B0213432279E9681204DF +:1059D0001A4363791B06134303930A228B4212D1A5 +:1059E000FF23A370E370237163716B89002B09D1CE +:1059F000E37B227C1B0212041343A27B13431B098B +:105A000001336B8100226B89002B8ED0002A67D175 +:105A1000686837013818000B6B69000303909842DF +:105A200005D9686105F01CFDEB780133EB706868FF +:105A30001022A11C381805F0EBFE2E8145E76F8976 +:105A4000009A7B1E9BB293423AD1E278A37812026D +:105A50001A43237905A81B04134362796C68120664 +:105A60001A43EB6800920392211D0C22049305F067 +:105A70004FFE0120260004A940421036FFF7E2FE47 +:105A8000013F012F17D1009A0B232861824200D0D9 +:105A90004CE704221C49200005F0BAFE042203A9A9 +:105AA000686805F0BDFEE968039AFF23914200D1C2 +:105AB0003CE7F73B3AE73100FFF7C4FE1036DFE77B +:105AC0000923B742A4D831E7009BB34200D9FCE6D2 +:105AD00007232BE7022329E7032327E7062325E7EC +:105AE0000A2323E7FFFE0000B042FF1F0000011160 +:105AF000FFFF00005048593601FF0000FFFF001172 +:105B000002FF000034F00040BC42FF1F10B5034C00 +:105B10000B000122210000F06BFA10BDCD5C0011DA +:105B20000B8870B506000D000224162B11D92B002E +:105B30000322094900F05CFA041E0AD1074B2A88A7 +:105B40001B88191C934200D9111C300089B200F047 +:105B5000EFFA200070BDC046F95C00114664FF1FDB +:105B600010B54A780400013A0B000220012A07D838 +:105B70000A78002A04D005222000024900F038FAF1 +:105B800010BDC046275D00110A7810B50B00040057 +:105B90000220002A04D007222000024900F028FA3F +:105BA00010BDC046D35D00110A7810B50B0004008B +:105BB0000220002A04D009222000024900F018FA2D +:105BC00010BDC046395E001110B5034C0B000B220E +:105BD000210000F00DFA10BD695E001110B5034CF4 +:105BE0000B000D22210000F003FA10BDDB5E001156 +:105BF00010B5034C0B000F22210000F0F9F910BD85 +:105C0000355F00110A7810B50B0004000220002A4D +:105C100004D011222000024900F0EAF910BDC0466C +:105C2000455F0011002310B51322190000F0E0F9C0 +:105C300010BD000010B5034C0B001722210000F02E +:105C4000D7F910BD975F0011002310B51922190074 +:105C500000F0CEF910BD000010B5034C0B001B2264 +:105C6000210000F0C5F910BDD15F0011F7B584899E +:105C70000D0006000121002C22D000238268D3569B +:105C80001778002B1EDA0C2C1AD90C3CA4B213196D +:105C900040880093230002F086FE431E98410130A5 +:105CA0007B06DB0F6B703F23013C1F40A4B22870C2 +:105CB000AF70AC80002C07D0B3680133AB6000211B +:105CC0000800FEBD0020EBE7AC60F8E70B7803703E +:105CD0004B8843704B881B0A83700B79C370042078 +:105CE00070470420022B06D10020537811781B0244 +:105CF000009A0B43138070470B8803700B881B0AB4 +:105D00004370022070470420009983420AD15378DF +:105D100010781B0203430B80D37890781B02034357 +:105D200000204B807047F8B50D004B78012400210E +:105D3000461C03702B788B4201D82000F8BD6B788D +:105D4000B01C4F1C012B10D1890069184B8802220E +:105D500033704B88B9001B0A7370691805F0B0FCEA +:105D600004360434A4B2F9B2E4E7122359436B18A1 +:105D70005A88043132705B8810221B0A73706918CC +:105D800005F09EFC12361234ECE770B5049D140049 +:105D90001E00052B01D8042070BD637812781B0209 +:105DA00013432B80E378A2781B02134302226B80FB +:105DB0002A71211D681D063E05F082FCB2B22A81BF +:105DC000E92AE8D82800A11D0A3005F079FC002056 +:105DD000E2E7002310B50A789A4201D8900010BD7E +:105DE0009A008A185488013304705488DBB2240A5C +:105DF0004470948884709288120AC2700430EAE772 +:105E000010B51100029C062B04D004201022142B84 +:105E100001D010BD022222714B7808781B02034387 +:105E20002380CB7888781B02034363800431601D94 +:105E300005F046FC0020ECE710B50C788B780431B7 +:105E40005C43E4B203702200013005F039FC601CB1 +:105E500010BD0420022B06D10020537811781B02BC +:105E6000009A0B431380704710B50C000A8802316A +:105E700005F026FC208810BD70B504000D000498C4 +:105E80001100012B01D8042070BD1678527812023F +:105E9000324302800200F13255701470E125002C6B +:105EA00000D10C35023B9AB24280AA42EBD80231B3 +:105EB000043005F005FC0020E6E704200099834249 +:105EC0000AD1537810781B0203430B80D378907863 +:105ED0001B02034300204B80704710B50C000A885A +:105EE000023105F0EDFB208810BD000070B50121E6 +:105EF0001E000420049C0E400B4218D1CB40DDB2A2 +:105F00008D4214D90A49DBB2098899420FD3230084 +:105F1000EE331D703300580011184978165C0902E1 +:105F2000314301332152D9B28D42F4D8002070BDE3 +:105F3000C842FF1F10B50C000A88023105F0C0FBF3 +:105F4000208810BD10B50C788B7804315C43E4B226 +:105F500003702200013005F0B3FB601C10BD10B5CA +:105F600011000298032B01D8042010BD1478527838 +:105F7000043B120222430280CA788C781202224328 +:105F800042809AB28280EB2AEED80431063005F0C6 +:105F900097FB0020E9E710B50C000B8803700B8815 +:105FA0001B0A43704B8883704B881B0AC3708A8816 +:105FB0000430063105F084FBA088043080B210BDA7 +:105FC0000420012B03D100201378009A137070472E +:105FD00010B50C000B8803700B881B0A43704A88AD +:105FE0000230043105F06CFB6088023080B210BDD5 +:105FF000F0B589B003931E4B029242000700D05ABD +:10600000019102F020F81325061E2DD0029B0124D9 +:106010000370019B002B04D00019039998470019C5 +:1060200084B26B461B7A5BB2002B0FDA102138006A +:1060300002F01CFB1925002813D130003219E1B2FF +:1060400002F066FC051E0CD10C34A4B2042304AA91 +:10605000380005A993800696948101F0AFFD051ED6 +:1060600002D0300005F0A4FB280009B0F0BDC04606 +:106070004464FF1F70B505000C0000280CD0002000 +:10608000814209D010222000044905F019FB0120AB +:106090002B7823736B78637370BDC0460CBA001104 +:1060A000F0B506000D0017001C0085B002291BD0BA +:1060B0000020102907D1022B07D0102B03D115E0A7 +:1060C0000020102C08D005B0F0BD69463800FFF75D +:1060D000D1FF2A0069460BE069463000FFF7CAFF8E +:1060E00022006946380004E0022BE9D12A00390079 +:1060F000300005F055FBE6E7031CF02800D9F0233B +:10610000032008499AB2013A0B80D317034006498D +:106110009B189B100B80D30F04499B185B100B80BE +:106120007047C046CC42FF1FCA42FF1FC842FF1F34 +:10613000034B1B888B4202D3024B4000C152704775 +:10614000CC42FF1F4464FF1F014B4000185A7047A8 +:106150004464FF1F1722014B1A8070474464FF1FDD +:1061600070B505000E2005F013FA041E13D0D023DD +:10617000037000230622837007494570033005F041 +:106180009FFA064B2100DA8A62811B7E2373044B3F +:10619000187805F0BDF870BD6064FF1F5064FF1FE4 +:1061A0001C43FF1F262803D8024B4000C05A7047EB +:1061B0000148FCE7CE42FF1FFFFF000070B506005C +:1061C0000C00094D1C220021280005F031F9074B75 +:1061D0001E70074B1C7005F023FA0123002801D024 +:1061E000002312202B7070BD5064FF1F1C43FF1F43 +:1061F0007164FF1F70B505000D4C0800E260A160DE +:1062000010220021656005F03BF8012803D1102120 +:10621000A06802F058FD10220021280005F030F897 +:10622000012803D11021606802F04DFD70BDC04609 +:106230005064FF1F70B5041E05D1002903D006224B +:106240000D4805F03DFA0D4B1D78012D11D1002CA4 +:1062500005D102221A7005F053FA280070BD002201 +:106260001A70074B1B78FF2BF7D02000FFF778FF41 +:10627000F3E70025F1E7C0466064FF1F5064FF1F8D +:106280001C43FF1F030010B5002801D1002010BDE2 +:1062900000780B4A002803D15988D1821B791376E4 +:1062A0001378022BF2D10023984200D103331370EC +:1062B000044B1B78FF2B01D0FFF752FF0120E6E7CC +:1062C0005064FF1F1C43FF1F002911D000280CD071 +:1062D0004B79012803D140225242134303E03F226D +:1062E0001340032802D001204B7170474022F4E78D +:1062F0000800FAE770B5094D0100287800280BD096 +:10630000074C0622200005F0DBF921002878FFF772 +:10631000DBFF200005F004F870BDC0467064FF1F6D +:106320004A64FF1F00290AD0012808D13F224B7977 +:106330009343C02B03D0403B5A425341981C7047B3 +:1063400070B5174D06002B78FF2B15D00A2005F0ED +:106350001FF9041E10D0D0230370C83B8370114B6B +:1063600011491B784670C3700622043005F0A8F965 +:106370002100287804F0CCFF0C4B1B78012B0DD1A9 +:106380000B4B1B68002B03D09B68002B00D0984759 +:10639000084B04211878084A05F03AF870BDC04649 +:1063A0001C43FF1F7064FF1F4A64FF1F6C64FF1FC4 +:1063B0009864FF1F9C64FF1F60EA0000014B98680F +:1063C0007047C0465064FF1F014BDB681868704778 +:1063D0005064FF1F074B10B5DA6813680133136070 +:1063E000054B1878FF2803D08021C90105F040F93A +:1063F00010BDC0465064FF1F1C43FF1FF7B50E00C1 +:1064000002F0C8F8051E1CD00E4B06621F78002F44 +:1064100000D10778AB791020019305F0B9F8041E7C +:106420000FD0D0230380C73B8370019BE91DC3704D +:106430000622043005F044F921003800E66004F03B +:1064400067FFF7BD1A43FF1F014B18787047C0461E +:106450007064FF1F054B002805D1054B1A78054BCA +:10646000002A00D1014B18007047C0466064FF1F2E +:106470007064FF1F4A64FF1F014B58687047C04695 +:106480005064FF1F024B1868431E9841C0B270470A +:106490007464FF1F421E03000120152A03D9FF3B2D +:1064A0005A425341D8B27047F0B51C0000230E0089 +:1064B00085B0039002920B70029A934201D30020A0 +:1064C00019E0E55C5A1CD2B2002DF8D0029851199F +:1064D0008142F4DC0233DFB2A35C18000193FFF7C2 +:1064E000D9FF002807D0013D019A0399EBB2337020 +:1064F0008A4202D1E01905B0F0BDDB19DBB2DBE75F +:1065000010B50C0002F09EF803001220002B03D0FF +:106510002100588804F024FF10BD000070B50E4D16 +:1065200084006359002B15D0186A002801D004F0AC +:10653000FFFE2B59586A002801D004F0F9FE2B59B0 +:10654000986A002801D004F0F3FE285904F0F0FE08 +:1065500000232B5170BDC0468064FF1F1C4B70B5DB +:1065600004000E00150099420AD11A4B1B68002B3B +:1065700001D1122070BD1B68002BFAD09847F9E7B3 +:10658000154B994215D1134B1B68002B0AD01B6881 +:10659000002B07D09847002804D1104B1C70104BDB +:1065A0001D70E7E729002000FFF7AAFF0028E1D1CE +:1065B000F3E7080001F0EEFF0028DAD003780320AB +:1065C000A342D7D12900300004F0CAFED2E7C0466A +:1065D000FEFF00007C64FF1FFFFF00007964FF1FC7 +:1065E0007864FF1FF7B50400808801F0D3FF002511 +:1065F000A84203D00578A08802F008F81C4E337832 +:10660000002B1FD0AB421DD11A4B28001978FFF781 +:1066100077FF002818D000233370A3790820A778CB +:10662000A688019304F0B4FF011E0DD0D02303709F +:10663000CA3B8370019B477086808371280004F0F9 +:1066400067FE01E0002DE8D1A0880B4B8200D358F3 +:10665000002B01D0FFF762FF1721A088FFF768FD2C +:10666000A08801F027FDA08801F0FEFDF7BDC0461F +:106670007964FF1F7864FF1F8064FF1FF0B587B047 +:106680001D000CAB1B88070001930DAB1B88142069 +:1066900002930EAB1B88160003930FAB1B8800916F +:1066A000049310AB1B88059304F072FF041E1AD0EC +:1066B000D0230370CB3B47708370C670062229003D +:1066C0000430002D11D004F0FBFF019B21006381F9 +:1066D000029B0098A381039BE381049B2382059B7B +:1066E000A37404F015FE07B0F0BD04F0A1FEECE7C2 +:1066F000F7B5009308AB1B8807000C200D001600AF +:10670000019304F045FF041E13D0280001F042FF5E +:1067100000280FD00078D0232370C93BA370009BC2 +:1067200021002381019B6770A580E680638104F0CE +:10673000EFFDF7BD014B1878EDE7C0461C43FF1F86 +:1067400013B5040064890389C2888188C0780094E5 +:10675000FFF7CEFF13BD000010B5044C20680028E1 +:1067600003D004F0E5FD0023236010BD8464FF1F07 +:10677000A122F0B5818892004A43384B384F1B68FC +:1067800004009B189D2292009B18827989B01A60A0 +:106790003B68002B5FD01D78324B1B68002B04D068 +:1067A0005B68002B01D00020984726000836310096 +:1067B000E079FFF7B7FD237DE0710200E0780493F4 +:1067C000638A29000393238A0293E3890193A388B0 +:1067D00000933300FFF752FFE378002B0BD1E289DF +:1067E000A379A18802920196E27928000092012201 +:1067F00001F0DAFEE0703B68002B20D0FFF7ACFF21 +:10680000194D287800281AD0184B1978FFF778FE10 +:10681000002814D02B78E67808200793A78804F086 +:10682000B7FE011E09D0D0230370CA3B46708370A7 +:1068300087808671079804F06BFD00232B70172169 +:10684000A088FFF775FCA08801F034FCA08801F057 +:106850000BFD09B0F0BD064B9DE7C0463409FF1F94 +:106860008464FF1F9864FF1F7964FF1F7864FF1F13 +:106870001C43FF1FF8B5070008000E0001F08AFE58 +:10688000041E18D02620FFF78DFC051E00D12578A8 +:10689000062004F07DFE041E0DD00021062204F027 +:1068A000C7FDD0232370C23B21006770A370A68070 +:1068B000E8B204F02DFDF8BDF0B585B001930AAB48 +:1068C0001B78070002930BAB1B7808000D000092A9 +:1068D000039301F05FFE061E22D0102004F058FE44 +:1068E000041E1DD01022002104F0A2FD2620FFF777 +:1068F00059FC002800D13078D0232370C13BA3700D +:10690000009B21002372019B67706372029BA5802C +:10691000A372039BC0B2E3720C9BE36004F0F8FC2B +:1069200005B0F0BDF7B50D00019001F033FE071E74 +:1069300020D00E2004F02CFE041E1BD02620FFF7D2 +:1069400031FC061E00D13E78D0232380C53B0622B1 +:10695000A370F91DE01C04F0B3FE019B2A006381C3 +:106960000123DD401A401D40210022736573F0B2FF +:1069700004F0CEFCF7BD0000F0B585B00290100029 +:106980000D0017000A9E039301F004FE041E31D08F +:10699000029B002B2ED1039B02795B0724D5122387 +:1069A00013430422002E08D10B99002905D10C991C +:1069B000002902D10D9900291AD01A430D9B22718A +:1069C000002B00D0C9E0002E00D1CFE0002D00D078 +:1069D000CCE0606A002801D004F0AAFC1C21300041 +:1069E00004F016FE606205E002239A430E33D7E7F7 +:1069F00093432371654BBA00D458002C00D1AAE010 +:106A0000002E10D0236A002B03D11C2004F0B8FD07 +:106A100020625E4BBA00D358186A002803D01C22AB +:106A2000310004F04DFE0C9B002B12D0574CBB00E4 +:106A30001D596B6A002B03D1162004F0A1FD68627A +:106A4000BB00E358586A002803D016220C9904F0C2 +:106A500037FE0D9B002B11D04C4DBC006659B36A1C +:106A6000002B03D1142004F08BFDB0622B59986ADF +:106A7000002803D014220D9904F022FE380001F002 +:106A800089FD051E67D0414BBA00D358002B62D058 +:106A90001A6A3420002A00D11C389A6A002A01D0D0 +:106AA000143080B20B9A002A01D01C3080B25B6A8D +:106AB000002B01D0163080B204F06AFD041E4AD0CB +:106AC0001822002104F0B4FC2620FFF76BFB019094 +:106AD000002801D12B780193D0232370029B200042 +:106AE00063700A23294EA370039BBD00A371AB59A9 +:106AF000A780196A1830002905D01C22A06004F074 +:106B0000DFFD200034307359996A002907D0030053 +:106B100014221433E060029304F0D2FD02980B9B20 +:106B2000002B08D003001C221C330B992061029318 +:106B300004F0C6FD02987359596A002903D0162241 +:106B4000606104F0BDFD6B462100187904F0E0FBA4 +:106B50003800FFF7E3FC05B0F0BD10220D9B0D9946 +:106B60001B69A018236204F0ABFD2CE70B9B002BE4 +:106B700000D13FE7012D00D03CE7606A002801D03A +:106B800004F0D6FB1C210B982AE7C0468064FF1F47 +:106B900010B5044C2068002803D004F0C9FB002382 +:106BA000236010BD7464FF1F0B4B07B51A68002AE1 +:106BB00001D100200EBD6946531C01201278073117 +:106BC000FFF772FC0028F4D002780123100018406F +:106BD0001A42EED0EEE7C0469064FF1FF0B51F4F9B +:106BE00001203B6887B0002B25D09B78059300F0EF +:106BF000B3FB002821D00A20FFF7D4FA04000B20B1 +:106C0000FFF7D0FA164B05001E78731E9E413B68B5 +:106C1000F6B2191DD878FFF757FB3B682900DA7ADE +:106C2000043303929A79019302920090330020007A +:106C3000059A04F035FD07B0F0BDFFF7B5FF002859 +:106C400005D00620FFF7AEFA04000720D8E7082099 +:106C5000FFF7A8FA04000920D2E7C0467464FF1FBA +:106C60007064FF1F70B50A4E040033780D00FF2BCF +:106C70000DD0042004F08CFC011E08D0D02303703A +:106C8000CE3B45708370C470307804F041FB70BD1A +:106C90002C43FF1F70B5040006200D0004F078FCA3 +:106CA000011E0AD0D0230370CD3B8370054B447086 +:106CB0001B688580187804F02BFB002C01D0FFF7AF +:106CC00067FF70BD7464FF1FF8B5264F06003B6870 +:106CD0000D001124002B05D10522234B1B781342F4 +:106CE00002D112242000F8BD204A10241268002A84 +:106CF000F8D01278002AF5D0DB0719D52B789A1E28 +:106D0000012A1AD80C2004F03BFC13243860002818 +:106D1000E8D000230A22437029000670023004F0F4 +:106D2000CFFCFFF75BFF041E0AD0FFF731FFD9E766 +:106D300000F012FB0028E1D1E4E7002BE2D0D0E71D +:106D40000B4B1B78032BCDD11D20FFF72BFA094BE2 +:106D500018800028C6D0084B04211878074A04F090 +:106D600057FBBFE77464FF1F7164FF1F9064FF1F30 +:106D70007064FF1F6E64FF1F9C64FF1F60EA0000C9 +:106D8000F7B50193194B14001A78052306000F007C +:106D900012201A4221D0012920D1154B1D68002D47 +:106DA0001BD002201F2C18D8002C02D0019B002BD6 +:106DB00013D0104B1F221E706E1C0021300004F0F7 +:106DC00037FB01992200300004F07AFC31002000EA +:106DD0002C70002F06D004F06BFCFEBD064B122079 +:106DE0001D68DCE704F024FDF7E7C0467164FF1F6F +:106DF0009064FF1F2C43FF1F8C64FF1FF8B50F4EDC +:106E000012243368002B17D01B780F3C834213D118 +:106E100000250B4F0221387804F0A2FC094B042115 +:106E200038781D8004F09CFC074B28001D803368D7 +:106E30005C7004F05DFA04002000F8BD7464FF1F6C +:106E40009C64FF1F8864FF1F6E64FF1F70B50128DC +:106E500023D11B4C2388002B03D01A4A1578002D10 +:106E600007D0194B1B68002B02D01878FFF7C6FF1C +:106E700070BD3B2B02D93C3B2380F9E7134E022126 +:106E8000307804F06DFCFA222388920002215A43E4 +:106E9000307804F0ADFC2580EAE70B4B1B68002B33 +:106EA000E6D00B4B1B785B07E2D5084B0221187824 +:106EB00004F056FC0022024B1A80FFF769FED7E768 +:106EC0008864FF1F6C64FF1F7464FF1F9C64FF1FB6 +:106ED0007164FF1FF8B51E4D2868002803D004F028 +:106EE00027FA00232B601B4E3068002803D004F0E3 +:106EF0001FFA00233360184F05243B781800204008 +:106F0000234221D0154800F02BFA3B78234213D0BE +:106F1000202004F035FB2860002813D02022002117 +:106F200004F086FA202004F02BFB041E306005D00C +:106F30002022002104F07CFA002004E0286804F0FC +:106F4000F7F92C601320F8BD00F00AFAF4E7C04608 +:106F50009064FF1F8C64FF1F7164FF1F2043FF1F9D +:106F600010B50A4C23681A1E0ED0002808D1013033 +:106F7000587004F0BDF9002805D02368002B02D01A +:106F80000021FFF787FE0122100010BD7464FF1F6F +:106F9000F7B5274E050033680191181E21D05C78A3 +:106FA000244F012C30D1FFF7FFFD002825D0200011 +:106FB000FFF7F8F80400412814D91F4B0221187874 +:106FC0001E4A04F025FA1E4B3C3C1C80022233680A +:106FD0005A703B78002B14D128000199FFF75AFE14 +:106FE0000120FEBDFA2292004243002AEED0124B4D +:106FF0000221187804F0FCFBE8E7FFF7D3F8020061 +:10700000F3E700233B70EBE73B78002BE8D103204C +:1070100004F0BEFA011E08D0D0230370CC3B4570AB +:1070200083703368187804F073F9FFF7B1FDD7E780 +:107030007464FF1F6C64FF1F9C64FF1F60EA000004 +:107040008864FF1F10B51749838802008B4220D047 +:1070500011D815498B4217D0144900205B1899B2FA +:10706000012907D8926811785A425341D8B2FFF7E4 +:10707000F9FD012010BD0E4A00209B1807229BB28B +:107080009A424041C0B2F5E783681878FFF768FF7D +:10709000F0E7836899785A78090218781143FFF766 +:1070A00077FFE7E70A20000006200000F8DFFFFF77 +:1070B000AFDFFFFF014B18707047C0462D43FF1F25 +:1070C00010B5064C207001F041FA207804F088F9E0 +:1070D0000521207800F062FD10BDC0469C64FF1FB2 +:1070E0000BB273B50D00002B00DBC4E0884B1878A1 +:1070F00004F046F9041E0ED00378912B0FD0A22B7A +:1071000000D1A1E0834B1878FF2852D0210004F071 +:10711000FFF800284DD180200002684076BD4378FA +:107120000F2B76D013D8052B70D00E2BEAD1808888 +:10713000794B98422BD8794B98421BD8784B984280 +:10714000E0D1A3681878591CFFF774F838E03E2B9B +:10715000D8D18378032B74D06CD8012B6ED0022B3E +:10716000D0D1704B1B68002B23D05B68002B20D044 +:1071700098471EE06C4BC0180C28C3D804F060F888 +:107180001DC2C2150BC20B0B0B3223C23C00674B56 +:10719000C0180728B6D8664B1B68002B09D01B689F +:1071A000002B06D0200098470AE0A3681878FFF764 +:1071B000C7F8200004F03CFAADE7A068FFF762F8DA +:1071C00000289FD0F5E7A3681B78002BF1D0554B22 +:1071D0001B68002BEDD01B68002BEAD0210055481E +:1071E0009847EDE74F4B1B68002BE2D01B68002B44 +:1071F000DFD021005048F3E7504B1B68002BD8D05C +:107200005B68002BD5D021004348E9E7FFF7EAF996 +:10721000CFE780884A4B984203D04A4B984200D02F +:1072200070E7464B1B68002BC3D05B68002BC0D0B7 +:107230002100D5E7153B012BBBD963E7FFF798FA8F +:10724000B7E7FFF77DFAB4E73F4B1B78042B07D174 +:1072500000236A4613800179408800F0C5FCA8E746 +:10726000364B1B68002BA4D05B68002BA1D001001B +:10727000364898479DE7012421420AD0294B1B68D4 +:10728000002B04D05B68002B01D000209847012020 +:1072900043E78B070AD5264B1B68002B04D05B689D +:1072A000002B01D020009847022036E70421280057 +:1072B00008400D4200D131E7254E3388002B21D004 +:1072C000013B9BB23380002B1AD1FFF7DBF800287B +:1072D0000AD0204B1C70164B1B68002B04D05B6837 +:1072E000002B01D020009847FFF7C6F8694601F04F +:1072F00001FD6846FEF7FEFF1D20FEF753FF3080BC +:1073000004200AE7024B187804F02AFAF8E7C0468E +:107310009C64FF1F2D43FF1F0E2000000120000072 +:10732000091000009464FF1FFEDFFFFFAFDFFFFFC7 +:107330009864FF1F0C2000000B2000007C64FF1FDE +:107340000D200000132000007164FF1FFFFF0000EC +:107350006E64FF1F6C64FF1F10B501F09BF910BD38 +:10736000014B18607047C0469864FF1F0B880020CF +:10737000162B01D817230420014A13807047C046FA +:107380004664FF1F00207047074A030011888142AE +:1073900007D091880020994202D101308000101856 +:1073A00070470020FAE7C046A464FF1FF0B58F784D +:1073B00006000D00C5B01E2F15D1FFF7E5FF051E15 +:1073C00003D10024200045B0F0BD00223B00310075 +:1073D000C078009200F0B2FB0400A81C00F0D2FBC1 +:1073E000FF23EB70EEE7264B062403931B78FF2B5D +:1073F000E8D0182FE6D87B08224A013BDB00029236 +:107400009A589446002ADDD0029AD3185B68002B64 +:10741000D8D00878002802D14B78012B02D106245D +:10742000122FCFD107AFAB88697800976446AA685E +:10743000A047041EC6D1AB78029A5B08013BDB0073 +:10744000D318390030005B689847041E0BD1AB7825 +:10745000042BB6D0039A310010782200009700F078 +:107460006DFB0400AEE76A78002AABD1AA7805A9C3 +:107470003B88087130000A704B80FEF747FBA0E79D +:107480003043FF1F1CBA00111D4B37B50500984251 +:107490000BD000290AD1FFF777FF002805D1194842 +:1074A000FFF772FF002800D0058037BD01291AD1EF +:1074B000FFF76AFF041EF8D001235B420380A37824 +:1074C000FF2BF2D0FE2B07D00023E078142200938C +:1074D00029001E3300F032FBA01C00F053FB0123F7 +:1074E0005B426380E1E70229DFD1013901F0BEF898 +:1074F0000028DAD12800FFF747FF041EDFD1D4E7C8 +:10750000FEFF0000FFFF0000022210B5074B5242B1 +:107510001A80074801325A809A80DA8000F07EFA99 +:10752000044801F025F8002010BDC046A464FF1FE8 +:10753000AD730011897400110388F7B50400002BA6 +:1075400002D102252800FEBD426802211378254899 +:107550005268FEF7A5FD00282ED0234F01253A885A +:10756000002AEFD0802321885B0201259B1A9942D3 +:10757000E8DC0C2004F004F8061E31D03B88228899 +:107580009C4600231800019561469DB2491989B2B5 +:10759000AA421BD8002801D062443A800023300060 +:1075A000082208C0210004F08BF8104A1368002B51 +:1075B00013D100251660C5E76268022113780C48D4 +:1075C0005268FEF76DFD0028C7D1BAE760681D015B +:1075D0004019418101330198D6E71A001B68E6E79C +:1075E0001325AFE78ABA00112E43FF1FA064FF1FC7 +:1075F00088BA0011014B18707047C0463043FF1F16 +:1076000014230A0010B51A40194204D00122102197 +:1076100001F048F810BD4B06F9D401208843400022 +:10762000F8E710B514008B0604D50122102101F0F3 +:1076300039F810BD08230A001A40194202D14BB292 +:10764000002B0FDA102101F02DF8002808D02300BC +:10765000F2331B78002BECD0F1342378012BE8D1E6 +:107660000020E6E703208907FAD4E2E7F0B51F001F +:10767000184B85B01C68019002910392002C27D111 +:10768000200005B0F0BDA5683301ED186B89019AA3 +:10769000934211D3029A93420ED8002F04D10A9B31 +:1076A000002B10D12C00EBE73B002978039A686887 +:1076B000FEF7F6FC0028F2D10136B6B2A388B34239 +:1076C000E1D82468DAE7A3680A9A5B891380E9E7BE +:1076D0000026F3E7A064FF1F37B50C000A8849882D +:1076E0000123914217D3002A15D0651D23792A0062 +:1076F00002210A48FEF7D4FC102300280BD023797E +:107700006188208800242A000094FFF7AFFF0A2335 +:10771000A04200D0230018003EBDC0468ABA001126 +:1077200013B50A0008884988012388420BD800282D +:1077300009D00024137905320094FFF797FF0A233C +:10774000A04200D02300180016BD13B50A00088817 +:107750004988012388420BD8002809D000241379D6 +:1077600005320094FFF782FF0A23A04200D02300D5 +:10777000180016BDF0B58BB003904A8808880E003B +:107780000123824255D3002853D00023012704ACA3 +:1077900023700022718813000092FFF767FF051E17 +:1077A0003ED02078002835D12B78022B18D1677075 +:1077B0006A8983000130E31880005A8069680222D8 +:1077C000201803F07DFF23780133DBB22370042BF4 +:1077D00019D93B006889013080B2002BD9D01FE055 +:1077E00002236370122358436A89231804305A8095 +:1077F00069681022201803F063FF23780133DBB29D +:107800002370002BE5D10C4A6B899B185A425341D7 +:10781000DBB2DFE76378012BE4D12B78022BC7D0F2 +:1078200022780A23002A04D021000398FEF798F951 +:10783000002318000BB0F0BD0100FFFF0F4BF0B5A7 +:1078400004001868002816D083685D89A54207D80F +:107850008288AE18B44203DA12019A18934201D119 +:107860000068EFE71E005F891036A74204D10029A7 +:1078700000D00D801800F0BD3300EFE7A064FF1FBB +:1078800070B505000C0008880021FFF7D7FF030042 +:107890000120002B04D022002800197AFFF7C1FE36 +:1078A00070BDF7B50C00002501902300EE331B7866 +:1078B000AB4201D800200AE06B00E65A00213000FC +:1078C000E718FFF7BBFF002802D126800130FEBD7C +:1078D000017A0198FFF794FE002802D03B882380AC +:1078E000F5E70135EDB2E0E710B5040008880021A6 +:1078F000FFF7A4FF03000120002B03D02000197A1A +:10790000FFF77EFE10BD0000054B1B68002B01D168 +:10791000180004E09A6852898242F6D1988870472C +:10792000A064FF1FF0B50E27002687B0039302ABBB +:10793000FF183E8005001F4B40891400984207D075 +:107940002B78013000976A6880B2FFF78FFE06003F +:1079500002212B7818486A68FEF7A2FB00280FD096 +:107960006C892000FFF7D0FF002802D0013C0419E9 +:10797000A4B2039B002B00D01C80300007B0F0BDE8 +:1079800002212B780D486A68FEF78AFB0028E7D1B0 +:1079900002212B780A486A68FEF782FB002807D08C +:1079A000002EDED03B88A342DBD17489013CDFE7A7 +:1079B0006C89DEE7FFFF00008ABA001188BA001167 +:1079C00086BA001110B50C00FFF7DEFC03000220A0 +:1079D000002B0AD0002C00D023609B781720FE2BB0 +:1079E00003D00138FF2B00D1002010BD73B50D006E +:1079F00001A904001600FFF7E5FF172805D0002EA7 +:107A000004D129002000FEF727F976BD01221021BC +:107A1000200000F047FE0028F3D0F6E7014B186085 +:107A20007047C046B064FF1F37B56B469D1D01000F +:107A300004000222280003F06BFE2B88B02B0ED12D +:107A40002379122B09D12300FA331B78012B06D19D +:107A50000121608800F0E0F801E01B2BF8D037BD71 +:107A600010B5054B0421187000F098F8FFF74CFD95 +:107A7000FEF770FB10BDC046B464FF1F0020F0B5D8 +:107A80000BB20F0087B0834234DA274B187803F02B +:107A900077FC051E2BD00378A02B25D103AE310037 +:107AA000FEF7E4F8041E0BD1B378DB0724D51F4B97 +:107AB00006341B68002B03D0310068889847040007 +:107AC000A868002801D003F073FE002C08D1184AE2 +:107AD000039B1340174A934206D0B3781B2B03D065 +:107AE0000121688800F098F8280003F0A1FD8020AB +:107AF0000002784007B0F0BD0F4B1B68002B10D080 +:107B0000310068889847041EDAD07378002BD7D1EB +:107B1000B27801A90A704B800C716888FDF7F6FFF6 +:107B2000CEE70624F1E7C046B464FF1FAC64FF1F34 +:107B300000FFFF0000011200B064FF1FF7B50190C5 +:107B4000FC200D0017001E0003F022FD040013208E +:107B5000002C12D0B02320002370089BF422677001 +:107B6000658026710830002B08D0190003F0A8FDAD +:107B70002100019803F0CCFB0020FEBD089903F022 +:107B800057FCF5E710B5041E06D00078FD2803D891 +:107B900003F036FCFF23237010BD00000A1F93B2D0 +:107BA00010B504000220032B05D882400020024BB0 +:107BB000D1529B189C7010BDD464FF1F0B8870B508 +:107BC000043B04000D000220032B0BD801212000F0 +:107BD00000F04CFD03001420002B03D029002000EE +:107BE00000F0DEFB70BD000007B51300034A0092F1 +:107BF0000A00012100F02CFC0EBDC046257E0011BC +:107C000007B5019203220092024B0A00122100F0F4 +:107C100049FC0EBDA37E001107B56B4601AA118079 +:107C20000449D88008780633012802D1190003F0EE +:107C30009FFC07BDB564FF1F0C4B10B518700023E7 +:107C4000FF210B4A1380138193819380094A53804B +:107C50001370517293819372D174D38213755177DB +:107C600003F036FB00F0FCF910BDC046E464FF1FD2 +:107C7000D464FF1FB664FF1FF0B58DB06B460020C3 +:107C800003910C229B5E834200DBB0E05D4B1878D1 +:107C900003F076FB051E00D1A4E00378902B00D002 +:107CA0009DE006AF01004688380000F013FA7968BD +:107CB0000400002900D19CE03B88052B6ED13B8954 +:107CC000032B1CD905AC200000F0A2F86288172A0B +:107CD00061D83989131D994231D1796823780431EB +:107CE0000291D90738D5607800F08EF9071E06D0CA +:107CF000002303712378012B08D0132B23D0A8680D +:107D0000002800D178E003F053FD75E06288029905 +:107D100009A800F0A6F80290380000F08BF909AA33 +:107D20002378387A0192002231000092029A00F002 +:107D300012F9380000F064F9029B002BDFD030000C +:107D400000F080F9DBE70378032BD8D16288029931 +:107D500009A800F0D6F8DEE7122B13D1029909A882 +:107D600000F0B5F8021EEAD127498B88002BC6D057 +:107D7000887909A92378019161780091310000F098 +:107D8000EAF8BCE7002302AA93833000617809AACD +:107D9000FFF72AFFB3E71D4B0993F6E7042B02D048 +:107DA0009A1F012AABD8184A043B9B00995A002914 +:107DB000A5D0D218907831003A0000F0AEF8002833 +:107DC0009DD13B88042B03D001213000FFF724FF15 +:107DD000012C04D1A868002801D003F0E9FC280098 +:107DE00003F026FC8020039B0002434018000DB0E6 +:107DF000F0BD012800D182E701213000FFF70CFF20 +:107E0000EDE7C046E464FF1FD464FF1F01001700C4 +:107E10000B7803704B784370CB788A781B0213433E +:107E2000438070470A88030002700A88120A427071 +:107E30000A88012A06D14A8882704A88120AC270CA +:107E40000420704702208242FBD14A8804309A7095 +:107E50004A88120ADA708A881A718A88120A5A7154 +:107E6000EFE710B50400012082420CD94B780A7864 +:107E70001B0213432380834206D1CB788A781B02EE +:107E800013436380002010BD022BFBD1CB788A788E +:107E90001B02134363804B790A791B021343A380AF +:107EA000F0E70B8803700B881B0A43704B888370C4 +:107EB0004B881B0AC3708B8803718B881B0A437124 +:107EC000CB888371CB881B0AC371082070470300DD +:107ED0000120082A14D14A780878120202431A8035 +:107EE000CA788878120202435A804A7908791202C5 +:107EF00002439A80CA798879120202430020DA800C +:107F0000704710B504000120022A05D100204B78EB +:107F10000A781B021343238010BDF8B50600102019 +:107F20000F00150003F034FB04000120002C0ED0DC +:107F3000A0230C22290023806780201D002D07D05C +:107F400003F0BEFB2100300003F0E2F90020F8BD91 +:107F500003F06EFAF6E7F7B51E00009008AB1420A8 +:107F600017001D78019103F013FB041E12D0A22309 +:107F70000370019B47704380099B057146710C2279 +:107F80000830002B07D0190003F09AFB210000985D +:107F900003F0BEF9F7BD099903F04AFAF6E737B5E1 +:107FA000041E0FD04388002B0CD00025C18813235A +:107FB000007A172201950095FFF7CDFFFF2365801A +:107FC0006372257037BD000010B50C4904004A8863 +:107FD000002A09D08B89002B05D00020CB8A0222F1 +:107FE000834201D010BD012213000A204343002028 +:107FF0004032C854C81842800472F3E7B664FF1FC9 +:108000000023438003707047094B00211A0010B50C +:108010005C88002C06D01C79844203D10A234B4390 +:10802000D01810BD01310A330329F1D10020F8E73F +:10803000B664FF1F10B50400407A03F0E1F9FF2396 +:10804000637210BD7047043010B580B203F0D0FAEF +:10805000002803D00421494203F052F910BD00006A +:1080600070B50025104CA0682580A581A580A84288 +:1080700002D003F09DFBA56000250C4C0C4B606DFD +:108080001D80230058331D70A84202D003F090FBDE +:10809000656500256068002801D003F089FB013583 +:1080A00008340A2DF6D170BD7C65FF1F2065FF1FC7 +:1080B0007065FF1F70B5041E09D1054D2880A88189 +:1080C000A880A868002802D003F072FBAC6070BDE5 +:1080D0007C65FF1FF0B54B8885B00193002343609A +:1080E0000A7905000F00022A00D07BE0CA88032A23 +:1080F00017D98B685E7819783602DC78D8790E4308 +:1081000099781B7A24021B020C43034353495BBA40 +:108110000B80331D93421ED1042C04D0631F022B0D +:108120000ED9012015E0019A4D4B1201D35A002BB4 +:1081300006D00198FFF7BEFF4A4A13690133136165 +:108140000421B8682E812C80494203F0D9F8686078 +:10815000002005B0F0BD434D042C06D0631F022B58 +:108160000FD9EB680133EB60DBE7019A3C4B12015E +:10817000D35A002B05D00198FFF79CFF2B690133E0 +:108180002B61374B30000293019B029A1B01019334 +:10819000002301998C468B52130063449C80039307 +:1081A0009E81FFF750FF039B041E986016D00421A8 +:1081B000B868494203F0A4F8FA880100043A2000A4 +:1081C00003F07EFA0199029AFB888A5A043B9B18B5 +:1081D000029A8B522B6801332B60A2E7AB69013303 +:1081E000AB619EE71E4B0293019B1E01029BF35A5B +:1081F000002B2DD002998C19A068002828D0012AC4 +:1082000026D1FA889B189BB27352A189994217D341 +:108210009B1AC018B96803F053FA029BA289F35A5B +:10822000934200D07DE700222B81A3882B80A36896 +:108230006B60029BF2520B4A53680133536070E744 +:10824000084A9368013393600198FFF733FF68E7AA +:10825000044A536901335361F6E7C046E664FF1FE1 +:108260007C65FF1FEC64FF1F70B5051E15D10B4C1C +:108270000B4B1880230058331870606D002802D013 +:1082800003F096FA6565250050356068002801D036 +:1082900003F08EFA0834AC42F7D170BD2065FF1FA1 +:1082A0007065FF1FF0B51700A12285B09200019301 +:1082B0004243394B06001B680C009B18D933FF332F +:1082C0001D78FDF741FF0430854204DD3000FDF7E5 +:1082D0003BFF0430C5B2BD4207D33A000021300055 +:1082E000019B03F0D5F905B0F0BD2900380003F07B +:1082F00017FA2300C6B250331E700393019B290066 +:108300006365380002F0DCFFCBB20293002B02D091 +:10831000039B01361E7000262300503303931B7805 +:10832000B34204D8606D002831D10020DBE7029A07 +:108330002800002A04D0013B1000B34200D02800DE +:10834000F700E719387003F08BFA786000280ED038 +:108350003A78019903F0B4F9019A3B780136D318C1 +:108360000E4A0193D369F6B20133D361D4E7039B7C +:1083700018706065A74205D1084A1320D36A0133FB +:10838000D362B0E7606803F013FA0834F2E703F051 +:108390000FFA00236365C8E73409FF1FEC64FF1F71 +:1083A000F7B50D0007000421686802F0A9FF2B89CA +:1083B000040003702B891B0A43702B8883702B8861 +:1083C0001B0AC3702E8902250436F6B2F42E15D886 +:1083D0001B4B9F4214D10C2003F0DAF81135011E1B +:1083E0000CD0902303708E3B0371043B4380154BEC +:1083F0008460C680187802F08BFF00252800FEBD3F +:108400005C237B43104AD3180093583301931B78A5 +:10841000002B0FD10300320038000099FFF742FF14 +:10842000019B05001B78002BE8D13800009903F070 +:108430005FF9E3E7054A0725536A01335362DDE735 +:10844000FEFF0000E464FF1F2065FF1FEC64FF1FB8 +:10845000F0B587B0009017200F0016000193FFF7CA +:10846000F2FD1325041E19D00C98031E02D00199A9 +:10847000201D9847030AE370052302AAA070043068 +:10848000908127700098667003A993800494FFF789 +:1084900087FF051E02D0200003F08AF9280007B0EC +:1084A000F0BD0000F0B587B01F000CAB1B78039146 +:1084B000059301210DAB06001C78049200F0D6F85C +:1084C0001425002821D02000FFF77EFD0135041E71 +:1084D0001BD01149059B0A7803700132D2B2131EDA +:1084E000C68001D101231A000B7022713000049B59 +:1084F00003990097FFF7ACFF051E09D12300210067 +:108500000648074A093302F0DBFF280007B0F0BD38 +:10851000002363802370F8E7E864FF1F9F7F00114A +:1085200030750000F8B505000E00064C064F2368B4 +:10853000002B02D03100280098470434BC42F6D109 +:10854000F8BDC0468C65FF1FA065FF1F0123064ACA +:108550005B425380002313715362044A13605360DB +:108560009360D36013617047A065FF1F8C65FF1F88 +:108570000200002310B506499C000859002801D1CB +:10858000625010BD0133052BF6D11320F9E7C04628 +:108590008C65FF1F034A5388181A434258414042D2 +:1085A00010407047A065FF1FF0B585B002930AAB7D +:1085B0001F780CAB1B88009008000E0001920393FB +:1085C000FFF7E8FF05001120002D1BD10E48FFF733 +:1085D000E1FF04001520002C14D006220B99A7718E +:1085E000E01D03F06DF8019B30002371029B290010 +:1085F0006371009B66802370039B6562E381FFF7D4 +:1086000091FF280005B0F0BDFFFF000010B5FFF797 +:10861000C1FF04000220002C12D060880121FFF766 +:1086200081FF606A002801D002F082FE282200212A +:10863000200002F0FDFE012300205B4263802071D8 +:1086400010BD000030B5074A074C5588010013786B +:108650000020A54204D05B1A59424B4158421040B9 +:1086600030BDC046A065FF1FFFFF0000084A10B5DF +:1086700001230C00904208D0FFF78CFF031E04D0AA +:10868000037923405A1E9341DBB2180010BDC04647 +:10869000FEFF0000024B1879431E9841C0B270479C +:1086A000A065FF1F70B504000D001600FFF772FFF4 +:1086B000002804D10D4B9C4200D0143070BD416A9B +:1086C00003790520002907D012221A40102A02D16E +:1086D0000520002EF2D10F20DB06EFD5897E0C207D +:1086E000A9428941494249420840E7E7FEFF0000AC +:1086F000030010B5002800D110BD0348034A41888B +:108700009142F9D09847F7E7A065FF1FFFFF0000EF +:10871000002330B5C45CCD5C6C40D4540133102BC5 +:10872000F8D130BD0F23002210B5C45C6400224391 +:10873000CA54C25CD209013BF7D210BD020001004D +:1087400010B52032103102F03BFF10BDF0B58BB0F8 +:108750000390102005931700049102F011FF009080 +:10876000102002F00DFF009B13240190002B05D078 +:1087700000280CD11324009802F0DAFD019B002B95 +:1087800002D0180002F0D4FD20000BB0F0BD102084 +:1087900002F0F6FE0600102002F0F2FE132405009F +:1087A000002E00D1AEE0002819D01022002102F0E6 +:1087B0003FFE32002900039802F002FF041E0ED192 +:1087C00033787F2B51D830000099FFF7ABFF009B27 +:1087D0001B787F2B53D801990098FFF7A3FF300037 +:1087E00002F0A6FD002D02D0280002F0A1FD002C11 +:1087F000C1D1102002F0C4FE0600102002F0C0FE1D +:108800000290002E7CD0002878D03A000F3223004E +:108810000125121105D00F333B4015B25A42534186 +:108820001BB26A1E1201002B33D0049BD2B29818DF +:108830000099029AFFF76CFF013D102200213000E1 +:1088400002F0F6FDADB2049F2D017D19AF4242D07A +:10885000002C33D0300002F06BFD029B002B00D1C6 +:1088600089E7180002F064FD85E729003000FFF772 +:1088700059FF28002549009AFFF74AFFA7E729007A +:108880000098FFF74FFF28002049019AFFF740FFAB +:10889000A5E70F210F4004998A18D9B28F4208D951 +:1088A000D15C06A819540133102BF6D1029A019914 +:1088B000C0E7791A48424141C901F2E73900300066 +:1088C00006AAFFF725FF3200039806A902F078FEFA +:1088D00010370400BAE7002CBCD13000029906AA78 +:1088E000FFF716FF320006A9039802F069FE08227E +:1088F00004003100059802F0E3FEABE71324A9E77A +:108900001324AAE7002800D06EE733E790BA0011DD +:10891000F0B58BB00F0016000225009000283FD064 +:10892000002A3DD00B1DDBB21800029302F028FE96 +:108930001135041E34D0FDF747FD05003A000099BB +:10894000201D02F095FCEBB20393E3702B0CDBB21D +:108950002F0A00936370FFB22B0E2370A770019350 +:10896000FDF72CFD1022010006A802F081FC210079 +:10897000029A04AB06A8FFF7E9FE051E0DD1039B82 +:1089800008223370009B04A9B370019B7770F370C9 +:10899000301D02F06DFCFDF71DFD200002F0C8FC4B +:1089A00028000BB0F0BDF0B58FB00D00149E039001 +:1089B00004920593002A03D1022420000FB0F0BDD9 +:1089C000002EF9D00398FFF7E5FD1424071EF4D01C +:1089D0007278337812021A43B3781B041343F27887 +:1089E00012061A43036A0192934201D30133E3D181 +:1089F000002D03D03B7901249B07DED508220021FE +:108A000006A802F015FD059B13240433DBB2180001 +:108A1000029302F0B5FD051ECFD0059A04990430EB +:108A200002F026FC04223100280002F021FC39006B +:108A3000102210310AA802F01BFC2900029A06AB92 +:108A40000AA8FFF783FE041E0FD1082206A908A872 +:108A500002F00EFC0822311D08A802F0A1FE012838 +:108A600007D101990398FDF7C9FC280002F060FCCA +:108A7000A3E70124F9E7000070B51C4C050023684A +:108A8000181E10D0002D14D11A78002A0CD1981C71 +:108A9000083202F015FE02F02BFD0135002808D146 +:108AA00023681D70012070BD0A331800082202F0EF +:108AB00007FE2368002BF5D0122002F069FD061E88 +:108AC0000DD0C1232168037045700231102202309D +:108AD00002F0F6FD23683100587802F019FC206896 +:108AE00002F026FC00232360DCE7C046C865FF1FB8 +:108AF000F8B504002020FDF755FB0D4EA700BB592B +:108B00000500002B0DD000280BD0D878FF2809D104 +:108B100008492A000C55F35907480333611802F03D +:108B2000CFFCF8BD290002F07BFB0028F0D1F8E76C +:108B3000E465FF1FCC65FF1F499D001170B5064D10 +:108B400084006359002B05D0D87802F059FCFF222D +:108B50006359DA7070BDC046E465FF1F70B506004A +:108B60008CB00C00150000213022684602F060FC39 +:108B700031001022684602F07BFB1D2021000322F9 +:108B8000684402F075FB6846FFF7D8FD2D2104000C +:108B900003222800694402F06BFB20000CB070BD7A +:108BA000F0B50700160097B001931CAB1D7830227A +:108BB0001EAB00910AA800211C7802F039FC10229B +:108BC00039000AA802F054FB1022002102A802F08A +:108BD0002FFC0722310002A802F04AFB072202AB59 +:108BE0009818631E9C41019902F042FB02AB9C73F2 +:108BF0002B005A1E934102AAD3730021102206A80B +:108C000002F016FC06221D9907A802F031FB1A207B +:108C100002ABC01806221F9902F02AFB102200990D +:108C20000EA802F025FB102202AB0EA908781C78D2 +:108C3000013A6040D2B2087001330131002AF5D107 +:108C40000AA8FFF77BFD102212A904000EA802F06B +:108C500037FD102206AB0EA908781D78013A68404E +:108C6000D2B2087001330131002AF5D10AA8FFF70A +:108C700065FD044310222098E4B212A902F0F8FA2C +:108C8000200017B0F0BD70B50E0014008CB00100CC +:108C9000102268461D0002F0EBFA3100082204A8F9 +:108CA00002F0E6FA2100082206A802F0E1FA68467E +:108CB000FFF744FD04001022280008A902F0D8FAAA +:108CC00020000CB070BDF8B506000D000024371967 +:108CD000AC4200D3F8BD02F063FC030A3B70631C96 +:108CE000DBB201379D4203D90234F054E4B2EEE71F +:108CF0001C00EDE773B506000C000225002819D012 +:108D0000002917D0032101A8FFF7DDFF6B469A79F0 +:108D10003F231A40013313436A463000937101A97F +:108D20002200FFF71BFF051E04D10322E01C01A94E +:108D300002F0C6FC280076BD03785807DA08C00F99 +:108D4000D20080009B0710439B0F1843C0B27047AE +:108D500007230B40C908C9000B430370704700008C +:108D600070B50400FFF7EAFE134DA4006359002B11 +:108D700021D0186A002801D002F0DAFA2B59986E37 +:108D8000002801D002F0D4FA2B59D86E002801D067 +:108D900002F0CEFA2B59186F002801D002F0C8FA61 +:108DA0002B59586F002801D002F0C2FA285902F05E +:108DB000BFFA00232B5170BDE465FF1F0E4B8000EE +:108DC000C35870B50C00002B0FD09D68002D0CD03F +:108DD0002B78201D0B706B784B70A97CFFF7B8FFC8 +:108DE0002B7E23726B69E36070BD1022002120008E +:108DF00002F01EFBF8E7C046E465FF1F014B186058 +:108E00007047C046E065FF1F074A03008000825894 +:108E100010B5002A06D0D088984203D1012901D18B +:108E2000FFF79EFF10BDC046E465FF1FF0B5264E5C +:108E300095B087000B93BB590500099112200A9247 +:108E4000002B31D0D888FFF7A5FB04001420002C9C +:108E50002AD0280010A9FFF7B1FFBB591E781D6A60 +:108E6000002E23D00895FDF7EFFA07000020FDF74C +:108E7000F1FA0790A379E61D069310AD0CA90898A6 +:108E800000F0E2FA0EA9280000F0D7FA0B9B0A992D +:108E90000493069B09980293079B039601930097FE +:108EA0000EAB0CAAFFF77CFE15B0F0BDFDF7CCFAB7 +:108EB00006903000FDF7CEFAE31DA779079310ABBB +:108EC00006000893DAE7C046E465FF1F30B50C4C96 +:108ED00085002A59030085B00120002A0ED0180011 +:108EE0006946FFF76BFF2B591A78D888054B002A83 +:108EF00000D1054B6A46072100F0D9FB05B030BD13 +:108F0000E465FF1F3B9400114994001130B5094CF2 +:108F10008500295985B010226846253102F0D0FB22 +:108F20002A591121044BD0886A4600F0C0FB05B0D5 +:108F300030BDC046E465FF1FE594001130B5094C13 +:108F40008500295985B010226846353102F0B8FBFA +:108F50002A591121044BD0886A4600F0A8FB05B0BD +:108F600030BDC046E465FF1F23950011F7B54D4F96 +:108F700086001020F4590D0002F002FBF359206224 +:108F8000186A132200286CD0033A29009C6802F06A +:108F900097FBF3591A780192002A58D11E6A227D54 +:108FA000317B944651400122019F114201D1674615 +:108FB0001740217D914339432175377B4F40BC4693 +:108FC00060460027800701D44F0817400121022086 +:108FD0008F40227D82433A432275377B5740BC46FF +:108FE00060460027400701D497080F400420227DE7 +:108FF000BF0082433A432275627D00279446604653 +:10900000727B42400A4201D167460F400121627DD6 +:109010008A433A436275777B5740BC4660460027D7 +:10902000800701D457080F400220627D7F008243F1 +:1090300017436775767B00227E40760701D4BA0815 +:109040000A400426617D9200B1430A4362756A7842 +:10905000002A08D06278002A05D005220533DA7785 +:1090600000221000FEBD04222979114205D1A17C05 +:10907000114202D10533033AF1E7019A21782C78A5 +:10908000002A02D10A002100140018220429E8D87D +:10909000042CE6D805206043034A05331218525CBD +:1090A000DDE7C046E465FF1FA0BA001110B50A0055 +:1090B0001121024B00F0FBFA10BDC0467F95001154 +:1090C0000B0030B587B001AD2B806B46040011005A +:1090D000981D082202F0F4FA2A000B212000024B0E +:1090E00000F0E5FA07B030BDA795001110B50A00F1 +:1090F0001121024B00F0DBFA10BDC046FB950011B8 +:1091000013B50B0011006A4613706B46040006226B +:10911000581C02F0D5FA6A4608212000014B00F0E5 +:10912000C6FA13BD1B96001110B50A001121024B9F +:1091300000F0BDFA10BDC0466B9600117FB505006A +:109140000B4BAA00D4580800002C0FD0666F237F69 +:10915000E28821780396266F0296E66E0196A46E49 +:109160000094FDF709FC2800FFF7FAFD7FBDC0461B +:10917000E465FF1F10B51721FFF7E0FF10BD0000E9 +:1091800070B50A000D00064B0221040000F08FFAB2 +:10919000060029782000FFF7D1FF300070BDC046DF +:1091A0004B95001170B586B000236A461370836832 +:1091B00004001D78681E0A2859D801A902F040FA57 +:1091C000060633373B3F43474B4F5300180000F030 +:1091D00042F9062312284BD000281BD16088FFF7E4 +:1091E000D9F90823002813D04279002A47D1264B09 +:1091F0001A78072312070BD5244B1A680723002A75 +:1092000006D01668002E03D0290001AAB04703003B +:109210006A4613706B461B786088002B2AD1FFF7D3 +:1092200067FC06B070BD180000F06CF9D4E71800B8 +:1092300000F087F9D0E7180000F093F9CCE71800A8 +:1092400000F0ADF9C8E7180000F0C3F9C4E7180052 +:1092500000F0F6F9C0E7180000F0F6F9BCE71800D6 +:1092600000F013FAB8E7180000F013FAB4E7072388 +:109270006A46137069466088FFF782FFD1E70523CD +:10928000012AC5D1024BB8E77164FF1FDC65FF1FDF +:10929000E065FF1FF8B52C4F8600F35904000D0060 +:1092A000002B40D0DA8882423DD15A78062A33D149 +:1092B0001A78002A2ED0012099681A6A097D014285 +:1092C00006D0157B054203D007225A700120F8BD55 +:1092D0000220014204D0157B054201D00922F4E7A7 +:1092E0000420014204D0127B024201D00B22ECE7A1 +:1092F000164B1B68002BE9D05B68002BE6D02000E2 +:109300009847BB5900215B78122BDFD12000FFF773 +:1093100015FFDBE70E4BECE7112A04D1002900D042 +:1093200032252900F2E7002D08D12000FFF732F99D +:10933000002803D010230279134303712100280071 +:10934000FDF798FAC2E7C046E465FF1FDC65FF1F22 +:10935000E065FF1F70B50E4E8500AB590400002B71 +:1093600013D01B78002B11D10A4B1B68002B04D0A3 +:109370005B68002B01D02000984773595B78122B53 +:1093800003D100212000FFF7D9FE70BD024BECE7AE +:10939000E465FF1FE065FF1FDC65FF1F094B8000D0 +:1093A000C3581020002B0CD01A6A002A09D09B68E1 +:1093B000002B06D0127A1B7E101C9A4200D9181C72 +:1093C000C0B27047E465FF1F70B503000D001400C4 +:1093D0000220002A30D000292ED013700B78081DEF +:1093E00053704B789370FFF7A7FCE07001200221C7 +:1093F0002B7A23716B7B034063716A7B0A401343B2 +:10940000042263716E7B1640334363716E7BF608F2 +:10941000F600334363712B7B0340A371287B01402B +:1094200000200B43A371297B0A401343A3712A7BBD +:10943000D208D2001343A37170BD10B50A00010019 +:109440000120FFF7C1FF10BD10B50A000100022086 +:10945000FFF7BAFF10BD70B506000C000220002E09 +:1094600030D000292ED07378201D0B70B3784B704C +:10947000F178FFF76DFC01223579257271794B1077 +:1094800008001340934010400343881010408000B0 +:10949000C9080343C9000B436373B1794B1008003B +:1094A0001340934010400343881002409200C908C3 +:1094B0001343C9000B4321202373FCF773FE85423D +:1094C00001D2122070BD2220257AFCF76BFE854266 +:1094D000F7D823781820042BF4D86378012BF1D81F +:1094E0000020EFE7030010B50220002909D0002B6F +:1094F00007D00322481C0A7019000D3202F0E0F870 +:10950000002010BD03000222080010B5002B06D079 +:10951000002904D00E32591C02F0D2F800221000AB +:1095200010BD030010B50220002909D0002B07D080 +:109530000422481C0A7019000C3202F0C1F8002005 +:1095400010BD10B5FFF7DEFF10BD0300022000299B +:1095500006D0002B04D0052200200A701B784B7027 +:10956000704703000220002B08D0002906D05B784A +:1095700000200B70013B082B00D918307047030006 +:1095800010B50220002909D0002B07D00622481C64 +:109590000A7019000A3202F093F8002010BD10B5CD +:1095A000FFF7B0FF10BD02000B00022010B500292C +:1095B0000ED0002A0CD0072119701188597011881B +:1095C000090A997011180822D81C02F079F80020B5 +:1095D00010BD03000A00022010B5002B0CD000299A +:1095E0000AD099785878090201431180901CD91C3F +:1095F000082202F065F8002010BD030010B502201B +:10960000002909D0002B07D00822481C0A70190035 +:10961000921802F055F8002010BD02000B00022045 +:1096200010B500290BD0002A09D009211970117832 +:1096300018185970511C062202F042F8002010BD83 +:1096400010B5FFF75FFF10BD02000B00022010B540 +:10965000002A09D0002907D0517819701118062264 +:10966000581C02F02DF8002010BD030010B5022098 +:10967000002909D0002B07D00A22481C0A701900C3 +:10968000063202F01DF8002010BD10B5FFF73AFFBA +:1096900010BD02000B00022010B5002A06D00029E0 +:1096A00004D018005178FFF753FB002010BDF0B52F +:1096B00085B017001E006A46062305000800918148 +:1096C0009380FEF7C0FC1324011E02900CD03800DA +:1096D000B047041E05D1280001A9FEF76FFA041E49 +:1096E00002D0029802F064F82800FFF701FA200087 +:1096F00005B0F0BDF0B504008BB00191150000215C +:10970000102202A801F094FE334EA700B859002899 +:109710003CD0C388A34239D10378002B36D142789C +:10972000062A18D102000100553235310C3006AB43 +:10973000FFF7A9FA002829D12000FFF72FFE020029 +:1097400006A902A801F0BCFF200002A901F070FDEB +:1097500001200BB0F0BD816E002917D00B8A112AB1 +:1097600028D19D420ED101981231093A02F018F821 +:10977000012807D1BB5920009D6EFFF70FFE29007D +:109780000200DEE732212000FFF7D8FC2000FEF7C0 +:1097900001FF061E1BD0416A002918D00B8AAB427C +:1097A00015D108220198123101F0FAFF01280ED1DB +:1097B000716A0AE09D42E9D108220198123101F054 +:1097C000EFFF0128E2D1BB59996E8A7EB9E72000EC +:1097D00001F0EEFDBCE7C046E465FF1FF0B56B4D40 +:1097E00087007E5985B0337802900393002B00D018 +:1097F00087E0B368346A01937078062817D1012294 +:109800001B7D134202D0217B114218D10222134248 +:1098100002D0217B114251D10422134203D0237B79 +:10982000134200D08BE0019B5A7DEB5991E0073841 +:109830000428F8D801F004FF032E42678300B36EBA +:10984000002B03D11C2001F09BFEB066EB599C6EEF +:10985000002C1CD010220021200001F0E9FD02980C +:10986000FFF79CFD01002000FFF72DFA01F098FEA4 +:109870002082200008211230FFF725FA0298FFF716 +:109880008DFDA076EB592100D888FFF70FFC082248 +:10989000EB591CE0B36E002B05D01A00198AF08832 +:1098A0001232FFF70DFC0222019B197DEB59114288 +:1098B0003DD0207B10423AD0073208E0F488FCF714 +:1098C000DBFD01002000FFF711FC0A22EB595A7062 +:1098D000029B9C002A595378073B042B11D8D0884F +:1098E000FEF758FE00284ED0C3895A08D2182849DE +:1098F000029B0298CB542B5941180433254801F0A0 +:10990000DFFD05B0F0BDFCF79FFD030001208342A1 +:1099100001D100200393EB59DE88FCF79BFD0399EE +:1099200002003000FFF7ECFB019AEB59117D042295 +:1099300011420CD0217B114209D00B22C7E7F688D7 +:10994000FCF73CFD01003000FFF7EEFB6BE7019AEE +:10995000527D01210A4204D0607B084201D00C22D2 +:10996000B5E702210A4204D0607B084201D00E22F2 +:10997000ADE704210A4204D0627B0A4201D01022E2 +:10998000A5E71222A3E7FA225200B0E7E465FF1F21 +:10999000E865FF1F539D001110B5064B1A7804238C +:1099A000100018401A4200D00348FFF727FA0020A1 +:1099B00010BDC0467164FF1F3443FF1F70B5040023 +:1099C000FFF7D4FA051E43D12000FFF77FFA234E9C +:1099D000A400A0598268937CDB0708D50321036AA1 +:1099E0001B790B40012B02D1017F0B430377431DF1 +:1099F000D97F8B1E022B0DD8022900D00121C088EF +:109A0000FCF790FF042133591A7F59700A431A77E3 +:109A1000280070BD01290CD10223102243700021BF +:109A20000C3001F005FD305910213530FFF74BF9AE +:109A3000EEE70529ECD10223D118437010220C3037 +:109A400001F03EFE04233259117F0B431377EAE7FE +:109A500008251828DCD1053DDAE7C046E465FF1F7C +:109A6000F0B58BB0059143887E4F9E00F4591500E8 +:109A70000493002C15D1012902D000200BB0F0BDB9 +:109A8000101D57781678FFF757F9EB6832000293EC +:109A90002B7A0499019300903B002000FCF70CFF07 +:109AA000EBE7E388049A934201D00820E6E72378A5 +:109AB000012B00D1D4E0059B581E092800D9CFE026 +:109AC00001F0BEFD05CE0A29CC506C859AB2290062 +:109AD0000498FFF773FFD1E72000290010224530DA +:109AE00001F0EEFDB9594B78042B02D1013B4B70CC +:109AF000C3E70B000A00253335320C310498FFF719 +:109B000095F90498FFF702FA0522431E9841BB59C4 +:109B1000C0005A70B2E7200029001022553001F031 +:109B2000CFFD049B4F4C9D00295904980A0006ABB9 +:109B300055320C31FFF77AF929591022453106A820 +:109B400001F02EFE012808D10498FFF7F7F90590DF +:109B5000002804D106222B595A7005988EE7082355 +:109B60000593FAE763780C2B7AD1E36E002B03D1CF +:109B70001C2001F005FDE066BB59D86E00286FD0AF +:109B80001022290001F09CFDBB590498DC6EFFF700 +:109B900005FC0D22A076BB595A706EE7E06E0028D6 +:109BA0005ED063780D2B5BD12B8808220382A91C21 +:109BB000123001F085FDBB599A68517D0222114295 +:109BC00026D0186A407B104222D00C32E4E763783A +:109BD0000E2B45D1236F002B03D1162001F0D0FCB2 +:109BE0002067BB59186F002803D01022290001F00C +:109BF00067FD0F22BB59CFE763780F2B30D1206F61 +:109C00000622691C103001F05BFDBB599A68517D3A +:109C10000422114203D0196A497B1142D5D1002197 +:109C20000498FFF78BFA28E7636F002B0DD0BB5920 +:109C3000586F0028F3D01022290001F041FD0122C5 +:109C4000BB5952425B6F1A61E9E7142001F098FC9E +:109C5000BB5960675B6F002BE9D126E72978DFE706 +:109C600007200BE7E465FF1F10B5064C207001F0DC +:109C7000FFFB06212078FDF791FF0348FEF778FCF3 +:109C800010BDC046F765FF1F098E001100200BB202 +:109C900070B50D00834216DA264B187801F070FB80 +:109CA000041E0DD00378922B0ED0A02B37D0224B60 +:109CB0001878FF283AD0210001F02AFB002835D17E +:109CC00080200002684070BD43780E2B0BD03E2BE5 +:109CD000EDD18378052B12D0082BE8D181798088CB +:109CE000FFF7D8FA08E0154B82889A42DFD18368E3 +:109CF0001878591CFEF7C0FE002817D1D7E7104B83 +:109D00001B785B0712D50F4B1B68002B0ED09B688E +:109D1000002B0BD0C289811D80889847ECE7FFF7A4 +:109D200041FAA068002801D001F042FD200001F0B6 +:109D30007FFCC5E7F765FF1F2D43FF1F18200000BC +:109D40007164FF1FE065FF1F10B50078FFF712FA7E +:109D500010BD10B50078FFF7FDFA10BD0C2343438A +:109D6000084A10B59B185A68002A03D0012901D16E +:109D7000904710BD9B68002BFBD00029F9D1984774 +:109D8000F7E7C0461466FF1F01238340094A10B558 +:109D9000946B1C439463506B98435063D46B2000C6 +:109DA0009843012901D120001843D063116B0B4364 +:109DB000136310BD00800040F0B500240127154B4F +:109DC00085B0DA6B144E03921A6C0192DA64019B2F +:109DD000E3403B4217D0039DE5403D400295E5B28C +:109DE00002992800FFF7BAFF316A736A002908D088 +:109DF0003900002B01D0029979402800FFF7C4FFF9 +:109E000001E0002BF9D101340C36172CDFD105B05D +:109E1000F0BDC04600800040F865FF1F064B0121E1 +:109E20005A68C2400A4204D01B68C3401800084068 +:109E300070471B6DF9E7C046008000400122064BC9 +:109E40008240002903D0D9680A43DA607047D96894 +:109E50009143D960FAE7C0460038004030B503248A +:109E600044430F4BE25C1B199C785D7801232D1B4A +:109E70000135AB40013BA340A140DB430C0012285D +:109E800007D80849920052181168194021431160FF +:109E900030BD054A11680B4023431360F8E7C04604 +:109EA000E7BA001108F0004014F00040C21F70B57E +:109EB000D4B20623092C0BD80125084C9540002963 +:109EC00008D00021FFF7CAFF23682B43236000233B +:109ED000180070BD2368AB43F8E7C0460038004067 +:109EE000214BF0B51B185B78022B21D1032444438E +:109EF0001E4A1F4EA35C121994780122150085405A +:109F0000B76B013CE4B23D43A240B563194C122843 +:109F100015D89B0000290CD117495B1899680A4392 +:109F20009A600123205C154A834011680B4313603B +:109F3000F0BD11495B18996891439960F1E70E4BA8 +:109F400000290DD159690A435A61225C1328E8D0CF +:109F50000123203A93400A49086803430B60E7E76E +:109F6000596991435961F0E7F865FF1FE7BA00119D +:109F7000008000402CBB001100F00040A0F0004029 +:109F8000A4F00040F8B500241B4E1C4D1C4B1B5D7B +:109F9000012B1FD1194A9269E2401A420BD00122CB +:109FA000B25693402200143AD2B2022A09D8154977 +:109FB0004A6913434B61013402360C35172CE5D145 +:109FC000F8BD0022B2560F499200521891680B4317 +:109FD0009360F0E7022BEED1E7B23800FFF71EFFE7 +:109FE00001235840C1B23800FFF77AFF3800FFF76D +:109FF00015FF6877DFE7C046B9BA0011F865FF1FA3 +:10A00000F965FF1F00F00040012202388240054B35 +:10A01000002903D059690A435A617047596991432D +:10A020005961FAE700380040F8B50E0001210F0031 +:10A030008740114A0400D368FD43BB43D360831EAD +:10A040008B4201D8FFF7E0FF00212000FFF72EFF31 +:10A050000A4A0B4B5168012E05D139431B19516037 +:10A060005E700020F8BD2940516002221C19627008 +:10A070009A6915409D61F4E7003800400080004077 +:10A08000F865FF1F012210B58240074B002906D05A +:10A0900019680A431A600121FFF7C6FF10BD19684D +:10A0A00091431960F7E7C046008000400C2370B56B +:10A0B000002543430A4A29009B181D70094B0400E0 +:10A0C0001B185D70FFF7B0FF0123A340064928006D +:10A0D0000A681A430A6005490A689A430A6070BD13 +:10A0E0001466FF1FF865FF1F348000403080004079 +:10A0F00070B504000E00FF2813D003250540FFF7BC +:10A10000D5FF084AA3089B009B183F22ED00AA40F8 +:10A11000AE40196820009143314319600121FFF7D7 +:10A120008DFE70BD18380040F8B50C244443134B25 +:10A130000500E4186368002B03D1A3681220002BEC +:10A140001AD0022201270E4B00215B195A702800F9 +:10A150002770FFF769FF63681E1E08D0A3683E00E2 +:10A16000002B04D02800FFF759FE4640F6B2280025 +:10A170003100FFF709FE0020F8BDC0461466FF1F3E +:10A18000F865FF1FF7B5C420FF222B4B800019583C +:10A19000002491433F3A0A431A508022274F52022B +:10A1A000274E1A60274B1D5D002D21D0A31E012BC9 +:10A1B00003D80121E0B2FFF727FF012D18D11F4B73 +:10A1C0009B69E3402B4213D0E3B218000193FFF7E1 +:10A1D00025FE01000198FFF755FFE3B2143B022B67 +:10A1E0001DD801217156184A8D405369AB43536104 +:10A1F0003B7F002B0DD0E5B22800FFF795FF28002C +:10A20000FFF70CFE7B7F0100834202D02800FFF79E +:10A21000A5FD01340C370236172CC3D1F7BD01213F +:10A2200000237156F3568D40074A9B009B189A688D +:10A23000AA439A60DCE7C04600E100E0F865FF1F32 +:10A24000B9BA0011F965FF1F00F0004010B50121F7 +:10A250000400FFF7E9FE0123044A002011194B70A6 +:10A26000A34091690B43936110BDC046F865FF1F81 +:10A2700070B50E0015000400FFF718FF0C236343B0 +:10A28000094A20009B189D605E60FFF74DFFF0219A +:10A29000064B074A8900051E5A5002D02000FFF7DE +:10A2A00005FF280070BDC0461466FF1F0000FF1F99 +:10A2B000B99D001170B5134D07202C78002C1FD1CB +:10A2C000982221005200280001F0E2F80123C42066 +:10A2D000FF222B700C4B80001C635C630B4B1C60DB +:10A2E0005C600B4B195891433F3A0A431A50802245 +:10A2F00052021A600D20074A074901F091F8200028 +:10A3000070BDC046F865FF1F00800040A0F000400F +:10A3100000E100E085A10011859F0011030010B548 +:10A320000620072B09D8054A137001F091F8D721B0 +:10A330000020034B034A89005A5010BD5C43FF1FA5 +:10A340000000FF1FD91AFF1F70B51D0002240C2941 +:10A3500010D8094ACA40D2070CD5FBF72FFF041EBC +:10A3600008D1059A04992800FBF744FFFCF7B2FDD9 +:10A37000FFF712FB200070BD1210000030B50D7801 +:10A3800002232C009C43184201D02B431C000825BB +:10A390002300AB43284201D02B00234320241D007F +:10A3A000A543204201D01C4325002A230D701842EA +:10A3B00004D011781E3B0B43137030BD0028FCD134 +:10A3C0000C2113788B43F7E7F8B51D0006AB1B880B +:10A3D000140007AA0E000B201778002B27D10A784B +:10A3E000022A49D14A68507811780002244A084369 +:10A3F0008018042840D801F023F903121D1B230004 +:10A40000F06801F03DF9021CC0B2B84200D93A1C14 +:10A41000D2B22000F1682A8001F052F906E002224F +:10A42000F3681B882A8023701B0A63700020F8BD24 +:10A430000622EEE701232B80F3681B782370F5E7F3 +:10A44000F368002B16D008222A801A8822701A88F6 +:10A45000120A62705A88A2705A88120AE2709A88A8 +:10A4600022719A88120A6271DA88A271DB881B0A4B +:10A47000E371DBE72B80D9E701202B80D7E7C046CB +:10A4800000D6FFFFF7B516000A781D0008AB1F883D +:10A490000C000123022A18D14A6850781178000272 +:10A4A0002B4A0843801803280FD801F0C9F8022569 +:10A4B0004439E06801F0E4F8C0B20723B84204D39D +:10A4C0007B190193152B02DD0D231800FEBDE068FA +:10A4D0002A003100C01901F0F3F86B4600209B8878 +:10A4E000E268D0541B4B1B68834203D01B68834235 +:10A4F00000D098470023E8E70B23002FE5D1022D79 +:10A50000E2D1737832781B021343E2681380114B57 +:10A510001B68002BEED01B68002BEBD00120E8E776 +:10A520000B23002FD1D1062DCED12A003100E068B7 +:10A5300001F0C6F8DEE70B23002FC6D1012DC3D1F1 +:10A5400032787533012AC0D8E3681A70D2E7C04662 +:10A5500000D6FFFF0468FF1F70B50C001500072828 +:10A5600037D801F06DF8041436361B36242E182027 +:10A5700015290BD8184E16220021300000F058FF84 +:10A5800022002900300001F09BF8002070BD182047 +:10A590000229FBD11288114B1A80F6E718200829EE +:10A5A000F4D10A000E48290001F0B2F8EDE71820B6 +:10A5B0000129EBD10B4B10780B49DA69FFF7DEFE6E +:10A5C000E3E718200129E1D1064B10780749DA6B3F +:10A5D000F4E70220DAE7C046EC67FF1FDA43FF1F0B +:10A5E000D043FF1F6043FF1F8843FF1FA843FF1F87 +:10A5F000030010B50020DB0704D50721024A0348F9 +:10A6000000F08CF810BDC04644BB00116043FF1F32 +:10A61000054A03001068002803D082889A4201D1BD +:10A62000806870470068F6E7FC69FF1F0A8803002E +:10A6300008009A4204D08A8804309A4200D0002050 +:10A6400070470000F8B5F22200230D4F0D4E7968D7 +:10A65000050042433370994200D07B600A4C0021D0 +:10A66000200000F0E5FE00231A007C60AB4202D11E +:10A6700000203370F8BD01332280DBB2F234F5E7FD +:10A68000F46AFF1FF26AFF1F006AFF1F73B56B4673 +:10A6900001900600684615001980FCF74DFF041E66 +:10A6A00011D1002D0FD07689002E11D00C2000F092 +:10A6B00067FF00280ED0084A046013688680856012 +:10A6C000002B02D11060200076BD1A001B68F7E74E +:10A6D0000224F8E71324F6E7FC69FF1F012100229A +:10A6E0000A4B10B549420A4C198099809A719A70A8 +:10A6F000084B2070012019805A60FFF7A3FF2078D3 +:10A70000FCF778FF0448FDF733FF10BD0C68FF1F0E +:10A71000FC6AFF1FF46AFF1FC9A70011022310B5CE +:10A72000002802D0FFF7B2FF0300180010BD0000A0 +:10A73000030010B50020DB0704D50421024A0348BA +:10A74000FFF7A4FF10BDC04658BB0011E043FF1F38 +:10A75000F0B50E2687B003930CAB1F8802ABF6183A +:10A760000500080031000292FDF768F8040001209E +:10A77000002C0FD03088FFF74BFF03000E20002B7A +:10A7800008D05E68002E05D021002800039B029AA5 +:10A790000097B04707B0F0BD0A4B10B5984207D1FB +:10A7A0000122002352420A808B708A808B7110BD77 +:10A7B000FFF73CFF0028FAD001235B42038000230F +:10A7C0008370F4E7FFFF0000F8B5050001290AD106 +:10A7D000134E00243388F227AB4219D028001149C8 +:10A7E000FFF7DAFF06E0022904D10139FDF73EFF49 +:10A7F0000028EDD0F8BD3B0063437268D018D35AEF +:10A80000002B09D03A00002100F012FE0134E4B21E +:10A81000054B1B78A342EED801235B423380DDE772 +:10A82000F46AFF1F0C68FF1FF26AFF1F10B5FFF7E5 +:10A83000FDFE03000020834200D0987810BD000088 +:10A84000F0B589B01C000EAB80CB03901E8810AB16 +:10A850001B78049202930B7A0D00DB0616D42B783A +:10A860000593022B24D00498FFF7D2FE002812D0C3 +:10A8700003689C46002B0ED0029B22000193290006 +:10A880003B00644603980096A04705E00498FFF754 +:10A89000BFFE002802D10E2009B0F0BD8368002B56 +:10A8A000F9D00A222900039898470028D7D0F3E767 +:10A8B0006B6858781A786B4B000210439842D2D8D4 +:10A8C000043B984210D2684B984242D015D8674B4F +:10A8D000C0180128C7D80B20002EDDD1EB681A78EC +:10A8E00059683A80200028E0614BC018032800D93D +:10A8F00079E000F0A5FE846A789E5E4B9842B2D162 +:10A900000B20002EC8D101233B80EB6831001B785F +:10A9100023706889013080B2FCF790FF3A88031EEB +:10A920000ED0017802328A183A80428962704289D8 +:10A93000120AA27059680278E01C00F0C1FE06E01D +:10A9400004323A8031000422601C00F071FD0020C6 +:10A95000A2E70B20002E9FD1EB6807A91E880423D5 +:10A960003B80330A300026706370FCF767FF051EDA +:10A9700028D004AB9A890E2304A95B183E49C66807 +:10A98000FCF7D0FF00280BD12B783C486A6805996A +:10A99000FBF786FB002803D1012304AA5B42D38185 +:10A9A0003278022A06D17168201D00F089FE3B88AA +:10A9B00002333B800E2304AA9B181B88A3701B0A3A +:10A9C000E370C4E704ABDE81F4E70B20002E00D077 +:10A9D00062E7E9680398FFF729FF02233B802070B4 +:10A9E000000A6070B3E70B20002E00D054E702226B +:10A9F000EB681B883A8023701B0A6370A7E7E8683E +:10AA000000F03EFEC2B203000720B24200D243E78C +:10AA10000DD00299DBB27118994202DB921BD3B2BE +:10AA20000293029BE9681A003B8089195AE70023C8 +:10AA3000F6E70B20002E00D02EE70722EB683A80C5 +:10AA40001A7822705A7862705A88A2705A88120A4C +:10AA5000E2701A792271DA886271DB881B0AA371AD +:10AA600075E7C046042900000228000000D8FFFF57 +:10AA7000FFD6FFFF03280000FFFF000088BA001187 +:10AA8000F0B58DB06B460020089120229B5E83427A +:10AA90003DDAA64B187800F073FC071E32D003781D +:10AAA000B02B2CD10079023816281FD800F050FEA8 +:10AAB00017001E001E001E0031001E0096001E0022 +:10AAC0001D011E0052011E0073011E00CD011E005B +:10AAD00050021E001E001E008E021E00E302944B58 +:10AAE00094491B8878880B80FBF71AF83800FCF72C +:10AAF0009BFF914B1B68002B01D038009847380012 +:10AB000000F096FD8020089B0002434018000DB025 +:10AB1000F0BDEE220021874800F08AFC0BAA3B7BA7 +:10AB20007989388900923A000D32FCF79FFD0400C4 +:10AB3000804B1B78002C3FD146E0804B78880593F2 +:10AB40007F4B4100CB5A0BAE073BDBB232880293FE +:10AB5000002301937B4B210006930093059BFFF795 +:10AB60006FFE744D002810D1069B3A8A1B889A42CA +:10AB70000BD138000599123000F012FE002804D0E5 +:10AB80002B7862899B00EB185A80162306A81B18A5 +:10AB9000328820007989FCF7C5FE2B7804009A00E2 +:10ABA000AA1851880029C3D00133DBB22B700028CA +:10ABB00007D006A9C98A9180634A12889A42BCD8F4 +:10ABC00002E0012149429180002B04D05949788844 +:10ABD000FAF7DAFF8AE73E890A2479E000253E8900 +:10ABE000574B06937B88069A5B009B5A033B9D421A +:10ABF00002DB002DF0D05BE0162206A812183B7B8A +:10AC0000798900923A0030000D32FCF72FFD059053 +:10AC1000002858D04689017A7888FCF7F1FC041E98 +:10AC200044D1464B78880793069B4100C95A454B4F +:10AC30000439C9B206AAD28A0693029101940093FC +:10AC40000599079BFFF7FCFD041E2FD1069B394990 +:10AC50001A88931C002D26D14B807988384B4900E7 +:10AC6000CB5A5119033B8B4220DD059B31485B8950 +:10AC700041190B71A91C0135C9B2EDB205914519F5 +:10AC80001B0A2B71059B2D490433181800F018FD81 +:10AC90002C4B059A1B88D318DDB22C4B9E4205D055 +:10ACA0000136B6B29CE749889942D6D0002D0CD027 +:10ACB000204C2800618800F083FB207021007888F8 +:10ACC000FAF772FF12E7059CF0E7002C00D183E74A +:10ACD0007B78142B00D109E716493B794E800B7025 +:10ACE0000C717888FAF712FF00E7162406ABE41817 +:10ACF00021003889FCF7A2FD011E00D1B7E1788858 +:10AD000022880F4C45002C5B0A4D013CE4B20294B2 +:10AD100000240F4B01940095FFF792FD041E00D014 +:10AD200014E129007888FAF74FFFDFE6FC6AFF1F7D +:10AD3000CC42FF1F1468FF1F0868FF1F0869FF1F30 +:10AD40004464FF1FF869FF1FCA42FF1FFFFF000096 +:10AD50001668FF1F162406ABE41821003889FCF79B +:10AD60006DFD011E00D182E178882288AE4C45003D +:10AD70002C5BAE4D013CE4B202947C89AC4B019457 +:10AD80000095FFF75DFD041E00D0DFE02900788804 +:10AD9000FAF724FFAAE60025A44B1D803B00F633FA +:10ADA0001B78A24A78880792AB4208D99E4B12883A +:10ADB0000693069943005B5A013B9A4203DB0799CD +:10ADC000FAF716FF92E616246B00FB18059306AB04 +:10ADD000E418059B21001889FCF730FD011E03D102 +:10ADE000059B01241E8973E77888924B2288069C74 +:10ADF000099343001B5B904E013BDBB2029300239F +:10AE000000960193099BFFF71BFD041E02D0059BD2 +:10AE10001E895DE77B88069A5B009B5A079A10881B +:10AE200032881218934202DC1B1A013B33807F4C9C +:10AE3000023032880999001900F042FC23883288D8 +:10AE400001359B182380EDB2A8E70BAA3B7B7989DB +:10AE5000388900923A000D32FCF708FC0025059075 +:10AE6000059B002B04D10A24002D00D16EE060E088 +:10AE7000059B7888197AFCF7C3FB0100041E63D197 +:10AE8000694C6C4B788806940993069B4400E45AFD +:10AE9000694B063CE4B20BAE3288079302940191F1 +:10AEA00000930599099BFFF7CBFC041E4CD1079B2F +:10AEB0005E491B881A1D002D30D14A80059B5B4CD2 +:10AEC0005A8963191A716B1C9BB2E318120A1A7122 +:10AED000162306A832881B1879890598FCF722FDED +:10AEE000FF21AA1C2E1D03350B00059092B2B6B2AD +:10AEF000ADB2002803D006ABDB8AD9B21B0AA21878 +:10AF0000651911712B714C4D301D2A884949201843 +:10AF100000F0D6FB2B88F618B5B2A1E7498891421C +:10AF200007D17A8806995200525AEB18053A9A428C +:10AF3000C4DC3E4C2800618800F0F2FB2070210048 +:10AF40007888FAF75FFED1E5002DF2D13E89BFE6A1 +:10AF5000162606ABF61831003889FCF76FFC3D0069 +:10AF60000400FA3500282DD0037A9B060CD4002269 +:10AF70007B893989788800923A000C32FFF7E8FB28 +:10AF8000041E10D03E8915E03088FFF741FB0028F1 +:10AF90001AD08368002B17D0210012227888984796 +:10AFA000041EE4D0EEE72B78002B02D17888FAF764 +:10AFB00039FE00262B78002B00D097E5002C00D11D +:10AFC00094E585E60124DDE70E24DBE7162506ABD4 +:10AFD000ED1829003889FCF731FC041E47D0037AAC +:10AFE0009B0611D4154A7B881188994203D01448D6 +:10AFF000814207D11380134BF2261D780023D9B26A +:10B00000A94221D30924A1E72888FFF701FB0028E2 +:10B010002FD08368002B2CD02100122278889847EB +:10B02000041EDFD092E7C0464464FF1F1468FF1F70 +:10B030001668FF1F0869FF1FF869FF1FF46AFF1FEA +:10B04000FFFF0000F26AFF1F3100594354680133CB +:10B050006018615A0029D2D13C0008342100F22244 +:10B0600000F02EFB21007888FAF7E4FD3EE501248C +:10B070006CE70E246AE71D4B1A887B889A4231D010 +:10B080007888FAF7E1FD31E5F223059851684343EA +:10B09000CD18C95A00291FD03B7A012B0BD16C88DF +:10B0A000AB887888AA1D0094FFF752FB041E02D0DB +:10B0B00000233B722E88F2220021280000F0B8F90C +:10B0C00000232B80059B0133DBB20593084B0599C8 +:10B0D0001B78064A8B42D7D801235B421380002C91 +:10B0E000CED0F5E5002634000596EFE7F46AFF1FA1 +:10B0F000F26AFF1F70B504000E001500FFF796FA04 +:10B10000031E08D131000548FFF790FA0300112013 +:10B11000002B02D01C8000209D7070BDFFFF00003E +:10B12000F8B50B4F06003B780D001400FF2B0ED036 +:10B130000A2000F02DFA011E09D0B123038000235C +:10B1400046800371C5800481387800F0E1F8F8BDCD +:10B150002144FF1FF7B50F0008A90600088809A9B8 +:10B160000B240988002821D10234022B1ED15578E6 +:10B1700013782D021D432B008B4301937334002B56 +:10B1800014D1FB68300019000093FFF74FFB019CBE +:10B1900085420BD02A0030000099FFF7ABFF041E58 +:10B1A00004D12A0030007989FFF7BAFF2000FEBDE4 +:10B1B000F0B50E7885B003900AA805880120022E0C +:10B1C0000DD14C682778647824023C43054FBC427B +:10B1D00005D10398DBB201960095FFF7BBFF05B0E0 +:10B1E000F0BDC04602290000034B10B51B68002BC0 +:10B1F00000D09847FEE7C046006BFF1F07B501A8C7 +:10B20000FFF7F2FF044A05480021121A00F040F946 +:10B21000F8F7F0FAFEE7C046046BFF1F2444FF1F57 +:10B2200001B40248844601BC604700BF5147010099 +:10B2300001B40248844601BC604700BF311B0000D6 +:10B2400001B40248844601BC604700BF193BFF1FA0 +:10B2500001B40248844601BC604700BF193AFF1F91 +:10B2600001B40248844601BC604700BFC51D000010 +:10B2700001B40248844601BC604700BF455101004B +:10B2800001B40248844601BC604700BF1D4B010069 +:10B2900001B40248844601BC604700BF8538FF1FE7 +:10B2A00001B40248844601BC604700BF456B010001 +:10B2B00001B40248844601BC604700BFC52DFF1F92 +:10B2C00001B40248844601BC604700BF090E00007B +:10B2D00001B40248844601BC604700BF79180000F1 +:10B2E00001B40248844601BC604700BF792DFF1FAE +:10B2F00001B40248844601BC604700BF691F0000DA +:10B3000001B40248844601BC604700BF55490100B2 +:10B3100001B40248844601BC604700BF594F010098 +:10B3200001B40248844601BC604700BFC52100004B +:10B3300001B40248844601BC604700BF014C0100D3 +:10B3400001B40248844601BC604700BF657101003A +:10B3500001B40248844601BC604700BF6DBC0000D8 +:10B3600001B40248844601BC604700BF8D12000052 +:10B3700001B40248844601BC604700BF0132FF1F90 +:10B3800001B40248844601BC604700BFF54E01008D +:10B3900001B40248844601BC604700BFD92FFF1F9B +:10B3A00001B40248844601BC604700BFC94A01009D +:10B3B00001B40248844601BC604700BF091B00007D +:10B3C00001B40248844601BC604700BF350E00004E +:10B3D00001B40248844601BC604700BF4D38FF1FDE +:10B3E00001B40248844601BC604700BF5D170000FD +:10B3F00001B40248844601BC604700BFA54F01006C +:10B4000001B40248844601BC604700BF11470100F7 +:10B4100001B40248844601BC604700BF5952010094 +:10B4200001B40248844601BC604700BF6130FF1F81 +:10B4300001B40248844601BC604700BF154D0100BD +:10B4400001B40248844601BC604700BFC9A900009E +:10B4500001B40248844601BC604700BFD91AFF1FEF +:10B4600001B40248844601BC604700BF4537FF1F56 +:10B4700001B40248844601BC604700BFC9260000F1 +:10B4800001B40248844601BC604700BFC538FF1FB5 +:10B4900001B40248844601BC604700BFB70E0000FB +:10B4A00001B40248844601BC604700BF1930FF1F49 +:10B4B00001B40248844601BC604700BF055E00003D +:10B4C00001B40248844601BC604700BFA9460100A0 +:10B4D00001B40248844601BC604700BF75A9000062 +:10B4E00001B40248844601BC604700BF2526000025 +:10B4F00001B40248844601BC604700BFD91B00006C +:10B5000001B40248844601BC604700BF21460100E7 +:10B5100001B40248844601BC604700BF5933FF1F95 +:10B5200001B40248844601BC604700BF9135FF1F4B +:10B5300001B40248844601BC604700BFC56D0100EC +:10B5400001B40248844601BC604700BFADAE0000B4 +:10B5500001B40248844601BC604700BF3D180000AA +:10B5600001B40248844601BC604700BFB14E0000F0 +:10B5700001B40248844601BC604700BFE1170000E7 +:10B5800001B40248844601BC604700BF3D4B010046 +:10B5900001B40248844601BC604700BF1D4D010054 +:10B5A00001B40248844601BC604700BF2951010034 +:10B5B00001B40248844601BC604700BF9D35FF1FAF +:10B5C00001B40248844601BC604700BFE548000062 +:10B5D00001B40248844601BC604700BF7139FF1FB7 +:10B5E00001B40248844601BC604700BFB54C01006D +:10B5F00001B40248844601BC604700BFE92800004E +:10B6000001B40248844601BC604700BFED4A010016 +:10B6100001B40248844601BC604700BFF94C0100F8 +:10B6200001B40248844601BC604700BF51250000B8 +:10B6300001B40248844601BC604700BF434D01008D +:10B6400001B40248844601BC604700BF2D3BFF1F88 +:10B6500001B40248844601BC604700BFF30E0000FD +:10B6600001B40248844601BC604700BF2932FF1F75 +:10B6700001B40248844601BC604700BF0D5201007E +:10B6800001B40248844601BC604700BFDD5201009E +:10B6900001B40248844601BC604700BF5118FF1F37 +:10B6A00001B40248844601BC604700BF851F00000A +:10B6B00001B40248844601BC604700BF4D1F000032 +:10B6C00001B40248844601BC604700BFE94C010058 +:10B6D00001B40248844601BC604700BF85520100A6 +:10B6E00001B40248844601BC604700BF45500000D9 +:10B6F00001B40248844601BC604700BF7D18FF1FAB +:10B7000001B40248844601BC604700BF291C000008 +:10B7100001B40248844601BC604700BF810E0000AE +:10B7200001B40248844601BC604700BF090E000016 +:10B7300001B40248844601BC604700BFC12FFF1F0F +:10B7400001B40248844601BC604700BF9DA90000C7 +:10B7500001B40248844601BC604700BF413BFF1F63 +:10B7600001B40248844601BC604700BFB3520100E7 +:10B7700001B40248844601BC604700BF01240000B8 +:10B7800001B40248844601BC604700BFEDA500003B +:10B7900001B40248844601BC604700BF156B01003C +:10B7A00001B40248844601BC604700BFCD4C010093 +:10B7B00001B40248844601BC604700BFD94901007A +:10B7C00001B40248844601BC604700BF2124000048 +:10B7D00001B40248844601BC604700BF35550000F3 +:10B7E00001B40248844601BC604700BFDD66010029 +:10B7F00001B40248844601BC604700BF8B5201007F +:10B8000001B40248844601BC604700BFED39FF1F08 +:10B8100001B40248844601BC604700BF9136FF1F57 +:10B8200001B40248844601BC604700BFC135FF1F18 +:10B8300001B40248844601BC604700BF55220000A5 +:10B8400001B40248844601BC604700BF0539FF1FB0 +:10B8500001B40248844601BC604700BF3938FF1F6D +:10B8600001B40248844601BC604700BF017F00006C +:10B8700001B40248844601BC604700BF056A00006D +:10B880000001010302030303040305020602070289 +:10B89000080209000A030B030C020D000E030F033C +:10B8A000100311031303140315001600CD3B001100 +:10B8B000013C00110000000002000000C2B80011AD +:10B8C000192A0F180A000000F1590000FD24000099 +:10B8D00041460100797C00118D9C0011E17000113E +:10B8E0007D7A00118D52001181AA0011014F0011C3 +:10B8F000DD3D00110D3F0011000000001616000094 +:10B90000020000000CB90011F4FFF3FFD2FC0000AC +:10B910004D400011000000000000000054757961E6 +:10B920000042312E3500303031340067697468755B +:10B93000622E636F6D2F70767678004254483031F6 +:10B94000000000000200000058B90011292A282A2E +:10B95000272A262A252A242A0A180000E2040000A1 +:10B960007102000078EC0000744000001027000015 +:10B9700060F0000006640000204E0000000000009F +:10B98000050000001F501D00023CB400000114001F +:10B990001500000081020000303132333435363773 +:10B9A0003839414243444546000000009156001199 +:10B9B000E55600110000000002000000C4B90011AB +:10B9C0006F2A6E2A1A18000001A000000000000073 +:10B9D0006410B71DC8206E3BAC30D9269041DC7690 +:10B9E000F4516B6B5861B24D3C7105502083B8ED3A +:10B9F00044930FF0E8A3D6D68CB361CBB0C2649B5E +:10BA0000D4D2D38678E20AA01CF2BDBDFB349B5F82 +:10BA1000800000800010000000000000E35C0011C6 +:10BA20006D730011075D0011757700118B5D0011BA +:10BA30004B770011015E001121770011535E001158 +:10BA4000E9780011BB5E0011E9780011ED5E00118C +:10BA5000A3780011015E0011D9760011795E001102 +:10BA60008178001100000000000000005F5F0011FD +:10BA700081780011C15F001185730011052A042A25 +:10BA8000012A002A02290328012800280118001889 +:10BA9000000000000000000000000000000000871F +:10BAA0000101020102010102010203030401030179 +:10BAB000010101010303020103000D000E0010004B +:10BAC000110013001401070108010A010B011C01F8 +:10BAD0001D02040205020702080219021A021C02D2 +:10BAE0001D030103020317000201000504000807FB +:10BAF000000B0A001716001D1C01020101050401BC +:10BB00000E0D011110011413011716011A1902026A +:10BB100001020B0A020E0D02111002141302171675 +:10BB2000030504030807030B0A030E0D00010203BB +:10BB300007090A0B0E0F101112141718191A1B1FE0 +:10BB400020212200C9A3001185A4001100000000DB +:10BB5000020000008EBA001100000000B1B1001117 +:0CBB600000000000020000008CBA001180 +:020000041FFFDC +:1000000000000000453D0011C8B80011C4B800113F +:100010003061FF1F00000000000000000000000031 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:100190004D32FF1FAD30FF1FC1660100000000009F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000FDB10011000000000000000000000000BE +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000591AFF1FBC +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:08183800106FFF1F4118FF1F94 +:10184000024981F3088802F06FFA0000106FFF1F51 +:1018500010B502F089FA072804D0122808D002280F +:1018600008D010BD044A0420136B01331363F8E75A +:101870000220F6E71420F4E7EC64FF1FF8B5070038 +:101880000C0026002500503630785135002804D150 +:101890000300287058342370F8BD2978CA00481E08 +:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 +:1018B00000280DD12B78DA00A218013350602B706C +:1018C0003378044A013B3370136A01331362D8E75B +:1018D0000123DFE7EC64FF1F5C234343074910B596 +:1018E000C9180B0058331B78012B05D1FFF7C6FF31 +:1018F000034A936A0133936210BDC0462065FF1FFF +:10190000EC64FF1F10B502F037FB064A01211300FB +:1019100010CB4942D967044B136002F0E5F920006F +:1019200010BDC04600E100E01000100010B504003A +:1019300002F022FB024B1C6002F0D6F910BDC0463B +:1019400000E100E0431E5A425341A022F0B5D2010B +:101950005B421340154D164A40019B182A18127E0F +:101960008BB00191002A1BD01A000832D46F0022DC +:10197000E6B206AFE4B294420EDC2818C369002B2D +:1019800008D0019902AA117106AA049202AA16733C +:1019900003A898470BB0F0BD1978B9540132EAE7B3 +:1019A0001A7D1A7806AB01261A70E6E7AC67FF1FAE +:1019B00000400040F0B5254B04004001C25C85B0FA +:1019C000002A2BD01A18117E002927D0917E0029D9 +:1019D00024D01179022921D11689D788D168F51B25 +:1019E000ADB22A1C102D00D9102292B2BE4217D1DE +:1019F0001818012303710023C269C38003819A422E +:101A000006D06846032103730171029301A8904731 +:101A10000820002C00D0192001F0FEFA05B0F0BD1E +:101A2000013C65426C41A0256442ED012C40084D0B +:101A30001B186419074D0633013A92B2AA42EDD041 +:101A40001888461C1E80085C2070F5E7AC67FF1FF5 +:101A500000400040FFFF00000F220E4B10B59868B9 +:101A6000104002380A280BD802F060F80D0A0B0A61 +:101A70000A110A0A0A0A060002210020FFF762FF83 +:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 +:101A9000F6E7C046004000400F220E4B10B5986894 +:101AA000104002380A280BD802F040F80E0A0B0A40 +:101AB0000A120A0A0A0A060002210120FFF742FF61 +:101AC00010BD01210800F9E70120FFF773FFF7E7D8 +:101AD000DB6FF5E70090004013B5334C2378072BFC +:101AE0003DD8324B1A78324B002A39D180221968FE +:101AF00052020A431A60252001F0C4FE20232D4A19 +:101B000011680B43802113606B460422C9050868E5 +:101B10000733104228D080210422C905C86810422A +:101B20002ED080212020C905CA688243CA601422B1 +:101B30001A701A78002A2FD18021C905C86820326E +:101B40000243CA6014221A701A78002A28D11A4B4C +:101B50001A7D22785A601D221A705932DA6013BD3C +:101B60001A6816490A40C5E7086802430A60142249 +:101B70001A701A78002ACED01A78013AD2B2F7E752 +:101B8000C8680243CA6014221A7019784A1ED2B279 +:101B90001A700029F9D1C4E71A78013AD2B2C7E71E +:101BA0001A78013AD2B2CEE75C43FF1F2444FF1FEC +:101BB0003CF000405443FF1F00200040FFFFFEFFA9 +:101BC000564B70B51B68012B03D1554A936D0133F9 +:101BD000936502F011F9534B534A1860534B544C20 +:101BE0001A600123534A1360534A13602378002B71 +:101BF00006D006225149524802F0A6F8002323706D +:101C0000504A514B10681B78C1B2002B0ED14F4C7B +:101C1000C0B223785BB2002B4FDB237824785BB211 +:101C200064B21B0424021B191B1813600B1C5029DF +:101C30004ED95023464A47491078DBB2FF2202288A +:101C40004BD10868444C454D267890432A789642FB +:101C500054D9227824782E78023B5D10A31B6B4365 +:101C60005201D31A10335B111843086002F054F983 +:101C7000031F012B45D83A4B1B78002B06D0394B5C +:101C80001B78002B02D0002002F05EF9A122364B17 +:101C900092009978354B4A431B689B188322920027 +:101CA0009B181B78033B012B03D8AF20400001F0A9 +:101CB00093FF01222E4BDA8270BD237824785BB229 +:101CC00064B2FF33FF341B0424021B190138ABE755 +:101CD000CAB2022AAED20223ACE70868254C264DD0 +:101CE000267890432A78964208D9227824782D784D +:101CF000023B5B10641B63435201B2E72378DBB203 +:101D0000B2E70228D5D11D4B1B78013B022B03D92A +:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 +:101D2000FC0FFF1F2464FF1FFF3F0000141003403F +:101D30002864FF1F0C10034000100340D50BFF1F49 +:101D40007211FF1FB40003408C09FF1F680AFF1FB8 +:101D5000490AFF1F94000340460AFF1F470AFF1F5E +:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 +:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 +:101D80002309FF1F10B502F0B7F80022014B1A809B +:101D900010BDC0462064FF1F10B502F055F8A12108 +:101DA000054A89009478054A61431268044B521829 +:101DB000528C1A8010BDC046300DFF1F3409FF1F22 +:101DC0002064FF1F10B50D4B0D4A9978A1239B008D +:101DD0004B431268D218531DD97F0A4B1B88994276 +:101DE00009D2441C07D0C82805D0D2695B1A5A43CF +:101DF000054B5343C01801F0E7FF10BD300DFF1F26 +:101E00003409FF1F2064FF1F7102000070B5244DCC +:101E10002B68002B28D001F017FF2B68D8402B68C7 +:101E20000400002B27D002F0B7F82B68D8401D4BD8 +:101E30001D4A9978A1239B004B431268D118D25CAC +:101E400091239B00002A20D0CA580132CA50174B58 +:101E500017491B680868834214D3D23B181A012A19 +:101E60001AD0144B186070BD01F0EEFE124B1968C9 +:101E700001F082FED3E702F08FF80F4B196801F0F2 +:101E80007BFED4E70D495B18E8E7CA500C4B1B6892 +:101E9000DB68E418201AE4E7F530FF30E1E7C046DC +:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 +:101EB0002464FF1FA009FF1F1808FF1F2DFF3F000C +:101EC0002C64FF1F70B504000D00282916D10300F3 +:101ED000A433C2881B889B1A0B4A9BB293420DD92C +:101EE00006006A3605223100653001F0F5FF002852 +:101EF00004D13100200002F01FF870BD290020003D +:101F000001F00AFFF9E7C046FE7F0000F8B50500C2 +:101F1000012001F0B1FF134CA36AA26A9342FBD1E6 +:101F2000114E336001F038FE10490300086010487C +:101F3000426894460F4A17680022BC4501D24268A5 +:101F4000BA1A0D4802603268AD18A422E562606AD0 +:101F5000520302436262094A1278002A01D00F3B01 +:101F60000B60F8BD00F00040340AFF1FE408FF1FBB +:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 +:101F800070B580241025E405A3682B43A36001F0FD +:101F90000BFEA368AB43A36070BD0000F7B516004D +:101FA00080221C001023D2050191916805000B438B +:101FB000936000225A4BD7301A6001F055FE9D23E2 +:101FC0002A002F009B00EB58CA3201210092FC37F7 +:101FD000002B01D00021009A386801F0D5FE2900BD +:101FE000009BCB311A784F4BD3351A604B780A7867 +:101FF0001B0213438A7812041A43CB781B0613433F +:10200000494A1BBA13604B790A791B0213438A7938 +:1020100012041A43CB7931001B061343434A1BBAFF +:1020200013606B782A781B021343AA7812041A43B0 +:10203000EB781B0613433E4A1BBA1360019A330226 +:1020400013433C4A13603C4B22001B1B9C46032954 +:102050003DDCB3089A0013005142B21A032A46D15C +:10206000354AE018511A827840781204000202437F +:10207000E05C043302430A600022FF2B4BDDF022B8 +:102080002E4B12011A600F222D4B1A602D4A136835 +:10209000002BFCD00023224A27491360091B321D64 +:1020A0000B191B68043A180A23706070180C1B0E79 +:1020B000A070E3700434002AF2DC802210213B6817 +:1020C000D20501333B6093688B439360F7BD634651 +:1020D000D578981893782D061B042B43157804396E +:1020E0002B43557804322D022B430360AFE7022ABD +:1020F0000AD1114AE05C511AE218527812020243E6 +:102100000A6004339BB2B7E7012AB5D10A4A521AD2 +:10211000E15C1160F5E7084959180A600433ACE73F +:10212000000004403C0004403800044034000440F7 +:10213000300004400C00044000010440040004404E +:102140001000044014000440F7B5150080221C0064 +:102150001023D2050091916807000B439360002380 +:10216000654AD730136001F07FFD9D233E009B0040 +:10217000F9583B00CA363200FC33002900D07FE01A +:10218000586801F001FE390032785C4BCB311A609F +:102190004B780A781B0213438A78AC4612041A4320 +:1021A000CB78281D1B061343554A1BBA13604B7985 +:1021B0000A791B0213438A7912041A43CB791B064E +:1021C0001343504A1BBA13604B7A0A7A1B0213431B +:1021D0008A7A12041A43CB7A21001B0613434A4A17 +:1021E0001BBA1360009A2B021343484A1360220063 +:1021F000474B1B1B0093009BCE785B1801938B7899 +:1022000036061B0433430E78043833434E780431CA +:1022100036023343019E33600328ECDC0321A80817 +:10222000431C9B002940800003292BD13849E51825 +:102230005E18A9786D78E35C09042D0229431943DF +:102240003160030008330021FF2B2DDD314B324973 +:1022500019600F21314B1960012327490B60304B66 +:1022600019680029FCD006211B680B40042B20D0E4 +:1022700080220020D20593680A318B439360FEBD13 +:1022800001217DE7022908D121495D18E11849782B +:10229000E35C090219432960D3E70129D3D11C4922 +:1022A0005918E35C0B60CCE7194818180160043337 +:1022B000CAE7002310490B606346002B0CDC3B008F +:1022C000FC335A68102101325A608022D20593688B +:1022D00001208B439360D2E7009B9B181B68190A6F +:1022E00013705170190C1B0ED37004235B42917054 +:1022F0009C440432E0E7C046000004403C00044037 +:102300003800044034000440300004400C00044015 +:102310000001044004000440080F000010000440C5 +:102320001400044070B5061E19D002225A4B9B7946 +:102330009343012B13D1594B1A78FF2A0FD15A78A6 +:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 +:102350001A79FF2A03D15B79FF2B00D199E0504B0A +:102360000C201A78012A08D000224E4D1A702978C4 +:102370000B00093B042B01D8212070BD4B1F012B02 +:10238000FAD9454CA37B042B00D982E0A279032A19 +:1023900000D97EE09A1ED2B2012A02D860881F2896 +:1023A00077D9002E56D0012E73D1A0880128E3D012 +:1023B000002907D1581E032803D801F0B7FB1217D4 +:1023C00015122E702978481E032811D80025364B87 +:1023D0001D602823237501F0A7FDA84227D0A58002 +:1023E000CAE702212970EDE70421FBE70321F9E7A1 +:1023F00007390129C0D82D490968C96A8906BBD5A2 +:102400002B4908780028B7D1012A01D9002BB3D174 +:1024100002230B708021274D2633890128782375EC +:1024200001F0A2FD80212878890101F0F5FC01234B +:10243000A380214B1B78002B0AD0FA2280211F4B4E +:1024400092001B8809025A431A4B187801F084FD48 +:10245000002092E701F090FD2B78A680073B012B2E +:1024600003D917482E7001F0FFFC114B114C1A785C +:10247000002A06D080210022207889011A7001F0FC +:1024800073FD01F031FC80212078090201F06CFD20 +:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 +:1024A0001A09FF1F1C09FF1F4809FF1F2C64FF1F8B +:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 +:1024C0000010004010B5002901D001F0F5FC10BD4E +:1024D000F7B5604B01919978A1239B004B435E4A6D +:1024E000060014681022E418D6235B00E058362357 +:1024F000FF33E35C00279343222B41D1574B0F3A24 +:102500001A600760012501F0FFFC019B1880E82399 +:102510005B00E35C002B01D0B34258DD0023504F39 +:10252000FB70AD33FF33E3581A68002A03D09B8851 +:10253000DB439B071DD03823FF33E35C002B18D00F +:102540009B235B00E35C002B13D1D133FF33E35CAF +:10255000B3420EDAA4235B00E15AE018090A023103 +:1025600001F0C2FC23000122FE33013E01351A872F +:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 +:1025800003683D00002BBED081880430090A023167 +:1025900001F0AAFCD6235B00E3581F60B2E72300DA +:1025A000B133BA00FF339858013781880430090AE3 +:1025B000023101F099FCE8235B00E35CBB42EEDCF6 +:1025C000E822F61AED1800235200A354A6E70027CC +:1025D000F1E7200001F030FB00281FD0002E1DDDA8 +:1025E0007319882647190193B600200001F0FCFA00 +:1025F0005A30800020184068013581880430090A6B +:10260000023101F071FC200001F0A6FBA359013357 +:10261000A351BD4202D0019B9D42E6D1114BE35C28 +:10262000002BABD095239B00E35C002BA6D00E4B78 +:10263000E15A0029A2D00D4AA35C994202D9013384 +:10264000A3549BE700231A212000A35401F0ACFB04 +:1026500094E7C046300DFF1F3409FF1F00140340EC +:10266000E010FF1F5A020000720200005E0200002C +:102670000D4970B54A6E0D4CD2038B69D20BA24244 +:1026800006D80B4D0224AA4204D901F0E5FA70BD28 +:1026900002246442E21815007E2425402242F4D030 +:1026A000A3432B438B61F0E700F000400A200000B9 +:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 +:1026C000BA7B002A02D101321A7003E0032AFAD041 +:1026D000022AF8D001F028FC00220120154B1A70C4 +:1026E000F8BD154B154D1C68154B9E7801232B70BA +:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D +:102700005BFAA1239B007343E41883239B00E41826 +:1027100023782B70E4E7032B02D101F09DFBF0E757 +:102720000020022BDCD101F02FFCEAE71C09FF1F7F +:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 +:10274000300DFF1FF0B587B00EAD2F780FAD2D788F +:102750000593AC46634614000E4D0CAA12782E78F1 +:1027600003930D9B009201932200059B029701F0B9 +:102770004BFC2E70012C01D0042C08D1802206497C +:102780008B889343054A1278D20113438B8007B09C +:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 +:1027A0000B001B3B70B504003020E02B0DD813004C +:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 +:1027C000200019825A8201F057FA70BD8410FF1F51 +:1027D00010B501F011FB054B00205B68052B04D9F7 +:1027E000034A5268D20200D4980810BD001000407D +:1027F000FCE100E070B501F0BFFB0D4B1B68FC3342 +:10280000DC691D6AFFF7E4FF6419844204D2094BB6 +:1028100001241B68002B07D004220024064B1A70E9 +:10282000064A93690133936101F05EFA200070BD9E +:102830002C64FF1F9809FF1F2309FF1FFC0FFF1FB8 +:1028400070B50C4D2B68FC335C6A01F095FBFFF70B +:10285000BFFF2B680025FC339B6AE318834204D238 +:10286000054B1B68AB4200D1051B01F03DFA280067 +:1028700070BDC0462C64FF1F9809FF1FD722044B70 +:1028800092009B5810B5002B00D0984710BDC04651 +:102890000000FF1F10B501F0D3F8FFF7EFFF274945 +:1028A000274BCA6D274C1A4084235B001343CB652A +:1028B000254B1B68186A01F0DFFA244B244A1A6082 +:1028C000244B254A1A60A022244B52001A60244B44 +:1028D000187801F051FA2000224901F09DFB0023F5 +:1028E000A3600233A360204B2049236003232048C8 +:1028F000A36001F091FB10221E4BFF201A60802282 +:1029000052031A60802292031A60802212041A6015 +:1029100001F01AFB012001F03FFAFA20400001F01B +:1029200063FA582001F058F9134801F045FA0120E4 +:1029300001F072F9072001F04FFA10BD00F00040DD +:1029400000FEFEFF141000402C64FF1F0000034037 +:102950000180063DBC00034034080000A400034091 +:102960004A0AFF1F71020000C3090000FFFF3F0079 +:102970002810004000E100E030750000674E336829 +:1029800088331B6883F3088801F0E6F8644A6549D8 +:10299000136800200B401360634B644A1B6893422A +:1029A00000D1A6E001F070FA0221614A13688B435E +:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 +:1029C00073FA0023A3600233A3605C4B01202360F1 +:1029D00001F052FA0323A36001F016FA040001F09B +:1029E0000BFA050001F010FA554B186001F0E4FAFB +:1029F000544B1968621A531EA14200D21300802260 +:102A0000D203934201D39B029B0A3268D16AC90761 +:102A100000D471E04C491C0C09689BB24C435943EB +:102A20002402090A641803264849FC3293680A689C +:102A300047489B1A474A0768126847499B18474A04 +:102A40009A1833409208DB190A600360042B03D9FB +:102A5000013233400A6003600E684149A619300014 +:102A600001F08AF83F4F3E493B68C3183B60300095 +:102A7000019301F011F93C4E306808183849306074 +:102A8000884205D9019B01333B6001F005F93160B3 +:102A900001F00AF9354B1B78002B0DD001F0ACF991 +:102AA000334B621B196812188A4232D24919091B2A +:102AB000091A304801F0B0FA2F4E337A002B0ED0AD +:102AC00001F09AF9621BF1681218914224D9491950 +:102AD000091B091A294801F09FFA00233372284B79 +:102AE00083F3088801F090F8002001F0CDF901F09F +:102AF000ABFA01F0C9F95CE7DC0199000234641A11 +:102B00005900641A09214B438033CB40A408E418D0 +:102B100089E7FA218900CCE71A49DBE72C64FF1F1B +:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C +:102B300010000040490AFF1F14100040C3090000A4 +:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 +:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 +:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 +:102B7000E408FF1F00100040740BFF1F3C100040D2 +:102B800000000020DC050000A022054B92009B58AD +:102B900010B5002B01D0984710BD01F045F8FBE7B8 +:102BA0000000FF1FA122054B92009B5810B5002B7F +:102BB00001D0984710BD01F037F8FBE70000FF1F78 +:102BC000A222054B92009B5810B5002B01D09847CC +:102BD00010BD01F029F8FBE70000FF1FA322054B01 +:102BE00092009B5810B5002B01D0984710BD01F002 +:102BF0001BF8FBE70000FF1FA422054B92009B5827 +:102C000010B5002B01D0984710BD01F00DF8FBE77F +:102C10000000FF1F70B501F0EFF84F4B186001F096 +:102C2000E3F90400C30702D401F06EF870BD00227E +:102C30004A4B1A604A4B18780138042829D800F00A +:102C400075FF0320181C2400200001F0ADF90128B5 +:102C5000ECD0444C2378042B6ED100F095FF002873 +:102C6000E4D001F0E1F9582000F0B6FF0223237010 +:102C7000DCE7200001F008F8E9E7200001F0ACF9FA +:102C8000E5E7200001F038F8E1E7200000F09CFFC4 +:102C9000DDE701F041F90500012808D1324B1B782E +:102CA000053B012B03D82000FFF76EFFD1E72D4B2A +:102CB0001B78022B01D0052B20D1022D28D12B4BC4 +:102CC0009B7BAB431CD12000FFF76CFF264B187891 +:102CD0000128BED16405BCD4244925224B7B034284 +:102CE00005D1233A13405A42534126331A000B7D33 +:102CF0009342AED9322000F0EFFFAAE7022D07D1B0 +:102D0000194B1B78052B11D12000FFF759FFDDE788 +:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 +:102D2000062B03D12000FFF767FF92E7200000F099 +:102D30007BFF022D8DD1C9E7032B04D10C4B987C6E +:102D400000F0BAFF72E7072B00D06FE7094B987BC2 +:102D500000F0F2FF6AE7C0469C09FF1F9809FF1FB9 +:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 +:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 +:102D80001A640A4A5A500A4A04395A50094A083100 +:102D90009A64094A5A50094A5C315A50084ADA661C +:102DA0007047C0460000FF1F4527FF1F4128FF1F37 +:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A +:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 +:102DD000FF270122009300233C001E001D009446A3 +:102DE000019089B262469A40100008401841361896 +:102DF000B6B2FF2F02D1012E00D19FB2009802403F +:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 +:102E10000133102BE6D10320012E07D1012D04D15F +:102E2000019B2401E4191C700138FEBD102EFCD159 +:102E30000238102DF9D00230F7E700008023F7B5F3 +:102E40009C46264B264F01932649274A274D284C5E +:102E5000284B02281AD1604638600868264E304058 +:102E6000802636033043086001990978002909D18A +:102E70001660224A2A60224A2260E02219689143A1 +:102E8000A03A1BE08021C9021160F2E766463E606D +:102E90000F68194E3E408027FF023E430E600199A5 +:102EA000097800290DD1176001280ED1154A2A6032 +:102EB000154A2260E02219689143C03A0A431A6019 +:102EC000F7BD802189021160EEE7E0210F4A02433D +:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 +:102EE000E0000340D800034090000340000003408E +:102EF0005000034040000340FFFFE3FF0280063D17 +:102F0000804508220180063D8066082200800698E0 +:102F100080550822F8B51E4B80261A680020140040 +:102F20003440324232D11A681A4F32431A600122B9 +:102F30003B68063093433B6000F09EFF0122164D34 +:102F40002B681E432E603B680A2613433B60802794 +:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F +:102F600009D17E220E4B1C682B68E40B144093435E +:102F700023432B6005E0082000F07EFFE9E7002EE8 +:102F8000EFD180222B68600893432B60F8BDC046C8 +:102F9000C4F000405CF0004018F0004068F00040D1 +:102FA00060F0004010B500F027FE01215820034AD0 +:102FB00000F0DAFDFFF7AEFF10BDC046600AFF1F4C +:102FC00010B578220021034800F07EFE01F014F8CD +:102FD000002010BD3467FF1F70B5040000F0CCFF67 +:102FE00000230C200B4A010059438D18515C002925 +:102FF0000DD0A14208D1012300246B7000F064FFC2 +:1030000000F072FE200070BD01330A2BEBD11224B8 +:10301000F6E7C0463467FF1F70B5040000F0ACFF50 +:10302000002319001D000D4A1078002806D0A04288 +:103030000CD1557001310C320A29F5D1002B0AD17F +:1030400000F0DAFF00F050FE002070BD5078461E00 +:10305000B0411B18EEE700F037FFF3E73467FF1FBE +:10306000F7B504000C20002384460E4D01926746FC +:103070005F43E85D7E19A04212D000280BD10A4BB5 +:103080009C4662461B7808331370019B70707C5518 +:103090007160B360FEBD01330A2BE8D10320F9E76C +:1030A0000720F7E73467FF1F3067FF1F8020F8B560 +:1030B000484BC0051B68C1248360474BFF251A6835 +:1030C000012313434361454BA4001A68444B40213C +:1030D0001A60444B1A68444B1A60444B1A59AA436D +:1030E0001A51C52292009E58AE4331438026995012 +:1030F0009F583F49F6010F403E439E509E588027FF +:103100003602360A3043985080201A5900020A408D +:1031100002431A5104341A59364E3F043240802675 +:103120003A431A511A5936061202120A32431A51F8 +:1031300008341A5980260A4002431A51C3229200C9 +:103140009F58B446AF4337439F509F58294E0F4076 +:1031500007439F509F5837408026360437438026C8 +:103160009F509F5836063F023F0A37439F50C02268 +:103170001F59AF433A431A511A591202120A164301 +:10318000C6221E5192009C58AC4365462C439C506D +:103190009C5800250C4020439850C72080001A58A6 +:1031A000154C1140C02212020A431A50134B1B78CF +:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 +:1031C000A368002B00D0984701350C34EEE712209D +:1031D000F2E7C0465843FF1F5443FF1FB0F00040C2 +:1031E0002C67FF1FB4F000402867FF1F00E100E0DC +:1031F000FF00FFFFFFFF00FF3467FF1F3067FF1F67 +:10320000030010B51F2809D8072200201340072407 +:1032100004490A78A24313430B7010BD0023062013 +:10322000F5E7C0463067FF1F054B06491B780A6863 +:1032300005485B0702401B0B134300200B607047DF +:103240003067FF1F1CF00040FFFFC1FF70B50C2569 +:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 +:10326000002C01D1200070BD2B78002B06D06B689C +:10327000002B00D09847013C0C3DF1E71220F2E70B +:103280003067FF1F2867FF1F1FB5002102220B00B8 +:1032900001910091052000F0CFFE02230B490A683E +:1032A0001A42FCD120230393039B5A1E0392002B46 +:1032B000FAD1074A1368002BFCDA0B246C44200077 +:1032C000012100F0B9FD207804B010BD90C8004085 +:1032D00000C8004013B504000A4B0193019B002B6A +:1032E00001D1112016BDFFF7CFFF23000340044298 +:1032F00005D0052000F0C0FD019B013BEDE7180063 +:10330000F0E7C046FFFFFF0707B500F035FE80225B +:103310000821D205936A0191002B01D107399162EE +:1033200002210C4A11600199481E01900029FAD12E +:1033300003311160053101910199481E0190002966 +:10334000FAD11160002B02D18022D205936200F0E5 +:10335000CBFC07BD00C00040F0B52D4C89B02378F0 +:10336000002B4FD1FEF7CEFA02232A4F03903A6882 +:103370001A42FCD120230693069B5A1E0692002B6C +:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB +:10339000011E02D0112009B0F0BD030003220190EC +:1033A000009005AD9F2000F047FE0321280000F0AB +:1033B00043FD02233A681A42FCD120230793079B5E +:1033C0005A1E0792002BFAD13368002BFCDA012039 +:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F +:1033E0006B7811041B020B4329780B4363601300B5 +:1033F000113B0A49052B07D801239340A3600B60BA +:10340000012323700020C6E780231B03F6E7C04694 +:103410004043FF1F90C8004000C800409808FF1FAD +:103420001E4B30B55A6818781D4B85B0D3185942D9 +:103430004B4101210093002300F0C6FD194B1A4AAD +:1034400002259A6300221A6510325A658022C4212F +:103450009D65164B1648D202DA6789004258154B13 +:1034600080241A4080231B041343435064234120CB +:103470000393E40500F006FA402000F003FA6562C9 +:10348000039D6B1E0393002DFAD103236362FFF7A4 +:103490003BFFA562FFF760FF05B030BD4C43FF1F47 +:1034A00095FFFEF700C80040050001FF04E100E0C1 +:1034B00000E100E0FFFF00FFF0B585B00700FEF778 +:1034C00021FA022305002D4C22681A42FCD1202348 +:1034D0000093009B5A1E0092002BFAD1284E3368AD +:1034E000002BFCDA0120FFF7F5FE002803D01124A1 +:1034F000200005B0F0BD234B2360022322681A424E +:10350000FCD120230193019B5A1E0192002BFAD17A +:103510003368002BFCDA0120FFF7DCFE0028E6D13F +:10352000194B1F60022322681A42FCD12023029308 +:10353000029B5A1E0292002BFAD13368002BFCDA50 +:103540000120FFF7C7FE0028D1D1104B23600223D2 +:1035500022681A42FCD120230393039B5A1E039234 +:10356000002BFAD13368002BFCDA0120FFF7B2FE02 +:10357000041EBCD12800FEF7D9F9B9E790C8004075 +:1035800000C8004001000006A8C8004001800001FA +:1035900010B50020FFF790FF10BD000010B5064BDE +:1035A00018705960FFF73CFF00211320034AFFF712 +:1035B00057FD002010BDC0464C43FF1F2134FF1FA4 +:1035C000F0B5040085B003920291FEF79BF98822C2 +:1035D00063035B0B52051A438023DB059D6A80233E +:1035E000274F0092BA68002601901B039A420CD91B +:1035F000F82326001B041E401C4206D08022214BCB +:1036000052025E6219680A431A60002D0BD100F065 +:10361000B3FC02221C4B1A608023DB055A62013A7C +:103620009A6200F061FB0023039A934220D1002D9F +:103630000AD100F0A1FC144B03221D608023DB059E +:103640005A629D6200F050FB8023BA681B039A42C5 +:1036500008D9002E06D000220A4B0C495A621A687B +:103660000A401A600198FEF761F9002005B0F0BD2C +:10367000009A0299D2181278CA540133D4E7C0468E +:103680004043FF1F00C8004000C00040FFFFFEFF96 +:10369000F0B587B0029103920400FEF733F9019070 +:1036A00000F06AFC802302250122234EDB053560F1 +:1036B0005D629A6200F018FB204F3B682B42FCD100 +:1036C00020230493049B5A1E0492002BFAD11C4D14 +:1036D0002B68002BFCDA0120FFF7FCFD002802D04C +:1036E000112007B0F0BD2000039A029900F0D4FB2E +:1036F000022304003A681A42FCD120230593059B5B +:103700005A1E0592002BFAD12B68002BFCDA0120FF +:10371000FFF7E0FD051EE3D100F02EFC802303221D +:10372000DB0535605A629D6200F0DEFA0198FEF713 +:10373000FDF8E0B2D5E7C04600C0004090C80040A8 +:1037400000C80040F0B5802489B00600FEF7DAF822 +:10375000E405A36A02250393029000F00DFC012307 +:10376000304F3D606562A36200F0BEFA2E4C2368C4 +:103770002B42FCD120230593059B5A1E0592002B5A +:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD +:10379000002803D01124200009B0F0BD244B236081 +:1037A000022322681A42FCD120230693069B5A1E4C +:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 +:1037C00089FD021EE6D11B4B03211E600300019000 +:1037D0000090202000F030FC022322681A42FCD125 +:1037E00020230793079B5A1E0792002BFAD12B68C0 +:1037F000002BFCDA0320FFF76DFD041ECAD100F098 +:10380000BBFB80230322DB053C605A629C6200F014 +:103810006BFA039B002B01D1FFF776FD0298FEF7B0 +:1038200085F8B8E700C0004090C8004000C80040DC +:103830000100000694C8004007B50002019104226F +:10384000000A01A9FFF724FF0EBD000073B50500B3 +:1038500005240B4AA3005B429B1819686B46DE1DCA +:103860003000FFF7B3FA022804D133782B55013C1E +:10387000EFD276BD052CFCD00128FAD10230F8E752 +:10388000140900111F2807D8012380228340D20584 +:1038900091680B43936070473F2808D8012380222A +:1038A00020388340D20551690B435361F3E75F2809 +:1038B000F1D80123802240388340D205116A0B439E +:1038C0001362E8E71F2807D8012280218240C9053A +:1038D0008B6893438B6070473F2808D80122802172 +:1038E00020388240C9054B6993434B61F3E75F2859 +:1038F000F1D80122802140388240C9050B6A9343E8 +:103900000B62E8E71F2810D880230200DB05153A78 +:103910001968012A06D820229143196019680A43C0 +:103920001A60704701228240F6E73F2811D88023B1 +:103930000200DB05353AD968032A06D810229143E4 +:10394000D960D9680A43DA60EBE701222038824067 +:10395000F5E75F28E5D842238022181A413B8340CF +:10396000D205516A99435162516A0B435362D8E7B9 +:1039700010B50400012813D1A022184992050B6844 +:103980005B015B0913430B60154B164A1968114024 +:10399000154A0A431A60402219680A431A6010BD8A +:1039A0000028FCD101000A2000F056FB21000B206A +:1039B00000F052FBC0220A4B920019680A434021D2 +:1039C0001A601A688A431A60B022044912060B680A +:1039D0005B015B0913430B60E1E7C04614F0004054 +:1039E0001CF000407F00FEFF80FD010072B6074A18 +:1039F0001368013313600422054B1A600023054A43 +:103A000013608022D2055360FEE7C0467808FF1F8E +:103A1000C0F00040C4F0004005490B68002B05D100 +:103A2000044A0A6004490A60044A13607047C046A9 +:103A3000140AFF1F841E0000380AFF1FC4F0004054 +:103A40000023034A1360034A1360034A136070475C +:103A500054F0004040F1004044F10040002310B514 +:103A6000184C8AB0009301932378012B27D0694624 +:103A7000012000F0D9F9002817D1009B12490293C8 +:103A8000019B06AA0393114B02A81B680493104BD9 +:103A90001B68059300F088F810220E4906A800F074 +:103AA0001BFA002804D1FF23237000200AB010BDA8 +:103AB0000123094A074902A8237000F075F8012084 +:103AC000F4E7C0463064FF1F1029001108290011D7 +:103AD0000C290011202900113464FF1F13B50124A3 +:103AE0006946012000F0A0F9034B00940193FFF711 +:103AF000B5FF200016BDC046BB0B000010B5FFF798 +:103B00009FFFFFF7EBFF002802D0024B984710BD44 +:103B1000FEE7C046E1A2000002B471464908490030 +:103B2000095649008E4402BC7047C04602B4714633 +:103B300049084900095C49008E4402BC7047C046F0 +:103B400003B47146490840004900095A49008E44AF +:103B500003BC70470000000001B40248844601BC69 +:103B6000604700BFC9A9000001B40248844601BCF7 +:103B7000604700BF0167010001B40248844601BCF0 +:103B8000604700BF090E000001B40248844601BC32 +:103B9000604700BF01D7000001B40248844601BC61 +:103BA000604700BFBD5C010001B40248844601BC0F +:103BB000604700BFDD3F000001B40248844601BCFD +:103BC000604700BFE9F6000001B40248844601BC2A +:103BD000604700BFF935010001B40248844601BCCA +:103BE000604700BF7912010001B40248844601BC5D +:103BF000604700BFD9B0000001B40248844601BC50 +:103C0000604700BFED68010001B40248844601BC72 +:103C1000604700BF7997000001B40248844601BCA8 +:103C2000604700BFE512010001B40248844601BCB0 +:103C3000604700BFE917010001B40248844601BC97 +:103C4000604700BF71B0000001B40248844601BC67 +:103C5000604700BFE90B010001B40248844601BC83 +:103C6000604700BFD1AE000001B40248844601BCE9 +:103C7000604700BF8944000001B40248844601BC8B +:103C8000604700BF116E000001B40248844601BCC9 +:103C9000604700BF0934010001B40248844601BCFA +:103CA000604700BF090E000001B40248844601BC11 +:103CB000604700BFD544010001B40248844601BCFE +:103CC000604700BF4DF9000001B40248844601BCC2 +:103CD000604700BFB70E000001B40248844601BC33 +:103CE000604700BF6137010001B40248844601BC4F +:103CF000604700BF9DA9000001B40248844601BC92 +:103D0000604700BFF535010001B40248844601BC9C +:103D1000604700BFDD0A010001B40248844601BCCF +:103D2000604700BF51B8000001B40248844601BC9E +:103D3000604700BF05B2001101B40248844601BCCF +:103D4000604700BFC1F7000001B40248844601BCCF +:103D5000604700BFE94C010001B40248844601BC41 +:103D6000604700BF5976010001B40248844601BC97 +:103D7000604700BFE927000001B40248844601BC47 +:103D8000604700BFEDA5000001B40248844601BCB5 +:103D9000604700BF2144000001B40248844601BCD2 +:103DA000604700BF6911010001B40248844601BCAC +:103DB000604700BF53B9000001B40248844601BC0B +:103DC000604700BF8D11010001B40248844601BC68 +:103DD000604700BF8937010001B40248844601BC36 +:103DE000604700BFF90D010001B40248844601BCE0 +:103DF000604700BF8512010001B40248844601BC3F +:103E0000604700BFC95C010001B40248844601BCA0 +:103E1000604700BF156B010001B40248844601BC35 +:103E2000604700BF0D52010001B40248844601BC46 +:103E3000604700BFE1AC000001B40248844601BC09 +:103E4000604700BF3D71010001B40248844601BCD7 +:103E5000604700BFF9ED000001B40248844601BC90 +:103E6000604700BF75F8000001B40248844601BCF9 +:103E7000604700BFC1A5000001B40248844601BCF0 +:103E8000604700BF0189000001B40248844601BCBC +:103E9000604700BF016C010001B40248844601BCC8 +:103EA000604700BF9573010001B40248844601BC1D +:103EB000604700BF8914010001B40248844601BC78 +:103EC000604700BFE9D4000001B40248844601BC49 +:103ED000604700BF21A9000001B40248844601BC2C +:103EE000604700BFCD4C010001B40248844601BCCC +:103EF000604700BFC115010001B40248844601BCFF +:103F0000604700BF8D82000001B40248844601BCB6 +:103F1000604700BFCD0C010001B40248844601BCDB +:103F2000604700BFDD0C010001B40248844601BCBB +:103F3000604700BFA9D8000001B40248844601BC14 +:103F4000604700BF85C1000001B40248844601BC3F +:103F5000604700BFED6B010001B40248844601BC1C +:103F6000604700BF8B52010001B40248844601BC87 +:103F7000604700BFB352010001B40248844601BC4F +:103F8000604700BF75A9000001B40248844601BC27 +:103F9000604700BF19FA000001B40248844601BC22 +:103FA000604700BF6D0B010001B40248844601BCAC +:103FB000604700BF0134010001B40248844601BCDF +:103FC000604700BFC166010001B40248844601BCDD +:103FD000604700BFC56D010001B40248844601BCC2 +:103FE000604700BF0534010001B40248844601BCAB +:103FF000604700BFBD0B010001B40248844601BC0C +:10400000604700BFADAE000001B40248844601BC69 +:10401000604700BF9D6A000001B40248844601BCAD +:10402000604700BF2D6C010001B40248844601BC0A +:10403000604700BF6DF6000001B40248844601BC31 +:10404000604700BF496D010001B40248844601BCCD +:10405000604700BF8552010001B40248844601BC9C +:08406000604700BF5D9E0011E6 +:10406800020000008ABA001101000000B8B800116F +:104078000200000086BA001101000000A840FF1FDE +:1040880002000000C0B8001101000000B061FF1F6D +:104098000200000084BA0011030000002461FF1F21 +:1040A80012000000020000008ABA0011010000009E +:1040B80000B900110200000086BA001101000000DA +:1040C800FDB80011020000000AB900110300000049 +:1040D8005F61FF1F0200000084BA001103000000A6 +:1040E8007461FF1F0200000086BA00110100000081 +:1040F800FCB800110200000008B90011030000001C +:104108003561FF1F0200000084BA0011030000009F +:104118005661FF1F020000008ABA0011010000006A +:1041280044B900110200000086BA00110100000025 +:10413800F141FF1F0200000056B900110100000004 +:104148003BB900110200000086BA0011010000000E +:10415800F041FF1F0200000054B9001101000000E7 +:104168007C61FF1F0200000086BA001101000000F8 +:10417800EF41FF1F0200000052B9001101000000CA +:104188002BB900110200000086BA001101000000DE +:10419800EE41FF1F0200000050B9001101000000AD +:1041A80026B900110200000086BA001101000000C3 +:1041B800ED41FF1F020000004EB900110100000090 +:1041C80021B900110200000086BA001101000000A8 +:1041D800EC41FF1F020000004CB900110100000073 +:1041E8001CB90011020202020202000000000000D5 +:1041F80016150000214B0011E54A001198B900116D +:1042080090011D0018001800FFFF070102030405B4 +:104218000602010600000000000000000000000087 +:104228000000000000000000000000000000000086 +:1042380003000000020000008ABA0011010000001B +:10424800B8B900110200000086BA00110100000090 +:10425800AC42FF1F02000000C2B9001101000000BB +:10426800AA61FF1F0200000084BA001103000000C9 +:104278001464FF1F0200000086BA0011010000004C +:10428800AC42FF1F02000000C0B90011010000008D +:10429800AC61FF1F0200000084BA00110300000097 +:1042A8000C64FF1F12000000000100000000011153 +:1042B800FFFF0000504859360000000000000000D1 +:1042C8000B000500F0000000B400002800280028BA +:1042D8003075A000A000A000A00000080008E001C0 +:1042E800F000100010001000100010001000500026 +:1042F8005000500010001000D0070000000000001F +:104308000F0001000500307507001000010081FF53 +:1043180000000000FF000000457000114D6E001104 +:10432800DD6B0011FFFF0100FF000000619A001122 +:10433800DD970011F5960011000000000000000054 +:1043480000000800040000003B0001085902E001D9 +:1043580088212800FF000000020000008ABA00112E +:104368000100000050BB00110200000086BA0011D5 +:1043780001000000DD43FF1F0200000082BA0011A7 +:1043880001000000EC67FF1F0200000086BA001160 +:1043980001000000DC43FF1F0200000080BA00118A +:1043A80001000000DA43FF1F0200000086BA001176 +:1043B80001000000D843FF1F020000007EBA001170 +:1043C80001000000D043FF1F180018001D009001D5 +:1043D8000200000302020000020000008ABA001175 +:1043E8000100000064BB00110200000086BA001141 +:1043F800010000002044FF1F020000007CBA0011E9 +:1044080000000000000000000200000084BA001153 +:0A441800030000000C68FF1F20FFE6 +:040000051FFF184180 +:00000001FF diff --git a/bin/BOOT_TH05D_v15.hex b/bin/BOOT_TH05D_v15.hex new file mode 100644 index 0000000..448bf90 --- /dev/null +++ b/bin/BOOT_TH05D_v15.hex @@ -0,0 +1,3074 @@ +:020000041100E9 +:10300000002373B52B4D2C4C28006361022601F080 +:103010007FF94021FE2221742800284B009601F000 +:10302000C9F9002836D1217CFF222800244B0096C4 +:1030300001F0C0F900282DD1224BA2899A4226D155 +:10304000E389214A93420DD1204B6361204B2268D2 +:10305000002A03D1002B01D043CB43C4280001F048 +:1030600095F973BD1B4A934201D00023EFE71A4B39 +:103070001A4A1B68934206D9C02304222800217CE7 +:103080009B0001F00DFA114B6361154BDFE7002344 +:103090002374EAE7CC233821AC2228009B01217459 +:1030A00001F0FEF90028F2D10E4B63610E4BE38173 +:1030B0000E4BCCE7F441FF1FA061FF1FAC61FF1F67 +:1030C000AE61FF1F59590000830500003D4100110A +:1030D00088BD001182150000C461FF1F8713000026 +:1030E00094BD0011F5410011AAAAFFFF7CBD00119B +:1030F000F7B5164B0192C318021D002000938823D8 +:103100005B05D3181B685C1C1AD09CB2402C18D8E5 +:103110008D781E0CAC466746CD782D023D43AE42FD +:1031200006D1019800280ED110000C70240A4C70B2 +:1031300003249BB20733A343D218009B9A42DED3E9 +:10314000FEBD4432F9E71000FAE7C046FC0F00006C +:10315000802213B503000324019189B25201073183 +:103160009B18A14304305A1A88235B05C3181B68B7 +:10317000591C03D190429241104016BD99B240298A +:1031800007D80B000733A343C0189042ECD30020AC +:10319000F3E74430F9E7134B134A1B68126810B584 +:1031A000FA24934201D81A00F824104BE4021B6859 +:1031B0009A4210D813000E4A12689A420ED3013375 +:1031C00007D1F823DB029C4203D10A49054808F0E5 +:1031D00057FD200010BDFC24E402ECE7FE24E402CD +:1031E000F7E7C04600C0071100D0071100E0071143 +:1031F00000F00711FFFFFF7FF0B59BB015000490B2 +:103200000391402A00D9A0E006AB59801A80FFF74D +:10321000C2FF0400042816D9002206A9FFF768FFA0 +:10322000052810D906AB1B88AB420CD1002D07D066 +:10323000514B2A000499C01808F0BAFB002802D1AB +:1032400001201BB0F0BD06AB1D8020000699FFF7E2 +:103250007FFF041E7BD1069B0793FFF79CFF802313 +:103260005B01C618802307001B039E4201D3F8268A +:10327000F60288235B05F31801931B68013302D023 +:10328000019808F0CDFB3D49019808F0F9FC3B1D81 +:103290000293331D05938822029B52059B181B68DD +:1032A00008935A1C3CD044219AB20091402A04D879 +:1032B0000320D11D814389B2009103991B0C8B42DD +:1032C00024D0402A22D80122300008A9FFF710FF9D +:1032D000021E1BD1380008A9FFF70AFF04000428CA +:1032E00031D9009A059B9B1880225201B218934253 +:1032F00040D288235B05C118009A09A808F010FC89 +:103300001D4B009A09A9F01808F042FC009A029B94 +:103310009446634402931A4B029AFB189A42BAD31A +:1033200088235B05FC1821680198013908F0A8FC86 +:10333000200008F075FB039A07AB5A80300007990C +:10334000FFF706FF0400002C03D1002079E70428D2 +:10335000FBD988235B05E018069908F091FC03234C +:10336000EA1C9A4300D16BE7034B0499E01808F07C +:103370000FFC65E70424ECE704000011FFFFFF7F6A +:10338000F80F0000F7B505001400402A21D80027E7 +:1033900001AE71803780FFF7FEFE042816D93A008F +:1033A0003100FFF7A5FE042810D93688BC420BD0A7 +:1033B000BD4209D0221CB44200D9321C064B92B245 +:1033C000C118280008F0ACFB30B2FEBDC04300B20B +:1033D000FBE703204042F8E70400001137B5042260 +:1033E00004000D0001A81649FFF7CCFF02000428D5 +:1033F0000BD1019BA34208D3AB4204D0104901A8D2 +:103400000195FFF7F9FE01203EBD0E4C2368200018 +:10341000019308F005FB019920000139019108F0A2 +:103420002FFC80235B01E418074B9C42EED1042261 +:10343000034901A80195FFF7DFFE0020E4E7C0463D +:103440005555000000C007110000081130B589B0C3 +:1034500008F0C6F910226946254808F0B9FA254B4C +:10346000009A9A420ED1019B029A0F2B33D8002169 +:1034700001240698013B08D2002900D00292029B49 +:10348000013331D10023029325E0551CF2D1020013 +:103490002100EFE710341022200004A908F098FA68 +:1034A000029B013301D1069B0293882304995B059B +:1034B000C918059B06981A03120B049105928142C4 +:1034C00003D02B4201D108F02BFB019B013B019360 +:1034D000019B002BDED1029B002B03D004930498A8 +:1034E0004168084709B030BDE025014C2D03EFE7E6 +:1034F00000000111504859368022F8B5964C974B80 +:10350000D200002120001C6008F042FA2300944AF7 +:1035100088331A60934B1A786A23002A00D011333B +:10352000E3620A232365904B37221B780820A363AC +:103530008E4B2118E361102323628D4B3B25636181 +:10354000C823DB00A36123008C331A602823013ACF +:10355000E26320646364CA67043A211DCA672100DC +:10356000BC310D602100C03108602100C4310B6006 +:1035700021000635CC310D602100083DC8310D60B9 +:103580002100D0310A602200D43210602200D832EB +:10359000136022000227E032210017604222DC3152 +:1035A0000A6021001B3DE4310D602100E831086014 +:1035B0002100EC310B6023000521F4331960230056 +:1035C000F0331A602300183290331A6023009433CA +:1035D000186023001E3A98331A60AF23DB00236083 +:1035E000644BFA262363644B644DE360644BF03113 +:1035F000A3642300FF31FC33B600A16021611E608B +:10360000A5627325E5656D3D6565A56596255D4AF1 +:10361000AD00E264666258606766A566002709250A +:10362000A767E566584F594D606720002567E26738 +:103630003A6015279C30676007001A203860200028 +:10364000A0300700212038602000A83007004C4837 +:1036500038602000F830066026006427A436376002 +:1036600026005F3FAC3637602600033FB036376038 +:103670002600C637B436376026000027B8363760D4 +:1036800038269E60424E96205E64424E5A66DE6147 +:10369000414E9A645E62F53EFF3E9E621E269A6728 +:1036A000354A8000DE661F675F67DD651D6618624C +:1036B000DA67BE23394A5B00E250394BD8382350D1 +:1036C00004302250C4225200A350C623E4205B00E1 +:1036D000E1500433334AE1503349344BD16034492B +:1036E000800019503349E938FF3819503249043005 +:1036F000195032493248D16132491163324951631C +:103700001900F4310860CE20304940001160304982 +:10371000195019002F48F83108602F49D1658221CE +:103720002E4A89005A501A002D490832D1671A00D2 +:103730002C49B432116088212B4A89005A501A0052 +:103740002A49883211602A4ADA6408F059FA0120BD +:1037500007F0A6FFF8BDC0460004FF1F4464FF1F2A +:10376000206FFF1F3444FF1F4A0AFF1F3A07000063 +:1037700080C3C9019A020000DC0500006A1800003D +:1037800050C3000088130000F009FF1F204E000006 +:103790006509FF1F68100000C409000040420F00C7 +:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 +:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 +:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 +:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 +:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 +:1037F000851DFF1FF0B502250124604B91B01D709F +:1038000002935F4B5F4E1C705F4F03933368002140 +:103810002800FB7006F020FE280006F017FD0023AC +:10382000984205D0FA78552A02D0332A00D098E081 +:103830003360042006F078FF08F032F8FFF75CFEF2 +:1038400008F04EF81F2201240021504B10AD1A70D1 +:103850004F4B1C704F4B19704F4B19689143163AE0 +:103860000A431A60602219689143403A0A431A6079 +:1038700008F00EFA08F004F9C120FF21474B800040 +:103880001A588A431A50C522920098588843BF3963 +:10389000014399509858424908408021C901014389 +:1038A000802099509958C0050902090A014399508E +:1038B00080213C48490108F05BF8032322003A4983 +:1038C00001940093394807F0BBFE2C22384905A823 +:1038D00008F026F905AC61782078023406F0D6FCB1 +:1038E000A542F8D1334C344B226803201A40A02360 +:1038F000DB0213432360802322689B04134323606D +:1039000022682E4B1A4080239B03134323602C4ACA +:103910002C4B934200D8012007F0AAFE07F018FFB5 +:1039200080232268DB0413432360029B187807F08E +:10393000AFFE039B1878C0B207F0F2FE07F0C8FF95 +:103940002149042007F074FE06F0BAFE00F0ACF83E +:1039500000F0FCFD00F0A4FE00F01EFA002011B003 +:10396000F0BD00932100184A042008F0F1F88023EC +:10397000DB059C62FFF76AFD5BE7C0464A0AFF1F52 +:103980003444FF1F34F00040D061FF1F480AFF1F7E +:10399000490AFF1F680AFF1FBCF0004000E100E079 +:1039A000FF00FFFF3844FF1FBC56FF1F3854FF1FA6 +:1039B000A0BC001114F00040FF7FF8FFFFFF9FFF45 +:1039C0000080FF1F206FFF1F3B00010870B500251E +:1039D0002549264A26484D6308CA1B051B0DED18CC +:1039E0008242F9D100268022224B92058B63092165 +:1039F000214B224C1E62224B1120DA67214BDA68E0 +:103A00008A43DA609A6820490A409A60266007F083 +:103A100027FF112008F024F9636C1C4A13406364EB +:103A20001B4C1C4A6C43200C0400642390420AD8AF +:103A3000FA223300D200904205D9174B0A21C01850 +:103A400007F09EFEC3B2154A11201372D48007F00E +:103A50008FFE134B1B78002B04D1124B10211878CA +:103A600007F0D6FF70BDC04600000540880705403E +:103A700000080540FF01000000F000400038004051 +:103A800004E100E03CF00040FFDFFFFFFFFDFFFF2F +:103A9000AE060000B70B000030F8FFFFB861FF1F53 +:103AA000F263FF1FF061FF1F002210B5110011200B +:103AB00007F076FF10BD0000F8B500230925374F49 +:103AC000374C3B62E3681120AB43E36008F0C8F871 +:103AD000112007F0C5FE112008F08AF84023226863 +:103AE00080261343236080236268DB0213436360F4 +:103AF000A3682C4A3343A360A36828001340A36043 +:103B00008023A2689B0113431022A360236C02212F +:103B100093432364236C0F3A1343236480235B0194 +:103B20003B62226B204B1A402263626B1A40626335 +:103B3000A26B1A40A263E26B1340E363E3681B4A83 +:103B40001340E36006F0A2FB2800012106F0B2FC5E +:103B50008023174A9B00516C11200B43536407F0DC +:103B60006FFEFD21134B144A89005A508023C72051 +:103B7000E26B5B031343E363E36880001D430F4B79 +:103B8000E56019580E4A1140802212020A431A5069 +:103B9000802292051A600B4B5E63F8BD00F0004076 +:103BA0003CF00040FFFFDFFFEFFFEFFFFFFF7FFF75 +:103BB000003800400000FF1FCD39001100E100E097 +:103BC000FF00FFFF0000054030B503A804880B206C +:103BD000002C0ED14968074D087849780902014345 +:103BE0000A20A94205D1012120001980024B1B7A2D +:103BF000137030BD192A0000B861FF1FF7B515001A +:103C000008AA16884A680F4F147852781202224385 +:103C10000A24BA4214D10122DBB2019200962A0092 +:103C200007F09EFC041E0BD1074B1B68002B07D02E +:103C300068782A7800021043424250410130984788 +:103C40002000FEBD022900003C61FF1F30B50125A8 +:103C500003790400BFB02B4211D00A49408806F016 +:103C6000EBFF28420BD0084B01A95B8D4D800B80E8 +:103C7000064B00221B7A60880B7104F0CFF83FB02E +:103C800030BDC0463461FF1F6840FF1FB861FF1F91 +:103C900010B50549054806F085FF0421044A05488A +:103CA00006F042FF10BDC0463461FF1FFFFF000059 +:103CB000CCBC00116840FF1F10B5024804F030FF73 +:103CC00010BDC0464D3C0011012303700B4B1A7A06 +:103CD0004270022282709A78C270DA7802710322EE +:103CE00042711A7982715A79C2710C2202729A79E0 +:103CF0004272DB7983720B207047C046B861FF1FA8 +:103D0000022310B50370013B4370053383701033F9 +:103D10000371443B43712A3383714433C3710023DD +:103D20000372064B04001B8843720A30FFF7CCFF76 +:103D3000831D0A30C0B2E37010BDC046B861FF1FDA +:103D400010B5142007F09CFD124B142200211860BE +:103D500007F01EFE002007F073FF012007F078FC3B +:103D6000022007F005FF032004F07EF9042006F08E +:103D700093F9052003F0BCFB062004F089F8072026 +:103D800001F050FA082006F0AFFE092001F038F8E3 +:103D900010BDC0464061FF1F07F092FD012007F0F3 +:103DA0004FFE07F085FC0000094B10B50400984257 +:103DB00005D0012904D12000064906F0F3FE10BD0C +:103DC0000229FCD1013904F069FE0028F3D0F6E79E +:103DD000FEFF00006661FF1F70B50D7A100004AA97 +:103DE0002C00168810221440154220D1002E20D11C +:103DF0000A78022A18D14A68517815780E4A0902C1 +:103E00002943914205D00D4A914209D01C800A24D1 +:103E100004E014220A491A8007F082FE200070BDD7 +:103E20000C2208491A80F7E71C800124F6E70824D1 +:103E3000F4E70B24F2E7C046F3FF0000F4FF0000B4 +:103E4000C042FF1FACBD001110B50400074908486F +:103E500006F0A8FE074804F0A3FD0020E40704D5FF +:103E60000721054A054806F05FFE10BD6661FF1F89 +:103E7000FFFF0000A93D001110BD0011AC40FF1F65 +:103E800000B50C4BBFB01A780B4902A800F0C2FC79 +:103E90006B4680B2D880002809D06A46074B01A93A +:103EA0001B889380064B0022188803F0B7FF3FB0B1 +:103EB00000BDC0464461FF1F4561FF1F0641FF1F53 +:103EC0001042FF1F00B50C4BBFB01A780B4902A877 +:103ED00001F0EAFE6B4680B2D880002809D06A461D +:103EE000074B01A95B8D9380064B0022188803F0D5 +:103EF00095FF3FB000BDC0466E61FF1F6F61FF1FA1 +:103F0000AC40FF1F1042FF1FF7B50E00377A1C00B0 +:103F100008AB11003D001A8820231D401F423CD1F0 +:103F20003378022B3BD173681F785B781B023B43CD +:103F30001E4FBB4208D01E4FBB4214D01D4DAB429A +:103F400021D00A252800FEBD002A2AD1142C2AD807 +:103F50002200F06807F0E4FD174B1C70012CF1D92A +:103F6000FFF7B0FFEEE7002A1BD1202C1BD8220060 +:103F7000F06807F0D5FD114B04211C70104B187828 +:103F800007F046FDDEE7E3B20124009201940A0047 +:103F9000310007F0E5FA0500D4E70825D2E701254E +:103FA000D0E70B25CEE70D25CCE7C046F3FF000098 +:103FB000F4FF0000022900006E61FF1F4461FF1F33 +:103FC000F061FF1F332310B5040003700A22074974 +:103FD000013007F0A5FD064B0F201B681A0AE3729B +:103FE00022731A0C1B0E6273A37310BDB861FF1FFE +:103FF000E061FF1F30B5012503790400BFB02B42FB +:1040000013D00B49408806F017FE28420DD06A46AF +:10401000084B02A81B889380FFF7D4FF6B46D8801B +:104020000022608801A903F0F9FE3FB030BDC04610 +:104030006661FF1F0641FF1F10B5024804F070FDC6 +:1040400010BDC046F53F001170B5160004AA1488D3 +:1040500005AA15784A685078117800022A4A084360 +:10406000801805284BD807F09BFD03131E29343F09 +:104070000720042C0BD80522121BAA4200D92A00C3 +:1040800022491A803000091907F04AFD002070BD4E +:104090000720112CFBD81222121BAA4200D92A0099 +:1040A0001B491A80EEE707200E2CF0D80F22121BB6 +:1040B000AA4200D92A0017491A80E3E70720032CF7 +:1040C000E5D80422121BAA4200D92A0012491A80FC +:1040D000D8E70720032CDAD80422121BAA4200D901 +:1040E0002A000E491A80CDE70720032CCFD80422DE +:1040F000121BAA4200D92A0009491A80C2E70022ED +:104100000A201A80C3E7C046DCD5FFFF5BBD001163 +:104110008C61FF1F4BBD001146BD001141BD001158 +:104120003CBD001110B50D21024A034806F0FCFC0D +:1041300010BDC04630BD00111C41FF1FF0B500246A +:10414000274E85B03000B47100F0E2F8254D264BC3 +:10415000EA89297C9A422FD10423300003AA00F077 +:1041600057F90400300000F011F90123B371002C5D +:1041700034D16B4699892B68C9BA4B4329891B4AAC +:104180001B145B1853806B46D9896B6849BA89B296 +:104190004B4369891B0C5B181548191C1BB28342E1 +:1041A00000DD011C0B0400D5002113889180013330 +:1041B0001380200005B0F0BD0227220003AB3000C1 +:1041C000009700F0F7F80E230400297C012230004C +:1041D00000976B4400F0EEF80443C3E71C00E8E7E7 +:1041E000F441FF1FA061FF1F83050000B861FF1F9E +:1041F0000F27000073B5234E300000F089F8224DE0 +:1042000007236A463000297C00F002F904003000E0 +:10421000002C33D16B461B787F2B2FD800F0B6F8DB +:104220006B46D878F02302041B031A406B469B8828 +:1042300016495BBA9BB21A432B68000953432A897B +:104240001B0C9B184B806B465A789B7812031B0102 +:104250001A436B68024353436A891B0C9B180C4832 +:104260001A1C1BB2834200DD021C130400D500227D +:104270000B888A8001330B80200076BD00F086F821 +:104280000124F9E7F441FF1FA061FF1FB861FF1F80 +:104290000F27000070B5114C237C002B0FD0382B5A +:1042A0000ED10F4D280000F033F8CC23AC222800AB +:1042B000217C9B0100F0F4F8280000F067F870BD45 +:1042C000084BE2899A42FAD1054D280000F020F807 +:1042D00000222800217C00F0C5F8EDE7A061FF1F57 +:1042E000F441FF1F8305000010B5084B1A7C002A1B +:1042F00009D05B69002B06D09847041E01D0FEF759 +:104300007FFE200010BD0124F9E7C046A061FF1F19 +:1043100070B5C17905000C00631E9C411A4BE40284 +:10432000E41849000460C9B2007906F0F9F8E979A7 +:10433000687949000131C9B206F0F2F8E87909302C +:10434000C0B207F055FC0023E36661332360AA790D +:104350005B3B002A0ED022689A43023B1343236042 +:104360000A23E3610733236200232363A36301333A +:10437000E36370BD22689A430223134323604623FC +:1043800063610633A361EFE70050004070B500257C +:1043900004000368DD66C0790930C0B207F060FC34 +:1043A0002900207906F058F82900607906F054F8C1 +:1043B00070BD0000F8B51E0006AB1D780023046830 +:1043C0001700E366616007F00BFA01238022E366C1 +:1043D0002B0027615200013B08D207F0C1FB0820E7 +:1043E0000A4A1168002D03D12800F8BD2261F2E7C6 +:1043F000236F034203D02369013D337001361368F4 +:104400005B1A032BEED90125EEE7C0466008FF1FBB +:1044100070B51C00002305681600EB66696007F0A4 +:10442000DFF901238022EB6623005200013B08D212 +:1044300007F096FB08200A4A1168002C03D12000DF +:1044400070BD2A61F2E72B6F034203D02B69013C58 +:104450003370013613685B1A032BEED90124EEE7A3 +:104460006008FF1F002370B504681500E3666160F3 +:1044700007F0B6F90123E366256107F071FB8020A0 +:10448000064A80001168636B034205D113685B1A0A +:10449000032BF8D9012070BD0020FCE76008FF1F46 +:1044A00070B51D00002304681600E366616007F024 +:1044B00097F90123E36626610F33626B1A42FCD041 +:1044C0002B0A23611023626B1A42FCD0EDB22561E6 +:1044D00007F046FB8020074A80001168636B0342A7 +:1044E00005D113685B1A032BF8D9012070BD002099 +:1044F000FCE7C0466008FF1F70B51E00002305687A +:104500001400EB66696007F06BF90123A619EB66EE +:104510000F33B4420ED107F023FB80200A4A8000FB +:1045200011686B6B03420CD113685B1A032BF8D92B +:10453000012070BD21782961696B1942FCD00134DA +:10454000E7E70020F5E7C0466008FF1F10B5084CFC +:10455000E368002B08D18022064B52021B689B188F +:104560006360054B1B68236007F042F9A06010BD33 +:10457000E061FF1FC8F00040CCF0004070B5184A61 +:10458000936A916A9942FBD116498A689A421FD36D +:104590009A1A8B60144B0126186893B2D202D20E7D +:1045A0004343424300204C681B0A1B1912029B180C +:1045B0000E4C0A684B60551CA3420CD8002801D051 +:1045C0004B600A600A4A136008680A4B186070BDA5 +:1045D000581E821ADDE7084A30009B182A00EAE7D5 +:1045E00000F00040E061FF1F140AFF1F40420F006F +:1045F000C8F00040CCF00040C0BDF0FF70B51F4CCB +:1046000023793F2B01D93F2323711D4B22791A7047 +:104610001878C0B207F0BCF818231A491A4A0B8060 +:104620001A4913800B805380A379194980200B808D +:104630000C21938001334B43164D191C000183421A +:1046400000D9011C2980D1806379002B11D101335D +:104650006371237A012B01D8022323726279237AB2 +:104660000D4853430A21584307F08AF80B4D286040 +:1046700070BDA02BEDD9A023EAE7C046D461FF1F8F +:10468000480AFF1F0E42FF1FE043FF1F0C42FF1F9F +:104690000A42FF1F0842FF1F71020000C461FF1F92 +:1046A000F8B515210020FEF799FE114C011E114DA1 +:1046B00009D10C22104BC1CBC1C4280007F068F906 +:1046C000FFF79CFFF8BD0C2220000C49FEF75AFEB4 +:1046D0000C2802D0084B43CB43C40C2228000849C5 +:1046E000FEF750FE0C28EBD00C220021E5E7C04677 +:1046F000D461FF1FA061FF1FA0BD0011FC0C0000D2 +:10470000F50C0000F0B51D4C8022A5440400882063 +:1047100069465201400506F0E3FF902212016A4407 +:104720001300200032C832C316C816C38023144CAD +:10473000144FA6689B033343A3603B6007F040FA25 +:104740008823A0685B05C01807F06AF90025882354 +:1047500029008022A0685B05C018401969445200F6 +:1047600007F016FA80230135FF355B019D42EED13B +:10477000A6603E60044B9D44F0BDC046FCEFFFFFC9 +:104780005043FF1F9808FF1F04100000F0B50400FD +:1047900087B0002825D0684607F02AF91B4C02286C +:1047A00006D106226946200007F002F9002816D03B +:1047B0006946002301250F262F00E25C0133100912 +:1047C0001030874038002F00324097403A000243B3 +:1047D0004A610439062BEFD16846FFF793FF07B013 +:1047E000F0BD182269460A4806F07AFF6A46A3001F +:1047F000D358013305D01822FF21684607F0C8F8C6 +:10480000EAE70134062CF1D1E9E7C0466509FF1F4C +:1048100000090011F0B5002504000E0085B0AA4281 +:1048200000D186E04B1C087801934B788978377962 +:1048300009021943F3783F061B040B431F430397F8 +:1048400020706570252800D196E033D8112813D840 +:1048500007F07EF869002801280128012801AA0034 +:10486000B800B100280128012801280128012801E9 +:104870002801280102012201232800D1DBE0DB28E6 +:1048800000D031E1042A00D8ACE01025052A05D07B +:10489000551F2A003800711D07F042F9052231002A +:1048A000200007F03DF92A003900601D07F038F9B3 +:1048B00005353EE0562859D010D8332800D19DE068 +:1048C000552839D02628DAD19D4B2900132218000B +:1048D0001D0007F05DF8FEF793FB5CE0712800D146 +:1048E00077E0722800D180E0602800D18BE0DC28DE +:1048F000C5D1022A00D875E07378BFB26370B3786F +:10490000A370032A05D0033A390092B2F01CFEF7D7 +:1049100073FC10223900E01CFEF734FDC51C002892 +:1049200007DA60705CE00C222000864907F0F8F896 +:104930000C25280005B0F0BD013A834D0C2A13D890 +:10494000002A0AD02800019907F0EAF8FFF756FE7E +:104950000C2228007D49FEF74FFC29000C22601C28 +:1049600007F0DEF80D25E4E70C22EBE7764D784BF7 +:104970002A0043CB43C2E9E7013A714D0C2A11D812 +:10498000002A08D00199280007F0CAF80C22280054 +:104990007049FEF731FC29001322601C07F0C0F8B3 +:1049A0001425C6E70C22EDE705226B49601C07F0D1 +:1049B000B7F80625BDE712226849601C07F0B0F879 +:1049C0001325B6E708226649601C07F0A9F80925F7 +:1049D000AFE77178F02905D8624B188801F0C0FD67 +:1049E0000225A6E7FF236370FAE75F4B012A03D095 +:1049F00072789A706270F3E79B78F4E72000FFF713 +:104A0000E1FA050095E7013A574B584D082A0DD8B1 +:104A1000002A0DD0012128005970019907F080F873 +:104A200001F074F808222900601CCEE70822F1E7A3 +:104A300000225A70F6E7042A04D94D4D2F6006F083 +:104A4000D7FEA860FFF79AFD0422039003A9601C1B +:104A500007F066F805256CE7464D062A15D90622AB +:104A60002800019906F0A4FF00280ED00622019923 +:104A7000280007F055F806223F492800FEF7BCFB46 +:104A80000123394A91780B43937029000622601C58 +:104A900007F046F807254CE7012AA3D07078FFF706 +:104AA00075FE9DE7012800D0E9E6931E334F132BD6 +:104AB00004D87378002B09D100F014F9304B390079 +:104AC0001D78601C6A1E07F02BF832E7551E2A007D +:104AD0000199380007F024F82A49AAB23800FEF7F5 +:104AE0008BFB00F037F9E9E7DA281DD1042A00D85A +:104AF00078E7082A15D9B37972791B021343F27942 +:104B000012041A43337A1B0613433B603B680522A9 +:104B100031002000039307F003F80422601D03A96D +:104B200053E7FE236370F1E7DE2800D05AE7511EF9 +:104B3000012A01D10025FCE6019800F0CDFFF9E73C +:104B4000A061FF1FACBD0011D461FF1FFC0C000071 +:104B5000A0BD0011F50C0000AC61FF1F8C61FF1FB0 +:104B60005443FF1F1042FF1FD061FF1FAD42FF1FC4 +:104B7000E061FF1F6509FF1FADAC0000D163FF1F9F +:104B8000CF63FF1FAEDE000070477047020010B514 +:104B9000094B0A32094C92B2DA815A829881188202 +:104BA000207802F043FB0422054B012120781A7083 +:104BB00006F02EFF10BDC046DE42FF1F1A64FF1F25 +:104BC0001964FF1F013870B5042809D806F0E8FF02 +:104BD000030928081200234B0221187806F018FF59 +:104BE00070BD204B0821187807F012F800221E4BE8 +:104BF0001A72F5E7802200241B4B1A4D52001A81CD +:104C000008211A682878DC7206F07AFD21002878DD +:104C100006F0DEFF012000F065FE00F077FFDFE721 +:104C2000104B0821187806F0F3FF1048FFF768F8DA +:104C30000F4B104A9B79002093800F4A13808022EB +:104C4000094B5200D8721A8100F04CFE00F05EFF52 +:104C50000A4B9B78002BC3D0094A136006F048FE2C +:104C6000BEE7C046F061FF1FC461FF1F1942FF1F6E +:104C7000D461FF1FE043FF1F0A42FF1FD061FF1FE7 +:104C800034F0004010B501290BD1022809D1054BA1 +:104C90001B78002B05D02622034B04485A72FFF7DD +:104CA00075FF10BDF263FF1FC461FF1FC409000040 +:104CB0000300F0B50A4D8E18B14202D1520080189F +:104CC000F0BD0C782F6824093C5D0F271C700C7810 +:104CD00001313C402F683C5D5C700233ECE7C0461C +:104CE0000442FF1F0E22124B10B51A700D23114CF7 +:104CF00011492370093A043B1048637006F010FF15 +:104D00002D2301220E490F48E371FFF7D1FF012245 +:104D10000D49FFF7CDFF01220C49FFF7C9FF030042 +:104D200000200B4902001870FEF766FA10BDC0465D +:104D3000EE63FF1FCF63FF1F5BBD0011D163FF1F39 +:104D40006709FF1FD763FF1F6609FF1F6509FF1F64 +:104D5000AEDE000070B5124C142220001149FEF79F +:104D600011FB431E104D132B17D8AB78002B14D01A +:104D7000431C2B7009236B700023001903702878E3 +:104D800029000130C0B206F0D3FE29782200013993 +:104D9000C9B2002005F0E6FD70BDFFF7A3FFEEE706 +:104DA000D163FF1FAEDE0000CF63FF1F10B5114BB4 +:104DB0001A781870002A0ED000280BD10E4B1A78E2 +:104DC000062A07D85423D340DB0703D50B4B1878AA +:104DD00002F02CFA10BD0028FCD0074B1B78012BE9 +:104DE00002D0033B022BF5D8044B0121187806F0C2 +:104DF0000FFEEFE7F263FF1F1964FF1F1A64FF1F26 +:104E000070B54A4E4A4A4B493070022005F036FCD4 +:104E100000F0E6FEFEF7F4F806F042FE03224649F3 +:104E20004648FFF745FF2D24030004221C70444927 +:104E30000130FFF73DFF30230470424D424C437078 +:104E400083702E3B062220004049EB87FEF79AFA3A +:104E5000062813D0200006F0CBFD022809D003213C +:104E6000200006F035FE8D23E3706E3B237119336D +:104E70006371062220003549FEF7BEF9344B1B68EA +:104E8000FC335C64FFF766FF0020FFF78FFF314CB7 +:104E9000314A0121314B1278207802F089F9304AE9 +:104EA000304B12780021207802F082F901222E4B3B +:104EB0001A702E4BDB78552B31D12D4B3B325A7269 +:104EC0002C4B2D4AAB81EA812B826A8220213078DB +:104ED00006F0DEFC0120404205F090FD012040423A +:104EE00005F02CFEFFF71EF9FEF7D2FE00F0A4FC41 +:104EF00001204042FEF7A8FF012006F0D9FDF02076 +:104F000001F012FB0121307806F082FD307802F0CA +:104F1000E9FA1A4806F0ECFBFEF7CEFD70BD6422FC +:104F2000174B5B7953431A000A32CBE7F061FF1F3E +:104F3000894B0011854C00115443FF1F8C61FF1FEA +:104F4000AC61FF1FDE42FF1F6509FF1FADAC000013 +:104F50004464FF1F1A64FF1F3842FF1F1942FF1FDE +:104F6000EE63FF1FCF63FF1FC063FF1FD061FF1FF2 +:104F7000C461FF1FC4090000CE090000F261FF1FD9 +:104F8000D461FF1FF8B50A0020230D001A40194212 +:104F900057D0574B1B78002B50D0FFF7EFFA554BEB +:104FA000554C564E99686268737A8A1ADB039A42A6 +:104FB00002D36160FEF780FD327A217A531EDBB2A4 +:104FC000994205D1FFF766F9002000F0DBFD0FE004 +:104FD0009142F9D300232372FFF786F9012000F0F4 +:104FE000D1FD474F3800FEF78BFE390006F0F8FC84 +:104FF000637A002B1FD0013BDBB26372002B1AD106 +:10500000404BDB78552B01D106F072FCE37A002B84 +:105010000CD000233C4A3A4FE37213883800013326 +:105020001380FEF76DFE390006F0DAFC6423707918 +:105030005843FFF7ABFD237A0133237220206840E9 +:10504000F8BD0BB2002B0ADA304B187806F0E8FBFB +:10505000002801D006F00CFE80200002EFE70224B9 +:10506000214206D0244B01201A72FFF79FFE200038 +:10507000E5E70B071ED5FFF781FA1E4B1E491F4CB3 +:1050800098684A68637A821ADB039A4202D34860BE +:10509000FEF712FDFFF728F9FFF7FCF8012000F0FA +:1050A00071FD00F0E3FB2368DB0701D5FEF7C4FFC9 +:1050B0000820C4E71024214206D00D4B1B78002B9A +:1050C000D5D1FEF7F9FDD2E70124214207D01048DF +:1050D00000F06CF806F02CFB00F034FDC7E7042468 +:1050E000080020402142ABD0FEF7CAFEBFE7C04611 +:1050F000F263FF1FE061FF1FC461FF1FD461FF1F48 +:105100001942FF1FD061FF1FB861FF1FF061FF1F31 +:10511000FC41FF1FF0B51B4B1B4F1B883A88040056 +:105120001A4E1B4D85B09A420DD832889A420AD346 +:10513000184B1A882B889A4205D1174A174B1288A8 +:105140001B889A421BD0052001F044FA3B8802AA32 +:1051500013803388019053802B88114D93800F4B1F +:1051600002A91B88D3800F4B2A78188802F060FFB1 +:105170000D4B08212878019A1C7006F041FB05B000 +:10518000F0BDC046BE63FF1F0E42FF1F0C42FF1F53 +:105190000A42FF1FBC63FF1FBA63FF1F0842FF1FC5 +:1051A0001A64FF1F1042FF1FB863FF1F13B50C4B9B +:1051B0001C78002C11D1002801D00A4B18600A4A33 +:1051C0000A4B11780A4A10780A4A01920A4A009258 +:1051D000002205F0BFFA200016BD1124FBE7C046EF +:1051E0001964FF1FB463FF1F1864FF1F0864FF1FCB +:1051F0001A64FF1FF463FF1FF863FF1F10B5064B0F +:1052000012201B78052B06D1044B13221988044B5E +:10521000187801F0BBFB10BD1964FF1F1042FF1F7F +:105220001A64FF1F10B500240122114B524218705E +:10523000104B1C70104B1A8002F054F904220F4BD3 +:1052400021001A700E480C3206F01AFA10222100C2 +:105250000C4806F015FA07220B4B1C600B4B1C7018 +:105260000B4B1C700B4B1A700B4B1C7010BDC046C7 +:105270001A64FF1F1964FF1F1042FF1F1864FF1FED +:105280000864FF1FF863FF1FF463FF1FCE63FF1F57 +:10529000CD63FF1F1242FF1FCC63FF1FF8B5174CF1 +:1052A0000600257806A814240078052D23D1B41F04 +:1052B000134FA5B21824BD421DD88D1FADB2BD42FB +:1052C00019D8FA256D00AA4215D21D000D4F0A3DCE +:1052D000ADB2BD420FD80C4C26800C4C21800C493D +:1052E00000240A800B4A1380FFF714FF0A4B0421A5 +:1052F000187806F08DFC2000F8BDC0461964FF1F29 +:10530000790C0000750C00000E42FF1F0C42FF1FBD +:105310000A42FF1F0842FF1F1A64FF1FF0B50BB2BD +:105320000D0089B0002B00DB70E1A44E307806F050 +:1053300077FA041E50D00378A22B00D122E1D02BA3 +:105340001AD0912B45D143780E2B42D19C4B8288A9 +:105350009A423ED19B4A83681278052A39D10320AC +:1053600018567F2835D0984B1B68002B31D05B68CE +:10537000002B2ED098472CE08078072829D806F0FB +:105380000FFC0428183F3F74A8D86378002B0CD179 +:1053900001218C4B19708D4B1A78002A5BD08C4BF5 +:1053A000307801F005FF002855D00722854B1A7090 +:1053B00051E061780029F8D1E378002B11D0854ABB +:1053C000854B1278307801F0F3FE60706378002B23 +:1053D000EBD1200006F04CFC80200002684009B0B0 +:1053E000F0BD784B1B78022BF3D00121307806F00A +:1053F0000FFA0028EAD10121307806F009FBE5E731 +:105400006378002BD1D16F4F032807D13B78052B50 +:1054100002D101333B701EE00223FBE76F4B1A8879 +:105420006F4B0293002A0BD01B78002B03D0012175 +:10543000307806F0E5F93B78062B04D1013BE9E72B +:10544000029B1A70F7E7042B41D10121029B3078AF +:10545000197006F0DDFA5C4B1B68002BB9D01B6895 +:10546000002BB6D0574A107884E76378554F002B4D +:1054700027D10622211D5B4806F052FB62895A4B58 +:105480005A491A80A2895A4B1A80E3890B80052158 +:10549000397058490A80584A1380228A574B1A801B +:1054A000574B1B78012B09D11F2001F093F8FA22EA +:1054B000920042430421307806F0A2F90022484BC2 +:1054C00075E7312B00D070E70022454B1A7003239B +:1054D000A0E706220021434806F0D2F80023454AFF +:1054E00004211380444A30781380444A138006F024 +:1054F0008FFB0821307806F08BFBA379083B5A42DA +:105500005341304A03331370304B1B78002B06D0C5 +:10551000334B30781A78002A06D001F087FE01223A +:10552000314B52421A8096E70121197006F070FA49 +:10553000F5E70821307806F06BFB6378002B00D08C +:1055400047E72C4B2D4F0293E388029A04211380E6 +:10555000294B307803932389039A138063893B8016 +:1055600006F056F9002800D033E7264B1B68002BC5 +:1055700000D12EE7039902983A88098800881B68B1 +:10558000984726E74379132B00D022E70389012BA4 +:105590000AD11D4B1B78022B06D10821307806F06A +:1055A00037FBFFF72BFE14E7052001F013F8082165 +:1055B0000200307806F024F90BE7C0461A64FF1F9A +:1055C000051400001964FF1FB463FF1F3842FF1F5A +:1055D0001942FF1FEE63FF1FCF63FF1FF063FF1F22 +:1055E000F263FF1FC163FF1F1042FF1FC863FF1F4D +:1055F000CA63FF1FBE63FF1FBC63FF1FBA63FF1FA9 +:10560000C063FF1FB063FF1FB863FF1F8020C0018E +:10561000014200D0E2E6CB0731D5324B1B78002B9C +:105620001DD0314E05AC3378052B1AD1023B2370C7 +:105630002E4B21001B7823722D4B1B7863722D4B50 +:10564000187801F059FD002809D007202A4B307046 +:105650001B68002B03D01B68002B00D0984701204B +:10566000BCE60E20254B06221B7825492370254BCE +:105670001B78637002ABC01806F052FAD8E7022319 +:1056800008001840194209D0174B1B78052B03D18D +:105690001D4B188806F074F902209FE6042421426D +:1056A00003D0FFF737FD200098E6082308001840D4 +:1056B000194200D193E6154B1C78012C03D0022C23 +:1056C0000DD008208AE6124B124A134913481B8852 +:1056D0001288098800880094FFF7E0FDF1E7FFF7E2 +:1056E0008DFDEEE7F263FF1F1964FF1F1242FF1FDB +:1056F000CC63FF1F1A64FF1FB463FF1FCE63FF1F3D +:105700001342FF1FCD63FF1F1042FF1FB863FF1F2F +:105710000842FF1F0A42FF1F0C42FF1F0E42FF1FDD +:1057200010B502A804880B20002C10D14968087815 +:105730004978090201430C48814209D102211980AC +:105740000A4B59881170DB7800205BB2537010BD92 +:10575000074C0A20A142FAD102211980034B9988F3 +:1057600011705B79F0E7C0466E2A0000B861FF1F38 +:105770006F2A0000F7B5150008AA16884A680F4F6F +:1057800014785278120222430A24BA4214D1012218 +:10579000DBB2019200962A0005F0E2FE041E0BD156 +:1057A000074B1B68002B07D068782A78000210434B +:1057B00042425041013098472000FEBD02290000BE +:1057C0002C64FF1F30B5012503790400BFB02B42C4 +:1057D00025D01449408805F02FFA28420CD0124BEE +:1057E00001A95B8D00220B8002234B800F4B5B884D +:1057F0008B80608802F012FB0D49608805F01CFA6E +:10580000C0070CD50B4B01A91B8800220B8002237B +:105810004B80064B9B888B80608802F0FFFA3FB07C +:1058200030BDC0462464FF1F3C42FF1FB861FF1F0C +:105830001C64FF1F9642FF1F10B5074C074920004C +:1058400005F0B0F92000064905F0ACF90721054A3A +:10585000054805F069F910BDFFFF00002464FF1F33 +:105860001C64FF1FCCBD00113C42FF1F10B5024855 +:1058700003F056F910BDC046C5570011082110B5F8 +:105880000E240A4AC307DB170B405179A1430B438F +:1058900053710223184202D051790B4353710423F0 +:1058A000184202D051790B43537110BDAD42FF1F16 +:1058B0000A2110B50F240A4AC307DB170B401178E1 +:1058C000A1430B431370830703D5062311780B43C1 +:1058D0001370400703D5012311780B43137010BDDB +:1058E000AD42FF1F10B5054B102419780A00A243E2 +:1058F000002801D022000A431A7010BDAD42FF1FDC +:10590000662110B52024134BDA788A431979DA70AE +:10591000A14324190C431C71542812D9602001435F +:10592000197104210A43DA700222D9780A43DA7025 +:105930002022D9780A43DA704022D9780A43DA70F3 +:1059400007E04428EDD83428EED82428F0D81428CD +:10595000F2D810BDAD42FF1FF8B50E23384C05003C +:10596000627926791A4011339E43364B6271267153 +:10597000984204DD6E23E3716C3BA371F8BD324B9A +:10598000984203DA1A23E3711C33F6E700232F4908 +:10599000A371E37183B259182D4889B2814224D989 +:1059A000681D0A2100B205F0EBFE2A4B00B29D42B1 +:1059B00044DC05006421280005F0E2FE0A2100B263 +:1059C00006F09EF8244F09B2E2797B5C1343E37141 +:1059D0000A21280005F0D4FE0A2100B206F090F852 +:1059E0001D4F09B27B5CA2790EE001210A4362716E +:1059F000002D1CDA5B421DB20423A371A379632D31 +:105A0000D8DCFA22092DE3DC1343A3710A21280014 +:105A100006F076F80F22114F09B27B5C1A4016434C +:105A20001F2293436279267113436371A6E7FA2319 +:105A30009B009D42E2DB0123E371BBE70500FAE72F +:105A4000AD42FF1F1B4E00001DFCFFFFCB070000F7 +:105A5000960F00000A27000016BE001106BE0011B6 +:105A600070B51B4D04002B7900290DD08022134303 +:105A70002B71632C0BDD76236A7813436B70402304 +:105A8000AA781343AB7070BD7F221340F0E7230068 +:105A9000093306DA58236A7813436B70AA786C23AB +:105AA000EFE70C4E002C0ADA2023644224B26B701C +:105AB0000A21200006F024F809B2735CE2E7092C01 +:105AC000F6DD0A21200005F05BFE00B2335CEEE754 +:105AD000AD42FF1FF6BD0011F8B50A4F05003B7837 +:105AE0000E00002B0CD0084C2000FEF711FC3300F8 +:105AF0002A0020003978FEF7FFFC2000FEF746FC64 +:105B0000F8BDC0463964FF1FB842FF1F70B50A4E8A +:105B10000A4D08223100280005F04AFF002809D06C +:105B2000074C31000822280005F0FAFF0921200067 +:105B3000FFF7D2FF70BDC046AD42FF1F3164FF1FAB +:105B40003064FF1F102110B50D4B1A780A401A70EF +:105B5000DA7856310A40DA70602219791140223A17 +:105B6000DA71083A9A71AA325A71DF3A0A431A7105 +:105B700006225A7037329A70FFF7C8FF10BDC04630 +:105B8000AD42FF1F10B5002824D0134C0A21022378 +:105B9000E05E05F0F5FD00B2FFF7DEFE0423E05EF7 +:105BA000642105F0EDFD012100B2FFF759FF207AD5 +:105BB000FFF7A6FE0320FFF761FE0020FFF778FE47 +:105BC000064B1878053843425841C0B2FFF78AFEA9 +:105BD000FFF79CFF10BDC046B861FF1F1964FF1F8F +:105BE00070B500250A4C2000A571FEF791FB10232B +:105BF0003E212000074AFEF77FFCA84200D13E3537 +:105C0000054B20001D70FEF7C1FB0123A37170BD81 +:105C1000B842FF1FE6BD00113964FF1F0200F0B556 +:105C200001270A480A4E51188B1A002B00DCF0BDE0 +:105C3000082415784308684038404000805B013CE8 +:105C400058406D08002CF5D10132EDE7FFFF000050 +:105C500026BE0011F0B500250F269D4200DBF0BDE9 +:105C60004C5D070944403440A400A05801357840F9 +:105C7000F3E70000F0B589B06A460D000B000F276E +:105C8000110010351C780133260024093E4016709F +:105C900054700232AB42F5D12023024AFFF7DAFFFB +:105CA00009B0F0BD2CBE0011F0B54E780B7889B06C +:105CB00036020C00170001901E43012A61D9954B52 +:105CC0009E4200D877E001339E421CD1062A17D1AC +:105CD000CA788B7812021A430B791B0413434A7952 +:105CE00012061A438C4B5A6100221A705A808B4A52 +:105CF0005A608B4A9A608B4ADA60002009B0F0BD86 +:105D000088225205EEE7884B9E423CD182498B782F +:105D1000002B00D0F6E00C2A31D10F22A378934358 +:105D2000E2781202134322791204134362791206B5 +:105D300013434B60E279A07912020243207A0004F7 +:105D40001043627A12060243CA60E27AA07A120213 +:105D5000024376484A81834208D804236E491422BC +:105D600001980B7005F0DCFE1420C7E71201D21871 +:105D700089235B059A42F0D801238B70BDE7022A84 +:105D8000FAD00523EAE76A4A01239642E6D1FFF7F3 +:105D900035FA052F0CD9E378A2781B021343227938 +:105DA00012041A4363791B061343624A0393136078 +:105DB00005F09EFDA1E7584D2B78002B9DD1AB78C7 +:105DC000002B00D1A0E02B8901339BB20093B3429A +:105DD00000D091E0132AD4D9CF7C8B7C3F021221D2 +:105DE00020001F43FFF71AFF874200D08EE0002EED +:105DF0003DD1E378A2781B0213432279E9681204AB +:105E00001A4363791B06134303930A228B4212D170 +:105E1000FF23A370E370237163716B89002B09D199 +:105E2000E37B227C1B0212041343A27B13431B0956 +:105E300001336B8100226B89002B8ED0002A67D141 +:105E4000686837013818000B6B69000303909842AB +:105E500005D9686105F0E4FDEB780133EB70686803 +:105E60001022A11C381805F093FE2E8145E76F899A +:105E7000009A7B1E9BB293423AD1E278A378120239 +:105E80001A43237905A81B04134362796C68120630 +:105E90001A43EB6800920392211D0C22049305F033 +:105EA0003FFE0120260004A940421036FFF7E2FE23 +:105EB000013F012F17D1009A0B232861824200D0A5 +:105EC0004CE704221C49200005F062FE042203A9CD +:105ED000686805F005FCE968039AFF23914200D148 +:105EE0003CE7F73B3AE73100FFF7C4FE1036DFE747 +:105EF0000923B742A4D831E7009BB34200D9FCE69E +:105F000007232BE7022329E7032327E7062325E7B7 +:105F10000A2323E7FFFE0000C042FF1F000001111B +:105F2000FFFF00005048593601FF0000FFFF00113D +:105F300002FF000034F00040CC42FF1F10B5034CBC +:105F40000B000122210000F06BFA10BDFD60001172 +:105F50000B8870B506000D000224162B11D92B00FA +:105F60000322094900F05CFA041E0AD1074B2A8873 +:105F70001B88191C934200D9111C300089B200F013 +:105F8000EFFA200070BDC046296100115E64FF1F5A +:105F900010B54A780400013A0B000220012A07D804 +:105FA0000A78002A04D005222000024900F038FABD +:105FB00010BDC046576100110A7810B50B000400EF +:105FC0000220002A04D007222000024900F028FA0B +:105FD00010BDC046036200110A7810B50B00040022 +:105FE0000220002A04D009222000024900F018FAF9 +:105FF00010BDC0466962001110B5034C0B000B22A6 +:10600000210000F00DFA10BD9962001110B5034C8B +:106010000B000D22210000F003FA10BD0B630011EC +:1060200010B5034C0B000F22210000F0F9F910BD50 +:10603000656300110A7810B50B0004000220002AE5 +:1060400004D011222000024900F0EAF910BDC04638 +:1060500075630011002310B51322190000F0E0F958 +:1060600010BD000010B5034C0B001722210000F0FA +:10607000D7F910BDC7630011002310B5192219000C +:1060800000F0CEF910BD000010B5034C0B001B2230 +:10609000210000F0C5F910BD01640011F7B5848935 +:1060A0000D0006000121002C22D000238268D35667 +:1060B0001778002B1EDA0C2C1AD90C3CA4B2131939 +:1060C00040880093230002F086FE431E9841013071 +:1060D0007B06DB0F6B703F23013C1F40A4B228708E +:1060E000AF70AC80002C07D0B3680133AB600021E7 +:1060F0000800FEBD0020EBE7AC60F8E70B7803700A +:106100004B8843704B881B0A83700B79C370042043 +:1061100070470420022B06D10020537811781B020F +:10612000009A0B43138070470B8803700B881B0A7F +:106130004370022070470420009983420AD15378AB +:1061400010781B0203430B80D37890781B02034323 +:1061500000204B807047F8B50D004B7801240021DA +:10616000461C03702B788B4201D82000F8BD6B7859 +:10617000B01C4F1C012B10D1890069184B880222DA +:1061800033704B88B9001B0A7370691805F018FB4F +:1061900004360434A4B2F9B2E4E7122359436B186D +:1061A0005A88043132705B8810221B0A7370691898 +:1061B00005F006FB12361234ECE770B5049D1400AE +:1061C0001E00052B01D8042070BD637812781B02D5 +:1061D00013432B80E378A2781B02134302226B80C7 +:1061E0002A71211D681D063E05F0EAFAB2B22A8125 +:1061F000E92AE8D82800A11D0A3005F0E1FA0020BC +:10620000E2E7002310B50A789A4201D8900010BD49 +:106210009A008A185488013304705488DBB2240A27 +:106220004470948884709288120AC2700430EAE73D +:1062300010B51100029C062B04D004201022142B50 +:1062400001D010BD022222714B7808781B02034353 +:106250002380CB7888781B02034363800431601D60 +:1062600005F0AEFA0020ECE710B50C788B7804311D +:106270005C43E4B203702200013005F0A1FA601C17 +:1062800010BD0420022B06D10020537811781B0288 +:10629000009A0B431380704710B50C000A88023136 +:1062A00005F08EFA208810BD70B504000D0004982A +:1062B0001100012B01D8042070BD1678527812020B +:1062C000324302800200F13255701470E125002C37 +:1062D00000D10C35023B9AB24280AA42EBD802317F +:1062E000043005F06DFA0020E6E7042000998342AF +:1062F0000AD1537810781B0203430B80D37890782F +:106300001B02034300204B80704710B50C000A8825 +:10631000023105F055FA208810BD000070B501214A +:106320001E000420049C0E400B4218D1CB40DDB26D +:106330008D4214D90A49DBB2098899420FD3230050 +:10634000EE331D703300580011184978165C0902AD +:10635000314301332152D9B28D42F4D8002070BDAF +:10636000D842FF1F10B50C000A88023105F028FA48 +:10637000208810BD10B50C788B7804315C43E4B2F2 +:1063800003702200013005F01BFA601C10BD10B52F +:1063900011000298032B01D8042010BD1478527804 +:1063A000043B120222430280CA788C7812022243F4 +:1063B00042809AB28280EB2AEED80431063005F092 +:1063C000FFF90020E9E710B50C000B8803700B887B +:1063D0001B0A43704B8883704B881B0AC3708A88E2 +:1063E0000430063105F0ECF9A088043080B210BD0D +:1063F0000420012B03D100201378009A13707047FA +:1064000010B50C000B8803700B881B0A43704A8878 +:106410000230043105F0D4F96088023080B210BD3A +:10642000F0B589B003931E4B029242000700D05A88 +:10643000019102F020F81325061E2DD0029B0124A5 +:106440000370019B002B04D0001903999847001991 +:1064500084B26B461B7A5BB2002B0FDA1021380036 +:1064600002F01CFB1925002813D130003219E1B2CB +:1064700002F066FC051E0CD10C34A4B2042304AA5D +:10648000380005A993800696948101F0AFFD051EA2 +:1064900002D0300005F0ECF9280009B0F0BDC0468C +:1064A0005C64FF1F70B505000C0000280CD00020B4 +:1064B000814209D010222000044905F081F9012011 +:1064C0002B7823736B78637370BDC0466CBE00116C +:1064D000F0B506000D0017001C0085B002291BD086 +:1064E0000020102907D1022B07D0102B03D115E073 +:1064F0000020102C08D005B0F0BD69463800FFF729 +:10650000D1FF2A0069460BE069463000FFF7CAFF59 +:1065100022006946380004E0022BE9D12A00390044 +:10652000300005F0A5FAE6E7031CF02800D9F023B7 +:10653000032008499AB2013A0B80D3170340064959 +:106540009B189B100B80D30F04499B185B100B808A +:106550007047C046DC42FF1FDA42FF1FD842FF1FD0 +:10656000034B1B888B4202D3024B4000C152704741 +:10657000DC42FF1F5C64FF1F014B4000185A70474C +:106580005C64FF1F1722014B1A8070475C64FF1F79 +:1065900070B505000E2005F0D3F9041E13D0D023EA +:1065A000037000230622837007494570033005F00D +:1065B00007F9064B2100DA8A62811B7E2373044BA4 +:1065C000187805F07DFA70BD7864FF1F6864FF1FBE +:1065D0002C43FF1F262803D8024B4000C05A7047A7 +:1065E0000148FCE7DE42FF1FFFFF000070B5060018 +:1065F0000C00094D1C220021280005F041F8074B32 +:106600001E70074B1C7005F023FB0123002801D0EE +:10661000002312202B7070BD6864FF1F2C43FF1FE6 +:106620008964FF1F70B505000D4C0800E260A16091 +:1066300010220021656005F063F9012803D11021C3 +:10664000A06802F058FD10220021280005F058F93A +:10665000012803D11021606802F04DFD70BDC046D5 +:106660006864FF1F70B5041E05D1002903D00622FF +:106670000D4805F0A5F80D4B1D78012D11D1002C0A +:1066800005D102221A7005F02BFA280070BD0022F5 +:106690001A70074B1B78FF2BF7D02000FFF778FF0D +:1066A000F3E70025F1E7C0467864FF1F6864FF1F29 +:1066B0002C43FF1F030010B5002801D1002010BD9E +:1066C00000780B4A002803D15988D1821B791376B0 +:1066D0001378022BF2D10023984200D103331370B8 +:1066E000044B1B78FF2B01D0FFF752FF0120E6E798 +:1066F0006864FF1F2C43FF1F002911D000280CD015 +:106700004B79012803D140225242134303E03F2238 +:106710001340032802D001204B7170474022F4E758 +:106720000800FAE770B5094D0100287800280BD061 +:10673000074C0622200005F043F821002878FFF7D7 +:10674000DBFF200005F034F870BDC0468864FF1FF1 +:106750006264FF1F00290AD0012808D13F224B792B +:106760009343C02B03D0403B5A425341981C70477F +:1067700070B5174D06002B78FF2B15D00A2005F0B9 +:10678000DFF8041E10D0D0230370C83B8370114B78 +:1067900011491B784670C3700622043005F010F8CA +:1067A0002100287805F08CF90C4B1B78012B0DD1BA +:1067B0000B4B1B68002B03D09B68002B00D0984725 +:1067C000084B04211878084A04F09AFF70BDC046AF +:1067D0002C43FF1F8864FF1F6264FF1F8464FF1F38 +:1067E000B064FF1FB464FF1F60EA0000014B9868AB +:1067F0007047C0466864FF1F014BDB68186870472C +:106800006864FF1F074B10B5DA6813680133136023 +:10681000054B1878FF2803D08021C90105F0F8F84E +:1068200010BDC0466864FF1F2C43FF1FF7B50E0064 +:1068300002F0C8F8051E1CD00E4B06621F78002F10 +:1068400000D10778AB791020019305F079F8041E88 +:106850000FD0D0230380C73B8370019BE91DC37019 +:106860000622043004F0ACFF21003800E66005F099 +:1068700027F9F7BD2A43FF1F014B18787047C04620 +:106880008864FF1F054B002805D1054B1A78054B7E +:10689000002A00D1014B18007047C0467864FF1FE2 +:1068A0008864FF1F6264FF1F014B58687047C04631 +:1068B0006864FF1F024B1868431E9841C0B27047BE +:1068C0008C64FF1F421E03000120152A03D9FF3BE1 +:1068D0005A425341D8B27047F0B51C0000230E0055 +:1068E00085B0039002920B70029A934201D300206C +:1068F00019E0E55C5A1CD2B2002DF8D0029851196B +:106900008142F4DC0233DFB2A35C18000193FFF78D +:10691000D9FF002807D0013D019A0399EBB23370EB +:106920008A4202D1E01905B0F0BDDB19DBB2DBE72A +:1069300010B50C0002F09EF803001220002B03D0CB +:106940002100588805F05CF810BD000070B50E4DB0 +:1069500084006359002B15D0186A002801D005F077 +:106960005FF92B59586A002801D005F059F92B59C5 +:10697000986A002801D005F053F9285905F050F91C +:1069800000232B5170BDC0469864FF1F1C4B70B58F +:1069900004000E00150099420AD11A4B1B68002B07 +:1069A00001D1122070BD1B68002BFAD09847F9E77F +:1069B000154B994215D1134B1B68002B0AD01B684D +:1069C000002B07D09847002804D1104B1C70104BA7 +:1069D0001D70E7E729002000FFF7AAFF0028E1D19A +:1069E000F3E7080001F0EEFF0028DAD00378032077 +:1069F000A342D7D12900300005F002F8D2E7C04603 +:106A0000FEFF00009464FF1FFFFF00009164FF1F62 +:106A10009064FF1FF7B50400808801F0D3FF0025C4 +:106A2000A84203D00578A08802F008F81C4E3378FD +:106A3000002B1FD0AB421DD11A4B28001978FFF74D +:106A400077FF002818D000233370A3790820A77897 +:106A5000A688019304F074FF011E0DD0D0230370AB +:106A6000CA3B8370019B477086808371280005F0C4 +:106A700027F801E0002DE8D1A0880B4B8200D35805 +:106A8000002B01D0FFF762FF1721A088FFF768FDF8 +:106A9000A08801F027FDA08801F0FEFDF7BDC046EB +:106AA0009164FF1F9064FF1F9864FF1FF0B587B0CB +:106AB0001D000CAB1B88070001930DAB1B88142035 +:106AC00002930EAB1B88160003930FAB1B8800913B +:106AD000049310AB1B88059304F032FF041E1AD0F8 +:106AE000D0230370CB3B47708370C6700622290009 +:106AF0000430002D11D004F063FE019B210063815E +:106B0000029B0098A381039BE381049B2382059B46 +:106B1000A37404F0D5FF07B0F0BD04F0B1FDECE7BD +:106B2000F7B5009308AB1B8807000C200D0016007A +:106B3000019304F005FF041E13D0280001F042FF6A +:106B400000280FD00078D0232370C93BA370009B8E +:106B500021002381019B6770A580E680638104F09A +:106B6000AFFFF7BD014B1878EDE7C0462C43FF1F80 +:106B700013B5040064890389C2888188C0780094B1 +:106B8000FFF7CEFF13BD000010B5044C20680028AD +:106B900003D005F045F80023236010BD9C64FF1F5F +:106BA000A122F0B5818892004A43384B384F1B68C8 +:106BB00004009B189D2292009B18827989B01A606C +:106BC0003B68002B5FD01D78324B1B68002B04D034 +:106BD0005B68002B01D00020984726000836310062 +:106BE000E079FFF7B7FD237DE0710200E0780493C0 +:106BF000638A29000393238A0293E3890193A3887C +:106C000000933300FFF752FFE378002B0BD1E289AA +:106C1000A379A18802920196E279280000920122CC +:106C200001F0DAFEE0703B68002B20D0FFF7ACFFEC +:106C3000194D287800281AD0184B1978FFF778FEDC +:106C4000002814D02B78E67808200793A78804F052 +:106C500077FE011E09D0D0230370CA3B46708370B3 +:106C600087808671079804F02BFF00232B70172173 +:106C7000A088FFF775FCA08801F034FCA08801F023 +:106C80000BFD09B0F0BD064B9DE7C0463409FF1F60 +:106C90009C64FF1FB064FF1F9164FF1F9064FF1F7F +:106CA0002C43FF1FF8B5070008000E0001F08AFE14 +:106CB000041E18D02620FFF78DFC051E00D1257874 +:106CC000062004F03DFE041E0DD00021062204F033 +:106CD000D7FCD0232370C23B21006770A370A6802D +:106CE000E8B204F0EDFEF8BDF0B585B001930AAB53 +:106CF0001B78070002930BAB1B7808000D00009275 +:106D0000039301F05FFE061E22D0102004F018FE4F +:106D1000041E1DD01022002104F0B2FC2620FFF733 +:106D200059FC002800D13078D0232370C13BA370D8 +:106D3000009B21002372019B67706372029BA580F8 +:106D4000A372039BC0B2E3720C9BE36004F0B8FE35 +:106D500005B0F0BDF7B50D00019001F033FE071E40 +:106D600020D00E2004F0ECFD041E1BD02620FFF7DF +:106D700031FC061E00D13E78D0232380C53B06227D +:106D8000A370F91DE01C04F01BFD019B2A00638128 +:106D90000123DD401A401D40210022736573F0B2CB +:106DA00004F08EFEF7BD0000F0B585B00290100033 +:106DB0000D0017000A9E039301F004FE041E31D05B +:106DC000029B002B2ED1039B02795B0724D5122353 +:106DD00013430422002E08D10B99002905D10C99E8 +:106DE000002902D10D9900291AD01A430D9B227156 +:106DF000002B00D0C9E0002E00D1CFE0002D00D044 +:106E0000CCE0606A002801D004F00AFF1C213000A9 +:106E100004F0A6FC606205E002239A430E33D7E734 +:106E200093432371654BBA00D458002C00D1AAE0DB +:106E3000002E10D0236A002B03D11C2004F020FD6B +:106E400020625E4BBA00D358186A002803D01C2277 +:106E5000310004F0B5FC0C9B002B12D0574CBB004A +:106E60001D596B6A002B03D1162004F009FD6862DE +:106E7000BB00E358586A002803D016220C9904F08E +:106E80009FFC0D9B002B11D04C4DBC006659B36A82 +:106E9000002B03D1142004F0F3FCB0622B59986A44 +:106EA000002803D014220D9904F08AFC380001F068 +:106EB00089FD051E67D0414BBA00D358002B62D024 +:106EC0001A6A3420002A00D11C389A6A002A01D09C +:106ED000143080B20B9A002A01D01C3080B25B6A59 +:106EE000002B01D0163080B204F02AFD041E4AD0D7 +:106EF0001822002104F0C4FB2620FFF76BFB019051 +:106F0000002801D12B780193D0232370029B20000D +:106F100063700A23294EA370039BBD00A371AB5974 +:106F2000A780196A1830002905D01C22A06004F03F +:106F300047FC200034307359996A002907D00300B8 +:106F400014221433E060029304F03AFC02980B9B85 +:106F5000002B08D003001C221C330B9920610293E4 +:106F600004F02EFC02987359596A002903D01622A6 +:106F7000606104F025FC6B462100187904F0A0FD47 +:106F80003800FFF7E3FC05B0F0BD10220D9B0D9912 +:106F90001B69A018236204F013FC2CE70B9B002B49 +:106FA00000D13FE7012D00D03CE7606A002801D006 +:106FB00004F036FE1C210B982AE7C0469864FF1F98 +:106FC00010B5044C2068002803D004F029FE0023EB +:106FD000236010BD8C64FF1F0B4B07B51A68002A95 +:106FE00001D100200EBD6946531C012012780731E3 +:106FF000FFF772FC0028F4D002780123100018403B +:107000001A42EED0EEE7C046A864FF1FF0B51F4F4E +:1070100001203B6887B0002B25D09B78059300F0BA +:10702000B3FB002821D00A20FFF7D4FA04000B207C +:10703000FFF7D0FA164B05001E78731E9E413B6881 +:10704000F6B2191DD878FFF757FB3B682900DA7AAA +:10705000043303929A790193029200903300200046 +:10706000059A04F08DFD07B0F0BDFFF7B5FF0028CD +:1070700005D00620FFF7AEFA04000720D8E7082065 +:10708000FFF7A8FA04000920D2E7C0468C64FF1F6E +:107090008864FF1F70B50A4E040033780D00FF2B83 +:1070A0000DD0042004F04CFC011E08D0D023037046 +:1070B000CE3B45708370C470307804F001FD70BD24 +:1070C0003C43FF1F70B5040006200D0004F038FC9F +:1070D000011E0AD0D0230370CD3B8370054B447052 +:1070E0001B688580187804F0EBFC002C01D0FFF7BA +:1070F00067FF70BD8C64FF1FF8B5264F06003B6824 +:107100000D001124002B05D10522234B1B781342BF +:1071100002D112242000F8BD204A10241268002A4F +:10712000F8D01278002AF5D0DB0719D52B789A1EF3 +:10713000012A1AD80C2004F0A3FB1324386000287D +:10714000E8D000230A22437029000670023004F0C0 +:1071500037FBFFF75BFF041E0AD0FFF731FFD9E7CB +:1071600000F012FB0028E1D1E4E7002BE2D0D0E7E9 +:107170000B4B1B78032BCDD11D20FFF72BFA094BAE +:1071800018800028C6D0084B04211878074A04F05C +:10719000B7FABFE78C64FF1F8964FF1FA864FF1F55 +:1071A0008864FF1F8664FF1FB464FF1F60EA00004D +:1071B000F7B50193194B14001A78052306000F0048 +:1071C00012201A4221D0012920D1154B1D68002D13 +:1071D0001BD002201F2C18D8002C02D0019B002BA2 +:1071E00013D0104B1F221E706E1C0021300004F0C3 +:1071F00047FA01992200300004F0E2FA3100200041 +:107200002C70002F06D004F09BFAFEBD064B122016 +:107210001D68DCE704F08CFCF7E7C0468964FF1FBB +:10722000A864FF1F3C43FF1FA464FF1FF8B50F4E67 +:1072300012243368002B17D01B780F3C834213D1E4 +:1072400000250B4F0221387804F0E2FC094B0421A1 +:1072500038781D8004F0DCFC074B28001D80336863 +:107260005C7004F055FC04002000F8BD8C64FF1F26 +:10727000B464FF1FA064FF1F8664FF1F70B5012860 +:1072800023D11B4C2388002B03D01A4A1578002DDC +:1072900007D0194B1B68002B02D01878FFF7C6FFE8 +:1072A00070BD3B2B02D93C3B2380F9E7134E0221F2 +:1072B000307804F0ADFCFA222388920002215A4370 +:1072C000307804F09DFA2580EAE70B4B1B68002B11 +:1072D000E6D00B4B1B785B07E2D5084B02211878F0 +:1072E00004F096FC0022024B1A80FFF769FED7E7F4 +:1072F000A064FF1F8464FF1F8C64FF1FB464FF1F22 +:107300008964FF1FF8B51E4D2868002803D004F0DB +:1073100087FC00232B601B4E3068002803D004F04C +:107320007FFC00233360184F05243B781800204071 +:10733000234221D0154800F02BFA3B78234213D08A +:10734000202004F09DFA2860002813D0202200217C +:1073500004F096F9202004F093FA041E306005D062 +:107360002022002104F08CF9002004E0286804F0B9 +:1073700057FC2C601320F8BD00F00AFAF4E7C04671 +:10738000A864FF1FA464FF1F8964FF1F3043FF1F11 +:1073900010B50A4C23681A1E0ED0002808D10130FF +:1073A000587004F0B5FB002805D02368002B02D0EC +:1073B0000021FFF787FE0122100010BD8C64FF1F23 +:1073C000F7B5274E050033680191181E21D05C786F +:1073D000244F012C30D1FFF7FFFD002825D02000DD +:1073E000FFF7F8F80400412814D91F4B0221187840 +:1073F0001E4A04F085F91E4B3C3C1C800222336877 +:107400005A703B78002B14D128000199FFF75AFEDF +:107410000120FEBDFA2292004243002AEED0124B18 +:107420000221187804F0ECF9E8E7FFF7D3F802003E +:10743000F3E700233B70EBE73B78002BE8D1032018 +:1074400004F07EFA011E08D0D0230370CC3B4570B7 +:1074500083703368187804F033FBFFF7B1FDD7E78A +:107460008C64FF1F8464FF1FB464FF1F60EA000088 +:10747000A064FF1F10B51749838802008B4220D0FB +:1074800011D815498B4217D0144900205B1899B2C6 +:10749000012907D8926811785A425341D8B2FFF7B0 +:1074A000F9FD012010BD0E4A00209B1807229BB257 +:1074B0009A424041C0B2F5E783681878FFF768FF49 +:1074C000F0E7836899785A78090218781143FFF732 +:1074D00077FFE7E70A20000006200000F8DFFFFF43 +:1074E000AFDFFFFF014B18707047C0463D43FF1FE1 +:1074F00010B5064C207001F041FA207804F0D8F95C +:107500000521207800F062FD10BDC046B464FF1F65 +:107510000BB273B50D00002B00DBC4E0884B18786C +:1075200004F07EF9041E0ED00378912B0FD0A22B0D +:1075300000D1A1E0834B1878FF2852D0210004F03D +:10754000BFFA00284DD180200002684076BD437804 +:107550000F2B76D013D8052B70D00E2BEAD1808854 +:10756000794B98422BD8794B98421BD8784B98424C +:10757000E0D1A3681878591CFFF774F838E03E2B67 +:10758000D8D18378032B74D06CD8012B6ED0022B0A +:10759000D0D1704B1B68002B23D05B68002B20D010 +:1075A00098471EE06C4BC0180C28C3D804F058F85C +:1075B0001DC2C2150BC20B0B0B3223C23C00674B22 +:1075C000C0180728B6D8664B1B68002B09D01B686B +:1075D000002B06D0200098470AE0A3681878FFF730 +:1075E000C7F8200004F044FBADE7A068FFF762F89D +:1075F00000289FD0F5E7A3681B78002BF1D0554BEE +:107600001B68002BEDD01B68002BEAD021005548E9 +:107610009847EDE74F4B1B68002BE2D01B68002B0F +:10762000DFD021005048F3E7504B1B68002BD8D027 +:107630005B68002BD5D021004348E9E7FFF7EAF962 +:10764000CFE780884A4B984203D04A4B984200D0FB +:1076500070E7464B1B68002BC3D05B68002BC0D083 +:107660002100D5E7153B012BBBD963E7FFF798FA5B +:10767000B7E7FFF77DFAB4E73F4B1B78042B07D140 +:1076800000236A4613800179408800F0C5FCA8E712 +:10769000364B1B68002BA4D05B68002BA1D00100E7 +:1076A000364898479DE7012421420AD0294B1B68A0 +:1076B000002B04D05B68002B01D0002098470120EC +:1076C00043E78B070AD5264B1B68002B04D05B6869 +:1076D000002B01D020009847022036E70421280023 +:1076E00008400D4200D131E7254E3388002B21D0D0 +:1076F000013B9BB23380002B1AD1FFF7DBF8002847 +:107700000AD0204B1C70164B1B68002B04D05B6802 +:10771000002B01D020009847FFF7C6F8694601F01A +:1077200001FD6846FEF7FEFF1D20FEF753FF308087 +:1077300004200AE7024B187804F06AFAF8E7C0461A +:10774000B464FF1F3D43FF1F0E2000000120000016 +:1077500009100000AC64FF1FFEDFFFFFAFDFFFFF7B +:10776000B064FF1F0C2000000B2000009464FF1F7A +:107770000D200000132000008964FF1FFFFF0000A0 +:107780008664FF1F8464FF1F10B501F09BF910BDD4 +:10779000014B18607047C046B064FF1F0B88002083 +:1077A000162B01D817230420014A13807047C046C6 +:1077B0005E64FF1F00207047074A03001188814262 +:1077C00007D091880020994202D101308000101822 +:1077D00070470020FAE7C046BC64FF1FF0B58F7801 +:1077E00006000D00C5B01E2F15D1FFF7E5FF051EE1 +:1077F00003D10024200045B0F0BD00223B00310041 +:10780000C078009200F0B2FB0400A81C00F0D2FB8C +:10781000FF23EB70EEE7264B062403931B78FF2B28 +:10782000E8D0182FE6D87B08224A013BDB00029201 +:107830009A589446002ADDD0029AD3185B68002B30 +:10784000D8D00878002802D14B78012B02D1062429 +:10785000122FCFD107AFAB88697800976446AA682A +:10786000A047041EC6D1AB78029A5B08013BDB003F +:10787000D318390030005B689847041E0BD1AB78F1 +:10788000042BB6D0039A310010782200009700F044 +:107890006DFB0400AEE76A78002AABD1AA7805A98F +:1078A0003B88087130000A704B80FEF747FBA0E769 +:1078B0004043FF1F7CBE00111D4B37B505009842A9 +:1078C0000BD000290AD1FFF777FF002805D119480E +:1078D000FFF772FF002800D0058037BD01291AD1BB +:1078E000FFF76AFF041EF8D001235B420380A378F0 +:1078F000FF2BF2D0FE2B07D00023E0781422009358 +:1079000029001E3300F032FBA01C00F053FB0123C2 +:107910005B426380E1E70229DFD1013901F0BEF863 +:107920000028DAD12800FFF747FF041EDFD1D4E793 +:10793000FEFF0000FFFF0000022210B5074B52427D +:107940001A80074801325A809A80DA8000F07EFA65 +:10795000044801F025F8002010BDC046BC64FF1F9C +:10796000DD770011B97800110388F7B50400002B0A +:1079700002D102252800FEBD426802211378254865 +:107980005268FEF7A5FD00282ED0234F01253A8826 +:10799000002AEFD0802321885B0201259B1A99429F +:1079A000E8DC0C2003F06CFF061E31D03B882288F7 +:1079B0009C4600231800019561469DB2491989B281 +:1079C000AA421BD8002801D062443A80002330002C +:1079D000082208C0210003F0F3FE104A1368002BB0 +:1079E00013D100251660C5E76268022113780C48A0 +:1079F0005268FEF76DFD0028C7D1BAE760681D0127 +:107A00004019418101330198D6E71A001B68E6E767 +:107A10001325AFE7EABE00113E43FF1FB864FF1F06 +:107A2000E8BE0011014B18707047C0464043FF1F6D +:107A300014230A0010B51A40194204D00122102163 +:107A400001F048F810BD4B06F9D4012088434000EE +:107A5000F8E710B514008B0604D50122102101F0BF +:107A600039F810BD08230A001A40194202D14BB25E +:107A7000002B0FDA102101F02DF8002808D0230088 +:107A8000F2331B78002BECD0F1342378012BE8D1B2 +:107A90000020E6E703208907FAD4E2E7F0B51F00EB +:107AA000184B85B01C68019002910392002C27D1DD +:107AB000200005B0F0BDA5683301ED186B89019A6F +:107AC000934211D3029A93420ED8002F04D10A9BFD +:107AD000002B10D12C00EBE73B002978039A686853 +:107AE000FEF7F6FC0028F2D10136B6B2A388B34205 +:107AF000E1D82468DAE7A3680A9A5B891380E9E78A +:107B00000026F3E7B864FF1F37B50C000A884988E0 +:107B10000123914217D3002A15D0651D23792A002D +:107B200002210A48FEF7D4FC102300280BD0237949 +:107B30006188208800242A000094FFF7AFFF0A2301 +:107B4000A04200D0230018003EBDC046EABE00118E +:107B500013B50A0008884988012388420BD80028F9 +:107B600009D00024137905320094FFF797FF0A2308 +:107B7000A04200D02300180016BD13B50A000888E3 +:107B80004988012388420BD8002809D000241379A2 +:107B900005320094FFF782FF0A23A04200D02300A1 +:107BA000180016BDF0B58BB003904A8808880E0007 +:107BB0000123824255D3002853D00023012704AC6F +:107BC00023700022718813000092FFF767FF051EE3 +:107BD0003ED02078002835D12B78022B18D1677041 +:107BE0006A8983000130E31880005A8069680222A4 +:107BF000201803F0E5FD23780133DBB22370042B5A +:107C000019D93B006889013080B2002BD9D01FE020 +:107C100002236370122358436A89231804305A8060 +:107C200069681022201803F0CBFD23780133DBB202 +:107C30002370002BE5D10C4A6B899B185A425341A3 +:107C4000DBB2DFE76378012BE4D12B78022BC7D0BE +:107C500022780A23002A04D021000398FEF798F91D +:107C6000002318000BB0F0BD0100FFFF0F4BF0B573 +:107C700004001868002816D083685D89A54207D8DB +:107C80008288AE18B44203DA12019A18934201D1E5 +:107C90000068EFE71E005F891036A74204D1002973 +:107CA00000D00D801800F0BD3300EFE7B864FF1F6F +:107CB00070B505000C0008880021FFF7D7FF03000E +:107CC0000120002B04D022002800197AFFF7C1FE02 +:107CD00070BDF7B50C00002501902300EE331B7832 +:107CE000AB4201D800200AE06B00E65A00213000C8 +:107CF000E718FFF7BBFF002802D126800130FEBD48 +:107D0000017A0198FFF794FE002802D03B88238077 +:107D1000F5E70135EDB2E0E710B504000888002171 +:107D2000FFF7A4FF03000120002B03D02000197AE5 +:107D3000FFF77EFE10BD0000054B1B68002B01D134 +:107D4000180004E09A6852898242F6D198887047F8 +:107D5000B864FF1FF0B50E27002687B0039302AB6F +:107D6000FF183E8005001F4B40891400984207D041 +:107D70002B78013000976A6880B2FFF78FFE06000B +:107D800002212B7818486A68FEF7A2FB00280FD062 +:107D90006C892000FFF7D0FF002802D0013C0419B5 +:107DA000A4B2039B002B00D01C80300007B0F0BDB4 +:107DB00002212B780D486A68FEF78AFB0028E7D17C +:107DC00002212B780A486A68FEF782FB002807D058 +:107DD000002EDED03B88A342DBD17489013CDFE773 +:107DE0006C89DEE7FFFF0000EABE0011E8BE00116B +:107DF000E6BE001110B50C00FFF7DEFC0300022008 +:107E0000002B0AD0002C00D023609B781720FE2B7B +:107E100003D00138FF2B00D1002010BD73B50D0039 +:107E200001A904001600FFF7E5FF172805D0002E72 +:107E300004D129002000FEF727F976BD0122102188 +:107E4000200000F047FE0028F3D0F6E7014B186051 +:107E50007047C046C864FF1F37B56B469D1D0100C3 +:107E600004000222280003F05BFE2B88B02B0ED109 +:107E70002379122B09D12300FA331B78012B06D169 +:107E80000121608800F0E0F801E01B2BF8D037BD3D +:107E900010B5054B0421187000F098F8FFF74CFD61 +:107EA000FEF770FB10BDC046CC64FF1F0020F0B58C +:107EB0000BB20F0087B0834234DA274B187803F0F7 +:107EC000AFFC051E2BD00378A02B25D103AE3100CB +:107ED000FEF7E4F8041E0BD1B378DB0724D51F4B63 +:107EE00006341B68002B03D03100688898470400D3 +:107EF000A868002801D003F0BBFC002C08D1184A68 +:107F0000039B1340174A934206D0B3781B2B03D030 +:107F10000121688800F098F8280003F0A9FE80206D +:107F20000002784007B0F0BD0F4B1B68002B10D04B +:107F3000310068889847041EDAD07378002BD7D1B7 +:107F4000B27801A90A704B800C716888FDF7F6FFC2 +:107F5000CEE70624F1E7C046CC64FF1FC464FF1FD0 +:107F600000FFFF0000011200C864FF1FF7B5019079 +:107F7000FC200D0017001E0003F0E2FC040013209B +:107F8000002C12D0B02320002370089BF4226770CD +:107F9000658026710830002B08D0190003F010FC12 +:107FA0002100019803F08CFD0020FEBD089903F02C +:107FB00067FBF5E710B5041E06D00078FD2803D84E +:107FC00003F0B6FCFF23237010BD00000A1F93B21C +:107FD00010B504000220032B05D882400020024B7C +:107FE000D1529B189C7010BDEC64FF1F0B8870B5BC +:107FF000043B04000D000220032B0BD801212000BC +:1080000000F04CFD03001420002B03D029002000B9 +:1080100000F0DEFB70BD000007B51300034A0092BC +:108020000A00012100F02CFC0EBDC0465582001153 +:1080300007B5019203220092024B0A00122100F0C0 +:1080400049FC0EBDD382001107B56B4601AA118011 +:108050000449D88008780633012802D1190003F0BA +:10806000F7FC07BDCD64FF1F0C4B10B51870002343 +:10807000FF210B4A1380138193819380094A538017 +:108080001370517293819372D174D38213755177A7 +:1080900003F046FC00F0FCF910BDC046FC64FF1F75 +:1080A000EC64FF1FCE64FF1FF0B58DB06B4600205F +:1080B00003910C229B5E834200DBB0E05D4B18789D +:1080C00003F0AEFB051E00D1A4E00378902B00D096 +:1080D0009DE006AF01004688380000F013FA796889 +:1080E0000400002900D19CE03B88052B6ED13B8920 +:1080F000032B1CD905AC200000F0A2F86288172AD7 +:1081000061D83989131D994231D1796823780431B6 +:108110000291D90738D5607800F08EF9071E06D095 +:10812000002303712378012B08D0132B23D0A868D8 +:10813000002800D178E003F09BFB75E0628802998B +:1081400009A800F0A6F80290380000F08BF909AAFF +:108150002378387A0192002231000092029A00F0CE +:1081600012F9380000F064F9029B002BDFD03000D8 +:1081700000F080F9DBE70378032BD8D162880299FD +:1081800009A800F0D6F8DEE7122B13D1029909A84E +:1081900000F0B5F8021EEAD127498B88002BC6D023 +:1081A000887909A92378019161780091310000F064 +:1081B000EAF8BCE7002302AA93833000617809AA99 +:1081C000FFF72AFFB3E71D4B0993F6E7042B02D014 +:1081D0009A1F012AABD8184A043B9B00995A0029E0 +:1081E000A5D0D218907831003A0000F0AEF80028FF +:1081F0009DD13B88042B03D001213000FFF724FFE1 +:10820000012C04D1A868002801D003F031FB28001C +:1082100003F02EFD8020039B0002434018000DB0A8 +:10822000F0BD012800D182E701213000FFF70CFFEB +:10823000EDE7C046FC64FF1FEC64FF1F0100170060 +:108240000B7803704B784370CB788A781B0213430A +:10825000438070470A88030002700A88120A42703D +:108260000A88012A06D14A8882704A88120AC27096 +:108270000420704702208242FBD14A8804309A7061 +:108280004A88120ADA708A881A718A88120A5A7120 +:10829000EFE710B50400012082420CD94B780A7830 +:1082A0001B0213432380834206D1CB788A781B02BA +:1082B00013436380002010BD022BFBD1CB788A785A +:1082C0001B02134363804B790A791B021343A3807B +:1082D000F0E70B8803700B881B0A43704B88837090 +:1082E0004B881B0AC3708B8803718B881B0A4371F0 +:1082F000CB888371CB881B0AC371082070470300A9 +:108300000120082A14D14A780878120202431A8000 +:10831000CA788878120202435A804A790879120290 +:1083200002439A80CA798879120202430020DA80D7 +:10833000704710B504000120022A05D100204B78B7 +:108340000A781B021343238010BDF8B506001020E5 +:108350000F00150003F0F4FA04000120002C0ED0E9 +:10836000A0230C22290023806780201D002D07D028 +:1083700003F026FA2100300003F0A2FB0020F8BD34 +:1083800003F07EF9F6E7F7B51E00009008AB142065 +:1083900017001D78019103F0D3FA041E12D0A22316 +:1083A0000370019B47704380099B057146710C2245 +:1083B0000830002B07D0190003F002FA21000098C2 +:1083C00003F07EFBF7BD099903F05AF9F6E737B5DC +:1083D000041E0FD04388002B0CD00025C188132326 +:1083E000007A172201950095FFF7CDFFFF236580E6 +:1083F0006372257037BD000010B50C4904004A882F +:10840000002A09D08B89002B05D00020CB8A0222BC +:10841000834201D010BD012213000A2043430020F3 +:108420004032C854C81842800472F3E7CE64FF1F7C +:108430000023438003707047094B00211A0010B5D8 +:108440005C88002C06D01C79844203D10A234B435C +:10845000D01810BD01310A330329F1D10020F8E70B +:10846000CE64FF1F10B50400407A03F061FAFF23C9 +:10847000637210BD7047043010B580B203F060FB2A +:10848000002803D00421494203F0D2FB10BD0000B4 +:1084900070B50025104CA0682580A581A580A84254 +:1084A00002D003F0E5F9A56000250C4C0C4B606D83 +:1084B0001D80230058331D70A84202D003F0D8F964 +:1084C000656500256068002801D003F0D1F9013509 +:1084D00008340A2DF6D170BD9465FF1F3865FF1F63 +:1084E0008865FF1F70B5041E09D1054D2880A8813D +:1084F000A880A868002802D003F0BAF9AC6070BD6B +:108500009465FF1FF0B54B8885B00193002343604D +:108510000A7905000F00022A00D07BE0CA88032AEE +:1085200017D98B685E7819783602DC78D8790E43D3 +:1085300099781B7A24021B020C43034353495BBA0C +:108540000B80331D93421ED1042C04D0631F022BD9 +:108550000ED9012015E0019A4D4B1201D35A002B80 +:1085600006D00198FFF7BEFF4A4A13690133136131 +:108570000421B8682E812C80494203F059FB6860C1 +:10858000002005B0F0BD434D042C06D0631F022B24 +:108590000FD9EB680133EB60DBE7019A3C4B12012A +:1085A000D35A002B05D00198FFF79CFF2B690133AC +:1085B0002B61374B30000293019B029A1B01019300 +:1085C000002301998C468B52130063449C800393D3 +:1085D0009E81FFF750FF039B041E986016D0042174 +:1085E000B868494203F024FBFA880100043A2000ED +:1085F00003F0E6F80199029AFB888A5A043B9B181B +:10860000029A8B522B6801332B60A2E7AB690133CE +:10861000AB619EE71E4B0293019B1E01029BF35A26 +:10862000002B2DD002998C19A068002828D0012A8F +:1086300026D1FA889B189BB27352A189994217D30D +:108640009B1AC018B96803F0BBF8029BA289F35AC1 +:10865000934200D07DE700222B81A3882B80A36862 +:108660006B60029BF2520B4A53680133536070E710 +:10867000084A9368013393600198FFF733FF68E776 +:10868000044A536901335361F6E7C046FE64FF1F95 +:108690009465FF1F0465FF1F70B5051E15D10B4CB7 +:1086A0000B4B1880230058331870606D002802D0DF +:1086B00003F0DEF86565250050356068002801D0BC +:1086C00003F0D6F80834AC42F7D170BD3865FF1F0F +:1086D0008865FF1FF0B51700A12285B092000193B5 +:1086E0004243394B06001B680C009B18D933FF33FB +:1086F0001D78FDF741FF0430854204DD3000FDF7B1 +:108700003BFF0430C5B2BD4207D33A000021300020 +:10871000019B03F05DF805B0F0BD2900380003F0BF +:10872000E7F92300C6B250331E700393019B290062 +:108730006365380003F08CF8CBB20293002B02D0B3 +:10874000039B01361E7000262300503303931B78D1 +:10875000B34204D8606D002831D10020DBE7029AD3 +:108760002800002A04D0013B1000B34200D02800AA +:10877000F700E719387003F0F3F8786000280ED09E +:108780003A78019903F01CF8019A3B780136D31826 +:108790000E4A0193D369F6B20133D361D4E7039B48 +:1087A00018706065A74205D1084A1320D36A0133C7 +:1087B000D362B0E7606803F05BF80834F2E703F0D7 +:1087C00057F800236365C8E73409FF1F0465FF1FDE +:1087D000F7B50D0007000421686803F029FA2B891A +:1087E000040003702B891B0A43702B8883702B882D +:1087F0001B0AC3702E8902250436F6B2F42E15D852 +:108800001B4B9F4214D10C2003F09AF81135011E26 +:108810000CD0902303708E3B0371043B4380154BB7 +:108820008460C680187803F04BF900252800FEBD4F +:108830005C237B43104AD3180093583301931B7871 +:10884000002B0FD10300320038000099FFF742FFE0 +:10885000019B05001B78002BE8D13800009903F03C +:10886000FFF8E3E7054A0725536A01335362DDE762 +:10887000FEFF0000FC64FF1F3865FF1F0465FF1F3B +:10888000F0B587B0009017200F0016000193FFF796 +:10889000F2FD1325041E19D00C98031E02D0019975 +:1088A000201D9847030AE370052302AAA070043034 +:1088B000908127700098667003A993800494FFF755 +:1088C00087FF051E02D0200002F0D2FF280007B06B +:1088D000F0BD0000F0B587B01F000CAB1B78039112 +:1088E000059301210DAB06001C78049200F0D6F828 +:1088F0001425002821D02000FFF77EFD0135041E3D +:108900001BD01149059B0A7803700132D2B2131EA5 +:10891000C68001D101231A000B7022713000049B24 +:1089200003990097FFF7ACFF051E09D12300210032 +:108930000648074A093302F0C3FE280007B0F0BD1D +:10894000002363802370F8E70065FF1FCF830011C9 +:1089500030750000F8B505000E00064C064F236880 +:10896000002B02D03100280098470434BC42F6D1D5 +:10897000F8BDC046A465FF1FB865FF1F0123064A66 +:108980005B425380002313715362044A13605360A7 +:108990009360D36013617047B865FF1FA465FF1F24 +:1089A0000200002310B506499C000859002801D197 +:1089B000625010BD0133052BF6D11320F9E7C046F4 +:1089C000A465FF1F034A5388181A43425841404286 +:1089D00010407047B865FF1FF0B585B002930AAB31 +:1089E0001F780CAB1B88009008000E0001920393C7 +:1089F000FFF7E8FF05001120002D1BD10E48FFF7FF +:108A0000E1FF04001520002C14D006220B99A77159 +:108A1000E01D02F0D5FE019B30002371029B29006E +:108A20006371009B66802370039B6562E381FFF79F +:108A300091FF280005B0F0BDFFFF000010B5FFF763 +:108A4000C1FF04000220002C12D060880121FFF732 +:108A500081FF606A002801D003F0E2F8282200219B +:108A6000200002F00DFE012300205B426380207194 +:108A700010BD000030B5074A074C55880100137837 +:108A80000020A54204D05B1A59424B415842104085 +:108A900030BDC046B865FF1FFFFF0000084A10B593 +:108AA00001230C00904208D0FFF78CFF031E04D076 +:108AB000037923405A1E9341DBB2180010BDC04613 +:108AC000FEFF0000024B1879431E9841C0B2704768 +:108AD000B865FF1F70B504000D001600FFF772FFA8 +:108AE000002804D10D4B9C4200D0143070BD416A67 +:108AF00003790520002907D012221A40102A02D13A +:108B00000520002EF2D10F20DB06EFD5897E0C2048 +:108B1000A9428941494249420840E7E7FEFF000077 +:108B2000030010B5002800D110BD0348034A418856 +:108B30009142F9D09847F7E7B865FF1FFFFF0000A3 +:108B4000002330B5C45CCD5C6C40D4540133102B91 +:108B5000F8D130BD0F23002210B5C45C640022435D +:108B6000CA54C25CD209013BF7D210BD0200010019 +:108B700010B52032103102F0CBFE10BDF0B58BB035 +:108B80000390102005931700049102F079FE0090E5 +:108B9000102002F075FE009B13240190002B05D0DD +:108BA00000280CD11324009803F03AF8019B002B05 +:108BB00002D0180003F034F820000BB0F0BD1020F4 +:108BC00002F05EFE0600102002F05AFE132405009B +:108BD000002E00D1AEE0002819D01022002102F0B2 +:108BE0004FFD32002900039802F092FE041E0ED1C0 +:108BF00033787F2B51D830000099FFF7ABFF009BF3 +:108C00001B787F2B53D801990098FFF7A3FF300002 +:108C100003F006F8002D02D0280003F001F8002C24 +:108C2000C1D1102002F02CFE0600102002F028FE18 +:108C30000290002E7CD0002878D03A000F3223001A +:108C40000125121105D00F333B4015B25A42534152 +:108C50001BB26A1E1201002B33D0049BD2B29818AB +:108C60000099029AFFF76CFF013D102200213000AD +:108C700002F006FDADB2049F2D017D19AF4242D036 +:108C8000002C33D0300002F0CBFF029B002B00D130 +:108C900089E7180002F0C4FF85E729003000FFF7DC +:108CA00059FF28002549009AFFF74AFFA7E7290046 +:108CB0000098FFF74FFF28002049019AFFF740FF77 +:108CC000A5E70F210F4004998A18D9B28F4208D91D +:108CD000D15C06A819540133102BF6D1029A0199E0 +:108CE000C0E7791A48424141C901F2E73900300032 +:108CF00006AAFFF725FF3200039806A902F008FE36 +:108D000010370400BAE7002CBCD13000029906AA43 +:108D1000FFF716FF320006A9039802F0F9FD0822BA +:108D200004003100059802F04BFDABE71324A9E7DE +:108D30001324AAE7002800D06EE733E7F0BE001145 +:108D4000F0B58BB00F0016000225009000283FD030 +:108D5000002A3DD00B1DDBB21800029302F090FDFB +:108D60001135041E34D0FDF747FD05003A00009987 +:108D7000201D02F08DFEEBB20393E3702B0CDBB2EF +:108D80002F0A00936370FFB22B0E2370A77001931C +:108D9000FDF72CFD1022010006A802F079FE21004B +:108DA000029A04AB06A8FFF7E9FE051E0DD1039B4E +:108DB00008223370009B04A9B370019B7770F37095 +:108DC000301D02F065FEFDF71DFD200002F028FFBA +:108DD00028000BB0F0BDF0B58FB00D00149E0390CD +:108DE00004920593002A03D1022420000FB0F0BDA5 +:108DF000002EF9D00398FFF7E5FD1424071EF4D0E8 +:108E00007278337812021A43B3781B041343F27852 +:108E100012061A43036A0192934201D30133E3D14C +:108E2000002D03D03B7901249B07DED508220021C9 +:108E300006A802F025FC059B13240433DBB21800BE +:108E4000029302F01DFD051ECFD0059A049904304F +:108E500002F01EFE04223100280002F019FE390043 +:108E6000102210310AA802F013FE2900029A06AB64 +:108E70000AA8FFF783FE041E0FD1082206A908A83E +:108E800002F006FE0822311D08A802F0F1FD0128BB +:108E900007D101990398FDF7C9FC280002F0C0FE34 +:108EA000A3E70124F9E7000070B51C4C0500236816 +:108EB000181E10D0002D14D11A78002A0CD1981C3D +:108EC000083202F07DFC02F07BFD0135002808D15C +:108ED00023681D70012070BD0A331800082202F0BB +:108EE0006FFC2368002BF5D0122002F029FD061E2E +:108EF0000DD0C12321680370457002311022023069 +:108F000002F05EFC23683100587802F0D9FD206839 +:108F100002F086FE00232360DCE7C046E065FF1F09 +:108F2000F8B504002020FDF755FB0D4EA700BB59F6 +:108F30000500002B0DD000280BD0D878FF2809D1D0 +:108F400008492A000C55F35907480333611802F009 +:108F5000B7FBF8BD290002F0BBFB0028F0D1F8E711 +:108F6000FC65FF1FE465FF1F79A1001170B5064D78 +:108F700084006359002B05D0D87802F0D9FCFF2279 +:108F80006359DA7070BDC046FC65FF1F70B50600FE +:108F90008CB00C00150000213022684602F070FBF6 +:108FA00031001022684602F073FD1D2021000322CB +:108FB000684402F06DFD6846FFF7D8FD2D210400DE +:108FC00003222800694402F063FD20000CB070BD4C +:108FD000F0B50700160097B001931CAB1D78302246 +:108FE0001EAB00910AA800211C7802F049FB102258 +:108FF00039000AA802F04CFD1022002102A802F05C +:109000003FFB0722310002A802F042FD072202AB1B +:109010009818631E9C41019902F03AFD02AB9C73C3 +:109020002B005A1E934102AAD3730021102206A8D6 +:1090300002F026FB06221D9907A802F029FD1A203E +:1090400002ABC01806221F9902F022FD10220099DF +:109050000EA802F01DFD102202AB0EA908781C78A4 +:10906000013A6040D2B2087001330131002AF5D1D3 +:109070000AA8FFF77BFD102212A904000EA802F037 +:109080009FFB102206AB0EA908781D78013A6840B4 +:10909000D2B2087001330131002AF5D10AA8FFF7D6 +:1090A00065FD044310222098E4B212A902F0F0FCFE +:1090B000200017B0F0BD70B50E0014008CB0010098 +:1090C000102268461D0002F0E3FC3100082204A8CB +:1090D00002F0DEFC2100082206A802F0D9FC684656 +:1090E000FFF744FD04001022280008A902F0D0FC7C +:1090F00020000CB070BDF8B506000D000024371933 +:10910000AC4200D3F8BD02F003FB030A3B70631CC2 +:10911000DBB201379D4203D90234F054E4B2EEE7EA +:109120001C00EDE773B506000C000225002819D0DD +:10913000002917D0032101A8FFF7DDFF6B469A79BC +:109140003F231A40013313436A463000937101A94B +:109150002200FFF71BFF051E04D10322E01C01A91A +:1091600002F02EFB280076BD03785807DA08C00FFE +:10917000D20080009B0710439B0F1843C0B270477A +:1091800007230B40C908C9000B4303707047000058 +:1091900070B50400FFF7EAFE134DA4006359002BDD +:1091A00021D0186A002801D002F03AFD2B59986EA0 +:1091B000002801D002F034FD2B59D86E002801D0D0 +:1091C00002F02EFD2B59186F002801D002F028FD67 +:1091D0002B59586F002801D002F022FD285902F0C7 +:1091E0001FFD00232B5170BDFC65FF1F0E4B80003F +:1091F000C35870B50C00002B0FD09D68002D0CD00B +:109200002B78201D0B706B784B70A97CFFF7B8FF93 +:109210002B7E23726B69E36070BD10220021200059 +:1092200002F02EFAF8E7C046FC65FF1F014B1860FC +:109230007047C046F865FF1F074A03008000825848 +:1092400010B5002A06D0D088984203D1012901D157 +:10925000FFF79EFF10BDC046FC65FF1FF0B5264E10 +:1092600095B087000B93BB590500099112200A9213 +:10927000002B31D0D888FFF7A5FB04001420002C68 +:109280002AD0280010A9FFF7B1FFBB591E781D6A2C +:10929000002E23D00895FDF7EFFA07000020FDF718 +:1092A000F1FA0790A379E61D069310AD0CA9089872 +:1092B00000F0E2FA0EA9280000F0D7FA0B9B0A99F9 +:1092C0000493069B09980293079B039601930097CA +:1092D0000EAB0CAAFFF77CFE15B0F0BDFDF7CCFA83 +:1092E00006903000FDF7CEFAE31DA779079310AB87 +:1092F00006000893DAE7C046FC65FF1F30B50C4C4A +:1093000085002A59030085B00120002A0ED01800DC +:109310006946FFF76BFF2B591A78D888054B002A4E +:1093200000D1054B6A46072100F0D9FB05B030BDDE +:10933000FC65FF1F6B9800117998001130B5094C3E +:109340008500295985B010226846253102F038FA87 +:109350002A591121044BD0886A4600F0C0FB05B0A1 +:1093600030BDC046FC65FF1F1599001130B5094C92 +:109370008500295985B010226846353102F020FA5F +:109380002A591121044BD0886A4600F0A8FB05B089 +:1093900030BDC046FC65FF1F53990011F7B54D4F16 +:1093A00086001020F4590D0002F06AFAF359206289 +:1093B000186A132200286CD0033A29009C6802F036 +:1093C000FFF9F3591A780192002A58D11E6A227DBA +:1093D000317B944651400122019F114201D16746E1 +:1093E0001740217D914339432175377B4F40BC465F +:1093F00060460027800701D44F0817400121022052 +:109400008F40227D82433A432275377B5740BC46CA +:1094100060460027400701D497080F400420227DB2 +:10942000BF0082433A432275627D0027944660461E +:10943000727B42400A4201D167460F400121627DA2 +:109440008A433A436275777B5740BC4660460027A3 +:10945000800701D457080F400220627D7F008243BD +:1094600017436775767B00227E40760701D4BA08E1 +:109470000A400426617D9200B1430A4362756A780E +:10948000002A08D06278002A05D005220533DA7751 +:1094900000221000FEBD04222979114205D1A17CD1 +:1094A000114202D10533033AF1E7019A21782C7871 +:1094B000002A02D10A002100140018220429E8D849 +:1094C000042CE6D805206043034A05331218525C89 +:1094D000DDE7C046FC65FF1F00BF001110B50A00A4 +:1094E0001121024B00F0FBFA10BDC046AF990011EC +:1094F0000B0030B587B001AD2B806B460400110026 +:10950000981D082202F05CF92A000B212000024B72 +:1095100000F0E5FA07B030BDD799001110B50A0088 +:109520001121024B00F0DBFA10BDC0462B9A00114E +:1095300013B50B0011006A4613706B460400062237 +:10954000581C02F03DF96A4608212000014B00F04A +:10955000C6FA13BD4B9A001110B50A001121024B37 +:1095600000F0BDFA10BDC0469B9A00117FB5050002 +:109570000B4BAA00D4580800002C0FD0666F237F35 +:10958000E28821780396266F0296E66E0196A46E15 +:109590000094FDF709FC2800FFF7FAFD7FBDC046E7 +:1095A000FC65FF1F10B51721FFF7E0FF10BD00009D +:1095B00070B50A000D00064B0221040000F08FFA7E +:1095C000060029782000FFF7D1FF300070BDC046AB +:1095D0007B99001170B586B000236A4613708368CA +:1095E00004001D78681E0A2859D801A902F0D8FA8B +:1095F000060633373B3F43474B4F5300180000F0FC +:1096000042F9062312284BD000281BD16088FFF7AF +:10961000D9F90823002813D04279002A47D1264BD4 +:109620001A78072312070BD5244B1A680723002A40 +:1096300006D01668002E03D0290001AAB047030007 +:109640006A4613706B461B786088002B2AD1FFF79F +:1096500067FC06B070BD180000F06CF9D4E7180084 +:1096600000F087F9D0E7180000F093F9CCE7180074 +:1096700000F0ADF9C8E7180000F0C3F9C4E718001E +:1096800000F0F6F9C0E7180000F0F6F9BCE71800A2 +:1096900000F013FAB8E7180000F013FAB4E7072354 +:1096A0006A46137069466088FFF782FFD1E7052399 +:1096B000012AC5D1024BB8E78964FF1FF465FF1F7B +:1096C000F865FF1FF8B52C4F8600F35904000D0014 +:1096D000002B40D0DA8882423DD15A78062A33D115 +:1096E0001A78002A2ED0012099681A6A097D014251 +:1096F00006D0157B054203D007225A700120F8BD21 +:109700000220014204D0157B054201D00922F4E772 +:109710000420014204D0127B024201D00B22ECE76C +:10972000164B1B68002BE9D05B68002BE6D02000AD +:109730009847BB5900215B78122BDFD12000FFF73F +:1097400015FFDBE70E4BECE7112A04D1002900D00E +:1097500032252900F2E7002D08D12000FFF732F969 +:10976000002803D01023027913430371210028003D +:10977000FDF798FAC2E7C046FC65FF1FF465FF1FBE +:10978000F865FF1F70B50E4E8500AB590400002B25 +:1097900013D01B78002B11D10A4B1B68002B04D06F +:1097A0005B68002B01D02000984773595B78122B1F +:1097B00003D100212000FFF7D9FE70BD024BECE77A +:1097C000FC65FF1FF865FF1FF465FF1F094B800054 +:1097D000C3581020002B0CD01A6A002A09D09B68AD +:1097E000002B06D0127A1B7E101C9A4200D9181C3E +:1097F000C0B27047FC65FF1F70B503000D00140078 +:109800000220002A30D000292ED013700B78081DBA +:1098100053704B789370FFF7A7FCE0700120022192 +:109820002B7A23716B7B034063716A7B0A4013437D +:10983000042263716E7B1640334363716E7BF608BE +:10984000F600334363712B7B0340A371287B0140F7 +:1098500000200B43A371297B0A401343A3712A7B89 +:10986000D208D2001343A37170BD10B50A000100E5 +:109870000120FFF7C1FF10BD10B50A000100022052 +:10988000FFF7BAFF10BD70B506000C000220002ED5 +:1098900030D000292ED07378201D0B70B3784B7018 +:1098A000F178FFF76DFC01223579257271794B1043 +:1098B000080013409340104003438810104080007C +:1098C000C9080343C9000B436373B1794B10080007 +:1098D0001340934010400343881002409200C9088F +:1098E0001343C9000B4321202373FCF773FE854209 +:1098F00001D2122070BD2220257AFCF76BFE854232 +:10990000F7D823781820042BF4D86378012BF1D8EA +:109910000020EFE7030010B50220002909D0002B3A +:1099200007D00322481C0A7019000D3201F048FFCD +:10993000002010BD03000222080010B5002B06D045 +:10994000002904D00E32591C01F03AFF0022100009 +:1099500010BD030010B50220002909D0002B07D04C +:109960000422481C0A7019000C3201F029FF002063 +:1099700010BD10B5FFF7DEFF10BD03000220002967 +:1099800006D0002B04D0052200200A701B784B70F3 +:10999000704703000220002B08D0002906D05B7816 +:1099A00000200B70013B082B00D9183070470300D2 +:1099B00010B50220002909D0002B07D00622481C30 +:1099C0000A7019000A3201F0FBFE002010BD10B52C +:1099D000FFF7B0FF10BD02000B00022010B50029F8 +:1099E0000ED0002A0CD007211970118859701188E7 +:1099F000090A997011180822D81C01F0E1FE002014 +:109A000010BD03000A00022010B5002B0CD0002965 +:109A10000AD099785878090201431180901CD91C0A +:109A2000082201F0CDFE002010BD030010B5022079 +:109A3000002909D0002B07D00822481C0A70190001 +:109A4000921801F0BDFE002010BD02000B000220A4 +:109A500010B500290BD0002A09D0092119701178FE +:109A600018185970511C062201F0AAFE002010BDE2 +:109A700010B5FFF75FFF10BD02000B00022010B50C +:109A8000002A09D0002907D0517819701118062230 +:109A9000581C01F095FE002010BD030010B50220F7 +:109AA000002909D0002B07D00A22481C0A7019008F +:109AB000063201F085FE002010BD10B5FFF73AFF19 +:109AC00010BD02000B00022010B5002A06D00029AC +:109AD00004D018005178FFF753FB002010BDF0B5FB +:109AE00085B017001E006A46062305000800918114 +:109AF0009380FEF7C0FC1324011E02900CD03800A6 +:109B0000B047041E05D1280001A9FEF76FFA041E14 +:109B100002D0029801F0ACFE2800FFF701FA200005 +:109B200005B0F0BDF0B504008BB001911500002127 +:109B3000102202A801F0A4FD334EA700B859002856 +:109B40003CD0C388A34239D10378002B36D1427868 +:109B5000062A18D102000100553235310C3006AB0F +:109B6000FFF7A9FA002829D12000FFF72FFE0200F5 +:109B700006A902A801F024FE200002A901F058FE67 +:109B800001200BB0F0BD816E002917D00B8A112A7D +:109B900028D19D420ED101981231093A01F068FF97 +:109BA000012807D1BB5920009D6EFFF70FFE290049 +:109BB0000200DEE732212000FFF7D8FC2000FEF78C +:109BC00001FF061E1BD0416A002918D00B8AAB4248 +:109BD00015D108220198123101F04AFF01280ED157 +:109BE000716A0AE09D42E9D108220198123101F020 +:109BF0003FFF0128E2D1BB59996E8A7EB9E7200068 +:109C000001F016FFBCE7C046FC65FF1FF0B56B4DC9 +:109C100087007E5985B0337802900393002B00D0E3 +:109C200087E0B368346A01937078062817D101225F +:109C30001B7D134202D0217B114218D10222134214 +:109C400002D0217B114251D10422134203D0237B45 +:109C5000134200D08BE0019B5A7DEB5991E007380D +:109C60000428F8D801F09CFF032E42678300B36EEE +:109C7000002B03D11C2001F003FEB066EB599C6E53 +:109C8000002C1CD010220021200001F0F9FC0298C9 +:109C9000FFF79CFD01002000FFF72DFA01F038FDD1 +:109CA0002082200008211230FFF725FA0298FFF7E2 +:109CB0008DFDA076EB592100D888FFF70FFC082214 +:109CC000EB591CE0B36E002B05D01A00198AF088FE +:109CD0001232FFF70DFC0222019B197DEB59114254 +:109CE0003DD0207B10423AD0073208E0F488FCF7E0 +:109CF000DBFD01002000FFF711FC0A22EB595A702E +:109D0000029B9C002A595378073B042B11D8D0881A +:109D1000FEF758FE00284ED0C3895A08D2182849A9 +:109D2000029B0298CB542B5941180433254801F06B +:109D3000C7FC05B0F0BDFCF79FFD03000120834286 +:109D400001D100200393EB59DE88FCF79BFD0399BA +:109D500002003000FFF7ECFB019AEB59117D042261 +:109D600011420CD0217B114209D00B22C7E7F688A3 +:109D7000FCF73CFD01003000FFF7EEFB6BE7019ABA +:109D8000527D01210A4204D0607B084201D00C229E +:109D9000B5E702210A4204D0607B084201D00E22BE +:109DA000ADE704210A4204D0627B0A4201D01022AE +:109DB000A5E71222A3E7FA225200B0E7FC65FF1FD5 +:109DC0000066FF1F83A1001110B5064B1A7804230B +:109DD000100018401A4200D00348FFF727FA00206D +:109DE00010BDC0468964FF1F4443FF1F70B50400C7 +:109DF000FFF7D4FA051E43D12000FFF77FFA234E68 +:109E0000A400A0598268937CDB0708D50321036A6C +:109E10001B790B40012B02D1017F0B430377431DBC +:109E2000D97F8B1E022B0DD8022900D00121C088BA +:109E3000FCF790FF042133591A7F59700A431A77AF +:109E4000280070BD01290CD102231022437000218B +:109E50000C3001F015FC305910213530FFF74BF96B +:109E6000EEE70529ECD10223D118437010220C3003 +:109E700001F0A6FC04233259117F0B431377EAE764 +:109E800008251828DCD1053DDAE7C046FC65FF1F30 +:109E9000F0B58BB0059143887E4F9E00F4591500B4 +:109EA0000493002C15D1012902D000200BB0F0BD85 +:109EB000101D57781678FFF757F9EB6832000293B8 +:109EC0002B7A0499019300903B002000FCF70CFFD3 +:109ED000EBE7E388049A934201D00820E6E7237871 +:109EE000012B00D1D4E0059B581E092800D9CFE0F2 +:109EF00001F056FE05CE0A29CC506C859AB2290095 +:109F00000498FFF773FFD1E72000290010224530A5 +:109F100001F056FCB9594B78042B02D1013B4B7030 +:109F2000C3E70B000A00253335320C310498FFF7E4 +:109F300095F90498FFF702FA0522431E9841BB5990 +:109F4000C0005A70B2E7200029001022553001F0FD +:109F500037FC049B4F4C9D00295904980A0006AB1E +:109F600055320C31FFF77AF929591022453106A8EC +:109F700001F07EFD012808D10498FFF7F7F905905C +:109F8000002804D106222B595A7005988EE7082321 +:109F90000593FAE763780C2B7AD1E36E002B03D19B +:109FA0001C2001F06DFCE066BB59D86E00286FD014 +:109FB0001022290001F004FCBB590498DC6EFFF765 +:109FC00005FC0D22A076BB595A706EE7E06E0028A2 +:109FD0005ED063780D2B5BD12B8808220382A91CED +:109FE000123001F0EDFBBB599A68517D02221142FB +:109FF00026D0186A407B104222D00C32E4E7637806 +:10A000000E2B45D1236F002B03D1162001F038FC15 +:10A010002067BB59186F002803D01022290001F0D7 +:10A02000CFFB0F22BB59CFE763780F2B30D1206FC6 +:10A030000622691C103001F0C3FBBB599A68517DA0 +:10A040000422114203D0196A497B1142D5D1002163 +:10A050000498FFF78BFA28E7636F002B0DD0BB59EC +:10A06000586F0028F3D01022290001F0A9FB01222B +:10A07000BB5952425B6F1A61E9E7142001F000FC02 +:10A08000BB5960675B6F002BE9D126E72978DFE7D2 +:10A0900007200BE7FC65FF1F10B5064C207001F090 +:10A0A0007FFB06212078FDF791FF0348FEF778FC3F +:10A0B00010BDC0460F66FF1F3992001100200BB281 +:10A0C00070B50D00834216DA264B187801F0A8FB14 +:10A0D000041E0DD00378922B0ED0A02B37D0224B2C +:10A0E0001878FF283AD0210001F0EAFC002835D189 +:10A0F00080200002684070BD43780E2B0BD03E2BB1 +:10A10000EDD18378052B12D0082BE8D18179808896 +:10A11000FFF7D8FA08E0154B82889A42DFD18368AE +:10A120001878591CFEF7C0FE002817D1D7E7104B4E +:10A130001B785B0712D50F4B1B68002B0ED09B685A +:10A14000002B0BD0C289811D80889847ECE7FFF770 +:10A1500041FAA068002801D001F08AFB200001F03C +:10A1600087FDC5E70F66FF1F3D43FF1F1820000056 +:10A170008964FF1FF865FF1F10B50078FFF712FA1A +:10A1800010BD10B50078FFF7FDFA10BD0C23434356 +:10A19000084A10B59B185A68002A03D0012901D13A +:10A1A000904710BD9B68002BFBD00029F9D1984740 +:10A1B000F7E7C0462C66FF1F01238340094A10B50C +:10A1C000946B1C439463506B98435063D46B200092 +:10A1D0009843012901D120001843D063116B0B4330 +:10A1E000136310BD00800040F0B500240127154B1B +:10A1F00085B0DA6B144E03921A6C0192DA64019BFB +:10A20000E3403B4217D0039DE5403D400295E5B257 +:10A2100002992800FFF7BAFF316A736A002908D053 +:10A220003900002B01D0029979402800FFF7C4FFC4 +:10A2300001E0002BF9D101340C36172CDFD105B029 +:10A24000F0BDC046008000401066FF1F064B012194 +:10A250005A68C2400A4204D01B68C3401800084034 +:10A2600070471B6DF9E7C046008000400122064B95 +:10A270008240002903D0D9680A43DA607047D96860 +:10A280009143D960FAE7C0460038004030B5032456 +:10A2900044430F4BE25C1B199C785D7801232D1B16 +:10A2A0000135AB40013BA340A140DB430C00122829 +:10A2B00007D80849920052181168194021431160CB +:10A2C00030BD054A11680B4023431360F8E7C046D0 +:10A2D00047BF001108F0004014F00040C21F70B5E5 +:10A2E000D4B20623092C0BD80125084C954000292F +:10A2F00008D00021FFF7CAFF23682B432360002307 +:10A30000180070BD2368AB43F8E7C0460038004032 +:10A31000214BF0B51B185B78022B21D10324444359 +:10A320001E4A1F4EA35C1219947801221500854025 +:10A33000B76B013CE4B23D43A240B563194C12280F +:10A3400015D89B0000290CD117495B1899680A435E +:10A350009A600123205C154A834011680B43136007 +:10A36000F0BD11495B18996891439960F1E70E4B74 +:10A3700000290DD159690A435A61225C1328E8D09B +:10A380000123203A93400A49086803430B60E7E73A +:10A39000596991435961F0E71066FF1F47BF0011EB +:10A3A000008000408CBF001100F00040A0F0004091 +:10A3B000A4F00040F8B500241B4E1C4D1C4B1B5D47 +:10A3C000012B1FD1194A9269E2401A420BD0012297 +:10A3D000B25693402200143AD2B2022A09D8154943 +:10A3E0004A6913434B61013402360C35172CE5D111 +:10A3F000F8BD0022B2560F499200521891680B43E3 +:10A400009360F0E7022BEED1E7B23800FFF71EFFB2 +:10A4100001235840C1B23800FFF77AFF3800FFF738 +:10A4200015FF6877DFE7C04619BF00111066FF1FF0 +:10A430001166FF1F00F00040012202388240054BE8 +:10A44000002903D059690A435A61704759699143F9 +:10A450005961FAE700380040F8B50E0001210F00FD +:10A460008740114A0400D368FD43BB43D360831E79 +:10A470008B4201D8FFF7E0FF00212000FFF72EFFFD +:10A480000A4A0B4B5168012E05D139431B19516003 +:10A490005E700020F8BD2940516002221C196270D4 +:10A4A0009A6915409D61F4E7003800400080004043 +:10A4B0001066FF1F012210B58240074B002906D00D +:10A4C00019680A431A600121FFF7C6FF10BD196819 +:10A4D00091431960F7E7C046008000400C2370B537 +:10A4E000002543430A4A29009B181D70094B0400AC +:10A4F0001B185D70FFF7B0FF0123A3400649280039 +:10A500000A681A430A6005490A689A430A6070BDDE +:10A510002C66FF1F1066FF1F348000403080004013 +:10A5200070B504000E00FF2813D003250540FFF787 +:10A53000D5FF084AA3089B009B183F22ED00AA40C4 +:10A54000AE40196820009143314319600121FFF7A3 +:10A550008DFE70BD18380040F8B50C244443134BF1 +:10A560000500E4186368002B03D1A3681220002BB8 +:10A570001AD0022201270E4B00215B195A702800C5 +:10A580002770FFF769FF63681E1E08D0A3683E00AE +:10A59000002B04D02800FFF759FE4640F6B22800F1 +:10A5A0003100FFF709FE0020F8BDC0462C66FF1FF2 +:10A5B0001066FF1FF7B5C420FF222B4B80001958EF +:10A5C000002491433F3A0A431A508022274F5202F7 +:10A5D000274E1A60274B1D5D002D21D0A31E012B95 +:10A5E00003D80121E0B2FFF727FF012D18D11F4B3F +:10A5F0009B69E3402B4213D0E3B218000193FFF7AD +:10A6000025FE01000198FFF755FFE3B2143B022B32 +:10A610001DD801217156184A8D405369AB435361CF +:10A620003B7F002B0DD0E5B22800FFF795FF2800F7 +:10A63000FFF70CFE7B7F0100834202D02800FFF76A +:10A64000A5FD01340C370236172CC3D1F7BD01210B +:10A6500000237156F3568D40074A9B009B189A6859 +:10A66000AA439A60DCE7C04600E100E01066FF1FE5 +:10A6700019BF00111166FF1F00F0004070B50E00F9 +:10A6800015000400FFF72AFF0C236343094A20004A +:10A690009B189D605E60FFF75FFFF021064B074A45 +:10A6A0008900051E5A5002D02000FFF717FF28002E +:10A6B00070BDC0462C66FF1F0000FF1FE9A10011FE +:10A6C00070B5134D07202C78002C1FD19822210043 +:10A6D0005200280001F05CF90123C420FF222B70F6 +:10A6E0000C4B80001C635C630B4B1C605C600B4B71 +:10A6F000195891433F3A0A431A50802252021A6075 +:10A700000D20074A074901F04BF9200070BDC046F3 +:10A710001066FF1F00800040A0F0004000E100E054 +:10A72000B5A50011B5A30011030010B50620072B35 +:10A7300009D8054A137001F03BFAD7210020034BDA +:10A74000034A89005A5010BD6C43FF1F0000FF1FD1 +:10A75000D91AFF1F70B51D0002240C2910D8094A10 +:10A76000CA40D2070CD5FBF741FF041E08D1059A59 +:10A7700004992800FBF756FFFCF7C4FDFFF724FB04 +:10A78000200070BD1210000030B50D7802232C009F +:10A790009C43184201D02B431C0008252300AB43E7 +:10A7A000284201D02B00234320241D00A543204232 +:10A7B00001D01C4325002A230D70184204D01178C3 +:10A7C0001E3B0B43137030BD0028FCD10C211378C5 +:10A7D0008B43F7E7F8B51D0006AB1B88140007AAEA +:10A7E0000E000B201778002B27D10A78022A49D1B6 +:10A7F0004A68507811780002244A084380180428D7 +:10A8000040D801F0CDF903121D1B2300F06801F0C0 +:10A81000E7F9021CC0B2B84200D93A1CD2B22000FB +:10A82000F1682A8000F0CCFF06E00222F3681B8862 +:10A830002A8023701B0A63700020F8BD0622EEE711 +:10A8400001232B80F3681B782370F5E7F368002B56 +:10A8500016D008222A801A8822701A88120A62707A +:10A860005A88A2705A88120AE2709A8822719A88CD +:10A87000120A6271DA88A271DB881B0AE371DBE7D6 +:10A880002B80D9E701202B80D7E7C04600D6FFFFF9 +:10A89000F7B516000A781D0008AB1F880C000123CD +:10A8A000022A18D14A685078117800022B4A0843CE +:10A8B000801803280FD801F073F902254439E068A5 +:10A8C00001F08EF9C0B20723B84204D37B1901937B +:10A8D000152B02DD0D231800FEBDE0682A003100B3 +:10A8E000C01900F06DFF6B4600209B88E268D054D1 +:10A8F0001B4B1B68834203D01B68834200D09847E0 +:10A900000023E8E70B23002FE5D1022DE2D1737875 +:10A9100032781B021343E2681380114B1B68002B33 +:10A92000EED01B68002BEBD00120E8E70B23002FB3 +:10A93000D1D1062DCED12A003100E06800F040FFD1 +:10A94000DEE70B23002FC6D1012DC3D1327875333A +:10A95000012AC0D8E3681A70D2E7C04600D6FFFFCC +:10A960001C68FF1F70B50C001500072837D801F0D0 +:10A9700017F9041436361B36242E182015290BD847 +:10A98000184E16220021300000F07AFE2200290025 +:10A99000300000F015FF002070BD18200229FBD107 +:10A9A0001288114B1A80F6E718200829F4D10A0002 +:10A9B0000E48290001F0B4F8EDE718200129EBD189 +:10A9C0000B4B10780B49DA69FFF7DEFEE3E718203E +:10A9D0000129E1D1064B10780749DA6BF4E7022030 +:10A9E000DAE7C0460468FF1FEA43FF1FE043FF1F8A +:10A9F0007043FF1F9843FF1FB843FF1F030010B5AC +:10AA00000020DB0704D50721024A034800F08CF838 +:10AA100010BDC046A4BF00117043FF1F054A0300CC +:10AA20001068002803D082889A4201D1806870475C +:10AA30000068F6E7146AFF1F0A88030008009A42BC +:10AA400004D08A8804309A4200D000207047000069 +:10AA5000F8B5F22200230D4F0D4E796805004243F0 +:10AA60003370994200D07B600A4C0021200000F036 +:10AA700007FE00231A007C60AB4202D10020337035 +:10AA8000F8BD01332280DBB2F234F5E70C6BFF1F17 +:10AA90000A6BFF1F186AFF1F73B56B460190060013 +:10AAA000684615001980FCF75FFF041E11D1002DC8 +:10AAB0000FD07689002E11D00C2000F0E1FE002886 +:10AAC0000ED0084A0460136886808560002B02D18E +:10AAD0001060200076BD1A001B68F7E70224F8E733 +:10AAE0001324F6E7146AFF1F012100220A4B10B558 +:10AAF00049420A4C198099809A719A70084B2070CB +:10AB0000012019805A60FFF7A3FF2078FCF78AFF25 +:10AB10000448FDF745FF10BD2468FF1F146BFF1F9D +:10AB20000C6BFF1FD5AB0011022310B5002802D01B +:10AB3000FFF7B2FF0300180010BD0000030010B5BE +:10AB40000020DB0704D50421024A0348FFF7A4FFD5 +:10AB500010BDC046B8BF0011F043FF1FF0B50E2670 +:10AB600087B003930CAB1F8802ABF61805000800F2 +:10AB700031000292FDF77AF804000120002C0FD07A +:10AB80003088FFF74BFF03000E20002B08D05E68D3 +:10AB9000002E05D021002800039B029A0097B047A1 +:10ABA00007B0F0BD0A4B10B5984207D1012200232F +:10ABB00052420A808B708A808B7110BDFFF73CFF78 +:10ABC0000028FAD001235B42038000238370F4E75E +:10ABD000FFFF0000F8B5050001290AD1134E00243B +:10ABE0003388F227AB4219D028001149FFF7DAFF6A +:10ABF00006E0022904D10139FDF750FF0028EDD00D +:10AC0000F8BD3B0063437268D018D35A002B09D0BB +:10AC10003A00002100F034FD0134E4B2054B1B780A +:10AC2000A342EED801235B423380DDE70C6BFF1FAC +:10AC30002468FF1F0A6BFF1F10B5FFF7FDFE03001E +:10AC40000020834200D0987810BD0000F0B589B094 +:10AC50001C000EAB80CB03901E8810AB1B780492B7 +:10AC600002930B7A0D00DB0616D42B780593022B8A +:10AC700024D00498FFF7D2FE002812D003689C4627 +:10AC8000002B0ED0029B2200019329003B0064465A +:10AC900003980096A04705E00498FFF7BFFE002840 +:10ACA00002D10E2009B0F0BD8368002BF9D00A2232 +:10ACB0002900039898470028D7D0F3E76B685878A5 +:10ACC0001A786B4B000210439842D2D8043B98424A +:10ACD00010D2684B984242D015D8674BC018012853 +:10ACE000C7D80B20002EDDD1EB681A7859683A805E +:10ACF000200028E0614BC018032800D979E000F05B +:10AD00004FFF846A789E5E4B9842B2D10B20002E92 +:10AD1000C8D101233B80EB6831001B782370688920 +:10AD2000013080B2FCF7A2FF3A88031E0ED00178F2 +:10AD300002328A183A80428962704289120AA270ED +:10AD400059680278E01C00F03BFD06E004323A80CE +:10AD500031000422601C00F093FC0020A2E70B20CD +:10AD6000002E9FD1EB6807A91E8804233B80330A7D +:10AD7000300026706370FCF779FF051E28D004AB05 +:10AD80009A890E2304A95B183E49C668FCF7E2FFC6 +:10AD900000280BD12B783C486A680599FBF798FB93 +:10ADA000002803D1012304AA5B42D3813278022A0E +:10ADB00006D17168201D00F003FD3B8802333B8003 +:10ADC0000E2304AA9B181B88A3701B0AE370C4E718 +:10ADD00004ABDE81F4E70B20002E00D062E7E968C7 +:10ADE0000398FFF729FF02233B802070000A607060 +:10ADF000B3E70B20002E00D054E70222EB681B883B +:10AE00003A8023701B0A6370A7E7E86800F0E8FE49 +:10AE1000C2B203000720B24200D243E70DD002992C +:10AE2000DBB27118994202DB921BD3B20293029BF0 +:10AE3000E9681A003B8089195AE70023F6E70B20DE +:10AE4000002E00D02EE70722EB683A801A78227095 +:10AE50005A7862705A88A2705A88120AE2701A7977 +:10AE60002271DA886271DB881B0AA37175E7C0461C +:10AE7000042900000228000000D8FFFFFFD6FFFFD2 +:10AE800003280000FFFF0000E8BE0011F0B58DB000 +:10AE90006B460020089120229B5E83423DDAA64B40 +:10AEA000187800F0BDFC071E32D00378B02B2CD1EF +:10AEB0000079023816281FD800F04AFD17001E003E +:10AEC0001E001E0031001E0096001E001D011E0007 +:10AED00052011E0073011E00CD011E0050021E0013 +:10AEE0001E001E008E021E00E302944B94491B8834 +:10AEF00078880B80FBF72CF83800FCF7ADFF914BFE +:10AF00001B68002B01D038009847380000F0B0FED5 +:10AF10008020089B0002434018000DB0F0BDEE22D7 +:10AF20000021874800F0ACFB0BAA3B7B798938896C +:10AF300000923A000D32FCF7B1FD0400804B1B7803 +:10AF4000002C3FD146E0804B788805937F4B410031 +:10AF5000CB5A0BAE073BDBB232880293002301933E +:10AF60007B4B210006930093059BFFF76FFE744D0A +:10AF7000002810D1069B3A8A1B889A420BD13800D0 +:10AF80000599123000F074FD002804D02B786289F6 +:10AF90009B00EB185A80162306A81B183288200045 +:10AFA0007989FCF7D7FE2B7804009A00AA185188FB +:10AFB0000029C3D00133DBB22B70002807D006A9CB +:10AFC000C98A9180634A12889A42BCD802E0012162 +:10AFD00049429180002B04D059497888FAF7ECFF58 +:10AFE0008AE73E890A2479E000253E89574B06937B +:10AFF0007B88069A5B009B5A033B9D4202DB002D37 +:10B00000F0D05BE0162206A812183B7B79890092EB +:10B010003A0030000D32FCF741FD0590002858D071 +:10B020004689017A7888FCF703FD041E44D1464B1B +:10B0300078880793069B4100C95A454B0439C9B229 +:10B0400006AAD28A06930291019400930599079B60 +:10B05000FFF7FCFD041E2FD1069B39491A88931C6B +:10B06000002D26D14B807988384B4900CB5A511995 +:10B07000033B8B4220DD059B31485B8941190B71F5 +:10B08000A91C0135C9B2EDB2059145191B0A2B71F6 +:10B09000059B2D490433181800F092FB2C4B059AA0 +:10B0A0001B88D318DDB22C4B9E4205D00136B6B2B8 +:10B0B0009CE749889942D6D0002D0CD0204C28001E +:10B0C000618800F05DFB207021007888FAF784FF2A +:10B0D00012E7059CF0E7002C00D183E77B78142B66 +:10B0E00000D109E716493B794E800B700C717888C6 +:10B0F000FAF724FF00E7162406ABE418210038898C +:10B10000FCF7B4FD011E00D1B7E1788822880F4C0E +:10B1100045002C5B0A4D013CE4B2029400240F4B25 +:10B1200001940095FFF792FD041E00D014E1290060 +:10B130007888FAF761FFDFE6146BFF1FDC42FF1F20 +:10B140002C68FF1F2068FF1F2069FF1F5C64FF1F22 +:10B15000106AFF1FDA42FF1FFFFF00002E68FF1F6B +:10B16000162406ABE41821003889FCF77FFD011E88 +:10B1700000D182E178882288AE4C45002C5BAE4D30 +:10B18000013CE4B202947C89AC4B01940095FFF73A +:10B190005DFD041E00D0DFE029007888FAF736FF55 +:10B1A000AAE60025A44B1D803B00F6331B78A24A7B +:10B1B00078880792AB4208D99E4B1288069306996D +:10B1C00043005B5A013B9A4203DB0799FAF728FFD9 +:10B1D00092E616246B00FB18059306ABE418059B5A +:10B1E00021001889FCF742FD011E03D1059B0124B3 +:10B1F0001E8973E77888924B2288069C0993430046 +:10B200001B5B904E013BDBB202930023009601933F +:10B21000099BFFF71BFD041E02D0059B1E895DE7FD +:10B220007B88069A5B009B5A079A1088328812180E +:10B23000934202DC1B1A013B33807F4C0230328880 +:10B240000999001900F0BCFA2388328801359B184F +:10B250002380EDB2A8E70BAA3B7B7989388900925D +:10B260003A000D32FCF71AFC00250590059B002BD7 +:10B2700004D10A24002D00D16EE060E0059B78889F +:10B28000197AFCF7D5FB0100041E63D1694C6C4BA5 +:10B29000788806940993069B4400E45A694B063C5F +:10B2A000E4B20BAE328807930294019100930599A2 +:10B2B000099BFFF7CBFC041E4CD1079B5E491B8802 +:10B2C0001A1D002D30D14A80059B5B4C5A896319A9 +:10B2D0001A716B1C9BB2E318120A1A71162306A886 +:10B2E00032881B1879890598FCF734FDFF21AA1CC8 +:10B2F0002E1D03350B00059092B2B6B2ADB20028F8 +:10B3000003D006ABDB8AD9B21B0AA21865191171EA +:10B310002B714C4D301D2A884949201800F050FAF5 +:10B320002B88F618B5B2A1E74988914207D17A88EF +:10B3300006995200525AEB18053A9A42C4DC3E4C28 +:10B340002800618800F0D4FB207021007888FAF78B +:10B3500071FED1E5002DF2D13E89BFE6162606AB7F +:10B36000F61831003889FCF781FC3D000400FA35FD +:10B3700000282DD0037A9B060CD400227B893989C2 +:10B38000788800923A000C32FFF7E8FB041E10D0D8 +:10B390003E8915E03088FFF741FB00281AD083680A +:10B3A000002B17D02100122278889847041EE4D081 +:10B3B000EEE72B78002B02D17888FAF74BFE0026B7 +:10B3C0002B78002B00D097E5002C00D194E585E682 +:10B3D0000124DDE70E24DBE7162506ABED18290076 +:10B3E0003889FCF743FC041E47D0037A9B0611D42E +:10B3F000154A7B881188994203D01448814207D1AD +:10B400001380134BF2261D780023D9B2A94221D311 +:10B410000924A1E72888FFF701FB00282FD08368C3 +:10B42000002B2CD02100122278889847041EDFD0F0 +:10B4300092E7C0465C64FF1F2C68FF1F2E68FF1F49 +:10B440002069FF1F106AFF1F0C6BFF1FFFFF00002A +:10B450000A6BFF1F31005943546801336018615A69 +:10B460000029D2D13C0008342100F22200F0A8F9D2 +:10B4700021007888FAF7F6FD3EE501246CE70E24FA +:10B480006AE71D4B1A887B889A4231D07888FAF790 +:10B49000F3FD31E5F223059851684343CD18C95AAD +:10B4A00000291FD03B7A012B0BD16C88AB887888A0 +:10B4B000AA1D0094FFF752FB041E02D000233B722A +:10B4C0002E88F2220021280000F0DAF800232B80D9 +:10B4D000059B0133DBB20593084B05991B78064A9F +:10B4E0008B42D7D801235B421380002CCED0F5E5E8 +:10B4F000002634000596EFE70C6BFF1F0A6BFF1F59 +:10B5000070B504000E001500FFF796FA031E08D16F +:10B5100031000548FFF790FA03001120002B02D0FC +:10B520001C8000209D7070BDFFFF0000F8B50B4F20 +:10B5300006003B780D001400FF2B0ED00A2000F00F +:10B54000FFF9011E09D0B123038000234680037157 +:10B55000C5800481387800F0B3FAF8BD3144FF1F8C +:10B56000F7B50F0008A90600088809A90B24098867 +:10B57000002821D10234022B1ED1557813782D02D8 +:10B580001D432B008B4301937334002B14D1FB68B4 +:10B59000300019000093FFF74FFB019C85420BD050 +:10B5A0002A0030000099FFF7ABFF041E04D12A00E7 +:10B5B00030007989FFF7BAFF2000FEBDF0B50E78A4 +:10B5C00085B003900AA805880120022E0DD14C6891 +:10B5D0002778647824023C43054FBC4205D1039888 +:10B5E000DBB201960095FFF7BBFF05B0F0BDC0468A +:10B5F00002290000034B10B51B68002B00D09847B0 +:10B60000FEE7C046186BFF1F07B501A8FFF7F2FF62 +:10B61000044A05480021121A00F0BAF9F8F7EAF8CE +:10B62000FEE7C0461C6BFF1F3444FF1F00000000F4 +:10B6300001B40248844601BC604700BF9D35FF1F2E +:10B6400001B40248844601BC604700BF4550000079 +:10B6500001B40248844601BC604700BF3D180000A9 +:10B6600001B40248844601BC604700BF193BFF1F7C +:10B6700001B40248844601BC604700BF0132FF1F8D +:10B6800001B40248844601BC604700BF154D01006B +:10B6900001B40248844601BC604700BFEDA500002C +:10B6A00001B40248844601BC604700BF456B0100FD +:10B6B00001B40248844601BC604700BF85520100C6 +:10B6C00001B40248844601BC604700BFA94601009E +:10B6D00001B40248844601BC604700BF51470100E5 +:10B6E00001B40248844601BC604700BFC135FF1F5A +:10B6F00001B40248844601BC604700BF35550000D4 +:10B7000001B40248844601BC604700BF59520100A1 +:10B7100001B40248844601BC604700BF29510100C2 +:10B7200001B40248844601BC604700BF7139FF1F65 +:10B7300001B40248844601BC604700BFC51D00003B +:10B7400001B40248844601BC604700BF4D1F0000A1 +:10B7500001B40248844601BC604700BF2932FF1F84 +:10B7600001B40248844601BC604700BFF94C0100A7 +:10B7700001B40248844601BC604700BF1930FF1F76 +:10B7800001B40248844601BC604700BF350E00008A +:10B7900001B40248844601BC604700BFDD66010079 +:10B7A00001B40248844601BC604700BFC9260000BE +:10B7B00001B40248844601BC604700BFC5210000B7 +:10B7C00001B40248844601BC604700BFE94C010057 +:10B7D00001B40248844601BC604700BF5118FF1FF6 +:10B7E00001B40248844601BC604700BF75A900004F +:10B7F00001B40248844601BC604700BF156B0100DC +:10B8000001B40248844601BC604700BF8B5201006E +:10B8100001B40248844601BC604700BFC94A010028 +:10B8200001B40248844601BC604700BFF54E0100E8 +:10B8300001B40248844601BC604700BF311B0000D0 +:10B8400001B40248844601BC604700BFD92FFF1FE6 +:10B8500001B40248844601BC604700BF090E0000E5 +:10B8600001B40248844601BC604700BF0539FF1F90 +:10B8700001B40248844601BC604700BFD9490100B9 +:10B8800001B40248844601BC604700BF3D4B010043 +:10B8900001B40248844601BC604700BF0124000097 +:10B8A00001B40248844601BC604700BFC9A900003A +:10B8B00001B40248844601BC604700BF5D17000028 +:10B8C00001B40248844601BC604700BFED4A010054 +:10B8D00001B40248844601BC604700BFC12FFF1F6E +:10B8E00001B40248844601BC604700BF792DFF1FA8 +:10B8F00001B40248844601BC604700BFED39FF1F18 +:10B9000001B40248844601BC604700BF1D4B0100E2 +:10B9100001B40248844601BC604700BFE54800000E +:10B9200001B40248844601BC604700BF791800009A +:10B9300001B40248844601BC604700BF11470100C2 +:10B9400001B40248844601BC604700BF1D4D0100A0 +:10B9500001B40248844601BC604700BF413BFF1F61 +:10B9600001B40248844601BC604700BF017F00006B +:10B9700001B40248844601BC604700BFB54C0100D9 +:10B9800001B40248844601BC604700BF2526000080 +:10B9900001B40248844601BC604700BFB70E0000F6 +:10B9A00001B40248844601BC604700BF6130FF1FFC +:10B9B00001B40248844601BC604700BFF30E00009A +:10B9C00001B40248844601BC604700BFD91B000097 +:10B9D00001B40248844601BC604700BF65710100A4 +:10B9E00001B40248844601BC604700BF056A0000FC +:10B9F00001B40248844601BC604700BF4D38FF1FB8 +:10BA000001B40248844601BC604700BF8D120000AB +:10BA100001B40248844601BC604700BF0D520100DA +:10BA200001B40248844601BC604700BF4537FF1F90 +:10BA300001B40248844601BC604700BF091B0000F6 +:10BA400001B40248844601BC604700BFA54F010015 +:10BA500001B40248844601BC604700BFE117000002 +:10BA600001B40248844601BC604700BF7D18FF1F37 +:10BA700001B40248844601BC604700BFCD4C0100C0 +:10BA800001B40248844601BC604700BFC52DFF1FBA +:10BA900001B40248844601BC604700BF4551010023 +:10BAA00001B40248844601BC604700BF5933FF1F00 +:10BAB00001B40248844601BC604700BF6DBC000071 +:10BAC00001B40248844601BC604700BF594F0100E1 +:10BAD00001B40248844601BC604700BF055E000017 +:10BAE00001B40248844601BC604700BF291C000025 +:10BAF00001B40248844601BC604700BF090E000043 +:10BB000001B40248844601BC604700BF350E000006 +:10BB100001B40248844601BC604700BF691F0000B1 +:10BB200001B40248844601BC604700BF810E00009A +:10BB300001B40248844601BC604700BF55220000A2 +:10BB400001B40248844601BC604700BFE9280000F8 +:10BB500001B40248844601BC604700BFC56D0100C6 +:10BB600001B40248844601BC604700BF9DA90000A3 +:10BB700001B40248844601BC604700BF2146010071 +:10BB800001B40248844601BC604700BF851F000025 +:10BB900001B40248844601BC604700BF9136FF1FD4 +:10BBA00001B40248844601BC604700BF2D3BFF1F23 +:10BBB00001B40248844601BC604700BFD91AFF1F88 +:10BBC00001B40248844601BC604700BF9135FF1FA5 +:10BBD00001B40248844601BC604700BF2124000034 +:10BBE00001B40248844601BC604700BFDD52010039 +:10BBF00001B40248844601BC604700BF8538FF1F7E +:10BC000001B40248844601BC604700BFADAE0000ED +:10BC100001B40248844601BC604700BFB352010032 +:10BC200001B40248844601BC604700BF014C0100DA +:10BC300001B40248844601BC604700BF5549010079 +:10BC400001B40248844601BC604700BFB14E000009 +:10BC500001B40248844601BC604700BF5125000082 +:10BC600001B40248844601BC604700BFC538FF1FCD +:10BC700001B40248844601BC604700BF434D010047 +:10BC800001B40248844601BC604700BF3938FF1F39 +:10BC900001B40248844601BC604700BF193AFF1F47 +:10BCA0000003010302020303040205000602070069 +:10BCB000080009020A030B030C000D000E030F031A +:10BCC000100311031300140015031603C93B0011E0 +:10BCD000FD3B00110000000002000000E2BC00116A +:10BCE000192A0F180A000000F1590000FD24000075 +:10BCF00041460100A9800011BDA00011117500117D +:10BD0000AD7E00111D5300118DAE0011854F001145 +:10BD1000D93D0011093F0011000000001616000077 +:10BD2000020000002CBD0011F4FFF3FFD2FC000064 +:10BD300049400011000000000000000054757961C6 +:10BD40000042312E35003030313800676974687533 +:10BD5000622E636F6D2F70767678005448303544CC +:10BD6000000000000200000078BD0011292A282AE6 +:10BD7000272A262A252A242A0A180000E20400007D +:10BD80007102000078EC00007440000010270000F1 +:10BD900060F0000006640000204E0000000000007B +:10BDA000050000001F501D00023CB40000011800F7 +:10BDB00015000000A102000030313233343536372F +:10BDC00038394142434445460000000021570011E4 +:10BDD000755700110000000002000000E4BD0011D2 +:10BDE0006F2A6E2A1A18EAD8BC80F0FC60000000A6 +:10BDF0000000000000005F066B2F363D7D077F3F8F +:10BE0000777C596E7971AF066D4FC6CBEB0EEFCFD5 +:10BE1000EEC3A966E9E8FA60D6F46CBCBEE0FEFCAD +:10BE2000EE3E9A769E8E000001A000000000000009 +:10BE30006410B71DC8206E3BAC30D9269041DC762B +:10BE4000F4516B6B5861B24D3C7105502083B8EDD5 +:10BE500044930FF0E8A3D6D68CB361CBB0C2649BF9 +:10BE6000D4D2D38678E20AA01CF2BDBDFB349B5F1E +:10BE7000800000800010000000000000136100112D +:10BE80009D77001137610011A57B0011BB61001186 +:10BE90007B7B001131620011517B00118362001124 +:10BEA000197D0011EB620011197D00111D63001155 +:10BEB000D37C001131620011097B0011A9620011CD +:10BEC000B17C001100000000000000008F63001131 +:10BED000B17C0011F1630011B5770011052A042A25 +:10BEE000012A002A02290328012800280118001825 +:10BEF00000000000000000000000000000000087BB +:10BF00000101020102010102010203030401030114 +:10BF1000010101010303020103000D000E001000E6 +:10BF2000110013001401070108010A010B011C0193 +:10BF30001D02040205020702080219021A021C026D +:10BF40001D03010302031700020100050400080796 +:10BF5000000B0A001716001D1C0102010105040157 +:10BF60000E0D011110011413011716011A19020206 +:10BF700001020B0A020E0D02111002141302171611 +:10BF8000030504030807030B0A030E0D0001020357 +:10BF900007090A0B0E0F101112141718191A1B1F7C +:10BFA00020212200D5A7001191A800110000000057 +:10BFB00002000000EEBE001100000000BDB500113F +:0CBFC0000000000002000000ECBE0011B8 +:020000041FFFDC +:1000000000000000413D0011E8BC0011E4BC0011FB +:100010004061FF1F00000000000000000000000021 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:100190004D32FF1FAD30FF1FC1660100000000009F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:1003700009B60011000000000000000000000000AD +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000591AFF1FBC +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:08183800206FFF1F4118FF1F84 +:10184000024981F3088802F04FFB0000206FFF1F60 +:1018500010B502F0B1F9072804D0122808D00228E8 +:1018600008D010BD044A0420136B01331363F8E75A +:101870000220F6E71420F4E70465FF1FF8B507001F +:101880000C0026002500503630785135002804D150 +:101890000300287058342370F8BD2978CA00481E08 +:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 +:1018B00000280DD12B78DA00A218013350602B706C +:1018C0003378044A013B3370136A01331362D8E75B +:1018D0000123DFE70465FF1F5C234343074910B57D +:1018E000C9180B0058331B78012B05D1FFF7C6FF31 +:1018F000034A936A0133936210BDC0463865FF1FE7 +:101900000465FF1F10B502F0C7FA064A0121130053 +:1019100010CB4942D967044B136002F09DFB2000B5 +:1019200010BDC04600E100E01000100010B504003A +:1019300002F0B2FA024B1C6002F08EFB10BDC046F2 +:1019400000E100E0431E5A425341A022F0B5D2010B +:101950005B421340154D164A40019B182A18127E0F +:101960008BB00191002A1BD01A000832D46F0022DC +:10197000E6B206AFE4B294420EDC2818C369002B2D +:1019800008D0019902AA117106AA049202AA16733C +:1019900003A898470BB0F0BD1978B9540132EAE7B3 +:1019A0001A7D1A7806AB01261A70E6E7C467FF1F96 +:1019B00000400040F0B5254B04004001C25C85B0FA +:1019C000002A2BD01A18117E002927D0917E0029D9 +:1019D00024D01179022921D11689D788D168F51B25 +:1019E000ADB22A1C102D00D9102292B2BE4217D1DE +:1019F0001818012303710023C269C38003819A422E +:101A000006D06846032103730171029301A8904731 +:101A10000820002C00D0192001F0FEFA05B0F0BD1E +:101A2000013C65426C41A0256442ED012C40084D0B +:101A30001B186419074D0633013A92B2AA42EDD041 +:101A40001888461C1E80085C2070F5E7C467FF1FDD +:101A500000400040FFFF00000F220E4B10B59868B9 +:101A6000104002380A280BD802F060F80D0A0B0A61 +:101A70000A110A0A0A0A060002210020FFF762FF83 +:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 +:101A9000F6E7C046004000400F220E4B10B5986894 +:101AA000104002380A280BD802F040F80E0A0B0A40 +:101AB0000A120A0A0A0A060002210120FFF742FF61 +:101AC00010BD01210800F9E70120FFF773FFF7E7D8 +:101AD000DB6FF5E70090004013B5334C2378072BFC +:101AE0003DD8324B1A78324B002A39D180221968FE +:101AF00052020A431A60252001F0C4FE20232D4A19 +:101B000011680B43802113606B460422C9050868E5 +:101B10000733104228D080210422C905C86810422A +:101B20002ED080212020C905CA688243CA601422B1 +:101B30001A701A78002A2FD18021C905C86820326E +:101B40000243CA6014221A701A78002A28D11A4B4C +:101B50001A7D22785A601D221A705932DA6013BD3C +:101B60001A6816490A40C5E7086802430A60142249 +:101B70001A701A78002ACED01A78013AD2B2F7E752 +:101B8000C8680243CA6014221A7019784A1ED2B279 +:101B90001A700029F9D1C4E71A78013AD2B2C7E71E +:101BA0001A78013AD2B2CEE76C43FF1F3444FF1FCC +:101BB0003CF000406443FF1F00200040FFFFFEFF99 +:101BC000564B70B51B68012B03D1554A936D0133F9 +:101BD000936502F0D1F9534B534A1860534B544C60 +:101BE0001A600123534A1360534A13602378002B71 +:101BF00006D006225149524802F0DEF80023237035 +:101C0000504A514B10681B78C1B2002B0ED14F4C7B +:101C1000C0B223785BB2002B4FDB237824785BB211 +:101C200064B21B0424021B191B1813600B1C5029DF +:101C30004ED95023464A47491078DBB2FF2202288A +:101C40004BD10868444C454D267890432A789642FB +:101C500054D9227824782E78023B5D10A31B6B4365 +:101C60005201D31A10335B111843086002F094F844 +:101C7000031F012B45D83A4B1B78002B06D0394B5C +:101C80001B78002B02D0002002F036F9A122364B3F +:101C900092009978354B4A431B689B188322920027 +:101CA0009B181B78033B012B03D8AF20400001F0A9 +:101CB000FBFF01222E4BDA8270BD237824785BB2C1 +:101CC00064B2FF33FF341B0424021B190138ABE755 +:101CD000CAB2022AAED20223ACE70868254C264DD0 +:101CE000267890432A78964208D9227824782D784D +:101CF000023B5B10641B63435201B2E72378DBB203 +:101D0000B2E70228D5D11D4B1B78013B022B03D92A +:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 +:101D2000FC0FFF1F3C64FF1FFF3F00001410034027 +:101D30004064FF1F0C10034000100340D50BFF1F31 +:101D40007211FF1FB40003408C09FF1F680AFF1FB8 +:101D5000490AFF1F94000340460AFF1F470AFF1F5E +:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 +:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 +:101D80002309FF1F10B502F017F90022014B1A803A +:101D900010BDC0463A64FF1F10B502F045F8A121FE +:101DA000054A89009478054A61431268044B521829 +:101DB000528C1A8010BDC046300DFF1F3409FF1F22 +:101DC0003A64FF1F10B50D4B0D4A9978A1239B0073 +:101DD0004B431268D218531DD97F0A4B1B88994276 +:101DE00009D2441C07D0C82805D0D2695B1A5A43CF +:101DF000054B5343C01802F017F910BD300DFF1FFB +:101E00003409FF1F3A64FF1F7102000070B5244DB2 +:101E10002B68002B28D002F0F7F82B68D8402B68ED +:101E20000400002B27D002F06FF82B68D8401D4B20 +:101E30001D4A9978A1239B004B431268D118D25CAC +:101E400091239B00002A20D0CA580132CA50174B58 +:101E500017491B680868834214D3D23B181A012A19 +:101E60001AD0144B186070BD02F0CEF8124B1968EE +:101E700001F072FFD3E702F047F80F4B196801F049 +:101E80006BFFD4E70D495B18E8E7CA500C4B1B68A1 +:101E9000DB68E418201AE4E7F530FF30E1E7C046DC +:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 +:101EB0003C64FF1FA009FF1F1808FF1F2DFF3F00F4 +:101EC0004464FF1F70B504000D00282916D10300DB +:101ED000A433C2881B889B1A0B4A9BB293420DD92C +:101EE00006006A3605223100653001F03DFE00280B +:101EF00004D13100200002F07FF870BD29002000DD +:101F000001F00AFFF9E7C046FE7F0000F8B50500C2 +:101F1000012001F0B9FF134CA36AA26A9342FBD1DE +:101F2000114E336002F018F81049030008601048A1 +:101F3000426894460F4A17680022BC4501D24268A5 +:101F4000BA1A0D4802603268AD18A422E562606AD0 +:101F5000520302436262094A1278002A01D00F3B01 +:101F60000B60F8BD00F00040340AFF1FE408FF1FBB +:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 +:101F800070B580241025E405A3682B43A36001F0FD +:101F90005BFEA368AB43A36070BD0000F7B51600FD +:101FA00080221C001023D2050191916805000B438B +:101FB000936000225A4BD7301A6001F045FF9D23F1 +:101FC0002A002F009B00EB58CA3201210092FC37F7 +:101FD000002B01D00021009A386801F0B5FF2900DC +:101FE000009BCB311A784F4BD3351A604B780A7867 +:101FF0001B0213438A7812041A43CB781B0613433F +:10200000494A1BBA13604B790A791B0213438A7938 +:1020100012041A43CB7931001B061343434A1BBAFF +:1020200013606B782A781B021343AA7812041A43B0 +:10203000EB781B0613433E4A1BBA1360019A330226 +:1020400013433C4A13603C4B22001B1B9C46032954 +:102050003DDCB3089A0013005142B21A032A46D15C +:10206000354AE018511A827840781204000202437F +:10207000E05C043302430A600022FF2B4BDDF022B8 +:102080002E4B12011A600F222D4B1A602D4A136835 +:10209000002BFCD00023224A27491360091B321D64 +:1020A0000B191B68043A180A23706070180C1B0E79 +:1020B000A070E3700434002AF2DC802210213B6817 +:1020C000D20501333B6093688B439360F7BD634651 +:1020D000D578981893782D061B042B43157804396E +:1020E0002B43557804322D022B430360AFE7022ABD +:1020F0000AD1114AE05C511AE218527812020243E6 +:102100000A6004339BB2B7E7012AB5D10A4A521AD2 +:10211000E15C1160F5E7084959180A600433ACE73F +:10212000000004403C0004403800044034000440F7 +:10213000300004400C00044000010440040004404E +:102140001000044014000440F7B5150080221C0064 +:102150001023D2050091916807000B439360002380 +:10216000654AD730136001F06FFE9D233E009B004F +:10217000F9583B00CA363200FC33002900D07FE01A +:10218000586801F0E1FE390032785C4BCB311A60BF +:102190004B780A781B0213438A78AC4612041A4320 +:1021A000CB78281D1B061343554A1BBA13604B7985 +:1021B0000A791B0213438A7912041A43CB791B064E +:1021C0001343504A1BBA13604B7A0A7A1B0213431B +:1021D0008A7A12041A43CB7A21001B0613434A4A17 +:1021E0001BBA1360009A2B021343484A1360220063 +:1021F000474B1B1B0093009BCE785B1801938B7899 +:1022000036061B0433430E78043833434E780431CA +:1022100036023343019E33600328ECDC0321A80817 +:10222000431C9B002940800003292BD13849E51825 +:102230005E18A9786D78E35C09042D0229431943DF +:102240003160030008330021FF2B2DDD314B324973 +:1022500019600F21314B1960012327490B60304B66 +:1022600019680029FCD006211B680B40042B20D0E4 +:1022700080220020D20593680A318B439360FEBD13 +:1022800001217DE7022908D121495D18E11849782B +:10229000E35C090219432960D3E70129D3D11C4922 +:1022A0005918E35C0B60CCE7194818180160043337 +:1022B000CAE7002310490B606346002B0CDC3B008F +:1022C000FC335A68102101325A608022D20593688B +:1022D00001208B439360D2E7009B9B181B68190A6F +:1022E00013705170190C1B0ED37004235B42917054 +:1022F0009C440432E0E7C046000004403C00044037 +:102300003800044034000440300004400C00044015 +:102310000001044004000440080F000010000440C5 +:102320001400044070B5061E19D002225A4B9B7946 +:102330009343012B13D1594B1A78FF2A0FD15A78A6 +:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 +:102350001A79FF2A03D15B79FF2B00D199E0504B0A +:102360000C201A78012A08D000224E4D1A702978C4 +:102370000B00093B042B01D8212070BD4B1F012B02 +:10238000FAD9454CA37B042B00D982E0A279032A19 +:1023900000D97EE09A1ED2B2012A02D860881F2896 +:1023A00077D9002E56D0012E73D1A0880128E3D012 +:1023B000002907D1581E032803D801F0B7FB1217D4 +:1023C00015122E702978481E032811D80025364B87 +:1023D0001D602823237501F097FCA84227D0A58013 +:1023E000CAE702212970EDE70421FBE70321F9E7A1 +:1023F00007390129C0D82D490968C96A8906BBD5A2 +:102400002B4908780028B7D1012A01D9002BB3D174 +:1024100002230B708021274D2633890128782375EC +:1024200001F002FC80212878890101F0F5FD0123EB +:10243000A380214B1B78002B0AD0FA2280211F4B4E +:1024400092001B8809025A431A4B187801F0A4FB2A +:10245000002092E701F020FD2B78A680073B012B9E +:1024600003D917482E7001F09FFC114B114C1A78BC +:10247000002A06D080210022207889011A7001F0FC +:10248000D3FB01F0E9FD80212078090201F0CCFBAB +:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 +:1024A0001A09FF1F1C09FF1F4809FF1F4464FF1F73 +:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 +:1024C0000010004010B5002901D001F0D5FC10BD6E +:1024D000F7B5604B01919978A1239B004B435E4A6D +:1024E000060014681022E418D6235B00E058362357 +:1024F000FF33E35C00279343222B41D1574B0F3A24 +:102500001A600760012501F097FD019B1880E82300 +:102510005B00E35C002B01D0B34258DD0023504F39 +:10252000FB70AD33FF33E3581A68002A03D09B8851 +:10253000DB439B071DD03823FF33E35C002B18D00F +:102540009B235B00E35C002B13D1D133FF33E35CAF +:10255000B3420EDAA4235B00E15AE018090A023103 +:1025600001F07AFC23000122FE33013E01351A8777 +:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 +:1025800003683D00002BBED081880430090A023167 +:1025900001F062FCD6235B00E3581F60B2E7230022 +:1025A000B133BA00FF339858013781880430090AE3 +:1025B000023101F051FCE8235B00E35CBB42EEDC3E +:1025C000E822F61AED1800235200A354A6E70027CC +:1025D000F1E7200001F0E0FC00281FD0002E1DDDF7 +:1025E0007319882647190193B600200001F04CFBAF +:1025F0005A30800020184068013581880430090A6B +:10260000023101F029FC200001F04EFCA3590133F6 +:10261000A351BD4202D0019B9D42E6D1114BE35C28 +:10262000002BABD095239B00E35C002BA6D00E4B78 +:10263000E15A0029A2D00D4AA35C994202D9013384 +:10264000A3549BE700231A212000A35401F09CFA15 +:1026500094E7C046300DFF1F3409FF1F00140340EC +:10266000E010FF1F5A020000720200005E0200002C +:102670000D4970B54A6E0D4CD2038B69D20BA24244 +:1026800006D80B4D0224AA4204D901F0ADFA70BD60 +:1026900002246442E21815007E2425402242F4D030 +:1026A000A3432B438B61F0E700F000400A200000B9 +:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 +:1026C000BA7B002A02D101321A7003E0032AFAD041 +:1026D000022AF8D001F018FB00220120154B1A70D5 +:1026E000F8BD154B154D1C68154B9E7801232B70BA +:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D +:10270000DBFBA1239B007343E41883239B00E418A5 +:1027100023782B70E4E7032B02D101F0A5FBF0E74F +:102720000020022BDCD101F00FFBEAE71C09FF1FA0 +:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 +:10274000300DFF1FF0B587B00EAD2F780FAD2D788F +:102750000593AC46634614000E4D0CAA12782E78F1 +:1027600003930D9B009201932200059B029701F0B9 +:10277000C3FA2E70012C01D0042C08D18022064906 +:102780008B889343054A1278D20113438B8007B09C +:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 +:1027A0000B001B3B70B504003020E02B0DD813004C +:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 +:1027C000200019825A8201F08FFA70BD8410FF1F19 +:1027D00010B501F0D1FB054B00205B68052B04D937 +:1027E000034A5268D20200D4980810BD001000407D +:1027F000FCE100E070B501F04FFB0D4B1B68FC33B2 +:10280000DC691D6AFFF7E4FF6419844204D2094BB6 +:1028100001241B68002B07D004220024064B1A70E9 +:10282000064A93690133936101F016FC200070BDE4 +:102830004464FF1F9809FF1F2309FF1FFC0FFF1FA0 +:1028400070B50C4D2B68FC335C6A01F025FBFFF77B +:10285000BFFF2B680025FC339B6AE318834204D238 +:10286000054B1B68AB4200D1051B01F0F5FB2800AE +:1028700070BDC0464464FF1F9809FF1FD722044B58 +:1028800092009B5810B5002B00D0984710BDC04651 +:102890000000FF1F10B501F0D3F8FFF7EFFF274945 +:1028A000274BCA6D274C1A4084235B001343CB652A +:1028B000254B1B68186A01F0E7FA244B244A1A607A +:1028C000244B254A1A60A022244B52001A60244B44 +:1028D000187801F031FA2000224901F01DFB002395 +:1028E000A3600233A360204B2049236003232048C8 +:1028F000A36001F011FB10221E4BFF201A60802202 +:1029000052031A60802292031A60802212041A6015 +:1029100001F0F2FA012001F047F9FA20400001F03D +:102920007BFA582001F0C0F9134801F065F9012045 +:1029300001F0CAF9072001F0FFFA10BD00F00040D5 +:1029400000FEFEFF141000404464FF1F000003401F +:102950000180063DBC00034034080000A400034091 +:102960004A0AFF1F71020000C3090000FFFF3F0079 +:102970002810004000E100E030750000674E336829 +:1029800088331B6883F3088801F096F9644A654927 +:10299000136800200B401360634B644A1B6893422A +:1029A00000D1A6E001F048FA0221614A13688B4386 +:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 +:1029C00013FB0023A3600233A3605C4B0120236050 +:1029D00001F05AFA0323A36001F00EFA040001F09B +:1029E000CBFA050001F008FA554B186001F00CFA1B +:1029F000544B1968621A531EA14200D21300802260 +:102A0000D203934201D39B029B0A3268D16AC90761 +:102A100000D471E04C491C0C09689BB24C435943EB +:102A20002402090A641803264849FC3293680A689C +:102A300047489B1A474A0768126847499B18474A04 +:102A40009A1833409208DB190A600360042B03D9FB +:102A5000013233400A6003600E684149A619300014 +:102A600001F07AF93F4F3E493B68C3183B603000A4 +:102A7000019301F0B9F93C4E3068081838493060CC +:102A8000884205D9019B01333B6001F0ADF931600B +:102A900001F08AFA354B1B78002B0DD001F06CFA4F +:102AA000334B621B196812188A4232D24919091B2A +:102AB000091A304801F030FA2F4E337A002B0ED02D +:102AC00001F05AFA621BF1681218914224D949198F +:102AD000091B091A294801F01FFA00233372284BF9 +:102AE00083F3088801F078F8002001F0A5F901F0DF +:102AF000A3F801F0A1F95CE7DC0199000234641A43 +:102B00005900641A09214B438033CB40A408E418D0 +:102B100089E7FA218900CCE71A49DBE74464FF1F03 +:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C +:102B300010000040490AFF1F14100040C3090000A4 +:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 +:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 +:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 +:102B7000E408FF1F00100040740BFF1F3C100040D2 +:102B800000000020DC050000A022054B92009B58AD +:102B900010B5002B01D0984710BD01F01DFAFBE7DE +:102BA0000000FF1FA122054B92009B5810B5002B7F +:102BB00001D0984710BD01F00FFAFBE70000FF1F9E +:102BC000A222054B92009B5810B5002B01D09847CC +:102BD00010BD01F001FAFBE70000FF1FA322054B27 +:102BE00092009B5810B5002B01D0984710BD01F002 +:102BF000F3F9FBE70000FF1FA422054B92009B584E +:102C000010B5002B01D0984710BD01F0E5F9FBE7A6 +:102C10000000FF1F70B501F0AFF94F4B186000F0D6 +:102C2000FBFF0400C30702D401F00EFA70BD0022BE +:102C30004A4B1A604A4B18780138042829D800F00A +:102C400075FF0320181C2400200001F0BDF80128A6 +:102C5000ECD0444C2378042B6ED100F07DFF00288B +:102C6000E4D001F039F9582001F01EF80223237056 +:102C7000DCE7200001F030F8E9E7200001F07CF803 +:102C8000E5E7200001F050F8E1E7200001F09CF9B1 +:102C9000DDE701F081F80500012808D1324B1B78EF +:102CA000053B012B03D82000FFF76EFFD1E72D4B2A +:102CB0001B78022B01D0052B20D1022D28D12B4BC4 +:102CC0009B7BAB431CD12000FFF76CFF264B187891 +:102CD0000128BED16405BCD4244925224B7B034284 +:102CE00005D1233A13405A42534126331A000B7D33 +:102CF0009342AED9322000F087FFAAE7022D07D118 +:102D0000194B1B78052B11D12000FFF759FFDDE788 +:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 +:102D2000062B03D12000FFF767FF92E7200001F098 +:102D300053F9022D8DD1C9E7032B04D10C4B987C9C +:102D400000F042FF72E7072B00D06FE7094B987B3A +:102D500000F012FF6AE7C0469C09FF1F9809FF1F99 +:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 +:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 +:102D80001A640A4A5A500A4A04395A50094A083100 +:102D90009A64094A5A50094A5C315A50084ADA661C +:102DA0007047C0460000FF1F4527FF1F4128FF1F37 +:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A +:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 +:102DD000FF270122009300233C001E001D009446A3 +:102DE000019089B262469A40100008401841361896 +:102DF000B6B2FF2F02D1012E00D19FB2009802403F +:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 +:102E10000133102BE6D10320012E07D1012D04D15F +:102E2000019B2401E4191C700138FEBD102EFCD159 +:102E30000238102DF9D00230F7E700008023F7B5F3 +:102E40009C46264B264F01932649274A274D284C5E +:102E5000284B02281AD1604638600868264E304058 +:102E6000802636033043086001990978002909D18A +:102E70001660224A2A60224A2260E02219689143A1 +:102E8000A03A1BE08021C9021160F2E766463E606D +:102E90000F68194E3E408027FF023E430E600199A5 +:102EA000097800290DD1176001280ED1154A2A6032 +:102EB000154A2260E02219689143C03A0A431A6019 +:102EC000F7BD802189021160EEE7E0210F4A02433D +:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 +:102EE000E0000340D800034090000340000003408E +:102EF0005000034040000340FFFFE3FF0280063D17 +:102F0000804508220180063D8066082200800698E0 +:102F100080550822F8B51E4B80261A680020140040 +:102F20003440324232D11A681A4F32431A600122B9 +:102F30003B68063093433B6000F0A6FF0122164D2C +:102F40002B681E432E603B680A2613433B60802794 +:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F +:102F600009D17E220E4B1C682B68E40B144093435E +:102F700023432B6005E0082000F086FFE9E7002EE0 +:102F8000EFD180222B68600893432B60F8BDC046C8 +:102F9000C4F000405CF0004018F0004068F00040D1 +:102FA00060F0004010B500F067FE01215820034A90 +:102FB00000F0DAFEFFF7AEFF10BDC046600AFF1F4B +:102FC00010B578220021034800F066FE00F0DCFE18 +:102FD000002010BD4C67FF1F70B5040000F05CFFBF +:102FE00000230C200B4A010059438D18515C002925 +:102FF0000DD0A14208D1012300246B7000F064FFC2 +:1030000001F02AF8200070BD01330A2BEBD1122405 +:10301000F6E7C0464C67FF1F70B5040000F03CFFA8 +:10302000002319001D000D4A1078002806D0A04288 +:103030000CD1557001310C320A29F5D1002B0AD17F +:1030400000F0A2FE01F008F8002070BD5078461E86 +:10305000B0411B18EEE700F037FFF3E74C67FF1FA6 +:10306000F7B504000C20002384460E4D01926746FC +:103070005F43E85D7E19A04212D000280BD10A4BB5 +:103080009C4662461B7808331370019B70707C5518 +:103090007160B360FEBD01330A2BE8D10320F9E76C +:1030A0000720F7E74C67FF1F4867FF1F8020F8B530 +:1030B000484BC0051B68C1248360474BFF251A6835 +:1030C000012313434361454BA4001A68444B40213C +:1030D0001A60444B1A68444B1A60444B1A59AA436D +:1030E0001A51C52292009E58AE4331438026995012 +:1030F0009F583F49F6010F403E439E509E588027FF +:103100003602360A3043985080201A5900020A408D +:1031100002431A5104341A59364E3F043240802675 +:103120003A431A511A5936061202120A32431A51F8 +:1031300008341A5980260A4002431A51C3229200C9 +:103140009F58B446AF4337439F509F58294E0F4076 +:1031500007439F509F5837408026360437438026C8 +:103160009F509F5836063F023F0A37439F50C02268 +:103170001F59AF433A431A511A591202120A164301 +:10318000C6221E5192009C58AC4365462C439C506D +:103190009C5800250C4020439850C72080001A58A6 +:1031A000154C1140C02212020A431A50134B1B78CF +:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 +:1031C000A368002B00D0984701350C34EEE712209D +:1031D000F2E7C0466843FF1F6443FF1FB0F00040A2 +:1031E0004467FF1FB4F000404067FF1F00E100E0AC +:1031F000FF00FFFFFFFF00FF4C67FF1F4867FF1F37 +:10320000030010B51F2809D8072200201340072407 +:1032100004490A78A24313430B7010BD0023062013 +:10322000F5E7C0464867FF1F054B06491B780A684B +:1032300005485B0702401B0B134300200B607047DF +:103240004867FF1F1CF00040FFFFC1FF70B50C2551 +:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 +:10326000002C01D1200070BD2B78002B06D06B689C +:10327000002B00D09847013C0C3DF1E71220F2E70B +:103280004867FF1F4067FF1F1FB5002102220B0088 +:1032900001910091052000F047FE02230B490A68C6 +:1032A0001A42FCD120230393039B5A1E0392002B46 +:1032B000FAD1074A1368002BFCDA0B246C44200077 +:1032C000012100F0D1FC207804B010BD90C800406E +:1032D00000C8004013B504000A4B0193019B002B6A +:1032E00001D1112016BDFFF7CFFF23000340044298 +:1032F00005D0052000F0C8FD019B013BEDE718005B +:10330000F0E7C046FFFFFF0707B500F0C5FD8022CC +:103310000821D205936A0191002B01D107399162EE +:1033200002210C4A11600199481E01900029FAD12E +:1033300003311160053101910199481E0190002966 +:10334000FAD11160002B02D18022D205936200F0E5 +:1033500083FE07BD00C00040F0B52D4C89B0237836 +:10336000002B4FD1FEF7CEFA02232A4F03903A6882 +:103370001A42FCD120230693069B5A1E0692002B6C +:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB +:10339000011E02D0112009B0F0BD030003220190EC +:1033A000009005AD9F2000F0BFFD0321280000F034 +:1033B0005BFC02233A681A42FCD120230793079B47 +:1033C0005A1E0792002BFAD13368002BFCDA012039 +:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F +:1033E0006B7811041B020B4329780B4363601300B5 +:1033F000113B0A49052B07D801239340A3600B60BA +:10340000012323700020C6E780231B03F6E7C04694 +:103410005043FF1F90C8004000C800409808FF1F9D +:103420001E4B30B55A6818781D4B85B0D3185942D9 +:103430004B4101210093002300F00EFC194B1A4A66 +:1034400002259A6300221A6510325A658022C4212F +:103450009D65164B1648D202DA6789004258154B13 +:1034600080241A4080231B041343435064234120CB +:103470000393E40500F006FA402000F003FA6562C9 +:10348000039D6B1E0393002DFAD103236362FFF7A4 +:103490003BFFA562FFF760FF05B030BD5C43FF1F37 +:1034A00095FFFEF700C80040050001FF04E100E0C1 +:1034B00000E100E0FFFF00FFF0B585B00700FEF778 +:1034C00021FA022305002D4C22681A42FCD1202348 +:1034D0000093009B5A1E0092002BFAD1284E3368AD +:1034E000002BFCDA0120FFF7F5FE002803D01124A1 +:1034F000200005B0F0BD234B2360022322681A424E +:10350000FCD120230193019B5A1E0192002BFAD17A +:103510003368002BFCDA0120FFF7DCFE0028E6D13F +:10352000194B1F60022322681A42FCD12023029308 +:10353000029B5A1E0292002BFAD13368002BFCDA50 +:103540000120FFF7C7FE0028D1D1104B23600223D2 +:1035500022681A42FCD120230393039B5A1E039234 +:10356000002BFAD13368002BFCDA0120FFF7B2FE02 +:10357000041EBCD12800FEF7D9F9B9E790C8004075 +:1035800000C8004001000006A8C8004001800001FA +:1035900010B50020FFF790FF10BD000010B5064BDE +:1035A00018705960FFF73CFF00211320034AFFF712 +:1035B00057FD002010BDC0465C43FF1F2134FF1F94 +:1035C000F0B5040085B003920291FEF79BF98822C2 +:1035D00063035B0B52051A438023DB059D6A80233E +:1035E000274F0092BA68002601901B039A420CD91B +:1035F000F82326001B041E401C4206D08022214BCB +:1036000052025E6219680A431A60002D0BD100F065 +:1036100043FC02221C4B1A608023DB055A62013AEC +:103620009A6200F019FD0023039A934220D1002DE5 +:103630000AD100F031FC144B03221D608023DB050E +:103640005A629D6200F008FD8023BA681B039A420B +:1036500008D9002E06D000220A4B0C495A621A687B +:103660000A401A600198FEF761F9002005B0F0BD2C +:10367000009A0299D2181278CA540133D4E7C0468E +:103680005043FF1F00C8004000C00040FFFFFEFF86 +:10369000F0B587B0029103920400FEF733F9019070 +:1036A00000F0FAFB802302250122234EDB05356062 +:1036B0005D629A6200F0D0FC204F3B682B42FCD147 +:1036C00020230493049B5A1E0492002BFAD11C4D14 +:1036D0002B68002BFCDA0120FFF7FCFD002802D04C +:1036E000112007B0F0BD2000039A029900F074FB8E +:1036F000022304003A681A42FCD120230593059B5B +:103700005A1E0592002BFAD12B68002BFCDA0120FF +:10371000FFF7E0FD051EE3D100F0BEFB802303228E +:10372000DB0535605A629D6200F096FC0198FEF759 +:10373000FDF8E0B2D5E7C04600C0004090C80040A8 +:1037400000C80040F0B5802489B00600FEF7DAF822 +:10375000E405A36A02250393029000F09DFB012378 +:10376000304F3D606562A36200F076FC2E4C23680A +:103770002B42FCD120230593059B5A1E0592002B5A +:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD +:10379000002803D01124200009B0F0BD244B236081 +:1037A000022322681A42FCD120230693069B5A1E4C +:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 +:1037C00089FD021EE6D11B4B03211E600300019000 +:1037D0000090202000F0A8FB022322681A42FCD1AE +:1037E00020230793079B5A1E0792002BFAD12B68C0 +:1037F000002BFCDA0320FFF76DFD041ECAD100F098 +:103800004BFB80230322DB053C605A629C6200F084 +:1038100023FC039B002B01D1FFF776FD0298FEF7F6 +:1038200085F8B8E700C0004090C8004000C80040DC +:103830000100000694C8004007B50002019104226F +:10384000000A01A9FFF724FF0EBD000073B50500B3 +:1038500005240B4AA3005B429B1819686B46DE1DCA +:103860003000FFF7B3FA022804D133782B55013C1E +:10387000EFD276BD052CFCD00128FAD10230F8E752 +:10388000140900111F2807D8012380228340D20584 +:1038900091680B43936070473F2808D8012380222A +:1038A00020388340D20551690B435361F3E75F2809 +:1038B000F1D80123802240388340D205116A0B439E +:1038C0001362E8E71F2807D8012280218240C9053A +:1038D0008B6893438B6070473F2808D80122802172 +:1038E00020388240C9054B6993434B61F3E75F2859 +:1038F000F1D80122802140388240C9050B6A9343E8 +:103900000B62E8E71F2810D880230200DB05153A78 +:103910001968012A06D820229143196019680A43C0 +:103920001A60704701228240F6E73F2811D88023B1 +:103930000200DB05353AD968032A06D810229143E4 +:10394000D960D9680A43DA60EBE701222038824067 +:10395000F5E75F28E5D842238022181A413B8340CF +:10396000D205516A99435162516A0B435362D8E7B9 +:1039700010B50400012813D1A022184992050B6844 +:103980005B015B0913430B60154B164A1968114024 +:10399000154A0A431A60402219680A431A6010BD8A +:1039A0000028FCD101000A2000F0EEFA21000B20D3 +:1039B00000F0EAFAC0220A4B920019680A4340213B +:1039C0001A601A688A431A60B022044912060B680A +:1039D0005B015B0913430B60E1E7C04614F0004054 +:1039E0001CF000407F00FEFF80FD010072B6074A18 +:1039F0001368013313600422054B1A600023054A43 +:103A000013608022D2055360FEE7C0467808FF1F8E +:103A1000C0F00040C4F0004005490B68002B05D100 +:103A2000044A0A6004490A60044A13607047C046A9 +:103A3000140AFF1F841E0000380AFF1FC4F0004054 +:103A40000023034A1360034A1360034A136070475C +:103A500054F0004040F1004044F10040002310B514 +:103A6000184C8AB0009301932378012B27D0694624 +:103A7000012000F079FA002817D1009B1249029327 +:103A8000019B06AA0393114B02A81B680493104BD9 +:103A90001B68059300F0D8F810220E4906A800F024 +:103AA00063F8002804D1FF23237000200AB010BD62 +:103AB0000123094A074902A8237000F0C5F8012034 +:103AC000F4E7C0464864FF1F1029001108290011BF +:103AD0000C290011202900114C64FF1F13B501248B +:103AE0006946012000F040FA034B00940193FFF770 +:103AF000B5FF200016BDC046BB0B000010B5FFF798 +:103B00009FFFFFF7EBFF002802D0024B984710BD44 +:103B1000FEE7C046E1A2000002B471464908490030 +:103B2000095649008E4402BC7047C04602B4714633 +:103B300049084900095C49008E4402BC7047C046F0 +:103B400003B47146490840004900095A49008E44AF +:103B500003BC70470000000001B40248844601BC69 +:103B6000604700BF01D7000001B40248844601BC91 +:103B7000604700BFCD4C010001B40248844601BC3F +:103B8000604700BFC1F7000001B40248844601BC91 +:103B9000604700BF53B9000001B40248844601BC2D +:103BA000604700BF8B52010001B40248844601BC4B +:103BB000604700BF6911010001B40248844601BC9E +:103BC000604700BFE927000001B40248844601BCF9 +:103BD000604700BF4DF9000001B40248844601BCB3 +:103BE000604700BF7997000001B40248844601BCD9 +:103BF000604700BFD1AE000001B40248844601BC5A +:103C0000604700BF8D11010001B40248844601BC29 +:103C1000604700BF6137010001B40248844601BC1F +:103C2000604700BFBD0B010001B40248844601BCDF +:103C3000604700BFB352010001B40248844601BC92 +:103C4000604700BF8552010001B40248844601BCB0 +:103C5000604700BFDD3F000001B40248844601BC5C +:103C6000604700BFC56D010001B40248844601BC35 +:103C7000604700BF3D71010001B40248844601BCA9 +:103C8000604700BFED68010001B40248844601BCF2 +:103C9000604700BFD9B0000001B40248844601BCAF +:103CA000604700BFB70E000001B40248844601BC63 +:103CB000604700BF7912010001B40248844601BC8C +:103CC000604700BFC9A9000001B40248844601BC96 +:103CD000604700BFE512010001B40248844601BC00 +:103CE000604700BF0934010001B40248844601BCAA +:103CF000604700BF116E000001B40248844601BC59 +:103D0000604700BF9D6A000001B40248844601BCC0 +:103D1000604700BFA9D8000001B40248844601BC36 +:103D2000604700BF51B8000001B40248844601BC9E +:103D3000604700BFF535010001B40248844601BC6C +:103D4000604700BFEDA5000001B40248844601BCF5 +:103D5000604700BF19FA000001B40248844601BC64 +:103D6000604700BF090E000001B40248844601BC50 +:103D7000604700BF0167010001B40248844601BCEE +:103D8000604700BF0534010001B40248844601BC0D +:103D9000604700BFADAE000001B40248844601BCDC +:103DA000604700BFDD0C010001B40248844601BC3D +:103DB000604700BFC1A5000001B40248844601BCB1 +:103DC000604700BFE94C010001B40248844601BCD1 +:103DD000604700BF0134010001B40248844601BCC1 +:103DE000604700BF9573010001B40248844601BCDE +:103DF000604700BF090E000001B40248844601BCC0 +:103E0000604700BF156B010001B40248844601BC45 +:103E1000604700BFC166010001B40248844601BC8E +:103E2000604700BF8512010001B40248844601BC0E +:103E3000604700BFF9ED000001B40248844601BCB0 +:103E4000604700BF016C010001B40248844601BC18 +:103E5000604700BF8944000001B40248844601BCA9 +:103E6000604700BFC115010001B40248844601BC8F +:103E7000604700BF75F8000001B40248844601BCE9 +:103E8000604700BFE9D4000001B40248844601BC89 +:103E9000604700BF0189000001B40248844601BCAC +:103EA000604700BF75A9000001B40248844601BC08 +:103EB000604700BF5976010001B40248844601BC46 +:103EC000604700BFE9F6000001B40248844601BC27 +:103ED000604700BF21A9000001B40248844601BC2C +:103EE000604700BF6DF6000001B40248844601BC83 +:103EF000604700BF11B6001101B40248844601BCFE +:103F0000604700BFED6B010001B40248844601BC6C +:103F1000604700BF6D0B010001B40248844601BC3C +:103F2000604700BF2D6C010001B40248844601BC0B +:103F3000604700BF496D010001B40248844601BCDE +:103F4000604700BFF90D010001B40248844601BC7E +:103F5000604700BF2144000001B40248844601BC10 +:103F6000604700BFBD5C010001B40248844601BC4B +:103F7000604700BFE1AC000001B40248844601BCC8 +:103F8000604700BFC95C010001B40248844601BC1F +:103F9000604700BF8DA2001101B40248844601BCF5 +:103FA000604700BF71B0000001B40248844601BC04 +:103FB000604700BFD544010001B40248844601BCFB +:103FC000604700BF8D82000001B40248844601BCF6 +:103FD000604700BFF935010001B40248844601BCC6 +:103FE000604700BFE917010001B40248844601BCE4 +:103FF000604700BF8914010001B40248844601BC37 +:10400000604700BF85C1000001B40248844601BC7E +:10401000604700BFE90B010001B40248844601BCBF +:10402000604700BF0D52010001B40248844601BC44 +:10403000604700BF8937010001B40248844601BCD3 +:10404000604700BFCD0C010001B40248844601BCAA +:10405000604700BFDD0A010001B40248844601BC8C +:08406000604700BF9DA90000AC +:1040680002000000EABE001101000000D8BC0011E7 +:1040780002000000E6BE001101000000A840FF1F7A +:1040880002000000E0BC001101000000C061FF1F39 +:1040980002000000E4BE0011030000003461FF1FAD +:1040A8001200000002000000EABE0011010000003A +:1040B80020BD001102000000E6BE00110100000052 +:1040C8001DBD0011020000002ABD00110300000000 +:1040D8006F61FF1F02000000E4BE00110300000032 +:1040E8008461FF1F02000000E6BE0011010000000D +:1040F8001CBD00110200000028BD001103000000D3 +:104108004561FF1F02000000E4BE0011030000002B +:104118006661FF1F02000000EABE001101000000F6 +:1041280064BD001102000000E6BE0011010000009D +:10413800F141FF1F0200000076BD001101000000E0 +:104148005BBD001102000000E6BE00110100000086 +:10415800F041FF1F0200000074BD001101000000C3 +:104168008C61FF1F02000000E6BE00110100000084 +:10417800EF41FF1F0200000072BD001101000000A6 +:104188004BBD001102000000E6BE00110100000056 +:10419800EE41FF1F0200000070BD00110100000089 +:1041A80046BD001102000000E6BE0011010000003B +:1041B800ED41FF1F020000006EBD0011010000006C +:1041C80041BD001102000000E6BE00110100000020 +:1041D800EC41FF1F020000006CBD0011010000004F +:1041E8003CBD0011020202020202000000000000B1 +:1041F80014130000C54B00118B4B0011B8BD001102 +:1042080090011D0018001800FFFF070102030405B4 +:104218000602010600000000000000000000000087 +:104228000000000000000000000000000000000086 +:104238000300000002000000EABE001101000000B7 +:10424800D8BD001102000000E6BE00110100000008 +:10425800AC42FF1F02000000E2BD00110100000097 +:10426800BA61FF1F02000000E4BE00110300000055 +:104278002464FF1F02000000E6BE001101000000D8 +:10428800AC42FF1F02000000E0BD00110100000069 +:10429800BC61FF1F02000000E4BE00110300000023 +:1042A8001C64FF1F12006C6C00000000000000007E +:1042B80000000000080700000001000000000111D4 +:1042C800FFFF0000504859360000000000000000C1 +:1042D8000B000500F0000000B400002800280028AA +:1042E8003075A000A000A000A00000080008E001B0 +:1042F800F000100010001000100010001000500016 +:104308005000500010001000D0070000000000000E +:104318000F0001000500307507001000010081FF43 +:1043280000000000FF000000757400117D7200118C +:104338000D700011FFFF0100FF000000919E0011A9 +:104348000D9C0011259B00110000000000000000DA +:1043580000000800040000003B0001085902E001C9 +:1043680088212800FF00000002000000EABE0011BA +:1043780001000000B0BF001102000000E6BE0011FD +:1043880001000000ED43FF1F02000000E2BE001123 +:10439800010000000468FF1F02000000E6BE0011D3 +:1043A80001000000EC43FF1F02000000E0BE001106 +:1043B80001000000EA43FF1F02000000E6BE0011F2 +:1043C80001000000E843FF1F02000000DEBE0011EC +:1043D80001000000E043FF1F180018001D009001B5 +:1043E800020000030202000002000000EABE001101 +:1043F80001000000C4BF001102000000E6BE001169 +:10440800010000003044FF1F02000000DCBE001164 +:10441800000000000000000002000000E4BE0011DF +:0A442800030000002468FF1F20FFBE +:040000051FFF184180 +:00000001FF diff --git a/bin/BOOT_TH05F_v15.hex b/bin/BOOT_TH05F_v15.hex new file mode 100644 index 0000000..fe2ca7f --- /dev/null +++ b/bin/BOOT_TH05F_v15.hex @@ -0,0 +1,3070 @@ +:020000041100E9 +:10300000002373B52B4D2C4C28006361022601F080 +:103010007DF94021FE2221742800284B009601F002 +:10302000C7F9002836D1217CFF222800244B0096C6 +:1030300001F0BEF900282DD1224BA2899A4226D157 +:10304000E389214A93420DD1204B6361204B2268D2 +:10305000002A03D1002B01D043CB43C4280001F048 +:1030600093F973BD1B4A934201D00023EFE71A4B3B +:103070001A4A1B68934206D9C02304222800217CE7 +:103080009B0001F00BFA114B6361154BDFE7002346 +:103090002374EAE7CC233821AC2228009B01217459 +:1030A00001F0FCF90028F2D10E4B63610E4BE38175 +:1030B0000E4BCCE7F441FF1FA461FF1FB061FF1F5F +:1030C000B261FF1F5959000083050000394100110A +:1030D00068BD001182150000C861FF1F8713000042 +:1030E00074BD0011F1410011AAAAFFFF5CBD0011DF +:1030F000F7B5164B0192C318021D002000938823D8 +:103100005B05D3181B685C1C1AD09CB2402C18D8E5 +:103110008D781E0CAC466746CD782D023D43AE42FD +:1031200006D1019800280ED110000C70240A4C70B2 +:1031300003249BB20733A343D218009B9A42DED3E9 +:10314000FEBD4432F9E71000FAE7C046FC0F00006C +:10315000802213B503000324019189B25201073183 +:103160009B18A14304305A1A88235B05C3181B68B7 +:10317000591C03D190429241104016BD99B240298A +:1031800007D80B000733A343C0189042ECD30020AC +:10319000F3E74430F9E7134B134A1B68126810B584 +:1031A000FA24934201D81A00F824104BE4021B6859 +:1031B0009A4210D813000E4A12689A420ED3013375 +:1031C00007D1F823DB029C4203D10A49054808F0E5 +:1031D00047FD200010BDFC24E402ECE7FE24E402DD +:1031E000F7E7C04600C0071100D0071100E0071143 +:1031F00000F00711FFFFFF7FF0B59BB015000490B2 +:103200000391402A00D9A0E006AB59801A80FFF74D +:10321000C2FF0400042816D9002206A9FFF768FFA0 +:10322000052810D906AB1B88AB420CD1002D07D066 +:10323000514B2A000499C01808F0AAFB002802D1BB +:1032400001201BB0F0BD06AB1D8020000699FFF7E2 +:103250007FFF041E7BD1069B0793FFF79CFF802313 +:103260005B01C618802307001B039E4201D3F8268A +:10327000F60288235B05F31801931B68013302D023 +:10328000019808F0BDFB3D49019808F0E9FC3B1DA1 +:103290000293331D05938822029B52059B181B68DD +:1032A00008935A1C3CD044219AB20091402A04D879 +:1032B0000320D11D814389B2009103991B0C8B42DD +:1032C00024D0402A22D80122300008A9FFF710FF9D +:1032D000021E1BD1380008A9FFF70AFF04000428CA +:1032E00031D9009A059B9B1880225201B218934253 +:1032F00040D288235B05C118009A09A808F000FC99 +:103300001D4B009A09A9F01808F032FC009A029BA4 +:103310009446634402931A4B029AFB189A42BAD31A +:1033200088235B05FC1821680198013908F098FC96 +:10333000200008F065FB039A07AB5A80300007991C +:10334000FFF706FF0400002C03D1002079E70428D2 +:10335000FBD988235B05E018069908F081FC03235C +:10336000EA1C9A4300D16BE7034B0499E01808F07C +:10337000FFFB65E70424ECE704000011FFFFFF7F7B +:10338000F80F0000F7B505001400402A21D80027E7 +:1033900001AE71803780FFF7FEFE042816D93A008F +:1033A0003100FFF7A5FE042810D93688BC420BD0A7 +:1033B000BD4209D0221CB44200D9321C064B92B245 +:1033C000C118280008F09CFB30B2FEBDC04300B21B +:1033D000FBE703204042F8E70400001137B5042260 +:1033E00004000D0001A81649FFF7CCFF02000428D5 +:1033F0000BD1019BA34208D3AB4204D0104901A8D2 +:103400000195FFF7F9FE01203EBD0E4C2368200018 +:10341000019308F0F5FA019920000139019108F0B3 +:103420001FFC80235B01E418074B9C42EED1042271 +:10343000034901A80195FFF7DFFE0020E4E7C0463D +:103440005555000000C007110000081130B589B0C3 +:1034500008F0B6F910226946254808F0A9FA254B6C +:10346000009A9A420ED1019B029A0F2B33D8002169 +:1034700001240698013B08D2002900D00292029B49 +:10348000013331D10023029325E0551CF2D1020013 +:103490002100EFE710341022200004A908F088FA78 +:1034A000029B013301D1069B0293882304995B059B +:1034B000C918059B06981A03120B049105928142C4 +:1034C00003D02B4201D108F01BFB019B013B019370 +:1034D000019B002BDED1029B002B03D004930498A8 +:1034E0004168084709B030BDE025014C2D03EFE7E6 +:1034F00000000111504859368022F8B5964C974B80 +:10350000D200002120001C6008F032FA2300944A07 +:1035100088331A60934B1A786A23002A00D011333B +:10352000E3620A232365904B37221B780820A363AC +:103530008E4B2118E361102323628D4B3B25636181 +:10354000C823DB00A36123008C331A602823013ACF +:10355000E26320646364CA67043A211DCA672100DC +:10356000BC310D602100C03108602100C4310B6006 +:1035700021000635CC310D602100083DC8310D60B9 +:103580002100D0310A602200D43210602200D832EB +:10359000136022000227E032210017604222DC3152 +:1035A0000A6021001B3DE4310D602100E831086014 +:1035B0002100EC310B6023000521F4331960230056 +:1035C000F0331A602300183290331A6023009433CA +:1035D000186023001E3A98331A60AF23DB00236083 +:1035E000644BFA262363644B644DE360644BF03113 +:1035F000A3642300FF31FC33B600A16021611E608B +:10360000A5627325E5656D3D6565A56596255D4AF1 +:10361000AD00E264666258606766A566002709250A +:10362000A767E566584F594D606720002567E26738 +:103630003A6015279C30676007001A203860200028 +:10364000A0300700212038602000A83007004C4837 +:1036500038602000F830066026006427A436376002 +:1036600026005F3FAC3637602600033FB036376038 +:103670002600C637B436376026000027B8363760D4 +:1036800038269E60424E96205E64424E5A66DE6147 +:10369000414E9A645E62F53EFF3E9E621E269A6728 +:1036A000354A8000DE661F675F67DD651D6618624C +:1036B000DA67BE23394A5B00E250394BD8382350D1 +:1036C00004302250C4225200A350C623E4205B00E1 +:1036D000E1500433334AE1503349344BD16034492B +:1036E000800019503349E938FF3819503249043005 +:1036F000195032493248D16132491163324951631C +:103700001900F4310860CE20304940001160304982 +:10371000195019002F48F83108602F49D1658221CE +:103720002E4A89005A501A002D490832D1671A00D2 +:103730002C49B432116088212B4A89005A501A0052 +:103740002A49883211602A4ADA6408F049FA0120CD +:1037500007F096FFF8BDC0460004FF1F4064FF1F3E +:10376000206FFF1F3844FF1F4A0AFF1F3A0700005F +:1037700080C3C9019A020000DC0500006A1800003D +:1037800050C3000088130000F009FF1F204E000006 +:103790006509FF1F68100000C409000040420F00C7 +:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 +:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 +:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 +:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 +:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 +:1037F000851DFF1F0223F0B50124614D614E2B7022 +:10380000614B91B01C70614F039333680021082015 +:10381000FB7006F0FFFD082006F0F6FC002398423E +:1038200005D0FA78552A02D0332A00D09BE03360C5 +:10383000042006F069FF08F023F8FFF75DFE08F0AA +:103840003FF81F2201240021514B10AE1A70514B3A +:103850001C70514B1970514B19689143163A0A4329 +:103860001A60602219689143403A0A431A6008F0CE +:10387000FFF908F0F5F8C120FF21494B80001A58E4 +:103880008A431A50C522920098588843BF39014391 +:1038900099509858434908408021C901014380202C +:1038A00099509958C0050902090A0143995080218D +:1038B0003D48490108F04CF8032322003B4901949C +:1038C00000933B4807F0ACFE2C223A4905A808F0CB +:1038D00017F905AC61782078023406F0B5FCA642F1 +:1038E000F8D1354C0020012106F0C2FD2268334B8F +:1038F00003201A40A023DB021343236080232268A5 +:103900009B041343236022682D4B1A4080239B03A2 +:10391000134323602B4A2C4B934200D8012007F01D +:1039200097FE07F005FF80232268DB041343236022 +:10393000287807F09DFE039B1878C0B207F0E0FEE0 +:1039400007F0B6FF2149042007F062FE06F0A8FE4A +:1039500000F0A8F800F0F8FD00F0A0FE00F01AFA60 +:10396000002011B0F0BD00932100184A042008F097 +:10397000DFF88023DB059C62FFF768FD58E7C0464F +:103980004A0AFF1F34F000403844FF1FD461FF1F74 +:10399000480AFF1F490AFF1F680AFF1FBCF00040CA +:1039A00000E100E0FF00FFFF3C44FF1FC056FF1F87 +:1039B0003C54FF1F80BC001114F00040FF7FF8FF53 +:1039C000FFFF9FFF0080FF1F206FFF1F3B000108CC +:1039D00070B500252549264A26484D6308CA1B05AF +:1039E0001B0DED188242F9D100268022224B920550 +:1039F0008B630921214B224C1E62224B1120DA6776 +:103A0000214BDA688A43DA609A6820490A409A6052 +:103A1000266007F015FF112008F012F98022636C70 +:103A200093436364EE24E4006C43194A200C0400C1 +:103A3000642390420AD8FA223300D200904205D97A +:103A4000144B0A21C01807F08BFEC3B2124A112092 +:103A50001372D48007F07CFE104B1B78002B04D12E +:103A60000F4B1021187807F0C3FF70BD0000054010 +:103A70008805054000060540FF01000000F00040F9 +:103A80000038004004E100E03CF00040FFDFFFFFB1 +:103A9000B70B000030F8FFFFBC61FF1FF663FF1F8C +:103AA000F461FF1F002210B51100112007F068FF1C +:103AB00010BD0000F8B500230926374F374C3B6294 +:103AC000E3681120B343E36008F0BAF8112007F06F +:103AD000B7FE112008F07CF84023226880251343AC +:103AE000236080236268DB0213436360A3682C4A6F +:103AF0002B43A360A36802211340A3608023A26824 +:103B00009B0113431022A360236C0720934323647B +:103B1000236C0F3A1343236480235B003B62226BC8 +:103B2000204B1A402263626B1A406263A26B1A40F8 +:103B3000A263E26B1340E363E3681B4A1340E36054 +:103B400006F082FB0121072006F092FC174B1120A2 +:103B50005A6C15435D6407F063FEFD21144B154A52 +:103B600089005A508023C720626B5B031343636351 +:103B7000E36880003343E3600F4B104A195811404B +:103B8000802212020A431A50802292051A600822EB +:103B90000B4B5A63F8BDC04600F000403CF00040BB +:103BA000FFFFDFFFEFFFEFFFFFFF7FFF0038004069 +:103BB0000000FF1FD139001100E100E0FF00FFFF0E +:103BC0000000054030B503A804880B20002C0ED15E +:103BD0004968074D08784978090201430A20A9423B +:103BE00005D1012120001980024B1B7A137030BDD2 +:103BF000192A0000BC61FF1FF7B5150008AA168836 +:103C00004A680F4F14785278120222430A24BA42AB +:103C100014D10122DBB2019200962A0007F090FC39 +:103C2000041E0BD1074B1B68002B07D068782A783D +:103C30000002104342425041013098472000FEBD2F +:103C4000022900004061FF1F30B5012503790400FF +:103C5000BFB02B4211D00A49408806F0DDFF284250 +:103C60000BD0084B01A95B8D4D800B80064B0022C9 +:103C70001B7A60880B7104F0AFF83FB030BDC046CE +:103C80003861FF1F6840FF1FBC61FF1F10B5054969 +:103C9000054806F077FF0421044A054806F034FF82 +:103CA00010BDC0463861FF1FFFFF0000ACBC001113 +:103CB0006840FF1F10B5024804F010FF10BDC04659 +:103CC000493C0011012303700B4B1A7A4270022207 +:103CD00082709A78C270DA780271032242711A797E +:103CE00082715A79C2710C2202729A794272DB791E +:103CF00083720B207047C046BC61FF1F022310B5C2 +:103D00000370013B43700533837010330371443BF0 +:103D100043712A3383714433C37100230372064B0A +:103D200004001B8843720A30FFF7CCFF831D0A3062 +:103D3000C0B2E37010BDC046BC61FF1F10B51420B7 +:103D400007F08EFD124B14220021186007F010FEC0 +:103D5000002007F065FF012007F06AFC022007F051 +:103D6000F7FE032004F05EF9042006F073F9052045 +:103D700003F09CFB062004F069F8072001F05CFAD0 +:103D8000082006F0A1FE092001F036F810BDC0465B +:103D90004461FF1F07F084FD012007F041FE07F09A +:103DA00077FC0000094B10B50400984205D00129AA +:103DB00004D12000064906F0E5FE10BD0229FCD121 +:103DC000013904F049FE0028F3D0F6E7FEFF0000B9 +:103DD0006A61FF1F70B50D7A100004AA2C001688C6 +:103DE00010221440154220D1002E20D10A78022A38 +:103DF00018D14A68517815780E4A09022943914230 +:103E000005D00D4A914209D01C800A2404E01422F6 +:103E10000A491A8007F074FE200070BD0C22084980 +:103E20001A80F7E71C800124F6E70824F4E70B2446 +:103E3000F2E7C046F3FF0000F4FF0000C442FF1F9A +:103E40008CBD001110B504000749084806F09AFE21 +:103E5000074804F083FD0020E40704D50721054A44 +:103E6000054806F051FE10BD6A61FF1FFFFF00000C +:103E7000A53D0011F0BC0011AC40FF1F00B50C4B7C +:103E8000BFB01A780B4902A800F0C2FC6B4680B2A2 +:103E9000D880002809D06A46074B01A91B88938067 +:103EA000064B0022188803F097FF3FB000BDC046C4 +:103EB0004861FF1F4961FF1F0641FF1F1042FF1F9E +:103EC00000B50C4BBFB01A780B4902A801F0CAFE2E +:103ED0006B4680B2D880002809D06A46074B01A9FA +:103EE0005B8D9380064B0022188803F075FF3FB06E +:103EF00000BDC0467261FF1F7361FF1FAC40FF1F12 +:103F00001042FF1FF7B50E00377A1C0008AB1100F6 +:103F10003D001A8820231D401F423CD13378022BDC +:103F20003BD173681F785B781B023B431E4FBB423B +:103F300008D01E4FBB4214D01D4DAB4221D00A25E4 +:103F40002800FEBD002A2AD1142C2AD82200F068AD +:103F500007F0D6FD174B1C70012CF1D9FFF7B0FF0D +:103F6000EEE7002A1BD1202C1BD82200F06807F0B6 +:103F7000C7FD114B04211C70104B187807F038FD59 +:103F8000DEE7E3B20124009201940A00310007F059 +:103F9000D7FA0500D4E70825D2E70125D0E70B259D +:103FA000CEE70D25CCE7C046F3FF0000F4FF00008C +:103FB000022900007261FF1F4861FF1FF461FF1FAB +:103FC000332310B5040003700A220749013007F0BB +:103FD00097FD064B0F201B681A0AE37222731A0C16 +:103FE0001B0E6273A37310BDBC61FF1FE461FF1F52 +:103FF00030B5012503790400BFB02B4213D00B4923 +:10400000408806F009FE28420DD06A46084B02A8F7 +:104010001B889380FFF7D4FF6B46D880002260880E +:1040200001A903F0D9FE3FB030BDC0466A61FF1F51 +:104030000641FF1F10B5024804F050FD10BDC046F8 +:10404000F13F001170B5160004AA148805AA15786E +:104050004A685078117800022A4A084380180528D7 +:104060004BD807F08DFD03131E29343F0720042C85 +:104070000BD80522121BAA4200D92A0022491A8015 +:104080003000091907F03CFD002070BD0720112CFD +:10409000FBD81222121BAA4200D92A001B491A80FF +:1040A000EEE707200E2CF0D80F22121BAA4200D9EF +:1040B0002A0017491A80E3E70720032CE5D80422D9 +:1040C000121BAA4200D92A0012491A80D8E70720F9 +:1040D000032CDAD80422121BAA4200D92A000E4966 +:1040E0001A80CDE70720032CCFD80422121BAA4246 +:1040F00000D92A0009491A80C2E700220A201A8042 +:10410000C3E7C046DCD5FFFF3BBD00119061FF1F38 +:104110002BBD001126BD001121BD00111CBD0011D9 +:1041200010B50D21024A034806F0EEFC10BDC04652 +:1041300010BD00111C41FF1FF0B50024274E85B0B3 +:104140003000B47100F0E2F8254D264BEA89297C55 +:104150009A422FD10423300003AA00F057F904003B +:10416000300000F011F90123B371002C34D16B46FB +:1041700099892B68C9BA4B4329891B4A1B145B18C0 +:1041800053806B46D9896B6849BA89B24B436989B8 +:104190001B0C5B181548191C1BB2834200DD011C67 +:1041A0000B0400D500211388918001331380200077 +:1041B00005B0F0BD0227220003AB3000009700F0ED +:1041C000F7F80E230400297C0122300000976B448D +:1041D00000F0EEF80443C3E71C00E8E7F441FF1FDA +:1041E000A461FF1F83050000BC61FF1F0F270000B3 +:1041F00073B5234E300000F089F8224D07236A463C +:104200003000297C00F002F904003000002C33D18A +:104210006B461B787F2B2FD800F0B6F86B46D8780A +:10422000F02302041B031A406B469B8816495BBAB5 +:104230009BB21A432B68000953432A891B0C9B1815 +:104240004B806B465A789B7812031B011A436B68AC +:10425000024353436A891B0C9B180C481A1C1BB25F +:10426000834200DD021C130400D500220B888A80E3 +:1042700001330B80200076BD00F086F80124F9E7B9 +:10428000F441FF1FA461FF1FBC61FF1F0F27000047 +:1042900070B5114C237C002B0FD0382B0ED10F4D55 +:1042A000280000F033F8CC23AC222800217C9B01AD +:1042B00000F0F4F8280000F067F870BD084BE289C0 +:1042C0009A42FAD1054D280000F020F8002228007B +:1042D000217C00F0C5F8EDE7A461FF1FF441FF1F4A +:1042E0008305000010B5084B1A7C002A09D05B69D1 +:1042F000002B06D09847041E01D0FEF781FE200057 +:1043000010BD0124F9E7C046A461FF1F70B5C17953 +:1043100005000C00631E9C411A4BE402E41849009E +:104320000460C9B2007906F0D9F8E97968794900E2 +:104330000131C9B206F0D2F8E8790930C0B207F00D +:1043400047FC0023E36661332360AA795B3B002AC4 +:104350000ED022689A43023B134323600A23E36191 +:104360000733236200232363A3630133E36370BD38 +:1043700022689A4302231343236046236361063372 +:10438000A361EFE70050004070B50025040003680A +:10439000DD66C0790930C0B207F052FC29002079EF +:1043A00006F038F82900607906F034F870BD000096 +:1043B000F8B51E0006AB1D78002304681700E366FD +:1043C000616007F0FDF901238022E3662B0027617D +:1043D0005200013B08D207F0B3FB08200A4A1168DB +:1043E000002D03D12800F8BD2261F2E7236F0342BC +:1043F00003D02369013D3370013613685B1A032B28 +:10440000EED90125EEE7C0466008FF1F70B51C001D +:10441000002305681600EB66696007F0D1F90123F7 +:104420008022EB6623005200013B08D207F088FB94 +:1044300008200A4A1168002C03D1200070BD2A61AF +:10444000F2E72B6F034203D02B69013C3370013636 +:1044500013685B1A032BEED90124EEE76008FF1FF7 +:10446000002370B504681500E366616007F0A8F9E1 +:104470000123E366256107F063FB8020064A800084 +:104480001168636B034205D113685B1A032BF8D9DB +:10449000012070BD0020FCE76008FF1F70B51D0003 +:1044A000002304681600E366616007F089F90123C0 +:1044B000E36626610F33626B1A42FCD02B0A23613C +:1044C0001023626B1A42FCD0EDB2256107F038FB75 +:1044D0008020074A80001168636B034205D113688E +:1044E0005B1A032BF8D9012070BD0020FCE7C04601 +:1044F0006008FF1F70B51E00002305681400EB66FE +:10450000696007F05DF90123A619EB660F33B44229 +:104510000ED107F015FB80200A4A800011686B6BF2 +:1045200003420CD113685B1A032BF8D9012070BD2C +:1045300021782961696B1942FCD00134E7E700203A +:10454000F5E7C0466008FF1F10B5084CE368002B74 +:1045500008D18022064B52021B689B186360054BF2 +:104560001B68236007F034F9A06010BDE461FF1FF1 +:10457000C8F00040CCF0004070B5184A936A916AC8 +:104580009942FBD116498A689A421FD39A1A8B60C6 +:10459000144B0126186893B2D202D20E4343424311 +:1045A00000204C681B0A1B1912029B180E4C0A684B +:1045B0004B60551CA3420CD8002801D04B600A6008 +:1045C0000A4A136008680A4B186070BD581E821AA8 +:1045D000DDE7084A30009B182A00EAE700F00040B7 +:1045E000E461FF1F140AFF1F40420F00C8F00040A3 +:1045F000CCF00040C0BDF0FF70B51F4C23793F2BBD +:1046000001D93F2323711D4B22791A701878C0B24B +:1046100007F0AEF818231A491A4A0B801A4913807A +:104620000B805380A379194980200B800C21938043 +:1046300001334B43164D191C0001834200D9011C64 +:104640002980D1806379002B11D101336371237AE2 +:10465000012B01D8022323726279237A0D48534338 +:104660000A21584307F07CF80B4D286070BDA02B41 +:10467000EDD9A023EAE7C046D861FF1F480AFF1F13 +:104680000E42FF1FE443FF1F0C42FF1F0A42FF1FA1 +:104690000842FF1F71020000C861FF1FF8B5152115 +:1046A0000020FEF79BFE114C011E114D09D10C227A +:1046B000104BC1CBC1C4280007F05AF9FFF79CFF8B +:1046C000F8BD0C2220000C49FEF75CFE0C2802D03D +:1046D000084B43CB43C40C2228000849FEF752FE86 +:1046E0000C28EBD00C220021E5E7C046D861FF1F63 +:1046F000A461FF1F80BD0011FC0C0000F50C000040 +:10470000F0B51D4C8022A544040088206946520162 +:10471000400506F0D5FF902212016A4413002000E4 +:1047200032C832C316C816C38023144C144FA6686F +:104730009B033343A3603B6007F032FA8823A068F1 +:104740005B05C01807F05CF900258823290080224A +:10475000A0685B05C01840196944520007F008FAC8 +:1047600080230135FF355B019D42EED1A6603E609E +:10477000044B9D44F0BDC046FCEFFFFF5443FF1FB8 +:104780009808FF1F04100000F0B5040087B000284F +:1047900025D0684607F01CF91B4C022806D10622DA +:1047A0006946200007F0F4F8002816D06946002377 +:1047B00001250F262F00E25C0133100910308740DD +:1047C00038002F00324097403A0002434A610439D2 +:1047D000062BEFD16846FFF793FF07B0F0BD182214 +:1047E00069460A4806F06CFF6A46A300D3580133B5 +:1047F00005D01822FF21684607F0BAF8EAE701342D +:10480000062CF1D1E9E7C0466509FF1F0009001138 +:10481000F0B5002504000E0085B0AA4200D186E064 +:104820004B1C087801934B78897837790902194332 +:10483000F3783F061B040B431F43039720706570FA +:10484000252800D196E033D8112813D807F070F846 +:1048500069002501250125012501AA00B800B10044 +:104860002501250125012501250125012501250118 +:1048700005011F01232800D1DEE0DB2800D02EE156 +:10488000042A00D8ACE01025052A05D0551F2A00BF +:104890003800711D07F034F905223100200007F0BF +:1048A0002FF92A003900601D07F02AF905353EE08E +:1048B000562859D010D8332800D19DE0552839D03A +:1048C0002628DAD19C4B2900132218001D0007F07E +:1048D0004FF8FEF795FB5CE0712800D177E0722875 +:1048E00000D180E0602800D18BE0DC28C5D1022A0D +:1048F00000D875E07378BFB26370B378A370032AF1 +:1049000005D0033A390092B2F01CFEF775FC102274 +:104910003900E01CFEF736FDC51C002807DA607080 +:104920005CE00C222000854907F0EAF80C252800FD +:1049300005B0F0BD013A824D0C2A13D8002A0AD0E6 +:104940002800019907F0DCF8FFF756FE0C2228003A +:104950007C49FEF751FC29000C22601C07F0D0F8BE +:104960000D25E4E70C22EBE7754D774B2A0043CB8E +:1049700043C2E9E7013A704D0C2A11D8002A08D049 +:104980000199280007F0BCF80C2228006F49FEF7B7 +:1049900033FC29001322601C07F0B2F81425C6E787 +:1049A0000C22EDE705226A49601C07F0A9F80625EC +:1049B000BDE712226749601C07F0A2F81325B6E78D +:1049C00008226549601C07F09BF80925AFE771785C +:1049D000F02905D8614B188801F0A0FD0225A6E753 +:1049E000FF236370FAE75E4B012A03D072789A7056 +:1049F0006270F3E79B78F4E72000FFF7E1FA050027 +:104A000095E7013A564B574D062A10D8002A10D088 +:104A1000012128005970019907F072F801F050F84F +:104A200029000622601C07F06BF807257FE70622A5 +:104A3000EEE700225A70F3E7042A04D94A4D2F60AA +:104A400006F0C6FEA860FFF797FD0422039003A9B5 +:104A5000601C07F055F8052569E7444D062ADFD9A3 +:104A600006222800019906F093FF0028D8D00622DC +:104A70000199280007F044F806223D492800FEF776 +:104A8000BBFB0123364A91780B439370C8E7012A98 +:104A9000A6D07078FFF778FEA0E7012800D0ECE6FA +:104AA000931E344F132B04D87378002B09D100F0D8 +:104AB00015F9314B39001D78601C6A1E07F020F88B +:104AC00035E7551E2A000199380007F019F82B49DF +:104AD000AAB23800FEF790FB00F038F9E9E7DA28CF +:104AE0001DD1042A00D87BE7082A15D9B379727939 +:104AF0001B021343F27912041A43337A1B06134341 +:104B00003B603B68052231002000039306F0F8FF6C +:104B10000422601D03A956E7FE236370F1E7DE2837 +:104B200000D05DE7511E012A01D10025FFE6019862 +:104B300000F0ACFFF9E7C046A461FF1F8CBD001177 +:104B4000D861FF1FFC0C000080BD0011F50C0000B7 +:104B5000B061FF1F9061FF1F5843FF1F1042FF1FEE +:104B6000D461FF1FB442FF1FE461FF1F6509FF1FEF +:104B7000ADAC0000D563FF1FD363FF1FAEDE0000A6 +:104B800070477047020010B5094B0A32094C92B2C7 +:104B9000DA815A8298811882207802F025FB04225B +:104BA000054B012120781A7006F022FF10BDC04687 +:104BB000E242FF1F1E64FF1F1D64FF1F013870B516 +:104BC000042809D806F0DCFF030928081200234B4B +:104BD0000221187806F00CFF70BD204B08211878D0 +:104BE00007F006F800221E4B1A72F5E78022002417 +:104BF0001B4B1A4D52001A8108211A682878DC7262 +:104C000006F06EFD2100287806F0D2FF012000F0AA +:104C100075FE00F055FFDFE7104B0821187806F00D +:104C2000E7FF1048FFF76AF80F4B104A9B79002006 +:104C300093800F4A13808022094B5200D8721A8148 +:104C400000F05CFE00F03CFF0A4B9B78002BC3D0C9 +:104C5000094A136006F03CFEBEE7C046F461FF1F40 +:104C6000C861FF1F1942FF1FD861FF1FE443FF1FE8 +:104C70000A42FF1FD461FF1F34F0004010B5012924 +:104C80000BD1082809D1054B1B78002B05D0262213 +:104C9000034B04485A72FFF775FF10BDF663FF1F00 +:104CA000C861FF1FC40900000300F0B50A4D8E184B +:104CB000B14202D152008018F0BD0C782F6824094F +:104CC0003C5D0F271C700C7801313C402F683C5D27 +:104CD0005C700233ECE7C0460442FF1F0E22124B09 +:104CE00010B51A700D23114C11492370093A043B79 +:104CF0001048637006F004FF2D2301220E490F486F +:104D0000E371FFF7D1FF01220D49FFF7CDFF01222B +:104D10000C49FFF7C9FF030000200B49020018707F +:104D2000FEF76AFA10BDC046F263FF1FD363FF1F90 +:104D30003BBD0011D563FF1F6709FF1FDB63FF1F2A +:104D40006609FF1F6509FF1FAEDE000070B5124C3B +:104D5000142220001149FEF715FB431E104D132BA2 +:104D600017D8AB78002B14D0431C2B7009236B7021 +:104D7000002300190370287829000130C0B206F022 +:104D8000C7FE297822000139C9B2002005F0DAFDFA +:104D900070BDFFF7A3FFEEE7D563FF1FAEDE000097 +:104DA000D363FF1F10B5114B1A781870002A0ED06C +:104DB00000280BD10E4B1A78062A07D85423D3406B +:104DC000DB0703D50B4B187802F00EFA10BD002854 +:104DD000FCD0074B1B78012B02D0033B022BF5D8EC +:104DE000044B0121187806F003FEEFE7F663FF1F7E +:104DF0001D64FF1F1E64FF1F70B5514E514A52497A +:104E00003070082005F02AFC0121022005F030FB5B +:104E1000022005F011FC0121002005F029FB0020F3 +:104E200005F00AFC00F0BAFEFEF7EAF806F028FEEC +:104E3000032246494648FFF737FF2D24030004228A +:104E40001C7044490130FFF72FFF30230470424D9E +:104E5000424C437083702E3B062220004049EB8772 +:104E6000FEF790FA062813D0200006F0B1FD0228C4 +:104E700009D00321200006F01BFE8D23E3706E3B5A +:104E8000237119336371062220003549FEF7B4F906 +:104E9000344B1B68FC335C64FFF758FF0020FFF7BE +:104EA00081FF314C314A0121314B1278207802F0D8 +:104EB0005DF9304A304B12780021207802F056F923 +:104EC00001222E4B1A702E4BDB78552B31D12D4BF6 +:104ED0003B325A722C4B2D4AAB81EA812B826A827B +:104EE0002021307806F0C4FC0120404205F076FD18 +:104EF0000120404205F012FEFFF712F9FEF7C6FE50 +:104F000000F0A4FC01204042FEF79CFF012006F0C7 +:104F1000BFFDF02001F0E6FA0121307806F068FDCF +:104F2000307802F0BDFA1A4806F0D2FBFEF7C2FD57 +:104F300070BD6422174B5B7953431A000A32CBE7EA +:104F4000F461FF1F814B00117D4C00115843FF1F7E +:104F50009061FF1FB061FF1FE242FF1F6509FF1F45 +:104F6000ADAC00004064FF1F1E64FF1F3842FF1FEE +:104F70001942FF1FF263FF1FD363FF1FC463FF1FAC +:104F8000D461FF1FC861FF1FC4090000CE090000E3 +:104F9000F661FF1FD861FF1FF8B50A0020230D003E +:104FA0001A40194257D0574B1B78002B50D0FFF7AF +:104FB000E3FA554B554C564E99686268737A8A1AD3 +:104FC000DB039A4202D36160FEF774FD327A217AE4 +:104FD000531EDBB2994205D1FFF75AF9002000F0C9 +:104FE000A5FD0FE09142F9D300232372FFF77AF970 +:104FF000012000F09BFD474F3800FEF77FFE39008F +:1050000006F0DEFC637A002B1FD0013BDBB263723B +:10501000002B1AD1404BDB78552B01D106F058FC00 +:10502000E37A002B0CD000233C4A3A4FE3721388FA +:10503000380001331380FEF761FE390006F0C0FC32 +:10504000642370795843FFF79DFD237A013323725F +:1050500020206840F8BD0BB2002B0ADA304B1878DC +:1050600006F0CEFB002801D006F0F2FD8020000201 +:10507000EFE70224214206D0244B01201A72FFF7E9 +:1050800091FE2000E5E70B071ED5FFF775FA1E4BD2 +:105090001E491F4C98684A68637A821ADB039A4259 +:1050A00002D34860FEF706FDFFF71CF9FFF7F0F8A2 +:1050B000012000F03BFD00F0E3FB2368DB0701D596 +:1050C000FEF7B8FF0820C4E71024214206D00D4B9C +:1050D0001B78002BD5D1FEF7EDFDD2E7012421424C +:1050E00007D0104800F06CF806F012FB00F004FD49 +:1050F000C7E70424080020402142ABD0FEF7BEFEE3 +:10510000BFE7C046F663FF1FE461FF1FC861FF1FD2 +:10511000D861FF1F1942FF1FD461FF1FBC61FF1F31 +:10512000F461FF1FFC41FF1FF0B51B4B1B4F1B8899 +:105130003A8804001A4E1B4D85B09A420DD8328829 +:105140009A420AD3184B1A882B889A4205D1174ADB +:10515000174B12881B889A421BD0052001F018FAC1 +:105160003B8802AA13803388019053802B88114D0D +:1051700093800F4B02A91B88D3800F4B2A78188885 +:1051800002F034FF0D4B08212878019A1C7006F0BC +:1051900027FB05B0F0BDC046C263FF1F0E42FF1FD4 +:1051A0000C42FF1F0A42FF1FC063FF1FBE63FF1FA9 +:1051B0000842FF1F1E64FF1F1042FF1FBC63FF1F3A +:1051C00013B50C4B1C78002C11D1002801D00A4BD0 +:1051D00018600A4A0A4B11780A4A10780A4A019262 +:1051E0000A4A0092002205F0A5FA200016BD1124FB +:1051F000FBE7C0461D64FF1FB863FF1F1C64FF1F51 +:105200000C64FF1F1E64FF1FF863FF1FFC63FF1F7A +:1052100010B5064B12201B78052B06D1044B132228 +:105220001988044B187801F08FFB10BD1D64FF1F17 +:105230001042FF1F1E64FF1F10B500240122114BF6 +:1052400052421870104B1C70104B1A8002F028F953 +:1052500004220F4B21001A700E480C3206F000FA9F +:10526000102221000C4806F0FBF907220B4B1C60B2 +:105270000B4B1C700B4B1C700B4B1A700B4B1C70A8 +:1052800010BDC0461E64FF1F1D64FF1F1042FF1F9C +:105290001C64FF1F0C64FF1FFC63FF1FF863FF1FEC +:1052A000D263FF1FD163FF1F1242FF1FD063FF1F96 +:1052B000F8B5174C0600257806A814240078052DAB +:1052C00023D1B41F134FA5B21824BD421DD88D1F82 +:1052D000ADB2BD4219D8FA256D00AA4215D21D0003 +:1052E0000D4F0A3DADB2BD420FD80C4C26800C4C80 +:1052F00021800C4900240A800B4A1380FFF714FF19 +:105300000A4B0421187806F073FC2000F8BDC04653 +:105310001D64FF1F790C0000750C00000E42FF1F7A +:105320000C42FF1F0A42FF1F0842FF1F1E64FF1F9F +:10533000F0B50BB20D0089B0002B00DB70E1A44E7C +:10534000307806F05DFA041E50D00378A22B00D10D +:1053500022E1D02B1AD0912B45D143780E2B42D18C +:105360009C4B82889A423ED19B4A83681278052AD8 +:1053700039D1032018567F2835D0984B1B68002B55 +:1053800031D05B68002B2ED098472CE0807807281E +:1053900029D806F0F5FB0428183F3F74A8D8637895 +:1053A000002B0CD101218C4B19708D4B1A78002ADF +:1053B0005BD08C4B307801F0D9FE002855D0072205 +:1053C000854B1A7051E061780029F8D1E378002B01 +:1053D00011D0854A854B1278307801F0C7FE607095 +:1053E0006378002BEBD1200006F032FC8020000215 +:1053F000684009B0F0BD784B1B78022BF3D0012137 +:10540000307806F0F5F90028EAD10121307806F06D +:10541000EFFAE5E76378002BD1D16F4F032807D16E +:105420003B78052B02D101333B701EE00223FBE7E2 +:105430006F4B1A886F4B0293002A0BD01B78002BFE +:1054400003D00121307806F0CBF93B78062B04D14C +:10545000013BE9E7029B1A70F7E7042B41D10121D8 +:10546000029B3078197006F0C3FA5C4B1B68002B66 +:10547000B9D01B68002BB6D0574A107884E7637800 +:10548000554F002B27D10622211D5B4806F038FB23 +:1054900062895A4B5A491A80A2895A4B1A80E38969 +:1054A0000B800521397058490A80584A1380228A96 +:1054B000574B1A80574B1B78012B09D11F2001F045 +:1054C00067F8FA22920042430421307806F088F906 +:1054D0000022484B75E7312B00D070E70022454B86 +:1054E0001A700323A0E706220021434806F0B8F80B +:1054F0000023454A04211380444A30781380444AEB +:10550000138006F075FB0821307806F071FBA37953 +:10551000083B5A425341304A03331370304B1B78D7 +:10552000002B06D0334B30781A78002A06D001F0D1 +:105530005BFE0122314B52421A8096E7012119701D +:1055400006F056FAF5E70821307806F051FB63784B +:10555000002B00D047E72C4B2D4F0293E388029A93 +:1055600004211380294B307803932389039A1380F5 +:1055700063893B8006F03CF9002800D033E7264BD6 +:105580001B68002B00D12EE7039902983A880988FE +:1055900000881B68984726E74379132B00D022E741 +:1055A0000389012B0AD11D4B1B78022B06D1082140 +:1055B000307806F01DFBFFF72BFE14E7052000F006 +:1055C000E7FF08210200307806F00AF90BE7C04631 +:1055D0001E64FF1F051400001D64FF1FB863FF1F3A +:1055E0003842FF1F1942FF1FF263FF1FD363FF1FE3 +:1055F000F463FF1FF663FF1FC563FF1F1042FF1F09 +:10560000CC63FF1FCE63FF1FC263FF1FC063FF1F7A +:10561000BE63FF1FC463FF1FB463FF1FBC63FF1F94 +:105620008020C001014200D0E2E6CB0731D5324BE9 +:105630001B78002B1DD0314E05AC3378052B1AD1C9 +:10564000023B23702E4B21001B7823722D4B1B78BD +:1056500063722D4B187801F02DFD002809D007202A +:105660002A4B30701B68002B03D01B68002B00D026 +:1056700098470120BCE60E20254B06221B782549C1 +:105680002370254B1B78637002ABC01806F038FA04 +:10569000D8E7022308001840194209D0174B1B789D +:1056A000052B03D11D4B188806F05AF902209FE6FE +:1056B0000424214203D0FFF737FD200098E6082399 +:1056C00008001840194200D193E6154B1C78012CB4 +:1056D00003D0022C0DD008208AE6124B124A13493F +:1056E00013481B881288098800880094FFF7E0FDA2 +:1056F000F1E7FFF78DFDEEE7F663FF1F1D64FF1F67 +:105700001242FF1FD063FF1F1E64FF1FB863FF1FFD +:10571000D263FF1F1342FF1FD163FF1F1042FF1F01 +:10572000BC63FF1F0842FF1F0A42FF1F0C42FF1FFE +:105730000E42FF1F10B502A804880B20002C10D1C8 +:10574000496808784978090201430C48814209D127 +:10575000022119800A4B59881170DB7800205BB256 +:10576000537010BD074C0A20A142FAD102211980C2 +:10577000034B998811705B79F0E7C0466E2A0000F0 +:10578000BC61FF1F6F2A0000F7B5150008AA168834 +:105790004A680F4F14785278120222430A24BA4200 +:1057A00014D10122DBB2019200962A0005F0C8FE56 +:1057B000041E0BD1074B1B68002B07D068782A7892 +:1057C0000002104342425041013098472000FEBD84 +:1057D000022900003064FF1F30B501250379040061 +:1057E000BFB02B4225D01449408805F015FA284255 +:1057F0000CD0124B01A95B8D00220B8002234B8041 +:105800000F4B5B888B80608802F0E6FA0D49608858 +:1058100005F002FAC0070CD50B4B01A91B8800222A +:105820000B8002234B80064B9B888B80608802F0A4 +:10583000D3FA3FB030BDC0462864FF1F3C42FF1F73 +:10584000BC61FF1F2064FF1F9642FF1F10B5074C6D +:105850000749200005F096F92000064905F092F965 +:105860000721054A054805F04FF910BDFFFF00006C +:105870002864FF1F2064FF1FACBD00113C42FF1FC6 +:1058800010B5024803F02AF910BDC046D9570011DF +:1058900070B540253F2608210B4BC207D2172A407E +:1058A000DD789C7835408C432A439C70DA708207FF +:1058B00001D521439970400704D58022D9785242FE +:1058C0000A43DA7070BDC046B442FF1F13210A4B71 +:1058D000DA788A43123901400A43DA700222104210 +:1058E00002D0D9780A43DA70400703D51022D9785C +:1058F0000A43DA707047C046B442FF1F10B5054B2B +:10590000082419790A00A243002801D022000A4382 +:105910001A7110BDB442FF1F10B5054B2024D97871 +:105920000A00A243002801D022000A43DA7010BD09 +:10593000B442FF1F0821F8B5324D334BAE78040056 +:105940000E40AE70984204DD67232B70273B6B70CE +:10595000F8BD2E4B984203DAE0232B701A3BF6E792 +:1059600000232B706B7083B21A0029485F3292B209 +:10597000284F82422CD9002C03DA5B421CB204234C +:105980002B70053420B20A2105F0EAFE04B2FA2396 +:105990009B009C4232DB08232A7813432B7064213E +:1059A000200005F0DDFE0A2100B206F099F809B2E8 +:1059B0002A787B5C13432B700A21200005F0D0FE6F +:1059C0000A2100B206F08CF809B27B5C6A780AE022 +:1059D0006970002CDBDA5B421CB204232B70F522C9 +:1059E0006B78092CE8DC13436B700A21200006F069 +:1059F00077F809B27B5C1E43AE70A9E7632CCEDC5E +:105A0000EDE7C046B442FF1F1B4E00001DFCFFFF28 +:105A10002A080000D7BD00110823F7B5194FCD00A3 +:105A20003E7904001E403E71EDB2632806DD5F330F +:105A300033433B7140231D437D71F7BD03000933A0 +:105A400005DA20235B4233433B71C623F3E70E4B59 +:105A5000019300280BDA0423444224B23B710A214B +:105A6000200006F03DF8019B09B25B5CE3E70928E2 +:105A7000F5DD0A2105F074FE019B00B21B5C1E439C +:105A80003E71ECE7B442FF1FD7BD0011F8B50A4FD5 +:105A900005003B780E00002B0CD0084C2000FEF7D0 +:105AA00035FC33002A0020003978FEF723FD200062 +:105AB000FEF76AFCF8BDC0463464FF1FBC42FF1FFE +:105AC00070B50A4E0A4D06223100280005F060FF2D +:105AD000002809D0074C31000622280006F010F8F3 +:105AE00007212000FFF7D2FF70BDC046B442FF1F60 +:105AF000AE42FF1FAD42FF1FE622202110B50A4B28 +:105B00001A70203A5A701C329A70DA780A40DA70A9 +:105B1000082219791140033A0A431A71B6225A71C0 +:105B2000FFF7CEFF10BDC046B442FF1F70B5184B43 +:105B30005C78002C2BD1002829D0164D0A21022395 +:105B4000E85E05F00DFE00B2FFF7F4FE0423E85E08 +:105B5000642105F005FE012100B2FFF75DFF13226D +:105B600020002B7A9A426041C0B2FFF7D5FE032095 +:105B7000FFF78EFE2000FFF7A9FE074B18780538C7 +:105B800043425841C0B2FFF7B9FEFFF799FF70BD1D +:105B9000D461FF1FBC61FF1F1D64FF1F70B500258E +:105BA0000A4C2000A571FEF7B1FB11233E21200015 +:105BB000074AFEF79FFCA84200D13E35054B200066 +:105BC0001D700123A371FEF7DFFB70BDBC42FF1FF8 +:105BD000C6BD00113464FF1F0200F0B501270A485A +:105BE0000A4E51188B1A002B00DCF0BD08241578E2 +:105BF0004308684038404000805B013C58406D08D5 +:105C0000002CF5D10132EDE7FFFF0000E8BD0011E7 +:105C1000F0B500250F269D4200DBF0BD4C5D070965 +:105C200044403440A400A05801357840F3E7000018 +:105C3000F0B589B06A460D000B000F271100103532 +:105C40001C780133260024093E401670547002323D +:105C5000AB42F5D12023024AFFF7DAFF09B0F0BDCD +:105C6000ECBD0011F0B54E780B7889B036020C000F +:105C7000170001901E43012A61D9954B9E4200D81E +:105C800077E001339E421CD1062A17D1CA788B785F +:105C900012021A430B791B0413434A7912061A4362 +:105CA0008C4B5A6100221A705A808B4A5A608B4A78 +:105CB0009A608B4ADA60002009B0F0BD8822520554 +:105CC000EEE7884B9E423CD182498B78002B00D076 +:105CD000F6E00C2A31D10F22A3789343E278120226 +:105CE00013432279120413436279120613434B6063 +:105CF000E279A07912020243207A00041043627A0A +:105D000012060243CA60E27AA07A1202024376487F +:105D10004A81834208D804236E49142201980B70EB +:105D200005F0EEFE1420C7E71201D21889235B05A7 +:105D30009A42F0D801238B70BDE7022AFAD00523DE +:105D4000EAE76A4A01239642E6D1FFF761FA052F96 +:105D50000CD9E378A2781B021343227912041A4368 +:105D600063791B061343624A0393136005F0B0FD89 +:105D7000A1E7584D2B78002B9DD1AB78002B00D19B +:105D8000A0E02B8901339BB20093B34200D091E095 +:105D9000132AD4D9CF7C8B7C3F02122120001F43D1 +:105DA000FFF71AFF874200D08EE0002E3DD1E37846 +:105DB000A2781B0213432279E96812041A4363791B +:105DC0001B06134303930A228B4212D1FF23A370B5 +:105DD000E370237163716B89002B09D1E37B227C13 +:105DE0001B0212041343A27B13431B0901336B8173 +:105DF00000226B89002B8ED0002A67D1686837019A +:105E00003818000B6B6900030390984205D968614C +:105E100005F0F6FDEB780133EB7068681022A11CE9 +:105E2000381805F0A5FE2E8145E76F89009A7B1E84 +:105E30009BB293423AD1E278A37812021A432379B3 +:105E400005A81B04134362796C6812061A43EB68B9 +:105E500000920392211D0C22049305F051FE0120B3 +:105E6000260004A940421036FFF7E2FE013F012F51 +:105E700017D1009A0B232861824200D04CE70422FC +:105E80001C49200005F074FE042203A9686805F08F +:105E900017FCE968039AFF23914200D13CE7F73BE6 +:105EA0003AE73100FFF7C4FE1036DFE70923B742B7 +:105EB000A4D831E7009BB34200D9FCE607232BE7C7 +:105EC000022329E7032327E7062325E70A2323E7FD +:105ED000FFFE0000C442FF1F00000111FFFF000091 +:105EE0005048593601FF0000FFFF001102FF00007B +:105EF00034F00040D042FF1F10B5034C0B000122CC +:105F0000210000F06BFA10BDB96000110B8870B56C +:105F100006000D000224162B11D92B00032209497B +:105F200000F05CFA041E0AD1074B2A881B88191C52 +:105F3000934200D9111C300089B200F0EFFA200022 +:105F400070BDC046E56000115A64FF1F10B54A7865 +:105F50000400013A0B000220012A07D80A78002A1F +:105F600004D005222000024900F038FA10BDC046D6 +:105F7000136100110A7810B50B0004000220002AFA +:105F800004D007222000024900F028FA10BDC046C4 +:105F9000BF6100110A7810B50B0004000220002A2E +:105FA00004D009222000024900F018FA10BDC046B2 +:105FB0002562001110B5034C0B000B22210000F0EC +:105FC0000DFA10BD5562001110B5034C0B000D22E7 +:105FD000210000F003FA10BDC762001110B5034C98 +:105FE0000B000F22210000F0F9F910BD2163001110 +:105FF0000A7810B50B0004000220002A04D01122F8 +:106000002000024900F0EAF910BDC04631630011DA +:10601000002310B51322190000F0E0F910BD0000B4 +:1060200010B5034C0B001722210000F0D7F910BD6A +:1060300083630011002310B51922190000F0CEF976 +:1060400010BD000010B5034C0B001B22210000F016 +:10605000C5F910BDBD630011F7B584890D000600B8 +:106060000121002C22D000238268D3561778002B00 +:106070001EDA0C2C1AD90C3CA4B2131940880093D8 +:10608000230002F086FE431E984101307B06DB0FA1 +:106090006B703F23013C1F40A4B22870AF70AC80EE +:1060A000002C07D0B3680133AB6000210800FEBDAF +:1060B0000020EBE7AC60F8E70B7803704B88437087 +:1060C0004B881B0A83700B79C3700420704704202F +:1060D000022B06D10020537811781B02009A0B4343 +:1060E000138070470B8803700B881B0A43700220D3 +:1060F00070470420009983420AD1537810781B021C +:1061000003430B80D37890781B02034300204B801D +:106110007047F8B50D004B7801240021461C037030 +:106120002B788B4201D82000F8BD6B78B01C4F1C37 +:10613000012B10D1890069184B88022233704B88DB +:10614000B9001B0A7370691805F02AFB0436043481 +:10615000A4B2F9B2E4E7122359436B185A88043108 +:1061600032705B8810221B0A7370691805F018FBE7 +:1061700012361234ECE770B5049D14001E00052B96 +:1061800001D8042070BD637812781B0213432B8062 +:10619000E378A2781B02134302226B802A71211D2F +:1061A000681D063E05F0FCFAB2B22A81E92AE8D859 +:1061B0002800A11D0A3005F0F3FA0020E2E70023D1 +:1061C00010B50A789A4201D8900010BD9A008A183A +:1061D0005488013304705488DBB2240A44709488D4 +:1061E00084709288120AC2700430EAE710B5110078 +:1061F000029C062B04D004201022142B01D010BDC9 +:10620000022222714B7808781B0203432380CB784B +:1062100088781B02034363800431601D05F0C0FAD7 +:106220000020ECE710B50C788B7804315C43E4B2C5 +:1062300003702200013005F0B3FA601C10BD042089 +:10624000022B06D10020537811781B02009A0B43D1 +:106250001380704710B50C000A88023105F0A0FACF +:10626000208810BD70B504000D0004981100012BAA +:1062700001D8042070BD1678527812023243028091 +:106280000200F13255701470E125002C00D10C355C +:10629000023B9AB24280AA42EBD80231043005F0A8 +:1062A0007FFA0020E6E70420009983420AD1537860 +:1062B00010781B0203430B80D37890781B020343B2 +:1062C00000204B80704710B50C000A88023105F0A1 +:1062D00067FA208810BD000070B501211E0004205F +:1062E000049C0E400B4218D1CB40DDB28D4214D934 +:1062F0000A49DBB2098899420FD32300EE331D709F +:106300003300580011184978165C090231430133F3 +:106310002152D9B28D42F4D8002070BDDC42FF1F5B +:1063200010B50C000A88023105F03AFA208810BD39 +:1063300010B50C788B7804315C43E4B20370220012 +:10634000013005F02DFA601C10BD10B51100029847 +:10635000032B01D8042010BD14785278043B12029C +:1063600022430280CA788C781202224342809AB279 +:106370008280EB2AEED80431063005F011FA0020B5 +:10638000E9E710B50C000B8803700B881B0A4370FB +:106390004B8883704B881B0AC3708A88043006318F +:1063A00005F0FEF9A088043080B210BD0420012B56 +:1063B00003D100201378009A1370704710B50C00B9 +:1063C0000B8803700B881B0A43704A880230043123 +:1063D00005F0E6F96088023080B210BDF0B589B0F2 +:1063E00003931E4B029242000700D05A019102F023 +:1063F00020F81325061E2DD0029B01240370019B5B +:10640000002B04D0001903999847001984B26B46F9 +:106410001B7A5BB2002B0FDA1021380002F01CFB54 +:106420001925002813D130003219E1B202F066FCC0 +:10643000051E0CD10C34A4B2042304AA380005A90B +:1064400093800696948101F0AFFD051E02D03000C6 +:1064500005F0FEF9280009B0F0BDC0465864FF1FE2 +:1064600070B505000C0000280CD00020814209D036 +:1064700010222000044905F093F901202B782373A2 +:106480006B78637370BDC0462CBE0011F0B506007A +:106490000D0017001C0085B002291BD00020102918 +:1064A00007D1022B07D0102B03D115E00020102CB0 +:1064B00008D005B0F0BD69463800FFF7D1FF2A00CB +:1064C00069460BE069463000FFF7CAFF22006946C3 +:1064D000380004E0022BE9D12A003900300005F031 +:1064E000B7FAE6E7031CF02800D9F0230320084997 +:1064F0009AB2013A0B80D317034006499B189B10B0 +:106500000B80D30F04499B185B100B807047C0466B +:10651000E042FF1FDE42FF1FDC42FF1F034B1B88D0 +:106520008B4202D3024B4000C1527047E042FF1F32 +:106530005864FF1F014B4000185A70475864FF1FF2 +:106540001722014B1A8070475864FF1F70B5050071 +:106550000E2005F0E5F9041E13D0D02303700023AC +:106560000622837007494570033005F019F9064B80 +:106570002100DA8A62811B7E2373044B187805F0B0 +:106580008FFA70BD7464FF1F6464FF1F3043FF1FE8 +:10659000262803D8024B4000C05A70470148FCE748 +:1065A000E242FF1FFFFF000070B506000C00094D1E +:1065B0001C220021280005F053F8074B1E70074BE2 +:1065C0001C7005F035FB0123002801D000231220A8 +:1065D0002B7070BD6464FF1F3043FF1F8564FF1F75 +:1065E00070B505000D4C0800E260A160102200218A +:1065F000656005F075F9012803D11021A06802F04B +:1066000058FD10220021280005F06AF9012803D165 +:106610001021606802F04DFD70BDC0466464FF1F2C +:1066200070B5041E05D1002903D006220D4805F0DF +:10663000B7F80D4B1D78012D11D1002C05D1022288 +:106640001A7005F03DFA280070BD00221A70074B41 +:106650001B78FF2BF7D02000FFF778FFF3E700252A +:10666000F1E7C0467464FF1F6464FF1F3043FF1FDF +:10667000030010B5002801D1002010BD00780B4A9E +:10668000002803D15988D1821B7913761378022B05 +:10669000F2D10023984200D103331370044B1B78CE +:1066A000FF2B01D0FFF752FF0120E6E76464FF1FD4 +:1066B0003043FF1F002911D000280CD04B7901284E +:1066C00003D140225242134303E03F2213400328E8 +:1066D00002D001204B7170474022F4E70800FAE72E +:1066E00070B5094D0100287800280BD0074C062210 +:1066F000200005F055F821002878FFF7DBFF200087 +:1067000005F046F870BDC0468464FF1F5E64FF1F3D +:1067100000290AD0012808D13F224B799343C02B8E +:1067200003D0403B5A425341981C704770B5174DF7 +:1067300006002B78FF2B15D00A2005F0F1F8041E77 +:1067400010D0D0230370C83B8370114B11491B78C4 +:106750004670C3700622043005F022F82100287824 +:1067600005F09EF90C4B1B78012B0DD10B4B1B68D0 +:10677000002B03D09B68002B00D09847084B0421C6 +:106780001878084A04F0ACFF70BDC0463043FF1FC4 +:106790008464FF1F5E64FF1F8064FF1FAC64FF1FE3 +:1067A000B064FF1F60EA0000014B98687047C04664 +:1067B0006464FF1F014BDB68186870476464FF1F47 +:1067C000074B10B5DA68136801331360054B18786E +:1067D000FF2803D08021C90105F00AF910BDC04689 +:1067E0006464FF1F3043FF1FF7B50E0002F0C8F8C6 +:1067F000051E1CD00E4B06621F78002F00D10778B3 +:10680000AB791020019305F08BF8041E0FD0D02334 +:106810000380C73B8370019BE91DC37006220430CF +:1068200004F0BEFF21003800E66005F039F9F7BD3D +:106830002E43FF1F014B18787047C0468464FF1F2A +:10684000054B002805D1054B1A78054B002A00D1CD +:10685000014B18007047C0467464FF1F8464FF1F1B +:106860005E64FF1F014B58687047C0466464FF1F99 +:10687000024B1868431E9841C0B270478864FF1FDE +:10688000421E03000120152A03D9FF3B5A425341FF +:10689000D8B27047F0B51C0000230E0085B00390FD +:1068A00002920B70029A934201D3002019E0E55C3A +:1068B0005A1CD2B2002DF8D0029851198142F4DC52 +:1068C0000233DFB2A35C18000193FFF7D9FF002861 +:1068D00007D0013D019A0399EBB233708A4202D18D +:1068E000E01905B0F0BDDB19DBB2DBE710B50C0039 +:1068F00002F09EF803001220002B03D021005888DC +:1069000005F06EF810BD000070B50E4D840063599F +:10691000002B15D0186A002801D005F071F92B5909 +:10692000586A002801D005F06BF92B59986A0028A5 +:1069300001D005F065F9285905F062F900232B51C3 +:1069400070BDC0469464FF1F1C4B70B504000E0060 +:10695000150099420AD11A4B1B68002B01D1122055 +:1069600070BD1B68002BFAD09847F9E7154B994288 +:1069700015D1134B1B68002B0AD01B68002B07D0C6 +:106980009847002804D1104B1C70104B1D70E7E78E +:1069900029002000FFF7AAFF0028E1D1F3E7080053 +:1069A00001F0EEFF0028DAD003780320A342D7D10C +:1069B0002900300005F014F8D2E7C046FEFF0000C1 +:1069C0009064FF1FFFFF00008D64FF1F8C64FF1F9A +:1069D000F7B50400808801F0D3FF0025A84203D05A +:1069E0000578A08802F008F81C4E3378002B1FD0E1 +:1069F000AB421DD11A4B28001978FFF777FF00280A +:106A000018D000233370A3790820A778A6880193B3 +:106A100004F086FF011E0DD0D0230370CA3B8370A3 +:106A2000019B477086808371280005F039F801E0EA +:106A3000002DE8D1A0880B4B8200D358002B01D049 +:106A4000FFF762FF1721A088FFF768FDA08801F01B +:106A500027FDA08801F0FEFDF7BDC0468D64FF1F35 +:106A60008C64FF1F9464FF1FF0B587B01D000CAB52 +:106A70001B88070001930DAB1B88142002930EABFB +:106A80001B88160003930FAB1B880091049310AB77 +:106A90001B88059304F044FF041E1AD0D023037012 +:106AA000CB3B47708370C670062229000430002D4E +:106AB00011D004F075FE019B21006381029B0098B8 +:106AC000A381039BE381049B2382059BA37404F0B1 +:106AD000E7FF07B0F0BD04F0C3FDECE7F7B50093A6 +:106AE00008AB1B8807000C200D001600019304F072 +:106AF00017FF041E13D0280001F042FF00280FD01A +:106B00000078D0232370C93BA370009B2100238110 +:106B1000019B6770A580E680638104F0C1FFF7BD2B +:106B2000014B1878EDE7C0463043FF1F13B5040052 +:106B300064890389C2888188C0780094FFF7CEFFFA +:106B400013BD000010B5044C2068002803D005F0E8 +:106B500057F80023236010BD9864FF1FA122F0B5F1 +:106B6000818892004A43384B384F1B6804009B18B9 +:106B70009D2292009B18827989B01A603B68002B95 +:106B80005FD01D78324B1B68002B04D05B68002B54 +:106B900001D000209847260008363100E079FFF741 +:106BA000B7FD237DE0710200E0780493638A290039 +:106BB0000393238A0293E3890193A388009333000C +:106BC000FFF752FFE378002B0BD1E289A379A1886C +:106BD00002920196E27928000092012201F0DAFE89 +:106BE000E0703B68002B20D0FFF7ACFF194D2878F0 +:106BF00000281AD0184B1978FFF778FE002814D017 +:106C00002B78E67808200793A78804F089FE011EF8 +:106C100009D0D0230370CA3B467083708780867189 +:106C2000079804F03DFF00232B701721A088FFF781 +:106C300075FCA08801F034FCA08801F00BFD09B0C0 +:106C4000F0BD064B9DE7C0463409FF1F9864FF1F47 +:106C5000AC64FF1F8D64FF1F8C64FF1F3043FF1F58 +:106C6000F8B5070008000E0001F08AFE041E18D0D7 +:106C70002620FFF78DFC051E00D12578062004F0A4 +:106C80004FFE041E0DD00021062204F0E9FCD023A3 +:106C90002370C23B21006770A370A680E8B204F0A5 +:106CA000FFFEF8BDF0B585B001930AAB1B78070075 +:106CB00002930BAB1B7808000D000092039301F0C8 +:106CC0005FFE061E22D0102004F02AFE041E1DD0F6 +:106CD0001022002104F0C4FC2620FFF759FC0028F4 +:106CE00000D13078D0232370C13BA370009B2100DA +:106CF0002372019B67706372029BA580A372039B42 +:106D0000C0B2E3720C9BE36004F0CAFE05B0F0BDB4 +:106D1000F7B50D00019001F033FE071E20D00E20C4 +:106D200004F0FEFD041E1BD02620FFF731FC061EDA +:106D300000D13E78D0232380C53B0622A370F91DE5 +:106D4000E01C04F02DFD019B2A0063810123DD403E +:106D50001A401D40210022736573F0B204F0A0FEBA +:106D6000F7BD0000F0B585B0029010000D001700CF +:106D70000A9E039301F004FE041E31D0029B002BF7 +:106D80002ED1039B02795B0724D5122313430422DF +:106D9000002E08D10B99002905D10C99002902D1A8 +:106DA0000D9900291AD01A430D9B2271002B00D097 +:106DB000C9E0002E00D1CFE0002D00D0CCE0606A09 +:106DC000002801D004F01CFF1C21300004F0B8FCA6 +:106DD000606205E002239A430E33D7E793432371A1 +:106DE000654BBA00D458002C00D1AAE0002E10D078 +:106DF000236A002B03D11C2004F032FD20625E4B7D +:106E0000BA00D358186A002803D01C22310004F0BD +:106E1000C7FC0C9B002B12D0574CBB001D596B6A52 +:106E2000002B03D1162004F01BFD6862BB00E35861 +:106E3000586A002803D016220C9904F0B1FC0D9B6F +:106E4000002B11D04C4DBC006659B36A002B03D106 +:106E5000142004F005FDB0622B59986A002803D075 +:106E600014220D9904F09CFC380001F089FD051EE8 +:106E700067D0414BBA00D358002B62D01A6A342035 +:106E8000002A00D11C389A6A002A01D0143080B23E +:106E90000B9A002A01D01C3080B25B6A002B01D013 +:106EA000163080B204F03CFD041E4AD018220021A6 +:106EB00004F0D6FB2620FFF76BFB0190002801D1E0 +:106EC0002B780193D0232370029B200063700A2348 +:106ED000294EA370039BBD00A371AB59A780196A0B +:106EE0001830002905D01C22A06004F059FC2000B5 +:106EF00034307359996A002907D0030014221433DF +:106F0000E060029304F04CFC02980B9B002B08D02D +:106F100003001C221C330B992061029304F040FCF7 +:106F200002987359596A002903D01622606104F04F +:106F300037FC6B462100187904F0B2FD3800FFF7EA +:106F4000E3FC05B0F0BD10220D9B0D991B69A01844 +:106F5000236204F025FC2CE70B9B002B00D13FE7BC +:106F6000012D00D03CE7606A002801D004F048FE03 +:106F70001C210B982AE7C0469464FF1F10B5044CEF +:106F80002068002803D004F03BFE0023236010BDDE +:106F90008864FF1F0B4B07B51A68002A01D1002037 +:106FA0000EBD6946531C012012780731FFF772FCB1 +:106FB0000028F4D002780123100018401A42EED0C5 +:106FC000EEE7C046A464FF1FF0B51F4F01203B68E9 +:106FD00087B0002B25D09B78059300F0B3FB0028E9 +:106FE00021D00A20FFF7D4FA04000B20FFF7D0FAD3 +:106FF000164B05001E78731E9E413B68F6B2191DA4 +:10700000D878FFF757FB3B682900DA7A04330392FC +:107010009A7901930292009033002000059A04F0BF +:107020009FFD07B0F0BDFFF7B5FF002805D0062093 +:10703000FFF7AEFA04000720D8E70820FFF7A8FA08 +:1070400004000920D2E7C0468864FF1F8464FF1F44 +:1070500070B50A4E040033780D00FF2B0DD00420CC +:1070600004F05EFC011E08D0D0230370CE3B4570B7 +:107070008370C470307804F013FD70BD4043FF1F6F +:1070800070B5040006200D0004F04AFC011E0AD071 +:10709000D0230370CD3B8370054B44701B68858003 +:1070A000187804F0FDFC002C01D0FFF767FF70BDDD +:1070B0008864FF1FF8B5264F06003B680D001124B9 +:1070C000002B05D10522234B1B78134202D1122439 +:1070D0002000F8BD204A10241268002AF8D0127847 +:1070E000002AF5D0DB0719D52B789A1E012A1AD869 +:1070F0000C2004F0B5FB132438600028E8D00023EE +:107100000A22437029000670023004F049FBFFF7A1 +:107110005BFF041E0AD0FFF731FFD9E700F012FB36 +:107120000028E1D1E4E7002BE2D0D0E70B4B1B783D +:10713000032BCDD11D20FFF72BFA094B1880002817 +:10714000C6D0084B04211878074A04F0C9FABFE7F3 +:107150008864FF1F8564FF1FA464FF1F8464FF1FF2 +:107160008264FF1FB064FF1F60EA0000F7B501935F +:10717000194B14001A78052306000F0012201A423A +:1071800021D0012920D1154B1D68002D1BD00220D4 +:107190001F2C18D8002C02D0019B002B13D0104BB1 +:1071A0001F221E706E1C0021300004F059FA019954 +:1071B0002200300004F0F4FA310020002C70002F7F +:1071C00006D004F0ADFAFEBD064B12201D68DCE7C8 +:1071D00004F09EFCF7E7C0468564FF1FA464FF1F10 +:1071E0004043FF1FA064FF1FF8B50F4E1224336801 +:1071F000002B17D01B780F3C834213D100250B4F77 +:107200000221387804F0F4FC094B042138781D8001 +:1072100004F0EEFC074B28001D8033685C7004F01E +:1072200067FC04002000F8BD8864FF1FB064FF1FE6 +:107230009C64FF1F8264FF1F70B5012823D11B4C83 +:107240002388002B03D01A4A1578002D07D0194B3C +:107250001B68002B02D01878FFF7C6FF70BD3B2BD0 +:1072600002D93C3B2380F9E7134E0221307804F029 +:10727000BFFCFA222388920002215A43307804F09E +:10728000AFFA2580EAE70B4B1B68002BE6D00B4BCF +:107290001B785B07E2D5084B0221187804F0A8FCA4 +:1072A0000022024B1A80FFF769FED7E79C64FF1F9C +:1072B0008064FF1F8864FF1FB064FF1F8564FF1F89 +:1072C000F8B51E4D2868002803D004F099FC00236F +:1072D0002B601B4E3068002803D004F091FC002383 +:1072E0003360184F05243B7818002040234221D0FA +:1072F000154800F02BFA3B78234213D0202004F0ED +:10730000AFFA2860002813D02022002104F0A8F949 +:10731000202004F0A5FA041E306005D020220021B0 +:1073200004F09EF9002004E0286804F069FC2C6059 +:107330001320F8BD00F00AFAF4E7C046A464FF1F6A +:10734000A064FF1F8564FF1F3443FF1F10B50A4C64 +:1073500023681A1E0ED0002808D10130587004F09E +:10736000C7FB002805D02368002B02D00021FFF7BF +:1073700087FE0122100010BD8864FF1FF7B5274E5D +:10738000050033680191181E21D05C78244F012C30 +:1073900030D1FFF7FFFD002825D02000FFF7F8F8D7 +:1073A0000400412814D91F4B022118781E4A04F00A +:1073B00097F91E4B3C3C1C80022233685A703B7884 +:1073C000002B14D128000199FFF75AFE0120FEBDC1 +:1073D000FA2292004243002AEED0124B0221187882 +:1073E00004F0FEF9E8E7FFF7D3F80200F3E7002323 +:1073F0003B70EBE73B78002BE8D1032004F090FAD8 +:10740000011E08D0D0230370CC3B457083703368D5 +:10741000187804F045FBFFF7B1FDD7E78864FF1F3C +:107420008064FF1FB064FF1F60EA00009C64FF1FC0 +:1074300010B51749838802008B4220D011D8154916 +:107440008B4217D0144900205B1899B2012907D844 +:10745000926811785A425341D8B2FFF7F9FD0120E2 +:1074600010BD0E4A00209B1807229BB29A42404151 +:10747000C0B2F5E783681878FFF768FFF0E7836824 +:1074800099785A78090218781143FFF777FFE7E7F0 +:107490000A20000006200000F8DFFFFFAFDFFFFF3B +:1074A000014B18707047C0464143FF1F10B5064C92 +:1074B000207001F041FA207804F0EAF905212078E3 +:1074C00000F062FD10BDC046B064FF1F0BB273B583 +:1074D0000D00002B00DBC4E0884B187804F090F915 +:1074E000041E0ED00378912B0FD0A22B00D1A1E067 +:1074F000834B1878FF2852D0210004F0D1FA0028DD +:107500004DD180200002684076BD43780F2B76D0A5 +:1075100013D8052B70D00E2BEAD18088794B984276 +:107520002BD8794B98421BD8784B9842E0D1A3686E +:107530001878591CFFF774F838E03E2BD8D18378BF +:10754000032B74D06CD8012B6ED0022BD0D1704B92 +:107550001B68002B23D05B68002B20D098471EE0CF +:107560006C4BC0180C28C3D804F06AF81DC2C215B1 +:107570000BC20B0B0B3223C23C00674BC018072811 +:10758000B6D8664B1B68002B09D01B68002B06D0B1 +:10759000200098470AE0A3681878FFF7C7F8200092 +:1075A00004F056FBADE7A068FFF762F800289FD013 +:1075B000F5E7A3681B78002BF1D0554B1B68002B17 +:1075C000EDD01B68002BEAD0210055489847EDE725 +:1075D0004F4B1B68002BE2D01B68002BDFD0210033 +:1075E0005048F3E7504B1B68002BD8D05B68002B4A +:1075F000D5D021004348E9E7FFF7EAF9CFE78088D3 +:107600004A4B984203D04A4B984200D070E7464B11 +:107610001B68002BC3D05B68002BC0D02100D5E7CE +:10762000153B012BBBD963E7FFF798FAB7E7FFF7E4 +:107630007DFAB4E73F4B1B78042B07D100236A4641 +:1076400013800179408800F0C5FCA8E7364B1B6821 +:10765000002BA4D05B68002BA1D0010036489847CE +:107660009DE7012421420AD0294B1B68002B04D03E +:107670005B68002B01D000209847012043E78B076F +:107680000AD5264B1B68002B04D05B68002B01D069 +:1076900020009847022036E70421280008400D42C8 +:1076A00000D131E7254E3388002B21D0013B9BB21E +:1076B0003380002B1AD1FFF7DBF800280AD0204BCB +:1076C0001C70164B1B68002B04D05B68002B01D08C +:1076D00020009847FFF7C6F8694601F001FD6846AB +:1076E000FEF7FEFF1D20FEF753FF308004200AE75F +:1076F000024B187804F07CFAF8E7C046B064FF1F2C +:107700004143FF1F0E20000001200000091000006F +:10771000A864FF1FFEDFFFFFAFDFFFFFAC64FF1FAA +:107720000C2000000B2000009064FF1F0D200000C3 +:10773000132000008564FF1FFFFF00008264FF1F0D +:107740008064FF1F10B501F09BF910BD014B18605C +:107750007047C046AC64FF1F0B880020162B01D871 +:1077600017230420014A13807047C0465A64FF1F44 +:1077700000207047074A03001188814207D0918892 +:107780000020994202D1013080001018704700207B +:10779000FAE7C046B864FF1FF0B58F7806000D0009 +:1077A000C5B01E2F15D1FFF7E5FF051E03D100243C +:1077B000200045B0F0BD00223B003100C0780092AF +:1077C00000F0B2FB0400A81C00F0D2FBFF23EB701A +:1077D000EEE7264B062403931B78FF2BE8D0182FE7 +:1077E000E6D87B08224A013BDB0002929A58944675 +:1077F000002ADDD0029AD3185B68002BD8D0087815 +:10780000002802D14B78012B02D10624122FCFD1B0 +:1078100007AFAB88697800976446AA68A047041E42 +:10782000C6D1AB78029A5B08013BDB00D318390064 +:1078300030005B689847041E0BD1AB78042BB6D0A0 +:10784000039A310010782200009700F06DFB0400CD +:10785000AEE76A78002AABD1AA7805A93B880871FF +:1078600030000A704B80FEF747FBA0E74443FF1F40 +:107870003CBE00111D4B37B5050098420BD00029C6 +:107880000AD1FFF777FF002805D11948FFF772FFEB +:10789000002800D0058037BD01291AD1FFF76AFF03 +:1078A000041EF8D001235B420380A378FF2BF2D0A3 +:1078B000FE2B07D00023E0781422009329001E330A +:1078C00000F032FBA01C00F053FB01235B426380FD +:1078D000E1E70229DFD1013901F0BEF80028DAD151 +:1078E0002800FFF747FF041EDFD1D4E7FEFF0000AA +:1078F000FFFF0000022210B5074B52421A800748D2 +:1079000001325A809A80DA8000F07EFA044801F051 +:1079100025F8002010BDC046B864FF1F99770011FC +:10792000757800110388F7B50400002B02D10225F9 +:107930002800FEBD42680221137825485268FEF7F0 +:10794000A5FD00282ED0234F01253A88002AEFD02C +:10795000802321885B0201259B1A9942E8DC0C20D8 +:1079600003F07EFF061E31D03B8822889C46002310 +:107970001800019561469DB2491989B2AA421BD8E7 +:10798000002801D062443A8000233000082208C059 +:10799000210003F005FF104A1368002B13D10025C6 +:1079A0001660C5E76268022113780C485268FEF73A +:1079B0006DFD0028C7D1BAE760681D0140194181FB +:1079C00001330198D6E71A001B68E6E71325AFE7F5 +:1079D000AABE00114243FF1FB464FF1FA8BE0011DE +:1079E000014B18707047C0464443FF1F14230A0020 +:1079F00010B51A40194204D00122102101F048F8B4 +:107A000010BD4B06F9D4012088434000F8E710B5BB +:107A100014008B0604D50122102101F039F810BDA5 +:107A200008230A001A40194202D14BB2002B0FDA88 +:107A3000102101F02DF8002808D02300F2331B7824 +:107A4000002BECD0F1342378012BE8D10020E6E7BD +:107A500003208907FAD4E2E7F0B51F00184B85B080 +:107A60001C68019002910392002C27D1200005B0E0 +:107A7000F0BDA5683301ED186B89019A934211D3CB +:107A8000029A93420ED8002F04D10A9B002B10D1EA +:107A90002C00EBE73B002978039A6868FEF7F6FCB8 +:107AA0000028F2D10136B6B2A388B342E1D82468E7 +:107AB000DAE7A3680A9A5B891380E9E70026F3E70F +:107AC000B464FF1F37B50C000A884988012391422E +:107AD00017D3002A15D0651D23792A0002210A48F0 +:107AE000FEF7D4FC102300280BD02379618820886E +:107AF00000242A000094FFF7AFFF0A23A04200D021 +:107B0000230018003EBDC046AABE001113B50A00EE +:107B100008884988012388420BD8002809D000240E +:107B2000137905320094FFF797FF0A23A04200D093 +:107B30002300180016BD13B50A00088849880123E0 +:107B400088420BD8002809D000241379053200940C +:107B5000FFF782FF0A23A04200D02300180016BDC1 +:107B6000F0B58BB003904A8808880E00012382424A +:107B700055D3002853D00023012704AC23700022E2 +:107B8000718813000092FFF767FF051E3ED0207832 +:107B9000002835D12B78022B18D167706A898300B1 +:107BA0000130E31880005A8069680222201803F02F +:107BB000F7FD23780133DBB22370042B19D93B0086 +:107BC0006889013080B2002BD9D01FE00223637096 +:107BD000122358436A89231804305A806968102296 +:107BE000201803F0DDFD23780133DBB22370002B76 +:107BF000E5D10C4A6B899B185A425341DBB2DFE74F +:107C00006378012BE4D12B78022BC7D022780A238A +:107C1000002A04D021000398FEF798F900231800E9 +:107C20000BB0F0BD0100FFFF0F4BF0B5040018686A +:107C3000002816D083685D89A54207D88288AE18CF +:107C4000B44203DA12019A18934201D10068EFE7B7 +:107C50001E005F891036A74204D1002900D00D8094 +:107C60001800F0BD3300EFE7B464FF1F70B50500E6 +:107C70000C0008880021FFF7D7FF03000120002B2C +:107C800004D022002800197AFFF7C1FE70BDF7B5B5 +:107C90000C00002501902300EE331B78AB4201D885 +:107CA00000200AE06B00E65A00213000E718FFF7D9 +:107CB000BBFF002802D126800130FEBD017A019869 +:107CC000FFF794FE002802D03B882380F5E70135BA +:107CD000EDB2E0E710B5040008880021FFF7A4FF2B +:107CE00003000120002B03D02000197AFFF77EFE4D +:107CF00010BD0000054B1B68002B01D1180004E0EB +:107D00009A6852898242F6D198887047B464FF1FFE +:107D1000F0B50E27002687B0039302ABFF183E8014 +:107D200005001F4B40891400984207D02B78013082 +:107D300000976A6880B2FFF78FFE060002212B7859 +:107D400018486A68FEF7A2FB00280FD06C89200053 +:107D5000FFF7D0FF002802D0013C0419A4B2039B16 +:107D6000002B00D01C80300007B0F0BD02212B7822 +:107D70000D486A68FEF78AFB0028E7D102212B78BC +:107D80000A486A68FEF782FB002807D0002EDED082 +:107D90003B88A342DBD17489013CDFE76C89DEE7D5 +:107DA000FFFF0000AABE0011A8BE0011A6BE001170 +:107DB00010B50C00FFF7DEFC03000220002B0AD0F8 +:107DC000002C00D023609B781720FE2B03D00138B5 +:107DD000FF2B00D1002010BD73B50D0001A90400D8 +:107DE0001600FFF7E5FF172805D0002E04D1290063 +:107DF0002000FEF727F976BD01221021200000F0B7 +:107E000047FE0028F3D0F6E7014B18607047C046E4 +:107E1000C464FF1F37B56B469D1D0100040002229C +:107E2000280003F06DFE2B88B02B0ED12379122B86 +:107E300009D12300FA331B78012B06D10121608878 +:107E400000F0E0F801E01B2BF8D037BD10B5054B72 +:107E50000421187000F098F8FFF74CFDFEF770FB56 +:107E600010BDC046C864FF1F0020F0B50BB20F0064 +:107E700087B0834234DA274B187803F0C1FC051E23 +:107E80002BD00378A02B25D103AE3100FEF7E4F808 +:107E9000041E0BD1B378DB0724D51F4B06341B68B7 +:107EA000002B03D03100688898470400A868002898 +:107EB00001D003F0CDFC002C08D1184A039B1340DD +:107EC000174A934206D0B3781B2B03D00121688850 +:107ED00000F098F8280003F0BBFE802000027840F4 +:107EE00007B0F0BD0F4B1B68002B10D03100688825 +:107EF0009847041EDAD07378002BD7D1B27801A945 +:107F00000A704B800C716888FDF7F6FFCEE70624F7 +:107F1000F1E7C046C864FF1FC064FF1F00FFFF00F9 +:107F200000011200C464FF1FF7B50190FC200D0092 +:107F300017001E0003F0F4FC04001320002C12D0E4 +:107F4000B02320002370089BF4226770658026719F +:107F50000830002B08D0190003F022FC2100019802 +:107F600003F09EFD0020FEBD089903F079FBF5E7C4 +:107F700010B5041E06D00078FD2803D803F0C8FC15 +:107F8000FF23237010BD00000A1F93B210B5040038 +:107F90000220032B05D882400020024BD1529B18AF +:107FA0009C7010BDE864FF1F0B8870B5043B040093 +:107FB0000D000220032B0BD80121200000F04CFD06 +:107FC00003001420002B03D02900200000F0DEFB6A +:107FD00070BD000007B51300034A00920A0001219A +:107FE00000F02CFC0EBDC0461182001107B50192B5 +:107FF00003220092024B0A00122100F049FC0EBD40 +:108000008F82001107B56B4601AA11800449D88000 +:1080100008780633012802D1190003F009FD07BDD5 +:10802000C964FF1F0C4B10B518700023FF210B4AC9 +:108030001380138193819380094A53801370517286 +:1080400093819372D174D3821375517703F058FCE6 +:1080500000F0FCF910BDC046F864FF1FE864FF1F84 +:10806000CA64FF1FF0B58DB06B46002003910C224F +:108070009B5E834200DBB0E05D4B187803F0C0FBF1 +:10808000051E00D1A4E00378902B00D09DE006AF40 +:1080900001004688380000F013FA796804000029CE +:1080A00000D19CE03B88052B6ED13B89032B1CD96A +:1080B00005AC200000F0A2F86288172A61D839893F +:1080C000131D994231D17968237804310291D9077F +:1080D00038D5607800F08EF9071E06D000230371B2 +:1080E0002378012B08D0132B23D0A868002800D1B7 +:1080F00078E003F0ADFB75E06288029909A800F012 +:10810000A6F80290380000F08BF909AA2378387A93 +:108110000192002231000092029A00F012F9380018 +:1081200000F064F9029B002BDFD0300000F080F9F2 +:10813000DBE70378032BD8D16288029909A800F005 +:10814000D6F8DEE7122B13D1029909A800F0B5F892 +:10815000021EEAD127498B88002BC6D0887909A94D +:108160002378019161780091310000F0EAF8BCE7D2 +:10817000002302AA93833000617809AAFFF72AFF3F +:10818000B3E71D4B0993F6E7042B02D09A1F012A8F +:10819000ABD8184A043B9B00995A0029A5D0D218A5 +:1081A000907831003A0000F0AEF800289DD13B886D +:1081B000042B03D001213000FFF724FF012C04D150 +:1081C000A868002801D003F043FB280003F040FD1D +:1081D0008020039B0002434018000DB0F0BD012831 +:1081E00000D182E701213000FFF70CFFEDE7C04628 +:1081F000F864FF1FE864FF1F010017000B7803708D +:108200004B784370CB788A781B02134343807047C6 +:108210000A88030002700A88120A42700A88012A3A +:1082200006D14A8882704A88120AC27004207047B8 +:1082300002208242FBD14A8804309A704A88120A8E +:10824000DA708A881A718A88120A5A71EFE710B5B3 +:108250000400012082420CD94B780A781B02134398 +:108260002380834206D1CB788A781B021343638034 +:10827000002010BD022BFBD1CB788A781B02134360 +:1082800063804B790A791B021343A380F0E70B88C4 +:1082900003700B881B0A43704B8883704B881B0A42 +:1082A000C3708B8803718B881B0A4371CB888371E1 +:1082B000CB881B0AC3710820704703000120082ADD +:1082C00014D14A780878120202431A80CA78887852 +:1082D000120202435A804A790879120202439A80B4 +:1082E000CA798879120202430020DA80704710B5FB +:1082F00004000120022A05D100204B780A781B02D5 +:108300001343238010BDF8B5060010200F001500A0 +:1083100003F006FB04000120002C0ED0A0230C2249 +:10832000290023806780201D002D07D003F038FA34 +:108330002100300003F0B4FB0020F8BD03F090F9F9 +:10834000F6E7F7B51E00009008AB142017001D7863 +:10835000019103F0E5FA041E12D0A2230370019BE1 +:1083600047704380099B057146710C220830002B31 +:1083700007D0190003F014FA2100009803F090FBD5 +:10838000F7BD099903F06CF9F6E737B5041E0FD075 +:108390004388002B0CD00025C1881323007A1722B4 +:1083A00001950095FFF7CDFFFF236580637225706F +:1083B00037BD000010B50C4904004A88002A09D0D6 +:1083C0008B89002B05D00020CB8A0222834201D06A +:1083D00010BD012213000A20434300204032C8543C +:1083E000C81842800472F3E7CA64FF1F0023438069 +:1083F00003707047094B00211A0010B55C88002CEF +:1084000006D01C79844203D10A234B43D01810BDF7 +:1084100001310A330329F1D10020F8E7CA64FF1FB4 +:1084200010B50400407A03F073FAFF23637210BDA5 +:108430007047043010B580B203F072FB002803D0FF +:108440000421494203F0E4FB10BD000070B5002593 +:10845000104CA0682580A581A580A84202D003F019 +:10846000F7F9A56000250C4C0C4B606D1D802300B6 +:1084700058331D70A84202D003F0EAF96565002563 +:108480006068002801D003F0E3F9013508340A2DB3 +:10849000F6D170BD9065FF1F3465FF1F8465FF1F17 +:1084A00070B5041E09D1054D2880A881A880A86850 +:1084B000002802D003F0CCF9AC6070BD9065FF1FBE +:1084C000F0B54B8885B00193002343600A7905001D +:1084D0000F00022A00D07BE0CA88032A17D98B68D4 +:1084E0005E7819783602DC78D8790E4399781B7A51 +:1084F00024021B020C43034353495BBA0B80331D18 +:1085000093421ED1042C04D0631F022B0ED90120EC +:1085100015E0019A4D4B1201D35A002B06D0019859 +:10852000FFF7BEFF4A4A1369013313610421B8689B +:108530002E812C80494203F06BFB6860002005B05F +:10854000F0BD434D042C06D0631F022B0FD9EB68FE +:108550000133EB60DBE7019A3C4B1201D35A002B4D +:1085600005D00198FFF79CFF2B6901332B61374B36 +:1085700030000293019B029A1B0101930023019991 +:108580008C468B52130063449C8003939E81FFF7BB +:1085900050FF039B041E986016D00421B86849421E +:1085A00003F036FBFA880100043A200003F0F8F8E3 +:1085B0000199029AFB888A5A043B9B18029A8B52B3 +:1085C0002B6801332B60A2E7AB690133AB619EE7F7 +:1085D0001E4B0293019B1E01029BF35A002B2DD0D0 +:1085E00002998C19A068002828D0012A26D1FA887F +:1085F0009B189BB27352A189994217D39B1AC0183A +:10860000B96803F0CDF8029BA289F35A934200D0D7 +:108610007DE700222B81A3882B80A3686B60029BDF +:10862000F2520B4A53680133536070E7084A93686B +:10863000013393600198FFF733FF68E7044A5369F9 +:1086400001335361F6E7C046FA64FF1F9065FF1FD0 +:108650000065FF1F70B5051E15D10B4C0B4B188024 +:10866000230058331870606D002802D003F0F0F832 +:108670006565250050356068002801D003F0E8F8F2 +:108680000834AC42F7D170BD3465FF1F8465FF1F0D +:10869000F0B51700A12285B0920001934243394BF7 +:1086A00006001B680C009B18D933FF331D78FDF7BB +:1086B00041FF0430854204DD3000FDF73BFF04300C +:1086C000C5B2BD4207D33A0000213000019B03F040 +:1086D0006FF805B0F0BD2900380003F0F9F9230068 +:1086E000C6B250331E700393019B290063653800A6 +:1086F00003F09EF8CBB20293002B02D0039B01360D +:108700001E7000262300503303931B78B34204D815 +:10871000606D002831D10020DBE7029A2800002A92 +:1087200004D0013B1000B34200D02800F700E71945 +:10873000387003F005F9786000280ED03A78019976 +:1087400003F02EF8019A3B780136D3180E4A0193B4 +:10875000D369F6B20133D361D4E7039B1870606527 +:10876000A74205D1084A1320D36A0133D362B0E788 +:10877000606803F06DF80834F2E703F069F800234D +:108780006365C8E73409FF1F0065FF1FF7B50D00DB +:1087900007000421686803F03BFA2B89040003708A +:1087A0002B891B0A43702B8883702B881B0AC3708C +:1087B0002E8902250436F6B2F42E15D81B4B9F42A3 +:1087C00014D10C2003F0ACF81135011E0CD090230D +:1087D00003708E3B0371043B4380154B8460C6805D +:1087E000187803F05DF900252800FEBD5C237B436B +:1087F000104AD3180093583301931B78002B0FD1E4 +:108800000300320038000099FFF742FF019B05008A +:108810001B78002BE8D13800009903F011F9E3E749 +:10882000054A0725536A01335362DDE7FEFF000066 +:10883000F864FF1F3465FF1F0065FF1FF0B587B0A8 +:10884000009017200F0016000193FFF7F2FD13258B +:10885000041E19D00C98031E02D00199201D9847C0 +:10886000030AE370052302AAA070043090812770E8 +:108870000098667003A993800494FFF787FF051E94 +:1088800002D0200002F0E4FF280007B0F0BD000095 +:10889000F0B587B01F000CAB1B7803910593012145 +:1088A0000DAB06001C78049200F0D6F814250028C1 +:1088B00021D02000FFF77EFD0135041E1BD0114999 +:1088C000059B0A7803700132D2B2131EC68001D113 +:1088D00001231A000B7022713000049B039900974A +:1088E000FFF7ACFF051E09D1230021000648074A07 +:1088F000093302F0D5FE280007B0F0BD00236380E5 +:108900002370F8E7FC64FF1F8B83001130750000B3 +:10891000F8B505000E00064C064F2368002B02D068 +:108920003100280098470434BC42F6D1F8BDC04657 +:10893000A065FF1FB465FF1F0123064A5B425380F9 +:10894000002313715362044A136053609360D36031 +:1089500013617047B465FF1FA065FF1F020000236D +:1089600010B506499C000859002801D1625010BD7D +:108970000133052BF6D11320F9E7C046A065FF1F90 +:10898000034A5388181A43425841404210407047E6 +:10899000B465FF1FF0B585B002930AAB1F780CAB2E +:1089A0001B88009008000E0001920393FFF7E8FF78 +:1089B00005001120002D1BD10E48FFF7E1FF040038 +:1089C0001520002C14D006220B99A771E01D02F08F +:1089D000E7FE019B30002371029B29006371009B1D +:1089E00066802370039B6562E381FFF791FF280097 +:1089F00005B0F0BDFFFF000010B5FFF7C1FF040098 +:108A00000220002C12D060880121FFF781FF606AEC +:108A1000002801D003F0F4F828220021200002F001 +:108A20001FFE012300205B426380207110BD000007 +:108A300030B5074A074C5588010013780020A5423D +:108A400004D05B1A59424B415842104030BDC046D9 +:108A5000B465FF1FFFFF0000084A10B501230C009A +:108A6000904208D0FFF78CFF031E04D00379234007 +:108A70005A1E9341DBB2180010BDC046FEFF000035 +:108A8000024B1879431E9841C0B27047B465FF1F6E +:108A900070B504000D001600FFF772FF002804D126 +:108AA0000D4B9C4200D0143070BD416A0379052003 +:108AB000002907D012221A40102A02D10520002EC8 +:108AC000F2D10F20DB06EFD5897E0C20A942894127 +:108AD000494249420840E7E7FEFF0000030010B5A5 +:108AE000002800D110BD0348034A41889142F9D0C3 +:108AF0009847F7E7B465FF1FFFFF0000002330B57C +:108B0000C45CCD5C6C40D4540133102BF8D130BD23 +:108B10000F23002210B5C45C64002243CA54C25C17 +:108B2000D209013BF7D210BD0200010010B520327E +:108B3000103102F0DDFE10BDF0B58BB003901020B7 +:108B400005931700049102F08BFE0090102002F0B4 +:108B500087FE009B13240190002B05D000280CD128 +:108B60001324009803F04CF8019B002B02D018004E +:108B700003F046F820000BB0F0BD102002F070FEAC +:108B80000600102002F06CFE13240500002E00D118 +:108B9000AEE0002819D01022002102F061FD320061 +:108BA0002900039802F0A4FE041E0ED133787F2B17 +:108BB00051D830000099FFF7ABFF009B1B787F2B4B +:108BC00053D801990098FFF7A3FF300003F018F87D +:108BD000002D02D0280003F013F8002CC1D1102082 +:108BE00002F03EFE0600102002F03AFE0290002E37 +:108BF0007CD0002878D03A000F32230001251211D2 +:108C000005D00F333B4015B25A4253411BB26A1E86 +:108C10001201002B33D0049BD2B298180099029A0B +:108C2000FFF76CFF013D10220021300002F018FD1B +:108C3000ADB2049F2D017D19AF4242D0002C33D03C +:108C4000300002F0DDFF029B002B00D189E7180005 +:108C500002F0D6FF85E729003000FFF759FF280012 +:108C60002549009AFFF74AFFA7E729000098FFF778 +:108C70004FFF28002049019AFFF740FFA5E70F2189 +:108C80000F4004998A18D9B28F4208D9D15C06A83E +:108C900019540133102BF6D1029A0199C0E7791AC1 +:108CA00048424141C901F2E73900300006AAFFF706 +:108CB00025FF3200039806A902F01AFE10370400BF +:108CC000BAE7002CBCD13000029906AAFFF716FFC4 +:108CD000320006A9039802F00BFE082204003100BE +:108CE000059802F05DFDABE71324A9E71324AAE77A +:108CF000002800D06EE733E7B0BE0011F0B58BB0AE +:108D00000F0016000225009000283FD0002A3DD019 +:108D10000B1DDBB21800029302F0A2FD1135041EF8 +:108D200034D0FDF747FD05003A000099201D02F000 +:108D30009FFEEBB20393E3702B0CDBB22F0A009380 +:108D40006370FFB22B0E2370A7700193FDF72CFD0B +:108D50001022010006A802F08BFE2100029A04AB4B +:108D600006A8FFF7E9FE051E0DD1039B082233700C +:108D7000009B04A9B370019B7770F370301D02F063 +:108D800077FEFDF71DFD200002F03AFF28000BB032 +:108D9000F0BDF0B58FB00D00149E039004920593C2 +:108DA000002A03D1022420000FB0F0BD002EF9D01C +:108DB0000398FFF7E5FD1424071EF4D0727833788A +:108DC00012021A43B3781B041343F27812061A43B3 +:108DD000036A0192934201D30133E3D1002D03D002 +:108DE0003B7901249B07DED50822002106A802F06A +:108DF00037FC059B13240433DBB21800029302F006 +:108E00002FFD051ECFD0059A0499043002F030FEE4 +:108E100004223100280002F02BFE3900102210310C +:108E20000AA802F025FE2900029A06AB0AA8FFF75D +:108E300083FE041E0FD1082206A908A802F018FE1E +:108E40000822311D08A802F003FE012807D101996C +:108E50000398FDF7C9FC280002F0D2FEA3E7012425 +:108E6000F9E7000070B51C4C05002368181E10D0EF +:108E7000002D14D11A78002A0CD1981C083202F067 +:108E80008FFC02F08DFD0135002808D123681D708C +:108E9000012070BD0A331800082202F081FC23680B +:108EA000002BF5D0122002F03BFD061E0DD0C12391 +:108EB00021680370457002311022023002F070FC0C +:108EC00023683100587802F0EBFD206802F098FE2C +:108ED00000232360DCE7C046DC65FF1FF8B5040013 +:108EE0002020FDF755FB0D4EA700BB590500002BB8 +:108EF0000DD000280BD0D878FF2809D108492A00C6 +:108F00000C55F35907480333611802F0C9FBF8BD4B +:108F1000290002F0CDFB0028F0D1F8E7F865FF1F2B +:108F2000E065FF1F35A1001170B5064D840063593F +:108F3000002B05D0D87802F0EBFCFF226359DA70E1 +:108F400070BDC046F865FF1F70B506008CB00C0000 +:108F5000150000213022684602F082FB3100102209 +:108F6000684602F085FD1D2021000322684402F0BE +:108F70007FFD6846FFF7D8FD2D210400032228005D +:108F8000694402F075FD20000CB070BDF0B507001B +:108F9000160097B001931CAB1D7830221EAB0091D8 +:108FA0000AA800211C7802F05BFB102239000AA8F5 +:108FB00002F05EFD1022002102A802F051FB072200 +:108FC000310002A802F054FD072202AB9818631E7C +:108FD0009C41019902F04CFD02AB9C732B005A1E80 +:108FE000934102AAD3730021102206A802F038FB95 +:108FF00006221D9907A802F03BFD1A2002ABC018FB +:1090000006221F9902F034FD102200990EA802F0EA +:109010002FFD102202AB0EA908781C78013A60409F +:10902000D2B2087001330131002AF5D10AA8FFF746 +:109030007BFD102212A904000EA802F0B1FB102241 +:1090400006AB0EA908781D78013A6840D2B20870C4 +:1090500001330131002AF5D10AA8FFF765FD044369 +:1090600010222098E4B212A902F002FD200017B0ED +:10907000F0BD70B50E0014008CB0010010226846DF +:109080001D0002F0F5FC3100082204A802F0F0FCFB +:109090002100082206A802F0EBFC6846FFF744FD19 +:1090A00004001022280008A902F0E2FC20000CB005 +:1090B00070BDF8B506000D0000243719AC4200D38E +:1090C000F8BD02F015FB030A3B70631CDBB20137ED +:1090D0009D4203D90234F054E4B2EEE71C00EDE700 +:1090E00073B506000C000225002819D0002917D0FE +:1090F000032101A8FFF7DDFF6B469A793F231A4051 +:10910000013313436A463000937101A92200FFF72F +:109110001BFF051E04D10322E01C01A902F040FB45 +:10912000280076BD03785807DA08C00FD200800007 +:109130009B0710439B0F1843C0B2704707230B4097 +:10914000C908C9000B4303707047000070B50400E4 +:10915000FFF7EAFE134DA4006359002B21D0186AD3 +:10916000002801D002F04CFD2B59986E002801D048 +:1091700002F046FD2B59D86E002801D002F040FDC8 +:109180002B59186F002801D002F03AFD2B59586F67 +:10919000002801D002F034FD285902F031FD0023EF +:1091A0002B5170BDF865FF1F0E4B8000C35870B582 +:1091B0000C00002B0FD09D68002D0CD02B78201DAB +:1091C0000B706B784B70A97CFFF7B8FF2B7E237276 +:1091D0006B69E36070BD10220021200002F040FAAC +:1091E000F8E7C046F865FF1F014B18607047C0469E +:1091F000F465FF1F074A03008000825810B5002A5B +:1092000006D0D088984203D1012901D1FFF79EFFF3 +:1092100010BDC046F865FF1FF0B5264E95B087001B +:109220000B93BB590500099112200A92002B31D0F3 +:10923000D888FFF7A5FB04001420002C2AD02800B2 +:1092400010A9FFF7B1FFBB591E781D6A002E23D06D +:109250000895FDF7EFFA07000020FDF7F1FA0790F7 +:10926000A379E61D069310AD0CA9089800F0E2FA68 +:109270000EA9280000F0D7FA0B9B0A990493069BCD +:1092800009980293079B0396019300970EAB0CAAD3 +:10929000FFF77CFE15B0F0BDFDF7CCFA069030006C +:1092A000FDF7CEFAE31DA779079310AB06000893EC +:1092B000DAE7C046F865FF1F30B50C4C85002A5927 +:1092C000030085B00120002A0ED018006946FFF780 +:1092D0006BFF2B591A78D888054B002A00D1054B13 +:1092E0006A46072100F0D9FB05B030BDF865FF1FC5 +:1092F000279800113598001130B5094C850029597F +:1093000085B010226846253102F04AFA2A59112107 +:10931000044BD0886A4600F0C0FB05B030BDC046A3 +:10932000F865FF1FD198001130B5094C8500295907 +:1093300085B010226846353102F032FA2A591121DF +:10934000044BD0886A4600F0A8FB05B030BDC0468B +:10935000F865FF1F0F990011F7B54D4F86001020DB +:10936000F4590D0002F07CFAF3592062186A1322B6 +:1093700000286CD0033A29009C6802F011FAF359D6 +:109380001A780192002A58D11E6A227D317B9446B8 +:1093900051400122019F114201D167461740217DB2 +:1093A000914339432175377B4F40BC4660460027C7 +:1093B000800701D44F081740012102208F40227DF1 +:1093C00082433A432275377B5740BC4660460027AC +:1093D000400701D497080F400420227DBF0082433C +:1093E0003A432275627D002794466046727B424074 +:1093F0000A4201D167460F400121627D8A433A4308 +:109400006275777B5740BC4660460027800701D4D1 +:1094100057080F400220627D7F0082431743677523 +:10942000767B00227E40760701D4BA080A400426E3 +:10943000617D9200B1430A4362756A78002A08D0C0 +:109440006278002A05D005220533DA770022100061 +:10945000FEBD04222979114205D1A17C114202D11D +:109460000533033AF1E7019A21782C78002A02D1DA +:109470000A002100140018220429E8D8042CE6D898 +:1094800005206043034A05331218525CDDE7C046ED +:10949000F865FF1FC0BE001110B50A001121024B74 +:1094A00000F0FBFA10BDC0466B9900110B0030B5FF +:1094B00087B001AD2B806B4604001100981D082277 +:1094C00002F06EF92A000B212000024B00F0E5FAB1 +:1094D00007B030BD9399001110B50A001121024B5D +:1094E00000F0DBFA10BDC046E799001113B50B0080 +:1094F00011006A4613706B4604000622581C02F0E5 +:109500004FF96A4608212000014B00F0C6FA13BD4E +:10951000079A001110B50A001121024B00F0BDFAA4 +:1095200010BDC046579A00117FB505000B4BAA002D +:10953000D4580800002C0FD0666F237FE288217872 +:109540000396266F0296E66E0196A46E0094FDF7D0 +:1095500009FC2800FFF7FAFD7FBDC046F865FF1F34 +:1095600010B51721FFF7E0FF10BD000070B50A002D +:109570000D00064B0221040000F08FFA0600297846 +:109580002000FFF7D1FF300070BDC04637990011B1 +:1095900070B586B000236A461370836804001D7896 +:1095A000681E0A2859D801A902F0EAFA06063337DC +:1095B0003B3F43474B4F5300180000F042F906234E +:1095C00012284BD000281BD16088FFF7D9F9082357 +:1095D000002813D04279002A47D1264B1A78072356 +:1095E00012070BD5244B1A680723002A06D01668E9 +:1095F000002E03D0290001AAB04703006A46137069 +:109600006B461B786088002B2AD1FFF767FC06B0F9 +:1096100070BD180000F06CF9D4E7180000F087F96D +:10962000D0E7180000F093F9CCE7180000F0ADF98E +:10963000C8E7180000F0C3F9C4E7180000F0F6F915 +:10964000C0E7180000F0F6F9BCE7180000F013FAC4 +:10965000B8E7180000F013FAB4E707236A4613705E +:1096600069466088FFF782FFD1E70523012AC5D14B +:10967000024BB8E78564FF1FF065FF1FF465FF1F0D +:10968000F8B52C4F8600F35904000D00002B40D094 +:10969000DA8882423DD15A78062A33D11A78002AD4 +:1096A0002ED0012099681A6A097D014206D0157BE7 +:1096B000054203D007225A700120F8BD0220014262 +:1096C00004D0157B054201D00922F4E704200142B1 +:1096D00004D0127B024201D00B22ECE7164B1B6830 +:1096E000002BE9D05B68002BE6D020009847BB59DF +:1096F00000215B78122BDFD12000FFF715FFDBE79D +:109700000E4BECE7112A04D1002900D032252900A4 +:10971000F2E7002D08D12000FFF732F9002803D02E +:10972000102302791343037121002800FDF798FAF2 +:10973000C2E7C046F865FF1FF065FF1FF465FF1F15 +:1097400070B50E4E8500AB590400002B13D01B786A +:10975000002B11D10A4B1B68002B04D05B68002B37 +:1097600001D02000984773595B78122B03D1002158 +:109770002000FFF7D9FE70BD024BECE7F865FF1F34 +:10978000F465FF1FF065FF1F094B8000C3581020D0 +:10979000002B0CD01A6A002A09D09B68002B06D037 +:1097A000127A1B7E101C9A4200D9181CC0B2704756 +:1097B000F865FF1F70B503000D0014000220002A99 +:1097C00030D000292ED013700B78081D53704B78C1 +:1097D0009370FFF7A7FCE070012002212B7A237120 +:1097E0006B7B034063716A7B0A40134304226371FD +:1097F0006E7B1640334363716E7BF608F60033438D +:1098000063712B7B0340A371287B014000200B4335 +:10981000A371297B0A401343A3712A7BD208D2008B +:109820001343A37170BD10B50A0001000120FFF7BA +:10983000C1FF10BD10B50A0001000220FFF7BAFFFA +:1098400010BD70B506000C000220002E30D000299B +:109850002ED07378201D0B70B3784B70F178FFF722 +:109860006DFC01223579257271794B100800134087 +:10987000934010400343881010408000C908034300 +:10988000C9000B436373B1794B1008001340934038 +:1098900010400343881002409200C9081343C900D6 +:1098A0000B4321202373FCF773FE854201D2122063 +:1098B00070BD2220257AFCF76BFE8542F7D823780D +:1098C0001820042BF4D86378012BF1D80020EFE79F +:1098D000030010B50220002909D0002B07D0032275 +:1098E000481C0A7019000D3201F05AFF002010BD0B +:1098F00003000222080010B5002B06D0002904D076 +:109900000E32591C01F04CFF0022100010BD030064 +:1099100010B50220002909D0002B07D00422481CD2 +:109920000A7019000C3201F03BFF002010BD10B589 +:10993000FFF7DEFF10BD03000220002906D0002B38 +:1099400004D0052200200A701B784B70704703007A +:109950000220002B08D0002906D05B7800200B7075 +:10996000013B082B00D918307047030010B50220C6 +:10997000002909D0002B07D00622481C0A701900C4 +:109980000A3201F00DFF002010BD10B5FFF7B0FF47 +:1099900010BD02000B00022010B500290ED0002AD5 +:1099A0000CD007211970118859701188090A997013 +:1099B00011180822D81C01F0F3FE002010BD03008E +:1099C0000A00022010B5002B0CD000290AD099788B +:1099D0005878090201431180901CD91C082201F01B +:1099E000DFFE002010BD030010B50220002909D0C1 +:1099F000002B07D00822481C0A701900921801F0A9 +:109A0000CFFE002010BD02000B00022010B500297F +:109A10000BD0002A09D00921197011781818597033 +:109A2000511C062201F0BCFE002010BD10B5FFF74E +:109A30005FFF10BD02000B00022010B5002A09D004 +:109A4000002907D05178197011180622581C01F00E +:109A5000A7FE002010BD030010B50220002909D088 +:109A6000002B07D00A22481C0A701900063201F0A8 +:109A700097FE002010BD10B5FFF73AFF10BD0200A1 +:109A80000B00022010B5002A06D0002904D01800CF +:109A90005178FFF753FB002010BDF0B585B01700DB +:109AA0001E006A4606230500080091819380FEF798 +:109AB000C0FC1324011E02900CD03800B047041ED5 +:109AC00005D1280001A9FEF76FFA041E02D0029802 +:109AD00001F0BEFE2800FFF701FA200005B0F0BD3E +:109AE000F0B504008BB0019115000021102202A8EE +:109AF00001F0B6FD334EA700B85900283CD0C3880A +:109B0000A34239D10378002B36D14278062A18D1E6 +:109B100002000100553235310C3006ABFFF7A9FACF +:109B2000002829D12000FFF72FFE020006A902A875 +:109B300001F036FE200002A901F06AFE01200BB000 +:109B4000F0BD816E002917D00B8A112A28D19D42C1 +:109B50000ED101981231093A01F07AFF012807D19C +:109B6000BB5920009D6EFFF70FFE29000200DEE7C3 +:109B700032212000FFF7D8FC2000FEF701FF061E6F +:109B80001BD0416A002918D00B8AAB4215D108229C +:109B90000198123101F05CFF01280ED1716A0AE0D0 +:109BA0009D42E9D108220198123101F051FF0128AC +:109BB000E2D1BB59996E8A7EB9E7200001F028FFF7 +:109BC000BCE7C046F865FF1FF0B56B4D87007E59B6 +:109BD00085B0337802900393002B00D087E0B36800 +:109BE000346A01937078062817D101221B7D134235 +:109BF00002D0217B114218D10222134202D0217BD4 +:109C0000114251D10422134203D0237B134200D0CE +:109C10008BE0019B5A7DEB5991E007380428F8D876 +:109C200001F0AEFF032E42678300B36E002B03D119 +:109C30001C2001F015FEB066EB599C6E002C1CD068 +:109C400010220021200001F00BFD0298FFF79CFD7F +:109C500001002000FFF72DFA01F04AFD20822000CC +:109C600008211230FFF725FA0298FFF78DFDA07644 +:109C7000EB592100D888FFF70FFC0822EB591CE0B4 +:109C8000B36E002B05D01A00198AF0881232FFF744 +:109C90000DFC0222019B197DEB5911423DD0207B26 +:109CA00010423AD0073208E0F488FCF7DBFD0100EF +:109CB0002000FFF711FC0A22EB595A70029B9C000E +:109CC0002A595378073B042B11D8D088FEF758FE49 +:109CD00000284ED0C3895A08D2182849029B0298FE +:109CE000CB542B5941180433254801F0D9FC05B059 +:109CF000F0BDFCF79FFD03000120834201D100204D +:109D00000393EB59DE88FCF79BFD039902003000BA +:109D1000FFF7ECFB019AEB59117D042211420CD0A4 +:109D2000217B114209D00B22C7E7F688FCF73CFDE6 +:109D300001003000FFF7EEFB6BE7019A527D012135 +:109D40000A4204D0607B084201D00C22B5E7022110 +:109D50000A4204D0607B084201D00E22ADE7042104 +:109D60000A4204D0627B0A4201D01022A5E71222E7 +:109D7000A3E7FA225200B0E7F865FF1FFC65FF1F5A +:109D80003FA1001110B5064B1A78042310001840AB +:109D90001A4200D00348FFF727FA002010BDC04642 +:109DA0008564FF1F4843FF1F70B50400FFF7D4FA16 +:109DB000051E43D12000FFF77FFA234EA400A059CF +:109DC0008268937CDB0708D50321036A1B790B406B +:109DD000012B02D1017F0B430377431DD97F8B1EDB +:109DE000022B0DD8022900D00121C088FCF790FF7A +:109DF000042133591A7F59700A431A77280070BD1D +:109E000001290CD102231022437000210C3001F0F3 +:109E100027FC305910213530FFF74BF9EEE70529C3 +:109E2000ECD10223D118437010220C3001F0B8FCA1 +:109E300004233259117F0B431377EAE708251828CA +:109E4000DCD1053DDAE7C046F865FF1FF0B58BB001 +:109E5000059143887E4F9E00F45915000493002C11 +:109E600015D1012902D000200BB0F0BD101D57788C +:109E70001678FFF757F9EB68320002932B7A0499B2 +:109E8000019300903B002000FCF70CFFEBE7E38818 +:109E9000049A934201D00820E6E72378012B00D1F1 +:109EA000D4E0059B581E092800D9CFE001F068FED8 +:109EB00005CE0A29CC506C859AB229000498FFF788 +:109EC00073FFD1E7200029001022453001F068FC23 +:109ED000B9594B78042B02D1013B4B70C3E70B00FF +:109EE0000A00253335320C310498FFF795F90498B0 +:109EF000FFF702FA0522431E9841BB59C0005A7071 +:109F0000B2E7200029001022553001F049FC049BE3 +:109F10004F4C9D00295904980A0006AB55320C316C +:109F2000FFF77AF929591022453106A801F090FD72 +:109F3000012808D10498FFF7F7F90590002804D10B +:109F400006222B595A7005988EE708230593FAE7E5 +:109F500063780C2B7AD1E36E002B03D11C2001F027 +:109F60007FFCE066BB59D86E00286FD01022290014 +:109F700001F016FCBB590498DC6EFFF705FC0D22BE +:109F8000A076BB595A706EE7E06E00285ED0637809 +:109F90000D2B5BD12B8808220382A91C123001F003 +:109FA000FFFBBB599A68517D0222114226D0186AE4 +:109FB000407B104222D00C32E4E763780E2B45D16F +:109FC000236F002B03D1162001F04AFC2067BB59F8 +:109FD000186F002803D01022290001F0E1FB0F22A6 +:109FE000BB59CFE763780F2B30D1206F0622691C55 +:109FF000103001F0D5FBBB599A68517D0422114203 +:10A0000003D0196A497B1142D5D100210498FFF78A +:10A010008BFA28E7636F002B0DD0BB59586F0028CF +:10A02000F3D01022290001F0BBFB0122BB595242A0 +:10A030005B6F1A61E9E7142001F012FCBB596067FD +:10A040005B6F002BE9D126E72978DFE707200BE7D4 +:10A05000F865FF1F10B5064C207001F091FB06213A +:10A060002078FDF791FF0348FEF778FC10BDC0464D +:10A070000B66FF1FF591001100200BB270B50D00AB +:10A08000834216DA264B187801F0BAFB041E0DD075 +:10A090000378922B0ED0A02B37D0224B1878FF28B4 +:10A0A0003AD0210001F0FCFC002835D180200002CC +:10A0B000684070BD43780E2B0BD03E2BEDD18378DA +:10A0C000052B12D0082BE8D181798088FFF7D8FAC8 +:10A0D00008E0154B82889A42DFD183681878591CB2 +:10A0E000FEF7C0FE002817D1D7E7104B1B785B079F +:10A0F00012D50F4B1B68002B0ED09B68002B0BD08A +:10A10000C289811D80889847ECE7FFF741FAA06873 +:10A11000002801D001F09CFB200001F099FDC5E76B +:10A120000B66FF1F4143FF1F182000008564FF1FBF +:10A13000F465FF1F10B50078FFF712FA10BD10B5D7 +:10A140000078FFF7FDFA10BD0C234343084A10B511 +:10A150009B185A68002A03D0012901D1904710BDED +:10A160009B68002BFBD00029F9D19847F7E7C04640 +:10A170002866FF1F01238340094A10B5946B1C43D6 +:10A180009463506B98435063D46B2000984301292B +:10A1900001D120001843D063116B0B43136310BD32 +:10A1A00000800040F0B500240127154B85B0DA6B24 +:10A1B000144E03921A6C0192DA64019BE3403B4215 +:10A1C00017D0039DE5403D400295E5B20299280075 +:10A1D000FFF7BAFF316A736A002908D03900002BF3 +:10A1E00001D0029979402800FFF7C4FF01E0002B5D +:10A1F000F9D101340C36172CDFD105B0F0BDC046C3 +:10A20000008000400C66FF1F064B01215A68C240C7 +:10A210000A4204D01B68C3401800084070471B6DF9 +:10A22000F9E7C046008000400122064B8240002929 +:10A2300003D0D9680A43DA607047D9689143D9607E +:10A24000FAE7C0460038004030B5032444430F4BC2 +:10A25000E25C1B199C785D7801232D1B0135AB4016 +:10A26000013BA340A140DB430C00122807D808495A +:10A2700092005218116819402143116030BD054AFF +:10A2800011680B4023431360F8E7C04607BF001175 +:10A2900008F0004014F00040C21F70B5D4B206238D +:10A2A000092C0BD80125084C9540002908D0002125 +:10A2B000FFF7CAFF23682B4323600023180070BDFB +:10A2C0002368AB43F8E7C04600380040214BF0B5A7 +:10A2D0001B185B78022B21D1032444431E4A1F4ED6 +:10A2E000A35C12199478012215008540B76B013CDC +:10A2F000E4B23D43A240B563194C122815D89B0027 +:10A3000000290CD117495B1899680A439A60012308 +:10A31000205C154A834011680B431360F0BD11495E +:10A320005B18996891439960F1E70E4B00290DD1B4 +:10A3300059690A435A61225C1328E8D00123203A64 +:10A3400093400A49086803430B60E7E75969914362 +:10A350005961F0E70C66FF1F07BF00110080004045 +:10A360004CBF001100F00040A0F00040A4F00040FD +:10A37000F8B500241B4E1C4D1C4B1B5D012B1FD13F +:10A38000194A9269E2401A420BD00122B256934018 +:10A390002200143AD2B2022A09D815494A69134355 +:10A3A0004B61013402360C35172CE5D1F8BD002283 +:10A3B000B2560F499200521891680B439360F0E730 +:10A3C000022BEED1E7B23800FFF71EFF0123584001 +:10A3D000C1B23800FFF77AFF3800FFF715FF687742 +:10A3E000DFE7C046D9BE00110C66FF1F0D66FF1FD8 +:10A3F00000F00040012202388240054B002903D0C2 +:10A4000059690A435A617047596991435961FAE79A +:10A4100000380040F8B50E0001210F008740114AB6 +:10A420000400D368FD43BB43D360831E8B4201D835 +:10A43000FFF7E0FF00212000FFF72EFF0A4A0B4B39 +:10A440005168012E05D139431B1951605E700020FF +:10A45000F8BD2940516002221C1962709A691540AA +:10A460009D61F4E700380040008000400C66FF1F4B +:10A47000012210B58240074B002906D019680A4313 +:10A480001A600121FFF7C6FF10BD196891431960DA +:10A49000F7E7C046008000400C2370B50025434319 +:10A4A0000A4A29009B181D70094B04001B185D7097 +:10A4B000FFF7B0FF0123A340064928000A681A43AA +:10A4C0000A6005490A689A430A6070BD2866FF1F42 +:10A4D0000C66FF1F348000403080004070B50400DF +:10A4E0000E00FF2813D003250540FFF7D5FF084ACB +:10A4F000A3089B009B183F22ED00AA40AE401968BC +:10A5000020009143314319600121FFF78DFE70BD9A +:10A5100018380040F8B50C244443134B0500E418E8 +:10A520006368002B03D1A3681220002B1AD00222EB +:10A5300001270E4B00215B195A7028002770FFF786 +:10A5400069FF63681E1E08D0A3683E00002B04D07C +:10A550002800FFF759FE4640F6B228003100FFF709 +:10A5600009FE0020F8BDC0462866FF1F0C66FF1FCD +:10A57000F7B5C420FF222B4B8000195800249143CB +:10A580003F3A0A431A508022274F5202274E1A6040 +:10A59000274B1D5D002D21D0A31E012B03D80121C7 +:10A5A000E0B2FFF727FF012D18D11F4B9B69E34055 +:10A5B0002B4213D0E3B218000193FFF725FE0100F0 +:10A5C0000198FFF755FFE3B2143B022B1DD8012180 +:10A5D0007156184A8D405369AB4353613B7F002B42 +:10A5E0000DD0E5B22800FFF795FF2800FFF70CFE1D +:10A5F0007B7F0100834202D02800FFF7A5FD0134D4 +:10A600000C370236172CC3D1F7BD01210023715638 +:10A61000F3568D40074A9B009B189A68AA439A609C +:10A62000DCE7C04600E100E00C66FF1FD9BE001168 +:10A630000D66FF1F00F0004010B501210400FFF778 +:10A64000E9FE0123044A002011194B70A3409169CF +:10A650000B43936110BDC0460C66FF1F70B50E0022 +:10A6600015000400FFF718FF0C236343094A20007C +:10A670009B189D605E60FFF74DFFF021064B074A77 +:10A680008900051E5A5002D02000FFF705FF280060 +:10A6900070BDC0462866FF1F0000FF1FA5A1001166 +:10A6A00070B5134D07202C78002C1FD19822210063 +:10A6B0005200280001F05CF90123C420FF222B7016 +:10A6C0000C4B80001C635C630B4B1C605C600B4B91 +:10A6D000195891433F3A0A431A50802252021A6095 +:10A6E0000D20074A074901F04BF9200070BDC04614 +:10A6F0000C66FF1F00800040A0F0004000E100E079 +:10A7000071A5001171A30011030010B50620072BDD +:10A7100009D8054A137001F03BFAD7210020034BFA +:10A72000034A89005A5010BD7043FF1F0000FF1FED +:10A73000D91AFF1F70B51D0002240C2910D8094A30 +:10A74000CA40D2070CD5FBF72FFF041E08D1059A8B +:10A7500004992800FBF744FFFCF7B2FDFFF712FB5A +:10A76000200070BD1210000030B50D7802232C00BF +:10A770009C43184201D02B431C0008252300AB4307 +:10A78000284201D02B00234320241D00A543204252 +:10A7900001D01C4325002A230D70184204D01178E3 +:10A7A0001E3B0B43137030BD0028FCD10C211378E5 +:10A7B0008B43F7E7F8B51D0006AB1B88140007AA0A +:10A7C0000E000B201778002B27D10A78022A49D1D6 +:10A7D0004A68507811780002244A084380180428F7 +:10A7E00040D801F0CDF903121D1B2300F06801F0E1 +:10A7F000E7F9021CC0B2B84200D93A1CD2B220001C +:10A80000F1682A8000F0CCFF06E00222F3681B8882 +:10A810002A8023701B0A63700020F8BD0622EEE731 +:10A8200001232B80F3681B782370F5E7F368002B76 +:10A8300016D008222A801A8822701A88120A62709A +:10A840005A88A2705A88120AE2709A8822719A88ED +:10A85000120A6271DA88A271DB881B0AE371DBE7F6 +:10A860002B80D9E701202B80D7E7C04600D6FFFF19 +:10A87000F7B516000A781D0008AB1F880C000123ED +:10A88000022A18D14A685078117800022B4A0843EE +:10A89000801803280FD801F073F902254439E068C5 +:10A8A00001F08EF9C0B20723B84204D37B1901939B +:10A8B000152B02DD0D231800FEBDE0682A003100D3 +:10A8C000C01900F06DFF6B4600209B88E268D054F1 +:10A8D0001B4B1B68834203D01B68834200D0984700 +:10A8E0000023E8E70B23002FE5D1022DE2D1737896 +:10A8F00032781B021343E2681380114B1B68002B54 +:10A90000EED01B68002BEBD00120E8E70B23002FD3 +:10A91000D1D1062DCED12A003100E06800F040FFF1 +:10A92000DEE70B23002FC6D1012DC3D1327875335A +:10A93000012AC0D8E3681A70D2E7C04600D6FFFFEC +:10A940001868FF1F70B50C001500072837D801F0F4 +:10A9500017F9041436361B36242E182015290BD867 +:10A96000184E16220021300000F07AFE2200290045 +:10A97000300000F015FF002070BD18200229FBD127 +:10A980001288114B1A80F6E718200829F4D10A0022 +:10A990000E48290001F0B4F8EDE718200129EBD1A9 +:10A9A0000B4B10780B49DA69FFF7DEFEE3E718205E +:10A9B0000129E1D1064B10780749DA6BF4E7022050 +:10A9C000DAE7C0460068FF1FEE43FF1FE443FF1FA6 +:10A9D0007443FF1F9C43FF1FBC43FF1F030010B5C0 +:10A9E0000020DB0704D50721024A034800F08CF859 +:10A9F00010BDC04664BF00117443FF1F054A030029 +:10AA00001068002803D082889A4201D1806870477C +:10AA10000068F6E7106AFF1F0A88030008009A42E0 +:10AA200004D08A8804309A4200D000207047000089 +:10AA3000F8B5F22200230D4F0D4E79680500424310 +:10AA40003370994200D07B600A4C0021200000F056 +:10AA500007FE00231A007C60AB4202D10020337055 +:10AA6000F8BD01332280DBB2F234F5E7086BFF1F3B +:10AA7000066BFF1F146AFF1F73B56B46019006003B +:10AA8000684615001980FCF74DFF041E11D1002DFA +:10AA90000FD07689002E11D00C2000F0E1FE0028A6 +:10AAA0000ED0084A0460136886808560002B02D1AE +:10AAB0001060200076BD1A001B68F7E70224F8E753 +:10AAC0001324F6E7106AFF1F012100220A4B10B57C +:10AAD00049420A4C198099809A719A70084B2070EB +:10AAE000012019805A60FFF7A3FF2078FCF778FF58 +:10AAF0000448FDF733FF10BD2068FF1F106BFF1FD8 +:10AB0000086BFF1FB5AB0011022310B5002802D05F +:10AB1000FFF7B2FF0300180010BD0000030010B5DE +:10AB20000020DB0704D50421024A0348FFF7A4FFF5 +:10AB300010BDC04678BF0011F443FF1FF0B50E26CC +:10AB400087B003930CAB1F8802ABF6180500080012 +:10AB500031000292FDF768F804000120002C0FD0AC +:10AB60003088FFF74BFF03000E20002B08D05E68F3 +:10AB7000002E05D021002800039B029A0097B047C1 +:10AB800007B0F0BD0A4B10B5984207D1012200234F +:10AB900052420A808B708A808B7110BDFFF73CFF98 +:10ABA0000028FAD001235B42038000238370F4E77E +:10ABB000FFFF0000F8B5050001290AD1134E00245B +:10ABC0003388F227AB4219D028001149FFF7DAFF8A +:10ABD00006E0022904D10139FDF73EFF0028EDD03F +:10ABE000F8BD3B0063437268D018D35A002B09D0DC +:10ABF0003A00002100F034FD0134E4B2054B1B782B +:10AC0000A342EED801235B423380DDE7086BFF1FD0 +:10AC10002068FF1F066BFF1F10B5FFF7FDFE030046 +:10AC20000020834200D0987810BD0000F0B589B0B4 +:10AC30001C000EAB80CB03901E8810AB1B780492D7 +:10AC400002930B7A0D00DB0616D42B780593022BAA +:10AC500024D00498FFF7D2FE002812D003689C4647 +:10AC6000002B0ED0029B2200019329003B0064467A +:10AC700003980096A04705E00498FFF7BFFE002860 +:10AC800002D10E2009B0F0BD8368002BF9D00A2252 +:10AC90002900039898470028D7D0F3E76B685878C5 +:10ACA0001A786B4B000210439842D2D8043B98426A +:10ACB00010D2684B984242D015D8674BC018012873 +:10ACC000C7D80B20002EDDD1EB681A7859683A807E +:10ACD000200028E0614BC018032800D979E000F07B +:10ACE0004FFF846A789E5E4B9842B2D10B20002EB3 +:10ACF000C8D101233B80EB6831001B782370688941 +:10AD0000013080B2FCF790FF3A88031E0ED0017824 +:10AD100002328A183A80428962704289120AA2700D +:10AD200059680278E01C00F03BFD06E004323A80EE +:10AD300031000422601C00F093FC0020A2E70B20ED +:10AD4000002E9FD1EB6807A91E8804233B80330A9D +:10AD5000300026706370FCF767FF051E28D004AB37 +:10AD60009A890E2304A95B183E49C668FCF7D0FFF8 +:10AD700000280BD12B783C486A680599FBF786FBC5 +:10AD8000002803D1012304AA5B42D3813278022A2E +:10AD900006D17168201D00F003FD3B8802333B8023 +:10ADA0000E2304AA9B181B88A3701B0AE370C4E738 +:10ADB00004ABDE81F4E70B20002E00D062E7E968E7 +:10ADC0000398FFF729FF02233B802070000A607080 +:10ADD000B3E70B20002E00D054E70222EB681B885B +:10ADE0003A8023701B0A6370A7E7E86800F0E8FE6A +:10ADF000C2B203000720B24200D243E70DD002994D +:10AE0000DBB27118994202DB921BD3B20293029B10 +:10AE1000E9681A003B8089195AE70023F6E70B20FE +:10AE2000002E00D02EE70722EB683A801A782270B5 +:10AE30005A7862705A88A2705A88120AE2701A7997 +:10AE40002271DA886271DB881B0AA37175E7C0463C +:10AE5000042900000228000000D8FFFFFFD6FFFFF2 +:10AE600003280000FFFF0000A8BE0011F0B58DB060 +:10AE70006B460020089120229B5E83423DDAA64B60 +:10AE8000187800F0BDFC071E32D00378B02B2CD10F +:10AE90000079023816281FD800F04AFD17001E005E +:10AEA0001E001E0031001E0096001E001D011E0027 +:10AEB00052011E0073011E00CD011E0050021E0033 +:10AEC0001E001E008E021E00E302944B94491B8854 +:10AED00078880B80FBF71AF83800FCF79BFF914B42 +:10AEE0001B68002B01D038009847380000F0B0FEF6 +:10AEF0008020089B0002434018000DB0F0BDEE22F8 +:10AF00000021874800F0ACFB0BAA3B7B798938898C +:10AF100000923A000D32FCF79FFD0400804B1B7835 +:10AF2000002C3FD146E0804B788805937F4B410051 +:10AF3000CB5A0BAE073BDBB232880293002301935E +:10AF40007B4B210006930093059BFFF76FFE744D2A +:10AF5000002810D1069B3A8A1B889A420BD13800F0 +:10AF60000599123000F074FD002804D02B78628916 +:10AF70009B00EB185A80162306A81B183288200065 +:10AF80007989FCF7C5FE2B7804009A00AA1851882D +:10AF90000029C3D00133DBB22B70002807D006A9EB +:10AFA000C98A9180634A12889A42BCD802E0012182 +:10AFB00049429180002B04D059497888FAF7DAFF8A +:10AFC0008AE73E890A2479E000253E89574B06939B +:10AFD0007B88069A5B009B5A033B9D4202DB002D57 +:10AFE000F0D05BE0162206A812183B7B798900920C +:10AFF0003A0030000D32FCF72FFD0590002858D0A4 +:10B000004689017A7888FCF7F1FC041E44D1464B4E +:10B0100078880793069B4100C95A454B0439C9B249 +:10B0200006AAD28A06930291019400930599079B80 +:10B03000FFF7FCFD041E2FD1069B39491A88931C8B +:10B04000002D26D14B807988384B4900CB5A5119B5 +:10B05000033B8B4220DD059B31485B8941190B7115 +:10B06000A91C0135C9B2EDB2059145191B0A2B7116 +:10B07000059B2D490433181800F092FB2C4B059AC0 +:10B080001B88D318DDB22C4B9E4205D00136B6B2D8 +:10B090009CE749889942D6D0002D0CD0204C28003E +:10B0A000618800F05DFB207021007888FAF772FF5C +:10B0B00012E7059CF0E7002C00D183E77B78142B86 +:10B0C00000D109E716493B794E800B700C717888E6 +:10B0D000FAF712FF00E7162406ABE41821003889BE +:10B0E000FCF7A2FD011E00D1B7E1788822880F4C41 +:10B0F00045002C5B0A4D013CE4B2029400240F4B46 +:10B1000001940095FFF792FD041E00D014E1290080 +:10B110007888FAF74FFFDFE6106BFF1FE042FF1F52 +:10B120002868FF1F1C68FF1F1C69FF1F5864FF1F52 +:10B130000C6AFF1FDE42FF1FFFFF00002A68FF1F8F +:10B14000162406ABE41821003889FCF76DFD011EBA +:10B1500000D182E178882288AE4C45002C5BAE4D50 +:10B16000013CE4B202947C89AC4B01940095FFF75A +:10B170005DFD041E00D0DFE029007888FAF724FF87 +:10B18000AAE60025A44B1D803B00F6331B78A24A9B +:10B1900078880792AB4208D99E4B1288069306998D +:10B1A00043005B5A013B9A4203DB0799FAF716FF0B +:10B1B00092E616246B00FB18059306ABE418059B7A +:10B1C00021001889FCF730FD011E03D1059B0124E5 +:10B1D0001E8973E77888924B2288069C0993430066 +:10B1E0001B5B904E013BDBB2029300230096019360 +:10B1F000099BFFF71BFD041E02D0059B1E895DE71E +:10B200007B88069A5B009B5A079A1088328812182E +:10B21000934202DC1B1A013B33807F4C02303288A0 +:10B220000999001900F0BCFA2388328801359B186F +:10B230002380EDB2A8E70BAA3B7B7989388900927D +:10B240003A000D32FCF708FC00250590059B002B09 +:10B2500004D10A24002D00D16EE060E0059B7888BF +:10B26000197AFCF7C3FB0100041E63D1694C6C4BD7 +:10B27000788806940993069B4400E45A694B063C7F +:10B28000E4B20BAE328807930294019100930599C2 +:10B29000099BFFF7CBFC041E4CD1079B5E491B8822 +:10B2A0001A1D002D30D14A80059B5B4C5A896319C9 +:10B2B0001A716B1C9BB2E318120A1A71162306A8A6 +:10B2C00032881B1879890598FCF722FDFF21AA1CFA +:10B2D0002E1D03350B00059092B2B6B2ADB2002818 +:10B2E00003D006ABDB8AD9B21B0AA218651911710B +:10B2F0002B714C4D301D2A884949201800F050FA16 +:10B300002B88F618B5B2A1E74988914207D17A880F +:10B3100006995200525AEB18053A9A42C4DC3E4C48 +:10B320002800618800F0D4FB207021007888FAF7AB +:10B330005FFED1E5002DF2D13E89BFE6162606ABB1 +:10B34000F61831003889FCF76FFC3D000400FA352F +:10B3500000282DD0037A9B060CD400227B893989E2 +:10B36000788800923A000C32FFF7E8FB041E10D0F8 +:10B370003E8915E03088FFF741FB00281AD083682A +:10B38000002B17D02100122278889847041EE4D0A1 +:10B39000EEE72B78002B02D17888FAF739FE0026E9 +:10B3A0002B78002B00D097E5002C00D194E585E6A2 +:10B3B0000124DDE70E24DBE7162506ABED18290096 +:10B3C0003889FCF731FC041E47D0037A9B0611D460 +:10B3D000154A7B881188994203D01448814207D1CD +:10B3E0001380134BF2261D780023D9B2A94221D332 +:10B3F0000924A1E72888FFF701FB00282FD08368E4 +:10B40000002B2CD02100122278889847041EDFD010 +:10B4100092E7C0465864FF1F2868FF1F2A68FF1F75 +:10B420001C69FF1F0C6AFF1F086BFF1FFFFF000056 +:10B43000066BFF1F31005943546801336018615A8D +:10B440000029D2D13C0008342100F22200F0A8F9F2 +:10B4500021007888FAF7E4FD3EE501246CE70E242C +:10B460006AE71D4B1A887B889A4231D07888FAF7B0 +:10B47000E1FD31E5F223059851684343CD18C95ADF +:10B4800000291FD03B7A012B0BD16C88AB887888C0 +:10B49000AA1D0094FFF752FB041E02D000233B724A +:10B4A0002E88F2220021280000F0DAF800232B80F9 +:10B4B000059B0133DBB20593084B05991B78064ABF +:10B4C0008B42D7D801235B421380002CCED0F5E508 +:10B4D000002634000596EFE7086BFF1F066BFF1F81 +:10B4E00070B504000E001500FFF796FA031E08D190 +:10B4F00031000548FFF790FA03001120002B02D01D +:10B500001C8000209D7070BDFFFF0000F8B50B4F40 +:10B5100006003B780D001400FF2B0ED00A2000F02F +:10B52000FFF9011E09D0B123038000234680037177 +:10B53000C5800481387800F0B3FAF8BD3544FF1FA8 +:10B54000F7B50F0008A90600088809A90B24098887 +:10B55000002821D10234022B1ED1557813782D02F8 +:10B560001D432B008B4301937334002B14D1FB68D4 +:10B57000300019000093FFF74FFB019C85420BD070 +:10B580002A0030000099FFF7ABFF041E04D12A0007 +:10B5900030007989FFF7BAFF2000FEBDF0B50E78C4 +:10B5A00085B003900AA805880120022E0DD14C68B1 +:10B5B0002778647824023C43054FBC4205D10398A8 +:10B5C000DBB201960095FFF7BBFF05B0F0BDC046AA +:10B5D00002290000034B10B51B68002B00D09847D0 +:10B5E000FEE7C046146BFF1F07B501A8FFF7F2FF87 +:10B5F000044A05480021121A00F0BAF9F8F7FAF8DF +:10B60000FEE7C046186BFF1F3844FF1F0000000014 +:10B6100001B40248844601BC604700BF9D35FF1F4E +:10B6200001B40248844601BC604700BF4550000099 +:10B6300001B40248844601BC604700BF3D180000C9 +:10B6400001B40248844601BC604700BF193BFF1F9C +:10B6500001B40248844601BC604700BF0132FF1FAD +:10B6600001B40248844601BC604700BF154D01008B +:10B6700001B40248844601BC604700BFEDA500004C +:10B6800001B40248844601BC604700BF456B01001D +:10B6900001B40248844601BC604700BF85520100E6 +:10B6A00001B40248844601BC604700BFA9460100BE +:10B6B00001B40248844601BC604700BF5147010005 +:10B6C00001B40248844601BC604700BFC135FF1F7A +:10B6D00001B40248844601BC604700BF35550000F4 +:10B6E00001B40248844601BC604700BF59520100C2 +:10B6F00001B40248844601BC604700BF29510100E3 +:10B7000001B40248844601BC604700BF7139FF1F85 +:10B7100001B40248844601BC604700BFC51D00005B +:10B7200001B40248844601BC604700BF4D1F0000C1 +:10B7300001B40248844601BC604700BF2932FF1FA4 +:10B7400001B40248844601BC604700BFF94C0100C7 +:10B7500001B40248844601BC604700BF1930FF1F96 +:10B7600001B40248844601BC604700BF350E0000AA +:10B7700001B40248844601BC604700BFDD66010099 +:10B7800001B40248844601BC604700BFC9260000DE +:10B7900001B40248844601BC604700BFC5210000D7 +:10B7A00001B40248844601BC604700BFE94C010077 +:10B7B00001B40248844601BC604700BF5118FF1F16 +:10B7C00001B40248844601BC604700BF75A900006F +:10B7D00001B40248844601BC604700BF156B0100FC +:10B7E00001B40248844601BC604700BF8B5201008F +:10B7F00001B40248844601BC604700BFC94A010049 +:10B8000001B40248844601BC604700BFF54E010008 +:10B8100001B40248844601BC604700BF311B0000F0 +:10B8200001B40248844601BC604700BFD92FFF1F06 +:10B8300001B40248844601BC604700BF090E000005 +:10B8400001B40248844601BC604700BF0539FF1FB0 +:10B8500001B40248844601BC604700BFD9490100D9 +:10B8600001B40248844601BC604700BF3D4B010063 +:10B8700001B40248844601BC604700BF01240000B7 +:10B8800001B40248844601BC604700BFC9A900005A +:10B8900001B40248844601BC604700BF5D17000048 +:10B8A00001B40248844601BC604700BFED4A010074 +:10B8B00001B40248844601BC604700BFC12FFF1F8E +:10B8C00001B40248844601BC604700BF792DFF1FC8 +:10B8D00001B40248844601BC604700BFED39FF1F38 +:10B8E00001B40248844601BC604700BF1D4B010003 +:10B8F00001B40248844601BC604700BFE54800002F +:10B9000001B40248844601BC604700BF79180000BA +:10B9100001B40248844601BC604700BF11470100E2 +:10B9200001B40248844601BC604700BF1D4D0100C0 +:10B9300001B40248844601BC604700BF413BFF1F81 +:10B9400001B40248844601BC604700BF017F00008B +:10B9500001B40248844601BC604700BFB54C0100F9 +:10B9600001B40248844601BC604700BF25260000A0 +:10B9700001B40248844601BC604700BFB70E000016 +:10B9800001B40248844601BC604700BF6130FF1F1C +:10B9900001B40248844601BC604700BFF30E0000BA +:10B9A00001B40248844601BC604700BFD91B0000B7 +:10B9B00001B40248844601BC604700BF65710100C4 +:10B9C00001B40248844601BC604700BF056A00001C +:10B9D00001B40248844601BC604700BF4D38FF1FD8 +:10B9E00001B40248844601BC604700BF8D120000CC +:10B9F00001B40248844601BC604700BF0D520100FB +:10BA000001B40248844601BC604700BF4537FF1FB0 +:10BA100001B40248844601BC604700BF091B000016 +:10BA200001B40248844601BC604700BFA54F010035 +:10BA300001B40248844601BC604700BFE117000022 +:10BA400001B40248844601BC604700BF7D18FF1F57 +:10BA500001B40248844601BC604700BFCD4C0100E0 +:10BA600001B40248844601BC604700BFC52DFF1FDA +:10BA700001B40248844601BC604700BF4551010043 +:10BA800001B40248844601BC604700BF5933FF1F20 +:10BA900001B40248844601BC604700BF6DBC000091 +:10BAA00001B40248844601BC604700BF594F010001 +:10BAB00001B40248844601BC604700BF055E000037 +:10BAC00001B40248844601BC604700BF291C000045 +:10BAD00001B40248844601BC604700BF090E000063 +:10BAE00001B40248844601BC604700BF350E000027 +:10BAF00001B40248844601BC604700BF691F0000D2 +:10BB000001B40248844601BC604700BF810E0000BA +:10BB100001B40248844601BC604700BF55220000C2 +:10BB200001B40248844601BC604700BFE928000018 +:10BB300001B40248844601BC604700BFC56D0100E6 +:10BB400001B40248844601BC604700BF9DA90000C3 +:10BB500001B40248844601BC604700BF2146010091 +:10BB600001B40248844601BC604700BF851F000045 +:10BB700001B40248844601BC604700BF9136FF1FF4 +:10BB800001B40248844601BC604700BF2D3BFF1F43 +:10BB900001B40248844601BC604700BFD91AFF1FA8 +:10BBA00001B40248844601BC604700BF9135FF1FC5 +:10BBB00001B40248844601BC604700BF2124000054 +:10BBC00001B40248844601BC604700BFDD52010059 +:10BBD00001B40248844601BC604700BF8538FF1F9E +:10BBE00001B40248844601BC604700BFADAE00000E +:10BBF00001B40248844601BC604700BFB352010053 +:10BC000001B40248844601BC604700BF014C0100FA +:10BC100001B40248844601BC604700BF5549010099 +:10BC200001B40248844601BC604700BFB14E000029 +:10BC300001B40248844601BC604700BF51250000A2 +:10BC400001B40248844601BC604700BFC538FF1FED +:10BC500001B40248844601BC604700BF434D010067 +:10BC600001B40248844601BC604700BF3938FF1F59 +:10BC700001B40248844601BC604700BF193AFF1F67 +:10BC80000001010302000303040305020602070288 +:10BC9000080209020A030B030C020D000E030F0336 +:10BCA000100311001300140315001600C53B00110A +:10BCB000F93B00110000000002000000C2BC0011AE +:10BCC000192A0F180A000000F1590000FD24000095 +:10BCD000414601006580001179A00011CD7400116A +:10BCE000697E0011315300116DAE0011994F0011A2 +:10BCF000D53D0011053F00110000000016160000A0 +:10BD0000020000000CBD0011F4FFF3FFD2FC0000A4 +:10BD100045400011000000000000000054757961EA +:10BD20000042312E35003030313900676974687552 +:10BD3000622E636F6D2F70767678005448303546EA +:10BD4000000000000200000058BD0011292A282A26 +:10BD5000272A262A252A242A0A180000E20400009D +:10BD60007102000078EC0000744000001027000011 +:10BD700060F0000006640000204E0000000000009B +:10BD8000050000001F501D00023CB4000001190016 +:10BD900015000000A102000030313233343536374F +:10BDA00038394142434445460000000035570011F0 +:10BDB000895700110000000002000000C4BD0011FE +:10BDC0006F2A6E2A1A18EAD8BC80F0FC60000000C6 +:10BDD00000000000000000F505D39727B6F615F720 +:10BDE000B777E6F0C7F27200000001A00000000083 +:10BDF0006410B71DC8206E3BAC30D9269041DC766C +:10BE0000F4516B6B5861B24D3C7105502083B8ED15 +:10BE100044930FF0E8A3D6D68CB361CBB0C2649B39 +:10BE2000D4D2D38678E20AA01CF2BDBDFB349B5F5E +:10BE3000800000800010000000000000CF600011B2 +:10BE400059770011F3600011617B001177610011D7 +:10BE5000377B0011ED6100110D7B00113F62001175 +:10BE6000D57C0011A7620011D57C0011D9620011A8 +:10BE70008F7C0011ED610011C57A0011656200111F +:10BE80006D7C001100000000000000004B630011F9 +:10BE90006D7C0011AD63001171770011052A042A31 +:10BEA000012A002A02290328012800280118001865 +:10BEB00000000000000000000000000000000087FB +:10BEC0000101020102010102010203030401030155 +:10BED000010101010303020103000D000E00100027 +:10BEE000110013001401070108010A010B011C01D4 +:10BEF0001D02040205020702080219021A021C02AE +:10BF00001D030103020317000201000504000807D6 +:10BF1000000B0A001716001D1C0102010105040197 +:10BF20000E0D011110011413011716011A19020246 +:10BF300001020B0A020E0D02111002141302171651 +:10BF4000030504030807030B0A030E0D0001020397 +:10BF500007090A0B0E0F101112141718191A1B1FBC +:10BF600020212200B5A7001171A8001100000000D7 +:10BF700002000000AEBE0011000000009DB50011DF +:0CBF80000000000002000000ACBE001138 +:020000041FFFDC +:10000000000000003D3D0011C8BC0011C4BC00113F +:100010004461FF1F0000000000000000000000001D +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:100190004D32FF1FAD30FF1FC1660100000000009F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000E9B50011000000000000000000000000CE +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000591AFF1FBC +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:08183800206FFF1F4118FF1F84 +:10184000024981F3088802F04FFB0000206FFF1F60 +:1018500010B502F0B1F9072804D0122808D00228E8 +:1018600008D010BD044A0420136B01331363F8E75A +:101870000220F6E71420F4E70065FF1FF8B5070023 +:101880000C0026002500503630785135002804D150 +:101890000300287058342370F8BD2978CA00481E08 +:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 +:1018B00000280DD12B78DA00A218013350602B706C +:1018C0003378044A013B3370136A01331362D8E75B +:1018D0000123DFE70065FF1F5C234343074910B581 +:1018E000C9180B0058331B78012B05D1FFF7C6FF31 +:1018F000034A936A0133936210BDC0463465FF1FEB +:101900000065FF1F10B502F0C7FA064A0121130057 +:1019100010CB4942D967044B136002F09DFB2000B5 +:1019200010BDC04600E100E01000100010B504003A +:1019300002F0B2FA024B1C6002F08EFB10BDC046F2 +:1019400000E100E0431E5A425341A022F0B5D2010B +:101950005B421340154D164A40019B182A18127E0F +:101960008BB00191002A1BD01A000832D46F0022DC +:10197000E6B206AFE4B294420EDC2818C369002B2D +:1019800008D0019902AA117106AA049202AA16733C +:1019900003A898470BB0F0BD1978B9540132EAE7B3 +:1019A0001A7D1A7806AB01261A70E6E7C067FF1F9A +:1019B00000400040F0B5254B04004001C25C85B0FA +:1019C000002A2BD01A18117E002927D0917E0029D9 +:1019D00024D01179022921D11689D788D168F51B25 +:1019E000ADB22A1C102D00D9102292B2BE4217D1DE +:1019F0001818012303710023C269C38003819A422E +:101A000006D06846032103730171029301A8904731 +:101A10000820002C00D0192001F0FEFA05B0F0BD1E +:101A2000013C65426C41A0256442ED012C40084D0B +:101A30001B186419074D0633013A92B2AA42EDD041 +:101A40001888461C1E80085C2070F5E7C067FF1FE1 +:101A500000400040FFFF00000F220E4B10B59868B9 +:101A6000104002380A280BD802F060F80D0A0B0A61 +:101A70000A110A0A0A0A060002210020FFF762FF83 +:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 +:101A9000F6E7C046004000400F220E4B10B5986894 +:101AA000104002380A280BD802F040F80E0A0B0A40 +:101AB0000A120A0A0A0A060002210120FFF742FF61 +:101AC00010BD01210800F9E70120FFF773FFF7E7D8 +:101AD000DB6FF5E70090004013B5334C2378072BFC +:101AE0003DD8324B1A78324B002A39D180221968FE +:101AF00052020A431A60252001F0C4FE20232D4A19 +:101B000011680B43802113606B460422C9050868E5 +:101B10000733104228D080210422C905C86810422A +:101B20002ED080212020C905CA688243CA601422B1 +:101B30001A701A78002A2FD18021C905C86820326E +:101B40000243CA6014221A701A78002A28D11A4B4C +:101B50001A7D22785A601D221A705932DA6013BD3C +:101B60001A6816490A40C5E7086802430A60142249 +:101B70001A701A78002ACED01A78013AD2B2F7E752 +:101B8000C8680243CA6014221A7019784A1ED2B279 +:101B90001A700029F9D1C4E71A78013AD2B2C7E71E +:101BA0001A78013AD2B2CEE77043FF1F3844FF1FC4 +:101BB0003CF000406843FF1F00200040FFFFFEFF95 +:101BC000564B70B51B68012B03D1554A936D0133F9 +:101BD000936502F0D1F9534B534A1860534B544C60 +:101BE0001A600123534A1360534A13602378002B71 +:101BF00006D006225149524802F0DEF80023237035 +:101C0000504A514B10681B78C1B2002B0ED14F4C7B +:101C1000C0B223785BB2002B4FDB237824785BB211 +:101C200064B21B0424021B191B1813600B1C5029DF +:101C30004ED95023464A47491078DBB2FF2202288A +:101C40004BD10868444C454D267890432A789642FB +:101C500054D9227824782E78023B5D10A31B6B4365 +:101C60005201D31A10335B111843086002F094F844 +:101C7000031F012B45D83A4B1B78002B06D0394B5C +:101C80001B78002B02D0002002F036F9A122364B3F +:101C900092009978354B4A431B689B188322920027 +:101CA0009B181B78033B012B03D8AF20400001F0A9 +:101CB000FBFF01222E4BDA8270BD237824785BB2C1 +:101CC00064B2FF33FF341B0424021B190138ABE755 +:101CD000CAB2022AAED20223ACE70868254C264DD0 +:101CE000267890432A78964208D9227824782D784D +:101CF000023B5B10641B63435201B2E72378DBB203 +:101D0000B2E70228D5D11D4B1B78013B022B03D92A +:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 +:101D2000FC0FFF1F3864FF1FFF3F0000141003402B +:101D30003C64FF1F0C10034000100340D50BFF1F35 +:101D40007211FF1FB40003408C09FF1F680AFF1FB8 +:101D5000490AFF1F94000340460AFF1F470AFF1F5E +:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 +:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 +:101D80002309FF1F10B502F017F90022014B1A803A +:101D900010BDC0463664FF1F10B502F045F8A12102 +:101DA000054A89009478054A61431268044B521829 +:101DB000528C1A8010BDC046300DFF1F3409FF1F22 +:101DC0003664FF1F10B50D4B0D4A9978A1239B0077 +:101DD0004B431268D218531DD97F0A4B1B88994276 +:101DE00009D2441C07D0C82805D0D2695B1A5A43CF +:101DF000054B5343C01802F017F910BD300DFF1FFB +:101E00003409FF1F3664FF1F7102000070B5244DB6 +:101E10002B68002B28D002F0F7F82B68D8402B68ED +:101E20000400002B27D002F06FF82B68D8401D4B20 +:101E30001D4A9978A1239B004B431268D118D25CAC +:101E400091239B00002A20D0CA580132CA50174B58 +:101E500017491B680868834214D3D23B181A012A19 +:101E60001AD0144B186070BD02F0CEF8124B1968EE +:101E700001F072FFD3E702F047F80F4B196801F049 +:101E80006BFFD4E70D495B18E8E7CA500C4B1B68A1 +:101E9000DB68E418201AE4E7F530FF30E1E7C046DC +:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 +:101EB0003864FF1FA009FF1F1808FF1F2DFF3F00F8 +:101EC0004064FF1F70B504000D00282916D10300DF +:101ED000A433C2881B889B1A0B4A9BB293420DD92C +:101EE00006006A3605223100653001F03DFE00280B +:101EF00004D13100200002F07FF870BD29002000DD +:101F000001F00AFFF9E7C046FE7F0000F8B50500C2 +:101F1000012001F0B9FF134CA36AA26A9342FBD1DE +:101F2000114E336002F018F81049030008601048A1 +:101F3000426894460F4A17680022BC4501D24268A5 +:101F4000BA1A0D4802603268AD18A422E562606AD0 +:101F5000520302436262094A1278002A01D00F3B01 +:101F60000B60F8BD00F00040340AFF1FE408FF1FBB +:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 +:101F800070B580241025E405A3682B43A36001F0FD +:101F90005BFEA368AB43A36070BD0000F7B51600FD +:101FA00080221C001023D2050191916805000B438B +:101FB000936000225A4BD7301A6001F045FF9D23F1 +:101FC0002A002F009B00EB58CA3201210092FC37F7 +:101FD000002B01D00021009A386801F0B5FF2900DC +:101FE000009BCB311A784F4BD3351A604B780A7867 +:101FF0001B0213438A7812041A43CB781B0613433F +:10200000494A1BBA13604B790A791B0213438A7938 +:1020100012041A43CB7931001B061343434A1BBAFF +:1020200013606B782A781B021343AA7812041A43B0 +:10203000EB781B0613433E4A1BBA1360019A330226 +:1020400013433C4A13603C4B22001B1B9C46032954 +:102050003DDCB3089A0013005142B21A032A46D15C +:10206000354AE018511A827840781204000202437F +:10207000E05C043302430A600022FF2B4BDDF022B8 +:102080002E4B12011A600F222D4B1A602D4A136835 +:10209000002BFCD00023224A27491360091B321D64 +:1020A0000B191B68043A180A23706070180C1B0E79 +:1020B000A070E3700434002AF2DC802210213B6817 +:1020C000D20501333B6093688B439360F7BD634651 +:1020D000D578981893782D061B042B43157804396E +:1020E0002B43557804322D022B430360AFE7022ABD +:1020F0000AD1114AE05C511AE218527812020243E6 +:102100000A6004339BB2B7E7012AB5D10A4A521AD2 +:10211000E15C1160F5E7084959180A600433ACE73F +:10212000000004403C0004403800044034000440F7 +:10213000300004400C00044000010440040004404E +:102140001000044014000440F7B5150080221C0064 +:102150001023D2050091916807000B439360002380 +:10216000654AD730136001F06FFE9D233E009B004F +:10217000F9583B00CA363200FC33002900D07FE01A +:10218000586801F0E1FE390032785C4BCB311A60BF +:102190004B780A781B0213438A78AC4612041A4320 +:1021A000CB78281D1B061343554A1BBA13604B7985 +:1021B0000A791B0213438A7912041A43CB791B064E +:1021C0001343504A1BBA13604B7A0A7A1B0213431B +:1021D0008A7A12041A43CB7A21001B0613434A4A17 +:1021E0001BBA1360009A2B021343484A1360220063 +:1021F000474B1B1B0093009BCE785B1801938B7899 +:1022000036061B0433430E78043833434E780431CA +:1022100036023343019E33600328ECDC0321A80817 +:10222000431C9B002940800003292BD13849E51825 +:102230005E18A9786D78E35C09042D0229431943DF +:102240003160030008330021FF2B2DDD314B324973 +:1022500019600F21314B1960012327490B60304B66 +:1022600019680029FCD006211B680B40042B20D0E4 +:1022700080220020D20593680A318B439360FEBD13 +:1022800001217DE7022908D121495D18E11849782B +:10229000E35C090219432960D3E70129D3D11C4922 +:1022A0005918E35C0B60CCE7194818180160043337 +:1022B000CAE7002310490B606346002B0CDC3B008F +:1022C000FC335A68102101325A608022D20593688B +:1022D00001208B439360D2E7009B9B181B68190A6F +:1022E00013705170190C1B0ED37004235B42917054 +:1022F0009C440432E0E7C046000004403C00044037 +:102300003800044034000440300004400C00044015 +:102310000001044004000440080F000010000440C5 +:102320001400044070B5061E19D002225A4B9B7946 +:102330009343012B13D1594B1A78FF2A0FD15A78A6 +:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 +:102350001A79FF2A03D15B79FF2B00D199E0504B0A +:102360000C201A78012A08D000224E4D1A702978C4 +:102370000B00093B042B01D8212070BD4B1F012B02 +:10238000FAD9454CA37B042B00D982E0A279032A19 +:1023900000D97EE09A1ED2B2012A02D860881F2896 +:1023A00077D9002E56D0012E73D1A0880128E3D012 +:1023B000002907D1581E032803D801F0B7FB1217D4 +:1023C00015122E702978481E032811D80025364B87 +:1023D0001D602823237501F097FCA84227D0A58013 +:1023E000CAE702212970EDE70421FBE70321F9E7A1 +:1023F00007390129C0D82D490968C96A8906BBD5A2 +:102400002B4908780028B7D1012A01D9002BB3D174 +:1024100002230B708021274D2633890128782375EC +:1024200001F002FC80212878890101F0F5FD0123EB +:10243000A380214B1B78002B0AD0FA2280211F4B4E +:1024400092001B8809025A431A4B187801F0A4FB2A +:10245000002092E701F020FD2B78A680073B012B9E +:1024600003D917482E7001F09FFC114B114C1A78BC +:10247000002A06D080210022207889011A7001F0FC +:10248000D3FB01F0E9FD80212078090201F0CCFBAB +:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 +:1024A0001A09FF1F1C09FF1F4809FF1F4064FF1F77 +:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 +:1024C0000010004010B5002901D001F0D5FC10BD6E +:1024D000F7B5604B01919978A1239B004B435E4A6D +:1024E000060014681022E418D6235B00E058362357 +:1024F000FF33E35C00279343222B41D1574B0F3A24 +:102500001A600760012501F097FD019B1880E82300 +:102510005B00E35C002B01D0B34258DD0023504F39 +:10252000FB70AD33FF33E3581A68002A03D09B8851 +:10253000DB439B071DD03823FF33E35C002B18D00F +:102540009B235B00E35C002B13D1D133FF33E35CAF +:10255000B3420EDAA4235B00E15AE018090A023103 +:1025600001F07AFC23000122FE33013E01351A8777 +:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 +:1025800003683D00002BBED081880430090A023167 +:1025900001F062FCD6235B00E3581F60B2E7230022 +:1025A000B133BA00FF339858013781880430090AE3 +:1025B000023101F051FCE8235B00E35CBB42EEDC3E +:1025C000E822F61AED1800235200A354A6E70027CC +:1025D000F1E7200001F0E0FC00281FD0002E1DDDF7 +:1025E0007319882647190193B600200001F04CFBAF +:1025F0005A30800020184068013581880430090A6B +:10260000023101F029FC200001F04EFCA3590133F6 +:10261000A351BD4202D0019B9D42E6D1114BE35C28 +:10262000002BABD095239B00E35C002BA6D00E4B78 +:10263000E15A0029A2D00D4AA35C994202D9013384 +:10264000A3549BE700231A212000A35401F09CFA15 +:1026500094E7C046300DFF1F3409FF1F00140340EC +:10266000E010FF1F5A020000720200005E0200002C +:102670000D4970B54A6E0D4CD2038B69D20BA24244 +:1026800006D80B4D0224AA4204D901F0ADFA70BD60 +:1026900002246442E21815007E2425402242F4D030 +:1026A000A3432B438B61F0E700F000400A200000B9 +:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 +:1026C000BA7B002A02D101321A7003E0032AFAD041 +:1026D000022AF8D001F018FB00220120154B1A70D5 +:1026E000F8BD154B154D1C68154B9E7801232B70BA +:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D +:10270000DBFBA1239B007343E41883239B00E418A5 +:1027100023782B70E4E7032B02D101F0A5FBF0E74F +:102720000020022BDCD101F00FFBEAE71C09FF1FA0 +:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 +:10274000300DFF1FF0B587B00EAD2F780FAD2D788F +:102750000593AC46634614000E4D0CAA12782E78F1 +:1027600003930D9B009201932200059B029701F0B9 +:10277000C3FA2E70012C01D0042C08D18022064906 +:102780008B889343054A1278D20113438B8007B09C +:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 +:1027A0000B001B3B70B504003020E02B0DD813004C +:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 +:1027C000200019825A8201F08FFA70BD8410FF1F19 +:1027D00010B501F0D1FB054B00205B68052B04D937 +:1027E000034A5268D20200D4980810BD001000407D +:1027F000FCE100E070B501F04FFB0D4B1B68FC33B2 +:10280000DC691D6AFFF7E4FF6419844204D2094BB6 +:1028100001241B68002B07D004220024064B1A70E9 +:10282000064A93690133936101F016FC200070BDE4 +:102830004064FF1F9809FF1F2309FF1FFC0FFF1FA4 +:1028400070B50C4D2B68FC335C6A01F025FBFFF77B +:10285000BFFF2B680025FC339B6AE318834204D238 +:10286000054B1B68AB4200D1051B01F0F5FB2800AE +:1028700070BDC0464064FF1F9809FF1FD722044B5C +:1028800092009B5810B5002B00D0984710BDC04651 +:102890000000FF1F10B501F0D3F8FFF7EFFF274945 +:1028A000274BCA6D274C1A4084235B001343CB652A +:1028B000254B1B68186A01F0E7FA244B244A1A607A +:1028C000244B254A1A60A022244B52001A60244B44 +:1028D000187801F031FA2000224901F01DFB002395 +:1028E000A3600233A360204B2049236003232048C8 +:1028F000A36001F011FB10221E4BFF201A60802202 +:1029000052031A60802292031A60802212041A6015 +:1029100001F0F2FA012001F047F9FA20400001F03D +:102920007BFA582001F0C0F9134801F065F9012045 +:1029300001F0CAF9072001F0FFFA10BD00F00040D5 +:1029400000FEFEFF141000404064FF1F0000034023 +:102950000180063DBC00034034080000A400034091 +:102960004A0AFF1F71020000C3090000FFFF3F0079 +:102970002810004000E100E030750000674E336829 +:1029800088331B6883F3088801F096F9644A654927 +:10299000136800200B401360634B644A1B6893422A +:1029A00000D1A6E001F048FA0221614A13688B4386 +:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 +:1029C00013FB0023A3600233A3605C4B0120236050 +:1029D00001F05AFA0323A36001F00EFA040001F09B +:1029E000CBFA050001F008FA554B186001F00CFA1B +:1029F000544B1968621A531EA14200D21300802260 +:102A0000D203934201D39B029B0A3268D16AC90761 +:102A100000D471E04C491C0C09689BB24C435943EB +:102A20002402090A641803264849FC3293680A689C +:102A300047489B1A474A0768126847499B18474A04 +:102A40009A1833409208DB190A600360042B03D9FB +:102A5000013233400A6003600E684149A619300014 +:102A600001F07AF93F4F3E493B68C3183B603000A4 +:102A7000019301F0B9F93C4E3068081838493060CC +:102A8000884205D9019B01333B6001F0ADF931600B +:102A900001F08AFA354B1B78002B0DD001F06CFA4F +:102AA000334B621B196812188A4232D24919091B2A +:102AB000091A304801F030FA2F4E337A002B0ED02D +:102AC00001F05AFA621BF1681218914224D949198F +:102AD000091B091A294801F01FFA00233372284BF9 +:102AE00083F3088801F078F8002001F0A5F901F0DF +:102AF000A3F801F0A1F95CE7DC0199000234641A43 +:102B00005900641A09214B438033CB40A408E418D0 +:102B100089E7FA218900CCE71A49DBE74064FF1F07 +:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C +:102B300010000040490AFF1F14100040C3090000A4 +:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 +:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 +:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 +:102B7000E408FF1F00100040740BFF1F3C100040D2 +:102B800000000020DC050000A022054B92009B58AD +:102B900010B5002B01D0984710BD01F01DFAFBE7DE +:102BA0000000FF1FA122054B92009B5810B5002B7F +:102BB00001D0984710BD01F00FFAFBE70000FF1F9E +:102BC000A222054B92009B5810B5002B01D09847CC +:102BD00010BD01F001FAFBE70000FF1FA322054B27 +:102BE00092009B5810B5002B01D0984710BD01F002 +:102BF000F3F9FBE70000FF1FA422054B92009B584E +:102C000010B5002B01D0984710BD01F0E5F9FBE7A6 +:102C10000000FF1F70B501F0AFF94F4B186000F0D6 +:102C2000FBFF0400C30702D401F00EFA70BD0022BE +:102C30004A4B1A604A4B18780138042829D800F00A +:102C400075FF0320181C2400200001F0BDF80128A6 +:102C5000ECD0444C2378042B6ED100F07DFF00288B +:102C6000E4D001F039F9582001F01EF80223237056 +:102C7000DCE7200001F030F8E9E7200001F07CF803 +:102C8000E5E7200001F050F8E1E7200001F09CF9B1 +:102C9000DDE701F081F80500012808D1324B1B78EF +:102CA000053B012B03D82000FFF76EFFD1E72D4B2A +:102CB0001B78022B01D0052B20D1022D28D12B4BC4 +:102CC0009B7BAB431CD12000FFF76CFF264B187891 +:102CD0000128BED16405BCD4244925224B7B034284 +:102CE00005D1233A13405A42534126331A000B7D33 +:102CF0009342AED9322000F087FFAAE7022D07D118 +:102D0000194B1B78052B11D12000FFF759FFDDE788 +:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 +:102D2000062B03D12000FFF767FF92E7200001F098 +:102D300053F9022D8DD1C9E7032B04D10C4B987C9C +:102D400000F042FF72E7072B00D06FE7094B987B3A +:102D500000F012FF6AE7C0469C09FF1F9809FF1F99 +:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 +:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 +:102D80001A640A4A5A500A4A04395A50094A083100 +:102D90009A64094A5A50094A5C315A50084ADA661C +:102DA0007047C0460000FF1F4527FF1F4128FF1F37 +:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A +:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 +:102DD000FF270122009300233C001E001D009446A3 +:102DE000019089B262469A40100008401841361896 +:102DF000B6B2FF2F02D1012E00D19FB2009802403F +:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 +:102E10000133102BE6D10320012E07D1012D04D15F +:102E2000019B2401E4191C700138FEBD102EFCD159 +:102E30000238102DF9D00230F7E700008023F7B5F3 +:102E40009C46264B264F01932649274A274D284C5E +:102E5000284B02281AD1604638600868264E304058 +:102E6000802636033043086001990978002909D18A +:102E70001660224A2A60224A2260E02219689143A1 +:102E8000A03A1BE08021C9021160F2E766463E606D +:102E90000F68194E3E408027FF023E430E600199A5 +:102EA000097800290DD1176001280ED1154A2A6032 +:102EB000154A2260E02219689143C03A0A431A6019 +:102EC000F7BD802189021160EEE7E0210F4A02433D +:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 +:102EE000E0000340D800034090000340000003408E +:102EF0005000034040000340FFFFE3FF0280063D17 +:102F0000804508220180063D8066082200800698E0 +:102F100080550822F8B51E4B80261A680020140040 +:102F20003440324232D11A681A4F32431A600122B9 +:102F30003B68063093433B6000F0A6FF0122164D2C +:102F40002B681E432E603B680A2613433B60802794 +:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F +:102F600009D17E220E4B1C682B68E40B144093435E +:102F700023432B6005E0082000F086FFE9E7002EE0 +:102F8000EFD180222B68600893432B60F8BDC046C8 +:102F9000C4F000405CF0004018F0004068F00040D1 +:102FA00060F0004010B500F067FE01215820034A90 +:102FB00000F0DAFEFFF7AEFF10BDC046600AFF1F4B +:102FC00010B578220021034800F066FE00F0DCFE18 +:102FD000002010BD4867FF1F70B5040000F05CFFC3 +:102FE00000230C200B4A010059438D18515C002925 +:102FF0000DD0A14208D1012300246B7000F064FFC2 +:1030000001F02AF8200070BD01330A2BEBD1122405 +:10301000F6E7C0464867FF1F70B5040000F03CFFAC +:10302000002319001D000D4A1078002806D0A04288 +:103030000CD1557001310C320A29F5D1002B0AD17F +:1030400000F0A2FE01F008F8002070BD5078461E86 +:10305000B0411B18EEE700F037FFF3E74867FF1FAA +:10306000F7B504000C20002384460E4D01926746FC +:103070005F43E85D7E19A04212D000280BD10A4BB5 +:103080009C4662461B7808331370019B70707C5518 +:103090007160B360FEBD01330A2BE8D10320F9E76C +:1030A0000720F7E74867FF1F4467FF1F8020F8B538 +:1030B000484BC0051B68C1248360474BFF251A6835 +:1030C000012313434361454BA4001A68444B40213C +:1030D0001A60444B1A68444B1A60444B1A59AA436D +:1030E0001A51C52292009E58AE4331438026995012 +:1030F0009F583F49F6010F403E439E509E588027FF +:103100003602360A3043985080201A5900020A408D +:1031100002431A5104341A59364E3F043240802675 +:103120003A431A511A5936061202120A32431A51F8 +:1031300008341A5980260A4002431A51C3229200C9 +:103140009F58B446AF4337439F509F58294E0F4076 +:1031500007439F509F5837408026360437438026C8 +:103160009F509F5836063F023F0A37439F50C02268 +:103170001F59AF433A431A511A591202120A164301 +:10318000C6221E5192009C58AC4365462C439C506D +:103190009C5800250C4020439850C72080001A58A6 +:1031A000154C1140C02212020A431A50134B1B78CF +:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 +:1031C000A368002B00D0984701350C34EEE712209D +:1031D000F2E7C0466C43FF1F6843FF1FB0F000409A +:1031E0004067FF1FB4F000403C67FF1F00E100E0B4 +:1031F000FF00FFFFFFFF00FF4867FF1F4467FF1F3F +:10320000030010B51F2809D8072200201340072407 +:1032100004490A78A24313430B7010BD0023062013 +:10322000F5E7C0464467FF1F054B06491B780A684F +:1032300005485B0702401B0B134300200B607047DF +:103240004467FF1F1CF00040FFFFC1FF70B50C2555 +:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 +:10326000002C01D1200070BD2B78002B06D06B689C +:10327000002B00D09847013C0C3DF1E71220F2E70B +:103280004467FF1F3C67FF1F1FB5002102220B0090 +:1032900001910091052000F047FE02230B490A68C6 +:1032A0001A42FCD120230393039B5A1E0392002B46 +:1032B000FAD1074A1368002BFCDA0B246C44200077 +:1032C000012100F0D1FC207804B010BD90C800406E +:1032D00000C8004013B504000A4B0193019B002B6A +:1032E00001D1112016BDFFF7CFFF23000340044298 +:1032F00005D0052000F0C8FD019B013BEDE718005B +:10330000F0E7C046FFFFFF0707B500F0C5FD8022CC +:103310000821D205936A0191002B01D107399162EE +:1033200002210C4A11600199481E01900029FAD12E +:1033300003311160053101910199481E0190002966 +:10334000FAD11160002B02D18022D205936200F0E5 +:1033500083FE07BD00C00040F0B52D4C89B0237836 +:10336000002B4FD1FEF7CEFA02232A4F03903A6882 +:103370001A42FCD120230693069B5A1E0692002B6C +:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB +:10339000011E02D0112009B0F0BD030003220190EC +:1033A000009005AD9F2000F0BFFD0321280000F034 +:1033B0005BFC02233A681A42FCD120230793079B47 +:1033C0005A1E0792002BFAD13368002BFCDA012039 +:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F +:1033E0006B7811041B020B4329780B4363601300B5 +:1033F000113B0A49052B07D801239340A3600B60BA +:10340000012323700020C6E780231B03F6E7C04694 +:103410005443FF1F90C8004000C800409808FF1F99 +:103420001E4B30B55A6818781D4B85B0D3185942D9 +:103430004B4101210093002300F00EFC194B1A4A66 +:1034400002259A6300221A6510325A658022C4212F +:103450009D65164B1648D202DA6789004258154B13 +:1034600080241A4080231B041343435064234120CB +:103470000393E40500F006FA402000F003FA6562C9 +:10348000039D6B1E0393002DFAD103236362FFF7A4 +:103490003BFFA562FFF760FF05B030BD6043FF1F33 +:1034A00095FFFEF700C80040050001FF04E100E0C1 +:1034B00000E100E0FFFF00FFF0B585B00700FEF778 +:1034C00021FA022305002D4C22681A42FCD1202348 +:1034D0000093009B5A1E0092002BFAD1284E3368AD +:1034E000002BFCDA0120FFF7F5FE002803D01124A1 +:1034F000200005B0F0BD234B2360022322681A424E +:10350000FCD120230193019B5A1E0192002BFAD17A +:103510003368002BFCDA0120FFF7DCFE0028E6D13F +:10352000194B1F60022322681A42FCD12023029308 +:10353000029B5A1E0292002BFAD13368002BFCDA50 +:103540000120FFF7C7FE0028D1D1104B23600223D2 +:1035500022681A42FCD120230393039B5A1E039234 +:10356000002BFAD13368002BFCDA0120FFF7B2FE02 +:10357000041EBCD12800FEF7D9F9B9E790C8004075 +:1035800000C8004001000006A8C8004001800001FA +:1035900010B50020FFF790FF10BD000010B5064BDE +:1035A00018705960FFF73CFF00211320034AFFF712 +:1035B00057FD002010BDC0466043FF1F2134FF1F90 +:1035C000F0B5040085B003920291FEF79BF98822C2 +:1035D00063035B0B52051A438023DB059D6A80233E +:1035E000274F0092BA68002601901B039A420CD91B +:1035F000F82326001B041E401C4206D08022214BCB +:1036000052025E6219680A431A60002D0BD100F065 +:1036100043FC02221C4B1A608023DB055A62013AEC +:103620009A6200F019FD0023039A934220D1002DE5 +:103630000AD100F031FC144B03221D608023DB050E +:103640005A629D6200F008FD8023BA681B039A420B +:1036500008D9002E06D000220A4B0C495A621A687B +:103660000A401A600198FEF761F9002005B0F0BD2C +:10367000009A0299D2181278CA540133D4E7C0468E +:103680005443FF1F00C8004000C00040FFFFFEFF82 +:10369000F0B587B0029103920400FEF733F9019070 +:1036A00000F0FAFB802302250122234EDB05356062 +:1036B0005D629A6200F0D0FC204F3B682B42FCD147 +:1036C00020230493049B5A1E0492002BFAD11C4D14 +:1036D0002B68002BFCDA0120FFF7FCFD002802D04C +:1036E000112007B0F0BD2000039A029900F074FB8E +:1036F000022304003A681A42FCD120230593059B5B +:103700005A1E0592002BFAD12B68002BFCDA0120FF +:10371000FFF7E0FD051EE3D100F0BEFB802303228E +:10372000DB0535605A629D6200F096FC0198FEF759 +:10373000FDF8E0B2D5E7C04600C0004090C80040A8 +:1037400000C80040F0B5802489B00600FEF7DAF822 +:10375000E405A36A02250393029000F09DFB012378 +:10376000304F3D606562A36200F076FC2E4C23680A +:103770002B42FCD120230593059B5A1E0592002B5A +:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD +:10379000002803D01124200009B0F0BD244B236081 +:1037A000022322681A42FCD120230693069B5A1E4C +:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 +:1037C00089FD021EE6D11B4B03211E600300019000 +:1037D0000090202000F0A8FB022322681A42FCD1AE +:1037E00020230793079B5A1E0792002BFAD12B68C0 +:1037F000002BFCDA0320FFF76DFD041ECAD100F098 +:103800004BFB80230322DB053C605A629C6200F084 +:1038100023FC039B002B01D1FFF776FD0298FEF7F6 +:1038200085F8B8E700C0004090C8004000C80040DC +:103830000100000694C8004007B50002019104226F +:10384000000A01A9FFF724FF0EBD000073B50500B3 +:1038500005240B4AA3005B429B1819686B46DE1DCA +:103860003000FFF7B3FA022804D133782B55013C1E +:10387000EFD276BD052CFCD00128FAD10230F8E752 +:10388000140900111F2807D8012380228340D20584 +:1038900091680B43936070473F2808D8012380222A +:1038A00020388340D20551690B435361F3E75F2809 +:1038B000F1D80123802240388340D205116A0B439E +:1038C0001362E8E71F2807D8012280218240C9053A +:1038D0008B6893438B6070473F2808D80122802172 +:1038E00020388240C9054B6993434B61F3E75F2859 +:1038F000F1D80122802140388240C9050B6A9343E8 +:103900000B62E8E71F2810D880230200DB05153A78 +:103910001968012A06D820229143196019680A43C0 +:103920001A60704701228240F6E73F2811D88023B1 +:103930000200DB05353AD968032A06D810229143E4 +:10394000D960D9680A43DA60EBE701222038824067 +:10395000F5E75F28E5D842238022181A413B8340CF +:10396000D205516A99435162516A0B435362D8E7B9 +:1039700010B50400012813D1A022184992050B6844 +:103980005B015B0913430B60154B164A1968114024 +:10399000154A0A431A60402219680A431A6010BD8A +:1039A0000028FCD101000A2000F0EEFA21000B20D3 +:1039B00000F0EAFAC0220A4B920019680A4340213B +:1039C0001A601A688A431A60B022044912060B680A +:1039D0005B015B0913430B60E1E7C04614F0004054 +:1039E0001CF000407F00FEFF80FD010072B6074A18 +:1039F0001368013313600422054B1A600023054A43 +:103A000013608022D2055360FEE7C0467808FF1F8E +:103A1000C0F00040C4F0004005490B68002B05D100 +:103A2000044A0A6004490A60044A13607047C046A9 +:103A3000140AFF1F841E0000380AFF1FC4F0004054 +:103A40000023034A1360034A1360034A136070475C +:103A500054F0004040F1004044F10040002310B514 +:103A6000184C8AB0009301932378012B27D0694624 +:103A7000012000F079FA002817D1009B1249029327 +:103A8000019B06AA0393114B02A81B680493104BD9 +:103A90001B68059300F0D8F810220E4906A800F024 +:103AA00063F8002804D1FF23237000200AB010BD62 +:103AB0000123094A074902A8237000F0C5F8012034 +:103AC000F4E7C0464464FF1F1029001108290011C3 +:103AD0000C290011202900114864FF1F13B501248F +:103AE0006946012000F040FA034B00940193FFF770 +:103AF000B5FF200016BDC046BB0B000010B5FFF798 +:103B00009FFFFFF7EBFF002802D0024B984710BD44 +:103B1000FEE7C046E1A2000002B471464908490030 +:103B2000095649008E4402BC7047C04602B4714633 +:103B300049084900095C49008E4402BC7047C046F0 +:103B400003B47146490840004900095A49008E44AF +:103B500003BC70470000000001B40248844601BC69 +:103B6000604700BF01D7000001B40248844601BC91 +:103B7000604700BFCD4C010001B40248844601BC3F +:103B8000604700BFC1F7000001B40248844601BC91 +:103B9000604700BF53B9000001B40248844601BC2D +:103BA000604700BF8B52010001B40248844601BC4B +:103BB000604700BF6911010001B40248844601BC9E +:103BC000604700BFE927000001B40248844601BCF9 +:103BD000604700BF4DF9000001B40248844601BCB3 +:103BE000604700BF7997000001B40248844601BCD9 +:103BF000604700BFD1AE000001B40248844601BC5A +:103C0000604700BF8D11010001B40248844601BC29 +:103C1000604700BF6137010001B40248844601BC1F +:103C2000604700BFBD0B010001B40248844601BCDF +:103C3000604700BFB352010001B40248844601BC92 +:103C4000604700BF8552010001B40248844601BCB0 +:103C5000604700BFDD3F000001B40248844601BC5C +:103C6000604700BFC56D010001B40248844601BC35 +:103C7000604700BF3D71010001B40248844601BCA9 +:103C8000604700BFED68010001B40248844601BCF2 +:103C9000604700BFD9B0000001B40248844601BCAF +:103CA000604700BFB70E000001B40248844601BC63 +:103CB000604700BF7912010001B40248844601BC8C +:103CC000604700BFC9A9000001B40248844601BC96 +:103CD000604700BFE512010001B40248844601BC00 +:103CE000604700BF0934010001B40248844601BCAA +:103CF000604700BF116E000001B40248844601BC59 +:103D0000604700BF9D6A000001B40248844601BCC0 +:103D1000604700BFA9D8000001B40248844601BC36 +:103D2000604700BF51B8000001B40248844601BC9E +:103D3000604700BFF535010001B40248844601BC6C +:103D4000604700BFEDA5000001B40248844601BCF5 +:103D5000604700BF19FA000001B40248844601BC64 +:103D6000604700BF090E000001B40248844601BC50 +:103D7000604700BF0167010001B40248844601BCEE +:103D8000604700BF0534010001B40248844601BC0D +:103D9000604700BFADAE000001B40248844601BCDC +:103DA000604700BFDD0C010001B40248844601BC3D +:103DB000604700BFC1A5000001B40248844601BCB1 +:103DC000604700BFE94C010001B40248844601BCD1 +:103DD000604700BF0134010001B40248844601BCC1 +:103DE000604700BF9573010001B40248844601BCDE +:103DF000604700BF090E000001B40248844601BCC0 +:103E0000604700BF156B010001B40248844601BC45 +:103E1000604700BFC166010001B40248844601BC8E +:103E2000604700BF8512010001B40248844601BC0E +:103E3000604700BFF9ED000001B40248844601BCB0 +:103E4000604700BF016C010001B40248844601BC18 +:103E5000604700BF8944000001B40248844601BCA9 +:103E6000604700BFC115010001B40248844601BC8F +:103E7000604700BF75F8000001B40248844601BCE9 +:103E8000604700BFE9D4000001B40248844601BC89 +:103E9000604700BF0189000001B40248844601BCAC +:103EA000604700BF75A9000001B40248844601BC08 +:103EB000604700BF5976010001B40248844601BC46 +:103EC000604700BFE9F6000001B40248844601BC27 +:103ED000604700BF21A9000001B40248844601BC2C +:103EE000604700BF6DF6000001B40248844601BC83 +:103EF000604700BFF1B5001101B40248844601BC1F +:103F0000604700BFED6B010001B40248844601BC6C +:103F1000604700BF6D0B010001B40248844601BC3C +:103F2000604700BF2D6C010001B40248844601BC0B +:103F3000604700BF496D010001B40248844601BCDE +:103F4000604700BFF90D010001B40248844601BC7E +:103F5000604700BF2144000001B40248844601BC10 +:103F6000604700BFBD5C010001B40248844601BC4B +:103F7000604700BFE1AC000001B40248844601BCC8 +:103F8000604700BFC95C010001B40248844601BC1F +:103F9000604700BF49A2001101B40248844601BC39 +:103FA000604700BF71B0000001B40248844601BC04 +:103FB000604700BFD544010001B40248844601BCFB +:103FC000604700BF8D82000001B40248844601BCF6 +:103FD000604700BFF935010001B40248844601BCC6 +:103FE000604700BFE917010001B40248844601BCE4 +:103FF000604700BF8914010001B40248844601BC37 +:10400000604700BF85C1000001B40248844601BC7E +:10401000604700BFE90B010001B40248844601BCBF +:10402000604700BF0D52010001B40248844601BC44 +:10403000604700BF8937010001B40248844601BCD3 +:10404000604700BFCD0C010001B40248844601BCAA +:10405000604700BFDD0A010001B40248844601BC8C +:08406000604700BF9DA90000AC +:1040680002000000AABE001101000000B8BC001147 +:1040780002000000A6BE001101000000A840FF1FBA +:1040880002000000C0BC001101000000C461FF1F55 +:1040980002000000A4BE0011030000003861FF1FE9 +:1040A8001200000002000000AABE0011010000007A +:1040B80000BD001102000000A6BE001101000000B2 +:1040C800FDBC0011020000000ABD00110300000041 +:1040D8007361FF1F02000000A4BE0011030000006E +:1040E8008861FF1F02000000A6BE00110100000049 +:1040F800FCBC00110200000008BD00110300000014 +:104108004961FF1F02000000A4BE00110300000067 +:104118006A61FF1F02000000AABE00110100000032 +:1041280044BD001102000000A6BE001101000000FD +:10413800F141FF1F0200000056BD00110100000000 +:104148003BBD001102000000A6BE001101000000E6 +:10415800F041FF1F0200000054BD001101000000E3 +:104168009061FF1F02000000A6BE001101000000C0 +:10417800EF41FF1F0200000052BD001101000000C6 +:104188002BBD001102000000A6BE001101000000B6 +:10419800EE41FF1F0200000050BD001101000000A9 +:1041A80026BD001102000000A6BE0011010000009B +:1041B800ED41FF1F020000004EBD0011010000008C +:1041C80021BD001102000000A6BE00110100000080 +:1041D800EC41FF1F020000004CBD0011010000006F +:1041E8001CBD0011020202020202000000000000D1 +:1041F80016150000BD4B0011834B001198BD00112E +:1042080090011D0018001800FFFF070102030405B4 +:104218000602010600000000000000000000000087 +:104228000000000000000000000000000000000086 +:104238000300000002000000AABE001101000000F7 +:10424800B8BD001102000000A6BE00110100000068 +:10425800AC42FF1F02000000C2BD001101000000B7 +:10426800BE61FF1F02000000A4BE00110300000091 +:104278002864FF1F02000000A6BE00110100000014 +:10428800AC42FF1F02000000C0BD00110100000089 +:10429800C061FF1F02000000A4BE0011030000005F +:1042A8002064FF1F120800000000000000C6C600BE +:1042B80000000000000000001311000000010000D1 +:1042C80000000111FFFF00005048593600000000AF +:1042D800000000000B000500F0000000B4000028FA +:1042E800002800283075A000A000A000A000000849 +:1042F8000008E001F000100010001000100010008D +:10430800100050005000500010001000D0070000AE +:10431800000000000F0001000500307507001000C4 +:10432800010081FF00000000FF000000317400114F +:1043380039720011C96F0011FFFF0100FF00000072 +:104348004D9E0011C99B0011E19A00110000000068 +:104358000000000000000800040000003B00010805 +:104368005902E00188212800FF0000000200000037 +:10437800AABE00110100000070BF00110200000079 +:10438800A6BE001101000000F143FF1F020000005B +:10439800A2BE0011010000000068FF1F020000001B +:1043A800A6BE001101000000F043FF1F020000003C +:1043B800A0BE001101000000EE43FF1F0200000034 +:1043C800A6BE001101000000EC43FF1F0200000020 +:1043D8009EBE001101000000E443FF1F18001800F2 +:1043E8001D0090010200000302020000020000000C +:1043F800AABE00110100000084BF001102000000E5 +:10440800A6BE0011010000003444FF1F0200000096 +:104418009CBE001100000000000000000200000027 +:0E442800A4BE0011030000002068FF1F20FF4B +:040000051FFF184180 +:00000001FF diff --git a/bthome_phy6222/bin/BOOT_TH05F_v14.hex b/bin/BOOT_TH05_v15.hex similarity index 57% rename from bthome_phy6222/bin/BOOT_TH05F_v14.hex rename to bin/BOOT_TH05_v15.hex index f65db26..9066e15 100644 --- a/bthome_phy6222/bin/BOOT_TH05F_v14.hex +++ b/bin/BOOT_TH05_v15.hex @@ -1,19 +1,19 @@ :020000041100E9 :10300000002373B52B4D2C4C28006361022601F080 -:103010006FF94021FE2221742800284B009601F010 -:10302000B9F9002836D1217CFF222800244B0096D4 -:1030300001F0B0F900282DD1224BA2899A4226D165 +:103010007DF94021FE2221742800284B009601F002 +:10302000C7F9002836D1217CFF222800244B0096C6 +:1030300001F0BEF900282DD1224BA2899A4226D157 :10304000E389214A93420DD1204B6361204B2268D2 :10305000002A03D1002B01D043CB43C4280001F048 -:1030600085F973BD1B4A934201D00023EFE71A4B49 +:1030600093F973BD1B4A934201D00023EFE71A4B3B :103070001A4A1B68934206D9C02304222800217CE7 -:103080009B0001F0FDF9114B6361154BDFE7002355 +:103080009B0001F00BFA114B6361154BDFE7002346 :103090002374EAE7CC233821AC2228009B01217459 -:1030A00001F0EEF90028F2D10E4B63610E4BE38183 -:1030B0000E4BCCE7F441FF1FA461FF1FB061FF1F5F -:1030C000B261FF1F59590000830500001D41001126 -:1030D00048BD001182150000C861FF1F8713000062 -:1030E00054BD0011D5410011AAAAFFFF3CBD00113B +:1030A00001F0FCF90028F2D10E4B63610E4BE38175 +:1030B0000E4BCCE7F441FF1F9C61FF1FA861FF1F6F +:1030C000AA61FF1F59590000830500003941001112 +:1030D00044BD001182150000C061FF1F871300006E +:1030E00050BD0011F1410011AAAAFFFF38BD001127 :1030F000F7B5164B0192C318021D002000938823D8 :103100005B05D3181B685C1C1AD09CB2402C18D8E5 :103110008D781E0CAC466746CD782D023D43AE42FD @@ -28,58 +28,58 @@ :1031A000FA24934201D81A00F824104BE4021B6859 :1031B0009A4210D813000E4A12689A420ED3013375 :1031C00007D1F823DB029C4203D10A49054808F0E5 -:1031D0002FFD200010BDFC24E402ECE7FE24E402F5 +:1031D0002FFC200010BDFC24E402ECE7FE24E402F6 :1031E000F7E7C04600C0071100D0071100E0071143 :1031F00000F00711FFFFFF7FF0B59BB015000490B2 :103200000391402A00D9A0E006AB59801A80FFF74D :10321000C2FF0400042816D9002206A9FFF768FFA0 :10322000052810D906AB1B88AB420CD1002D07D066 -:10323000514B2A000499C01808F0FAFB002802D16B +:10323000514B2A000499C01808F0DAFA002802D18C :1032400001201BB0F0BD06AB1D8020000699FFF7E2 :103250007FFF041E7BD1069B0793FFF79CFF802313 :103260005B01C618802307001B039E4201D3F8268A :10327000F60288235B05F31801931B68013302D023 -:10328000019808F0DDFA3D49019808F0D1FC3B1D9A +:10328000019808F0BDFC3D49019808F0D1FB3B1DB9 :103290000293331D05938822029B52059B181B68DD :1032A00008935A1C3CD044219AB20091402A04D879 :1032B0000320D11D814389B2009103991B0C8B42DD :1032C00024D0402A22D80122300008A9FFF710FF9D :1032D000021E1BD1380008A9FFF70AFF04000428CA :1032E00031D9009A059B9B1880225201B218934253 -:1032F00040D288235B05C118009A09A808F0F8FBA2 -:103300001D4B009A09A9F01808F072FC009A029B64 +:1032F00040D288235B05C118009A09A808F0E0FABB +:103300001D4B009A09A9F01808F03AFA009A029B9E :103310009446634402931A4B029AFB189A42BAD31A -:1033200088235B05FC1821680198013908F080FCAE -:10333000200008F085FA039A07AB5A8030000799FD +:1033200088235B05FC1821680198013908F080FBAF +:10333000200008F065FC039A07AB5A80300007991B :10334000FFF706FF0400002C03D1002079E70428D2 -:10335000FBD988235B05E018069908F069FC032374 +:10335000FBD988235B05E018069908F069FB032375 :10336000EA1C9A4300D16BE7034B0499E01808F07C -:103370003FFC65E70424ECE704000011FFFFFF7F3A +:1033700007FA65E70424ECE704000011FFFFFF7F74 :10338000F80F0000F7B505001400402A21D80027E7 :1033900001AE71803780FFF7FEFE042816D93A008F :1033A0003100FFF7A5FE042810D93688BC420BD0A7 :1033B000BD4209D0221CB44200D9321C064B92B245 -:1033C000C118280008F094FB30B2FEBDC04300B223 +:1033C000C118280008F07CFA30B2FEBDC04300B23C :1033D000FBE703204042F8E70400001137B5042260 :1033E00004000D0001A81649FFF7CCFF02000428D5 :1033F0000BD1019BA34208D3AB4204D0104901A8D2 :103400000195FFF7F9FE01203EBD0E4C2368200018 -:10341000019308F015FA019920000139019108F093 -:1034200007FC80235B01E418074B9C42EED1042289 +:10341000019308F0F5FB019920000139019108F0B2 +:1034200007FB80235B01E418074B9C42EED104228A :10343000034901A80195FFF7DFFE0020E4E7C0463D :103440005555000000C007110000081130B589B0C3 -:1034500008F02EFA10226946254808F061F9254B3C +:1034500008F0DEFA10226946254808F039FB254BB2 :10346000009A9A420ED1019B029A0F2B33D8002169 :1034700001240698013B08D2002900D00292029B49 :10348000013331D10023029325E0551CF2D1020013 -:103490002100EFE710341022200004A908F040F9C1 +:103490002100EFE710341022200004A908F018FBE7 :1034A000029B013301D1069B0293882304995B059B :1034B000C918059B06981A03120B049105928142C4 -:1034C00003D02B4201D108F013FB019B013B019378 +:1034C00003D02B4201D108F0FBF9019B013B019392 :1034D000019B002BDED1029B002B03D004930498A8 :1034E0004168084709B030BDE025014C2D03EFE7E6 :1034F00000000111504859368022F8B5964C974B80 -:10350000D200002120001C6008F0B2F92300944A88 +:10350000D200002120001C6008F062F92300944AD8 :1035100088331A60934B1A786A23002A00D011333B :10352000E3620A232365904B37221B780820A363AC :103530008E4B2118E361102323628D4B3B25636181 @@ -115,9 +115,9 @@ :10371000195019002F48F83108602F49D1658221CE :103720002E4A89005A501A002D490832D1671A00D2 :103730002C49B432116088212B4A89005A501A0052 -:103740002A49883211602A4ADA6408F0E9F801202F -:1037500007F08EFFF8BDC0460004FF1F4064FF1F46 -:10376000206FFF1F3844FF1F4A0AFF1F3A0700005F +:103740002A49883211602A4ADA6407F0F1FF012021 +:1037500007F07EFFF8BDC0460004FF1F4064FF1F56 +:10376000206FFF1F3044FF1F4A0AFF1F3A07000067 :1037700080C3C9019A020000DC0500006A1800003D :1037800050C3000088130000F009FF1F204E000006 :103790006509FF1F68100000C409000040420F00C7 @@ -130,49 +130,49 @@ :10380000614B91B01C70614F039333680021082015 :10381000FB7006F0EFFD082006F0E6FC002398425E :1038200005D0FA78552A02D0332A00D09BE03360C5 -:10383000042006F059FF07F0F3FFFFF75DFE07F0E5 -:103840003FFF1F2201240021514B10AE1A70514B33 +:10383000042006F059FF08F073F9FFF75DFE08F069 +:103840000FF91F2201240021514B10AE1A70514B69 :103850001C70514B1970514B19689143163A0A4329 :103860001A60602219689143403A0A431A6007F0CF -:10387000D7FE07F00DFFC120FF21494B80001A58E9 +:10387000BFFE08F005F9C120FF21494B80001A580E :103880008A431A50C522920098588843BF39014391 :1038900099509858434908408021C901014380202C :1038A00099509958C0050902090A0143995080218D -:1038B0003D48490108F084F8032322003B49019464 -:1038C00000933B4808F0FCF82C223A4905A808F080 -:1038D0000FF905AC61782078023406F0A5FCA64209 +:1038B0003D48490108F01CF9032322003B490194CB +:1038C00000933B4807F074FF2C223A4905A807F003 +:1038D000F7FF05AC61782078023406F0A5FCA6421B :1038E000F8D1354C0020012106F0B2FD2268334B9F :1038F00003201A40A023DB021343236080232268A5 :103900009B041343236022682D4B1A4080239B03A2 -:10391000134323602B4A2C4B934200D8012007F01D -:1039200017FF08F08DF880232268DB04134323601F -:10393000287808F015F9039B1878C0B208F038F819 -:1039400008F0E6F82149042008F022F806F098FE75 -:1039500000F0A8F800F0EAFD00F092FE00F00CFA8A +:10391000134323602B4A2C4B934200D8012008F01C +:1039200017F908F055F880232268DB04134323605D +:10393000287807F0D5FE039B1878C0B207F060FF27 +:1039400008F0CEF82149042008F06AF806F098FE45 +:1039500000F0A8F800F0F8FD00F0A0FE00F01AFA60 :10396000002011B0F0BD00932100184A042007F098 -:10397000CFFF8023DB059C62FFF768FD58E7C04658 -:103980004A0AFF1F34F000403844FF1FD461FF1F74 +:10397000AFFF8023DB059C62FFF768FD58E7C04678 +:103980004A0AFF1F34F000403044FF1FCC61FF1F84 :10399000480AFF1F490AFF1F680AFF1FBCF00040CA -:1039A00000E100E0FF00FFFF3C44FF1FC056FF1F87 -:1039B0003C54FF1F60BC001114F00040FF7FF8FF73 +:1039A00000E100E0FF00FFFF3444FF1FB856FF1F97 +:1039B0003454FF1F60BC001114F00040FF7FF8FF7B :1039C000FFFF9FFF0080FF1F206FFF1F3B000108CC :1039D00070B500252549264A26484D6308CA1B05AF :1039E0001B0DED188242F9D100268022224B920550 :1039F0008B630921214B224C1E62224B1120DA6776 :103A0000214BDA688A43DA609A6820490A409A6052 -:103A1000266008F005F9112007F022FF8022636C70 +:103A1000266007F06DFE112008F0BAF88022636C72 :103A200093436364EE24E4006C43194A200C0400C1 :103A3000642390420AD8FA223300D200904205D97A -:103A4000144B0A21C01807F0ABFEC3B2124A112072 -:103A50001372D48007F014FF104B1B78002B04D195 -:103A60000F4B1021187807F0F3FF70BD00000540E0 +:103A4000144B0A21C01808F0D3F8C3B2124A11204F +:103A50001372D48007F0E4FD104B1B78002B04D1C7 +:103A60000F4B1021187807F00BFE70BD00000540C9 :103A70008805054000060540FF01000000F00040F9 :103A80000038004004E100E03CF00040FFDFFFFFB1 -:103A9000B70B000030F8FFFFBC61FF1FF663FF1F8C -:103AA000F461FF1F002210B51100112007F0A8FEDD +:103A9000B70B000030F8FFFFB461FF1FEE63FF1F9C +:103AA000EC61FF1F002210B51100112007F000FF8C :103AB00010BD0000F8B500230926374F374C3B6294 -:103AC000E3681120B343E36007F0CAFE112008F059 -:103AD000A7F8112007F0C4FD402322688025134376 +:103AC000E3681120B343E36008F062F8112007F0C7 +:103AD0000FFE112007F0CCFF4023226880251343FE :103AE000236080236268DB0213436360A3682C4A6F :103AF0002B43A360A36802211340A3608023A26824 :103B00009B0113431022A360236C0720934323647B @@ -180,7 +180,7 @@ :103B2000204B1A402263626B1A406263A26B1A40F8 :103B3000A263E26B1340E363E3681B4A1340E36054 :103B400006F072FB0121072006F082FC174B1120C2 -:103B50005A6C15435D6407F00BFEFD21144B154AAA +:103B50005A6C15435D6407F073FDFD21144B154A43 :103B600089005A508023C720626B5B031343636351 :103B7000E36880003343E3600F4B104A195811404B :103B8000802212020A431A50802292051A600822EB @@ -190,524 +190,524 @@ :103BC0000000054030B503A804880B20002C0ED15E :103BD0004968074D08784978090201430A20A9423B :103BE00005D1012120001980024B1B7A137030BDD2 -:103BF000192A0000BC61FF1FF7B5150008AA168836 +:103BF000192A0000B461FF1FF7B5150008AA16883E :103C00004A680F4F14785278120222430A24BA42AB :103C100014D10122DBB2019200962A0007F080FC49 :103C2000041E0BD1074B1B68002B07D068782A783D :103C30000002104342425041013098472000FEBD2F -:103C4000022900004061FF1F30B5012503790400FF +:103C4000022900003861FF1F30B501250379040007 :103C5000BFB02B4211D00A49408806F0CDFF284260 :103C60000BD0084B01A95B8D4D800B80064B0022C9 :103C70001B7A60880B7104F09FF83FB030BDC046DE -:103C80003861FF1F6840FF1FBC61FF1F10B5054969 +:103C80003061FF1F6840FF1FB461FF1F10B5054979 :103C9000054806F067FF0421044A054806F024FFA2 -:103CA00010BDC0463861FF1FFFFF00008CBC001133 +:103CA00010BDC0463061FF1FFFFF00008CBC00113B :103CB0006840FF1F10B5024804F000FF10BDC04669 -:103CC000493C0011062310B5837010330371443B47 -:103CD00043712A3383714433C371002302220121CB -:103CE00003720E4B027041701C8881724472197A03 -:103CF0000273C1729A784273DA7882730322C273B4 -:103D00001A7902745A7942740C2282749A79C274B4 -:103D1000DB7903751123C370152010BDBC61FF1F33 -:103D200010B5142007F01CFE124B1422002118605D -:103D300007F09EFD002007F003FE012007F0F8FDCC -:103D4000022007F0CDFD032004F05CF9042006F00A -:103D500071F9052003F09AFB062004F067F80720AC -:103D600001F05AFA082006F09FFE092001F034F80D -:103D700010BDC0464461FF1F07F032FE012007F06E -:103D800027FD07F095FE0000094B10B5040098428E -:103D900005D0012904D12000064906F0E3FE10BD3C -:103DA0000229FCD1013904F047FE0028F3D0F6E7E0 -:103DB000FEFF00006A61FF1F70B50D7A100004AAB3 -:103DC0002C00168810221440154220D1002E20D13C -:103DD0000A78022A18D14A68517815780E4A0902E1 -:103DE0002943914205D00D4A914209D01C800A24F2 -:103DF00004E014220A491A8007F07AFE200070BD00 -:103E00000C2208491A80F7E71C800124F6E70824F1 -:103E1000F4E70B24F2E7C046F3FF0000F4FF0000D4 -:103E2000C442FF1F6CBD001110B5040007490848CB -:103E300006F098FE074804F081FD0020E40704D551 -:103E40000721054A054806F04FFE10BD6A61FF1FB5 -:103E5000FFFF0000893D0011D0BC0011AC40FF1FE6 -:103E600000B50C4BBFB01A780B4902A800F0C2FC99 -:103E70006B4680B2D880002809D06A46074B01A95A -:103E80001B889380064B0022188803F095FF3FB0F3 -:103E900000BDC0464861FF1F4961FF1F0641FF1F6B -:103EA0001042FF1F00B50C4BBFB01A780B4902A897 -:103EB00001F0C8FE6B4680B2D880002809D06A465F -:103EC000074B01A95B8D9380064B0022188803F0F5 -:103ED00073FF3FB000BDC0467261FF1F7361FF1FDB -:103EE000AC40FF1F1042FF1FF7B50E00377A1C00D1 -:103EF00008AB11003D001A8820231D401F423CD111 -:103F00003378022B3BD173681F785B781B023B43ED -:103F10001E4FBB4208D01E4FBB4214D01D4DAB42BA -:103F200021D00A252800FEBD002A2AD1142C2AD827 -:103F30002200F06807F0DCFD174B1C70012CF1D952 -:103F4000FFF7B0FFEEE7002A1BD1202C1BD8220080 -:103F5000F06807F0CDFD114B04211C70104B187850 -:103F600007F076FDDEE7E3B20124009201940A0037 -:103F7000310007F0D5FA0500D4E70825D2E701257E -:103F8000D0E70B25CEE70D25CCE7C046F3FF0000B8 -:103F9000F4FF0000022900007261FF1F4861FF1F4B -:103FA000F461FF1F332310B5040003700A22074990 -:103FB000013007F09DFD064B0F201B681A0AE372C3 -:103FC00022731A0C1B0E6273A37310BDBC61FF1F1A -:103FD000E461FF1F30B5012503790400BFB02B4217 -:103FE00013D00B49408806F007FE28420DD06A46E0 -:103FF000084B02A81B889380FFF7D4FF6B46D8803C -:104000000022608801A903F0D7FE3FB030BDC04652 -:104010006A61FF1F0641FF1F10B5024804F04EFD04 -:1040200010BDC046D53F001170B5160004AA148813 -:1040300005AA15784A685078117800022A4A084380 -:10404000801805284BD807F0EBFC03131E29343FDA -:104050000720042C0BD80522121BAA4200D92A00E3 -:1040600022491A803000091907F042FD002070BD76 -:104070000720112CFBD81222121BAA4200D92A00B9 -:104080001B491A80EEE707200E2CF0D80F22121BD6 -:10409000AA4200D92A0017491A80E3E70720032C17 -:1040A000E5D80422121BAA4200D92A0012491A801C -:1040B000D8E70720032CDAD80422121BAA4200D921 -:1040C0002A000E491A80CDE70720032CCFD80422FE -:1040D000121BAA4200D92A0009491A80C2E700220D -:1040E0000A201A80C3E7C046DCD5FFFF1BBD0011C4 -:1040F0009061FF1F0BBD001106BD001101BD001135 -:10410000FCBC001110B50D21024A034806F0ECFC7E -:1041100010BDC046F0BC00111C41FF1FF0B50024CB -:10412000274E85B03000B47100F0E2F8254D264BE3 -:10413000EA89297C9A422FD10423300003AA00F097 -:1041400057F90400300000F011F90123B371002C7D -:1041500034D16B4699892B68C9BA4B4329891B4ACC -:104160001B145B1853806B46D9896B6849BA89B2B6 -:104170004B4369891B0C5B181548191C1BB2834201 -:1041800000DD011C0B0400D5002113889180013350 -:104190001380200005B0F0BD0227220003AB3000E1 -:1041A000009700F0F7F80E230400297C012230006C -:1041B00000976B4400F0EEF80443C3E71C00E8E707 -:1041C000F441FF1FA461FF1F83050000BC61FF1FB6 -:1041D0000F27000073B5234E300000F089F8224D00 -:1041E00007236A463000297C00F002F90400300001 -:1041F000002C33D16B461B787F2B2FD800F0B6F8FC -:104200006B46D878F02302041B031A406B469B8848 -:1042100016495BBA9BB21A432B68000953432A899B -:104220001B0C9B184B806B465A789B7812031B0122 -:104230001A436B68024353436A891B0C9B180C4852 -:104240001A1C1BB2834200DD021C130400D500229D -:104250000B888A8001330B80200076BD00F086F841 -:104260000124F9E7F441FF1FA461FF1FBC61FF1F98 -:104270000F27000070B5114C237C002B0FD0382B7A -:104280000ED10F4D280000F033F8CC23AC222800CB -:10429000217C9B0100F0F4F8280000F067F870BD65 -:1042A000084BE2899A42FAD1054D280000F020F827 -:1042B00000222800217C00F0C5F8EDE7A461FF1F73 -:1042C000F441FF1F8305000010B5084B1A7C002A3B -:1042D00009D05B69002B06D09847041E01D0FEF779 -:1042E0008FFE200010BD0124F9E7C046A461FF1F26 -:1042F00070B5C17905000C00631E9C411A4BE402A5 -:10430000E41849000460C9B2007906F0D7F8E979E9 -:10431000687949000131C9B206F0D0F8E87909306E -:10432000C0B207F09DF90023E36661332360AA79E8 -:104330005B3B002A0ED022689A43023B1343236062 -:104340000A23E3610733236200232363A36301335A -:10435000E36370BD22689A4302231343236046231C -:1043600063610633A361EFE70050004070B500259C -:1043700004000368DD66C0790930C0B207F070FA46 -:104380002900207906F036F82900607906F032F825 -:1043900070BD0000F8B51E0006AB1D780023046850 -:1043A0001700E366616007F083FA01238022E36669 -:1043B0002B0027615200013B08D207F0B1FB082017 -:1043C0000A4A1168002D03D12800F8BD2261F2E7E6 -:1043D000236F034203D02369013D33700136136814 -:1043E0005B1A032BEED90125EEE7C0466008FF1FDC -:1043F00070B51C00002305681600EB66696007F0C5 -:1044000057FA01238022EB6623005200013B08D2B9 -:1044100007F086FB08200A4A1168002C03D120000F -:1044200070BD2A61F2E72B6F034203D02B69013C78 -:104430003370013613685B1A032BEED90124EEE7C3 -:104440006008FF1F002370B504681500E366616013 -:1044500007F02EFA0123E366256107F061FB802057 -:10446000064A80001168636B034205D113685B1A2A -:10447000032BF8D9012070BD0020FCE76008FF1F66 -:1044800070B51D00002304681600E366616007F044 -:104490000FFA0123E36626610F33626B1A42FCD0E8 -:1044A0002B0A23611023626B1A42FCD0EDB2256106 -:1044B00007F036FB8020074A80001168636B0342D7 -:1044C00005D113685B1A032BF8D9012070BD0020B9 -:1044D000FCE7C0466008FF1F70B51E00002305689A -:1044E0001400EB66696007F0E3F90123A619EB6697 -:1044F0000F33B4420ED107F013FB80200A4A80002C -:1045000011686B6B03420CD113685B1A032BF8D94B -:10451000012070BD21782961696B1942FCD00134FA -:10452000E7E70020F5E7C0466008FF1F10B5084C1C -:10453000E368002B08D18022064B52021B689B18AF -:104540006360054B1B68236007F012FBA06010BD81 -:10455000E461FF1FC8F00040CCF0004070B5184A7D -:10456000936A916A9942FBD116498A689A421FD38D -:104570009A1A8B60144B0126186893B2D202D20E9D -:104580004343424300204C681B0A1B1912029B182C -:104590000E4C0A684B60551CA3420CD8002801D071 -:1045A0004B600A600A4A136008680A4B186070BDC5 -:1045B000581E821ADDE7084A30009B182A00EAE7F5 -:1045C00000F00040E461FF1F140AFF1F40420F008B -:1045D000C8F00040CCF00040C0BDF0FF70B51F4CEB -:1045E00023793F2B01D93F2323711D4B22791A7068 -:1045F0001878C0B207F0E4FA18231A491A4A0B8057 -:104600001A4913800B805380A379194980200B80AD -:104610000C21938001334B43164D191C000183423A -:1046200000D9011C2980D1806379002B11D101337D -:104630006371237A012B01D8022323726279237AD2 -:104640000D4853430A21584307F0AAF80B4D286040 -:1046500070BDA02BEDD9A023EAE7C046D861FF1FAB -:10466000480AFF1F0E42FF1FE443FF1F0C42FF1FBB -:104670000A42FF1F0842FF1F71020000C861FF1FAE -:10468000F8B514210020FEF7A9FE114C011E114DB2 -:1046900009D10C22104BC1CBC1C4280007F0E8F8A7 -:1046A000FFF79CFFF8BD0C2220000C49FEF76AFEC4 -:1046B0000C2802D0084B43CB43C40C2228000849E5 -:1046C000FEF760FE0C28EBD00C220021E5E7C04687 -:1046D000D861FF1FA461FF1F60BD0011FC0C00002A -:1046E000F50C0000F0B51D4C8022A5440400882084 -:1046F00069465201400507F083FA902212016A448C -:104700001300200032C832C316C816C38023144CCD -:10471000144FA6689B033343A3603B6007F0F0F897 -:104720008823A0685B05C01807F08AF80025882355 -:1047300029008022A0685B05C01840196944520016 -:1047400007F056FA80230135FF355B019D42EED11B -:10475000A6603E60044B9D44F0BDC046FCEFFFFFE9 -:104760005443FF1F9808FF1F04100000F0B5040019 -:1047700087B0002825D0684607F01AF81B4C02289D -:1047800006D106226946200007F052F9002816D00B -:104790006946002301250F262F00E25C0133100932 -:1047A0001030874038002F00324097403A000243D3 -:1047B0004A610439062BEFD16846FFF793FF07B033 -:1047C000F0BD182269460A4807F01AFA6A46A300A3 -:1047D000D358013305D01822FF21684607F048F866 -:1047E000EAE70134062CF1D1E9E7C0466509FF1F6D -:1047F00000090011F0B5002504000E0085B0AA42A2 -:1048000000D186E04B1C087801934B788978377982 -:1048100009021943F3783F061B040B431F43039718 -:1048200020706570252800D196E033D8112813D860 -:1048300007F07EF969002501250125012501AA005F -:10484000B800B1002501250125012501250125011B -:104850002501250105011F01232800D1DEE0DB2809 -:1048600000D02EE1042A00D8ACE01025052A05D09E -:10487000551F2A003800711D07F03AF90522310052 -:10488000200007F035F92A003900601D07F030F9E3 -:1048900005353EE0562859D010D8332800D19DE088 -:1048A000552839D02628DAD19C4B2900132218002C -:1048B0001D0006F0DDFFFEF7A3FB5CE0712800D1D0 -:1048C00077E0722800D180E0602800D18BE0DC28FE -:1048D000C5D1022A00D875E07378BFB26370B3788F -:1048E000A370032A05D0033A390092B2F01CFEF7F8 -:1048F00083FC10223900E01CFEF744FDC51C002893 -:1049000007DA60705CE00C222000854907F0F0F8BF -:104910000C25280005B0F0BD013A824D0C2A13D8B1 -:10492000002A0AD02800019907F0E2F8FFF756FEA6 -:104930000C2228007C49FEF75FFC29000C22601C39 -:1049400007F0D6F80D25E4E70C22EBE7754D774B21 -:104950002A0043CB43C2E9E7013A704D0C2A11D833 -:10496000002A08D00199280007F0C2F80C2228007C -:104970006F49FEF741FC29001322601C07F0B8F8CC -:104980001425C6E70C22EDE705226A49601C07F0F2 -:10499000AFF80625BDE712226749601C07F0A8F8AA -:1049A0001325B6E708226549601C07F0A1F8092520 -:1049B000AFE77178F02905D8614B188801F09EFDAA -:1049C0000225A6E7FF236370FAE75E4B012A03D0B6 -:1049D00072789A706270F3E79B78F4E72000FFF733 -:1049E000E1FA050095E7013A564B574D062A10D8D3 -:1049F000002A10D0012128005970019907F078F899 -:104A000001F04EF829000622601C07F071F8072516 -:104A10007FE70622EEE700225A70F3E7042A04D962 -:104A20004A4D2F6007F0A4F8A860FFF797FD042215 -:104A3000039003A9601C07F05BF8052569E7444D66 -:104A4000062ADFD906222800019906F0F1FF002886 -:104A5000D8D006220199280007F04AF806223D49DD -:104A60002800FEF7C9FB0123364A91780B43937067 -:104A7000C8E7012AA6D07078FFF778FEA0E70128E2 -:104A800000D0ECE6931E344F1A2B04D87378002B19 -:104A900009D100F015F9314B39001D78601C6A1EF0 -:104AA00007F026F835E7551E2A000199380007F06F -:104AB0001FF82B49AAB23800FEF79EFB00F036F92A -:104AC000E9E7DA281DD1042A00D87BE7082A15D99E -:104AD000B37972791B021343F27912041A43337AC1 -:104AE0001B0613433B603B68052231002000039303 -:104AF00006F0FEFF0422601D03A956E7FE23637043 -:104B0000F1E7DE2800D05DE7511E012A01D1002522 -:104B1000FFE6019800F0AAFFF9E7C046A461FF1F75 -:104B20006CBD0011D861FF1FFC0C000060BD0011BE -:104B3000F50C0000B061FF1F9061FF1F5843FF1F7D -:104B40001042FF1FD461FF1FB442FF1FE461FF1F2B -:104B50006509FF1FADAC0000D563FF1FD363FF1FC6 -:104B6000AEDE000070477047020010B5094B0A32F4 -:104B7000094C92B2DA815A8298811882207802F028 -:104B800023FB0422054B012120781A7006F060FFF8 -:104B900010BDC046E242FF1F1E64FF1F1D64FF1FC1 -:104BA000013870B5042809D806F03AFF030928082F -:104BB0001200234B0221187806F04AFF70BD204BEB -:104BC0000821187806F0BCFF00221E4B1A72F5E788 -:104BD000802200241B4B1A4D52001A8108211A68AA -:104BE0002878DC7206F004FE2100287806F0D8FF51 -:104BF000012000F073FE00F053FFDFE7104B0821A7 -:104C0000187806F09DFF1048FFF75CF80F4B104A2C -:104C10009B79002093800F4A13808022094B520019 -:104C2000D8721A8100F05AFE00F03AFF0A4B9B78C6 -:104C3000002BC3D0094A136006F0D2FFBEE7C0467E -:104C4000F461FF1FC861FF1F1942FF1FD861FF1FDA -:104C5000E443FF1F0A42FF1FD461FF1F34F00040EE -:104C600010B501290BD1082809D1054B1B78002B61 -:104C700005D02622034B04485A72FFF775FF10BD7A -:104C8000F663FF1FC861FF1FC40900000300F0B5F1 -:104C90000A4D8E18B14202D152008018F0BD0C7836 -:104CA0002F6824093C5D0F271C700C7801313C40B3 -:104CB0002F683C5D5C700233ECE7C0460442FF1F86 -:104CC0000E22114B10B51A700D23104C1049237091 -:104CD000093A043B0F48637006F00AFF2D230122B6 -:104CE0000D490E48E371FFF7D1FF01220C49FFF790 -:104CF000CDFF01220B49FFF7C9FF00220A4910002E -:104D0000FEF77AFA10BDC046F263FF1FD363FF1FA0 -:104D10001BBD0011D563FF1F6709FF1FDB63FF1F6A -:104D20006609FF1F6509FF1FAEDE000070B5124C5B -:104D3000132220001149FEF725FB114D002817DD35 -:104D4000AB78002B14D0431C2B7009236B7000230D -:104D500000190370287829000130C0B206F058FF0E -:104D6000297822000139C9B2002005F0DBFD70BDB1 -:104D7000FFF7A6FFEEE7C046D563FF1FAEDE0000DB -:104D8000D363FF1F10B5114B1A781870002A0ED08C -:104D900000280BD10E4B1A78062A07D85423D3408B -:104DA000DB0703D50B4B187802F00EFA10BD002874 -:104DB000FCD0074B1B78012B02D0033B022BF5D80C -:104DC000044B0121187806F043FEEFE7F663FF1F5E -:104DD0001D64FF1F1E64FF1F70B5514E514A52499A -:104DE0003070082005F02AFC0121022005F030FB7C -:104DF000022005F011FC0121002005F029FB002014 -:104E000005F00AFC00F0BAFEFEF7FAF806F070FDB5 -:104E1000032246494648FFF739FF2D2403000422A8 -:104E20001C7044490130FFF731FF30230470424DBC -:104E3000424C437083702E3B062220004049EB8792 -:104E4000FEF7A0FA062813D0200006F0B1FC0228D5 -:104E500009D00321200006F01BFD8D23E3706E3B7B -:104E6000237119336371062220003549FEF7C4F916 -:104E7000344B1B68FC335C64FFF758FF0020FFF7DE -:104E800081FF314C314A0121314B1278207802F0F8 -:104E90005DF9304A304B12780021207802F056F943 -:104EA00001222E4B1A702E4BDB78552B31D12D4B16 -:104EB0003B325A722C4B2D4AAB81EA812B826A829B -:104EC0002021307806F044FE0120404205F076FDB6 -:104ED0000120404205F012FEFFF714F9FEF7D6FE5E -:104EE00000F0A4FC01204042FEF79EFF012006F0E6 -:104EF0001FFCF02001F0E6FA0121307806F0A8FD51 -:104F0000307802F0BDFA1A4806F052FEFEF7D2FDE4 -:104F100070BD6422174B5B7953431A000A32CBE70A -:104F2000F461FF1F654B0011614C00115843FF1FD6 -:104F30009061FF1FB061FF1FE242FF1F6509FF1F65 -:104F4000ADAC00004064FF1F1E64FF1F3842FF1F0E -:104F50001942FF1FF263FF1FD363FF1FC463FF1FCC -:104F6000D461FF1FC861FF1FC4090000CE09000003 -:104F7000F661FF1FD861FF1FF8B50A0020230D005E -:104F80001A40194257D0574B1B78002B50D0FFF7CF -:104F9000E5FA554B554C564E99686268737A8A1AF1 -:104FA000DB039A4202D36160FEF784FD327A217AF4 -:104FB000531EDBB2994205D1FFF75CF9002000F0E7 -:104FC000A5FD0FE09142F9D300232372FFF77CF98E -:104FD000012000F09BFD474F3800FEF773FE3900BB -:104FE00006F036FE637A002B1FD0013BDBB2637202 -:104FF000002B1AD1404BDB78552B01D106F0F0FD88 -:10500000E37A002B0CD000233C4A3A4FE37213881A -:10501000380001331380FEF755FE390006F018FE04 -:10502000642370795843FFF79FFD237A013323727D -:1050300020206840F8BD0BB2002B0ADA304B1878FC -:1050400006F08EFB002801D006F0E2FC8020000272 -:10505000EFE70224214206D0244B01201A72FFF709 -:1050600091FE2000E5E70B071ED5FFF777FA1E4BF0 -:105070001E491F4C98684A68637A821ADB039A4279 -:1050800002D34860FEF716FDFFF71EF9FFF7F2F8AE -:10509000012000F03BFD00F0E3FB2368DB0701D5B6 -:1050A000FEF7BAFF0820C4E71024214206D00D4BBA -:1050B0001B78002BD5D1FEF7FDFDD2E7012421425C -:1050C00007D0104800F06CF806F0B2FA00F004FDCA -:1050D000C7E70424080020402142ABD0FEF7C0FE01 -:1050E000BFE7C046F663FF1FE461FF1FC861FF1FF3 -:1050F000D861FF1F1942FF1FD461FF1FBC61FF1F52 -:10510000F461FF1FFC41FF1FF0B51B4B1B4F1B88B9 -:105110003A8804001A4E1B4D85B09A420DD8328849 -:105120009A420AD3184B1A882B889A4205D1174AFB -:10513000174B12881B889A421BD0052001F018FAE1 -:105140003B8802AA13803388019053802B88114D2D -:1051500093800F4B02A91B88D3800F4B2A781888A5 -:1051600002F034FF0D4B08212878019A1C7006F0DC -:105170002FFD05B0F0BDC046C263FF1F0E42FF1FEA -:105180000C42FF1F0A42FF1FC063FF1FBE63FF1FC9 -:105190000842FF1F1E64FF1F1042FF1FBC63FF1F5A -:1051A00013B50C4B1C78002C11D1002801D00A4BF0 -:1051B00018600A4A0A4B11780A4A10780A4A019282 -:1051C0000A4A0092002205F0A5FA200016BD11241B -:1051D000FBE7C0461D64FF1FB863FF1F1C64FF1F71 -:1051E0000C64FF1F1E64FF1FF863FF1FFC63FF1F9B -:1051F00010B5064B12201B78052B06D1044B132249 -:105200001988044B187801F08FFB10BD1D64FF1F37 -:105210001042FF1F1E64FF1F10B500240122114B16 -:1052200052421870104B1C70104B1A8002F028F973 -:1052300004220F4B21001A700E480C3206F0E8FAD7 -:10524000102221000C4806F0E3FA07220B4B1C60E9 -:105250000B4B1C700B4B1C700B4B1A700B4B1C70C8 -:1052600010BDC0461E64FF1F1D64FF1F1042FF1FBC -:105270001C64FF1F0C64FF1FFC63FF1FF863FF1F0C -:10528000D263FF1FD163FF1F1242FF1FD063FF1FB6 -:10529000F8B5174C0600257806A814240078052DCB -:1052A00023D1B41F134FA5B21824BD421DD88D1FA2 -:1052B000ADB2BD4219D8FA256D00AA4215D21D0023 -:1052C0000D4F0A3DADB2BD420FD80C4C26800C4CA0 -:1052D00021800C4900240A800B4A1380FFF714FF39 -:1052E0000A4B0421187806F02BFC2000F8BDC046BC -:1052F0001D64FF1F790C0000750C00000E42FF1F9B -:105300000C42FF1F0A42FF1F0842FF1F1E64FF1FBF -:10531000F0B50BB20D0089B0002B00DB70E1A44E9C -:10532000307806F01DFA041E50D00378A22B00D16D -:1053300022E1D02B1AD0912B45D143780E2B42D1AC -:105340009C4B82889A423ED19B4A83681278052AF8 -:1053500039D1032018567F2835D0984B1B68002B75 -:1053600031D05B68002B2ED098472CE0807807283E -:1053700029D806F055FB0428183F3F74A8D8637855 -:10538000002B0CD101218C4B19708D4B1A78002AFF -:105390005BD08C4B307801F0D9FE002855D0072225 -:1053A000854B1A7051E061780029F8D1E378002B21 -:1053B00011D0854A854B1278307801F0C7FE6070B5 -:1053C0006378002BEBD1200006F022FB8020000246 -:1053D000684009B0F0BD784B1B78022BF3D0012157 -:1053E000307806F0CDF90028EAD10121307806F0B6 -:1053F0002FFBE5E76378002BD1D16F4F032807D14E -:105400003B78052B02D101333B701EE00223FBE702 -:105410006F4B1A886F4B0293002A0BD01B78002B1E -:1054200003D00121307806F0D3FB3B78062B04D162 -:10543000013BE9E7029B1A70F7E7042B41D10121F8 -:10544000029B3078197006F003FB5C4B1B68002B45 -:10545000B9D01B68002BB6D0574A107884E7637820 -:10546000554F002B27D10622211D5B4806F040FB3B -:1054700062895A4B5A491A80A2895A4B1A80E38989 -:105480000B800521397058490A80584A1380228AB6 -:10549000574B1A80574B1B78012B09D11F2001F065 -:1054A00067F8FA22920042430421307806F090FB1C -:1054B0000022484B75E7312B00D070E70022454BA6 -:1054C0001A700323A0E706220021434806F0A0F942 -:1054D0000023454A04211380444A30781380444A0B -:1054E000138006F02DFB0821307806F029FBA37904 -:1054F000083B5A425341304A03331370304B1B78F8 -:10550000002B06D0334B30781A78002A06D001F0F1 -:105510005BFE0122314B52421A8096E7012119703D -:1055200006F096FAF5E70821307806F009FB637873 -:10553000002B00D047E72C4B2D4F0293E388029AB3 -:1055400004211380294B307803932389039A138015 -:1055500063893B8006F014F9002800D033E7264B1E -:105560001B68002B00D12EE7039902983A8809881E -:1055700000881B68984726E74379132B00D022E761 -:105580000389012B0AD11D4B1B78022B06D1082160 -:10559000307806F0D5FAFFF72BFE14E7052000F06F -:1055A000E7FF08210200307806F012FB0BE7C04647 -:1055B0001E64FF1F051400001D64FF1FB863FF1F5A -:1055C0003842FF1F1942FF1FF263FF1FD363FF1F03 -:1055D000F463FF1FF663FF1FC563FF1F1042FF1F29 -:1055E000CC63FF1FCE63FF1FC263FF1FC063FF1F9B -:1055F000BE63FF1FC463FF1FB463FF1FBC63FF1FB5 -:105600008020C001014200D0E2E6CB0731D5324B09 -:105610001B78002B1DD0314E05AC3378052B1AD1E9 -:10562000023B23702E4B21001B7823722D4B1B78DD -:1056300063722D4B187801F02DFD002809D007204A -:105640002A4B30701B68002B03D01B68002B00D046 -:1056500098470120BCE60E20254B06221B782549E1 -:105660002370254B1B78637002ABC01806F040FA1C -:10567000D8E7022308001840194209D0174B1B78BD -:10568000052B03D11D4B188806F01AF902209FE65E -:105690000424214203D0FFF737FD200098E60823B9 -:1056A00008001840194200D193E6154B1C78012CD4 -:1056B00003D0022C0DD008208AE6124B124A13495F -:1056C00013481B881288098800880094FFF7E0FDC2 -:1056D000F1E7FFF78DFDEEE7F663FF1F1D64FF1F87 -:1056E0001242FF1FD063FF1F1E64FF1FB863FF1F1E -:1056F000D263FF1F1342FF1FD163FF1F1042FF1F22 -:10570000BC63FF1F0842FF1F0A42FF1F0C42FF1F1E -:105710000E42FF1F10B502A804880B20002C10D1E8 -:10572000496808784978090201430C48814209D147 -:10573000022119800A4B59881170DB7800205BB276 -:10574000537010BD074C0A20A142FAD102211980E2 -:10575000034B998811705B79F0E7C0466E2A000010 -:10576000BC61FF1F6F2A0000F7B5150008AA168854 -:105770004A680F4F14785278120222430A24BA4220 -:1057800014D10122DBB2019200962A0005F0C8FE76 -:10579000041E0BD1074B1B68002B07D068782A78B2 -:1057A0000002104342425041013098472000FEBDA4 -:1057B000022900003064FF1F30B501250379040081 -:1057C000BFB02B4225D01449408805F015FA284275 -:1057D0000CD0124B01A95B8D00220B8002234B8061 -:1057E0000F4B5B888B80608802F0E6FA0D49608879 -:1057F00005F002FAC0070CD50B4B01A91B8800224B -:105800000B8002234B80064B9B888B80608802F0C4 -:10581000D3FA3FB030BDC0462864FF1F3C42FF1F93 -:10582000BC61FF1F2064FF1F9642FF1F10B5074C8D -:105830000749200005F096F92000064905F092F985 -:105840000721054A054805F04FF910BDFFFF00008C -:105850002864FF1F2064FF1F8CBD00113C42FF1F06 -:1058600010B5024803F02AF910BDC046B95700111F -:1058700070B540253F2608210B4BC207D2172A409E -:10588000DD789C7835408C432A439C70DA7082071F -:1058900001D521439970400704D58022D97852421E -:1058A0000A43DA7070BDC046B442FF1F13210A4B91 -:1058B000DA788A43123901400A43DA700222104230 -:1058C00002D0D9780A43DA70400703D51022D9787C -:1058D0000A43DA707047C046B442FF1F10B5054B4B -:1058E000082419790A00A243002801D022000A43A3 -:1058F0001A7110BDB442FF1F10B5054B2024D97892 -:105900000A00A243002801D022000A43DA7010BD29 -:10591000B442FF1F0821F8B5324D334BAE78040076 -:105920000E40AE70984204DD67232B70273B6B70EE -:10593000F8BD2E4B984203DAE0232B701A3BF6E7B2 -:1059400000232B706B7083B21A0029485F3292B229 -:10595000284F82422CD9002C03DA5B421CB204236C -:105960002B70053420B20A2105F01AFF04B2FA2385 -:105970009B009C4232DB08232A7813432B7064215E -:10598000200005F00DFF0A2100B205F079FE09B2F2 -:105990002A787B5C13432B700A21200005F000FF5E -:1059A0000A2100B205F06CFE09B27B5C6A780AE05D -:1059B0006970002CDBDA5B421CB204232B70F522E9 -:1059C0006B78092CE8DC13436B700A21200005F08A -:1059D00057FE09B27B5C1E43AE70A9E7632CCEDC98 -:1059E000EDE7C046B442FF1F1B4E00001DFCFFFF49 -:1059F0002A080000B7BD00110823F7B5194FCD00E4 -:105A00003E7904001E403E71EDB2632806DD5F332F -:105A100033433B7140231D437D71F7BD03000933C0 -:105A200005DA20235B4233433B71C623F3E70E4B79 -:105A3000019300280BDA0423444224B23B710A216B -:105A4000200005F01DFE019B09B25B5CE3E709281D -:105A5000F5DD0A2105F0A4FE019B00B21B5C1E438C -:105A60003E71ECE7B442FF1FB7BD0011F8B50A4F15 -:105A700005003B780E00002B0CD0084C2000FEF7F0 -:105A800037FC33002A0020003978FEF725FD20007E -:105A9000FEF76CFCF8BDC0463464FF1FBC42FF1F1C -:105AA00070B50A4E0A4D06223100280005F0C0FFED -:105AB000002809D0074C31000622280006F018F80B -:105AC00007212000FFF7D2FF70BDC046B442FF1F80 -:105AD000AE42FF1FAD42FF1FE622202110B50A4B48 -:105AE0001A70203A5A701C329A70DA780A40DA70CA -:105AF000082219791140033A0A431A7127225A7170 -:105B0000FFF7CEFF10BDC046B442FF1F70B5184B63 -:105B10005C78002C2BD1002829D0164D0A210223B5 -:105B2000E85E05F03DFE00B2FFF7F4FE0423E85EF8 -:105B3000642105F035FE012100B2FFF75DFF13225D -:105B400020002B7A9A426041C0B2FFF7D5FE0320B5 -:105B5000FFF78EFE2000FFF7A9FE074B18780538E7 -:105B600043425841C0B2FFF7B9FEFFF799FF70BD3D -:105B7000D461FF1FBC61FF1F1D64FF1F70B50025AE -:105B80000A4C2000A571FEF7B3FB11233E21200033 -:105B9000074AFEF7A1FCA84200D13E35054B200084 -:105BA0001D700123A371FEF7E1FB70BDBC42FF1F16 -:105BB000A6BD00113464FF1F0200F0B501270A489A +:103CC000493C0011012303700B4B1A7A4270022207 +:103CD00082709A78C270DA780271032242711A797E +:103CE00082715A79C2710C2202729A794272DB791E +:103CF00083720B207047C046B461FF1F022310B5CA +:103D00000370013B43700533837010330371443BF0 +:103D100043712A3383714433C37100230372064B0A +:103D200004001B8843720A30FFF7CCFF831D0A3062 +:103D3000C0B2E37010BDC046B461FF1F10B51420BF +:103D400007F0B6FE124B14220021186007F040FD68 +:103D5000002007F0D5FD012007F00AFE022007F041 +:103D600057FF032004F04EF9042006F063F9052004 +:103D700003F08CFB062004F059F8072001F05CFAF0 +:103D8000082006F091FE092001F036F810BDC0466B +:103D90003C61FF1F07F0ECFE012007F041FF07F038 +:103DA000B7FD0000094B10B50400984205D0012969 +:103DB00004D12000064906F0D5FE10BD0229FCD131 +:103DC000013904F039FE0028F3D0F6E7FEFF0000C9 +:103DD0006261FF1F70B50D7A100004AA2C001688CE +:103DE00010221440154220D1002E20D10A78022A38 +:103DF00018D14A68517815780E4A09022943914230 +:103E000005D00D4A914209D01C800A2404E01422F6 +:103E10000A491A8007F054FD200070BD0C220849A1 +:103E20001A80F7E71C800124F6E70824F4E70B2446 +:103E3000F2E7C046F3FF0000F4FF0000BC42FF1FA2 +:103E400068BD001110B504000749084806F08AFE55 +:103E5000074804F073FD0020E40704D50721054A54 +:103E6000054806F041FE10BD6261FF1FFFFF000024 +:103E7000A53D0011D0BC0011AC40FF1F00B50C4B9C +:103E8000BFB01A780B4902A800F0C2FC6B4680B2A2 +:103E9000D880002809D06A46074B01A91B88938067 +:103EA000064B0022188803F087FF3FB000BDC046D4 +:103EB0004061FF1F4161FF1F0641FF1F1042FF1FAE +:103EC00000B50C4BBFB01A780B4902A801F0BAFE3E +:103ED0006B4680B2D880002809D06A46074B01A9FA +:103EE0005B8D9380064B0022188803F065FF3FB07E +:103EF00000BDC0466A61FF1F6B61FF1FAC40FF1F22 +:103F00001042FF1FF7B50E00377A1C0008AB1100F6 +:103F10003D001A8820231D401F423CD13378022BDC +:103F20003BD173681F785B781B023B431E4FBB423B +:103F300008D01E4FBB4214D01D4DAB4221D00A25E4 +:103F40002800FEBD002A2AD1142C2AD82200F068AD +:103F500007F0B6FC174B1C70012CF1D9FFF7B0FF2E +:103F6000EEE7002A1BD1202C1BD82200F06807F0B6 +:103F7000A7FC114B04211C70104B187807F080FB34 +:103F8000DEE7E3B20124009201940A00310007F059 +:103F9000C7FA0500D4E70825D2E70125D0E70B25AD +:103FA000CEE70D25CCE7C046F3FF0000F4FF00008C +:103FB000022900006A61FF1F4061FF1FEC61FF1FC3 +:103FC000332310B5040003700A220749013007F0BB +:103FD00077FC064B0F201B681A0AE37222731A0C37 +:103FE0001B0E6273A37310BDB461FF1FDC61FF1F62 +:103FF00030B5012503790400BFB02B4213D00B4923 +:10400000408806F0F9FD28420DD06A46084B02A808 +:104010001B889380FFF7D4FF6B46D880002260880E +:1040200001A903F0C9FE3FB030BDC0466261FF1F69 +:104030000641FF1F10B5024804F040FD10BDC04608 +:10404000F13F001170B5160004AA148805AA15786E +:104050004A685078117800022A4A084380180528D7 +:104060004BD807F05DFC03131E29343F0720032CB7 +:104070000BD80422121BAA4200D92A0022491A8016 +:104080003000091907F01CFC002070BD0720112C1E +:10409000FBD81222121BAA4200D92A001B491A80FF +:1040A000EEE707200E2CF0D80F22121BAA4200D9EF +:1040B0002A0017491A80E3E70720032CE5D80422D9 +:1040C000121BAA4200D92A0012491A80D8E70720F9 +:1040D000032CDAD80422121BAA4200D92A000E4966 +:1040E0001A80CDE70720032CCFD80422121BAA4246 +:1040F00000D92A0009491A80C2E700220A201A8042 +:10410000C3E7C046DCD5FFFF1BBD00118861FF1F60 +:104110000BBD001106BD001101BD0011FCBC00115A +:1041200010B50D21024A034806F0DEFC10BDC04662 +:10413000F0BC00111C41FF1FF0B50024274E85B0D4 +:104140003000B47100F0E2F8254D264BEA89297C55 +:104150009A422FD10423300003AA00F057F904003B +:10416000300000F011F90123B371002C34D16B46FB +:1041700099892B68C9BA4B4329891B4A1B145B18C0 +:1041800053806B46D9896B6849BA89B24B436989B8 +:104190001B0C5B181548191C1BB2834200DD011C67 +:1041A0000B0400D500211388918001331380200077 +:1041B00005B0F0BD0227220003AB3000009700F0ED +:1041C000F7F80E230400297C0122300000976B448D +:1041D00000F0EEF80443C3E71C00E8E7F441FF1FDA +:1041E0009C61FF1F83050000B461FF1F0F270000C3 +:1041F00073B5234E300000F089F8224D07236A463C +:104200003000297C00F002F904003000002C33D18A +:104210006B461B787F2B2FD800F0B6F86B46D8780A +:10422000F02302041B031A406B469B8816495BBAB5 +:104230009BB21A432B68000953432A891B0C9B1815 +:104240004B806B465A789B7812031B011A436B68AC +:10425000024353436A891B0C9B180C481A1C1BB25F +:10426000834200DD021C130400D500220B888A80E3 +:1042700001330B80200076BD00F086F80124F9E7B9 +:10428000F441FF1F9C61FF1FB461FF1F0F27000057 +:1042900070B5114C237C002B0FD0382B0ED10F4D55 +:1042A000280000F033F8CC23AC222800217C9B01AD +:1042B00000F0F4F8280000F067F870BD084BE289C0 +:1042C0009A42FAD1054D280000F020F8002228007B +:1042D000217C00F0C5F8EDE79C61FF1FF441FF1F52 +:1042E0008305000010B5084B1A7C002A09D05B69D1 +:1042F000002B06D09847041E01D0FEF781FE200057 +:1043000010BD0124F9E7C0469C61FF1F70B5C1795B +:1043100005000C00631E9C411A4BE402E41849009E +:104320000460C9B2007906F0C9F8E97968794900F2 +:104330000131C9B206F0C2F8E8790930C0B207F01D +:1043400097FB0023E36661332360AA795B3B002A75 +:104350000ED022689A43023B134323600A23E36191 +:104360000733236200232363A3630133E36370BD38 +:1043700022689A4302231343236046236361063372 +:10438000A361EFE70050004070B50025040003680A +:10439000DD66C0790930C0B207F0FAFB2900207948 +:1043A00006F028F82900607906F024F870BD0000B6 +:1043B000F8B51E0006AB1D78002304681700E366FD +:1043C000616007F025FB01238022E3662B00276153 +:1043D0005200013B08D207F0DBF908200A4A1168B5 +:1043E000002D03D12800F8BD2261F2E7236F0342BC +:1043F00003D02369013D3370013613685B1A032B28 +:10440000EED90125EEE7C0466008FF1F70B51C001D +:10441000002305681600EB66696007F0F9FA0123CE +:104420008022EB6623005200013B08D207F0B0F96E +:1044300008200A4A1168002C03D1200070BD2A61AF +:10444000F2E72B6F034203D02B69013C3370013636 +:1044500013685B1A032BEED90124EEE76008FF1FF7 +:10446000002370B504681500E366616007F0D0FAB8 +:104470000123E366256107F08BF98020064A80005E +:104480001168636B034205D113685B1A032BF8D9DB +:10449000012070BD0020FCE76008FF1F70B51D0003 +:1044A000002304681600E366616007F0B1FA012397 +:1044B000E36626610F33626B1A42FCD02B0A23613C +:1044C0001023626B1A42FCD0EDB2256107F060F94F +:1044D0008020074A80001168636B034205D113688E +:1044E0005B1A032BF8D9012070BD0020FCE7C04601 +:1044F0006008FF1F70B51E00002305681400EB66FE +:10450000696007F085FA0123A619EB660F33B44200 +:104510000ED107F03DF980200A4A800011686B6BCC +:1045200003420CD113685B1A032BF8D9012070BD2C +:1045300021782961696B1942FCD00134E7E700203A +:10454000F5E7C0466008FF1F10B5084CE368002B74 +:1045500008D18022064B52021B689B186360054BF2 +:104560001B68236007F0ACF8A06010BDDC61FF1F82 +:10457000C8F00040CCF0004070B5184A936A916AC8 +:104580009942FBD116498A689A421FD39A1A8B60C6 +:10459000144B0126186893B2D202D20E4343424311 +:1045A00000204C681B0A1B1912029B180E4C0A684B +:1045B0004B60551CA3420CD8002801D04B600A6008 +:1045C0000A4A136008680A4B186070BD581E821AA8 +:1045D000DDE7084A30009B182A00EAE700F00040B7 +:1045E000DC61FF1F140AFF1F40420F00C8F00040AB +:1045F000CCF00040C0BDF0FF70B51F4C23793F2BBD +:1046000001D93F2323711D4B22791A701878C0B24B +:1046100007F0FEF818231A491A4A0B801A4913802A +:104620000B805380A379194980200B800C21938043 +:1046300001334B43164D191C0001834200D9011C64 +:104640002980D1806379002B11D101336371237AE2 +:10465000012B01D8022323726279237A0D48534338 +:104660000A21584307F0C4FA0B4D286070BDA02BF7 +:10467000EDD9A023EAE7C046D061FF1F480AFF1F1B +:104680000E42FF1FDC43FF1F0C42FF1F0A42FF1FA9 +:104690000842FF1F71020000C061FF1FF8B515211D +:1046A0000020FEF79BFE114C011E114D09D10C227A +:1046B000104BC1CBC1C4280007F08AF8FFF79CFF5C +:1046C000F8BD0C2220000C49FEF75CFE0C2802D03D +:1046D000084B43CB43C40C2228000849FEF752FE86 +:1046E0000C28EBD00C220021E5E7C046D061FF1F6B +:1046F0009C61FF1F5CBD0011FC0C0000F50C00006C +:10470000F0B51D4C8022A544040088206946520162 +:10471000400507F015F9902212016A4413002000A9 +:1047200032C832C316C816C38023144C144FA6686F +:104730009B033343A3603B6007F082F88823A068A3 +:104740005B05C01807F05CFA002588232900802249 +:10475000A0685B05C01840196944520007F010F8C2 +:1047600080230135FF355B019D42EED1A6603E609E +:10477000044B9D44F0BDC046FCEFFFFF4C43FF1FC0 +:104780009808FF1F04100000F0B5040087B000284F +:1047900025D0684606F03CFF1B4C022806D10622B5 +:1047A0006946200007F024F8002816D06946002347 +:1047B00001250F262F00E25C0133100910308740DD +:1047C00038002F00324097403A0002434A610439D2 +:1047D000062BEFD16846FFF793FF07B0F0BD182214 +:1047E00069460A4807F0ACF86A46A300D35801337B +:1047F00005D01822FF21684606F0EAFFEAE70134F7 +:10480000062CF1D1E9E7C0466509FF1F0009001138 +:10481000F0B5002504000E0085B0AA4200D186E064 +:104820004B1C087801934B78897837790902194332 +:10483000F3783F061B040B431F43039720706570FA +:10484000252800D196E033D8112813D807F0C8F8EE +:1048500069002501250125012501AA00B800B10044 +:104860002501250125012501250125012501250118 +:1048700005011F01232800D1DEE0DB2800D02EE156 +:10488000042A00D8ACE01025052A05D0551F2A00BF +:104890003800711D07F014F805223100200007F0E0 +:1048A0000FF82A003900601D07F00AF805353EE0D0 +:1048B000562859D010D8332800D19DE0552839D03A +:1048C0002628DAD19C4B2900132218001D0006F07F +:1048D0007FFFFEF795FB5CE0712800D177E072283E +:1048E00000D180E0602800D18BE0DC28C5D1022A0D +:1048F00000D875E07378BFB26370B378A370032AF1 +:1049000005D0033A390092B2F01CFEF775FC102274 +:104910003900E01CFEF736FDC51C002807DA607080 +:104920005CE00C222000854906F0CAFF0C25280017 +:1049300005B0F0BD013A824D0C2A13D8002A0AD0E6 +:104940002800019906F0BCFFFFF756FE0C22280054 +:104950007C49FEF751FC29000C22601C06F0B0FFD8 +:104960000D25E4E70C22EBE7754D774B2A0043CB8E +:1049700043C2E9E7013A704D0C2A11D8002A08D049 +:104980000199280006F09CFF0C2228006F49FEF7D1 +:1049900033FC29001322601C06F092FF1425C6E7A1 +:1049A0000C22EDE705226A49601C06F089FF062506 +:1049B000BDE712226749601C06F082FF1325B6E7A7 +:1049C00008226549601C06F07BFF0925AFE7717876 +:1049D000F02905D8614B188801F090FD0225A6E763 +:1049E000FF236370FAE75E4B012A03D072789A7056 +:1049F0006270F3E79B78F4E72000FFF7E1FA050027 +:104A000095E7013A564B574D062A10D8002A10D088 +:104A1000012128005970019906F052FF01F044F875 +:104A200029000622601C06F04BFF07257FE70622BF +:104A3000EEE700225A70F3E7042A04D94A4D2F60AA +:104A400006F03EFEA860FFF797FD0422039003A93D +:104A5000601C06F035FF052569E7444D062ADFD9BD +:104A600006222800019906F0C3FE0028D8D00622AD +:104A70000199280006F024FF06223D492800FEF790 +:104A8000BBFB0123364A91780B439370C8E7012A98 +:104A9000A6D07078FFF778FEA0E7012800D0ECE6FA +:104AA000931E344F132B04D87378002B09D100F0D8 +:104AB00015F9314B39001D78601C6A1E06F000FFA5 +:104AC00035E7551E2A000199380006F0F9FE2B49FA +:104AD000AAB23800FEF790FB00F038F9E9E7DA28CF +:104AE0001DD1042A00D87BE7082A15D9B379727939 +:104AF0001B021343F27912041A43337A1B06134341 +:104B00003B603B68052231002000039306F0D8FE8D +:104B10000422601D03A956E7FE236370F1E7DE2837 +:104B200000D05DE7511E012A01D10025FFE6019862 +:104B300000F0A0FFF9E7C0469C61FF1F68BD0011AF +:104B4000D061FF1FFC0C00005CBD0011F50C0000E3 +:104B5000A861FF1F8861FF1F5043FF1F1042FF1F06 +:104B6000CC61FF1FAD42FF1FDC61FF1F6509FF1F06 +:104B7000ADAC0000CD63FF1FCB63FF1FAEDE0000B6 +:104B800070477047020010B5094B0A32094C92B2C7 +:104B9000DA815A8298811882207802F015FB04226B +:104BA000054B012120781A7006F06AFD10BDC04641 +:104BB000DA42FF1F1664FF1F1564FF1F013870B52E +:104BC000042809D806F0ACFE030928081200234B7C +:104BD0000221187806F054FD70BD204B082118788A +:104BE00006F0DEFD00221E4B1A72F5E7802200243B +:104BF0001B4B1A4D52001A8108211A682878DC7262 +:104C000006F04EFE2100287806F06AFE012000F032 +:104C100069FE00F049FFDFE7104B0821187806F025 +:104C2000BFFD1048FFF76AF80F4B104A9B79002030 +:104C300093800F4A13808022094B5200D8721A8148 +:104C400000F050FE00F030FF0A4B9B78002BC3D0E1 +:104C5000094A136006F064FDBEE7C046EC61FF1F21 +:104C6000C061FF1F1942FF1FD061FF1FDC43FF1F00 +:104C70000A42FF1FCC61FF1F34F0004010B501292C +:104C80000BD1082809D1054B1B78002B05D0262213 +:104C9000034B04485A72FFF775FF10BDEE63FF1F08 +:104CA000C061FF1FC40900000300F0B50A4D8E1853 +:104CB000B14202D152008018F0BD0C782F6824094F +:104CC0003C5D0F271C700C7801313C402F683C5D27 +:104CD0005C700233ECE7C0460442FF1F0D22124B0A +:104CE00010B51A700C23114C11492370093A033B7B +:104CF0001048637006F0E4FD2D2301220E490F4891 +:104D0000A371FFF7D1FF01220D49FFF7CDFF01226B +:104D10000C49FFF7C9FF030000200B49020018707F +:104D2000FEF76AFA10BDC046EA63FF1FCB63FF1FA0 +:104D30001BBD0011CD63FF1F6709FF1FD263FF1F5B +:104D40006609FF1F6509FF1FAEDE000070B5124C3B +:104D5000142220001149FEF715FB431E104D132BA2 +:104D600017D8AB78002B14D0431C2B7009236B7021 +:104D7000002300190370287829000130C0B206F022 +:104D800067FD297822000139C9B2002005F0CAFD6B +:104D900070BDFFF7A3FFEEE7CD63FF1FAEDE00009F +:104DA000CB63FF1F10B5114B1A781870002A0ED074 +:104DB00000280BD10E4B1A78062A07D85423D3406B +:104DC000DB0703D50B4B187802F0FEF910BD002865 +:104DD000FCD0074B1B78012B02D0033B022BF5D8EC +:104DE000044B0121187806F04BFCEFE7EE63FF1F40 +:104DF0001564FF1F1664FF1F70B5514E514A52498A +:104E00003070082005F01AFC0121022005F020FB7B +:104E1000022005F001FC0121002005F019FB002013 +:104E200005F0FAFB00F0AAFEFEF7EAF806F0B8FD7E +:104E3000032246494648FFF737FF2D24030004228A +:104E40001C7044490130FFF72FFF30230470424D9E +:104E5000424C437083702E3B062220004049EB8772 +:104E6000FEF790FA062813D0200006F0D1FB0228A6 +:104E700009D00321200006F01BFC8D23E3706E3B5C +:104E8000237119336371062220003549FEF7B4F906 +:104E9000344B1B68FC335C64FFF758FF0020FFF7BE +:104EA00081FF314C314A0121314B1278207802F0D8 +:104EB0004DF9304A304B12780021207802F046F943 +:104EC00001222E4B1A702E4BDB78552B31D12D4BF6 +:104ED0003B325A722C4B2D4AAB81EA812B826A827B +:104EE0002021307806F06CFC0120404205F066FD80 +:104EF0000120404205F002FEFFF712F9FEF7C6FE60 +:104F000000F0A4FC01204042FEF79CFF012006F0C7 +:104F10008FFEF02001F0D6FA0121307806F0B0FBC8 +:104F2000307802F0ADFA1A4806F01AFDFEF7C2FD1D +:104F300070BD6422174B5B7953431A000A32CBE7EA +:104F4000EC61FF1F814B00117D4C00115043FF1F8E +:104F50008861FF1FA861FF1FDA42FF1F6509FF1F5D +:104F6000ADAC00004064FF1F1664FF1F3842FF1FF6 +:104F70001942FF1FEA63FF1FCB63FF1FBC63FF1FC4 +:104F8000CC61FF1FC061FF1FC4090000CE090000F3 +:104F9000EE61FF1FD061FF1FF8B50A0020230D004E +:104FA0001A40194257D0574B1B78002B50D0FFF7AF +:104FB000E3FA554B554C564E99686268737A8A1AD3 +:104FC000DB039A4202D36160FEF774FD327A217AE4 +:104FD000531EDBB2994205D1FFF75AF9002000F0C9 +:104FE00099FD0FE09142F9D300232372FFF77AF97C +:104FF000012000F08FFD474F3800FEF77FFE39009B +:1050000006F0FEFC637A002B1FD0013BDBB263721B +:10501000002B1AD1404BDB78552B01D106F080FBD9 +:10502000E37A002B0CD000233C4A3A4FE3721388FA +:10503000380001331380FEF761FE390006F0E0FC12 +:10504000642370795843FFF79DFD237A013323725F +:1050500020206840F8BD0BB2002B0ADA304B1878DC +:1050600006F0CEFA002801D006F07AFB802000027C +:10507000EFE70224214206D0244B01201A72FFF7E9 +:1050800091FE2000E5E70B071ED5FFF775FA1E4BD2 +:105090001E491F4C98684A68637A821ADB039A4259 +:1050A00002D34860FEF706FDFFF71CF9FFF7F0F8A2 +:1050B000012000F02FFD00F0E3FB2368DB0701D5A2 +:1050C000FEF7B8FF0820C4E71024214206D00D4B9C +:1050D0001B78002BD5D1FEF7EDFDD2E7012421424C +:1050E00007D0104800F06CF806F0F2FA00F0F8FC77 +:1050F000C7E70424080020402142ABD0FEF7BEFEE3 +:10510000BFE7C046EE63FF1FDC61FF1FC061FF1FEA +:10511000D061FF1F1942FF1FCC61FF1FB461FF1F49 +:10512000EC61FF1FFC41FF1FF0B51B4B1B4F1B88A1 +:105130003A8804001A4E1B4D85B09A420DD8328829 +:105140009A420AD3184B1A882B889A4205D1174ADB +:10515000174B12881B889A421BD0052001F008FAD1 +:105160003B8802AA13803388019053802B88114D0D +:1051700093800F4B02A91B88D3800F4B2A78188885 +:1051800002F024FF0D4B08212878019A1C7006F0CC +:10519000AFFB05B0F0BDC046BA63FF1F0E42FF1F54 +:1051A0000C42FF1F0A42FF1FB863FF1FB663FF1FB9 +:1051B0000842FF1F1664FF1F1042FF1FB463FF1F4A +:1051C00013B50C4B1C78002C11D1002801D00A4BD0 +:1051D00018600A4A0A4B11780A4A10780A4A019262 +:1051E0000A4A0092002205F095FA200016BD11240B +:1051F000FBE7C0461564FF1FB063FF1F1464FF1F69 +:105200000464FF1F1664FF1FF063FF1FF463FF1F9A +:1052100010B5064B12201B78052B06D1044B132228 +:105220001988044B187801F07FFB10BD1564FF1F2F +:105230001042FF1F1664FF1F10B500240122114BFE +:1052400052421870104B1C70104B1A8002F018F963 +:1052500004220F4B21001A700E480C3206F0B0FCED +:10526000102221000C4806F0ABFC07220B4B1C60FF +:105270000B4B1C700B4B1C700B4B1A700B4B1C70A8 +:1052800010BDC0461664FF1F1564FF1F1042FF1FAC +:105290001464FF1F0464FF1FF463FF1FF063FF1F0C +:1052A000CA63FF1FC963FF1F1242FF1FC863FF1FAE +:1052B000F8B5174C0600257806A814240078052DAB +:1052C00023D1B41F134FA5B21824BD421DD88D1F82 +:1052D000ADB2BD4219D8FA256D00AA4215D21D0003 +:1052E0000D4F0A3DADB2BD420FD80C4C26800C4C80 +:1052F00021800C4900240A800B4A1380FFF714FF19 +:105300000A4B0421187806F04BFA2000F8BDC0467D +:105310001564FF1F790C0000750C00000E42FF1F82 +:105320000C42FF1F0A42FF1F0842FF1F1664FF1FA7 +:10533000F0B50BB20D0089B0002B00DB70E1A44E7C +:10534000307806F05DF9041E50D00378A22B00D10E +:1053500022E1D02B1AD0912B45D143780E2B42D18C +:105360009C4B82889A423ED19B4A83681278052AD8 +:1053700039D1032018567F2835D0984B1B68002B55 +:1053800031D05B68002B2ED098472CE0807807281E +:1053900029D806F0C5FA0428183F3F74A8D86378C6 +:1053A000002B0CD101218C4B19708D4B1A78002ADF +:1053B0005BD08C4B307801F0C9FE002855D0072215 +:1053C000854B1A7051E061780029F8D1E378002B01 +:1053D00011D0854A854B1278307801F0B7FE6070A5 +:1053E0006378002BEBD1200006F0BAF98020000290 +:1053F000684009B0F0BD784B1B78022BF3D0012137 +:10540000307806F085F90028EAD10121307806F0DD +:1054100037F9E5E76378002BD1D16F4F032807D127 +:105420003B78052B02D101333B701EE00223FBE7E2 +:105430006F4B1A886F4B0293002A0BD01B78002BFE +:1054400003D00121307806F053FA3B78062B04D1C3 +:10545000013BE9E7029B1A70F7E7042B41D10121D8 +:10546000029B3078197006F00BF95C4B1B68002B1F +:10547000B9D01B68002BB6D0574A107884E7637800 +:10548000554F002B27D10622211D5B4806F018FA44 +:1054900062895A4B5A491A80A2895A4B1A80E38969 +:1054A0000B800521397058490A80584A1380228A96 +:1054B000574B1A80574B1B78012B09D11F2001F045 +:1054C00057F8FA22920042430421307806F010FA8D +:1054D0000022484B75E7312B00D070E70022454B86 +:1054E0001A700323A0E706220021434806F068FB58 +:1054F0000023454A04211380444A30781380444AEB +:10550000138006F04DF90821307806F049F9A379A7 +:10551000083B5A425341304A03331370304B1B78D7 +:10552000002B06D0334B30781A78002A06D001F0D1 +:105530004BFE0122314B52421A8096E7012119702D +:1055400006F09EF8F5E70821307806F029F963782F +:10555000002B00D047E72C4B2D4F0293E388029A93 +:1055600004211380294B307803932389039A1380F5 +:1055700063893B8006F0CCF8002800D033E7264B47 +:105580001B68002B00D12EE7039902983A880988FE +:1055900000881B68984726E74379132B00D022E741 +:1055A0000389012B0AD11D4B1B78022B06D1082140 +:1055B000307806F0F5F8FFF72BFE14E7052000F031 +:1055C000D7FF08210200307806F092F90BE7C046B9 +:1055D0001664FF1F051400001564FF1FB063FF1F52 +:1055E0003842FF1F1942FF1FEA63FF1FCB63FF1FF3 +:1055F000EC63FF1FEE63FF1FBD63FF1F1042FF1F21 +:10560000C463FF1FC663FF1FBA63FF1FB863FF1F9A +:10561000B663FF1FBC63FF1FAC63FF1FB463FF1FB4 +:105620008020C001014200D0E2E6CB0731D5324BE9 +:105630001B78002B1DD0314E05AC3378052B1AD1C9 +:10564000023B23702E4B21001B7823722D4B1B78BD +:1056500063722D4B187801F01DFD002809D007203A +:105660002A4B30701B68002B03D01B68002B00D026 +:1056700098470120BCE60E20254B06221B782549C1 +:105680002370254B1B78637002ABC01806F018F925 +:10569000D8E7022308001840194209D0174B1B789D +:1056A000052B03D11D4B188805F0E2FF02209FE671 +:1056B0000424214203D0FFF737FD200098E6082399 +:1056C00008001840194200D193E6154B1C78012CB4 +:1056D00003D0022C0DD008208AE6124B124A13493F +:1056E00013481B881288098800880094FFF7E0FDA2 +:1056F000F1E7FFF78DFDEEE7EE63FF1F1564FF1F77 +:105700001242FF1FC863FF1F1664FF1FB063FF1F15 +:10571000CA63FF1F1342FF1FC963FF1F1042FF1F11 +:10572000B463FF1F0842FF1F0A42FF1F0C42FF1F06 +:105730000E42FF1F10B502A804880B20002C10D1C8 +:10574000496808784978090201430C48814209D127 +:10575000022119800A4B59881170DB7800205BB256 +:10576000537010BD074C0A20A142FAD102211980C2 +:10577000034B998811705B79F0E7C0466E2A0000F0 +:10578000B461FF1F6F2A0000F7B5150008AA16883C +:105790004A680F4F14785278120222430A24BA4200 +:1057A00014D10122DBB2019200962A0005F0B8FE66 +:1057B000041E0BD1074B1B68002B07D068782A7892 +:1057C0000002104342425041013098472000FEBD84 +:1057D000022900002864FF1F30B501250379040069 +:1057E000BFB02B4225D01449408805F005FA284265 +:1057F0000CD0124B01A95B8D00220B8002234B8041 +:105800000F4B5B888B80608802F0D6FA0D49608868 +:1058100005F0F2F9C0070CD50B4B01A91B8800223B +:105820000B8002234B80064B9B888B80608802F0A4 +:10583000C3FA3FB030BDC0462064FF1F3C42FF1F8B +:10584000B461FF1F1864FF1F9642FF1F10B5074C7D +:105850000749200005F086F92000064905F082F985 +:105860000721054A054805F03FF910BDFFFF00007C +:105870002064FF1F1864FF1F88BD00113C42FF1FFA +:1058800010B5024803F01AF910BDC046D9570011EF +:1058900070B55F25082607498400CA788B784001D7 +:1058A0002A40B3433440A843234302438B70CA7059 +:1058B00070BDC046AD42FF1F010043B204205A0034 +:1058C00002409B000C3003401A43152310B5044CD2 +:1058D000E0789843143B0B4018430243E27010BD3C +:1058E000AD42FF1F10B5054B082419790A00A243E9 +:1058F000002801D022000A431A7110BDAD42FF1FDB +:1059000010B5054B4024D9780A00A243002801D0E5 +:1059100022000A43DA7010BDAD42FF1F0821F8B51E +:10592000324D334BAE7804000E40AE70984204DD29 +:1059300067232B70473B6B70F8BD2E4B984203DA00 +:10594000E0232B703A3BF6E700232B706B7083B299 +:105950001A0029485F3292B2284F82422CD9002C7B +:1059600003DA5B421CB204232B70053420B20A21F7 +:1059700006F03EF904B2FA239B009C4232DB082376 +:105980002A7813432B706421200006F031F90A2194 +:1059900000B205F075FF09B22A787B5C13432B70C7 +:1059A0000A21200006F024F90A2100B205F068FF60 +:1059B00009B27B5C6A780AE06970002CDBDA5B4232 +:1059C0001CB204232B70F3226B78092CE8DC134300 +:1059D0006B700A21200005F053FF09B27B5C1E4367 +:1059E000AE70A9E7632CCEDCEDE7C046AD42FF1FE9 +:1059F0001B4E00001DFCFFFF2A080000B2BD001175 +:105A00000823F7B5194FCD003E7904001E403E71C2 +:105A1000EDB2632806DD5F3333433B7120231D4322 +:105A20007D71F7BD0300093305DA20235B42334360 +:105A30003B71A623F3E70E4B019300280BDA0423F6 +:105A4000444224B23B710A21200005F019FF019B5A +:105A500009B25B5CE3E70928F5DD0A2106F0C8F826 +:105A6000019B00B21B5C1E433E71ECE7AD42FF1F81 +:105A7000B2BD0011F8B50A4F05003B780E00002BAF +:105A80000CD0084C2000FEF741FC33002A00200017 +:105A90003978FEF72FFD2000FEF776FCF8BDC046F2 +:105AA0003364FF1FB442FF1F70B50A4E0A4D062231 +:105AB0003100280005F09CFE002809D0074C310079 +:105AC0000622280005F0FCFE07212000FFF7D2FF88 +:105AD00070BDC046AD42FF1F2D64FF1F2C64FF1F29 +:105AE000E622402110B50A4B1A70403A5A703E32F5 +:105AF0009A70DA780A40DA70082219791140053A6A +:105B00000A431A71D6225A71FFF7CEFF10BDC04664 +:105B1000AD42FF1F10B500282AD0164C0A210223DF +:105B2000E05E06F065F800B2FFF7F8FE0423E05EE1 +:105B3000642106F05DF8012100B2FFF761FF237ACE +:105B40000024132220009A426041C0B2FFF7D8FE21 +:105B50000320FFF79DFE2000FFF7AEFE064B1878EE +:105B6000053843425841C0B2FFF7BCFEFFF79CFF27 +:105B700010BDC046B461FF1F1564FF1F70B500253E +:105B80000A4C2000A571FEF7C1FB10233E21200026 +:105B9000074AFEF7AFFCA84200D13E35054B200076 +:105BA0001D70FEF7F1FB0123A37170BDB442FF1F0E +:105BB000A2BD00113364FF1F0200F0B501270A489F :105BC0000A4E51188B1A002B00DCF0BD0824157802 :105BD0004308684038404000805B013C58406D08F5 -:105BE000002CF5D10132EDE7FFFF0000C8BD001128 +:105BE000002CF5D10132EDE7FFFF0000C2BD00112E :105BF000F0B500250F269D4200DBF0BD4C5D070986 :105C000044403440A400A05801357840F3E7000038 :105C1000F0B589B06A460D000B000F271100103552 :105C20001C780133260024093E401670547002325D :105C3000AB42F5D12023024AFFF7DAFF09B0F0BDED -:105C4000CCBD0011F0B54E780B7889B036020C004F +:105C4000C8BD0011F0B54E780B7889B036020C0053 :105C5000170001901E43012A61D9954B9E4200D83E :105C600077E001339E421CD1062A17D1CA788B787F :105C700012021A430B791B0413434A7912061A4382 @@ -719,11 +719,11 @@ :105CD000E279A07912020243207A00041043627A2A :105CE00012060243CA60E27AA07A120202437648A0 :105CF0004A81834208D804236E49142201980B700C -:105D000005F0F6FE1420C7E71201D21889235B05BF +:105D000005F0DEFD1420C7E71201D21889235B05D8 :105D10009A42F0D801238B70BDE7022AFAD00523FE -:105D2000EAE76A4A01239642E6D1FFF761FA052FB6 +:105D2000EAE76A4A01239642E6D1FFF771FA052FA6 :105D30000CD9E378A2781B021343227912041A4388 -:105D400063791B061343624A0393136005F048FF0F +:105D400063791B061343624A0393136005F0E8FC72 :105D5000A1E7584D2B78002B9DD1AB78002B00D1BB :105D6000A0E02B8901339BB20093B34200D091E0B5 :105D7000132AD4D9CF7C8B7C3F02122120001F43F1 @@ -734,21 +734,21 @@ :105DC0001B0212041343A27B13431B0901336B8193 :105DD00000226B89002B8ED0002A67D168683701BA :105DE0003818000B6B6900030390984205D968616D -:105DF00005F026FDEB780133EB7068681022A11CDA -:105E0000381805F0F5FE2E8145E76F89009A7B1E54 +:105DF00005F006FFEB780133EB7068681022A11CF8 +:105E0000381805F0BDFC2E8145E76F89009A7B1E8E :105E10009BB293423AD1E278A37812021A432379D3 :105E200005A81B04134362796C6812061A43EB68D9 -:105E300000920392211D0C22049305F059FE0120CB +:105E300000920392211D0C22049305F041FD0120E4 :105E4000260004A940421036FFF7E2FE013F012F71 :105E500017D1009A0B232861824200D04CE704221C -:105E60001C49200005F0C4FE042203A9686805F05F -:105E7000C7FEE968039AFF23914200D13CE7F73B54 +:105E60001C49200005F08CFC042203A9686805F099 +:105E700067FDE968039AFF23914200D13CE7F73BB5 :105E80003AE73100FFF7C4FE1036DFE70923B742D7 :105E9000A4D831E7009BB34200D9FCE607232BE7E7 :105EA000022329E7032327E7062325E70A2323E71D -:105EB000FFFE0000C442FF1F00000111FFFF0000B1 +:105EB000FFFE0000BC42FF1F00000111FFFF0000B9 :105EC0005048593601FF0000FFFF001102FF00009B -:105ED00034F00040D042FF1F10B5034C0B000122EC +:105ED00034F00040C842FF1F10B5034C0B000122F4 :105EE000210000F06BFA10BD996000110B8870B5AD :105EF00006000D000224162B11D92B00032209499C :105F000000F05CFA041E0AD1074B2A881B88191C72 @@ -785,48 +785,48 @@ :1060F0007047F8B50D004B7801240021461C037051 :106100002B788B4201D82000F8BD6B78B01C4F1C57 :10611000012B10D1890069184B88022233704B88FB -:10612000B9001B0A7370691805F0BAFC0436043410 +:10612000B9001B0A7370691805F04AFC0436043480 :10613000A4B2F9B2E4E7122359436B185A88043128 -:1061400032705B8810221B0A7370691805F0A8FC76 +:1061400032705B8810221B0A7370691805F038FCE6 :1061500012361234ECE770B5049D14001E00052BB6 :1061600001D8042070BD637812781B0213432B8082 :10617000E378A2781B02134302226B802A71211D4F -:10618000681D063E05F08CFCB2B22A81E92AE8D8E7 -:106190002800A11D0A3005F083FC0020E2E700235F +:10618000681D063E05F01CFCB2B22A81E92AE8D857 +:106190002800A11D0A3005F013FC0020E2E70023CF :1061A00010B50A789A4201D8900010BD9A008A185A :1061B0005488013304705488DBB2240A44709488F4 :1061C00084709288120AC2700430EAE710B5110098 :1061D000029C062B04D004201022142B01D010BDE9 :1061E000022222714B7808781B0203432380CB786C -:1061F00088781B02034363800431601D05F050FC66 +:1061F00088781B02034363800431601D05F0E0FBD7 :106200000020ECE710B50C788B7804315C43E4B2E5 -:1062100003702200013005F043FC601C10BD042017 +:1062100003702200013005F0D3FB601C10BD042088 :10622000022B06D10020537811781B02009A0B43F1 -:106230001380704710B50C000A88023105F030FC5D +:106230001380704710B50C000A88023105F0C0FBCE :10624000208810BD70B504000D0004981100012BCA :1062500001D8042070BD16785278120232430280B1 :106260000200F13255701470E125002C00D10C357C :10627000023B9AB24280AA42EBD80231043005F0C8 -:106280000FFC0020E6E70420009983420AD15378EE +:106280009FFB0020E6E70420009983420AD153785F :1062900010781B0203430B80D37890781B020343D2 :1062A00000204B80704710B50C000A88023105F0C1 -:1062B000F7FB208810BD000070B501211E000420EE +:1062B00087FB208810BD000070B501211E0004205E :1062C000049C0E400B4218D1CB40DDB28D4214D954 :1062D0000A49DBB2098899420FD32300EE331D70BF :1062E0003300580011184978165C09023143013314 -:1062F0002152D9B28D42F4D8002070BDDC42FF1F7C -:1063000010B50C000A88023105F0CAFB208810BDC8 +:1062F0002152D9B28D42F4D8002070BDD442FF1F84 +:1063000010B50C000A88023105F05AFB208810BD38 :1063100010B50C788B7804315C43E4B20370220032 -:10632000013005F0BDFB601C10BD10B511000298D6 +:10632000013005F04DFB601C10BD10B51100029846 :10633000032B01D8042010BD14785278043B1202BC :1063400022430280CA788C781202224342809AB299 -:106350008280EB2AEED80431063005F0A1FB002044 +:106350008280EB2AEED80431063005F031FB0020B4 :10636000E9E710B50C000B8803700B881B0A43701B :106370004B8883704B881B0AC3708A8804300631AF -:1063800005F08EFBA088043080B210BD0420012BE4 +:1063800005F01EFBA088043080B210BD0420012B54 :1063900003D100201378009A1370704710B50C00D9 :1063A0000B8803700B881B0A43704A880230043143 -:1063B00005F076FB6088023080B210BDF0B589B080 +:1063B00005F006FB6088023080B210BDF0B589B0F0 :1063C00003931E4B029242000700D05A019102F043 :1063D00020F81325061E2DD0029B01240370019B7B :1063E000002B04D0001903999847001984B26B461A @@ -834,69 +834,69 @@ :106400001925002813D130003219E1B202F066FCE0 :10641000051E0CD10C34A4B2042304AA380005A92B :1064200093800696948101F0AFFD051E02D03000E6 -:1064300005F0AEFB280009B0F0BDC0465864FF1F50 +:1064300005F0FEF9280009B0F0BDC0465864FF1F02 :1064400070B505000C0000280CD00020814209D056 -:1064500010222000044905F023FB01202B78237330 -:106460006B78637370BDC0460CBE0011F0B50600BA +:1064500010222000044905F0B3FA01202B782373A1 +:106460006B78637370BDC04608BE0011F0B50600BE :106470000D0017001C0085B002291BD00020102938 :1064800007D1022B07D0102B03D115E00020102CD0 :1064900008D005B0F0BD69463800FFF7D1FF2A00EB :1064A00069460BE069463000FFF7CAFF22006946E3 :1064B000380004E0022BE9D12A003900300005F051 -:1064C0005FFBE6E7031CF02800D9F023032008490E +:1064C000AFF9E6E7031CF02800D9F02303200849C0 :1064D0009AB2013A0B80D317034006499B189B10D0 :1064E0000B80D30F04499B185B100B807047C0468C -:1064F000E042FF1FDE42FF1FDC42FF1F034B1B88F1 -:106500008B4202D3024B4000C1527047E042FF1F52 +:1064F000D842FF1FD642FF1FD442FF1F034B1B8809 +:106500008B4202D3024B4000C1527047D842FF1F5A :106510005864FF1F014B4000185A70475864FF1F12 :106520001722014B1A8070475864FF1F70B5050091 -:106530000E2005F01DFA041E13D0D0230370002393 -:106540000622837007494570033005F0A9FA064B0F +:106530000E2005F015FB041E13D0D023037000239A +:106540000622837007494570033005F039FA064B7F :106550002100DA8A62811B7E2373044B187805F0D0 -:10656000C7F870BD7464FF1F6464FF1F3043FF1FD2 +:106560001FFB70BD7464FF1F6464FF1F2843FF1F7F :10657000262803D8024B4000C05A70470148FCE768 -:10658000E242FF1FFFFF000070B506000C00094D3E -:106590001C220021280005F03BF9074B1E70074B19 -:1065A0001C7005F02DFA0123002801D000231220D1 -:1065B0002B7070BD6464FF1F3043FF1F8564FF1F95 +:10658000DA42FF1FFFFF000070B506000C00094D46 +:106590001C220021280005F013FB074B1E70074B3F +:1065A0001C7005F08DFA0123002801D00023122071 +:1065B0002B7070BD6464FF1F2843FF1F8564FF1F9D :1065C00070B505000D4C0800E260A16010220021AA -:1065D000656005F03DF8012803D11021A06802F0A4 -:1065E00058FD10220021280005F032F8012803D1BF +:1065D000656005F0D5FA012803D11021A06802F00A +:1065E00058FD10220021280005F0CAFA012803D125 :1065F0001021606802F04DFD70BDC0466464FF1F4D :1066000070B5041E05D1002903D006220D4805F0FF -:1066100047FA0D4B1D78012D11D1002C05D1022216 -:106620001A7005F05DFA280070BD00221A70074B41 +:10661000D7F90D4B1D78012D11D1002C05D1022287 +:106620001A7005F0D5FA280070BD00221A70074BC9 :106630001B78FF2BF7D02000FFF778FFF3E700254A -:10664000F1E7C0467464FF1F6464FF1F3043FF1FFF +:10664000F1E7C0467464FF1F6464FF1F2843FF1F07 :10665000030010B5002801D1002010BD00780B4ABE :10666000002803D15988D1821B7913761378022B25 :10667000F2D10023984200D103331370044B1B78EE :10668000FF2B01D0FFF752FF0120E6E76464FF1FF4 -:106690003043FF1F002911D000280CD04B7901286E +:106690002843FF1F002911D000280CD04B79012876 :1066A00003D140225242134303E03F221340032808 :1066B00002D001204B7170474022F4E70800FAE74E :1066C00070B5094D0100287800280BD0074C062230 -:1066D000200005F0E5F921002878FFF7DBFF200016 -:1066E00005F00EF870BDC0468464FF1F5E64FF1F96 +:1066D000200005F075F921002878FFF7DBFF200086 +:1066E00005F016FA70BDC0468464FF1F5E64FF1F8C :1066F00000290AD0012808D13F224B799343C02BAF :1067000003D0403B5A425341981C704770B5174D17 -:1067100006002B78FF2B15D00A2005F029F9041E5E +:1067100006002B78FF2B15D00A2005F021FA041E65 :1067200010D0D0230370C83B8370114B11491B78E4 -:106730004670C3700622043005F0B2F921002878B3 -:1067400004F0D6FF0C4B1B78012B0DD10B4B1B68B3 +:106730004670C3700622043005F042F92100287823 +:1067400005F02EFA0C4B1B78012B0DD10B4B1B685F :10675000002B03D09B68002B00D09847084B0421E6 -:106760001878084A05F044F870BDC0463043FF1F52 +:106760001878084A05F09CF870BDC0462843FF1F02 :106770008464FF1F5E64FF1F8064FF1FAC64FF1F03 :10678000B064FF1F60EA0000014B98687047C04684 :106790006464FF1F014BDB68186870476464FF1F67 :1067A000074B10B5DA68136801331360054B18788E -:1067B000FF2803D08021C90105F04AF910BDC04669 -:1067C0006464FF1F3043FF1FF7B50E0002F0C8F8E6 +:1067B000FF2803D08021C90104F062FF10BDC0464C +:1067C0006464FF1F2843FF1FF7B50E0002F0C8F8EE :1067D000051E1CD00E4B06621F78002F00D10778D3 -:1067E000AB791020019305F0C3F8041E0FD0D0231D +:1067E000AB791020019305F0BBF9041E0FD0D02324 :1067F0000380C73B8370019BE91DC37006220430F0 -:1068000005F04EF921003800E66004F071FFF7BD95 -:106810002E43FF1F014B18787047C0468464FF1F4A +:1068000005F0DEF821003800E66005F0C9F9F7BDB3 +:106810002643FF1F014B18787047C0468464FF1F52 :10682000054B002805D1054B1A78054B002A00D1ED :10683000014B18007047C0467464FF1F8464FF1F3B :106840005E64FF1F014B58687047C0466464FF1FB9 @@ -909,10 +909,10 @@ :1068B00007D0013D019A0399EBB233708A4202D1AD :1068C000E01905B0F0BDDB19DBB2DBE710B50C0059 :1068D00002F09EF803001220002B03D021005888FC -:1068E00004F02EFF10BD000070B50E4D84006359FA -:1068F000002B15D0186A002801D004F009FF2B598D -:10690000586A002801D004F003FF2B59986A002828 -:1069100001D004F0FDFE285904F0FAFE00232B51AB +:1068E00004F0A6FE10BD000070B50E4D8400635983 +:1068F000002B15D0186A002801D004F039FF2B595D +:10690000586A002801D004F033FF2B59986A0028F8 +:1069100001D004F02DFF285904F02AFF00232B5149 :1069200070BDC0469464FF1F1C4B70B504000E0080 :10693000150099420AD11A4B1B68002B01D1122075 :1069400070BD1B68002BFAD09847F9E7154B9942A8 @@ -920,33 +920,33 @@ :106960009847002804D1104B1C70104B1D70E7E7AE :1069700029002000FFF7AAFF0028E1D1F3E7080073 :1069800001F0EEFF0028DAD003780320A342D7D12C -:106990002900300004F0D4FED2E7C046FEFF00001C +:106990002900300004F04CFED2E7C046FEFF0000A4 :1069A0009064FF1FFFFF00008D64FF1F8C64FF1FBA :1069B000F7B50400808801F0D3FF0025A84203D07A :1069C0000578A08802F008F81C4E3378002B1FD001 :1069D000AB421DD11A4B28001978FFF777FF00282A :1069E00018D000233370A3790820A778A6880193D4 -:1069F00004F0BEFF011E0DD0D0230370CA3B83708C -:106A0000019B477086808371280004F071FE01E0CD +:1069F00005F0B6F8011E0DD0D0230370CA3B83709A +:106A0000019B477086808371280005F0C9F801E07A :106A1000002DE8D1A0880B4B8200D358002B01D069 :106A2000FFF762FF1721A088FFF768FDA08801F03B :106A300027FDA08801F0FEFDF7BDC0468D64FF1F55 :106A40008C64FF1F9464FF1FF0B587B01D000CAB72 :106A50001B88070001930DAB1B88142002930EAB1B :106A60001B88160003930FAB1B880091049310AB97 -:106A70001B88059304F07CFF041E1AD0D0230370FA +:106A70001B88059305F074F8041E1AD0D023037008 :106A8000CB3B47708370C670062229000430002D6E -:106A900011D005F005F8019B21006381029B00984D -:106AA000A381039BE381049B2382059BA37404F0D1 -:106AB0001FFE07B0F0BD04F0ABFEECE7F7B50093A6 -:106AC00008AB1B8807000C200D001600019304F092 -:106AD0004FFF041E13D0280001F042FF00280FD002 +:106A900011D004F095FF019B21006381029B0098B7 +:106AA000A381039BE381049B2382059BA37405F0D0 +:106AB00077F807B0F0BD05F083F8ECE7F7B5009381 +:106AC00008AB1B8807000C200D001600019305F091 +:106AD00047F8041E13D0280001F042FF00280FD011 :106AE0000078D0232370C93BA370009B2100238131 -:106AF000019B6770A580E680638104F0F9FDF7BD16 -:106B0000014B1878EDE7C0463043FF1F13B5040072 +:106AF000019B6770A580E680638105F051F8F7BDC2 +:106B0000014B1878EDE7C0462843FF1F13B504007A :106B100064890389C2888188C0780094FFF7CEFF1A :106B200013BD000010B5044C2068002803D004F009 -:106B3000EFFD0023236010BD9864FF1FA122F0B574 +:106B30001FFE0023236010BD9864FF1FA122F0B543 :106B4000818892004A43384B384F1B6804009B18D9 :106B50009D2292009B18827989B01A603B68002BB5 :106B60005FD01D78324B1B68002B04D05B68002B74 @@ -957,63 +957,63 @@ :106BB00002920196E27928000092012201F0DAFEA9 :106BC000E0703B68002B20D0FFF7ACFF194D287810 :106BD00000281AD0184B1978FFF778FE002814D037 -:106BE0002B78E67808200793A78804F0C1FE011EE1 +:106BE0002B78E67808200793A78804F0B9FF011EE8 :106BF00009D0D0230370CA3B4670837087808671AA -:106C0000079804F075FD00232B701721A088FFF76B +:106C0000079804F0CDFF00232B701721A088FFF711 :106C100075FCA08801F034FCA08801F00BFD09B0E0 :106C2000F0BD064B9DE7C0463409FF1F9864FF1F67 -:106C3000AC64FF1F8D64FF1F8C64FF1F3043FF1F78 +:106C3000AC64FF1F8D64FF1F8C64FF1F2843FF1F80 :106C4000F8B5070008000E0001F08AFE041E18D0F7 :106C50002620FFF78DFC051E00D12578062004F0C4 -:106C600087FE041E0DD00021062204F0D1FDD023A2 +:106C60007FFF041E0DD00021062204F0A9FFD023CF :106C70002370C23B21006770A370A680E8B204F0C5 -:106C800037FDF8BDF0B585B001930AAB1B7807005E +:106C80008FFFF8BDF0B585B001930AAB1B78070004 :106C900002930BAB1B7808000D000092039301F0E8 -:106CA0005FFE061E22D0102004F062FE041E1DD0DE -:106CB0001022002104F0ACFD2620FFF759FC00282B +:106CA0005FFE061E22D0102004F05AFF041E1DD0E5 +:106CB0001022002104F084FF2620FFF759FC002851 :106CC00000D13078D0232370C13BA370009B2100FA :106CD0002372019B67706372029BA580A372039B62 -:106CE000C0B2E3720C9BE36004F002FD05B0F0BD9E +:106CE000C0B2E3720C9BE36004F05AFF05B0F0BD44 :106CF000F7B50D00019001F033FE071E20D00E20E5 -:106D000004F036FE041E1BD02620FFF731FC061EC1 +:106D000004F02EFF041E1BD02620FFF731FC061EC8 :106D100000D13E78D0232380C53B0622A370F91D05 -:106D2000E01C04F0BDFE019B2A0063810123DD40CD -:106D30001A401D40210022736573F0B204F0D8FCA4 +:106D2000E01C04F04DFE019B2A0063810123DD403D +:106D30001A401D40210022736573F0B204F030FF49 :106D4000F7BD0000F0B585B0029010000D001700EF :106D50000A9E039301F004FE041E31D0029B002B17 :106D60002ED1039B02795B0724D5122313430422FF :106D7000002E08D10B99002905D10C99002902D1C8 :106D80000D9900291AD01A430D9B2271002B00D0B7 :106D9000C9E0002E00D1CFE0002D00D0CCE0606A29 -:106DA000002801D004F0B4FC1C21300004F020FEC7 +:106DA000002801D004F0E4FC1C21300004F078FC41 :106DB000606205E002239A430E33D7E793432371C1 :106DC000654BBA00D458002C00D1AAE0002E10D098 -:106DD000236A002B03D11C2004F0C2FD20625E4B0D +:106DD000236A002B03D11C2004F06AFE20625E4B64 :106DE000BA00D358186A002803D01C22310004F0DE -:106DF00057FE0C9B002B12D0574CBB001D596B6AE1 -:106E0000002B03D1162004F0ABFD6862BB00E358F1 -:106E1000586A002803D016220C9904F041FE0D9BFD +:106DF000E7FD0C9B002B12D0574CBB001D596B6A52 +:106E0000002B03D1162004F053FE6862BB00E35848 +:106E1000586A002803D016220C9904F0D1FD0D9B6E :106E2000002B11D04C4DBC006659B36A002B03D126 -:106E3000142004F095FDB0622B59986A002803D005 -:106E400014220D9904F02CFE380001F089FD051E76 +:106E3000142004F03DFEB0622B59986A002803D05C +:106E400014220D9904F0BCFD380001F089FD051EE7 :106E500067D0414BBA00D358002B62D01A6A342055 :106E6000002A00D11C389A6A002A01D0143080B25E :106E70000B9A002A01D01C3080B25B6A002B01D033 -:106E8000163080B204F074FD041E4AD0182200218E -:106E900004F0BEFC2620FFF76BFB0190002801D117 +:106E8000163080B204F06CFE041E4AD01822002195 +:106E900004F096FE2620FFF76BFB0190002801D13D :106EA0002B780193D0232370029B200063700A2368 :106EB000294EA370039BBD00A371AB59A780196A2B -:106EC0001830002905D01C22A06004F0E9FD200044 +:106EC0001830002905D01C22A06004F079FD2000B4 :106ED00034307359996A002907D0030014221433FF -:106EE000E060029304F0DCFD02980B9B002B08D0BD -:106EF00003001C221C330B992061029304F0D0FD87 +:106EE000E060029304F06CFD02980B9B002B08D02D +:106EF00003001C221C330B992061029304F060FDF7 :106F000002987359596A002903D01622606104F06F -:106F1000C7FD6B462100187904F0EAFB3800FFF743 +:106F100057FD6B462100187904F042FE3800FFF758 :106F2000E3FC05B0F0BD10220D9B0D991B69A01864 -:106F3000236204F0B5FD2CE70B9B002B00D13FE74B -:106F4000012D00D03CE7606A002801D004F0E0FB8E +:106F3000236204F045FD2CE70B9B002B00D13FE7BB +:106F4000012D00D03CE7606A002801D004F010FC5D :106F50001C210B982AE7C0469464FF1F10B5044C0F -:106F60002068002803D004F0D3FB0023236010BD69 +:106F60002068002803D004F003FC0023236010BD38 :106F70008864FF1F0B4B07B51A68002A01D1002057 :106F80000EBD6946531C012012780731FFF772FCD1 :106F90000028F4D002780123100018401A42EED0E5 @@ -1023,70 +1023,70 @@ :106FD000164B05001E78731E9E413B68F6B2191DC4 :106FE000D878FFF757FB3B682900DA7A043303921D :106FF0009A7901930292009033002000059A04F0E0 -:107000003FFD07B0F0BDFFF7B5FF002805D0062013 +:1070000047FB07B0F0BDFFF7B5FF002805D006200D :10701000FFF7AEFA04000720D8E70820FFF7A8FA28 :1070200004000920D2E7C0468864FF1F8464FF1F64 :1070300070B50A4E040033780D00FF2B0DD00420EC -:1070400004F096FC011E08D0D0230370CE3B45709F -:107050008370C470307804F04BFB70BD4043FF1F59 -:1070600070B5040006200D0004F082FC011E0AD059 +:1070400004F08EFD011E08D0D0230370CE3B4570A6 +:107050008370C470307804F0A3FD70BD3843FF1F07 +:1070600070B5040006200D0004F07AFD011E0AD060 :10707000D0230370CD3B8370054B44701B68858023 -:10708000187804F035FB002C01D0FFF767FF70BDC6 +:10708000187804F08DFD002C01D0FFF767FF70BD6C :107090008864FF1FF8B5264F06003B680D001124D9 :1070A000002B05D10522234B1B78134202D1122459 :1070B0002000F8BD204A10241268002AF8D0127867 :1070C000002AF5D0DB0719D52B789A1E012A1AD889 -:1070D0000C2004F045FC132438600028E8D000237D -:1070E0000A22437029000670023004F0D9FCFFF731 +:1070D0000C2004F0EDFC132438600028E8D00023D5 +:1070E0000A22437029000670023004F069FCFFF7A1 :1070F0005BFF041E0AD0FFF731FFD9E700F012FB57 :107100000028E1D1E4E7002BE2D0D0E70B4B1B785D :10711000032BCDD11D20FFF72BFA094B1880002837 -:10712000C6D0084B04211878074A04F061FBBFE77A +:10712000C6D0084B04211878074A04F0B9FBBFE722 :107130008864FF1F8564FF1FA464FF1F8464FF1F12 :107140008264FF1FB064FF1F60EA0000F7B501937F :10715000194B14001A78052306000F0012201A425A :1071600021D0012920D1154B1D68002D1BD00220F4 :107170001F2C18D8002C02D0019B002B13D0104BD1 -:107180001F221E706E1C0021300004F041FB01998B -:107190002200300004F084FC310020002C70002F0D -:1071A00006D004F075FCFEBD064B12201D68DCE71E -:1071B00004F02EFDF7E7C0468564FF1FA464FF1F9F -:1071C0004043FF1FA064FF1FF8B50F4E1224336821 +:107180001F221E706E1C0021300004F019FD0199B1 +:107190002200300004F014FC310020002C70002F7D +:1071A00006D004F025FCFEBD064B12201D68DCE76E +:1071B00004F04EFBF7E7C0468564FF1FA464FF1F81 +:1071C0003843FF1FA064FF1FF8B50F4E1224336829 :1071D000002B17D01B780F3C834213D100250B4F97 -:1071E0000221387804F0ACFC094B042138781D806A -:1071F00004F0A6FC074B28001D8033685C7004F087 -:1072000067FA04002000F8BD8864FF1FB064FF1F08 +:1071E0000221387804F0DCFA094B042138781D803C +:1071F00004F0D6FA074B28001D8033685C7004F059 +:10720000EFFA04002000F8BD8864FF1FB064FF1F80 :107210009C64FF1F8264FF1F70B5012823D11B4CA3 :107220002388002B03D01A4A1578002D07D0194B5C :107230001B68002B02D01878FFF7C6FF70BD3B2BF0 :1072400002D93C3B2380F9E7134E0221307804F049 -:1072500077FCFA222388920002215A43307804F006 -:10726000B7FC2580EAE70B4B1B68002BE6D00B4BE5 -:107270001B785B07E2D5084B0221187804F060FC0C +:10725000A7FAFA222388920002215A43307804F0D8 +:1072600047FB2580EAE70B4B1B68002BE6D00B4B56 +:107270001B785B07E2D5084B0221187804F090FADE :107280000022024B1A80FFF769FED7E79C64FF1FBC :107290008064FF1F8864FF1FB064FF1F8564FF1FA9 -:1072A000F8B51E4D2868002803D004F031FA0023F9 -:1072B0002B601B4E3068002803D004F029FA00230D +:1072A000F8B51E4D2868002803D004F061FA0023C9 +:1072B0002B601B4E3068002803D004F059FA0023DD :1072C0003360184F05243B7818002040234221D01A :1072D000154800F02BFA3B78234213D0202004F00D -:1072E0003FFB2860002813D02022002104F090FAF0 -:1072F000202004F035FB041E306005D02022002140 -:1073000004F086FA002004E0286804F001FA2C60FA +:1072E000E7FB2860002813D02022002104F068FC6E +:1072F000202004F0DDFB041E306005D02022002198 +:1073000004F05EFC002004E0286804F031FA2C60F0 :107310001320F8BD00F00AFAF4E7C046A464FF1F8A -:10732000A064FF1F8564FF1F3443FF1F10B50A4C84 +:10732000A064FF1F8564FF1F2C43FF1F10B50A4C8C :1073300023681A1E0ED0002808D10130587004F0BE -:10734000C7F9002805D02368002B02D00021FFF7E1 +:107340004FFA002805D02368002B02D00021FFF758 :1073500087FE0122100010BD8864FF1FF7B5274E7D :10736000050033680191181E21D05C78244F012C50 :1073700030D1FFF7FFFD002825D02000FFF7F8F8F7 :107380000400412814D91F4B022118781E4A04F02A -:107390002FFA1E4B3C3C1C80022233685A703B780B +:1073900087FA1E4B3C3C1C80022233685A703B78B3 :1073A000002B14D128000199FFF75AFE0120FEBDE1 :1073B000FA2292004243002AEED0124B02211878A2 -:1073C00004F006FCE8E7FFF7D3F80200F3E7002338 -:1073D0003B70EBE73B78002BE8D1032004F0C8FAC0 +:1073C00004F096FAE8E7FFF7D3F80200F3E70023AA +:1073D0003B70EBE73B78002BE8D1032004F0C0FBC7 :1073E000011E08D0D0230370CC3B457083703368F6 -:1073F000187804F07DF9FFF7B1FDD7E78864FF1F27 +:1073F000187804F0D5FBFFF7B1FDD7E78864FF1FCD :107400008064FF1FB064FF1F60EA00009C64FF1FE0 :1074100010B51749838802008B4220D011D8154936 :107420008B4217D0144900205B1899B2012907D864 @@ -1095,23 +1095,23 @@ :10745000C0B2F5E783681878FFF768FFF0E7836844 :1074600099785A78090218781143FFF777FFE7E710 :107470000A20000006200000F8DFFFFFAFDFFFFF5B -:10748000014B18707047C0464143FF1F10B5064CB2 -:10749000207001F041FA207804F092F9052120785B +:10748000014B18707047C0463943FF1F10B5064CBA +:10749000207001F041FA207804F05AF90521207893 :1074A00000F062FD10BDC046B064FF1F0BB273B5A3 -:1074B0000D00002B00DBC4E0884B187804F050F975 +:1074B0000D00002B00DBC4E0884B187804F0A0F826 :1074C000041E0ED00378912B0FD0A22B00D1A1E087 -:1074D000834B1878FF2852D0210004F009F90028C6 +:1074D000834B1878FF2852D0210004F061FB00286C :1074E0004DD180200002684076BD43780F2B76D0C6 :1074F00013D8052B70D00E2BEAD18088794B984297 :107500002BD8794B98421BD8784B9842E0D1A3688E :107510001878591CFFF774F838E03E2BD8D18378DF :10752000032B74D06CD8012B6ED0022BD0D1704BB2 :107530001B68002B23D05B68002B20D098471EE0EF -:107540006C4BC0180C28C3D804F062F81DC2C215D9 +:107540006C4BC0180C28C3D804F032FA1DC2C21507 :107550000BC20B0B0B3223C23C00674BC018072831 :10756000B6D8664B1B68002B09D01B68002B06D0D1 :10757000200098470AE0A3681878FFF7C7F82000B2 -:1075800004F046FAADE7A068FFF762F800289FD044 +:1075800004F0EEF8ADE7A068FFF762F800289FD09E :10759000F5E7A3681B78002BF1D0554B1B68002B37 :1075A000EDD01B68002BEAD0210055489847EDE745 :1075B0004F4B1B68002BE2D01B68002BDFD0210053 @@ -1132,8 +1132,8 @@ :1076A0001C70164B1B68002B04D05B68002B01D0AC :1076B00020009847FFF7C6F8694601F001FD6846CB :1076C000FEF7FEFF1D20FEF753FF308004200AE77F -:1076D000024B187804F034FAF8E7C046B064FF1F94 -:1076E0004143FF1F0E200000012000000910000090 +:1076D000024B187804F064F8F8E7C046B064FF1F66 +:1076E0003943FF1F0E200000012000000910000098 :1076F000A864FF1FFEDFFFFFAFDFFFFFAC64FF1FCB :107700000C2000000B2000009064FF1F0D200000E3 :10771000132000008564FF1FFFFF00008264FF1F2D @@ -1155,8 +1155,8 @@ :1078100030005B689847041E0BD1AB78042BB6D0C0 :10782000039A310010782200009700F06DFB0400ED :10783000AEE76A78002AABD1AA7805A93B8808711F -:1078400030000A704B80FEF747FBA0E74443FF1F60 -:107850001CBE00111D4B37B5050098420BD0002906 +:1078400030000A704B80FEF747FBA0E73C43FF1F68 +:1078500018BE00111D4B37B5050098420BD000290A :107860000AD1FFF777FF002805D11948FFF772FF0B :10787000002800D0058037BD01291AD1FFF76AFF23 :10788000041EF8D001235B420380A378FF2BF2D0C3 @@ -1171,15 +1171,15 @@ :107910002800FEBD42680221137825485268FEF710 :10792000A5FD00282ED0234F01253A88002AEFD04C :10793000802321885B0201259B1A9942E8DC0C20F8 -:1079400004F00EF8061E31D03B8822889C460023A6 +:1079400004F0B6F8061E31D03B8822889C460023FE :107950001800019561469DB2491989B2AA421BD807 :10796000002801D062443A8000233000082208C079 -:10797000210004F095F8104A1368002B13D100255C +:10797000210004F025F8104A1368002B13D10025CC :107980001660C5E76268022113780C485268FEF75A :107990006DFD0028C7D1BAE760681D01401941811B :1079A00001330198D6E71A001B68E6E71325AFE715 -:1079B0008ABE00114243FF1FB464FF1F88BE00113E -:1079C000014B18707047C0464443FF1F14230A0040 +:1079B00086BE00113A43FF1FB464FF1F84BE00114E +:1079C000014B18707047C0463C43FF1F14230A0048 :1079D00010B51A40194204D00122102101F048F8D4 :1079E00010BD4B06F9D4012088434000F8E710B5DC :1079F00014008B0604D50122102101F039F810BDC6 @@ -1197,7 +1197,7 @@ :107AB00017D3002A15D0651D23792A0002210A4810 :107AC000FEF7D4FC102300280BD02379618820888E :107AD00000242A000094FFF7AFFF0A23A04200D041 -:107AE000230018003EBDC0468ABE001113B50A002F +:107AE000230018003EBDC04686BE001113B50A0033 :107AF00008884988012388420BD8002809D000242F :107B0000137905320094FFF797FF0A23A04200D0B3 :107B10002300180016BD13B50A0008884988012300 @@ -1208,10 +1208,10 @@ :107B6000718813000092FFF767FF051E3ED0207852 :107B7000002835D12B78022B18D167706A898300D1 :107B80000130E31880005A8069680222201803F04F -:107B900087FF23780133DBB22370042B19D93B0014 +:107B900017FF23780133DBB22370042B19D93B0084 :107BA0006889013080B2002BD9D01FE002236370B6 :107BB000122358436A89231804305A8069681022B6 -:107BC000201803F06DFF23780133DBB22370002B04 +:107BC000201803F0FDFE23780133DBB22370002B75 :107BD000E5D10C4A6B899B185A425341DBB2DFE76F :107BE0006378012BE4D12B78022BC7D022780A23AB :107BF000002A04D021000398FEF798F9002318000A @@ -1239,7 +1239,7 @@ :107D50000D486A68FEF78AFB0028E7D102212B78DC :107D60000A486A68FEF782FB002807D0002EDED0A2 :107D70003B88A342DBD17489013CDFE76C89DEE7F5 -:107D8000FFFF00008ABE001188BE001186BE0011F0 +:107D8000FFFF000086BE001184BE001182BE0011FC :107D900010B50C00FFF7DEFC03000220002B0AD018 :107DA000002C00D023609B781720FE2B03D00138D5 :107DB000FF2B00D1002010BD73B50D0001A90400F8 @@ -1247,28 +1247,28 @@ :107DD0002000FEF727F976BD01221021200000F0D7 :107DE00047FE0028F3D0F6E7014B18607047C04605 :107DF000C464FF1F37B56B469D1D010004000222BD -:107E0000280003F075FE2B88B02B0ED12379122B9E +:107E0000280003F05DFD2B88B02B0ED12379122BB7 :107E100009D12300FA331B78012B06D10121608898 :107E200000F0E0F801E01B2BF8D037BD10B5054B92 :107E30000421187000F098F8FFF74CFDFEF770FB76 :107E400010BDC046C864FF1F0020F0B50BB20F0084 -:107E500087B0834234DA274B187803F081FC051E83 +:107E500087B0834234DA274B187803F0D1FB051E34 :107E60002BD00378A02B25D103AE3100FEF7E4F828 :107E7000041E0BD1B378DB0724D51F4B06341B68D7 :107E8000002B03D03100688898470400A8680028B8 -:107E900001D003F07DFE002C08D1184A039B13404B +:107E900001D003F0CDFC002C08D1184A039B1340FD :107EA000174A934206D0B3781B2B03D00121688870 -:107EB00000F098F8280003F0ABFD80200002784025 +:107EB00000F098F8280003F053FC8020000278407E :107EC00007B0F0BD0F4B1B68002B10D03100688845 :107ED0009847041EDAD07378002BD7D1B27801A965 :107EE0000A704B800C716888FDF7F6FFCEE7062418 :107EF000F1E7C046C864FF1FC064FF1F00FFFF001A :107F000000011200C464FF1FF7B50190FC200D00B2 -:107F100017001E0003F02CFD04001320002C12D0CB +:107F100017001E0003F024FE04001320002C12D0D2 :107F2000B02320002370089BF422677065802671BF -:107F30000830002B08D0190003F0B2FD2100019891 -:107F400003F0D6FB0020FEBD089903F061FCF5E7C5 -:107F500010B5041E06D00078FD2803D803F040FCBD +:107F30000830002B08D0190003F042FD2100019801 +:107F400003F02EFE0020FEBD089903F039FEF5E790 +:107F500010B5041E06D00078FD2803D803F0D0FD2C :107F6000FF23237010BD00000A1F93B210B5040058 :107F70000220032B05D882400020024BD1529B18CF :107F80009C7010BDE864FF1F0B8870B5043B0400B3 @@ -1278,13 +1278,13 @@ :107FC00000F02CFC0EBDC046F181001107B50192F6 :107FD00003220092024B0A00122100F049FC0EBD60 :107FE0006F82001107B56B4601AA11800449D88041 -:107FF00008780633012802D1190003F0A9FC07BD57 +:107FF00008780633012802D1190003F031FB07BDD0 :10800000C964FF1F0C4B10B518700023FF210B4AE9 :108010001380138193819380094A538013705172A6 -:1080200093819372D174D3821375517703F040FB1F +:1080200093819372D174D3821375517703F008FD55 :1080300000F0FCF910BDC046F864FF1FE864FF1FA4 :10804000CA64FF1FF0B58DB06B46002003910C226F -:108050009B5E834200DBB0E05D4B187803F080FB51 +:108050009B5E834200DBB0E05D4B187803F0D0FA02 :10806000051E00D1A4E00378902B00D09DE006AF60 :1080700001004688380000F013FA796804000029EE :1080800000D19CE03B88052B6ED13B89032B1CD98A @@ -1292,7 +1292,7 @@ :1080A000131D994231D17968237804310291D9079F :1080B00038D5607800F08EF9071E06D000230371D2 :1080C0002378012B08D0132B23D0A868002800D1D7 -:1080D00078E003F05DFD75E06288029909A800F080 +:1080D00078E003F0ADFB75E06288029909A800F032 :1080E000A6F80290380000F08BF909AA2378387AB4 :1080F0000192002231000092029A00F012F9380039 :1081000000F064F9029B002BDFD0300000F080F912 @@ -1305,7 +1305,7 @@ :10817000ABD8184A043B9B00995A0029A5D0D218C5 :10818000907831003A0000F0AEF800289DD13B888D :10819000042B03D001213000FFF724FF012C04D170 -:1081A000A868002801D003F0F3FC280003F030FC9D +:1081A000A868002801D003F043FB280003F0D8FAA8 :1081B0008020039B0002434018000DB0F0BD012851 :1081C00000D182E701213000FFF70CFFEDE7C04648 :1081D000F864FF1FE864FF1F010017000B780370AD @@ -1326,14 +1326,14 @@ :1082C000CA798879120202430020DA80704710B51B :1082D00004000120022A05D100204B780A781B02F5 :1082E0001343238010BDF8B5060010200F001500C1 -:1082F00003F03EFB04000120002C0ED0A0230C2232 -:10830000290023806780201D002D07D003F0C8FBC3 -:108310002100300003F0ECF90020F8BD03F078FAFA +:1082F00003F036FC04000120002C0ED0A0230C2239 +:10830000290023806780201D002D07D003F058FB33 +:108310002100300003F044FC0020F8BD03F050FCC5 :10832000F6E7F7B51E00009008AB142017001D7883 -:10833000019103F01DFB041E12D0A2230370019BC8 +:10833000019103F015FC041E12D0A2230370019BCF :1083400047704380099B057146710C220830002B51 -:1083500007D0190003F0A4FB2100009803F0C8F92E -:10836000F7BD099903F054FAF6E737B5041E0FD0AC +:1083500007D0190003F034FB2100009803F020FC43 +:10836000F7BD099903F02CFCF6E737B5041E0FD0D2 :108370004388002B0CD00025C1881323007A1722D4 :1083800001950095FFF7CDFFFF236580637225708F :1083900037BD000010B50C4904004A88002A09D0F6 @@ -1343,16 +1343,16 @@ :1083D00003707047094B00211A0010B55C88002C0F :1083E00006D01C79844203D10A234B43D01810BD18 :1083F00001310A330329F1D10020F8E7CA64FF1FD5 -:1084000010B50400407A03F0EBF9FF23637210BD4E -:108410007047043010B580B203F0DAFA002803D0B8 -:108420000421494203F05CF910BD000070B500253D +:1084000010B50400407A03F07BFBFF23637210BDBC +:108410007047043010B580B203F08AFB002803D007 +:108420000421494203F0C4FB10BD000070B50025D3 :10843000104CA0682580A581A580A84202D003F039 -:10844000A7FBA56000250C4C0C4B606D1D80230024 -:1084500058331D70A84202D003F09AFB65650025D1 -:108460006068002801D003F093FB013508340A2D21 +:10844000F7F9A56000250C4C0C4B606D1D802300D6 +:1084500058331D70A84202D003F0EAF96565002583 +:108460006068002801D003F0E3F9013508340A2DD3 :10847000F6D170BD9065FF1F3465FF1F8465FF1F37 :1084800070B5041E09D1054D2880A881A880A86870 -:10849000002802D003F07CFBAC6070BD9065FF1F2C +:10849000002802D003F0CCF9AC6070BD9065FF1FDE :1084A000F0B54B8885B00193002343600A7905003D :1084B0000F00022A00D07BE0CA88032A17D98B68F4 :1084C0005E7819783602DC78D8790E4399781B7A71 @@ -1360,67 +1360,67 @@ :1084E00093421ED1042C04D0631F022B0ED901200D :1084F00015E0019A4D4B1201D35A002B06D001987A :10850000FFF7BEFF4A4A1369013313610421B868BB -:108510002E812C80494203F0E3F86860002005B00A +:108510002E812C80494203F04BFB6860002005B09F :10852000F0BD434D042C06D0631F022B0FD9EB681E :108530000133EB60DBE7019A3C4B1201D35A002B6D :1085400005D00198FFF79CFF2B6901332B61374B56 :1085500030000293019B029A1B01019300230199B1 :108560008C468B52130063449C8003939E81FFF7DB :1085700050FF039B041E986016D00421B86849423E -:1085800003F0AEF8FA880100043A200003F088FAFC +:1085800003F016FBFA880100043A200003F018FA01 :108590000199029AFB888A5A043B9B18029A8B52D3 :1085A0002B6801332B60A2E7AB690133AB619EE717 :1085B0001E4B0293019B1E01029BF35A002B2DD0F0 :1085C00002998C19A068002828D0012A26D1FA889F :1085D0009B189BB27352A189994217D39B1AC0185A -:1085E000B96803F05DFA029BA289F35A934200D066 +:1085E000B96803F0EDF9029BA289F35A934200D0D7 :1085F0007DE700222B81A3882B80A3686B60029B00 :10860000F2520B4A53680133536070E7084A93688B :10861000013393600198FFF733FF68E7044A536919 :1086200001335361F6E7C046FA64FF1F9065FF1FF0 :108630000065FF1F70B5051E15D10B4C0B4B188044 -:10864000230058331870606D002802D003F0A0FAA0 -:108650006565250050356068002801D003F098FA60 +:10864000230058331870606D002802D003F0F0F852 +:108650006565250050356068002801D003F0E8F812 :108660000834AC42F7D170BD3465FF1F8465FF1F2D :10867000F0B51700A12285B0920001934243394B17 :1086800006001B680C009B18D933FF331D78FDF7DB :1086900041FF0430854204DD3000FDF73BFF04302C :1086A000C5B2BD4207D33A0000213000019B03F060 -:1086B000DFF905B0F0BD2900380003F021FA2300EE +:1086B0006FF905B0F0BD2900380003F0D9F82300A8 :1086C000C6B250331E700393019B290063653800C6 -:1086D00002F0E6FFCBB20293002B02D0039B0136DF +:1086D00003F0DEF8CBB20293002B02D0039B0136ED :1086E0001E7000262300503303931B78B34204D836 :1086F000606D002831D10020DBE7029A2800002AB3 :1087000004D0013B1000B34200D02800F700E71965 -:10871000387003F095FA786000280ED03A78019905 -:1087200003F0BEF9019A3B780136D3180E4A019343 +:10871000387003F015F8786000280ED03A78019987 +:1087200003F04EF9019A3B780136D3180E4A0193B3 :10873000D369F6B20133D361D4E7039B1870606547 :10874000A74205D1084A1320D36A0133D362B0E7A8 -:10875000606803F01DFA0834F2E703F019FA002309 +:10875000606803F06DF80834F2E703F069F800236D :108760006365C8E73409FF1F0065FF1FF7B50D00FB -:1087700007000421686802F0B3FF2B89040003702E +:1087700007000421686803F01BFA2B8904000370CA :108780002B891B0A43702B8883702B881B0AC370AC :108790002E8902250436F6B2F42E15D81B4B9F42C3 -:1087A00014D10C2003F0E4F81135011E0CD09023F5 +:1087A00014D10C2003F0DCF91135011E0CD09023FC :1087B00003708E3B0371043B4380154B8460C6807D -:1087C000187802F095FF00252800FEBD5C237B434E +:1087C000187803F0EDF900252800FEBD5C237B43FB :1087D000104AD3180093583301931B78002B0FD104 :1087E0000300320038000099FFF742FF019B0500AB -:1087F0001B78002BE8D13800009903F069F9E3E712 +:1087F0001B78002BE8D13800009903F0C1F8E3E7BB :10880000054A0725536A01335362DDE7FEFF000086 :10881000F864FF1F3465FF1F0065FF1FF0B587B0C8 :10882000009017200F0016000193FFF7F2FD1325AB :10883000041E19D00C98031E02D00199201D9847E0 :10884000030AE370052302AAA07004309081277008 :108850000098667003A993800494FFF787FF051EB4 -:1088600002D0200003F094F9280007B0F0BD00000A +:1088600002D0200002F0E4FF280007B0F0BD0000B5 :10887000F0B587B01F000CAB1B7803910593012165 :108880000DAB06001C78049200F0D6F814250028E1 :1088900021D02000FFF77EFD0135041E1BD01149B9 :1088A000059B0A7803700132D2B2131EC68001D133 :1088B00001231A000B7022713000049B039900976A :1088C000FFF7ACFF051E09D1230021000648074A27 -:1088D000093302F0E5FF280007B0F0BD00236380F4 +:1088D000093303F085F9280007B0F0BD0023638059 :1088E0002370F8E7FC64FF1F6B83001130750000F4 :1088F000F8B505000E00064C064F2368002B02D089 :108900003100280098470434BC42F6D1F8BDC04677 @@ -1434,12 +1434,12 @@ :108980001B88009008000E0001920393FFF7E8FF98 :1089900005001120002D1BD10E48FFF7E1FF040058 :1089A0001520002C14D006220B99A771E01D03F0AE -:1089B00077F8019B30002371029B29006371009BB3 +:1089B00007F8019B30002371029B29006371009B23 :1089C00066802370039B6562E381FFF791FF2800B7 :1089D00005B0F0BDFFFF000010B5FFF7C1FF0400B8 :1089E0000220002C12D060880121FFF781FF606A0D -:1089F000002801D002F08CFE28220021200002F085 -:108A000007FF012300205B426380207110BD00003E +:1089F000002801D002F0BCFE28220021200003F054 +:108A0000DFF8012300205B426380207110BD00006D :108A100030B5074A074C5588010013780020A5425D :108A200004D05B1A59424B415842104030BDC046F9 :108A3000B465FF1FFFFF0000084A10B501230C00BA @@ -1456,113 +1456,113 @@ :108AE000C45CCD5C6C40D4540133102BF8D130BD44 :108AF0000F23002210B5C45C64002243CA54C25C38 :108B0000D209013BF7D210BD0200010010B520329E -:108B1000103102F045FF10BDF0B58BB0039010206E -:108B200005931700049102F01BFF0090102002F043 -:108B300017FF009B13240190002B05D000280CD1B7 -:108B40001324009802F0E4FD019B002B02D01800D2 -:108B500002F0DEFD20000BB0F0BD102002F000FF9F -:108B60000600102002F0FCFE13240500002E00D1A8 -:108B7000AEE0002819D01022002102F049FE320098 -:108B80002900039802F00CFF041E0ED133787F2BCE +:108B1000103102F00DFF10BDF0B58BB003901020A6 +:108B200005931700049102F0C3FF0090102002F09B +:108B3000BFFF009B13240190002B05D000280CD10F +:108B40001324009802F014FE019B002B02D01800A1 +:108B500002F00EFE20000BB0F0BD102002F0A8FFC6 +:108B60000600102002F0A4FF13240500002E00D1FF +:108B7000AEE0002819D01022002103F021F83200C5 +:108B80002900039802F0D4FE041E0ED133787F2B07 :108B900051D830000099FFF7ABFF009B1B787F2B6B -:108BA00053D801990098FFF7A3FF300002F0B0FD01 -:108BB000002D02D0280002F0ABFD002CC1D1102006 -:108BC00002F0CEFE0600102002F0CAFE0290002E37 +:108BA00053D801990098FFF7A3FF300002F0E0FDD1 +:108BB000002D02D0280002F0DBFD002CC1D11020D6 +:108BC00002F076FF0600102002F072FF0290002EE5 :108BD0007CD0002878D03A000F32230001251211F2 :108BE00005D00F333B4015B25A4253411BB26A1EA7 :108BF0001201002B33D0049BD2B298180099029A2C -:108C0000FFF76CFF013D10220021300002F000FE52 +:108C0000FFF76CFF013D10220021300002F0D8FF79 :108C1000ADB2049F2D017D19AF4242D0002C33D05C -:108C2000300002F075FD029B002B00D189E718008F -:108C300002F06EFD85E729003000FFF759FF28009C +:108C2000300002F0A5FD029B002B00D189E718005F +:108C300002F09EFD85E729003000FFF759FF28006C :108C40002549009AFFF74AFFA7E729000098FFF798 :108C50004FFF28002049019AFFF740FFA5E70F21A9 :108C60000F4004998A18D9B28F4208D9D15C06A85E :108C700019540133102BF6D1029A0199C0E7791AE1 :108C800048424141C901F2E73900300006AAFFF726 -:108C900025FF3200039806A902F082FE1037040077 +:108C900025FF3200039806A902F04AFE10370400AF :108CA000BAE7002CBCD13000029906AAFFF716FFE4 -:108CB000320006A9039802F073FE08220400310076 -:108CC000059802F0EDFEABE71324A9E71324AAE709 -:108CD000002800D06EE733E790BE0011F0B58BB0EE +:108CB000320006A9039802F03BFE082204003100AE +:108CC000059802F07DFEABE71324A9E71324AAE779 +:108CD000002800D06EE733E78CBE0011F0B58BB0F2 :108CE0000F0016000225009000283FD0002A3DD03A -:108CF0000B1DDBB21800029302F032FE1135041E88 +:108CF0000B1DDBB21800029302F0DAFE1135041EE0 :108D000034D0FDF747FD05003A000099201D02F020 -:108D100097FCEBB20393E3702B0CDBB22F0A0093AA +:108D1000F7FCEBB20393E3702B0CDBB22F0A00934A :108D20006370FFB22B0E2370A7700193FDF72CFD2B -:108D30001022010006A802F083FC2100029A04AB75 +:108D30001022010006A802F0E3FC2100029A04AB15 :108D400006A8FFF7E9FE051E0DD1039B082233702C :108D5000009B04A9B370019B7770F370301D02F083 -:108D60006FFCFDF71DFD200002F0D2FC28000BB0C7 +:108D6000CFFCFDF71DFD200002F002FD28000BB036 :108D7000F0BDF0B58FB00D00149E039004920593E2 :108D8000002A03D1022420000FB0F0BD002EF9D03C :108D90000398FFF7E5FD1424071EF4D072783378AA :108DA00012021A43B3781B041343F27812061A43D3 :108DB000036A0192934201D30133E3D1002D03D022 :108DC0003B7901249B07DED50822002106A802F08A -:108DD0001FFD059B13240433DBB21800029302F03D -:108DE000BFFD051ECFD0059A0499043002F028FC7F -:108DF00004223100280002F023FC39001022103137 -:108E00000AA802F01DFC2900029A06AB0AA8FFF787 -:108E100083FE041E0FD1082206A908A802F010FC48 -:108E20000822311D08A802F0ABFE012807D10199E4 -:108E30000398FDF7C9FC280002F06AFCA3E70124AF +:108DD000F7FE059B13240433DBB21800029302F064 +:108DE00067FE051ECFD0059A0499043002F088FC76 +:108DF00004223100280002F083FC390010221031D7 +:108E00000AA802F07DFC2900029A06AB0AA8FFF727 +:108E100083FE041E0FD1082206A908A802F070FCE8 +:108E20000822311D08A802F0FBFC012807D1019996 +:108E30000398FDF7C9FC280002F09AFCA3E701247F :108E4000F9E7000070B51C4C05002368181E10D00F :108E5000002D14D11A78002A0CD1981C083202F087 -:108E60001FFE02F035FD0135002808D123681D7072 -:108E7000012070BD0A331800082202F011FE236899 -:108E8000002BF5D0122002F073FD061E0DD0C12379 -:108E900021680370457002311022023002F000FE9A -:108EA00023683100587802F023FC206802F030FC7F +:108E6000AFFD02F0FDFC0135002808D123681D701C +:108E7000012070BD0A331800082202F0A1FD23680A +:108E8000002BF5D0122002F06BFE061E0DD0C12380 +:108E900021680370457002311022023002F090FD0B +:108EA00023683100587802F07BFE206802F060FCF5 :108EB00000232360DCE7C046DC65FF1FF8B5040033 :108EC0002020FDF755FB0D4EA700BB590500002BD8 :108ED0000DD000280BD0D878FF2809D108492A00E6 -:108EE0000C55F35907480333611802F0D9FCF8BD5B -:108EF000290002F07DFB0028F0D1F8E7F865FF1F9C +:108EE0000C55F35907480333611802F079FEF8BDB9 +:108EF000290002F0A5FE0028F0D1F8E7F865FF1F71 :108F0000E065FF1F15A1001170B5064D840063597F -:108F1000002B05D0D87802F063FCFF226359DA7089 +:108F1000002B05D0D87802F0F3FDFF226359DA70F8 :108F200070BDC046F865FF1F70B506008CB00C0020 -:108F3000150000213022684602F06AFC3100102240 -:108F4000684602F07DFB1D2021000322684402F0E8 -:108F500077FB6846FFF7D8FD2D2104000322280087 -:108F6000694402F06DFB20000CB070BDF0B5070045 +:108F3000150000213022684602F042FE3100102266 +:108F4000684602F0DDFB1D2021000322684402F088 +:108F5000D7FB6846FFF7D8FD2D2104000322280027 +:108F6000694402F0CDFB20000CB070BDF0B50700E5 :108F7000160097B001931CAB1D7830221EAB0091F8 -:108F80000AA800211C7802F043FC102239000AA82C -:108F900002F056FB1022002102A802F039FC072241 -:108FA000310002A802F04CFB072202AB9818631EA6 -:108FB0009C41019902F044FB02AB9C732B005A1EAA -:108FC000934102AAD3730021102206A802F020FCCC -:108FD00006221D9907A802F033FB1A2002ABC01825 -:108FE00006221F9902F02CFB102200990EA802F015 -:108FF00027FB102202AB0EA908781C78013A6040CA +:108F80000AA800211C7802F01BFE102239000AA852 +:108F900002F0B6FB1022002102A802F011FE072207 +:108FA000310002A802F0ACFB072202AB9818631E46 +:108FB0009C41019902F0A4FB02AB9C732B005A1E4A +:108FC000934102AAD3730021102206A802F0F8FDF3 +:108FD00006221D9907A802F093FB1A2002ABC018C5 +:108FE00006221F9902F08CFB102200990EA802F0B5 +:108FF00087FB102202AB0EA908781C78013A60406A :10900000D2B2087001330131002AF5D10AA8FFF766 -:109010007BFD102212A904000EA802F041FD1022CF +:109010007BFD102212A904000EA802F0D1FC102240 :1090200006AB0EA908781D78013A6840D2B20870E4 :1090300001330131002AF5D10AA8FFF765FD044389 -:1090400010222098E4B212A902F0FAFA200017B018 +:1090400010222098E4B212A902F05AFB200017B0B7 :10905000F0BD70B50E0014008CB0010010226846FF -:109060001D0002F0EDFA3100082204A802F0E8FA2F -:109070002100082206A802F0E3FA6846FFF744FD43 -:1090800004001022280008A902F0DAFA20000CB02F +:109060001D0002F04DFB3100082204A802F048FB6D +:109070002100082206A802F043FB6846FFF744FDE2 +:1090800004001022280008A902F03AFB20000CB0CE :1090900070BDF8B506000D0000243719AC4200D3AE -:1090A000F8BD02F06DFC030A3B70631CDBB20137B4 +:1090A000F8BD02F0D5FD030A3B70631CDBB201374B :1090B0009D4203D90234F054E4B2EEE71C00EDE720 :1090C00073B506000C000225002819D0002917D01E :1090D000032101A8FFF7DDFF6B469A793F231A4071 :1090E000013313436A463000937101A92200FFF750 -:1090F0001BFF051E04D10322E01C01A902F0D0FCD5 +:1090F0001BFF051E04D10322E01C01A902F060FC45 :10910000280076BD03785807DA08C00FD200800027 :109110009B0710439B0F1843C0B2704707230B40B7 :10912000C908C9000B4303707047000070B5040004 :10913000FFF7EAFE134DA4006359002B21D0186AF3 -:10914000002801D002F0E4FA2B59986E002801D0D3 -:1091500002F0DEFA2B59D86E002801D002F0D8FABE -:109160002B59186F002801D002F0D2FA2B59586FF2 -:10917000002801D002F0CCFA285902F0C9FA0023E5 +:10914000002801D002F014FB2B59986E002801D0A2 +:1091500002F00EFB2B59D86E002801D002F008FB5C +:109160002B59186F002801D002F002FB2B59586FC1 +:10917000002801D002F0FCFA285902F0F9FA002385 :109180002B5170BDF865FF1F0E4B8000C35870B5A2 :109190000C00002B0FD09D68002D0CD02B78201DCB :1091A0000B706B784B70A97CFFF7B8FF2B7E237296 -:1091B0006B69E36070BD10220021200002F028FBE3 +:1091B0006B69E36070BD10220021200002F000FD09 :1091C000F8E7C046F865FF1F014B18607047C046BE :1091D000F465FF1F074A03008000825810B5002A7B :1091E00006D0D088984203D1012901D1FFF79EFF14 @@ -1581,14 +1581,14 @@ :1092B0006BFF2B591A78D888054B002A00D1054B33 :1092C0006A46072100F0D9FB05B030BDF865FF1FE5 :1092D000079800111598001130B5094C85002959DF -:1092E00085B010226846253102F0DAFB2A59112197 +:1092E00085B010226846253102F06AFB2A59112107 :1092F000044BD0886A4600F0C0FB05B030BDC046C4 :10930000F865FF1FB198001130B5094C8500295947 -:1093100085B010226846353102F0C2FB2A5911216E +:1093100085B010226846353102F052FB2A591121DE :10932000044BD0886A4600F0A8FB05B030BDC046AB :10933000F865FF1FEF980011F7B54D4F860010201C -:10934000F4590D0002F00CFBF3592062186A132245 -:1093500000286CD0033A29009C6802F0A1FBF35965 +:10934000F4590D0002F0B4FBF3592062186A13229D +:1093500000286CD0033A29009C6802F031FBF359D5 :109360001A780192002A58D11E6A227D317B9446D8 :1093700051400122019F114201D167461740217DD2 :10938000914339432175377B4F40BC4660460027E7 @@ -1606,14 +1606,14 @@ :109440000533033AF1E7019A21782C78002A02D1FA :109450000A002100140018220429E8D8042CE6D8B8 :1094600005206043034A05331218525CDDE7C0460D -:10947000F865FF1FA0BE001110B50A001121024BB4 +:10947000F865FF1F9CBE001110B50A001121024BB8 :1094800000F0FBFA10BDC0464B9900110B0030B53F :1094900087B001AD2B806B4604001100981D082297 -:1094A00002F0FEFA2A000B212000024B00F0E5FA40 +:1094A00002F08EFA2A000B212000024B00F0E5FAB0 :1094B00007B030BD7399001110B50A001121024B9D :1094C00000F0DBFA10BDC046C799001113B50B00C0 :1094D00011006A4613706B4604000622581C02F005 -:1094E000DFFA6A4608212000014B00F0C6FA13BDDE +:1094E0006FFA6A4608212000014B00F0C6FA13BD4E :1094F000E799001110B50A001121024B00F0BDFAE6 :1095000010BDC046379A00117FB505000B4BAA006D :10951000D4580800002C0FD0666F237FE288217892 @@ -1623,7 +1623,7 @@ :109550000D00064B0221040000F08FFA0600297866 :109560002000FFF7D1FF300070BDC04617990011F1 :1095700070B586B000236A461370836804001D78B6 -:10958000681E0A2859D801A902F04AFA060633379C +:10958000681E0A2859D801A902F0CAF9060633371D :109590003B3F43474B4F5300180000F042F906236E :1095A00012284BD000281BD16088FFF7D9F9082377 :1095B000002813D04279002A47D1264B1A78072376 @@ -1675,62 +1675,62 @@ :1098900070BD2220257AFCF76BFE8542F7D823782D :1098A0001820042BF4D86378012BF1D80020EFE7BF :1098B000030010B50220002909D0002B07D0032295 -:1098C000481C0A7019000D3202F0EAF8002010BDA1 +:1098C000481C0A7019000D3202F07AF8002010BD11 :1098D00003000222080010B5002B06D0002904D096 -:1098E0000E32591C02F0DCF80022100010BD0300FB +:1098E0000E32591C02F06CF80022100010BD03006B :1098F00010B50220002909D0002B07D00422481CF3 -:109900000A7019000C3202F0CBF8002010BD10B51F +:109900000A7019000C3202F05BF8002010BD10B58F :10991000FFF7DEFF10BD03000220002906D0002B58 :1099200004D0052200200A701B784B70704703009A :109930000220002B08D0002906D05B7800200B7095 :10994000013B082B00D918307047030010B50220E6 :10995000002909D0002B07D00622481C0A701900E4 -:109960000A3202F09DF8002010BD10B5FFF7B0FFDD +:109960000A3202F02DF8002010BD10B5FFF7B0FF4D :1099700010BD02000B00022010B500290ED0002AF5 :109980000CD007211970118859701188090A997033 -:1099900011180822D81C02F083F8002010BD030023 +:1099900011180822D81C02F013F8002010BD030093 :1099A0000A00022010B5002B0CD000290AD09978AB -:1099B0005878090201431180901CD91C082202F03A -:1099C0006FF8002010BD030010B50220002909D057 -:1099D000002B07D00822481C0A701900921802F0C8 -:1099E0005FF8002010BD02000B00022010B5002916 +:1099B0005878090201431180901CD91C082201F03B +:1099C000FFFF002010BD030010B50220002909D0C0 +:1099D000002B07D00822481C0A701900921801F0C9 +:1099E000EFFF002010BD02000B00022010B500297F :1099F0000BD0002A09D00921197011781818597054 -:109A0000511C062202F04CF8002010BD10B5FFF7E3 +:109A0000511C062201F0DCFF002010BD10B5FFF74D :109A10005FFF10BD02000B00022010B5002A09D024 -:109A2000002907D05178197011180622581C02F02D -:109A300037F8002010BD030010B50220002909D01E -:109A4000002B07D00A22481C0A701900063202F0C7 -:109A500027F8002010BD10B5FFF73AFF10BD020037 +:109A2000002907D05178197011180622581C01F02E +:109A3000C7FF002010BD030010B50220002909D087 +:109A4000002B07D00A22481C0A701900063201F0C8 +:109A5000B7FF002010BD10B5FFF73AFF10BD0200A0 :109A60000B00022010B5002A06D0002904D01800EF :109A70005178FFF753FB002010BDF0B585B01700FB :109A80001E006A4606230500080091819380FEF7B8 :109A9000C0FC1324011E02900CD03800B047041EF5 :109AA00005D1280001A9FEF76FFA041E02D0029822 -:109AB00002F06EF82800FFF701FA200005B0F0BDB3 +:109AB00001F0BEFE2800FFF701FA200005B0F0BD5E :109AC000F0B504008BB0019115000021102202A80E -:109AD00001F09EFE334EA700B85900283CD0C38841 +:109AD00002F076F8334EA700B85900283CD0C3886E :109AE000A34239D10378002B36D14278062A18D107 :109AF00002000100553235310C3006ABFFF7A9FAF0 :109B0000002829D12000FFF72FFE020006A902A895 -:109B100001F0C6FF200002A901F072FD01200BB088 +:109B100001F056FF200002A901F09AFF01200BB0CE :109B2000F0BD816E002917D00B8A112A28D19D42E1 -:109B30000ED101981231093A02F022F8012807D11A +:109B30000ED101981231093A01F072FE012807D1C5 :109B4000BB5920009D6EFFF70FFE29000200DEE7E3 :109B500032212000FFF7D8FC2000FEF701FF061E8F :109B60001BD0416A002918D00B8AAB4215D10822BC -:109B70000198123102F004F801280ED1716A0AE04E -:109B80009D42E9D108220198123101F0F9FF012824 -:109B9000E2D1BB59996E8A7EB9E7200001F0F8FD49 +:109B70000198123101F054FE01280ED1716A0AE0F9 +:109B80009D42E9D108220198123101F049FE0128D5 +:109B9000E2D1BB59996E8A7EB9E7200001F078FFC7 :109BA000BCE7C046F865FF1FF0B56B4D87007E59D6 :109BB00085B0337802900393002B00D087E0B36820 :109BC000346A01937078062817D101221B7D134255 :109BD00002D0217B114218D10222134202D0217BF4 :109BE000114251D10422134203D0237B134200D0EF :109BF0008BE0019B5A7DEB5991E007380428F8D897 -:109C000001F00EFF032E42678300B36E002B03D1D9 -:109C10001C2001F0A5FEB066EB599C6E002C1CD0F8 -:109C200010220021200001F0F3FD0298FFF79CFDB7 -:109C300001002000FFF72DFA01F0A2FE2082200093 +:109C000001F08EFE032E42678300B36E002B03D15A +:109C10001C2001F04DFFB066EB599C6E002C1CD04F +:109C200010220021200001F0CBFF0298FFF79CFDDD +:109C300001002000FFF72DFA02F00AF82082200030 :109C400008211230FFF725FA0298FFF78DFDA07664 :109C5000EB592100D888FFF70FFC0822EB591CE0D4 :109C6000B36E002B05D01A00198AF0881232FFF764 @@ -1739,7 +1739,7 @@ :109C90002000FFF711FC0A22EB595A70029B9C002E :109CA0002A595378073B042B11D8D088FEF758FE69 :109CB00000284ED0C3895A08D2182849029B02981E -:109CC000CB542B5941180433254801F0E9FD05B068 +:109CC000CB542B5941180433254801F089FF05B0C6 :109CD000F0BDFCF79FFD03000120834201D100206D :109CE0000393EB59DE88FCF79BFD039902003000DB :109CF000FFF7ECFB019AEB59117D042211420CD0C5 @@ -1751,15 +1751,15 @@ :109D5000A3E7FA225200B0E7F865FF1FFC65FF1F7A :109D60001FA1001110B5064B1A78042310001840EB :109D70001A4200D00348FFF727FA002010BDC04662 -:109D80008564FF1F4843FF1F70B50400FFF7D4FA36 +:109D80008564FF1F4043FF1F70B50400FFF7D4FA3E :109D9000051E43D12000FFF77FFA234EA400A059EF :109DA0008268937CDB0708D50321036A1B790B408B :109DB000012B02D1017F0B430377431DD97F8B1EFB :109DC000022B0DD8022900D00121C088FCF790FF9A :109DD000042133591A7F59700A431A77280070BD3D :109DE00001290CD102231022437000210C3001F014 -:109DF0000FFD305910213530FFF74BF9EEE70529FB -:109E0000ECD10223D118437010220C3001F048FE2F +:109DF000E7FE305910213530FFF74BF9EEE7052922 +:109E0000ECD10223D118437010220C3001F0D8FDA0 :109E100004233259117F0B431377EAE708251828EA :109E2000DCD1053DDAE7C046F865FF1FF0B58BB021 :109E3000059143887E4F9E00F45915000493002C31 @@ -1767,47 +1767,47 @@ :109E50001678FFF757F9EB68320002932B7A0499D2 :109E6000019300903B002000FCF70CFFEBE7E38838 :109E7000049A934201D00820E6E72378012B00D111 -:109E8000D4E0059B581E092800D9CFE001F0C8FD99 +:109E8000D4E0059B581E092800D9CFE001F048FD19 :109E900005CE0A29CC506C859AB229000498FFF7A8 -:109EA00073FFD1E7200029001022453001F0F8FDB2 +:109EA00073FFD1E7200029001022453001F088FD22 :109EB000B9594B78042B02D1013B4B70C3E70B001F :109EC0000A00253335320C310498FFF795F90498D0 :109ED000FFF702FA0522431E9841BB59C0005A7091 -:109EE000B2E7200029001022553001F0D9FD049B73 +:109EE000B2E7200029001022553001F069FD049BE3 :109EF0004F4C9D00295904980A0006AB55320C318D -:109F0000FFF77AF929591022453106A801F038FEE9 +:109F0000FFF77AF929591022453106A801F088FC9B :109F1000012808D10498FFF7F7F90590002804D12B :109F200006222B595A7005988EE708230593FAE705 :109F300063780C2B7AD1E36E002B03D11C2001F047 -:109F40000FFDE066BB59D86E00286FD010222900A3 -:109F500001F0A6FDBB590498DC6EFFF705FC0D224D +:109F4000B7FDE066BB59D86E00286FD010222900FB +:109F500001F036FDBB590498DC6EFFF705FC0D22BD :109F6000A076BB595A706EE7E06E00285ED0637829 :109F70000D2B5BD12B8808220382A91C123001F023 -:109F80008FFDBB599A68517D0222114226D0186A72 +:109F80001FFDBB599A68517D0222114226D0186AE2 :109F9000407B104222D00C32E4E763780E2B45D18F -:109FA000236F002B03D1162001F0DAFC2067BB5988 -:109FB000186F002803D01022290001F071FD0F2234 +:109FA000236F002B03D1162001F082FD2067BB59DF +:109FB000186F002803D01022290001F001FD0F22A4 :109FC000BB59CFE763780F2B30D1206F0622691C75 -:109FD000103001F065FDBB599A68517D0422114291 +:109FD000103001F0F5FCBB599A68517D0422114202 :109FE00003D0196A497B1142D5D100210498FFF7AB :109FF0008BFA28E7636F002B0DD0BB59586F0028F0 -:10A00000F3D01022290001F04BFD0122BB5952422E -:10A010005B6F1A61E9E7142001F0A2FCBB5960678D +:10A00000F3D01022290001F0DBFC0122BB5952429F +:10A010005B6F1A61E9E7142001F04AFDBB596067E4 :10A020005B6F002BE9D126E72978DFE707200BE7F4 -:10A03000F865FF1F10B5064C207001F009FC0621E1 +:10A03000F865FF1F10B5064C207001F081FD062168 :10A040002078FDF791FF0348FEF778FC10BDC0466D :10A050000B66FF1FD591001100200BB270B50D00EB -:10A06000834216DA264B187801F07AFB041E0DD0D5 +:10A06000834216DA264B187801F0CAFA041E0DD086 :10A070000378922B0ED0A02B37D0224B1878FF28D4 -:10A080003AD0210001F034FB002835D180200002B5 +:10A080003AD0210001F08CFD002835D1802000025B :10A09000684070BD43780E2B0BD03E2BEDD18378FA :10A0A000052B12D0082BE8D181798088FFF7D8FAE8 :10A0B00008E0154B82889A42DFD183681878591CD2 :10A0C000FEF7C0FE002817D1D7E7104B1B785B07BF :10A0D00012D50F4B1B68002B0ED09B68002B0BD0AA :10A0E000C289811D80889847ECE7FFF741FAA06894 -:10A0F000002801D001F04CFD200001F089FCC5E7EB -:10A100000B66FF1F4143FF1F182000008564FF1FDF +:10A0F000002801D001F09CFB200001F031FBC5E7F6 +:10A100000B66FF1F3943FF1F182000008564FF1FE7 :10A11000F465FF1F10B50078FFF712FA10BD10B5F7 :10A120000078FFF7FDFA10BD0C234343084A10B531 :10A130009B185A68002A03D0012901D1904710BD0D @@ -1829,7 +1829,7 @@ :10A23000E25C1B199C785D7801232D1B0135AB4036 :10A24000013BA340A140DB430C00122807D808497A :10A2500092005218116819402143116030BD054A1F -:10A2600011680B4023431360F8E7C046E7BE0011B6 +:10A2600011680B4023431360F8E7C046E3BE0011BA :10A2700008F0004014F00040C21F70B5D4B20623AD :10A28000092C0BD80125084C9540002908D0002145 :10A29000FFF7CAFF23682B4323600023180070BD1B @@ -1842,8 +1842,8 @@ :10A300005B18996891439960F1E70E4B00290DD1D4 :10A3100059690A435A61225C1328E8D00123203A84 :10A3200093400A49086803430B60E7E75969914382 -:10A330005961F0E70C66FF1FE7BE00110080004086 -:10A340002CBF001100F00040A0F00040A4F000403D +:10A330005961F0E70C66FF1FE3BE0011008000408A +:10A3400028BF001100F00040A0F00040A4F0004041 :10A35000F8B500241B4E1C4D1C4B1B5D012B1FD15F :10A36000194A9269E2401A420BD00122B256934038 :10A370002200143AD2B2022A09D815494A69134375 @@ -1851,7 +1851,7 @@ :10A39000B2560F499200521891680B439360F0E750 :10A3A000022BEED1E7B23800FFF71EFF0123584021 :10A3B000C1B23800FFF77AFF3800FFF715FF687762 -:10A3C000DFE7C046B9BE00110C66FF1F0D66FF1F18 +:10A3C000DFE7C046B5BE00110C66FF1F0D66FF1F1C :10A3D00000F00040012202388240054B002903D0E2 :10A3E00059690A435A617047596991435961FAE7BB :10A3F00000380040F8B50E0001210F008740114AD7 @@ -1887,7 +1887,7 @@ :10A5D0007B7F0100834202D02800FFF7A5FD0134F4 :10A5E0000C370236172CC3D1F7BD01210023715659 :10A5F000F3568D40074A9B009B189A68AA439A60BD -:10A60000DCE7C04600E100E00C66FF1FB9BE0011A8 +:10A60000DCE7C04600E100E00C66FF1FB5BE0011AC :10A610000D66FF1F00F0004010B501210400FFF798 :10A62000E9FE0123044A002011194B70A3409169EF :10A630000B43936110BDC0460C66FF1F70B50E0042 @@ -1896,14 +1896,14 @@ :10A660008900051E5A5002D02000FFF705FF280080 :10A6700070BDC0462866FF1F0000FF1F85A10011A6 :10A6800070B5134D07202C78002C1FD19822210083 -:10A690005200280001F0ECF80123C420FF222B70A7 +:10A690005200280001F09CF80123C420FF222B70F7 :10A6A0000C4B80001C635C630B4B1C605C600B4BB1 :10A6B000195891433F3A0A431A50802252021A60B5 -:10A6C0000D20074A074901F09BF8200070BDC046E5 +:10A6C0000D20074A074901F0F3F8200070BDC0468D :10A6D0000C66FF1F00800040A0F0004000E100E099 :10A6E00051A5001151A30011030010B50620072B3E -:10A6F00009D8054A137001F09BF8D7210020034BBD -:10A70000034A89005A5010BD7043FF1F0000FF1F0D +:10A6F00009D8054A137001F0D3F9D7210020034B84 +:10A70000034A89005A5010BD6843FF1F0000FF1F15 :10A71000D91AFF1F70B51D0002240C2910D8094A50 :10A72000CA40D2070CD5FBF72FFF041E08D1059AAB :10A7300004992800FBF744FFFCF7B2FDFFF712FB7A @@ -1915,9 +1915,9 @@ :10A790008B43F7E7F8B51D0006AB1B88140007AA2A :10A7A0000E000B201778002B27D10A78022A49D1F6 :10A7B0004A68507811780002244A08438018042817 -:10A7C00040D801F02DF903121D1B2300F06801F0A1 -:10A7D00047F9021CC0B2B84200D93A1CD2B22000DC -:10A7E000F1682A8001F05CF906E00222F3681B8818 +:10A7C00040D801F0ADF803121D1B2300F06801F022 +:10A7D000BFF8021CC0B2B84200D93A1CD2B2200065 +:10A7E000F1682A8001F0ECF806E00222F3681B8889 :10A7F0002A8023701B0A63700020F8BD0622EEE752 :10A8000001232B80F3681B782370F5E7F368002B96 :10A8100016D008222A801A8822701A88120A6270BA @@ -1926,39 +1926,39 @@ :10A840002B80D9E701202B80D7E7C04600D6FFFF39 :10A85000F7B516000A781D0008AB1F880C0001230D :10A86000022A18D14A685078117800022B4A08430E -:10A87000801803280FD801F0D3F802254439E06886 -:10A8800001F0EEF8C0B20723B84204D37B1901935C +:10A87000801803280FD801F053F802254439E06806 +:10A8800001F066F8C0B20723B84204D37B190193E4 :10A89000152B02DD0D231800FEBDE0682A003100F3 -:10A8A000C01901F0FDF86B4600209B88E268D05487 +:10A8A000C01901F08DF86B4600209B88E268D054F7 :10A8B0001B4B1B68834203D01B68834200D0984720 :10A8C0000023E8E70B23002FE5D1022DE2D17378B6 :10A8D00032781B021343E2681380114B1B68002B74 :10A8E000EED01B68002BEBD00120E8E70B23002FF4 -:10A8F000D1D1062DCED12A003100E06801F0D0F888 +:10A8F000D1D1062DCED12A003100E06801F060F8F8 :10A90000DEE70B23002FC6D1012DC3D1327875337A :10A91000012AC0D8E3681A70D2E7C04600D6FFFF0C -:10A920001868FF1F70B50C001500072837D801F014 -:10A9300077F8041436361B36242E182015290BD828 -:10A94000184E16220021300000F062FF220029007C -:10A95000300001F0A5F8002070BD18200229FBD1BD +:10A920001868FF1F70B50C001500072837D800F015 +:10A93000F7FF041436361B36242E182015290BD8A1 +:10A94000184E16220021300001F03AF922002900A9 +:10A95000300001F035F8002070BD18200229FBD12D :10A960001288114B1A80F6E718200829F4D10A0042 -:10A970000E48290001F0BCF8EDE718200129EBD1C1 +:10A970000E48290000F0A4FFEDE718200129EBD1D3 :10A980000B4B10780B49DA69FFF7DEFEE3E718207E :10A990000129E1D1064B10780749DA6BF4E7022070 -:10A9A000DAE7C0460068FF1FEE43FF1FE443FF1FC6 -:10A9B0007443FF1F9C43FF1FBC43FF1F030010B5E0 +:10A9A000DAE7C0460068FF1FE643FF1FDC43FF1FD6 +:10A9B0006C43FF1F9443FF1FB443FF1F030010B5F8 :10A9C0000020DB0704D50721024A034800F08CF879 -:10A9D00010BDC04644BF00117443FF1F054A030069 +:10A9D00010BDC04640BF00116C43FF1F054A030075 :10A9E0001068002803D082889A4201D1806870479D :10A9F0000068F6E7106AFF1F0A88030008009A4201 :10AA000004D08A8804309A4200D0002070470000A9 :10AA1000F8B5F22200230D4F0D4E79680500424330 -:10AA20003370994200D07B600A4C0021200000F076 -:10AA3000EFFE00231A007C60AB4202D1002033708D +:10AA20003370994200D07B600A4C0021200001F075 +:10AA3000C7F800231A007C60AB4202D100203370BB :10AA4000F8BD01332280DBB2F234F5E7086BFF1F5B :10AA5000066BFF1F146AFF1F73B56B46019006005B :10AA6000684615001980FCF74DFF041E11D1002D1A -:10AA70000FD07689002E11D00C2000F071FF002835 +:10AA70000FD07689002E11D00C2001F019F8002893 :10AA80000ED0084A0460136886808560002B02D1CE :10AA90001060200076BD1A001B68F7E70224F8E773 :10AAA0001324F6E7106AFF1F012100220A4B10B59C @@ -1968,7 +1968,7 @@ :10AAE000086BFF1F95AB0011022310B5002802D0A0 :10AAF000FFF7B2FF0300180010BD0000030010B5FF :10AB00000020DB0704D50421024A0348FFF7A4FF15 -:10AB100010BDC04658BF0011F443FF1FF0B50E260C +:10AB100010BDC04654BF0011EC43FF1FF0B50E2618 :10AB200087B003930CAB1F8802ABF6180500080032 :10AB300031000292FDF768F804000120002C0FD0CC :10AB40003088FFF74BFF03000E20002B08D05E6813 @@ -1980,7 +1980,7 @@ :10ABA0003388F227AB4219D028001149FFF7DAFFAA :10ABB00006E0022904D10139FDF73EFF0028EDD05F :10ABC000F8BD3B0063437268D018D35A002B09D0FC -:10ABD0003A00002100F01CFE0134E4B2054B1B7862 +:10ABD0003A00002100F0F4FF0134E4B2054B1B7889 :10ABE000A342EED801235B423380DDE7086BFF1FF1 :10ABF0002068FF1F066BFF1F10B5FFF7FDFE030067 :10AC00000020834200D0987810BD0000F0B589B0D4 @@ -1995,23 +1995,23 @@ :10AC900010D2684B984242D015D8674BC018012893 :10ACA000C7D80B20002EDDD1EB681A7859683A809E :10ACB000200028E0614BC018032800D979E000F09B -:10ACC000AFFE846A789E5E4B9842B2D10B20002E74 +:10ACC0002FFE846A789E5E4B9842B2D10B20002EF4 :10ACD000C8D101233B80EB6831001B782370688961 :10ACE000013080B2FCF790FF3A88031E0ED0017845 :10ACF00002328A183A80428962704289120AA2702E -:10AD000059680278E01C00F0CBFE06E004323A807D -:10AD100031000422601C00F07BFD0020A2E70B2024 +:10AD000059680278E01C00F05BFE06E004323A80ED +:10AD100031000422601C00F053FF0020A2E70B204A :10AD2000002E9FD1EB6807A91E8804233B80330ABD :10AD3000300026706370FCF767FF051E28D004AB57 :10AD40009A890E2304A95B183E49C668FCF7D0FF18 :10AD500000280BD12B783C486A680599FBF786FBE5 :10AD6000002803D1012304AA5B42D3813278022A4E -:10AD700006D17168201D00F093FE3B8802333B80B2 +:10AD700006D17168201D00F023FE3B8802333B8022 :10AD80000E2304AA9B181B88A3701B0AE370C4E758 :10AD900004ABDE81F4E70B20002E00D062E7E96807 :10ADA0000398FFF729FF02233B802070000A6070A0 :10ADB000B3E70B20002E00D054E70222EB681B887B -:10ADC0003A8023701B0A6370A7E7E86800F048FE2A +:10ADC0003A8023701B0A6370A7E7E86800F0C0FDB3 :10ADD000C2B203000720B24200D243E70DD002996D :10ADE000DBB27118994202DB921BD3B20293029B31 :10ADF000E9681A003B8089195AE70023F6E70B201F @@ -2019,23 +2019,23 @@ :10AE10005A7862705A88A2705A88120AE2701A79B7 :10AE20002271DA886271DB881B0AA37175E7C0465C :10AE3000042900000228000000D8FFFFFFD6FFFF12 -:10AE400003280000FFFF000088BE0011F0B58DB0A0 +:10AE400003280000FFFF000084BE0011F0B58DB0A4 :10AE50006B460020089120229B5E83423DDAA64B80 -:10AE6000187800F07DFC071E32D00378B02B2CD16F -:10AE70000079023816281FD800F05AFE17001E006D +:10AE6000187800F0CDFB071E32D00378B02B2CD120 +:10AE70000079023816281FD800F0B2FD17001E0016 :10AE80001E001E0031001E0096001E001D011E0047 :10AE900052011E0073011E00CD011E0050021E0053 :10AEA0001E001E008E021E00E302944B94491B8874 :10AEB00078880B80FBF71AF83800FCF79BFF914B62 -:10AEC0001B68002B01D038009847380000F0A0FD27 +:10AEC0001B68002B01D038009847380000F048FC80 :10AED0008020089B0002434018000DB0F0BDEE2218 -:10AEE0000021874800F094FC0BAA3B7B79893889C4 +:10AEE0000021874800F06CFE0BAA3B7B79893889EA :10AEF00000923A000D32FCF79FFD0400804B1B7856 :10AF0000002C3FD146E0804B788805937F4B410071 :10AF1000CB5A0BAE073BDBB232880293002301937E :10AF20007B4B210006930093059BFFF76FFE744D4A :10AF3000002810D1069B3A8A1B889A420BD1380010 -:10AF40000599123000F01CFE002804D02B7862898D +:10AF40000599123000F06CFC002804D02B7862893F :10AF50009B00EB185A80162306A81B183288200085 :10AF60007989FCF7C5FE2B7804009A00AA1851884D :10AF70000029C3D00133DBB22B70002807D006A90B @@ -2052,19 +2052,19 @@ :10B02000002D26D14B807988384B4900CB5A5119D5 :10B03000033B8B4220DD059B31485B8941190B7135 :10B04000A91C0135C9B2EDB2059145191B0A2B7136 -:10B05000059B2D490433181800F022FD2C4B059A4E +:10B05000059B2D490433181800F0B2FC2C4B059ABF :10B060001B88D318DDB22C4B9E4205D00136B6B2F8 :10B070009CE749889942D6D0002D0CD0204C28005E -:10B08000618800F08DFB207021007888FAF772FF4C +:10B08000618800F0B5FD207021007888FAF772FF22 :10B0900012E7059CF0E7002C00D183E77B78142BA6 :10B0A00000D109E716493B794E800B700C71788806 :10B0B000FAF712FF00E7162406ABE41821003889DE :10B0C000FCF7A2FD011E00D1B7E1788822880F4C61 :10B0D00045002C5B0A4D013CE4B2029400240F4B66 :10B0E00001940095FFF792FD041E00D014E12900A1 -:10B0F0007888FAF74FFFDFE6106BFF1FE042FF1F73 +:10B0F0007888FAF74FFFDFE6106BFF1FD842FF1F7B :10B100002868FF1F1C68FF1F1C69FF1F5864FF1F72 -:10B110000C6AFF1FDE42FF1FFFFF00002A68FF1FAF +:10B110000C6AFF1FD642FF1FFFFF00002A68FF1FB7 :10B12000162406ABE41821003889FCF76DFD011EDA :10B1300000D182E178882288AE4C45002C5BAE4D70 :10B14000013CE4B202947C89AC4B01940095FFF77A @@ -2079,7 +2079,7 @@ :10B1D000099BFFF71BFD041E02D0059B1E895DE73E :10B1E0007B88069A5B009B5A079A1088328812184F :10B1F000934202DC1B1A013B33807F4C02303288C1 -:10B200000999001900F04CFC2388328801359B18FD +:10B200000999001900F0DCFB2388328801359B186E :10B210002380EDB2A8E70BAA3B7B7989388900929D :10B220003A000D32FCF708FC00250590059B002B29 :10B2300004D10A24002D00D16EE060E0059B7888DF @@ -2092,10 +2092,10 @@ :10B2A00032881B1879890598FCF722FDFF21AA1C1A :10B2B0002E1D03350B00059092B2B6B2ADB2002838 :10B2C00003D006ABDB8AD9B21B0AA218651911712B -:10B2D0002B714C4D301D2A884949201800F0E0FBA5 +:10B2D0002B714C4D301D2A884949201800F070FB15 :10B2E0002B88F618B5B2A1E74988914207D17A8830 :10B2F00006995200525AEB18053A9A42C4DC3E4C69 -:10B300002800618800F0FCFB207021007888FAF7A3 +:10B300002800618800F0B4FA207021007888FAF7EC :10B310005FFED1E5002DF2D13E89BFE6162606ABD1 :10B32000F61831003889FCF76FFC3D000400FA354F :10B3300000282DD0037A9B060CD400227B89398902 @@ -2113,13 +2113,13 @@ :10B3F00092E7C0465864FF1F2868FF1F2A68FF1F96 :10B400001C69FF1F0C6AFF1F086BFF1FFFFF000076 :10B41000066BFF1F31005943546801336018615AAD -:10B420000029D2D13C0008342100F22200F038FB80 +:10B420000029D2D13C0008342100F22200F0C8FAF1 :10B4300021007888FAF7E4FD3EE501246CE70E244C :10B440006AE71D4B1A887B889A4231D07888FAF7D0 :10B45000E1FD31E5F223059851684343CD18C95AFF :10B4600000291FD03B7A012B0BD16C88AB887888E0 :10B47000AA1D0094FFF752FB041E02D000233B726A -:10B480002E88F2220021280000F0C2F900232B8030 +:10B480002E88F2220021280000F09AFB00232B8056 :10B49000059B0133DBB20593084B05991B78064ADF :10B4A0008B42D7D801235B421380002CCED0F5E528 :10B4B000002634000596EFE7086BFF1F066BFF1FA1 @@ -2127,8 +2127,8 @@ :10B4D00031000548FFF790FA03001120002B02D03D :10B4E0001C8000209D7070BDFFFF0000F8B50B4F61 :10B4F00006003B780D001400FF2B0ED00A2000F050 -:10B5000037FA011E09D0B12303800023468003715E -:10B51000C5800481387800F0EBF8F8BD3544FF1F92 +:10B500002FFB011E09D0B123038000234680037165 +:10B51000C5800481387800F043FBF8BD2D44FF1F3F :10B52000F7B50F0008A90600088809A90B240988A7 :10B53000002821D10234022B1ED1557813782D0218 :10B540001D432B008B4301937334002B14D1FB68F4 @@ -2140,163 +2140,163 @@ :10B5A000DBB201960095FFF7BBFF05B0F0BDC046CA :10B5B00002290000034B10B51B68002B00D09847F0 :10B5C000FEE7C046146BFF1F07B501A8FFF7F2FFA7 -:10B5D000044A05480021121A00F04AF9F8F70AF95E -:10B5E000FEE7C046186BFF1F3844FF1F0000000035 -:10B5F00001B40248844601BC604700BF51470100C6 -:10B6000001B40248844601BC604700BF311B000002 -:10B6100001B40248844601BC604700BF193BFF1FCC -:10B6200001B40248844601BC604700BF193AFF1FBD -:10B6300001B40248844601BC604700BFC51D00003C -:10B6400001B40248844601BC604700BF4551010077 -:10B6500001B40248844601BC604700BF1D4B010095 -:10B6600001B40248844601BC604700BF8538FF1F13 -:10B6700001B40248844601BC604700BF456B01002D -:10B6800001B40248844601BC604700BF350E00008B -:10B6900001B40248844601BC604700BFC52DFF1FAE -:10B6A00001B40248844601BC604700BF090E000097 -:10B6B00001B40248844601BC604700BF791800000D -:10B6C00001B40248844601BC604700BF792DFF1FCA -:10B6D00001B40248844601BC604700BF691F0000F6 -:10B6E00001B40248844601BC604700BF55490100CF -:10B6F00001B40248844601BC604700BF594F0100B5 -:10B7000001B40248844601BC604700BFC521000067 -:10B7100001B40248844601BC604700BF014C0100EF -:10B7200001B40248844601BC604700BF6571010056 -:10B7300001B40248844601BC604700BF6DBC0000F4 -:10B7400001B40248844601BC604700BF8D1200006E -:10B7500001B40248844601BC604700BF0132FF1FAC -:10B7600001B40248844601BC604700BFF54E0100A9 -:10B7700001B40248844601BC604700BFD92FFF1FB7 -:10B7800001B40248844601BC604700BFC94A0100B9 -:10B7900001B40248844601BC604700BF091B000099 -:10B7A00001B40248844601BC604700BF350E00006A -:10B7B00001B40248844601BC604700BF4D38FF1FFA -:10B7C00001B40248844601BC604700BF5D17000019 -:10B7D00001B40248844601BC604700BFA54F010088 -:10B7E00001B40248844601BC604700BF1147010014 -:10B7F00001B40248844601BC604700BF59520100B1 -:10B8000001B40248844601BC604700BF6130FF1F9D -:10B8100001B40248844601BC604700BF154D0100D9 -:10B8200001B40248844601BC604700BFC9A90000BA -:10B8300001B40248844601BC604700BFD91AFF1F0B -:10B8400001B40248844601BC604700BF4537FF1F72 -:10B8500001B40248844601BC604700BFC92600000D -:10B8600001B40248844601BC604700BFC538FF1FD1 -:10B8700001B40248844601BC604700BFB70E000017 -:10B8800001B40248844601BC604700BF1930FF1F65 -:10B8900001B40248844601BC604700BF055E000059 -:10B8A00001B40248844601BC604700BFA9460100BC -:10B8B00001B40248844601BC604700BF75A900007E -:10B8C00001B40248844601BC604700BF2526000041 -:10B8D00001B40248844601BC604700BFD91B000088 -:10B8E00001B40248844601BC604700BF2146010004 -:10B8F00001B40248844601BC604700BF5933FF1FB2 -:10B9000001B40248844601BC604700BF9135FF1F67 -:10B9100001B40248844601BC604700BFC56D010008 -:10B9200001B40248844601BC604700BFADAE0000D0 -:10B9300001B40248844601BC604700BF3D180000C6 -:10B9400001B40248844601BC604700BFB14E00000C -:10B9500001B40248844601BC604700BFE117000003 -:10B9600001B40248844601BC604700BF3D4B010062 -:10B9700001B40248844601BC604700BF1D4D010070 -:10B9800001B40248844601BC604700BF2951010050 -:10B9900001B40248844601BC604700BF9D35FF1FCB -:10B9A00001B40248844601BC604700BFE54800007E -:10B9B00001B40248844601BC604700BF7139FF1FD3 -:10B9C00001B40248844601BC604700BFB54C010089 -:10B9D00001B40248844601BC604700BFE92800006A -:10B9E00001B40248844601BC604700BFED4A010033 -:10B9F00001B40248844601BC604700BFF94C010015 -:10BA000001B40248844601BC604700BF51250000D4 -:10BA100001B40248844601BC604700BF434D0100A9 -:10BA200001B40248844601BC604700BF2D3BFF1FA4 -:10BA300001B40248844601BC604700BFF30E000019 -:10BA400001B40248844601BC604700BF2932FF1F91 -:10BA500001B40248844601BC604700BF0D5201009A -:10BA600001B40248844601BC604700BFDD520100BA -:10BA700001B40248844601BC604700BF5118FF1F53 -:10BA800001B40248844601BC604700BF851F000026 -:10BA900001B40248844601BC604700BF4D1F00004E -:10BAA00001B40248844601BC604700BFE94C010074 -:10BAB00001B40248844601BC604700BF85520100C2 -:10BAC00001B40248844601BC604700BF45500000F5 -:10BAD00001B40248844601BC604700BF7D18FF1FC7 -:10BAE00001B40248844601BC604700BF291C000025 -:10BAF00001B40248844601BC604700BF810E0000CB -:10BB000001B40248844601BC604700BF090E000032 -:10BB100001B40248844601BC604700BFC12FFF1F2B -:10BB200001B40248844601BC604700BF9DA90000E3 -:10BB300001B40248844601BC604700BF413BFF1F7F -:10BB400001B40248844601BC604700BFB352010003 -:10BB500001B40248844601BC604700BF01240000D4 -:10BB600001B40248844601BC604700BFEDA5000057 -:10BB700001B40248844601BC604700BF156B010058 -:10BB800001B40248844601BC604700BFCD4C0100AF -:10BB900001B40248844601BC604700BFD949010096 -:10BBA00001B40248844601BC604700BF2124000064 -:10BBB00001B40248844601BC604700BF355500000F -:10BBC00001B40248844601BC604700BFDD66010045 -:10BBD00001B40248844601BC604700BF8B5201009B -:10BBE00001B40248844601BC604700BFED39FF1F25 -:10BBF00001B40248844601BC604700BF9136FF1F74 -:10BC000001B40248844601BC604700BFC135FF1F34 -:10BC100001B40248844601BC604700BF55220000C1 -:10BC200001B40248844601BC604700BF0539FF1FCC -:10BC300001B40248844601BC604700BF3938FF1F89 -:10BC400001B40248844601BC604700BF017F000088 -:10BC500001B40248844601BC604700BF056A000089 -:10BC600000010103020003030403050206020702A8 -:10BC7000080209020A030B030C020D000E030F0356 -:10BC8000100311001300140315001600C53B00112A +:10B5D000044A05480021121A00F0FAF8F8F70AF9AF +:10B5E000FEE7C046186BFF1F3044FF1F000000003D +:10B5F00001B40248844601BC604700BF193AFF1FEE +:10B6000001B40248844601BC604700BFF54E01000A +:10B6100001B40248844601BC604700BF4D38FF1F9B +:10B6200001B40248844601BC604700BF1930FF1FC7 +:10B6300001B40248844601BC604700BF8D1200007F +:10B6400001B40248844601BC604700BFD92FFF1FE8 +:10B6500001B40248844601BC604700BF456B01004D +:10B6600001B40248844601BC604700BFE1170000F6 +:10B6700001B40248844601BC604700BF2526000093 +:10B6800001B40248844601BC604700BF0D5201006E +:10B6900001B40248844601BC604700BF851F00001A +:10B6A00001B40248844601BC604700BFF94C010068 +:10B6B00001B40248844601BC604700BF055E00003B +:10B6C00001B40248844601BC604700BF156B01000D +:10B6D00001B40248844601BC604700BFC51D00009C +:10B6E00001B40248844601BC604700BFEDA50000DC +:10B6F00001B40248844601BC604700BF0539FF1F02 +:10B7000001B40248844601BC604700BF45510100B6 +:10B7100001B40248844601BC604700BFC94A010029 +:10B7200001B40248844601BC604700BFED39FF1FE9 +:10B7300001B40248844601BC604700BFADAE0000C2 +:10B7400001B40248844601BC604700BF017F00008D +:10B7500001B40248844601BC604700BF5D17000089 +:10B7600001B40248844601BC604700BF434D01005C +:10B7700001B40248844601BC604700BF014C01008F +:10B7800001B40248844601BC604700BF9136FF1FE8 +:10B7900001B40248844601BC604700BF9DA9000077 +:10B7A00001B40248844601BC604700BFB3520100A7 +:10B7B00001B40248844601BC604700BF4550000008 +:10B7C00001B40248844601BC604700BF0124000068 +:10B7D00001B40248844601BC604700BFB70E0000B8 +:10B7E00001B40248844601BC604700BF691F0000E5 +:10B7F00001B40248844601BC604700BFF30E00005C +:10B8000001B40248844601BC604700BF7139FF1F84 +:10B8100001B40248844601BC604700BFDD660100F8 +:10B8200001B40248844601BC604700BFCD4C010012 +:10B8300001B40248844601BC604700BFD9490100F9 +:10B8400001B40248844601BC604700BF9135FF1F28 +:10B8500001B40248844601BC604700BF5522000085 +:10B8600001B40248844601BC604700BFD91B0000F8 +:10B8700001B40248844601BC604700BF090E0000C5 +:10B8800001B40248844601BC604700BF350E000089 +:10B8900001B40248844601BC604700BF090E0000A5 +:10B8A00001B40248844601BC604700BF5952010000 +:10B8B00001B40248844601BC604700BF6130FF1FED +:10B8C00001B40248844601BC604700BF810E0000FD +:10B8D00001B40248844601BC604700BFC56D010049 +:10B8E00001B40248844601BC604700BF2124000027 +:10B8F00001B40248844601BC604700BF8B5201007E +:10B9000001B40248844601BC604700BFB14E00004C +:10B9100001B40248844601BC604700BF8552010063 +:10B9200001B40248844601BC604700BF2D3BFF1FA5 +:10B9300001B40248844601BC604700BFE5480000EE +:10B9400001B40248844601BC604700BFC135FF1FF7 +:10B9500001B40248844601BC604700BFDD520100CB +:10B9600001B40248844601BC604700BF3555000061 +:10B9700001B40248844601BC604700BF3D18000086 +:10B9800001B40248844601BC604700BF7D18FF1F18 +:10B9900001B40248844601BC604700BF5118FF1F34 +:10B9A00001B40248844601BC604700BF5933FF1F01 +:10B9B00001B40248844601BC604700BF193BFF1F29 +:10B9C00001B40248844601BC604700BFE94C010055 +:10B9D00001B40248844601BC604700BF2932FF1F02 +:10B9E00001B40248844601BC604700BF413BFF1FD1 +:10B9F00001B40248844601BC604700BF4D1F0000EF +:10BA000001B40248844601BC604700BF056A0000DB +:10BA100001B40248844601BC604700BF75A900001C +:10BA200001B40248844601BC604700BF9D35FF1F3A +:10BA300001B40248844601BC604700BF3938FF1F8B +:10BA400001B40248844601BC604700BF7918000079 +:10BA500001B40248844601BC604700BF311B0000AE +:10BA600001B40248844601BC604700BF792DFF1F26 +:10BA700001B40248844601BC604700BF8538FF1FFF +:10BA800001B40248844601BC604700BFC52DFF1FBA +:10BA900001B40248844601BC604700BF091B000096 +:10BAA00001B40248844601BC604700BFD91AFF1F99 +:10BAB00001B40248844601BC604700BF3D4B010011 +:10BAC00001B40248844601BC604700BF5125000014 +:10BAD00001B40248844601BC604700BF65710100A3 +:10BAE00001B40248844601BC604700BFC12FFF1F5C +:10BAF00001B40248844601BC604700BFB54C010058 +:10BB000001B40248844601BC604700BF11470100F0 +:10BB100001B40248844601BC604700BFC521000053 +:10BB200001B40248844601BC604700BFC9A90000B7 +:10BB300001B40248844601BC604700BFE928000008 +:10BB400001B40248844601BC604700BFC92600001A +:10BB500001B40248844601BC604700BF0132FF1FA8 +:10BB600001B40248844601BC604700BF1D4D01007E +:10BB700001B40248844601BC604700BFED4A0100A1 +:10BB800001B40248844601BC604700BF1D4B010060 +:10BB900001B40248844601BC604700BFC538FF1F9E +:10BBA00001B40248844601BC604700BF594F010000 +:10BBB00001B40248844601BC604700BF55490100FA +:10BBC00001B40248844601BC604700BF154D010026 +:10BBD00001B40248844601BC604700BF291C000034 +:10BBE00001B40248844601BC604700BFA946010079 +:10BBF00001B40248844601BC604700BF350E000016 +:10BC000001B40248844601BC604700BF4537FF1FAE +:10BC100001B40248844601BC604700BF21460100D0 +:10BC200001B40248844601BC604700BFA54F010033 +:10BC300001B40248844601BC604700BF6DBC0000EF +:10BC400001B40248844601BC604700BF514701006F +:10BC500001B40248844601BC604700BF295101007D +:10BC600000010103020203030403050206020702A6 +:10BC7000080209030A030B030C020D000E030F0355 +:10BC8000100311031303140315001600C53B001124 :10BC9000F93B00110000000002000000A2BC0011EE :10BCA000192A0F180A000000F1590000FD240000B5 :10BCB000414601004580001159A00011AD740011EA -:10BCC000497E0011115300114DAE0011794F001142 -:10BCD000B93D0011E93E00110000000016160000F9 +:10BCC000497E0011315300114DAE0011994F001102 +:10BCD000D53D0011053F00110000000016160000C0 :10BCE00002000000ECBC0011F4FFF3FFD2FC0000E6 -:10BCF0002940001100000000000000005475796127 -:10BD00000042312E34003030313900676974687573 -:10BD1000622E636F6D2F707676780054483035460A -:10BD2000000000000200000038BD0011292A282A66 -:10BD3000272A262A252A242A0A180000E2040000BD -:10BD40007102000078EC0000744000001027000031 -:10BD500060F0000006640000204E000000000000BB -:10BD6000050000001F501D00023CB4000001190036 -:10BD700014000000A1020000303132333435363770 -:10BD80003839414243444546000000001557001130 -:10BD9000695700110000000002000000A4BD00115E -:10BDA0006F2A6E2A1A18EAD8BC80F0FC60000000E6 -:10BDB00000000000000000F505D39727B6F615F740 -:10BDC000B777E6F0C7F27200000001A000000000A3 -:10BDD0006410B71DC8206E3BAC30D9269041DC768C -:10BDE000F4516B6B5861B24D3C7105502083B8ED36 -:10BDF00044930FF0E8A3D6D68CB361CBB0C2649B5A -:10BE0000D4D2D38678E20AA01CF2BDBDFB349B5F7E -:10BE1000800000800010000000000000AF600011F2 -:10BE200039770011D3600011417B00115761001177 -:10BE3000177B0011CD610011ED7A00111F62001116 -:10BE4000B57C001187620011B57C0011B962001148 -:10BE50006F7C0011CD610011A57A001145620011BF -:10BE60004D7C001100000000000000002B63001159 -:10BE70004D7C00118D63001151770011052A042AB1 -:10BE8000012A002A02290328012800280118001885 -:10BE9000000000000000000000000000000000871B -:10BEA0000101020102010102010203030401030175 -:10BEB000010101010303020103000D000E00100047 -:10BEC000110013001401070108010A010B011C01F4 -:10BED0001D02040205020702080219021A021C02CE -:10BEE0001D030103020317000201000504000807F7 -:10BEF000000B0A001716001D1C01020101050401B8 -:10BF00000E0D011110011413011716011A19020266 -:10BF100001020B0A020E0D02111002141302171671 -:10BF2000030504030807030B0A030E0D00010203B7 -:10BF300007090A0B0E0F101112141718191A1B1FDC -:10BF40002021220095A7001151A800110000000037 -:10BF5000020000008EBE0011000000007DB500113F -:0CBF600000000000020000008CBE001178 +:10BCF000454000110000000000000000547579610B +:10BD00000042312E35003030313500676974687576 +:10BD1000622E636F6D2F7076767800544830350050 +:10BD20000200000034BD0011292A282A272A262AC9 +:10BD3000252A242A0A180000E204000071020000EB +:10BD400078EC0000744000001027000060F0000054 +:10BD500006640000204E0000000000000500000006 +:10BD60001F501D00023CB40000011500150000002A +:10BD7000A102000030313233343536373839414290 +:10BD80004344454600000000355700118957001113 +:10BD90000000000002000000A0BD00116F2A6E2A02 +:10BDA0001A18EAD8BC80F0FC600000000000000017 +:10BDB0000000F303B59747D6F613F7D777E6F0A759 +:10BDC000F474000001A00000000000006410B71D22 +:10BDD000C8206E3BAC30D9269041DC76F4516B6BB9 +:10BDE0005861B24D3C7105502083B8ED44930FF07B +:10BDF000E8A3D6D68CB361CBB0C2649BD4D2D38631 +:10BE000078E20AA01CF2BDBDFB349B5F800000807D +:10BE10000010000000000000AF6000113977001131 +:10BE2000D3600011417B001157610011177B001195 +:10BE3000CD610011ED7A00111F620011B57C001177 +:10BE400087620011B57C0011B96200116F7C00118E +:10BE5000CD610011A57A0011456200114D7C0011E1 +:10BE600000000000000000002B6300114D7C001159 +:10BE70008D63001151770011052A042A012A002A36 +:10BE800002290328012800280118001800000000DA +:10BE90000000000000000000000000870101020116 +:10BEA0000201010201020303040103010101010176 +:10BEB0000303020103000D000E0010001100130027 +:10BEC0001401070108010A010B011C011D020402F3 +:10BED00005020702080219021A021C021D030103CF +:10BEE000020317000201000504000807000B0A0006 +:10BEF0001716001D1C010201010504010E0D0111A0 +:10BF000010011413011716011A19020201020B0A7B +:10BF1000020E0D021110021413021716030504037A +:10BF20000807030B0A030E0D0001020307090A0BA1 +:10BF30000E0F101112141718191A1B1F202122009E +:10BF400095A7001151A80011000000000200000098 +:10BF50008ABE0011000000007DB500110000000045 +:08BF60000200000088BE001180 :020000041FFFDC -:1000000000000000213D0011A8BC0011A4BC00119B -:100010004461FF1F0000000000000000000000001D +:10000000000000003D3D0011A8BC0011A4BC00117F +:100010003C61FF1F00000000000000000000000025 :1000200000000000000000000000000000000000D0 :1000300000000000000000000000000000000000C0 :1000400000000000000000000000000000000000B0 @@ -2360,8 +2360,8 @@ :1003E000000000000000000000000000000000000D :1003F00000000000000000000000000000000000FD :08183800206FFF1F4118FF1F84 -:10184000024981F3088802F06FFA0000206FFF1F41 -:1018500010B502F089FA072804D0122808D002280F +:10184000024981F3088802F0BFF90000206FFF1FF2 +:1018500010B502F001FC072804D0122808D0022895 :1018600008D010BD044A0420136B01331363F8E75A :101870000220F6E71420F4E70065FF1FF8B5070023 :101880000C0026002500503630785135002804D150 @@ -2373,9 +2373,9 @@ :1018E000C9180B0058331B78012B05D1FFF7C6FF31 :1018F000034A936A0133936210BDC0463465FF1FEB :101900000065FF1F10B502F037FB064A01211300E6 -:1019100010CB4942D967044B136002F0E5F920006F +:1019100010CB4942D967044B136002F0A5FA2000AE :1019200010BDC04600E100E01000100010B504003A -:1019300002F022FB024B1C6002F0D6F910BDC0463B +:1019300002F022FB024B1C6002F096FA10BDC0467A :1019400000E100E0431E5A425341A022F0B5D2010B :101950005B421340154D164A40019B182A18127E0F :101960008BB00191002A1BD01A000832D46F0022DC @@ -2414,24 +2414,24 @@ :101B70001A701A78002ACED01A78013AD2B2F7E752 :101B8000C8680243CA6014221A7019784A1ED2B279 :101B90001A700029F9D1C4E71A78013AD2B2C7E71E -:101BA0001A78013AD2B2CEE77043FF1F3844FF1FC4 -:101BB0003CF000406843FF1F00200040FFFFFEFF95 +:101BA0001A78013AD2B2CEE76843FF1F3044FF1FD4 +:101BB0003CF000406043FF1F00200040FFFFFEFF9D :101BC000564B70B51B68012B03D1554A936D0133F9 -:101BD000936502F011F9534B534A1860534B544C20 +:101BD000936502F091F8534B534A1860534B544CA1 :101BE0001A600123534A1360534A13602378002B71 -:101BF00006D006225149524802F0A6F8002323706D +:101BF00006D006225149524802F016F800232370FD :101C0000504A514B10681B78C1B2002B0ED14F4C7B :101C1000C0B223785BB2002B4FDB237824785BB211 :101C200064B21B0424021B191B1813600B1C5029DF :101C30004ED95023464A47491078DBB2FF2202288A :101C40004BD10868444C454D267890432A789642FB :101C500054D9227824782E78023B5D10A31B6B4365 -:101C60005201D31A10335B111843086002F054F983 +:101C60005201D31A10335B111843086002F074F864 :101C7000031F012B45D83A4B1B78002B06D0394B5C -:101C80001B78002B02D0002002F05EF9A122364B17 +:101C80001B78002B02D0002002F086F8A122364BF0 :101C900092009978354B4A431B689B188322920027 -:101CA0009B181B78033B012B03D8AF20400001F0A9 -:101CB00093FF01222E4BDA8270BD237824785BB229 +:101CA0009B181B78033B012B03D8AF20400002F0A8 +:101CB00003F801222E4BDA8270BD237824785BB2C0 :101CC00064B2FF33FF341B0424021B190138ABE755 :101CD000CAB2022AAED20223ACE70868254C264DD0 :101CE000267890432A78964208D9227824782D784D @@ -2444,44 +2444,44 @@ :101D5000490AFF1F94000340460AFF1F470AFF1F5E :101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 :101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 -:101D80002309FF1F10B502F0B7F80022014B1A809B -:101D900010BDC0463664FF1F10B502F055F8A121F2 +:101D80002309FF1F10B501F0EFFE0022014B1A805E +:101D900010BDC0463464FF1F10B502F06DF8A121DC :101DA000054A89009478054A61431268044B521829 :101DB000528C1A8010BDC046300DFF1F3409FF1F22 -:101DC0003664FF1F10B50D4B0D4A9978A1239B0077 +:101DC0003464FF1F10B50D4B0D4A9978A1239B0079 :101DD0004B431268D218531DD97F0A4B1B88994276 :101DE00009D2441C07D0C82805D0D2695B1A5A43CF -:101DF000054B5343C01801F0E7FF10BD300DFF1F26 -:101E00003409FF1F3664FF1F7102000070B5244DB6 -:101E10002B68002B28D001F017FF2B68D8402B68C7 -:101E20000400002B27D002F0B7F82B68D8401D4BD8 +:101DF000054B5343C01802F097F810BD300DFF1F7C +:101E00003409FF1F3464FF1F7102000070B5244DB8 +:101E10002B68002B28D002F097F82B68D8402B684D +:101E20000400002B27D001F087FF2B68D8401D4B02 :101E30001D4A9978A1239B004B431268D118D25CAC :101E400091239B00002A20D0CA580132CA50174B58 :101E500017491B680868834214D3D23B181A012A19 -:101E60001AD0144B186070BD01F0EEFE124B1968C9 -:101E700001F082FED3E702F08FF80F4B196801F0F2 -:101E80007BFED4E70D495B18E8E7CA500C4B1B6892 +:101E60001AD0144B186070BD02F06EF8124B19684E +:101E700001F0D2FFD3E701F05FFF0F4B196801F0CB +:101E8000CBFFD4E70D495B18E8E7CA500C4B1B6841 :101E9000DB68E418201AE4E7F530FF30E1E7C046DC :101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 :101EB0003864FF1FA009FF1F1808FF1F2DFF3F00F8 :101EC0004064FF1F70B504000D00282916D10300DF :101ED000A433C2881B889B1A0B4A9BB293420DD92C -:101EE00006006A3605223100653001F0F5FF002852 -:101EF00004D13100200002F01FF870BD290020003D -:101F000001F00AFFF9E7C046FE7F0000F8B50500C2 -:101F1000012001F0B1FF134CA36AA26A9342FBD1E6 -:101F2000114E336001F038FE10490300086010487C +:101EE00006006A3605223100653001F0FDFE00284B +:101EF00004D13100200001F09FFF70BD29002000B7 +:101F000001F0CAFFF9E7C046FE7F0000F8B5050002 +:101F1000012001F091FE134CA36AA26A9342FBD107 +:101F2000114E336001F030FF104903000860104883 :101F3000426894460F4A17680022BC4501D24268A5 :101F4000BA1A0D4802603268AD18A422E562606AD0 :101F5000520302436262094A1278002A01D00F3B01 :101F60000B60F8BD00F00040340AFF1FE408FF1FBB :101F700028100040180AFF1F1C0AFF1F1C09FF1F22 :101F800070B580241025E405A3682B43A36001F0FD -:101F90000BFEA368AB43A36070BD0000F7B516004D +:101F9000A3FEA368AB43A36070BD0000F7B51600B5 :101FA00080221C001023D2050191916805000B438B -:101FB000936000225A4BD7301A6001F055FE9D23E2 +:101FB000936000225A4BD7301A6002F015F89D2327 :101FC0002A002F009B00EB58CA3201210092FC37F7 -:101FD000002B01D00021009A386801F0D5FE2900BD +:101FD000002B01D00021009A386801F0E5FF2900AC :101FE000009BCB311A784F4BD3351A604B780A7867 :101FF0001B0213438A7812041A43CB781B0613433F :10200000494A1BBA13604B790A791B0213438A7938 @@ -2506,9 +2506,9 @@ :10213000300004400C00044000010440040004404E :102140001000044014000440F7B5150080221C0064 :102150001023D2050091916807000B439360002380 -:10216000654AD730136001F07FFD9D233E009B0040 +:10216000654AD730136001F03FFF9D233E009B007E :10217000F9583B00CA363200FC33002900D07FE01A -:10218000586801F001FE390032785C4BCB311A609F +:10218000586801F011FF390032785C4BCB311A608E :102190004B780A781B0213438A78AC4612041A4320 :1021A000CB78281D1B061343554A1BBA13604B7985 :1021B0000A791B0213438A7912041A43CB791B064E @@ -2545,104 +2545,104 @@ :1023A00077D9002E56D0012E73D1A0880128E3D012 :1023B000002907D1581E032803D801F0B7FB1217D4 :1023C00015122E702978481E032811D80025364B87 -:1023D0001D602823237501F0A7FDA84227D0A58002 +:1023D0001D602823237501F01FFEA84227D0A58089 :1023E000CAE702212970EDE70421FBE70321F9E7A1 :1023F00007390129C0D82D490968C96A8906BBD5A2 :102400002B4908780028B7D1012A01D9002BB3D174 :1024100002230B708021274D2633890128782375EC -:1024200001F0A2FD80212878890101F0F5FC01234B +:1024200001F0F2FD80212878890101F00DFD0123E2 :10243000A380214B1B78002B0AD0FA2280211F4B4E -:1024400092001B8809025A431A4B187801F084FD48 +:1024400092001B8809025A431A4B187801F0B4FC19 :10245000002092E701F090FD2B78A680073B012B2E -:1024600003D917482E7001F0FFFC114B114C1A785C +:1024600003D917482E7001F06FFC114B114C1A78EC :10247000002A06D080210022207889011A7001F0FC -:1024800073FD01F031FC80212078090201F06CFD20 +:10248000C3FD01F0F1FC80212078090201F0BCFDC0 :10249000DEE7122071E7C046A60BFF1F6B09FF1F86 :1024A0001A09FF1F1C09FF1F4809FF1F4064FF1F77 :1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 -:1024C0000010004010B5002901D001F0F5FC10BD4E +:1024C0000010004010B5002901D001F07DFD10BDC5 :1024D000F7B5604B01919978A1239B004B435E4A6D :1024E000060014681022E418D6235B00E058362357 :1024F000FF33E35C00279343222B41D1574B0F3A24 -:102500001A600760012501F0FFFC019B1880E82399 +:102500001A600760012501F0F7FC019B1880E823A1 :102510005B00E35C002B01D0B34258DD0023504F39 :10252000FB70AD33FF33E3581A68002A03D09B8851 :10253000DB439B071DD03823FF33E35C002B18D00F :102540009B235B00E35C002B13D1D133FF33E35CAF :10255000B3420EDAA4235B00E15AE018090A023103 -:1025600001F0C2FC23000122FE33013E01351A872F +:1025600001F03AFB23000122FE33013E01351A87B8 :10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 :1025800003683D00002BBED081880430090A023167 -:1025900001F0AAFCD6235B00E3581F60B2E72300DA +:1025900001F022FBD6235B00E3581F60B2E7230063 :1025A000B133BA00FF339858013781880430090AE3 -:1025B000023101F099FCE8235B00E35CBB42EEDCF6 +:1025B000023101F011FBE8235B00E35CBB42EEDC7F :1025C000E822F61AED1800235200A354A6E70027CC -:1025D000F1E7200001F030FB00281FD0002E1DDDA8 -:1025E0007319882647190193B600200001F0FCFA00 +:1025D000F1E7200001F098FC00281FD0002E1DDD3F +:1025E0007319882647190193B600200001F004FBF7 :1025F0005A30800020184068013581880430090A6B -:10260000023101F071FC200001F0A6FBA359013357 +:10260000023101F0E9FA200001F07EFBA359013309 :10261000A351BD4202D0019B9D42E6D1114BE35C28 :10262000002BABD095239B00E35C002BA6D00E4B78 :10263000E15A0029A2D00D4AA35C994202D9013384 -:10264000A3549BE700231A212000A35401F0ACFB04 +:10264000A3549BE700231A212000A35401F01CFC93 :1026500094E7C046300DFF1F3409FF1F00140340EC :10266000E010FF1F5A020000720200005E0200002C :102670000D4970B54A6E0D4CD2038B69D20BA24244 -:1026800006D80B4D0224AA4204D901F0E5FA70BD28 +:1026800006D80B4D0224AA4204D901F00DFC70BDFE :1026900002246442E21815007E2425402242F4D030 :1026A000A3432B438B61F0E700F000400A200000B9 :1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 :1026C000BA7B002A02D101321A7003E0032AFAD041 -:1026D000022AF8D001F028FC00220120154B1A70C4 +:1026D000022AF8D001F0A0FC00220120154B1A704C :1026E000F8BD154B154D1C68154B9E7801232B70BA :1026F0002878C0B200F0A2FBBB7B002B0BD101F00D -:102700005BFAA1239B007343E41883239B00E41826 -:1027100023782B70E4E7032B02D101F09DFBF0E757 -:102720000020022BDCD101F02FFCEAE71C09FF1F7F +:102700006BFCA1239B007343E41883239B00E41814 +:1027100023782B70E4E7032B02D101F085FCF0E76E +:102720000020022BDCD101F0F7FBEAE71C09FF1FB8 :10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 :10274000300DFF1FF0B587B00EAD2F780FAD2D788F :102750000593AC46634614000E4D0CAA12782E78F1 :1027600003930D9B009201932200059B029701F0B9 -:102770004BFC2E70012C01D0042C08D1802206497C +:102770000BFA2E70012C01D0042C08D180220649BE :102780008B889343054A1278D20113438B8007B09C :10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 :1027A0000B001B3B70B504003020E02B0DD813004C :1027B000E025493BFF3B9BB2ED00AB4205D8034B04 -:1027C000200019825A8201F057FA70BD8410FF1F51 -:1027D00010B501F011FB054B00205B68052B04D9F7 +:1027C000200019825A8201F007FB70BD8410FF1FA0 +:1027D00010B501F091FA054B00205B68052B04D978 :1027E000034A5268D20200D4980810BD001000407D :1027F000FCE100E070B501F0BFFB0D4B1B68FC3342 :10280000DC691D6AFFF7E4FF6419844204D2094BB6 :1028100001241B68002B07D004220024064B1A70E9 -:10282000064A93690133936101F05EFA200070BD9E +:10282000064A93690133936101F01EFB200070BDDD :102830004064FF1F9809FF1F2309FF1FFC0FFF1FA4 :1028400070B50C4D2B68FC335C6A01F095FBFFF70B :10285000BFFF2B680025FC339B6AE318834204D238 -:10286000054B1B68AB4200D1051B01F03DFA280067 +:10286000054B1B68AB4200D1051B01F0FDFA2800A7 :1028700070BDC0464064FF1F9809FF1FD722044B5C :1028800092009B5810B5002B00D0984710BDC04651 :102890000000FF1F10B501F0D3F8FFF7EFFF274945 :1028A000274BCA6D274C1A4084235B001343CB652A -:1028B000254B1B68186A01F0DFFA244B244A1A6082 +:1028B000254B1B68186A01F0BFF9244B244A1A60A3 :1028C000244B254A1A60A022244B52001A60244B44 -:1028D000187801F051FA2000224901F09DFB0023F5 +:1028D000187801F031FB2000224901F0D5F90023DE :1028E000A3600233A360204B2049236003232048C8 -:1028F000A36001F091FB10221E4BFF201A60802282 +:1028F000A36001F0C9F910221E4BFF201A6080224C :1029000052031A60802292031A60802212041A6015 -:1029100001F01AFB012001F03FFAFA20400001F01B -:1029200063FA582001F058F9134801F045FA0120E4 -:1029300001F072F9072001F04FFA10BD00F00040DD +:1029100001F042FA012001F06FFBFA20400001F0C3 +:102920006BFA582001F0C8F9134801F03DF9012075 +:1029300001F012F9072001F01FFA10BD00F000406D :1029400000FEFEFF141000404064FF1F0000034023 :102950000180063DBC00034034080000A400034091 :102960004A0AFF1F71020000C3090000FFFF3F0079 :102970002810004000E100E030750000674E336829 -:1029800088331B6883F3088801F0E6F8644A6549D8 +:1029800088331B6883F3088801F09EFA644A65491E :10299000136800200B401360634B644A1B6893422A -:1029A00000D1A6E001F070FA0221614A13688B435E +:1029A00000D1A6E001F058FA0221614A13688B4376 :1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 -:1029C00073FA0023A3600233A3605C4B01202360F1 -:1029D00001F052FA0323A36001F016FA040001F09B -:1029E0000BFA050001F010FA554B186001F0E4FAFB +:1029C000DBF80023A3600233A3605C4B012023608B +:1029D00001F032F90323A36001F016FA040001F0BC +:1029E0008BF9050001F010FA554B186001F0E4F87E :1029F000544B1968621A531EA14200D21300802260 :102A0000D203934201D39B029B0A3268D16AC90761 :102A100000D471E04C491C0C09689BB24C435943EB @@ -2650,16 +2650,16 @@ :102A300047489B1A474A0768126847499B18474A04 :102A40009A1833409208DB190A600360042B03D9FB :102A5000013233400A6003600E684149A619300014 -:102A600001F08AF83F4F3E493B68C3183B60300095 -:102A7000019301F011F93C4E306808183849306074 -:102A8000884205D9019B01333B6001F005F93160B3 -:102A900001F00AF9354B1B78002B0DD001F0ACF991 +:102A600001F0DAF93F4F3E493B68C3183B60300044 +:102A7000019301F051F93C4E306808183849306034 +:102A8000884205D9019B01333B6001F045F9316073 +:102A900001F0D2FA354B1B78002B0DD001F02CF948 :102AA000334B621B196812188A4232D24919091B2A -:102AB000091A304801F0B0FA2F4E337A002B0ED0AD -:102AC00001F09AF9621BF1681218914224D9491950 -:102AD000091B091A294801F09FFA00233372284B79 -:102AE00083F3088801F090F8002001F0CDF901F09F -:102AF000ABFA01F0C9F95CE7DC0199000234641A11 +:102AB000091A304801F0E8F82F4E337A002B0ED077 +:102AC00001F01AF9621BF1681218914224D94919D0 +:102AD000091B091A294801F0D7F800233372284B43 +:102AE00083F3088801F0D8F8002001F0B5F901F06F +:102AF000FBF901F0B1F95CE7DC0199000234641ADA :102B00005900641A09214B438033CB40A408E418D0 :102B100089E7FA218900CCE71A49DBE74064FF1F07 :102B20001CF00040FFFFC1FF0C0AFF1FB64121034C @@ -2669,35 +2669,35 @@ :102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 :102B7000E408FF1F00100040740BFF1F3C100040D2 :102B800000000020DC050000A022054B92009B58AD -:102B900010B5002B01D0984710BD01F045F8FBE7B8 +:102B900010B5002B01D0984710BD01F055FAFBE7A6 :102BA0000000FF1FA122054B92009B5810B5002B7F -:102BB00001D0984710BD01F037F8FBE70000FF1F78 +:102BB00001D0984710BD01F047FAFBE70000FF1F66 :102BC000A222054B92009B5810B5002B01D09847CC -:102BD00010BD01F029F8FBE70000FF1FA322054B01 +:102BD00010BD01F039FAFBE70000FF1FA322054BEF :102BE00092009B5810B5002B01D0984710BD01F002 -:102BF0001BF8FBE70000FF1FA422054B92009B5827 -:102C000010B5002B01D0984710BD01F00DF8FBE77F -:102C10000000FF1F70B501F0EFF84F4B186001F096 -:102C2000E3F90400C30702D401F06EF870BD00227E +:102BF0002BFAFBE70000FF1FA422054B92009B5815 +:102C000010B5002B01D0984710BD01F01DFAFBE76D +:102C10000000FF1F70B501F06FF84F4B186001F016 +:102C200003F90400C30702D401F046F970BD002285 :102C30004A4B1A604A4B18780138042829D800F00A -:102C400075FF0320181C2400200001F0ADF90128B5 -:102C5000ECD0444C2378042B6ED100F095FF002873 -:102C6000E4D001F0E1F9582000F0B6FF0223237010 -:102C7000DCE7200001F008F8E9E7200001F0ACF9FA -:102C8000E5E7200001F038F8E1E7200000F09CFFC4 -:102C9000DDE701F041F90500012808D1324B1B782E +:102C400075FF0320181C2400200001F08DF90128D5 +:102C5000ECD0444C2378042B6ED101F0A5F8002869 +:102C6000E4D001F009F8582001F026F8022323707F +:102C7000DCE7200001F078F8E9E7200000F0E4FF4D +:102C8000E5E7200001F0B0F8E1E7200001F094F959 +:102C9000DDE701F061F80500012808D1324B1B780F :102CA000053B012B03D82000FFF76EFFD1E72D4B2A :102CB0001B78022B01D0052B20D1022D28D12B4BC4 :102CC0009B7BAB431CD12000FFF76CFF264B187891 :102CD0000128BED16405BCD4244925224B7B034284 :102CE00005D1233A13405A42534126331A000B7D33 -:102CF0009342AED9322000F0EFFFAAE7022D07D1B0 +:102CF0009342AED9322000F077FFAAE7022D07D128 :102D0000194B1B78052B11D12000FFF759FFDDE788 :102D1000012D0BD1012B03D12000FFF75FFF98E7B6 -:102D2000062B03D12000FFF767FF92E7200000F099 -:102D30007BFF022D8DD1C9E7032B04D10C4B987C6E -:102D400000F0BAFF72E7072B00D06FE7094B987BC2 -:102D500000F0F2FF6AE7C0469C09FF1F9809FF1FB9 +:102D2000062B03D12000FFF767FF92E7200001F098 +:102D30008BF9022D8DD1C9E7032B04D10C4B987C64 +:102D400001F00AF972E7072B00D06FE7094B987B77 +:102D500001F022F96AE7C0469C09FF1F9809FF1F8E :102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 :102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 :102D80001A640A4A5A500A4A04395A50094A083100 @@ -2727,25 +2727,25 @@ :102F0000804508220180063D8066082200800698E0 :102F100080550822F8B51E4B80261A680020140040 :102F20003440324232D11A681A4F32431A600122B9 -:102F30003B68063093433B6000F09EFF0122164D34 +:102F30003B68063093433B6000F07EFE0122164D55 :102F40002B681E432E603B680A2613433B60802794 :102F5000BF00124B1B683B4211D1013EF6B2FF2E5F :102F600009D17E220E4B1C682B68E40B144093435E -:102F700023432B6005E0082000F07EFFE9E7002EE8 +:102F700023432B6005E0082000F05EFEE9E7002E09 :102F8000EFD180222B68600893432B60F8BDC046C8 :102F9000C4F000405CF0004018F0004068F00040D1 -:102FA00060F0004010B500F027FE01215820034AD0 -:102FB00000F0DAFDFFF7AEFF10BDC046600AFF1F4C -:102FC00010B578220021034800F07EFE01F014F8CD +:102FA00060F0004010B500F0EFFF01215820034A07 +:102FB00000F052FEFFF7AEFF10BDC046600AFF1FD3 +:102FC00010B578220021034800F0E6FD00F04CFE29 :102FD000002010BD4867FF1F70B5040000F0CCFF53 :102FE00000230C200B4A010059438D18515C002925 -:102FF0000DD0A14208D1012300246B7000F064FFC2 -:1030000000F072FE200070BD01330A2BEBD11224B8 +:102FF0000DD0A14208D1012300246B7000F094FE93 +:1030000000F032FF200070BD01330A2BEBD11224F7 :10301000F6E7C0464867FF1F70B5040000F0ACFF3C :10302000002319001D000D4A1078002806D0A04288 :103030000CD1557001310C320A29F5D1002B0AD17F -:1030400000F0DAFF00F050FE002070BD5078461E00 -:10305000B0411B18EEE700F037FFF3E74867FF1FAA +:1030400000F012FE00F010FF002070BD5078461E08 +:10305000B0411B18EEE700F067FEF3E74867FF1F7B :10306000F7B504000C20002384460E4D01926746FC :103070005F43E85D7E19A04212D000280BD10A4BB5 :103080009C4662461B7808331370019B70707C5518 @@ -2769,7 +2769,7 @@ :1031A000154C1140C02212020A431A50134B1B78CF :1031B000DB08AB4201DC0020F8BD2378002B06D0F1 :1031C000A368002B00D0984701350C34EEE712209D -:1031D000F2E7C0466C43FF1F6843FF1FB0F000409A +:1031D000F2E7C0466443FF1F6043FF1FB0F00040AA :1031E0004067FF1FB4F000403C67FF1F00E100E0B4 :1031F000FF00FFFFFFFF00FF4867FF1F4467FF1F3F :10320000030010B51F2809D8072200201340072407 @@ -2781,39 +2781,39 @@ :10326000002C01D1200070BD2B78002B06D06B689C :10327000002B00D09847013C0C3DF1E71220F2E70B :103280004467FF1F3C67FF1F1FB5002102220B0090 -:1032900001910091052000F0CFFE02230B490A683E +:1032900001910091052000F01FFE02230B490A68EE :1032A0001A42FCD120230393039B5A1E0392002B46 :1032B000FAD1074A1368002BFCDA0B246C44200077 -:1032C000012100F0B9FD207804B010BD90C8004085 +:1032C000012100F0A1FC207804B010BD90C800409E :1032D00000C8004013B504000A4B0193019B002B6A :1032E00001D1112016BDFFF7CFFF23000340044298 -:1032F00005D0052000F0C0FD019B013BEDE7180063 +:1032F00005D0052000F0A0FC019B013BEDE7180084 :10330000F0E7C046FFFFFF0707B500F035FE80225B :103310000821D205936A0191002B01D107399162EE :1033200002210C4A11600199481E01900029FAD12E :1033300003311160053101910199481E0190002966 :10334000FAD11160002B02D18022D205936200F0E5 -:10335000CBFC07BD00C00040F0B52D4C89B02378F0 +:103350008BFD07BD00C00040F0B52D4C89B023782F :10336000002B4FD1FEF7CEFA02232A4F03903A6882 :103370001A42FCD120230693069B5A1E0692002B6C :10338000FAD1254E3368002BFCDA0120FFF7A2FFAB :10339000011E02D0112009B0F0BD030003220190EC -:1033A000009005AD9F2000F047FE0321280000F0AB -:1033B00043FD02233A681A42FCD120230793079B5E +:1033A000009005AD9F2000F097FD0321280000F05C +:1033B0002BFC02233A681A42FCD120230793079B77 :1033C0005A1E0792002BFAD13368002BFCDA012039 :1033D000FFF780FF0028DDD10398FEF7A7FAAA784F :1033E0006B7811041B020B4329780B4363601300B5 :1033F000113B0A49052B07D801239340A3600B60BA :10340000012323700020C6E780231B03F6E7C04694 -:103410005443FF1F90C8004000C800409808FF1F99 +:103410004C43FF1F90C8004000C800409808FF1FA1 :103420001E4B30B55A6818781D4B85B0D3185942D9 -:103430004B4101210093002300F0C6FD194B1A4AAD +:103430004B4101210093002300F0C6FC194B1A4AAE :1034400002259A6300221A6510325A658022C4212F :103450009D65164B1648D202DA6789004258154B13 :1034600080241A4080231B041343435064234120CB :103470000393E40500F006FA402000F003FA6562C9 :10348000039D6B1E0393002DFAD103236362FFF7A4 -:103490003BFFA562FFF760FF05B030BD6043FF1F33 +:103490003BFFA562FFF760FF05B030BD5843FF1F3B :1034A00095FFFEF700C80040050001FF04E100E0C1 :1034B00000E100E0FFFF00FFF0B585B00700FEF778 :1034C00021FA022305002D4C22681A42FCD1202348 @@ -2831,45 +2831,45 @@ :1035800000C8004001000006A8C8004001800001FA :1035900010B50020FFF790FF10BD000010B5064BDE :1035A00018705960FFF73CFF00211320034AFFF712 -:1035B00057FD002010BDC0466043FF1F2134FF1F90 +:1035B00057FD002010BDC0465843FF1F2134FF1F98 :1035C000F0B5040085B003920291FEF79BF98822C2 :1035D00063035B0B52051A438023DB059D6A80233E :1035E000274F0092BA68002601901B039A420CD91B :1035F000F82326001B041E401C4206D08022214BCB :1036000052025E6219680A431A60002D0BD100F065 :10361000B3FC02221C4B1A608023DB055A62013A7C -:103620009A6200F061FB0023039A934220D1002D9F +:103620009A6200F021FC0023039A934220D1002DDE :103630000AD100F0A1FC144B03221D608023DB059E -:103640005A629D6200F050FB8023BA681B039A42C5 +:103640005A629D6200F010FC8023BA681B039A4204 :1036500008D9002E06D000220A4B0C495A621A687B :103660000A401A600198FEF761F9002005B0F0BD2C :10367000009A0299D2181278CA540133D4E7C0468E -:103680005443FF1F00C8004000C00040FFFFFEFF82 +:103680004C43FF1F00C8004000C00040FFFFFEFF8A :10369000F0B587B0029103920400FEF733F9019070 :1036A00000F06AFC802302250122234EDB053560F1 -:1036B0005D629A6200F018FB204F3B682B42FCD100 +:1036B0005D629A6200F0D8FB204F3B682B42FCD140 :1036C00020230493049B5A1E0492002BFAD11C4D14 :1036D0002B68002BFCDA0120FFF7FCFD002802D04C -:1036E000112007B0F0BD2000039A029900F0D4FB2E +:1036E000112007B0F0BD2000039A029900F0DCFA27 :1036F000022304003A681A42FCD120230593059B5B :103700005A1E0592002BFAD12B68002BFCDA0120FF :10371000FFF7E0FD051EE3D100F02EFC802303221D -:10372000DB0535605A629D6200F0DEFA0198FEF713 +:10372000DB0535605A629D6200F09EFB0198FEF752 :10373000FDF8E0B2D5E7C04600C0004090C80040A8 :1037400000C80040F0B5802489B00600FEF7DAF822 :10375000E405A36A02250393029000F00DFC012307 -:10376000304F3D606562A36200F0BEFA2E4C2368C4 +:10376000304F3D606562A36200F07EFB2E4C236803 :103770002B42FCD120230593059B5A1E0592002B5A :10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD :10379000002803D01124200009B0F0BD244B236081 :1037A000022322681A42FCD120230693069B5A1E4C :1037B0000692002BFAD12B68002BFCDA0120FFF7D0 :1037C00089FD021EE6D11B4B03211E600300019000 -:1037D0000090202000F030FC022322681A42FCD125 +:1037D0000090202000F080FB022322681A42FCD1D6 :1037E00020230793079B5A1E0792002BFAD12B68C0 :1037F000002BFCDA0320FFF76DFD041ECAD100F098 :10380000BBFB80230322DB053C605A629C6200F014 -:103810006BFA039B002B01D1FFF776FD0298FEF7B0 +:103810002BFB039B002B01D1FFF776FD0298FEF7EF :1038200085F8B8E700C0004090C8004000C80040DC :103830000100000694C8004007B50002019104226F :10384000000A01A9FFF724FF0EBD000073B50500B3 @@ -2894,8 +2894,8 @@ :1039700010B50400012813D1A022184992050B6844 :103980005B015B0913430B60154B164A1968114024 :10399000154A0A431A60402219680A431A6010BD8A -:1039A0000028FCD101000A2000F056FB21000B206A -:1039B00000F052FBC0220A4B920019680A434021D2 +:1039A0000028FCD101000A2000F036F921000B208C +:1039B00000F032F9C0220A4B920019680A434021F4 :1039C0001A601A688A431A60B022044912060B680A :1039D0005B015B0913430B60E1E7C04614F0004054 :1039E0001CF000407F00FEFF80FD010072B6074A18 @@ -2907,14 +2907,14 @@ :103A40000023034A1360034A1360034A136070475C :103A500054F0004040F1004044F10040002310B514 :103A6000184C8AB0009301932378012B27D0694624 -:103A7000012000F0D9F9002817D1009B12490293C8 +:103A7000012000F029F9002817D1009B1249029378 :103A8000019B06AA0393114B02A81B680493104BD9 -:103A90001B68059300F088F810220E4906A800F074 -:103AA0001BFA002804D1FF23237000200AB010BDA8 -:103AB0000123094A074902A8237000F075F8012084 +:103A90001B68059300F020F910220E4906A800F0DB +:103AA00023F9002804D1FF23237000200AB010BDA1 +:103AB0000123094A074902A8237000F00DF90120EB :103AC000F4E7C0464464FF1F1029001108290011C3 :103AD0000C290011202900114864FF1F13B501248F -:103AE0006946012000F0A0F9034B00940193FFF711 +:103AE0006946012000F0F0F8034B00940193FFF7C2 :103AF000B5FF200016BDC046BB0B000010B5FFF798 :103B00009FFFFFF7EBFF002802D0024B984710BD44 :103B1000FEE7C046E1A2000002B471464908490030 @@ -2922,147 +2922,147 @@ :103B300049084900095C49008E4402BC7047C046F0 :103B400003B47146490840004900095A49008E44AF :103B500003BC70470000000001B40248844601BC69 -:103B6000604700BFC9A9000001B40248844601BCF7 -:103B7000604700BF0167010001B40248844601BCF0 -:103B8000604700BF090E000001B40248844601BC32 -:103B9000604700BF01D7000001B40248844601BC61 -:103BA000604700BFBD5C010001B40248844601BC0F -:103BB000604700BFDD3F000001B40248844601BCFD -:103BC000604700BFE9F6000001B40248844601BC2A -:103BD000604700BFF935010001B40248844601BCCA -:103BE000604700BF7912010001B40248844601BC5D -:103BF000604700BFD9B0000001B40248844601BC50 -:103C0000604700BFED68010001B40248844601BC72 -:103C1000604700BF7997000001B40248844601BCA8 -:103C2000604700BFE512010001B40248844601BCB0 -:103C3000604700BFE917010001B40248844601BC97 -:103C4000604700BF71B0000001B40248844601BC67 -:103C5000604700BFE90B010001B40248844601BC83 -:103C6000604700BFD1AE000001B40248844601BCE9 -:103C7000604700BF8944000001B40248844601BC8B -:103C8000604700BF116E000001B40248844601BCC9 -:103C9000604700BF0934010001B40248844601BCFA -:103CA000604700BF090E000001B40248844601BC11 -:103CB000604700BFD544010001B40248844601BCFE -:103CC000604700BF4DF9000001B40248844601BCC2 -:103CD000604700BFB70E000001B40248844601BC33 -:103CE000604700BF6137010001B40248844601BC4F -:103CF000604700BF9DA9000001B40248844601BC92 -:103D0000604700BFF535010001B40248844601BC9C -:103D1000604700BFDD0A010001B40248844601BCCF -:103D2000604700BF51B8000001B40248844601BC9E -:103D3000604700BFD1B5001101B40248844601BC00 -:103D4000604700BFC1F7000001B40248844601BCCF -:103D5000604700BFE94C010001B40248844601BC41 -:103D6000604700BF5976010001B40248844601BC97 -:103D7000604700BFE927000001B40248844601BC47 -:103D8000604700BFEDA5000001B40248844601BCB5 -:103D9000604700BF2144000001B40248844601BCD2 -:103DA000604700BF6911010001B40248844601BCAC -:103DB000604700BF53B9000001B40248844601BC0B -:103DC000604700BF8D11010001B40248844601BC68 -:103DD000604700BF8937010001B40248844601BC36 -:103DE000604700BFF90D010001B40248844601BCE0 -:103DF000604700BF8512010001B40248844601BC3F -:103E0000604700BFC95C010001B40248844601BCA0 +:103B6000604700BFE512010001B40248844601BC71 +:103B7000604700BF8D82000001B40248844601BC4A +:103B8000604700BF8914010001B40248844601BCAB +:103B9000604700BF9D6A000001B40248844601BC32 +:103BA000604700BFB70E000001B40248844601BC64 +:103BB000604700BF8D11010001B40248844601BC7A +:103BC000604700BFC166010001B40248844601BCE1 +:103BD000604700BFD1B5001101B40248844601BC62 +:103BE000604700BFC115010001B40248844601BC12 +:103BF000604700BF6137010001B40248844601BC40 +:103C0000604700BFD9B0000001B40248844601BC3F +:103C1000604700BF3D71010001B40248844601BC09 +:103C2000604700BF29A2001101B40248844601BCCC +:103C3000604700BFE94C010001B40248844601BC62 +:103C4000604700BF0189000001B40248844601BCFE +:103C5000604700BF0534010001B40248844601BC3E +:103C6000604700BF0167010001B40248844601BCFF +:103C7000604700BFADAE000001B40248844601BCFD +:103C8000604700BF6DF6000001B40248844601BCE5 +:103C9000604700BF2D6C010001B40248844601BC9E +:103CA000604700BF7997000001B40248844601BC18 +:103CB000604700BF9573010001B40248844601BC0F +:103CC000604700BF7912010001B40248844601BC7C +:103CD000604700BFE1AC000001B40248844601BC6B +:103CE000604700BFDD3F000001B40248844601BCCC +:103CF000604700BFCD4C010001B40248844601BCBE +:103D0000604700BFC95C010001B40248844601BCA1 +:103D1000604700BF5976010001B40248844601BCE7 +:103D2000604700BF090E000001B40248844601BC90 +:103D3000604700BF21A9000001B40248844601BCCD +:103D4000604700BF6D0B010001B40248844601BC0E +:103D5000604700BFC1A5000001B40248844601BC11 +:103D6000604700BFDD0C010001B40248844601BC7D +:103D7000604700BF0934010001B40248844601BC19 +:103D8000604700BFF90D010001B40248844601BC40 +:103D9000604700BFBD5C010001B40248844601BC1D +:103DA000604700BFED6B010001B40248844601BCCE +:103DB000604700BF01D7000001B40248844601BC3F +:103DC000604700BF8B52010001B40248844601BC29 +:103DD000604700BFC56D010001B40248844601BCC4 +:103DE000604700BF116E000001B40248844601BC68 +:103DF000604700BFF535010001B40248844601BCAC +:103E0000604700BF8512010001B40248844601BC2E :103E1000604700BF156B010001B40248844601BC35 -:103E2000604700BF0D52010001B40248844601BC46 -:103E3000604700BFE1AC000001B40248844601BC09 -:103E4000604700BF3D71010001B40248844601BCD7 -:103E5000604700BFF9ED000001B40248844601BC90 -:103E6000604700BF75F8000001B40248844601BCF9 -:103E7000604700BFC1A5000001B40248844601BCF0 -:103E8000604700BF0189000001B40248844601BCBC -:103E9000604700BF016C010001B40248844601BCC8 -:103EA000604700BF9573010001B40248844601BC1D -:103EB000604700BF8914010001B40248844601BC78 -:103EC000604700BFE9D4000001B40248844601BC49 -:103ED000604700BF21A9000001B40248844601BC2C -:103EE000604700BFCD4C010001B40248844601BCCC -:103EF000604700BFC115010001B40248844601BCFF -:103F0000604700BF8D82000001B40248844601BCB6 -:103F1000604700BFCD0C010001B40248844601BCDB -:103F2000604700BFDD0C010001B40248844601BCBB -:103F3000604700BFA9D8000001B40248844601BC14 -:103F4000604700BF85C1000001B40248844601BC3F -:103F5000604700BFED6B010001B40248844601BC1C -:103F6000604700BF8B52010001B40248844601BC87 -:103F7000604700BFB352010001B40248844601BC4F +:103E2000604700BF090E000001B40248844601BC8F +:103E3000604700BFBD0B010001B40248844601BCCD +:103E4000604700BF85C1000001B40248844601BC40 +:103E5000604700BF0D52010001B40248844601BC16 +:103E6000604700BF016C010001B40248844601BCF8 +:103E7000604700BF9DA9000001B40248844601BC10 +:103E8000604700BFF9ED000001B40248844601BC60 +:103E9000604700BF53B9000001B40248844601BC2A +:103EA000604700BF51B8000001B40248844601BC1D +:103EB000604700BFD1AE000001B40248844601BC97 +:103EC000604700BFDD0A010001B40248844601BC1E +:103ED000604700BFC9A9000001B40248844601BC84 +:103EE000604700BF496D010001B40248844601BC2F +:103EF000604700BF8552010001B40248844601BCFE +:103F0000604700BFCD0C010001B40248844601BCEB +:103F1000604700BF71B0000001B40248844601BC94 +:103F2000604700BF19FA000001B40248844601BC92 +:103F3000604700BF8937010001B40248844601BCD4 +:103F4000604700BFEDA5000001B40248844601BCF3 +:103F5000604700BFE90B010001B40248844601BC80 +:103F6000604700BF4DF9000001B40248844601BC1F +:103F7000604700BF0134010001B40248844601BC1F :103F8000604700BF75A9000001B40248844601BC27 -:103F9000604700BF19FA000001B40248844601BC22 -:103FA000604700BF6D0B010001B40248844601BCAC -:103FB000604700BF0134010001B40248844601BCDF -:103FC000604700BFC166010001B40248844601BCDD -:103FD000604700BFC56D010001B40248844601BCC2 -:103FE000604700BF0534010001B40248844601BCAB -:103FF000604700BFBD0B010001B40248844601BC0C -:10400000604700BFADAE000001B40248844601BC69 -:10401000604700BF9D6A000001B40248844601BCAD -:10402000604700BF2D6C010001B40248844601BC0A -:10403000604700BF6DF6000001B40248844601BC31 -:10404000604700BF496D010001B40248844601BCCD -:10405000604700BF8552010001B40248844601BC9C -:08406000604700BF29A2001116 -:10406800020000008ABE00110100000098BC001187 -:104078000200000086BE001101000000A840FF1FDA -:1040880002000000A0BC001101000000C461FF1F75 -:104098000200000084BE0011030000003861FF1F09 -:1040A80012000000020000008ABE0011010000009A -:1040B800E0BC00110200000086BE001101000000F3 +:103F9000604700BFED68010001B40248844601BCDF +:103FA000604700BFC1F7000001B40248844601BC6D +:103FB000604700BF2144000001B40248844601BCB0 +:103FC000604700BFF935010001B40248844601BCD6 +:103FD000604700BFE9D4000001B40248844601BC38 +:103FE000604700BFE9F6000001B40248844601BC06 +:103FF000604700BF8944000001B40248844601BC08 +:10400000604700BF6911010001B40248844601BC49 +:10401000604700BFB352010001B40248844601BCAE +:10402000604700BFA9D8000001B40248844601BC23 +:10403000604700BF75F8000001B40248844601BC27 +:10404000604700BFD544010001B40248844601BC6A +:10405000604700BFE917010001B40248844601BC73 +:08406000604700BFE9270000E2 +:104068000200000086BE00110100000098BC00118B +:104078000200000082BE001101000000A840FF1FDE +:1040880002000000A0BC001101000000BC61FF1F7D +:104098000200000080BE0011030000003061FF1F15 +:1040A800120000000200000086BE0011010000009E +:1040B800E0BC00110200000082BE001101000000F7 :1040C800DDBC001102000000EABC00110300000082 -:1040D8007361FF1F0200000084BE0011030000008E -:1040E8008861FF1F0200000086BE00110100000069 +:1040D8006B61FF1F0200000080BE0011030000009A +:1040E8008061FF1F0200000082BE00110100000075 :1040F800DCBC001102000000E8BC00110300000055 -:104108004961FF1F0200000084BE00110300000087 -:104118006A61FF1F020000008ABE00110100000052 -:1041280024BD00110200000086BE0011010000003D -:10413800F141FF1F0200000036BD00110100000020 -:104148001BBD00110200000086BE00110100000026 -:10415800F041FF1F0200000034BD00110100000003 -:104168009061FF1F0200000086BE001101000000E0 -:10417800EF41FF1F0200000032BD001101000000E6 -:104188000BBD00110200000086BE001101000000F6 -:10419800EE41FF1F0200000030BD001101000000C9 -:1041A80006BD00110200000086BE001101000000DB -:1041B800ED41FF1F020000002EBD001101000000AC -:1041C80001BD00110200000086BE001101000000C0 -:1041D800EC41FF1F020000002CBD0011010000008F +:104108004161FF1F0200000080BE00110300000093 +:104118006261FF1F0200000086BE0011010000005E +:1041280020BD00110200000082BE00110100000045 +:10413800F141FF1F0200000032BD00110100000024 +:104148001BBD00110200000082BE0011010000002A +:10415800F041FF1F0200000030BD00110100000007 +:104168008861FF1F0200000082BE001101000000EC +:10417800EF41FF1F020000002EBD001101000000EA +:104188000BBD00110200000082BE001101000000FA +:10419800EE41FF1F020000002CBD001101000000CD +:1041A80006BD00110200000082BE001101000000DF +:1041B800ED41FF1F020000002ABD001101000000B0 +:1041C80001BD00110200000082BE001101000000C4 +:1041D800EC41FF1F0200000028BD00110100000093 :1041E800FCBC0011020202020202000000000000F2 -:1041F80016150000A14B0011674B001178BD001186 +:1041F80016150000BD4B0011834B001174BD001152 :1042080090011D0018001800FFFF070102030405B4 :104218000602010600000000000000000000000087 :104228000000000000000000000000000000000086 -:1042380003000000020000008ABE00110100000017 -:1042480098BD00110200000086BE001101000000A8 -:10425800AC42FF1F02000000A2BD001101000000D7 -:10426800BE61FF1F0200000084BE001103000000B1 -:104278002864FF1F0200000086BE00110100000034 -:10428800AC42FF1F02000000A0BD001101000000A9 -:10429800C061FF1F0200000084BE0011030000007F -:1042A8002064FF1F120800000000000000C6C600BE -:1042B80000000000000000001311000000010000D1 -:1042C80000000111FFFF00005048593600000000AF -:1042D800000000000B000500F0000000B4000028FA -:1042E800002800283075A000A000A000A000000849 -:1042F8000008E001F000100010001000100010008D -:10430800100050005000500010001000D0070000AE -:10431800000000000F0001000500307507001000C4 -:10432800010081FF00000000FF000000117400116F -:1043380019720011A96F0011FFFF0100FF000000B2 -:104348002D9E0011A99B0011C19A001100000000C8 -:104358000000000000000800040000003B00010805 -:104368005902E00188212800FF0000000200000037 -:104378008ABE00110100000050BF001102000000B9 -:1043880086BE001101000000F143FF1F020000007B -:1043980082BE0011010000000068FF1F020000003B -:1043A80086BE001101000000F043FF1F020000005C -:1043B80080BE001101000000EE43FF1F0200000054 -:1043C80086BE001101000000EC43FF1F0200000040 -:1043D8007EBE001101000000E443FF1F1800180012 -:1043E8001D0090010200000302020000020000000C -:1043F8008ABE00110100000064BF00110200000025 -:1044080086BE0011010000003444FF1F02000000B6 -:104418007CBE001100000000000000000200000047 -:0E44280084BE0011030000002068FF1F20FF6B +:10423800030000000200000086BE0011010000001B +:1042480094BD00110200000082BE001101000000B0 +:10425800AC42FF1F020000009EBD001101000000DB +:10426800B661FF1F0200000080BE001103000000BD +:104278002064FF1F0200000082BE00110100000040 +:10428800AC42FF1F020000009CBD001101000000AD +:10429800B861FF1F0200000080BE0011030000008B +:1042A8001864FF1F12A6A6A6000000000000000068 +:1042B800161500000001000000000111FFFF0000BA +:1042C8005048593600000000000000000B000500AF +:1042D800F0000000B4000028002800283075A00075 +:1042E800A000A000A00000080008E001F0001000F5 +:1042F8001000100010001000100050005000500076 +:1043080010001000D0070000000000000F0001009E +:104318000500307507001000010081FF0000000053 +:10432800FF0000001174001119720011A96F00112B +:10433800FFFF0100FF0000002D9E0011A99B001146 +:10434800C19A0011000000000000000000000800F1 +:10435800040000003B0001085902E0018821280000 +:10436800FF0000000200000086BE001101000000EE +:104378004CBF00110200000082BE001101000000C5 +:10438800E943FF1F020000007EBE0011010000008B +:104398000068FF1F0200000082BE0011010000003B +:1043A800E843FF1F020000007CBE0011010000006E +:1043B800E643FF1F0200000082BE0011010000005A +:1043C800E443FF1F020000007ABE00110100000054 +:1043D800DC43FF1F180018001D00900102000003B5 +:1043E800020200000200000086BE00110100000069 +:1043F80060BF00110200000082BE00110100000031 +:104408002C44FF1F0200000078BE001100000000CD +:10441800000000000200000080BE00110300000040 +:064428002068FF1F20FFC9 :040000051FFF184180 :00000001FF diff --git a/bin/BOOT_THB1_v15.hex b/bin/BOOT_THB1_v15.hex new file mode 100644 index 0000000..fe12f0e --- /dev/null +++ b/bin/BOOT_THB1_v15.hex @@ -0,0 +1,3065 @@ +:020000041100E9 +:10300000002373B52B4D2C4C28006361022601F080 +:1030100079F94021FE2221742800284B009601F006 +:10302000C3F9002836D1217CFF222800244B0096CA +:1030300001F0BAF900282DD1224BA2899A4226D15B +:10304000E389214A93420DD1204B6361204B2268D2 +:10305000002A03D1002B01D043CB43C4280001F048 +:103060008FF973BD1B4A934201D00023EFE71A4B3F +:103070001A4A1B68934206D9C02304222800217CE7 +:103080009B0001F007FA114B6361154BDFE700234A +:103090002374EAE7CC233821AC2228009B01217459 +:1030A00001F0F8F90028F2D10E4B63610E4BE38179 +:1030B0000E4BCCE7F441FF1F9C61FF1FA861FF1F6F +:1030C000AA61FF1F5959000083050000314100111A +:1030D00014BD001182150000C061FF1F871300009E +:1030E00020BD0011E9410011AAAAFFFF08BD00118F +:1030F000F7B5164B0192C318021D002000938823D8 +:103100005B05D3181B685C1C1AD09CB2402C18D8E5 +:103110008D781E0CAC466746CD782D023D43AE42FD +:1031200006D1019800280ED110000C70240A4C70B2 +:1031300003249BB20733A343D218009B9A42DED3E9 +:10314000FEBD4432F9E71000FAE7C046FC0F00006C +:10315000802213B503000324019189B25201073183 +:103160009B18A14304305A1A88235B05C3181B68B7 +:10317000591C03D190429241104016BD99B240298A +:1031800007D80B000733A343C0189042ECD30020AC +:10319000F3E74430F9E7134B134A1B68126810B584 +:1031A000FA24934201D81A00F824104BE4021B6859 +:1031B0009A4210D813000E4A12689A420ED3013375 +:1031C00007D1F823DB029C4203D10A49054808F0E5 +:1031D000AFFB200010BDFC24E402ECE7FE24E40277 +:1031E000F7E7C04600C0071100D0071100E0071143 +:1031F00000F00711FFFFFF7FF0B59BB015000490B2 +:103200000391402A00D9A0E006AB59801A80FFF74D +:10321000C2FF0400042816D9002206A9FFF768FFA0 +:10322000052810D906AB1B88AB420CD1002D07D066 +:10323000514B2A000499C01808F02AFC002802D13A +:1032400001201BB0F0BD06AB1D8020000699FFF7E2 +:103250007FFF041E7BD1069B0793FFF79CFF802313 +:103260005B01C618802307001B039E4201D3F8268A +:10327000F60288235B05F31801931B68013302D023 +:10328000019808F045FB3D49019808F051FB3B1DB2 +:103290000293331D05938822029B52059B181B68DD +:1032A00008935A1C3CD044219AB20091402A04D879 +:1032B0000320D11D814389B2009103991B0C8B42DD +:1032C00024D0402A22D80122300008A9FFF710FF9D +:1032D000021E1BD1380008A9FFF70AFF04000428CA +:1032E00031D9009A059B9B1880225201B218934253 +:1032F00040D288235B05C118009A09A808F0D0FACB +:103300001D4B009A09A9F01808F072FA009A029B66 +:103310009446634402931A4B029AFB189A42BAD31A +:1033200088235B05FC1821680198013908F000FB2F +:10333000200008F0EDFA039A07AB5A803000079995 +:10334000FFF706FF0400002C03D1002079E70428D2 +:10335000FBD988235B05E018069908F0E9FA0323F6 +:10336000EA1C9A4300D16BE7034B0499E01808F07C +:103370003FFA65E70424ECE704000011FFFFFF7F3C +:10338000F80F0000F7B505001400402A21D80027E7 +:1033900001AE71803780FFF7FEFE042816D93A008F +:1033A0003100FFF7A5FE042810D93688BC420BD0A7 +:1033B000BD4209D0221CB44200D9321C064B92B245 +:1033C000C118280008F06CFA30B2FEBDC04300B24C +:1033D000FBE703204042F8E70400001137B5042260 +:1033E00004000D0001A81649FFF7CCFF02000428D5 +:1033F0000BD1019BA34208D3AB4204D0104901A8D2 +:103400000195FFF7F9FE01203EBD0E4C2368200018 +:10341000019308F07DFA019920000139019108F02B +:1034200087FA80235B01E418074B9C42EED104220B +:10343000034901A80195FFF7DFFE0020E4E7C0463D +:103440005555000000C007110000081130B589B0C3 +:1034500008F09EF910226946254808F061FA254BCC +:10346000009A9A420ED1019B029A0F2B33D8002169 +:1034700001240698013B08D2002900D00292029B49 +:10348000013331D10023029325E0551CF2D1020013 +:103490002100EFE710341022200004A908F040FAC0 +:1034A000029B013301D1069B0293882304995B059B +:1034B000C918059B06981A03120B049105928142C4 +:1034C00003D02B4201D108F0EBF9019B013B0193A2 +:1034D000019B002BDED1029B002B03D004930498A8 +:1034E0004168084709B030BDE025014C2D03EFE7E6 +:1034F00000000111504859368022F8B5964C974B80 +:10350000D200002120001C6008F02AFB2300944A0E +:1035100088331A60934B1A786A23002A00D011333B +:10352000E3620A232365904B37221B780820A363AC +:103530008E4B2118E361102323628D4B3B25636181 +:10354000C823DB00A36123008C331A602823013ACF +:10355000E26320646364CA67043A211DCA672100DC +:10356000BC310D602100C03108602100C4310B6006 +:1035700021000635CC310D602100083DC8310D60B9 +:103580002100D0310A602200D43210602200D832EB +:10359000136022000227E032210017604222DC3152 +:1035A0000A6021001B3DE4310D602100E831086014 +:1035B0002100EC310B6023000521F4331960230056 +:1035C000F0331A602300183290331A6023009433CA +:1035D000186023001E3A98331A60AF23DB00236083 +:1035E000644BFA262363644B644DE360644BF03113 +:1035F000A3642300FF31FC33B600A16021611E608B +:10360000A5627325E5656D3D6565A56596255D4AF1 +:10361000AD00E264666258606766A566002709250A +:10362000A767E566584F594D606720002567E26738 +:103630003A6015279C30676007001A203860200028 +:10364000A0300700212038602000A83007004C4837 +:1036500038602000F830066026006427A436376002 +:1036600026005F3FAC3637602600033FB036376038 +:103670002600C637B436376026000027B8363760D4 +:1036800038269E60424E96205E64424E5A66DE6147 +:10369000414E9A645E62F53EFF3E9E621E269A6728 +:1036A000354A8000DE661F675F67DD651D6618624C +:1036B000DA67BE23394A5B00E250394BD8382350D1 +:1036C00004302250C4225200A350C623E4205B00E1 +:1036D000E1500433334AE1503349344BD16034492B +:1036E000800019503349E938FF3819503249043005 +:1036F000195032493248D16132491163324951631C +:103700001900F4310860CE20304940001160304982 +:10371000195019002F48F83108602F49D1658221CE +:103720002E4A89005A501A002D490832D1671A00D2 +:103730002C49B432116088212B4A89005A501A0052 +:103740002A49883211602A4ADA6407F0B1FF012061 +:1037500007F036FFF8BDC0460004FF1F4064FF1F9E +:10376000206FFF1F3044FF1F4A0AFF1F3A07000067 +:1037700080C3C9019A020000DC0500006A1800003D +:1037800050C3000088130000F009FF1F204E000006 +:103790006509FF1F68100000C409000040420F00C7 +:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 +:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 +:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 +:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 +:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 +:1037F000851DFF1F0223F0B501245F4D5F4E2B7026 +:103800005F4B91B01C705F4F039333680021200021 +:10381000FB7006F0E9FD200006F0E0FC0023984272 +:1038200005D0FA78552A02D0332A00D097E03360C9 +:10383000042006F041FF07F00BFFFFF75DFE07F0E5 +:103840003FFF1F22012400214F4B10AE1A704F4B37 +:103850001C704F4B19704F4B19689143163A0A432D +:103860001A60602219689143403A0A431A6007F0CF +:103870003FFF07F085FFC120FF21474B80001A580A +:103880008A431A50C522920098588843BF39014391 +:1038900099509858414908408021C901014380202E +:1038A00099509958C0050902090A0143995080218D +:1038B0003B48490108F0C4F8032322003949019428 +:1038C0000093394808F06CF82C22384905A807F015 +:1038D000E7FF05AC61782078023406F09FFCA64231 +:1038E000F8D1334C334B226803201A40A023DB026B +:1038F00013432360802322689B04134323602268C0 +:103900002D4B1A4080239B03134323602B4A2C4BDF +:10391000934200D8012007F063FF07F029FF8023BE +:103920002268DB0413432360287807F069FF039BB8 +:103930001878C0B208F0F4F808F042F821490420E1 +:1039400008F0E6F806F084FE00F0AAF800F0F8FDB2 +:1039500000F0A0FE00F01AFA002011B0F0BD0093B4 +:103960002100184A042008F04BF88023DB059C62F4 +:10397000FFF76CFD5CE7C0464A0AFF1F34F00040C9 +:103980003044FF1FCC61FF1F480AFF1F490AFF1F79 +:10399000680AFF1FBCF0004000E100E0FF00FFFFED +:1039A0003444FF1FB856FF1F3454FF1F30BC0011B2 +:1039B00014F00040FF7FF8FFFFFF9FFF0080FF1F14 +:1039C000206FFF1F3B00010870B500252549264ADE +:1039D00026484D6308CA1B051B0DED188242F9D11C +:1039E00000268022224B92058B630921214B224C19 +:1039F0001E62224B1120DA67214BDA688A43DA60B3 +:103A00009A6820490A409A60266008F0C9F8112097 +:103A100007F0E6FF636C1C4A13406364EE24E40085 +:103A20006C431A4A200C0400642390420AD8FA22FC +:103A30003300D200904205D9154B0A21C01807F077 +:103A4000FFFDC3B2134A11201372D48007F0E0FDCA +:103A5000114B1B78002B04D1104B1021187808F063 +:103A6000A7F870BD00000540080605408006054027 +:103A7000FF01000000F000400038004004E100E0D9 +:103A80003CF00040FFDFFFFFFFFEFFFFB70B000031 +:103A900030F8FFFFB461FF1FEE63FF1FEC61FF1FF3 +:103AA000002210B51100112007F092FF10BD000098 +:103AB000F8B500230926364F364C3B62E3681120E7 +:103AC000B343E36007F08CFF112008F069F8112080 +:103AD00008F016F840232268102513432360802342 +:103AE0006268DB02134363608023A26802211343F0 +:103AF000A360A368284A08201340A3608023A2681B +:103B00009B0113430122A360236CAB432364236C0A +:103B10001343236480231B013B62226B1F4B1A401B +:103B20002263626B1A406263A26B1A40A263E26B6B +:103B30001340E363E3681A4A1340E36006F06EFB48 +:103B40000121082006F07EFC8023164A5B00516CA0 +:103B500011200B43536407F03BFDFD21C720124B9E +:103B6000124A89005A50A36B80002B43A363E36879 +:103B70000F4A3343E3600F4B195811408022120261 +:103B80000A431A50802292051A600B4B5D63F8BD00 +:103B900000F000403CF00040FFFFDFFFEFFFEFFFD1 +:103BA000FFFF7FFF003800400000FF1FC9390011F0 +:103BB000FF00FFFF00E100E00000054030B503A872 +:103BC00004880B20002C0ED14968074D08784978ED +:103BD000090201430A20A94205D1012120001980D0 +:103BE000024B1B7A137030BD192A0000B461FF1F0D +:103BF000F7B5150008AA16884A680F4F147852784E +:103C0000120222430A24BA4214D10122DBB20192E9 +:103C100000962A0007F06CFC041E0BD1074B1B68B2 +:103C2000002B07D068782A780002104342425041A6 +:103C3000013098472000FEBD022900003861FF1FB7 +:103C400030B5012503790400BFB02B4211D00A49D9 +:103C5000408806F0B9FF28420BD0084B01A95B8DC4 +:103C60004D800B80064B00221B7A60880B7104F09C +:103C70009DF83FB030BDC0463061FF1F6840FF1F58 +:103C8000B461FF1F10B50549054806F053FF042134 +:103C9000044A054806F010FF10BDC0463061FF1F02 +:103CA000FFFF00005CBC00116840FF1F10B5024818 +:103CB00004F0FEFE10BDC046413C0011012303701C +:103CC0000B4B1A7A4270022282709A78C270DA78AC +:103CD0000271032242711A7982715A79C2710C22DF +:103CE00002729A794272DB7983720B207047C04668 +:103CF000B461FF1F022310B50370013B437005330D +:103D0000837010330371443B43712A33837144330E +:103D1000C37100230372064B04001B8843720A30F0 +:103D2000FFF7CCFF831D0A30C0B2E37010BDC04660 +:103D3000B461FF1F10B5142007F0CAFD124B142206 +:103D40000021186007F00CFF002007F049FC01205B +:103D500007F036FF022007F01BFE032004F04CF9A9 +:103D6000042006F061F9052003F08AFB062004F028 +:103D700057F8072001F054FA082006F07DFE0920CC +:103D800001F03CF810BDC0463C61FF1F07F010FE7B +:103D9000012007F0CDFC07F033FF0000094B10B500 +:103DA0000400984205D0012904D12000064906F0FC +:103DB000C1FE10BD0229FCD1013904F037FE0028F4 +:103DC000F3D0F6E7FEFF00006261FF1F70B50D7AC9 +:103DD000100004AA2C00168810221440154220D18D +:103DE000002E20D10A78022A18D14A685178157815 +:103DF0000E4A09022943914205D00D4A914209D049 +:103E00001C800A2404E014220A491A8007F048FDA5 +:103E1000200070BD0C2208491A80F7E71C8001249D +:103E2000F6E70824F4E70B24F2E7C046F3FF0000AE +:103E3000F4FF0000BC42FF1F38BD001110B50400A4 +:103E40000749084806F076FE074804F071FD002097 +:103E5000E40704D50721054A054806F02DFE10BDEC +:103E60006261FF1FFFFF00009D3D0011A0BC00111B +:103E7000AC40FF1F00B50C4BBFB01A780B4902A82D +:103E800000F0C2FC6B4680B2D880002809D06A4698 +:103E9000074B01A91B889380064B0022188803F06A +:103EA00085FF3FB000BDC0464061FF1F4161FF1F5D +:103EB0000641FF1F1042FF1F00B50C4BBFB01A7820 +:103EC0000B4902A801F0B8FE6B4680B2D8800028EA +:103ED00009D06A46074B01A95B8D9380064B0022EF +:103EE000188803F063FF3FB000BDC0466A61FF1F42 +:103EF0006B61FF1FAC40FF1F1042FF1FF7B50E00A4 +:103F0000377A1C0008AB11003D001A8820231D40A1 +:103F10001F423CD13378022B3BD173681F785B780A +:103F20001B023B431E4FBB4208D01E4FBB4214D066 +:103F30001D4DAB4221D00A252800FEBD002A2AD102 +:103F4000142C2AD82200F06807F0AAFC174B1C702A +:103F5000012CF1D9FFF7B0FFEEE7002A1BD1202C8E +:103F60001BD82200F06807F09BFC114B04211C7049 +:103F7000104B187807F01CFEDEE7E3B20124009234 +:103F800001940A00310007F0B3FA0500D4E70825D0 +:103F9000D2E70125D0E70B25CEE70D25CCE7C046BB +:103FA000F3FF0000F4FF0000022900006A61FF1F18 +:103FB0004061FF1FEC61FF1F332310B50400037045 +:103FC0000A220749013007F06BFC064B0F201B68E3 +:103FD0001A0AE37222731A0C1B0E6273A37310BDCC +:103FE000B461FF1FDC61FF1F30B5012503790400B8 +:103FF000BFB02B4213D00B49408806F0E5FD2842A4 +:104000000DD06A46084B02A81B889380FFF7D4FFA7 +:104010006B46D8800022608801A903F0C7FE3FB03C +:1040200030BDC0466261FF1F0641FF1F10B5024848 +:1040300004F03EFD10BDC046E93F001170B516000A +:1040400004AA148805AA15784A68507811780002E5 +:104050002A4A0843801805284BD807F079FC031337 +:104060001E29343F0720032C0BD80422121BAA421E +:1040700000D92A0022491A803000091907F010FCE3 +:10408000002070BD0720112CFBD81222121BAA425F +:1040900000D92A001B491A80EEE707200E2CF0D821 +:1040A0000F22121BAA4200D92A0017491A80E3E7FF +:1040B0000720032CE5D80422121BAA4200D92A00AB +:1040C00012491A80D8E70720032CDAD80422121BE1 +:1040D000AA4200D92A000E491A80CDE70720032CF6 +:1040E000CFD80422121BAA4200D92A0009491A80FB +:1040F000C2E700220A201A80C3E7C046DCD5FFFFD2 +:10410000EBBC00118861FF1FDBBC0011D6BC0011A5 +:10411000D1BC0011CCBC001110B50D21024A0348DE +:1041200006F0CAFC10BDC046C0BC00111C41FF1FF8 +:10413000F0B50024274E85B03000B47100F0E2F8ED +:10414000254D264BEA89297C9A422FD10423300041 +:1041500003AA00F057F90400300000F011F9012320 +:10416000B371002C34D16B4699892B68C9BA4B4383 +:1041700029891B4A1B145B1853806B46D9896B68CD +:1041800049BA89B24B4369891B0C5B181548191C45 +:104190001BB2834200DD011C0B0400D500211388F3 +:1041A000918001331380200005B0F0BD022722006A +:1041B00003AB3000009700F0F7F80E230400297CD1 +:1041C0000122300000976B4400F0EEF80443C3E78F +:1041D0001C00E8E7F441FF1F9C61FF1F83050000FE +:1041E000B461FF1F0F27000073B5234E300000F0AD +:1041F00089F8224D07236A463000297C00F002F935 +:1042000004003000002C33D16B461B787F2B2FD855 +:1042100000F0B6F86B46D878F02302041B031A406E +:104220006B469B8816495BBA9BB21A432B68000900 +:1042300053432A891B0C9B184B806B465A789B78FA +:1042400012031B011A436B68024353436A891B0C18 +:104250009B180C481A1C1BB2834200DD021C13047D +:1042600000D500220B888A8001330B80200076BDA8 +:1042700000F086F80124F9E7F441FF1F9C61FF1F5D +:10428000B461FF1F0F27000070B5114C237C002B79 +:104290000FD0382B0ED10F4D280000F033F8CC236F +:1042A000AC222800217C9B0100F0F4F8280000F0EB +:1042B00067F870BD084BE2899A42FAD1054D280093 +:1042C00000F020F800222800217C00F0C5F8EDE77E +:1042D0009C61FF1FF441FF1F8305000010B5084BD0 +:1042E0001A7C002A09D05B69002B06D09847041E6F +:1042F00001D0FEF785FE200010BD0124F9E7C0467D +:104300009C61FF1F70B5C17905000C00631E9C41C4 +:104310001A4BE402E41849000460C9B2007906F0BF +:10432000C7F8E979687949000131C9B206F0C0F8E7 +:10433000E8790930C0B207F0E3FB0023E36661339C +:104340002360AA795B3B002A0ED022689A43023B85 +:10435000134323600A23E3610733236200232363AB +:10436000A3630133E36370BD22689A4302231343BE +:104370002360462363610633A361EFE700500040EA +:1043800070B5002504000368DD66C0790930C0B24D +:1043900007F026FB2900207906F026F8290060792D +:1043A00006F022F870BD0000F8B51E0006AB1D78BF +:1043B000002304681700E366616007F0E9F9012350 +:1043C0008022E3662B0027615200013B08D207F0F0 +:1043D0007FFB08200A4A1168002D03D12800F8BD90 +:1043E0002261F2E7236F034203D02369013D33705A +:1043F000013613685B1A032BEED90125EEE7C046A0 +:104400006008FF1F70B51C00002305681600EB66EE +:10441000696007F0BDF901238022EB66230052009A +:10442000013B08D207F054FB08200A4A1168002C0F +:1044300003D1200070BD2A61F2E72B6F034203D045 +:104440002B69013C3370013613685B1A032BEED9DC +:104450000124EEE76008FF1F002370B50468150013 +:10446000E366616007F094F90123E366256107F0D4 +:104470002FFB8020064A80001168636B034205D140 +:1044800013685B1A032BF8D9012070BD0020FCE7EC +:104490006008FF1F70B51D00002304681600E36666 +:1044A000616007F075F90123E36626610F33626BE3 +:1044B0001A42FCD02B0A23611023626B1A42FCD0F3 +:1044C000EDB2256107F004FB8020074A80001168E7 +:1044D000636B034205D113685B1A032BF8D90120E3 +:1044E00070BD0020FCE7C0466008FF1F70B51E00CD +:1044F000002305681400EB66696007F049F90123A1 +:10450000A619EB660F33B4420ED107F0E1FA802012 +:104510000A4A800011686B6B03420CD113685B1A66 +:10452000032BF8D9012070BD21782961696B1942EC +:10453000FCD00134E7E70020F5E7C0466008FF1F24 +:1045400010B5084CE368002B08D18022064B5202BC +:104550001B689B186360054B1B68236007F018FB02 +:10456000A06010BDDC61FF1FC8F00040CCF000402F +:1045700070B5184A936A916A9942FBD116498A68C4 +:104580009A421FD39A1A8B60144B0126186893B273 +:10459000D202D20E4343424300204C681B0A1B192F +:1045A00012029B180E4C0A684B60551CA3420CD893 +:1045B000002801D04B600A600A4A136008680A4B61 +:1045C000186070BD581E821ADDE7084A30009B183B +:1045D0002A00EAE700F00040DC61FF1F140AFF1F19 +:1045E00040420F00C8F00040CCF00040C0BDF0FFDA +:1045F00070B51F4C23793F2B01D93F2323711D4BED +:1046000022791A701878C0B207F072FA18231A4982 +:104610001A4A0B801A4913800B805380A3791949D9 +:1046200080200B800C21938001334B43164D191CC5 +:104630000001834200D9011C2980D1806379002BBD +:1046400011D101336371237A012B01D80223237224 +:104650006279237A0D4853430A21584306F0F0FF4C +:104660000B4D286070BDA02BEDD9A023EAE7C04612 +:10467000D061FF1F480AFF1F0E42FF1FDC43FF1FD0 +:104680000C42FF1F0A42FF1F0842FF1F7102000079 +:10469000C061FF1FF8B515210020FEF79FFE114CE9 +:1046A000011E114D09D10C22104BC1CBC1C42800F1 +:1046B00007F056FAFFF79CFFF8BD0C2220000C49CA +:1046C000FEF760FE0C2802D0084B43CB43C40C22FB +:1046D00028000849FEF756FE0C28EBD00C220021DA +:1046E000E5E7C046D061FF1F9C61FF1F2CBD001194 +:1046F000FC0C0000F50C0000F0B51D4C8022A54418 +:104700000400882069465201400507F0A1F8902274 +:1047100012016A441300200032C832C316C816C3FF +:104720008023144C144FA6689B033343A3603B6063 +:1047300007F0BEF98823A0685B05C01807F0E8F809 +:104740000025882329008022A0685B05C018401935 +:104750006944520007F04CF880230135FF355B01B6 +:104760009D42EED1A6603E60044B9D44F0BDC04624 +:10477000FCEFFFFF4C43FF1F9808FF1F04100000D1 +:10478000F0B5040087B0002825D0684606F0E8FFA1 +:104790001B4C022806D106226946200007F078F952 +:1047A000002816D06946002301250F262F00E25C61 +:1047B000013310091030874038002F0032409740F5 +:1047C0003A0002434A610439062BEFD16846FFF7ED +:1047D00093FF07B0F0BD182269460A4807F038F881 +:1047E0006A46A300D358013305D01822FF2168463A +:1047F00007F0B6F9EAE70134062CF1D1E9E7C04643 +:104800006509FF1F00090011F0B5002504000E0026 +:1048100085B0AA4200D186E04B1C087801934B7802 +:104820008978377909021943F3783F061B040B4353 +:104830001F43039720706570252800D196E033D878 +:10484000112813D806F0E4FF69002B012B012B017E +:104850002B01AA00B800B1002B012B012B012B0169 +:104860002B012B012B012B0105012501232800D150 +:10487000DEE0DB2800D034E1042A00D8ACE01025CB +:10488000052A05D0551F2A003800711D07F008F8C9 +:1048900005223100200007F003F82A003900601DCE +:1048A00006F0FEFF05353EE0562859D010D83328D3 +:1048B00000D19DE0552839D02628DAD19F4B290018 +:1048C000132218001D0007F04BF9FEF799FB5CE07E +:1048D000712800D177E0722800D180E0602800D1F3 +:1048E0008BE0DC28C5D1022A00D875E07378BFB20E +:1048F0006370B378A370032A05D0033A390092B2EB +:10490000F01CFEF779FC10223900E01CFEF73AFD9E +:10491000C51C002807DA60705CE00C222000884982 +:1049200006F0BEFF0C25280005B0F0BD013A854D0C +:104930000C2A13D8002A0AD02800019906F0B0FFEB +:10494000FFF756FE0C2228007F49FEF755FC290090 +:104950000C22601C06F0A4FF0D25E4E70C22EBE717 +:10496000784D7A4B2A0043CB43C2E9E7013A734DB5 +:104970000C2A11D8002A08D00199280006F090FFCF +:104980000C2228007249FEF737FC29001322601C14 +:1049900006F086FF1425C6E70C22EDE705226D49D7 +:1049A000601C06F07DFF0625BDE712226A49601CE7 +:1049B00006F076FF1325B6E708226849601C06F06A +:1049C0006FFF0925AFE77178F02905D8644B188887 +:1049D00001F08EFD0225A6E7FF236370FAE7614B25 +:1049E000012A03D072789A706270F3E79B78F4E73B +:1049F0002000FFF7E1FA050095E7013A594B5A4DBF +:104A0000072A10D8002A10D00121280059700199D6 +:104A100006F046FF01F04AF829000722601C06F064 +:104A20003FFF08257FE70722EEE700225A70F3E7F1 +:104A3000042A04D94D4D2F6007F0AAF8A860FFF7AB +:104A400097FD0422039003A9601C06F029FF0525A9 +:104A500069E7474D062A15D906222800019907F073 +:104A600017F800280ED006220199280006F018FF3A +:104A7000062240492800FEF7BFFB0123394A9178FE +:104A80000B43937029000622601C06F009FF0725DE +:104A900049E7012AA0D07078FFF772FE9AE7012853 +:104AA00000D0E6E6931E344F132B04D87378002B06 +:104AB00009D100F015F9314B39001D78601C6A1ED0 +:104AC00006F0EEFE2FE7551E2A000199380006F089 +:104AD000E7FE2B49AAB23800FEF78EFB00F038F94A +:104AE000E9E7DA281DD1042A00D875E7082A15D984 +:104AF000B37972791B021343F27912041A43337AA1 +:104B00001B0613433B603B680522310020000393E2 +:104B100006F0C6FE0422601D03A950E7FE23637061 +:104B2000F1E7DE2800D057E7511E012A01D1002508 +:104B3000F9E6019800F0A0FFF9E7C0469C61FF1F6D +:104B400038BD0011D061FF1FFC0C00002CBD00110E +:104B5000F50C0000A861FF1F8861FF1F5043FF1F75 +:104B60001042FF1FCC61FF1FAD42FF1FDC61FF1F22 +:104B70006509FF1FADAC0000CD63FF1FCB63FF1FB6 +:104B8000AEDE000070477047020010B5094B0A32D4 +:104B9000094C92B2DA815A8298811882207802F008 +:104BA0000DFB0422054B012120781A7007F000F854 +:104BB00010BDC046DA42FF1F1664FF1F1564FF1FB9 +:104BC000013870B5042809D806F0C2FE0309280888 +:104BD0001200234B0221187806F0EAFF70BD204B2B +:104BE0000821187806F01CFE00221E4B1A72F5E709 +:104BF000802200241B4B1A4D52001A8108211A688A +:104C00002878DC7206F01CFE2100287807F000F8F6 +:104C1000012000F051FE00F049FFDFE7104B0821B2 +:104C2000187806F0FDFD1048FFF764F80F4B104AA6 +:104C30009B79002093800F4A13808022094B5200F9 +:104C4000D8721A8100F038FE00F030FF0A4B9B78D2 +:104C5000002BC3D0094A136006F072FEBEE7C046BF +:104C6000EC61FF1FC061FF1F1942FF1FD061FF1FD2 +:104C7000DC43FF1F0A42FF1FCC61FF1F34F00040DE +:104C800010B501290BD1012809D1054B1B78002B48 +:104C900005D02622034B04485A72FFF775FF10BD5A +:104CA000EE63FF1FC061FF1FC40900000300F0B5E1 +:104CB0000A4D8E18B14202D152008018F0BD0C7816 +:104CC0002F6824093C5D0F271C700C7801313C4093 +:104CD0002F683C5D5C700233ECE7C0460442FF1F66 +:104CE0000D22124B10B51A700C23114C1149237070 +:104CF000093A033B1048637006F0D2FD2D230122D0 +:104D00000E490F48A371FFF7D1FF01220D49FFF7AC +:104D1000CDFF01220C49FFF7C9FF030000200B491A +:104D200002001870FEF768FA10BDC046EA63FF1F64 +:104D3000CB63FF1FEBBC0011CD63FF1F6709FF1F93 +:104D4000D263FF1F6609FF1F6509FF1FAEDE00006B +:104D500070B5124C142220001149FEF713FB431EBC +:104D6000104D132B17D8AB78002B14D0431C2B708D +:104D700009236B7000230019037028782900013083 +:104D8000C0B206F0ADFC297822000139C9B200207A +:104D900005F0B0FD70BDFFF7A3FFEEE7CD63FF1F89 +:104DA000AEDE0000CB63FF1F10B5114B1A781870F0 +:104DB000002A0ED000280BD10E4B1A78062A07D8ED +:104DC0005423D340DB0703D50B4B187802F0F6F9D8 +:104DD00010BD0028FCD0074B1B78012B02D0033BF1 +:104DE000022BF5D8044B0121187806F0E1FEEFE71D +:104DF000EE63FF1F1564FF1F1664FF1F70B54A4E58 +:104E00004A4A4B493070012005F000FC00F0B2FE28 +:104E1000FEF7F6F806F0B4FD032246494648FFF7D0 +:104E200045FF2D24030004221C7044490130FFF784 +:104E30003DFF30230470424D424C437083702E3B43 +:104E4000062220004049EB87FEF79CFA062813D083 +:104E5000200006F085FC022809D00321200006F07E +:104E600037FC8D23E3706E3B237119336371062287 +:104E700020003549FEF7C0F9344B1B68FC335C64F5 +:104E8000FFF766FF0020FFF78FFF314C314A012109 +:104E9000314B1278207802F053F9304A304B1278B7 +:104EA0000021207802F04CF901222E4B1A702E4B73 +:104EB000DB78552B31D12D4B3B325A722C4B2D4A7E +:104EC000AB81EA812B826A822021307806F0D8FB00 +:104ED0000120404205F05AFD0120404205F0F6FD58 +:104EE000FFF71AF9FEF7CEFE00F0A4FC01204042C5 +:104EF000FEF7A4FF012006F0BBFDF02001F0DCFA74 +:104F00000121307806F054FE307802F0B3FA1A48E6 +:104F100006F0A6FCFEF7CCFD70BD6422174B5B7952 +:104F200053431A000A32CBE7EC61FF1F854B001197 +:104F3000814C00115043FF1F8861FF1FA861FF1FB4 +:104F4000DA42FF1F6509FF1FADAC00004064FF1F80 +:104F50001664FF1F3842FF1F1942FF1FEA63FF1F3D +:104F6000CB63FF1FBC63FF1FCC61FF1FC061FF1F2E +:104F7000C4090000CE090000EE61FF1FD061FF1FD1 +:104F8000F8B50A0020230D001A40194257D0574B9C +:104F90001B78002B50D0FFF7EBFA554B554C564E73 +:104FA00099686268737A8A1ADB039A4202D3616055 +:104FB000FEF77EFD327A217A531EDBB2994205D18B +:104FC000FFF762F9002000F0A7FD0FE09142F9D34E +:104FD00000232372FFF782F9012000F09DFD474F67 +:104FE0003800FEF787FE390006F022FD637A002BB9 +:104FF0001FD0013BDBB26372002B1AD1404BDB7830 +:10500000552B01D106F09CFCE37A002B0CD0002339 +:105010003C4A3A4FE3721388380001331380FEF79D +:1050200069FE390006F004FD642370795843FFF7E8 +:10503000ABFD237A0133237220206840F8BD0BB208 +:10504000002B0ADA304B187806F05AFB002801D002 +:1050500006F096FD80200002EFE70224214206D0F0 +:10506000244B01201A72FFF79FFE2000E5E70B0793 +:105070001ED5FFF77DFA1E4B1E491F4C98684A68E3 +:10508000637A821ADB039A4202D34860FEF710FD6E +:10509000FFF724F9FFF7F8F8012000F03DFD00F0DC +:1050A000E3FB2368DB0701D5FEF7C0FF0820C4E758 +:1050B0001024214206D00D4B1B78002BD5D1FEF7D2 +:1050C000F5FDD2E70124214207D0104800F06CF82A +:1050D00006F0DEFB00F006FDC7E7042408002040D0 +:1050E0002142ABD0FEF7C6FEBFE7C046EE63FF1F0E +:1050F000DC61FF1FC061FF1FD061FF1F1942FF1F4E +:10510000CC61FF1FB461FF1FEC61FF1FFC41FF1F5B +:10511000F0B51B4B1B4F1B883A8804001A4E1B4DE1 +:1051200085B09A420DD832889A420AD3184B1A8811 +:105130002B889A4205D1174A174B12881B889A422E +:105140001BD0052001F00EFA3B8802AA1380338899 +:10515000019053802B88114D93800F4B02A91B881F +:10516000D3800F4B2A78188802F02AFF0D4B0821B4 +:105170002878019A1C7006F0D3FA05B0F0BDC0463D +:10518000BA63FF1F0E42FF1F0C42FF1F0A42FF1FA0 +:10519000B863FF1FB663FF1F0842FF1F1664FF1F9F +:1051A0001042FF1FB463FF1F13B50C4B1C78002C7B +:1051B00011D1002801D00A4B18600A4A0A4B117815 +:1051C0000A4A10780A4A01920A4A0092002205F01F +:1051D00089FA200016BD1124FBE7C0461564FF1FA5 +:1051E000B063FF1F1464FF1F0464FF1F1664FF1FDA +:1051F000F063FF1FF463FF1F10B5064B12201B78EE +:10520000052B06D1044B13221988044B187801F0A2 +:1052100085FB10BD1564FF1F1042FF1F1664FF1FA2 +:1052200010B500240122114B52421870104B1C7013 +:10523000104B1A8002F01EF904220F4B21001A7045 +:105240000E480C3206F074FC102221000C4806F0C7 +:105250006FFC07220B4B1C600B4B1C700B4B1C7024 +:105260000B4B1A700B4B1C7010BDC0461664FF1F11 +:105270001564FF1F1042FF1F1464FF1F0464FF1F0B +:10528000F463FF1FF063FF1FCA63FF1FC963FF1FA3 +:105290001242FF1FC863FF1FF8B5174C06002578A0 +:1052A00006A814240078052D23D1B41F134FA5B2EE +:1052B0001824BD421DD88D1FADB2BD4219D8FA25A4 +:1052C0006D00AA4215D21D000D4F0A3DADB2BD4280 +:1052D0000FD80C4C26800C4C21800C4900240A80ED +:1052E0000B4A1380FFF714FF0A4B0421187806F0CD +:1052F00097FA2000F8BDC0461564FF1F790C000026 +:10530000750C00000E42FF1F0C42FF1F0A42FF1FD8 +:105310000842FF1F1664FF1FF0B50BB20D0089B0E5 +:10532000002B00DB70E1A44E307806F0E9F9041E92 +:1053300050D00378A22B00D122E1D02B1AD0912B90 +:1053400045D143780E2B42D19C4B82889A423ED164 +:105350009B4A83681278052A39D1032018567F2882 +:1053600035D0984B1B68002B31D05B68002B2ED0BA +:1053700098472CE08078072829D806F0E9FA042815 +:10538000183F3F74A8D86378002B0CD101218C4BB7 +:1053900019708D4B1A78002A5BD08C4B307801F055 +:1053A000CFFE002855D00722854B1A7051E0617856 +:1053B0000029F8D1E378002B11D0854A854B12786B +:1053C000307801F0BDFE60706378002BEBD12000D7 +:1053D00006F0D6FB80200002684009B0F0BD784B93 +:1053E0001B78022BF3D00121307806F059FB0028FE +:1053F000EAD10121307806F0DBFBE5E76378002B8A +:10540000D1D16F4F032807D13B78052B02D101334F +:105410003B701EE00223FBE76F4B1A886F4B029331 +:10542000002A0BD01B78002B03D00121307806F026 +:1054300077F93B78062B04D1013BE9E7029B1A7010 +:10544000F7E7042B41D10121029B3078197006F057 +:10545000AFFB5C4B1B68002BB9D01B68002BB6D090 +:10546000574A107884E76378554F002B27D10622DE +:10547000211D5B4806F014FA62895A4B5A491A807A +:10548000A2895A4B1A80E3890B800521397058494B +:105490000A80584A1380228A574B1A80574B1B7830 +:1054A000012B09D11F2001F05DF8FA22920042433E +:1054B0000421307806F034F90022484B75E7312B8F +:1054C00000D070E70022454B1A700323A0E70622A4 +:1054D0000021434806F02CFB0023454A0421138099 +:1054E000444A30781380444A138006F099F9082121 +:1054F000307806F095F9A379083B5A425341304A77 +:1055000003331370304B1B78002B06D0334B3078AD +:105510001A78002A06D001F051FE0122314B524286 +:105520001A8096E70121197006F042FBF5E7082181 +:10553000307806F075F96378002B00D047E72C4BE4 +:105540002D4F0293E388029A04211380294B30786F +:1055500003932389039A138063893B8006F0A0FAA2 +:10556000002800D033E7264B1B68002B00D12EE724 +:10557000039902983A88098800881B68984726E7AB +:105580004379132B00D022E70389012B0AD11D4B4D +:105590001B78022B06D10821307806F041F9FFF77D +:1055A0002BFE14E7052000F0DDFF08210200307813 +:1055B00006F0B6F80BE7C0461664FF1F051400009E +:1055C0001564FF1FB063FF1F3842FF1F1942FF1F02 +:1055D000EA63FF1FCB63FF1FEC63FF1FEE63FF1F38 +:1055E000BD63FF1F1042FF1FC463FF1FC663FF1F81 +:1055F000BA63FF1FB863FF1FB663FF1FBC63FF1FC3 +:10560000AC63FF1FB463FF1F8020C001014200D0C4 +:10561000E2E6CB0731D5324B1B78002B1DD0314E43 +:1056200005AC3378052B1AD1023B23702E4B210099 +:105630001B7823722D4B1B7863722D4B187801F069 +:1056400023FD002809D007202A4B30701B68002B4F +:1056500003D01B68002B00D098470120BCE60E2029 +:10566000254B06221B7825492370254B1B78637038 +:1056700002ABC01806F014F9D8E70223080018405E +:10568000194209D0174B1B78052B03D11D4B1888E5 +:1056900006F0BEF902209FE60424214203D0FFF762 +:1056A00037FD200098E6082308001840194200D171 +:1056B00093E6154B1C78012C03D0022C0DD008204A +:1056C0008AE6124B124A134913481B88128809882C +:1056D00000880094FFF7E0FDF1E7FFF78DFDEEE7AE +:1056E000EE63FF1F1564FF1F1242FF1FC863FF1FF9 +:1056F0001664FF1FB063FF1FCA63FF1F1342FF1F23 +:10570000C963FF1F1042FF1FB463FF1F0842FF1F42 +:105710000A42FF1F0C42FF1F0E42FF1F10B502A8D6 +:1057200004880B20002C10D14968087849780902B8 +:1057300001430C48814209D1022119800A4B598842 +:105740001170DB7800205BB2537010BD074C0A204B +:10575000A142FAD102211980034B998811705B791B +:10576000F0E7C0466E2A0000B461FF1F6F2A0000F8 +:10577000F7B5150008AA16884A680F4F14785278B2 +:10578000120222430A24BA4214D10122DBB201924E +:1057900000962A0005F0ACFE041E0BD1074B1B68D7 +:1057A000002B07D068782A7800021043424250410B +:1057B000013098472000FEBD022900002864FF1F29 +:1057C00030B5012503790400BFB02B4225D0144920 +:1057D000408805F0F9F928420CD0124B01A95B8DE5 +:1057E00000220B8002234B800F4B5B888B806088EC +:1057F00002F0DCFA0D49608805F0E6F9C0070CD527 +:105800000B4B01A91B8800220B8002234B80064B07 +:105810009B888B80608802F0C9FA3FB030BDC046DB +:105820002064FF1F3C42FF1FB461FF1F1864FF1F6D +:105830009642FF1F10B5074C0749200005F07AF982 +:105840002000064905F076F90721054A054805F0CC +:1058500033F910BDFFFF00002064FF1F1864FF1F15 +:1058600058BD00113C42FF1F10B5024803F020F95B +:1058700010BDC046C15700110221430888400B40AB +:105880000A31084003430E20024AD17881430B437A +:10589000D3707047AD42FF1F064A1379410705D503 +:1058A00080210B4380011371907170477F210B4061 +:1058B000F8E7C046AD42FF1F054A5378002803D0E1 +:1058C00080210B43537070477F210B40FAE7C0469D +:1058D000AD42FF1F0F21114BDA780A40DA705028D1 +:1058E00010D901310A43DA702022D9780A43DA70DC +:1058F0004022D9780A43DA708022D97852420A438A +:10590000DA7005E03C28EFD82828F1D81428F3D81D +:105910000122D9780A43DA707047C046AD42FF1FB2 +:10592000F8B57F23324D04006E789E43314B984288 +:1059300005DD76232B70363B33436B70F8BD2E4B61 +:10594000984203DA58232B701433F5E783B21A0018 +:1059500000215F32294892B2294F297082422DD905 +:10596000A9708C4203DA5B421CB220232B700534F1 +:1059700020B20A2105F064FE04B2FA239B009C4287 +:1059800033DB80232A785B4213432B706421200091 +:1059900005F056FE0A2100B205F0E2FF09B22A78AE +:1059A0007B5C13432B700A21200005F049FE0A217D +:1059B00000B205F0D5FF09B27B5C0AE08022AA7034 +:1059C000002CDADA5B421CB220232B705F23092CF7 +:1059D000E9DC1E430A2120006E7005F0C1FF09B208 +:1059E000AA787B5C1343AB70A8E7632CCEDCEDE7B1 +:1059F000AD42FF1F1B4E00001DFCFFFF2A080000E8 +:105A000082BD00117F23F7B5194FCD013E79040007 +:105A10009E433E71EDB2632806DD093B33433B7183 +:105A200040231D437D71F7BD0300093304DA582379 +:105A300033433B716C23F4E70E4B019300280BDAE0 +:105A40000423444224B23B710A21200005F088FF60 +:105A5000019B09B25B5CE4E70928F5DD0A2105F04A +:105A6000EFFD019B00B21B5C1E433E71ECE7C0469C +:105A7000AD42FF1F82BD0011F8B50A4F05003B780B +:105A80000E00002B0CD0084C2000FEF73BFC33002E +:105A90002A0020003978FEF729FD2000FEF770FC6F +:105AA000F8BDC0463464FF1FB442FF1F70B50A4EF4 +:105AB0000A4D07223100280005F0EAFF002809D02E +:105AC000074C31000722280005F0EAFE08212000DB +:105AD000FFF7D2FF70BDC046AD42FF1F2D64FF1F10 +:105AE0002C64FF1F7F2210B50A4B59789143033A6B +:105AF0001A70103A0A435A7078220E219A70DA7896 +:105B00008A43DA7006221A7137325A71FFF7CEFFD4 +:105B100010BDC046AD42FF1F10B5002824D0134C65 +:105B20000A210223E05E05F08BFD00B2FFF7F8FECC +:105B30000423E05E642105F083FD012100B2FFF73C +:105B400061FF207AFFF7C6FE0320FFF795FE0020D5 +:105B5000FFF7A2FE064B1878053843425841C0B201 +:105B6000FFF7AAFEFFF7A2FF10BDC046B461FF1FFA +:105B70001564FF1F70B50024094D2800AC71FEF7B5 +:105B8000C1FB10233E212800064AFEF7AFFCA042CD +:105B900000D13E34044B28001C70FEF7F1FB70BDB1 +:105BA000B442FF1F72BD00113464FF1F0200F0B544 +:105BB00001270A480A4E51188B1A002B00DCF0BD51 +:105BC000082415784308684038404000805B013C59 +:105BD00058406D08002CF5D10132EDE7FFFF0000C1 +:105BE00092BD0011F0B500250F269D4200DBF0BDEF +:105BF0004C5D070944403440A400A058013578406A +:105C0000F3E70000F0B589B06A460D000B000F27DE +:105C1000110010351C780133260024093E4016700F +:105C200054700232AB42F5D12023024AFFF7DAFF6B +:105C300009B0F0BD98BD0011F0B54E780B7889B071 +:105C400036020C00170001901E43012A61D9954BC2 +:105C50009E4200D877E001339E421CD1062A17D11C +:105C6000CA788B7812021A430B791B0413434A79C2 +:105C700012061A438C4B5A6100221A705A808B4AC2 +:105C80005A608B4A9A608B4ADA60002009B0F0BDF6 +:105C900088225205EEE7884B9E423CD182498B78A0 +:105CA000002B00D0F6E00C2A31D10F22A3789343C9 +:105CB000E278120213432279120413436279120626 +:105CC00013434B60E279A07912020243207A000468 +:105CD0001043627A12060243CA60E27AA07A120284 +:105CE000024376484A81834208D804236E4914222D +:105CF00001980B7005F0D4FD1420C7E71201D218EB +:105D000089235B059A42F0D801238B70BDE7022AF4 +:105D1000FAD00523EAE76A4A01239642E6D1FFF763 +:105D20006BFA052F0CD9E378A2781B021343227972 +:105D300012041A4363791B061343624A03931360E8 +:105D400005F0FEFDA1E7584D2B78002B9DD1AB78D7 +:105D5000002B00D1A0E02B8901339BB20093B3420A +:105D600000D091E0132AD4D9CF7C8B7C3F02122142 +:105D700020001F43FFF71AFF874200D08EE0002E5D +:105D80003DD1E378A2781B0213432279E96812041B +:105D90001A4363791B06134303930A228B4212D1E1 +:105DA000FF23A370E370237163716B89002B09D10A +:105DB000E37B227C1B0212041343A27B13431B09C7 +:105DC00001336B8100226B89002B8ED0002A67D1B2 +:105DD000686837013818000B6B690003039098421C +:105DE00005D9686105F094FDEB780133EB706868C4 +:105DF0001022A11C381805F0FBFC2E8145E76F89A5 +:105E0000009A7B1E9BB293423AD1E278A3781202A9 +:105E10001A43237905A81B04134362796C681206A0 +:105E20001A43EB6800920392211D0C22049305F0A3 +:105E300037FD0120260004A940421036FFF7E2FE9C +:105E4000013F012F17D1009A0B232861824200D015 +:105E50004CE704221C49200005F0CAFC042203A9D7 +:105E6000686805F0F5FCE968039AFF23914200D1C8 +:105E70003CE7F73B3AE73100FFF7C4FE1036DFE7B7 +:105E80000923B742A4D831E7009BB34200D9FCE60E +:105E900007232BE7022329E7032327E7062325E728 +:105EA0000A2323E7FFFE0000BC42FF1F0000011190 +:105EB000FFFF00005048593601FF0000FFFF0011AE +:105EC00002FF000034F00040C842FF1F10B5034C31 +:105ED0000B000122210000F06BFA10BD8D60001153 +:105EE0000B8870B506000D000224162B11D92B006B +:105EF0000322094900F05CFA041E0AD1074B2A88E4 +:105F00001B88191C934200D9111C300089B200F083 +:105F1000EFFA200070BDC046B96000115A64FF1F3F +:105F200010B54A780400013A0B000220012A07D874 +:105F30000A78002A04D005222000024900F038FA2D +:105F400010BDC046E76000110A7810B50B000400D0 +:105F50000220002A04D007222000024900F028FA7B +:105F600010BDC046936100110A7810B50B00040003 +:105F70000220002A04D009222000024900F018FA69 +:105F800010BDC046F961001110B5034C0B000B2287 +:105F9000210000F00DFA10BD2962001110B5034C6C +:105FA0000B000D22210000F003FA10BD9B620011CE +:105FB00010B5034C0B000F22210000F0F9F910BDC1 +:105FC000F56200110A7810B50B0004000220002AC7 +:105FD00004D011222000024900F0EAF910BDC046A9 +:105FE00005630011002310B51322190000F0E0F939 +:105FF00010BD000010B5034C0B001722210000F06B +:10600000D7F910BD57630011002310B519221900EC +:1060100000F0CEF910BD000010B5034C0B001B22A0 +:10602000210000F0C5F910BD91630011F7B5848916 +:106030000D0006000121002C22D000238268D356D7 +:106040001778002B1EDA0C2C1AD90C3CA4B21319A9 +:1060500040880093230002F086FE431E98410130E1 +:106060007B06DB0F6B703F23013C1F40A4B22870FE +:10607000AF70AC80002C07D0B3680133AB60002157 +:106080000800FEBD0020EBE7AC60F8E70B7803707A +:106090004B8843704B881B0A83700B79C3700420B4 +:1060A00070470420022B06D10020537811781B0280 +:1060B000009A0B43138070470B8803700B881B0AF0 +:1060C0004370022070470420009983420AD153781C +:1060D00010781B0203430B80D37890781B02034394 +:1060E00000204B807047F8B50D004B78012400214B +:1060F000461C03702B788B4201D82000F8BD6B78CA +:10610000B01C4F1C012B10D1890069184B8802224A +:1061100033704B88B9001B0A7370691805F068FC6E +:1061200004360434A4B2F9B2E4E7122359436B18DD +:106130005A88043132705B8810221B0A7370691808 +:1061400005F056FC12361234ECE770B5049D1400CD +:106150001E00052B01D8042070BD637812781B0245 +:1061600013432B80E378A2781B02134302226B8037 +:106170002A71211D681D063E05F03AFCB2B22A8143 +:10618000E92AE8D82800A11D0A3005F031FC0020DA +:10619000E2E7002310B50A789A4201D8900010BDBA +:1061A0009A008A185488013304705488DBB2240A98 +:1061B0004470948884709288120AC2700430EAE7AE +:1061C00010B51100029C062B04D004201022142BC1 +:1061D00001D010BD022222714B7808781B020343C4 +:1061E0002380CB7888781B02034363800431601DD1 +:1061F00005F0FEFB0020ECE710B50C788B7804313D +:106200005C43E4B203702200013005F0F1FB601C36 +:1062100010BD0420022B06D10020537811781B02F8 +:10622000009A0B431380704710B50C000A880231A6 +:1062300005F0DEFB208810BD70B504000D00049849 +:106240001100012B01D8042070BD1678527812027B +:10625000324302800200F13255701470E125002CA7 +:1062600000D10C35023B9AB24280AA42EBD80231EF +:10627000043005F0BDFB0020E6E7042000998342CE +:106280000AD1537810781B0203430B80D37890789F +:106290001B02034300204B80704710B50C000A8896 +:1062A000023105F0A5FB208810BD000070B501216A +:1062B0001E000420049C0E400B4218D1CB40DDB2DE +:1062C0008D4214D90A49DBB2098899420FD32300C1 +:1062D000EE331D703300580011184978165C09021E +:1062E000314301332152D9B28D42F4D8002070BD20 +:1062F000D442FF1F10B50C000A88023105F078FB6C +:10630000208810BD10B50C788B7804315C43E4B262 +:1063100003702200013005F06BFB601C10BD10B54E +:1063200011000298032B01D8042010BD1478527874 +:10633000043B120222430280CA788C781202224364 +:1063400042809AB28280EB2AEED80431063005F002 +:106350004FFB0020E9E710B50C000B8803700B8899 +:106360001B0A43704B8883704B881B0AC3708A8852 +:106370000430063105F03CFBA088043080B210BD2B +:106380000420012B03D100201378009A137070476A +:1063900010B50C000B8803700B881B0A43704A88E9 +:1063A0000230043105F024FB6088023080B210BD59 +:1063B000F0B589B003931E4B029242000700D05AF9 +:1063C000019102F020F81325061E2DD0029B012416 +:1063D0000370019B002B04D0001903999847001902 +:1063E00084B26B461B7A5BB2002B0FDA10213800A7 +:1063F00002F01CFB1925002813D130003219E1B23C +:1064000002F066FC051E0CD10C34A4B2042304AACD +:10641000380005A993800696948101F0AFFD051E12 +:1064200002D0300005F024FA280009B0F0BDC046C3 +:106430005864FF1F70B505000C0000280CD0002028 +:10644000814209D010222000044905F0D1FA012030 +:106450002B7823736B78637370BDC046D8BD001171 +:10646000F0B506000D0017001C0085B002291BD0F6 +:106470000020102907D1022B07D0102B03D115E0E3 +:106480000020102C08D005B0F0BD69463800FFF799 +:10649000D1FF2A0069460BE069463000FFF7CAFFCA +:1064A00022006946380004E0022BE9D12A003900B5 +:1064B000300005F05DFAE6E7031CF02800D9F02370 +:1064C000032008499AB2013A0B80D31703400649CA +:1064D0009B189B100B80D30F04499B185B100B80FB +:1064E0007047C046D842FF1FD642FF1FD442FF1F4D +:1064F000034B1B888B4202D3024B4000C1527047B2 +:10650000D842FF1F5864FF1F014B4000185A7047C4 +:106510005864FF1F1722014B1A8070475864FF1FF1 +:1065200070B505000E2005F0ABF9041E13D0D02382 +:10653000037000230622837007494570033005F07D +:1065400057FA064B2100DA8A62811B7E2373044BC3 +:10655000187805F055F870BD7464FF1F6464FF1F60 +:106560002843FF1F262803D8024B4000C05A70471B +:106570000148FCE7DA42FF1FFFFF000070B506008C +:106580000C00094D1C220021280005F0D1FA074B10 +:106590001E70074B1C7005F023FB0123002801D05F +:1065A000002312202B7070BD6464FF1F2843FF1F5F +:1065B0008564FF1F70B505000D4C0800E260A16006 +:1065C00010220021656005F02BFA012803D110216B +:1065D000A06802F058FD10220021280005F020FAE2 +:1065E000012803D11021606802F04DFD70BDC04646 +:1065F0006464FF1F70B5041E05D1002903D0062274 +:106600000D4805F0F5F90D4B1D78012D11D1002C29 +:1066100005D102221A7005F04BF9280070BD002246 +:106620001A70074B1B78FF2BF7D02000FFF778FF7D +:10663000F3E70025F1E7C0467464FF1F6464FF1FA1 +:106640002843FF1F030010B5002801D1002010BD12 +:1066500000780B4A002803D15988D1821B79137620 +:106660001378022BF2D10023984200D10333137028 +:10667000044B1B78FF2B01D0FFF752FF0120E6E708 +:106680006464FF1F2843FF1F002911D000280CD08D +:106690004B79012803D140225242134303E03F22A9 +:1066A0001340032802D001204B7170474022F4E7C9 +:1066B0000800FAE770B5094D0100287800280BD0D2 +:1066C000074C0622200005F093F921002878FFF7F7 +:1066D000DBFF200005F0D4F970BDC0468464FF1FC5 +:1066E0005E64FF1F00290AD0012808D13F224B79A0 +:1066F0009343C02B03D0403B5A425341981C7047F0 +:1067000070B5174D06002B78FF2B15D00A2005F029 +:10671000B7F8041E10D0D0230370C83B8370114B10 +:1067200011491B784670C3700622043005F060F9E9 +:106730002100287804F064FF0C4B1B78012B0DD14D +:106740000B4B1B68002B03D09B68002B00D0984795 +:10675000084B04211878084A05F072F870BDC0464D +:106760002843FF1F8464FF1F5E64FF1F8064FF1FB8 +:10677000AC64FF1FB064FF1F60EA0000014B986823 +:106780007047C0466464FF1F014BDB6818687047A0 +:106790006464FF1F074B10B5DA6813680133136098 +:1067A000054B1878FF2803D08021C90105F000FAB5 +:1067B00010BDC0466464FF1F2843FF1FF7B50E00DD +:1067C00002F0C8F8051E1CD00E4B06621F78002F81 +:1067D00000D10778AB791020019305F051F8041E21 +:1067E0000FD0D0230380C73B8370019BE91DC3708A +:1067F0000622043005F0FCF821003800E66004F0C1 +:10680000FFFEF7BD2643FF1F014B18787047C046B7 +:106810008464FF1F054B002805D1054B1A78054BF2 +:10682000002A00D1014B18007047C0467464FF1F56 +:106830008464FF1F5E64FF1F014B58687047C046A9 +:106840006464FF1F024B1868431E9841C0B2704732 +:106850008864FF1F421E03000120152A03D9FF3B55 +:106860005A425341D8B27047F0B51C0000230E00C5 +:1068700085B0039002920B70029A934201D30020DC +:1068800019E0E55C5A1CD2B2002DF8D002985119DB +:106890008142F4DC0233DFB2A35C18000193FFF7FE +:1068A000D9FF002807D0013D019A0399EBB233705C +:1068B0008A4202D1E01905B0F0BDDB19DBB2DBE79B +:1068C00010B50C0002F09EF803001220002B03D03C +:1068D0002100588805F0BCF810BD000070B50E4DC1 +:1068E00084006359002B15D0186A002801D004F0E9 +:1068F000B7FE2B59586A002801D004F0B1FE2B597D +:10690000986A002801D004F0ABFE285904F0A8FED4 +:1069100000232B5170BDC0469464FF1F1C4B70B503 +:1069200004000E00150099420AD11A4B1B68002B77 +:1069300001D1122070BD1B68002BFAD09847F9E7EF +:10694000154B994215D1134B1B68002B0AD01B68BD +:10695000002B07D09847002804D1104B1C70104B17 +:106960001D70E7E729002000FFF7AAFF0028E1D10A +:10697000F3E7080001F0EEFF0028DAD003780320E7 +:10698000A342D7D12900300005F062F8D2E7C04613 +:10699000FEFF00009064FF1FFFFF00008D64FF1FDB +:1069A0008C64FF1FF7B50400808801F0D3FF002539 +:1069B000A84203D00578A08802F008F81C4E33786E +:1069C000002B1FD0AB421DD11A4B28001978FFF7BE +:1069D00077FF002818D000233370A3790820A77808 +:1069E000A688019304F04CFF011E0DD0D023037044 +:1069F000CA3B8370019B477086808371280004F036 +:106A0000FFFD01E0002DE8D1A0880B4B8200D35898 +:106A1000002B01D0FFF762FF1721A088FFF768FD68 +:106A2000A08801F027FDA08801F0FEFDF7BDC0465B +:106A30008D64FF1F8C64FF1F9464FF1FF0B587B047 +:106A40001D000CAB1B88070001930DAB1B881420A5 +:106A500002930EAB1B88160003930FAB1B880091AB +:106A6000049310AB1B88059304F00AFF041E1AD090 +:106A7000D0230370CB3B47708370C6700622290079 +:106A80000430002D11D004F0B3FF019B210063817D +:106A9000029B0098A381039BE381049B2382059BB7 +:106AA000A37404F0ADFD07B0F0BD05F041F8ECE7CC +:106AB000F7B5009308AB1B8807000C200D001600EB +:106AC000019304F0DDFE041E13D0280001F042FF04 +:106AD00000280FD00078D0232370C93BA370009BFF +:106AE00021002381019B6770A580E680638104F00B +:106AF00087FDF7BD014B1878EDE7C0462843FF1F1F +:106B000013B5040064890389C2888188C078009421 +:106B1000FFF7CEFF13BD000010B5044C206800281D +:106B200003D004F09DFD0023236010BD9864FF1F77 +:106B3000A122F0B5818892004A43384B384F1B6838 +:106B400004009B189D2292009B18827989B01A60DC +:106B50003B68002B5FD01D78324B1B68002B04D0A4 +:106B60005B68002B01D000209847260008363100D2 +:106B7000E079FFF7B7FD237DE0710200E078049330 +:106B8000638A29000393238A0293E3890193A388EC +:106B900000933300FFF752FFE378002B0BD1E2891B +:106BA000A379A18802920196E2792800009201223D +:106BB00001F0DAFEE0703B68002B20D0FFF7ACFF5D +:106BC000194D287800281AD0184B1978FFF778FE4D +:106BD000002814D02B78E67808200793A78804F0C3 +:106BE0004FFE011E09D0D0230370CA3B467083704C +:106BF00087808671079804F003FD00232B7017210E +:106C0000A088FFF775FCA08801F034FCA08801F093 +:106C10000BFD09B0F0BD064B9DE7C0463409FF1FD0 +:106C20009864FF1FAC64FF1F8D64FF1F8C64FF1FFF +:106C30002843FF1FF8B5070008000E0001F08AFE88 +:106C4000041E18D02620FFF78DFC051E00D12578E4 +:106C5000062004F015FE041E0DD00021062204F0CB +:106C600067FFD0232370C23B21006770A370A6800A +:106C7000E8B204F0C5FCF8BDF0B585B001930AABED +:106C80001B78070002930BAB1B7808000D000092E5 +:106C9000039301F05FFE061E22D0102004F0F0FDE9 +:106CA000041E1DD01022002104F042FF2620FFF711 +:106CB00059FC002800D13078D0232370C13BA37049 +:106CC000009B21002372019B67706372029BA58069 +:106CD000A372039BC0B2E3720C9BE36004F090FCD0 +:106CE00005B0F0BDF7B50D00019001F033FE071EB1 +:106CF00020D00E2004F0C4FD041E1BD02620FFF778 +:106D000031FC061E00D13E78D0232380C53B0622ED +:106D1000A370F91DE01C04F06BFE019B2A00638147 +:106D20000123DD401A401D40210022736573F0B23B +:106D300004F066FCF7BD0000F0B585B002901000CD +:106D40000D0017000A9E039301F004FE041E31D0CB +:106D5000029B002B2ED1039B02795B0724D51223C3 +:106D600013430422002E08D10B99002905D10C9958 +:106D7000002902D10D9900291AD01A430D9B2271C6 +:106D8000002B00D0C9E0002E00D1CFE0002D00D0B4 +:106D9000CCE0606A002801D004F062FC1C213000C5 +:106DA00004F046FD606205E002239A430E33D7E704 +:106DB00093432371654BBA00D458002C00D1AAE04C +:106DC000002E10D0236A002B03D11C2004F080FD7C +:106DD00020625E4BBA00D358186A002803D01C22E8 +:106DE000310004F005FE0C9B002B12D0574CBB0069 +:106DF0001D596B6A002B03D1162004F069FD6862EF +:106E0000BB00E358586A002803D016220C9904F0FE +:106E1000EFFD0D9B002B11D04C4DBC006659B36AA1 +:106E2000002B03D1142004F053FDB0622B59986A53 +:106E3000002803D014220D9904F0DAFD380001F087 +:106E400089FD051E67D0414BBA00D358002B62D094 +:106E50001A6A3420002A00D11C389A6A002A01D00C +:106E6000143080B20B9A002A01D01C3080B25B6AC9 +:106E7000002B01D0163080B204F002FD041E4AD06F +:106E80001822002104F054FE2620FFF76BFB01902E +:106E9000002801D12B780193D0232370029B20007E +:106EA00063700A23294EA370039BBD00A371AB59E5 +:106EB000A780196A1830002905D01C22A06004F0B0 +:106EC00097FD200034307359996A002907D00300D8 +:106ED00014221433E060029304F08AFD02980B9BA5 +:106EE000002B08D003001C221C330B992061029355 +:106EF00004F07EFD02987359596A002903D01622C6 +:106F0000606104F075FD6B462100187904F078FB90 +:106F10003800FFF7E3FC05B0F0BD10220D9B0D9982 +:106F20001B69A018236204F063FD2CE70B9B002B68 +:106F300000D13FE7012D00D03CE7606A002801D076 +:106F400004F08EFB1C210B982AE7C0469464FF1FB7 +:106F500010B5044C2068002803D004F081FB002306 +:106F6000236010BD8864FF1F0B4B07B51A68002A09 +:106F700001D100200EBD6946531C01201278073153 +:106F8000FFF772FC0028F4D00278012310001840AB +:106F90001A42EED0EEE7C046A464FF1FF0B51F4FC3 +:106FA00001203B6887B0002B25D09B78059300F02B +:106FB000B3FB002821D00A20FFF7D4FA04000B20ED +:106FC000FFF7D0FA164B05001E78731E9E413B68F2 +:106FD000F6B2191DD878FFF757FB3B682900DA7A1B +:106FE000043303929A7901930292009033002000B7 +:106FF000059A04F075FC07B0F0BDFFF7B5FF002857 +:1070000005D00620FFF7AEFA04000720D8E70820D5 +:10701000FFF7A8FA04000920D2E7C0468864FF1FE2 +:107020008464FF1F70B50A4E040033780D00FF2BF7 +:107030000DD0042004F024FC011E08D0D0230370DE +:10704000CE3B45708370C470307804F0D9FA70BDBF +:107050003843FF1F70B5040006200D0004F010FC3B +:10706000011E0AD0D0230370CD3B8370054B4470C2 +:107070001B688580187804F0C3FA002C01D0FFF754 +:1070800067FF70BD8864FF1FF8B5264F06003B6898 +:107090000D001124002B05D10522234B1B78134230 +:1070A00002D112242000F8BD204A10241268002AC0 +:1070B000F8D01278002AF5D0DB0719D52B789A1E64 +:1070C000012A1AD80C2004F003FC1324386000288D +:1070D000E8D000230A22437029000670023004F031 +:1070E00087FCFFF75BFF041E0AD0FFF731FFD9E7EB +:1070F00000F012FB0028E1D1E4E7002BE2D0D0E75A +:107100000B4B1B78032BCDD11D20FFF72BFA094B1E +:1071100018800028C6D0084B04211878074A04F0CC +:107120008FFBBFE78864FF1F8564FF1FA464FF1FF8 +:107130008464FF1F8264FF1FB064FF1F60EA0000C9 +:10714000F7B50193194B14001A78052306000F00B8 +:1071500012201A4221D0012920D1154B1D68002D83 +:107160001BD002201F2C18D8002C02D0019B002B12 +:1071700013D0104B1F221E706E1C0021300004F033 +:10718000D7FC01992200300004F032FC31002000CD +:107190002C70002F06D004F0D3FAFEBD064B12204F +:1071A0001D68DCE704F09CFAF7E7C0468564FF1F22 +:1071B000A464FF1F3843FF1FA064FF1FF8B50F4EE4 +:1071C00012243368002B17D01B780F3C834213D155 +:1071D00000250B4F0221387804F022FB094B0421D3 +:1071E00038781D8004F01CFB074B28001D80336895 +:1071F0005C7004F085FB04002000F8BD8864FF1F6C +:10720000B064FF1F9C64FF1F8264FF1F70B50128DC +:1072100023D11B4C2388002B03D01A4A1578002D4C +:1072200007D0194B1B68002B02D01878FFF7C6FF58 +:1072300070BD3B2B02D93C3B2380F9E7134E022162 +:10724000307804F0EDFAFA222388920002215A43A2 +:10725000307804F065FA2580EAE70B4B1B68002BB9 +:10726000E6D00B4B1B785B07E2D5084B0221187860 +:1072700004F0D6FA0022024B1A80FFF769FED7E726 +:107280009C64FF1F8064FF1F8864FF1FB064FF1FA2 +:107290008564FF1FF8B51E4D2868002803D004F050 +:1072A000DFF900232B601B4E3068002803D004F068 +:1072B000D7F900233360184F05243B78180020408D +:1072C000234221D0154800F02BFA3B78234213D0FB +:1072D000202004F0FDFA2860002813D0202200218D +:1072E00004F026FC202004F0F3FA041E306005D0E0 +:1072F0002022002104F01CFC002004E0286804F097 +:10730000AFF92C601320F8BD00F00AFAF4E7C0468C +:10731000A464FF1FA064FF1F8564FF1F2C43FF1F91 +:1073200010B50A4C23681A1E0ED0002808D101306F +:10733000587004F0E5FA002805D02368002B02D02D +:107340000021FFF787FE0122100010BD8864FF1F97 +:10735000F7B5274E050033680191181E21D05C78DF +:10736000244F012C30D1FFF7FFFD002825D020004D +:10737000FFF7F8F80400412814D91F4B02211878B0 +:107380001E4A04F05DFA1E4B3C3C1C80022233680E +:107390005A703B78002B14D128000199FFF75AFE50 +:1073A0000120FEBDFA2292004243002AEED0124B89 +:1073B0000221187804F0B4F9E8E7FFF7D3F80200E7 +:1073C000F3E700233B70EBE73B78002BE8D1032089 +:1073D00004F056FA011E08D0D0230370CC3B457050 +:1073E00083703368187804F00BF9FFF7B1FDD7E725 +:1073F0008864FF1F8064FF1FB064FF1F60EA000005 +:107400009C64FF1F10B51749838802008B4220D06F +:1074100011D815498B4217D0144900205B1899B236 +:10742000012907D8926811785A425341D8B2FFF720 +:10743000F9FD012010BD0E4A00209B1807229BB2C7 +:107440009A424041C0B2F5E783681878FFF768FFB9 +:10745000F0E7836899785A78090218781143FFF7A2 +:1074600077FFE7E70A20000006200000F8DFFFFFB3 +:10747000AFDFFFFF014B18707047C0463943FF1F55 +:1074800010B5064C207001F041FA207804F008F99C +:107490000521207800F062FD10BDC046B064FF1FDA +:1074A0000BB273B50D00002B00DBC4E0884B1878DD +:1074B00004F026F9041E0ED00378912B0FD0A22BD6 +:1074C00000D1A1E0834B1878FF2852D0210004F0AE +:1074D00097F800284DD180200002684076BD43789F +:1074E0000F2B76D013D8052B70D00E2BEAD18088C5 +:1074F000794B98422BD8794B98421BD8784B9842BD +:10750000E0D1A3681878591CFFF774F838E03E2BD7 +:10751000D8D18378032B74D06CD8012B6ED0022B7A +:10752000D0D1704B1B68002B23D05B68002B20D080 +:1075300098471EE06C4BC0180C28C3D804F048FBD9 +:107540001DC2C2150BC20B0B0B3223C23C00674B92 +:10755000C0180728B6D8664B1B68002B09D01B68DB +:10756000002B06D0200098470AE0A3681878FFF7A0 +:10757000C7F8200004F004FBADE7A068FFF762F84D +:1075800000289FD0F5E7A3681B78002BF1D0554B5E +:107590001B68002BEDD01B68002BEAD0210055485A +:1075A0009847EDE74F4B1B68002BE2D01B68002B80 +:1075B000DFD021005048F3E7504B1B68002BD8D098 +:1075C0005B68002BD5D021004348E9E7FFF7EAF9D3 +:1075D000CFE780884A4B984203D04A4B984200D06C +:1075E00070E7464B1B68002BC3D05B68002BC0D0F4 +:1075F0002100D5E7153B012BBBD963E7FFF798FACC +:10760000B7E7FFF77DFAB4E73F4B1B78042B07D1B0 +:1076100000236A4613800179408800F0C5FCA8E782 +:10762000364B1B68002BA4D05B68002BA1D0010057 +:10763000364898479DE7012421420AD0294B1B6810 +:10764000002B04D05B68002B01D00020984701205C +:1076500043E78B070AD5264B1B68002B04D05B68D9 +:10766000002B01D020009847022036E70421280093 +:1076700008400D4200D131E7254E3388002B21D040 +:10768000013B9BB23380002B1AD1FFF7DBF80028B7 +:107690000AD0204B1C70164B1B68002B04D05B6873 +:1076A000002B01D020009847FFF7C6F8694601F08B +:1076B00001FD6846FEF7FEFF1D20FEF753FF3080F8 +:1076C00004200AE7024B187804F0AAF8F8E7C0464D +:1076D000B064FF1F3943FF1F0E200000012000008F +:1076E00009100000A864FF1FFEDFFFFFAFDFFFFFF0 +:1076F000AC64FF1F0C2000000B2000009064FF1FF3 +:107700000D200000132000008564FF1FFFFF000014 +:107710008264FF1F8064FF1F10B501F09BF910BD4C +:10772000014B18607047C046AC64FF1F0B880020F7 +:10773000162B01D817230420014A13807047C04636 +:107740005A64FF1F00207047074A030011888142D6 +:1077500007D091880020994202D101308000101892 +:1077600070470020FAE7C046B864FF1FF0B58F7875 +:1077700006000D00C5B01E2F15D1FFF7E5FF051E51 +:1077800003D10024200045B0F0BD00223B003100B1 +:10779000C078009200F0B2FB0400A81C00F0D2FBFD +:1077A000FF23EB70EEE7264B062403931B78FF2B99 +:1077B000E8D0182FE6D87B08224A013BDB00029272 +:1077C0009A589446002ADDD0029AD3185B68002BA1 +:1077D000D8D00878002802D14B78012B02D106249A +:1077E000122FCFD107AFAB88697800976446AA689B +:1077F000A047041EC6D1AB78029A5B08013BDB00B0 +:10780000D318390030005B689847041E0BD1AB7861 +:10781000042BB6D0039A310010782200009700F0B4 +:107820006DFB0400AEE76A78002AABD1AA7805A9FF +:107830003B88087130000A704B80FEF747FBA0E7D9 +:107840003C43FF1FE8BD00111D4B37B505009842B2 +:107850000BD000290AD1FFF777FF002805D119487E +:10786000FFF772FF002800D0058037BD01291AD12B +:10787000FFF76AFF041EF8D001235B420380A37860 +:10788000FF2BF2D0FE2B07D00023E07814220093C8 +:1078900029001E3300F032FBA01C00F053FB012333 +:1078A0005B426380E1E70229DFD1013901F0BEF8D4 +:1078B0000028DAD12800FFF747FF041EDFD1D4E704 +:1078C000FEFF0000FFFF0000022210B5074B5242EE +:1078D0001A80074801325A809A80DA8000F07EFAD6 +:1078E000044801F025F8002010BDC046B864FF1F11 +:1078F0006D770011497800110388F7B50400002B5B +:1079000002D102252800FEBD4268022113782548D5 +:107910005268FEF7A5FD00282ED0234F01253A8896 +:10792000002AEFD0802321885B0201259B1A99420F +:10793000E8DC0C2003F0CCFF061E31D03B88228807 +:107940009C4600231800019561469DB2491989B2F1 +:10795000AA421BD8002801D062443A80002330009C +:10796000082208C0210004F043F8104A1368002BD5 +:1079700013D100251660C5E76268022113780C4810 +:107980005268FEF76DFD0028C7D1BAE760681D0197 +:107990004019418101330198D6E71A001B68E6E7D8 +:1079A0001325AFE756BE00113A43FF1FB464FF1F13 +:1079B00054BE0011014B18707047C0463C43FF1F76 +:1079C00014230A0010B51A40194204D001221021D4 +:1079D00001F048F810BD4B06F9D40120884340005F +:1079E000F8E710B514008B0604D50122102101F030 +:1079F00039F810BD08230A001A40194202D14BB2CF +:107A0000002B0FDA102101F02DF8002808D02300F8 +:107A1000F2331B78002BECD0F1342378012BE8D122 +:107A20000020E6E703208907FAD4E2E7F0B51F005B +:107A3000184B85B01C68019002910392002C27D14D +:107A4000200005B0F0BDA5683301ED186B89019ADF +:107A5000934211D3029A93420ED8002F04D10A9B6D +:107A6000002B10D12C00EBE73B002978039A6868C3 +:107A7000FEF7F6FC0028F2D10136B6B2A388B34275 +:107A8000E1D82468DAE7A3680A9A5B891380E9E7FA +:107A90000026F3E7B464FF1F37B50C000A88498855 +:107AA0000123914217D3002A15D0651D23792A009E +:107AB00002210A48FEF7D4FC102300280BD02379BA +:107AC0006188208800242A000094FFF7AFFF0A2372 +:107AD000A04200D0230018003EBDC04656BE001193 +:107AE00013B50A0008884988012388420BD800286A +:107AF00009D00024137905320094FFF797FF0A2379 +:107B0000A04200D02300180016BD13B50A00088853 +:107B10004988012388420BD8002809D00024137912 +:107B200005320094FFF782FF0A23A04200D0230011 +:107B3000180016BDF0B58BB003904A8808880E0077 +:107B40000123824255D3002853D00023012704ACDF +:107B500023700022718813000092FFF767FF051E53 +:107B60003ED02078002835D12B78022B18D16770B1 +:107B70006A8983000130E31880005A806968022214 +:107B8000201803F035FF23780133DBB22370042B78 +:107B900019D93B006889013080B2002BD9D01FE091 +:107BA00002236370122358436A89231804305A80D1 +:107BB00069681022201803F01BFF23780133DBB221 +:107BC0002370002BE5D10C4A6B899B185A42534114 +:107BD000DBB2DFE76378012BE4D12B78022BC7D02F +:107BE00022780A23002A04D021000398FEF798F98E +:107BF000002318000BB0F0BD0100FFFF0F4BF0B5E4 +:107C000004001868002816D083685D89A54207D84B +:107C10008288AE18B44203DA12019A18934201D155 +:107C20000068EFE71E005F891036A74204D10029E3 +:107C300000D00D801800F0BD3300EFE7B464FF1FE3 +:107C400070B505000C0008880021FFF7D7FF03007E +:107C50000120002B04D022002800197AFFF7C1FE72 +:107C600070BDF7B50C00002501902300EE331B78A2 +:107C7000AB4201D800200AE06B00E65A0021300038 +:107C8000E718FFF7BBFF002802D126800130FEBDB8 +:107C9000017A0198FFF794FE002802D03B882380E8 +:107CA000F5E70135EDB2E0E710B5040008880021E2 +:107CB000FFF7A4FF03000120002B03D02000197A56 +:107CC000FFF77EFE10BD0000054B1B68002B01D1A5 +:107CD000180004E09A6852898242F6D19888704769 +:107CE000B464FF1FF0B50E27002687B0039302ABE4 +:107CF000FF183E8005001F4B40891400984207D0B2 +:107D00002B78013000976A6880B2FFF78FFE06007B +:107D100002212B7818486A68FEF7A2FB00280FD0D2 +:107D20006C892000FFF7D0FF002802D0013C041925 +:107D3000A4B2039B002B00D01C80300007B0F0BD24 +:107D400002212B780D486A68FEF78AFB0028E7D1EC +:107D500002212B780A486A68FEF782FB002807D0C8 +:107D6000002EDED03B88A342DBD17489013CDFE7E3 +:107D70006C89DEE7FFFF000056BE001154BE001103 +:107D800052BE001110B50C00FFF7DEFC030002200C +:107D9000002B0AD0002C00D023609B781720FE2BEC +:107DA00003D00138FF2B00D1002010BD73B50D00AA +:107DB00001A904001600FFF7E5FF172805D0002EE3 +:107DC00004D129002000FEF727F976BD01221021F9 +:107DD000200000F047FE0028F3D0F6E7014B1860C2 +:107DE0007047C046C464FF1F37B56B469D1D010038 +:107DF00004000222280003F053FD2B88B02B0ED183 +:107E00002379122B09D12300FA331B78012B06D1D9 +:107E10000121608800F0E0F801E01B2BF8D037BDAD +:107E200010B5054B0421187000F098F8FFF74CFDD1 +:107E3000FEF770FB10BDC046C864FF1F0020F0B500 +:107E40000BB20F0087B0834234DA274B187803F067 +:107E500057FC051E2BD00378A02B25D103AE310093 +:107E6000FEF7E4F8041E0BD1B378DB0724D51F4BD3 +:107E700006341B68002B03D0310068889847040043 +:107E8000A868002801D003F0F3FC002C08D1184AA0 +:107E9000039B1340174A934206D0B3781B2B03D0A1 +:107EA0000121688800F098F8280003F069FE80201E +:107EB0000002784007B0F0BD0F4B1B68002B10D0BC +:107EC000310068889847041EDAD07378002BD7D128 +:107ED000B27801A90A704B800C716888FDF7F6FF33 +:107EE000CEE70624F1E7C046C864FF1FC064FF1F49 +:107EF00000FFFF0000011200C464FF1FF7B50190EE +:107F0000FC200D0017001E0003F0BAFC0400132033 +:107F1000002C12D0B02320002370089BF42267703D +:107F2000658026710830002B08D0190003F060FD31 +:107F30002100019803F064FB0020FEBD089903F0C6 +:107F4000F7FDF5E710B5041E06D00078FD2803D82C +:107F500003F02EFCFF23237010BD00000A1F93B214 +:107F600010B504000220032B05D882400020024BEC +:107F7000D1529B189C7010BDE864FF1F0B8870B530 +:107F8000043B04000D000220032B0BD8012120002C +:107F900000F04CFD03001420002B03D0290020002A +:107FA00000F0DEFB70BD000007B51300034A00922D +:107FB0000A00012100F02CFC0EBDC046E581001135 +:107FC00007B5019203220092024B0A00122100F031 +:107FD00049FC0EBD6382001107B56B4601AA1180F2 +:107FE0000449D88008780633012802D1190003F02B +:107FF000AFFB07BDC964FF1F0C4B10B51870002301 +:10800000FF210B4A1380138193819380094A538087 +:108010001370517293819372D174D3821375517717 +:1080200003F026FB00F0FCF910BDC046F864FF1F0A +:10803000E864FF1FCA64FF1FF0B58DB06B460020D7 +:1080400003910C229B5E834200DBB0E05D4B18780D +:1080500003F056FB051E00D1A4E00378902B00D05E +:108060009DE006AF01004688380000F013FA7968F9 +:108070000400002900D19CE03B88052B6ED13B8990 +:10808000032B1CD905AC200000F0A2F86288172A47 +:1080900061D83989131D994231D179682378043127 +:1080A0000291D90738D5607800F08EF9071E06D006 +:1080B000002303712378012B08D0132B23D0A86849 +:1080C000002800D178E003F0D3FB75E062880299C4 +:1080D00009A800F0A6F80290380000F08BF909AA70 +:1080E0002378387A0192002231000092029A00F03F +:1080F00012F9380000F064F9029B002BDFD0300049 +:1081000000F080F9DBE70378032BD8D1628802996D +:1081100009A800F0D6F8DEE7122B13D1029909A8BE +:1081200000F0B5F8021EEAD127498B88002BC6D093 +:10813000887909A92378019161780091310000F0D4 +:10814000EAF8BCE7002302AA93833000617809AA09 +:10815000FFF72AFFB3E71D4B0993F6E7042B02D084 +:108160009A1F012AABD8184A043B9B00995A002950 +:10817000A5D0D218907831003A0000F0AEF800286F +:108180009DD13B88042B03D001213000FFF724FF51 +:10819000012C04D1A868002801D003F069FB280055 +:1081A00003F0EEFC8020039B0002434018000DB05A +:1081B000F0BD012800D182E701213000FFF70CFF5C +:1081C000EDE7C046F864FF1FE864FF1F01001700D9 +:1081D0000B7803704B784370CB788A781B0213437B +:1081E000438070470A88030002700A88120A4270AE +:1081F0000A88012A06D14A8882704A88120AC27007 +:108200000420704702208242FBD14A8804309A70D1 +:108210004A88120ADA708A881A718A88120A5A7190 +:10822000EFE710B50400012082420CD94B780A78A0 +:108230001B0213432380834206D1CB788A781B022A +:1082400013436380002010BD022BFBD1CB788A78CA +:108250001B02134363804B790A791B021343A380EB +:10826000F0E70B8803700B881B0A43704B88837000 +:108270004B881B0AC3708B8803718B881B0A437160 +:10828000CB888371CB881B0AC37108207047030019 +:108290000120082A14D14A780878120202431A8071 +:1082A000CA788878120202435A804A790879120201 +:1082B00002439A80CA798879120202430020DA8048 +:1082C000704710B504000120022A05D100204B7828 +:1082D0000A781B021343238010BDF8B50600102056 +:1082E0000F00150003F0CCFA04000120002C0ED082 +:1082F000A0230C22290023806780201D002D07D099 +:1083000003F076FB2100300003F07AF90020F8BD7D +:1083100003F00EFCF6E7F7B51E00009008AB142042 +:1083200017001D78019103F0ABFA041E12D0A223AE +:108330000370019B47704380099B057146710C22B5 +:108340000830002B07D0190003F052FB21000098E1 +:1083500003F056F9F7BD099903F0EAFBF6E737B5E4 +:10836000041E0FD04388002B0CD00025C188132396 +:10837000007A172201950095FFF7CDFFFF23658056 +:108380006372257037BD000010B50C4904004A889F +:10839000002A09D08B89002B05D00020CB8A02222D +:1083A000834201D010BD012213000A204343002064 +:1083B0004032C854C81842800472F3E7CA64FF1FF1 +:1083C0000023438003707047094B00211A0010B549 +:1083D0005C88002C06D01C79844203D10A234B43CD +:1083E000D01810BD01310A330329F1D10020F8E77C +:1083F000CA64FF1F10B50400407A03F0D9F9FF23C7 +:10840000637210BD7047043010B580B203F028FBD2 +:10841000002803D00421494203F002FC10BD0000F3 +:1084200070B50025104CA0682580A581A580A842C4 +:1084300002D003F01DFAA56000250C4C0C4B606DBA +:108440001D80230058331D70A84202D003F010FA9B +:10845000656500256068002801D003F009FA013540 +:1084600008340A2DF6D170BD9065FF1F3465FF1FDB +:108470008465FF1F70B5041E09D1054D2880A881B1 +:10848000A880A868002802D003F0F2F9AC6070BDA3 +:108490009065FF1FF0B54B8885B0019300234360C2 +:1084A0000A7905000F00022A00D07BE0CA88032A5F +:1084B00017D98B685E7819783602DC78D8790E4344 +:1084C00099781B7A24021B020C43034353495BBA7D +:1084D0000B80331D93421ED1042C04D0631F022B4A +:1084E0000ED9012015E0019A4D4B1201D35A002BF1 +:1084F00006D00198FFF7BEFF4A4A136901331361A2 +:108500000421B8682E812C80494203F089FB686001 +:10851000002005B0F0BD434D042C06D0631F022B94 +:108520000FD9EB680133EB60DBE7019A3C4B12019A +:10853000D35A002B05D00198FFF79CFF2B6901331C +:108540002B61374B30000293019B029A1B01019370 +:10855000002301998C468B52130063449C80039343 +:108560009E81FFF750FF039B041E986016D00421E4 +:10857000B868494203F054FBFA880100043A20002D +:1085800003F036FA0199029AFB888A5A043B9B1839 +:10859000029A8B522B6801332B60A2E7AB6901333F +:1085A000AB619EE71E4B0293019B1E01029BF35A97 +:1085B000002B2DD002998C19A068002828D0012A00 +:1085C00026D1FA889B189BB27352A189994217D37E +:1085D0009B1AC018B96803F00BFA029BA289F35AE0 +:1085E000934200D07DE700222B81A3882B80A368D3 +:1085F0006B60029BF2520B4A53680133536070E781 +:10860000084A9368013393600198FFF733FF68E7E6 +:10861000044A536901335361F6E7C046FA64FF1F09 +:108620009065FF1F0065FF1F70B5051E15D10B4C2F +:108630000B4B1880230058331870606D002802D04F +:1086400003F016F96565250050356068002801D0F3 +:1086500003F00EF90834AC42F7D170BD3465FF1F4A +:108660008465FF1FF0B51700A12285B09200019329 +:108670004243394B06001B680C009B18D933FF336B +:108680001D78FDF741FF0430854204DD3000FDF721 +:108690003BFF0430C5B2BD4207D33A000021300091 +:1086A000019B03F04DFA05B0F0BD2900380002F03F +:1086B000BFFF2300C6B250331E700393019B2900F5 +:1086C0006365380003F054FACBB20293002B02D05A +:1086D000039B01361E7000262300503303931B7842 +:1086E000B34204D8606D002831D10020DBE7029A44 +:1086F0002800002A04D0013B1000B34200D028001B +:10870000F700E719387003F023FA786000280ED0DC +:108710003A78019903F06CF9019A3B780136D31845 +:108720000E4A0193D369F6B20133D361D4E7039BB8 +:1087300018706065A74205D1084A1320D36A013337 +:10874000D362B0E7606803F093F80834F2E703F00F +:108750008FF800236365C8E73409FF1F0065FF1F1A +:10876000F7B50D0007000421686803F059FA2B895A +:10877000040003702B891B0A43702B8883702B889D +:108780001B0AC3702E8902250436F6B2F42E15D8C2 +:108790001B4B9F4214D10C2003F072F81135011EBF +:1087A0000CD0902303708E3B0371043B4380154B28 +:1087B0008460C680187802F023FF00252800FEBDE3 +:1087C0005C237B43104AD3180093583301931B78E2 +:1087D000002B0FD10300320038000099FFF742FF51 +:1087E000019B05001B78002BE8D13800009902F0AE +:1087F0004FFFE3E7054A0725536A01335362DDE77C +:10880000FEFF0000F864FF1F3465FF1F0065FF1FB7 +:10881000F0B587B0009017200F0016000193FFF706 +:10882000F2FD1325041E19D00C98031E02D00199E5 +:10883000201D9847030AE370052302AAA0700430A4 +:10884000908127700098667003A993800494FFF7C5 +:1088500087FF051E02D0200003F00AF8280007B0A9 +:10886000F0BD0000F0B587B01F000CAB1B78039182 +:10887000059301210DAB06001C78049200F0D6F898 +:108880001425002821D02000FFF77EFD0135041EAD +:108890001BD01149059B0A7803700132D2B2131E16 +:1088A000C68001D101231A000B7022713000049B95 +:1088B00003990097FFF7ACFF051E09D123002100A3 +:1088C0000648074A093302F06BFF280007B0F0BDE5 +:1088D000002363802370F8E7FC64FF1F5F830011AF +:1088E00030750000F8B505000E00064C064F2368F1 +:1088F000002B02D03100280098470434BC42F6D146 +:10890000F8BDC046A065FF1FB465FF1F0123064ADE +:108910005B425380002313715362044A1360536017 +:108920009360D36013617047B465FF1FA065FF1F9C +:108930000200002310B506499C000859002801D107 +:10894000625010BD0133052BF6D11320F9E7C04664 +:10895000A065FF1F034A5388181A434258414042FA +:1089600010407047B465FF1FF0B585B002930AABA5 +:108970001F780CAB1B88009008000E000192039337 +:10898000FFF7E8FF05001120002D1BD10E48FFF76F +:10899000E1FF04001520002C14D006220B99A771CA +:1089A000E01D03F025F8019B30002371029B290094 +:1089B0006371009B66802370039B6562E381FFF710 +:1089C00091FF280005B0F0BDFFFF000010B5FFF7D4 +:1089D000C1FF04000220002C12D060880121FFF7A3 +:1089E00081FF606A002801D002F03AFE28220021AF +:1089F000200003F09DF8012300205B42638020717A +:108A000010BD000030B5074A074C558801001378A7 +:108A10000020A54204D05B1A59424B4158421040F5 +:108A200030BDC046B465FF1FFFFF0000084A10B507 +:108A300001230C00904208D0FFF78CFF031E04D0E6 +:108A4000037923405A1E9341DBB2180010BDC04683 +:108A5000FEFF0000024B1879431E9841C0B27047D8 +:108A6000B465FF1F70B504000D001600FFF772FF1C +:108A7000002804D10D4B9C4200D0143070BD416AD7 +:108A800003790520002907D012221A40102A02D1AA +:108A90000520002EF2D10F20DB06EFD5897E0C20B9 +:108AA000A9428941494249420840E7E7FEFF0000E8 +:108AB000030010B5002800D110BD0348034A4188C7 +:108AC0009142F9D09847F7E7B465FF1FFFFF000018 +:108AD000002330B5C45CCD5C6C40D4540133102B02 +:108AE000F8D130BD0F23002210B5C45C64002243CE +:108AF000CA54C25CD209013BF7D210BD020001008A +:108B000010B52032103103F073F810BDF0B58BB002 +:108B10000390102005931700049102F0D9FE0090F5 +:108B2000102002F0D5FE009B13240190002B05D0ED +:108B300000280CD11324009802F092FD019B002B19 +:108B400002D0180002F08CFD20000BB0F0BD102008 +:108B500002F0BEFE0600102002F0BAFE132405004B +:108B6000002E00D1AEE0002819D01022002102F022 +:108B7000DFFF32002900039803F03AF8041E0ED1FB +:108B800033787F2B51D830000099FFF7ABFF009B63 +:108B90001B787F2B53D801990098FFF7A3FF300073 +:108BA00002F05EFD002D02D0280002F059FD002CDD +:108BB000C1D1102002F08CFE0600102002F088FEC9 +:108BC0000290002E7CD0002878D03A000F3223008B +:108BD0000125121105D00F333B4015B25A425341C3 +:108BE0001BB26A1E1201002B33D0049BD2B298181C +:108BF0000099029AFFF76CFF013D1022002130001E +:108C000002F096FFADB2049F2D017D19AF4242D014 +:108C1000002C33D0300002F023FD029B002B00D14A +:108C200089E7180002F01CFD85E729003000FFF7F6 +:108C300059FF28002549009AFFF74AFFA7E72900B6 +:108C40000098FFF74FFF28002049019AFFF740FFE7 +:108C5000A5E70F210F4004998A18D9B28F4208D98D +:108C6000D15C06A819540133102BF6D1029A019950 +:108C7000C0E7791A48424141C901F2E739003000A2 +:108C800006AAFFF725FF3200039806A902F0B0FFFD +:108C900010370400BAE7002CBCD13000029906AAB4 +:108CA000FFF716FF320006A9039802F0A1FF082281 +:108CB00004003100059802F09BFEABE71324A9E7FE +:108CC0001324AAE7002800D06EE733E75CBE00114A +:108CD000F0B58BB00F0016000225009000283FD0A1 +:108CE000002A3DD00B1DDBB21800029302F0F0FD0C +:108CF0001135041E34D0FDF747FD05003A000099F8 +:108D0000201D02F075FCEBB20393E3702B0CDBB279 +:108D10002F0A00936370FFB22B0E2370A77001938C +:108D2000FDF72CFD1022010006A802F061FC2100D5 +:108D3000029A04AB06A8FFF7E9FE051E0DD1039BBE +:108D400008223370009B04A9B370019B7770F37005 +:108D5000301D02F04DFCFDF71DFD200002F080FCEF +:108D600028000BB0F0BDF0B58FB00D00149E03903D +:108D700004920593002A03D1022420000FB0F0BD15 +:108D8000002EF9D00398FFF7E5FD1424071EF4D058 +:108D90007278337812021A43B3781B041343F278C3 +:108DA00012061A43036A0192934201D30133E3D1BD +:108DB000002D03D03B7901249B07DED5082200213A +:108DC00006A802F0B5FE059B13240433DBB218009D +:108DD000029302F07DFD051ECFD0059A0499043060 +:108DE00002F006FC04223100280002F001FC3900E8 +:108DF000102210310AA802F0FBFB2900029A06ABF0 +:108E00000AA8FFF783FE041E0FD1082206A908A8AE +:108E100002F0EEFB0822311D08A802F0A9FD01288E +:108E200007D101990398FDF7C9FC280002F018FC4E +:108E3000A3E70124F9E7000070B51C4C0500236886 +:108E4000181E10D0002D14D11A78002A0CD1981CAD +:108E5000083202F0CDFD02F0B3FC0135002808D144 +:108E600023681D70012070BD0A331800082202F02B +:108E7000BFFD2368002BF5D0122002F001FD061E75 +:108E80000DD0C123216803704570023110220230D9 +:108E900002F0AEFD23683100587802F0B1FB206883 +:108EA00002F0DEFB00232360DCE7C046DC65FF1F29 +:108EB000F8B504002020FDF755FB0D4EA700BB5967 +:108EC0000500002B0DD000280BD0D878FF2809D141 +:108ED00008492A000C55F35907480333611802F07A +:108EE0005FFCF8BD290002F073FC0028F0D1F8E720 +:108EF000F865FF1FE065FF1F09A1001170B5064D61 +:108F000084006359002B05D0D87802F051FCFF2271 +:108F10006359DA7070BDC046F865FF1F70B5060072 +:108F20008CB00C00150000213022684602F000FED3 +:108F300031001022684602F05BFB1D202100032255 +:108F4000684402F055FB6846FFF7D8FD2D21040068 +:108F500003222800694402F04BFB20000CB070BDD6 +:108F6000F0B50700160097B001931CAB1D783022B6 +:108F70001EAB00910AA800211C7802F0D9FD102236 +:108F800039000AA802F034FB1022002102A802F0E6 +:108F9000CFFD0722310002A802F02AFB072202AB14 +:108FA0009818631E9C41019902F022FB02AB9C734E +:108FB0002B005A1E934102AAD3730021102206A847 +:108FC00002F0B6FD06221D9907A802F011FB1A2037 +:108FD00002ABC01806221F9902F00AFB102200996A +:108FE0000EA802F005FB102202AB0EA908781C782F +:108FF000013A6040D2B2087001330131002AF5D144 +:109000000AA8FFF77BFD102212A904000EA802F0A7 +:10901000EFFC102206AB0EA908781D78013A6840D3 +:10902000D2B2087001330131002AF5D10AA8FFF746 +:1090300065FD044310222098E4B212A902F0D8FA88 +:10904000200017B0F0BD70B50E0014008CB0010008 +:10905000102268461D0002F0CBFA3100082204A855 +:1090600002F0C6FA2100082206A802F0C1FA6846FA +:10907000FFF744FD04001022280008A902F0B8FA06 +:1090800020000CB070BDF8B506000D0000243719A3 +:10909000AC4200D3F8BD02F0C3FA030A3B70631C74 +:1090A000DBB201379D4203D90234F054E4B2EEE75B +:1090B0001C00EDE773B506000C000225002819D04E +:1090C000002917D0032101A8FFF7DDFF6B469A792D +:1090D0003F231A40013313436A463000937101A9BC +:1090E0002200FFF71BFF051E04D10322E01C01A98B +:1090F00002F07EFC280076BD03785807DA08C00F1E +:10910000D20080009B0710439B0F1843C0B27047EA +:1091100007230B40C908C9000B43037070470000C8 +:1091200070B50400FFF7EAFE134DA4006359002B4D +:1091300021D0186A002801D002F092FA2B59986EBB +:10914000002801D002F08CFA2B59D86E002801D0EB +:1091500002F086FA2B59186F002801D002F080FA2D +:109160002B59586F002801D002F07AFA285902F0E2 +:1091700077FA00232B5170BDF865FF1F0E4B80005E +:10918000C35870B50C00002B0FD09D68002D0CD07B +:109190002B78201D0B706B784B70A97CFFF7B8FF04 +:1091A0002B7E23726B69E36070BD102200212000CA +:1091B00002F0BEFCF8E7C046F865FF1F014B1860DF +:1091C0007047C046F465FF1F074A030080008258BD +:1091D00010B5002A06D0D088984203D1012901D1C8 +:1091E000FFF79EFF10BDC046F865FF1FF0B5264E85 +:1091F00095B087000B93BB590500099112200A9284 +:10920000002B31D0D888FFF7A5FB04001420002CD8 +:109210002AD0280010A9FFF7B1FFBB591E781D6A9C +:10922000002E23D00895FDF7EFFA07000020FDF788 +:10923000F1FA0790A379E61D069310AD0CA90898E2 +:1092400000F0E2FA0EA9280000F0D7FA0B9B0A9969 +:109250000493069B09980293079B0396019300973A +:109260000EAB0CAAFFF77CFE15B0F0BDFDF7CCFAF3 +:1092700006903000FDF7CEFAE31DA779079310ABF7 +:1092800006000893DAE7C046F865FF1F30B50C4CBE +:1092900085002A59030085B00120002A0ED018004D +:1092A0006946FFF76BFF2B591A78D888054B002ABF +:1092B00000D1054B6A46072100F0D9FB05B030BD4F +:1092C000F865FF1FFB9700110998001130B5094C94 +:1092D0008500295985B010226846253102F088FBA7 +:1092E0002A591121044BD0886A4600F0C0FB05B012 +:1092F00030BDC046F865FF1FA598001130B5094C78 +:109300008500295985B010226846353102F070FB7E +:109310002A591121044BD0886A4600F0A8FB05B0F9 +:1093200030BDC046F865FF1FE3980011F7B54D4FFB +:1093300086001020F4590D0002F0CAFAF359206299 +:10934000186A132200286CD0033A29009C6802F0A6 +:109350004FFBF3591A780192002A58D11E6A227DD8 +:10936000317B944651400122019F114201D1674651 +:109370001740217D914339432175377B4F40BC46CF +:1093800060460027800701D44F08174001210220C2 +:109390008F40227D82433A432275377B5740BC463B +:1093A00060460027400701D497080F400420227D23 +:1093B000BF0082433A432275627D0027944660468F +:1093C000727B42400A4201D167460F400121627D13 +:1093D0008A433A436275777B5740BC466046002714 +:1093E000800701D457080F400220627D7F0082432E +:1093F00017436775767B00227E40760701D4BA0852 +:109400000A400426617D9200B1430A4362756A787E +:10941000002A08D06278002A05D005220533DA77C1 +:1094200000221000FEBD04222979114205D1A17C41 +:10943000114202D10533033AF1E7019A21782C78E1 +:10944000002A02D10A002100140018220429E8D8B9 +:10945000042CE6D805206043034A05331218525CF9 +:10946000DDE7C046F865FF1F6CBE001110B50A00AD +:109470001121024B00F0FBFA10BDC0463F990011CC +:109480000B0030B587B001AD2B806B460400110096 +:10949000981D082202F0ACFA2A000B212000024B92 +:1094A00000F0E5FA07B030BD6799001110B50A0069 +:1094B0001121024B00F0DBFA10BDC046BB99001130 +:1094C00013B50B0011006A4613706B4604000622A8 +:1094D000581C02F08DFA6A4608212000014B00F06A +:1094E000C6FA13BDDB99001110B50A001121024B19 +:1094F00000F0BDFA10BDC0462B9A00117FB50500E3 +:109500000B4BAA00D4580800002C0FD0666F237FA5 +:10951000E28821780396266F0296E66E0196A46E85 +:109520000094FDF709FC2800FFF7FAFD7FBDC04657 +:10953000F865FF1F10B51721FFF7E0FF10BD000011 +:1095400070B50A000D00064B0221040000F08FFAEE +:10955000060029782000FFF7D1FF300070BDC0461B +:109560000B99001170B586B000236A4613708368AA +:1095700004001D78681E0A2859D801A902F0E8F9EC +:10958000060633373B3F43474B4F5300180000F06C +:1095900042F9062312284BD000281BD16088FFF720 +:1095A000D9F90823002813D04279002A47D1264B45 +:1095B0001A78072312070BD5244B1A680723002AB1 +:1095C00006D01668002E03D0290001AAB047030078 +:1095D0006A4613706B461B786088002B2AD1FFF710 +:1095E00067FC06B070BD180000F06CF9D4E71800F5 +:1095F00000F087F9D0E7180000F093F9CCE71800E5 +:1096000000F0ADF9C8E7180000F0C3F9C4E718008E +:1096100000F0F6F9C0E7180000F0F6F9BCE7180012 +:1096200000F013FAB8E7180000F013FAB4E70723C4 +:109630006A46137069466088FFF782FFD1E7052309 +:10964000012AC5D1024BB8E78564FF1FF065FF1FF3 +:10965000F465FF1FF8B52C4F8600F35904000D0088 +:10966000002B40D0DA8882423DD15A78062A33D185 +:109670001A78002A2ED0012099681A6A097D0142C1 +:1096800006D0157B054203D007225A700120F8BD91 +:109690000220014204D0157B054201D00922F4E7E3 +:1096A0000420014204D0127B024201D00B22ECE7DD +:1096B000164B1B68002BE9D05B68002BE6D020001E +:1096C0009847BB5900215B78122BDFD12000FFF7B0 +:1096D00015FFDBE70E4BECE7112A04D1002900D07F +:1096E00032252900F2E7002D08D12000FFF732F9DA +:1096F000002803D0102302791343037121002800AE +:10970000FDF798FAC2E7C046F865FF1FF065FF1F36 +:10971000F465FF1F70B50E4E8500AB590400002B99 +:1097200013D01B78002B11D10A4B1B68002B04D0DF +:109730005B68002B01D02000984773595B78122B8F +:1097400003D100212000FFF7D9FE70BD024BECE7EA +:10975000F865FF1FF465FF1FF065FF1F094B8000D0 +:10976000C3581020002B0CD01A6A002A09D09B681D +:10977000002B06D0127A1B7E101C9A4200D9181CAE +:10978000C0B27047F865FF1F70B503000D001400EC +:109790000220002A30D000292ED013700B78081D2B +:1097A00053704B789370FFF7A7FCE0700120022103 +:1097B0002B7A23716B7B034063716A7B0A401343EE +:1097C000042263716E7B1640334363716E7BF6082F +:1097D000F600334363712B7B0340A371287B014068 +:1097E00000200B43A371297B0A401343A3712A7BFA +:1097F000D208D2001343A37170BD10B50A00010056 +:109800000120FFF7C1FF10BD10B50A0001000220C2 +:10981000FFF7BAFF10BD70B506000C000220002E45 +:1098200030D000292ED07378201D0B70B3784B7088 +:10983000F178FFF76DFC01223579257271794B10B3 +:1098400008001340934010400343881010408000EC +:10985000C9080343C9000B436373B1794B10080077 +:109860001340934010400343881002409200C908FF +:109870001343C9000B4321202373FCF773FE854279 +:1098800001D2122070BD2220257AFCF76BFE8542A2 +:10989000F7D823781820042BF4D86378012BF1D85B +:1098A0000020EFE7030010B50220002909D0002BAB +:1098B00007D00322481C0A7019000D3202F098F8F4 +:1098C000002010BD03000222080010B5002B06D0B6 +:1098D000002904D00E32591C02F08AF80022100030 +:1098E00010BD030010B50220002909D0002B07D0BD +:1098F0000422481C0A7019000C3202F079F800208A +:1099000010BD10B5FFF7DEFF10BD030002200029D7 +:1099100006D0002B04D0052200200A701B784B7063 +:10992000704703000220002B08D0002906D05B7886 +:1099300000200B70013B082B00D918307047030042 +:1099400010B50220002909D0002B07D00622481CA0 +:109950000A7019000A3202F04BF8002010BD10B551 +:10996000FFF7B0FF10BD02000B00022010B5002968 +:109970000ED0002A0CD00721197011885970118857 +:10998000090A997011180822D81C02F031F8002039 +:1099900010BD03000A00022010B5002B0CD00029D6 +:1099A0000AD099785878090201431180901CD91C7B +:1099B000082202F01DF8002010BD030010B502209F +:1099C000002909D0002B07D00822481C0A70190072 +:1099D000921802F00DF8002010BD02000B000220CA +:1099E00010B500290BD0002A09D00921197011786F +:1099F00018185970511C062201F0FAFF002010BD02 +:109A000010B5FFF75FFF10BD02000B00022010B57C +:109A1000002A09D0002907D05178197011180622A0 +:109A2000581C01F0E5FF002010BD030010B5022016 +:109A3000002909D0002B07D00A22481C0A701900FF +:109A4000063201F0D5FF002010BD10B5FFF73AFF38 +:109A500010BD02000B00022010B5002A06D000291C +:109A600004D018005178FFF753FB002010BDF0B56B +:109A700085B017001E006A46062305000800918184 +:109A80009380FEF7C0FC1324011E02900CD0380016 +:109A9000B047041E05D1280001A9FEF76FFA041E85 +:109AA00002D0029801F0E4FE2800FFF701FA20003E +:109AB00005B0F0BDF0B504008BB001911500002198 +:109AC000102202A802F034F8334EA700B85900283B +:109AD0003CD0C388A34239D10378002B36D14278D9 +:109AE000062A18D102000100553235310C3006AB80 +:109AF000FFF7A9FA002829D12000FFF72FFE020066 +:109B000006A902A801F074FF200002A901F0D8FE06 +:109B100001200BB0F0BD816E002917D00B8A112AED +:109B200028D19D420ED101981231093A01F020FF4F +:109B3000012807D1BB5920009D6EFFF70FFE2900B9 +:109B40000200DEE732212000FFF7D8FC2000FEF7FC +:109B500001FF061E1BD0416A002918D00B8AAB42B8 +:109B600015D108220198123101F002FF01280ED10F +:109B7000716A0AE09D42E9D108220198123101F090 +:109B8000F7FE0128E2D1BB59996E8A7EB9E7200021 +:109B900001F0AEFEBCE7C046F865FF1FF0B56B4DA7 +:109BA00087007E5985B0337802900393002B00D054 +:109BB00087E0B368346A01937078062817D10122D0 +:109BC0001B7D134202D0217B114218D10222134285 +:109BD00002D0217B114251D10422134203D0237BB6 +:109BE000134200D08BE0019B5A7DEB5991E007387E +:109BF0000428F8D801F0ACFE032E42678300B36E50 +:109C0000002B03D11C2001F063FEB066EB599C6E63 +:109C1000002C1CD010220021200001F089FF0298A6 +:109C2000FFF79CFD01002000FFF72DFA01F0F8FC82 +:109C30002082200008211230FFF725FA0298FFF752 +:109C40008DFDA076EB592100D888FFF70FFC082284 +:109C5000EB591CE0B36E002B05D01A00198AF0886E +:109C60001232FFF70DFC0222019B197DEB591142C4 +:109C70003DD0207B10423AD0073208E0F488FCF750 +:109C8000DBFD01002000FFF711FC0A22EB595A709E +:109C9000029B9C002A595378073B042B11D8D0888B +:109CA000FEF758FE00284ED0C3895A08D21828491A +:109CB000029B0298CB542B5941180433254801F0DC +:109CC0006FFD05B0F0BDFCF79FFD0300012083424E +:109CD00001D100200393EB59DE88FCF79BFD03992B +:109CE00002003000FFF7ECFB019AEB59117D0422D2 +:109CF00011420CD0217B114209D00B22C7E7F68814 +:109D0000FCF73CFD01003000FFF7EEFB6BE7019A2A +:109D1000527D01210A4204D0607B084201D00C220E +:109D2000B5E702210A4204D0607B084201D00E222E +:109D3000ADE704210A4204D0627B0A4201D010221E +:109D4000A5E71222A3E7FA225200B0E7F865FF1F49 +:109D5000FC65FF1F13A1001110B5064B1A780423F0 +:109D6000100018401A4200D00348FFF727FA0020DD +:109D700010BDC0468564FF1F4043FF1F70B504003F +:109D8000FFF7D4FA051E43D12000FFF77FFA234ED8 +:109D9000A400A0598268937CDB0708D50321036ADD +:109DA0001B790B40012B02D1017F0B430377431D2D +:109DB000D97F8B1E022B0DD8022900D00121C0882B +:109DC000FCF790FF042133591A7F59700A431A7720 +:109DD000280070BD01290CD10223102243700021FC +:109DE0000C3001F0A5FE305910213530FFF74BF94A +:109DF000EEE70529ECD10223D118437010220C3074 +:109E000001F0F6FD04233259117F0B431377EAE783 +:109E100008251828DCD1053DDAE7C046F865FF1FA4 +:109E2000F0B58BB0059143887E4F9E00F459150024 +:109E30000493002C15D1012902D000200BB0F0BDF5 +:109E4000101D57781678FFF757F9EB683200029328 +:109E50002B7A0499019300903B002000FCF70CFF43 +:109E6000EBE7E388049A934201D00820E6E72378E1 +:109E7000012B00D1D4E0059B581E092800D9CFE062 +:109E800001F066FD05CE0A29CC506C859AB22900F6 +:109E90000498FFF773FFD1E7200029001022453016 +:109EA00001F0A6FDB9594B78042B02D1013B4B7050 +:109EB000C3E70B000A00253335320C310498FFF755 +:109EC00095F90498FFF702FA0522431E9841BB5901 +:109ED000C0005A70B2E7200029001022553001F06E +:109EE00087FD049B4F4C9D00295904980A0006AB3E +:109EF00055320C31FFF77AF929591022453106A85D +:109F000001F036FD012808D10498FFF7F7F9059014 +:109F1000002804D106222B595A7005988EE7082391 +:109F20000593FAE763780C2B7AD1E36E002B03D10B +:109F30001C2001F0CDFCE066BB59D86E00286FD024 +:109F40001022290001F054FDBB590498DC6EFFF784 +:109F500005FC0D22A076BB595A706EE7E06E002812 +:109F60005ED063780D2B5BD12B8808220382A91C5D +:109F7000123001F03DFDBB599A68517D0222114219 +:109F800026D0186A407B104222D00C32E4E7637876 +:109F90000E2B45D1236F002B03D1162001F098FC26 +:109FA0002067BB59186F002803D01022290001F048 +:109FB0001FFD0F22BB59CFE763780F2B30D1206FE5 +:109FC0000622691C103001F013FDBB599A68517DBF +:109FD0000422114203D0196A497B1142D5D10021D4 +:109FE0000498FFF78BFA28E7636F002B0DD0BB595D +:109FF000586F0028F3D01022290001F0F9FC01224B +:10A00000BB5952425B6F1A61E9E7142001F060FC12 +:10A01000BB5960675B6F002BE9D126E72978DFE742 +:10A0200007200BE7F865FF1F10B5064C207001F004 +:10A0300047FD06212078FDF791FF0348FEF778FCE5 +:10A0400010BDC0460B66FF1FC991001100200BB266 +:10A0500070B50D00834216DA264B187801F050FBDC +:10A06000041E0DD00378922B0ED0A02B37D0224B9C +:10A070001878FF283AD0210001F0C2FA002835D123 +:10A0800080200002684070BD43780E2B0BD03E2B21 +:10A09000EDD18378052B12D0082BE8D18179808807 +:10A0A000FFF7D8FA08E0154B82889A42DFD183681F +:10A0B0001878591CFEF7C0FE002817D1D7E7104BBF +:10A0C0001B785B0712D50F4B1B68002B0ED09B68CB +:10A0D000002B0BD0C289811D80889847ECE7FFF7E1 +:10A0E00041FAA068002801D001F0C2FB200001F075 +:10A0F00047FDC5E70B66FF1F3943FF1F182000000F +:10A100008564FF1FF465FF1F10B50078FFF712FA92 +:10A1100010BD10B50078FFF7FDFA10BD0C234343C6 +:10A12000084A10B59B185A68002A03D0012901D1AA +:10A13000904710BD9B68002BFBD00029F9D19847B0 +:10A14000F7E7C0462866FF1F01238340094A10B580 +:10A15000946B1C439463506B98435063D46B200002 +:10A160009843012901D120001843D063116B0B43A0 +:10A17000136310BD00800040F0B500240127154B8B +:10A1800085B0DA6B144E03921A6C0192DA64019B6B +:10A19000E3403B4217D0039DE5403D400295E5B2C8 +:10A1A00002992800FFF7BAFF316A736A002908D0C4 +:10A1B0003900002B01D0029979402800FFF7C4FF35 +:10A1C00001E0002BF9D101340C36172CDFD105B09A +:10A1D000F0BDC046008000400C66FF1F064B012109 +:10A1E0005A68C2400A4204D01B68C34018000840A5 +:10A1F00070471B6DF9E7C046008000400122064B06 +:10A200008240002903D0D9680A43DA607047D968D0 +:10A210009143D960FAE7C0460038004030B50324C6 +:10A2200044430F4BE25C1B199C785D7801232D1B86 +:10A230000135AB40013BA340A140DB430C00122899 +:10A2400007D808499200521811681940214311603B +:10A2500030BD054A11680B4023431360F8E7C04640 +:10A26000B3BE001108F0004014F00040C21F70B5EA +:10A27000D4B20623092C0BD80125084C954000299F +:10A2800008D00021FFF7CAFF23682B432360002377 +:10A29000180070BD2368AB43F8E7C04600380040A3 +:10A2A000214BF0B51B185B78022B21D103244443CA +:10A2B0001E4A1F4EA35C1219947801221500854096 +:10A2C000B76B013CE4B23D43A240B563194C122880 +:10A2D00015D89B0000290CD117495B1899680A43CF +:10A2E0009A600123205C154A834011680B43136078 +:10A2F000F0BD11495B18996891439960F1E70E4BE5 +:10A3000000290DD159690A435A61225C1328E8D00B +:10A310000123203A93400A49086803430B60E7E7AA +:10A32000596991435961F0E70C66FF1FB3BE0011F4 +:10A3300000800040F8BE001100F00040A0F0004096 +:10A34000A4F00040F8B500241B4E1C4D1C4B1B5DB7 +:10A35000012B1FD1194A9269E2401A420BD0012207 +:10A36000B25693402200143AD2B2022A09D81549B3 +:10A370004A6913434B61013402360C35172CE5D181 +:10A38000F8BD0022B2560F499200521891680B4353 +:10A390009360F0E7022BEED1E7B23800FFF71EFF23 +:10A3A00001235840C1B23800FFF77AFF3800FFF7A9 +:10A3B00015FF6877DFE7C04685BE00110C66FF1FFA +:10A3C0000D66FF1F00F00040012202388240054B5D +:10A3D000002903D059690A435A617047596991436A +:10A3E0005961FAE700380040F8B50E0001210F006E +:10A3F0008740114A0400D368FD43BB43D360831EEA +:10A400008B4201D8FFF7E0FF00212000FFF72EFF6D +:10A410000A4A0B4B5168012E05D139431B19516073 +:10A420005E700020F8BD2940516002221C19627044 +:10A430009A6915409D61F4E70038004000800040B3 +:10A440000C66FF1F012210B58240074B002906D081 +:10A4500019680A431A600121FFF7C6FF10BD196889 +:10A4600091431960F7E7C046008000400C2370B5A7 +:10A47000002543430A4A29009B181D70094B04001C +:10A480001B185D70FFF7B0FF0123A34006492800A9 +:10A490000A681A430A6005490A689A430A6070BD4F +:10A4A0002866FF1F0C66FF1F34800040308000408C +:10A4B00070B504000E00FF2813D003250540FFF7F8 +:10A4C000D5FF084AA3089B009B183F22ED00AA4035 +:10A4D000AE40196820009143314319600121FFF714 +:10A4E0008DFE70BD18380040F8B50C244443134B62 +:10A4F0000500E4186368002B03D1A3681220002B29 +:10A500001AD0022201270E4B00215B195A70280035 +:10A510002770FFF769FF63681E1E08D0A3683E001E +:10A52000002B04D02800FFF759FE4640F6B2280061 +:10A530003100FFF709FE0020F8BDC0462866FF1F66 +:10A540000C66FF1FF7B5C420FF222B4B8000195863 +:10A55000002491433F3A0A431A508022274F520267 +:10A56000274E1A60274B1D5D002D21D0A31E012B05 +:10A5700003D80121E0B2FFF727FF012D18D11F4BAF +:10A580009B69E3402B4213D0E3B218000193FFF71D +:10A5900025FE01000198FFF755FFE3B2143B022BA3 +:10A5A0001DD801217156184A8D405369AB43536140 +:10A5B0003B7F002B0DD0E5B22800FFF795FF280068 +:10A5C000FFF70CFE7B7F0100834202D02800FFF7DB +:10A5D000A5FD01340C370236172CC3D1F7BD01217C +:10A5E00000237156F3568D40074A9B009B189A68CA +:10A5F000AA439A60DCE7C04600E100E00C66FF1F5A +:10A6000085BE00110D66FF1F00F0004070B50E0002 +:10A6100015000400FFF72AFF0C236343094A2000BA +:10A620009B189D605E60FFF75FFFF021064B074AB5 +:10A630008900051E5A5002D02000FFF717FF28009E +:10A6400070BDC0462866FF1F0000FF1F79A10011E2 +:10A6500070B5134D07202C78002C1FD198222100B3 +:10A660005200280001F07CFA0123C420FF222B7045 +:10A670000C4B80001C635C630B4B1C605C600B4BE1 +:10A68000195891433F3A0A431A50802252021A60E5 +:10A690000D20074A074901F09BF9200070BDC04614 +:10A6A0000C66FF1F00800040A0F0004000E100E0C9 +:10A6B00045A5001145A30011030010B50620072B86 +:10A6C00009D8054A137001F00BFAD7210020034B7B +:10A6D000034A89005A5010BD6843FF1F0000FF1F46 +:10A6E000D91AFF1F70B51D0002240C2910D8094A81 +:10A6F000CA40D2070CD5FBF741FF041E08D1059ACA +:10A7000004992800FBF756FFFCF7C4FDFFF724FB74 +:10A71000200070BD1210000030B50D7802232C000F +:10A720009C43184201D02B431C0008252300AB4357 +:10A73000284201D02B00234320241D00A5432042A2 +:10A7400001D01C4325002A230D70184204D0117833 +:10A750001E3B0B43137030BD0028FCD10C21137835 +:10A760008B43F7E7F8B51D0006AB1B88140007AA5A +:10A770000E000B201778002B27D10A78022A49D126 +:10A780004A68507811780002244A08438018042847 +:10A7900040D801F0DDF803121D1B2300F06800F023 +:10A7A000B7FF021CC0B2B84200D93A1CD2B2200096 +:10A7B000F1682A8001F01CF906E00222F3681B8888 +:10A7C0002A8023701B0A63700020F8BD0622EEE782 +:10A7D00001232B80F3681B782370F5E7F368002BC7 +:10A7E00016D008222A801A8822701A88120A6270EB +:10A7F0005A88A2705A88120AE2709A8822719A883E +:10A80000120A6271DA88A271DB881B0AE371DBE746 +:10A810002B80D9E701202B80D7E7C04600D6FFFF69 +:10A82000F7B516000A781D0008AB1F880C0001233D +:10A83000022A18D14A685078117800022B4A08433E +:10A84000801803280FD801F083F802254439E06806 +:10A8500000F05EFFC0B20723B84204D37B19019316 +:10A86000152B02DD0D231800FEBDE0682A00310023 +:10A87000C01901F0BDF86B4600209B88E268D054F7 +:10A880001B4B1B68834203D01B68834200D0984750 +:10A890000023E8E70B23002FE5D1022DE2D17378E6 +:10A8A00032781B021343E2681380114B1B68002BA4 +:10A8B000EED01B68002BEBD00120E8E70B23002F24 +:10A8C000D1D1062DCED12A003100E06801F090F8F8 +:10A8D000DEE70B23002FC6D1012DC3D132787533AB +:10A8E000012AC0D8E3681A70D2E7C04600D6FFFF3D +:10A8F0001868FF1F70B50C001500072837D801F045 +:10A9000027F8041436361B36242E182015290BD8A8 +:10A91000184E16220021300001F00AF92200290009 +:10A92000300001F065F8002070BD18200229FBD12D +:10A930001288114B1A80F6E718200829F4D10A0072 +:10A940000E48290000F0ACFFEDE718200129EBD1FB +:10A950000B4B10780B49DA69FFF7DEFEE3E71820AE +:10A960000129E1D1064B10780749DA6BF4E70220A0 +:10A97000DAE7C0460068FF1FE643FF1FDC43FF1F06 +:10A980006C43FF1F9443FF1FB443FF1F030010B528 +:10A990000020DB0704D50721024A034800F08CF8A9 +:10A9A00010BDC04610BF00116C43FF1F054A0300D5 +:10A9B0001068002803D082889A4201D180687047CD +:10A9C0000068F6E7106AFF1F0A88030008009A4231 +:10A9D00004D08A8804309A4200D0002070470000DA +:10A9E000F8B5F22200230D4F0D4E79680500424361 +:10A9F0003370994200D07B600A4C0021200001F0A6 +:10AA000097F800231A007C60AB4202D1002033701B +:10AA1000F8BD01332280DBB2F234F5E7086BFF1F8B +:10AA2000066BFF1F146AFF1F73B56B46019006008B +:10AA3000684615001980FCF75FFF041E11D1002D38 +:10AA40000FD07689002E11D00C2000F041FF002895 +:10AA50000ED0084A0460136886808560002B02D1FE +:10AA60001060200076BD1A001B68F7E70224F8E7A3 +:10AA70001324F6E7106AFF1F012100220A4B10B5CC +:10AA800049420A4C198099809A719A70084B20703B +:10AA9000012019805A60FFF7A3FF2078FCF78AFF96 +:10AAA0000448FDF745FF10BD2068FF1F106BFF1F16 +:10AAB000086BFF1F65AB0011022310B5002802D000 +:10AAC000FFF7B2FF0300180010BD0000030010B52F +:10AAD0000020DB0704D50421024A0348FFF7A4FF46 +:10AAE00010BDC04624BF0011EC43FF1FF0B50E2679 +:10AAF00087B003930CAB1F8802ABF6180500080063 +:10AB000031000292FDF77AF804000120002C0FD0EA +:10AB10003088FFF74BFF03000E20002B08D05E6843 +:10AB2000002E05D021002800039B029A0097B04711 +:10AB300007B0F0BD0A4B10B5984207D1012200239F +:10AB400052420A808B708A808B7110BDFFF73CFFE8 +:10AB50000028FAD001235B42038000238370F4E7CE +:10AB6000FFFF0000F8B5050001290AD1134E0024AB +:10AB70003388F227AB4219D028001149FFF7DAFFDA +:10AB800006E0022904D10139FDF750FF0028EDD07D +:10AB9000F8BD3B0063437268D018D35A002B09D02C +:10ABA0003A00002100F0C4FF0134E4B2054B1B78E9 +:10ABB000A342EED801235B423380DDE7086BFF1F21 +:10ABC0002068FF1F066BFF1F10B5FFF7FDFE030097 +:10ABD0000020834200D0987810BD0000F0B589B005 +:10ABE0001C000EAB80CB03901E8810AB1B78049228 +:10ABF00002930B7A0D00DB0616D42B780593022BFB +:10AC000024D00498FFF7D2FE002812D003689C4697 +:10AC1000002B0ED0029B2200019329003B006446CA +:10AC200003980096A04705E00498FFF7BFFE0028B0 +:10AC300002D10E2009B0F0BD8368002BF9D00A22A2 +:10AC40002900039898470028D7D0F3E76B68587815 +:10AC50001A786B4B000210439842D2D8043B9842BA +:10AC600010D2684B984242D015D8674BC0180128C3 +:10AC7000C7D80B20002EDDD1EB681A7859683A80CE +:10AC8000200028E0614BC018032800D979E000F0CB +:10AC90005FFE846A789E5E4B9842B2D10B20002EF4 +:10ACA000C8D101233B80EB6831001B782370688991 +:10ACB000013080B2FCF7A2FF3A88031E0ED0017863 +:10ACC00002328A183A80428962704289120AA2705E +:10ACD00059680278E01C00F08BFE06E004323A80EE +:10ACE00031000422601C00F023FF0020A2E70B20AB +:10ACF000002E9FD1EB6807A91E8804233B80330AEE +:10AD0000300026706370FCF779FF051E28D004AB75 +:10AD10009A890E2304A95B183E49C668FCF7E2FF36 +:10AD200000280BD12B783C486A680599FBF798FB03 +:10AD3000002803D1012304AA5B42D3813278022A7E +:10AD400006D17168201D00F053FE3B8802333B8022 +:10AD50000E2304AA9B181B88A3701B0AE370C4E788 +:10AD600004ABDE81F4E70B20002E00D062E7E96837 +:10AD70000398FFF729FF02233B802070000A6070D0 +:10AD8000B3E70B20002E00D054E70222EB681B88AB +:10AD90003A8023701B0A6370A7E7E86800F0B8FCEC +:10ADA000C2B203000720B24200D243E70DD002999D +:10ADB000DBB27118994202DB921BD3B20293029B61 +:10ADC000E9681A003B8089195AE70023F6E70B204F +:10ADD000002E00D02EE70722EB683A801A78227006 +:10ADE0005A7862705A88A2705A88120AE2701A79E8 +:10ADF0002271DA886271DB881B0AA37175E7C0468D +:10AE0000042900000228000000D8FFFFFFD6FFFF42 +:10AE100003280000FFFF000054BE0011F0B58DB004 +:10AE20006B460020089120229B5E83423DDAA64BB0 +:10AE3000187800F065FC071E32D00378B02B2CD1B7 +:10AE40000079023816281FD800F0E2FC17001E0017 +:10AE50001E001E0031001E0096001E001D011E0077 +:10AE600052011E0073011E00CD011E0050021E0083 +:10AE70001E001E008E021E00E302944B94491B88A4 +:10AE800078880B80FBF72CF83800FCF7ADFF914B6E +:10AE90001B68002B01D038009847380000F070FE86 +:10AEA0008020089B0002434018000DB0F0BDEE2248 +:10AEB0000021874800F03CFE0BAA3B7B798938894A +:10AEC00000923A000D32FCF7B1FD0400804B1B7874 +:10AED000002C3FD146E0804B788805937F4B4100A2 +:10AEE000CB5A0BAE073BDBB23288029300230193AF +:10AEF0007B4B210006930093059BFFF76FFE744D7B +:10AF0000002810D1069B3A8A1B889A420BD1380040 +:10AF10000599123000F02CFD002804D02B786289AE +:10AF20009B00EB185A80162306A81B1832882000B5 +:10AF30007989FCF7D7FE2B7804009A00AA1851886B +:10AF40000029C3D00133DBB22B70002807D006A93B +:10AF5000C98A9180634A12889A42BCD802E00121D2 +:10AF600049429180002B04D059497888FAF7ECFFC8 +:10AF70008AE73E890A2479E000253E89574B0693EB +:10AF80007B88069A5B009B5A033B9D4202DB002DA7 +:10AF9000F0D05BE0162206A812183B7B798900925C +:10AFA0003A0030000D32FCF741FD0590002858D0E2 +:10AFB0004689017A7888FCF703FD041E44D1464B8C +:10AFC00078880793069B4100C95A454B0439C9B29A +:10AFD00006AAD28A06930291019400930599079BD1 +:10AFE000FFF7FCFD041E2FD1069B39491A88931CDC +:10AFF000002D26D14B807988384B4900CB5A511906 +:10B00000033B8B4220DD059B31485B8941190B7165 +:10B01000A91C0135C9B2EDB2059145191B0A2B7166 +:10B02000059B2D490433181800F0E2FC2C4B059ABF +:10B030001B88D318DDB22C4B9E4205D00136B6B228 +:10B040009CE749889942D6D0002D0CD0204C28008E +:10B05000618800F0F5FA207021007888FAF784FF03 +:10B0600012E7059CF0E7002C00D183E77B78142BD6 +:10B0700000D109E716493B794E800B700C71788836 +:10B08000FAF724FF00E7162406ABE41821003889FC +:10B09000FCF7B4FD011E00D1B7E1788822880F4C7F +:10B0A00045002C5B0A4D013CE4B2029400240F4B96 +:10B0B00001940095FFF792FD041E00D014E12900D1 +:10B0C0007888FAF761FFDFE6106BFF1FD842FF1F99 +:10B0D0002868FF1F1C68FF1F1C69FF1F5864FF1FA3 +:10B0E0000C6AFF1FD642FF1FFFFF00002A68FF1FE8 +:10B0F000162406ABE41821003889FCF77FFD011EF9 +:10B1000000D182E178882288AE4C45002C5BAE4DA0 +:10B11000013CE4B202947C89AC4B01940095FFF7AA +:10B120005DFD041E00D0DFE029007888FAF736FFC5 +:10B13000AAE60025A44B1D803B00F6331B78A24AEB +:10B1400078880792AB4208D99E4B128806930699DD +:10B1500043005B5A013B9A4203DB0799FAF728FF49 +:10B1600092E616246B00FB18059306ABE418059BCA +:10B1700021001889FCF742FD011E03D1059B012423 +:10B180001E8973E77888924B2288069C09934300B6 +:10B190001B5B904E013BDBB20293002300960193B0 +:10B1A000099BFFF71BFD041E02D0059B1E895DE76E +:10B1B0007B88069A5B009B5A079A1088328812187F +:10B1C000934202DC1B1A013B33807F4C02303288F1 +:10B1D0000999001900F00CFC2388328801359B186E +:10B1E0002380EDB2A8E70BAA3B7B798938890092CE +:10B1F0003A000D32FCF71AFC00250590059B002B48 +:10B2000004D10A24002D00D16EE060E0059B78880F +:10B21000197AFCF7D5FB0100041E63D1694C6C4B15 +:10B22000788806940993069B4400E45A694B063CCF +:10B23000E4B20BAE32880793029401910093059912 +:10B24000099BFFF7CBFC041E4CD1079B5E491B8872 +:10B250001A1D002D30D14A80059B5B4C5A89631919 +:10B260001A716B1C9BB2E318120A1A71162306A8F6 +:10B2700032881B1879890598FCF734FDFF21AA1C38 +:10B280002E1D03350B00059092B2B6B2ADB2002868 +:10B2900003D006ABDB8AD9B21B0AA218651911715B +:10B2A0002B714C4D301D2A884949201800F0A0FB15 +:10B2B0002B88F618B5B2A1E74988914207D17A8860 +:10B2C00006995200525AEB18053A9A42C4DC3E4C99 +:10B2D0002800618800F0ACF9207021007888FAF726 +:10B2E00071FED1E5002DF2D13E89BFE6162606ABF0 +:10B2F000F61831003889FCF781FC3D000400FA356E +:10B3000000282DD0037A9B060CD400227B89398932 +:10B31000788800923A000C32FFF7E8FB041E10D048 +:10B320003E8915E03088FFF741FB00281AD083687A +:10B33000002B17D02100122278889847041EE4D0F1 +:10B34000EEE72B78002B02D17888FAF74BFE002627 +:10B350002B78002B00D097E5002C00D194E585E6F2 +:10B360000124DDE70E24DBE7162506ABED182900E6 +:10B370003889FCF743FC041E47D0037A9B0611D49E +:10B38000154A7B881188994203D01448814207D11D +:10B390001380134BF2261D780023D9B2A94221D382 +:10B3A0000924A1E72888FFF701FB00282FD0836834 +:10B3B000002B2CD02100122278889847041EDFD061 +:10B3C00092E7C0465864FF1F2868FF1F2A68FF1FC6 +:10B3D0001C69FF1F0C6AFF1F086BFF1FFFFF0000A7 +:10B3E000066BFF1F31005943546801336018615ADE +:10B3F0000029D2D13C0008342100F22200F0F8FAF2 +:10B4000021007888FAF7F6FD3EE501246CE70E246A +:10B410006AE71D4B1A887B889A4231D07888FAF700 +:10B42000F3FD31E5F223059851684343CD18C95A1D +:10B4300000291FD03B7A012B0BD16C88AB88788810 +:10B44000AA1D0094FFF752FB041E02D000233B729A +:10B450002E88F2220021280000F06AFB00232B80B6 +:10B46000059B0133DBB20593084B05991B78064A0F +:10B470008B42D7D801235B421380002CCED0F5E558 +:10B48000002634000596EFE7086BFF1F066BFF1FD1 +:10B4900070B504000E001500FFF796FA031E08D1E0 +:10B4A00031000548FFF790FA03001120002B02D06D +:10B4B0001C8000209D7070BDFFFF0000F8B50B4F91 +:10B4C00006003B780D001400FF2B0ED00A2000F080 +:10B4D000D7F9011E09D0B1230380002346800371F0 +:10B4E000C5800481387800F08BF8F8BD2D44FF1F2B +:10B4F000F7B50F0008A90600088809A90B240988D8 +:10B50000002821D10234022B1ED1557813782D0248 +:10B510001D432B008B4301937334002B14D1FB6824 +:10B52000300019000093FFF74FFB019C85420BD0C0 +:10B530002A0030000099FFF7ABFF041E04D12A0057 +:10B5400030007989FFF7BAFF2000FEBDF0B50E7814 +:10B5500085B003900AA805880120022E0DD14C6801 +:10B560002778647824023C43054FBC4205D10398F8 +:10B57000DBB201960095FFF7BBFF05B0F0BDC046FA +:10B5800002290000034B10B51B68002B00D0984720 +:10B59000FEE7C046146BFF1F07B501A8FFF7F2FFD7 +:10B5A000044A05480021121A00F0DAFAF8F722F9E5 +:10B5B000FEE7C046186BFF1F3044FF1F000000006D +:10B5C00001B40248844601BC604700BF456B0100DE +:10B5D00001B40248844601BC604700BFD92FFF1F59 +:10B5E00001B40248844601BC604700BFB14E000070 +:10B5F00001B40248844601BC604700BF45510100C8 +:10B6000001B40248844601BC604700BF594F0100A5 +:10B6100001B40248844601BC604700BF1930FF1FD7 +:10B6200001B40248844601BC604700BF29510100B3 +:10B6300001B40248844601BC604700BF090E000007 +:10B6400001B40248844601BC604700BF350E0000CB +:10B6500001B40248844601BC604700BFC9A900008C +:10B6600001B40248844601BC604700BF014C0100A0 +:10B6700001B40248844601BC604700BF791800004D +:10B6800001B40248844601BC604700BF01240000A9 +:10B6900001B40248844601BC604700BF7D18FF1F0B +:10B6A00001B40248844601BC604700BF5D1700003A +:10B6B00001B40248844601BC604700BFADAE000043 +:10B6C00001B40248844601BC604700BF792DFF1FCA +:10B6D00001B40248844601BC604700BF055E00001B +:10B6E00001B40248844601BC604700BF55220000F7 +:10B6F00001B40248844601BC604700BF193AFF1FED +:10B7000001B40248844601BC604700BFF54E010009 +:10B7100001B40248844601BC604700BFDD5201000D +:10B7200001B40248844601BC604700BF8B5201004F +:10B7300001B40248844601BC604700BFA54F010028 +:10B7400001B40248844601BC604700BF4D1F0000A1 +:10B7500001B40248844601BC604700BFE117000005 +:10B7600001B40248844601BC604700BF4D38FF1F4A +:10B7700001B40248844601BC604700BF2932FF1F64 +:10B7800001B40248844601BC604700BFC52DFF1FBD +:10B7900001B40248844601BC604700BF75A900009F +:10B7A00001B40248844601BC604700BFA9460100BD +:10B7B00001B40248844601BC604700BF1147010044 +:10B7C00001B40248844601BC604700BFD91B000099 +:10B7D00001B40248844601BC604700BF51470100E4 +:10B7E00001B40248844601BC604700BF0132FF1F1C +:10B7F00001B40248844601BC604700BF9136FF1F78 +:10B8000001B40248844601BC604700BFEDA50000BA +:10B8100001B40248844601BC604700BF413BFF1FA2 +:10B8200001B40248844601BC604700BFB352010026 +:10B8300001B40248844601BC604700BFF94C0100D6 +:10B8400001B40248844601BC604700BF5952010060 +:10B8500001B40248844601BC604700BFC135FF1FE8 +:10B8600001B40248844601BC604700BF3555000062 +:10B8700001B40248844601BC604700BFD9490100B9 +:10B8800001B40248844601BC604700BF1D4D010061 +:10B8900001B40248844601BC604700BFC51D0000DA +:10B8A00001B40248844601BC604700BF810E00001D +:10B8B00001B40248844601BC604700BF291C000057 +:10B8C00001B40248844601BC604700BF311B000040 +:10B8D00001B40248844601BC604700BF3D4B0100F3 +:10B8E00001B40248844601BC604700BF851F0000C8 +:10B8F00001B40248844601BC604700BF091B000038 +:10B9000001B40248844601BC604700BF691F0000C3 +:10B9100001B40248844601BC604700BF4537FF1FA1 +:10B9200001B40248844601BC604700BF6571010054 +:10B9300001B40248844601BC604700BF3938FF1F8C +:10B9400001B40248844601BC604700BFED39FF1FC7 +:10B9500001B40248844601BC604700BF2D3BFF1F75 +:10B9600001B40248844601BC604700BF350E0000A8 +:10B9700001B40248844601BC604700BFCD4C0100C1 +:10B9800001B40248844601BC604700BF5933FF1F21 +:10B9900001B40248844601BC604700BF2146010053 +:10B9A00001B40248844601BC604700BF4550000016 +:10B9B00001B40248844601BC604700BFED4A010063 +:10B9C00001B40248844601BC604700BFC12FFF1F7D +:10B9D00001B40248844601BC604700BF6130FF1FCC +:10B9E00001B40248844601BC604700BFC538FF1F50 +:10B9F00001B40248844601BC604700BFE94C010025 +:10BA000001B40248844601BC604700BFC56D010017 +:10BA100001B40248844601BC604700BF25260000EF +:10BA200001B40248844601BC604700BF1D4B0100C1 +:10BA300001B40248844601BC604700BF056A0000AB +:10BA400001B40248844601BC604700BFB54C010008 +:10BA500001B40248844601BC604700BF8D1200005B +:10BA600001B40248844601BC604700BFE9280000D9 +:10BA700001B40248844601BC604700BF6DBC0000B1 +:10BA800001B40248844601BC604700BFC5210000E4 +:10BA900001B40248844601BC604700BFF30E0000B9 +:10BAA00001B40248844601BC604700BFC94A010096 +:10BAB00001B40248844601BC604700BF9135FF1FB6 +:10BAC00001B40248844601BC604700BFC92600009B +:10BAD00001B40248844601BC604700BF9DA9000034 +:10BAE00001B40248844601BC604700BFD91AFF1F59 +:10BAF00001B40248844601BC604700BFDD66010016 +:10BB000001B40248844601BC604700BF8538FF1F6E +:10BB100001B40248844601BC604700BF9D35FF1F49 +:10BB200001B40248844601BC604700BF7139FF1F61 +:10BB300001B40248844601BC604700BF154D0100B6 +:10BB400001B40248844601BC604700BF5118FF1F82 +:10BB500001B40248844601BC604700BF017F000079 +:10BB600001B40248844601BC604700BFB70E000024 +:10BB700001B40248844601BC604700BF090E0000C2 +:10BB800001B40248844601BC604700BF434D010038 +:10BB900001B40248844601BC604700BF156B010038 +:10BBA00001B40248844601BC604700BF0539FF1F4D +:10BBB00001B40248844601BC604700BF0D52010039 +:10BBC00001B40248844601BC604700BF3D18000034 +:10BBD00001B40248844601BC604700BF193BFF1F07 +:10BBE00001B40248844601BC604700BF51250000F3 +:10BBF00001B40248844601BC604700BFE54800002C +:10BC000001B40248844601BC604700BF8552010070 +:10BC100001B40248844601BC604700BF21240000F3 +:10BC200001B40248844601BC604700BF5549010089 +:10BC300000030102020303030403050006020700D8 +:10BC4000080209030A030B030C000D000E030F0387 +:10BC5000100311031303140315021602BD3B001158 +:10BC6000F13B0011000000000200000072BC001156 +:10BC7000192A0F180A000000F1590000FD240000E5 +:10BC800041460100398000114DA00011A17400113E +:10BC90003D7E0011195300111DAE0011814F00119E +:10BCA000CD3D0011FD3E0011000000001616000001 +:10BCB00002000000BCBC0011F4FFF3FFD2FC000046 +:10BCC0003D40001100000000000000005475796143 +:10BCD0000042312E350030303137006769746875A5 +:10BCE000622E636F6D2F7076767800544842310073 +:10BCF0000200000004BD0011292A282A272A262A2A +:10BD0000252A242A0A180000E2040000710200001B +:10BD100078EC0000744000001027000060F0000084 +:10BD200006640000204E0000000000000500000036 +:10BD30001F501D00023CB400000117001500000058 +:10BD4000A1020000303132333435363738394142C0 +:10BD500043444546000000001D5700117157001173 +:10BD6000000000000200000070BD00116F2A6E2A62 +:10BD70001A18EAD8BC80F0FC600000000000000047 +:10BD800000005F066B2F363D7D077F3F777C596E45 +:10BD90007971000001A00000000000006410B71DD0 +:10BDA000C8206E3BAC30D9269041DC76F4516B6BE9 +:10BDB0005861B24D3C7105502083B8ED44930FF0AB +:10BDC000E8A3D6D68CB361CBB0C2649BD4D2D38661 +:10BDD00078E20AA01CF2BDBDFB349B5F80000080AE +:10BDE0000010000000000000A36000112D7700117A +:10BDF000C7600011357B00114B6100110B7B0011F6 +:10BE0000C1610011E17A001113620011A97C0011D7 +:10BE10007B620011A97C0011AD620011637C0011EE +:10BE2000C1610011997A001139620011417C001141 +:10BE300000000000000000001F630011417C0011A1 +:10BE40008163001145770011052A042A012A002A7E +:10BE5000022903280128002801180018000000000A +:10BE60000000000000000000000000870101020146 +:10BE700002010102010203030401030101010101A6 +:10BE80000303020103000D000E0010001100130057 +:10BE90001401070108010A010B011C011D02040223 +:10BEA00005020702080219021A021C021D030103FF +:10BEB000020317000201000504000807000B0A0036 +:10BEC0001716001D1C010201010504010E0D0111D0 +:10BED00010011413011716011A19020201020B0AAC +:10BEE000020E0D02111002141302171603050403AB +:10BEF0000807030B0A030E0D0001020307090A0BD2 +:10BF00000E0F101112141718191A1B1F20212200CE +:10BF100065A7001121A80011000000000200000028 +:10BF20005ABE0011000000004DB5001100000000D5 +:08BF30000200000058BE0011E0 +:020000041FFFDC +:1000000000000000353D001178BC001174BC0011E7 +:100010003C61FF1F00000000000000000000000025 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:100190004D32FF1FAD30FF1FC1660100000000009F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:1003700099B500110000000000000000000000001E +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000591AFF1FBC +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:08183800206FFF1F4118FF1F84 +:10184000024981F3088802F0EFFA0000206FFF1FC1 +:1018500010B502F061FA072804D0122808D0022837 +:1018600008D010BD044A0420136B01331363F8E75A +:101870000220F6E71420F4E70065FF1FF8B5070023 +:101880000C0026002500503630785135002804D150 +:101890000300287058342370F8BD2978CA00481E08 +:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 +:1018B00000280DD12B78DA00A218013350602B706C +:1018C0003378044A013B3370136A01331362D8E75B +:1018D0000123DFE70065FF1F5C234343074910B581 +:1018E000C9180B0058331B78012B05D1FFF7C6FF31 +:1018F000034A936A0133936210BDC0463465FF1FEB +:101900000065FF1F10B502F02FF9064A01211300F0 +:1019100010CB4942D967044B136002F0D5FA20007E +:1019200010BDC04600E100E01000100010B504003A +:1019300002F01AF9024B1C6002F0C6FA10BDC04654 +:1019400000E100E0431E5A425341A022F0B5D2010B +:101950005B421340154D164A40019B182A18127E0F +:101960008BB00191002A1BD01A000832D46F0022DC +:10197000E6B206AFE4B294420EDC2818C369002B2D +:1019800008D0019902AA117106AA049202AA16733C +:1019900003A898470BB0F0BD1978B9540132EAE7B3 +:1019A0001A7D1A7806AB01261A70E6E7C067FF1F9A +:1019B00000400040F0B5254B04004001C25C85B0FA +:1019C000002A2BD01A18117E002927D0917E0029D9 +:1019D00024D01179022921D11689D788D168F51B25 +:1019E000ADB22A1C102D00D9102292B2BE4217D1DE +:1019F0001818012303710023C269C38003819A422E +:101A000006D06846032103730171029301A8904731 +:101A10000820002C00D0192001F0FEFA05B0F0BD1E +:101A2000013C65426C41A0256442ED012C40084D0B +:101A30001B186419074D0633013A92B2AA42EDD041 +:101A40001888461C1E80085C2070F5E7C067FF1FE1 +:101A500000400040FFFF00000F220E4B10B59868B9 +:101A6000104002380A280BD802F060F80D0A0B0A61 +:101A70000A110A0A0A0A060002210020FFF762FF83 +:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 +:101A9000F6E7C046004000400F220E4B10B5986894 +:101AA000104002380A280BD802F040F80E0A0B0A40 +:101AB0000A120A0A0A0A060002210120FFF742FF61 +:101AC00010BD01210800F9E70120FFF773FFF7E7D8 +:101AD000DB6FF5E70090004013B5334C2378072BFC +:101AE0003DD8324B1A78324B002A39D180221968FE +:101AF00052020A431A60252001F0C4FE20232D4A19 +:101B000011680B43802113606B460422C9050868E5 +:101B10000733104228D080210422C905C86810422A +:101B20002ED080212020C905CA688243CA601422B1 +:101B30001A701A78002A2FD18021C905C86820326E +:101B40000243CA6014221A701A78002A28D11A4B4C +:101B50001A7D22785A601D221A705932DA6013BD3C +:101B60001A6816490A40C5E7086802430A60142249 +:101B70001A701A78002ACED01A78013AD2B2F7E752 +:101B8000C8680243CA6014221A7019784A1ED2B279 +:101B90001A700029F9D1C4E71A78013AD2B2C7E71E +:101BA0001A78013AD2B2CEE76843FF1F3044FF1FD4 +:101BB0003CF000406043FF1F00200040FFFFFEFF9D +:101BC000564B70B51B68012B03D1554A936D0133F9 +:101BD000936502F0D1F9534B534A1860534B544C60 +:101BE0001A600123534A1360534A13602378002B71 +:101BF00006D006225149524802F03EF800232370D5 +:101C0000504A514B10681B78C1B2002B0ED14F4C7B +:101C1000C0B223785BB2002B4FDB237824785BB211 +:101C200064B21B0424021B191B1813600B1C5029DF +:101C30004ED95023464A47491078DBB2FF2202288A +:101C40004BD10868444C454D267890432A789642FB +:101C500054D9227824782E78023B5D10A31B6B4365 +:101C60005201D31A10335B111843086001F0CCFF06 +:101C7000031F012B45D83A4B1B78002B06D0394B5C +:101C80001B78002B02D0002002F0E6F9A122364B8F +:101C900092009978354B4A431B689B188322920027 +:101CA0009B181B78033B012B03D8AF20400002F0A8 +:101CB00073F801222E4BDA8270BD237824785BB250 +:101CC00064B2FF33FF341B0424021B190138ABE755 +:101CD000CAB2022AAED20223ACE70868254C264DD0 +:101CE000267890432A78964208D9227824782D784D +:101CF000023B5B10641B63435201B2E72378DBB203 +:101D0000B2E70228D5D11D4B1B78013B022B03D92A +:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 +:101D2000FC0FFF1F3864FF1FFF3F0000141003402B +:101D30003C64FF1F0C10034000100340D50BFF1F35 +:101D40007211FF1FB40003408C09FF1F680AFF1FB8 +:101D5000490AFF1F94000340460AFF1F470AFF1F5E +:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 +:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 +:101D80002309FF1F10B502F0D7F80022014B1A807B +:101D900010BDC0463664FF1F10B502F0FDF8A1214A +:101DA000054A89009478054A61431268044B521829 +:101DB000528C1A8010BDC046300DFF1F3409FF1F22 +:101DC0003664FF1F10B50D4B0D4A9978A1239B0077 +:101DD0004B431268D218531DD97F0A4B1B88994276 +:101DE00009D2441C07D0C82805D0D2695B1A5A43CF +:101DF000054B5343C01802F06FF810BD300DFF1FA4 +:101E00003409FF1F3664FF1F7102000070B5244DB6 +:101E10002B68002B28D001F0FFFE2B68D8402B68E0 +:101E20000400002B27D001F0B7FE2B68D8401D4BD3 +:101E30001D4A9978A1239B004B431268D118D25CAC +:101E400091239B00002A20D0CA580132CA50174B58 +:101E500017491B680868834214D3D23B181A012A19 +:101E60001AD0144B186070BD01F0D6FE124B1968E1 +:101E700001F082FFD3E701F08FFE0F4B196801F0EC +:101E80007BFFD4E70D495B18E8E7CA500C4B1B6891 +:101E9000DB68E418201AE4E7F530FF30E1E7C046DC +:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 +:101EB0003864FF1FA009FF1F1808FF1F2DFF3F00F8 +:101EC0004064FF1F70B504000D00282916D10300DF +:101ED000A433C2881B889B1A0B4A9BB293420DD92C +:101EE00006006A3605223100653001F0B5FF002892 +:101EF00004D13100200001F037FF70BD290020001F +:101F000001F0B2FEF9E7C046FE7F0000F8B505001B +:101F1000012001F061FE134CA36AA26A9342FBD137 +:101F2000114E336002F060F8104903000860104859 +:101F3000426894460F4A17680022BC4501D24268A5 +:101F4000BA1A0D4802603268AD18A422E562606AD0 +:101F5000520302436262094A1278002A01D00F3B01 +:101F60000B60F8BD00F00040340AFF1FE408FF1FBB +:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 +:101F800070B580241025E405A3682B43A36002F0FC +:101F900023F8A368AB43A36070BD0000F7B516003B +:101FA00080221C001023D2050191916805000B438B +:101FB000936000225A4BD7301A6001F0FDFD9D233B +:101FC0002A002F009B00EB58CA3201210092FC37F7 +:101FD000002B01D00021009A386801F08DFE290005 +:101FE000009BCB311A784F4BD3351A604B780A7867 +:101FF0001B0213438A7812041A43CB781B0613433F +:10200000494A1BBA13604B790A791B0213438A7938 +:1020100012041A43CB7931001B061343434A1BBAFF +:1020200013606B782A781B021343AA7812041A43B0 +:10203000EB781B0613433E4A1BBA1360019A330226 +:1020400013433C4A13603C4B22001B1B9C46032954 +:102050003DDCB3089A0013005142B21A032A46D15C +:10206000354AE018511A827840781204000202437F +:10207000E05C043302430A600022FF2B4BDDF022B8 +:102080002E4B12011A600F222D4B1A602D4A136835 +:10209000002BFCD00023224A27491360091B321D64 +:1020A0000B191B68043A180A23706070180C1B0E79 +:1020B000A070E3700434002AF2DC802210213B6817 +:1020C000D20501333B6093688B439360F7BD634651 +:1020D000D578981893782D061B042B43157804396E +:1020E0002B43557804322D022B430360AFE7022ABD +:1020F0000AD1114AE05C511AE218527812020243E6 +:102100000A6004339BB2B7E7012AB5D10A4A521AD2 +:10211000E15C1160F5E7084959180A600433ACE73F +:10212000000004403C0004403800044034000440F7 +:10213000300004400C00044000010440040004404E +:102140001000044014000440F7B5150080221C0064 +:102150001023D2050091916807000B439360002380 +:10216000654AD730136001F027FD9D233E009B0098 +:10217000F9583B00CA363200FC33002900D07FE01A +:10218000586801F0B9FD390032785C4BCB311A60E8 +:102190004B780A781B0213438A78AC4612041A4320 +:1021A000CB78281D1B061343554A1BBA13604B7985 +:1021B0000A791B0213438A7912041A43CB791B064E +:1021C0001343504A1BBA13604B7A0A7A1B0213431B +:1021D0008A7A12041A43CB7A21001B0613434A4A17 +:1021E0001BBA1360009A2B021343484A1360220063 +:1021F000474B1B1B0093009BCE785B1801938B7899 +:1022000036061B0433430E78043833434E780431CA +:1022100036023343019E33600328ECDC0321A80817 +:10222000431C9B002940800003292BD13849E51825 +:102230005E18A9786D78E35C09042D0229431943DF +:102240003160030008330021FF2B2DDD314B324973 +:1022500019600F21314B1960012327490B60304B66 +:1022600019680029FCD006211B680B40042B20D0E4 +:1022700080220020D20593680A318B439360FEBD13 +:1022800001217DE7022908D121495D18E11849782B +:10229000E35C090219432960D3E70129D3D11C4922 +:1022A0005918E35C0B60CCE7194818180160043337 +:1022B000CAE7002310490B606346002B0CDC3B008F +:1022C000FC335A68102101325A608022D20593688B +:1022D00001208B439360D2E7009B9B181B68190A6F +:1022E00013705170190C1B0ED37004235B42917054 +:1022F0009C440432E0E7C046000004403C00044037 +:102300003800044034000440300004400C00044015 +:102310000001044004000440080F000010000440C5 +:102320001400044070B5061E19D002225A4B9B7946 +:102330009343012B13D1594B1A78FF2A0FD15A78A6 +:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 +:102350001A79FF2A03D15B79FF2B00D199E0504B0A +:102360000C201A78012A08D000224E4D1A702978C4 +:102370000B00093B042B01D8212070BD4B1F012B02 +:10238000FAD9454CA37B042B00D982E0A279032A19 +:1023900000D97EE09A1ED2B2012A02D860881F2896 +:1023A00077D9002E56D0012E73D1A0880128E3D012 +:1023B000002907D1581E032803D801F0B7FB1217D4 +:1023C00015122E702978481E032811D80025364B87 +:1023D0001D602823237501F01FFEA84227D0A58089 +:1023E000CAE702212970EDE70421FBE70321F9E7A1 +:1023F00007390129C0D82D490968C96A8906BBD5A2 +:102400002B4908780028B7D1012A01D9002BB3D174 +:1024100002230B708021274D2633890128782375EC +:1024200001F012FD80212878890101F015FC0123BB +:10243000A380214B1B78002B0AD0FA2280211F4B4E +:1024400092001B8809025A431A4B187801F0B4FD18 +:10245000002092E701F088FB2B78A680073B012B38 +:1024600003D917482E7001F077FD114B114C1A78E3 +:10247000002A06D080210022207889011A7001F0FC +:10248000E3FC01F021FD80212078090201F0DCFC51 +:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 +:1024A0001A09FF1F1C09FF1F4809FF1F4064FF1F77 +:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 +:1024C0000010004010B5002901D001F04DFD10BDF5 +:1024D000F7B5604B01919978A1239B004B435E4A6D +:1024E000060014681022E418D6235B00E058362357 +:1024F000FF33E35C00279343222B41D1574B0F3A24 +:102500001A600760012501F05FFC019B1880E82339 +:102510005B00E35C002B01D0B34258DD0023504F39 +:10252000FB70AD33FF33E3581A68002A03D09B8851 +:10253000DB439B071DD03823FF33E35C002B18D00F +:102540009B235B00E35C002B13D1D133FF33E35CAF +:10255000B3420EDAA4235B00E15AE018090A023103 +:1025600001F0F2FB23000122FE33013E01351A8700 +:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 +:1025800003683D00002BBED081880430090A023167 +:1025900001F0DAFBD6235B00E3581F60B2E72300AB +:1025A000B133BA00FF339858013781880430090AE3 +:1025B000023101F0C9FBE8235B00E35CBB42EEDCC7 +:1025C000E822F61AED1800235200A354A6E70027CC +:1025D000F1E7200001F090FC00281FD0002E1DDD47 +:1025E0007319882647190193B600200001F094FC66 +:1025F0005A30800020184068013581880430090A6B +:10260000023101F0A1FB200001F06EFBA359013360 +:10261000A351BD4202D0019B9D42E6D1114BE35C28 +:10262000002BABD095239B00E35C002BA6D00E4B78 +:10263000E15A0029A2D00D4AA35C994202D9013384 +:10264000A3549BE700231A212000A35401F0ECFAC5 +:1026500094E7C046300DFF1F3409FF1F00140340EC +:10266000E010FF1F5A020000720200005E0200002C +:102670000D4970B54A6E0D4CD2038B69D20BA24244 +:1026800006D80B4D0224AA4204D901F075FA70BD98 +:1026900002246442E21815007E2425402242F4D030 +:1026A000A3432B438B61F0E700F000400A200000B9 +:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 +:1026C000BA7B002A02D101321A7003E0032AFAD041 +:1026D000022AF8D001F0A0FC00220120154B1A704C +:1026E000F8BD154B154D1C68154B9E7801232B70BA +:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D +:10270000CBFAA1239B007343E41883239B00E418B6 +:1027100023782B70E4E7032B02D101F0E5FBF0E70F +:102720000020022BDCD101F00FFCEAE71C09FF1F9F +:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 +:10274000300DFF1FF0B587B00EAD2F780FAD2D788F +:102750000593AC46634614000E4D0CAA12782E78F1 +:1027600003930D9B009201932200059B029701F0B9 +:102770009BFB2E70012C01D0042C08D1802206492D +:102780008B889343054A1278D20113438B8007B09C +:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 +:1027A0000B001B3B70B504003020E02B0DD813004C +:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 +:1027C000200019825A8201F0C7F970BD8410FF1FE2 +:1027D00010B501F0D1FB054B00205B68052B04D937 +:1027E000034A5268D20200D4980810BD001000407D +:1027F000FCE100E070B501F0B7F90D4B1B68FC334C +:10280000DC691D6AFFF7E4FF6419844204D2094BB6 +:1028100001241B68002B07D004220024064B1A70E9 +:10282000064A93690133936101F04EFB200070BDAD +:102830004064FF1F9809FF1F2309FF1FFC0FFF1FA4 +:1028400070B50C4D2B68FC335C6A01F08DF9FFF715 +:10285000BFFF2B680025FC339B6AE318834204D238 +:10286000054B1B68AB4200D1051B01F02DFB280076 +:1028700070BDC0464064FF1F9809FF1FD722044B5C +:1028800092009B5810B5002B00D0984710BDC04651 +:102890000000FF1F10B501F0D3F8FFF7EFFF274945 +:1028A000274BCA6D274C1A4084235B001343CB652A +:1028B000254B1B68186A01F08FF9244B244A1A60D3 +:1028C000244B254A1A60A022244B52001A60244B44 +:1028D000187801F0B9FB2000224901F085FA0023A5 +:1028E000A3600233A360204B2049236003232048C8 +:1028F000A36001F079FA10221E4BFF201A6080229B +:1029000052031A60802292031A60802212041A6015 +:1029100001F0A2FB012001F0BFFAFA20400001F013 +:10292000D3F9582001F038FA134801F04DF901208D +:1029300001F052FA072001F067FB10BD00F00040E3 +:1029400000FEFEFF141000404064FF1F0000034023 +:102950000180063DBC00034034080000A400034091 +:102960004A0AFF1F71020000C3090000FFFF3F0079 +:102970002810004000E100E030750000674E336829 +:1029800088331B6883F3088801F096F9644A654927 +:10299000136800200B401360634B644A1B6893422A +:1029A00000D1A6E001F048FB0221614A13688B4385 +:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 +:1029C000F3F80023A3600233A3605C4B0120236073 +:1029D00001F002F90323A36001F0D6F9040001F02D +:1029E000CBFA050001F0D0F9554B186001F0CCF896 +:1029F000544B1968621A531EA14200D21300802260 +:102A0000D203934201D39B029B0A3268D16AC90761 +:102A100000D471E04C491C0C09689BB24C435943EB +:102A20002402090A641803264849FC3293680A689C +:102A300047489B1A474A0768126847499B18474A04 +:102A40009A1833409208DB190A600360042B03D9FB +:102A5000013233400A6003600E684149A619300014 +:102A600001F08AF93F4F3E493B68C3183B60300094 +:102A7000019301F009FA3C4E30680818384930607B +:102A8000884205D9019B01333B6001F0FDF93160BB +:102A900001F0AAF8354B1B78002B0DD001F06CFA31 +:102AA000334B621B196812188A4232D24919091B2A +:102AB000091A304801F098F92F4E337A002B0ED0C6 +:102AC00001F05AFA621BF1681218914224D949198F +:102AD000091B091A294801F087F900233372284B92 +:102AE00083F3088801F0E0F8002001F0A5FA01F076 +:102AF0005BF901F0A1FA5CE7DC0199000234641A89 +:102B00005900641A09214B438033CB40A408E418D0 +:102B100089E7FA218900CCE71A49DBE74064FF1F07 +:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C +:102B300010000040490AFF1F14100040C3090000A4 +:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 +:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 +:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 +:102B7000E408FF1F00100040740BFF1F3C100040D2 +:102B800000000020DC050000A022054B92009B58AD +:102B900010B5002B01D0984710BD01F04DF9FBE7AF +:102BA0000000FF1FA122054B92009B5810B5002B7F +:102BB00001D0984710BD01F03FF9FBE70000FF1F6F +:102BC000A222054B92009B5810B5002B01D09847CC +:102BD00010BD01F031F9FBE70000FF1FA322054BF8 +:102BE00092009B5810B5002B01D0984710BD01F002 +:102BF00023F9FBE70000FF1FA422054B92009B581E +:102C000010B5002B01D0984710BD01F015F9FBE776 +:102C10000000FF1F70B501F0AFF94F4B186001F0D5 +:102C20008BF80400C30702D401F046F970BD0022FE +:102C30004A4B1A604A4B18780138042829D800F00A +:102C400075FF0320181C2400200001F0B5F80128AE +:102C5000ECD0444C2378042B6ED100F0F5FF002813 +:102C6000E4D001F0E1F9582001F096F80223237036 +:102C7000DCE7200001F0C0F9E9E7200001F06CF882 +:102C8000E5E7200001F050F9E1E7200000F0D4FF73 +:102C9000DDE700F0B9FF0500012808D1324B1B78B1 +:102CA000053B012B03D82000FFF76EFFD1E72D4B2A +:102CB0001B78022B01D0052B20D1022D28D12B4BC4 +:102CC0009B7BAB431CD12000FFF76CFF264B187891 +:102CD0000128BED16405BCD4244925224B7B034284 +:102CE00005D1233A13405A42534126331A000B7D33 +:102CF0009342AED9322000F0C7FFAAE7022D07D1D8 +:102D0000194B1B78052B11D12000FFF759FFDDE788 +:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 +:102D2000062B03D12000FFF767FF92E7200001F098 +:102D300083F8022D8DD1C9E7032B04D10C4B987C6D +:102D400001F062F872E7072B00D06FE7094B987B20 +:102D500001F062F86AE7C0469C09FF1F9809FF1F4F +:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 +:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 +:102D80001A640A4A5A500A4A04395A50094A083100 +:102D90009A64094A5A50094A5C315A50084ADA661C +:102DA0007047C0460000FF1F4527FF1F4128FF1F37 +:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A +:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 +:102DD000FF270122009300233C001E001D009446A3 +:102DE000019089B262469A40100008401841361896 +:102DF000B6B2FF2F02D1012E00D19FB2009802403F +:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 +:102E10000133102BE6D10320012E07D1012D04D15F +:102E2000019B2401E4191C700138FEBD102EFCD159 +:102E30000238102DF9D00230F7E700008023F7B5F3 +:102E40009C46264B264F01932649274A274D284C5E +:102E5000284B02281AD1604638600868264E304058 +:102E6000802636033043086001990978002909D18A +:102E70001660224A2A60224A2260E02219689143A1 +:102E8000A03A1BE08021C9021160F2E766463E606D +:102E90000F68194E3E408027FF023E430E600199A5 +:102EA000097800290DD1176001280ED1154A2A6032 +:102EB000154A2260E02219689143C03A0A431A6019 +:102EC000F7BD802189021160EEE7E0210F4A02433D +:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 +:102EE000E0000340D800034090000340000003408E +:102EF0005000034040000340FFFFE3FF0280063D17 +:102F0000804508220180063D8066082200800698E0 +:102F100080550822F8B51E4B80261A680020140040 +:102F20003440324232D11A681A4F32431A600122B9 +:102F30003B68063093433B6000F04EFE0122164D85 +:102F40002B681E432E603B680A2613433B60802794 +:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F +:102F600009D17E220E4B1C682B68E40B144093435E +:102F700023432B6005E0082000F02EFEE9E7002E39 +:102F8000EFD180222B68600893432B60F8BDC046C8 +:102F9000C4F000405CF0004018F0004068F00040D1 +:102FA00060F0004010B500F0BFFE01215820034A38 +:102FB00001F00AF8FFF7AEFF10BDC046600AFF1F20 +:102FC00010B578220021034800F086FE00F014FFBF +:102FD000002010BD4867FF1F70B5040000F0C4FD5D +:102FE00000230C200B4A010059438D18515C002925 +:102FF0000DD0A14208D1012300246B7000F084FFA2 +:1030000000F062FF200070BD01330A2BEBD11224C7 +:10301000F6E7C0464867FF1F70B5040000F0A4FD46 +:10302000002319001D000D4A1078002806D0A04288 +:103030000CD1557001310C320A29F5D1002B0AD17F +:1030400000F0DAFE00F040FF002070BD5078461E10 +:10305000B0411B18EEE700F057FFF3E74867FF1F8A +:10306000F7B504000C20002384460E4D01926746FC +:103070005F43E85D7E19A04212D000280BD10A4BB5 +:103080009C4662461B7808331370019B70707C5518 +:103090007160B360FEBD01330A2BE8D10320F9E76C +:1030A0000720F7E74867FF1F4467FF1F8020F8B538 +:1030B000484BC0051B68C1248360474BFF251A6835 +:1030C000012313434361454BA4001A68444B40213C +:1030D0001A60444B1A68444B1A60444B1A59AA436D +:1030E0001A51C52292009E58AE4331438026995012 +:1030F0009F583F49F6010F403E439E509E588027FF +:103100003602360A3043985080201A5900020A408D +:1031100002431A5104341A59364E3F043240802675 +:103120003A431A511A5936061202120A32431A51F8 +:1031300008341A5980260A4002431A51C3229200C9 +:103140009F58B446AF4337439F509F58294E0F4076 +:1031500007439F509F5837408026360437438026C8 +:103160009F509F5836063F023F0A37439F50C02268 +:103170001F59AF433A431A511A591202120A164301 +:10318000C6221E5192009C58AC4365462C439C506D +:103190009C5800250C4020439850C72080001A58A6 +:1031A000154C1140C02212020A431A50134B1B78CF +:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 +:1031C000A368002B00D0984701350C34EEE712209D +:1031D000F2E7C0466443FF1F6043FF1FB0F00040AA +:1031E0004067FF1FB4F000403C67FF1F00E100E0B4 +:1031F000FF00FFFFFFFF00FF4867FF1F4467FF1F3F +:10320000030010B51F2809D8072200201340072407 +:1032100004490A78A24313430B7010BD0023062013 +:10322000F5E7C0464467FF1F054B06491B780A684F +:1032300005485B0702401B0B134300200B607047DF +:103240004467FF1F1CF00040FFFFC1FF70B50C2555 +:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 +:10326000002C01D1200070BD2B78002B06D06B689C +:10327000002B00D09847013C0C3DF1E71220F2E70B +:103280004467FF1F3C67FF1F1FB5002102220B0090 +:1032900001910091052000F0E7FD02230B490A6827 +:1032A0001A42FCD120230393039B5A1E0392002B46 +:1032B000FAD1074A1368002BFCDA0B246C44200077 +:1032C000012100F0D9FD207804B010BD90C8004065 +:1032D00000C8004013B504000A4B0193019B002B6A +:1032E00001D1112016BDFFF7CFFF23000340044298 +:1032F00005D0052000F070FC019B013BEDE71800B4 +:10330000F0E7C046FFFFFF0707B500F02DFC802265 +:103310000821D205936A0191002B01D107399162EE +:1033200002210C4A11600199481E01900029FAD12E +:1033300003311160053101910199481E0190002966 +:10334000FAD11160002B02D18022D205936200F0E5 +:10335000BBFD07BD00C00040F0B52D4C89B02378FF +:10336000002B4FD1FEF7CEFA02232A4F03903A6882 +:103370001A42FCD120230693069B5A1E0692002B6C +:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB +:10339000011E02D0112009B0F0BD030003220190EC +:1033A000009005AD9F2000F05FFD0321280000F094 +:1033B00063FD02233A681A42FCD120230793079B3E +:1033C0005A1E0792002BFAD13368002BFCDA012039 +:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F +:1033E0006B7811041B020B4329780B4363601300B5 +:1033F000113B0A49052B07D801239340A3600B60BA +:10340000012323700020C6E780231B03F6E7C04694 +:103410004C43FF1F90C8004000C800409808FF1FA1 +:103420001E4B30B55A6818781D4B85B0D3185942D9 +:103430004B4101210093002300F0A6FD194B1A4ACD +:1034400002259A6300221A6510325A658022C4212F +:103450009D65164B1648D202DA6789004258154B13 +:1034600080241A4080231B041343435064234120CB +:103470000393E40500F006FA402000F003FA6562C9 +:10348000039D6B1E0393002DFAD103236362FFF7A4 +:103490003BFFA562FFF760FF05B030BD5843FF1F3B +:1034A00095FFFEF700C80040050001FF04E100E0C1 +:1034B00000E100E0FFFF00FFF0B585B00700FEF778 +:1034C00021FA022305002D4C22681A42FCD1202348 +:1034D0000093009B5A1E0092002BFAD1284E3368AD +:1034E000002BFCDA0120FFF7F5FE002803D01124A1 +:1034F000200005B0F0BD234B2360022322681A424E +:10350000FCD120230193019B5A1E0192002BFAD17A +:103510003368002BFCDA0120FFF7DCFE0028E6D13F +:10352000194B1F60022322681A42FCD12023029308 +:10353000029B5A1E0292002BFAD13368002BFCDA50 +:103540000120FFF7C7FE0028D1D1104B23600223D2 +:1035500022681A42FCD120230393039B5A1E039234 +:10356000002BFAD13368002BFCDA0120FFF7B2FE02 +:10357000041EBCD12800FEF7D9F9B9E790C8004075 +:1035800000C8004001000006A8C8004001800001FA +:1035900010B50020FFF790FF10BD000010B5064BDE +:1035A00018705960FFF73CFF00211320034AFFF712 +:1035B00057FD002010BDC0465843FF1F2134FF1F98 +:1035C000F0B5040085B003920291FEF79BF98822C2 +:1035D00063035B0B52051A438023DB059D6A80233E +:1035E000274F0092BA68002601901B039A420CD91B +:1035F000F82326001B041E401C4206D08022214BCB +:1036000052025E6219680A431A60002D0BD100F065 +:10361000ABFA02221C4B1A608023DB055A62013A86 +:103620009A6200F051FC0023039A934220D1002DAE +:103630000AD100F099FA144B03221D608023DB05A8 +:103640005A629D6200F040FC8023BA681B039A42D4 +:1036500008D9002E06D000220A4B0C495A621A687B +:103660000A401A600198FEF761F9002005B0F0BD2C +:10367000009A0299D2181278CA540133D4E7C0468E +:103680004C43FF1F00C8004000C00040FFFFFEFF8A +:10369000F0B587B0029103920400FEF733F9019070 +:1036A00000F062FA802302250122234EDB053560FB +:1036B0005D629A6200F008FC204F3B682B42FCD10F +:1036C00020230493049B5A1E0492002BFAD11C4D14 +:1036D0002B68002BFCDA0120FFF7FCFD002802D04C +:1036E000112007B0F0BD2000039A029900F084FA7F +:1036F000022304003A681A42FCD120230593059B5B +:103700005A1E0592002BFAD12B68002BFCDA0120FF +:10371000FFF7E0FD051EE3D100F026FA8023032227 +:10372000DB0535605A629D6200F0CEFB0198FEF722 +:10373000FDF8E0B2D5E7C04600C0004090C80040A8 +:1037400000C80040F0B5802489B00600FEF7DAF822 +:10375000E405A36A02250393029000F005FA012311 +:10376000304F3D606562A36200F0AEFB2E4C2368D3 +:103770002B42FCD120230593059B5A1E0592002B5A +:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD +:10379000002803D01124200009B0F0BD244B236081 +:1037A000022322681A42FCD120230693069B5A1E4C +:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 +:1037C00089FD021EE6D11B4B03211E600300019000 +:1037D0000090202000F048FB022322681A42FCD10E +:1037E00020230793079B5A1E0792002BFAD12B68C0 +:1037F000002BFCDA0320FFF76DFD041ECAD100F098 +:10380000B3F980230322DB053C605A629C6200F01E +:103810005BFB039B002B01D1FFF776FD0298FEF7BF +:1038200085F8B8E700C0004090C8004000C80040DC +:103830000100000694C8004007B50002019104226F +:10384000000A01A9FFF724FF0EBD000073B50500B3 +:1038500005240B4AA3005B429B1819686B46DE1DCA +:103860003000FFF7B3FA022804D133782B55013C1E +:10387000EFD276BD052CFCD00128FAD10230F8E752 +:10388000140900111F2807D8012380228340D20584 +:1038900091680B43936070473F2808D8012380222A +:1038A00020388340D20551690B435361F3E75F2809 +:1038B000F1D80123802240388340D205116A0B439E +:1038C0001362E8E71F2807D8012280218240C9053A +:1038D0008B6893438B6070473F2808D80122802172 +:1038E00020388240C9054B6993434B61F3E75F2859 +:1038F000F1D80122802140388240C9050B6A9343E8 +:103900000B62E8E71F2810D880230200DB05153A78 +:103910001968012A06D820229143196019680A43C0 +:103920001A60704701228240F6E73F2811D88023B1 +:103930000200DB05353AD968032A06D810229143E4 +:10394000D960D9680A43DA60EBE701222038824067 +:10395000F5E75F28E5D842238022181A413B8340CF +:10396000D205516A99435162516A0B435362D8E7B9 +:1039700010B50400012813D1A022184992050B6844 +:103980005B015B0913430B60154B164A1968114024 +:10399000154A0A431A60402219680A431A6010BD8A +:1039A0000028FCD101000A2000F0FEFA21000B20C3 +:1039B00000F0FAFAC0220A4B920019680A4340212B +:1039C0001A601A688A431A60B022044912060B680A +:1039D0005B015B0913430B60E1E7C04614F0004054 +:1039E0001CF000407F00FEFF80FD010072B6074A18 +:1039F0001368013313600422054B1A600023054A43 +:103A000013608022D2055360FEE7C0467808FF1F8E +:103A1000C0F00040C4F0004005490B68002B05D100 +:103A2000044A0A6004490A60044A13607047C046A9 +:103A3000140AFF1F841E0000380AFF1FC4F0004054 +:103A40000023034A1360034A1360034A136070475C +:103A500054F0004040F1004044F10040002310B514 +:103A6000184C8AB0009301932378012B27D0694624 +:103A7000012000F049F9002817D1009B1249029358 +:103A8000019B06AA0393114B02A81B680493104BD9 +:103A90001B68059300F0A0FA10220E4906A800F05A +:103AA000DBF9002804D1FF23237000200AB010BDE9 +:103AB0000123094A074902A8237000F08DFA01206A +:103AC000F4E7C0464464FF1F1029001108290011C3 +:103AD0000C290011202900114864FF1F13B501248F +:103AE0006946012000F010F9034B00940193FFF7A1 +:103AF000B5FF200016BDC046BB0B000010B5FFF798 +:103B00009FFFFFF7EBFF002802D0024B984710BD44 +:103B1000FEE7C046E1A2000002B471464908490030 +:103B2000095649008E4402BC7047C04602B4714633 +:103B300049084900095C49008E4402BC7047C046F0 +:103B400003B47146490840004900095A49008E44AF +:103B500003BC70470000000001B40248844601BC69 +:103B6000604700BF116E000001B40248844601BCEA +:103B7000604700BF75A9000001B40248844601BC3B +:103B8000604700BFD1AE000001B40248844601BCCA +:103B9000604700BFC166010001B40248844601BC11 +:103BA000604700BF6D0B010001B40248844601BCB0 +:103BB000604700BF8914010001B40248844601BC7B +:103BC000604700BF8944000001B40248844601BC3C +:103BD000604700BF8D11010001B40248844601BC5A +:103BE000604700BF0189000001B40248844601BC5F +:103BF000604700BFD544010001B40248844601BCBF +:103C0000604700BF9573010001B40248844601BCBF +:103C1000604700BFDD0C010001B40248844601BCCE +:103C2000604700BFE90B010001B40248844601BCB3 +:103C3000604700BF53B9000001B40248844601BC8C +:103C4000604700BFF935010001B40248844601BC59 +:103C5000604700BF01D7000001B40248844601BCA0 +:103C6000604700BF0D52010001B40248844601BC08 +:103C7000604700BF51B8000001B40248844601BC4F +:103C8000604700BFE94C010001B40248844601BC12 +:103C9000604700BF6137010001B40248844601BC9F +:103CA000604700BFE9F6000001B40248844601BC49 +:103CB000604700BF7997000001B40248844601BC08 +:103CC000604700BFC9A9000001B40248844601BC96 +:103CD000604700BF8512010001B40248844601BC60 +:103CE000604700BFB70E000001B40248844601BC23 +:103CF000604700BF5976010001B40248844601BC08 +:103D0000604700BF2144000001B40248844601BC62 +:103D1000604700BFE1AC000001B40248844601BC2A +:103D2000604700BFE927000001B40248844601BC97 +:103D3000604700BFED68010001B40248844601BC41 +:103D4000604700BFBD0B010001B40248844601BCBE +:103D5000604700BFC115010001B40248844601BCA0 +:103D6000604700BF0534010001B40248844601BC2D +:103D7000604700BF85C1000001B40248844601BC11 +:103D8000604700BF090E000001B40248844601BC30 +:103D9000604700BF156B010001B40248844601BCB6 +:103DA000604700BF7912010001B40248844601BC9B +:103DB000604700BF8552010001B40248844601BC3F +:103DC000604700BF0134010001B40248844601BCD1 +:103DD000604700BFCD0C010001B40248844601BC1D +:103DE000604700BFE512010001B40248844601BCEF +:103DF000604700BF2D6C010001B40248844601BC3D +:103E0000604700BFADAE000001B40248844601BC6B +:103E1000604700BF4DF9000001B40248844601BC70 +:103E2000604700BFC1F7000001B40248844601BCEE +:103E3000604700BFA1B5001101B40248844601BC2F +:103E4000604700BFE917010001B40248844601BC85 +:103E5000604700BFB352010001B40248844601BC70 +:103E6000604700BFCD4C010001B40248844601BC4C +:103E7000604700BF496D010001B40248844601BC9F +:103E8000604700BF3D71010001B40248844601BC97 +:103E9000604700BF090E000001B40248844601BC1F +:103EA000604700BF6911010001B40248844601BCAB +:103EB000604700BF9D6A000001B40248844601BC0F +:103EC000604700BFDD0A010001B40248844601BC1E +:103ED000604700BF9DA9000001B40248844601BCB0 +:103EE000604700BF8937010001B40248844601BC25 +:103EF000604700BF75F8000001B40248844601BC69 +:103F0000604700BF71B0000001B40248844601BCA4 +:103F1000604700BF21A9000001B40248844601BCEB +:103F2000604700BFD9B0000001B40248844601BC1C +:103F3000604700BFF535010001B40248844601BC6A +:103F4000604700BF8D82000001B40248844601BC76 +:103F5000604700BF19FA000001B40248844601BC62 +:103F6000604700BFC1A5000001B40248844601BCFF +:103F7000604700BFE9D4000001B40248844601BC98 +:103F8000604700BFC95C010001B40248844601BC1F +:103F9000604700BFC56D010001B40248844601BC02 +:103FA000604700BFF9ED000001B40248844601BC3F +:103FB000604700BF1DA2001101B40248844601BC45 +:103FC000604700BF8B52010001B40248844601BC27 +:103FD000604700BF0167010001B40248844601BC8C +:103FE000604700BFDD3F000001B40248844601BCC9 +:103FF000604700BFBD5C010001B40248844601BCBB +:10400000604700BF0934010001B40248844601BC86 +:10401000604700BFF90D010001B40248844601BCAD +:10402000604700BFA9D8000001B40248844601BC23 +:10403000604700BF6DF6000001B40248844601BC31 +:10404000604700BF016C010001B40248844601BC16 +:10405000604700BFEDA5000001B40248844601BCE2 +:08406000604700BFED6B010099 +:104068000200000056BE00110100000068BC0011EB +:104078000200000052BE001101000000A840FF1F0E +:104088000200000070BC001101000000BC61FF1FAD +:104098000200000050BE0011030000003061FF1F45 +:1040A800120000000200000056BE001101000000CE +:1040B800B0BC00110200000052BE00110100000057 +:1040C800ADBC001102000000BABC001103000000E2 +:1040D8006B61FF1F0200000050BE001103000000CA +:1040E8008061FF1F0200000052BE001101000000A5 +:1040F800ACBC001102000000B8BC001103000000B5 +:104108004161FF1F0200000050BE001103000000C3 +:104118006261FF1F0200000056BE0011010000008E +:10412800F0BC00110200000052BE001101000000A6 +:10413800F141FF1F0200000002BD00110100000054 +:10414800EBBC00110200000052BE0011010000008B +:10415800F041FF1F0200000000BD00110100000037 +:104168008861FF1F0200000052BE0011010000001C +:10417800EF41FF1F02000000FEBC0011010000001B +:10418800DBBC00110200000052BE0011010000005B +:10419800EE41FF1F02000000FCBC001101000000FE +:1041A800D6BC00110200000052BE00110100000040 +:1041B800ED41FF1F02000000FABC001101000000E1 +:1041C800D1BC00110200000052BE00110100000025 +:1041D800EC41FF1F02000000F8BC001101000000C4 +:1041E800CCBC001102020202020200000000000022 +:1041F8000D0C0000C14B0011874B001144BD00118C +:1042080090011D0018001800FFFF070102030405B4 +:104218000602010600000000000000000000000087 +:104228000000000000000000000000000000000086 +:10423800030000000200000056BE0011010000004B +:1042480064BD00110200000052BE00110100000010 +:10425800AC42FF1F020000006EBD0011010000000B +:10426800B661FF1F0200000050BE001103000000ED +:104278002064FF1F0200000052BE00110100000070 +:10428800AC42FF1F020000006CBD001101000000DD +:10429800B861FF1F0200000050BE001103000000BB +:1042A8001864FF1F126C6C6C00000000005800407E +:1042B800151600000001000000000111FFFF0000BA +:1042C8005048593600000000000000000B000500AF +:1042D800F0000000B4000028002800283075A00075 +:1042E800A000A000A00000080008E001F0001000F5 +:1042F8001000100010001000100050005000500076 +:1043080010001000D0070000000000000F0001009E +:104318000500307507001000010081FF0000000053 +:10432800FF000000057400110D7200119D6F00114F +:10433800FFFF0100FF000000219E00119D9B00115E +:10434800B59A0011000000000000000000000800FD +:10435800040000003B0001085902E0018821280000 +:10436800FF0000000200000056BE0011010000001E +:104378001CBF00110200000052BE00110100000025 +:10438800E943FF1F020000004EBE001101000000BB +:104398000068FF1F0200000052BE0011010000006B +:1043A800E843FF1F020000004CBE0011010000009E +:1043B800E643FF1F0200000052BE0011010000008A +:1043C800E443FF1F020000004ABE00110100000084 +:1043D800DC43FF1F180018001D00900102000003B5 +:1043E800020200000200000056BE00110100000099 +:1043F80030BF00110200000052BE00110100000091 +:104408002C44FF1F0200000048BE001100000000FD +:10441800000000000200000050BE00110300000070 +:064428002068FF1F20FFC9 +:040000051FFF184180 +:00000001FF diff --git a/bin/BOOT_THB2_v15.hex b/bin/BOOT_THB2_v15.hex new file mode 100644 index 0000000..4ba3249 --- /dev/null +++ b/bin/BOOT_THB2_v15.hex @@ -0,0 +1,3001 @@ +:020000041100E9 +:10300000002373B52B4D2C4C28006361022601F080 +:1030100075F94021FE2221742800284B009601F00A +:10302000BFF9002836D1217CFF222800244B0096CE +:1030300001F0B6F900282DD1224BA2899A4226D15F +:10304000E389214A93420DD1204B6361204B2268D2 +:10305000002A03D1002B01D043CB43C4280001F048 +:103060008BF973BD1B4A934201D00023EFE71A4B43 +:103070001A4A1B68934206D9C02304222800217CE7 +:103080009B0001F003FA114B6361154BDFE700234E +:103090002374EAE7CC233821AC2228009B01217459 +:1030A00001F0F4F90028F2D10E4B63610E4BE3817D +:1030B0000E4BCCE7F441FF1F9061FF1F9C61FF1F87 +:1030C0009E61FF1F5959000083050000294100112E +:1030D0003CB9001182150000B461FF1F8713000086 +:1030E00048B90011E1410011AAAAFFFF30B900114F +:1030F000F7B5164B0192C318021D002000938823D8 +:103100005B05D3181B685C1C1AD09CB2402C18D8E5 +:103110008D781E0CAC466746CD782D023D43AE42FD +:1031200006D1019800280ED110000C70240A4C70B2 +:1031300003249BB20733A343D218009B9A42DED3E9 +:10314000FEBD4432F9E71000FAE7C046FC0F00006C +:10315000802213B503000324019189B25201073183 +:103160009B18A14304305A1A88235B05C3181B68B7 +:10317000591C03D190429241104016BD99B240298A +:1031800007D80B000733A343C0189042ECD30020AC +:10319000F3E74430F9E7134B134A1B68126810B584 +:1031A000FA24934201D81A00F824104BE4021B6859 +:1031B0009A4210D813000E4A12689A420ED3013375 +:1031C00007D1F823DB029C4203D10A49054808F0E5 +:1031D0002BFB200010BDFC24E402ECE7FE24E402FB +:1031E000F7E7C04600C0071100D0071100E0071143 +:1031F00000F00711FFFFFF7FF0B59BB015000490B2 +:103200000391402A00D9A0E006AB59801A80FFF74D +:10321000C2FF0400042816D9002206A9FFF768FFA0 +:10322000052810D906AB1B88AB420CD1002D07D066 +:10323000514B2A000499C01808F0F6F9002802D171 +:1032400001201BB0F0BD06AB1D8020000699FFF7E2 +:103250007FFF041E7BD1069B0793FFF79CFF802313 +:103260005B01C618802307001B039E4201D3F8268A +:10327000F60288235B05F31801931B68013302D023 +:10328000019808F0D9F83D49019808F0CDFA3B1DA6 +:103290000293331D05938822029B52059B181B68DD +:1032A00008935A1C3CD044219AB20091402A04D879 +:1032B0000320D11D814389B2009103991B0C8B42DD +:1032C00024D0402A22D80122300008A9FFF710FF9D +:1032D000021E1BD1380008A9FFF70AFF04000428CA +:1032E00031D9009A059B9B1880225201B218934253 +:1032F00040D288235B05C118009A09A808F0F4F9A8 +:103300001D4B009A09A9F01808F06EFA009A029B6A +:103310009446634402931A4B029AFB189A42BAD31A +:1033200088235B05FC1821680198013908F07CFAB4 +:10333000200008F081F8039A07AB5A803000079903 +:10334000FFF706FF0400002C03D1002079E70428D2 +:10335000FBD988235B05E018069908F065FA03237A +:10336000EA1C9A4300D16BE7034B0499E01808F07C +:103370003BFA65E70424ECE704000011FFFFFF7F40 +:10338000F80F0000F7B505001400402A21D80027E7 +:1033900001AE71803780FFF7FEFE042816D93A008F +:1033A0003100FFF7A5FE042810D93688BC420BD0A7 +:1033B000BD4209D0221CB44200D9321C064B92B245 +:1033C000C118280008F090F930B2FEBDC04300B229 +:1033D000FBE703204042F8E70400001137B5042260 +:1033E00004000D0001A81649FFF7CCFF02000428D5 +:1033F0000BD1019BA34208D3AB4204D0104901A8D2 +:103400000195FFF7F9FE01203EBD0E4C2368200018 +:10341000019308F011F8019920000139019108F099 +:1034200003FA80235B01E418074B9C42EED104228F +:10343000034901A80195FFF7DFFE0020E4E7C0463D +:103440005555000000C007110000081130B589B0C3 +:1034500008F02AF810226946254807F05DFF254B41 +:10346000009A9A420ED1019B029A0F2B33D8002169 +:1034700001240698013B08D2002900D00292029B49 +:10348000013331D10023029325E0551CF2D1020013 +:103490002100EFE710341022200004A907F03CFFC0 +:1034A000029B013301D1069B0293882304995B059B +:1034B000C918059B06981A03120B049105928142C4 +:1034C00003D02B4201D108F00FF9019B013B01937E +:1034D000019B002BDED1029B002B03D004930498A8 +:1034E0004168084709B030BDE025014C2D03EFE7E6 +:1034F00000000111504859368022F8B5964C974B80 +:10350000D200002120001C6007F0AEFF2300944A87 +:1035100088331A60934B1A786A23002A00D011333B +:10352000E3620A232365904B37221B780820A363AC +:103530008E4B2118E361102323628D4B3B25636181 +:10354000C823DB00A36123008C331A602823013ACF +:10355000E26320646364CA67043A211DCA672100DC +:10356000BC310D602100C03108602100C4310B6006 +:1035700021000635CC310D602100083DC8310D60B9 +:103580002100D0310A602200D43210602200D832EB +:10359000136022000227E032210017604222DC3152 +:1035A0000A6021001B3DE4310D602100E831086014 +:1035B0002100EC310B6023000521F4331960230056 +:1035C000F0331A602300183290331A6023009433CA +:1035D000186023001E3A98331A60AF23DB00236083 +:1035E000644BFA262363644B644DE360644BF03113 +:1035F000A3642300FF31FC33B600A16021611E608B +:10360000A5627325E5656D3D6565A56596255D4AF1 +:10361000AD00E264666258606766A566002709250A +:10362000A767E566584F594D606720002567E26738 +:103630003A6015279C30676007001A203860200028 +:10364000A0300700212038602000A83007004C4837 +:1036500038602000F830066026006427A436376002 +:1036600026005F3FAC3637602600033FB036376038 +:103670002600C637B436376026000027B8363760D4 +:1036800038269E60424E96205E64424E5A66DE6147 +:10369000414E9A645E62F53EFF3E9E621E269A6728 +:1036A000354A8000DE661F675F67DD651D6618624C +:1036B000DA67BE23394A5B00E250394BD8382350D1 +:1036C00004302250C4225200A350C623E4205B00E1 +:1036D000E1500433334AE1503349344BD16034492B +:1036E000800019503349E938FF3819503249043005 +:1036F000195032493248D16132491163324951631C +:103700001900F4310860CE20304940001160304982 +:10371000195019002F48F83108602F49D1658221CE +:103720002E4A89005A501A002D490832D1671A00D2 +:103730002C49B432116088212B4A89005A501A0052 +:103740002A49883211602A4ADA6407F0E5FE01202E +:1037500007F092FDF8BDC0460004FF1F2C64FF1F58 +:10376000106FFF1F2444FF1F4A0AFF1F3A07000083 +:1037700080C3C9019A020000DC0500006A1800003D +:1037800050C3000088130000F009FF1F204E000006 +:103790006509FF1F68100000C409000040420F00C7 +:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 +:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 +:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 +:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 +:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 +:1037F000851DFF1F0223F0B50124614D614E2B7022 +:10380000614B91B01C70614F039333680021042019 +:10381000BB7006F0F5FB042006F0ECFA002398429A +:1038200005D0BA78552A02D0332A00D09BE0336005 +:10383000042006F05FFD07F0EFFDFFF75DFE07F0E7 +:103840003BFD1F2201240021514B10AE1A70514B39 +:103850001C70514B1970514B19689143163A0A4329 +:103860001A60602219689143403A0A431A6007F0CF +:10387000DBFC07F009FDC120FF21494B80001A58ED +:103880008A431A50C522920098588843BF39014391 +:1038900099509858434908408021C901014380202C +:1038A00099509958C0050902090A0143995080218D +:1038B0003D48490107F080FE032322003B49019463 +:1038C00000933B4807F0F8FE2C223A4905A807F080 +:1038D0000BFF05AC61782078023406F0ABFAA64203 +:1038E000F8D1354C1120002106F0B8FB2268334B8B +:1038F00003201A40A023DB021343236080232268A5 +:103900009B041343236022682D4B1A4080239B03A2 +:10391000134323602B4A2C4B934200D8012007F01D +:1039200013FD07F089FE80232268DB041343236024 +:10393000287807F011FF039B1878C0B207F034FE17 +:1039400007F0E2FE2149042007F01EFE06F09EFC6F +:1039500000F0A8F800F0C6FD00F06EFE00F012FACC +:10396000002011B0F0BD00932100184A042007F098 +:10397000CBFD8023DB059C62FFF768FD58E7C0465E +:103980004A0AFF1F34F000402444FF1FC061FF1F9C +:10399000480AFF1F490AFF1F680AFF1FBCF00040CA +:1039A00000E100E0FF00FFFF2844FF1FAC56FF1FAF +:1039B0002854FF1F58B8001114F00040FF7FF8FF93 +:1039C000FFFF9FFF0080FF1F106FFF1F3B000108DC +:1039D00070B500252549264A26484D6308CA1B05AF +:1039E0001B0DED188242F9D100268022224B920550 +:1039F0008B630921214B224C1E62224B1120DA6776 +:103A0000214BDA688A43DA609A6820490A409A6052 +:103A1000266007F001FF112007F01EFD8022636C75 +:103A200093436364EE24E4006C43194A200C0400C1 +:103A3000642390420AD8FA223300D200904205D97A +:103A4000144B0A21C01807F0A7FCC3B2124A112078 +:103A50001372D48007F010FD104B1B78002B04D19B +:103A60000F4B1021187807F0EFFD70BD00000540E6 +:103A70008805054000060540FF01000000F00040F9 +:103A80000038004004E100E03CF00040FFDFFFFFB1 +:103A9000B70B000030F8FFFFA861FF1FE263FF1FB4 +:103AA000E061FF1F002210B51100112007F0A4FCF7 +:103AB00010BD0000002370B50925334E334C33622E +:103AC000E3681120AB43E36007F0C6FC112007F068 +:103AD000A3FE112007F0C8FB4023226811201343E6 +:103AE000236080236268DB02134363608023A26843 +:103AF0001343A360A368264A1340A3608023A268EF +:103B00009B0113431022A360236C9343236401237E +:103B1000226C1A432264802252003262216B1D4AB9 +:103B200011402163616B11406163A16B1140A1637E +:103B3000E16B0A40E263E26817490A40E260174A13 +:103B400011680B43136007F00FFCFD21144B154A5D +:103B500089005A508023C720626B5B031343636361 +:103B6000E36880001D43104BE56019580F4A11406F +:103B7000802212020A431A50802292051A600822FB +:103B80000B4B5A6370BDC04600F000403CF0004053 +:103B9000FFFFDFFFEFFFEFFFFFFF7FFF0038004079 +:103BA0000000FF1FD139001100E100E0FF00FFFF1E +:103BB0000000054030B503A804880B20002C0ED16E +:103BC0004968074D08784978090201430A20A9424B +:103BD00005D1012120001980024B1B7A137030BDE2 +:103BE000192A0000A861FF1FF7B5150008AA16885A +:103BF0004A680F4F14785278120222430A24BA42BC +:103C000014D10122DBB2019200962A0007F08EFA4D +:103C1000041E0BD1074B1B68002B07D068782A784D +:103C20000002104342425041013098472000FEBD3F +:103C3000022900002C61FF1F30B501250379040023 +:103C4000BFB02B4211D00A49408806F0DBFD284264 +:103C50000BD0084B01A95B8D4D800B80064B0022D9 +:103C60001B7A60880B7103F0ADFE3FB030BDC046DB +:103C70002461FF1F6840FF1FA861FF1F10B50549A1 +:103C8000054806F075FD0421044A054806F032FD9A +:103C900010BDC0462461FF1FFFFF000084B8001163 +:103CA0006840FF1F10B5024804F00EFD10BDC0466D +:103CB000393C0011012303700B4B1A7A4270022227 +:103CC00082709A78C270DA780271032242711A798E +:103CD00082715A79C2710C2202729A794272DB792E +:103CE00083720B207047C046A861FF1F022310B5E6 +:103CF0000370013B43700533837010330371443B01 +:103D000043712A3383714433C37100230372064B1A +:103D100004001B8843720A30FFF7CCFF831D0A3072 +:103D2000C0B2E37010BDC046A861FF1F10B51420DB +:103D300007F012FC124B14220021186007F094FBCC +:103D4000002007F0F9FB012007F0EEFB022007F04E +:103D5000C3FB032003F05CFF042005F071FF052086 +:103D600003F09AF9062003F067FE072001F0FEF940 +:103D7000082006F09FFC092000F0E8FF10BDC046B7 +:103D80003061FF1F07F028FC012007F01DFB07F042 +:103D90008BFC0000094B10B50400984205D00129A6 +:103DA00004D12000064906F0E3FC10BD0229FCD135 +:103DB000013904F047FC0028F3D0F6E7FEFF0000CD +:103DC0005661FF1F70B50D7A100004AA2C001688EA +:103DD00010221440154220D1002E20D10A78022A48 +:103DE00018D14A68517815780E4A09022943914240 +:103DF00005D00D4A914209D01C800A2404E0142207 +:103E00000A491A8007F070FC200070BD0C22084996 +:103E10001A80F7E71C800124F6E70824F4E70B2456 +:103E2000F2E7C046F3FF0000F4FF0000B042FF1FBE +:103E300060B9001110B504000749084806F098FC65 +:103E4000074804F081FB0020E40704D50721054A58 +:103E5000054806F04FFC10BD5661FF1FFFFF000034 +:103E6000953D0011C8B80011AC40FF1F00B50C4BC8 +:103E7000BFB01A780B4902A800F098FC6B4680B2DC +:103E8000D880002809D06A46074B01A91B88938077 +:103E9000064B0022188803F095FD3FB000BDC046D8 +:103EA0003461FF1F3561FF1F0641FF1F1042FF1FD6 +:103EB00000B50C4BBFB01A780B4902A801F0C8FC42 +:103EC0006B4680B2D880002809D06A46074B01A90A +:103ED0005B8D9380064B0022188803F073FD3FB082 +:103EE00000BDC0465E61FF1F5F61FF1FAC40FF1F4A +:103EF0001042FF1FF7B50E00377A1C0008AB110007 +:103F00003D001A8820231D401F423CD13378022BEC +:103F10003BD173681F785B781B023B431E4FBB424B +:103F200008D01E4FBB4214D01D4DAB4221D00A25F4 +:103F30002800FEBD002A2AD1142C2AD82200F068BD +:103F400007F0D2FB174B1C70012CF1D9FFF7B0FF23 +:103F5000EEE7002A1BD1202C1BD82200F06807F0C6 +:103F6000C3FB114B04211C70104B187807F06CFB3D +:103F7000DEE7E3B20124009201940A00310007F069 +:103F8000D5F80500D4E70825D2E70125D0E70B25B1 +:103F9000CEE70D25CCE7C046F3FF0000F4FF00009C +:103FA000022900005E61FF1F3461FF1FE061FF1FF7 +:103FB000332310B5040003700A220749013007F0CB +:103FC00093FB064B0F201B681A0AE37222731A0C2C +:103FD0001B0E6273A37310BDA861FF1FD061FF1F8A +:103FE00030B5012503790400BFB02B4213D00B4933 +:103FF000408806F007FC28420DD06A46084B02A80C +:104000001B889380FFF7D4FF6B46D880002260881E +:1040100001A903F0D7FC3FB030BDC0465661FF1F79 +:104020000641FF1F10B5024804F04EFB10BDC0460C +:10403000E13F001170B5160004AA148805AA15788E +:104040004A685078117800022A4A084380180528E7 +:104050004BD807F0E1FA03131E29343F0720032C45 +:104060000BD80422121BAA4200D92A0022491A8026 +:104070003000091907F038FB002070BD0720112C13 +:10408000FBD81222121BAA4200D92A001B491A800F +:10409000EEE707200E2CF0D80F22121BAA4200D9FF +:1040A0002A0017491A80E3E70720032CE5D80422E9 +:1040B000121BAA4200D92A0012491A80D8E7072009 +:1040C000032CDAD80422121BAA4200D92A000E4976 +:1040D0001A80CDE70720032CCFD80422121BAA4256 +:1040E00000D92A0009491A80C2E700220A201A8052 +:1040F000C3E7C046DCD5FFFF13B900117C61FF1F89 +:1041000003B90011FEB80011F9B80011F4B800119C +:1041100010B50D21024A034806F0ECFA10BDC04666 +:10412000E8B800111C41FF1FF0B50024274E85B0F0 +:104130003000B47100F0E2F8254D264BEA89297C65 +:104140009A422FD10423300003AA00F057F904004B +:10415000300000F011F90123B371002C34D16B460B +:1041600099892B68C9BA4B4329891B4A1B145B18D0 +:1041700053806B46D9896B6849BA89B24B436989C8 +:104180001B0C5B181548191C1BB2834200DD011C77 +:104190000B0400D500211388918001331380200087 +:1041A00005B0F0BD0227220003AB3000009700F0FD +:1041B000F7F80E230400297C0122300000976B449D +:1041C00000F0EEF80443C3E71C00E8E7F441FF1FEA +:1041D0009061FF1F83050000A861FF1F0F270000EB +:1041E00073B5234E300000F089F8224D07236A464C +:1041F0003000297C00F002F904003000002C33D19B +:104200006B461B787F2B2FD800F0B6F86B46D8781A +:10421000F02302041B031A406B469B8816495BBAC5 +:104220009BB21A432B68000953432A891B0C9B1825 +:104230004B806B465A789B7812031B011A436B68BC +:10424000024353436A891B0C9B180C481A1C1BB26F +:10425000834200DD021C130400D500220B888A80F3 +:1042600001330B80200076BD00F086F80124F9E7C9 +:10427000F441FF1F9061FF1FA861FF1F0F2700007F +:1042800070B5114C237C002B0FD0382B0ED10F4D65 +:10429000280000F033F8CC23AC222800217C9B01BD +:1042A00000F0F4F8280000F067F870BD084BE289D0 +:1042B0009A42FAD1054D280000F020F8002228008B +:1042C000217C00F0C5F8EDE79061FF1FF441FF1F6E +:1042D0008305000010B5084B1A7C002A09D05B69E1 +:1042E000002B06D09847041E01D0FEF789FE20005F +:1042F00010BD0124F9E7C0469061FF1F70B5C17978 +:1043000005000C00631E9C411A4BE402E4184900AE +:104310000460C9B2007905F0D7FEE97968794900EF +:104320000131C9B205F0D0FEE8790930C0B206F01B +:104330009BFF0023E36661332360AA795B3B002A7D +:104340000ED022689A43023B134323600A23E361A1 +:104350000733236200232363A3630133E36370BD48 +:1043600022689A4302231343236046236361063382 +:10437000A361EFE70050004070B50025040003681A +:10438000DD66C0790930C0B207F066F829002079EF +:1043900005F036FE2900607905F032FE70BD0000A0 +:1043A000F8B51E0006AB1D78002304681700E3660D +:1043B000616007F079F801238022E3662B00276112 +:1043C0005200013B08D207F0A7F908200A4A1168F9 +:1043D000002D03D12800F8BD2261F2E7236F0342CC +:1043E00003D02369013D3370013613685B1A032B38 +:1043F000EED90125EEE7C0466008FF1F70B51C002E +:10440000002305681600EB66696007F04DF801238C +:104410008022EB6623005200013B08D207F07CF9B2 +:1044200008200A4A1168002C03D1200070BD2A61BF +:10443000F2E72B6F034203D02B69013C3370013646 +:1044400013685B1A032BEED90124EEE76008FF1F07 +:10445000002370B504681500E366616007F024F876 +:104460000123E366256107F057F98020064A8000A2 +:104470001168636B034205D113685B1A032BF8D9EB +:10448000012070BD0020FCE76008FF1F70B51D0013 +:10449000002304681600E366616007F005F8012355 +:1044A000E36626610F33626B1A42FCD02B0A23614C +:1044B0001023626B1A42FCD0EDB2256107F02CF993 +:1044C0008020074A80001168636B034205D113689E +:1044D0005B1A032BF8D9012070BD0020FCE7C04611 +:1044E0006008FF1F10B5084CE368002B08D180223C +:1044F000064B52021B689B186360054B1B682360C8 +:1045000007F032F9A06010BDD061FF1FC8F0004075 +:10451000CCF0004070B5184A936A916A9942FBD179 +:1045200016498A689A421FD39A1A8B60144B012647 +:10453000186893B2D202D20E4343424300204C6823 +:104540001B0A1B1912029B180E4C0A684B60551C63 +:10455000A3420CD8002801D04B600A600A4A1360BD +:1045600008680A4B186070BD581E821ADDE7084AB9 +:1045700030009B182A00EAE700F00040D061FF1FDE +:10458000140AFF1F40420F00C8F00040CCF000406A +:10459000C0BDF0FF70B51F4C23793F2B01D93F23DD +:1045A00023711D4B22791A701878C0B207F004F9F4 +:1045B00018231A491A4A0B801A4913800B8053801A +:1045C000A379194980200B800C21938001334B4340 +:1045D000164D191C0001834200D9011C2980D1808D +:1045E0006379002B11D101336371237A012B01D838 +:1045F000022323726279237A0D4853430A215843D8 +:1046000006F0CAFE0B4D286070BDA02BEDD9A0238B +:10461000EAE7C046C461FF1F480AFF1F0E42FF1FA2 +:10462000D043FF1F0C42FF1F0A42FF1F0842FF1F1B +:1046300071020000B461FF1FF8B515210020FEF7DC +:10464000CDFE114C011E114D09D10C22104BC1CBD6 +:10465000C1C4280006F008FFFFF79CFFF8BD0C223C +:1046600020000C49FEF78EFE0C2802D0084B43CBED +:1046700043C40C2228000849FEF784FE0C28EBD026 +:104680000C220021E5E7C046C461FF1F9061FF1FB7 +:1046900054B90011FC0C0000F50C0000F0B51D4CE5 +:1046A0008022A5440400882069465201400507F095 +:1046B000A3F8902212016A441300200032C832C3CA +:1046C00016C816C38023144C144FA6689B033343AB +:1046D000A3603B6006F010FF8823A0685B05C0184C +:1046E00006F0AAFE0025882329008022A0685B0529 +:1046F000C01840196944520007F076F8802301354C +:10470000FF355B019D42EED1A6603E60044B9D44A7 +:10471000F0BDC046FCEFFFFF4043FF1F9808FF1F9E +:1047200004100000F0B5040087B0002825D06846CA +:1047300006F03AFE1B4C022806D1062269462000EC +:1047400006F072FF002816D06946002301250F26C7 +:104750002F00E25C013310091030874038002F0031 +:10476000324097403A0002434A610439062BEFD1A8 +:104770006846FFF793FF07B0F0BD182269460A4864 +:1047800007F03AF86A46A300D358013305D018223F +:10479000FF21684606F068FEEAE70134062CF1D1F5 +:1047A000E9E7C0466509FF1F00090011F0B50025C3 +:1047B00004000E0085B0AA4200D183E04B1C0878AB +:1047C00001934B788978377909021943F3783F06CA +:1047D0001B040B431F43039720706570252800D1ED +:1047E00093E033D8112813D806F09EFF66000D0120 +:1047F0000D010D010D01A700B500AE000D010D0169 +:104800000D010D010D010D010D010D01E700070165 +:10481000232800D1C0E0DB2800D016E1042A00D80C +:10482000A9E01025052A05D0551F2A003800711D62 +:1048300006F05AFF05223100200006F055FF2A003D +:104840003900601D06F050FF05353BE0562856D074 +:1048500010D8332800D19AE0552836D02628DAD14E +:10486000894B2900132218001D0006F0FDFDFEF7FC +:10487000C7FB59E0712800D174E0722800D17DE0B7 +:10488000DC28C8D1022A00D875E07378BFB2637003 +:10489000B378A370032A05D0033A390092B2F01C12 +:1048A000FEF7AAFC10223900E01CFEF76BFDC51CC8 +:1048B000002807DA60705CE00C222000734906F0E3 +:1048C00013FF0C25280005B0F0BD013A704D0C2AED +:1048D00013D8002A0AD02800019906F005FFFFF737 +:1048E00059FE0C2228006B49FEF786FC29000C2299 +:1048F000601C06F0F9FE0D25E4E70C22EBE7644DA1 +:10490000654B2A0043CB43C2E9E7013A5E4D0C2ACE +:1049100011D8002A08D00199280006F0E5FE0C22E3 +:1049200028005E49FEF768FC29001322601C06F08F +:10493000DBFE1425C6E70C22EDE705225849601C72 +:1049400006F0D2FE0625BDE712225649601C06F08D +:10495000CBFE1325B6E708225349601C06F0C4FEBF +:104960000925AFE77178F02905D8504B188801F078 +:10497000CBFB0225A6E7FF236370FAE74C4B012A25 +:1049800003D072785A706270F3E75B78F4E7200026 +:10499000FFF70EFB050095E7042A04D9454D2F606B +:1049A00006F0E2FEA860FFF7B5FD0422039003A91C +:1049B000601C06F099FE052584E73F4D062A15D9AF +:1049C00006222800019906F02FFE00280ED00622AC +:1049D0000199280006F088FE062238492800FEF7D3 +:1049E0000BFC0123324A51780B43537029000622F5 +:1049F000601C06F079FE072564E7012ABBD07078B9 +:104A0000FFF790FEB5E7012800D004E7931E2C4F76 +:104A1000132B04D87378002B09D100F009F9294B26 +:104A200039001D78601C6A1E06F05EFE4AE7551EBE +:104A30002A000199380006F057FE2349AAB238002F +:104A4000FEF7DAFB00F02CF9E9E7DA2893D1042A23 +:104A500091D9082A15D9B37972791B021343F279D7 +:104A600012041A43337A1B0613433B603B6805224A +:104A700031002000039306F037FE0422601D03A9D5 +:104A80006CE7FE236370F1E79061FF1F60B90011CE +:104A9000C461FF1FFC0C000054B90011F50C0000AC +:104AA0009C61FF1F7C61FF1F4443FF1F1042FF1FDB +:104AB000C061FF1FD061FF1F6509FF1FADAC000083 +:104AC000C163FF1FBF63FF1FAEDE00007047000021 +:104AD000020010B5094B0A32094C92B2DA815A82AF +:104AE00098811882207802F075F90422054B012183 +:104AF00020781A7006F0A8FD10BDC046CE42FF1FF8 +:104B00000A64FF1F0964FF1F013870B5042809D823 +:104B100006F082FD0309230812001E4B02211878BB +:104B200006F092FD70BD1B4B0821187806F004FEBC +:104B30000022194B1A72F5E780220024164B154DFE +:104B400052001A81082128781A68DC7206F04CFCA1 +:104B50002100287806F020FEE4E70E4B08211878A3 +:104B600006F0EAFD0D48FFF7C1F80D4B0D4A9B79A1 +:104B700093800D4A13800022074BDA720132FF3214 +:104B80001A810A4B5B78002BCCD0094A136006F0DF +:104B900023FEC7E7E061FF1FB461FF1F1942FF1F3B +:104BA000C461FF1FD043FF1F0A42FF1FC061FF1FE8 +:104BB00034F0004010B5002904D1042802D10D3092 +:104BC00005F04CFA10BD000010B501290ED10428E3 +:104BD0000CD10D3005F042FA054B1B78002B05D0A7 +:104BE0002622044B04485A72FFF772FF10BDC046DC +:104BF000E263FF1FB461FF1FC40900000300F0B5AA +:104C00000A4D8E18B14202D152008018F0BD0C78C6 +:104C10002F6824093C5D0F271C700C7801313C4043 +:104C20002F683C5D5C700233ECE7C0460442FF1F16 +:104C30000D22124B10B51A700C23114C1149237020 +:104C4000093A033B1048637006F04EFD2D23012204 +:104C50000E490F48A371FFF7D1FF01220D49FFF75D +:104C6000CDFF01220C49FFF7C9FF030000200B49CB +:104C700002001870FEF7C0FA10BDC046DE63FF1FC9 +:104C8000BF63FF1F13B90011C163FF1F6709FF1F37 +:104C9000C663FF1F6609FF1F6509FF1FAEDE000028 +:104CA00070B5124C142220001149FEF76BFB431E15 +:104CB000104D132B17D8AB78002B14D0431C2B703E +:104CC00009236B7000230019037028782900013034 +:104CD000C0B206F099FD297822000139C9B200203E +:104CE00005F026FC70BDFFF7A3FFEEE7C163FF1FD1 +:104CF000AEDE0000BF63FF1F10B5114B1A781870AD +:104D0000002A0ED000280BD10E4B1A78062A07D89D +:104D10005423D340DB0703D50B4B187802F05AF825 +:104D200010BD0028FCD0074B1B78012B02D0033BA1 +:104D3000022BF5D8044B0121187806F085FCEFE72B +:104D4000E263FF1F0964FF1F0A64FF1F70B54D4E29 +:104D50004D4A4E493070042005F076FA00211120AA +:104D600005F07CF9112005F05DFAFEF749F906F02F +:104D7000BBFB032246494748FFF740FF2D240300B1 +:104D800004221C7044490130FFF738FF30230470BF +:104D9000424D434C437083702E3B06222000414914 +:104DA000EB87FEF7EFFA062813D0200006F0FCFA96 +:104DB000022809D00321200006F066FB8D23E37052 +:104DC0006E3B237119336371062220003549FEF7CB +:104DD00013FA354B1B68FC335C64FFF761FF00205E +:104DE000FFF78AFF314C324A0121324B127820788A +:104DF00001F0B2FF304A314B12780021207801F0E7 +:104E0000ABFF01222E4B1A702E4B9B78552B31D1C4 +:104E10002D4B3B325A722D4B2D4AAB81EA812B82AE +:104E20006A822021307806F08FFC0120404205F094 +:104E3000CBFB0120404205F067FCFFF769F9FEF764 +:104E40001DFF00F09DFC01204042FEF7F3FF012012 +:104E500006F06AFAF02001F03BF90121307806F003 +:104E6000F3FB307802F012F91A4806F09DFCFEF7C9 +:104E700021FE70BD6422184B5B7953431A000A323D +:104E8000CBE7C046E061FF1FB54B0011C94B0011D5 +:104E90004443FF1F7C61FF1F9C61FF1FCE42FF1F29 +:104EA0006509FF1FADAC00002C64FF1F0A64FF1FE3 +:104EB0003842FF1F1942FF1FDE63FF1FBF63FF1F42 +:104EC000B063FF1FC061FF1FB461FF1FC409000072 +:104ED000CE090000E261FF1FC461FF1FF8B50A00A0 +:104EE00020230D001A40194251D0534B1B78002B40 +:104EF0003CD0FFF70FFB514B514C524E9968626802 +:104F0000737A8A1ADB039A4202D36160FEF7D2FDFC +:104F1000327A217A531EDBB299422AD1FFF7B0F9D7 +:104F2000637A002B1FD0013BDBB26372002B1AD1D6 +:104F3000454B9B78552B01D106F04EFCE37A002BB4 +:104F40000CD00023414A424FE372138838000133EA +:104F50001380FEF7CBFE390006F076FC64237079EF +:104F60005843FFF7B5FD237A0133237220206840B0 +:104F7000F8BD9142D4D300232372FFF7ABF9344F2D +:104F80003800FEF7B3FE390006F05EFCC8E70BB24E +:104F9000002B0ADA2F4B187806F0DEF9002801D032 +:104FA00006F032FB80200002E1E70224214206D015 +:104FB000234B01201A72FFF79FFE2000D7E70B0753 +:104FC0001BD5FFF7A7FA1D4B1D491E4C98684A6870 +:104FD000637A821ADB039A4202D34860FEF76AFDC5 +:104FE000FFF778F9FFF74CF900F0E4FB2368DB07E3 +:104FF00001D5FFF717F80820B9E71024214206D0A1 +:105000000D4B1B78002BD8D1FEF74CFED5E70124C1 +:10501000214209D0104800F06DF806F00DF921008A +:10502000112005F01BF8C8E70424080020402142A5 +:105030009ED0FEF71BFFC0E7E263FF1FD061FF1F9A +:10504000B461FF1FC461FF1FC061FF1FA861FF1F84 +:105050001942FF1FE061FF1FFC41FF1FF0B51B4B12 +:105060001B4F1B883A8804001A4E1B4D85B09A428C +:105070000DD832889A420AD3184B1A882B889A4244 +:1050800005D1174A174B12881B889A421BD005205E +:1050900001F074F83B8802AA138033880190538092 +:1050A0002B88114D93800F4B02A91B88D3800F4B87 +:1050B0002A78188802F090FD0D4B08212878019A73 +:1050C0001C7006F081FB05B0F0BDC046AE63FF1F4B +:1050D0000E42FF1F0C42FF1F0A42FF1FAC63FF1F5F +:1050E000AA63FF1F0842FF1F0A64FF1F1042FF1F31 +:1050F000A863FF1F13B50C4B1C78002C11D100289E +:1051000001D00A4B18600A4A0A4B11780A4A1078F3 +:105110000A4A01920A4A0092002205F001F9200091 +:1051200016BD1124FBE7C0460964FF1FA463FF1FDF +:105130000864FF1FF863FF1F0A64FF1FE463FF1F7B +:10514000E863FF1F10B5064B12201B78052B06D114 +:10515000044B13221988044B187801F0EBF910BDA9 +:105160000964FF1F1042FF1F0A64FF1F10B50024CF +:105170000122114B52421870104B1C70104B1A80B8 +:1051800001F084FF04220F4B21001A700E480C32EC +:1051900006F03AF9102221000C4806F035F90722F2 +:1051A0000B4B1C600B4B1C700B4B1C700B4B1A7089 +:1051B0000B4B1C7010BDC0460A64FF1F0964FF1F23 +:1051C0001042FF1F0864FF1FF863FF1FE863FF1F03 +:1051D000E463FF1FBE63FF1FBD63FF1F1242FF1F7B +:1051E000BC63FF1FF8B5174C0600257806A81424E9 +:1051F0000078052D23D1B41F134FA5B21824BD424A +:105200001DD88D1FADB2BD4219D8FA256D00AA4236 +:1052100015D21D000D4F0A3DADB2BD420FD80C4C4A +:1052200026800C4C21800C4900240A800B4A1380F4 +:10523000FFF714FF0A4B0421187806F07DFA2000CE +:10524000F8BDC0460964FF1F790C0000750C000012 +:105250000E42FF1F0C42FF1F0A42FF1F0842FF1FA2 +:105260000A64FF1FF0B50BB20D0089B0002B00DB04 +:1052700070E1A44E307806F06FF8041E50D0037829 +:10528000A22B00D122E1D02B1AD0912B45D143780B +:105290000E2B42D19C4B82889A423ED19B4A836816 +:1052A0001278052A39D1032018567F2835D0984B1B +:1052B0001B68002B31D05B68002B2ED098472CE068 +:1052C0008078072829D806F0A7F90428183F3F74EA +:1052D000A8D86378002B0CD101218C4B19708D4B11 +:1052E0001A78002A5BD08C4B307801F035FD00280D +:1052F00055D00722854B1A7051E061780029F8D10A +:10530000E378002B11D0854A854B1278307801F074 +:1053100023FD60706378002BEBD1200006F074F958 +:1053200080200002684009B0F0BD784B1B78022B4A +:10533000F3D00121307806F01FF80028EAD10121CE +:10534000307806F081F9E5E76378002BD1D16F4F13 +:10535000032807D13B78052B02D101333B701EE0B7 +:105360000223FBE76F4B1A886F4B0293002A0BD086 +:105370001B78002B03D00121307806F025FA3B780A +:10538000062B04D1013BE9E7029B1A70F7E7042BD7 +:1053900041D10121029B3078197006F055F95C4B20 +:1053A0001B68002BB9D01B68002BB6D0574A107869 +:1053B00084E76378554F002B27D10622211D5B48D7 +:1053C00006F092F962895A4B5A491A80A2895A4BBF +:1053D0001A80E3890B800521397058490A80584AA0 +:1053E0001380228A574B1A80574B1B78012B09D107 +:1053F0001F2000F0C3FEFA229200424304213078BD +:1054000006F0E2F90022484B75E7312B00D070E737 +:105410000022454B1A700323A0E7062200214348CF +:1054200005F0F2FF0023454A04211380444A3078F6 +:105430001380444A138006F07FF90821307806F083 +:105440007BF9A379083B5A425341304A0333137026 +:10545000304B1B78002B06D0334B30781A78002A5B +:1054600006D001F0B7FC0122314B52421A8096E778 +:105470000121197006F0E8F8F5E70821307806F008 +:105480005BF96378002B00D047E72C4B2D4F02933C +:10549000E388029A04211380294B307803932389EF +:1054A000039A138063893B8005F066FF002800D0D3 +:1054B00033E7264B1B68002B00D12EE70399029897 +:1054C0003A88098800881B68984726E74379132B98 +:1054D00000D022E70389012B0AD11D4B1B78022B38 +:1054E00006D10821307806F027F9FFF72BFE14E7E4 +:1054F000052000F043FE08210200307806F064F930 +:105500000BE7C0460A64FF1F051400000964FF1F73 +:10551000A463FF1F3842FF1F1942FF1FDE63FF1FF6 +:10552000BF63FF1FE063FF1FE263FF1FB163FF1F45 +:105530001042FF1FB863FF1FBA63FF1FAE63FF1F58 +:10554000AC63FF1FAA63FF1FB063FF1FA063FF1FB1 +:10555000A863FF1F8020C001014200D0E2E6CB0714 +:1055600031D5324B1B78002B1DD0314E05AC337832 +:10557000052B1AD1023B23702E4B21001B7823727E +:105580002D4B1B7863722D4B187801F089FB002896 +:1055900009D007202A4B30701B68002B03D01B68F2 +:1055A000002B00D098470120BCE60E20254B062298 +:1055B0001B7825492370254B1B78637002ABC018FC +:1055C00006F092F8D8E7022308001840194209D0E3 +:1055D000174B1B78052B03D11D4B188805F06CFF6A +:1055E00002209FE60424214203D0FFF737FD20006C +:1055F00098E6082308001840194200D193E6154B9D +:105600001C78012C03D0022C0DD008208AE6124B06 +:10561000124A134913481B8812880988008800948D +:10562000FFF7E0FDF1E7FFF78DFDEEE7E263FF1F17 +:105630000964FF1F1242FF1FBC63FF1F0A64FF1FA4 +:10564000A463FF1FBE63FF1F1342FF1FBD63FF1F45 +:105650001042FF1FA863FF1F0842FF1F0A42FF1FDF +:105660000C42FF1F0E42FF1F10B502A804880B203A +:10567000002C10D1496808784978090201430C4888 +:10568000814209D1022119800A4B59881170DB78B7 +:1056900000205BB2537010BD074C0A20A142FAD122 +:1056A00002211980034B998811705B79F0E7C0469D +:1056B0006E2A0000A861FF1F6F2A0000F7B51500D1 +:1056C00008AA16884A680F4F1478527812022243AB +:1056D0000A24BA4214D10122DBB2019200962A00B8 +:1056E00005F024FD041E0BD1074B1B68002B07D0CF +:1056F00068782A78000210434242504101309847AE +:105700002000FEBD022900001C64FF1F30B50125EA +:1057100003790400BFB02B4225D01449408805F01E +:1057200071F828420CD0124B01A95B8D00220B802E +:1057300002234B800F4B5B888B80608802F042F91C +:105740000D49608805F05EF8C0070CD50B4B01A928 +:105750001B8800220B8002234B80064B9B888B808A +:10576000608802F02FF93FB030BDC0461464FF1FBF +:105770003C42FF1FA861FF1F0C64FF1F9642FF1FE2 +:1057800010B5074C0749200004F0F2FF200006493D +:1057900004F0EEFF0721054A054804F0ABFF10BDF9 +:1057A000FFFF00001464FF1F0C64FF1F80B900118D +:1057B0003C42FF1F10B5024802F086FF10BDC046F4 +:1057C0000D5700110200F0B501270A480A4E511882 +:1057D0008B1A002B00DCF0BD0824157843086840C4 +:1057E00038404000805B013C58406D08002CF5D1EA +:1057F0000132EDE7FFFF00009AB90011F0B5002576 +:105800000F269D4200DBF0BD4C5D0709444034404B +:10581000A400A05801357840F3E70000F0B589B046 +:105820006A460D000B000F27110010351C7801335C +:10583000260024093E40167054700232AB42F5D166 +:105840002023024AFFF7DAFF09B0F0BDA0B900112A +:10585000F0B54E780B7889B036020C001700019035 +:105860001E43012A61D9954B9E4200D877E001334F +:105870009E421CD1062A17D1CA788B7812021A438D +:105880000B791B0413434A7912061A438C4B5A6155 +:1058900000221A705A808B4A5A608B4A9A608B4A4F +:1058A000DA60002009B0F0BD88225205EEE7884B8F +:1058B0009E423CD182498B78002B00D0F6E00C2A26 +:1058C00031D10F22A3789343E27812021343227955 +:1058D000120413436279120613434B60E279A079F4 +:1058E00012020243207A00041043627A1206024335 +:1058F000CA60E27AA07A1202024376484A81834261 +:1059000008D804236E49142201980B7005F0ECFEB0 +:105910001420C7E71201D21889235B059A42F0D8F8 +:1059200001238B70BDE7022AFAD00523EAE76A4A11 +:1059300001239642E6D1FFF705FC052F0CD9E37849 +:10594000A2781B021343227912041A4363791B06BF +:105950001343624A0393136005F03EFFA1E7584DDD +:105960002B78002B9DD1AB78002B00D1A0E02B89A8 +:1059700001339BB20093B34200D091E0132AD4D9F3 +:10598000CF7C8B7C3F02122120001F43FFF71AFFC0 +:10599000874200D08EE0002E3DD1E378A2781B0232 +:1059A00013432279E96812041A4363791B061343EF +:1059B00003930A228B4212D1FF23A370E370237159 +:1059C00063716B89002B09D1E37B227C1B021204DB +:1059D0001343A27B13431B0901336B8100226B89A4 +:1059E000002B8ED0002A67D1686837013818000B69 +:1059F0006B6900030390984205D9686105F01CFDAE +:105A0000EB780133EB7068681022A11C381805F0A0 +:105A1000EBFE2E8145E76F89009A7B1E9BB2934275 +:105A20003AD1E278A37812021A43237905A81B041D +:105A3000134362796C6812061A43EB680092039272 +:105A4000211D0C22049305F04FFE0120260004A91D +:105A500040421036FFF7E2FE013F012F17D1009AB6 +:105A60000B232861824200D04CE704221C4920000D +:105A700005F0BAFE042203A9686805F0BDFEE968D6 +:105A8000039AFF23914200D13CE7F73B3AE731000C +:105A9000FFF7C4FE1036DFE70923B742A4D831E789 +:105AA000009BB34200D9FCE607232BE7022329E73A +:105AB000032327E7062325E70A2323E7FFFE000049 +:105AC000B042FF1F00000111FFFF0000504859368F +:105AD00001FF0000FFFF001102FF000034F0004052 +:105AE000BC42FF1F10B5034C0B000122210000F047 +:105AF0006BFA10BDA55C00110B8870B506000D0097 +:105B00000224162B11D92B000322094900F05CFA5C +:105B1000041E0AD1074B2A881B88191C934200D9FE +:105B2000111C300089B200F0EFFA200070BDC046B1 +:105B3000D15C00114664FF1F10B54A780400013A99 +:105B40000B000220012A07D80A78002A04D0052277 +:105B50002000024900F038FA10BDC046FF5C001179 +:105B60000A7810B50B0004000220002A04D0072296 +:105B70002000024900F028FA10BDC046AB5D0011BC +:105B80000A7810B50B0004000220002A04D0092274 +:105B90002000024900F018FA10BDC046115E001145 +:105BA00010B5034C0B000B22210000F00DFA10BDC4 +:105BB000415E001110B5034C0B000D22210000F0D6 +:105BC00003FA10BDB35E001110B5034C0B000F2299 +:105BD000210000F0F9F910BD0D5F00110A7810B531 +:105BE0000B0004000220002A04D0112220000249E8 +:105BF00000F0EAF910BDC0461D5F0011002310B58A +:105C00001322190000F0E0F910BD000010B5034C9C +:105C10000B001722210000F0D7F910BD6F5F0011B3 +:105C2000002310B51922190000F0CEF910BD0000B4 +:105C300010B5034C0B001B22210000F0C5F910BD6C +:105C4000A95F0011F7B584890D0006000121002C21 +:105C500022D000238268D3561778002B1EDA0C2C32 +:105C60001AD90C3CA4B2131940880093230002F007 +:105C700086FE431E984101307B06DB0F6B703F238D +:105C8000013C1F40A4B22870AF70AC80002C07D03C +:105C9000B3680133AB6000210800FEBD0020EBE7D4 +:105CA000AC60F8E70B7803704B8843704B881B0A95 +:105CB00083700B79C370042070470420022B06D137 +:105CC0000020537811781B02009A0B431380704711 +:105CD0000B8803700B881B0A437002207047042056 +:105CE000009983420AD1537810781B0203430B803A +:105CF000D37890781B02034300204B807047F8B59F +:105D00000D004B7801240021461C03702B788B4238 +:105D100001D82000F8BD6B78B01C4F1C012B10D1AE +:105D2000890069184B88022233704B88B9001B0A1E +:105D30007370691805F0B0FC04360434A4B2F9B2EB +:105D4000E4E7122359436B185A88043132705B8898 +:105D500010221B0A7370691805F09EFC123612346B +:105D6000ECE770B5049D14001E00052B01D804203B +:105D700070BD637812781B0213432B80E378A278FE +:105D80001B02134302226B802A71211D681D063EEF +:105D900005F082FCB2B22A81E92AE8D82800A11DC8 +:105DA0000A3005F079FC0020E2E7002310B50A78FC +:105DB0009A4201D8900010BD9A008A185488013385 +:105DC00004705488DBB2240A4470948884709288EA +:105DD000120AC2700430EAE710B51100029C062BCB +:105DE00004D004201022142B01D010BD02222271F5 +:105DF0004B7808781B0203432380CB7888781B02FA +:105E0000034363800431601D05F046FC0020ECE78D +:105E100010B50C788B7804315C43E4B20370220037 +:105E2000013005F039FC601C10BD0420022B06D1A6 +:105E30000020537811781B02009A0B43138070479F +:105E400010B50C000A88023105F026FC208810BD30 +:105E500070B504000D0004981100012B01D8042036 +:105E600070BD167852781202324302800200F1327D +:105E700055701470E125002C00D10C35023B9AB20C +:105E80004280AA42EBD80231043005F005FC002024 +:105E9000E6E70420009983420AD1537810781B0268 +:105EA00003430B80D37890781B02034300204B8080 +:105EB000704710B50C000A88023105F0EDFB208810 +:105EC00010BD000070B501211E000420049C0E408E +:105ED0000B4218D1CB40DDB28D4214D90A49DBB256 +:105EE000098899420FD32300EE331D703300580008 +:105EF00011184978165C0902314301332152D9B295 +:105F00008D42F4D8002070BDC842FF1F10B50C00B0 +:105F10000A88023105F0C0FB208810BD10B50C784E +:105F20008B7804315C43E4B203702200013005F049 +:105F3000B3FB601C10BD10B511000298032B01D8F3 +:105F4000042010BD14785278043B120222430280D0 +:105F5000CA788C781202224342809AB28280EB2A5D +:105F6000EED80431063005F097FB0020E9E710B5C4 +:105F70000C000B8803700B881B0A43704B888370DE +:105F80004B881B0AC3708A880430063105F084FBF5 +:105F9000A088043080B210BD0420012B03D1002062 +:105FA0001378009A1370704710B50C000B880370BB +:105FB0000B881B0A43704A880230043105F06CFBE1 +:105FC0006088023080B210BDF0B589B003931E4BDB +:105FD000029242000700D05A019102F020F81325E6 +:105FE000061E2DD0029B01240370019B002B04D0C0 +:105FF000001903999847001984B26B461B7A5BB26B +:10600000002B0FDA1021380002F01CFB19250028A4 +:1060100013D130003219E1B202F066FC051E0CD13A +:106020000C34A4B2042304AA380005A99380069670 +:10603000948101F0AFFD051E02D0300005F0A4FBF5 +:10604000280009B0F0BDC0464464FF1F70B50500CC +:106050000C0000280CD00020814209D01022200022 +:10606000044905F019FB01202B7823736B786373C7 +:1060700070BDC046E0B90011F0B506000D00170074 +:106080001C0085B002291BD00020102907D1022B4B +:1060900007D0102B03D115E00020102C08D005B03C +:1060A000F0BD69463800FFF7D1FF2A0069460BE0D2 +:1060B00069463000FFF7CAFF22006946380004E055 +:1060C000022BE9D12A003900300005F055FBE6E744 +:1060D000031CF02800D9F023032008499AB2013AA2 +:1060E0000B80D317034006499B189B100B80D30FDE +:1060F00004499B185B100B807047C046CC42FF1FC1 +:10610000CA42FF1FC842FF1F034B1B888B4202D3AA +:10611000024B4000C1527047CC42FF1F4464FF1F36 +:10612000014B4000185A70474464FF1F1722014B6F +:106130001A8070474464FF1F70B505000E2005F0FB +:1061400013FA041E13D0D023037000230622837099 +:1061500007494570033005F09FFA064B2100DA8AA3 +:1061600062811B7E2373044B187805F0BDF870BD67 +:106170006064FF1F5064FF1F1C43FF1F262803D8C5 +:10618000024B4000C05A70470148FCE7CE42FF1F57 +:10619000FFFF000070B506000C00094D1C22002115 +:1061A000280005F031F9074B1E70074B1C7005F0F5 +:1061B00023FA0123002801D0002312202B7070BD88 +:1061C0005064FF1F1C43FF1F7164FF1F70B5050063 +:1061D0000D4C0800E260A16010220021656005F00E +:1061E0003BF8012803D11021A06802F058FD1022CD +:1061F0000021280005F030F8012803D11021606843 +:1062000002F04DFD70BDC0465064FF1F70B5041E06 +:1062100005D1002903D006220D4805F03DFA0D4BAB +:106220001D78012D11D1002C05D102221A7005F024 +:1062300053FA280070BD00221A70074B1B78FF2B01 +:10624000F7D02000FFF778FFF3E70025F1E7C0461D +:106250006064FF1F5064FF1F1C43FF1F030010B545 +:10626000002801D1002010BD00780B4A002803D17E +:106270005988D1821B7913761378022BF2D100232F +:10628000984200D103331370044B1B78FF2B01D0CD +:10629000FFF752FF0120E6E75064FF1F1C43FF1F7A +:1062A000002911D000280CD04B79012803D14022BD +:1062B0005242134303E03F221340032802D001203F +:1062C0004B7170474022F4E70800FAE770B5094DBA +:1062D0000100287800280BD0074C0622200005F08A +:1062E000DBF921002878FFF7DBFF200005F004F838 +:1062F00070BDC0467064FF1F4A64FF1F00290AD0AA +:10630000012808D13F224B799343C02B03D0403B57 +:106310005A425341981C704770B5174D06002B78B0 +:10632000FF2B15D00A2005F01FF9041E10D0D02332 +:106330000370C83B8370114B11491B784670C370C2 +:106340000622043005F0A8F92100287804F0CCFFDB +:106350000C4B1B78012B0DD10B4B1B68002B03D072 +:106360009B68002B00D09847084B04211878084AF6 +:1063700005F03AF870BDC0461C43FF1F7064FF1F54 +:106380004A64FF1F6C64FF1F9864FF1F9C64FF1F1B +:1063900060EA0000014B98687047C0465064FF1FD8 +:1063A000014BDB68186870475064FF1F074B10B53E +:1063B000DA68136801331360054B1878FF2803D09F +:1063C0008021C90105F040F910BDC0465064FF1F8F +:1063D0001C43FF1FF7B50E0002F0C8F8051E1CD0C5 +:1063E0000E4B06621F78002F00D10778AB79102082 +:1063F000019305F0B9F8041E0FD0D0230380C73BEA +:106400008370019BE91DC3700622043005F044F936 +:1064100021003800E66004F067FFF7BD1A43FF1F54 +:10642000014B18787047C0467064FF1F054B002869 +:1064300005D1054B1A78054B002A00D1014B1800F5 +:106440007047C0466064FF1F7064FF1F4A64FF1FEF +:10645000014B58687047C0465064FF1F024B1868D4 +:10646000431E9841C0B270477464FF1F421E030070 +:106470000120152A03D9FF3B5A425341D8B2704735 +:10648000F0B51C0000230E0085B0039002920B7043 +:10649000029A934201D3002019E0E55C5A1CD2B263 +:1064A000002DF8D0029851198142F4DC0233DFB29A +:1064B000A35C18000193FFF7D9FF002807D0013D26 +:1064C000019A0399EBB233708A4202D1E01905B008 +:1064D000F0BDDB19DBB2DBE710B50C0002F09EF873 +:1064E00003001220002B03D02100588804F024FF61 +:1064F00010BD000070B50E4D84006359002B15D0FF +:10650000186A002801D004F0FFFE2B59586A0028B1 +:1065100001D004F0F9FE2B59986A002801D004F04C +:10652000F3FE285904F0F0FE00232B5170BDC04645 +:106530008064FF1F1C4B70B504000E0015009942CB +:106540000AD11A4B1B68002B01D1122070BD1B68A9 +:10655000002BFAD09847F9E7154B994215D1134B08 +:106560001B68002B0AD01B68002B07D09847002817 +:1065700004D1104B1C70104B1D70E7E72900200060 +:10658000FFF7AAFF0028E1D1F3E7080001F0EEFFD2 +:106590000028DAD003780320A342D7D129003000A5 +:1065A00004F0CAFED2E7C046FEFF00007C64FF1F75 +:1065B000FFFF00007964FF1F7864FF1FF7B5040038 +:1065C000808801F0D3FF0025A84203D00578A08879 +:1065D00002F008F81C4E3378002B1FD0AB421DD1BF +:1065E0001A4B28001978FFF777FF002818D00023EE +:1065F0003370A3790820A778A688019304F0B4FF2C +:10660000011E0DD0D0230370CA3B8370019B4770DD +:1066100086808371280004F067FE01E0002DE8D138 +:10662000A0880B4B8200D358002B01D0FFF762FFEC +:106630001721A088FFF768FDA08801F027FDA0883A +:1066400001F0FEFDF7BDC0467964FF1F7864FF1FAF +:106650008064FF1FF0B587B01D000CAB1B880700DE +:1066600001930DAB1B88142002930EAB1B88160000 +:1066700003930FAB1B880091049310AB1B88059309 +:1066800004F072FF041E1AD0D0230370CB3B477076 +:106690008370C670062229000430002D11D004F04A +:1066A000FBFF019B21006381029B0098A381039B58 +:1066B000E381049B2382059BA37404F015FE07B0BD +:1066C000F0BD04F0A1FEECE7F7B5009308AB1B8822 +:1066D00007000C200D001600019304F045FF041E76 +:1066E00013D0280001F042FF00280FD00078D023FB +:1066F0002370C93BA370009B21002381019B67701D +:10670000A580E680638104F0EFFDF7BD014B1878AA +:10671000EDE7C0461C43FF1F13B5040064890389DD +:10672000C2888188C0780094FFF7CEFF13BD0000B7 +:1067300010B5044C2068002803D004F0E5FD0023C8 +:10674000236010BD8464FF1FA122F0B581889200F0 +:106750004A43384B384F1B6804009B189D22920017 +:106760009B18827989B01A603B68002B5FD01D7836 +:10677000324B1B68002B04D05B68002B01D000203B +:106780009847260008363100E079FFF7B7FD237DF2 +:10679000E0710200E0780493638A29000393238A5E +:1067A0000293E3890193A38800933300FFF752FF1C +:1067B000E378002B0BD1E289A379A188029201969C +:1067C000E27928000092012201F0DAFEE0703B68D5 +:1067D000002B20D0FFF7ACFF194D287800281AD0E5 +:1067E000184B1978FFF778FE002814D02B78E6783C +:1067F00008200793A78804F0B7FE011E09D0D02314 +:106800000370CA3B4670837087808671079804F0D6 +:106810006BFD00232B701721A088FFF775FCA08863 +:1068200001F034FCA08801F00BFD09B0F0BD064B6F +:106830009DE7C0463409FF1F8464FF1F9864FF1F53 +:106840007964FF1F7864FF1F1C43FF1FF8B5070022 +:1068500008000E0001F08AFE041E18D02620FFF763 +:106860008DFC051E00D12578062004F07DFE041E57 +:106870000DD00021062204F0C7FDD0232370C23BB7 +:1068800021006770A370A680E8B204F02DFDF8BD6A +:10689000F0B585B001930AAB1B78070002930BABF0 +:1068A0001B7808000D000092039301F05FFE061EA6 +:1068B00022D0102004F058FE041E1DD0102200210A +:1068C00004F0A2FD2620FFF759FC002800D1307803 +:1068D000D0232370C13BA370009B21002372019B36 +:1068E00067706372029BA580A372039BC0B2E372C0 +:1068F0000C9BE36004F0F8FC05B0F0BDF7B50D00AB +:10690000019001F033FE071E20D00E2004F02CFE73 +:10691000041E1BD02620FFF731FC061E00D13E7856 +:10692000D0232380C53B0622A370F91DE01C04F090 +:10693000B3FE019B2A0063810123DD401A401D4004 +:10694000210022736573F0B204F0CEFCF7BD0000A5 +:10695000F0B585B0029010000D0017000A9E039359 +:1069600001F004FE041E31D0029B002B2ED1039BAC +:1069700002795B0724D5122313430422002E08D189 +:106980000B99002905D10C99002902D10D990029F4 +:106990001AD01A430D9B2271002B00D0C9E0002EA3 +:1069A00000D1CFE0002D00D0CCE0606A002801D0FB +:1069B00004F0AAFC1C21300004F016FE606205E021 +:1069C00002239A430E33D7E793432371654BBA00F2 +:1069D000D458002C00D1AAE0002E10D0236A002B3E +:1069E00003D11C2004F0B8FD20625E4BBA00D358DE +:1069F000186A002803D01C22310004F04DFE0C9BC5 +:106A0000002B12D0574CBB001D596B6A002B03D1D1 +:106A1000162004F0A1FD6862BB00E358586A002804 +:106A200003D016220C9904F037FE0D9B002B11D0D9 +:106A30004C4DBC006659B36A002B03D1142004F0FE +:106A40008BFDB0622B59986A002803D014220D994F +:106A500004F022FE380001F089FD051E67D0414B8D +:106A6000BA00D358002B62D01A6A3420002A00D111 +:106A70001C389A6A002A01D0143080B20B9A002A7E +:106A800001D01C3080B25B6A002B01D0163080B27E +:106A900004F06AFD041E4AD01822002104F0B4FC60 +:106AA0002620FFF76BFB0190002801D12B78019382 +:106AB000D0232370029B200063700A23294EA37009 +:106AC000039BBD00A371AB59A780196A1830002938 +:106AD00005D01C22A06004F0DFFD20003430735983 +:106AE000996A002907D0030014221433E06002934E +:106AF00004F0D2FD02980B9B002B08D003001C224F +:106B00001C330B992061029304F0C6FD029873595F +:106B1000596A002903D01622606104F0BDFD6B465E +:106B20002100187904F0E0FB3800FFF7E3FC05B022 +:106B3000F0BD10220D9B0D991B69A018236204F073 +:106B4000ABFD2CE70B9B002B00D13FE7012D00D0C4 +:106B50003CE7606A002801D004F0D6FB1C210B98AA +:106B60002AE7C0468064FF1F10B5044C2068002847 +:106B700003D004F0C9FB0023236010BD7464FF1F21 +:106B80000B4B07B51A68002A01D100200EBD6946DB +:106B9000531C012012780731FFF772FC0028F4D053 +:106BA00002780123100018401A42EED0EEE7C046EA +:106BB0009064FF1FF0B51F4F01203B6887B0002B8A +:106BC00025D09B78059300F0B3FB002821D00A2044 +:106BD000FFF7D4FA04000B20FFF7D0FA164B05009C +:106BE0001E78731E9E413B68F6B2191DD878FFF7D8 +:106BF00057FB3B682900DA7A043303929A790193B0 +:106C00000292009033002000059A04F035FD07B091 +:106C1000F0BDFFF7B5FF002805D00620FFF7AEFA5C +:106C200004000720D8E70820FFF7A8FA040009208D +:106C3000D2E7C0467464FF1F7064FF1F70B50A4E30 +:106C4000040033780D00FF2B0DD0042004F08CFCE1 +:106C5000011E08D0D0230370CE3B45708370C470F2 +:106C6000307804F041FB70BD2C43FF1F70B5040069 +:106C700006200D0004F078FC011E0AD0D02303701A +:106C8000CD3B8370054B44701B688580187804F0F9 +:106C90002BFB002C01D0FFF767FF70BD7464FF1F52 +:106CA000F8B5264F06003B680D001124002B05D1D6 +:106CB0000522234B1B78134202D112242000F8BD79 +:106CC000204A10241268002AF8D01278002AF5D041 +:106CD000DB0719D52B789A1E012A1AD80C2004F04C +:106CE0003BFC132438600028E8D000230A224370BC +:106CF00029000670023004F0CFFCFFF75BFF041E92 +:106D00000AD0FFF731FFD9E700F012FB0028E1D1EC +:106D1000E4E7002BE2D0D0E70B4B1B78032BCDD15F +:106D20001D20FFF72BFA094B18800028C6D0084B0E +:106D300004211878074A04F057FBBFE77464FF1F6B +:106D40007164FF1F9064FF1F7064FF1F6E64FF1F5C +:106D50009C64FF1F60EA0000F7B50193194B140013 +:106D60001A78052306000F0012201A4221D00129AB +:106D700020D1154B1D68002D1BD002201F2C18D8C8 +:106D8000002C02D0019B002B13D0104B1F221E7031 +:106D90006E1C0021300004F037FB01992200300006 +:106DA00004F07AFC310020002C70002F06D004F093 +:106DB0006BFCFEBD064B12201D68DCE704F024FDD1 +:106DC000F7E7C0467164FF1F9064FF1F2C43FF1F4D +:106DD0008C64FF1FF8B50F4E12243368002B17D0B8 +:106DE0001B780F3C834213D100250B4F02213878CA +:106DF00004F0A2FC094B042138781D8004F09CFCAF +:106E0000074B28001D8033685C7004F05DFA0400B5 +:106E10002000F8BD7464FF1F9C64FF1F8864FF1F7F +:106E20006E64FF1F70B5012823D11B4C2388002BF3 +:106E300003D01A4A1578002D07D0194B1B68002B78 +:106E400002D01878FFF7C6FF70BD3B2B02D93C3B40 +:106E50002380F9E7134E0221307804F06DFCFA220A +:106E60002388920002215A43307804F0ADFC25803B +:106E7000EAE70B4B1B68002BE6D00B4B1B785B073C +:106E8000E2D5084B0221187804F056FC0022024B90 +:106E90001A80FFF769FED7E78864FF1F6C64FF1F45 +:106EA0007464FF1F9C64FF1F7164FF1FF8B51E4DC3 +:106EB0002868002803D004F027FA00232B601B4E1B +:106EC0003068002803D004F01FFA00233360184F05 +:106ED00005243B7818002040234221D0154800F0BB +:106EE0002BFA3B78234213D0202004F035FB286096 +:106EF000002813D02022002104F086FA202004F07C +:106F00002BFB041E306005D02022002104F07CFA07 +:106F1000002004E0286804F0F7F92C601320F8BD85 +:106F200000F00AFAF4E7C0469064FF1F8C64FF1F6C +:106F30007164FF1F2043FF1F10B50A4C23681A1EFF +:106F40000ED0002808D10130587004F0BDF9002897 +:106F500005D02368002B02D00021FFF787FE012215 +:106F6000100010BD7464FF1FF7B5274E050033688D +:106F70000191181E21D05C78244F012C30D1FFF7ED +:106F8000FFFD002825D02000FFF7F8F80400412875 +:106F900014D91F4B022118781E4A04F025FA1E4B03 +:106FA0003C3C1C80022233685A703B78002B14D181 +:106FB00028000199FFF75AFE0120FEBDFA22920037 +:106FC0004243002AEED0124B0221187804F0FCFB59 +:106FD000E8E7FFF7D3F80200F3E700233B70EBE7A5 +:106FE0003B78002BE8D1032004F0BEFA011E08D044 +:106FF000D0230370CC3B457083703368187804F05D +:1070000073F9FFF7B1FDD7E77464FF1F6C64FF1FCE +:107010009C64FF1F60EA00008864FF1F10B51749D9 +:10702000838802008B4220D011D815498B4217D09B +:10703000144900205B1899B2012907D89268117889 +:107040005A425341D8B2FFF7F9FD012010BD0E4A54 +:1070500000209B1807229BB29A424041C0B2F5E73C +:1070600083681878FFF768FFF0E7836899785A78A3 +:10707000090218781143FFF777FFE7E70A200000BD +:1070800006200000F8DFFFFFAFDFFFFF014B1870A5 +:107090007047C0462D43FF1F10B5064C207001F00D +:1070A00041FA207804F088F90521207800F062FD8B +:1070B00010BDC0469C64FF1F0BB273B50D00002BC2 +:1070C00000DBC4E0884B187804F046F9041E0ED0AB +:1070D0000378912B0FD0A22B00D1A1E0834B18781D +:1070E000FF2852D0210004F0FFF800284DD1802065 +:1070F0000002684076BD43780F2B76D013D8052B5D +:1071000070D00E2BEAD18088794B98422BD8794BDE +:1071100098421BD8784B9842E0D1A3681878591C44 +:10712000FFF774F838E03E2BD8D18378032B74D066 +:107130006CD8012B6ED0022BD0D1704B1B68002B6A +:1071400023D05B68002B20D098471EE06C4BC01802 +:107150000C28C3D804F060F81DC2C2150BC20B0B7B +:107160000B3223C23C00674BC0180728B6D8664BC9 +:107170001B68002B09D01B68002B06D02000984705 +:107180000AE0A3681878FFF7C7F8200004F03CFA7B +:10719000ADE7A068FFF762F800289FD0F5E7A36885 +:1071A0001B78002BF1D0554B1B68002BEDD01B68D2 +:1071B000002BEAD0210055489847EDE74F4B1B685C +:1071C000002BE2D01B68002BDFD021005048F3E7F2 +:1071D000504B1B68002BD8D05B68002BD5D021000A +:1071E0004348E9E7FFF7EAF9CFE780884A4B98423E +:1071F00003D04A4B984200D070E7464B1B68002BE7 +:10720000C3D05B68002BC0D02100D5E7153B012B14 +:10721000BBD963E7FFF798FAB7E7FFF77DFAB4E762 +:107220003F4B1B78042B07D100236A46138001795A +:10723000408800F0C5FCA8E7364B1B68002BA4D0A3 +:107240005B68002BA1D00100364898479DE70124D8 +:1072500021420AD0294B1B68002B04D05B68002B0D +:1072600001D000209847012043E78B070AD5264B21 +:107270001B68002B04D05B68002B01D020009847CE +:10728000022036E70421280008400D4200D131E7F2 +:10729000254E3388002B21D0013B9BB23380002B3D +:1072A0001AD1FFF7DBF800280AD0204B1C70164BD0 +:1072B0001B68002B04D05B68002B01D0200098478E +:1072C000FFF7C6F8694601F001FD6846FEF7FEFFCC +:1072D0001D20FEF753FF308004200AE7024B187888 +:1072E00004F02AFAF8E7C0469C64FF1F2D43FF1FF5 +:1072F0000E20000001200000091000009464FF1F10 +:10730000FEDFFFFFAFDFFFFF9864FF1F0C200000D0 +:107310000B2000007C64FF1F0D20000013200000E4 +:107320007164FF1FFFFF00006E64FF1F6C64FF1F8E +:1073300010B501F09BF910BD014B18607047C046B5 +:107340009864FF1F0B880020162B01D817230420F8 +:10735000014A13807047C0464664FF1F00207047F3 +:10736000074A03001188814207D091880020994282 +:1073700002D101308000101870470020FAE7C046A3 +:10738000A464FF1FF0B58F7806000D00C5B01E2F56 +:1073900015D1FFF7E5FF051E03D10024200045B0FD +:1073A000F0BD00223B003100C078009200F0B2FB3B +:1073B0000400A81C00F0D2FBFF23EB70EEE7264B85 +:1073C000062403931B78FF2BE8D0182FE6D87B0800 +:1073D000224A013BDB0002929A589446002ADDD0F3 +:1073E000029AD3185B68002BD8D00878002802D105 +:1073F0004B78012B02D10624122FCFD107AFAB88D7 +:10740000697800976446AA68A047041EC6D1AB7885 +:10741000029A5B08013BDB00D318390030005B683F +:107420009847041E0BD1AB78042BB6D0039A3100D9 +:1074300010782200009700F06DFB0400AEE76A7838 +:10744000002AABD1AA7805A93B88087130000A70E0 +:107450004B80FEF747FBA0E73043FF1FF0B9001158 +:107460001D4B37B5050098420BD000290AD1FFF714 +:1074700077FF002805D11948FFF772FF002800D0D8 +:10748000058037BD01291AD1FFF76AFF041EF8D025 +:1074900001235B420380A378FF2BF2D0FE2B07D0A1 +:1074A0000023E0781422009329001E3300F032FB01 +:1074B000A01C00F053FB01235B426380E1E702293B +:1074C000DFD1013901F0BEF80028DAD12800FFF73A +:1074D00047FF041EDFD1D4E7FEFF0000FFFF0000DE +:1074E000022210B5074B52421A80074801325A80D7 +:1074F0009A80DA8000F07EFA044801F025F8002036 +:1075000010BDC046A464FF1F857300116174001193 +:107510000388F7B50400002B02D102252800FEBD28 +:1075200042680221137825485268FEF7A5FD00281D +:107530002ED0234F01253A88002AEFD080232188BE +:107540005B0201259B1A9942E8DC0C2004F004F848 +:10755000061E31D03B8822889C46002318000195E6 +:1075600061469DB2491989B2AA421BD8002801D0B0 +:1075700062443A8000233000082208C0210004F051 +:107580008BF8104A1368002B13D100251660C5E74D +:107590006268022113780C485268FEF76DFD0028DE +:1075A000C7D1BAE760681D014019418101330198D4 +:1075B000D6E71A001B68E6E71325AFE75EBA0011AD +:1075C0002E43FF1FA064FF1F5CBA0011014B18700F +:1075D0007047C0463043FF1F14230A0010B51A40FD +:1075E000194204D00122102101F048F810BD4B06C9 +:1075F000F9D4012088434000F8E710B514008B0649 +:1076000004D50122102101F039F810BD08230A0029 +:107610001A40194202D14BB2002B0FDA102101F0AF +:107620002DF8002808D02300F2331B78002BECD073 +:10763000F1342378012BE8D10020E6E70320890705 +:10764000FAD4E2E7F0B51F00184B85B01C68019032 +:1076500002910392002C27D1200005B0F0BDA5684F +:107660003301ED186B89019A934211D3029A934228 +:107670000ED8002F04D10A9B002B10D12C00EBE771 +:107680003B002978039A6868FEF7F6FC0028F2D1DF +:107690000136B6B2A388B342E1D82468DAE7A3681A +:1076A0000A9A5B891380E9E70026F3E7A064FF1FCD +:1076B00037B50C000A8849880123914217D3002A64 +:1076C00015D0651D23792A0002210A48FEF7D4FC53 +:1076D000102300280BD023796188208800242A00F9 +:1076E0000094FFF7AFFF0A23A04200D02300180048 +:1076F0003EBDC0465EBA001113B50A00088849882D +:10770000012388420BD8002809D0002413790532C0 +:107710000094FFF797FF0A23A04200D0230018002F +:1077200016BD13B50A0008884988012388420BD882 +:10773000002809D00024137905320094FFF782FF56 +:107740000A23A04200D02300180016BDF0B58BB06C +:1077500003904A8808880E000123824255D30028EE +:1077600053D00023012704AC23700022718813003A +:107770000092FFF767FF051E3ED02078002835D124 +:107780002B78022B18D167706A8983000130E318C7 +:1077900080005A8069680222201803F07DFF237858 +:1077A0000133DBB22370042B19D93B006889013007 +:1077B00080B2002BD9D01FE00223637012235843FC +:1077C0006A89231804305A8069681022201803F04F +:1077D00063FF23780133DBB22370002BE5D10C4A21 +:1077E0006B899B185A425341DBB2DFE76378012B68 +:1077F000E4D12B78022BC7D022780A23002A04D0A8 +:1078000021000398FEF798F9002318000BB0F0BD93 +:107810000100FFFF0F4BF0B504001868002816D0D8 +:1078200083685D89A54207D88288AE18B44203DA1E +:1078300012019A18934201D10068EFE71E005F8998 +:107840001036A74204D1002900D00D801800F0BDE9 +:107850003300EFE7A064FF1F70B505000C00088837 +:107860000021FFF7D7FF03000120002B04D02200E6 +:107870002800197AFFF7C1FE70BDF7B50C0000258E +:1078800001902300EE331B78AB4201D800200AE0C0 +:107890006B00E65A00213000E718FFF7BBFF002815 +:1078A00002D126800130FEBD017A0198FFF794FED7 +:1078B000002802D03B882380F5E70135EDB2E0E7F0 +:1078C00010B5040008880021FFF7A4FF0300012081 +:1078D000002B03D02000197AFFF77EFE10BD0000B8 +:1078E000054B1B68002B01D1180004E09A685289EF +:1078F0008242F6D198887047A064FF1FF0B50E272A +:10790000002687B0039302ABFF183E8005001F4B93 +:1079100040891400984207D02B78013000976A689C +:1079200080B2FFF78FFE060002212B7818486A68A4 +:10793000FEF7A2FB00280FD06C892000FFF7D0FFD4 +:10794000002802D0013C0419A4B2039B002B00D0F4 +:107950001C80300007B0F0BD02212B780D486A680A +:10796000FEF78AFB0028E7D102212B780A486A68D3 +:10797000FEF782FB002807D0002EDED03B88A34212 +:10798000DBD17489013CDFE76C89DEE7FFFF000093 +:107990005EBA00115CBA00115ABA001110B50C00A1 +:1079A000FFF7DEFC03000220002B0AD0002C00D0E1 +:1079B00023609B781720FE2B03D00138FF2B00D1CA +:1079C000002010BD73B50D0001A904001600FFF7DB +:1079D000E5FF172805D0002E04D129002000FEF76E +:1079E00027F976BD01221021200000F047FE002873 +:1079F000F3D0F6E7014B18607047C046B064FF1F34 +:107A000037B56B469D1D010004000222280003F0DB +:107A10006BFE2B88B02B0ED12379122B09D12300BA +:107A2000FA331B78012B06D10121608800F0E0F8C1 +:107A300001E01B2BF8D037BD10B5054B04211870A1 +:107A400000F098F8FFF74CFDFEF770FB10BDC04644 +:107A5000B464FF1F0020F0B50BB20F0087B0834263 +:107A600034DA274B187803F077FC051E2BD0037807 +:107A7000A02B25D103AE3100FEF7E4F8041E0BD194 +:107A8000B378DB0724D51F4B06341B68002B03D0CB +:107A90003100688898470400A868002801D003F0E6 +:107AA00073FE002C08D1184A039B1340174A9342D7 +:107AB00006D0B3781B2B03D00121688800F098F81A +:107AC000280003F0A1FD80200002784007B0F0BD3F +:107AD0000F4B1B68002B10D0310068889847041E9C +:107AE000DAD07378002BD7D1B27801A90A704B8015 +:107AF0000C716888FDF7F6FFCEE70624F1E7C04673 +:107B0000B464FF1FAC64FF1F00FFFF000001120000 +:107B1000B064FF1FF7B50190FC200D0017001E0098 +:107B200003F022FD04001320002C12D0B02320000B +:107B30002370089BF4226770658026710830002B43 +:107B400008D0190003F0A8FD2100019803F0CCFB38 +:107B50000020FEBD089903F057FCF5E710B5041EA0 +:107B600006D00078FD2803D803F036FCFF232370ED +:107B700010BD00000A1F93B210B504000220032BB1 +:107B800005D882400020024BD1529B189C7010BD3A +:107B9000D464FF1F0B8870B5043B04000D00022065 +:107BA000032B0BD80121200000F04CFD0300142012 +:107BB000002B03D02900200000F0DEFB70BD000088 +:107BC00007B51300034A00920A00012100F02CFCC3 +:107BD0000EBDC046FD7D001107B501920322009243 +:107BE000024B0A00122100F049FC0EBD7B7E001101 +:107BF00007B56B4601AA11800449D880087806337E +:107C0000012802D1190003F09FFC07BDB564FF1FD6 +:107C10000C4B10B518700023FF210B4A1380138101 +:107C200093819380094A53801370517293819372A8 +:107C3000D174D3821375517703F036FB00F0FCF951 +:107C400010BDC046E464FF1FD464FF1FB664FF1F6D +:107C5000F0B58DB06B46002003910C229B5E8342F1 +:107C600000DBB0E05D4B187803F076FB051E00D119 +:107C7000A4E00378902B00D09DE006AF0100468879 +:107C8000380000F013FA79680400002900D19CE064 +:107C90003B88052B6ED13B89032B1CD905AC2000FA +:107CA00000F0A2F86288172A61D83989131D994219 +:107CB00031D17968237804310291D90738D56078B9 +:107CC00000F08EF9071E06D0002303712378012BE4 +:107CD00008D0132B23D0A868002800D178E003F047 +:107CE00053FD75E06288029909A800F0A6F8029099 +:107CF000380000F08BF909AA2378387A0192002223 +:107D000031000092029A00F012F9380000F064F994 +:107D1000029B002BDFD0300000F080F9DBE7037816 +:107D2000032BD8D16288029909A800F0D6F8DEE7C3 +:107D3000122B13D1029909A800F0B5F8021EEAD15E +:107D400027498B88002BC6D0887909A9237801910F +:107D500061780091310000F0EAF8BCE7002302AA44 +:107D600093833000617809AAFFF72AFFB3E71D4B20 +:107D70000993F6E7042B02D09A1F012AABD8184AC0 +:107D8000043B9B00995A0029A5D0D2189078310065 +:107D90003A0000F0AEF800289DD13B88042B03D0B8 +:107DA00001213000FFF724FF012C04D1A86800282E +:107DB00001D003F0E9FC280003F026FC8020039B9F +:107DC0000002434018000DB0F0BD012800D182E749 +:107DD00001213000FFF70CFFEDE7C046E464FF1F10 +:107DE000D464FF1F010017000B7803704B784370B9 +:107DF000CB788A781B021343438070470A880300BC +:107E000002700A88120A42700A88012A06D14A883A +:107E100082704A88120AC27004207047022082428F +:107E2000FBD14A8804309A704A88120ADA708A882C +:107E30001A718A88120A5A71EFE710B504000120FE +:107E400082420CD94B780A781B0213432380834269 +:107E500006D1CB788A781B0213436380002010BDC3 +:107E6000022BFBD1CB788A781B02134363804B79BA +:107E70000A791B021343A380F0E70B8803700B8879 +:107E80001B0A43704B8883704B881B0AC3708B8816 +:107E900003718B881B0A4371CB888371CB881B0AC3 +:107EA000C3710820704703000120082A14D14A78C2 +:107EB0000878120202431A80CA78887812020243B4 +:107EC0005A804A790879120202439A80CA798879DD +:107ED000120202430020DA80704710B5040001202E +:107EE000022A05D100204B780A781B021343238015 +:107EF00010BDF8B5060010200F00150003F034FB8C +:107F000004000120002C0ED0A0230C222900238085 +:107F10006780201D002D07D003F0BEFB210030003C +:107F200003F0E2F90020F8BD03F06EFAF6E7F7B5CA +:107F30001E00009008AB142017001D78019103F07B +:107F400013FB041E12D0A2230370019B47704380D1 +:107F5000099B057146710C220830002B07D01900CF +:107F600003F09AFB2100009803F0BEF9F7BD0999D0 +:107F700003F04AFAF6E737B5041E0FD04388002B0A +:107F80000CD00025C1881323007A17220195009593 +:107F9000FFF7CDFFFF2365806372257037BD0000BA +:107FA00010B50C4904004A88002A09D08B89002B9F +:107FB00005D00020CB8A0222834201D010BD0122CD +:107FC00013000A20434300204032C854C81842809E +:107FD0000472F3E7B664FF1F002343800370704709 +:107FE000094B00211A0010B55C88002C06D01C79C2 +:107FF000844203D10A234B43D01810BD01310A3308 +:108000000329F1D10020F8E7B664FF1F10B5040082 +:10801000407A03F0E1F9FF23637210BD704704302A +:1080200010B580B203F0D0FA002803D004214942F1 +:1080300003F052F910BD000070B50025104CA06887 +:108040002580A581A580A84202D003F09DFBA560F4 +:1080500000250C4C0C4B606D1D80230058331D70A7 +:10806000A84202D003F090FB6565002560680028F7 +:1080700001D003F089FB013508340A2DF6D170BD1B +:108080007C65FF1F2065FF1F7065FF1F70B5041E14 +:1080900009D1054D2880A881A880A868002802D0B1 +:1080A00003F072FBAC6070BD7C65FF1FF0B54B88C0 +:1080B00085B00193002343600A7905000F00022A6E +:1080C00000D07BE0CA88032A17D98B685E781978BC +:1080D0003602DC78D8790E4399781B7A24021B0289 +:1080E0000C43034353495BBA0B80331D93421ED1AB +:1080F000042C04D0631F022B0ED9012015E0019A35 +:108100004D4B1201D35A002B06D00198FFF7BEFF4A +:108110004A4A1369013313610421B8682E812C8007 +:10812000494203F0D9F86860002005B0F0BD434D26 +:10813000042C06D0631F022B0FD9EB680133EB60D0 +:10814000DBE7019A3C4B1201D35A002B05D0019872 +:10815000FFF79CFF2B6901332B61374B30000293F3 +:10816000019B029A1B010193002301998C468B52BB +:10817000130063449C8003939E81FFF750FF039B91 +:10818000041E986016D00421B868494203F0A4F890 +:10819000FA880100043A200003F07EFA0199029A5D +:1081A000FB888A5A043B9B18029A8B522B68013336 +:1081B0002B60A2E7AB690133AB619EE71E4B0293D4 +:1081C000019B1E01029BF35A002B2DD002998C19A2 +:1081D000A068002828D0012A26D1FA889B189BB2D3 +:1081E0007352A189994217D39B1AC018B96803F03A +:1081F00053FA029BA289F35A934200D07DE70022F2 +:108200002B81A3882B80A3686B60029BF2520B4AE0 +:1082100053680133536070E7084A936801339360F1 +:108220000198FFF733FF68E7044A5369013353614C +:10823000F6E7C046E664FF1F7C65FF1FEC64FF1F86 +:1082400070B5051E15D10B4C0B4B1880230058330D +:108250001870606D002802D003F096FA656525005D +:1082600050356068002801D003F08EFA0834AC4223 +:10827000F7D170BD2065FF1F7065FF1FF0B51700B7 +:10828000A12285B0920001934243394B06001B683E +:108290000C009B18D933FF331D78FDF741FF0430E4 +:1082A000854204DD3000FDF73BFF0430C5B2BD421E +:1082B00007D33A0000213000019B03F0D5F905B047 +:1082C000F0BD2900380003F017FA2300C6B250337E +:1082D0001E700393019B29006365380002F0DCFFE8 +:1082E000CBB20293002B02D0039B01361E700026F6 +:1082F0002300503303931B78B34204D8606D0028E9 +:1083000031D10020DBE7029A2800002A04D0013B8B +:108310001000B34200D02800F700E719387003F0CE +:108320008BFA786000280ED03A78019903F0B4F9FE +:10833000019A3B780136D3180E4A0193D369F6B2FD +:108340000133D361D4E7039B18706065A74205D160 +:10835000084A1320D36A0133D362B0E7606803F0A0 +:1083600013FA0834F2E703F00FFA00236365C8E755 +:108370003409FF1FEC64FF1FF7B50D00070004214F +:10838000686802F0A9FF2B89040003702B891B0A7F +:1083900043702B8883702B881B0AC3702E8902259B +:1083A0000436F6B2F42E15D81B4B9F4214D10C2084 +:1083B00003F0DAF81135011E0CD0902303708E3BC8 +:1083C0000371043B4380154B8460C680187802F02B +:1083D0008BFF00252800FEBD5C237B43104AD31889 +:1083E0000093583301931B78002B0FD10300320008 +:1083F00038000099FFF742FF019B05001B78002B16 +:10840000E8D13800009903F05FF9E3E7054A072552 +:10841000536A01335362DDE7FEFF0000E464FF1F8F +:108420002065FF1FEC64FF1FF0B587B00090172098 +:108430000F0016000193FFF7F2FD1325041E19D05B +:108440000C98031E02D00199201D9847030AE3707F +:10845000052302AAA07004309081277000986670EE +:1084600003A993800494FFF787FF051E02D0200024 +:1084700003F08AF9280007B0F0BD0000F0B587B01E +:108480001F000CAB1B780391059301210DAB060077 +:108490001C78049200F0D6F81425002821D0200082 +:1084A000FFF77EFD0135041E1BD01149059B0A789C +:1084B00003700132D2B2131EC68001D101231A000B +:1084C0000B7022713000049B03990097FFF7ACFFFB +:1084D000051E09D1230021000648074A093302F08E +:1084E000DBFF280007B0F0BD002363802370F8E7AE +:1084F000E864FF1F777F001130750000F8B50500B4 +:108500000E00064C064F2368002B02D031002800D5 +:1085100098470434BC42F6D1F8BDC0468C65FF1FB5 +:10852000A065FF1F0123064A5B425380002313719D +:108530005362044A136053609360D36013617047C1 +:10854000A065FF1F8C65FF1F0200002310B50649C0 +:108550009C000859002801D1625010BD0133052B41 +:10856000F6D11320F9E7C0468C65FF1F034A5388F4 +:10857000181A43425841404210407047A065FF1FFF +:10858000F0B585B002930AAB1F780CAB1B88009046 +:1085900008000E0001920393FFF7E8FF0500112089 +:1085A000002D1BD10E48FFF7E1FF04001520002C21 +:1085B00014D006220B99A771E01D03F06DF8019B02 +:1085C00030002371029B29006371009B6680237039 +:1085D000039B6562E381FFF791FF280005B0F0BDC2 +:1085E000FFFF000010B5FFF7C1FF04000220002CC0 +:1085F00012D060880121FFF781FF606A002801D056 +:1086000002F082FE28220021200002F0FDFE01235C +:1086100000205B426380207110BD000030B5074A26 +:10862000074C5588010013780020A54204D05B1A3E +:1086300059424B415842104030BDC046A065FF1F13 +:10864000FFFF0000084A10B501230C00904208D03B +:10865000FFF78CFF031E04D0037923405A1E934179 +:10866000DBB2180010BDC046FEFF0000024B1879B7 +:10867000431E9841C0B27047A065FF1F70B504004B +:108680000D001600FFF772FF002804D10D4B9C422D +:1086900000D0143070BD416A03790520002907D04D +:1086A00012221A40102A02D10520002EF2D10F20EA +:1086B000DB06EFD5897E0C20A94289414942494217 +:1086C0000840E7E7FEFF0000030010B5002800D1D6 +:1086D00010BD0348034A41889142F9D09847F7E713 +:1086E000A065FF1FFFFF0000002330B5C45CCD5C18 +:1086F0006C40D4540133102BF8D130BD0F2300222D +:1087000010B5C45C64002243CA54C25CD209013B68 +:10871000F7D210BD0200010010B52032103102F076 +:108720003BFF10BDF0B58BB00390102005931700F0 +:10873000049102F011FF0090102002F00DFF009B49 +:1087400013240190002B05D000280CD1132400988D +:1087500002F0DAFD019B002B02D0180002F0D4FDDC +:1087600020000BB0F0BD102002F0F6FE0600102035 +:1087700002F0F2FE13240500002E00D1AEE0002826 +:1087800019D01022002102F03FFE32002900039888 +:1087900002F002FF041E0ED133787F2B51D8300037 +:1087A0000099FFF7ABFF009B1B787F2B53D80199F3 +:1087B0000098FFF7A3FF300002F0A6FD002D02D0C5 +:1087C000280002F0A1FD002CC1D1102002F0C4FE4F +:1087D0000600102002F0C0FE0290002E7CD000287F +:1087E00078D03A000F3223000125121105D00F3343 +:1087F0003B4015B25A4253411BB26A1E1201002B74 +:1088000033D0049BD2B298180099029AFFF76CFFFC +:10881000013D10220021300002F0F6FDADB2049FB0 +:108820002D017D19AF4242D0002C33D0300002F030 +:108830006BFD029B002B00D189E7180002F064FD5C +:1088400085E729003000FFF759FF28002549009AE5 +:10885000FFF74AFFA7E729000098FFF74FFF28001E +:108860002049019AFFF740FFA5E70F210F40049927 +:108870008A18D9B28F4208D9D15C06A8195401339D +:10888000102BF6D1029A0199C0E7791A484241416A +:10889000C901F2E73900300006AAFFF725FF3200D0 +:1088A000039806A902F078FE10370400BAE7002CFE +:1088B000BCD13000029906AAFFF716FF320006A9C4 +:1088C000039802F069FE082204003100059802F0C6 +:1088D000E3FEABE71324A9E71324AAE7002800D09E +:1088E0006EE733E764BA0011F0B58BB00F001600E5 +:1088F0000225009000283FD0002A3DD00B1DDBB29E +:108900001800029302F028FE1135041E34D0FDF742 +:1089100047FD05003A000099201D02F095FCEBB2DE +:108920000393E3702B0CDBB22F0A00936370FFB24A +:108930002B0E2370A7700193FDF72CFD1022010070 +:1089400006A802F081FC2100029A04AB06A8FFF7FA +:10895000E9FE051E0DD1039B08223370009B04A97C +:10896000B370019B7770F370301D02F06DFCFDF762 +:108970001DFD200002F0C8FC28000BB0F0BDF0B5D2 +:108980008FB00D00149E039004920593002A03D12A +:10899000022420000FB0F0BD002EF9D00398FFF79D +:1089A000E5FD1424071EF4D07278337812021A43BE +:1089B000B3781B041343F27812061A43036A019238 +:1089C000934201D30133E3D1002D03D03B7901243D +:1089D0009B07DED50822002106A802F015FD059BA5 +:1089E00013240433DBB21800029302F0B5FD051E18 +:1089F000CFD0059A0499043002F026FC04223100FD +:108A0000280002F021FC3900102210310AA802F0DF +:108A10001BFC2900029A06AB0AA8FFF783FE041E7E +:108A20000FD1082206A908A802F00EFC0822311D69 +:108A300008A802F0A1FE012807D101990398FDF7CB +:108A4000C9FC280002F060FCA3E70124F9E700005C +:108A500070B51C4C05002368181E10D0002D14D1D1 +:108A60001A78002A0CD1981C083202F015FE02F088 +:108A70002BFD0135002808D123681D70012070BD31 +:108A80000A331800082202F007FE2368002BF5D0F5 +:108A9000122002F069FD061E0DD0C123216803706B +:108AA000457002311022023002F0F6FD23683100D9 +:108AB000587802F019FC206802F026FC002323609D +:108AC000DCE7C046C865FF1FF8B504002020FDF7AD +:108AD00055FB0D4EA700BB590500002B0DD00028FB +:108AE0000BD0D878FF2809D108492A000C55F35932 +:108AF00007480333611802F0CFFCF8BD290002F0EB +:108B00007BFB0028F0D1F8E7E465FF1FCC65FF1F71 +:108B1000219D001170B5064D84006359002B05D0CE +:108B2000D87802F059FCFF226359DA7070BDC04654 +:108B3000E465FF1F70B506008CB00C001500002125 +:108B40003022684602F060FC31001022684602F0D4 +:108B50007BFB1D2021000322684402F075FB684660 +:108B6000FFF7D8FD2D21040003222800694402F0FC +:108B70006BFB20000CB070BDF0B50700160097B07D +:108B800001931CAB1D7830221EAB00910AA8002176 +:108B90001C7802F039FC102239000AA802F054FBBC +:108BA0001022002102A802F02FFC0722310002A8A7 +:108BB00002F04AFB072202AB9818631E9C41019900 +:108BC00002F042FB02AB9C732B005A1E934102AA97 +:108BD000D3730021102206A802F016FC06221D996C +:108BE00007A802F031FB1A2002ABC01806221F9919 +:108BF00002F02AFB102200990EA802F025FB102299 +:108C000002AB0EA908781C78013A6040D2B2087015 +:108C100001330131002AF5D10AA8FFF77BFD1022AC +:108C200012A904000EA802F037FD102206AB0EA90F +:108C300008781D78013A6840D2B2087001330131DA +:108C4000002AF5D10AA8FFF765FD044310222098F9 +:108C5000E4B212A902F0F8FA200017B0F0BD70B526 +:108C60000E0014008CB00100102268461D0002F0B6 +:108C7000EBFA3100082204A802F0E6FA21000822EB +:108C800006A802F0E1FA6846FFF744FD040010224E +:108C9000280008A902F0D8FA20000CB070BDF8B581 +:108CA00006000D0000243719AC4200D3F8BD02F0D5 +:108CB00063FC030A3B70631CDBB201379D4203D99E +:108CC0000234F054E4B2EEE71C00EDE773B50600A1 +:108CD0000C000225002819D0002917D0032101A873 +:108CE000FFF7DDFF6B469A793F231A4001331343A8 +:108CF0006A463000937101A92200FFF71BFF051E91 +:108D000004D10322E01C01A902F0C6FC280076BDB4 +:108D100003785807DA08C00FD20080009B07104381 +:108D20009B0F1843C0B2704707230B40C908C90006 +:108D30000B4303707047000070B50400FFF7EAFEB4 +:108D4000134DA4006359002B21D0186A002801D0CC +:108D500002F0DAFA2B59986E002801D002F0D4FA0A +:108D60002B59D86E002801D002F0CEFA2B59186F7B +:108D7000002801D002F0C8FA2B59586F002801D002 +:108D800002F0C2FA285902F0BFFA00232B5170BD3D +:108D9000E465FF1F0E4B8000C35870B50C00002B1C +:108DA0000FD09D68002D0CD02B78201D0B706B7898 +:108DB0004B70A97CFFF7B8FF2B7E23726B69E360D1 +:108DC00070BD10220021200002F01EFBF8E7C04613 +:108DD000E465FF1F014B18607047C046E065FF1F48 +:108DE000074A03008000825810B5002A06D0D088B8 +:108DF000984203D1012901D1FFF79EFF10BDC04663 +:108E0000E465FF1FF0B5264E95B087000B93BB5964 +:108E10000500099112200A92002B31D0D888FFF763 +:108E2000A5FB04001420002C2AD0280010A9FFF76D +:108E3000B1FFBB591E781D6A002E23D00895FDF79F +:108E4000EFFA07000020FDF7F1FA0790A379E61D7D +:108E5000069310AD0CA9089800F0E2FA0EA92800BC +:108E600000F0D7FA0B9B0A990493069B099802938A +:108E7000079B0396019300970EAB0CAAFFF77CFEAD +:108E800015B0F0BDFDF7CCFA06903000FDF7CEFA34 +:108E9000E31DA779079310AB06000893DAE7C046F5 +:108EA000E465FF1F30B50C4C85002A59030085B0DE +:108EB0000120002A0ED018006946FFF76BFF2B59DE +:108EC0001A78D888054B002A00D1054B6A4607213D +:108ED00000F0D9FB05B030BDE465FF1F139400110D +:108EE0002194001130B5094C8500295985B0102214 +:108EF0006846253102F0D0FB2A591121044BD08855 +:108F00006A4600F0C0FB05B030BDC046E465FF1FF7 +:108F1000BD94001130B5094C8500295985B0102247 +:108F20006846353102F0B8FB2A591121044BD0882C +:108F30006A4600F0A8FB05B030BDC046E465FF1FDF +:108F4000FB940011F7B54D4F86001020F4590D0029 +:108F500002F002FBF3592062186A132200286CD039 +:108F6000033A29009C6802F097FBF3591A780192A2 +:108F7000002A58D11E6A227D317B9446514001223D +:108F8000019F114201D167461740217D914339432A +:108F90002175377B4F40BC4660460027800701D4CF +:108FA0004F081740012102208F40227D82433A431F +:108FB0002275377B5740BC4660460027400701D4E6 +:108FC00097080F400420227DBF0082433A43227558 +:108FD000627D002794466046727B42400A4201D17E +:108FE00067460F400121627D8A433A436275777B71 +:108FF0005740BC4660460027800701D457080F4001 +:109000000220627D7F00824317436775767B0022D2 +:109010007E40760701D4BA080A400426617D92009A +:10902000B1430A4362756A78002A08D06278002A40 +:1090300005D005220533DA7700221000FEBD042298 +:109040002979114205D1A17C114202D10533033A9D +:10905000F1E7019A21782C78002A02D10A00210038 +:10906000140018220429E8D8042CE6D8052060430F +:10907000034A05331218525CDDE7C046E465FF1F62 +:1090800074BA001110B50A001121024B00F0FBFA6E +:1090900010BDC046579500110B0030B587B001AD2B +:1090A0002B806B4604001100981D082202F0F4FA90 +:1090B0002A000B212000024B00F0E5FA07B030BD7A +:1090C0007F95001110B50A001121024B00F0DBFA68 +:1090D00010BDC046D395001113B50B0011006A46B0 +:1090E00013706B4604000622581C02F0D5FA6A463B +:1090F00008212000014B00F0C6FA13BDF3950011C2 +:1091000010B50A001121024B00F0BDFA10BDC04697 +:10911000439600117FB505000B4BAA00D4580800F8 +:10912000002C0FD0666F237FE28821780396266F8C +:109130000296E66E0196A46E0094FDF709FC2800E5 +:10914000FFF7FAFD7FBDC046E465FF1F10B517218C +:10915000FFF7E0FF10BD000070B50A000D00064BE0 +:109160000221040000F08FFA060029782000FFF7A2 +:10917000D1FF300070BDC0462395001170B586B098 +:1091800000236A461370836804001D78681E0A284D +:1091900059D801A902F040FA060633373B3F43474E +:1091A0004B4F5300180000F042F9062312284BD011 +:1091B00000281BD16088FFF7D9F90823002813D0B5 +:1091C0004279002A47D1264B1A78072312070BD57C +:1091D000244B1A680723002A06D01668002E03D0F5 +:1091E000290001AAB04703006A4613706B461B783A +:1091F0006088002B2AD1FFF767FC06B070BD18000D +:1092000000F06CF9D4E7180000F087F9D0E71800F7 +:1092100000F093F9CCE7180000F0ADF9C8E71800AA +:1092200000F0C3F9C4E7180000F0F6F9C0E7180031 +:1092300000F0F6F9BCE7180000F013FAB8E71800E0 +:1092400000F013FAB4E707236A4613706946608892 +:10925000FFF782FFD1E70523012AC5D1024BB8E70A +:109260007164FF1FDC65FF1FE065FF1FF8B52C4F21 +:109270008600F35904000D00002B40D0DA888242AA +:109280003DD15A78062A33D11A78002A2ED00120EF +:1092900099681A6A097D014206D0157B054203D000 +:1092A00007225A700120F8BD0220014204D0157B2C +:1092B000054201D00922F4E70420014204D0127BC8 +:1092C000024201D00B22ECE7164B1B68002BE9D0C1 +:1092D0005B68002BE6D020009847BB5900215B78E3 +:1092E000122BDFD12000FFF715FFDBE70E4BECE779 +:1092F000112A04D1002900D032252900F2E7002DDF +:1093000008D12000FFF732F9002803D0102302799A +:109310001343037121002800FDF798FAC2E7C04605 +:10932000E465FF1FDC65FF1FE065FF1F70B50E4E93 +:109330008500AB590400002B13D01B78002B11D1F2 +:109340000A4B1B68002B04D05B68002B01D0200067 +:10935000984773595B78122B03D100212000FFF747 +:10936000D9FE70BD024BECE7E465FF1FE065FF1F0F +:10937000DC65FF1F094B8000C3581020002B0CD068 +:109380001A6A002A09D09B68002B06D0127A1B7E2D +:10939000101C9A4200D9181CC0B27047E465FF1F28 +:1093A00070B503000D0014000220002A30D00029FF +:1093B0002ED013700B78081D53704B789370FFF705 +:1093C000A7FCE070012002212B7A23716B7B034004 +:1093D00063716A7B0A401343042263716E7B1640FB +:1093E000334363716E7BF608F600334363712B7B66 +:1093F0000340A371287B014000200B43A371297B0C +:109400000A401343A3712A7BD208D2001343A371ED +:1094100070BD10B50A0001000120FFF7C1FF10BDAB +:1094200010B50A0001000220FFF7BAFF10BD70B5A9 +:1094300006000C000220002E30D000292ED07378B8 +:10944000201D0B70B3784B70F178FFF76DFC012293 +:109450003579257271794B10080013409340104004 +:109460000343881010408000C9080343C9000B4320 +:109470006373B1794B1008001340934010400343CD +:10948000881002409200C9081343C9000B432120F1 +:109490002373FCF773FE854201D2122070BD222097 +:1094A000257AFCF76BFE8542F7D823781820042B29 +:1094B000F4D86378012BF1D80020EFE7030010B552 +:1094C0000220002909D0002B07D00322481C0A7073 +:1094D00019000D3202F0E0F8002010BD0300022256 +:1094E000080010B5002B06D0002904D00E32591CFC +:1094F00002F0D2F80022100010BD030010B50220C7 +:10950000002909D0002B07D00422481C0A7019003A +:109510000C3202F0C1F8002010BD10B5FFF7DEFFDD +:1095200010BD03000220002906D0002B04D0052224 +:1095300000200A701B784B70704703000220002B3C +:1095400008D0002906D05B7800200B70013B082B67 +:1095500000D918307047030010B50220002909D047 +:10956000002B07D00622481C0A7019000A3202F0AC +:1095700093F8002010BD10B5FFF7B0FF10BD02003A +:109580000B00022010B500290ED0002A0CD00721B4 +:109590001970118859701188090A997011180822D8 +:1095A000D81C02F079F8002010BD03000A00022048 +:1095B00010B5002B0CD000290AD0997858780902F0 +:1095C00001431180901CD91C082202F065F800208C +:1095D00010BD030010B50220002909D0002B07D0D0 +:1095E0000822481C0A701900921802F055F8002051 +:1095F00010BD02000B00022010B500290BD0002A7C +:1096000009D009211970117818185970511C0622B7 +:1096100002F042F8002010BD10B5FFF75FFF10BD4B +:1096200002000B00022010B5002A09D0002907D043 +:109630005178197011180622581C02F02DF80020DC +:1096400010BD030010B50220002909D0002B07D05F +:109650000A22481C0A701900063202F01DF8002088 +:1096600010BD10B5FFF73AFF10BD02000B0002203D +:1096700010B5002A06D0002904D018005178FFF751 +:1096800053FB002010BDF0B585B017001E006A46E0 +:1096900006230500080091819380FEF7C0FC132487 +:1096A000011E02900CD03800B047041E05D12800DE +:1096B00001A9FEF76FFA041E02D0029802F064F8C6 +:1096C0002800FFF701FA200005B0F0BDF0B5040056 +:1096D0008BB0019115000021102202A801F094FE28 +:1096E000334EA700B85900283CD0C388A34239D1D3 +:1096F0000378002B36D14278062A18D102000100E7 +:10970000553235310C3006ABFFF7A9FA002829D1C4 +:109710002000FFF72FFE020006A902A801F0BCFFFF +:10972000200002A901F070FD01200BB0F0BD816E98 +:10973000002917D00B8A112A28D19D420ED10198F9 +:109740001231093A02F018F8012807D1BB5920005C +:109750009D6EFFF70FFE29000200DEE73221200098 +:10976000FFF7D8FC2000FEF701FF061E1BD0416A60 +:10977000002918D00B8AAB4215D10822019812316A +:1097800001F0FAFF01280ED1716A0AE09D42E9D189 +:1097900008220198123101F0EFFF0128E2D1BB59F4 +:1097A000996E8A7EB9E7200001F0EEFDBCE7C04665 +:1097B000E465FF1FF0B56B4D87007E5985B03378A7 +:1097C00002900393002B00D087E0B368346A0193C2 +:1097D0007078062817D101221B7D134202D0217B0D +:1097E000114218D10222134202D0217B114251D1E1 +:1097F0000422134203D0237B134200D08BE0019B51 +:109800005A7DEB5991E007380428F8D801F004FF9D +:10981000032E42678300B36E002B03D11C2001F09E +:109820009BFEB066EB599C6E002C1CD010220021D0 +:10983000200001F0E9FD0298FFF79CFD01002000E7 +:10984000FFF72DFA01F098FE208220000821123047 +:10985000FFF725FA0298FFF78DFDA076EB5921005E +:10986000D888FFF70FFC0822EB591CE0B36E002BE1 +:1098700005D01A00198AF0881232FFF70DFC022277 +:10988000019B197DEB5911423DD0207B10423AD00B +:10989000073208E0F488FCF7DBFD01002000FFF749 +:1098A00011FC0A22EB595A70029B9C002A595378EA +:1098B000073B042B11D8D088FEF758FE00284ED065 +:1098C000C3895A08D2182849029B0298CB542B59B5 +:1098D00041180433254801F0DFFD05B0F0BDFCF769 +:1098E0009FFD03000120834201D100200393EB5927 +:1098F000DE88FCF79BFD039902003000FFF7ECFBCC +:10990000019AEB59117D042211420CD0217B1142A6 +:1099100009D00B22C7E7F688FCF73CFD01003000B8 +:10992000FFF7EEFB6BE7019A527D01210A4204D05A +:10993000607B084201D00C22B5E702210A4204D024 +:10994000607B084201D00E22ADE704210A4204D018 +:10995000627B0A4201D01022A5E71222A3E7FA2275 +:109960005200B0E7E465FF1FE865FF1F2B9D001163 +:1099700010B5064B1A780423100018401A4200D084 +:109980000348FFF727FA002010BDC0467164FF1F8F +:109990003443FF1F70B50400FFF7D4FA051E43D10E +:1099A0002000FFF77FFA234EA400A0598268937C21 +:1099B000DB0708D50321036A1B790B40012B02D179 +:1099C000017F0B430377431DD97F8B1E022B0DD8DC +:1099D000022900D00121C088FCF790FF04213359EF +:1099E0001A7F59700A431A77280070BD01290CD1DB +:1099F00002231022437000210C3001F005FD305984 +:109A000010213530FFF74BF9EEE70529ECD10223A1 +:109A1000D118437010220C3001F03EFE042332595D +:109A2000117F0B431377EAE708251828DCD1053DA1 +:109A3000DAE7C046E465FF1FF0B58BB005914388B7 +:109A40007E4F9E00F45915000493002C15D1012976 +:109A500002D000200BB0F0BD101D57781678FFF72C +:109A600057F9EB68320002932B7A04990193009026 +:109A70003B002000FCF70CFFEBE7E388049A9342DD +:109A800001D00820E6E72378012B00D1D4E0059B24 +:109A9000581E092800D9CFE001F0BEFD05CE0A29E5 +:109AA000CC506C859AB229000498FFF773FFD1E778 +:109AB000200029001022453001F0EEFDB9594B7805 +:109AC000042B02D1013B4B70C3E70B000A00253386 +:109AD00035320C310498FFF795F90498FFF702FA34 +:109AE0000522431E9841BB59C0005A70B2E72000BE +:109AF00029001022553001F0CFFD049B4F4C9D00F2 +:109B0000295904980A0006AB55320C31FFF77AF94F +:109B100029591022453106A801F02EFE012808D14E +:109B20000498FFF7F7F90590002804D106222B5975 +:109B30005A7005988EE708230593FAE763780C2B93 +:109B40007AD1E36E002B03D11C2001F005FDE06605 +:109B5000BB59D86E00286FD01022290001F09CFD5F +:109B6000BB590498DC6EFFF705FC0D22A076BB59AB +:109B70005A706EE7E06E00285ED063780D2B5BD1E3 +:109B80002B8808220382A91C123001F085FDBB59E5 +:109B90009A68517D0222114226D0186A407B1042F9 +:109BA00022D00C32E4E763780E2B45D1236F002BD3 +:109BB00003D1162001F0D0FC2067BB59186F002894 +:109BC00003D01022290001F067FD0F22BB59CFE717 +:109BD00063780F2B30D1206F0622691C103001F002 +:109BE0005BFDBB599A68517D0422114203D0196A6A +:109BF000497B1142D5D100210498FFF78BFA28E761 +:109C0000636F002B0DD0BB59586F0028F3D0102282 +:109C1000290001F041FD0122BB5952425B6F1A61DC +:109C2000E9E7142001F098FCBB5960675B6F002BDB +:109C3000E9D126E72978DFE707200BE7E465FF1F76 +:109C400010B5064C207001F0FFFB06212078FDF7CF +:109C500091FF0348FEF778FC10BDC046F765FF1F73 +:109C6000E18D001100200BB270B50D00834216DAB1 +:109C7000264B187801F070FB041E0DD00378922B50 +:109C80000ED0A02B37D0224B1878FF283AD02100D5 +:109C900001F02AFB002835D180200002684070BD09 +:109CA00043780E2B0BD03E2BEDD18378052B12D0B1 +:109CB000082BE8D181798088FFF7D8FA08E0154BA6 +:109CC00082889A42DFD183681878591CFEF7C0FE5B +:109CD000002817D1D7E7104B1B785B0712D50F4B25 +:109CE0001B68002B0ED09B68002B0BD0C289811DF6 +:109CF00080889847ECE7FFF741FAA068002801D078 +:109D000001F042FD200001F07FFCC5E7F765FF1F71 +:109D10002D43FF1F182000007164FF1FE065FF1F27 +:109D200010B50078FFF712FA10BD10B50078FFF7F4 +:109D3000FDFA10BD0C234343084A10B59B185A681E +:109D4000002A03D0012901D1904710BD9B68002B48 +:109D5000FBD00029F9D19847F7E7C0461466FF1FEA +:109D600001238340094A10B5946B1C439463506BE4 +:109D700098435063D46B20009843012901D12000FF +:109D80001843D063116B0B43136310BD0080004078 +:109D9000F0B500240127154B85B0DA6B144E039201 +:109DA0001A6C0192DA64019BE3403B4217D0039D99 +:109DB000E5403D400295E5B202992800FFF7BAFF61 +:109DC000316A736A002908D03900002B01D002994A +:109DD00079402800FFF7C4FF01E0002BF9D10134DE +:109DE0000C36172CDFD105B0F0BDC0460080004016 +:109DF000F865FF1F064B01215A68C2400A4204D091 +:109E00001B68C3401800084070471B6DF9E7C04647 +:109E1000008000400122064B8240002903D0D9680F +:109E20000A43DA607047D9689143D960FAE7C046BF +:109E30000038004030B5032444430F4BE25C1B194B +:109E40009C785D7801232D1B0135AB40013BA3407D +:109E5000A140DB430C00122807D808499200521891 +:109E6000116819402143116030BD054A11680B404B +:109E700023431360F8E7C046BBBA001108F0004066 +:109E800014F00040C21F70B5D4B20623092C0BD8C1 +:109E90000125084C9540002908D00021FFF7CAFF92 +:109EA00023682B4323600023180070BD2368AB4355 +:109EB000F8E7C04600380040214BF0B51B185B782E +:109EC000022B21D1032444431E4A1F4EA35C1219C6 +:109ED0009478012215008540B76B013CE4B23D4304 +:109EE000A240B563194C122815D89B0000290CD14B +:109EF00017495B1899680A439A600123205C154A48 +:109F0000834011680B431360F0BD11495B189968D9 +:109F100091439960F1E70E4B00290DD159690A432D +:109F20005A61225C1328E8D00123203A93400A4961 +:109F3000086803430B60E7E7596991435961F0E70B +:109F4000F865FF1FBBBA00110080004000BB001184 +:109F500000F00040A0F00040A4F00040F8B500245C +:109F60001B4E1C4D1C4B1B5D012B1FD1194A9269C6 +:109F7000E2401A420BD00122B25693402200143A1A +:109F8000D2B2022A09D815494A6913434B610134F8 +:109F900002360C35172CE5D1F8BD0022B2560F4918 +:109FA0009200521891680B439360F0E7022BEED1B8 +:109FB000E7B23800FFF71EFF01235840C1B2380056 +:109FC000FFF77AFF3800FFF715FF6877DFE7C04635 +:109FD0008DBA0011F865FF1FF965FF1F00F0004002 +:109FE000012202388240054B002903D059690A43F7 +:109FF0005A617047596991435961FAE70038004046 +:10A00000F8B50E0001210F008740114A0400D36803 +:10A01000FD43BB43D360831E8B4201D8FFF7E0FFB3 +:10A0200000212000FFF72EFF0A4A0B4B5168012E3A +:10A0300005D139431B1951605E700020F8BD2940DD +:10A04000516002221C1962709A6915409D61F4E703 +:10A050000038004000800040F865FF1F012210B565 +:10A060008240074B002906D019680A431A60012173 +:10A07000FFF7C6FF10BD196891431960F7E7C046A6 +:10A08000008000400C2370B5002543430A4A290094 +:10A090009B181D70094B04001B185D70FFF7B0FF83 +:10A0A0000123A340064928000A681A430A600549AB +:10A0B0000A689A430A6070BD1466FF1FF865FF1FA7 +:10A0C000348000403080004070B504000E00FF284E +:10A0D00013D003250540FFF7D5FF084AA3089B00CE +:10A0E0009B183F22ED00AA40AE4019682000914322 +:10A0F000314319600121FFF78DFE70BD1838004013 +:10A10000F8B50C244443134B0500E4186368002B96 +:10A1100003D1A3681220002B1AD0022201270E4B74 +:10A1200000215B195A7028002770FFF769FF6368E8 +:10A130001E1E08D0A3683E00002B04D02800FFF7A5 +:10A1400059FE4640F6B228003100FFF709FE002014 +:10A15000F8BDC0461466FF1FF865FF1FF7B5C420A1 +:10A16000FF222B4B80001958002491433F3A0A43A9 +:10A170001A508022274F5202274E1A60274B1D5D2E +:10A18000002D21D0A31E012B03D80121E0B2FFF73F +:10A1900027FF012D18D11F4B9B69E3402B4213D0A1 +:10A1A000E3B218000193FFF725FE01000198FFF7C5 +:10A1B00055FFE3B2143B022B1DD801217156184AFA +:10A1C0008D405369AB4353613B7F002B0DD0E5B20B +:10A1D0002800FFF795FF2800FFF70CFE7B7F0100AA +:10A1E000834202D02800FFF7A5FD01340C37023668 +:10A1F000172CC3D1F7BD012100237156F3568D40B2 +:10A20000074A9B009B189A68AA439A60DCE7C046FD +:10A2100000E100E0F865FF1F8DBA0011F965FF1F2E +:10A2200000F0004010B501210400FFF7E9FE012312 +:10A23000044A002011194B70A34091690B439361AC +:10A2400010BDC046F865FF1F70B50E001500040074 +:10A25000FFF718FF0C236343094A20009B189D60F9 +:10A260005E60FFF74DFFF021064B074A8900051E8F +:10A270005A5002D02000FFF705FF280070BDC046ED +:10A280001466FF1F0000FF1F919D001170B5134D54 +:10A2900007202C78002C1FD1982221005200280082 +:10A2A00001F0E2F80123C420FF222B700C4B800048 +:10A2B0001C635C630B4B1C605C600B4B1958914337 +:10A2C0003F3A0A431A50802252021A600D20074A70 +:10A2D000074901F091F8200070BDC046F865FF1FE6 +:10A2E00000800040A0F0004000E100E05DA100110E +:10A2F0005D9F0011030010B50620072B09D8054A01 +:10A30000137001F091F8D7210020034B034A890014 +:10A310005A5010BD5C43FF1F0000FF1FD91AFF1FDA +:10A3200070B51D0002240C2910D8094ACA40D20772 +:10A330000CD5FBF72FFF041E08D1059A04992800BD +:10A34000FBF744FFFCF7B2FDFFF712FB200070BDE6 +:10A350001210000030B50D7802232C009C431842E7 +:10A3600001D02B431C0008252300AB43284201D019 +:10A370002B00234320241D00A543204201D01C4371 +:10A3800025002A230D70184204D011781E3B0B4380 +:10A39000137030BD0028FCD10C2113788B43F7E7F4 +:10A3A000F8B51D0006AB1B88140007AA0E000B2091 +:10A3B0001778002B27D10A78022A49D14A685078A9 +:10A3C00011780002244A08438018042840D801F07C +:10A3D00023F903121D1B2300F06801F03DF9021C54 +:10A3E000C0B2B84200D93A1CD2B22000F1682A802B +:10A3F00001F052F906E00222F3681B882A802370DC +:10A400001B0A63700020F8BD0622EEE701232B80B3 +:10A41000F3681B782370F5E7F368002B16D0082249 +:10A420002A801A8822701A88120A62705A88A270CA +:10A430005A88120AE2709A8822719A88120A627106 +:10A44000DA88A271DB881B0AE371DBE72B80D9E78E +:10A4500001202B80D7E7C04600D6FFFFF7B51600D6 +:10A460000A781D0008AB1F880C000123022A18D1AE +:10A470004A685078117800022B4A08438018032854 +:10A480000FD801F0C9F802254439E06801F0E4F87A +:10A49000C0B20723B84204D37B190193152B02DD08 +:10A4A0000D231800FEBDE0682A003100C01901F03C +:10A4B000F3F86B4600209B88E268D0541B4B1B6866 +:10A4C000834203D01B68834200D098470023E8E70B +:10A4D0000B23002FE5D1022DE2D1737832781B02D5 +:10A4E0001343E2681380114B1B68002BEED01B68EE +:10A4F000002BEBD00120E8E70B23002FD1D1062D54 +:10A50000CED12A003100E06801F0C6F8DEE70B2367 +:10A51000002FC6D1012DC3D132787533012AC0D89E +:10A52000E3681A70D2E7C04600D6FFFF0468FF1F39 +:10A5300070B50C001500072837D801F06DF8041429 +:10A5400036361B36242E182015290BD8184E162205 +:10A550000021300000F058FF22002900300001F0F7 +:10A560009BF8002070BD18200229FBD11288114BE6 +:10A570001A80F6E718200829F4D10A000E482900AD +:10A5800001F0B2F8EDE718200129EBD10B4B107860 +:10A590000B49DA69FFF7DEFEE3E718200129E1D174 +:10A5A000064B10780749DA6BF4E70220DAE7C04679 +:10A5B000EC67FF1FDA43FF1FD043FF1F6043FF1FFD +:10A5C0008843FF1FA843FF1F030010B50020DB07CF +:10A5D00004D50721024A034800F08CF810BDC0469C +:10A5E00018BB00116043FF1F054A030010680028D4 +:10A5F00003D082889A4201D1806870470068F6E7EC +:10A60000FC69FF1F0A88030008009A4204D08A8868 +:10A6100004309A4200D0002070470000F8B5F222C2 +:10A6200000230D4F0D4E7968050042433370994267 +:10A6300000D07B600A4C0021200000F0E5FE0023E2 +:10A640001A007C60AB4202D100203370F8BD0133A8 +:10A650002280DBB2F234F5E7F46AFF1FF26AFF1FD3 +:10A66000006AFF1F73B56B4601900600684615002F +:10A670001980FCF74DFF041E11D1002D0FD07689F3 +:10A68000002E11D00C2000F067FF00280ED0084AE1 +:10A690000460136886808560002B02D11060200062 +:10A6A00076BD1A001B68F7E70224F8E71324F6E7E3 +:10A6B000FC69FF1F012100220A4B10B549420A4CD8 +:10A6C000198099809A719A70084B20700120198026 +:10A6D0005A60FFF7A3FF2078FCF778FF0448FDF7E6 +:10A6E00033FF10BD0C68FF1FFC6AFF1FF46AFF1FD9 +:10A6F000A1A70011022310B5002802D0FFF7B2FF76 +:10A700000300180010BD0000030010B50020DB0797 +:10A7100004D50421024A0348FFF7A4FF10BDC04638 +:10A720002CBB0011E043FF1FF0B50E2687B003934A +:10A730000CAB1F8802ABF61805000800310002922E +:10A74000FDF768F804000120002C0FD03088FFF7D7 +:10A750004BFF03000E20002B08D05E68002E05D0B2 +:10A7600021002800039B029A0097B04707B0F0BD74 +:10A770000A4B10B5984207D10122002352420A80A9 +:10A780008B708A808B7110BDFFF73CFF0028FAD0D8 +:10A7900001235B42038000238370F4E7FFFF000086 +:10A7A000F8B5050001290AD1134E00243388F22799 +:10A7B000AB4219D028001149FFF7DAFF06E0022961 +:10A7C00004D10139FDF73EFF0028EDD0F8BD3B0074 +:10A7D00063437268D018D35A002B09D03A00002185 +:10A7E00000F012FE0134E4B2054B1B78A342EED810 +:10A7F00001235B423380DDE7F46AFF1F0C68FF1F13 +:10A80000F26AFF1F10B5FFF7FDFE03000020834230 +:10A8100000D0987810BD0000F0B589B01C000EABD8 +:10A8200080CB03901E8810AB1B78049202930B7AA6 +:10A830000D00DB0616D42B780593022B24D0049848 +:10A84000FFF7D2FE002812D003689C46002B0ED0E2 +:10A85000029B2200019329003B0064460398009666 +:10A86000A04705E00498FFF7BFFE002802D10E20A4 +:10A8700009B0F0BD8368002BF9D00A2229000398A3 +:10A8800098470028D7D0F3E76B6858781A786B4B55 +:10A89000000210439842D2D8043B984210D2684B31 +:10A8A000984242D015D8674BC0180128C7D80B2052 +:10A8B000002EDDD1EB681A7859683A80200028E034 +:10A8C000614BC018032800D979E000F0A5FE846A26 +:10A8D000789E5E4B9842B2D10B20002EC8D1012346 +:10A8E0003B80EB6831001B7823706889013080B2AF +:10A8F000FCF790FF3A88031E0ED0017802328A18C6 +:10A900003A80428962704289120AA27059680278BC +:10A91000E01C00F0C1FE06E004323A80310004225F +:10A92000601C00F071FD0020A2E70B20002E9FD1DB +:10A93000EB6807A91E8804233B80330A3000267089 +:10A940006370FCF767FF051E28D004AB9A890E23BD +:10A9500004A95B183E49C668FCF7D0FF00280BD15C +:10A960002B783C486A680599FBF786FB002803D1E1 +:10A97000012304AA5B42D3813278022A06D171688E +:10A98000201D00F089FE3B8802333B800E2304AA81 +:10A990009B181B88A3701B0AE370C4E704ABDE811D +:10A9A000F4E70B20002E00D062E7E9680398FFF778 +:10A9B00029FF02233B802070000A6070B3E70B2060 +:10A9C000002E00D054E70222EB681B883A802370E7 +:10A9D0001B0A6370A7E7E86800F03EFEC2B20300FE +:10A9E0000720B24200D243E70DD00299DBB27118C2 +:10A9F000994202DB921BD3B20293029BE9681A00D0 +:10AA00003B8089195AE70023F6E70B20002E00D07F +:10AA10002EE70722EB683A801A7822705A78627023 +:10AA20005A88A2705A88120AE2701A792271DA885A +:10AA30006271DB881B0AA37175E7C0460429000018 +:10AA40000228000000D8FFFFFFD6FFFF0328000008 +:10AA5000FFFF00005CBA0011F0B58DB06B4600201E +:10AA6000089120229B5E83423DDAA64B187800F0C5 +:10AA700073FC071E32D00378B02B2CD1007902383A +:10AA800016281FD800F050FE17001E001E001E00E2 +:10AA900031001E0096001E001D011E0052011E0006 +:10AAA00073011E00CD011E0050021E001E001E007C +:10AAB0008E021E00E302944B94491B8878880B8019 +:10AAC000FBF71AF83800FCF79BFF914B1B68002B33 +:10AAD00001D038009847380000F096FD8020089B90 +:10AAE0000002434018000DB0F0BDEE22002187485F +:10AAF00000F08AFC0BAA3B7B7989388900923A00E6 +:10AB00000D32FCF79FFD0400804B1B78002C3FD1D9 +:10AB100046E0804B788805937F4B4100CB5A0BAEC3 +:10AB2000073BDBB232880293002301937B4B210069 +:10AB300006930093059BFFF76FFE744D002810D11C +:10AB4000069B3A8A1B889A420BD13800059912302D +:10AB500000F012FE002804D02B7862899B00EB18CD +:10AB60005A80162306A81B18328820007989FCF722 +:10AB7000C5FE2B7804009A00AA1851880029C3D07A +:10AB80000133DBB22B70002807D006A9C98A918057 +:10AB9000634A12889A42BCD802E00121494291805E +:10ABA000002B04D059497888FAF7DAFF8AE73E8902 +:10ABB0000A2479E000253E89574B06937B88069A44 +:10ABC0005B009B5A033B9D4202DB002DF0D05BE013 +:10ABD000162206A812183B7B798900923A003000B1 +:10ABE0000D32FCF72FFD0590002858D04689017AD8 +:10ABF0007888FCF7F1FC041E44D1464B7888079313 +:10AC0000069B4100C95A454B0439C9B206AAD28AEB +:10AC100006930291019400930599079BFFF7FCFDB1 +:10AC2000041E2FD1069B39491A88931C002D26D16A +:10AC30004B807988384B4900CB5A5119033B8B42E2 +:10AC400020DD059B31485B8941190B71A91C013539 +:10AC5000C9B2EDB2059145191B0A2B71059B2D490F +:10AC60000433181800F018FD2C4B059A1B88D318D4 +:10AC7000DDB22C4B9E4205D00136B6B29CE7498826 +:10AC80009942D6D0002D0CD0204C2800618800F0CD +:10AC900083FB207021007888FAF772FF12E7059C89 +:10ACA000F0E7002C00D183E77B78142B00D109E773 +:10ACB00016493B794E800B700C717888FAF712FFB9 +:10ACC00000E7162406ABE41821003889FCF7A2FD42 +:10ACD000011E00D1B7E1788822880F4C45002C5B1B +:10ACE0000A4D013CE4B2029400240F4B01940095FC +:10ACF000FFF792FD041E00D014E129007888FAF7CE +:10AD00004FFFDFE6FC6AFF1FCC42FF1F1468FF1FE6 +:10AD10000868FF1F0869FF1F4464FF1FF869FF1FD1 +:10AD2000CA42FF1FFFFF00001668FF1F162406AB74 +:10AD3000E41821003889FCF76DFD011E00D182E185 +:10AD400078882288AE4C45002C5BAE4D013CE4B2C5 +:10AD500002947C89AC4B01940095FFF75DFD041EC5 +:10AD600000D0DFE029007888FAF724FFAAE6002562 +:10AD7000A44B1D803B00F6331B78A24A78880792CB +:10AD8000AB4208D99E4B12880693069943005B5A42 +:10AD9000013B9A4203DB0799FAF716FF92E6162465 +:10ADA0006B00FB18059306ABE418059B210018897E +:10ADB000FCF730FD011E03D1059B01241E8973E7BA +:10ADC0007888924B2288069C099343001B5B904E27 +:10ADD000013BDBB20293002300960193099BFFF72E +:10ADE0001BFD041E02D0059B1E895DE77B88069A29 +:10ADF0005B009B5A079A108832881218934202DC33 +:10AE00001B1A013B33807F4C0230328809990019AC +:10AE100000F042FC2388328801359B182380EDB274 +:10AE2000A8E70BAA3B7B7989388900923A000D325A +:10AE3000FCF708FC00250590059B002B04D10A2493 +:10AE4000002D00D16EE060E0059B7888197AFCF750 +:10AE5000C3FB0100041E63D1694C6C4B78880694D7 +:10AE60000993069B4400E45A694B063CE4B20BAEDE +:10AE7000328807930294019100930599099BFFF78B +:10AE8000CBFC041E4CD1079B5E491B881A1D002D6C +:10AE900030D14A80059B5B4C5A8963191A716B1C2F +:10AEA0009BB2E318120A1A71162306A832881B18DF +:10AEB00079890598FCF722FDFF21AA1C2E1D033578 +:10AEC0000B00059092B2B6B2ADB2002803D006AB2B +:10AED000DB8AD9B21B0AA218651911712B714C4D6E +:10AEE000301D2A884949201800F0D6FB2B88F61817 +:10AEF000B5B2A1E74988914207D17A8806995200F4 +:10AF0000525AEB18053A9A42C4DC3E4C280061883C +:10AF100000F0F2FB207021007888FAF75FFED1E59F +:10AF2000002DF2D13E89BFE6162606ABF618310099 +:10AF30003889FCF76FFC3D000400FA3500282DD05D +:10AF4000037A9B060CD400227B8939897888009289 +:10AF50003A000C32FFF7E8FB041E10D03E8915E0E2 +:10AF60003088FFF741FB00281AD08368002B17D0E8 +:10AF70002100122278889847041EE4D0EEE72B784F +:10AF8000002B02D17888FAF739FE00262B78002BA7 +:10AF900000D097E5002C00D194E585E60124DDE79B +:10AFA0000E24DBE7162506ABED1829003889FCF7DF +:10AFB00031FC041E47D0037A9B0611D4154A7B88C6 +:10AFC0001188994203D01448814207D11380134B52 +:10AFD000F2261D780023D9B2A94221D30924A1E782 +:10AFE0002888FFF701FB00282FD08368002B2CD086 +:10AFF0002100122278889847041EDFD092E7C046CD +:10B000004464FF1F1468FF1F1668FF1F0869FF1FB5 +:10B01000F869FF1FF46AFF1FFFFF0000F26AFF1FBD +:10B0200031005943546801336018615A0029D2D164 +:10B030003C0008342100F22200F02EFB2100788829 +:10B04000FAF7E4FD3EE501246CE70E246AE71D4BA8 +:10B050001A887B889A4231D07888FAF7E1FD31E589 +:10B06000F223059851684343CD18C95A00291FD0CF +:10B070003B7A012B0BD16C88AB887888AA1D009491 +:10B08000FFF752FB041E02D000233B722E88F222EF +:10B090000021280000F0B8F900232B80059B013324 +:10B0A000DBB20593084B05991B78064A8B42D7D82B +:10B0B00001235B421380002CCED0F5E5002634003E +:10B0C0000596EFE7F46AFF1FF26AFF1F70B50400F0 +:10B0D0000E001500FFF796FA031E08D1310005484F +:10B0E000FFF790FA03001120002B02D01C800020F3 +:10B0F0009D7070BDFFFF0000F8B50B4F06003B7858 +:10B100000D001400FF2B0ED00A2000F02DFA011EB6 +:10B1100009D0B1230380002346800371C5800481D8 +:10B12000387800F0E1F8F8BD2144FF1FF7B50F00B3 +:10B1300008A90600088809A90B240988002821D13C +:10B140000234022B1ED1557813782D021D432B009B +:10B150008B4301937334002B14D1FB68300019002A +:10B160000093FFF74FFB019C85420BD02A00300073 +:10B170000099FFF7ABFF041E04D12A003000798943 +:10B18000FFF7BAFF2000FEBDF0B50E7885B0039042 +:10B190000AA805880120022E0DD14C682778647812 +:10B1A00024023C43054FBC4205D10398DBB2019613 +:10B1B0000095FFF7BBFF05B0F0BDC04602290000B7 +:10B1C000034B10B51B68002B00D09847FEE7C04624 +:10B1D000006BFF1F07B501A8FFF7F2FF044A0548FF +:10B1E0000021121A00F040F9F8F704FBFEE7C04610 +:10B1F000046BFF1F2444FF1F01B40248844601BCB6 +:10B20000604700BF5147010001B40248844601BCB9 +:10B21000604700BF311B000001B40248844601BCF6 +:10B22000604700BF193BFF1F01B40248844601BCC0 +:10B23000604700BF193AFF1F01B40248844601BCB1 +:10B24000604700BFC51D000001B40248844601BC30 +:10B25000604700BF4551010001B40248844601BC6B +:10B26000604700BF1D4B010001B40248844601BC89 +:10B27000604700BF8538FF1F01B40248844601BC07 +:10B28000604700BF456B010001B40248844601BC21 +:10B29000604700BFC52DFF1F01B40248844601BCB2 +:10B2A000604700BF090E000001B40248844601BC9B +:10B2B000604700BF7918000001B40248844601BC11 +:10B2C000604700BF792DFF1F01B40248844601BCCE +:10B2D000604700BF691F000001B40248844601BCFA +:10B2E000604700BF5549010001B40248844601BCD3 +:10B2F000604700BF594F010001B40248844601BCB9 +:10B30000604700BFC521000001B40248844601BC6B +:10B31000604700BF014C010001B40248844601BCF3 +:10B32000604700BF6571010001B40248844601BC5A +:10B33000604700BF6DBC000001B40248844601BCF8 +:10B34000604700BF8D12000001B40248844601BC72 +:10B35000604700BF0132FF1F01B40248844601BCB0 +:10B36000604700BFF54E010001B40248844601BCAD +:10B37000604700BFD92FFF1F01B40248844601BCBB +:10B38000604700BFC94A010001B40248844601BCBD +:10B39000604700BF091B000001B40248844601BC9D +:10B3A000604700BF350E000001B40248844601BC6E +:10B3B000604700BF4D38FF1F01B40248844601BCFE +:10B3C000604700BF5D17000001B40248844601BC1D +:10B3D000604700BFA54F010001B40248844601BC8C +:10B3E000604700BF1147010001B40248844601BC18 +:10B3F000604700BF5952010001B40248844601BCB5 +:10B40000604700BF6130FF1F01B40248844601BCA1 +:10B41000604700BF154D010001B40248844601BCDD +:10B42000604700BFC9A9000001B40248844601BCBE +:10B43000604700BFD91AFF1F01B40248844601BC0F +:10B44000604700BF4537FF1F01B40248844601BC76 +:10B45000604700BFC926000001B40248844601BC11 +:10B46000604700BFC538FF1F01B40248844601BCD5 +:10B47000604700BFB70E000001B40248844601BC1B +:10B48000604700BF1930FF1F01B40248844601BC69 +:10B49000604700BF055E000001B40248844601BC5D +:10B4A000604700BFA946010001B40248844601BCC0 +:10B4B000604700BF75A9000001B40248844601BC82 +:10B4C000604700BF2526000001B40248844601BC45 +:10B4D000604700BFD91B000001B40248844601BC8C +:10B4E000604700BF2146010001B40248844601BC08 +:10B4F000604700BF5933FF1F01B40248844601BCB6 +:10B50000604700BF9135FF1F01B40248844601BC6B +:10B51000604700BFC56D010001B40248844601BC0C +:10B52000604700BFADAE000001B40248844601BCD4 +:10B53000604700BF3D18000001B40248844601BCCA +:10B54000604700BFB14E000001B40248844601BC10 +:10B55000604700BFE117000001B40248844601BC07 +:10B56000604700BF3D4B010001B40248844601BC66 +:10B57000604700BF1D4D010001B40248844601BC74 +:10B58000604700BF2951010001B40248844601BC54 +:10B59000604700BF9D35FF1F01B40248844601BCCF +:10B5A000604700BFE548000001B40248844601BC82 +:10B5B000604700BF7139FF1F01B40248844601BCD7 +:10B5C000604700BFB54C010001B40248844601BC8D +:10B5D000604700BFE928000001B40248844601BC6E +:10B5E000604700BFED4A010001B40248844601BC37 +:10B5F000604700BFF94C010001B40248844601BC19 +:10B60000604700BF5125000001B40248844601BCD8 +:10B61000604700BF434D010001B40248844601BCAD +:10B62000604700BF2D3BFF1F01B40248844601BCA8 +:10B63000604700BFF30E000001B40248844601BC1D +:10B64000604700BF2932FF1F01B40248844601BC95 +:10B65000604700BF0D52010001B40248844601BC9E +:10B66000604700BFDD52010001B40248844601BCBE +:10B67000604700BF5118FF1F01B40248844601BC57 +:10B68000604700BF851F000001B40248844601BC2A +:10B69000604700BF4D1F000001B40248844601BC52 +:10B6A000604700BFE94C010001B40248844601BC78 +:10B6B000604700BF8552010001B40248844601BCC6 +:10B6C000604700BF4550000001B40248844601BCF9 +:10B6D000604700BF7D18FF1F01B40248844601BCCB +:10B6E000604700BF291C000001B40248844601BC29 +:10B6F000604700BF810E000001B40248844601BCCF +:10B70000604700BF090E000001B40248844601BC36 +:10B71000604700BFC12FFF1F01B40248844601BC2F +:10B72000604700BF9DA9000001B40248844601BCE7 +:10B73000604700BF413BFF1F01B40248844601BC83 +:10B74000604700BFB352010001B40248844601BC07 +:10B75000604700BF0124000001B40248844601BCD8 +:10B76000604700BFEDA5000001B40248844601BC5B +:10B77000604700BF156B010001B40248844601BC5C +:10B78000604700BFCD4C010001B40248844601BCB3 +:10B79000604700BFD949010001B40248844601BC9A +:10B7A000604700BF2124000001B40248844601BC68 +:10B7B000604700BF3555000001B40248844601BC13 +:10B7C000604700BFDD66010001B40248844601BC49 +:10B7D000604700BF8B52010001B40248844601BC9F +:10B7E000604700BFED39FF1F01B40248844601BC29 +:10B7F000604700BF9136FF1F01B40248844601BC78 +:10B80000604700BFC135FF1F01B40248844601BC38 +:10B81000604700BF5522000001B40248844601BCC5 +:10B82000604700BF0539FF1F01B40248844601BCD0 +:10B83000604700BF3938FF1F01B40248844601BC8D +:10B84000604700BF017F000001B40248844601BC8C +:08B85000604700BF056A00001B +:10B8580000030103020003030402050206020700B5 +:10B86800080309030A030B030C000D000E030F0362 +:10B87800100311001303140315031603B53B00113D +:10B88800E93B001100000000020000009AB8001116 +:10B89800192A0F180A000000F1590000FD240000C1 +:10B8A80041460100517C0011659C0011B9700011DE +:10B8B800557A00116552001159AA0011DD4E001188 +:10B8C800C53D0011F53E00110000000016160000ED +:10B8D80002000000E4B80011F4FFF3FFD2FC0000FE +:10B8E8003540001100000000000000005475796127 +:10B8F8000042312E35003030313300676974687585 +:10B90800622E636F6D2F707676780054484232004D +:10B91800020000002CB90011292A282A272A262AE1 +:10B92800252A242A0A180000E204000071020000F7 +:10B9380078EC0000744000001027000060F0000060 +:10B9480006640000204E0000000000000500000012 +:10B958001F501D00023CB400000113001500000038 +:10B9680081020000303132333435363738394142BC +:10B97800434445460000000069560011BD560011B9 +:10B98800000000000200000098B900116F2A6E2A1A +:10B998001A18000001A00000000000006410B71D84 +:10B9A800C8206E3BAC30D9269041DC76F4516B6BE5 +:10B9B8005861B24D3C7105502083B8ED44930FF0A7 +:10B9C800E8A3D6D68CB361CBB0C2649BD4D2D3865D +:10B9D80078E20AA01CF2BDBDFB349B5F80000080AA +:10B9E8000010000000000000BB5C0011457300114E +:10B9F800DF5C00114D770011635D001123770011A2 +:10BA0800D95D0011F97600112B5E0011C178001183 +:10BA1800935E0011C1780011C55E00117B7800119A +:10BA2800D95D0011B1760011515E001159780011ED +:10BA38000000000000000000375F00115978001175 +:10BA4800995F00115D730011052A042A012A002A52 +:10BA58000229032801280028011800180000000006 +:10BA68000000000000000000000000870101020142 +:10BA780002010102010203030401030101010101A2 +:10BA88000303020103000D000E0010001100130053 +:10BA98001401070108010A010B011C011D0204021F +:10BAA80005020702080219021A021C021D030103FB +:10BAB800020317000201000504000807000B0A0032 +:10BAC8001716001D1C010201010504010E0D0111CC +:10BAD80010011413011716011A19020201020B0AA8 +:10BAE800020E0D02111002141302171603050403A7 +:10BAF8000807030B0A030E0D0001020307090A0BCE +:10BB08000E0F101112141718191A1B1F20212200CA +:10BB1800A1A300115DA400110000000002000000B4 +:10BB280062BA00110000000089B100110000000095 +:08BB38000200000060BA0011D8 +:020000041FFFDC +:10000000000000002D3D0011A0B800119CB80011A7 +:100010003061FF1F00000000000000000000000031 +:1000200000000000000000000000000000000000D0 +:1000300000000000000000000000000000000000C0 +:1000400000000000000000000000000000000000B0 +:1000500000000000000000000000000000000000A0 +:100060000000000000000000000000000000000090 +:100070000000000000000000000000000000000080 +:100080000000000000000000000000000000000070 +:100090000000000000000000000000000000000060 +:1000A0000000000000000000000000000000000050 +:1000B0000000000000000000000000000000000040 +:1000C0000000000000000000000000000000000030 +:1000D0000000000000000000000000000000000020 +:1000E0000000000000000000000000000000000010 +:1000F0000000000000000000000000000000000000 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:100190004D32FF1FAD30FF1FC1660100000000009F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000D5B10011000000000000000000000000E6 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000591AFF1FBC +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:08183800106FFF1F4118FF1F94 +:10184000024981F3088802F06FFA0000106FFF1F51 +:1018500010B502F089FA072804D0122808D002280F +:1018600008D010BD044A0420136B01331363F8E75A +:101870000220F6E71420F4E7EC64FF1FF8B5070038 +:101880000C0026002500503630785135002804D150 +:101890000300287058342370F8BD2978CA00481E08 +:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 +:1018B00000280DD12B78DA00A218013350602B706C +:1018C0003378044A013B3370136A01331362D8E75B +:1018D0000123DFE7EC64FF1F5C234343074910B596 +:1018E000C9180B0058331B78012B05D1FFF7C6FF31 +:1018F000034A936A0133936210BDC0462065FF1FFF +:10190000EC64FF1F10B502F037FB064A01211300FB +:1019100010CB4942D967044B136002F0E5F920006F +:1019200010BDC04600E100E01000100010B504003A +:1019300002F022FB024B1C6002F0D6F910BDC0463B +:1019400000E100E0431E5A425341A022F0B5D2010B +:101950005B421340154D164A40019B182A18127E0F +:101960008BB00191002A1BD01A000832D46F0022DC +:10197000E6B206AFE4B294420EDC2818C369002B2D +:1019800008D0019902AA117106AA049202AA16733C +:1019900003A898470BB0F0BD1978B9540132EAE7B3 +:1019A0001A7D1A7806AB01261A70E6E7AC67FF1FAE +:1019B00000400040F0B5254B04004001C25C85B0FA +:1019C000002A2BD01A18117E002927D0917E0029D9 +:1019D00024D01179022921D11689D788D168F51B25 +:1019E000ADB22A1C102D00D9102292B2BE4217D1DE +:1019F0001818012303710023C269C38003819A422E +:101A000006D06846032103730171029301A8904731 +:101A10000820002C00D0192001F0FEFA05B0F0BD1E +:101A2000013C65426C41A0256442ED012C40084D0B +:101A30001B186419074D0633013A92B2AA42EDD041 +:101A40001888461C1E80085C2070F5E7AC67FF1FF5 +:101A500000400040FFFF00000F220E4B10B59868B9 +:101A6000104002380A280BD802F060F80D0A0B0A61 +:101A70000A110A0A0A0A060002210020FFF762FF83 +:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 +:101A9000F6E7C046004000400F220E4B10B5986894 +:101AA000104002380A280BD802F040F80E0A0B0A40 +:101AB0000A120A0A0A0A060002210120FFF742FF61 +:101AC00010BD01210800F9E70120FFF773FFF7E7D8 +:101AD000DB6FF5E70090004013B5334C2378072BFC +:101AE0003DD8324B1A78324B002A39D180221968FE +:101AF00052020A431A60252001F0C4FE20232D4A19 +:101B000011680B43802113606B460422C9050868E5 +:101B10000733104228D080210422C905C86810422A +:101B20002ED080212020C905CA688243CA601422B1 +:101B30001A701A78002A2FD18021C905C86820326E +:101B40000243CA6014221A701A78002A28D11A4B4C +:101B50001A7D22785A601D221A705932DA6013BD3C +:101B60001A6816490A40C5E7086802430A60142249 +:101B70001A701A78002ACED01A78013AD2B2F7E752 +:101B8000C8680243CA6014221A7019784A1ED2B279 +:101B90001A700029F9D1C4E71A78013AD2B2C7E71E +:101BA0001A78013AD2B2CEE75C43FF1F2444FF1FEC +:101BB0003CF000405443FF1F00200040FFFFFEFFA9 +:101BC000564B70B51B68012B03D1554A936D0133F9 +:101BD000936502F011F9534B534A1860534B544C20 +:101BE0001A600123534A1360534A13602378002B71 +:101BF00006D006225149524802F0A6F8002323706D +:101C0000504A514B10681B78C1B2002B0ED14F4C7B +:101C1000C0B223785BB2002B4FDB237824785BB211 +:101C200064B21B0424021B191B1813600B1C5029DF +:101C30004ED95023464A47491078DBB2FF2202288A +:101C40004BD10868444C454D267890432A789642FB +:101C500054D9227824782E78023B5D10A31B6B4365 +:101C60005201D31A10335B111843086002F054F983 +:101C7000031F012B45D83A4B1B78002B06D0394B5C +:101C80001B78002B02D0002002F05EF9A122364B17 +:101C900092009978354B4A431B689B188322920027 +:101CA0009B181B78033B012B03D8AF20400001F0A9 +:101CB00093FF01222E4BDA8270BD237824785BB229 +:101CC00064B2FF33FF341B0424021B190138ABE755 +:101CD000CAB2022AAED20223ACE70868254C264DD0 +:101CE000267890432A78964208D9227824782D784D +:101CF000023B5B10641B63435201B2E72378DBB203 +:101D0000B2E70228D5D11D4B1B78013B022B03D92A +:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 +:101D2000FC0FFF1F2464FF1FFF3F0000141003403F +:101D30002864FF1F0C10034000100340D50BFF1F49 +:101D40007211FF1FB40003408C09FF1F680AFF1FB8 +:101D5000490AFF1F94000340460AFF1F470AFF1F5E +:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 +:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 +:101D80002309FF1F10B502F0B7F80022014B1A809B +:101D900010BDC0462064FF1F10B502F055F8A12108 +:101DA000054A89009478054A61431268044B521829 +:101DB000528C1A8010BDC046300DFF1F3409FF1F22 +:101DC0002064FF1F10B50D4B0D4A9978A1239B008D +:101DD0004B431268D218531DD97F0A4B1B88994276 +:101DE00009D2441C07D0C82805D0D2695B1A5A43CF +:101DF000054B5343C01801F0E7FF10BD300DFF1F26 +:101E00003409FF1F2064FF1F7102000070B5244DCC +:101E10002B68002B28D001F017FF2B68D8402B68C7 +:101E20000400002B27D002F0B7F82B68D8401D4BD8 +:101E30001D4A9978A1239B004B431268D118D25CAC +:101E400091239B00002A20D0CA580132CA50174B58 +:101E500017491B680868834214D3D23B181A012A19 +:101E60001AD0144B186070BD01F0EEFE124B1968C9 +:101E700001F082FED3E702F08FF80F4B196801F0F2 +:101E80007BFED4E70D495B18E8E7CA500C4B1B6892 +:101E9000DB68E418201AE4E7F530FF30E1E7C046DC +:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 +:101EB0002464FF1FA009FF1F1808FF1F2DFF3F000C +:101EC0002C64FF1F70B504000D00282916D10300F3 +:101ED000A433C2881B889B1A0B4A9BB293420DD92C +:101EE00006006A3605223100653001F0F5FF002852 +:101EF00004D13100200002F01FF870BD290020003D +:101F000001F00AFFF9E7C046FE7F0000F8B50500C2 +:101F1000012001F0B1FF134CA36AA26A9342FBD1E6 +:101F2000114E336001F038FE10490300086010487C +:101F3000426894460F4A17680022BC4501D24268A5 +:101F4000BA1A0D4802603268AD18A422E562606AD0 +:101F5000520302436262094A1278002A01D00F3B01 +:101F60000B60F8BD00F00040340AFF1FE408FF1FBB +:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 +:101F800070B580241025E405A3682B43A36001F0FD +:101F90000BFEA368AB43A36070BD0000F7B516004D +:101FA00080221C001023D2050191916805000B438B +:101FB000936000225A4BD7301A6001F055FE9D23E2 +:101FC0002A002F009B00EB58CA3201210092FC37F7 +:101FD000002B01D00021009A386801F0D5FE2900BD +:101FE000009BCB311A784F4BD3351A604B780A7867 +:101FF0001B0213438A7812041A43CB781B0613433F +:10200000494A1BBA13604B790A791B0213438A7938 +:1020100012041A43CB7931001B061343434A1BBAFF +:1020200013606B782A781B021343AA7812041A43B0 +:10203000EB781B0613433E4A1BBA1360019A330226 +:1020400013433C4A13603C4B22001B1B9C46032954 +:102050003DDCB3089A0013005142B21A032A46D15C +:10206000354AE018511A827840781204000202437F +:10207000E05C043302430A600022FF2B4BDDF022B8 +:102080002E4B12011A600F222D4B1A602D4A136835 +:10209000002BFCD00023224A27491360091B321D64 +:1020A0000B191B68043A180A23706070180C1B0E79 +:1020B000A070E3700434002AF2DC802210213B6817 +:1020C000D20501333B6093688B439360F7BD634651 +:1020D000D578981893782D061B042B43157804396E +:1020E0002B43557804322D022B430360AFE7022ABD +:1020F0000AD1114AE05C511AE218527812020243E6 +:102100000A6004339BB2B7E7012AB5D10A4A521AD2 +:10211000E15C1160F5E7084959180A600433ACE73F +:10212000000004403C0004403800044034000440F7 +:10213000300004400C00044000010440040004404E +:102140001000044014000440F7B5150080221C0064 +:102150001023D2050091916807000B439360002380 +:10216000654AD730136001F07FFD9D233E009B0040 +:10217000F9583B00CA363200FC33002900D07FE01A +:10218000586801F001FE390032785C4BCB311A609F +:102190004B780A781B0213438A78AC4612041A4320 +:1021A000CB78281D1B061343554A1BBA13604B7985 +:1021B0000A791B0213438A7912041A43CB791B064E +:1021C0001343504A1BBA13604B7A0A7A1B0213431B +:1021D0008A7A12041A43CB7A21001B0613434A4A17 +:1021E0001BBA1360009A2B021343484A1360220063 +:1021F000474B1B1B0093009BCE785B1801938B7899 +:1022000036061B0433430E78043833434E780431CA +:1022100036023343019E33600328ECDC0321A80817 +:10222000431C9B002940800003292BD13849E51825 +:102230005E18A9786D78E35C09042D0229431943DF +:102240003160030008330021FF2B2DDD314B324973 +:1022500019600F21314B1960012327490B60304B66 +:1022600019680029FCD006211B680B40042B20D0E4 +:1022700080220020D20593680A318B439360FEBD13 +:1022800001217DE7022908D121495D18E11849782B +:10229000E35C090219432960D3E70129D3D11C4922 +:1022A0005918E35C0B60CCE7194818180160043337 +:1022B000CAE7002310490B606346002B0CDC3B008F +:1022C000FC335A68102101325A608022D20593688B +:1022D00001208B439360D2E7009B9B181B68190A6F +:1022E00013705170190C1B0ED37004235B42917054 +:1022F0009C440432E0E7C046000004403C00044037 +:102300003800044034000440300004400C00044015 +:102310000001044004000440080F000010000440C5 +:102320001400044070B5061E19D002225A4B9B7946 +:102330009343012B13D1594B1A78FF2A0FD15A78A6 +:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 +:102350001A79FF2A03D15B79FF2B00D199E0504B0A +:102360000C201A78012A08D000224E4D1A702978C4 +:102370000B00093B042B01D8212070BD4B1F012B02 +:10238000FAD9454CA37B042B00D982E0A279032A19 +:1023900000D97EE09A1ED2B2012A02D860881F2896 +:1023A00077D9002E56D0012E73D1A0880128E3D012 +:1023B000002907D1581E032803D801F0B7FB1217D4 +:1023C00015122E702978481E032811D80025364B87 +:1023D0001D602823237501F0A7FDA84227D0A58002 +:1023E000CAE702212970EDE70421FBE70321F9E7A1 +:1023F00007390129C0D82D490968C96A8906BBD5A2 +:102400002B4908780028B7D1012A01D9002BB3D174 +:1024100002230B708021274D2633890128782375EC +:1024200001F0A2FD80212878890101F0F5FC01234B +:10243000A380214B1B78002B0AD0FA2280211F4B4E +:1024400092001B8809025A431A4B187801F084FD48 +:10245000002092E701F090FD2B78A680073B012B2E +:1024600003D917482E7001F0FFFC114B114C1A785C +:10247000002A06D080210022207889011A7001F0FC +:1024800073FD01F031FC80212078090201F06CFD20 +:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 +:1024A0001A09FF1F1C09FF1F4809FF1F2C64FF1F8B +:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 +:1024C0000010004010B5002901D001F0F5FC10BD4E +:1024D000F7B5604B01919978A1239B004B435E4A6D +:1024E000060014681022E418D6235B00E058362357 +:1024F000FF33E35C00279343222B41D1574B0F3A24 +:102500001A600760012501F0FFFC019B1880E82399 +:102510005B00E35C002B01D0B34258DD0023504F39 +:10252000FB70AD33FF33E3581A68002A03D09B8851 +:10253000DB439B071DD03823FF33E35C002B18D00F +:102540009B235B00E35C002B13D1D133FF33E35CAF +:10255000B3420EDAA4235B00E15AE018090A023103 +:1025600001F0C2FC23000122FE33013E01351A872F +:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 +:1025800003683D00002BBED081880430090A023167 +:1025900001F0AAFCD6235B00E3581F60B2E72300DA +:1025A000B133BA00FF339858013781880430090AE3 +:1025B000023101F099FCE8235B00E35CBB42EEDCF6 +:1025C000E822F61AED1800235200A354A6E70027CC +:1025D000F1E7200001F030FB00281FD0002E1DDDA8 +:1025E0007319882647190193B600200001F0FCFA00 +:1025F0005A30800020184068013581880430090A6B +:10260000023101F071FC200001F0A6FBA359013357 +:10261000A351BD4202D0019B9D42E6D1114BE35C28 +:10262000002BABD095239B00E35C002BA6D00E4B78 +:10263000E15A0029A2D00D4AA35C994202D9013384 +:10264000A3549BE700231A212000A35401F0ACFB04 +:1026500094E7C046300DFF1F3409FF1F00140340EC +:10266000E010FF1F5A020000720200005E0200002C +:102670000D4970B54A6E0D4CD2038B69D20BA24244 +:1026800006D80B4D0224AA4204D901F0E5FA70BD28 +:1026900002246442E21815007E2425402242F4D030 +:1026A000A3432B438B61F0E700F000400A200000B9 +:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 +:1026C000BA7B002A02D101321A7003E0032AFAD041 +:1026D000022AF8D001F028FC00220120154B1A70C4 +:1026E000F8BD154B154D1C68154B9E7801232B70BA +:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D +:102700005BFAA1239B007343E41883239B00E41826 +:1027100023782B70E4E7032B02D101F09DFBF0E757 +:102720000020022BDCD101F02FFCEAE71C09FF1F7F +:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 +:10274000300DFF1FF0B587B00EAD2F780FAD2D788F +:102750000593AC46634614000E4D0CAA12782E78F1 +:1027600003930D9B009201932200059B029701F0B9 +:102770004BFC2E70012C01D0042C08D1802206497C +:102780008B889343054A1278D20113438B8007B09C +:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 +:1027A0000B001B3B70B504003020E02B0DD813004C +:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 +:1027C000200019825A8201F057FA70BD8410FF1F51 +:1027D00010B501F011FB054B00205B68052B04D9F7 +:1027E000034A5268D20200D4980810BD001000407D +:1027F000FCE100E070B501F0BFFB0D4B1B68FC3342 +:10280000DC691D6AFFF7E4FF6419844204D2094BB6 +:1028100001241B68002B07D004220024064B1A70E9 +:10282000064A93690133936101F05EFA200070BD9E +:102830002C64FF1F9809FF1F2309FF1FFC0FFF1FB8 +:1028400070B50C4D2B68FC335C6A01F095FBFFF70B +:10285000BFFF2B680025FC339B6AE318834204D238 +:10286000054B1B68AB4200D1051B01F03DFA280067 +:1028700070BDC0462C64FF1F9809FF1FD722044B70 +:1028800092009B5810B5002B00D0984710BDC04651 +:102890000000FF1F10B501F0D3F8FFF7EFFF274945 +:1028A000274BCA6D274C1A4084235B001343CB652A +:1028B000254B1B68186A01F0DFFA244B244A1A6082 +:1028C000244B254A1A60A022244B52001A60244B44 +:1028D000187801F051FA2000224901F09DFB0023F5 +:1028E000A3600233A360204B2049236003232048C8 +:1028F000A36001F091FB10221E4BFF201A60802282 +:1029000052031A60802292031A60802212041A6015 +:1029100001F01AFB012001F03FFAFA20400001F01B +:1029200063FA582001F058F9134801F045FA0120E4 +:1029300001F072F9072001F04FFA10BD00F00040DD +:1029400000FEFEFF141000402C64FF1F0000034037 +:102950000180063DBC00034034080000A400034091 +:102960004A0AFF1F71020000C3090000FFFF3F0079 +:102970002810004000E100E030750000674E336829 +:1029800088331B6883F3088801F0E6F8644A6549D8 +:10299000136800200B401360634B644A1B6893422A +:1029A00000D1A6E001F070FA0221614A13688B435E +:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 +:1029C00073FA0023A3600233A3605C4B01202360F1 +:1029D00001F052FA0323A36001F016FA040001F09B +:1029E0000BFA050001F010FA554B186001F0E4FAFB +:1029F000544B1968621A531EA14200D21300802260 +:102A0000D203934201D39B029B0A3268D16AC90761 +:102A100000D471E04C491C0C09689BB24C435943EB +:102A20002402090A641803264849FC3293680A689C +:102A300047489B1A474A0768126847499B18474A04 +:102A40009A1833409208DB190A600360042B03D9FB +:102A5000013233400A6003600E684149A619300014 +:102A600001F08AF83F4F3E493B68C3183B60300095 +:102A7000019301F011F93C4E306808183849306074 +:102A8000884205D9019B01333B6001F005F93160B3 +:102A900001F00AF9354B1B78002B0DD001F0ACF991 +:102AA000334B621B196812188A4232D24919091B2A +:102AB000091A304801F0B0FA2F4E337A002B0ED0AD +:102AC00001F09AF9621BF1681218914224D9491950 +:102AD000091B091A294801F09FFA00233372284B79 +:102AE00083F3088801F090F8002001F0CDF901F09F +:102AF000ABFA01F0C9F95CE7DC0199000234641A11 +:102B00005900641A09214B438033CB40A408E418D0 +:102B100089E7FA218900CCE71A49DBE72C64FF1F1B +:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C +:102B300010000040490AFF1F14100040C3090000A4 +:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 +:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 +:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 +:102B7000E408FF1F00100040740BFF1F3C100040D2 +:102B800000000020DC050000A022054B92009B58AD +:102B900010B5002B01D0984710BD01F045F8FBE7B8 +:102BA0000000FF1FA122054B92009B5810B5002B7F +:102BB00001D0984710BD01F037F8FBE70000FF1F78 +:102BC000A222054B92009B5810B5002B01D09847CC +:102BD00010BD01F029F8FBE70000FF1FA322054B01 +:102BE00092009B5810B5002B01D0984710BD01F002 +:102BF0001BF8FBE70000FF1FA422054B92009B5827 +:102C000010B5002B01D0984710BD01F00DF8FBE77F +:102C10000000FF1F70B501F0EFF84F4B186001F096 +:102C2000E3F90400C30702D401F06EF870BD00227E +:102C30004A4B1A604A4B18780138042829D800F00A +:102C400075FF0320181C2400200001F0ADF90128B5 +:102C5000ECD0444C2378042B6ED100F095FF002873 +:102C6000E4D001F0E1F9582000F0B6FF0223237010 +:102C7000DCE7200001F008F8E9E7200001F0ACF9FA +:102C8000E5E7200001F038F8E1E7200000F09CFFC4 +:102C9000DDE701F041F90500012808D1324B1B782E +:102CA000053B012B03D82000FFF76EFFD1E72D4B2A +:102CB0001B78022B01D0052B20D1022D28D12B4BC4 +:102CC0009B7BAB431CD12000FFF76CFF264B187891 +:102CD0000128BED16405BCD4244925224B7B034284 +:102CE00005D1233A13405A42534126331A000B7D33 +:102CF0009342AED9322000F0EFFFAAE7022D07D1B0 +:102D0000194B1B78052B11D12000FFF759FFDDE788 +:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 +:102D2000062B03D12000FFF767FF92E7200000F099 +:102D30007BFF022D8DD1C9E7032B04D10C4B987C6E +:102D400000F0BAFF72E7072B00D06FE7094B987BC2 +:102D500000F0F2FF6AE7C0469C09FF1F9809FF1FB9 +:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 +:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 +:102D80001A640A4A5A500A4A04395A50094A083100 +:102D90009A64094A5A50094A5C315A50084ADA661C +:102DA0007047C0460000FF1F4527FF1F4128FF1F37 +:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A +:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 +:102DD000FF270122009300233C001E001D009446A3 +:102DE000019089B262469A40100008401841361896 +:102DF000B6B2FF2F02D1012E00D19FB2009802403F +:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 +:102E10000133102BE6D10320012E07D1012D04D15F +:102E2000019B2401E4191C700138FEBD102EFCD159 +:102E30000238102DF9D00230F7E700008023F7B5F3 +:102E40009C46264B264F01932649274A274D284C5E +:102E5000284B02281AD1604638600868264E304058 +:102E6000802636033043086001990978002909D18A +:102E70001660224A2A60224A2260E02219689143A1 +:102E8000A03A1BE08021C9021160F2E766463E606D +:102E90000F68194E3E408027FF023E430E600199A5 +:102EA000097800290DD1176001280ED1154A2A6032 +:102EB000154A2260E02219689143C03A0A431A6019 +:102EC000F7BD802189021160EEE7E0210F4A02433D +:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 +:102EE000E0000340D800034090000340000003408E +:102EF0005000034040000340FFFFE3FF0280063D17 +:102F0000804508220180063D8066082200800698E0 +:102F100080550822F8B51E4B80261A680020140040 +:102F20003440324232D11A681A4F32431A600122B9 +:102F30003B68063093433B6000F09EFF0122164D34 +:102F40002B681E432E603B680A2613433B60802794 +:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F +:102F600009D17E220E4B1C682B68E40B144093435E +:102F700023432B6005E0082000F07EFFE9E7002EE8 +:102F8000EFD180222B68600893432B60F8BDC046C8 +:102F9000C4F000405CF0004018F0004068F00040D1 +:102FA00060F0004010B500F027FE01215820034AD0 +:102FB00000F0DAFDFFF7AEFF10BDC046600AFF1F4C +:102FC00010B578220021034800F07EFE01F014F8CD +:102FD000002010BD3467FF1F70B5040000F0CCFF67 +:102FE00000230C200B4A010059438D18515C002925 +:102FF0000DD0A14208D1012300246B7000F064FFC2 +:1030000000F072FE200070BD01330A2BEBD11224B8 +:10301000F6E7C0463467FF1F70B5040000F0ACFF50 +:10302000002319001D000D4A1078002806D0A04288 +:103030000CD1557001310C320A29F5D1002B0AD17F +:1030400000F0DAFF00F050FE002070BD5078461E00 +:10305000B0411B18EEE700F037FFF3E73467FF1FBE +:10306000F7B504000C20002384460E4D01926746FC +:103070005F43E85D7E19A04212D000280BD10A4BB5 +:103080009C4662461B7808331370019B70707C5518 +:103090007160B360FEBD01330A2BE8D10320F9E76C +:1030A0000720F7E73467FF1F3067FF1F8020F8B560 +:1030B000484BC0051B68C1248360474BFF251A6835 +:1030C000012313434361454BA4001A68444B40213C +:1030D0001A60444B1A68444B1A60444B1A59AA436D +:1030E0001A51C52292009E58AE4331438026995012 +:1030F0009F583F49F6010F403E439E509E588027FF +:103100003602360A3043985080201A5900020A408D +:1031100002431A5104341A59364E3F043240802675 +:103120003A431A511A5936061202120A32431A51F8 +:1031300008341A5980260A4002431A51C3229200C9 +:103140009F58B446AF4337439F509F58294E0F4076 +:1031500007439F509F5837408026360437438026C8 +:103160009F509F5836063F023F0A37439F50C02268 +:103170001F59AF433A431A511A591202120A164301 +:10318000C6221E5192009C58AC4365462C439C506D +:103190009C5800250C4020439850C72080001A58A6 +:1031A000154C1140C02212020A431A50134B1B78CF +:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 +:1031C000A368002B00D0984701350C34EEE712209D +:1031D000F2E7C0465843FF1F5443FF1FB0F00040C2 +:1031E0002C67FF1FB4F000402867FF1F00E100E0DC +:1031F000FF00FFFFFFFF00FF3467FF1F3067FF1F67 +:10320000030010B51F2809D8072200201340072407 +:1032100004490A78A24313430B7010BD0023062013 +:10322000F5E7C0463067FF1F054B06491B780A6863 +:1032300005485B0702401B0B134300200B607047DF +:103240003067FF1F1CF00040FFFFC1FF70B50C2569 +:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 +:10326000002C01D1200070BD2B78002B06D06B689C +:10327000002B00D09847013C0C3DF1E71220F2E70B +:103280003067FF1F2867FF1F1FB5002102220B00B8 +:1032900001910091052000F0CFFE02230B490A683E +:1032A0001A42FCD120230393039B5A1E0392002B46 +:1032B000FAD1074A1368002BFCDA0B246C44200077 +:1032C000012100F0B9FD207804B010BD90C8004085 +:1032D00000C8004013B504000A4B0193019B002B6A +:1032E00001D1112016BDFFF7CFFF23000340044298 +:1032F00005D0052000F0C0FD019B013BEDE7180063 +:10330000F0E7C046FFFFFF0707B500F035FE80225B +:103310000821D205936A0191002B01D107399162EE +:1033200002210C4A11600199481E01900029FAD12E +:1033300003311160053101910199481E0190002966 +:10334000FAD11160002B02D18022D205936200F0E5 +:10335000CBFC07BD00C00040F0B52D4C89B02378F0 +:10336000002B4FD1FEF7CEFA02232A4F03903A6882 +:103370001A42FCD120230693069B5A1E0692002B6C +:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB +:10339000011E02D0112009B0F0BD030003220190EC +:1033A000009005AD9F2000F047FE0321280000F0AB +:1033B00043FD02233A681A42FCD120230793079B5E +:1033C0005A1E0792002BFAD13368002BFCDA012039 +:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F +:1033E0006B7811041B020B4329780B4363601300B5 +:1033F000113B0A49052B07D801239340A3600B60BA +:10340000012323700020C6E780231B03F6E7C04694 +:103410004043FF1F90C8004000C800409808FF1FAD +:103420001E4B30B55A6818781D4B85B0D3185942D9 +:103430004B4101210093002300F0C6FD194B1A4AAD +:1034400002259A6300221A6510325A658022C4212F +:103450009D65164B1648D202DA6789004258154B13 +:1034600080241A4080231B041343435064234120CB +:103470000393E40500F006FA402000F003FA6562C9 +:10348000039D6B1E0393002DFAD103236362FFF7A4 +:103490003BFFA562FFF760FF05B030BD4C43FF1F47 +:1034A00095FFFEF700C80040050001FF04E100E0C1 +:1034B00000E100E0FFFF00FFF0B585B00700FEF778 +:1034C00021FA022305002D4C22681A42FCD1202348 +:1034D0000093009B5A1E0092002BFAD1284E3368AD +:1034E000002BFCDA0120FFF7F5FE002803D01124A1 +:1034F000200005B0F0BD234B2360022322681A424E +:10350000FCD120230193019B5A1E0192002BFAD17A +:103510003368002BFCDA0120FFF7DCFE0028E6D13F +:10352000194B1F60022322681A42FCD12023029308 +:10353000029B5A1E0292002BFAD13368002BFCDA50 +:103540000120FFF7C7FE0028D1D1104B23600223D2 +:1035500022681A42FCD120230393039B5A1E039234 +:10356000002BFAD13368002BFCDA0120FFF7B2FE02 +:10357000041EBCD12800FEF7D9F9B9E790C8004075 +:1035800000C8004001000006A8C8004001800001FA +:1035900010B50020FFF790FF10BD000010B5064BDE +:1035A00018705960FFF73CFF00211320034AFFF712 +:1035B00057FD002010BDC0464C43FF1F2134FF1FA4 +:1035C000F0B5040085B003920291FEF79BF98822C2 +:1035D00063035B0B52051A438023DB059D6A80233E +:1035E000274F0092BA68002601901B039A420CD91B +:1035F000F82326001B041E401C4206D08022214BCB +:1036000052025E6219680A431A60002D0BD100F065 +:10361000B3FC02221C4B1A608023DB055A62013A7C +:103620009A6200F061FB0023039A934220D1002D9F +:103630000AD100F0A1FC144B03221D608023DB059E +:103640005A629D6200F050FB8023BA681B039A42C5 +:1036500008D9002E06D000220A4B0C495A621A687B +:103660000A401A600198FEF761F9002005B0F0BD2C +:10367000009A0299D2181278CA540133D4E7C0468E +:103680004043FF1F00C8004000C00040FFFFFEFF96 +:10369000F0B587B0029103920400FEF733F9019070 +:1036A00000F06AFC802302250122234EDB053560F1 +:1036B0005D629A6200F018FB204F3B682B42FCD100 +:1036C00020230493049B5A1E0492002BFAD11C4D14 +:1036D0002B68002BFCDA0120FFF7FCFD002802D04C +:1036E000112007B0F0BD2000039A029900F0D4FB2E +:1036F000022304003A681A42FCD120230593059B5B +:103700005A1E0592002BFAD12B68002BFCDA0120FF +:10371000FFF7E0FD051EE3D100F02EFC802303221D +:10372000DB0535605A629D6200F0DEFA0198FEF713 +:10373000FDF8E0B2D5E7C04600C0004090C80040A8 +:1037400000C80040F0B5802489B00600FEF7DAF822 +:10375000E405A36A02250393029000F00DFC012307 +:10376000304F3D606562A36200F0BEFA2E4C2368C4 +:103770002B42FCD120230593059B5A1E0592002B5A +:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD +:10379000002803D01124200009B0F0BD244B236081 +:1037A000022322681A42FCD120230693069B5A1E4C +:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 +:1037C00089FD021EE6D11B4B03211E600300019000 +:1037D0000090202000F030FC022322681A42FCD125 +:1037E00020230793079B5A1E0792002BFAD12B68C0 +:1037F000002BFCDA0320FFF76DFD041ECAD100F098 +:10380000BBFB80230322DB053C605A629C6200F014 +:103810006BFA039B002B01D1FFF776FD0298FEF7B0 +:1038200085F8B8E700C0004090C8004000C80040DC +:103830000100000694C8004007B50002019104226F +:10384000000A01A9FFF724FF0EBD000073B50500B3 +:1038500005240B4AA3005B429B1819686B46DE1DCA +:103860003000FFF7B3FA022804D133782B55013C1E +:10387000EFD276BD052CFCD00128FAD10230F8E752 +:10388000140900111F2807D8012380228340D20584 +:1038900091680B43936070473F2808D8012380222A +:1038A00020388340D20551690B435361F3E75F2809 +:1038B000F1D80123802240388340D205116A0B439E +:1038C0001362E8E71F2807D8012280218240C9053A +:1038D0008B6893438B6070473F2808D80122802172 +:1038E00020388240C9054B6993434B61F3E75F2859 +:1038F000F1D80122802140388240C9050B6A9343E8 +:103900000B62E8E71F2810D880230200DB05153A78 +:103910001968012A06D820229143196019680A43C0 +:103920001A60704701228240F6E73F2811D88023B1 +:103930000200DB05353AD968032A06D810229143E4 +:10394000D960D9680A43DA60EBE701222038824067 +:10395000F5E75F28E5D842238022181A413B8340CF +:10396000D205516A99435162516A0B435362D8E7B9 +:1039700010B50400012813D1A022184992050B6844 +:103980005B015B0913430B60154B164A1968114024 +:10399000154A0A431A60402219680A431A6010BD8A +:1039A0000028FCD101000A2000F056FB21000B206A +:1039B00000F052FBC0220A4B920019680A434021D2 +:1039C0001A601A688A431A60B022044912060B680A +:1039D0005B015B0913430B60E1E7C04614F0004054 +:1039E0001CF000407F00FEFF80FD010072B6074A18 +:1039F0001368013313600422054B1A600023054A43 +:103A000013608022D2055360FEE7C0467808FF1F8E +:103A1000C0F00040C4F0004005490B68002B05D100 +:103A2000044A0A6004490A60044A13607047C046A9 +:103A3000140AFF1F841E0000380AFF1FC4F0004054 +:103A40000023034A1360034A1360034A136070475C +:103A500054F0004040F1004044F10040002310B514 +:103A6000184C8AB0009301932378012B27D0694624 +:103A7000012000F0D9F9002817D1009B12490293C8 +:103A8000019B06AA0393114B02A81B680493104BD9 +:103A90001B68059300F088F810220E4906A800F074 +:103AA0001BFA002804D1FF23237000200AB010BDA8 +:103AB0000123094A074902A8237000F075F8012084 +:103AC000F4E7C0463064FF1F1029001108290011D7 +:103AD0000C290011202900113464FF1F13B50124A3 +:103AE0006946012000F0A0F9034B00940193FFF711 +:103AF000B5FF200016BDC046BB0B000010B5FFF798 +:103B00009FFFFFF7EBFF002802D0024B984710BD44 +:103B1000FEE7C046E1A2000002B471464908490030 +:103B2000095649008E4402BC7047C04602B4714633 +:103B300049084900095C49008E4402BC7047C046F0 +:103B400003B47146490840004900095A49008E44AF +:103B500003BC70470000000001B40248844601BC69 +:103B6000604700BFC9A9000001B40248844601BCF7 +:103B7000604700BF0167010001B40248844601BCF0 +:103B8000604700BF090E000001B40248844601BC32 +:103B9000604700BF01D7000001B40248844601BC61 +:103BA000604700BFBD5C010001B40248844601BC0F +:103BB000604700BFDD3F000001B40248844601BCFD +:103BC000604700BFE9F6000001B40248844601BC2A +:103BD000604700BFF935010001B40248844601BCCA +:103BE000604700BF7912010001B40248844601BC5D +:103BF000604700BFD9B0000001B40248844601BC50 +:103C0000604700BFED68010001B40248844601BC72 +:103C1000604700BF7997000001B40248844601BCA8 +:103C2000604700BFE512010001B40248844601BCB0 +:103C3000604700BFE917010001B40248844601BC97 +:103C4000604700BF71B0000001B40248844601BC67 +:103C5000604700BFE90B010001B40248844601BC83 +:103C6000604700BFD1AE000001B40248844601BCE9 +:103C7000604700BF8944000001B40248844601BC8B +:103C8000604700BF116E000001B40248844601BCC9 +:103C9000604700BF0934010001B40248844601BCFA +:103CA000604700BF090E000001B40248844601BC11 +:103CB000604700BFD544010001B40248844601BCFE +:103CC000604700BF4DF9000001B40248844601BCC2 +:103CD000604700BFB70E000001B40248844601BC33 +:103CE000604700BF6137010001B40248844601BC4F +:103CF000604700BF9DA9000001B40248844601BC92 +:103D0000604700BFF535010001B40248844601BC9C +:103D1000604700BFDD0A010001B40248844601BCCF +:103D2000604700BF51B8000001B40248844601BC9E +:103D3000604700BFDDB1001101B40248844601BCF8 +:103D4000604700BFC1F7000001B40248844601BCCF +:103D5000604700BFE94C010001B40248844601BC41 +:103D6000604700BF5976010001B40248844601BC97 +:103D7000604700BFE927000001B40248844601BC47 +:103D8000604700BFEDA5000001B40248844601BCB5 +:103D9000604700BF2144000001B40248844601BCD2 +:103DA000604700BF6911010001B40248844601BCAC +:103DB000604700BF53B9000001B40248844601BC0B +:103DC000604700BF8D11010001B40248844601BC68 +:103DD000604700BF8937010001B40248844601BC36 +:103DE000604700BFF90D010001B40248844601BCE0 +:103DF000604700BF8512010001B40248844601BC3F +:103E0000604700BFC95C010001B40248844601BCA0 +:103E1000604700BF156B010001B40248844601BC35 +:103E2000604700BF0D52010001B40248844601BC46 +:103E3000604700BFE1AC000001B40248844601BC09 +:103E4000604700BF3D71010001B40248844601BCD7 +:103E5000604700BFF9ED000001B40248844601BC90 +:103E6000604700BF75F8000001B40248844601BCF9 +:103E7000604700BFC1A5000001B40248844601BCF0 +:103E8000604700BF0189000001B40248844601BCBC +:103E9000604700BF016C010001B40248844601BCC8 +:103EA000604700BF9573010001B40248844601BC1D +:103EB000604700BF8914010001B40248844601BC78 +:103EC000604700BFE9D4000001B40248844601BC49 +:103ED000604700BF21A9000001B40248844601BC2C +:103EE000604700BFCD4C010001B40248844601BCCC +:103EF000604700BFC115010001B40248844601BCFF +:103F0000604700BF8D82000001B40248844601BCB6 +:103F1000604700BFCD0C010001B40248844601BCDB +:103F2000604700BFDD0C010001B40248844601BCBB +:103F3000604700BFA9D8000001B40248844601BC14 +:103F4000604700BF85C1000001B40248844601BC3F +:103F5000604700BFED6B010001B40248844601BC1C +:103F6000604700BF8B52010001B40248844601BC87 +:103F7000604700BFB352010001B40248844601BC4F +:103F8000604700BF75A9000001B40248844601BC27 +:103F9000604700BF19FA000001B40248844601BC22 +:103FA000604700BF6D0B010001B40248844601BCAC +:103FB000604700BF0134010001B40248844601BCDF +:103FC000604700BFC166010001B40248844601BCDD +:103FD000604700BFC56D010001B40248844601BCC2 +:103FE000604700BF0534010001B40248844601BCAB +:103FF000604700BFBD0B010001B40248844601BC0C +:10400000604700BFADAE000001B40248844601BC69 +:10401000604700BF9D6A000001B40248844601BCAD +:10402000604700BF2D6C010001B40248844601BC0A +:10403000604700BF6DF6000001B40248844601BC31 +:10404000604700BF496D010001B40248844601BCCD +:10405000604700BF8552010001B40248844601BC9C +:08406000604700BF359E00110E +:10406800020000005EBA00110100000090B80011C3 +:10407800020000005ABA001101000000A840FF1F0A +:104088000200000098B8001101000000B061FF1F95 +:104098000200000058BA0011030000002461FF1F4D +:1040A80012000000020000005EBA001101000000CA +:1040B800D8B80011020000005ABA0011010000002F +:1040C800D5B8001102000000E2B80011030000009A +:1040D8005F61FF1F0200000058BA001103000000D2 +:1040E8007461FF1F020000005ABA001101000000AD +:1040F800D4B8001102000000E0B80011030000006D +:104108003561FF1F0200000058BA001103000000CB +:104118005661FF1F020000005EBA00110100000096 +:1041280018B90011020000005ABA0011010000007D +:10413800F141FF1F020000002AB900110100000030 +:1041480013B90011020000005ABA00110100000062 +:10415800F041FF1F0200000028B900110100000013 +:104168007C61FF1F020000005ABA00110100000024 +:10417800EF41FF1F0200000026B9001101000000F6 +:1041880003B90011020000005ABA00110100000032 +:10419800EE41FF1F0200000024B9001101000000D9 +:1041A800FEB80011020000005ABA00110100000018 +:1041B800ED41FF1F0200000022B9001101000000BC +:1041C800F9B80011020000005ABA001101000000FD +:1041D800EC41FF1F0200000020B90011010000009F +:1041E800F4B80011020202020202000000000000FE +:1041F8000D0C0000094B0011CD4A00116CB90011DB +:1042080090011D0018001800FFFF070102030405B4 +:104218000602010600000000000000000000000087 +:104228000000000000000000000000000000000086 +:1042380003000000020000005EBA00110100000047 +:104248008CB90011020000005ABA001101000000E8 +:10425800AC42FF1F0200000096B9001101000000E7 +:10426800AA61FF1F0200000058BA001103000000F5 +:104278001464FF1F020000005ABA00110100000078 +:10428800AC42FF1F0200000094B9001101000000B9 +:10429800AC61FF1F0200000058BA001103000000C3 +:1042A8000C64FF1F12000000000100000000011153 +:1042B800FFFF0000504859360000000000000000D1 +:1042C8000B000500F0000000B400002800280028BA +:1042D8003075A000A000A000A00000080008E001C0 +:1042E800F000100010001000100010001000500026 +:1042F8005000500010001000D0070000000000001F +:104308000F0001000500307507001000010081FF53 +:1043180000000000FF0000001D700011256E001154 +:10432800B56B0011FFFF0100FF000000399A001172 +:10433800B5970011CD9600110000000000000000A4 +:1043480000000800040000003B0001085902E001D9 +:1043580088212800FF000000020000005EBA00115A +:104368000100000024BB0011020000005ABA00112D +:1043780001000000DD43FF1F0200000056BA0011D3 +:1043880001000000EC67FF1F020000005ABA00118C +:1043980001000000DC43FF1F0200000054BA0011B6 +:1043A80001000000DA43FF1F020000005ABA0011A2 +:1043B80001000000D843FF1F0200000052BA00119C +:1043C80001000000D043FF1F180018001D009001D5 +:1043D8000200000302020000020000005EBA0011A1 +:1043E8000100000038BB0011020000005ABA001199 +:1043F800010000002044FF1F0200000050BA001115 +:1044080000000000000000000200000058BA00117F +:0A441800030000000C68FF1F20FFE6 +:040000051FFF184180 +:00000001FF diff --git a/bin/BTH01_v15.bin b/bin/BTH01_v15.bin new file mode 100644 index 0000000..2864f5d Binary files /dev/null and b/bin/BTH01_v15.bin differ diff --git a/bin/TH05D_v15.bin b/bin/TH05D_v15.bin new file mode 100644 index 0000000..f83e704 Binary files /dev/null and b/bin/TH05D_v15.bin differ diff --git a/bin/TH05F_v15.bin b/bin/TH05F_v15.bin new file mode 100644 index 0000000..979af4a Binary files /dev/null and b/bin/TH05F_v15.bin differ diff --git a/bin/TH05_v15.bin b/bin/TH05_v15.bin new file mode 100644 index 0000000..e1ddd85 Binary files /dev/null and b/bin/TH05_v15.bin differ diff --git a/bin/THB1_v15.bin b/bin/THB1_v15.bin new file mode 100644 index 0000000..a975083 Binary files /dev/null and b/bin/THB1_v15.bin differ diff --git a/bin/THB2_v15.bin b/bin/THB2_v15.bin new file mode 100644 index 0000000..5993087 Binary files /dev/null and b/bin/THB2_v15.bin differ diff --git a/bthome_phy6222/Makefile b/bthome_phy6222/Makefile index 6d0023d..8896f3a 100644 --- a/bthome_phy6222/Makefile +++ b/bthome_phy6222/Makefile @@ -9,6 +9,7 @@ SRC_PATH = ./source SRC_PRJ = main.c SRC_PRJ += battery.c SRC_PRJ += battservice.c +SRC_PRJ += ccm.c SRC_PRJ += bthome_beacon.c SRC_PRJ += osal_peripheral.c SRC_PRJ += peripheral_main.c diff --git a/bthome_phy6222/SDK/lib/rf/00/patch.c b/bthome_phy6222/SDK/lib/rf/00/patch.c deleted file mode 100644 index e54f1c2..0000000 --- a/bthome_phy6222/SDK/lib/rf/00/patch.c +++ /dev/null @@ -1,8760 +0,0 @@ -/************************************************************ - patch.c - - SDK_LICENSE -MIN_SLEEP_TIME -************************************************************/ - -#include -#include - -//#include "common.h" -//#include "uart.h" -//#include "dma.h" -//#include "flash.h" -//#include "gpio_rom.h" -//#include "i2c.h" -//#include "i2s.h" -//#include "spi.h" -//#include "timer.h" -#include "ll.h" -#include "rf_phy_driver.h" -#include "global_config.h" -#include "jump_function.h" -#include "pwrmgr.h" -#include "uart.h" -#include "ll_sleep.h" -#include "ll_debug.h" -#include "ll.h" -#include "bus_dev.h" -#include "ll_hw_drv.h" -#include "gpio.h" -#include "ll_enc.h" -#include "OSAL_Clock.h" -#include "osal_bufmgr.h" -#include "OSAL_Memory.h" -#include "log.h" -#include "hci.h" -#include "hci_tl.h" -#include "version.h" -#include "flash.h" -#include "gatt.h" -#include "att.h" -#include "error.h" -#include "clock.h" -#include "rf_phy_driver.h" -//======================================================== -// build config -//#define __BUILD_RF_LIB_SLA__ (0x1) -//#define __BUILD_RF_LIB_MST__ (0x2) -//#define __BUILD_RF_LIB_MULTI__ ( __BUILD_RF_LIB_MST__ | __BUILD_RF_LIB_SLA__ ) -// -//#ifndef __BUILD_PATCH_CFG__ -// #define __BUILD_PATCH_CFG__ __BUILD_RF_LIB_MST__ -//#endif - -#ifndef USE_CODED_PHY -#define USE_CODED_PHY 0 -#endif - -#define DBG_BUILD_LL_TIMING 0 //0x01 for enable LL timing debug - - -// ====================== -//#define DBG_GPIO_WRITE(a,b) gpio_write((a),(b)) -#define DBG_GPIO_WRITE(a,b) -#define DBGIO_LL_TRIG P23 -#define DBGIO_LL_IRQ P24 -#define DBGIO_APP_WAKEUP P18 -#define DBGIO_APP_SLEEP P20 -#define DBGIO_DIS_IRQ P11 -#define DBGIO_EN_IRQ P34 - -#define LL_HW_MODE_STX 0x00 -#define LL_HW_MODE_SRX 0x01 -#define LL_HW_MODE_TRX 0x02 -#define LL_HW_MODE_RTX 0x03 -#define LL_HW_MODE_TRLP 0x04 -#define LL_HW_MODE_RTLP 0x05 - -// =============== add in A2 for simultaneous slave and adv/scan -#define LL_SEC_STATE_IDLE 0x00 -#define LL_SEC_STATE_SCAN 0x01 -#define LL_SEC_STATE_ADV 0x02 -#define LL_SEC_STATE_SCAN_PENDING 0x03 -#define LL_SEC_STATE_ADV_PENDING 0x04 -#define LL_SEC_STATE_IDLE_PENDING 0x05 -#define LL_SEC_STATE_INIT 0x06 -#define LL_SEC_STATE_INIT_PENDING 0x07 - -#define WFI() __WFI() - -#define LL_MODE_INVALID 0xFF -#define LL_MODE_LEGACY 0x00 -#define LL_MODE_EXTENDED 0x01 - -#define LL_COPY_DEV_ADDR_LE( dstPtr, srcPtr ) { \ - (dstPtr)[0] = (srcPtr)[0]; \ - (dstPtr)[1] = (srcPtr)[1]; \ - (dstPtr)[2] = (srcPtr)[2]; \ - (dstPtr)[3] = (srcPtr)[3]; \ - (dstPtr)[4] = (srcPtr)[4]; \ - (dstPtr)[5] = (srcPtr)[5];} - -#define LL_WINDOW_SIZE 2 // 2.5ms in 1.25ms ticks - -#define LL_CALC_NEXT_SCAN_CHN(chan) { chan ++; \ - chan = (chan > LL_SCAN_ADV_CHAN_39) ? LL_SCAN_ADV_CHAN_37 : chan;} - -#define CONN_CSA2_ALLOW 0x00000080 - -//------------------------------------------------------------------------------------ -//extern rom function -// -//extern int gpio_write(gpio_pin_e pin, bit_action_e en); -extern uint8 ll_processExtAdvIRQ(uint32_t irq_status); -extern uint8 ll_processPrdAdvIRQ(uint32_t irq_status); -extern uint8 ll_processExtScanIRQ(uint32_t irq_status); -extern uint8 ll_processExtInitIRQ(uint32_t irq_status); -extern uint8 ll_processPrdScanIRQ(uint32_t irq_status); -extern uint8 ll_processBasicIRQ(uint32_t irq_status); -//extern int clear_timer_int(AP_TIM_TypeDef* TIMx); -extern uint8 isTimer1Running(void); -//extern uint8 isTimer4Running(void); -extern void clear_timer(AP_TIM_TypeDef* TIMx); - -extern uint8 ll_processMissMasterEvt(uint8 connId); -extern uint8 ll_processMissSlaveEvt(uint8 connId); -//extern int gpio_write(GPIO_Pin_e pin, uint8_t en); -extern void ll_hw_tx2rx_timing_config(uint8 pkt); -//extern void wakeup_init0(void); -extern void enter_sleep_off_mode0(Sleep_Mode mode); -//extern void spif_release_deep_sleep(void); -extern void spif_set_deep_sleep(void); - -extern uint8 ll_hw_get_tr_mode(void); -extern int ll_hw_get_rfifo_depth(void); -extern void move_to_master_function(void); - -extern struct buf_tx_desc g_tx_adv_buf; -//extern struct buf_tx_desc g_tx_ext_adv_buf; -extern struct buf_tx_desc tx_scanRsp_desc; - -extern struct buf_rx_desc g_rx_adv_buf; - -//extern chipMAddr_t g_chipMAddr; - -extern uint8 g_llAdvMode; -extern uint32_t g_llHdcDirAdvTime; - -extern uint32 g_new_master_delta; -//----------------------------------------------------------------------------------- -//extern rom variable -// -uint32* pGlobal_config = NULL; -void efuse_init(void); - -const unsigned char libRevisionDate[]=__DATE__; -const unsigned char libRevisionTime[]=__TIME__; - -uint8 CreateConn_Flag = FALSE; -uint32_t g_t_llhwgo = 0; -uint16 g_lastSlaveLatency=0; - -extern uint32 hclk_per_us; -extern uint32 hclk_per_us_shift; -extern volatile uint8 g_clk32K_config; -///////////////////////// - -extern uint32 sleep_flag; -extern uint32 osal_sys_tick; -extern uint32 ll_remain_time; - -extern uint32 llWaitingIrq; -extern uint32 ISR_entry_time; - -extern uint32 counter_tracking; - -extern unsigned int g_top_irqstack; -//extern uint32_t __initial_sp; // file.ld: __initial_sp = ORIGIN(sram) + LENGTH(sram); -//extern void _start(void) __NO_RETURN; -extern uint32_t g_smartWindowSize; -extern volatile uint8_t g_same_rf_channel_flag; -extern uint32_t g_TIM2_IRQ_TIM3_CurrCount; -extern uint32_t g_TIM2_IRQ_to_Sleep_DeltTick; -extern uint32_t g_TIM2_IRQ_PendingTick; -extern uint32_t g_osal_tick_trim; -extern uint32_t g_osalTickTrim_mod; -//extern uint32_t g_TIM2_wakeup_delay; -extern uint32_t rtc_mod_value; -extern uint32_t g_counter_traking_cnt; -extern uint32_t sleep_tick; -extern uint32_t g_wakeup_rtc_tick; -extern int slave_conn_event_recv_delay; -extern uint8 g_llScanMode; -extern uint8 g_currentPeerAddrType; -extern uint8 g_currentPeerRpa[LL_DEVICE_ADDR_LEN]; -extern uint8 ownRandomAddr[]; -extern uint16_t ll_hw_get_tfifo_wrptr(void); -extern uint32_t llCurrentScanChn; -extern uint8 ownPublicAddr[]; -extern uint32_t llScanTime; -extern uint32_t llScanT1; -extern uint8 isPeerRpaStore; -extern uint8 currentPeerRpa[LL_DEVICE_ADDR_LEN]; -extern uint8 storeRpaListIndex; -extern uint8 g_currentLocalAddrType; -extern uint8 g_currentLocalRpa[LL_DEVICE_ADDR_LEN]; -//extern llPduLenManagment_t g_llPduLen; -extern uint8_t llSecondaryState; // secondary state of LL - -void __wdt_init(void) -{ - typedef void (*my_function)(void ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(HAL_WATCHDOG_INIT)); - - if (pFunc != NULL) - pFunc(); -} - -uint8 ll_processBasicIRQ_SRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} -uint8 ll_processBasicIRQ_secondaryAdvTRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECADVTRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -uint8 ll_processBasicIRQ_ScanTRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SCANTRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -uint8 ll_processBasicIRQ_secondaryScanSRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECSCANSRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -uint8 ll_processBasicIRQ_secondaryInitSRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECINITSRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -//---------------------------------------------------------------------------------------------- -//patch - -void ll_hw_go1(void) -{ - //*(volatile uint32_t *)0x4000f0b8 = 0; // pclk_clk_gate_en - //20190115 ZQ recorded ll re-trigger - if(llWaitingIrq==TRUE) - { - g_pmCounters.ll_trigger_err++; - } - - g_t_llhwgo = read_current_fine_time(); - *(volatile uint32_t*)(LL_HW_BASE+ 0x14) = LL_HW_IRQ_MASK; //clr irq status - *(volatile uint32_t*)(LL_HW_BASE+ 0x0c) = 0x0001; //mask irq :only use mode done - *(volatile uint32_t*)(LL_HW_BASE+ 0x00) = 0x0001; //trig - - if(CreateConn_Flag) - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &initInfo.ownAddr[0], 6); - CreateConn_Flag= FALSE; - } - - //2018-05-23 ZQ - //fix negative rfPhyFreqOff bug, when in scan_rsq case, ll_hw_go will be excuted before set_channel() - //so do not change the tx_rx_foff - //next metal change could modified the set_channel() to deal with the tx_rx_foff - uint8_t rfChnIdx = PHY_REG_RD(0x400300b4)&0xff; - - if(!g_same_rf_channel_flag) - { - if(g_rfPhyFreqOffSet>=0) - PHY_REG_WT(0x400300b4, (g_rfPhyFreqOffSet<<16)+(g_rfPhyFreqOffSet<<8)+rfChnIdx); - else - PHY_REG_WT(0x400300b4, ((255+g_rfPhyFreqOffSet)<<16)+((255+g_rfPhyFreqOffSet)<<8)+(rfChnIdx-1) ); - } - - //2018-02-09 ZQ - //considering the ll_trigger timing, Trigger first, then set the tp_cal cap - - if(rfChnIdx<2) - { - rfChnIdx=2; - } - else if(rfChnIdx>80) - { - rfChnIdx=80; - } - - if(g_rfPhyPktFmt==PKT_FMT_BLE2M) - subWriteReg(0x40030094,7,0,RF_PHY_TPCAL_CALC(g_rfPhyTpCal0_2Mbps,g_rfPhyTpCal1_2Mbps,(rfChnIdx-2)>>1)); - else - subWriteReg(0x40030094,7,0,RF_PHY_TPCAL_CALC(g_rfPhyTpCal0,g_rfPhyTpCal1,(rfChnIdx-2)>>1)); - - int llModeLast; - llModeLast = ll_hw_get_tr_mode(); - extern uint8_t rxFifoFlowCtrl; - extern uint8 ctrlToHostEnable; - - if (llModeLast == LL_HW_MODE_RTLP || llModeLast == LL_HW_MODE_TRLP) - { - if (ctrlToHostEnable && rxFifoFlowCtrl) - { - set_max_length(0); - } - - //for codedphy rxtimeout - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - if (connPtr->llRfPhyPktFmt == PKT_FMT_BLR125K || connPtr->llRfPhyPktFmt == PKT_FMT_BLR500K) - { - ll_hw_set_rx_timeout(350); - } - } - - if((llModeLast == LL_HW_MODE_TRX)&&((llState == LL_STATE_ADV_UNDIRECTED ||llState == LL_STATE_ADV_SCAN ||llState == LL_STATE_ADV_DIRECTED)|| llSecondaryState == LL_SEC_STATE_ADV)) - { - ll_hw_set_rx_timeout(108); - } - - // fix slave scan rsp addr type bug - // if (llModeLast == LL_HW_MODE_STX && - // (llState == LL_STATE_ADV_UNDIRECTED || - // llState == LL_STATE_ADV_SCAN ) - // ) - // { - // if(adv_param.ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC) - // { - // SET_BITS(tx_scanRsp_desc.txheader, LL_DEV_ADDR_TYPE_PUBLIC, TX_ADD_SHIFT, TX_ADD_MASK); - // } - // else if(adv_param.ownAddrType == LL_DEV_ADDR_TYPE_RANDOM) - // { - // SET_BITS(tx_scanRsp_desc.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - // } - // DBG_GPIO_WRITE(DBGIO_LL_TRIG,1); - // DBG_GPIO_WRITE(DBGIO_LL_TRIG,0); - // } - // - //disable scan backoff - scanInfo.currentBackoff=1; -} - -//for fix uint8 lastSlaveLatency issue -void LL_set_default_conn_params1(llConnState_t* connPtr) -{ - LL_set_default_conn_params0(connPtr); - g_lastSlaveLatency = 0; -} - -uint8 llSetupNextSlaveEvent1( void ) -{ - uint8 stat = llSetupNextSlaveEvent0(); - llConnState_t* connPtr; - // get connection information - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - g_lastSlaveLatency = connPtr->slaveLatency; - return stat; -} - -void ll_scheduler2(uint32 time) -{ - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - if(g_lastSlaveLatency > connPtr->lastSlaveLatency) - { - uint32 delttime = connPtr->lastTimeToNextEvt * (g_lastSlaveLatency -connPtr->lastSlaveLatency) * 625; - - if((time != LL_INVALID_TIME) &&(time != 200)) - { - time += delttime; - } - } - - ll_scheduler0(time); -} - -extern int slave_conn_event_recv_delay; -void ll_adptive_adj_next_time1(uint32_t next_time) -{ - (void)(next_time); - uint32_t loop_time,anchor_point; - - // read loop timeout counter, system clock may be 16MHz, 32MHz, 64MHz and 48MHz, 96MHz - if (hclk_per_us_shift != 0) - { - loop_time = ll_hw_get_loop_cycle() >> hclk_per_us_shift; // convert to us - } - else - { - loop_time = ll_hw_get_loop_cycle() / hclk_per_us; // convert to us - } - - if (hclk_per_us_shift != 0) - { - anchor_point = ll_hw_get_anchor() >> hclk_per_us_shift; // convert to us - } - else - { - anchor_point = ll_hw_get_anchor() / hclk_per_us; // convert to us - } - - //================================================== - //DO NOT ADD LOG PRINTF In this FUNCTION - //================================================== - llConnState_t* connPtr; - // get connection information - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - //no anche point - if (connPtr->rx_timeout) - { - connPtr->pmCounter.ll_tbd_cnt1++; - slave_conn_event_recv_delay = LL_TIME_DELTA(g_t_llhwgo, ISR_entry_time)-370+160;//160:timer1 irq->hwgo trigger - } - else - { - connPtr->pmCounter.ll_tbd_cnt1 = 0; - slave_conn_event_recv_delay = loop_time - anchor_point+pGlobal_config[SLAVE_CONN_DELAY]; - } - - // slave_conn_event_recv_delay -= 370; - //slave_conn_event_recv_delay += (connPtr->curParam.connInterval >> 2); - // slave_conn_event_recv_delay += pGlobal_config[SLAVE_CONN_DELAY]; - - // if( connPtr->firstPacket ) - // { - // slave_conn_event_recv_delay+=500; - // } - - //only adj for the 1st rxtimeout - if (1 == connPtr->pmCounter.ll_tbd_cnt1) - { - slave_conn_event_recv_delay += 500; - } - - //adj for ntrm pkt, each pkt cost 50us in wt tfifo - //if(connPtr->rx_timeout) - //slave_conn_event_recv_delay += ((connPtr->ll_buf.ntrm_cnt) * 50); -} - -void llConnTerminate1( llConnState_t* connPtr, - uint8 reason ) -{ - /* - ZQ:20210622 - process chanmp update passed instant(core 4.2 should term link, since core 5.0 just update the ) - just update chanmap do not trigger ll conn termination - */ - if( reason == LL_CTRL_PKT_INSTANT_PASSED_PEER_TERM - && ((uint16)(connPtr->chanMapUpdateEvent - connPtr->currentEvent) >= LL_MAX_UPDATE_COUNT_RANGE ) - &&((!osal_memcmp(connPtr->chanMap,connPtr->chanMapUpdate.chanMap,5)))) - { - llProcessChanMap(connPtr, connPtr->chanMapUpdate.chanMap); - } - else - { - llConnTerminate0(connPtr,reason); - } -} - -/* - fix secAdv evt rfphyPkt error issue -*/ -//extern uint8 llSetupSecAdvEvt0( void ); -uint8 llSetupSecAdvEvt1( void ) -{ - uint8 ret = FALSE; - - if (llState == LL_STATE_IDLE) - { - if (adv_param.advEvtType == LL_ADV_CONNECTABLE_UNDIRECTED_EVT) - llState = LL_STATE_ADV_UNDIRECTED; - else if (adv_param.advEvtType == LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) - llState = LL_STATE_ADV_NONCONN; - else if (adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT) - llState = LL_STATE_ADV_SCAN; - - llSetupAdv(); - llSecondaryState = LL_SEC_STATE_IDLE; - return TRUE; - } - else - { - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - g_rfPhyPktFmt = LE_1M_PHY; - //support rf phy change - rf_phy_change_cfg0(g_rfPhyPktFmt); - - if (adv_param.advEvtType == LL_ADV_CONNECTABLE_UNDIRECTED_EVT) - ret = llSetupSecConnectableAdvEvt(); - else if (adv_param.advEvtType == LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) - ret = llSetupSecNonConnectableAdvEvt(); - else if (adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT) - ret = llSetupSecScannableAdvEvt(); - else - return FALSE; // other type adv should not here - - g_rfPhyPktFmt = connPtr->llRfPhyPktFmt; - } - - return ret; -} - -//fix sec_scan rfphy issue -void llSetupSecScan1( uint8 chan ) -{ - uint32 scanTime; - // Hold off interrupts. - HAL_ENTER_CRITICAL_SECTION( ); - scanTime = scanInfo.scanWindow * 625; - -// if(llWaitingIrq) -// { -// LOG("==== error, mode: %d\n", scanInfo.scanMode); -// } - - if (llState == LL_STATE_IDLE) - { - llState = LL_STATE_SCAN; - llSecondaryState = LL_SEC_STATE_IDLE; - } - else - { - // calculate scan time - scanTime = llCalcMaxScanTime(); - - if (scanTime) // trigger scan - { - llSecondaryState = LL_SEC_STATE_SCAN; - } - else // no enough time to scan, pending - { - llSecondaryState = LL_SEC_STATE_SCAN_PENDING; - g_pmCounters.ll_conn_scan_pending_cnt ++; - HAL_EXIT_CRITICAL_SECTION( ); - return; - } - } - - if (scanTime > scanInfo.scanWindow * 625) - scanTime = scanInfo.scanWindow * 625; - - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - g_rfPhyPktFmt = LE_1M_PHY; - //support rf phy change - rf_phy_change_cfg0(g_rfPhyPktFmt); - // reset all FIFOs; all data is forfeit - ll_hw_rst_tfifo(); - ll_hw_rst_rfifo(); - set_crc_seed(ADV_CRC_INIT_VALUE); // crc seed for adv is same for all channels - set_access_address(ADV_SYNCH_WORD); - set_channel(chan); - set_whiten_seed(chan); - set_max_length(0xff); - ll_hw_set_rx_timeout(scanTime); // maximum scan time, note that actual scan time may exceed the limit if timer expiry when LL engine receiving a report - ll_hw_set_srx(); - ll_hw_ign_rfifo(LL_HW_IGN_CRC|LL_HW_IGN_EMP); - ll_hw_go(); - llScanT1 = read_current_fine_time(); - g_rfPhyPktFmt = connPtr->llRfPhyPktFmt; - llWaitingIrq = TRUE; - HAL_EXIT_CRITICAL_SECTION(); -// uint32 remainTime = read_LL_remainder_time(); -// LOG("<%d %d>", scanTime, remainTime); - return; -} - -extern int32 connUpdateTimer; -/******************************************************************************* - GLOBAL VARIABLES -*/ - -extern perStatsByChan_t* p_perStatsByChan; -extern uint8 g_conn_taskID; -extern uint16 g_conn_taskEvent; - - -/******************************************************************************* - Prototypes -*/ -extern uint8 llProcessMasterControlProcedures( llConnState_t* connPtr ); -extern uint8 llSetupNextMasterEvent( void ); -/******************************************************************************* - @fn llMasterEvt_TaskEndOk - - @brief This function is used to handle the PHY task done end cause - TASK_ENDOK that can result from one of three causes. First, a - a packet was successfully received with MD=0 (i.e. no more Slave - data) after having transmitted a packet with MD=0. Second, a - received packet did not fit in the RX FIFO after transmitting - a packet with MD=0. Third, a packet was received from the Slave - while BLE_L_CONF.ENDC is true or after Timer 2 Event 2 occurs. - - Note: The TASK_ENDOK end cause will also handle the TASK_NOSYNC, - TASK_RXERR, and TASK_MAXNACK end causes as well. - - input parameters - - @param None. - - output parameters - - @param None. - - @return None. -*/ -void llMasterEvt_TaskEndOk1( void ) -{ - llConnState_t* connPtr; - uint16 numPkts; - int i; - uint32_t T2, schedule_time; - // get connection information - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - // advance the connection event count - connPtr->currentEvent = connPtr->nextEvent; - // get the total number of received packets - // Note: Since Auto-Flush is enabled, numRxFifoFull is incremented instead of - // numRxOk when there's no room in the FIFO. When Auto-Flush is - // disabled and there's no room in the FIFO, only numRxFifoFull is - // incremented for any kind of received packet. - numPkts = ( rfCounters.numRxOk + - rfCounters.numRxNotOk + - rfCounters.numRxEmpty + - rfCounters.numRxIgnored + - rfCounters.numRxFifoFull ); - // collect packet error information - connPtr->perInfo.numPkts += numPkts; - connPtr->perInfo.numCrcErr += rfCounters.numRxNotOk; - // - connPtr->perInfo.numEvents++; - -// // check if PER by Channel is enabled -// if ( connPtr->perInfoByChan != NULL ) -// { -// connPtr->perInfoByChan->numPkts[ PHY_GET_DATA_CHAN() ] += numPkts; -// connPtr->perInfoByChan->numCrcErr[ PHY_GET_DATA_CHAN() ] += rfCounters.numRxNotOk; -// } - - // check if any data has been received - // Note: numRxOk includes numRxCtrl - // Note: numRxNotOk removed as 4.5.2 of spec says the timer is reset upon - // receipt of a "valid packet", which is taken to mean no CRC error. - if ( rfCounters.numRxOk || rfCounters.numRxIgnored || - rfCounters.numRxEmpty || rfCounters.numRxFifoFull - || connPtr->rx_crcok != 0) // ever Rx CRC OK packet - { - // yes, so update the supervision expiration count - connPtr->expirationEvent = connPtr->currentEvent + connPtr->expirationValue; - // clear flag that indicates we received first packet - // Note: The first packet only really needs to be signalled when a new - // connection is formed. However, there's no harm in resetting it - // every time in order to simplify the control logic. - // Note: True-Low logic is used here to be consistent with nR's language. - connPtr->firstPacket = 0; - - //20181206 ZQ add phy change nofity - //receiver ack notifty the host - if(connPtr->llPhyModeCtrl.isChanged==TRUE) - { - connPtr->llPhyModeCtrl.isChanged = FALSE; - llPhyModeCtrlUpdateNotify(connPtr,LL_STATUS_SUCCESS); - } - } - else // no data received, or packet received with CRC error - { - // check if we received any packets with a CRC error - if ( rfCounters.numRxNotOk ) - { - // clear flag that indicates we received first packet - // Note: The first packet only really needs to be signalled when a new - // connection is formed. However, there's no harm in resetting it - // every time in order to simplify the control logic. - // Note: True-Low logic is used here to be consistent with nR's language. - connPtr->firstPacket = 0; - } - else // no packet was received - { - // collect packet error information, TI use HCI ext to get this information. No used by PHY+ now - connPtr->perInfo.numMissedEvts++; - } - - // check if we have a Supervision Timeout - if ( connPtr->expirationEvent == connPtr->currentEvent ) // 20201011�� should be "==" - { - // check if the connection has already been established - if ( connPtr->firstPacket == 0 ) - { - // yes, so terminate with LSTO - llConnTerminate( connPtr, LL_SUPERVISION_TIMEOUT_TERM ); - } - else // no, so this is a failure to establish the connection - { - // so terminate immediately with failure to establish connection - llConnTerminate( connPtr, LL_CONN_ESTABLISHMENT_FAILED_TERM ); - } - -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); // link is terminated, update scheduler info -//#endif - return; - } - } - - /* - ** Process RX Data Packets - */ - // check if there is any data in the Rx FIFO - uint8_t buffer_size; - buffer_size = getRxBufferSize(connPtr); - - for ( i = 0; i < buffer_size; i ++) // note: i < getRxBufferSize() will fail the loop - { - // there is, so process it; check if data was processed - if ( llProcessRxData() == FALSE ) - { - // it wasn't, so we're done -// ll_scheduler(LL_INVALID_TIME); - break; - } - } - - // check if this connection was terminated - if ( !connPtr->active ) - { -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); -//#endif - return; - } - - /* - ** Check Control Procedure Processing - */ - if ( llProcessMasterControlProcedures( connPtr ) == LL_CTRL_PROC_STATUS_TERMINATE ) - { -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); // link is termainte, update schedle info -//#endif - return; - } - else if(connPtr->ctrlDataIsPending == 1) - { - uint8 pktLenctrl; - uint8* pBufctrl = connPtr->ctrlData.data; - pktLenctrl = LL_REJECT_EXT_IND_PAYLOAD_LEN; - - if((connPtr->ctrlData .header == (pktLenctrl << 8 | LL_DATA_PDU_HDR_LLID_CONTROL_PKT))&&(*pBufctrl == LL_CTRL_REJECT_EXT_IND)) - { - uint8 ctrlerrorcode = *(pBufctrl + 1); - *(pBufctrl + 1) = connPtr->rejectOpCode; - *(pBufctrl + 2) = ctrlerrorcode; - } - } - - /* - ** Process TX Data Packets - */ - // copy any pending data to the TX FIFO - llProcessTxData( connPtr, LL_TX_DATA_CONTEXT_POST_PROCESSING ); - - // if any fragment l2cap pkt, copy to TX FIFO - //l2capPocessFragmentTxData((uint16)connPtr->connId); - - /* - ** Setup Next Slave Event Timing - */ - - // update next event, calculate time to next event, calculate timer drift, - // update anchor points, setup NR T2E1 and T2E2 events - if ( llSetupNextMasterEvent() == LL_SETUP_NEXT_LINK_STATUS_TERMINATE ) // PHY+ always return success here - { - // this connection is terminated, so nothing to schedule -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); -//#endif - return; - } - - /* - ** Schedule Next Task - */ -//#ifdef MULTI_ROLE -// schedule_time = ll_get_next_timer(g_ll_conn_ctx.currentConn); - schedule_time = (connPtr->curParam.connInterval + connUpdateTimer) * 625; - T2 = read_current_fine_time(); - // TODO: don't know the cause, here need add 32us to gain accurate timing - //2020.11.11,Jie,master conInterval-5us - ll_scheduler(schedule_time - 10 - LL_TIME_DELTA(g_ll_conn_ctx.timerExpiryTick, T2) ); // 10us: rough delay from timer expire to timer ISR -//#endif - return; -} - -uint8_t ll_hw_read_rfifo1(uint8_t* rxPkt, uint16_t* pktLen, uint32_t* pktFoot0, uint32_t* pktFoot1) -{ - int rdPtr, wrPtr, rdDepth, blen, wlen; - uint32_t* p_rxPkt = (uint32_t*)rxPkt; - ll_hw_get_rfifo_info(&rdPtr, &wrPtr, &rdDepth); - - if(rdDepth > 0) - { - *p_rxPkt++ = *(volatile uint32_t*)(LL_HW_RFIFO); - uint8_t sp =0;//BLE_HEAD_WITH_CTE(rxPkt[0]); - blen = rxPkt[1]+sp; //get the byte length for header - wlen = 1+ ( (blen+2+3-1) >>2 ); //+2 for Header, +3 for crc - - //compared the wlen and HW_WTR - //20190115 ZQ - if( (wlen+2) >rdDepth) - { - g_pmCounters.ll_rfifo_read_err++; - rxPkt[0] = 0; - *pktFoot0 = 0; - *pktFoot1 = 0; - *pktLen = 0; - return 0; - } - - while(p_rxPkt < (uint32_t*)rxPkt + wlen) - { - *p_rxPkt++ = *(volatile uint32_t*)(LL_HW_RFIFO); - } - - *pktFoot0 = *(volatile uint32_t*)(LL_HW_RFIFO); - *pktFoot1 = *(volatile uint32_t*)(LL_HW_RFIFO); - *pktLen = blen + 2; - return wlen; - } - else - { - rxPkt[0] = 0; - *pktFoot0 = 0; - *pktFoot1 = 0; - *pktLen = 0; - return 0; - } -} - -/******************************************************************************* - @fn ll_processBasicIRQ_SRX - - @brief Interrupt Request Handler for Link Layer - - input parameters - - @param None. - - output parameters - - @param None. - - @return None -*/ -uint8 ll_processBasicIRQ_SRX0(uint32_t irq_status) -{ - uint8 mode; - uint32_t T2, delay; - llConnState_t* connPtr; - connPtr = &conn_param[0]; // To update - HAL_ENTER_CRITICAL_SECTION(); - mode = ll_hw_get_tr_mode(); - - if (mode == LL_HW_MODE_SRX - && (llState == LL_STATE_SCAN || llState == LL_STATE_INIT)) - { - ll_debug_output(DEBUG_LL_HW_SRX); - uint8_t rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; - uint8_t bWlRlCheckOk = TRUE; - uint8_t* peerAddr; - - // ============= scan case - if (llState == LL_STATE_SCAN) - { - uint8 bSendingScanReq = FALSE; - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth()>0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len != 0 - && ((pdu_type == ADV_IND) - || (pdu_type == ADV_NONCONN_IND) - || (pdu_type == ADV_SCAN_IND) - || (pdu_type == ADV_DIRECT_IND))) - { - uint8 addrType; // peer address type - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - peerAddr = &g_rx_adv_buf.data[0]; // AdvA - addrType = txAdd; - - // Resolving list checking - // case 1: receive ScanA using RPA - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = TRUE; - - if (g_llRlEnable == TRUE) - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - // refer to HCI LE Advertising Report Event, RPA address type should be - // 0x02: Public Identity Address (Corresponds to Resolved Private Address) - // 0x03: Random (static) Identity Address (Corresponds to Resolved Private Address) - addrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bWlRlCheckOk = TRUE; - } - else - { - bWlRlCheckOk = FALSE; - } - } - } - else // case 2: receive ScanA using device ID, or scan device not using RPA - { - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if ( g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5]) - { - // the device ID in the RPA list - if (g_llResolvinglist[i].privacyMode == DEVICE_PRIVACY_MODE || - ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - rpaListIndex = i; - else - bWlRlCheckOk = FALSE; // the device in the RPA list but not using RPA, reject it - - break; - } - } - } - - // check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (scanInfo.wlPolicy == LL_SCAN_WL_POLICY_USE_WHITE_LIST) - && (bWlRlCheckOk == TRUE)) - { - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - /* 20201218 Jie,direct adv report when no whitelist filter - else if(pdu_type == ADV_DIRECT_IND) // direct adv only report addr & addr type match the whitelist - bWlRlCheckOk = FALSE; - */ - // if valid, trigger osal event to report adv - if (bWlRlCheckOk == TRUE) - { - uint8 advEventType; - int8 rssi; - llCurrentScanChn = scanInfo.nextScanChan; - - // active scan scenario, send scan req - if (scanInfo.scanType == LL_SCAN_ACTIVE - && (pdu_type== ADV_IND - || pdu_type == ADV_SCAN_IND )) - { - // back off process - scanInfo.currentBackoff = (scanInfo.currentBackoff > 0) ? (scanInfo.currentBackoff - 1) : 0; - - if (scanInfo.currentBackoff == 0) // back off value = 0, send scan req - { - g_tx_adv_buf.txheader = 0xC03; - //ZQ 20181012: add AdvFilterCB - uint8_t retAdvFilter = 1; - - if(LL_PLUS_AdvDataFilterCBack) - { - //!!!CATION!!! - //timing critical - //txbuf will be changed - retAdvFilter = LL_PLUS_AdvDataFilterCBack(); - } - - if(retAdvFilter) - { - g_same_rf_channel_flag = TRUE; - ll_hw_set_tx_rx_interval(10); - ll_hw_set_rx_timeout(158); - set_max_length(0xFF); // add 2020-03-10 - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - delay = 118 - delay - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY]; - ll_hw_set_trx(); // set LL HW as single TRx mode - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - ll_hw_go(); - g_pmCounters.ll_send_scan_req_cnt++; - llWaitingIrq = TRUE; - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - ll_hw_ign_rfifo(LL_HW_IGN_CRC | LL_HW_IGN_EMP); - - // construct SCAN REQ packet - //g_tx_adv_buf.txheader = 0xCC3; - -// //20181012 ZQ: change the txheader according to the adtype -// g_tx_adv_buf.txheader |=(((g_rx_adv_buf.rxheader&0x40)<<1) -// | (scanInfo.ownAddrType<< TX_ADD_SHIFT & TX_ADD_MASK)); - - // fill scanA, using RPA or device ID address // TODO: move below code before ll_hw_go? - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM && - !ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk) - && (scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC - || scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) - { - // for resolving private address case, calculate the scanA with Local IRK - ll_CalcRandomAddr(g_llResolvinglist[rpaListIndex].localIrk, &g_tx_adv_buf.data[0]); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - } - else - { - //2020.10.26 Jie,TX_ADD update - if (scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC || scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC) - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownPublicAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_PUBLIC, TX_ADD_SHIFT, TX_ADD_MASK); - } - else - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownRandomAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - } - } - - g_tx_adv_buf.txheader |= (txAdd << RX_ADD_SHIFT & RX_ADD_MASK); - // AdvA, for SCAN REQ, it should identical to the ADV_IND/ADV_SCAN_IND - g_tx_adv_buf.data[6] = g_rx_adv_buf.data[0]; - g_tx_adv_buf.data[7] = g_rx_adv_buf.data[1]; - g_tx_adv_buf.data[8] = g_rx_adv_buf.data[2]; - g_tx_adv_buf.data[9] = g_rx_adv_buf.data[3]; - g_tx_adv_buf.data[10] = g_rx_adv_buf.data[4]; - g_tx_adv_buf.data[11] = g_rx_adv_buf.data[5]; - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(g_tx_adv_buf.txheader), - ((g_tx_adv_buf.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - bSendingScanReq = TRUE; - g_same_rf_channel_flag = FALSE; - } - } - } - - // convert pdu type to GAP enum - switch (pdu_type) - { - case ADV_IND: - advEventType = LL_ADV_RPT_ADV_IND; - break; - - case ADV_SCAN_IND: - advEventType = LL_ADV_RPT_ADV_SCANNABLE_IND; - break; - - case ADV_DIRECT_IND: - advEventType = LL_ADV_RPT_ADV_DIRECT_IND; - break; - - case ADV_NONCONN_IND: - advEventType = LL_ADV_RPT_ADV_NONCONN_IND; - break; - - case ADV_SCAN_RSP: - advEventType = LL_ADV_RPT_INVALID; - break; - - default: - advEventType = LL_ADV_RPT_ADV_IND; - break; - } - - rssi = -(pktFoot1 >> 24); - // below function cost 51us/66us(measure with GPIO) - LL_AdvReportCback( advEventType, // event type - addrType, // Adv address type (TxAdd) - &peerAddr[0], // Adv address (AdvA) - pktLen - 8, // length of rest of the payload, 2 - header, 6 - advA - &g_rx_adv_buf.data[6], // rest of payload - rssi ); // RSSI - g_pmCounters.ll_recv_adv_pkt_cnt ++; - } - } - else - { - // invalid ADV PDU type -// llSetupScan(); - } - } - - // if not waiting for scan rsp, schedule next scan - if (!bSendingScanReq) - { - // not sending SCAN REQ, update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= scanInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(scanInfo.nextScanChan); - - // schedule next scan event - if (scanInfo.scanWindow == scanInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - LL_evt_schedule(); - else -// set_timer4((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - ll_schedule_next_event((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - - // reset scan total time - llScanTime = 0; - } - else - { -// AT_LOG("%03x %x %d %d %d %d\n",irq_status,*(volatile uint32_t *)(0x40031054),ll_hw_get_anchor(), -// g_rfifo_rst_cnt,(uint32_t)ISR_entry_time,read_current_fine_time()); - llSetupScan(scanInfo.nextScanChan); - } - } - } - // =========== initiator case - else if (llState == LL_STATE_INIT) - { - uint8 bConnecting = FALSE; - uint8 bMatchAdv = FALSE; // RPA checking OK in previous adv event, and new adv event identical to the old one - connPtr = &conn_param[initInfo.connId]; // connId is allocated when create conn - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth() > 0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len != 0 - && ((pdu_type == ADV_IND) || pdu_type == ADV_DIRECT_IND)) - { - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - uint8_t chSel = (g_rx_adv_buf.rxheader & CHSEL_MASK) >> CHSEL_SHIFT; - rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; - peerAddr = &g_rx_adv_buf.data[0]; // AdvA - g_currentPeerAddrType = txAdd; - - // ================= Resolving list checking - // case 1: receive InitA using RPA - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - ((g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR)) - { - bWlRlCheckOk = TRUE; - - if (g_llRlEnable == TRUE) - { - // if the RPA checking is done in previous scan, compare - if (isPeerRpaStore == TRUE && - currentPeerRpa[0] == g_rx_adv_buf.data[0] - && currentPeerRpa[1] == g_rx_adv_buf.data[1] - && currentPeerRpa[2] == g_rx_adv_buf.data[2] - && currentPeerRpa[3] == g_rx_adv_buf.data[3] - && currentPeerRpa[4] == g_rx_adv_buf.data[4] - && currentPeerRpa[5] == g_rx_adv_buf.data[5]) - { - rpaListIndex = storeRpaListIndex; - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bWlRlCheckOk = TRUE; - bMatchAdv = TRUE; - } - else // resolve the address - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); // spend 30us(48MHz) when the 1st item match - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bWlRlCheckOk = TRUE; - } - else - { - bWlRlCheckOk = FALSE; - } - } - } - } - // case 2: receive InitA using device ID, or init device not using RPA - else - { - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if ( g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5]) - { - // the device ID in the RPA list - if (g_llResolvinglist[i].privacyMode == NETWORK_PRIVACY_MODE && - !ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - bWlRlCheckOk = FALSE; - else - rpaListIndex = i; - } - } - } - - // ====== for direct adv, also check initA == own addr - if (pdu_type == ADV_DIRECT_IND && bWlRlCheckOk == TRUE && bMatchAdv != TRUE) - { - //20201228,Jie,add RXADD check for direct IND - uint8_t rxAdd = (g_rx_adv_buf.rxheader & RX_ADD_MASK) >> RX_ADD_SHIFT; - - // initA is resolvable address case - if (rxAdd == LL_DEV_ADDR_TYPE_RANDOM &&((g_rx_adv_buf.data[11] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR)) - { - // should not use RPA case - if (initInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_PUBLIC && initInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_RANDOM) - bWlRlCheckOk = FALSE; - - if (rpaListIndex >= LL_RESOLVINGLIST_ENTRY_NUM - || (ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk)) // all-0 local IRK - || (ll_ResolveRandomAddrs(g_llResolvinglist[rpaListIndex].localIrk, &g_rx_adv_buf.data[6]) != SUCCESS)) // resolve failed - bWlRlCheckOk = FALSE; - } - else - { - uint8* localAddr; - - // should not use device ID case - if ((initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC || initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM ) - && (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM - && !ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk))) - { - bWlRlCheckOk = FALSE; - } - - if (rxAdd == LL_DEV_ADDR_TYPE_RANDOM) - localAddr = ownRandomAddr; - else - localAddr = ownPublicAddr; - - if (g_rx_adv_buf.data[6] != localAddr[0] - || g_rx_adv_buf.data[7] != localAddr[1] - || g_rx_adv_buf.data[8] != localAddr[2] - || g_rx_adv_buf.data[9] != localAddr[3] - || g_rx_adv_buf.data[10] != localAddr[4] - || g_rx_adv_buf.data[11] != localAddr[5]) - { - bWlRlCheckOk = FALSE; - } - } - } - - // initiator, 2 types of filter process: 1. connect to peer address set by host 2. connect to address in whitelist only - // 1. connect to peer address set by host - if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_PEER_ADDR - && bWlRlCheckOk == TRUE) - { - if (peerAddr[0] != peerInfo.peerAddr[0] - || peerAddr[1] != peerInfo.peerAddr[1] - || peerAddr[2] != peerInfo.peerAddr[2] - || peerAddr[3] != peerInfo.peerAddr[3] - || peerAddr[4] != peerInfo.peerAddr[4] - || peerAddr[5] != peerInfo.peerAddr[5]) - { - // not match, not init connect - bWlRlCheckOk = FALSE; - } - } - // 2. connect to address in whitelist only - else if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_WHITE_LIST && - bWlRlCheckOk == TRUE) - { - // if advA in whitelist list, connect - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - - //2020.10.26,Jie,update peer addr - if (bWlRlCheckOk == TRUE) - { - peerInfo.peerAddrType = txAdd; - peerInfo.peerAddr[0] = peerAddr[0]; - peerInfo.peerAddr[1] = peerAddr[1]; - peerInfo.peerAddr[2] = peerAddr[2]; - peerInfo.peerAddr[3] = peerAddr[3]; - peerInfo.peerAddr[4] = peerAddr[4]; - peerInfo.peerAddr[5] = peerAddr[5]; - } - } - - if (bWlRlCheckOk == TRUE) - { - g_same_rf_channel_flag = TRUE; - - // channel selection algorithm decision - if ((pGlobal_config[LL_SWITCH] & CONN_CSA2_ALLOW) - && chSel == LL_CHN_SEL_ALGORITHM_2) - { - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_2; - SET_BITS(g_tx_adv_buf.txheader, LL_CHN_SEL_ALGORITHM_2, CHSEL_SHIFT, CHSEL_MASK); - } - else - { - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_1; - SET_BITS(g_tx_adv_buf.txheader, LL_CHN_SEL_ALGORITHM_1, CHSEL_SHIFT, CHSEL_MASK); - } - - // calculate initA if using RPA list, otherwise copy the address stored in initInfo - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM && - !ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk) && - (initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC || initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) - { - // for resolving private address case, calculate the scanA with Local IRK - ll_CalcRandomAddr(g_llResolvinglist[rpaListIndex].localIrk, &g_tx_adv_buf.data[0]); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); -// osal_memcpy( &g_currentLocalRpa[0], &g_tx_adv_buf.data[0], 6); - g_currentLocalAddrType = LL_DEV_ADDR_TYPE_RPA_RANDOM; - } - else - { - if (initInfo.ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC || initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC) - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownPublicAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_PUBLIC, TX_ADD_SHIFT, TX_ADD_MASK); - } - else - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownRandomAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - } - - g_currentLocalAddrType = LL_DEV_ADDR_TYPE_RANDOM; // not accute local type, for branch selection in enh conn complete event - } - - // send conn req - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - - if (delay > 118 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] - pGlobal_config[LL_HW_PLL_DELAY]) // not enough time - { - // not enough time to send conn req, store the RPA - isPeerRpaStore = TRUE; - storeRpaListIndex = rpaListIndex; - osal_memcpy(¤tPeerRpa[0], &g_rx_adv_buf.data[0], 6); -// LOG("store %d\n", storeRpaListIndex); - g_same_rf_channel_flag = FALSE; - //LOG("<%d>", delay); - } - else - { - delay = 118 - delay - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY]; - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - // send conn req - ll_hw_set_stx(); // set LL HW as single Tx mode - ll_hw_go(); - llWaitingIrq = TRUE; - // AdvA, offset 6 - osal_memcpy((uint8*)&g_tx_adv_buf.data[6], &g_rx_adv_buf.data[0], 6); - //2020.8.11 Jie:add init req header for RxAdd - SET_BITS(g_tx_adv_buf.txheader, txAdd, RX_ADD_SHIFT, RX_ADD_MASK); - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(g_tx_adv_buf.txheader), - ((g_tx_adv_buf.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - - if (g_currentPeerAddrType >= 0x02) - osal_memcpy(&g_currentPeerRpa[0], &g_rx_adv_buf.data[0], 6); - - if (g_currentLocalAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM) - osal_memcpy( &g_currentLocalRpa[0], &g_tx_adv_buf.data[0], 6); - - move_to_master_function(); - isPeerRpaStore = FALSE; - bConnecting = TRUE; - g_same_rf_channel_flag = FALSE; - } - } - } - else if (packet_len != 0 - && (pdu_type == ADV_DIRECT_IND)) // TODO: add process of direct ADV - { - } - } - - // scan again if not start connect - if (!bConnecting) // if not waiting for scan rsp, schedule next scan - { - if (initInfo.scanMode == LL_SCAN_STOP) - { - // scan has been stopped - llState = LL_STATE_IDLE; // for single connection case, set the LL state idle - // release the associated allocated connection - llReleaseConnId(connPtr); // new for multi-connection - g_ll_conn_ctx.numLLMasterConns --; - (void)osal_set_event( LL_TaskID, LL_EVT_MASTER_CONN_CANCELLED ); // inform high layer - } - else - { - // not sending SCAN REQ, update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= initInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(initInfo.nextScanChan); - - // schedule next scan event - if (initInfo.scanWindow == initInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - LL_evt_schedule(); - else -// set_timer4((initInfo.scanInterval - initInfo.scanWindow) * 625); - ll_schedule_next_event((initInfo.scanInterval - initInfo.scanWindow) * 625); - - // reset scan total time - llScanTime = 0; - } - else - llSetupScan(initInfo.nextScanChan); - } - } - } - } - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 llSetupStartEncRsp( llConnState_t* connPtr ) -{ - uint8 pktLen; - uint8* pBuf = connPtr->ctrlData.data; - // Note: No need to check if there's enough room in the TX FIFO since it was - // forced to empty prior to beginning encryption control procedure. - // write control type as payload - *pBuf = LL_CTRL_START_ENC_RSP; - // encrypt PDU with authentication check - LL_ENC_Encrypt( connPtr, - LL_DATA_PDU_HDR_LLID_CONTROL_PKT, - LL_START_ENC_RSP_PAYLOAD_LEN, - pBuf ); // input no-encrypt data pBuf, output in the same buffer - pktLen = LL_START_ENC_RSP_PAYLOAD_LEN + LL_ENC_MIC_LEN; - connPtr->ctrlDataIsPending = 1; - connPtr->ctrlData .header = pktLen << 8 | LL_DATA_PDU_HDR_LLID_CONTROL_PKT; - - // control procedure timeout value only needed for Master after Start Enc Response -// if ( llState == LL_STATE_CONN_MASTER ) - if( connPtr->llTbd1 != LL_LINK_CONNECT_COMPLETE_MASTER ) - { - // set the control packet timeout for 40s relative to our present time - // Note: This is done in terms of connection events. - // Note: Core Spec V4.0 now indicates that each LL control PDU that is queued - // for transmission resets the procedure response timeout timer. - connPtr->ctrlPktInfo.ctrlTimeout = connPtr->ctrlPktInfo.ctrlTimeoutVal; - } - - return( TRUE ); -} - -uint8 llProcessSlaveControlProcedures1( llConnState_t* connPtr ) -{ - // check if there are any control packets ready for processing - while ( connPtr->ctrlPktInfo.ctrlPktCount > 0 ) - { - // processing based on control packet type at the head of the queue - switch( connPtr->ctrlPktInfo.ctrlPkts[ 0 ] ) - { - case LL_CTRL_TERMINATE_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already place packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // yes, so process the termination - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_HOST_REQUESTED_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // no done yet - { - // check if a termination control procedure timeout has occurred - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // no control procedure timeout yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupTermInd( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - // Note: Unreachable statement generates compiler warning! - //break; - - case LL_CTRL_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // done with this control packet, so remove from the processing queue - // Note: By dequeueing here, it is possible to get another control - // packet at the head of the queue. This is techincally not - // supposed to happen if the spec is followed. - // ALT: COULD MAKE MORE BULLET PROOF. SINCE THE REPLACE ROUTINE - // CAN'T BE USED UNTIL THE LTK IS RECEIVED BY THE HOST, A - // DUMMY CONTROL PACKET THAT SITS AT THE HEAD UNTIL IT IS - // REPLACE COULD BE USED INSTEAD. - //llReplaceCtrlPkt( connPtr, LL_CTRL_DUMMY_PLACE_HOLDER ); - llDequeueCtrlPkt( connPtr ); - // notify the Host with RAND and EDIV after sending the RSP - // Note: Need to wait for the Host reply to determine if the LTK - // is available or not. - LL_EncLtkReqCback( connPtr->connId, - connPtr->encInfo.RAND, - connPtr->encInfo.EDIV ); - } - else // not done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupEncRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_START_ENC_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // enable encryption once start encryption request is sent - // Note: We can not receive data once the encryption control - // procedure has begun, so there is no risk of a race - // condition here. - connPtr->encEnabled = TRUE; - // clear packet counters - connPtr->encInfo.txPktCount = 0; - connPtr->encInfo.rxPktCount = 0; - } - - // not done until the LL_CTRL_START_ENC_RSP is received, so check it - // Note: The following code can not be in the previous "if" statement - // since it is possible that numTxCtrl could be true, yet the - // flag startEncRspRcved isn't. Then on the next event, - // numTxCtrl wouldn't be true, and we would never check the - // startEncRspRcved flag again. Since we can't get the - // LL_START_ENC_RSP until we send the LL_CTRL_START_ENC_REQ, - // this isn't an issue. - if ( connPtr->encInfo.startEncRspRcved == TRUE ) - { - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_START_ENC_RSP ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // first, check if the SK has been calculated - if ( connPtr->encInfo.SKValid == TRUE ) - { - // so try to begin the last step of the encryption procedure - if ( llSetupStartEncReq( connPtr ) == TRUE ) - { - // ready the flag that indicates that we've received the response - connPtr->encInfo.startEncRspRcved = FALSE; - // the control packet is now active - connPtr->ctrlPktInfo.ctrlPktActive = TRUE; - } - - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrl. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrl, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - else // SK isn't valid yet, so see if we've received the LTK yet - { - if ( connPtr->encInfo.LTKValid ) - { - // generate the Session Key (i.e. SK = AES128(LTK, SKD)) - LL_ENC_GenerateSK( connPtr->encInfo.LTK, - connPtr->encInfo.SKD, - connPtr->encInfo.SK ); - // indicate the SK is valid, and drop through - connPtr->encInfo.SKValid = TRUE; - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - - break; - - case LL_CTRL_START_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // packet TX'ed, so we are done with the encryption procedure - // re-activate slave latency - connPtr->slaveLatency = connPtr->slaveLatencyValue; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - // set flag to allow outgoing data transmissions - connPtr->txDataEnabled = TRUE; - // okay to receive data again - connPtr->rxDataEnabled = TRUE; - - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED, - LL_ENCRYPTION_ON ); - } - - // clear the restart flag in case of another key change request, - // and all other encryption flags - // Note: But in reality, there isn't a disable encryption in BLE, - // so once encryption is enabled, any call to LL_StartEncrypt - // will result in an encryption key change callback. - connPtr->encInfo.encRestart = FALSE; - connPtr->encInfo.encReqRcved = FALSE; - connPtr->encInfo.pauseEncRspRcved = FALSE; - connPtr->encInfo.startEncRspRcved = FALSE; - } - else // not done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupStartEncRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PAUSE_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // not done until the LL_CTRL_PAUSE_ENC_RSP is received, so check it - if ( connPtr->encInfo.pauseEncRspRcved == TRUE ) - { - // done with this control packet, so remove from the processing - // queue and drop through (so the encrypton response can be - // processed) - // ALT: COULD REPLACE HEAD OF QUEUE WITH DUMMY SO NO OTHER CONTROL - // PROCEDURE CAN INTERLEAVE BEFORE THE ENC_REQ IS RECEIVED. - llDequeueCtrlPkt( connPtr ); - } - else // not received yet, so decrement and check control procedure timeout - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there - // Note: All pending transmissions must also be finished before this - // packet is placed in the TX FIFO. - if ( llSetupPauseEncRsp( connPtr ) == TRUE ) - { - // clear the flag that indicates an Encryption Request has been - // received, which is used by this control procedure to restart the - // control procedure timeout - connPtr->encInfo.pauseEncRspRcved = FALSE; - // disable encryption - // Note: Not really necessary as no data is supposed to be sent - // or received. - connPtr->encEnabled = FALSE; - // the control packet is now active; drop through - connPtr->ctrlPktInfo.ctrlPktActive = TRUE; - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - - break; - - case LL_CTRL_REJECT_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - // Note: The control procedure does not end until the Reject is ACKed. - // However, if the ACK is a data packet, it will be tossed - // unless data is allowed hereafter. So to avoid this, only - // the confirmed transmission of this will be used to qualify - // the related flags, but a new procedure will not be able to - // begin until this procedure completes, per the spec. - if ( rfCounters.numTxCtrl ) - { - // disable encryption - // Note: Never really enabled so this isn't necessary. - connPtr->encEnabled = FALSE; - // set flag to allow outgoing data transmissions - connPtr->txDataEnabled = TRUE; - // okay to receive data again - connPtr->rxDataEnabled = TRUE; - } - - // we have already place packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // done with this control packet, so remove from the processing - // queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not ack'ed yet - { - // check if a control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectInd( connPtr,connPtr->encInfo.encRejectErrCode); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // should be LL_CTRL_SLAVE_FEATURE_REQ -// case LL_CTRL_FEATURE_REQ: // for v4.2, slave may send LL_CTRL_FEATURE_REQ msg. to be test later......... HZF -// // check if the control packet procedure is active -// if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) -// { -// // we have already placed a packet on TX FIFO, so wait now until we -// // get the slave's LL_CTRL_FEATURE_RSP -// if ( connPtr->featureSetInfo.featureRspRcved == TRUE ) -// { -// // notify the Host -// LL_ReadRemoteUsedFeaturesCompleteCback( LL_STATUS_SUCCESS, -// connPtr->connId, -// connPtr->featureSetInfo.featureSet ); - -// // done with this control packet, so remove from the processing queue -// llDequeueCtrlPkt( connPtr ); -// } -// else // no done yet -// { -// // check if a update param req control procedure timeout has occurred -// // Note: No need to cleanup control packet info as we are done. -// if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) -// { -// // indicate a control procedure timeout on this request -// // Note: The parameters are not valid. -// LL_ReadRemoteUsedFeaturesCompleteCback( LL_CTRL_PKT_TIMEOUT_TERM, -// connPtr->connId, -// connPtr->featureSetInfo.featureSet ); -// // we're done waiting, so end it all -// // Note: No need to cleanup control packet info as we are done. -// llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - -// return( LL_CTRL_PROC_STATUS_TERMINATE ); -// } -// else -// { -// // control packet stays at head of queue, so exit here -// return( LL_CTRL_PROC_STATUS_SUCCESS ); -// } -// } -// } -// else // control packet has not been put on the TX FIFO yet -// { -// // so try to put it there; being active depends on a success -// connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetReq( connPtr ); - -// // set flag while we wait for response -// // Note: It is okay to repeatedly set this flag in the event the -// // setup routine hasn't completed yet (e.g. if the TX FIFO -// // has not yet become empty). -// connPtr->featureSetInfo.featureRspRcved = FALSE; - -// // Note: Two cases are possible: -// // a) We successfully placed the packet in the TX FIFO. -// // b) We did not. -// // -// // In case (a), it may be possible that a previously just -// // completed control packet happened to complete based on -// // rfCounters.numTxCtrlAck. Since the current control -// // procedure is now active, it could falsely detect -// // rfCounters.numTxCtrlAck, when in fact this was from the -// // previous control procedure. Consequently, return. -// // -// // In case (b), the control packet stays at the head of the -// // queue, and there's nothing more to do. Consequently, return. -// // -// // So, in either case, return. -// return( LL_CTRL_PROC_STATUS_SUCCESS ); -// } - -// break; - - case LL_CTRL_FEATURE_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // packet TX'ed, so use this flag on the Slave to indicate that - // the feature response procedure has already taken place on this - // connection - // Note: This is being done to support the HCI extension command - // LL_EXT_SetLocalSupportedFeatures so that the user can - // update the local supported features even after a connection - // is formed. This update will be used as long as a feature - // response feature has not been performed by the Master. Once - // performed, the connection feature set is fixed! - connPtr->featureSetInfo.featureRspRcved = TRUE; - // ALT: COULD RE-ACTIVATE SL (IF ENABLED) RIGHT HERE. - connPtr->slaveLatency = connPtr->slaveLatencyValue; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // Version Information Indication - case LL_CTRL_VERSION_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if the peer's version information is valid - if ( connPtr->verExchange.peerInfoValid == TRUE ) - { - // yes, so check if the host has requested this information - if ( connPtr->verExchange.hostRequest == TRUE ) - { - // yes, so provide it - LL_ReadRemoteVersionInfoCback( LL_STATUS_SUCCESS, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - } - - // in any case, dequeue this control procedure - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so complete the callback with error - LL_ReadRemoteVersionInfoCback( LL_CTRL_PKT_TIMEOUT_TERM, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - // and end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // since we are in the process of sending the version indication, - // it is okay to set this flag here even if it is set repeatedly - // in the of llSetupVersionIndReq failures - connPtr->verExchange.verInfoSent = TRUE; - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupVersionIndReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtReq( connPtr ); - connPtr->llPduLen.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isProcessingReq=FALSE; - llPduLengthUpdate((uint16)connPtr->connId); - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PHY_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyReq( connPtr ); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PHY_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPhyModeCtrl.isProcessingReq=FALSE; - connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyRsp( connPtr ); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - osal_memset( &(connPtr->llCTEModeCtrl), 0, sizeof( connPtr->llCTEModeCtrl )); - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTEReq( connPtr ); - connPtr->llCTEModeCtrl.isWatingRsp = TRUE; - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llCTEModeCtrl.isWatingRsp = FALSE; - connPtr->llCTEModeCtrl.isProcessingReq = FALSE; - // remove control packet from processing queue and drop through - // 2020-02-12 comment:after send CONN CTE RSP , then clear txSupp - ll_hw_set_cte_txSupp( CTE_SUPP_NULL); - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTERsp( connPtr ); - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_UNKNOWN_RSP: - - // try to place control packet in the TX FIFO - // Note: Since there are no dependencies for this control packet, we - // do not have to bother with the active flag. - if ( llSetupUnknownRsp( connPtr ) == TRUE ) - { - // all we have to do is put this control packet on the TX FIFO, so - // remove control packet from the processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // Dummy Place Holder - //case LL_CTRL_DUMMY_PLACE_HOLDER: - // // dummy packet stays at head of queue, so exit here - // Note: Unreachable statement generates compiler warning! - //break; - // return( LL_CTRL_PROC_STATUS_SUCCESS ); - - default: - break; - } - } - - return( LL_CTRL_PROC_STATUS_SUCCESS ); -} - -uint8 llProcessMasterControlProcedures1( llConnState_t* connPtr ) -{ - // check if there are any control packets ready for processing - while ( connPtr->ctrlPktInfo.ctrlPktCount > 0 ) - { - // processing based on control packet type at the head of the queue - switch( connPtr->ctrlPktInfo.ctrlPkts[ 0 ] ) - { - case LL_CTRL_TERMINATE_IND: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already place packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - // yes, so process the termination - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_HOST_REQUESTED_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // no done yet - { - // check if a termination control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupTermInd( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - // Note: Unreachable statement generates compiler warning! - //break; - - /* - ** Connection Update Request - */ - case LL_CTRL_CONNECTION_UPDATE_REQ: - -// LOG("CONN UPD"); - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // yes, so adjust all time values to units of 625us - connPtr->paramUpdate.winSize <<= 1; - connPtr->paramUpdate.winOffset <<= 1; - connPtr->paramUpdate.connInterval <<= 1; - connPtr->paramUpdate.connTimeout <<= 4; - // and activate the update - connPtr->pendingParamUpdate = TRUE; - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // Core Spec V4.0 now indicates there is no control procedure - // timeout. However, it still seems prudent to monitor for the - // instant while waiting for the slave's ACK. - if ( connPtr->nextEvent == connPtr->paramUpdateEvent ) - { - // this event is the instant, and the control procedure still - // has not been ACK'ed, we the instant has passed - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_INSTANT_PASSED_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // continue waiting for the slave's ACK - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupUpdateParamReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Channel Map Update Request - */ - case LL_CTRL_CHANNEL_MAP_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // yes, so activate the update - connPtr->pendingChanUpdate = TRUE; - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // Core Spec V4.0 now indicates there is no control procedure - // timeout. However, it still seems prudent to monitor for the - // instant while waiting for the slave's ACK. - if ( connPtr->nextEvent == connPtr->chanMapUpdateEvent ) - { - // this event is the instant, and the control procedure still - // has not been ACK'ed, we the instant has passed - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_INSTANT_PASSED_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // continue waiting for the slave's ACK - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupUpdateChanReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Request - */ - case LL_CTRL_ENC_REQ: - -// LOG("1 ENC_REQ->"); - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // set flag to discard all incoming data transmissions - connPtr->rxDataEnabled = FALSE; - } - - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_START_ENC_REQ - if ( connPtr->encInfo.startEncReqRcved == TRUE ) - { - // clear packet counters - connPtr->encInfo.txPktCount = 0; - connPtr->encInfo.rxPktCount = 0; - // enable encryption - connPtr->encEnabled = TRUE; - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_START_ENC_RSP ); - } - else if ( connPtr->encInfo.rejectIndRcved == TRUE ) - { - // the slave's Host has failed to provide an LTK, so the encryption - // setup has been rejected; end the start encryption procedure - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - // disable encryption - // Note: Not really necessary as no data is supposed to be sent - // or received. - connPtr->encEnabled = FALSE; - // set flag to allow outgoing transmissions again - connPtr->txDataEnabled = TRUE; - // set flag to allow all incoming data transmissions - connPtr->rxDataEnabled = TRUE; - - // check the rejection indication error code - if ( connPtr->encInfo.encRejectErrCode == LL_STATUS_ERROR_PIN_OR_KEY_MISSING ) - { - // notify the Host - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_REJECTED, - LL_ENCRYPTION_OFF ); - } - else // LL_STATUS_ERROR_UNSUPPORTED_REMOTE_FEATURE - { - // notify the Host - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_UNSUPPORTED_FEATURE, - LL_ENCRYPTION_OFF ); - } - } - else if ( connPtr->termInfo.termIndRcvd == TRUE ) - { - // the slave's Host has failed to provide an LTK, so the encryption - // setup has been rejected; end the start encryption procedure - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupEncReq( connPtr ); - // set a flag to indicate we have received LL_START_ENC_REQ - // Note: The LL_ENC_RSP will be received first, which will result in - // the master calculating its IVm and SKDm, concatenating it - // with the slave's IVs and SKDs, and calculating the SK from - // the LTK and SKD. After that, we will receive the - // LL_START_ENC_REQ from the slave. So, it is okay to stay in - // this control procedure until LL_START_ENC_REQ is received. - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->encInfo.startEncReqRcved = FALSE; - connPtr->encInfo.rejectIndRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Start Response - */ - case LL_CTRL_START_ENC_RSP: - -// LOG("1 START_ENC_RSP->"); - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_START_ENC_RSP - if ( connPtr->encInfo.startEncRspRcved == TRUE ) - { - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - // we're done with encryption procedure, so clear flags - connPtr->encInfo.encReqRcved = FALSE; - connPtr->encInfo.pauseEncRspRcved = FALSE; - connPtr->encInfo.startEncReqRcved = FALSE; - connPtr->encInfo.startEncRspRcved = FALSE; - connPtr->encInfo.rejectIndRcved = FALSE; - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: The llSetupStartEncRsp routine will *not* reset the control - // timeout value since the entire encryption procedure starts - // with the master sending the LL_ENC_REQ, and ends when the - // master receives the LL_START_ENC_RSP from the slave. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupStartEncRsp( connPtr ); - // set a flag to indicate we have received LL_START_ENC_RSP - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->encInfo.startEncRspRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Pause Request - */ - case LL_CTRL_PAUSE_ENC_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_PAUSE_ENC_RSP - if ( connPtr->encInfo.pauseEncRspRcved == TRUE ) - { - // disable encryption - connPtr->encEnabled = FALSE; - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_PAUSE_ENC_RSP ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: The llSetupStartEncRsp routine will *not* reset the control - // timeout value since the entire encryption procedure starts - // with the master sending the LL_ENC_REQ, and ends when the - // master receives the LL_START_ENC_RSP from the slave. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPauseEncReq( connPtr ); - // set a flag to indicate we have received LL_START_ENC_RSP - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->encInfo.pauseEncRspRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Pause Response - */ - case LL_CTRL_PAUSE_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_ENC_REQ ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPauseEncRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Feature Set Request - */ - case LL_CTRL_FEATURE_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_CTRL_FEATURE_RSP - if ( connPtr->featureSetInfo.featureRspRcved == TRUE ) - { - // notify the Host - LL_ReadRemoteUsedFeaturesCompleteCback( LL_STATUS_SUCCESS, - connPtr->connId, - connPtr->featureSetInfo.featureSet ); - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // indicate a control procedure timeout on this request - // Note: The parameters are not valid. - LL_ReadRemoteUsedFeaturesCompleteCback( LL_CTRL_PKT_TIMEOUT_TERM, - connPtr->connId, - connPtr->featureSetInfo.featureSet ); - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // add by HZF, read device feature set - for (int i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetReq( connPtr ); - // set flag while we wait for response - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->featureSetInfo.featureRspRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_FEATURE_RSP: // new for BLE4.2, feature req could be init by slave - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // packet TX'ed, so use this flag on the Slave to indicate that - // the feature response procedure has already taken place on this - // connection - // Note: This is being done to support the HCI extension command - // LL_EXT_SetLocalSupportedFeatures so that the user can - // update the local supported features even after a connection - // is formed. This update will be used as long as a feature - // response feature has not been performed by the Master. Once - // performed, the connection feature set is fixed! - connPtr->featureSetInfo.featureRspRcved = TRUE; - // ALT: COULD RE-ACTIVATE SL (IF ENABLED) RIGHT HERE. -// connPtr->slaveLatency = connPtr->slaveLatencyValue; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Vendor Information Exchange (Request or Reply) - */ - case LL_CTRL_VERSION_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if the peer's version information is valid - if ( connPtr->verExchange.peerInfoValid == TRUE ) - { - // yes, so check if the host has requested this information - if ( connPtr->verExchange.hostRequest == TRUE ) - { - // yes, so provide it - LL_ReadRemoteVersionInfoCback( LL_STATUS_SUCCESS, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - } - - // in any case, dequeue this control procedure - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so complete the callback with error - LL_ReadRemoteVersionInfoCback( LL_CTRL_PKT_TIMEOUT_TERM, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - // and end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // since we are in the process of sending the version indication, - // it is okay to set this flag here even if it is set repeatedly - // in the of llSetupVersionIndReq failures - connPtr->verExchange.verInfoSent = TRUE; -// // so try to put it there; being active depends on a success -// connPtr->ctrlPktInfo.ctrlPktActive = llSetupPingReq(connPtr);// llSetupVersionIndReq( connPtr ); - connPtr->ctrlPktInfo.ctrlPktActive = llSetupVersionIndReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtReq( connPtr ); - connPtr->llPduLen.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isProcessingReq=FALSE; - llPduLengthUpdate((uint16)connPtr->connId); - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // LL PHY UPDATE REQ - case LL_CTRL_PHY_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyReq( connPtr ); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PHY_UPDATE_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - //20181206 ZQ phy update no change case - if( connPtr->phyUpdateInfo.m2sPhy== 0 - && connPtr->phyUpdateInfo.s2mPhy== 0) - { - connPtr->phyUpdateInfo.m2sPhy=connPtr->llPhyModeCtrl.local.txPhy; - connPtr->phyUpdateInfo.s2mPhy=connPtr->llPhyModeCtrl.local.rxPhy; - llPhyModeCtrlUpdateNotify(connPtr,LL_STATUS_SUCCESS); - } - else - { - // yes, so activate the update - connPtr->pendingPhyModeUpdate = TRUE; - } - - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - connPtr->llPhyModeCtrl.isProcessingReq=FALSE; - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // Core Spec V4.0 now indicates there is no control procedure - // timeout. However, it still seems prudent to monitor for the - // instant while waiting for the slave's ACK. - if ( connPtr->nextEvent == connPtr->phyModeUpdateEvent ) - { - // this event is the instant, and the control procedure still - // has not been ACK'ed, we the instant has passed - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_INSTANT_PASSED_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // continue waiting for the slave's ACK - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyUpdateInd( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // REJECT EXT IND --> PHY UPDATE COLLSION - case LL_CTRL_REJECT_EXT_IND: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->isCollision=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - if(connPtr->llPhyModeCtrl.isWatingRsp==TRUE) - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectExtInd( connPtr,LL_STATUS_ERROR_LL_PROCEDURE_COLLISION); - } - else if(connPtr->pendingChanUpdate==TRUE || - connPtr->pendingParamUpdate==TRUE ) - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectExtInd( connPtr,LL_STATUS_ERROR_DIFF_TRANSACTION_COLLISION); - } - else if( connPtr->llCTEModeCtrl.isWatingRsp == TRUE) - { - // 2020-01-23 add for CTE - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectExtInd( connPtr,connPtr->llCTEModeCtrl.errorCode ); - connPtr->llCTEModeCtrl.errorCode = LL_STATUS_SUCCESS; - } - else - { - //should not be here - } - - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // connPtr->llCTEModeCtrl.isWatingRsp = TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - osal_memset( &(connPtr->llCTEModeCtrl), 0, sizeof( connPtr->llCTEModeCtrl )); - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTEReq( connPtr ); - connPtr->llCTEModeCtrl.isWatingRsp = TRUE; - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llCTEModeCtrl.isProcessingReq = FALSE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTERsp( connPtr ); - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Unknown Control Type Response - */ - case LL_CTRL_UNKNOWN_RSP: - - // try to place control packet in the TX FIFO - // Note: Since there are no dependencies for this control packet, we - // do not have to bother with the active flag. - if ( llSetupUnknownRsp( connPtr ) == TRUE ) - { - // all we have to do is put this control packet on the TX FIFO, so - // remove control packet from the processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Control Internal - Wait for Control ACK - */ - case LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK: - - // check if the control packet has been ACK'ed (i.e. is not pending) - // Note: Normally this routine is used for control procedures where - // control packets are sent by this role. This is a special case - // where a terminate indication was received, but we must as a - // master wait for our ACK to be sent before terminating. - if ( rfCounters.numTxCtrlAck == 1) // ctrl packet has been acked - { - // yes, so terminate - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, connPtr->termInfo.reason ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - - // Note: Unreachable statement generates compiler warning! - //break; - - // Dummy Place Holder - //case LL_CTRL_DUMMY_PLACE_HOLDER: - // // dummy packet stays at head of queue, so exit here - // return( LL_CTRL_PROC_STATUS_SUCCESS ); - // Note: Unreachable statement generates compiler warning! - //break; - default: -#ifdef DEBUG - // fatal error - a unknown control procedure value was used - LL_ASSERT( FALSE ); -#endif // DEBUG - break; - } - } - - return( LL_CTRL_PROC_STATUS_SUCCESS ); -} - -static void llAdjBoffUpperLimitFailure1( void ) -{ - // first, since this was a failure, clear the number of consecutive successes - scanInfo.numSuccess = 0; - - // check if we received two failures in a row - if ( ++scanInfo.numFailure == 2 ) - { - // yes, so double backoff upper limit - scanInfo.scanBackoffUL <<= 1; - - // maximum is 256 - if ( scanInfo.scanBackoffUL > 256 ) - { - scanInfo.scanBackoffUL = 256; - } - - // reset consecutive count - scanInfo.numFailure = 0; - } - - g_pmCounters.ll_tbd_cnt4++; - return; -} - -static void llAdjBoffUpperLimitSuccess1( void ) -{ - // first, since this is a success, clear the number of consecutive failures - scanInfo.numFailure = 0; - - // check if we received two successful in a row - if ( ++scanInfo.numSuccess == 2 ) - { - // yes, so half backoff upper limit - scanInfo.scanBackoffUL >>= 1; - - // however, the minimum is 1 - if ( scanInfo.scanBackoffUL == 0 ) - { - scanInfo.scanBackoffUL = 1; - } - - // reset consecutive count - scanInfo.numSuccess = 0; - } - - return; -} - -static void llGenerateNextBackoffCount1( void ) -{ - // determine the new backoff count constrained by upper limit - // Note: Backoff and Upper Limit can be 1..256. - if ( scanInfo.scanBackoffUL == 1 ) - { - scanInfo.currentBackoff = 1; - } - else // backoff count is a random number from 1..UL - { - scanInfo.currentBackoff = ((uint16)LL_ENC_GeneratePseudoRandNum() % scanInfo.scanBackoffUL) + 1; - } - -// hal_uart_tx("scanBackoffUL = "); -// hal_uart_send_int(scanInfo.scanBackoffUL); -// hal_uart_tx(",currentBackoff = "); -// hal_uart_send_int(scanInfo.currentBackoff); -// hal_uart_tx("\r\n"); - return; -} - -uint8 ll_processBasicIRQ_ScanTRX0(uint32_t irq_status ) -{ - HAL_ENTER_CRITICAL_SECTION(); - ll_debug_output(DEBUG_LL_HW_TRX); - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - // check whether receives SCAN RSP - if (irq_status & LIRQ_COK) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth()>0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len > 0 && pdu_type == ADV_SCAN_RSP) - { - // receives SCAN_RSP - uint8 advEventType; - uint8 rpaListIndex; - uint8* peerAddr; - uint8 addrType = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; - uint8 dataLen = pktLen - 8; - int8 rssi = -(pktFoot1 >> 24); - uint8 bCheckOk = TRUE; - peerAddr = &g_rx_adv_buf.data[0]; - - //=== - // AdvA of SCAN_RSP should also be checked here. Refer to 4.4.3.2 Active Scanning - // After sending a scan request PDU the Link Layer listens for a scan response - //PDU from that advertiser. If the scan response PDU was not received from that - //advertiser, it is considered a failure; otherwise it is considered a success. - - // check AdvA in Scan Rsp is identical to Scan Req - if (g_rx_adv_buf.data[0] != g_tx_adv_buf.data[6] || - g_rx_adv_buf.data[1] != g_tx_adv_buf.data[7] || - g_rx_adv_buf.data[2] != g_tx_adv_buf.data[8] || - g_rx_adv_buf.data[3] != g_tx_adv_buf.data[9] || - g_rx_adv_buf.data[4] != g_tx_adv_buf.data[10] || - g_rx_adv_buf.data[5] != g_tx_adv_buf.data[11] - ) - bCheckOk = FALSE; - - // RPA checking. Note that we do not check whether it is the same RPA index - if (addrType == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - if (g_llRlEnable == TRUE) - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - // refer to HCI LE Advertising Report Event, RPA address type should be - // 0x02: Public Identity Address (Corresponds to Resolved Private Address) - // 0x03: Random (static) Identity Address (Corresponds to Resolved Private Address) - addrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bCheckOk = TRUE; - } - else - bCheckOk = FALSE; - } - } - - //=== - - if (bCheckOk == TRUE) - { - advEventType = LL_ADV_RPT_SCAN_RSP; - // below function cost 51us/66us(measure with GPIO) - LL_AdvReportCback( advEventType, // event type - addrType, // Adv address type (TxAdd) - peerAddr, // Adv address (AdvA) - dataLen, // length of rest of the payload - &g_rx_adv_buf.data[6], // rest of payload - rssi ); // RSSI - g_pmCounters.ll_recv_scan_rsp_cnt ++; - llAdjBoffUpperLimitSuccess1(); - } - } - else - llAdjBoffUpperLimitFailure1(); - } - else - llAdjBoffUpperLimitFailure1(); - - // update back off value according to new backoff upperLimit - llGenerateNextBackoffCount1(); - - if (llScanTime >= scanInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(scanInfo.nextScanChan); - - // schedule next scan event - if (scanInfo.scanWindow == scanInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - LL_evt_schedule(); - else -// set_timer4((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - ll_schedule_next_event((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - - // reset scan total time - llScanTime = 0; - } - else - llSetupScan(scanInfo.nextScanChan); - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 ll_processBasicIRQ_secondaryAdvTRX0(uint32_t irq_status ) -{ - HAL_ENTER_CRITICAL_SECTION(); - uint32_t T2, delay; -// secondary adv state, connectable adv or scannable adv - uint8_t packet_len, pdu_type, txAdd; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - int calibra_time; // this parameter will be provided by global_config - //int i; - // 2021-02-23 - // bugfix for multi-role secondary advertising - // bug-case : a device in advertising and receive another device's scan request - uint8 adv_sch_flag = TRUE; - // read packet - packet_len = ll_hw_read_rfifo((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - - if(ll_hw_get_rfifo_depth() > 0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & PDU_TYPE_MASK; - txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - - if (packet_len > 0 // any better checking rule for rx anything? - && (irq_status & LIRQ_COK) - && pdu_type == ADV_SCAN_REQ) -// && (llState == LL_STATE_ADV_UNDIRECTED -// || llState == LL_STATE_ADV_SCAN)) - { - // 1. scan req - g_pmCounters.ll_recv_scan_req_cnt ++; - - // check AdvA - if (g_rx_adv_buf.data[6] != adv_param.ownAddr[0] - || g_rx_adv_buf.data[7] != adv_param.ownAddr[1] - || g_rx_adv_buf.data[8] != adv_param.ownAddr[2] - || g_rx_adv_buf.data[9] != adv_param.ownAddr[3] - || g_rx_adv_buf.data[10] != adv_param.ownAddr[4] - || g_rx_adv_buf.data[11] != adv_param.ownAddr[5]) - { - } - else - { -//=== - uint8_t rpaListIndex, bWlRlCheckOk; - uint8_t* peerAddr = &g_rx_adv_buf.data[0]; // ScanA - adv_sch_flag = FALSE; - - // === Resolving list checking - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM - && (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = TRUE; - - // if ScanA is resolvable private address - if (g_llRlEnable == TRUE) - { - bWlRlCheckOk = FALSE; - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - bWlRlCheckOk = TRUE; - } - } - } - else // ScanA is device Identity, if the device ID in the RPA list, check whether RPA should be used - { - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if (g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5] - && g_llResolvinglist[i].peerAddrType == txAdd) - { - if (g_llResolvinglist[i].privacyMode == NETWORK_PRIVACY_MODE && - !ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - bWlRlCheckOk = FALSE; - - break; - } - } - } - - // === check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_SCAN_REQ - || adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_ALL_REQ) - && (bWlRlCheckOk == TRUE)) - { - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - if (bWlRlCheckOk == FALSE) // if not in white list, do nothing - { - g_pmCounters.ll_filter_scan_req_cnt ++; - } - else - { - g_pmCounters.ll_rx_peer_cnt++; - uint8 retScanRspFilter=1; - - if(LL_PLUS_ScanRequestFilterCBack) - { - retScanRspFilter = LL_PLUS_ScanRequestFilterCBack(); - } - - if(retScanRspFilter) - { - // send scan rsp - ll_hw_set_stx(); // set LL HW as single Tx mode - g_same_rf_channel_flag = TRUE; - // calculate the delay - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - calibra_time = pGlobal_config[SCAN_RSP_DELAY]; // consider rx_done to ISR time, SW delay after read_current_fine_time(), func read_current_fine_time() delay ... - delay = 118 - delay - calibra_time; // IFS = 150us, Tx tail -> Rx done time: about 32us - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - ll_hw_go(); - llWaitingIrq = TRUE; - g_same_rf_channel_flag = FALSE; - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(tx_scanRsp_desc.txheader), - ((tx_scanRsp_desc.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - ll_debug_output(DEBUG_LL_HW_SET_STX); - g_pmCounters.ll_send_scan_rsp_cnt ++; - } - } - } - } - else if (pdu_type == ADV_CONN_REQ - && (irq_status & LIRQ_COK) ) -// && (llState == LL_STATE_ADV_UNDIRECTED -// || llState == LL_STATE_ADV_DIRECTED)) - { - uint8_t* peerAddr; - uint8_t bWlRlCheckOk = TRUE; - // 2. connect req - g_pmCounters.ll_recv_conn_req_cnt ++; - - // check AdvA - if (g_rx_adv_buf.data[6] != adv_param.ownAddr[0] - || g_rx_adv_buf.data[7] != adv_param.ownAddr[1] - || g_rx_adv_buf.data[8] != adv_param.ownAddr[2] - || g_rx_adv_buf.data[9] != adv_param.ownAddr[3] - || g_rx_adv_buf.data[10] != adv_param.ownAddr[4] - || g_rx_adv_buf.data[11] != adv_param.ownAddr[5]) - { - // nothing to do - } - else - { - uint8_t rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; - peerAddr = &g_rx_adv_buf.data[0]; // initA - adv_sch_flag = FALSE; - - // ====== check Resolving list - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = TRUE; - - if (g_llRlEnable == TRUE) - { - bWlRlCheckOk = FALSE; - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - // save resolved peer address - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - // if resolved address success, map the peer address type to 0x02 or 0x03 - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - osal_memcpy( &g_currentPeerRpa[0], &g_rx_adv_buf.data[0], 6); // save latest peer RPA - bWlRlCheckOk = TRUE; - } - } - } - else // InitA is device Identity, check whether the device Addr in the RPA list, if it is - { - // in the RPA list and network privacy mode is selected and non all-0 IRK, check failed - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if (g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5] - && g_llResolvinglist[i].peerAddrType == txAdd) - { - if (g_llResolvinglist[i].privacyMode == NETWORK_PRIVACY_MODE && - !ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - bWlRlCheckOk = FALSE; - - break; - } - } - } - - // ====== check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (llState == LL_STATE_ADV_UNDIRECTED) - && (adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_CONNECT_REQ - || adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_ALL_REQ) - && (bWlRlCheckOk == TRUE)) - { - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - // fixed bug 2018-09-25, LL/CON/ADV/BV-04-C, for direct adv, initA should equal peer Addr - if (llState == LL_STATE_ADV_DIRECTED) - { - if (//txAdd != peerInfo.peerAddrType // for (extended) set adv param, peer addr type could only be 0x0 or 0x01 - peerAddr[0] != peerInfo.peerAddr[0] - || peerAddr[1] != peerInfo.peerAddr[1] - || peerAddr[2] != peerInfo.peerAddr[2] - || peerAddr[3] != peerInfo.peerAddr[3] - || peerAddr[4] != peerInfo.peerAddr[4] - || peerAddr[5] != peerInfo.peerAddr[5]) - { - bWlRlCheckOk = FALSE; - } - } - - if (bWlRlCheckOk == FALSE) // if not in white list, do nothing - { - g_pmCounters.ll_filter_conn_req_cnt ++; - } - else - { - // increment statistics counter - g_pmCounters.ll_rx_peer_cnt++; - // bug fixed 2018-01-23, peerAddrType should read TxAdd - peerInfo.peerAddrType = txAdd; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - osal_memcpy(peerInfo.peerAddr, &peerAddr[0], 6); - move_to_slave_function(); // move to slave role for connection state - } - } - } - - //test for fast adv -// else //if(llState == LL_STATE_ADV_UNDIRECTED) - if( adv_sch_flag ) - { - // adv in next channel, or schedule next adv event - uint8 i = 0; - - while (!(adv_param.advChanMap & (1 << i))) i ++; // get the 1st adv channel - - // adv_param.advNextChan stores the next adv channel, when adv the last adv channel, advNextChan should equal 1st adv channel - if (adv_param.advNextChan != (LL_ADV_CHAN_FIRST + i)) // not finish adv the last channel, continue adv - { - llSetupSecAdvEvt(); - } - else - { - if (llSecondaryState == LL_SEC_STATE_IDLE_PENDING) // advertise last channel and transiting to IDLE - llSecondaryState = LL_SEC_STATE_IDLE; - else // otherwise, schedule next adv - osal_start_timerEx(LL_TaskID, LL_EVT_SECONDARY_ADV, (adv_param.advInterval * 5) >> 3); // * 625 / 1000 - } - } - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 ll_processBasicIRQ_secondaryScanSRX0(uint32_t irq_status ) -{ - HAL_ENTER_CRITICAL_SECTION(); - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if (packet_len != 0 - && ((pdu_type == ADV_IND) - || (pdu_type == ADV_NONCONN_IND) - || (pdu_type == ADV_SCAN_IND))) - { - int i = 0; - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - - // check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (scanInfo.wlPolicy == LL_SCAN_WL_POLICY_USE_WHITE_LIST)) - { - // check white list - for (i = 0; i < LL_WHITELIST_ENTRY_NUM; i++) - { - if (txAdd != g_llWhitelist[i].peerAddrType - || g_rx_adv_buf.data[0] != g_llWhitelist[i].peerAddr[0] - || g_rx_adv_buf.data[1] != g_llWhitelist[i].peerAddr[1] - || g_rx_adv_buf.data[2] != g_llWhitelist[i].peerAddr[2] - || g_rx_adv_buf.data[3] != g_llWhitelist[i].peerAddr[3] - || g_rx_adv_buf.data[4] != g_llWhitelist[i].peerAddr[4] - || g_rx_adv_buf.data[5] != g_llWhitelist[i].peerAddr[5]) - { - // not match, check next - continue; - } - else - break; - } - } - - // if valid, trigger osal event to report adv - if (i < LL_WHITELIST_ENTRY_NUM) - { - uint8 advEventType; - int8 rssi; - llCurrentScanChn = scanInfo.nextScanChan; - - // no active scan scenario - - // convert pdu type to GAP enum - switch (pdu_type) - { - case ADV_IND: - advEventType = LL_ADV_RPT_ADV_IND; - break; - - case ADV_SCAN_IND: - advEventType = LL_ADV_RPT_ADV_SCANNABLE_IND; - break; - - case ADV_DIRECT_IND: - advEventType = LL_ADV_RPT_ADV_DIRECT_IND; - break; - - case ADV_NONCONN_IND: - advEventType = LL_ADV_RPT_ADV_NONCONN_IND; - break; - - case ADV_SCAN_RSP: - advEventType = LL_ADV_RPT_INVALID; - break; - - default: - advEventType = LL_ADV_RPT_ADV_IND; - break; - } - - rssi = -(pktFoot1 >> 24); - // below function cost 51us/66us(measure with GPIO) - LL_AdvReportCback( advEventType, // event type - txAdd, // Adv address type (TxAdd) - &g_rx_adv_buf.data[0], // Adv address (AdvA) - pktLen - 8, // length of rest of the payload, 2 - header, 6 - advA - &g_rx_adv_buf.data[6], // rest of payload - rssi ); // RSSI - g_pmCounters.ll_recv_adv_pkt_cnt ++; - } - } - } - - // update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= scanInfo.scanWindow * 625) - { - // switch scan channel, set event instead of trigger immediately - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(scanInfo.nextScanChan); - - // schedule next scan event - if (scanInfo.scanWindow == scanInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_SCAN); - else - osal_start_timerEx(LL_TaskID, LL_EVT_SECONDARY_SCAN, ((scanInfo.scanInterval - scanInfo.scanWindow) * 5) >> 3 ); - - // reset scan total time - llScanTime = 0; - } - else if (llSecondaryState == LL_SEC_STATE_SCAN) - llSetupSecScan(scanInfo.nextScanChan); - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 ll_processBasicIRQ_secondaryInitSRX0(uint32_t irq_status ) -{ - uint32_t T2, delay; - llConnState_t* connPtr; - HAL_ENTER_CRITICAL_SECTION(); - uint8 bConnecting = FALSE; -// hal_gpio_write(GPIO_P18, 0); - connPtr = &conn_param[initInfo.connId]; // connId is allocated when create conn - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth()>0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len != 0 - && ((pdu_type == ADV_IND))) - { - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - uint8_t chSel = (g_rx_adv_buf.rxheader & CHSEL_MASK) >> CHSEL_SHIFT; - uint8_t bWlRlCheckOk = TRUE; - uint8_t* peerAddr; - uint8_t rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; -//-==== - peerAddr = &g_rx_adv_buf.data[0]; // AdvA - g_currentPeerAddrType = txAdd; - - // Resolving list checking - // case 1: receive InitA using RPA - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = FALSE; - - if (g_llRlEnable == TRUE) - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - osal_memcpy(&g_currentPeerRpa[0], &g_rx_adv_buf.data[0], 6); - bWlRlCheckOk = TRUE; - } - } - } - else // case 2: receive InitA using device ID, or init device not using RPA - { - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if ( g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5]) - { - // the device ID in the RPA list - if (g_llResolvinglist[i].privacyMode == DEVICE_PRIVACY_MODE || - ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - rpaListIndex = i; - else - bWlRlCheckOk = FALSE; // the device in the RPA list but not using RPA, reject it - - break; - } - } - } - - // initiator, 2 types of filter process: 1. connect to peer address set by host 2. connect to address in whitelist only - // 1. connect to peer address set by host - if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_PEER_ADDR - && bWlRlCheckOk == TRUE) - { - if (//txAdd != peerInfo.peerAddrType - peerAddr[0] != peerInfo.peerAddr[0] - || peerAddr[1] != peerInfo.peerAddr[1] - || peerAddr[2] != peerInfo.peerAddr[2] - || peerAddr[3] != peerInfo.peerAddr[3] - || peerAddr[4] != peerInfo.peerAddr[4] - || peerAddr[5] != peerInfo.peerAddr[5]) - { - // not match, not init connect - bWlRlCheckOk = FALSE; - } - } - // 2. connect to address in whitelist only - else if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_WHITE_LIST && - bWlRlCheckOk == TRUE) - { - // if advA in whitelist list, connect - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - if (bWlRlCheckOk == TRUE) - { - g_same_rf_channel_flag = TRUE; - // calculate connPtr->curParam.winOffset and set tx buffer - uint16 win_offset; - uint32 remainder; - - // calculate windows offset in multiconnection case - if (g_ll_conn_ctx.currentConn != LL_INVALID_CONNECTION_ID) - { -//#ifdef MULTI_ROLE - // allocate time slot for new connection - // calculate delta to current connection - // calculate new win_offset - uint32 temp, temp1, temp2; - int i; - - for (i = 0; i < g_maxConnNum; i++ ) - { - if (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER && conn_param[i].active) - break; - } - - if (i == g_maxConnNum) - { - // case 1: no master connection, schedule new connection after the current slave connection - g_new_master_delta = 12 * 625; // delta time to the current slave event - remainder = read_LL_remainder_time(); - g_new_master_delta += remainder; - remainder = g_new_master_delta - 352; // time of CONN_REQ - remainder = (remainder + (remainder >> 1) + (remainder >> 3) + (remainder >> 7)) >> 10; // rough estimate of (x / 625) = (1/1024 + 1/2048 + 1/8192) - - // winoffset should less then conn interval - if (g_new_master_delta - 2 > (uint32_t)(conn_param[initInfo.connId].curParam.connInterval << 1)) // win_offset should less then conn interval - g_new_master_delta -= conn_param[initInfo.connId].curParam.connInterval << 1; - - win_offset = (remainder - 2) >> 1; - } - else - { - // case 2: master connection exist, select the 1st master connection as anchor master connection - - // calculate the delta to the anchor master connection - if (initInfo.connId > i) - g_new_master_delta = (initInfo.connId - i) * g_ll_conn_ctx.per_slot_time; - else - g_new_master_delta = (conn_param[i].curParam.connInterval << 1) - (i - initInfo.connId) * g_ll_conn_ctx.per_slot_time; - - // schedule the new connection after the anchor master connection - g_new_master_delta = g_new_master_delta * 625 + g_ll_conn_ctx.scheduleInfo[i].remainder; - // elapse time since last schedule - temp1 = g_ll_conn_ctx.current_timer - ((AP_TIM1->CurrentCount) >> 2) + 2; - g_new_master_delta -= temp1; - - if (g_new_master_delta - 1250 > (conn_param[initInfo.connId].curParam.connInterval * 1250)) // win_offset should less then conn interval - g_new_master_delta -= conn_param[initInfo.connId].curParam.connInterval * 1250; - - // calculate win_offset - temp = g_new_master_delta - 352; // 352: CONN_REQ time - temp2 = (temp + (temp >> 1) + (temp >> 3) + (temp >> 7)) >> 10; // rough estimate of (x / 625) - win_offset = (temp2 - 2) >> 1; - // calculate remainder time of anchor master connection -// temp1 = (CP_TIM1->LoadCount - CP_TIM1->CurrentCount) >> 2; // get elapse time //read_LL_remainder_time(); -// temp1 = g_ll_conn_ctx.current_timer - ((CP_TIM1->CurrentCount) >> 2) + 2; // 2: rough time from read old timer1 to kick new timer1 -// temp = (g_ll_conn_ctx.scheduleInfo[i].remainder - temp1 - 352);// / 625; -// temp2 = (temp + (temp >> 1) + (temp >> 3) + (temp >> 7)) >> 10; // rough estimate of (x / 625) -// -// // remainder time of new connection = remainder time of anchor master connection + delta -// g_new_master_delta += temp2; -// -// // winoffset should less then conn interval -// if (g_new_master_delta - 2 > (conn_param[initInfo.connId].curParam.connInterval << 1)) // win_offset should less then conn interval -// g_new_master_delta -= conn_param[initInfo.connId].curParam.connInterval << 1; -// -// win_offset = (g_new_master_delta - 2) >> 1; -// g_new_master_delta = win_offset * 1250 + 352; - } - -//#else -// if (initInfo.connId > g_ll_conn_ctx.currentConn) -// g_new_master_delta = (initInfo.connId - g_ll_conn_ctx.currentConn) * g_ll_conn_ctx.per_slot_time; -// else -// g_new_master_delta = (conn_param[initInfo.connId].curParam.connInterval << 1) - (g_ll_conn_ctx.currentConn - initInfo.connId) * g_ll_conn_ctx.per_slot_time; -// -// // there are 2 case for new connection timing : 1. before next current connection slot 2. after next current connection slot. -// // Note: we will send the 1st master packet at time (1.25ms + winoffset) after send CONN REQ msg, -// // the time should align to allocate time slot, i.e. -// // remain time of timer1 + delta tick = 2 + winOffset + CONN REQ msg length(352us) -// remainder = (read_LL_remainder_time() - 352);// / 625; -// remainder = (remainder + (remainder >> 1) + (remainder >> 3) + (remainder >> 7)) >> 10; // rough estimate of (x / 625) = (1/1024 + 1/2048 + 1/8192) -// -// win_offset = (remainder + g_new_master_delta - 2) >> 1; -// if (win_offset > (conn_param[initInfo.connId].curParam.connInterval << 1)) // case 1 -// win_offset -= (conn_param[initInfo.connId].curParam.connInterval << 1); -// -//// g_new_master_delta = win_offset << 1; -// g_new_master_delta = win_offset * 1250 + 352; -//#endif - // WinOffset, Byte 20 ~ 21 - memcpy((uint8*)&g_tx_adv_buf.data[20], (uint8*)&win_offset, 2); - conn_param[initInfo.connId].curParam.winOffset = win_offset; - } - - // channel selection algorithm decision - if ((pGlobal_config[LL_SWITCH] & CONN_CSA2_ALLOW) - && chSel == LL_CHN_SEL_ALGORITHM_2) - { - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_2; - SET_BITS(g_tx_adv_buf.txheader, LL_CHN_SEL_ALGORITHM_2, CHSEL_SHIFT, CHSEL_MASK); - } - else - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_1; - - // send conn req - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - delay = 118 - delay - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY]; - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - // send conn req - ll_hw_set_stx(); // set LL HW as single Tx mode - ll_hw_go(); - llWaitingIrq = TRUE; - // AdvA, offset 6 - memcpy((uint8*)&g_tx_adv_buf.data[6], &g_rx_adv_buf.data[0], 6); - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(g_tx_adv_buf.txheader), - ((g_tx_adv_buf.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - move_to_master_function(); - //LOG("win_off = %d\n", win_offset); - //LOG("remainder = %d\n", remainder); - bConnecting = TRUE; - g_same_rf_channel_flag = FALSE; - } - } - else if (packet_len != 0 - && (pdu_type == ADV_DIRECT_IND)) // TODO: add process of direct ADV - { - } - } - - // scan again if not start connect - if (!bConnecting) // if not start connect, schedule next scan - { - if (initInfo.scanMode == LL_SCAN_STOP) - { - // scan has been stopped - llSecondaryState = LL_SEC_STATE_IDLE; // bug fixed by Zhufei // set the LL state idle - // release the associated allocated connection - llReleaseConnId(connPtr); // new for multi-connection - g_ll_conn_ctx.numLLMasterConns --; - (void)osal_set_event( LL_TaskID, LL_EVT_MASTER_CONN_CANCELLED ); // inform high layer - } - else - { - // not sending SCAN REQ, update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= initInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(initInfo.nextScanChan); - - // schedule next scan event - if (initInfo.scanWindow == initInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_INIT); - else - osal_start_timerEx(LL_TaskID, LL_EVT_SECONDARY_INIT, ((initInfo.scanInterval - initInfo.scanWindow) * 5) >> 3 ); - - // reset scan total time - llScanTime = 0; - } - else - llSetupSecInit(initInfo.nextScanChan); - } - } - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -void LL_IRQHandler1(void) -{ -// gpio_write(P32,1); -// gpio_write(P32,0); - uint32 irq_status; - int8 ret; - ISR_entry_time = read_current_fine_time(); - //*(volatile uint32_t *)0x4000f0b8 = 1; // pclk_clk_gate_en - ll_debug_output(DEBUG_ISR_ENTRY); - irq_status = ll_hw_get_irq_status(); - - if (!(irq_status & LIRQ_MD)) // only process IRQ of MODE DONE - { - ll_hw_clr_irq(); // clear irq status - return; - } - - llWaitingIrq = FALSE; - - if (llTaskState == LL_TASK_EXTENDED_ADV) - { - ret = ll_processExtAdvIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_EXTENDED_SCAN) - { - ret = ll_processExtScanIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_EXTENDED_INIT) - { - ret = ll_processExtInitIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_PERIODIC_ADV) - { - ret = ll_processPrdAdvIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_PERIODIC_SCAN) - { - ret = ll_processPrdScanIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else - { - uint8 mode; - mode = ll_hw_get_tr_mode(); - - if(mode == LL_HW_MODE_SRX && (llState == LL_STATE_SCAN || llState == LL_STATE_INIT)) - { - ret = ll_processBasicIRQ_SRX(irq_status); - } - else if((llSecondaryState == LL_SEC_STATE_ADV || llSecondaryState == LL_SEC_STATE_IDLE_PENDING) - && (mode == LL_HW_MODE_TRX ) - && (adv_param.advEvtType == LL_ADV_CONNECTABLE_UNDIRECTED_EVT || adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT)) - { - // JIRA bugfix : BBBSDKREL-294 - ret = ll_processBasicIRQ_secondaryAdvTRX(irq_status); - } - else if (mode == LL_HW_MODE_TRX && - (llState == LL_STATE_SCAN)) - { - ret = ll_processBasicIRQ_ScanTRX(irq_status); - } - else if (mode == LL_HW_MODE_SRX && - (llSecondaryState == LL_SEC_STATE_SCAN)) - { - ret = ll_processBasicIRQ_secondaryScanSRX(irq_status); - } - else if (mode == LL_HW_MODE_SRX && - (llSecondaryState == LL_SEC_STATE_INIT)) - { - ret = ll_processBasicIRQ_secondaryInitSRX(irq_status); - } - else - { - ret = ll_processBasicIRQ(irq_status); - } - - //test for fast adv - if( mode == LL_HW_MODE_TRX - && llState == LL_STATE_ADV_UNDIRECTED - && 0==(irq_status&LIRQ_COK) ) - { - uint8_t firstAdvChan = (adv_param.advChanMap&LL_ADV_CHAN_37) !=0 ? 37 : - (adv_param.advChanMap&LL_ADV_CHAN_38) !=0 ? 38 : 39; - - if(adv_param.advNextChan>firstAdvChan) - { - ll_schedule_next_event(50); //20180623 modified by ZQ - } - } - } - - // ================ Post ISR process: secondary pending state process - // conn-adv case 2: other ISR, there is pending secondary advertise event, make it happen - if (llSecondaryState == LL_SEC_STATE_ADV_PENDING) - { - if (llSecAdvAllow()) // for multi-connection case, it is possible still no enough time for adv - { - llSetupSecAdvEvt(); - ll_hw_set_rx_timeout(88); - llSecondaryState = LL_SEC_STATE_ADV; - } - } - // there is pending scan event, make it happen, note that it may stay pending if there is no enough idle time - else if (llSecondaryState == LL_SEC_STATE_SCAN_PENDING) - { - // trigger scan - llSetupSecScan(scanInfo.nextScanChan); - } - // there is pending init event, make it happen, note that it may stay pending if there is no enough idle time - else if (llSecondaryState == LL_SEC_STATE_INIT_PENDING) - { - // trigger scan - llSetupSecInit(initInfo.nextScanChan); - } - - DBG_GPIO_WRITE(DBGIO_LL_IRQ,0); - ll_debug_output(DEBUG_ISR_EXIT); -} - -//-------------------------------------- -extern uint32 llWaitingIrq; -extern uint32_t g_wakeup_rtc_tick; - -extern uint32 counter_tracking; -extern uint32_t g_counter_traking_avg; -extern uint32_t g_counter_traking_cnt; -extern uint32_t g_TIM2_IRQ_TIM3_CurrCount; -extern uint32_t g_TIM2_IRQ_to_Sleep_DeltTick; -extern uint32 read_ll_adv_remainder_time(void); -#define ROM_SLEEP_TICK *(volatile uint32_t *)(0x1fff0a14) - -__attribute__((weak)) void l2capPocessFragmentTxData(uint16 connHandle) -{ - (void)connHandle; - //do nothing -} - -#if 0 -extern int m_in_critical_region; -int drv_disable_irq1(void) -{ - __disable_irq(); - DBG_GPIO_WRITE(DBGIO_DIS_IRQ,1); - DBG_GPIO_WRITE(DBGIO_DIS_IRQ,0); - m_in_critical_region++; - return m_in_critical_region; -} - -int drv_enable_irq1(void) -{ - m_in_critical_region--; - - if (m_in_critical_region == 0) - { - __enable_irq(); - DBG_GPIO_WRITE(DBGIO_EN_IRQ,1); - DBG_GPIO_WRITE(DBGIO_EN_IRQ,0); - } - - return m_in_critical_region; -} -extern void TIM1_IRQHandler(void); -void TIM1_IRQHandler1(void) -{ - gpio_write(P20,1); - TIM1_IRQHandler(); - gpio_write(P20,0); -} -#endif - -/******************************************************************************* - @fn ll_scheduler - - @brief schedule next task, if current connection will be free, input - parameter should be LL_INVALID_TIME. The function is invoked - after old connection task end, it will not add new task but may - delete exist task - - input parameters - - @param time - schedule time for current connection - - output parameters - - @param None. - - @return None. -*/ -void ll_scheduler1(uint32 time) -{ - uint32 T1, T2, delta, min, prio_adj; - uint8 i, next, temp,conn_temp; - T1 = read_current_fine_time(); - - // timer1 is running, normally it should not occur - if (isTimer1Running()) - { - LOG("=== ASSERT FAIL, timer1 running when invoke ll_scheduler ===\n"); - g_pmCounters.ll_evt_shc_err++; - return; - } - - // if timer1 is not running, calculate the time elapse since last timer expiry - delta = g_ll_conn_ctx.current_timer + LL_TIME_DELTA(g_ll_conn_ctx.timerExpiryTick, T1) + pGlobal_config[TIMER_ISR_ENTRY_TIME]; - // update current context - g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].remainder = time; // if current conn terminal, the parameter "time" shall be LL_INVALID_TIME - min = time; - - if (time == LL_INVALID_TIME) - { - ll_deleteTask(g_ll_conn_ctx.currentConn); - g_ll_conn_ctx.currentConn = LL_INVALID_CONNECTION_ID; - } - - conn_temp = next = g_ll_conn_ctx.currentConn; - - if (next != LL_INVALID_CONNECTION_ID) - { - // if we want master or slave connection has higher schedule priority, set LL_MASTER_PREEMPHASIS/LL_SLAVE_PREEMPHASIS - if (g_ll_conn_ctx.scheduleInfo[next].linkRole == LL_ROLE_MASTER) - min = (time > pGlobal_config[LL_MULTICONN_MASTER_PREEMP]) ? (time - pGlobal_config[LL_MULTICONN_MASTER_PREEMP]) : 0; - - if (g_ll_conn_ctx.scheduleInfo[next].linkRole == LL_ROLE_SLAVE) - min = (time > pGlobal_config[LL_MULTICONN_SLAVE_PREEMP]) ? (time - pGlobal_config[LL_MULTICONN_SLAVE_PREEMP]) : 0; - } - - // update schedule task list and get the earliest task - for (i = 0; i < g_maxConnNum; i++) - { - if ((i != g_ll_conn_ctx.currentConn) && conn_param[i].active) - { - // task conflict process - // if there is no enough time for new task, invoke relate slave/master conn event process function -// if (g_ll_conn_ctx.scheduleInfo[i].remainder < delta + g_ll_conn_ctx.scheduleInfo[i].task_duration) - if (g_ll_conn_ctx.scheduleInfo[i].remainder < delta + 40) // 40 : margin for process delay, unit: us - { - // no enough time to process the event, regard the event as missed and update the conn context and timer - uint8 ret = LL_PROC_LINK_KEEP; - - if (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER) - { - // temporary update g_ll_conn_ctx.currentConn to current connection ID because - // ll_processMissMasterEvt will invoke function using global variable g_ll_conn_ctx.currentConn - temp = g_ll_conn_ctx.currentConn; - g_ll_conn_ctx.currentConn = i; - ret = ll_processMissMasterEvt(i); -// if( delta > g_ll_conn_ctx.scheduleInfo[i].remainder) -// { -// llConnState_t *connPtr = &conn_param[i]; -// uint8 missCE = (( delta - g_ll_conn_ctx.scheduleInfo[i].remainder) / ( connPtr->curParam.connInterval*625 )) + 1; -// for(uint8 misI = 0;misI g_ll_conn_ctx.scheduleInfo[i].remainder) - { - llConnState_t* connPtr = &conn_param[i]; - uint8 missCE = (( delta - g_ll_conn_ctx.scheduleInfo[i].remainder) / ( connPtr->curParam.connInterval*625 )) + 1; - - for(uint8 misI = 0; misI prio_adj) ? (g_ll_conn_ctx.scheduleInfo[i].remainder - prio_adj) : 0; - } - } - } - - if (min == LL_INVALID_TIME) // all task may be delete, not start timer - { - return; - } - - T2 = read_current_fine_time(); - // calculate the time elapse since enter this function. - delta = LL_TIME_DELTA(T1, T2); - HAL_ENTER_CRITICAL_SECTION(); - uint8 rem_l_delta_flag = FALSE; - uint8 rem_l_delta_value = 0; - - if (g_ll_conn_ctx.scheduleInfo[next].remainder <= delta) // TODO: should not go here, if this issue detected, root cause should be invest - { -// set_timer1(20); - set_timer(AP_TIM1,20); - g_ll_conn_ctx.current_timer = 20; - rem_l_delta_flag = TRUE; - rem_l_delta_value = next; -// LOG("-T %d:20,",next); - } - else - { -// set_timer1(g_ll_conn_ctx.scheduleInfo[next].remainder - delta); - set_timer(AP_TIM1,g_ll_conn_ctx.scheduleInfo[next].remainder - delta); -// LOG("-S%d,%d,",next,g_ll_conn_ctx.scheduleInfo[next].remainder - delta); - // update connection context & schedule info - g_ll_conn_ctx.current_timer = g_ll_conn_ctx.scheduleInfo[next].remainder - delta; - } - - g_ll_conn_ctx.currentConn = next; - - // set ll state according to current connection LL state - if (g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].linkRole == LL_ROLE_SLAVE) - llState = LL_STATE_CONN_SLAVE; - else if (g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].linkRole == LL_ROLE_MASTER) - llState = LL_STATE_CONN_MASTER; - - // the task is scheduled, set the priority as low - g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].priority = LL_SCH_PRIO_LOW; - - // take into account the time between start timer1 and T1 - for (i = 0; i < g_maxConnNum; i++) - { - if (conn_param[i].active) - { -// if( g_ll_conn_ctx.scheduleInfo[i].remainder >= delta ) -// g_ll_conn_ctx.scheduleInfo[i].remainder -= delta; - if( ( g_ll_conn_ctx.scheduleInfo[i].remainder < delta ) && ( rem_l_delta_flag == FALSE)) - { - if (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER) - ll_processMissMasterEvt(i); - else - ll_processMissSlaveEvt(i); - } - - if( ( rem_l_delta_value == i ) && ( rem_l_delta_flag == TRUE) ) - g_ll_conn_ctx.scheduleInfo[i].remainder = 0; - else - g_ll_conn_ctx.scheduleInfo[i].remainder -= delta; - - conn_param[i].llTbd2 = g_ll_conn_ctx.scheduleInfo[i].remainder; - /*record if error scheduler time*/ - // if( g_ll_conn_ctx.scheduleInfo[i].remainder > 500000) - // llConnTerminate(&conn_param[i],LL_SUPERVISION_TIMEOUT_TERM); - } - } - - // add for co-master intv bug fix - if( g_ll_conn_ctx.scheduleInfo[conn_temp].linkRole != LL_ROLE_MASTER ) - { - HAL_EXIT_CRITICAL_SECTION(); - return; - } - - int8 k=0; - - for (k = g_maxConnNum-1; k >= 0; k--) - { - if ((conn_param[k].active) && (g_ll_conn_ctx.scheduleInfo[k].linkRole == LL_ROLE_MASTER )) - { - break; - } - } - - i=k; - - if( conn_temp == i ) - { - uint8 jm=i; - uint8 fist_m=0; - // current master --> first master true value - uint32 tv_Masters = 0,tv_diff = 0,first_reminder = 0; - - for (i = 0; i < g_maxConnNum; i++) - { - if ((conn_param[i].active) && (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER )) - break; - } - - first_reminder = g_ll_conn_ctx.scheduleInfo[i].remainder; - fist_m = i; - - for (i=fist_m+1; i < jm+1 ; i++) - { - if ((conn_param[i].active) && (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER )) - { - tv_Masters = first_reminder + g_ll_conn_ctx.per_slot_time * 625 * (i - fist_m); - - if( tv_Masters > g_ll_conn_ctx.scheduleInfo[i].remainder) - tv_diff = tv_Masters - g_ll_conn_ctx.scheduleInfo[i].remainder; - else - tv_diff = g_ll_conn_ctx.scheduleInfo[i].remainder - tv_Masters; - - // < 1000 : filter scecondary first create master connection & miss process master event - if(tv_diff < 1000) - { - if( g_ll_conn_ctx.scheduleInfo[i].remainder > tv_Masters ) - { - g_ll_conn_ctx.scheduleInfo[i].remainder -= tv_diff; - } - else if( g_ll_conn_ctx.scheduleInfo[i].remainder < tv_Masters ) - { - g_ll_conn_ctx.scheduleInfo[i].remainder += tv_diff; - } - } - } - } - } - - HAL_EXIT_CRITICAL_SECTION(); -} -#if defined(CLK_16M_ONLY) && CLK_16M_ONLY != 0 -#else -#define CRY32_2_CYCLE_16MHZ_CYCLE_MAX (976 + 98) // tracking value range std +/- 20% -#define CRY32_2_CYCLE_16MHZ_CYCLE_MIN (976 - 98) -#define CRY32_2_CYCLE_DELTA_LMT (19) -#define TRACKING_16M_TICK_MAX (3300) //TRACKING_16M_TICK_MAX*30.5us 3300*30.5 around 100ms -#define TRACKING_MAX_SLEEPTIME (1980000) //MAX sleep time is 60 seconds. - -uint32_t g_xtal16M_tmp=0; // RC 32KHz tracking counter, calculate 16MHz ticks number per RC32KHz cycle -extern void hal_pwrmgr_enter_sleep_rtc_reset(uint32_t sleepRtcTick); -static void check_16MXtal_by_rcTracking(void) -{ - /* - for fiset wakeupini, not do rcCal, just skip the rcTacking - - */ - if(AON_LOAD_RC32K_CALIB_FLG == 0) - { - WaitRTCCount(60); - return; - } - - uint32_t temp; - uint32_t temp31,temp32,temp33; - uint32_t temp_min,temp_max; - uint32_t tracking_start = rtc_get_counter(); - // ======== enable tracking 32KHz RC timer with 16MHz crystal clock - AP_AON->RTCCLK0 |= BIT(18); - //temp = *(volatile uint32_t*)0x4000f040; - //*(volatile uint32_t*)0x4000f040 = temp | BIT(18); - // [bit16] 16M [bit8:4] cnt [bit3] track_en_rc32k - AP_AON->RTCCFG2 = (AP_AON->RTCCFG2 & 0xfffefe00) | 0x0028; - WaitRTCCount(3); - // 0x4000f064 - RC 32KHz tracking counter, calculate 16MHz ticks number per RC32KHz cycle - temp31 = AP_AON->RTCTRCCNT & 0x1ffff; - WaitRTCCount(3); - temp32 = AP_AON->RTCTRCCNT & 0x1ffff; - WaitRTCCount(3); - temp33 = AP_AON->RTCTRCCNT & 0x1ffff; - - while(1) - { - temp_min = (temp31 >=temp32) ? (temp32):(temp31); - temp_min = (temp_min >=temp33) ? (temp33):(temp_min); - temp_max = (temp31 >=temp32) ? (temp31):(temp32); - temp_max = (temp_max >=temp33) ? (temp_max):(temp33); - - if( temp31>CRY32_2_CYCLE_16MHZ_CYCLE_MIN && - temp31CRY32_2_CYCLE_16MHZ_CYCLE_MIN && - temp32 CRY32_2_CYCLE_16MHZ_CYCLE_MIN && - temp33 RTCTRCCNT & 0x1ffff; - //check tracking cost - uint32_t tracking_end = rtc_get_counter(); - uint32_t tracking_16M_tick = (tracking_end>=tracking_start) ? (tracking_end-tracking_start) : (0xffffffff-tracking_start+tracking_end); - - if(tracking_16M_tick >= TRACKING_16M_TICK_MAX) - { - //record tracking sleep number - uint32_t tracking_sleep_num =AON_LOAD_XTAL_TRACKING_RST_NUMBER; - AON_SAVE_XTAL_TRACKING_RST_NUMBER(tracking_sleep_num+1); - //set just_enter_sleep_flg - AON_SAVE_XTAL_TRACKING_RST_FLG(1); - set_sleep_flag(0); - - if ((1 << tracking_sleep_num)*33000< TRACKING_MAX_SLEEPTIME) - { - hal_pwrmgr_enter_sleep_rtc_reset((1 << tracking_sleep_num)*33000); - } - else - { - hal_pwrmgr_enter_sleep_rtc_reset(TRACKING_MAX_SLEEPTIME); - } - } - } - - WaitRTCCount(20); - temp = AP_AON->RTCTRCCNT & 0x1ffff; - //disable tracking - AP_AON->RTCCFG2 &= ~BIT(3); // subWriteReg(0x4000f05C,3,3,0); - g_xtal16M_tmp = temp; -} - -#define TRACKING_96M_16M_MULTI6_DELTA_LIMIT (10*6) //96M:16M*6 +- 1% -#define DLL_ENABLE_MAX (5) - -uint32_t g_xtal96M_temp=0; -uint32_t DLL_enable_num=1; - -static void check_96MXtal_by_rcTracking(void) -{ - uint32_t temp,temp1; - - //for first wakeupinit - if((AP_AON->SLEEP_R[1] & 0x80) == 0) - { - //enable DLL - AP_AON->RTCCFG1 |= BIT(7); // temp = *(volatile uint32_t*)0x4000f044; - // *(volatile uint32_t*)0x4000f044 = temp | BIT(7); - WaitRTCCount(3); - return; - } - - DLL_enable_num=0; - // ======== enable tracking 32KHz RC timer with 16MHz crystal clock - AP_AON->RTCCLK1 |= BIT(18); - //temp = *(volatile uint32_t*)0x4000f040; - //*(volatile uint32_t*)0x4000f040 = temp | BIT(18); - - while(1) - { - //enable DLL - AP_AON->RTCCFG1 |= BIT(7); - //temp = *(volatile uint32_t*)0x4000f044; - //*(volatile uint32_t*)0x4000f044 = temp | BIT(7); - WaitRTCCount(3); - DLL_enable_num++; - // gpio_write(P32,1); - // gpio_write(P32,0); - // //enable digclk 96M - // temp = *(volatile uint32_t*)0x4000f044; - AP_AON->RTCCFG1 |= BIT(16); // *(volatile uint32_t*)0x4000f044 = temp | BIT(16); - - for(uint8 index=0; index<5; index++) - { - temp = AP_AON->RTCCFG2; - // [bit16] 16M [bit8:4] cnt [bit3] track_en_rc32k - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0028 | BIT(16); - WaitRTCCount(3); - temp1 = AP_AON->RTCTRCCNT & 0x1ffff; - AP_AON->RTCCFG2 &= ~BIT(3); //disable tracking subWriteReg(0x4000f05C,3,3,0); - if( (g_xtal16M_tmp*6 >=temp1 ? (g_xtal16M_tmp*6 -temp1):(temp1-g_xtal16M_tmp*6))RTCCFG2 &= ~BIT(16); // disable 16M subWriteReg(0x4000f05C,16,16,0); - AP_AON->RTCCFG1 &= ~BIT(16); // subWriteReg(0x4000f044,16,16,0); - g_xtal96M_temp = temp1; - return; - } - } - - //disable 96M - AP_AON->RTCCFG2 &= ~BIT(16); // disable 16M subWriteReg(0x4000f05C,16,16,0); - AP_AON->RTCCFG1 &= ~BIT(16); // div? subWriteReg(0x4000f044,16,16,0); - - //should not be here - if(DLL_enable_num>= DLL_ENABLE_MAX) - { - NVIC_SystemReset(); - } - - //disable DLL - AP_AON->RTCCFG1 &= ~BIT(7); - WaitRTCCount(3); - //update g_xtal16M_tmp - temp = AP_AON->RTCCFG2; - // [bit16] 16M [bit8:4] cnt [bit3] track_en_rc32k - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0028 ; - WaitRTCCount(3); - // RC 32KHz tracking counter, calculate 16MHz ticks number per RC32KHz cycle - g_xtal16M_tmp = AP_AON->RTCTRCCNT & 0x1ffff; - AP_AON->RTCCFG2 &= ~BIT(3); //disable tracking subWriteReg(0x4000f05C,3,3,0); - } -} -#endif - -// now we split the initial fucntion to 3 kinds: -// 1. boot init function: which should be init when system boot. note: not include wakeup init function -// 2. wakeup init function: which should be init when wakeup from system sleep -// 3. parameter which should be init in APP, include: RF, board, ... -// summary: -// - normal boot, need: 1 + 2 + 3 -// - wakeup, need: 2 + 3 - -// init paramaters every time wakeup - -uint32_t tracking_cnt=0; -void wakeup_init1() -{ - uint8_t pktFmt = PKT_FMT_BLE1M; // packet format 1: BLE 1M - uint32 temp; - efuse_init(); - __wdt_init(); - - //sdk 3.1.3 - //hal_system_clock_change_process(); - - - //int int_state; - // =========== clk gate for low power - //*(volatile uint32_t *) 0x40000008 = 0x01e92190; - // enable rng analog block. RNG analog need > 200us before stable, and it consume few current, so open it at wakeup - //*(volatile uint32_t *) 0x4000f048 |= 1 << 23; - // =========== config PCRM -// *(volatile uint32_t *) 0x4000f040 = 0x501fb000; //enable xtal out -// *(volatile uint32_t *) 0x4000f044 = 0x01ade8b0; //switch rf,adc to doubler,32M -//---by ZQ 2017-10-17 - //*(volatile uint32_t *) 0x4000f040 = 0x501fb820; // enable xtal out - // set the xtal cap to zero for faster settle - // set [16] manually enable ac strigger f 20180613 by ZQ - //*(volatile uint32_t *) 0x4000f044 = 0x01bdf8b0;//0x01bef830; // switch rf,adc to doubler, dll_off, dll_ldo on - // dll will be turn on in rf_ini after xtal settle - //*(volatile uint32_t *) 0x4000f044 = 0x00be0830; //[26:22] 0x02,[21:18]0x0f,[16:12]0x00,[7:4]0x03 - //< 22>:sel_rf_clk_16M; - //< 23>:sel_rf_dbl_clk_32M; - //< 24>:sel_rxadc_dbl_clk_32M; - //< 25>:sel_rxadc_dbl_clk_32M_polarity; - //< 26>:sel_rf_dbl_clk_32M_polarity - // < 18>:en_rf_clk; - // < 19>:en_rxadc_clk_32M; - // < 20>:sel_cp_clk_32M; - // < 21>:sel_dig_dble_clk_32M; - // < 12>:en_cp_dll_clk; - // < 13>:en_dig_clk_32M; - // < 14>:en_dig_clk_48M; - // < 15>:en_dig_clk_64M; - // < 16>:en_dig_clk_96M; -#if (DBG_BUILD_LL_TIMING) - //====== for timing debug============ - gpio_write(DBG_PIN_SYS_CLK_SWITCH, 1); - gpio_write(DBG_PIN_SYS_CLK_SWITCH, 0); - //PHY_REG_WT(AP_IOMUX_BASE+8,1);//en debugMux[0] -#endif - //each rtc count is about 30.5us - //after 15count , xtal will be feedout to dll and doubler -#if defined(CLK_16M_ONLY) && CLK_16M_ONLY != 0 - temp = AP_AON->RTCCFG2; - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0108; //[16] 16M [8:4] cnt [3] track_en_rc32k - WaitRTCCount(pGlobal_config[WAKEUP_DELAY]); -#else - if(g_system_clk == SYS_CLK_XTAL_16M ) - WaitRTCCount(pGlobal_config[WAKEUP_DELAY]); - else - { - uint32_t tracking_c1,tracking_c2; - tracking_c1 = rtc_get_counter(); - WaitRTCCount(50); - check_16MXtal_by_rcTracking(); - WaitRTCCount(15); - - if(g_system_clk != SYS_CLK_DBL_32M ) - { - check_96MXtal_by_rcTracking(); - } - else - { - /* - for hclk=32M DBL - switch to 32M RC and reset DBL - */ - if((AP_AON->RTCCLK0 & 0x07)==SYS_CLK_DBL_32M) - { - clk_init(SYS_CLK_RC_32M); - } - - //reset doubler - AP_PCRM->CLKHF_CTL1 &= ~BIT(8); - WaitRTCCount(2); - AP_PCRM->CLKHF_CTL1 |= BIT(8); - } - - tracking_c2 = rtc_get_counter(); - tracking_cnt = (tracking_c2>=tracking_c1) ? (tracking_c2-tracking_c1) : (0xffffffff-tracking_c1+tracking_c2); - pGlobal_config[WAKEUP_ADVANCE] =1650+30*tracking_cnt; - } -#endif - // ============ config BB Top - *(volatile uint32_t*) 0x40030000 = 0x3d068001; // set tx pkt =2 - *(volatile uint32_t*) 0x400300bc = 0x834; //[7:0] pll_tm [11:8] rxafe settle - *(volatile uint32_t*) 0x400300a4 = 0x140; //[6] for tpm_en - clk_init(g_system_clk); - // ================= clock selection - // hclk_sel select hclk source. 0---rc 32m 1----dll 32m 2---xtal 16m 3---dll 48m 4----dll 64m 5----dll 96m -// switch (pGlobal_config[CLOCK_SETTING]) -// { -// case SYS_CLK_XTAL_16M: -//// *(int *) 0x4000f03C = 0x18001; // clock selection -// *(int *) 0x4000f03C = 0x10002; // clock selection -// break; -// case SYS_CLK_DBL_32M: -// case SYS_CLK_DLL_32M: -// *(int *) 0x4000f03C = 0x10001; // clock selection -// break; -// case SYS_CLK_DLL_48M: -// *(int *) 0x4000f03C = 0x10003; // clock selection -// break; -// case SYS_CLK_DLL_64M: -// *(int *) 0x4000f03C = 0x10004; // clock selection -// break; -// case SYS_CLK_DLL_96M: -// *(int *) 0x4000f03C = 0x10005; // clock selection -// break; -// default: -// *(int *) 0x4000f03C = 0x10002; // clock selection -// break; -// } - // ========== init timers - set_timer(AP_TIM2, 625); // OSAL 625us tick - - if (1) { //sdk3.1.3 - //restart the 625 timer - AP_TIM2->ControlReg = 0x0; //[0x40001014+8]=0 - AP_TIM2->ControlReg = 0x2; //[0x40001014+8]=2 - AP_TIM2->LoadCount = 2499; //[0x40001014]=2499 - AP_TIM2->ControlReg = 0x3; //[0x40001014+8]=3 - } - - set_timer(AP_TIM3, BASE_TIME_UNITS); // 1s timer - // =========== open interrupt mask - //int_state = 0x14; - //set_int(int_state); - //should use NVIC_EnableIRQn() - NVIC_EnableIRQ(BB_IRQn); - NVIC_EnableIRQ(TIM1_IRQn); - NVIC_EnableIRQ(TIM2_IRQn); - NVIC_EnableIRQ(TIM4_IRQn); // нет в sdk3.1.3 - // =========== ll HW setting - set_max_length(0xff); - ll_hw_set_empty_head(0x0001); - //time related setting - ll_hw_set_rx_timeout_1st(500); - ll_hw_set_rx_timeout(88); //ZQ 20180606, reduce rx timeout for power saving - //preamble + syncword=40us, sync process = 8us - //timeout should be larger then 48us, - //ll_hw_set_rx_timeout( 268); //for ble shoulde be larger than 80+128. if sync, the timeout timer stop. - // (80 + 128) - BLE 5.0 preamble + access time, 60 for HW process delay - // this time doesn't consider HW startup time, it is set in other regs - ll_hw_set_loop_timeout(30000); -// ll_hw_set_tx_rx_release (10, 1); -// ll_hw_set_rx_tx_interval( 57); //T_IFS=150us for BLE 1M -// ll_hw_set_tx_rx_interval( 65); //T_IFS=150us for BLE 1M -// ll_hw_set_trx_settle (57, 8, 52); //TxBB,RxAFE,PLL - ll_hw_set_timing(pktFmt); // =PKT_FMT_BLE1M - ll_hw_ign_rfifo(LL_HW_IGN_SSN | LL_HW_IGN_CRC | LL_HW_IGN_EMP); - // ======== enable tracking 32KHz RC timer with 16MHz crystal clock -// temp = AP_AON->RTCCFG2; -// AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0108; //[16] 16M [8:4] cnt [3] track_en_rc32k - //get wakeup tracking counter -#if 0 - if (pGlobal_config[LL_SWITCH] & RC32_TRACKINK_ALLOW) - { - WaitRTCCount(17); - uint32_t counter_tracking_wakeup = AP_AON->RTCTRCCNT; // *(volatile uint32_t *)0x4000f064 & 0x1ffff; - counter_tracking = (counter_tracking_wakeup + counter_tracking)>>1; - } -#endif -} - -void config_RTC1(uint32 time) -{ -// *((volatile uint32_t *)(0xe000e100)) |= INT_BIT_RTC; // remove, we don't use RTC interrupt - //align to rtc clock edge - WaitRTCCount(1); -#if TEST_RTC_DELTA - do - sleep_tick = AP_AON->RTCCNT; // read current RTC counter - while(sleep_tick != AP_AON->RTCCNT); -#else - sleep_tick = AP_AON->RTCCNT; // *(volatile uint32_t*) 0x4000f028; read current RTC counter -#endif - //update for cal ll next time after wakeup - ll_remain_time = read_LL_remainder_time(); - // comparator configuration - g_TIM2_IRQ_to_Sleep_DeltTick = (g_TIM2_IRQ_TIM3_CurrCount > (AP_TIM3->CurrentCount)) - ? (g_TIM2_IRQ_TIM3_CurrCount - (AP_TIM3->CurrentCount)) : 0; - AP_AON->RTCCC0 = sleep_tick + time; //set RTC comparatr0 value -// *(volatile uint32_t *) 0x4000f024 |= 1 << 20; //enable comparator0 envent -// *(volatile uint32_t *) 0x4000f024 |= 1 << 18; //counter overflow interrupt -// *(volatile uint32_t *) 0x4000f024 |= 1 << 15; //enable comparator0 inerrupt - AP_AON->RTCCTL |= BIT(15)|BIT(18)|BIT(20); // |= 0x148000 combine above 3 statement to save MCU time - - //compensate for cal wakeup next_time - if (llState != LL_STATE_IDLE) - { -#if defined(CLK_16M_ONLY) && CLK_16M_ONLY != 0 - ll_remain_time -= 15; -#else - if(g_system_clk == SYS_CLK_XTAL_16M) - { - ll_remain_time -= 15; - } - else if(g_system_clk == SYS_CLK_DBL_32M) - { - ll_remain_time -= 8; - } - else if(g_system_clk == SYS_CLK_DLL_48M) - { - ll_remain_time -= 5; - } - else - { - ll_remain_time -= 3; - } -#endif - } - -#if 0 - extern uint32 sleep_total; - LOG("%d %d %d\n",conn_param[0].currentEvent,sleep_total,counter_tracking); - #endif -} - -#if 1 -/******************************************************************************* - @fn wakeupProcess1 - - @brief wakeup from system sleep process function. - - - input parameters - - @param None - - output parameters - - @param None. - - @return None. -*/ -uint32 sleep_total; -extern uint32 g_stack; -#ifdef __GNUC__ -// Indicate that the specified function does not need prologue/epilogue sequences -// generated by the compiler. And function doesn't return. -void wakeupProcess1(void) __attribute__ ((naked)); -#endif -void wakeupProcess1(void) -{ - uint32 current_RTC_tick; - uint32 wakeup_time, wakeup_time0, next_time; - uint32 dlt_tick; - //restore initial_sp according to the app_initial_sp : 20180706 ZQ - __set_MSP(pGlobal_config[INITIAL_STACK_PTR]); - HAL_CRITICAL_SECTION_INIT(); - - //==== 20180416 commented by ZQ - // to enable flash access after wakeup - // current consumption has been checked. No big different - //rom_set_flash_deep_sleep(); - -#ifdef STACK_MAX_SRAM - //=======fix sram_rent issue 20180323 - // All memory on - //hal_pwrmgr_RAM_retention_clr(); - subWriteReg(0x4000f01c,21,17,0); -#endif - if (sleep_flag != SLEEP_MAGIC) - { - // enter this branch not in sleep/wakeup scenario - set_sleep_flag(0); - // software reset - *(volatile uint32*)0x40000010 &= ~0x2; // bit 1: M0 cpu reset pulse, bit 0: M0 system reset pulse. - } else - set_sleep_flag(0); // sdk 3.1.3 - // restore HW registers - wakeup_init1(); - //===20180417 added by ZQ - // could be move into wakeup_init - // add the patch entry for tx2rx/rx2tx interval config - //2018-11-10 by ZQ - //config the tx2rx timing according to the g_rfPhyPktFmt - ll_hw_tx2rx_timing_config(g_rfPhyPktFmt); - // 20200812 ZQ -#if 0 // DO NOT Turn OFF 32K Xtal - if (pGlobal_config[LL_SWITCH] & LL_RC32K_SEL) - { - subWriteReg(0x4000f01c,16,7,0x3fb); //software control 32k_clk - subWriteReg(0x4000f01c,6,6 ,0x01); //enable software control - } - else - { - subWriteReg(0x4000f01c,9,8,0x03); //software control 32k_clk - subWriteReg(0x4000f01c,6,6,0x00); //disable software control - } -#endif - //20181201 by ZQ - //restart the TIM2 to align the RTC - //---------------------------------------------------------- - //stop the 625 timer - AP_TIM2->ControlReg = 0x0; - AP_TIM2->ControlReg = 0x2; - AP_TIM2->LoadCount = 2499; - //---------------------------------------------------------- - //wait rtc cnt change - WaitRTCCount(1); - //---------------------------------------------------------- - //restart the 625 timer - AP_TIM2->ControlReg = 0x3; - current_RTC_tick = rtc_get_counter(); - //g_TIM2_wakeup_delay= (AP_TIM2->CurrentCount)+12; //12 is used to align the rtc_tick - wakeup_time0 = read_current_fine_time(); - g_wakeup_rtc_tick = rtc_get_counter(); - // rf initial entry, will be set in app - rf_phy_ini(); - - if(current_RTC_tick > sleep_tick) - dlt_tick = current_RTC_tick - sleep_tick; - else - dlt_tick = (0xffffffff - sleep_tick) + current_RTC_tick; - - //dlt_tick += 2; //dlt_tick/190; - - //dlt_tick should not over 24bit - //otherwise, sleep_total will overflow !!! - if(dlt_tick > 0x3fffff) - dlt_tick &= 0x3fffff; - // calculate sleep_total in us - if (pGlobal_config[LL_SWITCH] & RC32_TRACKINK_ALLOW) - { - // TEST_RTC_DELTA? - //counter_tracking default 16 cycle - sleep_total = ((((dlt_tick & 0xffff0000) >> 16) * counter_tracking) << 8) - + (((dlt_tick & 0xffff) * counter_tracking) >> 8); - } - else - { - // time = tick * 1000 0000 / f (us). f = 32000Hz for RC, f = 32768Hz for crystal. We also calibrate 32KHz RC to 32768Hz - //sleep_total = ((current_RTC_tick - sleep_tick) * TIMER_TO_32K_CRYSTAL) >> 2; - //fix sleep timing error - sleep_total = ( ( (dlt_tick << 7) - (dlt_tick << 2) - (dlt_tick << 1) + 2) >> 2 ) /* dlt_tick * (128-4-2)/4 */ - +( ( (dlt_tick << 3) + dlt_tick +128) >> 9 ) ; /* dlt_tick *9/512 */ - //+2,+128 for zero-mean quanization noise - } - // restore systick - g_osal_tick_trim = (pGlobal_config[OSAL_SYS_TICK_WAKEUP_TRIM] + g_TIM2_IRQ_to_Sleep_DeltTick + 2500 - g_TIM2_IRQ_PendingTick) >> 2; //16 is used to compensate the cal delay - g_osalTickTrim_mod += (pGlobal_config[OSAL_SYS_TICK_WAKEUP_TRIM] + g_TIM2_IRQ_to_Sleep_DeltTick + 2500 - g_TIM2_IRQ_PendingTick) & 0x03; //16 is used to compensate the cal delay - - if(g_osalTickTrim_mod > 4) - { - g_osal_tick_trim += 1; - g_osalTickTrim_mod = g_osalTickTrim_mod % 4; - } - - // restore systick - osal_sys_tick += (sleep_total + g_osal_tick_trim) / 625; // convert to 625us systick - rtc_mod_value += ((sleep_total + g_osal_tick_trim) % 625); - - if(rtc_mod_value > 625) - { - osal_sys_tick += 1; - rtc_mod_value = rtc_mod_value % 625; - } - - osalTimeUpdate(); - - // osal time update, not required. It will be updated when osal_run_system() is called after wakeup - - // TODO: should we consider widen the time drift window ???? - - //20190117 ZQ - if(llState != LL_STATE_IDLE) - { - // SW delay - wakeup_time = read_current_fine_time() - wakeup_time0; - next_time = 0; - - if (ll_remain_time > sleep_total + wakeup_time) - { - next_time = ll_remain_time - sleep_total - wakeup_time; - // restore LL timer - set_timer(AP_TIM1, next_time); - } - else - { - // should not be here - set_timer(AP_TIM1, 1000); - } - } - - if (g_llSleepContext.isTimer4RecoverRequired) - { - // SW delay - wakeup_time = read_current_fine_time() - wakeup_time0; - next_time = 0; - - if (g_llSleepContext.timer4Remainder > sleep_total + wakeup_time) - { - next_time = g_llSleepContext.timer4Remainder - sleep_total - wakeup_time; - // restore LL timer - set_timer(AP_TIM4, next_time); - } - else - { - // should not be here - set_timer(AP_TIM4, 1500); - // next_time = 0xffff; - } - - g_llSleepContext.isTimer4RecoverRequired = FALSE; - } -#ifdef STACK_MAX_SRAM - __set_MSP((uint32_t)(&g_stack)); -#endif - // app could add operation after wakeup - app_wakeup_process(); -// uart_tx0(" 111 "); - - ll_debug_output(DEBUG_WAKEUP); - - set_sleep_flag(0); - // ==== measure value, from RTC counter meet comparator 0 -> here : 260us ~ 270us - // start task loop - osal_start_system(); // No Return from here -} - - -void enter_sleep_off_mode1(Sleep_Mode mode) -{ - if(mode==SYSTEM_SLEEP_MODE) - spif_set_deep_sleep(); - - enter_sleep_off_mode0(mode); -} -#endif -void LL_ENC_AES128_Encrypt1( uint8* key, - uint8* plaintext, - uint8* ciphertext ) -{ - //only turn on while working - AP_PCR->SW_CLK |= BIT(MOD_AES); - LL_ENC_AES128_Encrypt0(key,plaintext,ciphertext); - AP_PCR->SW_CLK &= ~BIT(MOD_AES); -} - -#define LL_ENC_BASE 0x40040000 // LL HW AES engine Base address - -#define LL_ENC_ENCRYPT_DONE_MASK 0x0001 -#define LL_ENC_DECRYPT_FAIL_MASK 0x0002 -#define LL_ENC_DECRYPT_SUCC_MASK 0x0004 -#define LL_ENC_SINGLE_MODE_DONE_MASK 0x0008 - -extern void LL_ENC_LoadKey( uint8* key ); -void LL_ENC_Encrypt1( llConnState_t* connPtr, uint8 pktHdr, uint8 pktLen, uint8* pBuf ) -{ - AP_PCR->SW_CLK |= BIT(MOD_AES); -// LL_ENC_Encrypt0(connPtr, pktHdr, pktLen, pBuf ); - { - uint8* pByte = NULL; - uint16 index; - int i, len; - uint32_t temp; - // disable AES - *(int*) 0x40040000 = 0x0; - // Load Key - // Note: Normally this would only need to be done once when the SK is derived - // from the LTK and SKD. However, when in sleep, the AES block loses - // this key. Also, when multiple connections are supported, the key - // will be different. - LL_ENC_LoadKey( connPtr->encInfo.SK ); - -// if ( llState == LL_STATE_CONN_MASTER ) - if( connPtr->llTbd1 == LL_LINK_CONNECT_COMPLETE_MASTER ) - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.txPktCount, - LL_ENC_TX_DIRECTION_MASTER, - connPtr->encInfo.nonce ); - } - else // assumed llState == LL_STATE_CONN_SLAVE - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.txPktCount, - LL_ENC_TX_DIRECTION_SLAVE, - connPtr->encInfo.nonce ); - } - - // confiig nounce - pByte = connPtr->encInfo.nonce; - *(volatile uint32_t*)(LL_ENC_BASE + 0x3c) = pByte[0] ; - pByte ++; - *(volatile uint32_t*)(LL_ENC_BASE + 0x38) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x34) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x30) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - // config plen & aad - *(volatile uint32_t*)(LL_ENC_BASE + 0x0c) = (pktLen << 8) | pktHdr; - // write packet to FIFO - len = pktLen; - index = 0; - - while (len >= 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 3] << 24 | pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - len -= 4; - } - - // to check the byte order - if(len == 3) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - } - else if(len == 2) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 1] << 8 | pBuf[index] ; - index += 4; - } - else if(len == 1) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index] ; - index += 4; - } - - // AES FIFO legth is 256 bytes, set other bytes 0 - for (i = index; i < 0x100; i += 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + i) = 0x0; - } - - // set AES ctrl reg - *(int*) 0x40040004 = 0xf00; - // set interrupt enable - *(int*) 0x40040010 = 0xf; - // enable AES - *(int*) 0x40040000 = 0x1; - - // insert delay - // delay = 200; - // while (delay --); - - // query AES interrupt status register - while (*(volatile uint32_t*)(LL_ENC_BASE + 0x0014) == 0) ; - - // disable AES, if not disable AES, there is no output in FIFO - *(int*) 0x40040000 = 0x0; - // read back the encrypt result - index = 0; - len = pktLen + 4; // include 4 bytes MIC - - while (len > 0) - { - temp = *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index); - pBuf[index ++] = temp & 0xff; - pBuf[index ++] = (temp >> 8) & 0xff; - pBuf[index ++] = (temp >> 16) & 0xff; - pBuf[index ++] = (temp >> 24) & 0xff; - len -= 4; - } - - // up the count for the next TX'ed data packet - // Note: This is supposed to be 39 bit counter, but for now, we don't - // envision receiving 550 billion packets during a connection! - connPtr->encInfo.txPktCount++; -// return; - } - AP_PCR->SW_CLK &= ~BIT(MOD_AES); -} -uint8 LL_ENC_Decrypt1( llConnState_t* connPtr, uint8 pktHdr, uint8 pktLen, uint8* pBuf ) -{ - AP_PCR->SW_CLK |= BIT(MOD_AES); -// uint8 ret = LL_ENC_Decrypt0( connPtr, pktHdr, pktLen, pBuf ); - { - uint8* pByte = NULL; - uint16 index; - int i, len; - uint32_t temp; - // disable AES - *(int*) 0x40040000 = 0x0; - // Load Key - // Note: Normally this would only need to be done once when the SK is derived - // from the LTK and SKD. However, when in sleep, the AES block loses - // this key. Also, when multiple connections are supported, the key - // will be different. - LL_ENC_LoadKey( connPtr->encInfo.SK ); - -// if ( llState == LL_STATE_CONN_MASTER ) - if( connPtr->llTbd1 == LL_LINK_CONNECT_COMPLETE_MASTER ) - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.rxPktCount, - LL_ENC_RX_DIRECTION_MASTER, - connPtr->encInfo.nonce ); - } - else // assumed llState == LL_STATE_CONN_SLAVE - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.rxPktCount, - LL_ENC_RX_DIRECTION_SLAVE, - connPtr->encInfo.nonce ); - } - - // confiig nounce - pByte = connPtr->encInfo.nonce; - *(volatile uint32_t*)(LL_ENC_BASE + 0x3c) = pByte[0]; // << 24 ; - pByte ++; - *(volatile uint32_t*)(LL_ENC_BASE + 0x38) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x34) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x30) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - // config plen & aad - *(volatile uint32_t*)(LL_ENC_BASE + 0x0c) = (pktLen << 8) | pktHdr; - // write packet to FIFO - len = pktLen + 4; // decrypt, add 4 for MIC field length - index = 0; - - while (len >= 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 3] << 24 | pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - len -= 4; - } - - // fill others bytes < 1 word - if(len == 3) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - } - else if(len == 2) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 1] << 8 | pBuf[index] ; - index += 4; - } - else if(len == 1) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index] ; - index += 4; - } - - // AES FIFO legth is 256 bytes, set other bytes 0 - for (i = index; i < 0x100; i += 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + i) = 0x0; - } - - // set AES ctrl reg - *(int*) 0x40040004 = 0xf08; - // set interrupt enable - *(int*) 0x40040010 = 0xf; - // enable AES - *(int*) 0x40040000 = 0x1; - - // insert delay -// delay = 200; -// while (delay --); - - // query AES interrupt status register and wait decrypt finish - while (*(volatile uint32_t*)(LL_ENC_BASE + 0x0014) == 0) ; - - // read interrupt status reg - temp = *(volatile uint32_t*)(LL_ENC_BASE + 0x0014); - - if ((temp & LL_ENC_DECRYPT_FAIL_MASK) - || ((temp & LL_ENC_DECRYPT_SUCC_MASK) == 0)) - { - AP_PCR->SW_CLK &= ~BIT(MOD_AES); - return FALSE; - } - - // disable AES - *(int*) 0x40040000 = 0x0; - // read the decrypt result - index = 0; - len = pktLen; - - while (len > 0) - { - temp = *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index); - pBuf[index ++] = temp & 0xff; - pBuf[index ++] = (temp >> 8) & 0xff; - pBuf[index ++] = (temp >> 16) & 0xff; - pBuf[index ++] = (temp >> 24) & 0xff; - len -= 4; - } - - // up the count for the next RX'ed data packet - // Note: This is supposed to be 39 bit counter, but for now, we don't - // envision receiving 550 billion packets during a connection! - connPtr->encInfo.rxPktCount++; - AP_PCR->SW_CLK &= ~BIT(MOD_AES); - return( TRUE ); - } -// AP_PCR->SW_CLK &= ~BIT(MOD_AES); -// return ret; -} - -//20200928 ZQ -//fix ADV_DIR_IND rxAdd setbit -llStatus_t LL_SetAdvParam1( uint16 advIntervalMin, - uint16 advIntervalMax, - uint8 advEvtType, - uint8 ownAddrType, - uint8 peerAddrType, - uint8* peerAddr, - uint8 advChanMap, - uint8 advWlPolicy ) -{ - uint8_t llState_reserve = llState; - llStatus_t ret; - ret=LL_SetAdvParam0( advIntervalMin, - advIntervalMax, - advEvtType, - ownAddrType, - peerAddrType, - peerAddr, - advChanMap, - advWlPolicy ); - llState=llState_reserve; - - if(advEvtType==LL_ADV_CONNECTABLE_HDC_DIRECTED_EVT - || advEvtType==LL_ADV_CONNECTABLE_LDC_DIRECTED_EVT) - { - SET_BITS(g_tx_adv_buf.txheader, peerInfo.peerAddrType, RX_ADD_SHIFT, RX_ADD_MASK); // RxAdd need't set - } - - return ret; -} - -llStatus_t LL_SetAdvControl1( uint8 advMode ) -{ - //if random address isn't defined,can't set ownaddresstype to random - if ((advMode)&&(((adv_param.ownAddrType == LL_DEV_ADDR_TYPE_RANDOM) || - (adv_param.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) && - ( (ownRandomAddr[0] == 0xFF) && - (ownRandomAddr[1] == 0xFF) && - (ownRandomAddr[2] == 0xFF) && - (ownRandomAddr[3] == 0xFF) && - (ownRandomAddr[4] == 0xFF) && - (ownRandomAddr[5] == 0xFF) ))) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - if (g_llAdvMode == LL_MODE_EXTENDED ) - return LL_STATUS_ERROR_COMMAND_DISALLOWED; - - g_llAdvMode = LL_MODE_LEGACY; - - // check if a direct test mode or modem test is in progress - if ( (llState == LL_STATE_DIRECT_TEST_MODE_TX) || - (llState == LL_STATE_DIRECT_TEST_MODE_RX) || - (llState == LL_STATE_MODEM_TEST_TX) || - (llState == LL_STATE_MODEM_TEST_RX) || - (llState == LL_STATE_MODEM_TEST_TX_FREQ_HOPPING) ) - { - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - // 2021-4-19, check init/scan state should not enable/disable adv - if ( (llState == LL_STATE_SCAN) || - (llState == LL_STATE_INIT) ) - { - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - // sanity checks again to be sure we don't start with bad parameters - if ( ( (adv_param.advEvtType != LL_ADV_CONNECTABLE_UNDIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_CONNECTABLE_HDC_DIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_SCANNABLE_UNDIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_CONNECTABLE_LDC_DIRECTED_EVT) ) || - ( (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_PUBLIC) && - (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_RANDOM) && - (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_RPA_PUBLIC) && - (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_RPA_RANDOM)) || - ( ((adv_param.advEvtType == LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) || - (adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT)) && - (adv_param.advInterval < LL_ADV_CONN_INTERVAL_MIN) ) ) // should use LL_ADV_NONCONN_INTERVAL_MIN after update it to 20ms - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - -#ifdef DEBUG_LL - LOG("llState = %d\n", llState); -#endif - - // check if we should begin advertising - switch( advMode ) - { - // Advertisment Mode is On - case LL_ADV_MODE_ON: - - // check if command makes sense - if ( adv_param.advMode == LL_ADV_MODE_ON ) - { - // this is unexpected; something is wrong - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - //add llState setting - if((llState == LL_STATE_IDLE)) - { - switch(adv_param .advEvtType) - { - case LL_ADV_CONNECTABLE_UNDIRECTED_EVT: - llState=LL_STATE_ADV_UNDIRECTED; - ll_debug_output(DEBUG_LL_STATE_ADV_UNDIRECTED); - break; - - case LL_ADV_CONNECTABLE_HDC_DIRECTED_EVT: - case LL_ADV_CONNECTABLE_LDC_DIRECTED_EVT: - llState=LL_STATE_ADV_DIRECTED; - ll_debug_output(DEBUG_LL_STATE_ADV_DIRECTED); - break; - - case LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT: - llState=LL_STATE_ADV_NONCONN; - ll_debug_output(DEBUG_LL_STATE_ADV_NONCONN); - break; - - case LL_ADV_SCANNABLE_UNDIRECTED_EVT: - llState=LL_STATE_ADV_SCAN; - ll_debug_output(DEBUG_LL_STATE_ADV_SCAN); - break; - - default: - llState=LL_STATE_IDLE; - ll_debug_output(DEBUG_LL_STATE_IDLE); - break; - } - } - - // llState changed when configure adv parameters - if (llState == LL_STATE_ADV_UNDIRECTED - || llState == LL_STATE_ADV_DIRECTED - || llState == LL_STATE_ADV_NONCONN - || llState == LL_STATE_ADV_SCAN ) // TODO: check this setting - { - g_llHdcDirAdvTime = 0; // for HDC direct adv - adv_param.advNextChan = LL_ADV_CHAN_LAST + 1; // set adv channel invalid - - if ( llSetupAdv() != LL_STATUS_SUCCESS ) - { - // indicate advertising is no longer active - adv_param.advMode = LL_ADV_MODE_OFF; - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - } - // add in A2, simultaneous conn event & scan/adv event - else if((llState == LL_STATE_CONN_SLAVE - || llState == LL_STATE_CONN_MASTER) - && (pGlobal_config[LL_SWITCH] & SIMUL_CONN_ADV_ALLOW)) - { -#ifdef DEBUG_LL - LOG("LL_SetAdvControl: start sec adv\r\n"); -#endif - - if (llSecondaryState != LL_SEC_STATE_IDLE) - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - // adv event check - if (adv_param.advEvtType != LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT - && adv_param.advEvtType != LL_ADV_SCANNABLE_UNDIRECTED_EVT - && adv_param.advEvtType != LL_ADV_CONNECTABLE_UNDIRECTED_EVT) - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - // Note: we may need maximum slave number check here. If number of slave reach ceil, - // only no-connectable adv is allowed. The checking could be don't in host - llSecondaryState = LL_SEC_STATE_ADV; - adv_param.advNextChan = LL_ADV_CHAN_LAST + 1; // set adv channel invalid - osal_stop_timerEx( LL_TaskID, LL_EVT_SECONDARY_ADV ); - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_ADV); // set adv event - } - else // other state - return (LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE); - - // indicate advertising is no longer active - adv_param.advMode = LL_ADV_MODE_ON; - - if (g_llRlDeviceNum > 0) - osal_start_timerEx( LL_TaskID, LL_EVT_RPA_TIMEOUT, g_llRlTimeout * 1000 ); - - break; - - case LL_ADV_MODE_OFF: - // check if command makes sense -// if ( adv_param.advMode == LL_ADV_MODE_OFF ) -// { -// // this is unexpected; something is wrong -// return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); -// } - HAL_ENTER_CRITICAL_SECTION(); - // free the associated task block - //llFreeTask( &advInfo.llTask ); - // indicate we are no longer actively advertising - adv_param.advMode = LL_ADV_MODE_OFF; - - if (llState != LL_STATE_CONN_SLAVE && - llState != LL_STATE_CONN_MASTER ) // no conn + adv case - { - llState = LL_STATE_IDLE; // if not in connect state, set idle to disable advertise - //ZQ 20190912 - //stop ll timer when idle, considering the scan-adv interleve case - clear_timer(AP_TIM1); - ll_debug_output(DEBUG_LL_STATE_IDLE); - } - - if(llSecondaryState!=LL_SEC_STATE_IDLE) // conn + adv case - { -// uint8 i; -// i = 0; -// while (!(adv_param.advChanMap & (1 << i))) i ++; // get the 1st adv channel in the adv channel map -// if ((llSecondaryState == LL_SEC_STATE_ADV) -// && (adv_param.advNextChan != (LL_ADV_CHAN_FIRST + i))) // last adv event is not finished -// llSecondaryState = LL_SEC_STATE_IDLE_PENDING; -// else - { - llSecondaryState = LL_SEC_STATE_IDLE; - osal_stop_timerEx( LL_TaskID, LL_EVT_SECONDARY_ADV ); // stop timer - } - } - - HAL_EXIT_CRITICAL_SECTION(); - osal_stop_timerEx(LL_TaskID, LL_EVT_RPA_TIMEOUT); - break; - - default: - // we have an invalid value for advertisement mode - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - return( LL_STATUS_SUCCESS ); -} - - -#if USE_CODED_PHY -//2020.10.22,Jie,fix phyupdate issue -llStatus_t LL_PhyUpdate1( uint16 connId ) -{ - llStatus_t status; - llConnState_t* connPtr; - uint8 phyMode; - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId ]; - - // check if an update control procedure is already pending - if ( ((connPtr->ctrlPktInfo.ctrlPktCount > 0) && - (connPtr->ctrlPktInfo.ctrlPkts[0] == LL_CTRL_PHY_UPDATE_IND)) || - (connPtr->pendingPhyModeUpdate == TRUE) ) - { - return( LL_STATUS_ERROR_CTRL_PROC_ALREADY_ACTIVE ); - } - - // we only support symmetric connection - // tx rx phy should be same - phyMode = connPtr->llPhyModeCtrl.req.txPhy & connPtr->llPhyModeCtrl.rsp.txPhy; - phyMode &= connPtr->llPhyModeCtrl.req.rxPhy & connPtr->llPhyModeCtrl.rsp.rxPhy; - - //20200727 Jie add for no change case - if((phyMode==0) || (phyMode == connPtr->llPhyModeCtrl.local.txPhy)) - { - //no change case - connPtr->phyUpdateInfo.m2sPhy = 0; - connPtr->phyUpdateInfo.s2mPhy = 0; - } - else if((phyMode&LE_2M_PHY)&&(connPtr->llPhyModeCtrl.local.txPhy != LE_2M_PHY)) - { - connPtr->phyUpdateInfo.m2sPhy = LE_2M_PHY; - connPtr->phyUpdateInfo.s2mPhy = LE_2M_PHY; - } - else if((phyMode&LE_CODED_PHY)&&(connPtr->llPhyModeCtrl.local.txPhy != LE_CODED_PHY)) - { - connPtr->phyUpdateInfo.m2sPhy = LE_CODED_PHY; - connPtr->phyUpdateInfo.s2mPhy = LE_CODED_PHY; - } - else - { - //no perferce can not support the tx/rx same time - connPtr->phyUpdateInfo.m2sPhy = LE_1M_PHY; - connPtr->phyUpdateInfo.s2mPhy = LE_1M_PHY; - } - - if(connPtr->phyUpdateInfo.m2sPhy==0) - { - connPtr->phyModeUpdateEvent = 0; - connPtr->phyUpdateInfo.instant = connPtr->phyModeUpdateEvent; - } - else - { - connPtr->phyModeUpdateEvent = (connPtr->curParam.slaveLatency+1) + - LL_INSTANT_NUMBER_MIN; - connPtr->phyUpdateInfo.instant = connPtr->phyModeUpdateEvent; - } - - // queue control packet for processing - llEnqueueCtrlPkt( connPtr, LL_CTRL_PHY_UPDATE_IND ); - return( LL_STATUS_SUCCESS ); -} -#endif - -//2020.10.22,Jie,fix scanparam ownaddr setting issue -llStatus_t LL_SetScanParam1( uint8 scanType, - uint16 scanInterval, - uint16 scanWindow, - uint8 ownAddrType, - uint8 scanWlPolicy ) -{ - llStatus_t ret; - ret = LL_SetScanParam0(scanType,scanInterval,scanWindow,ownAddrType,scanWlPolicy); -// LOG("%s,ret %d\n",__func__,ret); - - if(ret == LL_STATUS_SUCCESS) - { - scanInfo.ownAddrType = ownAddrType; - - if ( ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC || ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC) - { - LL_COPY_DEV_ADDR_LE( scanInfo.ownAddr, ownPublicAddr ); - } - else - { - LL_COPY_DEV_ADDR_LE( scanInfo.ownAddr, ownRandomAddr ); - } - } - - return ret; -} - -//2020.10.22,Jie, modify sanity check: -//add ownaddrtype; -//add LL_STATUS_ERROR_BAD_PARAMETER case -llStatus_t LL_SetScanControl1( uint8 scanMode, - uint8 filterReports ) -{ -// LOG("%s,scanMode %d\n",__func__,scanMode); - if (g_llScanMode == LL_MODE_EXTENDED ) - return LL_STATUS_ERROR_COMMAND_DISALLOWED; - - g_llScanMode = LL_MODE_LEGACY; - - // check if a direct test mode or modem test is in progress - if ( (llState == LL_STATE_DIRECT_TEST_MODE_TX) || - (llState == LL_STATE_DIRECT_TEST_MODE_RX) || - (llState == LL_STATE_MODEM_TEST_TX) || - (llState == LL_STATE_MODEM_TEST_RX) || - (llState == LL_STATE_MODEM_TEST_TX_FREQ_HOPPING) ) - { - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - // sanity checks again to be sure we don't start with bad parameters - if ( ( (scanInfo.scanType != LL_SCAN_PASSIVE) && - (scanInfo.scanType != LL_SCAN_ACTIVE)) || - ( (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_PUBLIC) && - (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_RANDOM) && - (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_PUBLIC) && - (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_RANDOM)) || - ( (scanInfo.scanInterval < LL_SCAN_WINDOW_MIN) || - (scanInfo.scanInterval > LL_SCAN_WINDOW_MAX)) || - ( (scanInfo.scanWindow < LL_SCAN_WINDOW_MIN) || - (scanInfo.scanWindow > LL_SCAN_WINDOW_MAX)) || - ( (scanInfo.scanWindow > scanInfo.scanInterval) ) || - ( (filterReports != LL_FILTER_REPORTS_DISABLE) && - (filterReports != LL_FILTER_REPORTS_ENABLE)) ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // check if we should begin scanning - switch( scanMode ) - { - // Scanning Mode is On - case LL_SCAN_START: - -// LOG("LL_SCAN_START\n"); - - // check if command makes sense - if ( scanInfo.scanMode == LL_SCAN_START ) - { - // this is unexpected; something is wrong - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - //20200804 Jie :if random address isn't defined,can't set ownaddresstype to random - if (((scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RANDOM) || - (scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) && - ( (ownRandomAddr[0] == 0xFF) && - (ownRandomAddr[1] == 0xFF) && - (ownRandomAddr[2] == 0xFF) && - (ownRandomAddr[3] == 0xFF) && - (ownRandomAddr[4] == 0xFF) && - (ownRandomAddr[5] == 0xFF) )) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // get a task block for this BLE state/role - // Note: There will always be a valid pointer, so no NULL check required. -// scanInfo.llTask = llAllocTask( LL_TASK_ID_SCANNER ); - - // check if no other tasks are currently active - if ( llState == LL_STATE_IDLE ) - { - // indicate Scan has not already been initalized - scanInfo.initPending = TRUE; - // save the scan filtering flag - scanInfo.filterReports = filterReports; - // add by HZF - scanInfo.nextScanChan = LL_SCAN_ADV_CHAN_37; - // set LL state - llState = LL_STATE_SCAN; - // Note: llState has been changed. - LL_evt_schedule(); - } - else if ((llState == LL_STATE_CONN_SLAVE - || llState == LL_STATE_CONN_MASTER) // HZF: if we should support adv + scan, add more state here - && (pGlobal_config[LL_SWITCH] & SIMUL_CONN_SCAN_ALLOW)) - { - if (llSecondaryState != LL_SEC_STATE_IDLE) - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - scanInfo.nextScanChan = LL_SCAN_ADV_CHAN_37; - llSecondaryState = LL_SEC_STATE_SCAN; - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_SCAN); - } - else - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - // indicate we are actively scanning - scanInfo.scanMode = LL_SCAN_START; - break; - - case LL_SCAN_STOP: -// LOG("LL_SCAN_STOP\n"); - HAL_ENTER_CRITICAL_SECTION(); - - if (llState == LL_STATE_SCAN) // no conn + scan case - { - llState = LL_STATE_IDLE; // if not in connect state, set idle to disable scan - //ZQ 20190912 - //stop ll timer when idle, considering the scan-adv interleve case - clear_timer(AP_TIM1); - ll_debug_output(DEBUG_LL_STATE_IDLE); - } - else if (llState == LL_STATE_CONN_SLAVE - || llState == LL_STATE_CONN_MASTER) // conn + scan case - { - llSecondaryState = LL_SEC_STATE_IDLE; - // bugfix for multi-role - osal_stop_timerEx(LL_TaskID, LL_EVT_SECONDARY_SCAN); - } - - // indicate we are no longer actively scanning - scanInfo.scanMode = LL_SCAN_STOP; - // A2 multiconn, should we consider current LL state to avoid change master/slave configuration - // now LL slave/master event use same parameter 88 - ll_hw_set_rx_timeout(88); - // HZF: should we stop scan task immediately, or wait scan IRQ then stop? Now use option 2. - HAL_EXIT_CRITICAL_SECTION(); - - while((volatile uint32)llWaitingIrq == TRUE); - - break; - - default: - // we have an invalid value for advertisement mode - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - return( LL_STATUS_SUCCESS ); -} - -//2020.10.23 Jie,fix g_llPduLen.suggested.MaxTxTime setting error -llStatus_t LL_SetDataLengh1( uint16 connId,uint16 TxOctets,uint16 TxTime ) -{ - if(TxOctets > LL_PDU_LENGTH_SUPPORTED_MAX_TX_OCTECTS - || TxTime > LL_PDU_LENGTH_SUPPORTED_MAX_TX_TIME - || TxOctets < LL_PDU_LENGTH_INITIAL_MAX_TX_OCTECTS - || TxTime < LL_PDU_LENGTH_INITIAL_MAX_TX_TIME) - { - return(LL_STATUS_ERROR_PARAM_OUT_OF_RANGE); - } - else - { - g_llPduLen.suggested.MaxTxOctets= TxOctets; - g_llPduLen.suggested.MaxTxTime = TxTime; - return LL_SetDataLengh0( connId,TxOctets,TxTime ); - } -} - -void llProcessTxData1( llConnState_t* connPtr, uint8 context ) -{ - if(context==LL_TX_DATA_CONTEXT_SEND_DATA) - return; - - llProcessTxData0(connPtr,context); -} -/******************************************************************************* - @fn ll_generateTxBuffer1 - - @brief This function generate Tx data and find in Tx FIFO - there are 4 kinds of data: - 1. control data - 2. last no-ack data - 3. last no-transmit data - 4. new data - in the new RTLP buffer, the data should be in the below sequence: - 2 --> 3 --> 1 --> 4 (changed) - - input parameters - - @param txFifo_vacancy - allow max tx packet number. - - output parameters - - @param None. - - @return the pointer of 1st not transmit packet/new packet. - -*/ -uint16 ll_generateTxBuffer1(int txFifo_vacancy, uint16* pSave_ptr) -{ - int i, new_pkts_num, tx_num = 0; - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - // 0. write empty packet - if(connPtr->llMode == LL_HW_RTLP_EMPT - || connPtr->llMode == LL_HW_TRLP_EMPT) // TRLP case, to be confirmed/test - { - LL_HW_WRT_EMPTY_PKT; - connPtr->ll_buf.tx_not_ack_pkt->valid = 0; // empty mode, tx_not_ack buffer null or empty packet - tx_num ++; - } - // 1. write last not-ACK packet - else if (connPtr->ll_buf.tx_not_ack_pkt->valid != 0) // TODO: if the valid field could omit, move the not-ACK flag to buf. - { - ll_hw_write_tfifo((uint8*)&(connPtr->ll_buf.tx_not_ack_pkt->header), ((connPtr->ll_buf.tx_not_ack_pkt->header & 0xff00) >> 8) + 2); - //txFifo_vacancy --; - tx_num ++; - connPtr->ll_buf.tx_not_ack_pkt->valid = 0; - AT_LOG("write last not-ACK packet \n"); - } - - // 1st RTLP event, no porcess 0/1, it should be 0 because we have reset the TFIFO - // other case, it is 1st not transmit packet/new packet - *pSave_ptr = ll_hw_get_tfifo_wrptr(); - - // 3. write last not transmit packets - if (connPtr->ll_buf.ntrm_cnt > 0 - && txFifo_vacancy >= connPtr->ll_buf.ntrm_cnt) - { - for (i = 0; i < connPtr->ll_buf.ntrm_cnt ; i++) - { - ll_hw_write_tfifo((uint8*)&(connPtr->ll_buf.tx_ntrm_pkts[i]->header), ((connPtr->ll_buf.tx_ntrm_pkts[i]->header & 0xff00) >> 8) + 2); - } - - txFifo_vacancy -= connPtr->ll_buf.ntrm_cnt; - tx_num += connPtr->ll_buf.ntrm_cnt; - AT_LOG("write last not transmit packets\n"); - connPtr->ll_buf.ntrm_cnt = 0; - } - - rfCounters.numTxCtrl = 0; // add on 2017-11-15, set tx control packet number 0 - - // 2. write control packet - if ((connPtr->ll_buf.tx_not_ack_pkt->valid == 0 || // no tx not_ack packet, add on 2017-11-15 - (connPtr->ll_buf.tx_not_ack_pkt->header & 0x3) != LL_DATA_PDU_HDR_LLID_CONTROL_PKT) // last nack packet is not a control packet - && connPtr->ctrlDataIsPending // we only support 1 control procedure per connection - && !connPtr->ctrlDataIsProcess - && txFifo_vacancy > connPtr->ll_buf.ntrm_cnt) // tricky here: if the Tx FIFO is full and nothing is sent in last event, then it can't fill new packet(include ctrl pkt) in new event - { - // not in a control procedure, and there is control packet pending - // fill ctrl packet - ll_hw_write_tfifo((uint8*)&(connPtr->ctrlData .header), ((connPtr->ctrlData .header & 0xff00) >> 8) + 2); - txFifo_vacancy --; - tx_num ++; - // put Ctrl packet in TFIFO, change the control procedure status - connPtr->ctrlDataIsPending = 0; - connPtr->ctrlDataIsProcess = 1; - rfCounters.numTxCtrl = 1; // add 2017-11-15, if put new ctrl packet in FIFO, add the counter - } - - if (connPtr->ll_buf.ntrm_cnt != 0) - { - // should not be here, new packets should not be sent if there is not-transmit packets - return tx_num; - } - - // 4. write new data packets to FIFO - new_pkts_num = getTxBufferSize(connPtr); - - if ((new_pkts_num > 0) - && txFifo_vacancy > 0) - { - // fill the data packet to Tx FIFO - for (i = 0; i < new_pkts_num && i < txFifo_vacancy; i++) - { - uint8_t idx = get_tx_read_ptr(connPtr); - ll_hw_write_tfifo((uint8*)&(connPtr->ll_buf.tx_conn_desc[idx]->header), ((connPtr->ll_buf.tx_conn_desc[idx]->header & 0xff00) >> 8) + 2); - update_tx_read_ptr(connPtr); - tx_num++; - AT_LOG("write new data packets to FIFO\n"); - // update PM counter, add A1 ROM metal change - connPtr->pmCounter.ll_send_data_pkt_cnt ++; - } - } - - // 2020-02-13 periodic cte req & rsp - if( ( connPtr->llConnCTE.enable ) && ( connPtr->llCTE_ReqFlag )) - { - if( connPtr->llConnCTE.CTE_Request_Intv > 0 ) - { - if( connPtr->llConnCTE.CTE_Count_Idx < connPtr->llConnCTE.CTE_Request_Intv ) - connPtr->llConnCTE.CTE_Count_Idx++; - else - { - connPtr->llConnCTE.CTE_Count_Idx = 0; - llEnqueueCtrlPkt(connPtr, LL_CTRL_CTE_REQ ); - } - } - } - - return tx_num; -} - - -#if USE_CODED_PHY -//2020.10.23 Jie,fix setphymode issue -llStatus_t LL_SetPhyMode1( uint16 connId,uint8 allPhy,uint8 txPhy, uint8 rxPhy,uint16 phyOptions) -{ - uint8 i; - llStatus_t status; - llConnState_t* connPtr; - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId]; - - // check if a feature response control procedure has taken place - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if dle is a supported feature set item - if( ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_2M_PHY) != LL_FEATURE_2M_PHY ) - && ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_CODED_PHY) != LL_FEATURE_CODED_PHY ) ) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - // check if an updated parameters control procedure is already what's pending - if ( ((connPtr->ctrlPktInfo.ctrlPktCount > 0) && - (connPtr->ctrlPktInfo.ctrlPkts[0] == LL_CTRL_PHY_REQ)) || - (connPtr->pendingPhyModeUpdate== TRUE) || - (connPtr->llPhyModeCtrl.isWatingRsp == TRUE) || (connPtr->llPhyModeCtrl.isProcessingReq == TRUE) ) - { - return( LL_STATUS_ERROR_CTRL_PROC_ALREADY_ACTIVE ); - } - - //support Symmetric Only - if(allPhy==0 &&(txPhy!=rxPhy)) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - //jie 2020.9.3 check unsupport phy - if ((txPhy > 0x07) || (rxPhy >0x07)) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - uint8 tx_chance = (txPhy ^ connPtr->llPhyModeCtrl.local.txPhy) ^connPtr->llPhyModeCtrl.local.txPhy; - - if(tx_chance & LE_1M_PHY) - { - txPhy = LE_1M_PHY; - } - else if(tx_chance & LE_2M_PHY) - { - txPhy = LE_2M_PHY; - } - else if(tx_chance & LE_CODED_PHY) - { - txPhy = LE_CODED_PHY; - } - else - { - //nothing - } - - uint8 rx_chance = (rxPhy ^ connPtr->llPhyModeCtrl.local.rxPhy)^connPtr->llPhyModeCtrl.local.rxPhy; - - if(rx_chance & LE_1M_PHY) - { - rxPhy = LE_1M_PHY; - } - else if(rx_chance & LE_2M_PHY) - { - rxPhy = LE_2M_PHY; - } - else if(rx_chance & LE_CODED_PHY) - { - rxPhy = LE_CODED_PHY; - } - else - { - //nothing - } - - // how to check the required param? - //LL_TS_5.0.3 Table 4.43: PDU payload contents for each case variation for LE 2M PHY - connPtr->llPhyModeCtrl.req.allPhy = allPhy; - - if(connPtr->llPhyModeCtrl.req.allPhy==0) - { - connPtr->llPhyModeCtrl.req.txPhy = txPhy; - connPtr->llPhyModeCtrl.req.rxPhy = rxPhy; - } - else if(connPtr->llPhyModeCtrl.req.allPhy==1) - { - connPtr->llPhyModeCtrl.req.txPhy = rxPhy;//0; - connPtr->llPhyModeCtrl.req.rxPhy = rxPhy; - } - else if(connPtr->llPhyModeCtrl.req.allPhy==2) - { - connPtr->llPhyModeCtrl.req.txPhy = txPhy; - connPtr->llPhyModeCtrl.req.rxPhy = txPhy;//0; - } - else - { - //no prefer on both phy - connPtr->llPhyModeCtrl.req.txPhy = LE_1M_PHY;//0; - connPtr->llPhyModeCtrl.req.rxPhy = LE_1M_PHY;//0; - } - - connPtr->llPhyModeCtrl.phyOptions = phyOptions; - //update def.phy jie 2020.9.2 - connPtr->llPhyModeCtrl.def.allPhy = allPhy; - // connPtr->llPhyModeCtrl.def.txPhy = connPtr->llPhyModeCtrl.req.txPhy; - // connPtr->llPhyModeCtrl.def.rxPhy = connPtr->llPhyModeCtrl.req.rxPhy; - // setup an LL_CTRL_PHY_REQ - llEnqueueCtrlPkt( connPtr, LL_CTRL_PHY_REQ ); - return(LL_STATUS_SUCCESS); -} -#endif - - -/* 2020.11.11,Jie,fix ownaddr random address source issue -*/ -llStatus_t LL_CreateConn1( uint16 scanInterval, - uint16 scanWindow, - uint8 initWlPolicy, - uint8 peerAddrType, - uint8* peerAddr, - uint8 ownAddrType, - uint16 connIntervalMin, - uint16 connIntervalMax, - uint16 connLatency, - uint16 connTimeout, - uint16 minLength, // minimum length of connection needed for this LE conn, no use now - uint16 maxLength ) // maximum length of connection needed for this LE conn, no use now -{ - CreateConn_Flag = TRUE; - return LL_CreateConn0(scanInterval, - scanWindow, - initWlPolicy, - peerAddrType, - peerAddr, - ownAddrType, - connIntervalMin, - connIntervalMax, - connLatency, - connTimeout, - minLength, - maxLength ); -} - -#if USE_CODED_PHY -//2020.11.12, add case LL_REJECT_IND_EXT -void llProcessMasterControlPacket1( llConnState_t* connPtr, - uint8* pBuf ) -{ - uint8 i; - uint8 opcode = *pBuf++; - uint8 iqCnt = 0; - - // check the type of control packet - switch( opcode ) - { - // Encryption Response - case LL_CTRL_ENC_RSP: - // concatenate slave's SKDs with SKDm - // Note: The SKDs MSO is the MSO of the SKD. - //PHY_READ_BYTE( (uint8 *)&connPtr->encInfo.SKD[LL_ENC_SKD_S_OFFSET], LL_ENC_SKD_S_LEN ); - pBuf = llMemCopySrc( (uint8*)&connPtr->encInfo.SKD[LL_ENC_SKD_S_OFFSET], pBuf, LL_ENC_SKD_S_LEN ); - // bytes are received LSO..MSO, but need to be maintained as - // MSO..LSO, per FIPS 197 (AES), so reverse the bytes - LL_ENC_ReverseBytes( &connPtr->encInfo.SKD[LL_ENC_SKD_S_OFFSET], LL_ENC_SKD_S_LEN ); - // concatenate the slave's IVs with IVm - // Note: The IVs MSO is the MSO of the IV. - //PHY_READ_BYTE( (uint8 *)&connPtr->encInfo.IV[LL_ENC_IV_S_OFFSET], LL_ENC_IV_S_LEN ); - pBuf = llMemCopySrc( (uint8*)&connPtr->encInfo.IV[LL_ENC_IV_S_OFFSET], pBuf, LL_ENC_IV_S_LEN ); - // bytes are received LSO..MSO, but need to be maintained as - // MSO..LSO, per FIPS 197 (AES), so reverse the bytes - // ALT: POSSIBLE TO MAINTAIN THE IV IN LSO..MSO ORDER SINCE THE NONCE - // IS FORMED THAT WAY. - LL_ENC_ReverseBytes( &connPtr->encInfo.IV[LL_ENC_IV_S_OFFSET], LL_ENC_IV_S_LEN ); - - // place the IV into the Nonce to be used for this connection - // Note: If a Pause Encryption control procedure is started, the - // old Nonce value will be used until encryption is disabled. - // Note: The IV is sequenced LSO..MSO within the Nonce. - // ALT: POSSIBLE TO MAINTAIN THE IV IN LSO..MSO ORDER SINCE THE NONCE - // IS FORMED THAT WAY. - for (i=0; iencInfo.nonce[ LL_END_NONCE_IV_OFFSET+i ] = - connPtr->encInfo.IV[ (LL_ENC_IV_LEN-i)-1 ]; - } - - // generate the Session Key (i.e. SK = AES128(LTK, SKD)) - LL_ENC_GenerateSK( connPtr->encInfo.LTK, - connPtr->encInfo.SKD, - connPtr->encInfo.SK ); - // LOG("LTK: %x\r\n", connPtr->encInfo.LTK); - // LOG("SKD: %x\r\n", connPtr->encInfo.SKD); - // LOG("SK: %x\r\n", connPtr->encInfo.SK[0], connPtr->encInfo.SK[1], connPtr->encInfo.SK[],connPtr->encInfo.SK[0], - // connPtr->encInfo.SK[0],connPtr->encInfo.SK[0],connPtr->encInfo.SK[0]); - // Note: Done for now; the slave will send LL_CTRL_START_ENC_REQ. - //LOG("ENC_RSP ->"); - break; - - // Start Encryption Request - case LL_CTRL_START_ENC_REQ: - // set a flag to indicate we've received this packet - connPtr->encInfo.startEncReqRcved = TRUE; - break; - - // Start Encryption Response - case LL_CTRL_START_ENC_RSP: - // set flag to allow outgoing data transmissions - connPtr->txDataEnabled = TRUE; - // okay to receive data again - connPtr->rxDataEnabled = TRUE; - // indicate we've received the start encryption response - connPtr->encInfo.startEncRspRcved = TRUE; - - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED, - LL_ENCRYPTION_ON ); - } - - // clear the restart flag in case of another key change request - // Note: But in reality, there isn't a disable encryption in BLE, - // so once encryption is enabled, any call to LL_StartEncrypt - // will result in an encryption key change callback. - connPtr->encInfo.encRestart = FALSE; - //LOG("START_ENC_RSP ->"); - break; - - // Pause Encryption Response - case LL_CTRL_PAUSE_ENC_RSP: - // set a flag to indicate we have received LL_START_ENC_RSP - connPtr->encInfo.pauseEncRspRcved = TRUE; - break; - - // Reject Encryption Indication - /* - case LL_CTRL_REJECT_IND: - // either the slave's Host has failed to provide an LTK, or - // the encryption feature is not supported by the slave, so read - // the rejection indication error code - //connPtr->encInfo.encRejectErrCode = PHY_READ_BYTE_VAL(); - connPtr->encInfo.encRejectErrCode = *pBuf; - - // and end the start encryption procedure - connPtr->encInfo.rejectIndRcved = TRUE; - - break; - */ - - // Controller Feature Setup --> should be LL_CTRL_SLAVE_FEATURE_REQ - // case LL_CTRL_FEATURE_REQ: // new for BLE4.2, to test - - // for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - // } - - // // logical-AND with master's feature set to indicate which of the - // // controller features in the master the slave requests to be used - // for (i=0; ifeatureSetInfo.featureSet[i] = - // *pBuf++ & deviceFeatureSet.featureSet[i]; - // } - - // // schedule the output of the control packet - // // Note: Features to be used will be taken on the next connection - // // event after the response is successfully transmitted. - // llEnqueueCtrlPkt( connPtr, LL_CTRL_FEATURE_RSP ); - - // break; - - case LL_CTRL_FEATURE_RSP: - { - uint8 peerFeatureSet[ LL_MAX_FEATURE_SET_SIZE ]; - // get the peer's device Feature Set - //for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - - // logical-AND with slave's feature set to indicate which of the - // controller features in the master the slave requests to be - // used - // Note: For now, there is only one feature that is supported - // controller-to-controller. - // Note: If the peer supports the feature, then our setting is - // the controller-to-controller setting, so no action - // is required. - if ( !(peerFeatureSet[0] & LL_FEATURE_ENCRYPTION) ) - { - // this feature is not supported by the peer, so it doesn't - // matter if we support it or not, it should not be supported - connPtr->featureSetInfo.featureSet[0] &= ~LL_FEATURE_ENCRYPTION; - } - } - - // set flag to indicate the response has been received - connPtr->featureSetInfo.featureRspRcved = TRUE; - break; - - // Version Information Indication - case LL_CTRL_VERSION_IND: - - // check if the peer's version information has already been obtained - if ( connPtr->verExchange.peerInfoValid == TRUE ) - { - // it has, so something is wrong as the spec indicates that - // only one version indication should be sent for a connection - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else // the peer version info is invalid, so make it valid - { - // get the peer's version information and save it - //PHY_READ_BYTE( (uint8 *)&peerInfo.verInfo.verNum, 1 ); - connPtr->verInfo.verNum = *pBuf++; - //PHY_READ_BYTE( (uint8 *)&peerInfo.verInfo.comId, 2 ); - pBuf = llMemCopySrc( (uint8*)&connPtr->verInfo.comId, pBuf, 2 ); - //PHY_READ_BYTE( (uint8 *)&peerInfo.verInfo.subverNum, 2 ); - pBuf = llMemCopySrc( (uint8*)&connPtr->verInfo.subverNum, pBuf, 2 ); - // set a flag to indicate it is now valid - connPtr->verExchange.peerInfoValid = TRUE; - - // check if a version indication has been sent - if ( connPtr->verExchange.verInfoSent == FALSE ) - { - // no, so this is a peer's request for our version information - llEnqueueCtrlPkt( connPtr, LL_CTRL_VERSION_IND ); - } - } - - break; - - // Terminate Indication - case LL_CTRL_TERMINATE_IND: - // read the reason code - connPtr->termInfo.reason = *pBuf; - // set flag to indicate a termination indication was received - connPtr->termInfo.termIndRcvd = TRUE; - // received a terminate from peer host, so terminate after - // confirming we have sent an ACK - // Note: For the master, we have to ensure that this control - // packet was ACK'ed. For that, the nR has a new flag that - // is set when the control packet is received, and cleared - // when the control packet received is ACK'ed. - // Note: This is not an issue as a slave because the terminate - // packet will re-transmit until the slave ACK's. - // ALT: COULD REPLACE THIS CONTROL PROCEDURE AT THE HEAD OF THE - // QUEUE SO TERMINATE CAN TAKE PLACE ASAP. - //llReplaceCtrlPkt( connPtr, LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK ); - llEnqueueCtrlPkt( connPtr, LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK ); - break; - - // LL PDU Data Length Req - case LL_CTRL_LENGTH_REQ: - - // check if the feature response procedure has already been performed - // on this connection - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if supported DLE - if ( (connPtr->featureSetInfo.featureSet[0] & LL_FEATURE_DATA_LENGTH_EXTENSION) - != LL_FEATURE_DATA_LENGTH_EXTENSION ) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - if(connPtr->llPduLen.isProcessingReq==FALSE) - { - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxTime), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxTime), pBuf, 2 ); - connPtr->llPduLen.isProcessingReq=TRUE; - llEnqueueCtrlPkt( connPtr, LL_CTRL_LENGTH_RSP ); - } - } - - break; - - // LL PDU Data Length RSP - case LL_CTRL_LENGTH_RSP: - - // check if supported DLE - if ( (connPtr->featureSetInfo.featureSet[0] & LL_FEATURE_DATA_LENGTH_EXTENSION) - != LL_FEATURE_DATA_LENGTH_EXTENSION ) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - if(connPtr->llPduLen.isWatingRsp==TRUE ) - { - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxTime), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxTime), pBuf, 2 ); - llPduLengthUpdate((uint16)connPtr->connId); - connPtr->llPduLen.isWatingRsp=FALSE; - } - } - - break; - - // LL PHY UPDATE REQ - case LL_CTRL_PHY_REQ: - - // check if the feature response procedure has already been performed - // on this connection - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if supported PHY MODE UPDATE - if ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_2M_PHY) != LL_FEATURE_2M_PHY - && (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_CODED_PHY) != LL_FEATURE_CODED_PHY) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - //process for the protocol collision - //2018-11-10 by ZQ - if(connPtr->llPhyModeCtrl.isWatingRsp==TRUE || - connPtr->pendingChanUpdate==TRUE || - connPtr->pendingParamUpdate==TRUE ) - { - connPtr->isCollision=TRUE; - connPtr->rejectOpCode = LL_CTRL_PHY_REQ; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_EXT_IND ); - } - else - { - if(connPtr->llPhyModeCtrl.isProcessingReq==FALSE) - { - connPtr->llPhyModeCtrl.req.txPhy=*pBuf++; - connPtr->llPhyModeCtrl.req.rxPhy=*pBuf++; - connPtr->llPhyModeCtrl.req.allPhy=connPtr->llPhyModeCtrl.def.allPhy; - connPtr->llPhyModeCtrl.rsp.txPhy=connPtr->llPhyModeCtrl.def.txPhy; - connPtr->llPhyModeCtrl.rsp.rxPhy=connPtr->llPhyModeCtrl.def.rxPhy; - //rsp and req will be used to determine the next phy mode - LL_PhyUpdate((uint16) connPtr->connId); - connPtr->llPhyModeCtrl.isProcessingReq=TRUE; - } - else - { - //should no be here - } - } - } - - break; - - // LL_CTRL_PHY_RSP - case LL_CTRL_PHY_RSP: - - // check if supported PHY MODE UPDATE - if ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_2M_PHY) != LL_FEATURE_2M_PHY - && (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_CODED_PHY) != LL_FEATURE_CODED_PHY) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - if(connPtr->llPhyModeCtrl.isWatingRsp==TRUE) - { - connPtr->llPhyModeCtrl.rsp.txPhy=*pBuf++; - connPtr->llPhyModeCtrl.rsp.rxPhy=*pBuf++; - LL_PhyUpdate((uint16) connPtr->connId); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - } - else - { - //should no be here - } - } - - break; - - case LL_CTRL_CTE_REQ: - - // check if the feature response procedure has already been performed - // on this connection - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if supported CTE Response Feature - // if( connPtr->featureSetInfo.featureSet[LL_CTE_FEATURE_IDX] & LL_CONN_CTE_RSP) - if(( ( connPtr->featureSetInfo.featureSet[LL_CTE_FEATURE_IDX] & LL_CONN_CTE_RSP) != LL_CONN_CTE_RSP) || \ - ( connPtr->llCTE_RspFlag != TRUE )) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - // process for the protocol collision - // if other ctrl command procedure in processing , then reject - if(connPtr->llCTEModeCtrl.isWatingRsp==TRUE) - { - connPtr->isCollision=TRUE; - connPtr->rejectOpCode = LL_CTRL_CTE_REQ; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_EXT_IND ); - } - else - { - if(connPtr->llCTEModeCtrl.isProcessingReq==FALSE) - { - uint8 CTE_tmp; - CTE_tmp = *pBuf++; - connPtr->llConnCTE.CTE_Length = CTE_tmp & 0x1F; - connPtr->llConnCTE.CTE_Type = CTE_tmp & 0xC0; - connPtr->llCTEModeCtrl.isProcessingReq=TRUE; - - if( ( connPtr->llConnCTE.enable ) && ( connPtr->llRfPhyPktFmt < LL_PHY_CODE )) - { - llEnqueueCtrlPkt( connPtr, LL_CTRL_CTE_RSP ); - } - else - { - if( connPtr->llRfPhyPktFmt >= LL_PHY_CODE ) - { - connPtr->llCTEModeCtrl.errorCode = LL_STATUS_ERROR_INVALID_LMP_LL_PARAMETER; - } - else - { - connPtr->llCTEModeCtrl.errorCode = LL_STATUS_ERROR_UNSUPPORT_LMP_LL_PARAMETER; - } - - connPtr->rejectOpCode = LL_CTRL_CTE_REQ; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_EXT_IND ); - } - } - } - } - - break; - - case LL_CTRL_CTE_RSP: - if( connPtr->llCTEModeCtrl.isWatingRsp == TRUE ) - { - if( ( g_pLLcteISample != NULL ) && ( g_pLLcteQSample != NULL) ) - iqCnt = ll_hw_get_iq_RawSample( g_pLLcteISample, g_pLLcteQSample ); - - if( iqCnt > 0) - { - LL_ConnectionIQReportCback( connPtr->connId, - connPtr->llRfPhyPktFmt, - connPtr->currentChan, - connPtr->lastRssi, - // before CTE Transmit and sampling , no Antenna change , default 0 - 0, - connPtr->llConnCTE.CTE_Type, - connPtr->llConnCTE.slot_Duration, - // Packet_Status=0, CRC success,cause only CRC Correctly that can run here - 0, - connPtr->currentEvent, - iqCnt, - g_pLLcteISample, - g_pLLcteQSample); - } - else - { - // packet contain LL_CTE_RSP , but did not contain CTE field - // status = 0x0 : LL_CTE_RSP received successful , but without a CTE field - LL_CTE_Report_FailedCback( 0x0,connPtr->connId); - } - - connPtr->llCTEModeCtrl.isWatingRsp = FALSE; - } - - break; - - // Peer Device Received an Unknown Control Type - case LL_CTRL_UNKNOWN_RSP: - - // Note: There doesn't appear to be any action for this message, - // other than to ACK it. - if(connPtr->llPduLen.isWatingRsp) - { - llPduLengthUpdate((uint16)connPtr->connId); - connPtr->llPduLen.isWatingRsp=FALSE;//not support DLE - } - - if(connPtr->llPhyModeCtrl.isWatingRsp) - { - llPhyModeCtrlUpdateNotify(connPtr,LL_STATUS_ERROR_UNSUPPORTED_REMOTE_FEATURE); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE;//not support PHY_UPDATE - } - - // 2020-01-23 add for CTE - if( connPtr->llCTEModeCtrl.isWatingRsp ) - { - connPtr->llCTEModeCtrl.isWatingRsp = FALSE; - } - - break; - - case LL_REJECT_IND: - case LL_REJECT_IND_EXT: - connPtr->rejectOpCode = *pBuf++; - uint8 errorcode = *pBuf++; - - if(connPtr->rejectOpCode == LL_CTRL_ENC_REQ) - { - // either the slave's Host has failed to provide an LTK, or - // the encryption feature is not supported by the slave, so read - // the rejection indication error code - //connPtr->encInfo.encRejectErrCode = PHY_READ_BYTE_VAL(); - connPtr->encInfo.encRejectErrCode = connPtr->rejectOpCode; - // and end the start encryption procedure - connPtr->encInfo.rejectIndRcved = TRUE; - LL_EncChangeCback( connPtr->connId, - errorcode, - LL_ENCRYPTION_OFF ); - } - else - { - //TBD - } - - //connPtr->isCollision=FALSE; - break; - - // Our Device Received an Unknown Control Type - default: - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - break; - } - - return; -} -#endif - -static uint32 read_LL_remainder_time1(void) -{ - uint32 currentCount; - -/// uint32 g_tim1_pass = read_current_fine_time(); - read_current_fine_time(); - - currentCount = AP_TIM1->CurrentCount; - - if((currentCount < 6) || NVIC_GetPendingIRQ(TIM1_IRQn)) - return 0; - else - return (currentCount >> 2); -} - -uint8 llSecAdvAllow1(void) -{ - uint32 advTime, margin; - uint32 remainTime; - uint8 ret = FALSE; - // Hold off interrupts. - HAL_ENTER_CRITICAL_SECTION( ); - // read global config to get advTime and margin - advTime = pGlobal_config[LL_NOCONN_ADV_EST_TIME]; - margin = pGlobal_config[LL_NOCONN_ADV_MARGIN]; - // remain time before trigger LL HW - remainTime = read_LL_remainder_time1(); - - if ((remainTime > advTime + margin) - && !llWaitingIrq) - ret = TRUE; - else - { - llSecondaryState = LL_SEC_STATE_ADV_PENDING; - g_pmCounters.ll_conn_adv_pending_cnt ++; - } - - HAL_EXIT_CRITICAL_SECTION(); - return ret; -} - -uint32 llCalcMaxScanTime1(void) -{ - uint32 margin, scanTime; - uint32 remainTime; - margin = pGlobal_config[LL_SEC_SCAN_MARGIN]; - // Hold off interrupts. - HAL_ENTER_CRITICAL_SECTION( ); - // remain time before trigger LL HW - remainTime = read_LL_remainder_time1(); - scanTime = 0; - - if (remainTime > margin + pGlobal_config[LL_MIN_SCAN_TIME] - && !llWaitingIrq) - scanTime = remainTime - margin; - - HAL_EXIT_CRITICAL_SECTION(); - return (scanTime); -} - - - -llStatus_t LL_StartEncrypt1( uint16 connId, - uint8* rand, - uint8* eDiv, - uint8* ltk ) -{ - uint8 i; - llStatus_t status; - llConnState_t* connPtr; - - // make sure we're in Master role -// if ( llState != LL_STATE_CONN_MASTER ) -// { -// return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); -// } - - // check parameters - if ( (rand == NULL) || (eDiv == NULL) || (ltk == NULL) ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId]; - - // check if a feature response control procedure has taken place - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if encryption is a supported feature set item - if ( (connPtr->featureSetInfo.featureSet[0] & LL_FEATURE_ENCRYPTION) != LL_FEATURE_ENCRYPTION ) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - // cache the master's random vector - // Note: The RAND will be left in LSO..MSO order as this is assumed to be the - // order of the bytes that will be returned to the Host. - for (i=0; iencInfo.RAND[i] = rand[i]; - } - - // cache the master's encryption diversifier - // Note: The EDIV will be left in LSO..MSO order as this is assumed to be the - // order of the bytes that will be returned to the Host. - connPtr->encInfo.EDIV[0] = eDiv[0]; - connPtr->encInfo.EDIV[1] = eDiv[1]; - - // cache the master's long term key - // Note: The order of the bytes will be maintained as MSO..LSO - // per FIPS 197 (AES). - for (i=0; iencInfo.LTK[(LL_ENC_LTK_LEN-i)-1] = ltk[i]; - } - - // generate SKDm - // Note: The SKDm LSO is the LSO of the SKD. - // Note: Placement of result forms concatenation of SKDm and SKDs. - // Note: The order of the bytes will be maintained as MSO..LSO - // per FIPS 197 (AES). - LL_ENC_GenDeviceSKD( &connPtr->encInfo.SKD[ LL_ENC_SKD_M_OFFSET ] ); - // generate IVm - // Note: The IVm LSO is the LSO of the IV. - // Note: Placement of result forms concatenation of IVm and IVs. - // Note: The order of the bytes will be maintained as MSO..LSO - // per FIPS 197 (AES). - LL_ENC_GenDeviceIV( &connPtr->encInfo.IV[ LL_ENC_IV_M_OFFSET ] ); - // schedule a cache update of FIPS TRNG values for next SKD/IV usage - // postRfOperations |= LL_POST_RADIO_CACHE_RANDOM_NUM; - (void)LL_ENC_GenerateTrueRandNum( cachedTRNGdata, LL_ENC_TRUE_RAND_BUF_SIZE ); - // set flag to stop all outgoing transmissions - connPtr->txDataEnabled = FALSE; - // invalidate the existing session key, if any - connPtr->encInfo.SKValid = FALSE; - // indicate the LTK is not valid - connPtr->encInfo.LTKValid = FALSE; - - // check if we are already in encryption mode - if ( connPtr->encEnabled == TRUE ) - { - // set a flag to indicate this is a restart (i.e. pause-then-start) - connPtr->encInfo.encRestart = TRUE; - // setup a pause encryption control procedure - llEnqueueCtrlPkt( connPtr, LL_CTRL_PAUSE_ENC_REQ ); - } - else // no, so... - { - // clear flag to indicate this is an encryption setup - connPtr->encInfo.encRestart = FALSE; - // setup an encryption control procedure - llEnqueueCtrlPkt( connPtr, LL_CTRL_ENC_REQ ); - } - - return( LL_STATUS_SUCCESS ); -} - -//////////////////////////// -// process of enter system sleep mode -/******************************************************************************* - @fn enterSleepProcess - - @brief enter system sleep process function. - - - input parameters - - @param time - sleep RTC ticks - - output parameters - - @param None. - - @return None. -*/ -void enterSleepProcess1(uint32 time) -{ - uint32_t regtrck, regctl, temp; - int x; - regtrck = AP_AON->RTCTRCCNT & 0x1ffff; // [0x4000f064] - regctl = AP_AON->PMCTL1; // [0x4000F018] - if(regtrck >= 8203) - x = -2; - else if(regtrck <= 7420) - x = 2; - else { - enterSleepProcess0(time); - return; - } -// if (regctl & 0x7e) { - temp = regctl + x; - temp &= 0x7e; - if (temp) - AP_AON->PMCTL1 = (regctl & (~0x7e)) | temp; -// } - enterSleepProcess0(time); -} - -// global configuration in SRAM, it could be change by application -// ================== VARIABLES ================================== -extern uint32 global_config[]; -extern uint32_t g_irqstack_top; - -// TODO: when integrate, the global_config should be set by APP project -__ATTR_SECTION_XIP__ -void init_config(void) -{ - pGlobal_config = global_config; - int i; - - for (i = 0; i < 256; i ++) - pGlobal_config[i] = 0; - - //save the app initial_sp which will be used in wakeupProcess 20180706 by ZQ - pGlobal_config[INITIAL_STACK_PTR] = (uint32_t)(&g_irqstack_top); - // LL switch setting - pGlobal_config[LL_SWITCH] = /*LL_DEBUG_ALLOW |*/ SLAVE_LATENCY_ALLOW | LL_WHITELIST_ALLOW - | SIMUL_CONN_ADV_ALLOW | SIMUL_CONN_SCAN_ALLOW; - - if(g_clk32K_config == CLK_32K_XTAL) - pGlobal_config[LL_SWITCH] &= 0xffffffee; - else - pGlobal_config[LL_SWITCH] |= LL_RC32K_SEL | RC32_TRACKINK_ALLOW; - - // sleep delay - pGlobal_config[MIN_TIME_TO_STABLE_32KHZ_XOSC] = 10; // 10ms, temporary set - // system clock setting - pGlobal_config[CLOCK_SETTING] = g_system_clk; //CLOCK_32MHZ; - //------------------------------------------------------------------------ - // wakeup time cose - // t1. HW_Wakeup->MCU relase 62.5us - // t2. wakeup_process in waitRTCCounter 30.5us*[WAKEUP_DELAY] about 500us - // t3. dll_en -> hclk_sel in hal_system_ini 100us in run as RC32M - // t4. sw prepare cal sleep tick initial rf_ini about 300us @16M this part depends on HCLK - // WAKEUP_ADVANCE should be larger than t1+t2+t3+t4 - //------------------------------------------------------------------------ - // wakeup advance time, in us - pGlobal_config[WAKEUP_ADVANCE] = 1850; //1850;//650;//600;//310; - - pGlobal_config[WAKEUP_DELAY] = 16; //16; -/* - if(g_system_clk==SYS_CLK_XTAL_16M) 12520 e803 - pGlobal_config[WAKEUP_DELAY] = 16; - else if(g_system_clk==SYS_CLK_DBL_32M) - pGlobal_config[WAKEUP_DELAY] = 16; - else if(g_system_clk==SYS_CLK_DLL_48M) - pGlobal_config[WAKEUP_DELAY] = 16; - else if(g_system_clk==SYS_CLK_DLL_64M) - pGlobal_config[WAKEUP_DELAY] = 16; -*/ - // sleep time, in us - pGlobal_config[MAX_SLEEP_TIME] = 30000000; - pGlobal_config[MIN_SLEEP_TIME] = 1600; - pGlobal_config[ALLOW_TO_SLEEP_TICK_RC32K] = 55;// 30.5 per tick - //------------------------------------------------------------------------- - //------------------------------------------------------------------------- - // LL engine settle time - pGlobal_config[LL_HW_BB_DELAY] = 54;//54-8; - pGlobal_config[LL_HW_AFE_DELAY] = 8; - pGlobal_config[LL_HW_PLL_DELAY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV] = 62-RF_PHY_EXT_PREAMBLE_US; - pGlobal_config[LL_HW_Tx_TO_RX_INTV] = 50;//65 - //------------------------------------------------2MPHY - // LL engine settle time - pGlobal_config[LL_HW_BB_DELAY_2MPHY] = 59; - pGlobal_config[LL_HW_AFE_DELAY_2MPHY] = 8; - pGlobal_config[LL_HW_PLL_DELAY_2MPHY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV_2MPHY] = 73-RF_PHY_EXT_PREAMBLE_US;//20200822 ZQ - pGlobal_config[LL_HW_Tx_TO_RX_INTV_2MPHY] = 57;//72 - //------------------------------------------------CODEPHY 500K - // LL engine settle time CODEPHY 500K - pGlobal_config[LL_HW_BB_DELAY_500KPHY] = 50;//54-8; - pGlobal_config[LL_HW_AFE_DELAY_500KPHY] = 8; - pGlobal_config[LL_HW_PLL_DELAY_500KPHY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV_500KPHY] = 2; - pGlobal_config[LL_HW_Tx_TO_RX_INTV_500KPHY] = 66;//72 - //------------------------------------------------CODEPHY 125K - // LL engine settle time CODEPHY 125K - pGlobal_config[LL_HW_BB_DELAY_125KPHY] = 30;//54-8; - pGlobal_config[LL_HW_AFE_DELAY_125KPHY] = 8; - pGlobal_config[LL_HW_PLL_DELAY_125KPHY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV_125KPHY] = 5; - pGlobal_config[LL_HW_Tx_TO_RX_INTV_125KPHY] = 66;//72 - // LL engine settle time, for advertisement - pGlobal_config[LL_HW_BB_DELAY_ADV] = 90; - pGlobal_config[LL_HW_AFE_DELAY_ADV] = 8; - pGlobal_config[LL_HW_PLL_DELAY_ADV] = 60; - // adv channel interval - pGlobal_config[ADV_CHANNEL_INTERVAL] = 1400;//6250; - pGlobal_config[NON_ADV_CHANNEL_INTERVAL] = 666;//6250; - - // conn_req -> slave connection event calibration time, will advance the receive window - pGlobal_config[CONN_REQ_TO_SLAVE_DELAY] = 300;//192;//500;//192; - // calibration time for 2 connection event, will advance the next conn event receive window - // SLAVE_CONN_DELAY for sync catch, SLAVE_CONN_DELAY_BEFORE_SYNC for sync not catch - pGlobal_config[SLAVE_CONN_DELAY] = 300;//0;//1500;//0;//3000;//0; ---> update 11-20 - pGlobal_config[SLAVE_CONN_DELAY_BEFORE_SYNC] = 500;//160 NG//500 OK - // RTLP timeout - pGlobal_config[LL_HW_RTLP_LOOP_TIMEOUT] = 50000; - pGlobal_config[LL_HW_RTLP_TO_GAP] = 1000; - pGlobal_config[LL_HW_RTLP_1ST_TIMEOUT] = 2000 + pGlobal_config[SLAVE_CONN_DELAY] * 2;//500; - // direct adv interval configuration - pGlobal_config[HDC_DIRECT_ADV_INTERVAL] = 1000; - pGlobal_config[LDC_DIRECT_ADV_INTERVAL] = 6250; - // A1 ROM metal change for HDC direct adv, - pGlobal_config[DIR_ADV_DELAY] = 115; // in us, consider both direct adv broadcast time & SW delay, ... etc. - // A1 ROM metal change - pGlobal_config[LL_TX_PKTS_PER_CONN_EVT] = 6;//8; - pGlobal_config[LL_RX_PKTS_PER_CONN_EVT] = 6;//8; - pGlobal_config[LL_TRX_NUM_ADAPTIVE_CONFIG] = 8; //0: disable adaptive - //other: adaptive max limitation -// pGlobal_config[LL_TX_PWR_TO_REG_BIAS] = 0x15; // assume when g_rfPhyTxPower = 0x1f, tx power = 10dBm - //smart window configuration - pGlobal_config[LL_SMART_WINDOW_COEF_ALPHA] = 2; - pGlobal_config[LL_SMART_WINDOW_TARGET] = 600; - pGlobal_config[LL_SMART_WINDOW_INCREMENT] = 9; - pGlobal_config[LL_SMART_WINDOW_LIMIT] = 20000; - pGlobal_config[LL_SMART_WINDOW_ACTIVE_THD] = 8; - pGlobal_config[LL_SMART_WINDOW_ACTIVE_RANGE] = 0;//300 - pGlobal_config[LL_SMART_WINDOW_FIRST_WINDOW] = 5000; - g_smartWindowSize = pGlobal_config[LL_HW_RTLP_1ST_TIMEOUT] ; - -#if defined(CLK_16M_ONLY) && CLK_16M_ONLY != 0 - // scan req -> scan rsp timing - pGlobal_config[SCAN_RSP_DELAY] = 13+RF_PHY_EXT_PREAMBLE_US;//21; - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 18+RF_PHY_EXT_PREAMBLE_US;//26; // 2019/3/19 A2: 20 --> 18 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 25+RF_PHY_EXT_PREAMBLE_US;//33; // 2019/3/19 A2: 27 --> 25 -#else - //====== A2 metal change add, for scanner & initiator - if(g_system_clk==SYS_CLK_XTAL_16M) - { - // scan req -> scan rsp timing - pGlobal_config[SCAN_RSP_DELAY] = 13+RF_PHY_EXT_PREAMBLE_US;//21; - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 18+RF_PHY_EXT_PREAMBLE_US;//26; // 2019/3/19 A2: 20 --> 18 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 25+RF_PHY_EXT_PREAMBLE_US;//33; // 2019/3/19 A2: 27 --> 25 - } - else if(g_system_clk==SYS_CLK_DBL_32M) - { - pGlobal_config[SCAN_RSP_DELAY] = 8+RF_PHY_EXT_PREAMBLE_US;//16; - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 12+RF_PHY_EXT_PREAMBLE_US; // 2019/3/26 add - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 16+RF_PHY_EXT_PREAMBLE_US; - } - else if(g_system_clk==SYS_CLK_DLL_48M) - { - // scan req -> scan rsp timing - pGlobal_config[SCAN_RSP_DELAY] = 6+RF_PHY_EXT_PREAMBLE_US;//20201207 set //14; // 12 // 2019/3/19 A2: 12 --> 9 - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 8+RF_PHY_EXT_PREAMBLE_US;//12; // 2019/3/19 A2: 12 --> 10 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 11+RF_PHY_EXT_PREAMBLE_US; - } - else if(g_system_clk==SYS_CLK_DLL_64M) - { - pGlobal_config[SCAN_RSP_DELAY] = 4+RF_PHY_EXT_PREAMBLE_US;//2020.12.07 set //12; - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 6+RF_PHY_EXT_PREAMBLE_US; // 2019/3/26 add - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 8+RF_PHY_EXT_PREAMBLE_US; - } -#endif - // TRLP timeout - pGlobal_config[LL_HW_TRLP_LOOP_TIMEOUT] = 50000; // enough for 8Tx + 8Rx : (41 * 8 + 150) * 16 - 150 = 7498us - pGlobal_config[LL_HW_TRLP_TO_GAP] = 1000; - pGlobal_config[LL_MOVE_TO_MASTER_DELAY] = 100; - pGlobal_config[LL_CONN_REQ_WIN_SIZE] = 5; - pGlobal_config[LL_CONN_REQ_WIN_OFFSET] = 2; - pGlobal_config[LL_MASTER_PROCESS_TARGET] = 200; // reserve time for preparing master conn event, delay should be insert if needn't so long time - pGlobal_config[LL_MASTER_TIRQ_DELAY] = 0; // timer IRQ -> timer ISR delay - pGlobal_config[OSAL_SYS_TICK_WAKEUP_TRIM] = 56; // 0.125us - pGlobal_config[MAC_ADDRESS_LOC] = (uint32_t)ownPublicAddr; //0x11001F00; - // for simultaneous conn & adv/scan - pGlobal_config[LL_NOCONN_ADV_EST_TIME] = 1400*3; - pGlobal_config[LL_NOCONN_ADV_MARGIN] = 600; - pGlobal_config[LL_SEC_SCAN_MARGIN] = 2500;//1400; to avoid mesh proxy llTrigErr 0x15 - pGlobal_config[LL_MIN_SCAN_TIME] = 2000; - // BBB new - pGlobal_config[TIMER_ISR_ENTRY_TIME] = 30;//15; - pGlobal_config[LL_MULTICONN_MASTER_PREEMP] = 0; - pGlobal_config[LL_MULTICONN_SLAVE_PREEMP] = 0; - pGlobal_config[LL_EXT_ADV_TASK_DURATION] = 20000; - pGlobal_config[LL_PRD_ADV_TASK_DURATION] = 20000; - pGlobal_config[LL_CONN_TASK_DURATION] = 5000; - pGlobal_config[LL_EXT_ADV_INTER_PRI_CHN_INT] = 5000; - pGlobal_config[LL_EXT_ADV_INTER_SEC_CHN_INT] = 5000; - pGlobal_config[LL_EXT_ADV_PRI_2_SEC_CHN_INT] = 1500; - pGlobal_config[LL_EXT_ADV_RSC_PERIOD] = 1000000; - pGlobal_config[LL_EXT_ADV_RSC_SLOT_DURATION] = 10000; - pGlobal_config[LL_PRD_ADV_RSC_PERIOD] = 1000000; - pGlobal_config[LL_PRD_ADV_RSC_SLOT_DURATION] = 10000; - pGlobal_config[LL_EXT_ADV_PROCESS_TARGET] = 500; - pGlobal_config[LL_PRD_ADV_PROCESS_TARGET] = 500; - //------------------------------------------------------------------- - // patch function register - //-------------------------------------------------------------------- - JUMP_FUNCTION(LL_HW_GO) = (uint32_t)&ll_hw_go1; - JUMP_FUNCTION(V4_IRQ_HANDLER) = (uint32_t)&LL_IRQHandler1; - //JUMP_FUNCTION(V11_IRQ_HANDLER) = (uint32_t)&hal_UART0_IRQHandler; - extern void rf_calibrate1(void); - JUMP_FUNCTION(RF_CALIBRATTE) = (uint32_t)&rf_calibrate1; - JUMP_FUNCTION(RF_PHY_CHANGE) = (uint32_t)&rf_phy_change_cfg0; - //JUMP_FUNCTION(LL_GEN_TRUE_RANDOM) = (uint32_t)&LL_ENC_GenerateTrueRandNum1; - JUMP_FUNCTION(LL_AES128_ENCRYPT) = (uint32_t)&LL_ENC_AES128_Encrypt1; - JUMP_FUNCTION(LL_ENC_ENCRYPT) = (uint32_t)&LL_ENC_Encrypt1; - JUMP_FUNCTION(LL_ENC_DECRYPT) = (uint32_t)&LL_ENC_Decrypt1; - //JUMP_FUNCTION(LL_PROCESS_SLAVE_CTRL_PROC) = (uint32_t)&llProcessSlaveControlProcedures1; - //JUMP_FUNCTION(LL_PROCESS_TX_DATA) = (uint32_t)&llProcessTxData1; - //JUMP_FUNCTION(OSAL_POWER_CONSERVE) = (uint32_t)&osal_pwrmgr_powerconserve1; - //JUMP_FUNCTION(ENTER_SLEEP_OFF_MODE) = (uint32_t)&enter_sleep_off_mode1; -#if TEST_RTC_DELTA - JUMP_FUNCTION(ENTER_SLEEP_PROCESS) = (uint32_t)&enterSleepProcess1; -#endif - JUMP_FUNCTION(CONFIG_RTC) = (uint32_t)&config_RTC1; - //JUMP_FUNCTION(V20_IRQ_HANDLER) = (uint32_t)&TIM1_IRQHandler1; -// JUMP_FUNCTION(LL_SCHEDULER) = (uint32_t)&ll_scheduler1; - //JUMP_FUNCTION(HAL_DRV_IRQ_ENABLE) = (uint32_t)&drv_enable_irq1; - //JUMP_FUNCTION(HAL_DRV_IRQ_DISABLE) = (uint32_t)&drv_disable_irq1; - JUMP_FUNCTION(WAKEUP_INIT) = (uint32_t)&wakeup_init1; - JUMP_FUNCTION(WAKEUP_PROCESS) = (uint32_t)&wakeupProcess1; - extern void l2capPocessFragmentTxData(uint16 connHandle); - JUMP_FUNCTION(L2CAP_PROCESS_FREGMENT_TX_DATA) = (uint32_t)&l2capPocessFragmentTxData; - //BQB bug fix,2020.11.17 -#if USE_CODED_PHY - JUMP_FUNCTION(LL_PHY_MODE_UPDATE) = (uint32_t)&LL_PhyUpdate1; -#endif - JUMP_FUNCTION(LL_SET_DATA_LENGTH) = (uint32_t)&LL_SetDataLengh1; -#if USE_CODED_PHY - JUMP_FUNCTION(LL_SET_PHY_MODE) = (uint32_t)&LL_SetPhyMode1; -#endif - JUMP_FUNCTION(LL_PROCESS_TX_DATA) = (uint32_t)&llProcessTxData1; - JUMP_FUNCTION(LL_GENERATE_TX_BUFFER) = (uint32_t)&ll_generateTxBuffer1; - JUMP_FUNCTION(LL_ADP_ADJ_NEXT_TIME) = (uint32_t)&ll_adptive_adj_next_time1; - JUMP_FUNCTION(LL_CONN_TERMINATE) = (uint32_t)&llConnTerminate1; - JUMP_FUNCTION(LL_SET_DEFAULT_CONN_PARAM) = (uint32_t)&LL_set_default_conn_params1; -// ==================== - //disableSleep(); - //setSleepMode(MCU_SLEEP_MODE);//SYSTEM_SLEEP_MODE - enableSleep(); - setSleepMode(SYSTEM_SLEEP_MODE); -} - -__ATTR_SECTION_XIP__ -void ll_patch_slave(void) -{ - JUMP_FUNCTION(LL_SET_ADV_PARAM) = (uint32_t)&LL_SetAdvParam1; - JUMP_FUNCTION(LL_CALC_MAX_SCAN_TIME) = (uint32_t)&llCalcMaxScanTime1; - JUMP_FUNCTION(LL_SEC_ADV_ALLOW) = (uint32_t)&llSecAdvAllow1; - JUMP_FUNCTION(LL_SET_ADV_CONTROL) = (uint32_t)&LL_SetAdvControl1; - JUMP_FUNCTION(LL_SETUP_SEC_ADV_ENTRY) = (uint32_t)&llSetupSecAdvEvt1; - JUMP_FUNCTION(LL_SCHEDULER) = (uint32_t)&ll_scheduler2; - JUMP_FUNCTION(LL_SETUP_NEXT_SLAVE_EVT) = (uint32_t)&llSetupNextSlaveEvent1; -} - -__ATTR_SECTION_XIP__ -void ll_patch_master(void) -{ - JUMP_FUNCTION(LL_SET_ADV_PARAM) = (uint32_t)&LL_SetAdvParam1; - JUMP_FUNCTION(LL_SET_ADV_CONTROL) = (uint32_t)&LL_SetAdvControl1; - JUMP_FUNCTION(LL_MASTER_EVT_ENDOK) = (uint32_t)&llMasterEvt_TaskEndOk1; - JUMP_FUNCTION(LL_SET_SCAN_PARAM) = (uint32_t)&LL_SetScanParam1; - JUMP_FUNCTION(LL_SET_SCAN_CTRL) = (uint32_t)&LL_SetScanControl1; -#if USE_CODED_PHY - JUMP_FUNCTION(LL_PROCESS_MASTER_CTRL_PKT) = (uint32_t)&llProcessMasterControlPacket1; -#endif - JUMP_FUNCTION(LL_CREATE_CONN) = (uint32_t)&LL_CreateConn1; - JUMP_FUNCTION(LL_START_ENCRYPT) = (uint32_t)&LL_StartEncrypt1; - JUMP_FUNCTION(LL_ENC_DECRYPT) = (uint32_t)&LL_ENC_Decrypt1; - JUMP_FUNCTION(LL_PROCESS_MASTER_CTRL_PROC) = (uint32_t)&llProcessMasterControlProcedures1; - JUMP_FUNCTION(LL_PROCESS_SLAVE_CTRL_PROC) = (uint32_t)&llProcessSlaveControlProcedures1; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SRX) = (uint32_t )&ll_processBasicIRQ_SRX0; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SCANTRX) = (uint32_t )&ll_processBasicIRQ_ScanTRX0; - JUMP_FUNCTION(LL_SETUP_SEC_SCAN) = (uint32_t )&llSetupSecScan1; -} - -__ATTR_SECTION_XIP__ -void ll_patch_multi(void) -{ - ll_patch_slave(); - ll_patch_master(); - JUMP_FUNCTION(LL_SCHEDULER) = (uint32_t)&ll_scheduler1; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECADVTRX) = (uint32_t )&ll_processBasicIRQ_secondaryAdvTRX0; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECSCANSRX) = (uint32_t )&ll_processBasicIRQ_secondaryScanSRX0; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECINITSRX) = (uint32_t )&ll_processBasicIRQ_secondaryInitSRX0; -} - -__ATTR_SECTION_XIP__ -void hal_rom_boot_init(void) -{ - extern void _rom_sec_boot_init(); - _rom_sec_boot_init(); -} -//----------------------------------------------------------------------- -// Patch for V105/V103 LL_ChanMapUpdate -// Copy chanMap to connPtr->chanMapUpdate.chaMap -hciStatus_t HCI_LE_SetHostChanClassificationCmd(uint8* chanMap) -{ - hciStatus_t status; - status = LL_ChanMapUpdate(chanMap); - - //patch for LL_ChanMapUpdate - if (status == LL_STATUS_SUCCESS) - { - // need to issue an update on all active connections, if any - for (uint8_t i = 0; i < g_maxConnNum; i++) - { - if (conn_param[i].active) - { - llConnState_t* connPtr = &conn_param[i]; - osal_memcpy((uint8_t*)&(connPtr->chanMapUpdate.chanMap[0]), chanMap, LL_NUM_BYTES_FOR_CHAN_MAP); - } - } - } - - //AT_LOG("ChanMap Patch %d \n", status); - HCI_CommandCompleteEvent(HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION, sizeof(status), &status); - return (HCI_SUCCESS); -} - -/******************************************************************************* - @fn pplus_enter_programming_mode - - @brief force deive enter to programing mode. - - input parameters - - @param none. - - output parameters - - @param none. - - @return none. -*/ -void pplus_enter_programming_mode(void) -{ - typedef void (*uart_init_t)(int baud, GPIO_Pin_e tx_pin, GPIO_Pin_e rx_pin,uint32_t cb_addr); - typedef void (*uart_tx_t)(char* str); - typedef void (*uart_cmd_t)(void); - uart_init_t p_uart_init = (uart_init_t)0x0000b379; - uart_tx_t p_uart_tx = (uart_tx_t)0x0000b4f5; - uart_cmd_t p_uart_cmd = (uart_cmd_t)0x00015c51; - uint32_t _cb_addr = 0x00015c8d; - *(volatile unsigned int*) 0xe000e180 = 0xffffffff; - HAL_ENTER_CRITICAL_SECTION(); - osal_memset((void*)0x1fff0000, 0, 256*4); - HAL_EXIT_CRITICAL_SECTION(); - AP_CACHE->CTRL0 = 0x02; - AP_PCR->CACHE_RST = 0x02; - AP_PCR->CACHE_BYPASS = 1; - *(volatile unsigned int*) 0xe000e100 |= BIT(11); - p_uart_init(115200,P9, P10,_cb_addr); - *(volatile unsigned int*) 0x40004004 |= BIT(0); - p_uart_tx("cmd:"); - __set_MSP(0x1fff1830); - p_uart_cmd(); -} - - -int8 LL_PLUS_GetCurrentRSSI(void) -{ - uint8 rssi; - uint16 foff; - uint8 carrSens; - rf_phy_get_pktFoot(&rssi,&foff,&carrSens); - return -rssi; -} - -void LL_PLUS_GetCurrentPduDle(uint8_t connId, ll_pdu_length_ctrl_t* ppdu) -{ - if(LL_INVALID_CONNECTION_ID!=connId && ppdu!=NULL) - { - ppdu->MaxRxOctets = conn_param[connId].llPduLen.local.MaxRxOctets; - ppdu->MaxTxOctets = conn_param[connId].llPduLen.local.MaxTxOctets; - ppdu->MaxRxTime = conn_param[connId].llPduLen.local.MaxRxTime; - ppdu->MaxTxTime = conn_param[connId].llPduLen.local.MaxTxTime; - } -} - - -void LOG_PATCH_DATA_TIME(void) -{ - LOG("\n"); - LOG("PATCH_LIB:"); -// for(int i=0;i<12;i++) -// { -// LOG("%s",libRevisionDate[i]); -// } - LOG("%s",libRevisionDate); - LOG(" "); - LOG("%s",libRevisionTime); -// for(int i=0;i<12;i++) -// { -// LOG("%s",libRevisionTime[i]); -// } - LOG("\n"); -} - - - -extern inline uint32_t __psr(void) -{ - uint32_t i; - __asm volatile("MRS %0, psr": "=r"(i)); - return i; -} - -void rflib_vesion(uint8_t* major, uint8_t* minor, uint8_t* revision, char* test_build) -{ - *major = SDK_VER_MAJOR; - *minor = SDK_VER_MINOR; - *revision = SDK_VER_REVISION; - *test_build = '\0'; -#ifdef SDK_VER_TEST_BUILD - *test_build = SDK_VER_TEST_BUILD; -#endif -} - - -#define OSALMEM_BIGBLK_IDX 157 -// =========================================================== -// ptr: the header of osal heap -//uint32 osal_memory_statics(void *ptr) -extern uint8 g_largeHeap[]; -uint32 osal_memory_statics(void) -{ - osalMemHdr_t* header, *current; - void* ptr; - uint32 sum_alloc = 0; - uint32 sum_free = 0; - uint32 max_block = 0; -// halIntState_t intState; - ptr = (void*)g_largeHeap; - header = (osalMemHdr_t*)ptr; - current = (osalMemHdr_t*)ptr; - -// HAL_ENTER_CRITICAL_SECTION1( intState ); // Hold off interrupts. - - do - { - if ((uint32)ptr > (uint32)header + 4096) - { - LOG("==========error: memory audit failed===============\r\n"); - break; - } - - // seek to the last block, return - if ( current->val == 0 ) /// val = 0, so len = 0 - { - break; - } - - if (current->hdr.inUse) - sum_alloc += current->hdr.len; - else - { - sum_free += current->hdr.len; - - if (current->hdr.len > max_block && (void*)(¤t->hdr) > (void*)(header + OSALMEM_BIGBLK_IDX)) - max_block = current->hdr.len; - } - - current = (osalMemHdr_t*)((uint8*)current + current->hdr.len); - } - while (1); - -// HAL_EXIT_CRITICAL_SECTION1( intState ); // Re-enable interrupts. -// printf("sum_alloc = %d, sum_free = %d, max_free_block = %d\r\n", sum_alloc, sum_free, max_block); - LOG("sum_alloc = %d, max_free_block = %d ", sum_alloc, max_block); - return sum_alloc; -} - -llStatus_t LL_ConnUpdate1( uint16 connId, - uint16 connIntervalMin, - uint16 connIntervalMax, - uint16 connLatency, - uint16 connTimeout, - uint16 minLength, - uint16 maxLength ) -{ - llStatus_t status; - llConnState_t* connPtr; - // unused input parameter; PC-Lint error 715. - (void)minLength; - (void)maxLength; - - // make sure we're in Master role -// if ( llState != LL_STATE_CONN_MASTER ) -// { -// return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); -// } - if (g_ll_conn_ctx.scheduleInfo[connId].linkRole != LL_ROLE_MASTER ) - return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); - - // sanity checks again to be sure we don't start with bad parameters - if ( LL_INVALID_CONN_TIME_PARAM( connIntervalMin, - connIntervalMax, - connLatency, - connTimeout ) ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId]; - - // check if an updated parameters control procedure is already what's pending - if ( ((connPtr->ctrlPktInfo.ctrlPktCount > 0) && - (connPtr->ctrlPktInfo.ctrlPkts[0] == LL_CTRL_CONNECTION_UPDATE_REQ)) || - (connPtr->pendingParamUpdate == TRUE) ) - { - return( LL_STATUS_ERROR_CTRL_PROC_ALREADY_ACTIVE ); - } - - // check if CI/SL/LSTO is valid (i.e. meets the requirements) - // Note: LSTO > (1 + Slave Latency) * (Connection Interval * 2) - // Note: The CI * 2 requirement based on ESR05 V1.0, Erratum 3904. - // Note: LSTO time is normalized to units of 1.25ms (i.e. 10ms = 8 * 1.25ms). - if ( LL_INVALID_CONN_TIME_PARAM_COMBO(connIntervalMax, connLatency, connTimeout) ) - { - return( LL_STATUS_ERROR_ILLEGAL_PARAM_COMBINATION ); - } - - // if there is at least one connection, make sure this connection interval - // is a multiple/divisor of all other active connection intervals; also make - // sure that this connection's interval is not less than the allowed maximum - // connection interval as determined by the maximum number of allowed - // connections times the number of slots per connection. - if ( g_ll_conn_ctx.numLLMasterConns > 1 ) // if ( g_ll_conn_ctx.numLLConns > 0 ) - { - uint16 connInterval = (connIntervalMax << 1); // convert to 625us ticks - uint16 minCI = g_ll_conn_ctx.connInterval; - - // // first check if this connection interval is even legal - // // Note: The number of active connections is limited by the minCI. - // if ( (minCI / NUM_SLOTS_PER_MASTER) < llConns.numActiveConns ) - // { - // return( LL_STATUS_ERROR_UNACCEPTABLE_CONN_INTERVAL ); - // } - - // // does the CI need to be checked as a multiple of the minCI? - if ( connInterval >= minCI ) - { - // check if this connection's CI is valid (i.e. a multiple of minCI) - if ( connInterval % minCI ) - { - return( LL_STATUS_ERROR_UNACCEPTABLE_CONN_INTERVAL ); - } - } - else - return( LL_STATUS_ERROR_UNACCEPTABLE_CONN_INTERVAL ); - } - else - { - // only 1 master connection - g_ll_conn_ctx.connInterval = connIntervalMax; - g_ll_conn_ctx.per_slot_time = connPtr->curParam.connInterval * 2 / g_maxConnNum; // unit: 625us - } - - // no control procedure currently active, so set this one up - // set the window size (units of 1.25ms) - connPtr->paramUpdate.winSize = LL_WINDOW_SIZE; - // set the window offset (units of 1.25ms) -// connPtr->paramUpdate.winOffset = LL_WINDOW_OFFSET; - connPtr->paramUpdate.winOffset = 0; // multiconnection, this value could be 0 or x * old conn interval and should be less than new conn interval - // set the relative offset of the number of events for the parameter update - // Note: The absolute event number will be determined at the time the packet - // is placed in the TX FIFO. - // Note: The master should allow a minimum of 6 connection events that the - // slave will be listening for before the instant occurs. - connPtr->paramUpdateEvent = (connPtr->curParam.slaveLatency+1) + - LL_INSTANT_NUMBER_MIN; - // determine the connection interval based on min and max values - // Note: Range not used, so assume max value. - // Note: minLength and maxLength are informational. - connPtr->paramUpdate.connInterval = connIntervalMax; - // save the new connection slave latency to be used by the peer - connPtr->paramUpdate.slaveLatency = connLatency; - // save the new connection supervisor timeout - connPtr->paramUpdate.connTimeout = connTimeout; - // queue control packet for processing - llEnqueueCtrlPkt( connPtr, LL_CTRL_CONNECTION_UPDATE_REQ ); - return( LL_STATUS_SUCCESS ); -} - -hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle, - uint16 connIntervalMin, - uint16 connIntervalMax, - uint16 connLatency, - uint16 connTimeout, - uint16 minLen, - uint16 maxLen ) -{ - hciStatus_t status; - status = LL_ConnUpdate1( connHandle, - connIntervalMin, - connIntervalMax, - connLatency, - connTimeout, - minLen, - maxLen ); - HCI_CommandStatusEvent( status, HCI_LE_CONNECTION_UPDATE ); - return( HCI_SUCCESS ); -} - -__ATTR_SECTION_XIP__ -CHIP_ID_STATUS_e chip_id_one_bit_hot_convter(uint8_t* b, uint32_t w) -{ - uint16 dh = w >> 16; - uint16 dl = w & 0xffff; - uint16 h1, h0, l1, l0; - h0 = l0 = 0xff; - h1 = l1 = 0; - - for(int i = 0; i < 16; i++) - { - l1 += ((dl & (1 << i)) >> i); - - if(l0 == 0xff && l1 == 1) - l0 = i; - - h1 += ((dh & (1 << i)) >> i); - - if(h0 == 0xff && h1 == 1) - h0 = i; - } - - if(l1 == 1 && h1 == 1) - { - *b = ((h0 << 4) + l0); - return CHIP_ID_VALID; - } - else if(l1 == 16 && h1 == 16) - { - return CHIP_ID_EMPTY; - } - else - { - return CHIP_ID_INVALID; - } -} - -/******************************************************************************* - @fn LL_PLUS_LoadMACFromFlash - - @brief Used to load MAC Address from Flash - - input parameters - - @param None. - - output parameters - - @param None. - - @return None. -*/ -/* -void LL_PLUS_LoadMACFromFlash(uint32_t addr) -{ - volatile uint8_t* p_ownPublicAddr = (volatile uint8_t*)0x1fff0965; - uint32_t macAddr[2]; - macAddr[0]=*(volatile uint32_t*) (0x11000000+addr); - macAddr[1]=*(volatile uint32_t*) (0x11000000+addr+4); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],3); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],2); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],1); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],0); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[1],1); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[1],0); -} -*/ - -/******************************************************************************* - @fn pplus_LoadMACFromChipMAddr - - @brief Used to load MAC Address from chip Maddr - - input parameters - - @param None. - - output parameters - - @param None. - - @return CHIP_ID_STATUS_e. -*/ -/* -CHIP_ID_STATUS_e LL_PLUS_LoadMACFromChipMAddr(void) -{ - check_chip_mAddr(); - volatile uint8_t* p_ownPublicAddr = (volatile uint8_t*)0x1fff0965; - - if(g_chipMAddr.chipMAddrStatus==CHIP_ID_VALID) - { - for(uint8_t i =0; iRTCCFG2; - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0108; - - for(uint8_t j=0; j < len; j++) - { - status = 0; - - for(uint8_t i = 0; i < 16; i++) - { - WaitRTCCount(17); - temp1 = AP_AON->RTCTRCCNT; - status |= ((temp1 & 0x03)<<(i<<1)); - } - *buf++ = status; - } - return; -} - -__ATTR_SECTION_XIP__ static void TRNG_IV_Updata() -{ - *(uint32*)(&s_trng_iv[0]) +=read_current_fine_time(); - *(uint32*)(&s_trng_iv[4]) +=read_current_fine_time(); - *(uint32*)(&s_trng_iv[8]) +=read_current_fine_time(); - *(uint32*)(&s_trng_iv[12])+=read_current_fine_time(); -} - -__ATTR_SECTION_XIP__ void TRNG_INIT(void) -{ - static uint8_t init_flag = 0; - - if (!init_flag) - { - TRNG_Output((uint32_t*)(s_trng_seed), 4); - TRNG_Output((uint32_t*)(s_trng_iv), 4); - init_flag = 1; - } - - return; -} - -__ATTR_SECTION_XIP__ uint8_t TRNG_Rand(uint8_t* buf,uint8_t len) -{ - uint32_t t0=0; - uint8_t i; - uint8_t cryOut[16]; - uint8_t cryIn[16]; - uint8_t rand_len = 0; - - if(len > 16) - { - return PPlus_ERR_FATAL; - } - - TRNG_INIT(); - - for(i=0; i<16; i++) - t0+=s_trng_seed[i]; - - if(t0==0) - return PPlus_ERR_NULL; - - if(len>16) - return PPlus_ERR_DATA_SIZE; - - for(i=0; i<16; i++) - cryIn[i] =s_trng_iv[i]^s_company_id[i]; - - LL_ENC_AES128_Encrypt(s_trng_seed,cryIn,cryOut); - rand_len = len > 16 ? 16 : len; - osal_memcpy(buf,cryOut,rand_len); - TRNG_IV_Updata(); - return PPlus_SUCCESS; -} - - -// bugfix for multi-Role -/******************************************************************************* - @fn LL_EncLtkReply API - - @brief This API is called by the HCI to provide the controller with - the Long Term Key (LTK) for encryption. This command is - actually a reply to the link layer's LL_EncLtkReqCback, which - provided the random number and encryption diversifier received - from the Master during an encryption setup. - - Note: The key parameter is byte ordered LSO to MSO. - - input parameters - - @param connId - The LL connection ID on which to send this data. - @param *key - A 128 bit key to be used to calculate the session key. - - output parameters - - @param None. - - @return LL_STATUS_SUCCESS -*/ -llStatus_t LL_EncLtkReply( uint16 connId, - uint8* key ) -{ - uint8 i; - llStatus_t status; - llConnState_t* connPtr; - // get connection info - connPtr = &conn_param[ connId ]; - - // make sure we're in Master role -// if ( llState != LL_STATE_CONN_SLAVE ) - /* asynchronous send msg can not make sure llState = LL_STATE_CONN_SLAVE in multi-role */ - if( connPtr->llTbd1 != LL_LINK_CONNECT_COMPLETE_SLAVE ) - { - return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); - } - - // check parameters - if ( key == NULL ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // ALT: COULD MAKE THIS PER CONNECTION. - - // save LTK - for (i=0; iencInfo.LTK[(LL_ENC_LTK_LEN-i)-1] = key[i]; - } - - // indicate the host has provided the key - connPtr->encInfo.LTKValid = TRUE; - // got the LTK, so schedule the start of encryption - // ALT: COULD MAKE THIS A REPLACE IF A DUMMY IS SITTING AT THE HEAD OF - // THE QUEUE. - llEnqueueCtrlPkt( connPtr, LL_CTRL_START_ENC_REQ ); - return( LL_STATUS_SUCCESS ); -} - -/******************************************************************************* - @fn LL_EncLtkNegReply API - - @brief This API is called by the HCI to indicate to the controller - that the Long Term Key (LTK) for encryption can not be provided. - This command is actually a reply to the link layer's - LL_EncLtkReqCback, which provided the random number and - encryption diversifier received from the Master during an - encryption setup. How the LL responds to the negative reply - depends on whether this is part of a start encryption or a - re-start encryption after a pause. For the former, an - encryption request rejection is sent to the peer device. For - the latter, the connection is terminated. - - input parameters - - @param connId - The LL connection ID on which to send this data. - - output parameters - - @param None. - - @return LL_STATUS_SUCCESS -*/ -llStatus_t LL_EncLtkNegReply( uint16 connId ) -{ - llStatus_t status; - llConnState_t* connPtr; - // get connection info - connPtr = &conn_param[ connId ]; - -// // make sure we're in Master role -// if ( llState != LL_STATE_CONN_SLAVE ) - /* asynchronous send msg can not make sure llState = LL_STATE_CONN_SLAVE in multi-role */ - if( connPtr->llTbd1 != LL_LINK_CONNECT_COMPLETE_SLAVE ) - { - return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // check if this is during a start or a re-start encryption procedure - if ( connPtr->encInfo.encRestart == TRUE ) - { - // indicate the peer requested this termination - connPtr->termInfo.reason = LL_ENC_KEY_REQ_REJECTED; - // queue control packet for processing - // ALT: COULD MAKE THIS A REPLACE IF A DUMMY IS SITTING AT THE HEAD OF - // THE QUEUE. - //llReplaceCtrlPkt( connPtr, LL_CTRL_TERMINATE_IND ); - llEnqueueCtrlPkt( connPtr, LL_CTRL_TERMINATE_IND ); - } - else // during a start encryption - { - // set the encryption rejection error code - connPtr->encInfo.encRejectErrCode = LL_STATUS_ERROR_PIN_OR_KEY_MISSING; // same as LL_ENC_KEY_REQ_REJECTED - // and reject the encryption request - // ALT: COULD MAKE THIS A REPLACE IF A DUMMY IS SITTING AT THE HEAD OF - // THE QUEUE. - //llReplaceCtrlPkt( connPtr, LL_CTRL_REJECT_IND ); - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_IND ); - } - - return( LL_STATUS_SUCCESS ); -} - -hciStatus_t HCI_LE_LtkReqReplyCmd( uint16 connHandle, - uint8* ltk ) -{ - // 0: Status - // 1: Connection Handle (LSB) - // 2: Connection Handle (MSB) - uint8 rtnParam[3]; - rtnParam[0] = LL_EncLtkReply( connHandle, ltk ); - rtnParam[1] = LO_UINT16( connHandle ); - rtnParam[2] = HI_UINT16( connHandle ); - HCI_CommandCompleteEvent( HCI_LE_LTK_REQ_REPLY, sizeof(rtnParam), rtnParam ); - return ( HCI_SUCCESS ); -} - - -/******************************************************************************* - This LE API is used by the Host to send to the Controller a negative LTK - reply. - - Public function defined in hci.h. -*/ -hciStatus_t HCI_LE_LtkReqNegReplyCmd( uint16 connHandle ) -{ - // 0: Status - // 1: Connection Handle (LSB) - // 2: Connection Handle (MSB) - uint8 rtnParam[3]; - rtnParam[0] = LL_EncLtkNegReply( connHandle ); - rtnParam[1] = LO_UINT16( connHandle ); - rtnParam[2] = HI_UINT16( connHandle ); - HCI_CommandCompleteEvent( HCI_LE_LTK_REQ_NEG_REPLY, sizeof(rtnParam), rtnParam ); - return( HCI_SUCCESS ); -} - - -#define EFUSE_PROG_FIX_FOR_CHIP -#ifdef EFUSE_PROG_FIX_FOR_CHIP - -typedef enum -{ - EFUSE_BLOCK_0 = 0, - EFUSE_BLOCK_1 = 1, - EFUSE_BLOCK_2 = 2, - EFUSE_BLOCK_3 = 3, - -} EFUSE_block_t; - -extern int efuse_read(EFUSE_block_t block,uint32_t* buf); - -static bool efuse_get_lock_state(EFUSE_block_t block); -static uint8_t get_even(volatile uint32_t* data); - -int efuse_write_x(EFUSE_block_t block,uint32_t* buf,uint32_t us) -{ - uint8_t even_bit; - uint32_t temp_wr[2]; - uint32_t temp_rd[2]; - volatile uint32_t temp; - int ret; - - if(*(buf+1) > 0x3FFFFFFF) - return PPlus_ERR_INVALID_PARAM; - - if(efuse_get_lock_state(block) == TRUE) - return PPlus_ERR_ACCESS_REJECTED; - - if(efuse_read(block,temp_rd) != PPlus_ERR_UNINITIALIZED) - return PPlus_ERR_ACCESS_REJECTED; - - even_bit = get_even(buf); - temp_wr[0] = ((*buf)<<1)|(even_bit); - temp_wr[1] = ((*(buf+1))<<1) | (((*buf) & 0x80000000)?1:0); - AP_PCRM->EFUSE_PROG[0] = temp_wr[0]; - AP_PCRM->EFUSE_PROG[1] = temp_wr[1]; - temp = (BIT((28 + block)) | 0x8000);//enable o_sclk_prog_hcyc,sclk high duty during time, unit:1/32M clk.prog en - AP_PCRM->efuse_cfg = temp; - WaitRTCCount(((us<<15)/1000000)+1);//at least 400us - { - AP_PCRM->efuse_cfg = 0x00;//disable o_sclk_prog_hcyc and clear prog data - AP_PCRM->EFUSE_PROG[0] = 0; - AP_PCRM->EFUSE_PROG[1] = 0; - } - ret = efuse_read(block,temp_rd); - - if(ret == PPlus_SUCCESS) - { - if((temp_rd[1] != buf[1]) || (temp_rd[0] != buf[0])) - return PPlus_ERR_INVALID_DATA; - } - - return ret; -} - -static bool efuse_get_lock_state(EFUSE_block_t block) -{ - return (AP_PCRM->SECURTY_STATE & BIT(block))?FALSE:TRUE; -} - -static uint8_t get_even(volatile uint32_t* data) -{ - uint32_t x; - x = *(data+1) ^ (*data); - x = ( x >> 16 ) ^ x; - x = ( x >> 8 ) ^ x; - x = ( x >> 4 ) ^ x; - x = ( x >> 2 ) ^ x; - x = ( x >> 1) ^ x; - return (x & 1); -} - -#endif diff --git a/bthome_phy6222/SDK/lib/rf/01/patch.c b/bthome_phy6222/SDK/lib/rf/01/patch.c deleted file mode 100644 index ad0d4d1..0000000 --- a/bthome_phy6222/SDK/lib/rf/01/patch.c +++ /dev/null @@ -1,8726 +0,0 @@ -/************************************************************ - patch.c - - SDK_LICENSE -MIN_SLEEP_TIME -************************************************************/ - -#include -#include - -//#include "common.h" -//#include "uart.h" -//#include "dma.h" -//#include "flash.h" -//#include "gpio_rom.h" -//#include "i2c.h" -//#include "i2s.h" -//#include "spi.h" -//#include "timer.h" -#include "ll.h" -#include "rf_phy_driver.h" -#include "global_config.h" -#include "jump_function.h" -#include "pwrmgr.h" -#include "uart.h" -#include "ll_sleep.h" -#include "ll_debug.h" -#include "ll.h" -#include "bus_dev.h" -#include "ll_hw_drv.h" -#include "gpio.h" -#include "ll_enc.h" -#include "OSAL_Clock.h" -#include "osal_bufmgr.h" -#include "OSAL_Memory.h" -#include "log.h" -#include "hci.h" -#include "hci_tl.h" -#include "version.h" -#include "flash.h" -#include "gatt.h" -#include "att.h" -#include "error.h" -#include "clock.h" -#include "rf_phy_driver.h" -//======================================================== -// build config -//#define __BUILD_RF_LIB_SLA__ (0x1) -//#define __BUILD_RF_LIB_MST__ (0x2) -//#define __BUILD_RF_LIB_MULTI__ ( __BUILD_RF_LIB_MST__ | __BUILD_RF_LIB_SLA__ ) -// -//#ifndef __BUILD_PATCH_CFG__ -// #define __BUILD_PATCH_CFG__ __BUILD_RF_LIB_MST__ -//#endif - -#ifndef USE_CODED_PHY -#define USE_CODED_PHY 0 -#endif - -#define DBG_BUILD_LL_TIMING 0 //0x01 for enable LL timing debug - - -// ====================== -//#define DBG_GPIO_WRITE(a,b) gpio_write((a),(b)) -#define DBG_GPIO_WRITE(a,b) -#define DBGIO_LL_TRIG P23 -#define DBGIO_LL_IRQ P24 -#define DBGIO_APP_WAKEUP P18 -#define DBGIO_APP_SLEEP P20 -#define DBGIO_DIS_IRQ P11 -#define DBGIO_EN_IRQ P34 - -#define LL_HW_MODE_STX 0x00 -#define LL_HW_MODE_SRX 0x01 -#define LL_HW_MODE_TRX 0x02 -#define LL_HW_MODE_RTX 0x03 -#define LL_HW_MODE_TRLP 0x04 -#define LL_HW_MODE_RTLP 0x05 - -// =============== add in A2 for simultaneous slave and adv/scan -#define LL_SEC_STATE_IDLE 0x00 -#define LL_SEC_STATE_SCAN 0x01 -#define LL_SEC_STATE_ADV 0x02 -#define LL_SEC_STATE_SCAN_PENDING 0x03 -#define LL_SEC_STATE_ADV_PENDING 0x04 -#define LL_SEC_STATE_IDLE_PENDING 0x05 -#define LL_SEC_STATE_INIT 0x06 -#define LL_SEC_STATE_INIT_PENDING 0x07 - -#define WFI() __WFI() - -#define LL_MODE_INVALID 0xFF -#define LL_MODE_LEGACY 0x00 -#define LL_MODE_EXTENDED 0x01 - -#define LL_COPY_DEV_ADDR_LE( dstPtr, srcPtr ) { \ - (dstPtr)[0] = (srcPtr)[0]; \ - (dstPtr)[1] = (srcPtr)[1]; \ - (dstPtr)[2] = (srcPtr)[2]; \ - (dstPtr)[3] = (srcPtr)[3]; \ - (dstPtr)[4] = (srcPtr)[4]; \ - (dstPtr)[5] = (srcPtr)[5];} - -#define LL_WINDOW_SIZE 2 // 2.5ms in 1.25ms ticks - -#define LL_CALC_NEXT_SCAN_CHN(chan) { chan ++; \ - chan = (chan > LL_SCAN_ADV_CHAN_39) ? LL_SCAN_ADV_CHAN_37 : chan;} - -#define CONN_CSA2_ALLOW 0x00000080 - -//------------------------------------------------------------------------------------ -//extern rom function -// -//extern int gpio_write(gpio_pin_e pin, bit_action_e en); -extern uint8 ll_processExtAdvIRQ(uint32_t irq_status); -extern uint8 ll_processPrdAdvIRQ(uint32_t irq_status); -extern uint8 ll_processExtScanIRQ(uint32_t irq_status); -extern uint8 ll_processExtInitIRQ(uint32_t irq_status); -extern uint8 ll_processPrdScanIRQ(uint32_t irq_status); -extern uint8 ll_processBasicIRQ(uint32_t irq_status); -//extern int clear_timer_int(AP_TIM_TypeDef* TIMx); -extern uint8 isTimer1Running(void); -//extern uint8 isTimer4Running(void); -extern void clear_timer(AP_TIM_TypeDef* TIMx); - -extern uint8 ll_processMissMasterEvt(uint8 connId); -extern uint8 ll_processMissSlaveEvt(uint8 connId); -//extern int gpio_write(GPIO_Pin_e pin, uint8_t en); -extern void ll_hw_tx2rx_timing_config(uint8 pkt); -//extern void wakeup_init0(void); -extern void enter_sleep_off_mode0(Sleep_Mode mode); -//extern void spif_release_deep_sleep(void); -extern void spif_set_deep_sleep(void); - -extern uint8 ll_hw_get_tr_mode(void); -extern int ll_hw_get_rfifo_depth(void); -extern void move_to_master_function(void); - -extern struct buf_tx_desc g_tx_adv_buf; -//extern struct buf_tx_desc g_tx_ext_adv_buf; -extern struct buf_tx_desc tx_scanRsp_desc; - -extern struct buf_rx_desc g_rx_adv_buf; - -//extern chipMAddr_t g_chipMAddr; - -extern uint8 g_llAdvMode; -extern uint32_t g_llHdcDirAdvTime; - -extern uint32 g_new_master_delta; -//----------------------------------------------------------------------------------- -//extern rom variable -// -uint32* pGlobal_config = NULL; -void efuse_init(void); - -const unsigned char libRevisionDate[]=__DATE__; -const unsigned char libRevisionTime[]=__TIME__; - -uint8 CreateConn_Flag = FALSE; -uint32_t g_t_llhwgo = 0; -uint16 g_lastSlaveLatency=0; - -extern uint32 hclk_per_us; -extern uint32 hclk_per_us_shift; -extern volatile uint8 g_clk32K_config; -///////////////////////// - -extern uint32 sleep_flag; -extern uint32 osal_sys_tick; -extern uint32 ll_remain_time; - -extern uint32 llWaitingIrq; -extern uint32 ISR_entry_time; - -extern uint32 counter_tracking; - -extern unsigned int g_top_irqstack; -//extern uint32_t __initial_sp; // file.ld: __initial_sp = ORIGIN(sram) + LENGTH(sram); -//extern void _start(void) __NO_RETURN; -extern uint32_t g_smartWindowSize; -extern volatile uint8_t g_same_rf_channel_flag; -extern uint32_t g_TIM2_IRQ_TIM3_CurrCount; -extern uint32_t g_TIM2_IRQ_to_Sleep_DeltTick; -extern uint32_t g_TIM2_IRQ_PendingTick; -extern uint32_t g_osal_tick_trim; -extern uint32_t g_osalTickTrim_mod; -//extern uint32_t g_TIM2_wakeup_delay; -extern uint32_t rtc_mod_value; -extern uint32_t g_counter_traking_cnt; -extern uint32_t sleep_tick; -extern uint32_t g_wakeup_rtc_tick; -extern int slave_conn_event_recv_delay; -extern uint8 g_llScanMode; -extern uint8 g_currentPeerAddrType; -extern uint8 g_currentPeerRpa[LL_DEVICE_ADDR_LEN]; -extern uint8 ownRandomAddr[]; -extern uint16_t ll_hw_get_tfifo_wrptr(void); -extern uint32_t llCurrentScanChn; -extern uint8 ownPublicAddr[]; -extern uint32_t llScanTime; -extern uint32_t llScanT1; -extern uint8 isPeerRpaStore; -extern uint8 currentPeerRpa[LL_DEVICE_ADDR_LEN]; -extern uint8 storeRpaListIndex; -extern uint8 g_currentLocalAddrType; -extern uint8 g_currentLocalRpa[LL_DEVICE_ADDR_LEN]; -//extern llPduLenManagment_t g_llPduLen; -extern uint8_t llSecondaryState; // secondary state of LL - -void __wdt_init(void) -{ - typedef void (*my_function)(void ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(HAL_WATCHDOG_INIT)); - - if (pFunc != NULL) - pFunc(); -} - -uint8 ll_processBasicIRQ_SRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} -uint8 ll_processBasicIRQ_secondaryAdvTRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECADVTRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -uint8 ll_processBasicIRQ_ScanTRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SCANTRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -uint8 ll_processBasicIRQ_secondaryScanSRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECSCANSRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -uint8 ll_processBasicIRQ_secondaryInitSRX(uint32_t irq_status) -{ - uint8 ret=0; - typedef uint8 (*my_function)(uint32_t ); - my_function pFunc = NULL; - pFunc = (my_function)(JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECINITSRX)); - - if (pFunc != NULL) - ret = pFunc(irq_status); - else - ret = ll_processBasicIRQ(irq_status); - - return ret; -} - -//---------------------------------------------------------------------------------------------- -//patch - -void ll_hw_go1(void) -{ - //*(volatile uint32_t *)0x4000f0b8 = 0; // pclk_clk_gate_en - //20190115 ZQ recorded ll re-trigger - if(llWaitingIrq==TRUE) - { - g_pmCounters.ll_trigger_err++; - } - - g_t_llhwgo = read_current_fine_time(); - *(volatile uint32_t*)(LL_HW_BASE+ 0x14) = LL_HW_IRQ_MASK; //clr irq status - *(volatile uint32_t*)(LL_HW_BASE+ 0x0c) = 0x0001; //mask irq :only use mode done - *(volatile uint32_t*)(LL_HW_BASE+ 0x00) = 0x0001; //trig - - if(CreateConn_Flag) - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &initInfo.ownAddr[0], 6); - CreateConn_Flag= FALSE; - } - - //2018-05-23 ZQ - //fix negative rfPhyFreqOff bug, when in scan_rsq case, ll_hw_go will be excuted before set_channel() - //so do not change the tx_rx_foff - //next metal change could modified the set_channel() to deal with the tx_rx_foff - uint8_t rfChnIdx = PHY_REG_RD(0x400300b4)&0xff; - - if(!g_same_rf_channel_flag) - { - if(g_rfPhyFreqOffSet>=0) - PHY_REG_WT(0x400300b4, (g_rfPhyFreqOffSet<<16)+(g_rfPhyFreqOffSet<<8)+rfChnIdx); - else - PHY_REG_WT(0x400300b4, ((255+g_rfPhyFreqOffSet)<<16)+((255+g_rfPhyFreqOffSet)<<8)+(rfChnIdx-1) ); - } - - //2018-02-09 ZQ - //considering the ll_trigger timing, Trigger first, then set the tp_cal cap - - if(rfChnIdx<2) - { - rfChnIdx=2; - } - else if(rfChnIdx>80) - { - rfChnIdx=80; - } - - if(g_rfPhyPktFmt==PKT_FMT_BLE2M) - subWriteReg(0x40030094,7,0,RF_PHY_TPCAL_CALC(g_rfPhyTpCal0_2Mbps,g_rfPhyTpCal1_2Mbps,(rfChnIdx-2)>>1)); - else - subWriteReg(0x40030094,7,0,RF_PHY_TPCAL_CALC(g_rfPhyTpCal0,g_rfPhyTpCal1,(rfChnIdx-2)>>1)); - - int llModeLast; - llModeLast = ll_hw_get_tr_mode(); - extern uint8_t rxFifoFlowCtrl; - extern uint8 ctrlToHostEnable; - - if (llModeLast == LL_HW_MODE_RTLP || llModeLast == LL_HW_MODE_TRLP) - { - if (ctrlToHostEnable && rxFifoFlowCtrl) - { - set_max_length(0); - } - - //for codedphy rxtimeout - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - if (connPtr->llRfPhyPktFmt == PKT_FMT_BLR125K || connPtr->llRfPhyPktFmt == PKT_FMT_BLR500K) - { - ll_hw_set_rx_timeout(350); - } - } - - if((llModeLast == LL_HW_MODE_TRX)&&((llState == LL_STATE_ADV_UNDIRECTED ||llState == LL_STATE_ADV_SCAN ||llState == LL_STATE_ADV_DIRECTED)|| llSecondaryState == LL_SEC_STATE_ADV)) - { - ll_hw_set_rx_timeout(108); - } - - // fix slave scan rsp addr type bug - // if (llModeLast == LL_HW_MODE_STX && - // (llState == LL_STATE_ADV_UNDIRECTED || - // llState == LL_STATE_ADV_SCAN ) - // ) - // { - // if(adv_param.ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC) - // { - // SET_BITS(tx_scanRsp_desc.txheader, LL_DEV_ADDR_TYPE_PUBLIC, TX_ADD_SHIFT, TX_ADD_MASK); - // } - // else if(adv_param.ownAddrType == LL_DEV_ADDR_TYPE_RANDOM) - // { - // SET_BITS(tx_scanRsp_desc.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - // } - // DBG_GPIO_WRITE(DBGIO_LL_TRIG,1); - // DBG_GPIO_WRITE(DBGIO_LL_TRIG,0); - // } - // - //disable scan backoff - scanInfo.currentBackoff=1; -} - -//for fix uint8 lastSlaveLatency issue -void LL_set_default_conn_params1(llConnState_t* connPtr) -{ - LL_set_default_conn_params0(connPtr); - g_lastSlaveLatency = 0; -} - -uint8 llSetupNextSlaveEvent1( void ) -{ - uint8 stat = llSetupNextSlaveEvent0(); - llConnState_t* connPtr; - // get connection information - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - g_lastSlaveLatency = connPtr->slaveLatency; - return stat; -} - -void ll_scheduler2(uint32 time) -{ - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - if(g_lastSlaveLatency > connPtr->lastSlaveLatency) - { - uint32 delttime = connPtr->lastTimeToNextEvt * (g_lastSlaveLatency -connPtr->lastSlaveLatency) * 625; - - if((time != LL_INVALID_TIME) &&(time != 200)) - { - time += delttime; - } - } - - ll_scheduler0(time); -} - -extern int slave_conn_event_recv_delay; -void ll_adptive_adj_next_time1(uint32_t next_time) -{ - (void)(next_time); - uint32_t loop_time,anchor_point; - - // read loop timeout counter, system clock may be 16MHz, 32MHz, 64MHz and 48MHz, 96MHz - if (hclk_per_us_shift != 0) - { - loop_time = ll_hw_get_loop_cycle() >> hclk_per_us_shift; // convert to us - } - else - { - loop_time = ll_hw_get_loop_cycle() / hclk_per_us; // convert to us - } - - if (hclk_per_us_shift != 0) - { - anchor_point = ll_hw_get_anchor() >> hclk_per_us_shift; // convert to us - } - else - { - anchor_point = ll_hw_get_anchor() / hclk_per_us; // convert to us - } - - //================================================== - //DO NOT ADD LOG PRINTF In this FUNCTION - //================================================== - llConnState_t* connPtr; - // get connection information - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - //no anche point - if (connPtr->rx_timeout) - { - connPtr->pmCounter.ll_tbd_cnt1++; - slave_conn_event_recv_delay = LL_TIME_DELTA(g_t_llhwgo, ISR_entry_time)-370+160;//160:timer1 irq->hwgo trigger - } - else - { - connPtr->pmCounter.ll_tbd_cnt1 = 0; - slave_conn_event_recv_delay = loop_time - anchor_point+pGlobal_config[SLAVE_CONN_DELAY]; - } - - // slave_conn_event_recv_delay -= 370; - //slave_conn_event_recv_delay += (connPtr->curParam.connInterval >> 2); - // slave_conn_event_recv_delay += pGlobal_config[SLAVE_CONN_DELAY]; - - // if( connPtr->firstPacket ) - // { - // slave_conn_event_recv_delay+=500; - // } - - //only adj for the 1st rxtimeout - if (1 == connPtr->pmCounter.ll_tbd_cnt1) - { - slave_conn_event_recv_delay += 500; - } - - //adj for ntrm pkt, each pkt cost 50us in wt tfifo - //if(connPtr->rx_timeout) - //slave_conn_event_recv_delay += ((connPtr->ll_buf.ntrm_cnt) * 50); -} - -void llConnTerminate1( llConnState_t* connPtr, - uint8 reason ) -{ - /* - ZQ:20210622 - process chanmp update passed instant(core 4.2 should term link, since core 5.0 just update the ) - just update chanmap do not trigger ll conn termination - */ - if( reason == LL_CTRL_PKT_INSTANT_PASSED_PEER_TERM - && ((uint16)(connPtr->chanMapUpdateEvent - connPtr->currentEvent) >= LL_MAX_UPDATE_COUNT_RANGE ) - &&((!osal_memcmp(connPtr->chanMap,connPtr->chanMapUpdate.chanMap,5)))) - { - llProcessChanMap(connPtr, connPtr->chanMapUpdate.chanMap); - } - else - { - llConnTerminate0(connPtr,reason); - } -} - -/* - fix secAdv evt rfphyPkt error issue -*/ -//extern uint8 llSetupSecAdvEvt0( void ); -uint8 llSetupSecAdvEvt1( void ) -{ - uint8 ret = FALSE; - - if (llState == LL_STATE_IDLE) - { - if (adv_param.advEvtType == LL_ADV_CONNECTABLE_UNDIRECTED_EVT) - llState = LL_STATE_ADV_UNDIRECTED; - else if (adv_param.advEvtType == LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) - llState = LL_STATE_ADV_NONCONN; - else if (adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT) - llState = LL_STATE_ADV_SCAN; - - llSetupAdv(); - llSecondaryState = LL_SEC_STATE_IDLE; - return TRUE; - } - else - { - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - g_rfPhyPktFmt = LE_1M_PHY; - //support rf phy change - rf_phy_change_cfg0(g_rfPhyPktFmt); - - if (adv_param.advEvtType == LL_ADV_CONNECTABLE_UNDIRECTED_EVT) - ret = llSetupSecConnectableAdvEvt(); - else if (adv_param.advEvtType == LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) - ret = llSetupSecNonConnectableAdvEvt(); - else if (adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT) - ret = llSetupSecScannableAdvEvt(); - else - return FALSE; // other type adv should not here - - g_rfPhyPktFmt = connPtr->llRfPhyPktFmt; - } - - return ret; -} - -//fix sec_scan rfphy issue -void llSetupSecScan1( uint8 chan ) -{ - uint32 scanTime; - // Hold off interrupts. - HAL_ENTER_CRITICAL_SECTION( ); - scanTime = scanInfo.scanWindow * 625; - -// if(llWaitingIrq) -// { -// LOG("==== error, mode: %d\n", scanInfo.scanMode); -// } - - if (llState == LL_STATE_IDLE) - { - llState = LL_STATE_SCAN; - llSecondaryState = LL_SEC_STATE_IDLE; - } - else - { - // calculate scan time - scanTime = llCalcMaxScanTime(); - - if (scanTime) // trigger scan - { - llSecondaryState = LL_SEC_STATE_SCAN; - } - else // no enough time to scan, pending - { - llSecondaryState = LL_SEC_STATE_SCAN_PENDING; - g_pmCounters.ll_conn_scan_pending_cnt ++; - HAL_EXIT_CRITICAL_SECTION( ); - return; - } - } - - if (scanTime > scanInfo.scanWindow * 625) - scanTime = scanInfo.scanWindow * 625; - - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - g_rfPhyPktFmt = LE_1M_PHY; - //support rf phy change - rf_phy_change_cfg0(g_rfPhyPktFmt); - // reset all FIFOs; all data is forfeit - ll_hw_rst_tfifo(); - ll_hw_rst_rfifo(); - set_crc_seed(ADV_CRC_INIT_VALUE); // crc seed for adv is same for all channels - set_access_address(ADV_SYNCH_WORD); - set_channel(chan); - set_whiten_seed(chan); - set_max_length(0xff); - ll_hw_set_rx_timeout(scanTime); // maximum scan time, note that actual scan time may exceed the limit if timer expiry when LL engine receiving a report - ll_hw_set_srx(); - ll_hw_ign_rfifo(LL_HW_IGN_CRC|LL_HW_IGN_EMP); - ll_hw_go(); - llScanT1 = read_current_fine_time(); - g_rfPhyPktFmt = connPtr->llRfPhyPktFmt; - llWaitingIrq = TRUE; - HAL_EXIT_CRITICAL_SECTION(); -// uint32 remainTime = read_LL_remainder_time(); -// LOG("<%d %d>", scanTime, remainTime); - return; -} - -extern int32 connUpdateTimer; -/******************************************************************************* - GLOBAL VARIABLES -*/ - -extern perStatsByChan_t* p_perStatsByChan; -extern uint8 g_conn_taskID; -extern uint16 g_conn_taskEvent; - - -/******************************************************************************* - Prototypes -*/ -extern uint8 llProcessMasterControlProcedures( llConnState_t* connPtr ); -extern uint8 llSetupNextMasterEvent( void ); -/******************************************************************************* - @fn llMasterEvt_TaskEndOk - - @brief This function is used to handle the PHY task done end cause - TASK_ENDOK that can result from one of three causes. First, a - a packet was successfully received with MD=0 (i.e. no more Slave - data) after having transmitted a packet with MD=0. Second, a - received packet did not fit in the RX FIFO after transmitting - a packet with MD=0. Third, a packet was received from the Slave - while BLE_L_CONF.ENDC is true or after Timer 2 Event 2 occurs. - - Note: The TASK_ENDOK end cause will also handle the TASK_NOSYNC, - TASK_RXERR, and TASK_MAXNACK end causes as well. - - input parameters - - @param None. - - output parameters - - @param None. - - @return None. -*/ -void llMasterEvt_TaskEndOk1( void ) -{ - llConnState_t* connPtr; - uint16 numPkts; - int i; - uint32_t T2, schedule_time; - // get connection information - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - // advance the connection event count - connPtr->currentEvent = connPtr->nextEvent; - // get the total number of received packets - // Note: Since Auto-Flush is enabled, numRxFifoFull is incremented instead of - // numRxOk when there's no room in the FIFO. When Auto-Flush is - // disabled and there's no room in the FIFO, only numRxFifoFull is - // incremented for any kind of received packet. - numPkts = ( rfCounters.numRxOk + - rfCounters.numRxNotOk + - rfCounters.numRxEmpty + - rfCounters.numRxIgnored + - rfCounters.numRxFifoFull ); - // collect packet error information - connPtr->perInfo.numPkts += numPkts; - connPtr->perInfo.numCrcErr += rfCounters.numRxNotOk; - // - connPtr->perInfo.numEvents++; - -// // check if PER by Channel is enabled -// if ( connPtr->perInfoByChan != NULL ) -// { -// connPtr->perInfoByChan->numPkts[ PHY_GET_DATA_CHAN() ] += numPkts; -// connPtr->perInfoByChan->numCrcErr[ PHY_GET_DATA_CHAN() ] += rfCounters.numRxNotOk; -// } - - // check if any data has been received - // Note: numRxOk includes numRxCtrl - // Note: numRxNotOk removed as 4.5.2 of spec says the timer is reset upon - // receipt of a "valid packet", which is taken to mean no CRC error. - if ( rfCounters.numRxOk || rfCounters.numRxIgnored || - rfCounters.numRxEmpty || rfCounters.numRxFifoFull - || connPtr->rx_crcok != 0) // ever Rx CRC OK packet - { - // yes, so update the supervision expiration count - connPtr->expirationEvent = connPtr->currentEvent + connPtr->expirationValue; - // clear flag that indicates we received first packet - // Note: The first packet only really needs to be signalled when a new - // connection is formed. However, there's no harm in resetting it - // every time in order to simplify the control logic. - // Note: True-Low logic is used here to be consistent with nR's language. - connPtr->firstPacket = 0; - - //20181206 ZQ add phy change nofity - //receiver ack notifty the host - if(connPtr->llPhyModeCtrl.isChanged==TRUE) - { - connPtr->llPhyModeCtrl.isChanged = FALSE; - llPhyModeCtrlUpdateNotify(connPtr,LL_STATUS_SUCCESS); - } - } - else // no data received, or packet received with CRC error - { - // check if we received any packets with a CRC error - if ( rfCounters.numRxNotOk ) - { - // clear flag that indicates we received first packet - // Note: The first packet only really needs to be signalled when a new - // connection is formed. However, there's no harm in resetting it - // every time in order to simplify the control logic. - // Note: True-Low logic is used here to be consistent with nR's language. - connPtr->firstPacket = 0; - } - else // no packet was received - { - // collect packet error information, TI use HCI ext to get this information. No used by PHY+ now - connPtr->perInfo.numMissedEvts++; - } - - // check if we have a Supervision Timeout - if ( connPtr->expirationEvent == connPtr->currentEvent ) // 20201011�� should be "==" - { - // check if the connection has already been established - if ( connPtr->firstPacket == 0 ) - { - // yes, so terminate with LSTO - llConnTerminate( connPtr, LL_SUPERVISION_TIMEOUT_TERM ); - } - else // no, so this is a failure to establish the connection - { - // so terminate immediately with failure to establish connection - llConnTerminate( connPtr, LL_CONN_ESTABLISHMENT_FAILED_TERM ); - } - -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); // link is terminated, update scheduler info -//#endif - return; - } - } - - /* - ** Process RX Data Packets - */ - // check if there is any data in the Rx FIFO - uint8_t buffer_size; - buffer_size = getRxBufferSize(connPtr); - - for ( i = 0; i < buffer_size; i ++) // note: i < getRxBufferSize() will fail the loop - { - // there is, so process it; check if data was processed - if ( llProcessRxData() == FALSE ) - { - // it wasn't, so we're done -// ll_scheduler(LL_INVALID_TIME); - break; - } - } - - // check if this connection was terminated - if ( !connPtr->active ) - { -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); -//#endif - return; - } - - /* - ** Check Control Procedure Processing - */ - if ( llProcessMasterControlProcedures( connPtr ) == LL_CTRL_PROC_STATUS_TERMINATE ) - { -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); // link is termainte, update schedle info -//#endif - return; - } - else if(connPtr->ctrlDataIsPending == 1) - { - uint8 pktLenctrl; - uint8* pBufctrl = connPtr->ctrlData.data; - pktLenctrl = LL_REJECT_EXT_IND_PAYLOAD_LEN; - - if((connPtr->ctrlData .header == (pktLenctrl << 8 | LL_DATA_PDU_HDR_LLID_CONTROL_PKT))&&(*pBufctrl == LL_CTRL_REJECT_EXT_IND)) - { - uint8 ctrlerrorcode = *(pBufctrl + 1); - *(pBufctrl + 1) = connPtr->rejectOpCode; - *(pBufctrl + 2) = ctrlerrorcode; - } - } - - /* - ** Process TX Data Packets - */ - // copy any pending data to the TX FIFO - llProcessTxData( connPtr, LL_TX_DATA_CONTEXT_POST_PROCESSING ); - - // if any fragment l2cap pkt, copy to TX FIFO - //l2capPocessFragmentTxData((uint16)connPtr->connId); - - /* - ** Setup Next Slave Event Timing - */ - - // update next event, calculate time to next event, calculate timer drift, - // update anchor points, setup NR T2E1 and T2E2 events - if ( llSetupNextMasterEvent() == LL_SETUP_NEXT_LINK_STATUS_TERMINATE ) // PHY+ always return success here - { - // this connection is terminated, so nothing to schedule -//#ifdef MULTI_ROLE - ll_scheduler(LL_INVALID_TIME); -//#endif - return; - } - - /* - ** Schedule Next Task - */ -//#ifdef MULTI_ROLE -// schedule_time = ll_get_next_timer(g_ll_conn_ctx.currentConn); - schedule_time = (connPtr->curParam.connInterval + connUpdateTimer) * 625; - T2 = read_current_fine_time(); - // TODO: don't know the cause, here need add 32us to gain accurate timing - //2020.11.11,Jie,master conInterval-5us - ll_scheduler(schedule_time - 10 - LL_TIME_DELTA(g_ll_conn_ctx.timerExpiryTick, T2) ); // 10us: rough delay from timer expire to timer ISR -//#endif - return; -} - -uint8_t ll_hw_read_rfifo1(uint8_t* rxPkt, uint16_t* pktLen, uint32_t* pktFoot0, uint32_t* pktFoot1) -{ - int rdPtr, wrPtr, rdDepth, blen, wlen; - uint32_t* p_rxPkt = (uint32_t*)rxPkt; - ll_hw_get_rfifo_info(&rdPtr, &wrPtr, &rdDepth); - - if(rdDepth > 0) - { - *p_rxPkt++ = *(volatile uint32_t*)(LL_HW_RFIFO); - uint8_t sp =0;//BLE_HEAD_WITH_CTE(rxPkt[0]); - blen = rxPkt[1]+sp; //get the byte length for header - wlen = 1+ ( (blen+2+3-1) >>2 ); //+2 for Header, +3 for crc - - //compared the wlen and HW_WTR - //20190115 ZQ - if( (wlen+2) >rdDepth) - { - g_pmCounters.ll_rfifo_read_err++; - rxPkt[0] = 0; - *pktFoot0 = 0; - *pktFoot1 = 0; - *pktLen = 0; - return 0; - } - - while(p_rxPkt < (uint32_t*)rxPkt + wlen) - { - *p_rxPkt++ = *(volatile uint32_t*)(LL_HW_RFIFO); - } - - *pktFoot0 = *(volatile uint32_t*)(LL_HW_RFIFO); - *pktFoot1 = *(volatile uint32_t*)(LL_HW_RFIFO); - *pktLen = blen + 2; - return wlen; - } - else - { - rxPkt[0] = 0; - *pktFoot0 = 0; - *pktFoot1 = 0; - *pktLen = 0; - return 0; - } -} - -/******************************************************************************* - @fn ll_processBasicIRQ_SRX - - @brief Interrupt Request Handler for Link Layer - - input parameters - - @param None. - - output parameters - - @param None. - - @return None -*/ -uint8 ll_processBasicIRQ_SRX0(uint32_t irq_status) -{ - uint8 mode; - uint32_t T2, delay; - llConnState_t* connPtr; - connPtr = &conn_param[0]; // To update - HAL_ENTER_CRITICAL_SECTION(); - mode = ll_hw_get_tr_mode(); - - if (mode == LL_HW_MODE_SRX - && (llState == LL_STATE_SCAN || llState == LL_STATE_INIT)) - { - ll_debug_output(DEBUG_LL_HW_SRX); - uint8_t rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; - uint8_t bWlRlCheckOk = TRUE; - uint8_t* peerAddr; - - // ============= scan case - if (llState == LL_STATE_SCAN) - { - uint8 bSendingScanReq = FALSE; - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth()>0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len != 0 - && ((pdu_type == ADV_IND) - || (pdu_type == ADV_NONCONN_IND) - || (pdu_type == ADV_SCAN_IND) - || (pdu_type == ADV_DIRECT_IND))) - { - uint8 addrType; // peer address type - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - peerAddr = &g_rx_adv_buf.data[0]; // AdvA - addrType = txAdd; - - // Resolving list checking - // case 1: receive ScanA using RPA - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = TRUE; - - if (g_llRlEnable == TRUE) - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - // refer to HCI LE Advertising Report Event, RPA address type should be - // 0x02: Public Identity Address (Corresponds to Resolved Private Address) - // 0x03: Random (static) Identity Address (Corresponds to Resolved Private Address) - addrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bWlRlCheckOk = TRUE; - } - else - { - bWlRlCheckOk = FALSE; - } - } - } - else // case 2: receive ScanA using device ID, or scan device not using RPA - { - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if ( g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5]) - { - // the device ID in the RPA list - if (g_llResolvinglist[i].privacyMode == DEVICE_PRIVACY_MODE || - ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - rpaListIndex = i; - else - bWlRlCheckOk = FALSE; // the device in the RPA list but not using RPA, reject it - - break; - } - } - } - - // check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (scanInfo.wlPolicy == LL_SCAN_WL_POLICY_USE_WHITE_LIST) - && (bWlRlCheckOk == TRUE)) - { - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - /* 20201218 Jie,direct adv report when no whitelist filter - else if(pdu_type == ADV_DIRECT_IND) // direct adv only report addr & addr type match the whitelist - bWlRlCheckOk = FALSE; - */ - // if valid, trigger osal event to report adv - if (bWlRlCheckOk == TRUE) - { - uint8 advEventType; - int8 rssi; - llCurrentScanChn = scanInfo.nextScanChan; - - // active scan scenario, send scan req - if (scanInfo.scanType == LL_SCAN_ACTIVE - && (pdu_type== ADV_IND - || pdu_type == ADV_SCAN_IND )) - { - // back off process - scanInfo.currentBackoff = (scanInfo.currentBackoff > 0) ? (scanInfo.currentBackoff - 1) : 0; - - if (scanInfo.currentBackoff == 0) // back off value = 0, send scan req - { - g_tx_adv_buf.txheader = 0xC03; - //ZQ 20181012: add AdvFilterCB - uint8_t retAdvFilter = 1; - - if(LL_PLUS_AdvDataFilterCBack) - { - //!!!CATION!!! - //timing critical - //txbuf will be changed - retAdvFilter = LL_PLUS_AdvDataFilterCBack(); - } - - if(retAdvFilter) - { - g_same_rf_channel_flag = TRUE; - ll_hw_set_tx_rx_interval(10); - ll_hw_set_rx_timeout(158); - set_max_length(0xFF); // add 2020-03-10 - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - delay = 118 - delay - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY]; - ll_hw_set_trx(); // set LL HW as single TRx mode - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - ll_hw_go(); - g_pmCounters.ll_send_scan_req_cnt++; - llWaitingIrq = TRUE; - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - ll_hw_ign_rfifo(LL_HW_IGN_CRC | LL_HW_IGN_EMP); - - // construct SCAN REQ packet - //g_tx_adv_buf.txheader = 0xCC3; - -// //20181012 ZQ: change the txheader according to the adtype -// g_tx_adv_buf.txheader |=(((g_rx_adv_buf.rxheader&0x40)<<1) -// | (scanInfo.ownAddrType<< TX_ADD_SHIFT & TX_ADD_MASK)); - - // fill scanA, using RPA or device ID address // TODO: move below code before ll_hw_go? - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM && - !ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk) - && (scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC - || scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) - { - // for resolving private address case, calculate the scanA with Local IRK - ll_CalcRandomAddr(g_llResolvinglist[rpaListIndex].localIrk, &g_tx_adv_buf.data[0]); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - } - else - { - //2020.10.26 Jie,TX_ADD update - if (scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC || scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC) - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownPublicAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_PUBLIC, TX_ADD_SHIFT, TX_ADD_MASK); - } - else - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownRandomAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - } - } - - g_tx_adv_buf.txheader |= (txAdd << RX_ADD_SHIFT & RX_ADD_MASK); - // AdvA, for SCAN REQ, it should identical to the ADV_IND/ADV_SCAN_IND - g_tx_adv_buf.data[6] = g_rx_adv_buf.data[0]; - g_tx_adv_buf.data[7] = g_rx_adv_buf.data[1]; - g_tx_adv_buf.data[8] = g_rx_adv_buf.data[2]; - g_tx_adv_buf.data[9] = g_rx_adv_buf.data[3]; - g_tx_adv_buf.data[10] = g_rx_adv_buf.data[4]; - g_tx_adv_buf.data[11] = g_rx_adv_buf.data[5]; - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(g_tx_adv_buf.txheader), - ((g_tx_adv_buf.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - bSendingScanReq = TRUE; - g_same_rf_channel_flag = FALSE; - } - } - } - - // convert pdu type to GAP enum - switch (pdu_type) - { - case ADV_IND: - advEventType = LL_ADV_RPT_ADV_IND; - break; - - case ADV_SCAN_IND: - advEventType = LL_ADV_RPT_ADV_SCANNABLE_IND; - break; - - case ADV_DIRECT_IND: - advEventType = LL_ADV_RPT_ADV_DIRECT_IND; - break; - - case ADV_NONCONN_IND: - advEventType = LL_ADV_RPT_ADV_NONCONN_IND; - break; - - case ADV_SCAN_RSP: - advEventType = LL_ADV_RPT_INVALID; - break; - - default: - advEventType = LL_ADV_RPT_ADV_IND; - break; - } - - rssi = -(pktFoot1 >> 24); - // below function cost 51us/66us(measure with GPIO) - LL_AdvReportCback( advEventType, // event type - addrType, // Adv address type (TxAdd) - &peerAddr[0], // Adv address (AdvA) - pktLen - 8, // length of rest of the payload, 2 - header, 6 - advA - &g_rx_adv_buf.data[6], // rest of payload - rssi ); // RSSI - g_pmCounters.ll_recv_adv_pkt_cnt ++; - } - } - else - { - // invalid ADV PDU type -// llSetupScan(); - } - } - - // if not waiting for scan rsp, schedule next scan - if (!bSendingScanReq) - { - // not sending SCAN REQ, update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= scanInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(scanInfo.nextScanChan); - - // schedule next scan event - if (scanInfo.scanWindow == scanInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - LL_evt_schedule(); - else -// set_timer4((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - ll_schedule_next_event((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - - // reset scan total time - llScanTime = 0; - } - else - { -// AT_LOG("%03x %x %d %d %d %d\n",irq_status,*(volatile uint32_t *)(0x40031054),ll_hw_get_anchor(), -// g_rfifo_rst_cnt,(uint32_t)ISR_entry_time,read_current_fine_time()); - llSetupScan(scanInfo.nextScanChan); - } - } - } - // =========== initiator case - else if (llState == LL_STATE_INIT) - { - uint8 bConnecting = FALSE; - uint8 bMatchAdv = FALSE; // RPA checking OK in previous adv event, and new adv event identical to the old one - connPtr = &conn_param[initInfo.connId]; // connId is allocated when create conn - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth() > 0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len != 0 - && ((pdu_type == ADV_IND) || pdu_type == ADV_DIRECT_IND)) - { - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - uint8_t chSel = (g_rx_adv_buf.rxheader & CHSEL_MASK) >> CHSEL_SHIFT; - rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; - peerAddr = &g_rx_adv_buf.data[0]; // AdvA - g_currentPeerAddrType = txAdd; - - // ================= Resolving list checking - // case 1: receive InitA using RPA - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - ((g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR)) - { - bWlRlCheckOk = TRUE; - - if (g_llRlEnable == TRUE) - { - // if the RPA checking is done in previous scan, compare - if (isPeerRpaStore == TRUE && - currentPeerRpa[0] == g_rx_adv_buf.data[0] - && currentPeerRpa[1] == g_rx_adv_buf.data[1] - && currentPeerRpa[2] == g_rx_adv_buf.data[2] - && currentPeerRpa[3] == g_rx_adv_buf.data[3] - && currentPeerRpa[4] == g_rx_adv_buf.data[4] - && currentPeerRpa[5] == g_rx_adv_buf.data[5]) - { - rpaListIndex = storeRpaListIndex; - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bWlRlCheckOk = TRUE; - bMatchAdv = TRUE; - } - else // resolve the address - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); // spend 30us(48MHz) when the 1st item match - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bWlRlCheckOk = TRUE; - } - else - { - bWlRlCheckOk = FALSE; - } - } - } - } - // case 2: receive InitA using device ID, or init device not using RPA - else - { - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if ( g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5]) - { - // the device ID in the RPA list - if (g_llResolvinglist[i].privacyMode == NETWORK_PRIVACY_MODE && - !ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - bWlRlCheckOk = FALSE; - else - rpaListIndex = i; - } - } - } - - // ====== for direct adv, also check initA == own addr - if (pdu_type == ADV_DIRECT_IND && bWlRlCheckOk == TRUE && bMatchAdv != TRUE) - { - //20201228,Jie,add RXADD check for direct IND - uint8_t rxAdd = (g_rx_adv_buf.rxheader & RX_ADD_MASK) >> RX_ADD_SHIFT; - - // initA is resolvable address case - if (rxAdd == LL_DEV_ADDR_TYPE_RANDOM &&((g_rx_adv_buf.data[11] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR)) - { - // should not use RPA case - if (initInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_PUBLIC && initInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_RANDOM) - bWlRlCheckOk = FALSE; - - if (rpaListIndex >= LL_RESOLVINGLIST_ENTRY_NUM - || (ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk)) // all-0 local IRK - || (ll_ResolveRandomAddrs(g_llResolvinglist[rpaListIndex].localIrk, &g_rx_adv_buf.data[6]) != SUCCESS)) // resolve failed - bWlRlCheckOk = FALSE; - } - else - { - uint8* localAddr; - - // should not use device ID case - if ((initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC || initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM ) - && (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM - && !ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk))) - { - bWlRlCheckOk = FALSE; - } - - if (rxAdd == LL_DEV_ADDR_TYPE_RANDOM) - localAddr = ownRandomAddr; - else - localAddr = ownPublicAddr; - - if (g_rx_adv_buf.data[6] != localAddr[0] - || g_rx_adv_buf.data[7] != localAddr[1] - || g_rx_adv_buf.data[8] != localAddr[2] - || g_rx_adv_buf.data[9] != localAddr[3] - || g_rx_adv_buf.data[10] != localAddr[4] - || g_rx_adv_buf.data[11] != localAddr[5]) - { - bWlRlCheckOk = FALSE; - } - } - } - - // initiator, 2 types of filter process: 1. connect to peer address set by host 2. connect to address in whitelist only - // 1. connect to peer address set by host - if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_PEER_ADDR - && bWlRlCheckOk == TRUE) - { - if (peerAddr[0] != peerInfo.peerAddr[0] - || peerAddr[1] != peerInfo.peerAddr[1] - || peerAddr[2] != peerInfo.peerAddr[2] - || peerAddr[3] != peerInfo.peerAddr[3] - || peerAddr[4] != peerInfo.peerAddr[4] - || peerAddr[5] != peerInfo.peerAddr[5]) - { - // not match, not init connect - bWlRlCheckOk = FALSE; - } - } - // 2. connect to address in whitelist only - else if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_WHITE_LIST && - bWlRlCheckOk == TRUE) - { - // if advA in whitelist list, connect - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - - //2020.10.26,Jie,update peer addr - if (bWlRlCheckOk == TRUE) - { - peerInfo.peerAddrType = txAdd; - peerInfo.peerAddr[0] = peerAddr[0]; - peerInfo.peerAddr[1] = peerAddr[1]; - peerInfo.peerAddr[2] = peerAddr[2]; - peerInfo.peerAddr[3] = peerAddr[3]; - peerInfo.peerAddr[4] = peerAddr[4]; - peerInfo.peerAddr[5] = peerAddr[5]; - } - } - - if (bWlRlCheckOk == TRUE) - { - g_same_rf_channel_flag = TRUE; - - // channel selection algorithm decision - if ((pGlobal_config[LL_SWITCH] & CONN_CSA2_ALLOW) - && chSel == LL_CHN_SEL_ALGORITHM_2) - { - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_2; - SET_BITS(g_tx_adv_buf.txheader, LL_CHN_SEL_ALGORITHM_2, CHSEL_SHIFT, CHSEL_MASK); - } - else - { - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_1; - SET_BITS(g_tx_adv_buf.txheader, LL_CHN_SEL_ALGORITHM_1, CHSEL_SHIFT, CHSEL_MASK); - } - - // calculate initA if using RPA list, otherwise copy the address stored in initInfo - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM && - !ll_isIrkAllZero(g_llResolvinglist[rpaListIndex].localIrk) && - (initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC || initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) - { - // for resolving private address case, calculate the scanA with Local IRK - ll_CalcRandomAddr(g_llResolvinglist[rpaListIndex].localIrk, &g_tx_adv_buf.data[0]); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); -// osal_memcpy( &g_currentLocalRpa[0], &g_tx_adv_buf.data[0], 6); - g_currentLocalAddrType = LL_DEV_ADDR_TYPE_RPA_RANDOM; - } - else - { - if (initInfo.ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC || initInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC) - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownPublicAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_PUBLIC, TX_ADD_SHIFT, TX_ADD_MASK); - } - else - { - osal_memcpy((uint8*)&g_tx_adv_buf.data[0], &ownRandomAddr[0], 6); - SET_BITS(g_tx_adv_buf.txheader, LL_DEV_ADDR_TYPE_RANDOM, TX_ADD_SHIFT, TX_ADD_MASK); - } - - g_currentLocalAddrType = LL_DEV_ADDR_TYPE_RANDOM; // not accute local type, for branch selection in enh conn complete event - } - - // send conn req - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - - if (delay > 118 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] - pGlobal_config[LL_HW_PLL_DELAY]) // not enough time - { - // not enough time to send conn req, store the RPA - isPeerRpaStore = TRUE; - storeRpaListIndex = rpaListIndex; - osal_memcpy(¤tPeerRpa[0], &g_rx_adv_buf.data[0], 6); -// LOG("store %d\n", storeRpaListIndex); - g_same_rf_channel_flag = FALSE; - //LOG("<%d>", delay); - } - else - { - delay = 118 - delay - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY]; - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - // send conn req - ll_hw_set_stx(); // set LL HW as single Tx mode - ll_hw_go(); - llWaitingIrq = TRUE; - // AdvA, offset 6 - osal_memcpy((uint8*)&g_tx_adv_buf.data[6], &g_rx_adv_buf.data[0], 6); - //2020.8.11 Jie:add init req header for RxAdd - SET_BITS(g_tx_adv_buf.txheader, txAdd, RX_ADD_SHIFT, RX_ADD_MASK); - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(g_tx_adv_buf.txheader), - ((g_tx_adv_buf.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - - if (g_currentPeerAddrType >= 0x02) - osal_memcpy(&g_currentPeerRpa[0], &g_rx_adv_buf.data[0], 6); - - if (g_currentLocalAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM) - osal_memcpy( &g_currentLocalRpa[0], &g_tx_adv_buf.data[0], 6); - - move_to_master_function(); - isPeerRpaStore = FALSE; - bConnecting = TRUE; - g_same_rf_channel_flag = FALSE; - } - } - } - else if (packet_len != 0 - && (pdu_type == ADV_DIRECT_IND)) // TODO: add process of direct ADV - { - } - } - - // scan again if not start connect - if (!bConnecting) // if not waiting for scan rsp, schedule next scan - { - if (initInfo.scanMode == LL_SCAN_STOP) - { - // scan has been stopped - llState = LL_STATE_IDLE; // for single connection case, set the LL state idle - // release the associated allocated connection - llReleaseConnId(connPtr); // new for multi-connection - g_ll_conn_ctx.numLLMasterConns --; - (void)osal_set_event( LL_TaskID, LL_EVT_MASTER_CONN_CANCELLED ); // inform high layer - } - else - { - // not sending SCAN REQ, update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= initInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(initInfo.nextScanChan); - - // schedule next scan event - if (initInfo.scanWindow == initInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - LL_evt_schedule(); - else -// set_timer4((initInfo.scanInterval - initInfo.scanWindow) * 625); - ll_schedule_next_event((initInfo.scanInterval - initInfo.scanWindow) * 625); - - // reset scan total time - llScanTime = 0; - } - else - llSetupScan(initInfo.nextScanChan); - } - } - } - } - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 llSetupStartEncRsp( llConnState_t* connPtr ) -{ - uint8 pktLen; - uint8* pBuf = connPtr->ctrlData.data; - // Note: No need to check if there's enough room in the TX FIFO since it was - // forced to empty prior to beginning encryption control procedure. - // write control type as payload - *pBuf = LL_CTRL_START_ENC_RSP; - // encrypt PDU with authentication check - LL_ENC_Encrypt( connPtr, - LL_DATA_PDU_HDR_LLID_CONTROL_PKT, - LL_START_ENC_RSP_PAYLOAD_LEN, - pBuf ); // input no-encrypt data pBuf, output in the same buffer - pktLen = LL_START_ENC_RSP_PAYLOAD_LEN + LL_ENC_MIC_LEN; - connPtr->ctrlDataIsPending = 1; - connPtr->ctrlData .header = pktLen << 8 | LL_DATA_PDU_HDR_LLID_CONTROL_PKT; - - // control procedure timeout value only needed for Master after Start Enc Response -// if ( llState == LL_STATE_CONN_MASTER ) - if( connPtr->llTbd1 != LL_LINK_CONNECT_COMPLETE_MASTER ) - { - // set the control packet timeout for 40s relative to our present time - // Note: This is done in terms of connection events. - // Note: Core Spec V4.0 now indicates that each LL control PDU that is queued - // for transmission resets the procedure response timeout timer. - connPtr->ctrlPktInfo.ctrlTimeout = connPtr->ctrlPktInfo.ctrlTimeoutVal; - } - - return( TRUE ); -} - -uint8 llProcessSlaveControlProcedures1( llConnState_t* connPtr ) -{ - // check if there are any control packets ready for processing - while ( connPtr->ctrlPktInfo.ctrlPktCount > 0 ) - { - // processing based on control packet type at the head of the queue - switch( connPtr->ctrlPktInfo.ctrlPkts[ 0 ] ) - { - case LL_CTRL_TERMINATE_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already place packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // yes, so process the termination - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_HOST_REQUESTED_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // no done yet - { - // check if a termination control procedure timeout has occurred - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // no control procedure timeout yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupTermInd( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - // Note: Unreachable statement generates compiler warning! - //break; - - case LL_CTRL_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // done with this control packet, so remove from the processing queue - // Note: By dequeueing here, it is possible to get another control - // packet at the head of the queue. This is techincally not - // supposed to happen if the spec is followed. - // ALT: COULD MAKE MORE BULLET PROOF. SINCE THE REPLACE ROUTINE - // CAN'T BE USED UNTIL THE LTK IS RECEIVED BY THE HOST, A - // DUMMY CONTROL PACKET THAT SITS AT THE HEAD UNTIL IT IS - // REPLACE COULD BE USED INSTEAD. - //llReplaceCtrlPkt( connPtr, LL_CTRL_DUMMY_PLACE_HOLDER ); - llDequeueCtrlPkt( connPtr ); - // notify the Host with RAND and EDIV after sending the RSP - // Note: Need to wait for the Host reply to determine if the LTK - // is available or not. - LL_EncLtkReqCback( connPtr->connId, - connPtr->encInfo.RAND, - connPtr->encInfo.EDIV ); - } - else // not done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupEncRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_START_ENC_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // enable encryption once start encryption request is sent - // Note: We can not receive data once the encryption control - // procedure has begun, so there is no risk of a race - // condition here. - connPtr->encEnabled = TRUE; - // clear packet counters - connPtr->encInfo.txPktCount = 0; - connPtr->encInfo.rxPktCount = 0; - } - - // not done until the LL_CTRL_START_ENC_RSP is received, so check it - // Note: The following code can not be in the previous "if" statement - // since it is possible that numTxCtrl could be true, yet the - // flag startEncRspRcved isn't. Then on the next event, - // numTxCtrl wouldn't be true, and we would never check the - // startEncRspRcved flag again. Since we can't get the - // LL_START_ENC_RSP until we send the LL_CTRL_START_ENC_REQ, - // this isn't an issue. - if ( connPtr->encInfo.startEncRspRcved == TRUE ) - { - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_START_ENC_RSP ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // first, check if the SK has been calculated - if ( connPtr->encInfo.SKValid == TRUE ) - { - // so try to begin the last step of the encryption procedure - if ( llSetupStartEncReq( connPtr ) == TRUE ) - { - // ready the flag that indicates that we've received the response - connPtr->encInfo.startEncRspRcved = FALSE; - // the control packet is now active - connPtr->ctrlPktInfo.ctrlPktActive = TRUE; - } - - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrl. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrl, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - else // SK isn't valid yet, so see if we've received the LTK yet - { - if ( connPtr->encInfo.LTKValid ) - { - // generate the Session Key (i.e. SK = AES128(LTK, SKD)) - LL_ENC_GenerateSK( connPtr->encInfo.LTK, - connPtr->encInfo.SKD, - connPtr->encInfo.SK ); - // indicate the SK is valid, and drop through - connPtr->encInfo.SKValid = TRUE; - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - - break; - - case LL_CTRL_START_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // packet TX'ed, so we are done with the encryption procedure - // re-activate slave latency - connPtr->slaveLatency = connPtr->slaveLatencyValue; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - // set flag to allow outgoing data transmissions - connPtr->txDataEnabled = TRUE; - // okay to receive data again - connPtr->rxDataEnabled = TRUE; - - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED, - LL_ENCRYPTION_ON ); - } - - // clear the restart flag in case of another key change request, - // and all other encryption flags - // Note: But in reality, there isn't a disable encryption in BLE, - // so once encryption is enabled, any call to LL_StartEncrypt - // will result in an encryption key change callback. - connPtr->encInfo.encRestart = FALSE; - connPtr->encInfo.encReqRcved = FALSE; - connPtr->encInfo.pauseEncRspRcved = FALSE; - connPtr->encInfo.startEncRspRcved = FALSE; - } - else // not done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupStartEncRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PAUSE_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // not done until the LL_CTRL_PAUSE_ENC_RSP is received, so check it - if ( connPtr->encInfo.pauseEncRspRcved == TRUE ) - { - // done with this control packet, so remove from the processing - // queue and drop through (so the encrypton response can be - // processed) - // ALT: COULD REPLACE HEAD OF QUEUE WITH DUMMY SO NO OTHER CONTROL - // PROCEDURE CAN INTERLEAVE BEFORE THE ENC_REQ IS RECEIVED. - llDequeueCtrlPkt( connPtr ); - } - else // not received yet, so decrement and check control procedure timeout - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there - // Note: All pending transmissions must also be finished before this - // packet is placed in the TX FIFO. - if ( llSetupPauseEncRsp( connPtr ) == TRUE ) - { - // clear the flag that indicates an Encryption Request has been - // received, which is used by this control procedure to restart the - // control procedure timeout - connPtr->encInfo.pauseEncRspRcved = FALSE; - // disable encryption - // Note: Not really necessary as no data is supposed to be sent - // or received. - connPtr->encEnabled = FALSE; - // the control packet is now active; drop through - connPtr->ctrlPktInfo.ctrlPktActive = TRUE; - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - - break; - - case LL_CTRL_REJECT_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - // Note: The control procedure does not end until the Reject is ACKed. - // However, if the ACK is a data packet, it will be tossed - // unless data is allowed hereafter. So to avoid this, only - // the confirmed transmission of this will be used to qualify - // the related flags, but a new procedure will not be able to - // begin until this procedure completes, per the spec. - if ( rfCounters.numTxCtrl ) - { - // disable encryption - // Note: Never really enabled so this isn't necessary. - connPtr->encEnabled = FALSE; - // set flag to allow outgoing data transmissions - connPtr->txDataEnabled = TRUE; - // okay to receive data again - connPtr->rxDataEnabled = TRUE; - } - - // we have already place packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // done with this control packet, so remove from the processing - // queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not ack'ed yet - { - // check if a control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectInd( connPtr,connPtr->encInfo.encRejectErrCode); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // should be LL_CTRL_SLAVE_FEATURE_REQ -// case LL_CTRL_FEATURE_REQ: // for v4.2, slave may send LL_CTRL_FEATURE_REQ msg. to be test later......... HZF -// // check if the control packet procedure is active -// if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) -// { -// // we have already placed a packet on TX FIFO, so wait now until we -// // get the slave's LL_CTRL_FEATURE_RSP -// if ( connPtr->featureSetInfo.featureRspRcved == TRUE ) -// { -// // notify the Host -// LL_ReadRemoteUsedFeaturesCompleteCback( LL_STATUS_SUCCESS, -// connPtr->connId, -// connPtr->featureSetInfo.featureSet ); - -// // done with this control packet, so remove from the processing queue -// llDequeueCtrlPkt( connPtr ); -// } -// else // no done yet -// { -// // check if a update param req control procedure timeout has occurred -// // Note: No need to cleanup control packet info as we are done. -// if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) -// { -// // indicate a control procedure timeout on this request -// // Note: The parameters are not valid. -// LL_ReadRemoteUsedFeaturesCompleteCback( LL_CTRL_PKT_TIMEOUT_TERM, -// connPtr->connId, -// connPtr->featureSetInfo.featureSet ); -// // we're done waiting, so end it all -// // Note: No need to cleanup control packet info as we are done. -// llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - -// return( LL_CTRL_PROC_STATUS_TERMINATE ); -// } -// else -// { -// // control packet stays at head of queue, so exit here -// return( LL_CTRL_PROC_STATUS_SUCCESS ); -// } -// } -// } -// else // control packet has not been put on the TX FIFO yet -// { -// // so try to put it there; being active depends on a success -// connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetReq( connPtr ); - -// // set flag while we wait for response -// // Note: It is okay to repeatedly set this flag in the event the -// // setup routine hasn't completed yet (e.g. if the TX FIFO -// // has not yet become empty). -// connPtr->featureSetInfo.featureRspRcved = FALSE; - -// // Note: Two cases are possible: -// // a) We successfully placed the packet in the TX FIFO. -// // b) We did not. -// // -// // In case (a), it may be possible that a previously just -// // completed control packet happened to complete based on -// // rfCounters.numTxCtrlAck. Since the current control -// // procedure is now active, it could falsely detect -// // rfCounters.numTxCtrlAck, when in fact this was from the -// // previous control procedure. Consequently, return. -// // -// // In case (b), the control packet stays at the head of the -// // queue, and there's nothing more to do. Consequently, return. -// // -// // So, in either case, return. -// return( LL_CTRL_PROC_STATUS_SUCCESS ); -// } - -// break; - - case LL_CTRL_FEATURE_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // packet TX'ed, so use this flag on the Slave to indicate that - // the feature response procedure has already taken place on this - // connection - // Note: This is being done to support the HCI extension command - // LL_EXT_SetLocalSupportedFeatures so that the user can - // update the local supported features even after a connection - // is formed. This update will be used as long as a feature - // response feature has not been performed by the Master. Once - // performed, the connection feature set is fixed! - connPtr->featureSetInfo.featureRspRcved = TRUE; - // ALT: COULD RE-ACTIVATE SL (IF ENABLED) RIGHT HERE. - connPtr->slaveLatency = connPtr->slaveLatencyValue; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // Version Information Indication - case LL_CTRL_VERSION_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if the peer's version information is valid - if ( connPtr->verExchange.peerInfoValid == TRUE ) - { - // yes, so check if the host has requested this information - if ( connPtr->verExchange.hostRequest == TRUE ) - { - // yes, so provide it - LL_ReadRemoteVersionInfoCback( LL_STATUS_SUCCESS, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - } - - // in any case, dequeue this control procedure - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so complete the callback with error - LL_ReadRemoteVersionInfoCback( LL_CTRL_PKT_TIMEOUT_TERM, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - // and end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // since we are in the process of sending the version indication, - // it is okay to set this flag here even if it is set repeatedly - // in the of llSetupVersionIndReq failures - connPtr->verExchange.verInfoSent = TRUE; - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupVersionIndReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtReq( connPtr ); - connPtr->llPduLen.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isProcessingReq=FALSE; - llPduLengthUpdate((uint16)connPtr->connId); - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PHY_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyReq( connPtr ); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PHY_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPhyModeCtrl.isProcessingReq=FALSE; - connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyRsp( connPtr ); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - osal_memset( &(connPtr->llCTEModeCtrl), 0, sizeof( connPtr->llCTEModeCtrl )); - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTEReq( connPtr ); - connPtr->llCTEModeCtrl.isWatingRsp = TRUE; - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llCTEModeCtrl.isWatingRsp = FALSE; - connPtr->llCTEModeCtrl.isProcessingReq = FALSE; - // remove control packet from processing queue and drop through - // 2020-02-12 comment:after send CONN CTE RSP , then clear txSupp - ll_hw_set_cte_txSupp( CTE_SUPP_NULL); - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTERsp( connPtr ); - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_UNKNOWN_RSP: - - // try to place control packet in the TX FIFO - // Note: Since there are no dependencies for this control packet, we - // do not have to bother with the active flag. - if ( llSetupUnknownRsp( connPtr ) == TRUE ) - { - // all we have to do is put this control packet on the TX FIFO, so - // remove control packet from the processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // Dummy Place Holder - //case LL_CTRL_DUMMY_PLACE_HOLDER: - // // dummy packet stays at head of queue, so exit here - // Note: Unreachable statement generates compiler warning! - //break; - // return( LL_CTRL_PROC_STATUS_SUCCESS ); - - default: - break; - } - } - - return( LL_CTRL_PROC_STATUS_SUCCESS ); -} - -uint8 llProcessMasterControlProcedures1( llConnState_t* connPtr ) -{ - // check if there are any control packets ready for processing - while ( connPtr->ctrlPktInfo.ctrlPktCount > 0 ) - { - // processing based on control packet type at the head of the queue - switch( connPtr->ctrlPktInfo.ctrlPkts[ 0 ] ) - { - case LL_CTRL_TERMINATE_IND: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already place packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - // yes, so process the termination - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_HOST_REQUESTED_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // no done yet - { - // check if a termination control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupTermInd( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - // Note: Unreachable statement generates compiler warning! - //break; - - /* - ** Connection Update Request - */ - case LL_CTRL_CONNECTION_UPDATE_REQ: - -// LOG("CONN UPD"); - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // yes, so adjust all time values to units of 625us - connPtr->paramUpdate.winSize <<= 1; - connPtr->paramUpdate.winOffset <<= 1; - connPtr->paramUpdate.connInterval <<= 1; - connPtr->paramUpdate.connTimeout <<= 4; - // and activate the update - connPtr->pendingParamUpdate = TRUE; - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // Core Spec V4.0 now indicates there is no control procedure - // timeout. However, it still seems prudent to monitor for the - // instant while waiting for the slave's ACK. - if ( connPtr->nextEvent == connPtr->paramUpdateEvent ) - { - // this event is the instant, and the control procedure still - // has not been ACK'ed, we the instant has passed - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_INSTANT_PASSED_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // continue waiting for the slave's ACK - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupUpdateParamReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Channel Map Update Request - */ - case LL_CTRL_CHANNEL_MAP_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - // yes, so activate the update - connPtr->pendingChanUpdate = TRUE; - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // Core Spec V4.0 now indicates there is no control procedure - // timeout. However, it still seems prudent to monitor for the - // instant while waiting for the slave's ACK. - if ( connPtr->nextEvent == connPtr->chanMapUpdateEvent ) - { - // this event is the instant, and the control procedure still - // has not been ACK'ed, we the instant has passed - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_INSTANT_PASSED_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // continue waiting for the slave's ACK - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupUpdateChanReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Request - */ - case LL_CTRL_ENC_REQ: - -// LOG("1 ENC_REQ->"); - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // set flag to discard all incoming data transmissions - connPtr->rxDataEnabled = FALSE; - } - - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_START_ENC_REQ - if ( connPtr->encInfo.startEncReqRcved == TRUE ) - { - // clear packet counters - connPtr->encInfo.txPktCount = 0; - connPtr->encInfo.rxPktCount = 0; - // enable encryption - connPtr->encEnabled = TRUE; - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_START_ENC_RSP ); - } - else if ( connPtr->encInfo.rejectIndRcved == TRUE ) - { - // the slave's Host has failed to provide an LTK, so the encryption - // setup has been rejected; end the start encryption procedure - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - // disable encryption - // Note: Not really necessary as no data is supposed to be sent - // or received. - connPtr->encEnabled = FALSE; - // set flag to allow outgoing transmissions again - connPtr->txDataEnabled = TRUE; - // set flag to allow all incoming data transmissions - connPtr->rxDataEnabled = TRUE; - - // check the rejection indication error code - if ( connPtr->encInfo.encRejectErrCode == LL_STATUS_ERROR_PIN_OR_KEY_MISSING ) - { - // notify the Host - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_REJECTED, - LL_ENCRYPTION_OFF ); - } - else // LL_STATUS_ERROR_UNSUPPORTED_REMOTE_FEATURE - { - // notify the Host - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_UNSUPPORTED_FEATURE, - LL_ENCRYPTION_OFF ); - } - } - else if ( connPtr->termInfo.termIndRcvd == TRUE ) - { - // the slave's Host has failed to provide an LTK, so the encryption - // setup has been rejected; end the start encryption procedure - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupEncReq( connPtr ); - // set a flag to indicate we have received LL_START_ENC_REQ - // Note: The LL_ENC_RSP will be received first, which will result in - // the master calculating its IVm and SKDm, concatenating it - // with the slave's IVs and SKDs, and calculating the SK from - // the LTK and SKD. After that, we will receive the - // LL_START_ENC_REQ from the slave. So, it is okay to stay in - // this control procedure until LL_START_ENC_REQ is received. - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->encInfo.startEncReqRcved = FALSE; - connPtr->encInfo.rejectIndRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Start Response - */ - case LL_CTRL_START_ENC_RSP: - -// LOG("1 START_ENC_RSP->"); - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_START_ENC_RSP - if ( connPtr->encInfo.startEncRspRcved == TRUE ) - { - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - // we're done with encryption procedure, so clear flags - connPtr->encInfo.encReqRcved = FALSE; - connPtr->encInfo.pauseEncRspRcved = FALSE; - connPtr->encInfo.startEncReqRcved = FALSE; - connPtr->encInfo.startEncRspRcved = FALSE; - connPtr->encInfo.rejectIndRcved = FALSE; - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: The llSetupStartEncRsp routine will *not* reset the control - // timeout value since the entire encryption procedure starts - // with the master sending the LL_ENC_REQ, and ends when the - // master receives the LL_START_ENC_RSP from the slave. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupStartEncRsp( connPtr ); - // set a flag to indicate we have received LL_START_ENC_RSP - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->encInfo.startEncRspRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Pause Request - */ - case LL_CTRL_PAUSE_ENC_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_PAUSE_ENC_RSP - if ( connPtr->encInfo.pauseEncRspRcved == TRUE ) - { - // disable encryption - connPtr->encEnabled = FALSE; - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_PAUSE_ENC_RSP ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: The llSetupStartEncRsp routine will *not* reset the control - // timeout value since the entire encryption procedure starts - // with the master sending the LL_ENC_REQ, and ends when the - // master receives the LL_START_ENC_RSP from the slave. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPauseEncReq( connPtr ); - // set a flag to indicate we have received LL_START_ENC_RSP - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->encInfo.pauseEncRspRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Encryption Pause Response - */ - case LL_CTRL_PAUSE_ENC_RSP: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This only means the packet has been transmitted, not that it - // has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // replace control procedure at head of queue to prevent interleaving - llReplaceCtrlPkt( connPtr, LL_CTRL_ENC_REQ ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_CTRL_PKT_TIMEOUT_TERM, - LL_ENCRYPTION_OFF ); - } - - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPauseEncRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Feature Set Request - */ - case LL_CTRL_FEATURE_REQ: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so wait now until we - // get the slave's LL_CTRL_FEATURE_RSP - if ( connPtr->featureSetInfo.featureRspRcved == TRUE ) - { - // notify the Host - LL_ReadRemoteUsedFeaturesCompleteCback( LL_STATUS_SUCCESS, - connPtr->connId, - connPtr->featureSetInfo.featureSet ); - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // indicate a control procedure timeout on this request - // Note: The parameters are not valid. - LL_ReadRemoteUsedFeaturesCompleteCback( LL_CTRL_PKT_TIMEOUT_TERM, - connPtr->connId, - connPtr->featureSetInfo.featureSet ); - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // add by HZF, read device feature set - for (int i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetReq( connPtr ); - // set flag while we wait for response - // Note: It is okay to repeatedly set this flag in the event the - // setup routine hasn't completed yet (e.g. if the TX FIFO - // has not yet become empty). - connPtr->featureSetInfo.featureRspRcved = FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_FEATURE_RSP: // new for BLE4.2, feature req could be init by slave - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // packet TX'ed, so use this flag on the Slave to indicate that - // the feature response procedure has already taken place on this - // connection - // Note: This is being done to support the HCI extension command - // LL_EXT_SetLocalSupportedFeatures so that the user can - // update the local supported features even after a connection - // is formed. This update will be used as long as a feature - // response feature has not been performed by the Master. Once - // performed, the connection feature set is fixed! - connPtr->featureSetInfo.featureRspRcved = TRUE; - // ALT: COULD RE-ACTIVATE SL (IF ENABLED) RIGHT HERE. -// connPtr->slaveLatency = connPtr->slaveLatencyValue; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupFeatureSetRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Vendor Information Exchange (Request or Reply) - */ - case LL_CTRL_VERSION_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if the peer's version information is valid - if ( connPtr->verExchange.peerInfoValid == TRUE ) - { - // yes, so check if the host has requested this information - if ( connPtr->verExchange.hostRequest == TRUE ) - { - // yes, so provide it - LL_ReadRemoteVersionInfoCback( LL_STATUS_SUCCESS, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - } - - // in any case, dequeue this control procedure - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // check if a update param req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so complete the callback with error - LL_ReadRemoteVersionInfoCback( LL_CTRL_PKT_TIMEOUT_TERM, - connPtr->connId, - connPtr->verInfo.verNum, - connPtr->verInfo.comId, - connPtr->verInfo.subverNum ); - // and end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // since we are in the process of sending the version indication, - // it is okay to set this flag here even if it is set repeatedly - // in the of llSetupVersionIndReq failures - connPtr->verExchange.verInfoSent = TRUE; -// // so try to put it there; being active depends on a success -// connPtr->ctrlPktInfo.ctrlPktActive = llSetupPingReq(connPtr);// llSetupVersionIndReq( connPtr ); - connPtr->ctrlPktInfo.ctrlPktActive = llSetupVersionIndReq( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtReq( connPtr ); - connPtr->llPduLen.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_LENGTH_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPduLen.isProcessingReq=FALSE; - llPduLengthUpdate((uint16)connPtr->connId); - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupDataLenghtRsp( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // LL PHY UPDATE REQ - case LL_CTRL_PHY_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llPhyModeCtrl.isWatingRsp=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - // Note: There is no control procedure timeout associated with this - // control packet. - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyReq( connPtr ); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_PHY_UPDATE_IND: - - // check if the control packet procedure is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // we have already placed a packet on TX FIFO, so check if its been ACK'ed - if ( rfCounters.numTxCtrlAck ) - { - //20181206 ZQ phy update no change case - if( connPtr->phyUpdateInfo.m2sPhy== 0 - && connPtr->phyUpdateInfo.s2mPhy== 0) - { - connPtr->phyUpdateInfo.m2sPhy=connPtr->llPhyModeCtrl.local.txPhy; - connPtr->phyUpdateInfo.s2mPhy=connPtr->llPhyModeCtrl.local.rxPhy; - llPhyModeCtrlUpdateNotify(connPtr,LL_STATUS_SUCCESS); - } - else - { - // yes, so activate the update - connPtr->pendingPhyModeUpdate = TRUE; - } - - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - connPtr->llPhyModeCtrl.isProcessingReq=FALSE; - // done with this control packet, so remove from the processing queue - llDequeueCtrlPkt( connPtr ); - } - else // no done yet - { - // Core Spec V4.0 now indicates there is no control procedure - // timeout. However, it still seems prudent to monitor for the - // instant while waiting for the slave's ACK. - if ( connPtr->nextEvent == connPtr->phyModeUpdateEvent ) - { - // this event is the instant, and the control procedure still - // has not been ACK'ed, we the instant has passed - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_INSTANT_PASSED_HOST_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else // continue waiting for the slave's ACK - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - // so try to put it there; being active depends on a success - connPtr->ctrlPktInfo.ctrlPktActive = llSetupPhyUpdateInd( connPtr ); - // Note: Two cases are possible: - // a) We successfully placed the packet in the TX FIFO. - // b) We did not. - // - // In case (a), it may be possible that a previously just - // completed control packet happened to complete based on - // rfCounters.numTxCtrlAck. Since the current control - // procedure is now active, it could falsely detect - // rfCounters.numTxCtrlAck, when in fact this was from the - // previous control procedure. Consequently, return. - // - // In case (b), the control packet stays at the head of the - // queue, and there's nothing more to do. Consequently, return. - // - // So, in either case, return. - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - // REJECT EXT IND --> PHY UPDATE COLLSION - case LL_CTRL_REJECT_EXT_IND: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->isCollision=TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // check if a start enc req control procedure timeout has occurred - // Note: No need to cleanup control packet info as we are done. - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - if(connPtr->llPhyModeCtrl.isWatingRsp==TRUE) - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectExtInd( connPtr,LL_STATUS_ERROR_LL_PROCEDURE_COLLISION); - } - else if(connPtr->pendingChanUpdate==TRUE || - connPtr->pendingParamUpdate==TRUE ) - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectExtInd( connPtr,LL_STATUS_ERROR_DIFF_TRANSACTION_COLLISION); - } - else if( connPtr->llCTEModeCtrl.isWatingRsp == TRUE) - { - // 2020-01-23 add for CTE - connPtr->ctrlPktInfo.ctrlPktActive = llSetupRejectExtInd( connPtr,connPtr->llCTEModeCtrl.errorCode ); - connPtr->llCTEModeCtrl.errorCode = LL_STATUS_SUCCESS; - } - else - { - //should not be here - } - - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_REQ: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - // connPtr->llCTEModeCtrl.isWatingRsp = TRUE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // - if ( --connPtr->ctrlPktInfo.ctrlTimeout == 0 ) - { - osal_memset( &(connPtr->llCTEModeCtrl), 0, sizeof( connPtr->llCTEModeCtrl )); - // we're done waiting, so end it all - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, LL_CTRL_PKT_TIMEOUT_PEER_TERM ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - else - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTEReq( connPtr ); - connPtr->llCTEModeCtrl.isWatingRsp = TRUE; - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - case LL_CTRL_CTE_RSP: - - // check if the control packet procedure is is active - if ( connPtr->ctrlPktInfo.ctrlPktActive == TRUE ) - { - // yes, so check if it has been transmitted yet - // Note: This does not mean this packet has been ACK'ed or NACK'ed. - if ( rfCounters.numTxCtrl ) - { - connPtr->llCTEModeCtrl.isProcessingReq = FALSE; - // remove control packet from processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - } - else // control packet has not been put on the TX FIFO yet - { - connPtr->ctrlPktInfo.ctrlPktActive = llSetupCTERsp( connPtr ); - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Unknown Control Type Response - */ - case LL_CTRL_UNKNOWN_RSP: - - // try to place control packet in the TX FIFO - // Note: Since there are no dependencies for this control packet, we - // do not have to bother with the active flag. - if ( llSetupUnknownRsp( connPtr ) == TRUE ) - { - // all we have to do is put this control packet on the TX FIFO, so - // remove control packet from the processing queue and drop through - llDequeueCtrlPkt( connPtr ); - } - else // not done yet - { - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - } - - break; - - /* - ** Control Internal - Wait for Control ACK - */ - case LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK: - - // check if the control packet has been ACK'ed (i.e. is not pending) - // Note: Normally this routine is used for control procedures where - // control packets are sent by this role. This is a special case - // where a terminate indication was received, but we must as a - // master wait for our ACK to be sent before terminating. - if ( rfCounters.numTxCtrlAck == 1) // ctrl packet has been acked - { - // yes, so terminate - // Note: No need to cleanup control packet info as we are done. - llConnTerminate( connPtr, connPtr->termInfo.reason ); - return( LL_CTRL_PROC_STATUS_TERMINATE ); - } - - // control packet stays at head of queue, so exit here - return( LL_CTRL_PROC_STATUS_SUCCESS ); - - // Note: Unreachable statement generates compiler warning! - //break; - - // Dummy Place Holder - //case LL_CTRL_DUMMY_PLACE_HOLDER: - // // dummy packet stays at head of queue, so exit here - // return( LL_CTRL_PROC_STATUS_SUCCESS ); - // Note: Unreachable statement generates compiler warning! - //break; - default: -#ifdef DEBUG - // fatal error - a unknown control procedure value was used - LL_ASSERT( FALSE ); -#endif // DEBUG - break; - } - } - - return( LL_CTRL_PROC_STATUS_SUCCESS ); -} - -static void llAdjBoffUpperLimitFailure1( void ) -{ - // first, since this was a failure, clear the number of consecutive successes - scanInfo.numSuccess = 0; - - // check if we received two failures in a row - if ( ++scanInfo.numFailure == 2 ) - { - // yes, so double backoff upper limit - scanInfo.scanBackoffUL <<= 1; - - // maximum is 256 - if ( scanInfo.scanBackoffUL > 256 ) - { - scanInfo.scanBackoffUL = 256; - } - - // reset consecutive count - scanInfo.numFailure = 0; - } - - g_pmCounters.ll_tbd_cnt4++; - return; -} - -static void llAdjBoffUpperLimitSuccess1( void ) -{ - // first, since this is a success, clear the number of consecutive failures - scanInfo.numFailure = 0; - - // check if we received two successful in a row - if ( ++scanInfo.numSuccess == 2 ) - { - // yes, so half backoff upper limit - scanInfo.scanBackoffUL >>= 1; - - // however, the minimum is 1 - if ( scanInfo.scanBackoffUL == 0 ) - { - scanInfo.scanBackoffUL = 1; - } - - // reset consecutive count - scanInfo.numSuccess = 0; - } - - return; -} - -static void llGenerateNextBackoffCount1( void ) -{ - // determine the new backoff count constrained by upper limit - // Note: Backoff and Upper Limit can be 1..256. - if ( scanInfo.scanBackoffUL == 1 ) - { - scanInfo.currentBackoff = 1; - } - else // backoff count is a random number from 1..UL - { - scanInfo.currentBackoff = ((uint16)LL_ENC_GeneratePseudoRandNum() % scanInfo.scanBackoffUL) + 1; - } - -// hal_uart_tx("scanBackoffUL = "); -// hal_uart_send_int(scanInfo.scanBackoffUL); -// hal_uart_tx(",currentBackoff = "); -// hal_uart_send_int(scanInfo.currentBackoff); -// hal_uart_tx("\r\n"); - return; -} - -uint8 ll_processBasicIRQ_ScanTRX0(uint32_t irq_status ) -{ - HAL_ENTER_CRITICAL_SECTION(); - ll_debug_output(DEBUG_LL_HW_TRX); - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - // check whether receives SCAN RSP - if (irq_status & LIRQ_COK) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth()>0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len > 0 && pdu_type == ADV_SCAN_RSP) - { - // receives SCAN_RSP - uint8 advEventType; - uint8 rpaListIndex; - uint8* peerAddr; - uint8 addrType = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; - uint8 dataLen = pktLen - 8; - int8 rssi = -(pktFoot1 >> 24); - uint8 bCheckOk = TRUE; - peerAddr = &g_rx_adv_buf.data[0]; - - //=== - // AdvA of SCAN_RSP should also be checked here. Refer to 4.4.3.2 Active Scanning - // After sending a scan request PDU the Link Layer listens for a scan response - //PDU from that advertiser. If the scan response PDU was not received from that - //advertiser, it is considered a failure; otherwise it is considered a success. - - // check AdvA in Scan Rsp is identical to Scan Req - if (g_rx_adv_buf.data[0] != g_tx_adv_buf.data[6] || - g_rx_adv_buf.data[1] != g_tx_adv_buf.data[7] || - g_rx_adv_buf.data[2] != g_tx_adv_buf.data[8] || - g_rx_adv_buf.data[3] != g_tx_adv_buf.data[9] || - g_rx_adv_buf.data[4] != g_tx_adv_buf.data[10] || - g_rx_adv_buf.data[5] != g_tx_adv_buf.data[11] - ) - bCheckOk = FALSE; - - // RPA checking. Note that we do not check whether it is the same RPA index - if (addrType == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - if (g_llRlEnable == TRUE) - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - // refer to HCI LE Advertising Report Event, RPA address type should be - // 0x02: Public Identity Address (Corresponds to Resolved Private Address) - // 0x03: Random (static) Identity Address (Corresponds to Resolved Private Address) - addrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - bCheckOk = TRUE; - } - else - bCheckOk = FALSE; - } - } - - //=== - - if (bCheckOk == TRUE) - { - advEventType = LL_ADV_RPT_SCAN_RSP; - // below function cost 51us/66us(measure with GPIO) - LL_AdvReportCback( advEventType, // event type - addrType, // Adv address type (TxAdd) - peerAddr, // Adv address (AdvA) - dataLen, // length of rest of the payload - &g_rx_adv_buf.data[6], // rest of payload - rssi ); // RSSI - g_pmCounters.ll_recv_scan_rsp_cnt ++; - llAdjBoffUpperLimitSuccess1(); - } - } - else - llAdjBoffUpperLimitFailure1(); - } - else - llAdjBoffUpperLimitFailure1(); - - // update back off value according to new backoff upperLimit - llGenerateNextBackoffCount1(); - - if (llScanTime >= scanInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(scanInfo.nextScanChan); - - // schedule next scan event - if (scanInfo.scanWindow == scanInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - LL_evt_schedule(); - else -// set_timer4((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - ll_schedule_next_event((scanInfo.scanInterval - scanInfo.scanWindow) * 625); - - // reset scan total time - llScanTime = 0; - } - else - llSetupScan(scanInfo.nextScanChan); - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 ll_processBasicIRQ_secondaryAdvTRX0(uint32_t irq_status ) -{ - HAL_ENTER_CRITICAL_SECTION(); - uint32_t T2, delay; -// secondary adv state, connectable adv or scannable adv - uint8_t packet_len, pdu_type, txAdd; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - int calibra_time; // this parameter will be provided by global_config - //int i; - // 2021-02-23 - // bugfix for multi-role secondary advertising - // bug-case : a device in advertising and receive another device's scan request - uint8 adv_sch_flag = TRUE; - // read packet - packet_len = ll_hw_read_rfifo((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - - if(ll_hw_get_rfifo_depth() > 0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & PDU_TYPE_MASK; - txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - - if (packet_len > 0 // any better checking rule for rx anything? - && (irq_status & LIRQ_COK) - && pdu_type == ADV_SCAN_REQ) -// && (llState == LL_STATE_ADV_UNDIRECTED -// || llState == LL_STATE_ADV_SCAN)) - { - // 1. scan req - g_pmCounters.ll_recv_scan_req_cnt ++; - - // check AdvA - if (g_rx_adv_buf.data[6] != adv_param.ownAddr[0] - || g_rx_adv_buf.data[7] != adv_param.ownAddr[1] - || g_rx_adv_buf.data[8] != adv_param.ownAddr[2] - || g_rx_adv_buf.data[9] != adv_param.ownAddr[3] - || g_rx_adv_buf.data[10] != adv_param.ownAddr[4] - || g_rx_adv_buf.data[11] != adv_param.ownAddr[5]) - { - } - else - { -//=== - uint8_t rpaListIndex, bWlRlCheckOk; - uint8_t* peerAddr = &g_rx_adv_buf.data[0]; // ScanA - adv_sch_flag = FALSE; - - // === Resolving list checking - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM - && (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = TRUE; - - // if ScanA is resolvable private address - if (g_llRlEnable == TRUE) - { - bWlRlCheckOk = FALSE; - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - bWlRlCheckOk = TRUE; - } - } - } - else // ScanA is device Identity, if the device ID in the RPA list, check whether RPA should be used - { - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if (g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5] - && g_llResolvinglist[i].peerAddrType == txAdd) - { - if (g_llResolvinglist[i].privacyMode == NETWORK_PRIVACY_MODE && - !ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - bWlRlCheckOk = FALSE; - - break; - } - } - } - - // === check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_SCAN_REQ - || adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_ALL_REQ) - && (bWlRlCheckOk == TRUE)) - { - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - if (bWlRlCheckOk == FALSE) // if not in white list, do nothing - { - g_pmCounters.ll_filter_scan_req_cnt ++; - } - else - { - g_pmCounters.ll_rx_peer_cnt++; - uint8 retScanRspFilter=1; - - if(LL_PLUS_ScanRequestFilterCBack) - { - retScanRspFilter = LL_PLUS_ScanRequestFilterCBack(); - } - - if(retScanRspFilter) - { - // send scan rsp - ll_hw_set_stx(); // set LL HW as single Tx mode - g_same_rf_channel_flag = TRUE; - // calculate the delay - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - calibra_time = pGlobal_config[SCAN_RSP_DELAY]; // consider rx_done to ISR time, SW delay after read_current_fine_time(), func read_current_fine_time() delay ... - delay = 118 - delay - calibra_time; // IFS = 150us, Tx tail -> Rx done time: about 32us - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - ll_hw_go(); - llWaitingIrq = TRUE; - g_same_rf_channel_flag = FALSE; - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(tx_scanRsp_desc.txheader), - ((tx_scanRsp_desc.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - ll_debug_output(DEBUG_LL_HW_SET_STX); - g_pmCounters.ll_send_scan_rsp_cnt ++; - } - } - } - } - else if (pdu_type == ADV_CONN_REQ - && (irq_status & LIRQ_COK) ) -// && (llState == LL_STATE_ADV_UNDIRECTED -// || llState == LL_STATE_ADV_DIRECTED)) - { - uint8_t* peerAddr; - uint8_t bWlRlCheckOk = TRUE; - // 2. connect req - g_pmCounters.ll_recv_conn_req_cnt ++; - - // check AdvA - if (g_rx_adv_buf.data[6] != adv_param.ownAddr[0] - || g_rx_adv_buf.data[7] != adv_param.ownAddr[1] - || g_rx_adv_buf.data[8] != adv_param.ownAddr[2] - || g_rx_adv_buf.data[9] != adv_param.ownAddr[3] - || g_rx_adv_buf.data[10] != adv_param.ownAddr[4] - || g_rx_adv_buf.data[11] != adv_param.ownAddr[5]) - { - // nothing to do - } - else - { - uint8_t rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; - peerAddr = &g_rx_adv_buf.data[0]; // initA - adv_sch_flag = FALSE; - - // ====== check Resolving list - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = TRUE; - - if (g_llRlEnable == TRUE) - { - bWlRlCheckOk = FALSE; - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - // save resolved peer address - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - // if resolved address success, map the peer address type to 0x02 or 0x03 - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - osal_memcpy( &g_currentPeerRpa[0], &g_rx_adv_buf.data[0], 6); // save latest peer RPA - bWlRlCheckOk = TRUE; - } - } - } - else // InitA is device Identity, check whether the device Addr in the RPA list, if it is - { - // in the RPA list and network privacy mode is selected and non all-0 IRK, check failed - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if (g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5] - && g_llResolvinglist[i].peerAddrType == txAdd) - { - if (g_llResolvinglist[i].privacyMode == NETWORK_PRIVACY_MODE && - !ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - bWlRlCheckOk = FALSE; - - break; - } - } - } - - // ====== check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (llState == LL_STATE_ADV_UNDIRECTED) - && (adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_CONNECT_REQ - || adv_param.wlPolicy == LL_ADV_WL_POLICY_WL_ALL_REQ) - && (bWlRlCheckOk == TRUE)) - { - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - // fixed bug 2018-09-25, LL/CON/ADV/BV-04-C, for direct adv, initA should equal peer Addr - if (llState == LL_STATE_ADV_DIRECTED) - { - if (//txAdd != peerInfo.peerAddrType // for (extended) set adv param, peer addr type could only be 0x0 or 0x01 - peerAddr[0] != peerInfo.peerAddr[0] - || peerAddr[1] != peerInfo.peerAddr[1] - || peerAddr[2] != peerInfo.peerAddr[2] - || peerAddr[3] != peerInfo.peerAddr[3] - || peerAddr[4] != peerInfo.peerAddr[4] - || peerAddr[5] != peerInfo.peerAddr[5]) - { - bWlRlCheckOk = FALSE; - } - } - - if (bWlRlCheckOk == FALSE) // if not in white list, do nothing - { - g_pmCounters.ll_filter_conn_req_cnt ++; - } - else - { - // increment statistics counter - g_pmCounters.ll_rx_peer_cnt++; - // bug fixed 2018-01-23, peerAddrType should read TxAdd - peerInfo.peerAddrType = txAdd; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - osal_memcpy(peerInfo.peerAddr, &peerAddr[0], 6); - move_to_slave_function(); // move to slave role for connection state - } - } - } - - //test for fast adv -// else //if(llState == LL_STATE_ADV_UNDIRECTED) - if( adv_sch_flag ) - { - // adv in next channel, or schedule next adv event - uint8 i = 0; - - while (!(adv_param.advChanMap & (1 << i))) i ++; // get the 1st adv channel - - // adv_param.advNextChan stores the next adv channel, when adv the last adv channel, advNextChan should equal 1st adv channel - if (adv_param.advNextChan != (LL_ADV_CHAN_FIRST + i)) // not finish adv the last channel, continue adv - { - llSetupSecAdvEvt(); - } - else - { - if (llSecondaryState == LL_SEC_STATE_IDLE_PENDING) // advertise last channel and transiting to IDLE - llSecondaryState = LL_SEC_STATE_IDLE; - else // otherwise, schedule next adv - osal_start_timerEx(LL_TaskID, LL_EVT_SECONDARY_ADV, (adv_param.advInterval * 5) >> 3); // * 625 / 1000 - } - } - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 ll_processBasicIRQ_secondaryScanSRX0(uint32_t irq_status ) -{ - HAL_ENTER_CRITICAL_SECTION(); - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if (packet_len != 0 - && ((pdu_type == ADV_IND) - || (pdu_type == ADV_NONCONN_IND) - || (pdu_type == ADV_SCAN_IND))) - { - int i = 0; - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - - // check white list - if ((pGlobal_config[LL_SWITCH] & LL_WHITELIST_ALLOW) - && (scanInfo.wlPolicy == LL_SCAN_WL_POLICY_USE_WHITE_LIST)) - { - // check white list - for (i = 0; i < LL_WHITELIST_ENTRY_NUM; i++) - { - if (txAdd != g_llWhitelist[i].peerAddrType - || g_rx_adv_buf.data[0] != g_llWhitelist[i].peerAddr[0] - || g_rx_adv_buf.data[1] != g_llWhitelist[i].peerAddr[1] - || g_rx_adv_buf.data[2] != g_llWhitelist[i].peerAddr[2] - || g_rx_adv_buf.data[3] != g_llWhitelist[i].peerAddr[3] - || g_rx_adv_buf.data[4] != g_llWhitelist[i].peerAddr[4] - || g_rx_adv_buf.data[5] != g_llWhitelist[i].peerAddr[5]) - { - // not match, check next - continue; - } - else - break; - } - } - - // if valid, trigger osal event to report adv - if (i < LL_WHITELIST_ENTRY_NUM) - { - uint8 advEventType; - int8 rssi; - llCurrentScanChn = scanInfo.nextScanChan; - - // no active scan scenario - - // convert pdu type to GAP enum - switch (pdu_type) - { - case ADV_IND: - advEventType = LL_ADV_RPT_ADV_IND; - break; - - case ADV_SCAN_IND: - advEventType = LL_ADV_RPT_ADV_SCANNABLE_IND; - break; - - case ADV_DIRECT_IND: - advEventType = LL_ADV_RPT_ADV_DIRECT_IND; - break; - - case ADV_NONCONN_IND: - advEventType = LL_ADV_RPT_ADV_NONCONN_IND; - break; - - case ADV_SCAN_RSP: - advEventType = LL_ADV_RPT_INVALID; - break; - - default: - advEventType = LL_ADV_RPT_ADV_IND; - break; - } - - rssi = -(pktFoot1 >> 24); - // below function cost 51us/66us(measure with GPIO) - LL_AdvReportCback( advEventType, // event type - txAdd, // Adv address type (TxAdd) - &g_rx_adv_buf.data[0], // Adv address (AdvA) - pktLen - 8, // length of rest of the payload, 2 - header, 6 - advA - &g_rx_adv_buf.data[6], // rest of payload - rssi ); // RSSI - g_pmCounters.ll_recv_adv_pkt_cnt ++; - } - } - } - - // update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= scanInfo.scanWindow * 625) - { - // switch scan channel, set event instead of trigger immediately - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(scanInfo.nextScanChan); - - // schedule next scan event - if (scanInfo.scanWindow == scanInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_SCAN); - else - osal_start_timerEx(LL_TaskID, LL_EVT_SECONDARY_SCAN, ((scanInfo.scanInterval - scanInfo.scanWindow) * 5) >> 3 ); - - // reset scan total time - llScanTime = 0; - } - else if (llSecondaryState == LL_SEC_STATE_SCAN) - llSetupSecScan(scanInfo.nextScanChan); - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -uint8 ll_processBasicIRQ_secondaryInitSRX0(uint32_t irq_status ) -{ - uint32_t T2, delay; - llConnState_t* connPtr; - HAL_ENTER_CRITICAL_SECTION(); - uint8 bConnecting = FALSE; -// hal_gpio_write(GPIO_P18, 0); - connPtr = &conn_param[initInfo.connId]; // connId is allocated when create conn - - // check status - if ((irq_status & LIRQ_RD) && (irq_status & LIRQ_COK)) // bug correct 2018-10-15 - { - // rx done - uint8_t packet_len, pdu_type; - uint16_t pktLen; - uint32_t pktFoot0, pktFoot1; - // read packet - // cost 21-26us(measure with GPIO), depneds on the length of ADV - packet_len = ll_hw_read_rfifo1((uint8_t*)(&(g_rx_adv_buf.rxheader)), - &pktLen, - &pktFoot0, - &pktFoot1); - // check receive pdu type - pdu_type = g_rx_adv_buf.rxheader & 0x0f; - - if(ll_hw_get_rfifo_depth()>0) - { - g_pmCounters.ll_rfifo_read_err++; - packet_len=0; - pktLen=0; - } - - if (packet_len != 0 - && ((pdu_type == ADV_IND))) - { - uint8_t txAdd = (g_rx_adv_buf.rxheader & TX_ADD_MASK) >> TX_ADD_SHIFT; // adv PDU header, bit 6: TxAdd, 0 - public, 1 - random - uint8_t chSel = (g_rx_adv_buf.rxheader & CHSEL_MASK) >> CHSEL_SHIFT; - uint8_t bWlRlCheckOk = TRUE; - uint8_t* peerAddr; - uint8_t rpaListIndex = LL_RESOLVINGLIST_ENTRY_NUM; -//-==== - peerAddr = &g_rx_adv_buf.data[0]; // AdvA - g_currentPeerAddrType = txAdd; - - // Resolving list checking - // case 1: receive InitA using RPA - if (txAdd == LL_DEV_ADDR_TYPE_RANDOM && - (g_rx_adv_buf.data[5] & RANDOM_ADDR_HDR) == PRIVATE_RESOLVE_ADDR_HDR) - { - bWlRlCheckOk = FALSE; - - if (g_llRlEnable == TRUE) - { - rpaListIndex = ll_getRPAListEntry(&g_rx_adv_buf.data[0]); - - if (rpaListIndex < LL_RESOLVINGLIST_ENTRY_NUM) - { - peerAddr = &g_llResolvinglist[rpaListIndex].peerAddr[0]; - g_currentPeerAddrType = g_llResolvinglist[rpaListIndex].peerAddrType + 2; - osal_memcpy(&g_currentPeerRpa[0], &g_rx_adv_buf.data[0], 6); - bWlRlCheckOk = TRUE; - } - } - } - else // case 2: receive InitA using device ID, or init device not using RPA - { - bWlRlCheckOk = TRUE; - - for (int i = 0; i < LL_RESOLVINGLIST_ENTRY_NUM; i++) - { - if ( g_llResolvinglist[i].peerAddr[0] == g_rx_adv_buf.data[0] - && g_llResolvinglist[i].peerAddr[1] == g_rx_adv_buf.data[1] - && g_llResolvinglist[i].peerAddr[2] == g_rx_adv_buf.data[2] - && g_llResolvinglist[i].peerAddr[3] == g_rx_adv_buf.data[3] - && g_llResolvinglist[i].peerAddr[4] == g_rx_adv_buf.data[4] - && g_llResolvinglist[i].peerAddr[5] == g_rx_adv_buf.data[5]) - { - // the device ID in the RPA list - if (g_llResolvinglist[i].privacyMode == DEVICE_PRIVACY_MODE || - ll_isIrkAllZero(g_llResolvinglist[i].peerIrk)) - rpaListIndex = i; - else - bWlRlCheckOk = FALSE; // the device in the RPA list but not using RPA, reject it - - break; - } - } - } - - // initiator, 2 types of filter process: 1. connect to peer address set by host 2. connect to address in whitelist only - // 1. connect to peer address set by host - if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_PEER_ADDR - && bWlRlCheckOk == TRUE) - { - if (//txAdd != peerInfo.peerAddrType - peerAddr[0] != peerInfo.peerAddr[0] - || peerAddr[1] != peerInfo.peerAddr[1] - || peerAddr[2] != peerInfo.peerAddr[2] - || peerAddr[3] != peerInfo.peerAddr[3] - || peerAddr[4] != peerInfo.peerAddr[4] - || peerAddr[5] != peerInfo.peerAddr[5]) - { - // not match, not init connect - bWlRlCheckOk = FALSE; - } - } - // 2. connect to address in whitelist only - else if (initInfo.wlPolicy == LL_INIT_WL_POLICY_USE_WHITE_LIST && - bWlRlCheckOk == TRUE) - { - // if advA in whitelist list, connect - // check white list - bWlRlCheckOk = ll_isAddrInWhiteList(txAdd, peerAddr); - } - - if (bWlRlCheckOk == TRUE) - { - g_same_rf_channel_flag = TRUE; - // calculate connPtr->curParam.winOffset and set tx buffer - uint16 win_offset; - uint32 remainder; - - // calculate windows offset in multiconnection case - if (g_ll_conn_ctx.currentConn != LL_INVALID_CONNECTION_ID) - { -//#ifdef MULTI_ROLE - // allocate time slot for new connection - // calculate delta to current connection - // calculate new win_offset - uint32 temp, temp1, temp2; - int i; - - for (i = 0; i < g_maxConnNum; i++ ) - { - if (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER && conn_param[i].active) - break; - } - - if (i == g_maxConnNum) - { - // case 1: no master connection, schedule new connection after the current slave connection - g_new_master_delta = 12 * 625; // delta time to the current slave event - remainder = read_LL_remainder_time(); - g_new_master_delta += remainder; - remainder = g_new_master_delta - 352; // time of CONN_REQ - remainder = (remainder + (remainder >> 1) + (remainder >> 3) + (remainder >> 7)) >> 10; // rough estimate of (x / 625) = (1/1024 + 1/2048 + 1/8192) - - // winoffset should less then conn interval - if (g_new_master_delta - 2 > (uint32_t)(conn_param[initInfo.connId].curParam.connInterval << 1)) // win_offset should less then conn interval - g_new_master_delta -= conn_param[initInfo.connId].curParam.connInterval << 1; - - win_offset = (remainder - 2) >> 1; - } - else - { - // case 2: master connection exist, select the 1st master connection as anchor master connection - - // calculate the delta to the anchor master connection - if (initInfo.connId > i) - g_new_master_delta = (initInfo.connId - i) * g_ll_conn_ctx.per_slot_time; - else - g_new_master_delta = (conn_param[i].curParam.connInterval << 1) - (i - initInfo.connId) * g_ll_conn_ctx.per_slot_time; - - // schedule the new connection after the anchor master connection - g_new_master_delta = g_new_master_delta * 625 + g_ll_conn_ctx.scheduleInfo[i].remainder; - // elapse time since last schedule - temp1 = g_ll_conn_ctx.current_timer - ((AP_TIM1->CurrentCount) >> 2) + 2; - g_new_master_delta -= temp1; - - if (g_new_master_delta - 1250 > (conn_param[initInfo.connId].curParam.connInterval * 1250)) // win_offset should less then conn interval - g_new_master_delta -= conn_param[initInfo.connId].curParam.connInterval * 1250; - - // calculate win_offset - temp = g_new_master_delta - 352; // 352: CONN_REQ time - temp2 = (temp + (temp >> 1) + (temp >> 3) + (temp >> 7)) >> 10; // rough estimate of (x / 625) - win_offset = (temp2 - 2) >> 1; - // calculate remainder time of anchor master connection -// temp1 = (CP_TIM1->LoadCount - CP_TIM1->CurrentCount) >> 2; // get elapse time //read_LL_remainder_time(); -// temp1 = g_ll_conn_ctx.current_timer - ((CP_TIM1->CurrentCount) >> 2) + 2; // 2: rough time from read old timer1 to kick new timer1 -// temp = (g_ll_conn_ctx.scheduleInfo[i].remainder - temp1 - 352);// / 625; -// temp2 = (temp + (temp >> 1) + (temp >> 3) + (temp >> 7)) >> 10; // rough estimate of (x / 625) -// -// // remainder time of new connection = remainder time of anchor master connection + delta -// g_new_master_delta += temp2; -// -// // winoffset should less then conn interval -// if (g_new_master_delta - 2 > (conn_param[initInfo.connId].curParam.connInterval << 1)) // win_offset should less then conn interval -// g_new_master_delta -= conn_param[initInfo.connId].curParam.connInterval << 1; -// -// win_offset = (g_new_master_delta - 2) >> 1; -// g_new_master_delta = win_offset * 1250 + 352; - } - -//#else -// if (initInfo.connId > g_ll_conn_ctx.currentConn) -// g_new_master_delta = (initInfo.connId - g_ll_conn_ctx.currentConn) * g_ll_conn_ctx.per_slot_time; -// else -// g_new_master_delta = (conn_param[initInfo.connId].curParam.connInterval << 1) - (g_ll_conn_ctx.currentConn - initInfo.connId) * g_ll_conn_ctx.per_slot_time; -// -// // there are 2 case for new connection timing : 1. before next current connection slot 2. after next current connection slot. -// // Note: we will send the 1st master packet at time (1.25ms + winoffset) after send CONN REQ msg, -// // the time should align to allocate time slot, i.e. -// // remain time of timer1 + delta tick = 2 + winOffset + CONN REQ msg length(352us) -// remainder = (read_LL_remainder_time() - 352);// / 625; -// remainder = (remainder + (remainder >> 1) + (remainder >> 3) + (remainder >> 7)) >> 10; // rough estimate of (x / 625) = (1/1024 + 1/2048 + 1/8192) -// -// win_offset = (remainder + g_new_master_delta - 2) >> 1; -// if (win_offset > (conn_param[initInfo.connId].curParam.connInterval << 1)) // case 1 -// win_offset -= (conn_param[initInfo.connId].curParam.connInterval << 1); -// -//// g_new_master_delta = win_offset << 1; -// g_new_master_delta = win_offset * 1250 + 352; -//#endif - // WinOffset, Byte 20 ~ 21 - memcpy((uint8*)&g_tx_adv_buf.data[20], (uint8*)&win_offset, 2); - conn_param[initInfo.connId].curParam.winOffset = win_offset; - } - - // channel selection algorithm decision - if ((pGlobal_config[LL_SWITCH] & CONN_CSA2_ALLOW) - && chSel == LL_CHN_SEL_ALGORITHM_2) - { - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_2; - SET_BITS(g_tx_adv_buf.txheader, LL_CHN_SEL_ALGORITHM_2, CHSEL_SHIFT, CHSEL_MASK); - } - else - conn_param[initInfo.connId].channel_selection = LL_CHN_SEL_ALGORITHM_1; - - // send conn req - T2 = read_current_fine_time(); - delay = (T2 > ISR_entry_time) ? (T2 - ISR_entry_time) : (BASE_TIME_UNITS - ISR_entry_time + T2); - delay = 118 - delay - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY]; - ll_hw_set_trx_settle(delay, // set BB delay, about 80us in 16MHz HCLK - pGlobal_config[LL_HW_AFE_DELAY], - pGlobal_config[LL_HW_PLL_DELAY]); //RxAFE,PLL - // reset Rx/Tx FIFO - ll_hw_rst_rfifo(); - ll_hw_rst_tfifo(); - // send conn req - ll_hw_set_stx(); // set LL HW as single Tx mode - ll_hw_go(); - llWaitingIrq = TRUE; - // AdvA, offset 6 - memcpy((uint8*)&g_tx_adv_buf.data[6], &g_rx_adv_buf.data[0], 6); - //write Tx FIFO - ll_hw_write_tfifo((uint8*)&(g_tx_adv_buf.txheader), - ((g_tx_adv_buf.txheader & 0xff00) >> 8) + 2); // payload length + header length(2) - move_to_master_function(); - //LOG("win_off = %d\n", win_offset); - //LOG("remainder = %d\n", remainder); - bConnecting = TRUE; - g_same_rf_channel_flag = FALSE; - } - } - else if (packet_len != 0 - && (pdu_type == ADV_DIRECT_IND)) // TODO: add process of direct ADV - { - } - } - - // scan again if not start connect - if (!bConnecting) // if not start connect, schedule next scan - { - if (initInfo.scanMode == LL_SCAN_STOP) - { - // scan has been stopped - llSecondaryState = LL_SEC_STATE_IDLE; // bug fixed by Zhufei // set the LL state idle - // release the associated allocated connection - llReleaseConnId(connPtr); // new for multi-connection - g_ll_conn_ctx.numLLMasterConns --; - (void)osal_set_event( LL_TaskID, LL_EVT_MASTER_CONN_CANCELLED ); // inform high layer - } - else - { - // not sending SCAN REQ, update scan time - llScanTime += ((ISR_entry_time > llScanT1) ? (ISR_entry_time - llScanT1) : (BASE_TIME_UNITS - llScanT1 + ISR_entry_time)); - - if (llScanTime >= initInfo.scanWindow * 625) - { - // calculate next scan channel - LL_CALC_NEXT_SCAN_CHN(initInfo.nextScanChan); - - // schedule next scan event - if (initInfo.scanWindow == initInfo.scanInterval) // scanWindow == scanInterval, trigger immediately - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_INIT); - else - osal_start_timerEx(LL_TaskID, LL_EVT_SECONDARY_INIT, ((initInfo.scanInterval - initInfo.scanWindow) * 5) >> 3 ); - - // reset scan total time - llScanTime = 0; - } - else - llSetupSecInit(initInfo.nextScanChan); - } - } - - // post ISR process - if (!llWaitingIrq) // bug fixed 2018-05-04, only clear IRQ status when no config new one - ll_hw_clr_irq(); - - HAL_EXIT_CRITICAL_SECTION(); - return TRUE; -} - -void LL_IRQHandler1(void) -{ -// gpio_write(P32,1); -// gpio_write(P32,0); - uint32 irq_status; - int8 ret; - ISR_entry_time = read_current_fine_time(); - //*(volatile uint32_t *)0x4000f0b8 = 1; // pclk_clk_gate_en - ll_debug_output(DEBUG_ISR_ENTRY); - irq_status = ll_hw_get_irq_status(); - - if (!(irq_status & LIRQ_MD)) // only process IRQ of MODE DONE - { - ll_hw_clr_irq(); // clear irq status - return; - } - - llWaitingIrq = FALSE; - - if (llTaskState == LL_TASK_EXTENDED_ADV) - { - ret = ll_processExtAdvIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_EXTENDED_SCAN) - { - ret = ll_processExtScanIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_EXTENDED_INIT) - { - ret = ll_processExtInitIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_PERIODIC_ADV) - { - ret = ll_processPrdAdvIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else if (llTaskState == LL_TASK_PERIODIC_SCAN) - { - ret = ll_processPrdScanIRQ(irq_status); - - // TODO: consider whether need process secondary adv/scan here - if (ret == TRUE) - return; - } - else - { - uint8 mode; - mode = ll_hw_get_tr_mode(); - - if(mode == LL_HW_MODE_SRX && (llState == LL_STATE_SCAN || llState == LL_STATE_INIT)) - { - ret = ll_processBasicIRQ_SRX(irq_status); - } - else if((llSecondaryState == LL_SEC_STATE_ADV || llSecondaryState == LL_SEC_STATE_IDLE_PENDING) - && (mode == LL_HW_MODE_TRX ) - && (adv_param.advEvtType == LL_ADV_CONNECTABLE_UNDIRECTED_EVT || adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT)) - { - // JIRA bugfix : BBBSDKREL-294 - ret = ll_processBasicIRQ_secondaryAdvTRX(irq_status); - } - else if (mode == LL_HW_MODE_TRX && - (llState == LL_STATE_SCAN)) - { - ret = ll_processBasicIRQ_ScanTRX(irq_status); - } - else if (mode == LL_HW_MODE_SRX && - (llSecondaryState == LL_SEC_STATE_SCAN)) - { - ret = ll_processBasicIRQ_secondaryScanSRX(irq_status); - } - else if (mode == LL_HW_MODE_SRX && - (llSecondaryState == LL_SEC_STATE_INIT)) - { - ret = ll_processBasicIRQ_secondaryInitSRX(irq_status); - } - else - { - ret = ll_processBasicIRQ(irq_status); - } - - //test for fast adv - if( mode == LL_HW_MODE_TRX - && llState == LL_STATE_ADV_UNDIRECTED - && 0==(irq_status&LIRQ_COK) ) - { - uint8_t firstAdvChan = (adv_param.advChanMap&LL_ADV_CHAN_37) !=0 ? 37 : - (adv_param.advChanMap&LL_ADV_CHAN_38) !=0 ? 38 : 39; - - if(adv_param.advNextChan>firstAdvChan) - { - ll_schedule_next_event(50); //20180623 modified by ZQ - } - } - } - - // ================ Post ISR process: secondary pending state process - // conn-adv case 2: other ISR, there is pending secondary advertise event, make it happen - if (llSecondaryState == LL_SEC_STATE_ADV_PENDING) - { - if (llSecAdvAllow()) // for multi-connection case, it is possible still no enough time for adv - { - llSetupSecAdvEvt(); - ll_hw_set_rx_timeout(88); - llSecondaryState = LL_SEC_STATE_ADV; - } - } - // there is pending scan event, make it happen, note that it may stay pending if there is no enough idle time - else if (llSecondaryState == LL_SEC_STATE_SCAN_PENDING) - { - // trigger scan - llSetupSecScan(scanInfo.nextScanChan); - } - // there is pending init event, make it happen, note that it may stay pending if there is no enough idle time - else if (llSecondaryState == LL_SEC_STATE_INIT_PENDING) - { - // trigger scan - llSetupSecInit(initInfo.nextScanChan); - } - - DBG_GPIO_WRITE(DBGIO_LL_IRQ,0); - ll_debug_output(DEBUG_ISR_EXIT); -} - -//-------------------------------------- -extern uint32 llWaitingIrq; -extern uint32_t g_wakeup_rtc_tick; - -extern uint32 counter_tracking; -extern uint32_t g_counter_traking_avg; -extern uint32_t g_counter_traking_cnt; -extern uint32_t g_TIM2_IRQ_TIM3_CurrCount; -extern uint32_t g_TIM2_IRQ_to_Sleep_DeltTick; -extern uint32 read_ll_adv_remainder_time(void); -#define ROM_SLEEP_TICK *(volatile uint32_t *)(0x1fff0a14) - -__attribute__((weak)) void l2capPocessFragmentTxData(uint16 connHandle) -{ - (void)connHandle; - //do nothing -} - -#if 0 -extern int m_in_critical_region; -int drv_disable_irq1(void) -{ - __disable_irq(); - DBG_GPIO_WRITE(DBGIO_DIS_IRQ,1); - DBG_GPIO_WRITE(DBGIO_DIS_IRQ,0); - m_in_critical_region++; - return m_in_critical_region; -} - -int drv_enable_irq1(void) -{ - m_in_critical_region--; - - if (m_in_critical_region == 0) - { - __enable_irq(); - DBG_GPIO_WRITE(DBGIO_EN_IRQ,1); - DBG_GPIO_WRITE(DBGIO_EN_IRQ,0); - } - - return m_in_critical_region; -} -extern void TIM1_IRQHandler(void); -void TIM1_IRQHandler1(void) -{ - gpio_write(P20,1); - TIM1_IRQHandler(); - gpio_write(P20,0); -} -#endif - -/******************************************************************************* - @fn ll_scheduler - - @brief schedule next task, if current connection will be free, input - parameter should be LL_INVALID_TIME. The function is invoked - after old connection task end, it will not add new task but may - delete exist task - - input parameters - - @param time - schedule time for current connection - - output parameters - - @param None. - - @return None. -*/ -void ll_scheduler1(uint32 time) -{ - uint32 T1, T2, delta, min, prio_adj; - uint8 i, next, temp,conn_temp; - T1 = read_current_fine_time(); - - // timer1 is running, normally it should not occur - if (isTimer1Running()) - { - LOG("=== ASSERT FAIL, timer1 running when invoke ll_scheduler ===\n"); - g_pmCounters.ll_evt_shc_err++; - return; - } - - // if timer1 is not running, calculate the time elapse since last timer expiry - delta = g_ll_conn_ctx.current_timer + LL_TIME_DELTA(g_ll_conn_ctx.timerExpiryTick, T1) + pGlobal_config[TIMER_ISR_ENTRY_TIME]; - // update current context - g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].remainder = time; // if current conn terminal, the parameter "time" shall be LL_INVALID_TIME - min = time; - - if (time == LL_INVALID_TIME) - { - ll_deleteTask(g_ll_conn_ctx.currentConn); - g_ll_conn_ctx.currentConn = LL_INVALID_CONNECTION_ID; - } - - conn_temp = next = g_ll_conn_ctx.currentConn; - - if (next != LL_INVALID_CONNECTION_ID) - { - // if we want master or slave connection has higher schedule priority, set LL_MASTER_PREEMPHASIS/LL_SLAVE_PREEMPHASIS - if (g_ll_conn_ctx.scheduleInfo[next].linkRole == LL_ROLE_MASTER) - min = (time > pGlobal_config[LL_MULTICONN_MASTER_PREEMP]) ? (time - pGlobal_config[LL_MULTICONN_MASTER_PREEMP]) : 0; - - if (g_ll_conn_ctx.scheduleInfo[next].linkRole == LL_ROLE_SLAVE) - min = (time > pGlobal_config[LL_MULTICONN_SLAVE_PREEMP]) ? (time - pGlobal_config[LL_MULTICONN_SLAVE_PREEMP]) : 0; - } - - // update schedule task list and get the earliest task - for (i = 0; i < g_maxConnNum; i++) - { - if ((i != g_ll_conn_ctx.currentConn) && conn_param[i].active) - { - // task conflict process - // if there is no enough time for new task, invoke relate slave/master conn event process function -// if (g_ll_conn_ctx.scheduleInfo[i].remainder < delta + g_ll_conn_ctx.scheduleInfo[i].task_duration) - if (g_ll_conn_ctx.scheduleInfo[i].remainder < delta + 40) // 40 : margin for process delay, unit: us - { - // no enough time to process the event, regard the event as missed and update the conn context and timer - uint8 ret = LL_PROC_LINK_KEEP; - - if (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER) - { - // temporary update g_ll_conn_ctx.currentConn to current connection ID because - // ll_processMissMasterEvt will invoke function using global variable g_ll_conn_ctx.currentConn - temp = g_ll_conn_ctx.currentConn; - g_ll_conn_ctx.currentConn = i; - ret = ll_processMissMasterEvt(i); -// if( delta > g_ll_conn_ctx.scheduleInfo[i].remainder) -// { -// llConnState_t *connPtr = &conn_param[i]; -// uint8 missCE = (( delta - g_ll_conn_ctx.scheduleInfo[i].remainder) / ( connPtr->curParam.connInterval*625 )) + 1; -// for(uint8 misI = 0;misI g_ll_conn_ctx.scheduleInfo[i].remainder) - { - llConnState_t* connPtr = &conn_param[i]; - uint8 missCE = (( delta - g_ll_conn_ctx.scheduleInfo[i].remainder) / ( connPtr->curParam.connInterval*625 )) + 1; - - for(uint8 misI = 0; misI prio_adj) ? (g_ll_conn_ctx.scheduleInfo[i].remainder - prio_adj) : 0; - } - } - } - - if (min == LL_INVALID_TIME) // all task may be delete, not start timer - { - return; - } - - T2 = read_current_fine_time(); - // calculate the time elapse since enter this function. - delta = LL_TIME_DELTA(T1, T2); - HAL_ENTER_CRITICAL_SECTION(); - uint8 rem_l_delta_flag = FALSE; - uint8 rem_l_delta_value = 0; - - if (g_ll_conn_ctx.scheduleInfo[next].remainder <= delta) // TODO: should not go here, if this issue detected, root cause should be invest - { -// set_timer1(20); - set_timer(AP_TIM1,20); - g_ll_conn_ctx.current_timer = 20; - rem_l_delta_flag = TRUE; - rem_l_delta_value = next; -// LOG("-T %d:20,",next); - } - else - { -// set_timer1(g_ll_conn_ctx.scheduleInfo[next].remainder - delta); - set_timer(AP_TIM1,g_ll_conn_ctx.scheduleInfo[next].remainder - delta); -// LOG("-S%d,%d,",next,g_ll_conn_ctx.scheduleInfo[next].remainder - delta); - // update connection context & schedule info - g_ll_conn_ctx.current_timer = g_ll_conn_ctx.scheduleInfo[next].remainder - delta; - } - - g_ll_conn_ctx.currentConn = next; - - // set ll state according to current connection LL state - if (g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].linkRole == LL_ROLE_SLAVE) - llState = LL_STATE_CONN_SLAVE; - else if (g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].linkRole == LL_ROLE_MASTER) - llState = LL_STATE_CONN_MASTER; - - // the task is scheduled, set the priority as low - g_ll_conn_ctx.scheduleInfo[g_ll_conn_ctx.currentConn].priority = LL_SCH_PRIO_LOW; - - // take into account the time between start timer1 and T1 - for (i = 0; i < g_maxConnNum; i++) - { - if (conn_param[i].active) - { -// if( g_ll_conn_ctx.scheduleInfo[i].remainder >= delta ) -// g_ll_conn_ctx.scheduleInfo[i].remainder -= delta; - if( ( g_ll_conn_ctx.scheduleInfo[i].remainder < delta ) && ( rem_l_delta_flag == FALSE)) - { - if (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER) - ll_processMissMasterEvt(i); - else - ll_processMissSlaveEvt(i); - } - - if( ( rem_l_delta_value == i ) && ( rem_l_delta_flag == TRUE) ) - g_ll_conn_ctx.scheduleInfo[i].remainder = 0; - else - g_ll_conn_ctx.scheduleInfo[i].remainder -= delta; - - conn_param[i].llTbd2 = g_ll_conn_ctx.scheduleInfo[i].remainder; - /*record if error scheduler time*/ - // if( g_ll_conn_ctx.scheduleInfo[i].remainder > 500000) - // llConnTerminate(&conn_param[i],LL_SUPERVISION_TIMEOUT_TERM); - } - } - - // add for co-master intv bug fix - if( g_ll_conn_ctx.scheduleInfo[conn_temp].linkRole != LL_ROLE_MASTER ) - { - HAL_EXIT_CRITICAL_SECTION(); - return; - } - - int8 k=0; - - for (k = g_maxConnNum-1; k >= 0; k--) - { - if ((conn_param[k].active) && (g_ll_conn_ctx.scheduleInfo[k].linkRole == LL_ROLE_MASTER )) - { - break; - } - } - - i=k; - - if( conn_temp == i ) - { - uint8 jm=i; - uint8 fist_m=0; - // current master --> first master true value - uint32 tv_Masters = 0,tv_diff = 0,first_reminder = 0; - - for (i = 0; i < g_maxConnNum; i++) - { - if ((conn_param[i].active) && (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER )) - break; - } - - first_reminder = g_ll_conn_ctx.scheduleInfo[i].remainder; - fist_m = i; - - for (i=fist_m+1; i < jm+1 ; i++) - { - if ((conn_param[i].active) && (g_ll_conn_ctx.scheduleInfo[i].linkRole == LL_ROLE_MASTER )) - { - tv_Masters = first_reminder + g_ll_conn_ctx.per_slot_time * 625 * (i - fist_m); - - if( tv_Masters > g_ll_conn_ctx.scheduleInfo[i].remainder) - tv_diff = tv_Masters - g_ll_conn_ctx.scheduleInfo[i].remainder; - else - tv_diff = g_ll_conn_ctx.scheduleInfo[i].remainder - tv_Masters; - - // < 1000 : filter scecondary first create master connection & miss process master event - if(tv_diff < 1000) - { - if( g_ll_conn_ctx.scheduleInfo[i].remainder > tv_Masters ) - { - g_ll_conn_ctx.scheduleInfo[i].remainder -= tv_diff; - } - else if( g_ll_conn_ctx.scheduleInfo[i].remainder < tv_Masters ) - { - g_ll_conn_ctx.scheduleInfo[i].remainder += tv_diff; - } - } - } - } - } - - HAL_EXIT_CRITICAL_SECTION(); -} - -#define CRY32_2_CYCLE_16MHZ_CYCLE_MAX (976 + 98) // tracking value range std +/- 20% -#define CRY32_2_CYCLE_16MHZ_CYCLE_MIN (976 - 98) -#define CRY32_2_CYCLE_DELTA_LMT (19) -#define TRACKING_16M_TICK_MAX (3300) //TRACKING_16M_TICK_MAX*30.5us 3300*30.5 around 100ms -#define TRACKING_MAX_SLEEPTIME (1980000) //MAX sleep time is 60 seconds. - -uint32_t g_xtal16M_tmp=0; // RC 32KHz tracking counter, calculate 16MHz ticks number per RC32KHz cycle -extern void hal_pwrmgr_enter_sleep_rtc_reset(uint32_t sleepRtcTick); -static void check_16MXtal_by_rcTracking(void) -{ - /* - for fiset wakeupini, not do rcCal, just skip the rcTacking - - */ - if(AON_LOAD_RC32K_CALIB_FLG == 0) - { - WaitRTCCount(60); - return; - } - - uint32_t temp; - uint32_t temp31,temp32,temp33; - uint32_t temp_min,temp_max; - uint32_t tracking_start = rtc_get_counter(); - // ======== enable tracking 32KHz RC timer with 16MHz crystal clock - AP_AON->RTCCLK0 |= BIT(18); - //temp = *(volatile uint32_t*)0x4000f040; - //*(volatile uint32_t*)0x4000f040 = temp | BIT(18); - // [bit16] 16M [bit8:4] cnt [bit3] track_en_rc32k - AP_AON->RTCCFG2 = (AP_AON->RTCCFG2 & 0xfffefe00) | 0x0028; - WaitRTCCount(3); - // 0x4000f064 - RC 32KHz tracking counter, calculate 16MHz ticks number per RC32KHz cycle - temp31 = AP_AON->RTCTRCNT & 0x1ffff; - WaitRTCCount(3); - temp32 = AP_AON->RTCTRCNT & 0x1ffff; - WaitRTCCount(3); - temp33 = AP_AON->RTCTRCNT & 0x1ffff; - - while(1) - { - temp_min = (temp31 >=temp32) ? (temp32):(temp31); - temp_min = (temp_min >=temp33) ? (temp33):(temp_min); - temp_max = (temp31 >=temp32) ? (temp31):(temp32); - temp_max = (temp_max >=temp33) ? (temp_max):(temp33); - - if( temp31>CRY32_2_CYCLE_16MHZ_CYCLE_MIN && - temp31CRY32_2_CYCLE_16MHZ_CYCLE_MIN && - temp32 CRY32_2_CYCLE_16MHZ_CYCLE_MIN && - temp33 RTCTRCNT & 0x1ffff; - //check tracking cost - uint32_t tracking_end = rtc_get_counter(); - uint32_t tracking_16M_tick = (tracking_end>=tracking_start) ? (tracking_end-tracking_start) : (0xffffffff-tracking_start+tracking_end); - - if(tracking_16M_tick >= TRACKING_16M_TICK_MAX) - { - //record tracking sleep number - uint32_t tracking_sleep_num =AON_LOAD_XTAL_TRACKING_RST_NUMBER; - AON_SAVE_XTAL_TRACKING_RST_NUMBER(tracking_sleep_num+1); - //set just_enter_sleep_flg - AON_SAVE_XTAL_TRACKING_RST_FLG(1); - set_sleep_flag(0); - - if ((1 << tracking_sleep_num)*33000< TRACKING_MAX_SLEEPTIME) - { - hal_pwrmgr_enter_sleep_rtc_reset((1 << tracking_sleep_num)*33000); - } - else - { - hal_pwrmgr_enter_sleep_rtc_reset(TRACKING_MAX_SLEEPTIME); - } - } - } - - WaitRTCCount(20); - temp = AP_AON->RTCTRCNT & 0x1ffff; - //disable tracking - AP_AON->RTCCFG2 &= ~BIT(3); // subWriteReg(0x4000f05C,3,3,0); - g_xtal16M_tmp = temp; -} - -#define TRACKING_96M_16M_MULTI6_DELTA_LIMIT (10*6) //96M:16M*6 +- 1% -#define DLL_ENABLE_MAX (5) - -uint32_t g_xtal96M_temp=0; -uint32_t DLL_enable_num=1; -static void check_96MXtal_by_rcTracking(void) -{ - uint32_t temp,temp1; - - //for first wakeupinit - if((AP_AON->SLEEP_R[1] & 0x80) == 0) - { - //enable DLL - AP_AON->RTCCFG1 |= BIT(7); // temp = *(volatile uint32_t*)0x4000f044; - // *(volatile uint32_t*)0x4000f044 = temp | BIT(7); - WaitRTCCount(3); - return; - } - - DLL_enable_num=0; - // ======== enable tracking 32KHz RC timer with 16MHz crystal clock - AP_AON->RTCCLK1 |= BIT(18); - //temp = *(volatile uint32_t*)0x4000f040; - //*(volatile uint32_t*)0x4000f040 = temp | BIT(18); - - while(1) - { - //enable DLL - AP_AON->RTCCFG1 |= BIT(7); - //temp = *(volatile uint32_t*)0x4000f044; - //*(volatile uint32_t*)0x4000f044 = temp | BIT(7); - WaitRTCCount(3); - DLL_enable_num++; - // gpio_write(P32,1); - // gpio_write(P32,0); - // //enable digclk 96M - // temp = *(volatile uint32_t*)0x4000f044; - AP_AON->RTCCFG1 |= BIT(16); // *(volatile uint32_t*)0x4000f044 = temp | BIT(16); - - for(uint8 index=0; index<5; index++) - { - temp = AP_AON->RTCCFG2; - // [bit16] 16M [bit8:4] cnt [bit3] track_en_rc32k - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0028 | BIT(16); - WaitRTCCount(3); - temp1 = AP_AON->RTCTRCNT & 0x1ffff; - AP_AON->RTCCFG2 &= ~BIT(3); //disable tracking subWriteReg(0x4000f05C,3,3,0); - if( (g_xtal16M_tmp*6 >=temp1 ? (g_xtal16M_tmp*6 -temp1):(temp1-g_xtal16M_tmp*6))RTCCFG2 &= ~BIT(16); // disable 16M subWriteReg(0x4000f05C,16,16,0); - AP_AON->RTCCFG1 &= ~BIT(16); // subWriteReg(0x4000f044,16,16,0); - g_xtal96M_temp = temp1; - return; - } - } - - //disable 96M - AP_AON->RTCCFG2 &= ~BIT(16); // disable 16M subWriteReg(0x4000f05C,16,16,0); - AP_AON->RTCCFG1 &= ~BIT(16); // div? subWriteReg(0x4000f044,16,16,0); - - //should not be here - if(DLL_enable_num>= DLL_ENABLE_MAX) - { - NVIC_SystemReset(); - } - - //disable DLL - AP_AON->RTCCFG1 &= ~BIT(7); - WaitRTCCount(3); - //update g_xtal16M_tmp - temp = AP_AON->RTCCFG2; - // [bit16] 16M [bit8:4] cnt [bit3] track_en_rc32k - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0028 ; - WaitRTCCount(3); - // RC 32KHz tracking counter, calculate 16MHz ticks number per RC32KHz cycle - g_xtal16M_tmp = AP_AON->RTCTRCNT & 0x1ffff; - AP_AON->RTCCFG2 &= ~BIT(3); //disable tracking subWriteReg(0x4000f05C,3,3,0); - } -} - -#if 0 - uint32_t rtcCntTemp[10]; -#endif -// now we split the initial fucntion to 3 kinds: -// 1. boot init function: which should be init when system boot. note: not include wakeup init function -// 2. wakeup init function: which should be init when wakeup from system sleep -// 3. parameter which should be init in APP, include: RF, board, ... -// summary: -// - normal boot, need: 1 + 2 + 3 -// - wakeup, need: 2 + 3 - -// init paramaters every time wakeup - -uint32_t tracking_cnt=0; -void wakeup_init1() -{ - efuse_init(); - __wdt_init(); - uint8_t pktFmt = 1; // packet format 1: BLE 1M - uint32 temp; - //int int_state; - // =========== clk gate for low power - //*(volatile uint32_t *) 0x40000008 = 0x01e92190; - // enable rng analog block. RNG analog need > 200us before stable, and it consume few current, so open it at wakeup - //*(volatile uint32_t *) 0x4000f048 |= 1 << 23; - // =========== config PCRM -// *(volatile uint32_t *) 0x4000f040 = 0x501fb000; //enable xtal out -// *(volatile uint32_t *) 0x4000f044 = 0x01ade8b0; //switch rf,adc to doubler,32M -//---by ZQ 2017-10-17 - //*(volatile uint32_t *) 0x4000f040 = 0x501fb820; // enable xtal out - // set the xtal cap to zero for faster settle - // set [16] manually enable ac strigger f 20180613 by ZQ - //*(volatile uint32_t *) 0x4000f044 = 0x01bdf8b0;//0x01bef830; // switch rf,adc to doubler, dll_off, dll_ldo on - // dll will be turn on in rf_ini after xtal settle - //*(volatile uint32_t *) 0x4000f044 = 0x00be0830; //[26:22] 0x02,[21:18]0x0f,[16:12]0x00,[7:4]0x03 - //< 22>:sel_rf_clk_16M; - //< 23>:sel_rf_dbl_clk_32M; - //< 24>:sel_rxadc_dbl_clk_32M; - //< 25>:sel_rxadc_dbl_clk_32M_polarity; - //< 26>:sel_rf_dbl_clk_32M_polarity - // < 18>:en_rf_clk; - // < 19>:en_rxadc_clk_32M; - // < 20>:sel_cp_clk_32M; - // < 21>:sel_dig_dble_clk_32M; - // < 12>:en_cp_dll_clk; - // < 13>:en_dig_clk_32M; - // < 14>:en_dig_clk_48M; - // < 15>:en_dig_clk_64M; - // < 16>:en_dig_clk_96M; -#if (DBG_BUILD_LL_TIMING) - //====== for timing debug============ - gpio_write(DBG_PIN_SYS_CLK_SWITCH, 1); - gpio_write(DBG_PIN_SYS_CLK_SWITCH, 0); - //PHY_REG_WT(AP_IOMUX_BASE+8,1);//en debugMux[0] -#endif - //each rtc count is about 30.5us - //after 15count , xtal will be feedout to dll and doubler - //WaitRTCCount(pGlobal_config[WAKEUP_DELAY]); -#if 0 - volatile uint32_t delay=0; - - for(uint8_t i=0; i<10; i++) - { - delay=500; - rtcCntTemp[i]=rtc_get_counter(); - - while(delay -- > 0) {}; - } - -#endif - - if(g_system_clk == SYS_CLK_XTAL_16M ) - { - WaitRTCCount(pGlobal_config[WAKEUP_DELAY]); - } - else - { - uint32_t tracking_c1,tracking_c2; - tracking_c1 = rtc_get_counter(); - WaitRTCCount(50); - check_16MXtal_by_rcTracking(); - WaitRTCCount(15); - - if(g_system_clk != SYS_CLK_DBL_32M ) - { - check_96MXtal_by_rcTracking(); - } - else - { - /* - for hclk=32M DBL - switch to 32M RC and reset DBL - */ - if((AP_AON->RTCCLK0 & 0x07)==SYS_CLK_DBL_32M) - { - clk_init(SYS_CLK_RC_32M); - } - - //reset doubler - AP_PCRM->CLKHF_CTL1 &= ~BIT(8); - WaitRTCCount(2); - AP_PCRM->CLKHF_CTL1 |= BIT(8); - } - - tracking_c2 = rtc_get_counter(); - tracking_cnt = (tracking_c2>=tracking_c1) ? (tracking_c2-tracking_c1) : (0xffffffff-tracking_c1+tracking_c2); - pGlobal_config[WAKEUP_ADVANCE] =1650+30*tracking_cnt; - } - - // ============ config BB Top - *(volatile uint32_t*) 0x40030000 = 0x3d068001; // set tx pkt =2 - *(volatile uint32_t*) 0x400300bc = 0x834; //[7:0] pll_tm [11:8] rxafe settle - *(volatile uint32_t*) 0x400300a4 = 0x140; //[6] for tpm_en - clk_init(g_system_clk); - // ================= clock selection - // hclk_sel select hclk source. 0---rc 32m 1----dll 32m 2---xtal 16m 3---dll 48m 4----dll 64m 5----dll 96m -// switch (pGlobal_config[CLOCK_SETTING]) -// { -// case SYS_CLK_XTAL_16M: -//// *(int *) 0x4000f03C = 0x18001; // clock selection -// *(int *) 0x4000f03C = 0x10002; // clock selection -// break; -// case SYS_CLK_DBL_32M: -// case SYS_CLK_DLL_32M: -// *(int *) 0x4000f03C = 0x10001; // clock selection -// break; -// case SYS_CLK_DLL_48M: -// *(int *) 0x4000f03C = 0x10003; // clock selection -// break; -// case SYS_CLK_DLL_64M: -// *(int *) 0x4000f03C = 0x10004; // clock selection -// break; -// case SYS_CLK_DLL_96M: -// *(int *) 0x4000f03C = 0x10005; // clock selection -// break; -// default: -// *(int *) 0x4000f03C = 0x10002; // clock selection -// break; -// } - // ========== init timers - set_timer(AP_TIM2, 625); // OSAL 625us tick - set_timer(AP_TIM3, BASE_TIME_UNITS); // 1s timer - // =========== open interrupt mask - //int_state = 0x14; - //set_int(int_state); - //should use NVIC_EnableIRQn() - NVIC_EnableIRQ(BB_IRQn); - NVIC_EnableIRQ(TIM1_IRQn); - NVIC_EnableIRQ(TIM2_IRQn); - NVIC_EnableIRQ(TIM4_IRQn); - // =========== ll HW setting - set_max_length(0xff); - ll_hw_set_empty_head(0x0001); - //time related setting - ll_hw_set_rx_timeout_1st(500); - ll_hw_set_rx_timeout(88); //ZQ 20180606, reduce rx timeout for power saving - //preamble + syncword=40us, sync process = 8us - //timeout should be larger then 48us, - //ll_hw_set_rx_timeout( 268); //for ble shoulde be larger than 80+128. if sync, the timeout timer stop. - // (80 + 128) - BLE 5.0 preamble + access time, 60 for HW process delay - // this time doesn't consider HW startup time, it is set in other regs - ll_hw_set_loop_timeout(30000); -// ll_hw_set_tx_rx_release (10, 1); -// ll_hw_set_rx_tx_interval( 57); //T_IFS=150us for BLE 1M -// ll_hw_set_tx_rx_interval( 65); //T_IFS=150us for BLE 1M -// ll_hw_set_trx_settle (57, 8, 52); //TxBB,RxAFE,PLL - ll_hw_set_timing(pktFmt); - ll_hw_ign_rfifo(LL_HW_IGN_SSN | LL_HW_IGN_CRC | LL_HW_IGN_EMP); - // ======== enable tracking 32KHz RC timer with 16MHz crystal clock - temp = AP_AON->RTCCFG2; - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0108; //[16] 16M [8:4] cnt [3] track_en_rc32k - //get wakeup tracking counter -#if 0 - if (pGlobal_config[LL_SWITCH] & RC32_TRACKINK_ALLOW) - { - WaitRTCCount(17); - uint32_t counter_tracking_wakeup = AP_AON->RTCTRWPCNT; // *(volatile uint32_t *)0x4000f064 & 0x1ffff; - counter_tracking = (counter_tracking_wakeup + counter_tracking)>>1; - } -#endif -} - -void config_RTC1(uint32 time) -{ -// *((volatile uint32_t *)(0xe000e100)) |= INT_BIT_RTC; // remove, we don't use RTC interrupt - //align to rtc clock edge - WaitRTCCount(1); - //update for cal ll next time after wakeup - ll_remain_time = read_LL_remainder_time(); - // comparator configuration -#if TEST_RTC_DELTA - do - sleep_tick = AP_AON->RTCCNT; // read current RTC counter - while(sleep_tick != AP_AON->RTCCNT); -#else - sleep_tick = AP_AON->RTCCNT; // *(volatile uint32_t*) 0x4000f028; read current RTC counter - -#endif - g_TIM2_IRQ_to_Sleep_DeltTick = (g_TIM2_IRQ_TIM3_CurrCount > (AP_TIM3->CurrentCount)) - ? (g_TIM2_IRQ_TIM3_CurrCount - (AP_TIM3->CurrentCount)) : 0; - AP_AON->RTCCC0 = sleep_tick + time; //set RTC comparatr0 value -// *(volatile uint32_t *) 0x4000f024 |= 1 << 20; //enable comparator0 envent -// *(volatile uint32_t *) 0x4000f024 |= 1 << 18; //counter overflow interrupt -// *(volatile uint32_t *) 0x4000f024 |= 1 << 15; //enable comparator0 inerrupt - //*(volatile uint32_t *) 0x4000f024 |= 0x148000; // combine above 3 statement to save MCU time - AP_AON->RTCCTL |= BIT(15)|BIT(18)|BIT(20); - - //compensate for cal wakeup next_time - if (llState != LL_STATE_IDLE) - { - if(g_system_clk == SYS_CLK_XTAL_16M) - { - ll_remain_time -= 15; - } - else if(g_system_clk == SYS_CLK_DBL_32M) - { - ll_remain_time -= 8; - } - else if(g_system_clk == SYS_CLK_DLL_48M) - { - ll_remain_time -= 5; - } - else - { - ll_remain_time -= 3; - } - } - -#if 0 - extern uint32 sleep_total; - LOG("%d %d %d\n",conn_param[0].currentEvent,sleep_total,counter_tracking); - #endif -} - -#if 1 -/******************************************************************************* - @fn wakeupProcess1 - - @brief wakeup from system sleep process function. - - - input parameters - - @param None - - output parameters - - @param None. - - @return None. -*/ -uint32 sleep_total; -extern uint32 g_stack; -#ifdef __GNUC__ -// Indicate that the specified function does not need prologue/epilogue sequences -// generated by the compiler. And function doesn't return. -void wakeupProcess1(void) __attribute__ ((naked)); -#endif -void wakeupProcess1(void) -{ - uint32 current_RTC_tick; - uint32 wakeup_time, wakeup_time0, next_time; - uint32 dlt_tick; - //restore initial_sp according to the app_initial_sp : 20180706 ZQ - __set_MSP(pGlobal_config[INITIAL_STACK_PTR]); - HAL_CRITICAL_SECTION_INIT(); - // All memory on - hal_pwrmgr_RAM_retention_clr(); - - //==== 20180416 commented by ZQ - // to enable flash access after wakeup - // current consumption has been checked. No big different - //rom_set_flash_deep_sleep(); - - //=======fix sram_rent issue 20180323 - //hal_pwrmgr_RAM_retention_clr(); - //subWriteReg(0x4000f01c,21,17,0); - - if (sleep_flag != SLEEP_MAGIC) - { - // enter this branch not in sleep/wakeup scenario - set_sleep_flag(0); - // software reset - *(volatile uint32*)0x40000010 &= ~0x2; // bit 1: M0 cpu reset pulse, bit 0: M0 system reset pulse. - } - - // restore HW registers - wakeup_init1(); - //===20180417 added by ZQ - // could be move into wakeup_init - // add the patch entry for tx2rx/rx2tx interval config - //2018-11-10 by ZQ - //config the tx2rx timing according to the g_rfPhyPktFmt - ll_hw_tx2rx_timing_config(g_rfPhyPktFmt); - // 20200812 ZQ - // DO NOT Turn OFF 32K Xtal - // if (pGlobal_config[LL_SWITCH] & LL_RC32K_SEL) - // { - // subWriteReg(0x4000f01c,16,7,0x3fb); //software control 32k_clk - // subWriteReg(0x4000f01c,6,6 ,0x01); //enable software control - // } - // else - // { - // subWriteReg(0x4000f01c,9,8,0x03); //software control 32k_clk - // subWriteReg(0x4000f01c,6,6,0x00); //disable software control - // } - //20181201 by ZQ - //restart the TIM2 to align the RTC - //---------------------------------------------------------- - //stop the 625 timer - AP_TIM2->ControlReg=0x0; - AP_TIM2->ControlReg=0x2; - AP_TIM2->LoadCount = 2500; - //---------------------------------------------------------- - //wait rtc cnt change - WaitRTCCount(1); - //---------------------------------------------------------- - //restart the 625 timer - AP_TIM2->ControlReg=0x3; - current_RTC_tick = rtc_get_counter(); - //g_TIM2_wakeup_delay= (AP_TIM2->CurrentCount)+12; //12 is used to align the rtc_tick - wakeup_time0 = read_current_fine_time(); - g_wakeup_rtc_tick = rtc_get_counter(); - // rf initial entry, will be set in app - rf_phy_ini(); - - if(current_RTC_tick>sleep_tick) - { - dlt_tick = current_RTC_tick - sleep_tick; - } - else - { - //dlt_tick = current_RTC_tick+0x00ffffff - sleep_tick; - dlt_tick = (0xffffffff - sleep_tick)+current_RTC_tick; - } - - //dlt_tick should not over 24bit - //otherwise, sleep_total will overflow !!! - if(dlt_tick>0x3fffff) - dlt_tick &=0x3fffff; - - if (pGlobal_config[LL_SWITCH] & RC32_TRACKINK_ALLOW) - { - //sleep_total = ((current_RTC_tick - sleep_tick) * counter_tracking) >> 7; // shift 4 for 16MHz -> 1MHz, shift 3 for we count 8 RTC tick - // sleep_total = ((((dlt_tick &0xffff0000)>>16)*counter_tracking)<<9) - // + (((dlt_tick &0xffff)*counter_tracking)>>7); - //counter_tracking default 16 cycle -// TEST_RTC_DELTA - sleep_total = ((((dlt_tick &0xffff0000)>>16)*counter_tracking)<<8) - + (((dlt_tick &0xffff)*counter_tracking)>>8); - } - else - { - // time = tick * 1000 0000 / f (us). f = 32000Hz for RC, f = 32768Hz for crystal. We also calibrate 32KHz RC to 32768Hz - //sleep_total = ((current_RTC_tick - sleep_tick) * TIMER_TO_32K_CRYSTAL) >> 2; - //fix sleep timing error - sleep_total = ( ( (dlt_tick<<7)-(dlt_tick<<2)-(dlt_tick<<1) +2) >>2 ) /* dlt_tick * (128-4-2)/4 */ - +( ( (dlt_tick<<3)+ dlt_tick +128) >>9 ) ; /* dlt_tick *9/512 */ - //+2,+128 for zero-mean quanization noise - } - - // restore systick - g_osal_tick_trim = (pGlobal_config[OSAL_SYS_TICK_WAKEUP_TRIM]+g_TIM2_IRQ_to_Sleep_DeltTick+2500-g_TIM2_IRQ_PendingTick)>>2; //16 is used to compensate the cal delay - g_osalTickTrim_mod+=(pGlobal_config[OSAL_SYS_TICK_WAKEUP_TRIM]+g_TIM2_IRQ_to_Sleep_DeltTick+2500-g_TIM2_IRQ_PendingTick)&0x03; //16 is used to compensate the cal delay - - if(g_osalTickTrim_mod>4) - { - g_osal_tick_trim+=1; - g_osalTickTrim_mod = g_osalTickTrim_mod%4; - } - - // restore systick - osal_sys_tick += (sleep_total+g_osal_tick_trim) / 625; // convert to 625us systick - rtc_mod_value += ((sleep_total+g_osal_tick_trim)%625); - - if(rtc_mod_value > 625) - { - osal_sys_tick += 1; - rtc_mod_value = rtc_mod_value%625; - } - - osalTimeUpdate(); - - // osal time update, not required. It will be updated when osal_run_system() is called after wakeup - - // TODO: should we consider widen the time drift window ???? - - //20190117 ZQ - if(llState != LL_STATE_IDLE) - { - // SW delay - wakeup_time = read_current_fine_time() - wakeup_time0; - next_time = 0; - - if (ll_remain_time > sleep_total + wakeup_time) - { - next_time = ll_remain_time - sleep_total - wakeup_time; - // restore LL timer - set_timer(AP_TIM1, next_time); - } - else - { - // should not be here - set_timer(AP_TIM1, 1000); - } - } - - if (g_llSleepContext.isTimer4RecoverRequired) - { - // SW delay - wakeup_time = read_current_fine_time() - wakeup_time0; - next_time = 0; - - if (g_llSleepContext.timer4Remainder > sleep_total + wakeup_time) - { - next_time = g_llSleepContext.timer4Remainder - sleep_total - wakeup_time; - // restore LL timer - set_timer(AP_TIM4, next_time); - } - else - { - // should not be here - set_timer(AP_TIM4, 1500); - // next_time = 0xffff; - } - - g_llSleepContext.isTimer4RecoverRequired = FALSE; - } - - __set_MSP((uint32_t)(&g_stack)); - // app could add operation after wakeup - app_wakeup_process(); -// uart_tx0(" 111 "); - ll_debug_output(DEBUG_WAKEUP); - set_sleep_flag(0); - // ==== measure value, from RTC counter meet comparator 0 -> here : 260us ~ 270us - // start task loop - osal_start_system(); -} - - -void enter_sleep_off_mode1(Sleep_Mode mode) -{ - if(mode==SYSTEM_SLEEP_MODE) - spif_set_deep_sleep(); - - enter_sleep_off_mode0(mode); -} -#endif -void LL_ENC_AES128_Encrypt1( uint8* key, - uint8* plaintext, - uint8* ciphertext ) -{ - //only turn on while working - AP_PCR->SW_CLK |= BIT(MOD_AES); - LL_ENC_AES128_Encrypt0(key,plaintext,ciphertext); - AP_PCR->SW_CLK &= ~BIT(MOD_AES); -} - -#define LL_ENC_BASE 0x40040000 // LL HW AES engine Base address - -#define LL_ENC_ENCRYPT_DONE_MASK 0x0001 -#define LL_ENC_DECRYPT_FAIL_MASK 0x0002 -#define LL_ENC_DECRYPT_SUCC_MASK 0x0004 -#define LL_ENC_SINGLE_MODE_DONE_MASK 0x0008 - -extern void LL_ENC_LoadKey( uint8* key ); -void LL_ENC_Encrypt1( llConnState_t* connPtr, uint8 pktHdr, uint8 pktLen, uint8* pBuf ) -{ - AP_PCR->SW_CLK |= BIT(MOD_AES); -// LL_ENC_Encrypt0(connPtr, pktHdr, pktLen, pBuf ); - { - uint8* pByte = NULL; - uint16 index; - int i, len; - uint32_t temp; - // disable AES - *(int*) 0x40040000 = 0x0; - // Load Key - // Note: Normally this would only need to be done once when the SK is derived - // from the LTK and SKD. However, when in sleep, the AES block loses - // this key. Also, when multiple connections are supported, the key - // will be different. - LL_ENC_LoadKey( connPtr->encInfo.SK ); - -// if ( llState == LL_STATE_CONN_MASTER ) - if( connPtr->llTbd1 == LL_LINK_CONNECT_COMPLETE_MASTER ) - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.txPktCount, - LL_ENC_TX_DIRECTION_MASTER, - connPtr->encInfo.nonce ); - } - else // assumed llState == LL_STATE_CONN_SLAVE - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.txPktCount, - LL_ENC_TX_DIRECTION_SLAVE, - connPtr->encInfo.nonce ); - } - - // confiig nounce - pByte = connPtr->encInfo.nonce; - *(volatile uint32_t*)(LL_ENC_BASE + 0x3c) = pByte[0] ; - pByte ++; - *(volatile uint32_t*)(LL_ENC_BASE + 0x38) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x34) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x30) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - // config plen & aad - *(volatile uint32_t*)(LL_ENC_BASE + 0x0c) = (pktLen << 8) | pktHdr; - // write packet to FIFO - len = pktLen; - index = 0; - - while (len >= 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 3] << 24 | pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - len -= 4; - } - - // to check the byte order - if(len == 3) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - } - else if(len == 2) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 1] << 8 | pBuf[index] ; - index += 4; - } - else if(len == 1) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index] ; - index += 4; - } - - // AES FIFO legth is 256 bytes, set other bytes 0 - for (i = index; i < 0x100; i += 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + i) = 0x0; - } - - // set AES ctrl reg - *(int*) 0x40040004 = 0xf00; - // set interrupt enable - *(int*) 0x40040010 = 0xf; - // enable AES - *(int*) 0x40040000 = 0x1; - - // insert delay - // delay = 200; - // while (delay --); - - // query AES interrupt status register - while (*(volatile uint32_t*)(LL_ENC_BASE + 0x0014) == 0) ; - - // disable AES, if not disable AES, there is no output in FIFO - *(int*) 0x40040000 = 0x0; - // read back the encrypt result - index = 0; - len = pktLen + 4; // include 4 bytes MIC - - while (len > 0) - { - temp = *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index); - pBuf[index ++] = temp & 0xff; - pBuf[index ++] = (temp >> 8) & 0xff; - pBuf[index ++] = (temp >> 16) & 0xff; - pBuf[index ++] = (temp >> 24) & 0xff; - len -= 4; - } - - // up the count for the next TX'ed data packet - // Note: This is supposed to be 39 bit counter, but for now, we don't - // envision receiving 550 billion packets during a connection! - connPtr->encInfo.txPktCount++; -// return; - } - AP_PCR->SW_CLK &= ~BIT(MOD_AES); -} -uint8 LL_ENC_Decrypt1( llConnState_t* connPtr, uint8 pktHdr, uint8 pktLen, uint8* pBuf ) -{ - AP_PCR->SW_CLK |= BIT(MOD_AES); -// uint8 ret = LL_ENC_Decrypt0( connPtr, pktHdr, pktLen, pBuf ); - { - uint8* pByte = NULL; - uint16 index; - int i, len; - uint32_t temp; - // disable AES - *(int*) 0x40040000 = 0x0; - // Load Key - // Note: Normally this would only need to be done once when the SK is derived - // from the LTK and SKD. However, when in sleep, the AES block loses - // this key. Also, when multiple connections are supported, the key - // will be different. - LL_ENC_LoadKey( connPtr->encInfo.SK ); - -// if ( llState == LL_STATE_CONN_MASTER ) - if( connPtr->llTbd1 == LL_LINK_CONNECT_COMPLETE_MASTER ) - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.rxPktCount, - LL_ENC_RX_DIRECTION_MASTER, - connPtr->encInfo.nonce ); - } - else // assumed llState == LL_STATE_CONN_SLAVE - { - // generate the nonce based on packet count, IV, and direction - LL_ENC_GenerateNonce( connPtr->encInfo.rxPktCount, - LL_ENC_RX_DIRECTION_SLAVE, - connPtr->encInfo.nonce ); - } - - // confiig nounce - pByte = connPtr->encInfo.nonce; - *(volatile uint32_t*)(LL_ENC_BASE + 0x3c) = pByte[0]; // << 24 ; - pByte ++; - *(volatile uint32_t*)(LL_ENC_BASE + 0x38) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x34) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - pByte += 4; - *(volatile uint32_t*)(LL_ENC_BASE + 0x30) = pByte[0] << 24 | pByte[1] << 16 | pByte[2] << 8 | pByte[3]; - // config plen & aad - *(volatile uint32_t*)(LL_ENC_BASE + 0x0c) = (pktLen << 8) | pktHdr; - // write packet to FIFO - len = pktLen + 4; // decrypt, add 4 for MIC field length - index = 0; - - while (len >= 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 3] << 24 | pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - len -= 4; - } - - // fill others bytes < 1 word - if(len == 3) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 2] << 16 | pBuf[index + 1] << 8 | pBuf[index]; - index += 4; - } - else if(len == 2) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index + 1] << 8 | pBuf[index] ; - index += 4; - } - else if(len == 1) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index) - = pBuf[index] ; - index += 4; - } - - // AES FIFO legth is 256 bytes, set other bytes 0 - for (i = index; i < 0x100; i += 4) - { - *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + i) = 0x0; - } - - // set AES ctrl reg - *(int*) 0x40040004 = 0xf08; - // set interrupt enable - *(int*) 0x40040010 = 0xf; - // enable AES - *(int*) 0x40040000 = 0x1; - - // insert delay -// delay = 200; -// while (delay --); - - // query AES interrupt status register and wait decrypt finish - while (*(volatile uint32_t*)(LL_ENC_BASE + 0x0014) == 0) ; - - // read interrupt status reg - temp = *(volatile uint32_t*)(LL_ENC_BASE + 0x0014); - - if ((temp & LL_ENC_DECRYPT_FAIL_MASK) - || ((temp & LL_ENC_DECRYPT_SUCC_MASK) == 0)) - { - AP_PCR->SW_CLK &= ~BIT(MOD_AES); - return FALSE; - } - - // disable AES - *(int*) 0x40040000 = 0x0; - // read the decrypt result - index = 0; - len = pktLen; - - while (len > 0) - { - temp = *(volatile uint32_t*)(LL_ENC_BASE + 0x0100 + index); - pBuf[index ++] = temp & 0xff; - pBuf[index ++] = (temp >> 8) & 0xff; - pBuf[index ++] = (temp >> 16) & 0xff; - pBuf[index ++] = (temp >> 24) & 0xff; - len -= 4; - } - - // up the count for the next RX'ed data packet - // Note: This is supposed to be 39 bit counter, but for now, we don't - // envision receiving 550 billion packets during a connection! - connPtr->encInfo.rxPktCount++; - AP_PCR->SW_CLK &= ~BIT(MOD_AES); - return( TRUE ); - } -// AP_PCR->SW_CLK &= ~BIT(MOD_AES); -// return ret; -} - -//20200928 ZQ -//fix ADV_DIR_IND rxAdd setbit -llStatus_t LL_SetAdvParam1( uint16 advIntervalMin, - uint16 advIntervalMax, - uint8 advEvtType, - uint8 ownAddrType, - uint8 peerAddrType, - uint8* peerAddr, - uint8 advChanMap, - uint8 advWlPolicy ) -{ - uint8_t llState_reserve = llState; - llStatus_t ret; - ret=LL_SetAdvParam0( advIntervalMin, - advIntervalMax, - advEvtType, - ownAddrType, - peerAddrType, - peerAddr, - advChanMap, - advWlPolicy ); - llState=llState_reserve; - - if(advEvtType==LL_ADV_CONNECTABLE_HDC_DIRECTED_EVT - || advEvtType==LL_ADV_CONNECTABLE_LDC_DIRECTED_EVT) - { - SET_BITS(g_tx_adv_buf.txheader, peerInfo.peerAddrType, RX_ADD_SHIFT, RX_ADD_MASK); // RxAdd need't set - } - - return ret; -} - -llStatus_t LL_SetAdvControl1( uint8 advMode ) -{ - //if random address isn't defined,can't set ownaddresstype to random - if ((advMode)&&(((adv_param.ownAddrType == LL_DEV_ADDR_TYPE_RANDOM) || - (adv_param.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) && - ( (ownRandomAddr[0] == 0xFF) && - (ownRandomAddr[1] == 0xFF) && - (ownRandomAddr[2] == 0xFF) && - (ownRandomAddr[3] == 0xFF) && - (ownRandomAddr[4] == 0xFF) && - (ownRandomAddr[5] == 0xFF) ))) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - if (g_llAdvMode == LL_MODE_EXTENDED ) - return LL_STATUS_ERROR_COMMAND_DISALLOWED; - - g_llAdvMode = LL_MODE_LEGACY; - - // check if a direct test mode or modem test is in progress - if ( (llState == LL_STATE_DIRECT_TEST_MODE_TX) || - (llState == LL_STATE_DIRECT_TEST_MODE_RX) || - (llState == LL_STATE_MODEM_TEST_TX) || - (llState == LL_STATE_MODEM_TEST_RX) || - (llState == LL_STATE_MODEM_TEST_TX_FREQ_HOPPING) ) - { - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - // 2021-4-19, check init/scan state should not enable/disable adv - if ( (llState == LL_STATE_SCAN) || - (llState == LL_STATE_INIT) ) - { - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - // sanity checks again to be sure we don't start with bad parameters - if ( ( (adv_param.advEvtType != LL_ADV_CONNECTABLE_UNDIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_CONNECTABLE_HDC_DIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_SCANNABLE_UNDIRECTED_EVT) && - (adv_param.advEvtType != LL_ADV_CONNECTABLE_LDC_DIRECTED_EVT) ) || - ( (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_PUBLIC) && - (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_RANDOM) && - (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_RPA_PUBLIC) && - (adv_param.ownAddrType != LL_DEV_ADDR_TYPE_RPA_RANDOM)) || - ( ((adv_param.advEvtType == LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT) || - (adv_param.advEvtType == LL_ADV_SCANNABLE_UNDIRECTED_EVT)) && - (adv_param.advInterval < LL_ADV_CONN_INTERVAL_MIN) ) ) // should use LL_ADV_NONCONN_INTERVAL_MIN after update it to 20ms - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - -#ifdef DEBUG_LL - LOG("llState = %d\n", llState); -#endif - - // check if we should begin advertising - switch( advMode ) - { - // Advertisment Mode is On - case LL_ADV_MODE_ON: - - // check if command makes sense - if ( adv_param.advMode == LL_ADV_MODE_ON ) - { - // this is unexpected; something is wrong - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - //add llState setting - if((llState == LL_STATE_IDLE)) - { - switch(adv_param .advEvtType) - { - case LL_ADV_CONNECTABLE_UNDIRECTED_EVT: - llState=LL_STATE_ADV_UNDIRECTED; - ll_debug_output(DEBUG_LL_STATE_ADV_UNDIRECTED); - break; - - case LL_ADV_CONNECTABLE_HDC_DIRECTED_EVT: - case LL_ADV_CONNECTABLE_LDC_DIRECTED_EVT: - llState=LL_STATE_ADV_DIRECTED; - ll_debug_output(DEBUG_LL_STATE_ADV_DIRECTED); - break; - - case LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT: - llState=LL_STATE_ADV_NONCONN; - ll_debug_output(DEBUG_LL_STATE_ADV_NONCONN); - break; - - case LL_ADV_SCANNABLE_UNDIRECTED_EVT: - llState=LL_STATE_ADV_SCAN; - ll_debug_output(DEBUG_LL_STATE_ADV_SCAN); - break; - - default: - llState=LL_STATE_IDLE; - ll_debug_output(DEBUG_LL_STATE_IDLE); - break; - } - } - - // llState changed when configure adv parameters - if (llState == LL_STATE_ADV_UNDIRECTED - || llState == LL_STATE_ADV_DIRECTED - || llState == LL_STATE_ADV_NONCONN - || llState == LL_STATE_ADV_SCAN ) // TODO: check this setting - { - g_llHdcDirAdvTime = 0; // for HDC direct adv - adv_param.advNextChan = LL_ADV_CHAN_LAST + 1; // set adv channel invalid - - if ( llSetupAdv() != LL_STATUS_SUCCESS ) - { - // indicate advertising is no longer active - adv_param.advMode = LL_ADV_MODE_OFF; - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - } - // add in A2, simultaneous conn event & scan/adv event - else if((llState == LL_STATE_CONN_SLAVE - || llState == LL_STATE_CONN_MASTER) - && (pGlobal_config[LL_SWITCH] & SIMUL_CONN_ADV_ALLOW)) - { -#ifdef DEBUG_LL - LOG("LL_SetAdvControl: start sec adv\r\n"); -#endif - - if (llSecondaryState != LL_SEC_STATE_IDLE) - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - // adv event check - if (adv_param.advEvtType != LL_ADV_NONCONNECTABLE_UNDIRECTED_EVT - && adv_param.advEvtType != LL_ADV_SCANNABLE_UNDIRECTED_EVT - && adv_param.advEvtType != LL_ADV_CONNECTABLE_UNDIRECTED_EVT) - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - // Note: we may need maximum slave number check here. If number of slave reach ceil, - // only no-connectable adv is allowed. The checking could be don't in host - llSecondaryState = LL_SEC_STATE_ADV; - adv_param.advNextChan = LL_ADV_CHAN_LAST + 1; // set adv channel invalid - osal_stop_timerEx( LL_TaskID, LL_EVT_SECONDARY_ADV ); - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_ADV); // set adv event - } - else // other state - return (LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE); - - // indicate advertising is no longer active - adv_param.advMode = LL_ADV_MODE_ON; - - if (g_llRlDeviceNum > 0) - osal_start_timerEx( LL_TaskID, LL_EVT_RPA_TIMEOUT, g_llRlTimeout * 1000 ); - - break; - - case LL_ADV_MODE_OFF: - // check if command makes sense -// if ( adv_param.advMode == LL_ADV_MODE_OFF ) -// { -// // this is unexpected; something is wrong -// return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); -// } - HAL_ENTER_CRITICAL_SECTION(); - // free the associated task block - //llFreeTask( &advInfo.llTask ); - // indicate we are no longer actively advertising - adv_param.advMode = LL_ADV_MODE_OFF; - - if (llState != LL_STATE_CONN_SLAVE && - llState != LL_STATE_CONN_MASTER ) // no conn + adv case - { - llState = LL_STATE_IDLE; // if not in connect state, set idle to disable advertise - //ZQ 20190912 - //stop ll timer when idle, considering the scan-adv interleve case - clear_timer(AP_TIM1); - ll_debug_output(DEBUG_LL_STATE_IDLE); - } - - if(llSecondaryState!=LL_SEC_STATE_IDLE) // conn + adv case - { -// uint8 i; -// i = 0; -// while (!(adv_param.advChanMap & (1 << i))) i ++; // get the 1st adv channel in the adv channel map -// if ((llSecondaryState == LL_SEC_STATE_ADV) -// && (adv_param.advNextChan != (LL_ADV_CHAN_FIRST + i))) // last adv event is not finished -// llSecondaryState = LL_SEC_STATE_IDLE_PENDING; -// else - { - llSecondaryState = LL_SEC_STATE_IDLE; - osal_stop_timerEx( LL_TaskID, LL_EVT_SECONDARY_ADV ); // stop timer - } - } - - HAL_EXIT_CRITICAL_SECTION(); - osal_stop_timerEx(LL_TaskID, LL_EVT_RPA_TIMEOUT); - break; - - default: - // we have an invalid value for advertisement mode - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - return( LL_STATUS_SUCCESS ); -} - - -#if USE_CODED_PHY -//2020.10.22,Jie,fix phyupdate issue -llStatus_t LL_PhyUpdate1( uint16 connId ) -{ - llStatus_t status; - llConnState_t* connPtr; - uint8 phyMode; - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId ]; - - // check if an update control procedure is already pending - if ( ((connPtr->ctrlPktInfo.ctrlPktCount > 0) && - (connPtr->ctrlPktInfo.ctrlPkts[0] == LL_CTRL_PHY_UPDATE_IND)) || - (connPtr->pendingPhyModeUpdate == TRUE) ) - { - return( LL_STATUS_ERROR_CTRL_PROC_ALREADY_ACTIVE ); - } - - // we only support symmetric connection - // tx rx phy should be same - phyMode = connPtr->llPhyModeCtrl.req.txPhy & connPtr->llPhyModeCtrl.rsp.txPhy; - phyMode &= connPtr->llPhyModeCtrl.req.rxPhy & connPtr->llPhyModeCtrl.rsp.rxPhy; - - //20200727 Jie add for no change case - if((phyMode==0) || (phyMode == connPtr->llPhyModeCtrl.local.txPhy)) - { - //no change case - connPtr->phyUpdateInfo.m2sPhy = 0; - connPtr->phyUpdateInfo.s2mPhy = 0; - } - else if((phyMode&LE_2M_PHY)&&(connPtr->llPhyModeCtrl.local.txPhy != LE_2M_PHY)) - { - connPtr->phyUpdateInfo.m2sPhy = LE_2M_PHY; - connPtr->phyUpdateInfo.s2mPhy = LE_2M_PHY; - } - else if((phyMode&LE_CODED_PHY)&&(connPtr->llPhyModeCtrl.local.txPhy != LE_CODED_PHY)) - { - connPtr->phyUpdateInfo.m2sPhy = LE_CODED_PHY; - connPtr->phyUpdateInfo.s2mPhy = LE_CODED_PHY; - } - else - { - //no perferce can not support the tx/rx same time - connPtr->phyUpdateInfo.m2sPhy = LE_1M_PHY; - connPtr->phyUpdateInfo.s2mPhy = LE_1M_PHY; - } - - if(connPtr->phyUpdateInfo.m2sPhy==0) - { - connPtr->phyModeUpdateEvent = 0; - connPtr->phyUpdateInfo.instant = connPtr->phyModeUpdateEvent; - } - else - { - connPtr->phyModeUpdateEvent = (connPtr->curParam.slaveLatency+1) + - LL_INSTANT_NUMBER_MIN; - connPtr->phyUpdateInfo.instant = connPtr->phyModeUpdateEvent; - } - - // queue control packet for processing - llEnqueueCtrlPkt( connPtr, LL_CTRL_PHY_UPDATE_IND ); - return( LL_STATUS_SUCCESS ); -} -#endif - -//2020.10.22,Jie,fix scanparam ownaddr setting issue -llStatus_t LL_SetScanParam1( uint8 scanType, - uint16 scanInterval, - uint16 scanWindow, - uint8 ownAddrType, - uint8 scanWlPolicy ) -{ - llStatus_t ret; - ret = LL_SetScanParam0(scanType,scanInterval,scanWindow,ownAddrType,scanWlPolicy); -// LOG("%s,ret %d\n",__func__,ret); - - if(ret == LL_STATUS_SUCCESS) - { - scanInfo.ownAddrType = ownAddrType; - - if ( ownAddrType == LL_DEV_ADDR_TYPE_PUBLIC || ownAddrType == LL_DEV_ADDR_TYPE_RPA_PUBLIC) - { - LL_COPY_DEV_ADDR_LE( scanInfo.ownAddr, ownPublicAddr ); - } - else - { - LL_COPY_DEV_ADDR_LE( scanInfo.ownAddr, ownRandomAddr ); - } - } - - return ret; -} - -//2020.10.22,Jie, modify sanity check: -//add ownaddrtype; -//add LL_STATUS_ERROR_BAD_PARAMETER case -llStatus_t LL_SetScanControl1( uint8 scanMode, - uint8 filterReports ) -{ -// LOG("%s,scanMode %d\n",__func__,scanMode); - if (g_llScanMode == LL_MODE_EXTENDED ) - return LL_STATUS_ERROR_COMMAND_DISALLOWED; - - g_llScanMode = LL_MODE_LEGACY; - - // check if a direct test mode or modem test is in progress - if ( (llState == LL_STATE_DIRECT_TEST_MODE_TX) || - (llState == LL_STATE_DIRECT_TEST_MODE_RX) || - (llState == LL_STATE_MODEM_TEST_TX) || - (llState == LL_STATE_MODEM_TEST_RX) || - (llState == LL_STATE_MODEM_TEST_TX_FREQ_HOPPING) ) - { - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - // sanity checks again to be sure we don't start with bad parameters - if ( ( (scanInfo.scanType != LL_SCAN_PASSIVE) && - (scanInfo.scanType != LL_SCAN_ACTIVE)) || - ( (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_PUBLIC) && - (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_RANDOM) && - (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_PUBLIC) && - (scanInfo.ownAddrType != LL_DEV_ADDR_TYPE_RPA_RANDOM)) || - ( (scanInfo.scanInterval < LL_SCAN_WINDOW_MIN) || - (scanInfo.scanInterval > LL_SCAN_WINDOW_MAX)) || - ( (scanInfo.scanWindow < LL_SCAN_WINDOW_MIN) || - (scanInfo.scanWindow > LL_SCAN_WINDOW_MAX)) || - ( (scanInfo.scanWindow > scanInfo.scanInterval) ) || - ( (filterReports != LL_FILTER_REPORTS_DISABLE) && - (filterReports != LL_FILTER_REPORTS_ENABLE)) ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // check if we should begin scanning - switch( scanMode ) - { - // Scanning Mode is On - case LL_SCAN_START: - -// LOG("LL_SCAN_START\n"); - - // check if command makes sense - if ( scanInfo.scanMode == LL_SCAN_START ) - { - // this is unexpected; something is wrong - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - } - - //20200804 Jie :if random address isn't defined,can't set ownaddresstype to random - if (((scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RANDOM) || - (scanInfo.ownAddrType == LL_DEV_ADDR_TYPE_RPA_RANDOM)) && - ( (ownRandomAddr[0] == 0xFF) && - (ownRandomAddr[1] == 0xFF) && - (ownRandomAddr[2] == 0xFF) && - (ownRandomAddr[3] == 0xFF) && - (ownRandomAddr[4] == 0xFF) && - (ownRandomAddr[5] == 0xFF) )) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // get a task block for this BLE state/role - // Note: There will always be a valid pointer, so no NULL check required. -// scanInfo.llTask = llAllocTask( LL_TASK_ID_SCANNER ); - - // check if no other tasks are currently active - if ( llState == LL_STATE_IDLE ) - { - // indicate Scan has not already been initalized - scanInfo.initPending = TRUE; - // save the scan filtering flag - scanInfo.filterReports = filterReports; - // add by HZF - scanInfo.nextScanChan = LL_SCAN_ADV_CHAN_37; - // set LL state - llState = LL_STATE_SCAN; - // Note: llState has been changed. - LL_evt_schedule(); - } - else if ((llState == LL_STATE_CONN_SLAVE - || llState == LL_STATE_CONN_MASTER) // HZF: if we should support adv + scan, add more state here - && (pGlobal_config[LL_SWITCH] & SIMUL_CONN_SCAN_ALLOW)) - { - if (llSecondaryState != LL_SEC_STATE_IDLE) - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - scanInfo.nextScanChan = LL_SCAN_ADV_CHAN_37; - llSecondaryState = LL_SEC_STATE_SCAN; - osal_set_event(LL_TaskID, LL_EVT_SECONDARY_SCAN); - } - else - return( LL_STATUS_ERROR_UNEXPECTED_STATE_ROLE ); - - // indicate we are actively scanning - scanInfo.scanMode = LL_SCAN_START; - break; - - case LL_SCAN_STOP: -// LOG("LL_SCAN_STOP\n"); - HAL_ENTER_CRITICAL_SECTION(); - - if (llState == LL_STATE_SCAN) // no conn + scan case - { - llState = LL_STATE_IDLE; // if not in connect state, set idle to disable scan - //ZQ 20190912 - //stop ll timer when idle, considering the scan-adv interleve case - clear_timer(AP_TIM1); - ll_debug_output(DEBUG_LL_STATE_IDLE); - } - else if (llState == LL_STATE_CONN_SLAVE - || llState == LL_STATE_CONN_MASTER) // conn + scan case - { - llSecondaryState = LL_SEC_STATE_IDLE; - // bugfix for multi-role - osal_stop_timerEx(LL_TaskID, LL_EVT_SECONDARY_SCAN); - } - - // indicate we are no longer actively scanning - scanInfo.scanMode = LL_SCAN_STOP; - // A2 multiconn, should we consider current LL state to avoid change master/slave configuration - // now LL slave/master event use same parameter 88 - ll_hw_set_rx_timeout(88); - // HZF: should we stop scan task immediately, or wait scan IRQ then stop? Now use option 2. - HAL_EXIT_CRITICAL_SECTION(); - - while((volatile uint32)llWaitingIrq == TRUE); - - break; - - default: - // we have an invalid value for advertisement mode - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - return( LL_STATUS_SUCCESS ); -} - -//2020.10.23 Jie,fix g_llPduLen.suggested.MaxTxTime setting error -llStatus_t LL_SetDataLengh1( uint16 connId,uint16 TxOctets,uint16 TxTime ) -{ - if(TxOctets > LL_PDU_LENGTH_SUPPORTED_MAX_TX_OCTECTS - || TxTime > LL_PDU_LENGTH_SUPPORTED_MAX_TX_TIME - || TxOctets < LL_PDU_LENGTH_INITIAL_MAX_TX_OCTECTS - || TxTime < LL_PDU_LENGTH_INITIAL_MAX_TX_TIME) - { - return(LL_STATUS_ERROR_PARAM_OUT_OF_RANGE); - } - else - { - g_llPduLen.suggested.MaxTxOctets= TxOctets; - g_llPduLen.suggested.MaxTxTime = TxTime; - return LL_SetDataLengh0( connId,TxOctets,TxTime ); - } -} - -void llProcessTxData1( llConnState_t* connPtr, uint8 context ) -{ - if(context==LL_TX_DATA_CONTEXT_SEND_DATA) - return; - - llProcessTxData0(connPtr,context); -} -/******************************************************************************* - @fn ll_generateTxBuffer1 - - @brief This function generate Tx data and find in Tx FIFO - there are 4 kinds of data: - 1. control data - 2. last no-ack data - 3. last no-transmit data - 4. new data - in the new RTLP buffer, the data should be in the below sequence: - 2 --> 3 --> 1 --> 4 (changed) - - input parameters - - @param txFifo_vacancy - allow max tx packet number. - - output parameters - - @param None. - - @return the pointer of 1st not transmit packet/new packet. - -*/ -uint16 ll_generateTxBuffer1(int txFifo_vacancy, uint16* pSave_ptr) -{ - int i, new_pkts_num, tx_num = 0; - llConnState_t* connPtr; - connPtr = &conn_param[g_ll_conn_ctx.currentConn]; - - // 0. write empty packet - if(connPtr->llMode == LL_HW_RTLP_EMPT - || connPtr->llMode == LL_HW_TRLP_EMPT) // TRLP case, to be confirmed/test - { - LL_HW_WRT_EMPTY_PKT; - connPtr->ll_buf.tx_not_ack_pkt->valid = 0; // empty mode, tx_not_ack buffer null or empty packet - tx_num ++; - } - // 1. write last not-ACK packet - else if (connPtr->ll_buf.tx_not_ack_pkt->valid != 0) // TODO: if the valid field could omit, move the not-ACK flag to buf. - { - ll_hw_write_tfifo((uint8*)&(connPtr->ll_buf.tx_not_ack_pkt->header), ((connPtr->ll_buf.tx_not_ack_pkt->header & 0xff00) >> 8) + 2); - //txFifo_vacancy --; - tx_num ++; - connPtr->ll_buf.tx_not_ack_pkt->valid = 0; - AT_LOG("write last not-ACK packet \n"); - } - - // 1st RTLP event, no porcess 0/1, it should be 0 because we have reset the TFIFO - // other case, it is 1st not transmit packet/new packet - *pSave_ptr = ll_hw_get_tfifo_wrptr(); - - // 3. write last not transmit packets - if (connPtr->ll_buf.ntrm_cnt > 0 - && txFifo_vacancy >= connPtr->ll_buf.ntrm_cnt) - { - for (i = 0; i < connPtr->ll_buf.ntrm_cnt ; i++) - { - ll_hw_write_tfifo((uint8*)&(connPtr->ll_buf.tx_ntrm_pkts[i]->header), ((connPtr->ll_buf.tx_ntrm_pkts[i]->header & 0xff00) >> 8) + 2); - } - - txFifo_vacancy -= connPtr->ll_buf.ntrm_cnt; - tx_num += connPtr->ll_buf.ntrm_cnt; - AT_LOG("write last not transmit packets\n"); - connPtr->ll_buf.ntrm_cnt = 0; - } - - rfCounters.numTxCtrl = 0; // add on 2017-11-15, set tx control packet number 0 - - // 2. write control packet - if ((connPtr->ll_buf.tx_not_ack_pkt->valid == 0 || // no tx not_ack packet, add on 2017-11-15 - (connPtr->ll_buf.tx_not_ack_pkt->header & 0x3) != LL_DATA_PDU_HDR_LLID_CONTROL_PKT) // last nack packet is not a control packet - && connPtr->ctrlDataIsPending // we only support 1 control procedure per connection - && !connPtr->ctrlDataIsProcess - && txFifo_vacancy > connPtr->ll_buf.ntrm_cnt) // tricky here: if the Tx FIFO is full and nothing is sent in last event, then it can't fill new packet(include ctrl pkt) in new event - { - // not in a control procedure, and there is control packet pending - // fill ctrl packet - ll_hw_write_tfifo((uint8*)&(connPtr->ctrlData .header), ((connPtr->ctrlData .header & 0xff00) >> 8) + 2); - txFifo_vacancy --; - tx_num ++; - // put Ctrl packet in TFIFO, change the control procedure status - connPtr->ctrlDataIsPending = 0; - connPtr->ctrlDataIsProcess = 1; - rfCounters.numTxCtrl = 1; // add 2017-11-15, if put new ctrl packet in FIFO, add the counter - } - - if (connPtr->ll_buf.ntrm_cnt != 0) - { - // should not be here, new packets should not be sent if there is not-transmit packets - return tx_num; - } - - // 4. write new data packets to FIFO - new_pkts_num = getTxBufferSize(connPtr); - - if ((new_pkts_num > 0) - && txFifo_vacancy > 0) - { - // fill the data packet to Tx FIFO - for (i = 0; i < new_pkts_num && i < txFifo_vacancy; i++) - { - uint8_t idx = get_tx_read_ptr(connPtr); - ll_hw_write_tfifo((uint8*)&(connPtr->ll_buf.tx_conn_desc[idx]->header), ((connPtr->ll_buf.tx_conn_desc[idx]->header & 0xff00) >> 8) + 2); - update_tx_read_ptr(connPtr); - tx_num++; - AT_LOG("write new data packets to FIFO\n"); - // update PM counter, add A1 ROM metal change - connPtr->pmCounter.ll_send_data_pkt_cnt ++; - } - } - - // 2020-02-13 periodic cte req & rsp - if( ( connPtr->llConnCTE.enable ) && ( connPtr->llCTE_ReqFlag )) - { - if( connPtr->llConnCTE.CTE_Request_Intv > 0 ) - { - if( connPtr->llConnCTE.CTE_Count_Idx < connPtr->llConnCTE.CTE_Request_Intv ) - connPtr->llConnCTE.CTE_Count_Idx++; - else - { - connPtr->llConnCTE.CTE_Count_Idx = 0; - llEnqueueCtrlPkt(connPtr, LL_CTRL_CTE_REQ ); - } - } - } - - return tx_num; -} - - -#if USE_CODED_PHY -//2020.10.23 Jie,fix setphymode issue -llStatus_t LL_SetPhyMode1( uint16 connId,uint8 allPhy,uint8 txPhy, uint8 rxPhy,uint16 phyOptions) -{ - uint8 i; - llStatus_t status; - llConnState_t* connPtr; - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId]; - - // check if a feature response control procedure has taken place - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if dle is a supported feature set item - if( ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_2M_PHY) != LL_FEATURE_2M_PHY ) - && ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_CODED_PHY) != LL_FEATURE_CODED_PHY ) ) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - // check if an updated parameters control procedure is already what's pending - if ( ((connPtr->ctrlPktInfo.ctrlPktCount > 0) && - (connPtr->ctrlPktInfo.ctrlPkts[0] == LL_CTRL_PHY_REQ)) || - (connPtr->pendingPhyModeUpdate== TRUE) || - (connPtr->llPhyModeCtrl.isWatingRsp == TRUE) || (connPtr->llPhyModeCtrl.isProcessingReq == TRUE) ) - { - return( LL_STATUS_ERROR_CTRL_PROC_ALREADY_ACTIVE ); - } - - //support Symmetric Only - if(allPhy==0 &&(txPhy!=rxPhy)) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - //jie 2020.9.3 check unsupport phy - if ((txPhy > 0x07) || (rxPhy >0x07)) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - uint8 tx_chance = (txPhy ^ connPtr->llPhyModeCtrl.local.txPhy) ^connPtr->llPhyModeCtrl.local.txPhy; - - if(tx_chance & LE_1M_PHY) - { - txPhy = LE_1M_PHY; - } - else if(tx_chance & LE_2M_PHY) - { - txPhy = LE_2M_PHY; - } - else if(tx_chance & LE_CODED_PHY) - { - txPhy = LE_CODED_PHY; - } - else - { - //nothing - } - - uint8 rx_chance = (rxPhy ^ connPtr->llPhyModeCtrl.local.rxPhy)^connPtr->llPhyModeCtrl.local.rxPhy; - - if(rx_chance & LE_1M_PHY) - { - rxPhy = LE_1M_PHY; - } - else if(rx_chance & LE_2M_PHY) - { - rxPhy = LE_2M_PHY; - } - else if(rx_chance & LE_CODED_PHY) - { - rxPhy = LE_CODED_PHY; - } - else - { - //nothing - } - - // how to check the required param? - //LL_TS_5.0.3 Table 4.43: PDU payload contents for each case variation for LE 2M PHY - connPtr->llPhyModeCtrl.req.allPhy = allPhy; - - if(connPtr->llPhyModeCtrl.req.allPhy==0) - { - connPtr->llPhyModeCtrl.req.txPhy = txPhy; - connPtr->llPhyModeCtrl.req.rxPhy = rxPhy; - } - else if(connPtr->llPhyModeCtrl.req.allPhy==1) - { - connPtr->llPhyModeCtrl.req.txPhy = rxPhy;//0; - connPtr->llPhyModeCtrl.req.rxPhy = rxPhy; - } - else if(connPtr->llPhyModeCtrl.req.allPhy==2) - { - connPtr->llPhyModeCtrl.req.txPhy = txPhy; - connPtr->llPhyModeCtrl.req.rxPhy = txPhy;//0; - } - else - { - //no prefer on both phy - connPtr->llPhyModeCtrl.req.txPhy = LE_1M_PHY;//0; - connPtr->llPhyModeCtrl.req.rxPhy = LE_1M_PHY;//0; - } - - connPtr->llPhyModeCtrl.phyOptions = phyOptions; - //update def.phy jie 2020.9.2 - connPtr->llPhyModeCtrl.def.allPhy = allPhy; - // connPtr->llPhyModeCtrl.def.txPhy = connPtr->llPhyModeCtrl.req.txPhy; - // connPtr->llPhyModeCtrl.def.rxPhy = connPtr->llPhyModeCtrl.req.rxPhy; - // setup an LL_CTRL_PHY_REQ - llEnqueueCtrlPkt( connPtr, LL_CTRL_PHY_REQ ); - return(LL_STATUS_SUCCESS); -} -#endif - - -/* 2020.11.11,Jie,fix ownaddr random address source issue -*/ -llStatus_t LL_CreateConn1( uint16 scanInterval, - uint16 scanWindow, - uint8 initWlPolicy, - uint8 peerAddrType, - uint8* peerAddr, - uint8 ownAddrType, - uint16 connIntervalMin, - uint16 connIntervalMax, - uint16 connLatency, - uint16 connTimeout, - uint16 minLength, // minimum length of connection needed for this LE conn, no use now - uint16 maxLength ) // maximum length of connection needed for this LE conn, no use now -{ - CreateConn_Flag = TRUE; - return LL_CreateConn0(scanInterval, - scanWindow, - initWlPolicy, - peerAddrType, - peerAddr, - ownAddrType, - connIntervalMin, - connIntervalMax, - connLatency, - connTimeout, - minLength, - maxLength ); -} - -#if USE_CODED_PHY -//2020.11.12, add case LL_REJECT_IND_EXT -void llProcessMasterControlPacket1( llConnState_t* connPtr, - uint8* pBuf ) -{ - uint8 i; - uint8 opcode = *pBuf++; - uint8 iqCnt = 0; - - // check the type of control packet - switch( opcode ) - { - // Encryption Response - case LL_CTRL_ENC_RSP: - // concatenate slave's SKDs with SKDm - // Note: The SKDs MSO is the MSO of the SKD. - //PHY_READ_BYTE( (uint8 *)&connPtr->encInfo.SKD[LL_ENC_SKD_S_OFFSET], LL_ENC_SKD_S_LEN ); - pBuf = llMemCopySrc( (uint8*)&connPtr->encInfo.SKD[LL_ENC_SKD_S_OFFSET], pBuf, LL_ENC_SKD_S_LEN ); - // bytes are received LSO..MSO, but need to be maintained as - // MSO..LSO, per FIPS 197 (AES), so reverse the bytes - LL_ENC_ReverseBytes( &connPtr->encInfo.SKD[LL_ENC_SKD_S_OFFSET], LL_ENC_SKD_S_LEN ); - // concatenate the slave's IVs with IVm - // Note: The IVs MSO is the MSO of the IV. - //PHY_READ_BYTE( (uint8 *)&connPtr->encInfo.IV[LL_ENC_IV_S_OFFSET], LL_ENC_IV_S_LEN ); - pBuf = llMemCopySrc( (uint8*)&connPtr->encInfo.IV[LL_ENC_IV_S_OFFSET], pBuf, LL_ENC_IV_S_LEN ); - // bytes are received LSO..MSO, but need to be maintained as - // MSO..LSO, per FIPS 197 (AES), so reverse the bytes - // ALT: POSSIBLE TO MAINTAIN THE IV IN LSO..MSO ORDER SINCE THE NONCE - // IS FORMED THAT WAY. - LL_ENC_ReverseBytes( &connPtr->encInfo.IV[LL_ENC_IV_S_OFFSET], LL_ENC_IV_S_LEN ); - - // place the IV into the Nonce to be used for this connection - // Note: If a Pause Encryption control procedure is started, the - // old Nonce value will be used until encryption is disabled. - // Note: The IV is sequenced LSO..MSO within the Nonce. - // ALT: POSSIBLE TO MAINTAIN THE IV IN LSO..MSO ORDER SINCE THE NONCE - // IS FORMED THAT WAY. - for (i=0; iencInfo.nonce[ LL_END_NONCE_IV_OFFSET+i ] = - connPtr->encInfo.IV[ (LL_ENC_IV_LEN-i)-1 ]; - } - - // generate the Session Key (i.e. SK = AES128(LTK, SKD)) - LL_ENC_GenerateSK( connPtr->encInfo.LTK, - connPtr->encInfo.SKD, - connPtr->encInfo.SK ); - // LOG("LTK: %x\r\n", connPtr->encInfo.LTK); - // LOG("SKD: %x\r\n", connPtr->encInfo.SKD); - // LOG("SK: %x\r\n", connPtr->encInfo.SK[0], connPtr->encInfo.SK[1], connPtr->encInfo.SK[],connPtr->encInfo.SK[0], - // connPtr->encInfo.SK[0],connPtr->encInfo.SK[0],connPtr->encInfo.SK[0]); - // Note: Done for now; the slave will send LL_CTRL_START_ENC_REQ. - //LOG("ENC_RSP ->"); - break; - - // Start Encryption Request - case LL_CTRL_START_ENC_REQ: - // set a flag to indicate we've received this packet - connPtr->encInfo.startEncReqRcved = TRUE; - break; - - // Start Encryption Response - case LL_CTRL_START_ENC_RSP: - // set flag to allow outgoing data transmissions - connPtr->txDataEnabled = TRUE; - // okay to receive data again - connPtr->rxDataEnabled = TRUE; - // indicate we've received the start encryption response - connPtr->encInfo.startEncRspRcved = TRUE; - - // notify the Host - if ( connPtr->encInfo.encRestart == TRUE ) - { - // a key change was requested - LL_EncKeyRefreshCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED ); - } - else - { - // a new encryption was requested - LL_EncChangeCback( connPtr->connId, - LL_ENC_KEY_REQ_ACCEPTED, - LL_ENCRYPTION_ON ); - } - - // clear the restart flag in case of another key change request - // Note: But in reality, there isn't a disable encryption in BLE, - // so once encryption is enabled, any call to LL_StartEncrypt - // will result in an encryption key change callback. - connPtr->encInfo.encRestart = FALSE; - //LOG("START_ENC_RSP ->"); - break; - - // Pause Encryption Response - case LL_CTRL_PAUSE_ENC_RSP: - // set a flag to indicate we have received LL_START_ENC_RSP - connPtr->encInfo.pauseEncRspRcved = TRUE; - break; - - // Reject Encryption Indication - /* - case LL_CTRL_REJECT_IND: - // either the slave's Host has failed to provide an LTK, or - // the encryption feature is not supported by the slave, so read - // the rejection indication error code - //connPtr->encInfo.encRejectErrCode = PHY_READ_BYTE_VAL(); - connPtr->encInfo.encRejectErrCode = *pBuf; - - // and end the start encryption procedure - connPtr->encInfo.rejectIndRcved = TRUE; - - break; - */ - - // Controller Feature Setup --> should be LL_CTRL_SLAVE_FEATURE_REQ - // case LL_CTRL_FEATURE_REQ: // new for BLE4.2, to test - - // for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - // } - - // // logical-AND with master's feature set to indicate which of the - // // controller features in the master the slave requests to be used - // for (i=0; ifeatureSetInfo.featureSet[i] = - // *pBuf++ & deviceFeatureSet.featureSet[i]; - // } - - // // schedule the output of the control packet - // // Note: Features to be used will be taken on the next connection - // // event after the response is successfully transmitted. - // llEnqueueCtrlPkt( connPtr, LL_CTRL_FEATURE_RSP ); - - // break; - - case LL_CTRL_FEATURE_RSP: - { - uint8 peerFeatureSet[ LL_MAX_FEATURE_SET_SIZE ]; - // get the peer's device Feature Set - //for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - - // logical-AND with slave's feature set to indicate which of the - // controller features in the master the slave requests to be - // used - // Note: For now, there is only one feature that is supported - // controller-to-controller. - // Note: If the peer supports the feature, then our setting is - // the controller-to-controller setting, so no action - // is required. - if ( !(peerFeatureSet[0] & LL_FEATURE_ENCRYPTION) ) - { - // this feature is not supported by the peer, so it doesn't - // matter if we support it or not, it should not be supported - connPtr->featureSetInfo.featureSet[0] &= ~LL_FEATURE_ENCRYPTION; - } - } - - // set flag to indicate the response has been received - connPtr->featureSetInfo.featureRspRcved = TRUE; - break; - - // Version Information Indication - case LL_CTRL_VERSION_IND: - - // check if the peer's version information has already been obtained - if ( connPtr->verExchange.peerInfoValid == TRUE ) - { - // it has, so something is wrong as the spec indicates that - // only one version indication should be sent for a connection - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else // the peer version info is invalid, so make it valid - { - // get the peer's version information and save it - //PHY_READ_BYTE( (uint8 *)&peerInfo.verInfo.verNum, 1 ); - connPtr->verInfo.verNum = *pBuf++; - //PHY_READ_BYTE( (uint8 *)&peerInfo.verInfo.comId, 2 ); - pBuf = llMemCopySrc( (uint8*)&connPtr->verInfo.comId, pBuf, 2 ); - //PHY_READ_BYTE( (uint8 *)&peerInfo.verInfo.subverNum, 2 ); - pBuf = llMemCopySrc( (uint8*)&connPtr->verInfo.subverNum, pBuf, 2 ); - // set a flag to indicate it is now valid - connPtr->verExchange.peerInfoValid = TRUE; - - // check if a version indication has been sent - if ( connPtr->verExchange.verInfoSent == FALSE ) - { - // no, so this is a peer's request for our version information - llEnqueueCtrlPkt( connPtr, LL_CTRL_VERSION_IND ); - } - } - - break; - - // Terminate Indication - case LL_CTRL_TERMINATE_IND: - // read the reason code - connPtr->termInfo.reason = *pBuf; - // set flag to indicate a termination indication was received - connPtr->termInfo.termIndRcvd = TRUE; - // received a terminate from peer host, so terminate after - // confirming we have sent an ACK - // Note: For the master, we have to ensure that this control - // packet was ACK'ed. For that, the nR has a new flag that - // is set when the control packet is received, and cleared - // when the control packet received is ACK'ed. - // Note: This is not an issue as a slave because the terminate - // packet will re-transmit until the slave ACK's. - // ALT: COULD REPLACE THIS CONTROL PROCEDURE AT THE HEAD OF THE - // QUEUE SO TERMINATE CAN TAKE PLACE ASAP. - //llReplaceCtrlPkt( connPtr, LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK ); - llEnqueueCtrlPkt( connPtr, LL_CTRL_TERMINATE_RX_WAIT_FOR_TX_ACK ); - break; - - // LL PDU Data Length Req - case LL_CTRL_LENGTH_REQ: - - // check if the feature response procedure has already been performed - // on this connection - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if supported DLE - if ( (connPtr->featureSetInfo.featureSet[0] & LL_FEATURE_DATA_LENGTH_EXTENSION) - != LL_FEATURE_DATA_LENGTH_EXTENSION ) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - if(connPtr->llPduLen.isProcessingReq==FALSE) - { - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxTime), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxTime), pBuf, 2 ); - connPtr->llPduLen.isProcessingReq=TRUE; - llEnqueueCtrlPkt( connPtr, LL_CTRL_LENGTH_RSP ); - } - } - - break; - - // LL PDU Data Length RSP - case LL_CTRL_LENGTH_RSP: - - // check if supported DLE - if ( (connPtr->featureSetInfo.featureSet[0] & LL_FEATURE_DATA_LENGTH_EXTENSION) - != LL_FEATURE_DATA_LENGTH_EXTENSION ) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - if(connPtr->llPduLen.isWatingRsp==TRUE ) - { - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxRxTime), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxOctets), pBuf, 2 ); - pBuf = llMemCopySrc( (uint8*)& (connPtr->llPduLen.remote.MaxTxTime), pBuf, 2 ); - llPduLengthUpdate((uint16)connPtr->connId); - connPtr->llPduLen.isWatingRsp=FALSE; - } - } - - break; - - // LL PHY UPDATE REQ - case LL_CTRL_PHY_REQ: - - // check if the feature response procedure has already been performed - // on this connection - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if supported PHY MODE UPDATE - if ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_2M_PHY) != LL_FEATURE_2M_PHY - && (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_CODED_PHY) != LL_FEATURE_CODED_PHY) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - //process for the protocol collision - //2018-11-10 by ZQ - if(connPtr->llPhyModeCtrl.isWatingRsp==TRUE || - connPtr->pendingChanUpdate==TRUE || - connPtr->pendingParamUpdate==TRUE ) - { - connPtr->isCollision=TRUE; - connPtr->rejectOpCode = LL_CTRL_PHY_REQ; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_EXT_IND ); - } - else - { - if(connPtr->llPhyModeCtrl.isProcessingReq==FALSE) - { - connPtr->llPhyModeCtrl.req.txPhy=*pBuf++; - connPtr->llPhyModeCtrl.req.rxPhy=*pBuf++; - connPtr->llPhyModeCtrl.req.allPhy=connPtr->llPhyModeCtrl.def.allPhy; - connPtr->llPhyModeCtrl.rsp.txPhy=connPtr->llPhyModeCtrl.def.txPhy; - connPtr->llPhyModeCtrl.rsp.rxPhy=connPtr->llPhyModeCtrl.def.rxPhy; - //rsp and req will be used to determine the next phy mode - LL_PhyUpdate((uint16) connPtr->connId); - connPtr->llPhyModeCtrl.isProcessingReq=TRUE; - } - else - { - //should no be here - } - } - } - - break; - - // LL_CTRL_PHY_RSP - case LL_CTRL_PHY_RSP: - - // check if supported PHY MODE UPDATE - if ( (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_2M_PHY) != LL_FEATURE_2M_PHY - && (connPtr->featureSetInfo.featureSet[1] & LL_FEATURE_CODED_PHY) != LL_FEATURE_CODED_PHY) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - if(connPtr->llPhyModeCtrl.isWatingRsp==TRUE) - { - connPtr->llPhyModeCtrl.rsp.txPhy=*pBuf++; - connPtr->llPhyModeCtrl.rsp.rxPhy=*pBuf++; - LL_PhyUpdate((uint16) connPtr->connId); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE; - } - else - { - //should no be here - } - } - - break; - - case LL_CTRL_CTE_REQ: - - // check if the feature response procedure has already been performed - // on this connection - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if supported CTE Response Feature - // if( connPtr->featureSetInfo.featureSet[LL_CTE_FEATURE_IDX] & LL_CONN_CTE_RSP) - if(( ( connPtr->featureSetInfo.featureSet[LL_CTE_FEATURE_IDX] & LL_CONN_CTE_RSP) != LL_CONN_CTE_RSP) || \ - ( connPtr->llCTE_RspFlag != TRUE )) - { - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - } - else - { - // process for the protocol collision - // if other ctrl command procedure in processing , then reject - if(connPtr->llCTEModeCtrl.isWatingRsp==TRUE) - { - connPtr->isCollision=TRUE; - connPtr->rejectOpCode = LL_CTRL_CTE_REQ; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_EXT_IND ); - } - else - { - if(connPtr->llCTEModeCtrl.isProcessingReq==FALSE) - { - uint8 CTE_tmp; - CTE_tmp = *pBuf++; - connPtr->llConnCTE.CTE_Length = CTE_tmp & 0x1F; - connPtr->llConnCTE.CTE_Type = CTE_tmp & 0xC0; - connPtr->llCTEModeCtrl.isProcessingReq=TRUE; - - if( ( connPtr->llConnCTE.enable ) && ( connPtr->llRfPhyPktFmt < LL_PHY_CODE )) - { - llEnqueueCtrlPkt( connPtr, LL_CTRL_CTE_RSP ); - } - else - { - if( connPtr->llRfPhyPktFmt >= LL_PHY_CODE ) - { - connPtr->llCTEModeCtrl.errorCode = LL_STATUS_ERROR_INVALID_LMP_LL_PARAMETER; - } - else - { - connPtr->llCTEModeCtrl.errorCode = LL_STATUS_ERROR_UNSUPPORT_LMP_LL_PARAMETER; - } - - connPtr->rejectOpCode = LL_CTRL_CTE_REQ; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_EXT_IND ); - } - } - } - } - - break; - - case LL_CTRL_CTE_RSP: - if( connPtr->llCTEModeCtrl.isWatingRsp == TRUE ) - { - if( ( g_pLLcteISample != NULL ) && ( g_pLLcteQSample != NULL) ) - iqCnt = ll_hw_get_iq_RawSample( g_pLLcteISample, g_pLLcteQSample ); - - if( iqCnt > 0) - { - LL_ConnectionIQReportCback( connPtr->connId, - connPtr->llRfPhyPktFmt, - connPtr->currentChan, - connPtr->lastRssi, - // before CTE Transmit and sampling , no Antenna change , default 0 - 0, - connPtr->llConnCTE.CTE_Type, - connPtr->llConnCTE.slot_Duration, - // Packet_Status=0, CRC success,cause only CRC Correctly that can run here - 0, - connPtr->currentEvent, - iqCnt, - g_pLLcteISample, - g_pLLcteQSample); - } - else - { - // packet contain LL_CTE_RSP , but did not contain CTE field - // status = 0x0 : LL_CTE_RSP received successful , but without a CTE field - LL_CTE_Report_FailedCback( 0x0,connPtr->connId); - } - - connPtr->llCTEModeCtrl.isWatingRsp = FALSE; - } - - break; - - // Peer Device Received an Unknown Control Type - case LL_CTRL_UNKNOWN_RSP: - - // Note: There doesn't appear to be any action for this message, - // other than to ACK it. - if(connPtr->llPduLen.isWatingRsp) - { - llPduLengthUpdate((uint16)connPtr->connId); - connPtr->llPduLen.isWatingRsp=FALSE;//not support DLE - } - - if(connPtr->llPhyModeCtrl.isWatingRsp) - { - llPhyModeCtrlUpdateNotify(connPtr,LL_STATUS_ERROR_UNSUPPORTED_REMOTE_FEATURE); - connPtr->llPhyModeCtrl.isWatingRsp=FALSE;//not support PHY_UPDATE - } - - // 2020-01-23 add for CTE - if( connPtr->llCTEModeCtrl.isWatingRsp ) - { - connPtr->llCTEModeCtrl.isWatingRsp = FALSE; - } - - break; - - case LL_REJECT_IND: - case LL_REJECT_IND_EXT: - connPtr->rejectOpCode = *pBuf++; - uint8 errorcode = *pBuf++; - - if(connPtr->rejectOpCode == LL_CTRL_ENC_REQ) - { - // either the slave's Host has failed to provide an LTK, or - // the encryption feature is not supported by the slave, so read - // the rejection indication error code - //connPtr->encInfo.encRejectErrCode = PHY_READ_BYTE_VAL(); - connPtr->encInfo.encRejectErrCode = connPtr->rejectOpCode; - // and end the start encryption procedure - connPtr->encInfo.rejectIndRcved = TRUE; - LL_EncChangeCback( connPtr->connId, - errorcode, - LL_ENCRYPTION_OFF ); - } - else - { - //TBD - } - - //connPtr->isCollision=FALSE; - break; - - // Our Device Received an Unknown Control Type - default: - // unknown data PDU control packet received so save the type - connPtr->unknownCtrlType = opcode; - // schedule the output of the control packet - llEnqueueCtrlPkt( connPtr, LL_CTRL_UNKNOWN_RSP ); - break; - } - - return; -} -#endif - -static uint32 read_LL_remainder_time1(void) -{ - uint32 currentCount; - -/// uint32 g_tim1_pass = read_current_fine_time(); - read_current_fine_time(); - - currentCount = AP_TIM1->CurrentCount; - - if((currentCount < 6) || NVIC_GetPendingIRQ(TIM1_IRQn)) - return 0; - else - return (currentCount >> 2); -} - -uint8 llSecAdvAllow1(void) -{ - uint32 advTime, margin; - uint32 remainTime; - uint8 ret = FALSE; - // Hold off interrupts. - HAL_ENTER_CRITICAL_SECTION( ); - // read global config to get advTime and margin - advTime = pGlobal_config[LL_NOCONN_ADV_EST_TIME]; - margin = pGlobal_config[LL_NOCONN_ADV_MARGIN]; - // remain time before trigger LL HW - remainTime = read_LL_remainder_time1(); - - if ((remainTime > advTime + margin) - && !llWaitingIrq) - ret = TRUE; - else - { - llSecondaryState = LL_SEC_STATE_ADV_PENDING; - g_pmCounters.ll_conn_adv_pending_cnt ++; - } - - HAL_EXIT_CRITICAL_SECTION(); - return ret; -} - -uint32 llCalcMaxScanTime1(void) -{ - uint32 margin, scanTime; - uint32 remainTime; - margin = pGlobal_config[LL_SEC_SCAN_MARGIN]; - // Hold off interrupts. - HAL_ENTER_CRITICAL_SECTION( ); - // remain time before trigger LL HW - remainTime = read_LL_remainder_time1(); - scanTime = 0; - - if (remainTime > margin + pGlobal_config[LL_MIN_SCAN_TIME] - && !llWaitingIrq) - scanTime = remainTime - margin; - - HAL_EXIT_CRITICAL_SECTION(); - return (scanTime); -} - - - -llStatus_t LL_StartEncrypt1( uint16 connId, - uint8* rand, - uint8* eDiv, - uint8* ltk ) -{ - uint8 i; - llStatus_t status; - llConnState_t* connPtr; - - // make sure we're in Master role -// if ( llState != LL_STATE_CONN_MASTER ) -// { -// return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); -// } - - // check parameters - if ( (rand == NULL) || (eDiv == NULL) || (ltk == NULL) ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId]; - - // check if a feature response control procedure has taken place - if ( connPtr->featureSetInfo.featureRspRcved == FALSE ) - { - // it hasn't so re-load this device's local Feature Set to the - // connection as it may have been changed by the Host with HCI - // extenstion Set Local Feature Set command - for (i=0; ifeatureSetInfo.featureSet[i] = deviceFeatureSet.featureSet[i]; - } - } - - // check if encryption is a supported feature set item - if ( (connPtr->featureSetInfo.featureSet[0] & LL_FEATURE_ENCRYPTION) != LL_FEATURE_ENCRYPTION ) - { - return( LL_STATUS_ERROR_FEATURE_NOT_SUPPORTED ); - } - - // cache the master's random vector - // Note: The RAND will be left in LSO..MSO order as this is assumed to be the - // order of the bytes that will be returned to the Host. - for (i=0; iencInfo.RAND[i] = rand[i]; - } - - // cache the master's encryption diversifier - // Note: The EDIV will be left in LSO..MSO order as this is assumed to be the - // order of the bytes that will be returned to the Host. - connPtr->encInfo.EDIV[0] = eDiv[0]; - connPtr->encInfo.EDIV[1] = eDiv[1]; - - // cache the master's long term key - // Note: The order of the bytes will be maintained as MSO..LSO - // per FIPS 197 (AES). - for (i=0; iencInfo.LTK[(LL_ENC_LTK_LEN-i)-1] = ltk[i]; - } - - // generate SKDm - // Note: The SKDm LSO is the LSO of the SKD. - // Note: Placement of result forms concatenation of SKDm and SKDs. - // Note: The order of the bytes will be maintained as MSO..LSO - // per FIPS 197 (AES). - LL_ENC_GenDeviceSKD( &connPtr->encInfo.SKD[ LL_ENC_SKD_M_OFFSET ] ); - // generate IVm - // Note: The IVm LSO is the LSO of the IV. - // Note: Placement of result forms concatenation of IVm and IVs. - // Note: The order of the bytes will be maintained as MSO..LSO - // per FIPS 197 (AES). - LL_ENC_GenDeviceIV( &connPtr->encInfo.IV[ LL_ENC_IV_M_OFFSET ] ); - // schedule a cache update of FIPS TRNG values for next SKD/IV usage - // postRfOperations |= LL_POST_RADIO_CACHE_RANDOM_NUM; - (void)LL_ENC_GenerateTrueRandNum( cachedTRNGdata, LL_ENC_TRUE_RAND_BUF_SIZE ); - // set flag to stop all outgoing transmissions - connPtr->txDataEnabled = FALSE; - // invalidate the existing session key, if any - connPtr->encInfo.SKValid = FALSE; - // indicate the LTK is not valid - connPtr->encInfo.LTKValid = FALSE; - - // check if we are already in encryption mode - if ( connPtr->encEnabled == TRUE ) - { - // set a flag to indicate this is a restart (i.e. pause-then-start) - connPtr->encInfo.encRestart = TRUE; - // setup a pause encryption control procedure - llEnqueueCtrlPkt( connPtr, LL_CTRL_PAUSE_ENC_REQ ); - } - else // no, so... - { - // clear flag to indicate this is an encryption setup - connPtr->encInfo.encRestart = FALSE; - // setup an encryption control procedure - llEnqueueCtrlPkt( connPtr, LL_CTRL_ENC_REQ ); - } - - return( LL_STATUS_SUCCESS ); -} - - -// global configuration in SRAM, it could be change by application -// ================== VARIABLES ================================== -extern uint32 global_config[]; -extern uint32_t g_irqstack_top; - -// TODO: when integrate, the global_config should be set by APP project -__ATTR_SECTION_XIP__ -void init_config(void) -{ - pGlobal_config = global_config; - int i; - - for (i = 0; i < 256; i ++) - pGlobal_config[i] = 0; - - //save the app initial_sp which will be used in wakeupProcess 20180706 by ZQ - pGlobal_config[INITIAL_STACK_PTR] = (uint32_t)(&g_irqstack_top); - // LL switch setting - pGlobal_config[LL_SWITCH] = LL_DEBUG_ALLOW | SLAVE_LATENCY_ALLOW | LL_WHITELIST_ALLOW - | SIMUL_CONN_ADV_ALLOW | SIMUL_CONN_SCAN_ALLOW; //RC32_TRACKINK_ALLOW - - if(g_clk32K_config == CLK_32K_XTAL) - pGlobal_config[LL_SWITCH] &= 0xffffffee; - else - pGlobal_config[LL_SWITCH] |= LL_RC32K_SEL | RC32_TRACKINK_ALLOW; // TODO: RTC 32000 Hz or 32768 Hz ? - - // sleep delay - pGlobal_config[MIN_TIME_TO_STABLE_32KHZ_XOSC] = 10; // 10ms, temporary set - // system clock setting - pGlobal_config[CLOCK_SETTING] = g_system_clk; //CLOCK_32MHZ; - //------------------------------------------------------------------------ - // wakeup time cose - // t1. HW_Wakeup->MCU relase 62.5us - // t2. wakeup_process in waitRTCCounter 30.5us*[WAKEUP_DELAY] about 500us - // t3. dll_en -> hclk_sel in hal_system_ini 100us in run as RC32M - // t4. sw prepare cal sleep tick initial rf_ini about 300us @16M this part depends on HCLK - // WAKEUP_ADVANCE should be larger than t1+t2+t3+t4 - //------------------------------------------------------------------------ - // wakeup advance time, in us - pGlobal_config[WAKEUP_ADVANCE] = 1850;//650;//600;//310; - - if(g_system_clk==SYS_CLK_XTAL_16M) - { - pGlobal_config[WAKEUP_DELAY] = 16; - } - else if(g_system_clk==SYS_CLK_DBL_32M) - { - pGlobal_config[WAKEUP_DELAY] = 16; - } - else if(g_system_clk==SYS_CLK_DLL_48M) - { - pGlobal_config[WAKEUP_DELAY] = 16; - } - else if(g_system_clk==SYS_CLK_DLL_64M) - { - pGlobal_config[WAKEUP_DELAY] = 16; - } - - // sleep time, in us - pGlobal_config[MAX_SLEEP_TIME] = 30000000; - pGlobal_config[MIN_SLEEP_TIME] = 1600; - pGlobal_config[ALLOW_TO_SLEEP_TICK_RC32K] = 55;// 30.5 per tick - //------------------------------------------------------------------------- - //------------------------------------------------------------------------- - // LL engine settle time - pGlobal_config[LL_HW_BB_DELAY] = 54;//54-8; - pGlobal_config[LL_HW_AFE_DELAY] = 8; - pGlobal_config[LL_HW_PLL_DELAY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV] = 62-RF_PHY_EXT_PREAMBLE_US; - pGlobal_config[LL_HW_Tx_TO_RX_INTV] = 50;//65 - //------------------------------------------------2MPHY - // LL engine settle time - pGlobal_config[LL_HW_BB_DELAY_2MPHY] = 59; - pGlobal_config[LL_HW_AFE_DELAY_2MPHY] = 8; - pGlobal_config[LL_HW_PLL_DELAY_2MPHY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV_2MPHY] = 73-RF_PHY_EXT_PREAMBLE_US;//20200822 ZQ - pGlobal_config[LL_HW_Tx_TO_RX_INTV_2MPHY] = 57;//72 - //------------------------------------------------CODEPHY 500K - // LL engine settle time CODEPHY 500K - pGlobal_config[LL_HW_BB_DELAY_500KPHY] = 50;//54-8; - pGlobal_config[LL_HW_AFE_DELAY_500KPHY] = 8; - pGlobal_config[LL_HW_PLL_DELAY_500KPHY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV_500KPHY] = 2; - pGlobal_config[LL_HW_Tx_TO_RX_INTV_500KPHY] = 66;//72 - //------------------------------------------------CODEPHY 125K - // LL engine settle time CODEPHY 125K - pGlobal_config[LL_HW_BB_DELAY_125KPHY] = 30;//54-8; - pGlobal_config[LL_HW_AFE_DELAY_125KPHY] = 8; - pGlobal_config[LL_HW_PLL_DELAY_125KPHY] = 40;//45;//52; - // Tx2Rx and Rx2Tx interval - //Tx2Rx could be advanced a little - //Rx2Tx should be ensure T_IFS within150us+-2us - pGlobal_config[LL_HW_Rx_TO_TX_INTV_125KPHY] = 5; - pGlobal_config[LL_HW_Tx_TO_RX_INTV_125KPHY] = 66;//72 - // LL engine settle time, for advertisement - pGlobal_config[LL_HW_BB_DELAY_ADV] = 90; - pGlobal_config[LL_HW_AFE_DELAY_ADV] = 8; - pGlobal_config[LL_HW_PLL_DELAY_ADV] = 60; - // adv channel interval - pGlobal_config[ADV_CHANNEL_INTERVAL] = 1400;//6250; - pGlobal_config[NON_ADV_CHANNEL_INTERVAL] = 666;//6250; - - //20201207 Jie modify - if(g_system_clk==SYS_CLK_XTAL_16M) - { - // scan req -> scan rsp timing - pGlobal_config[SCAN_RSP_DELAY] = 13+RF_PHY_EXT_PREAMBLE_US;//23; - } - else if(g_system_clk==SYS_CLK_DBL_32M) - { - pGlobal_config[SCAN_RSP_DELAY] = 8+RF_PHY_EXT_PREAMBLE_US;//23; - } - else if(g_system_clk==SYS_CLK_DLL_48M) - { - // scan req -> scan rsp timing - pGlobal_config[SCAN_RSP_DELAY] = 6+RF_PHY_EXT_PREAMBLE_US;//20201207 set //4; // 12 // 2019/3/19 A2: 12 --> 9 - } - else if(g_system_clk == SYS_CLK_DLL_64M) // 2019/3/26 add - { - pGlobal_config[SCAN_RSP_DELAY] = 4+RF_PHY_EXT_PREAMBLE_US;//2020.12.07 set //3; - } - - // conn_req -> slave connection event calibration time, will advance the receive window - pGlobal_config[CONN_REQ_TO_SLAVE_DELAY] = 300;//192;//500;//192; - // calibration time for 2 connection event, will advance the next conn event receive window - // SLAVE_CONN_DELAY for sync catch, SLAVE_CONN_DELAY_BEFORE_SYNC for sync not catch - pGlobal_config[SLAVE_CONN_DELAY] = 300;//0;//1500;//0;//3000;//0; ---> update 11-20 - pGlobal_config[SLAVE_CONN_DELAY_BEFORE_SYNC] = 500;//160 NG//500 OK - // RTLP timeout - pGlobal_config[LL_HW_RTLP_LOOP_TIMEOUT] = 50000; - pGlobal_config[LL_HW_RTLP_TO_GAP] = 1000; - pGlobal_config[LL_HW_RTLP_1ST_TIMEOUT] = 2000 + pGlobal_config[SLAVE_CONN_DELAY] * 2;//500; - // direct adv interval configuration - pGlobal_config[HDC_DIRECT_ADV_INTERVAL] = 1000; - pGlobal_config[LDC_DIRECT_ADV_INTERVAL] = 6250; - // A1 ROM metal change for HDC direct adv, - pGlobal_config[DIR_ADV_DELAY] = 115; // in us, consider both direct adv broadcast time & SW delay, ... etc. - // A1 ROM metal change - pGlobal_config[LL_TX_PKTS_PER_CONN_EVT] = 6;//8; - pGlobal_config[LL_RX_PKTS_PER_CONN_EVT] = 6;//8; - pGlobal_config[LL_TRX_NUM_ADAPTIVE_CONFIG] = 8; //0: disable adaptive - //other: adaptive max limitation -// pGlobal_config[LL_TX_PWR_TO_REG_BIAS] = 0x15; // assume when g_rfPhyTxPower = 0x1f, tx power = 10dBm - //smart window configuration - pGlobal_config[LL_SMART_WINDOW_COEF_ALPHA] = 2; - pGlobal_config[LL_SMART_WINDOW_TARGET] = 600; - pGlobal_config[LL_SMART_WINDOW_INCREMENT] = 9; - pGlobal_config[LL_SMART_WINDOW_LIMIT] = 20000; - pGlobal_config[LL_SMART_WINDOW_ACTIVE_THD] = 8; - pGlobal_config[LL_SMART_WINDOW_ACTIVE_RANGE] = 0;//300 - pGlobal_config[LL_SMART_WINDOW_FIRST_WINDOW] = 5000; - g_smartWindowSize = pGlobal_config[LL_HW_RTLP_1ST_TIMEOUT] ; - - //====== A2 metal change add, for scanner & initiator - if(g_system_clk==SYS_CLK_XTAL_16M) - { - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 18+RF_PHY_EXT_PREAMBLE_US;//20; // 2019/3/19 A2: 20 --> 18 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 25+RF_PHY_EXT_PREAMBLE_US;//27; // 2019/3/19 A2: 27 --> 25 - } - else if(g_system_clk==SYS_CLK_DBL_32M) - { - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 12+RF_PHY_EXT_PREAMBLE_US; // 2019/3/26 add - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 16+RF_PHY_EXT_PREAMBLE_US; - } - else if(g_system_clk==SYS_CLK_DLL_48M) - { - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 8+RF_PHY_EXT_PREAMBLE_US;//12; // 2019/3/19 A2: 12 --> 10 - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 11+RF_PHY_EXT_PREAMBLE_US; - } - else if(g_system_clk==SYS_CLK_DLL_64M) - { - pGlobal_config[LL_ADV_TO_SCAN_REQ_DELAY] = 6+RF_PHY_EXT_PREAMBLE_US; // 2019/3/26 add - pGlobal_config[LL_ADV_TO_CONN_REQ_DELAY] = 8+RF_PHY_EXT_PREAMBLE_US; - } - - // TRLP timeout - pGlobal_config[LL_HW_TRLP_LOOP_TIMEOUT] = 50000; // enough for 8Tx + 8Rx : (41 * 8 + 150) * 16 - 150 = 7498us - pGlobal_config[LL_HW_TRLP_TO_GAP] = 1000; - pGlobal_config[LL_MOVE_TO_MASTER_DELAY] = 100; - pGlobal_config[LL_CONN_REQ_WIN_SIZE] = 5; - pGlobal_config[LL_CONN_REQ_WIN_OFFSET] = 2; - pGlobal_config[LL_MASTER_PROCESS_TARGET] = 200; // reserve time for preparing master conn event, delay should be insert if needn't so long time - pGlobal_config[LL_MASTER_TIRQ_DELAY] = 0; // timer IRQ -> timer ISR delay - pGlobal_config[OSAL_SYS_TICK_WAKEUP_TRIM] = 56; // 0.125us - pGlobal_config[MAC_ADDRESS_LOC] = 0x11001F00; - // for simultaneous conn & adv/scan - pGlobal_config[LL_NOCONN_ADV_EST_TIME] = 1400*3; - pGlobal_config[LL_NOCONN_ADV_MARGIN] = 600; - pGlobal_config[LL_SEC_SCAN_MARGIN] = 2500;//1400; to avoid mesh proxy llTrigErr 0x15 - pGlobal_config[LL_MIN_SCAN_TIME] = 2000; - // BBB new - pGlobal_config[TIMER_ISR_ENTRY_TIME] = 30;//15; - pGlobal_config[LL_MULTICONN_MASTER_PREEMP] = 0; - pGlobal_config[LL_MULTICONN_SLAVE_PREEMP] = 0; - pGlobal_config[LL_EXT_ADV_TASK_DURATION] = 20000; - pGlobal_config[LL_PRD_ADV_TASK_DURATION] = 20000; - pGlobal_config[LL_CONN_TASK_DURATION] = 5000; - pGlobal_config[LL_EXT_ADV_INTER_PRI_CHN_INT] = 5000; - pGlobal_config[LL_EXT_ADV_INTER_SEC_CHN_INT] = 5000; - pGlobal_config[LL_EXT_ADV_PRI_2_SEC_CHN_INT] = 1500; - pGlobal_config[LL_EXT_ADV_RSC_PERIOD] = 1000000; - pGlobal_config[LL_EXT_ADV_RSC_SLOT_DURATION] = 10000; - pGlobal_config[LL_PRD_ADV_RSC_PERIOD] = 1000000; - pGlobal_config[LL_PRD_ADV_RSC_SLOT_DURATION] = 10000; - pGlobal_config[LL_EXT_ADV_PROCESS_TARGET] = 500; - pGlobal_config[LL_PRD_ADV_PROCESS_TARGET] = 500; - //------------------------------------------------------------------- - // patch function register - //-------------------------------------------------------------------- - JUMP_FUNCTION(LL_HW_GO) = (uint32_t)&ll_hw_go1; - JUMP_FUNCTION(V4_IRQ_HANDLER) = (uint32_t)&LL_IRQHandler1; - //JUMP_FUNCTION(V11_IRQ_HANDLER) = (uint32_t)&hal_UART0_IRQHandler; - extern void rf_calibrate1(void); - JUMP_FUNCTION(RF_CALIBRATTE) = (uint32_t)&rf_calibrate1; - JUMP_FUNCTION(RF_PHY_CHANGE) = (uint32_t)&rf_phy_change_cfg0; - //JUMP_FUNCTION(LL_GEN_TRUE_RANDOM) = (uint32_t)&LL_ENC_GenerateTrueRandNum1; - JUMP_FUNCTION(LL_AES128_ENCRYPT) = (uint32_t)&LL_ENC_AES128_Encrypt1; - JUMP_FUNCTION(LL_ENC_ENCRYPT) = (uint32_t)&LL_ENC_Encrypt1; - JUMP_FUNCTION(LL_ENC_DECRYPT) = (uint32_t)&LL_ENC_Decrypt1; - //JUMP_FUNCTION(LL_PROCESS_SLAVE_CTRL_PROC) = (uint32_t)&llProcessSlaveControlProcedures1; - //JUMP_FUNCTION(LL_PROCESS_TX_DATA) = (uint32_t)&llProcessTxData1; - //JUMP_FUNCTION(OSAL_POWER_CONSERVE) = (uint32_t)&osal_pwrmgr_powerconserve1; - //JUMP_FUNCTION(ENTER_SLEEP_OFF_MODE) = (uint32_t)&enter_sleep_off_mode1; - //JUMP_FUNCTION(ENTER_SLEEP_PROCESS) = (uint32_t)&enterSleepProcess1; - JUMP_FUNCTION(CONFIG_RTC) = (uint32_t)&config_RTC1; - //JUMP_FUNCTION(V20_IRQ_HANDLER) = (uint32_t)&TIM1_IRQHandler1; -// JUMP_FUNCTION(LL_SCHEDULER) = (uint32_t)&ll_scheduler1; - //JUMP_FUNCTION(HAL_DRV_IRQ_ENABLE) = (uint32_t)&drv_enable_irq1; - //JUMP_FUNCTION(HAL_DRV_IRQ_DISABLE) = (uint32_t)&drv_disable_irq1; - JUMP_FUNCTION(WAKEUP_INIT) = (uint32_t)&wakeup_init1; - JUMP_FUNCTION(WAKEUP_PROCESS) = (uint32_t)&wakeupProcess1; - extern void l2capPocessFragmentTxData(uint16 connHandle); - JUMP_FUNCTION(L2CAP_PROCESS_FREGMENT_TX_DATA) = (uint32_t)&l2capPocessFragmentTxData; - //BQB bug fix,2020.11.17 -#if USE_CODED_PHY - JUMP_FUNCTION(LL_PHY_MODE_UPDATE) = (uint32_t)&LL_PhyUpdate1; -#endif - JUMP_FUNCTION(LL_SET_DATA_LENGTH) = (uint32_t)&LL_SetDataLengh1; -#if USE_CODED_PHY - JUMP_FUNCTION(LL_SET_PHY_MODE) = (uint32_t)&LL_SetPhyMode1; -#endif - JUMP_FUNCTION(LL_PROCESS_TX_DATA) = (uint32_t)&llProcessTxData1; - JUMP_FUNCTION(LL_GENERATE_TX_BUFFER) = (uint32_t)&ll_generateTxBuffer1; - JUMP_FUNCTION(LL_ADP_ADJ_NEXT_TIME) = (uint32_t)&ll_adptive_adj_next_time1; - JUMP_FUNCTION(LL_CONN_TERMINATE) = (uint32_t)&llConnTerminate1; - JUMP_FUNCTION(LL_SET_DEFAULT_CONN_PARAM) = (uint32_t)&LL_set_default_conn_params1; -// ==================== - //disableSleep(); - //setSleepMode(MCU_SLEEP_MODE);//SYSTEM_SLEEP_MODE - enableSleep(); - setSleepMode(SYSTEM_SLEEP_MODE); -} - -void ll_patch_slave(void) -{ - JUMP_FUNCTION(LL_SET_ADV_PARAM) = (uint32_t)&LL_SetAdvParam1; - JUMP_FUNCTION(LL_CALC_MAX_SCAN_TIME) = (uint32_t)&llCalcMaxScanTime1; - JUMP_FUNCTION(LL_SEC_ADV_ALLOW) = (uint32_t)&llSecAdvAllow1; - JUMP_FUNCTION(LL_SET_ADV_CONTROL) = (uint32_t)&LL_SetAdvControl1; - JUMP_FUNCTION(LL_SETUP_SEC_ADV_ENTRY) = (uint32_t)&llSetupSecAdvEvt1; - JUMP_FUNCTION(LL_SCHEDULER) = (uint32_t)&ll_scheduler2; - JUMP_FUNCTION(LL_SETUP_NEXT_SLAVE_EVT) = (uint32_t)&llSetupNextSlaveEvent1; -} - -void ll_patch_master(void) -{ - JUMP_FUNCTION(LL_SET_ADV_PARAM) = (uint32_t)&LL_SetAdvParam1; - JUMP_FUNCTION(LL_SET_ADV_CONTROL) = (uint32_t)&LL_SetAdvControl1; - JUMP_FUNCTION(LL_MASTER_EVT_ENDOK) = (uint32_t)&llMasterEvt_TaskEndOk1; - JUMP_FUNCTION(LL_SET_SCAN_PARAM) = (uint32_t)&LL_SetScanParam1; - JUMP_FUNCTION(LL_SET_SCAN_CTRL) = (uint32_t)&LL_SetScanControl1; -#if USE_CODED_PHY - JUMP_FUNCTION(LL_PROCESS_MASTER_CTRL_PKT) = (uint32_t)&llProcessMasterControlPacket1; -#endif - JUMP_FUNCTION(LL_CREATE_CONN) = (uint32_t)&LL_CreateConn1; - JUMP_FUNCTION(LL_START_ENCRYPT) = (uint32_t)&LL_StartEncrypt1; - JUMP_FUNCTION(LL_ENC_DECRYPT) = (uint32_t)&LL_ENC_Decrypt1; - JUMP_FUNCTION(LL_PROCESS_MASTER_CTRL_PROC) = (uint32_t)&llProcessMasterControlProcedures1; - JUMP_FUNCTION(LL_PROCESS_SLAVE_CTRL_PROC) = (uint32_t)&llProcessSlaveControlProcedures1; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SRX) = (uint32_t )&ll_processBasicIRQ_SRX0; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SCANTRX) = (uint32_t )&ll_processBasicIRQ_ScanTRX0; - JUMP_FUNCTION(LL_SETUP_SEC_SCAN) = (uint32_t )&llSetupSecScan1; -} - -void ll_patch_multi(void) -{ - ll_patch_slave(); - ll_patch_master(); - JUMP_FUNCTION(LL_SCHEDULER) = (uint32_t)&ll_scheduler1; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECADVTRX) = (uint32_t )&ll_processBasicIRQ_secondaryAdvTRX0; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECSCANSRX) = (uint32_t )&ll_processBasicIRQ_secondaryScanSRX0; - JUMP_FUNCTION(LL_PROCESSBASICIRQ_SECINITSRX) = (uint32_t )&ll_processBasicIRQ_secondaryInitSRX0; -} - -void hal_rom_boot_init(void) -{ - extern void _rom_sec_boot_init(); - _rom_sec_boot_init(); -} -//----------------------------------------------------------------------- -// Patch for V105/V103 LL_ChanMapUpdate -// Copy chanMap to connPtr->chanMapUpdate.chaMap -hciStatus_t HCI_LE_SetHostChanClassificationCmd(uint8* chanMap) -{ - hciStatus_t status; - status = LL_ChanMapUpdate(chanMap); - - //patch for LL_ChanMapUpdate - if (status == LL_STATUS_SUCCESS) - { - // need to issue an update on all active connections, if any - for (uint8_t i = 0; i < g_maxConnNum; i++) - { - if (conn_param[i].active) - { - llConnState_t* connPtr = &conn_param[i]; - osal_memcpy((uint8_t*)&(connPtr->chanMapUpdate.chanMap[0]), chanMap, LL_NUM_BYTES_FOR_CHAN_MAP); - } - } - } - - //AT_LOG("ChanMap Patch %d \n", status); - HCI_CommandCompleteEvent(HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION, sizeof(status), &status); - return (HCI_SUCCESS); -} - -/******************************************************************************* - @fn pplus_enter_programming_mode - - @brief force deive enter to programing mode. - - input parameters - - @param none. - - output parameters - - @param none. - - @return none. -*/ -void pplus_enter_programming_mode(void) -{ - typedef void (*uart_init_t)(int baud, GPIO_Pin_e tx_pin, GPIO_Pin_e rx_pin,uint32_t cb_addr); - typedef void (*uart_tx_t)(char* str); - typedef void (*uart_cmd_t)(void); - uart_init_t p_uart_init = (uart_init_t)0x0000b379; - uart_tx_t p_uart_tx = (uart_tx_t)0x0000b4f5; - uart_cmd_t p_uart_cmd = (uart_cmd_t)0x00015c51; - uint32_t _cb_addr = 0x00015c8d; - *(volatile unsigned int*) 0xe000e180 = 0xffffffff; - HAL_ENTER_CRITICAL_SECTION(); - osal_memset((void*)0x1fff0000, 0, 256*4); - HAL_EXIT_CRITICAL_SECTION(); - AP_CACHE->CTRL0 = 0x02; - AP_PCR->CACHE_RST = 0x02; - AP_PCR->CACHE_BYPASS = 1; - *(volatile unsigned int*) 0xe000e100 |= BIT(11); - p_uart_init(115200,P9, P10,_cb_addr); - *(volatile unsigned int*) 0x40004004 |= BIT(0); - p_uart_tx("cmd:"); - __set_MSP(0x1fff1830); - p_uart_cmd(); -} - - -int8 LL_PLUS_GetCurrentRSSI(void) -{ - uint8 rssi; - uint16 foff; - uint8 carrSens; - rf_phy_get_pktFoot(&rssi,&foff,&carrSens); - return -rssi; -} - -void LL_PLUS_GetCurrentPduDle(uint8_t connId, ll_pdu_length_ctrl_t* ppdu) -{ - if(LL_INVALID_CONNECTION_ID!=connId && ppdu!=NULL) - { - ppdu->MaxRxOctets = conn_param[connId].llPduLen.local.MaxRxOctets; - ppdu->MaxTxOctets = conn_param[connId].llPduLen.local.MaxTxOctets; - ppdu->MaxRxTime = conn_param[connId].llPduLen.local.MaxRxTime; - ppdu->MaxTxTime = conn_param[connId].llPduLen.local.MaxTxTime; - } -} - - -void LOG_PATCH_DATA_TIME(void) -{ - LOG("\n"); - LOG("PATCH_LIB:"); -// for(int i=0;i<12;i++) -// { -// LOG("%s",libRevisionDate[i]); -// } - LOG("%s",libRevisionDate); - LOG(" "); - LOG("%s",libRevisionTime); -// for(int i=0;i<12;i++) -// { -// LOG("%s",libRevisionTime[i]); -// } - LOG("\n"); -} - - - -extern inline uint32_t __psr(void) -{ - uint32_t i; - __asm volatile("MRS %0, psr": "=r"(i)); - return i; -} - -void rflib_vesion(uint8_t* major, uint8_t* minor, uint8_t* revision, char* test_build) -{ - *major = SDK_VER_MAJOR; - *minor = SDK_VER_MINOR; - *revision = SDK_VER_REVISION; - *test_build = '\0'; -#ifdef SDK_VER_TEST_BUILD - *test_build = SDK_VER_TEST_BUILD; -#endif -} - - -#define OSALMEM_BIGBLK_IDX 157 -// =========================================================== -// ptr: the header of osal heap -//uint32 osal_memory_statics(void *ptr) -extern uint8 g_largeHeap[]; -uint32 osal_memory_statics(void) -{ - osalMemHdr_t* header, *current; - void* ptr; - uint32 sum_alloc = 0; - uint32 sum_free = 0; - uint32 max_block = 0; -// halIntState_t intState; - ptr = (void*)g_largeHeap; - header = (osalMemHdr_t*)ptr; - current = (osalMemHdr_t*)ptr; - -// HAL_ENTER_CRITICAL_SECTION1( intState ); // Hold off interrupts. - - do - { - if ((uint32)ptr > (uint32)header + 4096) - { - LOG("==========error: memory audit failed===============\r\n"); - break; - } - - // seek to the last block, return - if ( current->val == 0 ) /// val = 0, so len = 0 - { - break; - } - - if (current->hdr.inUse) - sum_alloc += current->hdr.len; - else - { - sum_free += current->hdr.len; - - if (current->hdr.len > max_block && (void*)(¤t->hdr) > (void*)(header + OSALMEM_BIGBLK_IDX)) - max_block = current->hdr.len; - } - - current = (osalMemHdr_t*)((uint8*)current + current->hdr.len); - } - while (1); - -// HAL_EXIT_CRITICAL_SECTION1( intState ); // Re-enable interrupts. -// printf("sum_alloc = %d, sum_free = %d, max_free_block = %d\r\n", sum_alloc, sum_free, max_block); - LOG("sum_alloc = %d, max_free_block = %d ", sum_alloc, max_block); - return sum_alloc; -} - -llStatus_t LL_ConnUpdate1( uint16 connId, - uint16 connIntervalMin, - uint16 connIntervalMax, - uint16 connLatency, - uint16 connTimeout, - uint16 minLength, - uint16 maxLength ) -{ - llStatus_t status; - llConnState_t* connPtr; - // unused input parameter; PC-Lint error 715. - (void)minLength; - (void)maxLength; - - // make sure we're in Master role -// if ( llState != LL_STATE_CONN_MASTER ) -// { -// return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); -// } - if (g_ll_conn_ctx.scheduleInfo[connId].linkRole != LL_ROLE_MASTER ) - return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); - - // sanity checks again to be sure we don't start with bad parameters - if ( LL_INVALID_CONN_TIME_PARAM( connIntervalMin, - connIntervalMax, - connLatency, - connTimeout ) ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // get connection info - connPtr = &conn_param[connId]; - - // check if an updated parameters control procedure is already what's pending - if ( ((connPtr->ctrlPktInfo.ctrlPktCount > 0) && - (connPtr->ctrlPktInfo.ctrlPkts[0] == LL_CTRL_CONNECTION_UPDATE_REQ)) || - (connPtr->pendingParamUpdate == TRUE) ) - { - return( LL_STATUS_ERROR_CTRL_PROC_ALREADY_ACTIVE ); - } - - // check if CI/SL/LSTO is valid (i.e. meets the requirements) - // Note: LSTO > (1 + Slave Latency) * (Connection Interval * 2) - // Note: The CI * 2 requirement based on ESR05 V1.0, Erratum 3904. - // Note: LSTO time is normalized to units of 1.25ms (i.e. 10ms = 8 * 1.25ms). - if ( LL_INVALID_CONN_TIME_PARAM_COMBO(connIntervalMax, connLatency, connTimeout) ) - { - return( LL_STATUS_ERROR_ILLEGAL_PARAM_COMBINATION ); - } - - // if there is at least one connection, make sure this connection interval - // is a multiple/divisor of all other active connection intervals; also make - // sure that this connection's interval is not less than the allowed maximum - // connection interval as determined by the maximum number of allowed - // connections times the number of slots per connection. - if ( g_ll_conn_ctx.numLLMasterConns > 1 ) // if ( g_ll_conn_ctx.numLLConns > 0 ) - { - uint16 connInterval = (connIntervalMax << 1); // convert to 625us ticks - uint16 minCI = g_ll_conn_ctx.connInterval; - - // // first check if this connection interval is even legal - // // Note: The number of active connections is limited by the minCI. - // if ( (minCI / NUM_SLOTS_PER_MASTER) < llConns.numActiveConns ) - // { - // return( LL_STATUS_ERROR_UNACCEPTABLE_CONN_INTERVAL ); - // } - - // // does the CI need to be checked as a multiple of the minCI? - if ( connInterval >= minCI ) - { - // check if this connection's CI is valid (i.e. a multiple of minCI) - if ( connInterval % minCI ) - { - return( LL_STATUS_ERROR_UNACCEPTABLE_CONN_INTERVAL ); - } - } - else - return( LL_STATUS_ERROR_UNACCEPTABLE_CONN_INTERVAL ); - } - else - { - // only 1 master connection - g_ll_conn_ctx.connInterval = connIntervalMax; - g_ll_conn_ctx.per_slot_time = connPtr->curParam.connInterval * 2 / g_maxConnNum; // unit: 625us - } - - // no control procedure currently active, so set this one up - // set the window size (units of 1.25ms) - connPtr->paramUpdate.winSize = LL_WINDOW_SIZE; - // set the window offset (units of 1.25ms) -// connPtr->paramUpdate.winOffset = LL_WINDOW_OFFSET; - connPtr->paramUpdate.winOffset = 0; // multiconnection, this value could be 0 or x * old conn interval and should be less than new conn interval - // set the relative offset of the number of events for the parameter update - // Note: The absolute event number will be determined at the time the packet - // is placed in the TX FIFO. - // Note: The master should allow a minimum of 6 connection events that the - // slave will be listening for before the instant occurs. - connPtr->paramUpdateEvent = (connPtr->curParam.slaveLatency+1) + - LL_INSTANT_NUMBER_MIN; - // determine the connection interval based on min and max values - // Note: Range not used, so assume max value. - // Note: minLength and maxLength are informational. - connPtr->paramUpdate.connInterval = connIntervalMax; - // save the new connection slave latency to be used by the peer - connPtr->paramUpdate.slaveLatency = connLatency; - // save the new connection supervisor timeout - connPtr->paramUpdate.connTimeout = connTimeout; - // queue control packet for processing - llEnqueueCtrlPkt( connPtr, LL_CTRL_CONNECTION_UPDATE_REQ ); - return( LL_STATUS_SUCCESS ); -} - -hciStatus_t HCI_LE_ConnUpdateCmd( uint16 connHandle, - uint16 connIntervalMin, - uint16 connIntervalMax, - uint16 connLatency, - uint16 connTimeout, - uint16 minLen, - uint16 maxLen ) -{ - hciStatus_t status; - status = LL_ConnUpdate1( connHandle, - connIntervalMin, - connIntervalMax, - connLatency, - connTimeout, - minLen, - maxLen ); - HCI_CommandStatusEvent( status, HCI_LE_CONNECTION_UPDATE ); - return( HCI_SUCCESS ); -} - -__ATTR_SECTION_XIP__ -CHIP_ID_STATUS_e chip_id_one_bit_hot_convter(uint8_t* b, uint32_t w) -{ - uint16 dh = w >> 16; - uint16 dl = w & 0xffff; - uint16 h1, h0, l1, l0; - h0 = l0 = 0xff; - h1 = l1 = 0; - - for(int i = 0; i < 16; i++) - { - l1 += ((dl & (1 << i)) >> i); - - if(l0 == 0xff && l1 == 1) - l0 = i; - - h1 += ((dh & (1 << i)) >> i); - - if(h0 == 0xff && h1 == 1) - h0 = i; - } - - if(l1 == 1 && h1 == 1) - { - *b = ((h0 << 4) + l0); - return CHIP_ID_VALID; - } - else if(l1 == 16 && h1 == 16) - { - return CHIP_ID_EMPTY; - } - else - { - return CHIP_ID_INVALID; - } -} - -/******************************************************************************* - @fn LL_PLUS_LoadMACFromFlash - - @brief Used to load MAC Address from Flash - - input parameters - - @param None. - - output parameters - - @param None. - - @return None. -*/ -/* -void LL_PLUS_LoadMACFromFlash(uint32_t addr) -{ - volatile uint8_t* p_ownPublicAddr = (volatile uint8_t*)0x1fff0965; - uint32_t macAddr[2]; - macAddr[0]=*(volatile uint32_t*) (0x11000000+addr); - macAddr[1]=*(volatile uint32_t*) (0x11000000+addr+4); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],3); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],2); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],1); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[0],0); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[1],1); - *(p_ownPublicAddr++) = BREAK_UINT32(macAddr[1],0); -} -*/ - -/******************************************************************************* - @fn pplus_LoadMACFromChipMAddr - - @brief Used to load MAC Address from chip Maddr - - input parameters - - @param None. - - output parameters - - @param None. - - @return CHIP_ID_STATUS_e. -*/ -/* -CHIP_ID_STATUS_e LL_PLUS_LoadMACFromChipMAddr(void) -{ - check_chip_mAddr(); - volatile uint8_t* p_ownPublicAddr = (volatile uint8_t*)0x1fff0965; - - if(g_chipMAddr.chipMAddrStatus==CHIP_ID_VALID) - { - for(uint8_t i =0; iRTCCFG2; - AP_AON->RTCCFG2 = (temp & 0xfffefe00) | 0x0108; - - for(uint8_t j=0; jRTCTRCNT; - status |= ((temp1 & 0x03)<<(i<<1)); - } - - *buf++ = status; - } - - return; -} -__ATTR_SECTION_XIP__ static void TRNG_IV_Updata() -{ - *(uint32*)(&s_trng_iv[0]) +=read_current_fine_time(); - *(uint32*)(&s_trng_iv[4]) +=read_current_fine_time(); - *(uint32*)(&s_trng_iv[8]) +=read_current_fine_time(); - *(uint32*)(&s_trng_iv[12])+=read_current_fine_time(); -} -__ATTR_SECTION_XIP__ void TRNG_INIT(void) -{ - static uint8_t init_flag = 0; - - if (!init_flag) - { - TRNG_Output((uint32_t*)(s_trng_seed), 4); - TRNG_Output((uint32_t*)(s_trng_iv), 4); - init_flag = 1; - } - - return; -} - -__ATTR_SECTION_XIP__ uint8_t TRNG_Rand(uint8_t* buf,uint8_t len) -{ - uint32_t t0=0; - uint8_t i; - uint8_t cryOut[16]; - uint8_t cryIn[16]; - uint8_t rand_len = 0; - - if(len > 16) - { - return PPlus_ERR_FATAL; - } - - TRNG_INIT(); - - for(i=0; i<16; i++) - t0+=s_trng_seed[i]; - - if(t0==0) - return PPlus_ERR_NULL; - - if(len>16) - return PPlus_ERR_DATA_SIZE; - - for(i=0; i<16; i++) - cryIn[i] =s_trng_iv[i]^s_company_id[i]; - - LL_ENC_AES128_Encrypt(s_trng_seed,cryIn,cryOut); - rand_len = len > 16 ? 16 : len; - osal_memcpy(buf,cryOut,rand_len); - TRNG_IV_Updata(); - return PPlus_SUCCESS; -} - - -// bugfix for multi-Role -/******************************************************************************* - @fn LL_EncLtkReply API - - @brief This API is called by the HCI to provide the controller with - the Long Term Key (LTK) for encryption. This command is - actually a reply to the link layer's LL_EncLtkReqCback, which - provided the random number and encryption diversifier received - from the Master during an encryption setup. - - Note: The key parameter is byte ordered LSO to MSO. - - input parameters - - @param connId - The LL connection ID on which to send this data. - @param *key - A 128 bit key to be used to calculate the session key. - - output parameters - - @param None. - - @return LL_STATUS_SUCCESS -*/ -llStatus_t LL_EncLtkReply( uint16 connId, - uint8* key ) -{ - uint8 i; - llStatus_t status; - llConnState_t* connPtr; - // get connection info - connPtr = &conn_param[ connId ]; - - // make sure we're in Master role -// if ( llState != LL_STATE_CONN_SLAVE ) - /* asynchronous send msg can not make sure llState = LL_STATE_CONN_SLAVE in multi-role */ - if( connPtr->llTbd1 != LL_LINK_CONNECT_COMPLETE_SLAVE ) - { - return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); - } - - // check parameters - if ( key == NULL ) - { - return( LL_STATUS_ERROR_BAD_PARAMETER ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // ALT: COULD MAKE THIS PER CONNECTION. - - // save LTK - for (i=0; iencInfo.LTK[(LL_ENC_LTK_LEN-i)-1] = key[i]; - } - - // indicate the host has provided the key - connPtr->encInfo.LTKValid = TRUE; - // got the LTK, so schedule the start of encryption - // ALT: COULD MAKE THIS A REPLACE IF A DUMMY IS SITTING AT THE HEAD OF - // THE QUEUE. - llEnqueueCtrlPkt( connPtr, LL_CTRL_START_ENC_REQ ); - return( LL_STATUS_SUCCESS ); -} - -/******************************************************************************* - @fn LL_EncLtkNegReply API - - @brief This API is called by the HCI to indicate to the controller - that the Long Term Key (LTK) for encryption can not be provided. - This command is actually a reply to the link layer's - LL_EncLtkReqCback, which provided the random number and - encryption diversifier received from the Master during an - encryption setup. How the LL responds to the negative reply - depends on whether this is part of a start encryption or a - re-start encryption after a pause. For the former, an - encryption request rejection is sent to the peer device. For - the latter, the connection is terminated. - - input parameters - - @param connId - The LL connection ID on which to send this data. - - output parameters - - @param None. - - @return LL_STATUS_SUCCESS -*/ -llStatus_t LL_EncLtkNegReply( uint16 connId ) -{ - llStatus_t status; - llConnState_t* connPtr; - // get connection info - connPtr = &conn_param[ connId ]; - -// // make sure we're in Master role -// if ( llState != LL_STATE_CONN_SLAVE ) - /* asynchronous send msg can not make sure llState = LL_STATE_CONN_SLAVE in multi-role */ - if( connPtr->llTbd1 != LL_LINK_CONNECT_COMPLETE_SLAVE ) - { - return( LL_STATUS_ERROR_COMMAND_DISALLOWED ); - } - - // make sure connection ID is valid - if ( (status=LL_ConnActive(connId)) != LL_STATUS_SUCCESS ) - { - return( status ); - } - - // check if this is during a start or a re-start encryption procedure - if ( connPtr->encInfo.encRestart == TRUE ) - { - // indicate the peer requested this termination - connPtr->termInfo.reason = LL_ENC_KEY_REQ_REJECTED; - // queue control packet for processing - // ALT: COULD MAKE THIS A REPLACE IF A DUMMY IS SITTING AT THE HEAD OF - // THE QUEUE. - //llReplaceCtrlPkt( connPtr, LL_CTRL_TERMINATE_IND ); - llEnqueueCtrlPkt( connPtr, LL_CTRL_TERMINATE_IND ); - } - else // during a start encryption - { - // set the encryption rejection error code - connPtr->encInfo.encRejectErrCode = LL_STATUS_ERROR_PIN_OR_KEY_MISSING; // same as LL_ENC_KEY_REQ_REJECTED - // and reject the encryption request - // ALT: COULD MAKE THIS A REPLACE IF A DUMMY IS SITTING AT THE HEAD OF - // THE QUEUE. - //llReplaceCtrlPkt( connPtr, LL_CTRL_REJECT_IND ); - llEnqueueCtrlPkt( connPtr, LL_CTRL_REJECT_IND ); - } - - return( LL_STATUS_SUCCESS ); -} - -hciStatus_t HCI_LE_LtkReqReplyCmd( uint16 connHandle, - uint8* ltk ) -{ - // 0: Status - // 1: Connection Handle (LSB) - // 2: Connection Handle (MSB) - uint8 rtnParam[3]; - rtnParam[0] = LL_EncLtkReply( connHandle, ltk ); - rtnParam[1] = LO_UINT16( connHandle ); - rtnParam[2] = HI_UINT16( connHandle ); - HCI_CommandCompleteEvent( HCI_LE_LTK_REQ_REPLY, sizeof(rtnParam), rtnParam ); - return ( HCI_SUCCESS ); -} - - -/******************************************************************************* - This LE API is used by the Host to send to the Controller a negative LTK - reply. - - Public function defined in hci.h. -*/ -hciStatus_t HCI_LE_LtkReqNegReplyCmd( uint16 connHandle ) -{ - // 0: Status - // 1: Connection Handle (LSB) - // 2: Connection Handle (MSB) - uint8 rtnParam[3]; - rtnParam[0] = LL_EncLtkNegReply( connHandle ); - rtnParam[1] = LO_UINT16( connHandle ); - rtnParam[2] = HI_UINT16( connHandle ); - HCI_CommandCompleteEvent( HCI_LE_LTK_REQ_NEG_REPLY, sizeof(rtnParam), rtnParam ); - return( HCI_SUCCESS ); -} - - -#define EFUSE_PROG_FIX_FOR_CHIP -#ifdef EFUSE_PROG_FIX_FOR_CHIP - -typedef enum -{ - EFUSE_BLOCK_0 = 0, - EFUSE_BLOCK_1 = 1, - EFUSE_BLOCK_2 = 2, - EFUSE_BLOCK_3 = 3, - -} EFUSE_block_t; - -extern int efuse_read(EFUSE_block_t block,uint32_t* buf); - -static bool efuse_get_lock_state(EFUSE_block_t block); -static uint8_t get_even(volatile uint32_t* data); - -int efuse_write_x(EFUSE_block_t block,uint32_t* buf,uint32_t us) -{ - uint8_t even_bit; - uint32_t temp_wr[2]; - uint32_t temp_rd[2]; - volatile uint32_t temp; - int ret; - - if(*(buf+1) > 0x3FFFFFFF) - return PPlus_ERR_INVALID_PARAM; - - if(efuse_get_lock_state(block) == TRUE) - return PPlus_ERR_ACCESS_REJECTED; - - if(efuse_read(block,temp_rd) != PPlus_ERR_UNINITIALIZED) - return PPlus_ERR_ACCESS_REJECTED; - - even_bit = get_even(buf); - temp_wr[0] = ((*buf)<<1)|(even_bit); - temp_wr[1] = ((*(buf+1))<<1) | (((*buf) & 0x80000000)?1:0); - AP_PCRM->EFUSE_PROG[0] = temp_wr[0]; - AP_PCRM->EFUSE_PROG[1] = temp_wr[1]; - temp = (BIT((28 + block)) | 0x8000);//enable o_sclk_prog_hcyc,sclk high duty during time, unit:1/32M clk.prog en - AP_PCRM->efuse_cfg = temp; - WaitRTCCount(((us<<15)/1000000)+1);//at least 400us - { - AP_PCRM->efuse_cfg = 0x00;//disable o_sclk_prog_hcyc and clear prog data - AP_PCRM->EFUSE_PROG[0] = 0; - AP_PCRM->EFUSE_PROG[1] = 0; - } - ret = efuse_read(block,temp_rd); - - if(ret == PPlus_SUCCESS) - { - if((temp_rd[1] != buf[1]) || (temp_rd[0] != buf[0])) - return PPlus_ERR_INVALID_DATA; - } - - return ret; -} - -static bool efuse_get_lock_state(EFUSE_block_t block) -{ - return (AP_PCRM->SECURTY_STATE & BIT(block))?FALSE:TRUE; -} - -static uint8_t get_even(volatile uint32_t* data) -{ - uint32_t x; - x = *(data+1) ^ (*data); - x = ( x >> 16 ) ^ x; - x = ( x >> 8 ) ^ x; - x = ( x >> 4 ) ^ x; - x = ( x >> 2 ) ^ x; - x = ( x >> 1) ^ x; - return (x & 1); -} - -#endif diff --git a/bthome_phy6222/bin/BOOT_BTH01_v14.hex b/bthome_phy6222/bin/BOOT_BTH01_v14.hex deleted file mode 100644 index b1af7b2..0000000 --- a/bthome_phy6222/bin/BOOT_BTH01_v14.hex +++ /dev/null @@ -1,3001 +0,0 @@ -:020000041100E9 -:10300000002373B52B4D2C4C28006361022601F080 -:1030100073F94021FE2221742800284B009601F00C -:10302000BDF9002836D1217CFF222800244B0096D0 -:1030300001F0B4F900282DD1224BA2899A4226D161 -:10304000E389214A93420DD1204B6361204B2268D2 -:10305000002A03D1002B01D043CB43C4280001F048 -:1030600089F973BD1B4A934201D00023EFE71A4B45 -:103070001A4A1B68934206D9C02304222800217CE7 -:103080009B0001F001FA114B6361154BDFE7002350 -:103090002374EAE7CC233821AC2228009B01217459 -:1030A00001F0F2F90028F2D10E4B63610E4BE3817F -:1030B0000E4BCCE7F441FF1F9061FF1F9C61FF1F87 -:1030C0009E61FF1F59590000830500002541001132 -:1030D00048B9001182150000B461FF1F871300007A -:1030E00054B90011DD410011AAAAFFFF3CB900113B -:1030F000F7B5164B0192C318021D002000938823D8 -:103100005B05D3181B685C1C1AD09CB2402C18D8E5 -:103110008D781E0CAC466746CD782D023D43AE42FD -:1031200006D1019800280ED110000C70240A4C70B2 -:1031300003249BB20733A343D218009B9A42DED3E9 -:10314000FEBD4432F9E71000FAE7C046FC0F00006C -:10315000802213B503000324019189B25201073183 -:103160009B18A14304305A1A88235B05C3181B68B7 -:10317000591C03D190429241104016BD99B240298A -:1031800007D80B000733A343C0189042ECD30020AC -:10319000F3E74430F9E7134B134A1B68126810B584 -:1031A000FA24934201D81A00F824104BE4021B6859 -:1031B0009A4210D813000E4A12689A420ED3013375 -:1031C00007D1F823DB029C4203D10A49054808F0E5 -:1031D00017FB200010BDFC24E402ECE7FE24E4020F -:1031E000F7E7C04600C0071100D0071100E0071143 -:1031F00000F00711FFFFFF7FF0B59BB015000490B2 -:103200000391402A00D9A0E006AB59801A80FFF74D -:10321000C2FF0400042816D9002206A9FFF768FFA0 -:10322000052810D906AB1B88AB420CD1002D07D066 -:10323000514B2A000499C01808F0A2F9002802D1C5 -:1032400001201BB0F0BD06AB1D8020000699FFF7E2 -:103250007FFF041E7BD1069B0793FFF79CFF802313 -:103260005B01C618802307001B039E4201D3F8268A -:10327000F60288235B05F31801931B68013302D023 -:10328000019808F0D5F83D49019808F0B9FA3B1DBE -:103290000293331D05938822029B52059B181B68DD -:1032A00008935A1C3CD044219AB20091402A04D879 -:1032B0000320D11D814389B2009103991B0C8B42DD -:1032C00024D0402A22D80122300008A9FFF710FF9D -:1032D000021E1BD1380008A9FFF70AFF04000428CA -:1032E00031D9009A059B9B1880225201B218934253 -:1032F00040D288235B05C118009A09A808F068FA33 -:103300001D4B009A09A9F01808F0C2F8009A029B18 -:103310009446634402931A4B029AFB189A42BAD31A -:1033200088235B05FC1821680198013908F068FAC8 -:10333000200008F07DF8039A07AB5A803000079907 -:10334000FFF706FF0400002C03D1002079E70428D2 -:10335000FBD988235B05E018069908F051FA03238E -:10336000EA1C9A4300D16BE7034B0499E01808F07C -:103370008FF865E70424ECE704000011FFFFFF7FEE -:10338000F80F0000F7B505001400402A21D80027E7 -:1033900001AE71803780FFF7FEFE042816D93A008F -:1033A0003100FFF7A5FE042810D93688BC420BD0A7 -:1033B000BD4209D0221CB44200D9321C064B92B245 -:1033C000C118280008F004FA30B2FEBDC04300B2B4 -:1033D000FBE703204042F8E70400001137B5042260 -:1033E00004000D0001A81649FFF7CCFF02000428D5 -:1033F0000BD1019BA34208D3AB4204D0104901A8D2 -:103400000195FFF7F9FE01203EBD0E4C2368200018 -:10341000019308F00DF8019920000139019108F09D -:10342000EFF980235B01E418074B9C42EED10422A4 -:10343000034901A80195FFF7DFFE0020E4E7C0463D -:103440005555000000C007110000081130B589B0C3 -:1034500008F01EF910226946254807F019FF254B90 -:10346000009A9A420ED1019B029A0F2B33D8002169 -:1034700001240698013B08D2002900D00292029B49 -:10348000013331D10023029325E0551CF2D1020013 -:103490002100EFE710341022200004A907F0F8FE05 -:1034A000029B013301D1069B0293882304995B059B -:1034B000C918059B06981A03120B049105928142C4 -:1034C00003D02B4201D108F083F9019B013B01930A -:1034D000019B002BDED1029B002B03D004930498A8 -:1034E0004168084709B030BDE025014C2D03EFE7E6 -:1034F00000000111504859368022F8B5964C974B80 -:10350000D200002120001C6007F032FF2300944A03 -:1035100088331A60934B1A786A23002A00D011333B -:10352000E3620A232365904B37221B780820A363AC -:103530008E4B2118E361102323628D4B3B25636181 -:10354000C823DB00A36123008C331A602823013ACF -:10355000E26320646364CA67043A211DCA672100DC -:10356000BC310D602100C03108602100C4310B6006 -:1035700021000635CC310D602100083DC8310D60B9 -:103580002100D0310A602200D43210602200D832EB -:10359000136022000227E032210017604222DC3152 -:1035A0000A6021001B3DE4310D602100E831086014 -:1035B0002100EC310B6023000521F4331960230056 -:1035C000F0331A602300183290331A6023009433CA -:1035D000186023001E3A98331A60AF23DB00236083 -:1035E000644BFA262363644B644DE360644BF03113 -:1035F000A3642300FF31FC33B600A16021611E608B -:10360000A5627325E5656D3D6565A56596255D4AF1 -:10361000AD00E264666258606766A566002709250A -:10362000A767E566584F594D606720002567E26738 -:103630003A6015279C30676007001A203860200028 -:10364000A0300700212038602000A83007004C4837 -:1036500038602000F830066026006427A436376002 -:1036600026005F3FAC3637602600033FB036376038 -:103670002600C637B436376026000027B8363760D4 -:1036800038269E60424E96205E64424E5A66DE6147 -:10369000414E9A645E62F53EFF3E9E621E269A6728 -:1036A000354A8000DE661F675F67DD651D6618624C -:1036B000DA67BE23394A5B00E250394BD8382350D1 -:1036C00004302250C4225200A350C623E4205B00E1 -:1036D000E1500433334AE1503349344BD16034492B -:1036E000800019503349E938FF3819503249043005 -:1036F000195032493248D16132491163324951631C -:103700001900F4310860CE20304940001160304982 -:10371000195019002F48F83108602F49D1658221CE -:103720002E4A89005A501A002D490832D1671A00D2 -:103730002C49B432116088212B4A89005A501A0052 -:103740002A49883211602A4ADA6407F061FD0120B3 -:1037500007F0AEFFF8BDC0460004FF1F2C64FF1F3A -:10376000106FFF1F2444FF1F4A0AFF1F3A07000083 -:1037700080C3C9019A020000DC0500006A1800003D -:1037800050C3000088130000F009FF1F204E000006 -:103790006509FF1F68100000C409000040420F00C7 -:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 -:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 -:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 -:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 -:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 -:1037F000851DFF1F0223F0B50124634D634E2B701E -:10380000634B91B01C70634F039333680021082011 -:10381000BB7006F0F9FB082006F0F0FA002398428E -:1038200005D0BA78552A02D0332A00D09FE0336001 -:10383000042006F063FD07F0DBFEFFF75DFE07F0F6 -:10384000FFFE1F2201240021534B10AE1A70534B70 -:103850001C70534B1970534B19689143163A0A4325 -:103860001A60602219689143403A0A431A6007F0CF -:1038700007FD07F0D5FEC120FF214B4B80001A58F1 -:103880008A431A50C522920098588843BF39014391 -:1038900099509858454908408021C901014380202A -:1038A00099509958C0050902090A0143995080218D -:1038B0003F48490107F0D4FE032322003D4901940B -:1038C00000933D4807F024FD2C223C4905A807F051 -:1038D0007FFF05AC61782078023406F0AFFAA6428B -:1038E000F8D1374C0121002006F0BCFB0920012152 -:1038F00006F0B8FB2268334B03201A40A023DB02FA -:1039000013432360802322689B04134323602268AF -:103910002D4B1A4080239B03134323602B4A2C4BCF -:10392000934200D8012007F01BFD07F081FE8023A1 -:103930002268DB0413432360287807F0F9FD039B1A -:103940001878C0B207F014FF07F0C2FC2149042028 -:1039500007F046FE06F09EFC00F0A8F800F0C0FD5F -:1039600000F068FE00F00CFA002011B0F0BD0093EA -:103970002100184A042007F0A3FE8023DB059C6287 -:10398000FFF764FD54E7C0464A0AFF1F34F00040C9 -:103990002444FF1FC061FF1F480AFF1F490AFF1F81 -:1039A000680AFF1FBCF0004000E100E0FF00FFFFDD -:1039B0002844FF1FAC56FF1F2854FF1F60B800119A -:1039C00014F00040FF7FF8FFFFFF9FFF0080FF1F04 -:1039D000106FFF1F3B00010870B500252549264ADE -:1039E00026484D6308CA1B051B0DED188242F9D10C -:1039F00000268022224B92058B630921214B224C09 -:103A00001E62224B1120DA67214BDA688A43DA60A2 -:103A10009A6820490A409A60266007F0F1FC11205C -:103A200007F06EFD8022636C93436364EE24E40030 -:103A30006C43194A200C0400642390420AD8FA22ED -:103A40003300D200904205D9144B0A21C01807F068 -:103A500027FDC3B2124A11201372D48007F060FC14 -:103A6000104B1B78002B04D10F4B1021187807F056 -:103A700027FD70BD00000540880505400006054093 -:103A8000FF01000000F000400038004004E100E0C9 -:103A90003CF00040FFDFFFFFB70B000030F8FFFFF6 -:103AA000A861FF1FE263FF1FE061FF1F002210B546 -:103AB0001100112007F004FC10BD0000F8B5002330 -:103AC0000926374F374C3B62E3681120B343E3606C -:103AD00007F016FD112007F093FC112007F008FCF9 -:103AE0004023226880251343236080236268DB0221 -:103AF00013436360A3682C4A2B43A360A36802218D -:103B00001340A3608023A2689B0113431022A3608B -:103B1000236C072093432364236C0F3A13432364DD -:103B200080235B003B62226B204B1A402263626B56 -:103B30001A406263A26B1A40A263E26B1340E36314 -:103B4000E3681B4A1340E36006F078F9012107207F -:103B500006F088FA174B11205A6C15435D6407F084 -:103B600017FEFD21144B154A89005A508023C720A7 -:103B7000626B5B0313436363E36880003343E3607A -:103B80000F4B104A19581140802212020A431A5052 -:103B9000802292051A6008220B4B5A63F8BDC0467A -:103BA00000F000403CF00040FFFFDFFFEFFFEFFFC1 -:103BB000FFFF7FFF003800400000FF1FD9390011D0 -:103BC00000E100E0FF00FFFF0000054030B503A862 -:103BD00004880B20002C0ED14968074D08784978DD -:103BE000090201430A20A94205D1012120001980C0 -:103BF000024B1B7A137030BD192A0000A861FF1F09 -:103C0000F7B5150008AA16884A680F4F147852783D -:103C1000120222430A24BA4214D10122DBB20192D9 -:103C200000962A0007F086FA041E0BD1074B1B688A -:103C3000002B07D068782A78000210434242504196 -:103C4000013098472000FEBD022900002C61FF1FB3 -:103C500030B5012503790400BFB02B4211D00A49C9 -:103C6000408806F0D3FD28420BD0084B01A95B8D9C -:103C70004D800B80064B00221B7A60880B7103F08D -:103C8000A5FE3FB030BDC0462461FF1F6840FF1F46 -:103C9000A861FF1F10B50549054806F06DFD042118 -:103CA000044A054806F02AFD10BDC0462461FF1FE6 -:103CB000FFFF00008CB800116840FF1F10B50248DC -:103CC00004F006FD10BDC046513C0011062310B59E -:103CD000837010330371443B43712A33837144333F -:103CE000C37100230222012103720E4B0270417046 -:103CF0001C8881724472197A0273C1729A78427375 -:103D0000DA7882730322C2731A7902745A79427480 -:103D10000C2282749A79C274DB7903751123C37003 -:103D2000152010BDA861FF1F10B5142007F0B8FCC6 -:103D3000124B14220021186007F01AFB002007F034 -:103D40001FFB012007F06CFA022007F091FC032012 -:103D500003F062FF042005F077FF052003F0A0F9CF -:103D6000062003F06DFE072001F004FA082006F09B -:103D7000A5FC092000F0E6FF10BDC0463061FF1F22 -:103D800007F02EFB012007F01BFC07F0E9FC000008 -:103D9000094B10B50400984205D0012904D1200038 -:103DA000064906F0E9FC10BD0229FCD1013904F0F6 -:103DB0004DFC0028F3D0F6E7FEFF00005661FF1F20 -:103DC00070B50D7A100004AA2C0016881022144039 -:103DD000154220D1002E20D10A78022A18D14A6833 -:103DE000517815780E4A09022943914205D00D4AAF -:103DF000914209D01C800A2404E014220A491A8046 -:103E000007F0E6FC200070BD0C2208491A80F7E795 -:103E10001C800124F6E70824F4E70B24F2E7C046EF -:103E2000F3FF0000F4FF0000B042FF1F6CB9001167 -:103E300010B504000749084806F09EFC074804F046 -:103E400087FB0020E40704D50721054A054806F052 -:103E500055FC10BD5661FF1FFFFF0000913D001192 -:103E6000D0B80011AC40FF1F00B50C4BBFB01A78A2 -:103E70000B4902A800F098FC6B4680B2D88000285D -:103E800009D06A46074B01A91B889380064B002284 -:103E9000188803F09BFD3FB000BDC0463461FF1F92 -:103EA0003561FF1F0641FF1F1042FF1F00B50C4B7D -:103EB000BFB01A780B4902A801F0CEFC6B4680B265 -:103EC000D880002809D06A46074B01A95B8D9380F2 -:103ED000064B0022188803F079FD3FB000BDC046B4 -:103EE0005E61FF1F5F61FF1FAC40FF1F1042FF1F9D -:103EF000F7B50E00377A1C0008AB11003D001A8898 -:103F000020231D401F423CD13378022B3BD17368E4 -:103F10001F785B781B023B431E4FBB4208D01E4FED -:103F2000BB4214D01D4DAB4221D00A252800FEBD56 -:103F3000002A2AD1142C2AD82200F06807F048FC65 -:103F4000174B1C70012CF1D9FFF7B0FFEEE7002AE8 -:103F50001BD1202C1BD82200F06807F039FC114B34 -:103F600004211C70104B187807F0AAFADEE7E3B2C0 -:103F70000124009201940A00310007F0DBF80500EB -:103F8000D4E70825D2E70125D0E70B25CEE70D259C -:103F9000CCE7C046F3FF0000F4FF00000229000058 -:103FA0005E61FF1F3461FF1FE061FF1F332310B507 -:103FB000040003700A220749013007F009FC064B90 -:103FC0000F201B681A0AE37222731A0C1B0E62730D -:103FD000A37310BDA861FF1FD061FF1F30B501257D -:103FE00003790400BFB02B4213D00B49408806F080 -:103FF0000DFC28420DD06A46084B02A81B8893800E -:10400000FFF7D4FF6B46D8800022608801A903F037 -:10401000DDFC3FB030BDC0465661FF1F0641FF1FAB -:1040200010B5024804F054FB10BDC046DD3F00113E -:1040300070B5160004AA148805AA15784A68507845 -:10404000117800022A4A0843801805284BD807F047 -:1040500047FA03131E29343F0720042C0BD80522EE -:10406000121BAA4200D92A0022491A8030000919DD -:1040700007F0AEFB002070BD0720112CFBD81222E8 -:10408000121BAA4200D92A001B491A80EEE707201A -:104090000E2CF0D80F22121BAA4200D92A00174971 -:1040A0001A80E3E70720032CE5D80422121BAA425A -:1040B00000D92A0012491A80D8E70720032CDAD841 -:1040C0000422121BAA4200D92A000E491A80CDE709 -:1040D0000720032CCFD80422121BAA4200D92A00A1 -:1040E00009491A80C2E700220A201A80C3E7C046A5 -:1040F000DCD5FFFF1BB900117C61FF1F0BB900115C -:1041000006B9001101B90011FCB8001110B50D215C -:10411000024A034806F0F2FA10BDC046F0B800119A -:104120001C41FF1FF0B50024274E85B03000B4714C -:1041300000F0E2F8254D264BEA89297C9A422FD1DE -:104140000423300003AA00F057F90400300000F007 -:1041500011F90123B371002C34D16B4699892B6876 -:10416000C9BA4B4329891B4A1B145B1853806B4601 -:10417000D9896B6849BA89B24B4369891B0C5B18B2 -:104180001548191C1BB2834200DD011C0B0400D52D -:1041900000211388918001331380200005B0F0BD09 -:1041A0000227220003AB3000009700F0F7F80E233F -:1041B0000400297C0122300000976B4400F0EEF8E7 -:1041C0000443C3E71C00E8E7F441FF1F9061FF1FB1 -:1041D00083050000A861FF1F0F27000073B5234E61 -:1041E000300000F089F8224D07236A463000297C10 -:1041F00000F002F904003000002C33D16B461B782C -:104200007F2B2FD800F0B6F86B46D878F023020445 -:104210001B031A406B469B8816495BBA9BB21A4334 -:104220002B68000953432A891B0C9B184B806B4653 -:104230005A789B7812031B011A436B68024353435D -:104240006A891B0C9B180C481A1C1BB2834200DDA8 -:10425000021C130400D500220B888A8001330B80D6 -:10426000200076BD00F086F80124F9E7F441FF1F35 -:104270009061FF1FA861FF1F0F27000070B5114C50 -:10428000237C002B0FD0382B0ED10F4D280000F0CF -:1042900033F8CC23AC222800217C9B0100F0F4F8F9 -:1042A000280000F067F870BD084BE2899A42FAD105 -:1042B000054D280000F020F800222800217C00F0A5 -:1042C000C5F8EDE79061FF1FF441FF1F8305000073 -:1042D00010B5084B1A7C002A09D05B69002B06D068 -:1042E0009847041E01D0FEF78BFE200010BD01246C -:1042F000F9E7C0469061FF1F70B5C17905000C0059 -:10430000631E9C411A4BE402E41849000460C9B2E0 -:10431000007905F0DDFEE979687949000131C9B21B -:1043200005F0D6FEE8790930C0B206F0E1FF0023BF -:10433000E36661332360AA795B3B002A0ED02268D2 -:104340009A43023B134323600A23E361073323624A -:1043500000232363A3630133E36370BD22689A43A0 -:10436000022313432360462363610633A361EFE70F -:104370000050004070B5002504000368DD66C07978 -:104380000930C0B207F0BCF82900207905F03CFEE6 -:104390002900607905F038FE70BD0000F8B51E00F8 -:1043A00006AB1D78002304681700E366616007F020 -:1043B0006FF901238022E3662B0027615200013B45 -:1043C00008D206F045FF08200A4A1168002D03D1E3 -:1043D0002800F8BD2261F2E7236F034203D023696E -:1043E000013D3370013613685B1A032BEED90125AA -:1043F000EEE7C0466008FF1F70B51C00002305688B -:104400001600EB66696007F043F901238022EB6632 -:1044100023005200013B08D206F01AFF08200A4A86 -:104420001168002C03D1200070BD2A61F2E72B6FC8 -:10443000034203D02B69013C3370013613685B1AC9 -:10444000032BEED90124EEE76008FF1F002370B5AF -:1044500004681500E366616007F01AF90123E3665A -:10446000256106F0F5FE8020064A80001168636B26 -:10447000034205D113685B1A032BF8D9012070BDE4 -:104480000020FCE76008FF1F70B51D0000230468D2 -:104490001600E366616007F0FBF80123E36626611E -:1044A0000F33626B1A42FCD02B0A23611023626B1C -:1044B0001A42FCD0EDB2256106F0CAFE8020074A00 -:1044C00080001168636B034205D113685B1A032BEC -:1044D000F8D9012070BD0020FCE7C0466008FF1F2E -:1044E00010B5084CE368002B08D18022064B52021D -:1044F0001B689B186360054B1B68236007F088F8F6 -:10450000A06010BDD061FF1FC8F00040CCF000409B -:1045100070B5184A936A916A9942FBD116498A6824 -:104520009A421FD39A1A8B60144B0126186893B2D3 -:10453000D202D20E4343424300204C681B0A1B198F -:1045400012029B180E4C0A684B60551CA3420CD8F3 -:10455000002801D04B600A600A4A136008680A4BC1 -:10456000186070BD581E821ADDE7084A30009B189B -:104570002A00EAE700F00040D061FF1F140AFF1F85 -:1045800040420F00C8F00040CCF00040C0BDF0FF3A -:1045900070B51F4C23793F2B01D93F2323711D4B4D -:1045A00022791A701878C0B207F0C2F818231A4995 -:1045B0001A4A0B801A4913800B805380A37919493A -:1045C00080200B800C21938001334B43164D191C26 -:1045D0000001834200D9011C2980D1806379002B1E -:1045E00011D101336371237A012B01D80223237285 -:1045F0006279237A0D4853430A21584306F050FF4D -:104600000B4D286070BDA02BEDD9A023EAE7C04672 -:10461000C461FF1F480AFF1F0E42FF1FD043FF1F48 -:104620000C42FF1F0A42FF1F0842FF1F71020000D9 -:10463000B461FF1FF8B514210020FEF7CFFE114C26 -:10464000011E114D09D10C22104BC1CBC1C4280051 -:1046500006F08EFEFFF79CFFF8BD0C2220000C49EF -:10466000FEF790FE0C2802D0084B43CB43C40C222B -:1046700028000849FEF786FE0C28EBD00C2200210A -:10468000E5E7C046C461FF1F9061FF1F60B90011DC -:10469000FC0C0000F50C0000F0B51D4C8022A54478 -:1046A0000400882069465201400506F0A9FD9022C9 -:1046B00012016A441300200032C832C316C816C360 -:1046C0008023144C144FA6689B033343A3603B60C4 -:1046D00006F096FF8823A0685B05C01806F0A8FEC8 -:1046E0000025882329008022A0685B05C018401996 -:1046F0006944520006F0CCFE80230135FF355B0192 -:104700009D42EED1A6603E60044B9D44F0BDC04684 -:10471000FCEFFFFF4043FF1F9808FF1F041000003D -:10472000F0B5040087B0002825D0684606F0E8FD03 -:104730001B4C022806D106226946200006F020FF05 -:10474000002816D06946002301250F262F00E25CC1 -:10475000013310091030874038002F003240974055 -:104760003A0002434A610439062BEFD16846FFF74D -:1047700093FF07B0F0BD182269460A4806F040FDD5 -:104780006A46A300D358013305D01822FF2168469A -:1047900006F0EEFDEAE70134062CF1D1E9E7C04668 -:1047A0006509FF1F00090011F0B5002504000E0087 -:1047B00085B0AA4200D183E04B1C087801934B7866 -:1047C0008978377909021943F3783F061B040B43B4 -:1047D0001F43039720706570252800D193E033D8DC -:1047E000112813D806F0E4FE66000D010D010D013D -:1047F0000D01A700B500AE000D010D010D010D0169 -:104800000D010D010D010D01E7000701232800D165 -:10481000C0E0DB2800D016E1042A00D8A9E010256A -:10482000052A05D0551F2A003800711D06F0D0FF5B -:1048300005223100200006F0CBFF2A003900601D60 -:1048400006F0C6FF05353BE0562856D010D8332871 -:1048500000D19AE0552836D02628DAD1894B290094 -:10486000132218001D0006F083FDFEF7C9FB59E076 -:10487000712800D174E0722800D17DE0DC28C8D115 -:10488000022A00D875E07378BFB26370B378A37062 -:10489000032A05D0033A390092B2F01CFEF7ACFCB3 -:1048A00010223900E01CFEF76DFDC51C002807DA58 -:1048B00060705CE00C222000734906F089FF0C2533 -:1048C000280005B0F0BD013A704D0C2A13D8002A1B -:1048D0000AD02800019906F07BFFFFF759FE0C2251 -:1048E00028006B49FEF788FC29000C22601C06F0AA -:1048F0006FFF0D25E4E70C22EBE7644D654B2A00C2 -:1049000043CB43C2E9E7013A5E4D0C2A11D8002A95 -:1049100008D00199280006F05BFF0C2228005E49B0 -:10492000FEF76AFC29001322601C06F051FF1425D3 -:10493000C6E70C22EDE705225849601C06F048FF47 -:104940000625BDE712225649601C06F041FF1325DB -:10495000B6E708225349601C06F03AFF0925AFE785 -:104960007178F02905D8504B188801F0D1FB022549 -:10497000A6E7FF236370FAE74C4B012A03D0727855 -:104980005A706270F3E75B78F4E72000FFF70EFBE4 -:10499000050095E7042A04D9454D2F6006F038FE3E -:1049A000A860FFF7B5FD0422039003A9601C06F080 -:1049B0000FFF052584E73F4D062A15D9062228005A -:1049C000019906F0DDFD00280ED00622019928008D -:1049D00006F0FEFE062238492800FEF70DFC0123F2 -:1049E000324A51780B43537029000622601C06F0AE -:1049F000EFFE072564E7012ABBD07078FFF790FE31 -:104A0000B5E7012800D004E7931E2C4F1A2B04D8D9 -:104A10007378002B09D100F009F9294B39001D7872 -:104A2000601C6A1E06F0D4FE4AE7551E2A00019952 -:104A3000380006F0CDFE2349AAB23800FEF7DCFBB1 -:104A400000F02AF9E9E7DA2893D1042A91D9082A53 -:104A500015D9B37972791B021343F27912041A4300 -:104A6000337A1B0613433B603B680522310020006C -:104A7000039306F0ADFE0422601D03A96CE7FE233C -:104A80006370F1E79061FF1F6CB90011C461FF1FF3 -:104A9000FC0C000060B90011F50C00009C61FF1FC8 -:104AA0007C61FF1F4443FF1F1042FF1FC061FF1FB7 -:104AB000D061FF1F6509FF1FADAC0000C163FF1F80 -:104AC000BF63FF1FAEDE000070470000020010B59C -:104AD000094B0A32094C92B2DA815A8298811882C3 -:104AE000207802F07BF90422054B012120781A700E -:104AF00006F0E6FC10BDC046CE42FF1F0A64FF1F51 -:104B00000964FF1F013870B5042809D806F0E8FCD5 -:104B10000309230812001E4B0221187806F0D0FC6E -:104B200070BD1B4B0821187806F07AFE0022194B45 -:104B30001A72F5E780220024164B154D52001A8197 -:104B4000082128781A68DC7206F09AFC210028787F -:104B500006F006FDE4E70E4B0821187806F060FE2B -:104B60000D48FFF7B3F80D4B0D4A9B7993800D4A22 -:104B700013800022074BDA720132FF321A810A4B8E -:104B80005B78002BCCD0094A136006F031FEC7E7F2 -:104B9000E061FF1FB461FF1F1942FF1FC461FF1FC7 -:104BA000D043FF1F0A42FF1FC061FF1F34F00040C7 -:104BB00010B5002905D1082803D10131013005F0D5 -:104BC00051FA10BD10B501290FD108280DD10021CF -:104BD000013005F047FA054B1B78002B05D0262243 -:104BE000034B04485A72FFF771FF10BDE263FF1FC9 -:104BF000B461FF1FC40900000300F0B50A4D8E1810 -:104C0000B14202D152008018F0BD0C782F682409FF -:104C10003C5D0F271C700C7801313C402F683C5DD7 -:104C20005C700233ECE7C0460442FF1F0E22114BBA -:104C300010B51A700D23104C10492370093A043B2B -:104C40000F48637006F0C4FD2D2301220D490E4864 -:104C5000E371FFF7D1FF01220C49FFF7CDFF0122DD -:104C60000B49FFF7C9FF00220A491000FEF7C4FAFA -:104C700010BDC046DE63FF1FBF63FF1F1BB90011DD -:104C8000C163FF1F6709FF1FC763FF1F6609FF1F7F -:104C90006509FF1FAEDE000070B5124C1322200024 -:104CA0001149FEF76FFB114D002817DDAB78002B83 -:104CB00014D0431C2B7009236B7000230019037060 -:104CC000287829000130C0B206F002FC29782200C1 -:104CD0000139C9B2002005F02FFC70BDFFF7A6FF17 -:104CE000EEE7C046C163FF1FAEDE0000BF63FF1FDB -:104CF00010B5114B1A781870002A0ED000280BD16D -:104D00000E4B1A78062A07D85423D340DB0703D565 -:104D10000B4B187802F062F810BD0028FCD0074B4E -:104D20001B78012B02D0033B022BF5D8044B012149 -:104D3000187806F0C5FBEFE7E263FF1F0964FF1F69 -:104D40000A64FF1F70B5504E504A51493070082018 -:104D500005F07EFA0121092005F084F9092005F00B -:104D600065FA0121002005F07DF9002005F05EFACA -:104D7000FEF746F906F00CFC032246494648FFF7C9 -:104D80003BFF2D24030004221C7044490130FFF72F -:104D900033FF30230470424D424C437083702E3BEE -:104DA000062220004049EB87FEF7ECFA062813D0D4 -:104DB000200006F0A5FA022809D00321200006F001 -:104DC000C7FC8D23E3706E3B237119336371062298 -:104DD00020003549FEF710FA344B1B68FC335C6445 -:104DE000FFF75AFF0020FFF783FF314C314A0121C2 -:104DF000314B1278207801F0B3FF304A304B1278F3 -:104E00000021207801F0ACFF01222E4B1A702E4BAE -:104E10009B78552B31D12D4B3B325A722C4B2D4A5E -:104E2000AB81EA812B826A822021307806F0C0FAB9 -:104E30000120404205F0CCFB0120404205F068FC17 -:104E4000FFF764F9FEF726FF00F09EFC01204042C8 -:104E5000FEF7EEFF012006F09BFAF02001F03CF98E -:104E60000121307806F02CFB307802F013F91A4853 -:104E700006F086FCFEF722FE70BD6422174B5B79BC -:104E800053431A000A32CBE7E061FF1FB14B001118 -:104E9000C54B00114443FF1F7C61FF1F9C61FF1F36 -:104EA000CE42FF1F6509FF1FADAC00002C64FF1F41 -:104EB0000A64FF1F3842FF1F1942FF1FDE63FF1FF6 -:104EC000BF63FF1FB063FF1FC061FF1FB461FF1FFF -:104ED000C4090000CE090000E261FF1FC461FF1F8A -:104EE000F8B50A0020230D001A40194251D0544B46 -:104EF0001B78002B3CD0FFF70BFB524B524C534E10 -:104F000099686268737A8A1ADB039A4202D36160F5 -:104F1000FEF7D4FD327A217A531EDBB299422AD1B0 -:104F2000FFF7ACF9637A002B1FD0013BDBB2637251 -:104F3000002B1AD1464B9B78552B01D106F058FC1B -:104F4000E37A002B0CD00023424A434FE3721388CC -:104F5000380001331380FEF7B9FE390006F0A0F9DE -:104F6000642370795843FFF7B1FD237A013323722C -:104F700020206840F8BD9142D4D300232372FFF76C -:104F8000A7F9354F3800FEF7A1FE390006F088F981 -:104F9000C8E70BB2002B0ADA304B187806F070FB2A -:104FA000002801D006F0CCFB80200002E1E70224BB -:104FB000214206D0244B01201A72FFF799FE2000EF -:104FC000D7E70B071BD5FFF7A3FA1E4B1E491F4C53 -:104FD00098684A68637A821ADB039A4202D348606F -:104FE000FEF76CFDFFF774F9FFF748F900F0E6FBF8 -:104FF0002368DB0701D5FFF713F80820B9E7102471 -:105000000E002640214206D00D4B1B78002BD6D136 -:10501000FEF754FED3E70124214209D0104800F0E6 -:105020006DF806F00DFC3100092005F01BF8C6E70D -:1050300004240800204021429CD0FEF715FFBEE763 -:10504000E263FF1FD061FF1FB461FF1FC461FF1F38 -:10505000C061FF1FA861FF1F1942FF1FE061FF1F12 -:10506000FC41FF1FF0B51B4B1B4F1B883A88040007 -:105070001A4E1B4D85B09A420DD832889A420AD3F7 -:10508000184B1A882B889A4205D1174A174B128859 -:105090001B889A421BD0052001F074F83B8802AAB5 -:1050A00013803388019053802B88114D93800F4BD0 -:1050B00002A91B88D3800F4B2A78188802F090FD34 -:1050C0000D4B08212878019A1C7006F0B9F805B03C -:1050D000F0BDC046AE63FF1F0E42FF1F0C42FF1F14 -:1050E0000A42FF1FAC63FF1FAA63FF1F0842FF1F96 -:1050F0000A64FF1F1042FF1FA863FF1F13B50C4B6C -:105100001C78002C11D1002801D00A4B18600A4AE3 -:105110000A4B11780A4A10780A4A01920A4A009208 -:10512000002205F001F9200016BD1124FBE7C0465E -:105130000964FF1FA463FF1F0864FF1FF863FF1FBC -:105140000A64FF1FE463FF1FE863FF1F10B5064BEF -:1051500012201B78052B06D1044B13221988044B0F -:10516000187801F0EBF910BD0964FF1F1042FF1F12 -:105170000A64FF1F10B500240122114B524218701F -:10518000104B1C70104B1A8001F084FF04220F4B4F -:1051900021001A700E480C3206F062F8102221002D -:1051A0000C4806F05DF807220B4B1C600B4B1C7083 -:1051B0000B4B1C700B4B1A700B4B1C7010BDC04678 -:1051C0000A64FF1F0964FF1F1042FF1F0864FF1FCE -:1051D000F863FF1FE863FF1FE463FF1FBE63FF1F49 -:1051E000BD63FF1F1242FF1FBC63FF1FF8B5174CC2 -:1051F0000600257806A814240078052D23D1B41FB5 -:10520000134FA5B21824BD421DD88D1FADB2BD42AB -:1052100019D8FA256D00AA4215D21D000D4F0A3D7E -:10522000ADB2BD420FD80C4C26800C4C21800C49ED -:1052300000240A800B4A1380FFF714FF0A4B042155 -:10524000187806F0EDFA2000F8BDC0460964FF1F8B -:10525000790C0000750C00000E42FF1F0C42FF1F6E -:105260000A42FF1F0842FF1F0A64FF1FF0B50BB27E -:105270000D0089B0002B00DB70E1A44E307806F001 -:10528000FFF9041E50D00378A22B00D122E1D02BCD -:105290001AD0912B45D143780E2B42D19C4B82885A -:1052A0009A423ED19B4A83681278052A39D103205D -:1052B00018567F2835D0984B1B68002B31D05B687F -:1052C000002B2ED098472CE08078072829D806F0AC -:1052D00007F90428183F3F74A8D86378002B0CD135 -:1052E00001218C4B19708D4B1A78002A5BD08C4BA6 -:1052F000307801F035FD002855D00722854B1A7013 -:1053000051E061780029F8D1E378002B11D0854A6B -:10531000854B1278307801F023FD60706378002BA4 -:10532000EBD1200006F00CFA80200002684009B0A2 -:10533000F0BD784B1B78022BF3D00121307806F0BA -:1053400067FA0028EAD10121307806F0B9F8E5E7DC -:105350006378002BD1D16F4F032807D13B78052B01 -:1053600002D101333B701EE00223FBE76F4B1A882A -:105370006F4B0293002A0BD01B78002B03D0012126 -:10538000307805F05DFF3B78062B04D1013BE9E75F -:10539000029B1A70F7E7042B41D10121029B307860 -:1053A000197006F08DF85C4B1B68002BB9D01B6898 -:1053B000002BB6D0574A107884E76378554F002BFE -:1053C00027D10622211D5B4806F002FA62895A4B5A -:1053D0005A491A80A2895A4B1A80E3890B80052109 -:1053E000397058490A80584A1380228A574B1A80CC -:1053F000574B1B78012B09D11F2000F0C3FEFA2266 -:10540000920042430421307805F01AFF0022484BF5 -:1054100075E7312B00D070E70022454B1A7003234B -:10542000A0E706220021434805F01AFF0023454A61 -:1054300004211380444A30781380444A138006F0D4 -:10544000EFF90821307806F0EBF9A379083B5A42CE -:105450005341304A03331370304B1B78002B06D076 -:10546000334B30781A78002A06D001F0B7FC0122BD -:10547000314B52421A8096E70121197006F020F84C -:10548000F5E70821307806F0CBF96378002B00D0DF -:1054900047E72C4B2D4F0293E388029A0421138097 -:1054A000294B307803932389039A138063893B80C7 -:1054B00006F0AEF9002800D033E7264B1B68002B1E -:1054C00000D12EE7039902983A88098800881B6862 -:1054D000984726E74379132B00D022E70389012B55 -:1054E0000AD11D4B1B78022B06D10821307806F01B -:1054F00097F9FFF72BFE14E7052000F043FE082183 -:105500000200307805F09CFE0BE7C0460A64FF1FDE -:10551000051400000964FF1FA463FF1F3842FF1F2A -:105520001942FF1FDE63FF1FBF63FF1FE063FF1F02 -:10553000E263FF1FB163FF1F1042FF1FB863FF1F2D -:10554000BA63FF1FAE63FF1FAC63FF1FAA63FF1F99 -:10555000B063FF1FA063FF1FA863FF1F8020C0016F -:10556000014200D0E2E6CB0731D5324B1B78002B4D -:105570001DD0314E05AC3378052B1AD1023B237078 -:105580002E4B21001B7823722D4B1B7863722D4B01 -:10559000187801F089FB002809D007202A4B3070C9 -:1055A0001B68002B03D01B68002B00D098470120FC -:1055B000BCE60E20254B06221B7825492370254B7F -:1055C0001B78637002ABC01806F002F9D8E702231B -:1055D00008001840194209D0174B1B78052B03D13E -:1055E0001D4B188805F044FE02209FE6042421424A -:1055F00003D0FFF737FD200098E608230800184085 -:10560000194200D193E6154B1C78012C03D0022CD3 -:105610000DD008208AE6124B124A134913481B8802 -:105620001288098800880094FFF7E0FDF1E7FFF792 -:105630008DFDEEE7E263FF1F0964FF1F1242FF1FAB -:10564000BC63FF1F0A64FF1FA463FF1FBE63FF1F2D -:105650001342FF1FBD63FF1F1042FF1FA863FF1F00 -:105660000842FF1F0A42FF1F0C42FF1F0E42FF1F8E -:1056700010B502A804880B20002C10D149680878C6 -:105680004978090201430C48814209D1022119805D -:105690000A4B59881170DB7800205BB2537010BD43 -:1056A000074C0A20A142FAD102211980034B9988A4 -:1056B00011705B79F0E7C0466E2A0000A861FF1FF9 -:1056C0006F2A0000F7B5150008AA16884A680F4F20 -:1056D00014785278120222430A24BA4214D10122C9 -:1056E000DBB2019200962A0005F024FD041E0BD1C6 -:1056F000074B1B68002B07D068782A7800021043FC -:1057000042425041013098472000FEBD022900006E -:105710001C64FF1F30B5012503790400BFB02B4284 -:1057200025D01449408805F071F828420CD0124B5E -:1057300001A95B8D00220B8002234B800F4B5B88FD -:105740008B80608802F042F90D49608805F05EF8B0 -:10575000C0070CD50B4B01A91B8800220B8002232C -:105760004B80064B9B888B80608802F02FF93FB0FE -:1057700030BDC0461464FF1F3C42FF1FA861FF1FDD -:105780000C64FF1F9642FF1F10B5074C074920000D -:1057900004F0F2FF2000064904F0EEFF0721054A5D -:1057A000054804F0ABFF10BDFFFF00001464FF1FAD -:1057B0000C64FF1F8CB900113C42FF1F10B502485A -:1057C00002F086FF10BDC046155700110200F0B56B -:1057D00001270A480A4E51188B1A002B00DCF0BD35 -:1057E000082415784308684038404000805B013C3D -:1057F00058406D08002CF5D10132EDE7FFFF0000A5 -:10580000A6B90011F0B500250F269D4200DBF0BDC2 -:105810004C5D070944403440A400A058013578404D -:10582000F3E70000F0B589B06A460D000B000F27C2 -:10583000110010351C780133260024093E401670F3 -:1058400054700232AB42F5D12023024AFFF7DAFF4F -:1058500009B0F0BDACB90011F0B54E780B7889B045 -:1058600036020C00170001901E43012A61D9954BA6 -:105870009E4200D877E001339E421CD1062A17D100 -:10588000CA788B7812021A430B791B0413434A79A6 -:1058900012061A438C4B5A6100221A705A808B4AA6 -:1058A0005A608B4A9A608B4ADA60002009B0F0BDDA -:1058B00088225205EEE7884B9E423CD182498B7884 -:1058C000002B00D0F6E00C2A31D10F22A3789343AD -:1058D000E27812021343227912041343627912060A -:1058E00013434B60E279A07912020243207A00044C -:1058F0001043627A12060243CA60E27AA07A120268 -:10590000024376484A81834208D804236E49142210 -:1059100001980B7005F05CFF1420C7E71201D21844 -:1059200089235B059A42F0D801238B70BDE7022AD8 -:10593000FAD00523EAE76A4A01239642E6D1FFF747 -:1059400005FC052F0CD9E378A2781B0213432279BA -:1059500012041A4363791B061343624A03931360CC -:1059600005F046FFA1E7584D2B78002B9DD1AB7871 -:10597000002B00D1A0E02B8901339BB20093B342EE -:1059800000D091E0132AD4D9CF7C8B7C3F02122126 -:1059900020001F43FFF71AFF874200D08EE0002E41 -:1059A0003DD1E378A2781B0213432279E9681204FF -:1059B0001A4363791B06134303930A228B4212D1C5 -:1059C000FF23A370E370237163716B89002B09D1EE -:1059D000E37B227C1B0212041343A27B13431B09AB -:1059E00001336B8100226B89002B8ED0002A67D196 -:1059F000686837013818000B6B6900030390984200 -:105A000005D9686105F014FDEB780133EB70686827 -:105A10001022A11C381805F03BFD2E8145E76F8947 -:105A2000009A7B1E9BB293423AD1E278A37812028D -:105A30001A43237905A81B04134362796C68120684 -:105A40001A43EB6800920392211D0C22049305F087 -:105A5000BFFE0120260004A940421036FFF7E2FEF7 -:105A6000013F012F17D1009A0B232861824200D0F9 -:105A70004CE704221C49200005F00AFD042203A97A -:105A8000686805F0BDFBE968039AFF23914200D1E5 -:105A90003CE7F73B3AE73100FFF7C4FE1036DFE79B -:105AA0000923B742A4D831E7009BB34200D9FCE6F2 -:105AB00007232BE7022329E7032327E7062325E70C -:105AC0000A2323E7FFFE0000B042FF1F0000011180 -:105AD000FFFF00005048593601FF0000FFFF001192 -:105AE00002FF000034F00040BC42FF1F10B5034C21 -:105AF0000B000122210000F06BFA10BDAD5C00111B -:105B00000B8870B506000D000224162B11D92B004E -:105B10000322094900F05CFA041E0AD1074B2A88C7 -:105B20001B88191C934200D9111C300089B200F067 -:105B3000EFFA200070BDC046D95C00114664FF1F1B -:105B400010B54A780400013A0B000220012A07D858 -:105B50000A78002A04D005222000024900F038FA11 -:105B600010BDC046075D00110A7810B50B00040097 -:105B70000220002A04D007222000024900F028FA5F -:105B800010BDC046B35D00110A7810B50B000400CB -:105B90000220002A04D009222000024900F018FA4D -:105BA00010BDC046195E001110B5034C0B000B224E -:105BB000210000F00DFA10BD495E001110B5034C34 -:105BC0000B000D22210000F003FA10BDBB5E001196 -:105BD00010B5034C0B000F22210000F0F9F910BDA5 -:105BE000155F00110A7810B50B0004000220002A8E -:105BF00004D011222000024900F0EAF910BDC0468D -:105C0000255F0011002310B51322190000F0E0F900 -:105C100010BD000010B5034C0B001722210000F04E -:105C2000D7F910BD775F0011002310B519221900B4 -:105C300000F0CEF910BD000010B5034C0B001B2284 -:105C4000210000F0C5F910BDB15F0011F7B58489DE -:105C50000D0006000121002C22D000238268D356BB -:105C60001778002B1EDA0C2C1AD90C3CA4B213198D -:105C700040880093230002F086FE431E98410130C5 -:105C80007B06DB0F6B703F23013C1F40A4B22870E2 -:105C9000AF70AC80002C07D0B3680133AB6000213B -:105CA0000800FEBD0020EBE7AC60F8E70B7803705E -:105CB0004B8843704B881B0A83700B79C370042098 -:105CC00070470420022B06D10020537811781B0264 -:105CD000009A0B43138070470B8803700B881B0AD4 -:105CE0004370022070470420009983420AD1537800 -:105CF00010781B0203430B80D37890781B02034378 -:105D000000204B807047F8B50D004B78012400212E -:105D1000461C03702B788B4201D82000F8BD6B78AD -:105D2000B01C4F1C012B10D1890069184B8802222E -:105D300033704B88B9001B0A7370691805F078FA44 -:105D400004360434A4B2F9B2E4E7122359436B18C1 -:105D50005A88043132705B8810221B0A73706918EC -:105D600005F066FA12361234ECE770B5049D1400A3 -:105D70001E00052B01D8042070BD637812781B0229 -:105D800013432B80E378A2781B02134302226B801B -:105D90002A71211D681D063E05F04AFAB2B22A8119 -:105DA000E92AE8D82800A11D0A3005F041FA0020B0 -:105DB000E2E7002310B50A789A4201D8900010BD9E -:105DC0009A008A185488013304705488DBB2240A7C -:105DD0004470948884709288120AC2700430EAE792 -:105DE00010B51100029C062B04D004201022142BA5 -:105DF00001D010BD022222714B7808781B020343A8 -:105E00002380CB7888781B02034363800431601DB4 -:105E100005F00EFA0020ECE710B50C788B78043111 -:105E20005C43E4B203702200013005F001FA601C0B -:105E300010BD0420022B06D10020537811781B02DC -:105E4000009A0B431380704710B50C000A8802318A -:105E500005F0EEF9208810BD70B504000D0004981F -:105E60001100012B01D8042070BD1678527812025F -:105E7000324302800200F13255701470E125002C8B -:105E800000D10C35023B9AB24280AA42EBD80231D3 -:105E9000043005F0CDF90020E6E7042000998342A4 -:105EA0000AD1537810781B0203430B80D378907883 -:105EB0001B02034300204B80704710B50C000A887A -:105EC000023105F0B5F9208810BD000070B5012140 -:105ED0001E000420049C0E400B4218D1CB40DDB2C2 -:105EE0008D4214D90A49DBB2098899420FD32300A5 -:105EF000EE331D703300580011184978165C090202 -:105F0000314301332152D9B28D42F4D8002070BD03 -:105F1000C842FF1F10B50C000A88023105F088F94D -:105F2000208810BD10B50C788B7804315C43E4B246 -:105F300003702200013005F07BF9601C10BD10B524 -:105F400011000298032B01D8042010BD1478527858 -:105F5000043B120222430280CA788C781202224348 -:105F600042809AB28280EB2AEED80431063005F0E6 -:105F70005FF90020E9E710B50C000B8803700B886F -:105F80001B0A43704B8883704B881B0AC3708A8836 -:105F90000430063105F04CF9A088043080B210BD01 -:105FA0000420012B03D100201378009A137070474E -:105FB00010B50C000B8803700B881B0A43704A88CD -:105FC0000230043105F034F96088023080B210BD2F -:105FD000F0B589B003931E4B029242000700D05ADD -:105FE000019102F020F81325061E2DD0029B0124FA -:105FF0000370019B002B04D00019039998470019E6 -:1060000084B26B461B7A5BB2002B0FDA102138008A -:1060100002F01CFB1925002813D130003219E1B21F -:1060200002F066FC051E0CD10C34A4B2042304AAB1 -:10603000380005A993800696948101F0AFFD051EF6 -:1060400002D0300005F094FA280009B0F0BDC04637 -:106050004464FF1F70B505000C0000280CD0002020 -:10606000814209D010222000044905F0E1F8012006 -:106070002B7823736B78637370BDC046ECB9001145 -:10608000F0B506000D0017001C0085B002291BD0DA -:106090000020102907D1022B07D0102B03D115E0C7 -:1060A0000020102C08D005B0F0BD69463800FFF77D -:1060B000D1FF2A0069460BE069463000FFF7CAFFAE -:1060C00022006946380004E0022BE9D12A00390099 -:1060D000300005F00DFAE6E7031CF02800D9F023A4 -:1060E000032008499AB2013A0B80D31703400649AE -:1060F0009B189B100B80D30F04499B185B100B80DF -:106100007047C046CC42FF1FCA42FF1FC842FF1F54 -:10611000034B1B888B4202D3024B4000C152704795 -:10612000CC42FF1F4464FF1F014B4000185A7047C8 -:106130004464FF1F1722014B1A8070474464FF1FFD -:1061400070B505000E2005F0E3FA041E13D0D0232D -:10615000037000230622837007494570033005F061 -:1061600067F8064B2100DA8A62811B7E2373044B99 -:10617000187805F03DF970BD6064FF1F5064FF1F83 -:106180001C43FF1F262803D8024B4000C05A70470B -:106190000148FCE7CE42FF1FFFFF000070B506007C -:1061A0000C00094D1C220021280005F059F8074B6E -:1061B0001E70074B1C7005F0F3F90123002801D075 -:1061C000002312202B7070BD5064FF1F1C43FF1F63 -:1061D0007164FF1F70B505000D4C0800E260A160FE -:1061E00010220021656005F07BF8012803D1102101 -:1061F000A06802F058FD10220021280005F070F878 -:10620000012803D11021606802F04DFD70BDC04629 -:106210005064FF1F70B5041E05D1002903D006226B -:106220000D4805F005F80D4B1D78012D11D1002CFE -:1062300005D102221A7005F04BFA280070BD002229 -:106240001A70074B1B78FF2BF7D02000FFF778FF61 -:10625000F3E70025F1E7C0466064FF1F5064FF1FAD -:106260001C43FF1F030010B5002801D1002010BD02 -:1062700000780B4A002803D15988D1821B79137604 -:106280001378022BF2D10023984200D1033313700C -:10629000044B1B78FF2B01D0FFF752FF0120E6E7EC -:1062A0005064FF1F1C43FF1F002911D000280CD091 -:1062B0004B79012803D140225242134303E03F228D -:1062C0001340032802D001204B7170474022F4E7AD -:1062D0000800FAE770B5094D0100287800280BD0B6 -:1062E000074C0622200004F0A3FF21002878FFF7C6 -:1062F000DBFF200005F02CF970BDC0467064FF1F65 -:106300004A64FF1F00290AD0012808D13F224B7997 -:106310009343C02B03D0403B5A425341981C7047D3 -:1063200070B5174D06002B78FF2B15D00A2005F00D -:10633000EFF9041E10D0D0230370C83B8370114BBB -:1063400011491B784670C3700622043004F070FFB8 -:106350002100287805F04CF80C4B1B78012B0DD14F -:106360000B4B1B68002B03D09B68002B00D0984779 -:10637000084B04211878084A05F082F870BDC04621 -:106380001C43FF1F7064FF1F4A64FF1F6C64FF1FE4 -:106390009864FF1F9C64FF1F60EA0000014B98682F -:1063A0007047C0465064FF1F014BDB681868704798 -:1063B0005064FF1F074B10B5DA6813680133136090 -:1063C000054B1878FF2803D08021C90105F078F823 -:1063D00010BDC0465064FF1F1C43FF1FF7B50E00E1 -:1063E00002F0C8F8051E1CD00E4B06621F78002F65 -:1063F00000D10778AB791020019305F089F9041ECC -:106400000FD0D0230380C73B8370019BE91DC3706D -:106410000622043004F00CFF21003800E66004F08E -:10642000E7FFF7BD1A43FF1F014B18787047C046BE -:106430007064FF1F054B002805D1054B1A78054BEA -:10644000002A00D1014B18007047C0466064FF1F4E -:106450007064FF1F4A64FF1F014B58687047C046B5 -:106460005064FF1F024B1868431E9841C0B270472A -:106470007464FF1F421E03000120152A03D9FF3B4D -:106480005A425341D8B27047F0B51C0000230E00A9 -:1064900085B0039002920B70029A934201D30020C0 -:1064A00019E0E55C5A1CD2B2002DF8D002985119BF -:1064B0008142F4DC0233DFB2A35C18000193FFF7E2 -:1064C000D9FF002807D0013D019A0399EBB2337040 -:1064D0008A4202D1E01905B0F0BDDB19DBB2DBE77F -:1064E00010B50C0002F09EF803001220002B03D020 -:1064F0002100588804F01CFF10BD000070B50E4D3F -:1065000084006359002B15D0186A002801D005F0CB -:10651000F7F82B59586A002801D005F0F1F82B59EB -:10652000986A002801D005F0EBF8285905F0E8F842 -:1065300000232B5170BDC0468064FF1F1C4B70B5FB -:1065400004000E00150099420AD11A4B1B68002B5B -:1065500001D1122070BD1B68002BFAD09847F9E7D3 -:10656000154B994215D1134B1B68002B0AD01B68A1 -:10657000002B07D09847002804D1104B1C70104BFB -:106580001D70E7E729002000FFF7AAFF0028E1D1EE -:10659000F3E7080001F0EEFF0028DAD003780320CB -:1065A000A342D7D12900300004F0C2FED2E7C04692 -:1065B000FEFF00007C64FF1FFFFF00007964FF1FE7 -:1065C0007864FF1FF7B50400808801F0D3FF002531 -:1065D000A84203D00578A08802F008F81C4E337852 -:1065E000002B1FD0AB421DD11A4B28001978FFF7A2 -:1065F00077FF002818D000233370A3790820A778EC -:10660000A688019305F084F8011E0DD0D0230370F5 -:10661000CA3B8370019B477086808371280004F019 -:10662000E7FE01E0002DE8D1A0880B4B8200D35893 -:10663000002B01D0FFF762FF1721A088FFF768FD4C -:10664000A08801F027FDA08801F0FEFDF7BDC0463F -:106650007964FF1F7864FF1F8064FF1FF0B587B067 -:106660001D000CAB1B88070001930DAB1B88142089 -:1066700002930EAB1B88160003930FAB1B8800918F -:10668000049310AB1B88059305F042F8041E1AD042 -:10669000D0230370CB3B47708370C670062229005D -:1066A0000430002D11D004F0C3FD019B2100638153 -:1066B000029B0098A381039BE381049B2382059B9B -:1066C000A37404F095FE07B0F0BD04F0C9FDECE73B -:1066D000F7B5009308AB1B8807000C200D001600CF -:1066E000019305F015F8041E13D0280001F042FFB5 -:1066F00000280FD00078D0232370C93BA370009BE3 -:1067000021002381019B6770A580E680638104F0EE -:106710006FFEF7BD014B1878EDE7C0461C43FF1F25 -:1067200013B5040064890389C2888188C078009405 -:10673000FFF7CEFF13BD000010B5044C2068002801 -:1067400003D004F0DDFF0023236010BD8464FF1F2D -:10675000A122F0B5818892004A43384B384F1B681C -:1067600004009B189D2292009B18827989B01A60C0 -:106770003B68002B5FD01D78324B1B68002B04D088 -:106780005B68002B01D000209847260008363100B6 -:10679000E079FFF7B7FD237DE0710200E078049314 -:1067A000638A29000393238A0293E3890193A388D0 -:1067B00000933300FFF752FFE378002B0BD1E289FF -:1067C000A379A18802920196E27928000092012221 -:1067D00001F0DAFEE0703B68002B20D0FFF7ACFF41 -:1067E000194D287800281AD0184B1978FFF778FE31 -:1067F000002814D02B78E67808200793A78804F0A7 -:1068000087FF011E09D0D0230370CA3B46708370F6 -:1068100087808671079804F0EBFD00232B70172109 -:10682000A088FFF775FCA08801F034FCA08801F077 -:106830000BFD09B0F0BD064B9DE7C0463409FF1FB4 -:106840008464FF1F9864FF1F7964FF1F7864FF1F33 -:106850001C43FF1FF8B5070008000E0001F08AFE78 -:10686000041E18D02620FFF78DFC051E00D12578C8 -:10687000062004F04DFF041E0DD00021062204F076 -:10688000EFFCD0232370C23B21006770A370A68069 -:10689000E8B204F0ADFDF8BDF0B585B001930AABE8 -:1068A0001B78070002930BAB1B7808000D000092C9 -:1068B000039301F05FFE061E22D0102004F028FF93 -:1068C000041E1DD01022002104F0CAFC2620FFF770 -:1068D00059FC002800D13078D0232370C13BA3702D -:1068E000009B21002372019B67706372029BA5804D -:1068F000A372039BC0B2E3720C9BE36004F078FDCB -:1069000005B0F0BDF7B50D00019001F033FE071E94 -:1069100020D00E2004F0FCFE041E1BD02620FFF722 -:1069200031FC061E00D13E78D0232380C53B0622D1 -:10693000A370F91DE01C04F07BFC019B2A0063811D -:106940000123DD401A401D40210022736573F0B21F -:1069500004F04EFDF7BD0000F0B585B002901000C8 -:106960000D0017000A9E039301F004FE041E31D0AF -:10697000029B002B2ED1039B02795B0724D51223A7 -:1069800013430422002E08D10B99002905D10C993C -:10699000002902D10D9900291AD01A430D9B2271AA -:1069A000002B00D0C9E0002E00D1CFE0002D00D098 -:1069B000CCE0606A002801D004F0A2FE1C21300067 -:1069C00004F04EFD606205E002239A430E33D7E7E0 -:1069D00093432371654BBA00D458002C00D1AAE030 -:1069E000002E10D0236A002B03D11C2004F058FE87 -:1069F00020625E4BBA00D358186A002803D01C22CC -:106A0000310004F015FC0C9B002B12D0574CBB003E -:106A10001D596B6A002B03D1162004F041FE6862F9 -:106A2000BB00E358586A002803D016220C9904F0E2 -:106A3000FFFB0D9B002B11D04C4DBC006659B36A77 -:106A4000002B03D1142004F02BFEB0622B59986A5E -:106A5000002803D014220D9904F0EAFB380001F05D -:106A600089FD051E67D0414BBA00D358002B62D078 -:106A70001A6A3420002A00D11C389A6A002A01D0F0 -:106A8000143080B20B9A002A01D01C3080B25B6AAD -:106A9000002B01D0163080B204F03AFE041E4AD01A -:106AA0001822002104F0DCFB2620FFF76BFB01908D -:106AB000002801D12B780193D0232370029B200062 -:106AC00063700A23294EA370039BBD00A371AB59C9 -:106AD000A780196A1830002905D01C22A06004F094 -:106AE000A7FB200034307359996A002907D00300AE -:106AF00014221433E060029304F09AFB02980B9B7B -:106B0000002B08D003001C221C330B992061029338 -:106B100004F08EFB02987359596A002903D016229B -:106B2000606104F085FB6B462100187904F060FC7D -:106B30003800FFF7E3FC05B0F0BD10220D9B0D9966 -:106B40001B69A018236204F073FB2CE70B9B002B3E -:106B500000D13FE7012D00D03CE7606A002801D05A -:106B600004F0CEFD1C210B982AE7C0468064FF1F6D -:106B700010B5044C2068002803D004F0C1FD0023A8 -:106B8000236010BD7464FF1F0B4B07B51A68002A01 -:106B900001D100200EBD6946531C01201278073137 -:106BA000FFF772FC0028F4D002780123100018408F -:106BB0001A42EED0EEE7C0469064FF1FF0B51F4FBB -:106BC00001203B6887B0002B25D09B78059300F00F -:106BD000B3FB002821D00A20FFF7D4FA04000B20D1 -:106BE000FFF7D0FA164B05001E78731E9E413B68D6 -:106BF000F6B2191DD878FFF757FB3B682900DA7AFF -:106C0000043303929A79019302920090330020009A -:106C1000059A04F085FD07B0F0BDFFF7B5FF002829 -:106C200005D00620FFF7AEFA04000720D8E70820B9 -:106C3000FFF7A8FA04000920D2E7C0467464FF1FDA -:106C40007064FF1F70B50A4E040033780D00FF2BEF -:106C50000DD0042004F05CFD011E08D0D023037089 -:106C6000CE3B45708370C470307804F0C1FB70BDBA -:106C70002C43FF1F70B5040006200D0004F048FDF2 -:106C8000011E0AD0D0230370CD3B8370054B4470A6 -:106C90001B688580187804F0ABFB002C01D0FFF74F -:106CA00067FF70BD7464FF1FF8B5264F06003B6890 -:106CB0000D001124002B05D10522234B1B78134214 -:106CC00002D112242000F8BD204A10241268002AA4 -:106CD000F8D01278002AF5D0DB0719D52B789A1E48 -:106CE000012A1AD80C2004F0DBFC13243860002899 -:106CF000E8D000230A22437029000670023004F015 -:106D000097FAFFF75BFF041E0AD0FFF731FFD9E7C0 -:106D100000F012FB0028E1D1E4E7002BE2D0D0E73D -:106D20000B4B1B78032BCDD11D20FFF72BFA094B02 -:106D300018800028C6D0084B04211878074A04F0B0 -:106D40009FFBBFE77464FF1F7164FF1F9064FF1F08 -:106D50007064FF1F6E64FF1F9C64FF1F60EA0000E9 -:106D6000F7B50193194B14001A78052306000F009C -:106D700012201A4221D0012920D1154B1D68002D67 -:106D80001BD002201F2C18D8002C02D0019B002BF6 -:106D900013D0104B1F221E706E1C0021300004F017 -:106DA0005FFA01992200300004F042FA310020001D -:106DB0002C70002F06D004F0CBFAFEBD064B12203B -:106DC0001D68DCE704F084FBF7E7C0467164FF1F31 -:106DD0009064FF1F2C43FF1F8C64FF1FF8B50F4EFC -:106DE00012243368002B17D01B780F3C834213D139 -:106DF00000250B4F0221387804F012FD094B0421C5 -:106E000038781D8004F00CFD074B28001D80336886 -:106E10005C7004F0C5FA04002000F8BD7464FF1F24 -:106E20009C64FF1F8864FF1F6E64FF1F70B50128FC -:106E300023D11B4C2388002B03D01A4A1578002D30 -:106E400007D0194B1B68002B02D01878FFF7C6FF3C -:106E500070BD3B2B02D93C3B2380F9E7134E022146 -:106E6000307804F0DDFCFA222388920002215A4394 -:106E7000307804F0E5F92580EAE70B4B1B68002B1E -:106E8000E6D00B4B1B785B07E2D5084B0221187844 -:106E900004F0C6FC0022024B1A80FFF769FED7E718 -:106EA0008864FF1F6C64FF1F7464FF1F9C64FF1FD6 -:106EB0007164FF1FF8B51E4D2868002803D004F048 -:106EC0001FFC00232B601B4E3068002803D004F009 -:106ED00017FC00233360184F05243B78180020402E -:106EE000234221D0154800F02BFA3B78234213D0DF -:106EF000202004F0D5FB2860002813D02022002198 -:106F000004F0AEF9202004F0CBFB041E306005D065 -:106F10002022002104F0A4F9002004E0286804F0F5 -:106F2000EFFB2C601320F8BD00F00AFAF4E7C0462E -:106F30009064FF1F8C64FF1F7164FF1F2043FF1FBD -:106F400010B50A4C23681A1E0ED0002808D1013053 -:106F5000587004F025FA002805D02368002B02D0D1 -:106F60000021FFF787FE0122100010BD7464FF1F8F -:106F7000F7B5274E050033680191181E21D05C78C3 -:106F8000244F012C30D1FFF7FFFD002825D0200031 -:106F9000FFF7F8F80400412814D91F4B0221187894 -:106FA0001E4A04F06DFA1E4B3C3C1C8002223368E2 -:106FB0005A703B78002B14D128000199FFF75AFE34 -:106FC0000120FEBDFA2292004243002AEED0124B6D -:106FD0000221187804F034F9E8E7FFF7D3F802004B -:106FE000F3E700233B70EBE73B78002BE8D103206D -:106FF00004F08EFB011E08D0D0230370CC3B4570FB -:1070000083703368187804F0F3F9FFF7B1FDD7E720 -:107010007464FF1F6C64FF1F9C64FF1F60EA000024 -:107020008864FF1F10B51749838802008B4220D067 -:1070300011D815498B4217D0144900205B1899B21A -:10704000012907D8926811785A425341D8B2FFF704 -:10705000F9FD012010BD0E4A00209B1807229BB2AB -:107060009A424041C0B2F5E783681878FFF768FF9D -:10707000F0E7836899785A78090218781143FFF786 -:1070800077FFE7E70A20000006200000F8DFFFFF97 -:10709000AFDFFFFF014B18707047C0462D43FF1F45 -:1070A00010B5064C207001F041FA207804F0B0F9D8 -:1070B0000521207800F062FD10BDC0469C64FF1FD2 -:1070C0000BB273B50D00002B00DBC4E0884B1878C1 -:1070D00004F0D6FA041E0ED00378912B0FD0A22B09 -:1070E00000D1A1E0834B1878FF2852D0210004F092 -:1070F0007FF900284DD180200002684076BD43789A -:107100000F2B76D013D8052B70D00E2BEAD18088A8 -:10711000794B98422BD8794B98421BD8784B9842A0 -:10712000E0D1A3681878591CFFF774F838E03E2BBB -:10713000D8D18378032B74D06CD8012B6ED0022B5E -:10714000D0D1704B1B68002B23D05B68002B20D064 -:1071500098471EE06C4BC0180C28C3D804F068FB9D -:107160001DC2C2150BC20B0B0B3223C23C00674B76 -:10717000C0180728B6D8664B1B68002B09D01B68BF -:10718000002B06D0200098470AE0A3681878FFF784 -:10719000C7F8200004F0D4FAADE7A068FFF762F862 -:1071A00000289FD0F5E7A3681B78002BF1D0554B42 -:1071B0001B68002BEDD01B68002BEAD0210055483E -:1071C0009847EDE74F4B1B68002BE2D01B68002B64 -:1071D000DFD021005048F3E7504B1B68002BD8D07C -:1071E0005B68002BD5D021004348E9E7FFF7EAF9B7 -:1071F000CFE780884A4B984203D04A4B984200D050 -:1072000070E7464B1B68002BC3D05B68002BC0D0D7 -:107210002100D5E7153B012BBBD963E7FFF798FAAF -:10722000B7E7FFF77DFAB4E73F4B1B78042B07D194 -:1072300000236A4613800179408800F0C5FCA8E766 -:10724000364B1B68002BA4D05B68002BA1D001003B -:10725000364898479DE7012421420AD0294B1B68F4 -:10726000002B04D05B68002B01D000209847012040 -:1072700043E78B070AD5264B1B68002B04D05B68BD -:10728000002B01D020009847022036E70421280077 -:1072900008400D4200D131E7254E3388002B21D024 -:1072A000013B9BB23380002B1AD1FFF7DBF800289B -:1072B0000AD0204B1C70164B1B68002B04D05B6857 -:1072C000002B01D020009847FFF7C6F8694601F06F -:1072D00001FD6846FEF7FEFF1D20FEF753FF3080DC -:1072E00004200AE7024B187804F09AFAF8E7C0463F -:1072F0009C64FF1F2D43FF1F0E2000000120000093 -:10730000091000009464FF1FFEDFFFFFAFDFFFFFE7 -:107310009864FF1F0C2000000B2000007C64FF1FFE -:107320000D200000132000007164FF1FFFFF00000C -:107330006E64FF1F6C64FF1F10B501F09BF910BD58 -:10734000014B18607047C0469864FF1F0B880020EF -:10735000162B01D817230420014A13807047C0461A -:107360004664FF1F00207047074A030011888142CE -:1073700007D091880020994202D101308000101876 -:1073800070470020FAE7C046A464FF1FF0B58F786D -:1073900006000D00C5B01E2F15D1FFF7E5FF051E35 -:1073A00003D10024200045B0F0BD00223B00310095 -:1073B000C078009200F0B2FB0400A81C00F0D2FBE1 -:1073C000FF23EB70EEE7264B062403931B78FF2B7D -:1073D000E8D0182FE6D87B08224A013BDB00029256 -:1073E0009A589446002ADDD0029AD3185B68002B85 -:1073F000D8D00878002802D14B78012B02D106247E -:10740000122FCFD107AFAB88697800976446AA687E -:10741000A047041EC6D1AB78029A5B08013BDB0093 -:10742000D318390030005B689847041E0BD1AB7845 -:10743000042BB6D0039A310010782200009700F098 -:107440006DFB0400AEE76A78002AABD1AA7805A9E3 -:107450003B88087130000A704B80FEF747FBA0E7BD -:107460003043FF1FFCB900111D4B37B50500984292 -:107470000BD000290AD1FFF777FF002805D1194862 -:10748000FFF772FF002800D0058037BD01291AD10F -:10749000FFF76AFF041EF8D001235B420380A37844 -:1074A000FF2BF2D0FE2B07D00023E07814220093AC -:1074B00029001E3300F032FBA01C00F053FB012317 -:1074C0005B426380E1E70229DFD1013901F0BEF8B8 -:1074D0000028DAD12800FFF747FF041EDFD1D4E7E8 -:1074E000FEFF0000FFFF0000022210B5074B5242D2 -:1074F0001A80074801325A809A80DA8000F07EFABA -:10750000044801F025F8002010BDC046A464FF1F08 -:107510008D730011697400110388F7B50400002B06 -:1075200002D102252800FEBD4268022113782548B9 -:107530005268FEF7A5FD00282ED0234F01253A887A -:10754000002AEFD0802321885B0201259B1A9942F3 -:10755000E8DC0C2004F0A4F8061E31D03B88228819 -:107560009C4600231800019561469DB2491989B2D5 -:10757000AA421BD8002801D062443A800023300080 -:10758000082208C0210003F053FE104A1368002BA4 -:1075900013D100251660C5E76268022113780C48F4 -:1075A0005268FEF76DFD0028C7D1BAE760681D017B -:1075B0004019418101330198D6E71A001B68E6E7BC -:1075C0001325AFE76ABA00112E43FF1FA064FF1F07 -:1075D00068BA0011014B18707047C0463043FF1F56 -:1075E00014230A0010B51A40194204D001221021B8 -:1075F00001F048F810BD4B06F9D401208843400043 -:10760000F8E710B514008B0604D50122102101F013 -:1076100039F810BD08230A001A40194202D14BB2B2 -:10762000002B0FDA102101F02DF8002808D02300DC -:10763000F2331B78002BECD0F1342378012BE8D106 -:107640000020E6E703208907FAD4E2E7F0B51F003F -:10765000184B85B01C68019002910392002C27D131 -:10766000200005B0F0BDA5683301ED186B89019AC3 -:10767000934211D3029A93420ED8002F04D10A9B51 -:10768000002B10D12C00EBE73B002978039A6868A7 -:10769000FEF7F6FC0028F2D10136B6B2A388B34259 -:1076A000E1D82468DAE7A3680A9A5B891380E9E7DE -:1076B0000026F3E7A064FF1F37B50C000A8849884D -:1076C0000123914217D3002A15D0651D23792A0082 -:1076D00002210A48FEF7D4FC102300280BD023799E -:1076E0006188208800242A000094FFF7AFFF0A2356 -:1076F000A04200D0230018003EBDC0466ABA001167 -:1077000013B50A0008884988012388420BD800284D -:1077100009D00024137905320094FFF797FF0A235C -:10772000A04200D02300180016BD13B50A00088837 -:107730004988012388420BD8002809D000241379F6 -:1077400005320094FFF782FF0A23A04200D02300F5 -:10775000180016BDF0B58BB003904A8808880E005B -:107760000123824255D3002853D00023012704ACC3 -:1077700023700022718813000092FFF767FF051E37 -:107780003ED02078002835D12B78022B18D1677095 -:107790006A8983000130E31880005A8069680222F8 -:1077A000201803F045FD23780133DBB22370042B4E -:1077B00019D93B006889013080B2002BD9D01FE075 -:1077C00002236370122358436A89231804305A80B5 -:1077D00069681022201803F02BFD23780133DBB2F7 -:1077E0002370002BE5D10C4A6B899B185A425341F8 -:1077F000DBB2DFE76378012BE4D12B78022BC7D013 -:1078000022780A23002A04D021000398FEF798F971 -:10781000002318000BB0F0BD0100FFFF0F4BF0B5C7 -:1078200004001868002816D083685D89A54207D82F -:107830008288AE18B44203DA12019A18934201D139 -:107840000068EFE71E005F891036A74204D10029C7 -:1078500000D00D801800F0BD3300EFE7A064FF1FDB -:1078600070B505000C0008880021FFF7D7FF030062 -:107870000120002B04D022002800197AFFF7C1FE56 -:1078800070BDF7B50C00002501902300EE331B7886 -:10789000AB4201D800200AE06B00E65A002130001C -:1078A000E718FFF7BBFF002802D126800130FEBD9C -:1078B000017A0198FFF794FE002802D03B882380CC -:1078C000F5E70135EDB2E0E710B5040008880021C6 -:1078D000FFF7A4FF03000120002B03D02000197A3A -:1078E000FFF77EFE10BD0000054B1B68002B01D189 -:1078F000180004E09A6852898242F6D1988870474D -:10790000A064FF1FF0B50E27002687B0039302ABDB -:10791000FF183E8005001F4B40891400984207D095 -:107920002B78013000976A6880B2FFF78FFE06005F -:1079300002212B7818486A68FEF7A2FB00280FD0B6 -:107940006C892000FFF7D0FF002802D0013C041909 -:10795000A4B2039B002B00D01C80300007B0F0BD08 -:1079600002212B780D486A68FEF78AFB0028E7D1D0 -:1079700002212B780A486A68FEF782FB002807D0AC -:10798000002EDED03B88A342DBD17489013CDFE7C7 -:107990006C89DEE7FFFF00006ABA001168BA0011C7 -:1079A00066BA001110B50C00FFF7DEFC03000220E0 -:1079B000002B0AD0002C00D023609B781720FE2BD0 -:1079C00003D00138FF2B00D1002010BD73B50D008E -:1079D00001A904001600FFF7E5FF172805D0002EC7 -:1079E00004D129002000FEF727F976BD01221021DD -:1079F000200000F047FE0028F3D0F6E7014B1860A6 -:107A00007047C046B064FF1F37B56B469D1D01002F -:107A100004000222280003F0DBFE2B88B02B0ED1DD -:107A20002379122B09D12300FA331B78012B06D1BD -:107A30000121608800F0E0F801E01B2BF8D037BD91 -:107A400010B5054B0421187000F098F8FFF74CFDB5 -:107A5000FEF770FB10BDC046B464FF1F0020F0B5F8 -:107A60000BB20F0087B0834234DA274B187803F04B -:107A700007FE051E2BD00378A02B25D103AE3100C5 -:107A8000FEF7E4F8041E0BD1B378DB0724D51F4BB7 -:107A900006341B68002B03D0310068889847040027 -:107AA000A868002801D003F063FD002C08D1184A13 -:107AB000039B1340174A934206D0B3781B2B03D085 -:107AC0000121688800F098F8280003F039FE802032 -:107AD0000002784007B0F0BD0F4B1B68002B10D0A0 -:107AE000310068889847041EDAD07378002BD7D10C -:107AF000B27801A90A704B800C716888FDF7F6FF17 -:107B0000CEE70624F1E7C046B464FF1FAC64FF1F54 -:107B100000FFFF0000011200B064FF1FF7B50190E5 -:107B2000FC200D0017001E0003F0F2FD04001320DE -:107B3000002C12D0B02320002370089BF422677021 -:107B4000658026710830002B08D0190003F070FB07 -:107B50002100019803F04CFC0020FEBD089903F0C1 -:107B60007FFBF5E710B5041E06D00078FD2803D88A -:107B700003F06EFEFF23237010BD00000A1F93B2B6 -:107B800010B504000220032B05D882400020024BD0 -:107B9000D1529B189C7010BDD464FF1F0B8870B528 -:107BA000043B04000D000220032B0BD80121200010 -:107BB00000F04CFD03001420002B03D0290020000E -:107BC00000F0DEFB70BD000007B51300034A009211 -:107BD0000A00012100F02CFC0EBDC046057E0011FC -:107BE00007B5019203220092024B0A00122100F015 -:107BF00049FC0EBD837E001107B56B4601AA1180BA -:107C00000449D88008780633012802D1190003F00E -:107C10002FFC07BDB564FF1F0C4B10B51870002377 -:107C2000FF210B4A1380138193819380094A53806B -:107C30001370517293819372D174D38213755177FB -:107C400003F0C6FB00F0FCF910BDC046E464FF1F62 -:107C5000D464FF1FB664FF1FF0B58DB06B460020E3 -:107C600003910C229B5E834200DBB0E05D4B1878F1 -:107C700003F006FD051E00D1A4E00378902B00D090 -:107C80009DE006AF01004688380000F013FA7968DD -:107C90000400002900D19CE03B88052B6ED13B8974 -:107CA000032B1CD905AC200000F0A2F86288172A2B -:107CB00061D83989131D994231D17968237804310B -:107CC0000291D90738D5607800F08EF9071E06D0EA -:107CD000002303712378012B08D0132B23D0A8682D -:107CE000002800D178E003F043FC75E06288029937 -:107CF00009A800F0A6F80290380000F08BF909AA54 -:107D00002378387A0192002231000092029A00F022 -:107D100012F9380000F064F9029B002BDFD030002C -:107D200000F080F9DBE70378032BD8D16288029951 -:107D300009A800F0D6F8DEE7122B13D1029909A8A2 -:107D400000F0B5F8021EEAD127498B88002BC6D077 -:107D5000887909A92378019161780091310000F0B8 -:107D6000EAF8BCE7002302AA93833000617809AAED -:107D7000FFF72AFFB3E71D4B0993F6E7042B02D068 -:107D80009A1F012AABD8184A043B9B00995A002934 -:107D9000A5D0D218907831003A0000F0AEF8002853 -:107DA0009DD13B88042B03D001213000FFF724FF35 -:107DB000012C04D1A868002801D003F0D9FB2800C9 -:107DC00003F0BEFC8020039B0002434018000DB06E -:107DD000F0BD012800D182E701213000FFF70CFF40 -:107DE000EDE7C046E464FF1FD464FF1F01001700E5 -:107DF0000B7803704B784370CB788A781B0213435F -:107E0000438070470A88030002700A88120A427091 -:107E10000A88012A06D14A8882704A88120AC270EA -:107E20000420704702208242FBD14A8804309A70B5 -:107E30004A88120ADA708A881A718A88120A5A7174 -:107E4000EFE710B50400012082420CD94B780A7884 -:107E50001B0213432380834206D1CB788A781B020E -:107E600013436380002010BD022BFBD1CB788A78AE -:107E70001B02134363804B790A791B021343A380CF -:107E8000F0E70B8803700B881B0A43704B888370E4 -:107E90004B881B0AC3708B8803718B881B0A437144 -:107EA000CB888371CB881B0AC371082070470300FD -:107EB0000120082A14D14A780878120202431A8055 -:107EC000CA788878120202435A804A7908791202E5 -:107ED00002439A80CA798879120202430020DA802C -:107EE000704710B504000120022A05D100204B780C -:107EF0000A781B021343238010BDF8B5060010203A -:107F00000F00150003F004FC04000120002C0ED02B -:107F1000A0230C22290023806780201D002D07D07C -:107F200003F086F92100300003F062FA0020F8BD6A -:107F300003F096F9F6E7F7B51E00009008AB1420A1 -:107F400017001D78019103F0E3FB041E12D0A22359 -:107F50000370019B47704380099B057146710C2299 -:107F60000830002B07D0190003F062F921000098B7 -:107F700003F03EFAF7BD099903F072F9F6E737B559 -:107F8000041E0FD04388002B0CD00025C18813237A -:107F9000007A172201950095FFF7CDFFFF2365803A -:107FA0006372257037BD000010B50C4904004A8883 -:107FB000002A09D08B89002B05D00020CB8A022211 -:107FC000834201D010BD012213000A204343002048 -:107FD0004032C854C81842800472F3E7B664FF1FE9 -:107FE0000023438003707047094B00211A0010B52D -:107FF0005C88002C06D01C79844203D10A234B43B1 -:10800000D01810BD01310A330329F1D10020F8E75F -:10801000B664FF1F10B50400407A03F019FCFF237B -:10802000637210BD7047043010B580B203F008FAD7 -:10803000002803D00421494203F05AFB10BD000080 -:1080400070B50025104CA0682580A581A580A842A8 -:1080500002D003F08DFAA56000250C4C0C4B606D2E -:108060001D80230058331D70A84202D003F080FA0F -:10807000656500256068002801D003F079FA0135B4 -:1080800008340A2DF6D170BD7C65FF1F2065FF1FE7 -:108090007065FF1F70B5041E09D1054D2880A881A9 -:1080A000A880A868002802D003F062FAAC6070BD16 -:1080B0007C65FF1FF0B54B8885B0019300234360BA -:1080C0000A7905000F00022A00D07BE0CA88032A43 -:1080D00017D98B685E7819783602DC78D8790E4328 -:1080E00099781B7A24021B020C43034353495BBA61 -:1080F0000B80331D93421ED1042C04D0631F022B2E -:108100000ED9012015E0019A4D4B1201D35A002BD4 -:1081100006D00198FFF7BEFF4A4A13690133136185 -:108120000421B8682E812C80494203F0E1FA68608E -:10813000002005B0F0BD434D042C06D0631F022B78 -:108140000FD9EB680133EB60DBE7019A3C4B12017E -:10815000D35A002B05D00198FFF79CFF2B69013300 -:108160002B61374B30000293019B029A1B01019354 -:10817000002301998C468B52130063449C80039327 -:108180009E81FFF750FF039B041E986016D00421C8 -:10819000B868494203F0ACFAFA880100043A2000BA -:1081A00003F046F80199029AFB888A5A043B9B180F -:1081B000029A8B522B6801332B60A2E7AB69013323 -:1081C000AB619EE71E4B0293019B1E01029BF35A7B -:1081D000002B2DD002998C19A068002828D0012AE4 -:1081E00026D1FA889B189BB27352A189994217D362 -:1081F0009B1AC018B96803F01BF8029BA289F35AB6 -:10820000934200D07DE700222B81A3882B80A368B6 -:108210006B60029BF2520B4A53680133536070E764 -:10822000084A9368013393600198FFF733FF68E7CA -:10823000044A536901335361F6E7C046E664FF1F01 -:108240007C65FF1FEC64FF1F70B5051E15D10B4C3C -:108250000B4B1880230058331870606D002802D033 -:1082600003F086F96565250050356068002801D067 -:1082700003F07EF90834AC42F7D170BD2065FF1FD2 -:108280007065FF1FF0B51700A12285B09200019321 -:108290004243394B06001B680C009B18D933FF334F -:1082A0001D78FDF741FF0430854204DD3000FDF705 -:1082B0003BFF0430C5B2BD4207D33A000021300075 -:1082C000019B03F08DFA05B0F0BD2900380003F0E2 -:1082D0007FF92300C6B250331E700393019B29001F -:1082E0006365380003F064FACBB20293002B02D02E -:1082F000039B01361E7000262300503303931B7826 -:10830000B34204D8606D002831D10020DBE7029A27 -:108310002800002A04D0013B1000B34200D02800FE -:10832000F700E719387002F0C3FF786000280ED01C -:108330003A78019902F07CFF019A3B780136D31814 -:108340000E4A0193D369F6B20133D361D4E7039B9C -:1083500018706065A74205D1084A1320D36A01331B -:10836000D362B0E7606803F003F90834F2E703F082 -:10837000FFF800236365C8E73409FF1FEC64FF1FA3 -:10838000F7B50D0007000421686803F0B1F92B89E7 -:10839000040003702B891B0A43702B8883702B8881 -:1083A0001B0AC3702E8902250436F6B2F42E15D8A6 -:1083B0001B4B9F4214D10C2003F0AAF91135011E6A -:1083C0000CD0902303708E3B0371043B4380154B0C -:1083D0008460C680187803F00BF800252800FEBDE5 -:1083E0005C237B43104AD3180093583301931B78C6 -:1083F000002B0FD10300320038000099FFF742FF35 -:10840000019B05001B78002BE8D13800009903F090 -:1084100007F8E3E7054A0725536A01335362DDE7AE -:10842000FEFF0000E464FF1F2065FF1FEC64FF1FD8 -:10843000F0B587B0009017200F0016000193FFF7EA -:10844000F2FD1325041E19D00C98031E02D00199C9 -:10845000201D9847030AE370052302AAA070043088 -:10846000908127700098667003A993800494FFF7A9 -:1084700087FF051E02D0200003F07AF8280007B01D -:10848000F0BD0000F0B587B01F000CAB1B78039166 -:10849000059301210DAB06001C78049200F0D6F87C -:1084A0001425002821D02000FFF77EFD0135041E91 -:1084B0001BD01149059B0A7803700132D2B2131EFA -:1084C000C68001D101231A000B7022713000049B79 -:1084D00003990097FFF7ACFF051E09D12300210087 -:1084E0000648074A093302F0B3FF280007B0F0BD81 -:1084F000002363802370F8E7E864FF1F7F7F00118B -:1085000030750000F8B505000E00064C064F2368D4 -:10851000002B02D03100280098470434BC42F6D129 -:10852000F8BDC0468C65FF1FA065FF1F0123064AEA -:108530005B425380002313715362044A13605360FB -:108540009360D36013617047A065FF1F8C65FF1FA8 -:108550000200002310B506499C000859002801D1EB -:10856000625010BD0133052BF6D11320F9E7C04648 -:108570008C65FF1F034A5388181A434258414042F2 -:1085800010407047A065FF1FF0B585B002930AAB9D -:108590001F780CAB1B88009008000E00019203931B -:1085A000FFF7E8FF05001120002D1BD10E48FFF753 -:1085B000E1FF04001520002C14D006220B99A771AE -:1085C000E01D02F035FE019B30002371029B290063 -:1085D0006371009B66802370039B6562E381FFF7F4 -:1085E00091FF280005B0F0BDFFFF000010B5FFF7B8 -:1085F000C1FF04000220002C12D060880121FFF787 -:1086000081FF606A002801D003F07AF82822002157 -:10861000200002F025FE012300205B4263802071D0 -:1086200010BD000030B5074A074C5588010013788B -:108630000020A54204D05B1A59424B4158421040D9 -:1086400030BDC046A065FF1FFFFF0000084A10B5FF -:1086500001230C00904208D0FFF78CFF031E04D0CA -:10866000037923405A1E9341DBB2180010BDC04667 -:10867000FEFF0000024B1879431E9841C0B27047BC -:10868000A065FF1F70B504000D001600FFF772FF14 -:10869000002804D10D4B9C4200D0143070BD416ABB -:1086A00003790520002907D012221A40102A02D18E -:1086B0000520002EF2D10F20DB06EFD5897E0C209D -:1086C000A9428941494249420840E7E7FEFF0000CC -:1086D000030010B5002800D110BD0348034A4188AB -:1086E0009142F9D09847F7E7A065FF1FFFFF000010 -:1086F000002330B5C45CCD5C6C40D4540133102BE6 -:10870000F8D130BD0F23002210B5C45C64002243B1 -:10871000CA54C25CD209013BF7D210BD020001006D -:1087200010B52032103102F0F3FE10BDF0B58BB061 -:108730000390102005931700049102F0B1FF009000 -:10874000102002F0ADFF009B13240190002B05D0F8 -:1087500000280CD11324009802F0D2FF019B002BBB -:1087600002D0180002F0CCFF20000BB0F0BD1020AA -:1087700002F096FF0600102002F092FF132405007D -:10878000002E00D1AEE0002819D01022002102F006 -:1087900067FD32002900039802F0BAFE041E0ED1D4 -:1087A00033787F2B51D830000099FFF7ABFF009B47 -:1087B0001B787F2B53D801990098FFF7A3FF300057 -:1087C00002F09EFF002D02D0280002F099FF002C3D -:1087D000C1D1102002F064FF0600102002F060FFFB -:1087E0000290002E7CD0002878D03A000F3223006F -:1087F0000125121105D00F333B4015B25A425341A7 -:108800001BB26A1E1201002B33D0049BD2B29818FF -:108810000099029AFFF76CFF013D10220021300001 -:1088200002F01EFDADB2049F2D017D19AF4242D072 -:10883000002C33D0300002F063FF029B002B00D1EC -:1088400089E7180002F05CFF85E729003000FFF798 -:1088500059FF28002549009AFFF74AFFA7E729009A -:108860000098FFF74FFF28002049019AFFF740FFCB -:10887000A5E70F210F4004998A18D9B28F4208D971 -:10888000D15C06A819540133102BF6D1029A019934 -:10889000C0E7791A48424141C901F2E73900300086 -:1088A00006AAFFF725FF3200039806A902F030FE62 -:1088B00010370400BAE7002CBCD13000029906AA98 -:1088C000FFF716FF320006A9039802F021FE0822E6 -:1088D00004003100059802F0ABFCABE71324A9E7D4 -:1088E0001324AAE7002800D06EE733E770BA00111E -:1088F000F0B58BB00F0016000225009000283FD085 -:10890000002A3DD00B1DDBB21800029302F0C8FE16 -:108910001135041E34D0FDF747FD05003A000099DB -:10892000201D02F04DFFEBB20393E3702B0CDBB282 -:108930002F0A00936370FFB22B0E2370A770019370 -:10894000FDF72CFD1022010006A802F039FF2100DE -:10895000029A04AB06A8FFF7E9FE051E0DD1039BA2 -:1089600008223370009B04A9B370019B7770F370E9 -:10897000301D02F025FFFDF71DFD200002F0C0FEB6 -:1089800028000BB0F0BDF0B58FB00D00149E039021 -:1089900004920593002A03D1022420000FB0F0BDF9 -:1089A000002EF9D00398FFF7E5FD1424071EF4D03C -:1089B0007278337812021A43B3781B041343F278A7 -:1089C00012061A43036A0192934201D30133E3D1A1 -:1089D000002D03D03B7901249B07DED5082200211E -:1089E00006A802F03DFC059B13240433DBB21800FB -:1089F000029302F055FE051ECFD0059A049904306B -:108A000002F0DEFE04223100280002F0D9FE390017 -:108A1000102210310AA802F0D3FE2900029A06ABF8 -:108A20000AA8FFF783FE041E0FD1082206A908A892 -:108A300002F0C6FE0822311D08A802F059FD0128E7 -:108A400007D101990398FDF7C9FC280002F058FEF0 -:108A5000A3E70124F9E7000070B51C4C050023686A -:108A6000181E10D0002D14D11A78002A0CD1981C91 -:108A7000083202F0DDFB02F0EBFD0135002808D1E1 -:108A800023681D70012070BD0A331800082202F00F -:108A9000CFFB2368002BF5D0122002F039FE061E12 -:108AA0000DD0C123216803704570023110220230BD -:108AB00002F0BEFB23683100587802F099FC206870 -:108AC00002F01EFE00232360DCE7C046C865FF1FDE -:108AD000F8B504002020FDF755FB0D4EA700BB594B -:108AE0000500002B0DD000280BD0D878FF2809D125 -:108AF00008492A000C55F35907480333611802F05E -:108B0000A7FCF8BD290002F00BFD0028F0D1F8E722 -:108B1000E465FF1FCC65FF1F299D001170B5064D50 -:108B200084006359002B05D0D87802F091FEFF2213 -:108B30006359DA7070BDC046E465FF1F70B506006A -:108B40008CB00C00150000213022684602F088FB32 -:108B500031001022684602F033FE1D20210003225E -:108B6000684402F02DFE6846FFF7D8FD2D21040071 -:108B700003222800694402F023FE20000CB070BDDF -:108B8000F0B50700160097B001931CAB1D7830229A -:108B90001EAB00910AA800211C7802F061FB102294 -:108BA00039000AA802F00CFE1022002102A802F0EF -:108BB00057FB0722310002A802F002FE072202AB97 -:108BC0009818631E9C41019902F0FAFD02AB9C7358 -:108BD0002B005A1E934102AAD3730021102206A82B -:108BE00002F03EFB06221D9907A802F0E9FD1A20BB -:108BF00002ABC01806221F9902F0E2FD1022009974 -:108C00000EA802F0DDFD102202AB0EA908781C7838 -:108C1000013A6040D2B2087001330131002AF5D127 -:108C20000AA8FFF77BFD102212A904000EA802F08B -:108C3000FFFA102206AB0EA908781D78013A6840A9 -:108C4000D2B2087001330131002AF5D10AA8FFF72A -:108C500065FD044310222098E4B212A902F0B0FD91 -:108C6000200017B0F0BD70B50E0014008CB00100EC -:108C7000102268461D0002F0A3FD3100082204A85E -:108C800002F09EFD2100082206A802F099FD684628 -:108C9000FFF744FD04001022280008A902F090FD0F -:108CA00020000CB070BDF8B506000D000024371987 -:108CB000AC4200D3F8BD02F043FC030A3B70631CD6 -:108CC000DBB201379D4203D90234F054E4B2EEE73F -:108CD0001C00EDE773B506000C000225002819D032 -:108CE000002917D0032101A8FFF7DDFF6B469A7911 -:108CF0003F231A40013313436A463000937101A9A0 -:108D00002200FFF71BFF051E04D10322E01C01A96E -:108D100002F08EFA280076BD03785807DA08C00FF3 -:108D2000D20080009B0710439B0F1843C0B27047CE -:108D300007230B40C908C9000B43037070470000AC -:108D400070B50400FFF7EAFE134DA4006359002B31 -:108D500021D0186A002801D002F0D2FC2B59986E5D -:108D6000002801D002F0CCFC2B59D86E002801D08D -:108D700002F0C6FC2B59186F002801D002F0C0FC8D -:108D80002B59586F002801D002F0BAFC285902F084 -:108D9000B7FC00232B5170BDE465FF1F0E4B800014 -:108DA000C35870B50C00002B0FD09D68002D0CD05F -:108DB0002B78201D0B706B784B70A97CFFF7B8FFE8 -:108DC0002B7E23726B69E36070BD102200212000AE -:108DD00002F046FAF8E7C046E465FF1F014B186051 -:108DE0007047C046E065FF1F074A030080008258B5 -:108DF00010B5002A06D0D088984203D1012901D1AC -:108E0000FFF79EFF10BDC046E465FF1FF0B5264E7C -:108E100095B087000B93BB590500099112200A9267 -:108E2000002B31D0D888FFF7A5FB04001420002CBC -:108E30002AD0280010A9FFF7B1FFBB591E781D6A80 -:108E4000002E23D00895FDF7EFFA07000020FDF76C -:108E5000F1FA0790A379E61D069310AD0CA90898C6 -:108E600000F0E2FA0EA9280000F0D7FA0B9B0A994D -:108E70000493069B09980293079B0396019300971E -:108E80000EAB0CAAFFF77CFE15B0F0BDFDF7CCFAD7 -:108E900006903000FDF7CEFAE31DA779079310ABDB -:108EA00006000893DAE7C046E465FF1F30B50C4CB6 -:108EB00085002A59030085B00120002A0ED0180031 -:108EC0006946FFF76BFF2B591A78D888054B002AA3 -:108ED00000D1054B6A46072100F0D9FB05B030BD33 -:108EE000E465FF1F1B9400112994001130B5094C53 -:108EF0008500295985B010226846253102F098F97D -:108F00002A591121044BD0886A4600F0C0FB05B0F5 -:108F100030BDC046E465FF1FC594001130B5094C53 -:108F20008500295985B010226846353102F080F954 -:108F30002A591121044BD0886A4600F0A8FB05B0DD -:108F400030BDC046E465FF1F03950011F7B54D4FD6 -:108F500086001020F4590D0002F0A2FBF3592062A4 -:108F6000186A132200286CD0033A29009C6802F08A -:108F70005FF9F3591A780192002A58D11E6A227DAE -:108F8000317B944651400122019F114201D1674635 -:108F90001740217D914339432175377B4F40BC46B3 -:108FA00060460027800701D44F08174001210220A6 -:108FB0008F40227D82433A432275377B5740BC461F -:108FC00060460027400701D497080F400420227D07 -:108FD000BF0082433A432275627D00279446604673 -:108FE000727B42400A4201D167460F400121627DF7 -:108FF0008A433A436275777B5740BC4660460027F8 -:10900000800701D457080F400220627D7F00824311 -:1090100017436775767B00227E40760701D4BA0835 -:109020000A400426617D9200B1430A4362756A7862 -:10903000002A08D06278002A05D005220533DA77A5 -:1090400000221000FEBD04222979114205D1A17C25 -:10905000114202D10533033AF1E7019A21782C78C5 -:10906000002A02D10A002100140018220429E8D89D -:10907000042CE6D805206043034A05331218525CDD -:10908000DDE7C046E465FF1F80BA001110B50A0095 -:109090001121024B00F0FBFA10BDC0465F95001194 -:1090A0000B0030B587B001AD2B806B46040011007A -:1090B000981D082202F0BCF82A000B212000024B68 -:1090C00000F0E5FA07B030BD8795001110B50A0031 -:1090D0001121024B00F0DBFA10BDC046DB950011F8 -:1090E00013B50B0011006A4613706B46040006228C -:1090F000581C02F09DF86A4608212000014B00F040 -:10910000C6FA13BDFB95001110B50A001121024BE0 -:1091100000F0BDFA10BDC0464B9600117FB50500AA -:109120000B4BAA00D4580800002C0FD0666F237F89 -:10913000E28821780396266F0296E66E0196A46E69 -:109140000094FDF709FC2800FFF7FAFD7FBDC0463B -:10915000E465FF1F10B51721FFF7E0FF10BD000009 -:1091600070B50A000D00064B0221040000F08FFAD2 -:10917000060029782000FFF7D1FF300070BDC046FF -:109180002B95001170B586B000236A461370836872 -:1091900004001D78681E0A2859D801A902F0A0F918 -:1091A000060633373B3F43474B4F5300180000F050 -:1091B00042F9062312284BD000281BD16088FFF704 -:1091C000D9F90823002813D04279002A47D1264B29 -:1091D0001A78072312070BD5244B1A680723002A95 -:1091E00006D01668002E03D0290001AAB04703005C -:1091F0006A4613706B461B786088002B2AD1FFF7F4 -:1092000067FC06B070BD180000F06CF9D4E71800D8 -:1092100000F087F9D0E7180000F093F9CCE71800C8 -:1092200000F0ADF9C8E7180000F0C3F9C4E7180072 -:1092300000F0F6F9C0E7180000F0F6F9BCE71800F6 -:1092400000F013FAB8E7180000F013FAB4E70723A8 -:109250006A46137069466088FFF782FFD1E70523ED -:10926000012AC5D1024BB8E77164FF1FDC65FF1FFF -:10927000E065FF1FF8B52C4F8600F35904000D0080 -:10928000002B40D0DA8882423DD15A78062A33D169 -:109290001A78002A2ED0012099681A6A097D0142A5 -:1092A00006D0157B054203D007225A700120F8BD75 -:1092B0000220014204D0157B054201D00922F4E7C7 -:1092C0000420014204D0127B024201D00B22ECE7C1 -:1092D000164B1B68002BE9D05B68002BE6D0200002 -:1092E0009847BB5900215B78122BDFD12000FFF794 -:1092F00015FFDBE70E4BECE7112A04D1002900D063 -:1093000032252900F2E7002D08D12000FFF732F9BD -:10931000002803D010230279134303712100280091 -:10932000FDF798FAC2E7C046E465FF1FDC65FF1F42 -:10933000E065FF1F70B50E4E8500AB590400002B91 -:1093400013D01B78002B11D10A4B1B68002B04D0C3 -:109350005B68002B01D02000984773595B78122B73 -:1093600003D100212000FFF7D9FE70BD024BECE7CE -:10937000E465FF1FE065FF1FDC65FF1F094B8000F0 -:10938000C3581020002B0CD01A6A002A09D09B6801 -:10939000002B06D0127A1B7E101C9A4200D9181C92 -:1093A000C0B27047E465FF1F70B503000D001400E4 -:1093B0000220002A30D000292ED013700B78081D0F -:1093C00053704B789370FFF7A7FCE07001200221E7 -:1093D0002B7A23716B7B034063716A7B0A401343D2 -:1093E000042263716E7B1640334363716E7BF60813 -:1093F000F600334363712B7B0340A371287B01404C -:1094000000200B43A371297B0A401343A3712A7BDD -:10941000D208D2001343A37170BD10B50A00010039 -:109420000120FFF7C1FF10BD10B50A0001000220A6 -:10943000FFF7BAFF10BD70B506000C000220002E29 -:1094400030D000292ED07378201D0B70B3784B706C -:10945000F178FFF76DFC01223579257271794B1097 -:1094600008001340934010400343881010408000D0 -:10947000C9080343C9000B436373B1794B1008005B -:109480001340934010400343881002409200C908E3 -:109490001343C9000B4321202373FCF773FE85425D -:1094A00001D2122070BD2220257AFCF76BFE854286 -:1094B000F7D823781820042BF4D86378012BF1D83F -:1094C0000020EFE7030010B50220002909D0002B8F -:1094D00007D00322481C0A7019000D3201F0A8FEC3 -:1094E000002010BD03000222080010B5002B06D09A -:1094F000002904D00E32591C01F09AFE00221000FF -:1095000010BD030010B50220002909D0002B07D0A0 -:109510000422481C0A7019000C3201F089FE002058 -:1095200010BD10B5FFF7DEFF10BD030002200029BB -:1095300006D0002B04D0052200200A701B784B7047 -:10954000704703000220002B08D0002906D05B786A -:1095500000200B70013B082B00D918307047030026 -:1095600010B50220002909D0002B07D00622481C84 -:109570000A7019000A3201F05BFE002010BD10B520 -:10958000FFF7B0FF10BD02000B00022010B500294C -:109590000ED0002A0CD0072119701188597011883B -:1095A000090A997011180822D81C01F041FE002008 -:1095B00010BD03000A00022010B5002B0CD00029BA -:1095C0000AD099785878090201431180901CD91C5F -:1095D000082201F02DFE002010BD030010B502206E -:1095E000002909D0002B07D00822481C0A70190056 -:1095F000921801F01DFE002010BD02000B00022099 -:1096000010B500290BD0002A09D009211970117852 -:1096100018185970511C062201F00AFE002010BDD6 -:1096200010B5FFF75FFF10BD02000B00022010B560 -:10963000002A09D0002907D0517819701118062284 -:10964000581C01F0F5FD002010BD030010B50220EC -:10965000002909D0002B07D00A22481C0A701900E3 -:10966000063201F0E5FD002010BD10B5FFF73AFF0E -:1096700010BD02000B00022010B5002A06D0002900 -:1096800004D018005178FFF753FB002010BDF0B54F -:1096900085B017001E006A46062305000800918168 -:1096A0009380FEF7C0FC1324011E02900CD03800FA -:1096B000B047041E05D1280001A9FEF76FFA041E69 -:1096C00002D0029801F054FF2800FFF701FA2000B1 -:1096D00005B0F0BDF0B504008BB00191150000217C -:1096E000102202A801F0BCFD334EA700B859002893 -:1096F0003CD0C388A34239D10378002B36D14278BD -:10970000062A18D102000100553235310C3006AB63 -:10971000FFF7A9FA002829D12000FFF72FFE020049 -:1097200006A902A801F084FD200002A902F038F881 -:1097300001200BB0F0BD816E002917D00B8A112AD1 -:1097400028D19D420ED101981231093A01F0D0FE84 -:10975000012807D1BB5920009D6EFFF70FFE29009D -:109760000200DEE732212000FFF7D8FC2000FEF7E0 -:1097700001FF061E1BD0416A002918D00B8AAB429C -:1097800015D108220198123101F0B2FE01280ED144 -:10979000716A0AE09D42E9D108220198123101F074 -:1097A000A7FE0128E2D1BB59996E8A7EB9E7200055 -:1097B00001F07EFEBCE7C046E465FF1FF0B56B4DCF -:1097C00087007E5985B0337802900393002B00D038 -:1097D00087E0B368346A01937078062817D10122B4 -:1097E0001B7D134202D0217B114218D10222134269 -:1097F00002D0217B114251D10422134203D0237B9A -:10980000134200D08BE0019B5A7DEB5991E0073861 -:109810000428F8D801F064FE032E42678300B36E7B -:10982000002B03D11C2001F03BFFB066EB599C6E6E -:10983000002C1CD010220021200001F011FD029804 -:10984000FFF79CFD01002000FFF72DFA01F078FEE4 -:109850002082200008211230FFF725FA0298FFF736 -:109860008DFDA076EB592100D888FFF70FFC082268 -:10987000EB591CE0B36E002B05D01A00198AF08852 -:109880001232FFF70DFC0222019B197DEB591142A8 -:109890003DD0207B10423AD0073208E0F488FCF734 -:1098A000DBFD01002000FFF711FC0A22EB595A7082 -:1098B000029B9C002A595378073B042B11D8D0886F -:1098C000FEF758FE00284ED0C3895A08D2182849FE -:1098D000029B0298CB542B5941180433254801F0C0 -:1098E000B7FD05B0F0BDFCF79FFD030001208342EA -:1098F00001D100200393EB59DE88FCF79BFD03990F -:1099000002003000FFF7ECFB019AEB59117D0422B5 -:1099100011420CD0217B114209D00B22C7E7F688F7 -:10992000FCF73CFD01003000FFF7EEFB6BE7019A0E -:10993000527D01210A4204D0607B084201D00C22F2 -:10994000B5E702210A4204D0607B084201D00E2212 -:10995000ADE704210A4204D0627B0A4201D0102202 -:10996000A5E71222A3E7FA225200B0E7E465FF1F41 -:10997000E865FF1F339D001110B5064B1A780423CC -:10998000100018401A4200D00348FFF727FA0020C1 -:1099900010BDC0467164FF1F3443FF1F70B5040043 -:1099A000FFF7D4FA051E43D12000FFF77FFA234EBC -:1099B000A400A0598268937CDB0708D50321036AC1 -:1099C0001B790B40012B02D1017F0B430377431D11 -:1099D000D97F8B1E022B0DD8022900D00121C0880F -:1099E000FCF790FF042133591A7F59700A431A7704 -:1099F000280070BD01290CD10223102243700021E0 -:109A00000C3001F02DFC305910213530FFF74BF9A7 -:109A1000EEE70529ECD10223D118437010220C3057 -:109A200001F006FC04233259117F0B431377EAE758 -:109A300008251828DCD1053DDAE7C046E465FF1F9C -:109A4000F0B58BB0059143887E4F9E00F459150008 -:109A50000493002C15D1012902D000200BB0F0BDD9 -:109A6000101D57781678FFF757F9EB68320002930C -:109A70002B7A0499019300903B002000FCF70CFF27 -:109A8000EBE7E388049A934201D00820E6E72378C5 -:109A9000012B00D1D4E0059B581E092800D9CFE046 -:109AA00001F01EFD05CE0A29CC506C859AB2290022 -:109AB0000498FFF773FFD1E72000290010224530FA -:109AC00001F0B6FBB9594B78042B02D1013B4B7026 -:109AD000C3E70B000A00253335320C310498FFF739 -:109AE00095F90498FFF702FA0522431E9841BB59E5 -:109AF000C0005A70B2E7200029001022553001F052 -:109B000097FB049B4F4C9D00295904980A0006AB13 -:109B100055320C31FFF77AF929591022453106A840 -:109B200001F0E6FC012808D10498FFF7F7F9059049 -:109B3000002804D106222B595A7005988EE7082375 -:109B40000593FAE763780C2B7AD1E36E002B03D1EF -:109B50001C2001F0A5FDE066BB59D86E00286FD02F -:109B60001022290001F064FBBB590498DC6EFFF75A -:109B700005FC0D22A076BB595A706EE7E06E0028F6 -:109B80005ED063780D2B5BD12B8808220382A91C41 -:109B9000123001F04DFBBB599A68517D02221142EF -:109BA00026D0186A407B104222D00C32E4E763785A -:109BB0000E2B45D1236F002B03D1162001F070FD31 -:109BC0002067BB59186F002803D01022290001F02C -:109BD0002FFB0F22BB59CFE763780F2B30D1206FBB -:109BE0000622691C103001F023FBBB599A68517D95 -:109BF0000422114203D0196A497B1142D5D10021B8 -:109C00000498FFF78BFA28E7636F002B0DD0BB5940 -:109C1000586F0028F3D01022290001F009FB01221F -:109C2000BB5952425B6F1A61E9E7142001F038FD1D -:109C3000BB5960675B6F002BE9D126E72978DFE726 -:109C400007200BE7E465FF1F10B5064C207001F0FC -:109C500047FD06212078FDF791FF0348FEF778FCC9 -:109C600010BDC046F765FF1FE98D001100200BB243 -:109C700070B50D00834216DA264B187801F000FD0E -:109C8000041E0DD00378922B0ED0A02B37D0224B80 -:109C90001878FF283AD0210001F0AAFB002835D11E -:109CA00080200002684070BD43780E2B0BD03E2B05 -:109CB000EDD18378052B12D0082BE8D181798088EB -:109CC000FFF7D8FA08E0154B82889A42DFD1836803 -:109CD0001878591CFEF7C0FE002817D1D7E7104BA3 -:109CE0001B785B0712D50F4B1B68002B0ED09B68AF -:109CF000002B0BD0C289811D80889847ECE7FFF7C5 -:109D000041FAA068002801D001F032FC200001F0E7 -:109D100017FDC5E7F765FF1F2D43FF1F1820000043 -:109D20007164FF1FE065FF1F10B50078FFF712FA9E -:109D300010BD10B50078FFF7FDFA10BD0C234343AA -:109D4000084A10B59B185A68002A03D0012901D18E -:109D5000904710BD9B68002BFBD00029F9D1984794 -:109D6000F7E7C0461466FF1F01238340094A10B578 -:109D7000946B1C439463506B98435063D46B2000E6 -:109D80009843012901D120001843D063116B0B4384 -:109D9000136310BD00800040F0B500240127154B6F -:109DA00085B0DA6B144E03921A6C0192DA64019B4F -:109DB000E3403B4217D0039DE5403D400295E5B2AC -:109DC00002992800FFF7BAFF316A736A002908D0A8 -:109DD0003900002B01D0029979402800FFF7C4FF19 -:109DE00001E0002BF9D101340C36172CDFD105B07E -:109DF000F0BDC04600800040F865FF1F064B012102 -:109E00005A68C2400A4204D01B68C3401800084088 -:109E100070471B6DF9E7C046008000400122064BE9 -:109E20008240002903D0D9680A43DA607047D968B4 -:109E30009143D960FAE7C0460038004030B50324AA -:109E400044430F4BE25C1B199C785D7801232D1B6A -:109E50000135AB40013BA340A140DB430C0012287D -:109E600007D808499200521811681940214311601F -:109E700030BD054A11680B4023431360F8E7C04624 -:109E8000C7BA001108F0004014F00040C21F70B5BE -:109E9000D4B20623092C0BD80125084C9540002983 -:109EA00008D00021FFF7CAFF23682B43236000235B -:109EB000180070BD2368AB43F8E7C0460038004087 -:109EC000214BF0B51B185B78022B21D103244443AE -:109ED0001E4A1F4EA35C121994780122150085407A -:109EE000B76B013CE4B23D43A240B563194C122864 -:109EF00015D89B0000290CD117495B1899680A43B3 -:109F00009A600123205C154A834011680B4313605B -:109F1000F0BD11495B18996891439960F1E70E4BC8 -:109F200000290DD159690A435A61225C1328E8D0EF -:109F30000123203A93400A49086803430B60E7E78E -:109F4000596991435961F0E7F865FF1FC7BA0011DD -:109F5000008000400CBB001100F00040A0F0004069 -:109F6000A4F00040F8B500241B4E1C4D1C4B1B5D9B -:109F7000012B1FD1194A9269E2401A420BD00122EB -:109F8000B25693402200143AD2B2022A09D8154997 -:109F90004A6913434B61013402360C35172CE5D165 -:109FA000F8BD0022B2560F499200521891680B4337 -:109FB0009360F0E7022BEED1E7B23800FFF71EFF07 -:109FC00001235840C1B23800FFF77AFF3800FFF78D -:109FD00015FF6877DFE7C04699BA0011F865FF1FE3 -:109FE000F965FF1F00F00040012202388240054B56 -:109FF000002903D059690A435A617047596991434E -:10A000005961FAE700380040F8B50E0001210F0051 -:10A010008740114A0400D368FD43BB43D360831ECD -:10A020008B4201D8FFF7E0FF00212000FFF72EFF51 -:10A030000A4A0B4B5168012E05D139431B19516057 -:10A040005E700020F8BD2940516002221C19627028 -:10A050009A6915409D61F4E7003800400080004097 -:10A06000F865FF1F012210B58240074B002906D07A -:10A0700019680A431A600121FFF7C6FF10BD19686D -:10A0800091431960F7E7C046008000400C2370B58B -:10A09000002543430A4A29009B181D70094B040000 -:10A0A0001B185D70FFF7B0FF0123A340064928008D -:10A0B0000A681A430A6005490A689A430A6070BD33 -:10A0C0001466FF1FF865FF1F348000403080004099 -:10A0D00070B504000E00FF2813D003250540FFF7DC -:10A0E000D5FF084AA3089B009B183F22ED00AA4019 -:10A0F000AE40196820009143314319600121FFF7F8 -:10A100008DFE70BD18380040F8B50C244443134B45 -:10A110000500E4186368002B03D1A3681220002B0C -:10A120001AD0022201270E4B00215B195A70280019 -:10A130002770FFF769FF63681E1E08D0A3683E0002 -:10A14000002B04D02800FFF759FE4640F6B2280045 -:10A150003100FFF709FE0020F8BDC0461466FF1F5E -:10A16000F865FF1FF7B5C420FF222B4B800019585C -:10A17000002491433F3A0A431A508022274F52024B -:10A18000274E1A60274B1D5D002D21D0A31E012BE9 -:10A1900003D80121E0B2FFF727FF012D18D11F4B93 -:10A1A0009B69E3402B4213D0E3B218000193FFF701 -:10A1B00025FE01000198FFF755FFE3B2143B022B87 -:10A1C0001DD801217156184A8D405369AB43536124 -:10A1D0003B7F002B0DD0E5B22800FFF795FF28004C -:10A1E000FFF70CFE7B7F0100834202D02800FFF7BF -:10A1F000A5FD01340C370236172CC3D1F7BD012160 -:10A2000000237156F3568D40074A9B009B189A68AD -:10A21000AA439A60DCE7C04600E100E0F865FF1F52 -:10A2200099BA0011F965FF1F00F0004010B5012137 -:10A230000400FFF7E9FE0123044A002011194B70C6 -:10A24000A34091690B43936110BDC046F865FF1FA1 -:10A2500070B50E0015000400FFF718FF0C236343D0 -:10A26000094A20009B189D605E60FFF74DFFF021BA -:10A27000064B074A8900051E5A5002D02000FFF7FE -:10A2800005FF280070BDC0461466FF1F0000FF1FB9 -:10A29000999D001170B5134D07202C78002C1FD10B -:10A2A000982221005200280001F062F80123C42006 -:10A2B000FF222B700C4B80001C635C630B4B1C60FB -:10A2C0005C600B4B195891433F3A0A431A50802265 -:10A2D00052021A600D20074A074900F0F1FF2000E2 -:10A2E00070BDC046F865FF1F00800040A0F0004030 -:10A2F00000E100E065A10011659F0011030010B5A9 -:10A300000620072B09D8054A137001F019F8D72148 -:10A310000020034B034A89005A5010BD5C43FF1FC5 -:10A320000000FF1FD91AFF1F70B51D0002240C2961 -:10A3300010D8094ACA40D2070CD5FBF72FFF041EDC -:10A3400008D1059A04992800FBF744FFFCF7B2FDF9 -:10A35000FFF712FB200070BD1210000030B50D7821 -:10A3600002232C009C43184201D02B431C000825DB -:10A370002300AB43284201D02B00234320241D009F -:10A38000A543204201D01C4325002A230D7018420A -:10A3900004D011781E3B0B43137030BD0028FCD154 -:10A3A0000C2113788B43F7E7F8B51D0006AB1B882B -:10A3B000140007AA0E000B201778002B27D10A786B -:10A3C000022A49D14A68507811780002244A084389 -:10A3D0008018042840D801F083F803121D1B2300C5 -:10A3E000F06800F0EDFF021CC0B2B84200D93A1C80 -:10A3F000D2B22000F1682A8000F01AFF06E00222A3 -:10A40000F3681B882A8023701B0A63700020F8BD44 -:10A410000622EEE701232B80F3681B782370F5E713 -:10A42000F368002B16D008222A801A8822701A8816 -:10A43000120A62705A88A2705A88120AE2709A88C8 -:10A4400022719A88120A6271DA88A271DB881B0A6B -:10A45000E371DBE72B80D9E701202B80D7E7C046EB -:10A4600000D6FFFFF7B516000A781D0008AB1F885D -:10A470000C000123022A18D14A6850781178000292 -:10A480002B4A0843801803280FD801F029F8022529 -:10A490004439E06800F094FFC0B20723B84204D307 -:10A4A0007B190193152B02DD0D231800FEBDE0681A -:10A4B0002A003100C01900F0BBFE6B4600209B88CB -:10A4C000E268D0541B4B1B68834203D01B68834255 -:10A4D00000D098470023E8E70B23002FE5D1022D99 -:10A4E000E2D1737832781B021343E2681380114B78 -:10A4F0001B68002BEED01B68002BEBD00120E8E797 -:10A500000B23002FD1D1062DCED12A003100E068D7 -:10A5100000F08EFEDEE70B23002FC6D1012DC3D144 -:10A5200032787533012AC0D8E3681A70D2E7C04682 -:10A5300000D6FFFF0468FF1F70B50C001500072848 -:10A5400037D800F0CDFF041436361B36242E1820E1 -:10A5500015290BD8184E16220021300000F080FE7D -:10A5600022002900300000F063FE002070BD18209A -:10A570000229FBD11288114B1A80F6E7182008290E -:10A58000F4D10A000E48290001F022F9EDE7182065 -:10A590000129EBD10B4B10780B49DA69FFF7DEFE8E -:10A5A000E3E718200129E1D1064B10780749DA6B5F -:10A5B000F4E70220DAE7C046EC67FF1FDA43FF1F2B -:10A5C000D043FF1F6043FF1F8843FF1FA843FF1FA7 -:10A5D000030010B50020DB0704D50721024A034819 -:10A5E00000F08CF810BDC04624BB00116043FF1F73 -:10A5F000054A03001068002803D082889A4201D1DE -:10A60000806870470068F6E7FC69FF1F0A8803004E -:10A6100008009A4204D08A8804309A4200D0002070 -:10A6200070470000F8B5F22200230D4F0D4E7968F7 -:10A63000050042433370994200D07B600A4C0021F0 -:10A64000200000F00DFE00231A007C60AB4202D116 -:10A6500000203370F8BD01332280DBB2F234F5E71D -:10A66000F46AFF1FF26AFF1F006AFF1F73B56B4693 -:10A6700001900600684615001980FCF74DFF041E86 -:10A6800011D1002D0FD07689002E11D00C2001F0B1 -:10A6900007F800280ED0084A046013688680856099 -:10A6A000002B02D11060200076BD1A001B68F7E76E -:10A6B0000224F8E71324F6E7FC69FF1F01210022BA -:10A6C0000A4B10B549420A4C198099809A719A70C8 -:10A6D000084B2070012019805A60FFF7A3FF2078F3 -:10A6E000FCF778FF0448FDF733FF10BD0C68FF1F2F -:10A6F000FC6AFF1FF46AFF1FA9A70011022310B50F -:10A70000002802D0FFF7B2FF0300180010BD0000C0 -:10A71000030010B50020DB0704D50421024A0348DA -:10A72000FFF7A4FF10BDC04638BB0011E043FF1F78 -:10A73000F0B50E2687B003930CAB1F8802ABF6185A -:10A740000500080031000292FDF768F804000120BE -:10A75000002C0FD03088FFF74BFF03000E20002B9A -:10A7600008D05E68002E05D021002800039B029AC5 -:10A770000097B04707B0F0BD0A4B10B5984207D11B -:10A780000122002352420A808B708A808B7110BD97 -:10A79000FFF73CFF0028FAD001235B42038000232F -:10A7A0008370F4E7FFFF0000F8B5050001290AD126 -:10A7B000134E00243388F227AB4219D028001149E8 -:10A7C000FFF7DAFF06E0022904D10139FDF73EFF69 -:10A7D0000028EDD0F8BD3B0063437268D018D35A0F -:10A7E000002B09D03A00002100F03AFD0134E4B218 -:10A7F000054B1B78A342EED801235B423380DDE793 -:10A80000F46AFF1F0C68FF1FF26AFF1F10B5FFF705 -:10A81000FDFE03000020834200D0987810BD0000A8 -:10A82000F0B589B01C000EAB80CB03901E8810AB36 -:10A830001B78049202930B7A0D00DB0616D42B785A -:10A840000593022B24D00498FFF7D2FE002812D0E3 -:10A8500003689C46002B0ED0029B22000193290026 -:10A860003B00644603980096A04705E00498FFF774 -:10A87000BFFE002802D10E2009B0F0BD8368002B76 -:10A88000F9D00A222900039898470028D7D0F3E787 -:10A890006B6858781A786B4B000210439842D2D8F4 -:10A8A000043B984210D2684B984242D015D8674B6F -:10A8B000C0180128C7D80B20002EDDD1EB681A780C -:10A8C00059683A80200028E0614BC018032800D95D -:10A8D00079E000F005FE846A789E5E4B9842B2D122 -:10A8E0000B20002EC8D101233B80EB6831001B7880 -:10A8F00023706889013080B2FCF790FF3A88031E0C -:10A900000ED0017802328A183A80428962704289F8 -:10A91000120AA27059680278E01C00F089FC06E077 -:10A9200004323A8031000422601C00F099FC0020BF -:10A93000A2E70B20002E9FD1EB6807A91E880423F5 -:10A940003B80330A300026706370FCF767FF051EFA -:10A9500028D004AB9A890E2304A95B183E49C66827 -:10A96000FCF7D0FF00280BD12B783C486A6805998A -:10A97000FBF786FB002803D1012304AA5B42D381A5 -:10A980003278022A06D17168201D00F051FC3B8804 -:10A9900002333B800E2304AA9B181B88A3701B0A5A -:10A9A000E370C4E704ABDE81F4E70B20002E00D097 -:10A9B00062E7E9680398FFF729FF02233B802070D4 -:10A9C000000A6070B3E70B20002E00D054E702228B -:10A9D000EB681B883A8023701B0A6370A7E7E8685E -:10A9E00000F0EEFCC2B203000720B24200D243E7FF -:10A9F0000DD00299DBB27118994202DB921BD3B2DF -:10AA00000293029BE9681A003B8089195AE70023E8 -:10AA1000F6E70B20002E00D02EE70722EB683A80E5 -:10AA20001A7822705A7862705A88A2705A88120A6C -:10AA3000E2701A792271DA886271DB881B0AA371CD -:10AA400075E7C046042900000228000000D8FFFF77 -:10AA5000FFD6FFFF03280000FFFF000068BA0011C7 -:10AA6000F0B58DB06B460020089120229B5E83429A -:10AA70003DDAA64B187800F003FE071E32D00378AB -:10AA8000B02B2CD10079023816281FD800F090FD89 -:10AA900017001E001E001E0031001E0096001E0042 -:10AAA0001D011E0052011E0073011E00CD011E007B -:10AAB00050021E001E001E008E021E00E302944B78 -:10AAC00094491B8878880B80FBF71AF83800FCF74C -:10AAD0009BFF914B1B68002B01D038009847380032 -:10AAE00000F02EFE8020089B0002434018000DB0AD -:10AAF000F0BDEE220021874800F0B2FB0BAA3B7BA1 -:10AB00007989388900923A000D32FCF79FFD0400E4 -:10AB1000804B1B78002C3FD146E0804B7888059312 -:10AB20007F4B4100CB5A0BAE073BDBB2328802931E -:10AB3000002301937B4B210006930093059BFFF7B5 -:10AB40006FFE744D002810D1069B3A8A1B889A42EA -:10AB50000BD138000599123000F0CAFC002804D04F -:10AB60002B7862899B00EB185A80162306A81B18C5 -:10AB7000328820007989FCF7C5FE2B7804009A0002 -:10AB8000AA1851880029C3D00133DBB22B700028EA -:10AB900007D006A9C98A9180634A12889A42BCD814 -:10ABA00002E0012149429180002B04D05949788864 -:10ABB000FAF7DAFF8AE73E890A2479E000253E8920 -:10ABC000574B06937B88069A5B009B5A033B9D423A -:10ABD00002DB002DF0D05BE0162206A812183B7BAA -:10ABE000798900923A0030000D32FCF72FFD059074 -:10ABF000002858D04689017A7888FCF7F1FC041EB9 -:10AC000044D1464B78880793069B4100C95A454B6F -:10AC10000439C9B206AAD28A06930291019400931C -:10AC20000599079BFFF7FCFD041E2FD1069B3949B0 -:10AC30001A88931C002D26D14B807988384B490007 -:10AC4000CB5A5119033B8B4220DD059B31485B8970 -:10AC500041190B71A91C0135C9B2EDB20591451915 -:10AC60001B0A2B71059B2D490433181800F0E0FADC -:10AC70002C4B059A1B88D318DDB22C4B9E4205D075 -:10AC80000136B6B29CE749889942D6D0002D0CD047 -:10AC9000204C2800618800F003FC20702100788897 -:10ACA000FAF772FF12E7059CF0E7002C00D183E76A -:10ACB0007B78142B00D109E716493B794E800B7045 -:10ACC0000C717888FAF712FF00E7162406ABE41837 -:10ACD00021003889FCF7A2FD011E00D1B7E1788878 -:10ACE00022880F4C45002C5B0A4D013CE4B20294D3 -:10ACF00000240F4B01940095FFF792FD041E00D035 -:10AD000014E129007888FAF74FFFDFE6FC6AFF1F9D -:10AD1000CC42FF1F1468FF1F0868FF1F0869FF1F50 -:10AD20004464FF1FF869FF1FCA42FF1FFFFF0000B6 -:10AD30001668FF1F162406ABE41821003889FCF7BB -:10AD40006DFD011E00D182E178882288AE4C45005D -:10AD50002C5BAE4D013CE4B202947C89AC4B019477 -:10AD60000095FFF75DFD041E00D0DFE02900788824 -:10AD7000FAF724FFAAE60025A44B1D803B00F6331A -:10AD80001B78A24A78880792AB4208D99E4B12885A -:10AD90000693069943005B5A013B9A4203DB0799ED -:10ADA000FAF716FF92E616246B00FB18059306AB24 -:10ADB000E418059B21001889FCF730FD011E03D122 -:10ADC000059B01241E8973E77888924B2288069C94 -:10ADD000099343001B5B904E013BDBB202930023BF -:10ADE00000960193099BFFF71BFD041E02D0059BF3 -:10ADF0001E895DE77B88069A5B009B5A079A10883C -:10AE000032881218934202DC1B1A013B33807F4CBC -:10AE1000023032880999001900F00AFA2388328832 -:10AE200001359B182380EDB2A8E70BAA3B7B7989FB -:10AE3000388900923A000D32FCF708FC0025059095 -:10AE4000059B002B04D10A24002D00D16EE060E0A8 -:10AE5000059B7888197AFCF7C3FB0100041E63D1B7 -:10AE6000694C6C4B788806940993069B4400E45A1D -:10AE7000694B063CE4B20BAE328807930294019111 -:10AE800000930599099BFFF7CBFC041E4CD1079B4F -:10AE90005E491B881A1D002D30D14A80059B5B4CF2 -:10AEA0005A8963191A716B1C9BB2E318120A1A7142 -:10AEB000162306A832881B1879890598FCF722FD0D -:10AEC000FF21AA1C2E1D03350B00059092B2B6B2CD -:10AED000ADB2002803D006ABDB8AD9B21B0AA21898 -:10AEE000651911712B714C4D301D2A884949201864 -:10AEF00000F09EF92B88F618B5B2A1E74988914277 -:10AF000007D17A8806995200525AEB18053A9A42AC -:10AF1000C4DC3E4C2800618800F05AFB2070210000 -:10AF20007888FAF75FFED1E5002DF2D13E89BFE6C1 -:10AF3000162606ABF61831003889FCF76FFC3D0089 -:10AF40000400FA3500282DD0037A9B060CD4002289 -:10AF50007B893989788800923A000C32FFF7E8FB48 -:10AF6000041E10D03E8915E03088FFF741FB002811 -:10AF70001AD08368002B17D02100122278889847B6 -:10AF8000041EE4D0EEE72B78002B02D17888FAF784 -:10AF900039FE00262B78002B00D097E5002C00D13D -:10AFA00094E585E60124DDE70E24DBE7162506ABF4 -:10AFB000ED1829003889FCF731FC041E47D0037ACC -:10AFC0009B0611D4154A7B881188994203D01448F6 -:10AFD000814207D11380134BF2261D780023D9B28A -:10AFE000A94221D30924A1E72888FFF701FB002803 -:10AFF0002FD08368002B2CD021001222788898470C -:10B00000041EDFD092E7C0464464FF1F1468FF1F90 -:10B010001668FF1F0869FF1FF869FF1FF46AFF1F0A -:10B02000FFFF0000F26AFF1F3100594354680133EB -:10B030006018615A0029D2D13C0008342100F22264 -:10B0400000F0F6F821007888FAF7E4FD3EE50124E7 -:10B050006CE70E246AE71D4B1A887B889A4231D030 -:10B060007888FAF7E1FD31E5F2230598516843430A -:10B07000CD18C95A00291FD03B7A012B0BD16C88FF -:10B08000AB887888AA1D0094FFF752FB041E02D0FB -:10B0900000233B722E88F2220021280000F0E0F805 -:10B0A00000232B80059B0133DBB20593084B0599E8 -:10B0B0001B78064A8B42D7D801235B421380002CB1 -:10B0C000CED0F5E5002634000596EFE7F46AFF1FC1 -:10B0D000F26AFF1F70B504000E001500FFF796FA24 -:10B0E000031E08D131000548FFF790FA0300112034 -:10B0F000002B02D01C8000209D7070BDFFFF00005F -:10B10000F8B50B4F06003B780D001400FF2B0ED056 -:10B110000A2000F0FDFA011E09D0B12303800023AC -:10B1200046800371C5800481387800F061F9F8BD6C -:10B130002144FF1FF7B50F0008A90600088809A9D8 -:10B140000B240988002821D10234022B1ED1557806 -:10B1500013782D021D432B008B4301937334002B76 -:10B1600014D1FB68300019000093FFF74FFB019CDE -:10B1700085420BD02A0030000099FFF7ABFF041E78 -:10B1800004D12A0030007989FFF7BAFF2000FEBD04 -:10B19000F0B50E7885B003900AA805880120022E2C -:10B1A0000DD14C682778647824023C43054FBC429B -:10B1B00005D10398DBB201960095FFF7BBFF05B000 -:10B1C000F0BDC04602290000034B10B51B68002BE0 -:10B1D00000D09847FEE7C046006BFF1F07B501A8E7 -:10B1E000FFF7F2FF044A05480021121A00F0C0F8E8 -:10B1F000F8F700FBFEE7C046046BFF1F2444FF1F67 -:10B2000001B40248844601BC604700BFC135FF1F3E -:10B2100001B40248844601BC604700BFADAE0000E7 -:10B2200001B40248844601BC604700BF3D180000DD -:10B2300001B40248844601BC604700BFE94C0100EC -:10B2400001B40248844601BC604700BF8B52010034 -:10B2500001B40248844601BC604700BF9DA90000BC -:10B2600001B40248844601BC604700BF154D01008F -:10B2700001B40248844601BC604700BF2526000097 -:10B2800001B40248844601BC604700BF193AFF1F61 -:10B2900001B40248844601BC604700BF65710100EB -:10B2A00001B40248844601BC604700BF056A000043 -:10B2B00001B40248844601BC604700BF017F000022 -:10B2C00001B40248844601BC604700BF6130FF1FE3 -:10B2D00001B40248844601BC604700BFC12FFF1F74 -:10B2E00001B40248844601BC604700BF1D4B010009 -:10B2F00001B40248844601BC604700BF8538FF1F87 -:10B3000001B40248844601BC604700BF4D38FF1FAE -:10B3100001B40248844601BC604700BF45500000AC -:10B3200001B40248844601BC604700BF1930FF1FCA -:10B3300001B40248844601BC604700BF8D12000082 -:10B3400001B40248844601BC604700BFD91AFF1F00 -:10B3500001B40248844601BC604700BF4D1F000095 -:10B3600001B40248844601BC604700BF0132FF1FA0 -:10B3700001B40248844601BC604700BFB70E00001C -:10B3800001B40248844601BC604700BFB14E0000D2 -:10B3900001B40248844601BC604700BF6DBC000098 -:10B3A00001B40248844601BC604700BF691F000029 -:10B3B00001B40248844601BC604700BF012400007C -:10B3C00001B40248844601BC604700BFDD52010061 -:10B3D00001B40248844601BC604700BF79180000F0 -:10B3E00001B40248844601BC604700BFED4A010039 -:10B3F00001B40248844601BC604700BF594F0100B8 -:10B4000001B40248844601BC604700BF0539FF1FF4 -:10B4100001B40248844601BC604700BF5D170000CC -:10B4200001B40248844601BC604700BF7D18FF1F7D -:10B4300001B40248844601BC604700BF4537FF1F86 -:10B4400001B40248844601BC604700BFE9280000FF -:10B4500001B40248844601BC604700BFA946010010 -:10B4600001B40248844601BC604700BFF94C0100AA -:10B4700001B40248844601BC604700BFE1170000E8 -:10B4800001B40248844601BC604700BF5952010024 -:10B4900001B40248844601BC604700BF9136FF1FDB -:10B4A00001B40248844601BC604700BF350E00006D -:10B4B00001B40248844601BC604700BF091B00007C -:10B4C00001B40248844601BC604700BF0D52010030 -:10B4D00001B40248844601BC604700BF5522000009 -:10B4E00001B40248844601BC604700BF2D3BFF1FEA -:10B4F00001B40248844601BC604700BFCD4C010046 -:10B5000001B40248844601BC604700BFC538FF1F34 -:10B5100001B40248844601BC604700BFE548000012 -:10B5200001B40248844601BC604700BF5147010096 -:10B5300001B40248844601BC604700BFEDA500008D -:10B5400001B40248844601BC604700BF2951010094 -:10B5500001B40248844601BC604700BFC521000019 -:10B5600001B40248844601BC604700BF21240000AA -:10B5700001B40248844601BC604700BFD9490100BC -:10B5800001B40248844601BC604700BFF30E0000CE -:10B5900001B40248844601BC604700BF5933FF1F15 -:10B5A00001B40248844601BC604700BF5125000039 -:10B5B00001B40248844601BC604700BF413BFF1F05 -:10B5C00001B40248844601BC604700BFA54F01009A -:10B5D00001B40248844601BC604700BF090E000068 -:10B5E00001B40248844601BC604700BF9D35FF1F7F -:10B5F00001B40248844601BC604700BFC9A90000ED -:10B6000001B40248844601BC604700BF9135FF1F6A -:10B6100001B40248844601BC604700BF156B0100BD -:10B6200001B40248844601BC604700BFC52DFF1F1E -:10B6300001B40248844601BC604700BF2932FF1FA5 -:10B6400001B40248844601BC604700BF792DFF1F4A -:10B6500001B40248844601BC604700BFD91B00000A -:10B6600001B40248844601BC604700BFB54C0100EC -:10B6700001B40248844601BC604700BF2146010076 -:10B6800001B40248844601BC604700BFF54E01008A -:10B6900001B40248844601BC604700BF75A90000A0 -:10B6A00001B40248844601BC604700BF3D4B010025 -:10B6B00001B40248844601BC604700BF456B0100ED -:10B6C00001B40248844601BC604700BFC56D01005B -:10B6D00001B40248844601BC604700BF291C000039 -:10B6E00001B40248844601BC604700BFC92600007F -:10B6F00001B40248844601BC604700BF55490100BF -:10B7000001B40248844601BC604700BF014C0100FF -:10B7100001B40248844601BC604700BF1D4D0100D2 -:10B7200001B40248844601BC604700BF851F000089 -:10B7300001B40248844601BC604700BFDD660100D9 -:10B7400001B40248844601BC604700BF434D01007C -:10B7500001B40248844601BC604700BF055E00009A -:10B7600001B40248844601BC604700BF8552010015 -:10B7700001B40248844601BC604700BF7139FF1F15 -:10B7800001B40248844601BC604700BF3555000043 -:10B7900001B40248844601BC604700BFD92FFF1F97 -:10B7A00001B40248844601BC604700BF311B000061 -:10B7B00001B40248844601BC604700BF090E000086 -:10B7C00001B40248844601BC604700BF45510100F6 -:10B7D00001B40248844601BC604700BF810E0000EE -:10B7E00001B40248844601BC604700BF5118FF1FE6 -:10B7F00001B40248844601BC604700BFED39FF1F19 -:10B8000001B40248844601BC604700BF3938FF1FBD -:10B8100001B40248844601BC604700BFC94A010028 -:10B8200001B40248844601BC604700BFB352010026 -:10B8300001B40248844601BC604700BF193BFF1FAA -:10B8400001B40248844601BC604700BFC51D00002A -:10B8500001B40248844601BC604700BF11470100A3 -:10B8600000010103020303030403050206020702A9 -:10B87000080209000A030B030C020D000E030F035C -:10B88000100311031303140315001600CD3B001120 -:10B89000013C00110000000002000000A2B80011ED -:10B8A000192A0F180A000000F1590000FD240000B9 -:10B8B00041460100597C00116D9C0011C1700011BE -:10B8C0005D7A00116D52001161AA0011E14E001164 -:10B8D000C13D0011F13E00110000000016160000ED -:10B8E00002000000ECB80011F4FFF3FFD2FC0000EE -:10B8F0003140001100000000000000005475796123 -:10B900000042312E3400303031340067697468757C -:10B91000622E636F6D2F7076767800425448303116 -:10B92000000000000200000038B90011292A282A6E -:10B93000272A262A252A242A0A180000E2040000C1 -:10B940007102000078EC0000744000001027000035 -:10B9500060F0000006640000204E000000000000BF -:10B96000050000001F501D00023CB400000114003F -:10B970001400000081020000303132333435363794 -:10B9800038394142434445460000000071560011D9 -:10B99000C55600110000000002000000A4B900110B -:10B9A0006F2A6E2A1A18000001A000000000000093 -:10B9B0006410B71DC8206E3BAC30D9269041DC76B0 -:10B9C000F4516B6B5861B24D3C7105502083B8ED5A -:10B9D00044930FF0E8A3D6D68CB361CBB0C2649B7E -:10B9E000D4D2D38678E20AA01CF2BDBDFB349B5FA3 -:10B9F000800000800010000000000000C35C001107 -:10BA00004D730011E75C0011557700116B5D00115B -:10BA10002B770011E15D001101770011335E0011F9 -:10BA2000C97800119B5E0011C9780011CD5E00112C -:10BA300083780011E15D0011B9760011595E0011A3 -:10BA40006178001100000000000000003F5F00115D -:10BA500061780011A15F001165730011052A042AA5 -:10BA6000012A002A022903280128002801180018A9 -:10BA7000000000000000000000000000000000873F -:10BA80000101020102010102010203030401030199 -:10BA9000010101010303020103000D000E0010006B -:10BAA000110013001401070108010A010B011C0118 -:10BAB0001D02040205020702080219021A021C02F2 -:10BAC0001D0301030203170002010005040008071B -:10BAD000000B0A001716001D1C01020101050401DC -:10BAE0000E0D011110011413011716011A1902028B -:10BAF00001020B0A020E0D02111002141302171696 -:10BB0000030504030807030B0A030E0D00010203DB -:10BB100007090A0B0E0F101112141718191A1B1F00 -:10BB200020212200A9A3001165A40011000000003B -:10BB3000020000006EBA00110000000091B1001177 -:0CBB400000000000020000006CBA0011C0 -:020000041FFFDC -:1000000000000000293D0011A8B80011A4B800119B -:100010003061FF1F00000000000000000000000031 -:1000200000000000000000000000000000000000D0 -:1000300000000000000000000000000000000000C0 -:1000400000000000000000000000000000000000B0 -:1000500000000000000000000000000000000000A0 -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:100080000000000000000000000000000000000070 -:100090000000000000000000000000000000000060 -:1000A0000000000000000000000000000000000050 -:1000B0000000000000000000000000000000000040 -:1000C0000000000000000000000000000000000030 -:1000D0000000000000000000000000000000000020 -:1000E0000000000000000000000000000000000010 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000000000000000000000EF -:1001100000000000000000000000000000000000DF -:1001200000000000000000000000000000000000CF -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000000000000000000000000000008F -:10017000000000000000000000000000000000007F -:10018000000000000000000000000000000000006F -:100190004D32FF1FAD30FF1FC1660100000000009F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E000000000000000000000000000000000000F -:1001F00000000000000000000000000000000000FF -:1002000000000000000000000000000000000000EE -:1002100000000000000000000000000000000000DE -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000000000BE -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000000000000ED -:1003100000000000000000000000000000000000DD -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000000000000000AD -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:10037000DDB10011000000000000000000000000DE -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000591AFF1FBC -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:08183800106FFF1F4118FF1F94 -:10184000024981F3088802F02FFA0000106FFF1F91 -:1018500010B502F069FA072804D0122808D002282F -:1018600008D010BD044A0420136B01331363F8E75A -:101870000220F6E71420F4E7EC64FF1FF8B5070038 -:101880000C0026002500503630785135002804D150 -:101890000300287058342370F8BD2978CA00481E08 -:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 -:1018B00000280DD12B78DA00A218013350602B706C -:1018C0003378044A013B3370136A01331362D8E75B -:1018D0000123DFE7EC64FF1F5C234343074910B596 -:1018E000C9180B0058331B78012B05D1FFF7C6FF31 -:1018F000034A936A0133936210BDC0462065FF1FFF -:10190000EC64FF1F10B502F037F9064A01211300FD -:1019100010CB4942D967044B136002F07DFB2000D5 -:1019200010BDC04600E100E01000100010B504003A -:1019300002F022F9024B1C6002F06EFB10BDC046A3 -:1019400000E100E0431E5A425341A022F0B5D2010B -:101950005B421340154D164A40019B182A18127E0F -:101960008BB00191002A1BD01A000832D46F0022DC -:10197000E6B206AFE4B294420EDC2818C369002B2D -:1019800008D0019902AA117106AA049202AA16733C -:1019900003A898470BB0F0BD1978B9540132EAE7B3 -:1019A0001A7D1A7806AB01261A70E6E7AC67FF1FAE -:1019B00000400040F0B5254B04004001C25C85B0FA -:1019C000002A2BD01A18117E002927D0917E0029D9 -:1019D00024D01179022921D11689D788D168F51B25 -:1019E000ADB22A1C102D00D9102292B2BE4217D1DE -:1019F0001818012303710023C269C38003819A422E -:101A000006D06846032103730171029301A8904731 -:101A10000820002C00D0192001F0FEFA05B0F0BD1E -:101A2000013C65426C41A0256442ED012C40084D0B -:101A30001B186419074D0633013A92B2AA42EDD041 -:101A40001888461C1E80085C2070F5E7AC67FF1FF5 -:101A500000400040FFFF00000F220E4B10B59868B9 -:101A6000104002380A280BD802F060F80D0A0B0A61 -:101A70000A110A0A0A0A060002210020FFF762FF83 -:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 -:101A9000F6E7C046004000400F220E4B10B5986894 -:101AA000104002380A280BD802F040F80E0A0B0A40 -:101AB0000A120A0A0A0A060002210120FFF742FF61 -:101AC00010BD01210800F9E70120FFF773FFF7E7D8 -:101AD000DB6FF5E70090004013B5334C2378072BFC -:101AE0003DD8324B1A78324B002A39D180221968FE -:101AF00052020A431A60252001F0C4FE20232D4A19 -:101B000011680B43802113606B460422C9050868E5 -:101B10000733104228D080210422C905C86810422A -:101B20002ED080212020C905CA688243CA601422B1 -:101B30001A701A78002A2FD18021C905C86820326E -:101B40000243CA6014221A701A78002A28D11A4B4C -:101B50001A7D22785A601D221A705932DA6013BD3C -:101B60001A6816490A40C5E7086802430A60142249 -:101B70001A701A78002ACED01A78013AD2B2F7E752 -:101B8000C8680243CA6014221A7019784A1ED2B279 -:101B90001A700029F9D1C4E71A78013AD2B2C7E71E -:101BA0001A78013AD2B2CEE75C43FF1F2444FF1FEC -:101BB0003CF000405443FF1F00200040FFFFFEFFA9 -:101BC000564B70B51B68012B03D1554A936D0133F9 -:101BD000936502F039F9534B534A1860534B544CF8 -:101BE0001A600123534A1360534A13602378002B71 -:101BF00006D006225149524802F046F800232370CD -:101C0000504A514B10681B78C1B2002B0ED14F4C7B -:101C1000C0B223785BB2002B4FDB237824785BB211 -:101C200064B21B0424021B191B1813600B1C5029DF -:101C30004ED95023464A47491078DBB2FF2202288A -:101C40004BD10868444C454D267890432A789642FB -:101C500054D9227824782E78023B5D10A31B6B4365 -:101C60005201D31A10335B111843086002F0CCF90B -:101C7000031F012B45D83A4B1B78002B06D0394B5C -:101C80001B78002B02D0002002F06EF9A122364B07 -:101C900092009978354B4A431B689B188322920027 -:101CA0009B181B78033B012B03D8AF20400001F0A9 -:101CB00093FF01222E4BDA8270BD237824785BB229 -:101CC00064B2FF33FF341B0424021B190138ABE755 -:101CD000CAB2022AAED20223ACE70868254C264DD0 -:101CE000267890432A78964208D9227824782D784D -:101CF000023B5B10641B63435201B2E72378DBB203 -:101D0000B2E70228D5D11D4B1B78013B022B03D92A -:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 -:101D2000FC0FFF1F2464FF1FFF3F0000141003403F -:101D30002864FF1F0C10034000100340D50BFF1F49 -:101D40007211FF1FB40003408C09FF1F680AFF1FB8 -:101D5000490AFF1F94000340460AFF1F470AFF1F5E -:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 -:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 -:101D80002309FF1F10B502F037F80022014B1A801B -:101D900010BDC0462064FF1F10B502F015F8A12148 -:101DA000054A89009478054A61431268044B521829 -:101DB000528C1A8010BDC046300DFF1F3409FF1F22 -:101DC0002064FF1F10B50D4B0D4A9978A1239B008D -:101DD0004B431268D218531DD97F0A4B1B88994276 -:101DE00009D2441C07D0C82805D0D2695B1A5A43CF -:101DF000054B5343C01802F08FF810BD300DFF1F84 -:101E00003409FF1F2064FF1F7102000070B5244DCC -:101E10002B68002B28D002F00FF82B68D8402B68D5 -:101E20000400002B27D002F0B7F82B68D8401D4BD8 -:101E30001D4A9978A1239B004B431268D118D25CAC -:101E400091239B00002A20D0CA580132CA50174B58 -:101E500017491B680868834214D3D23B181A012A19 -:101E60001AD0144B186070BD01F0E6FF124B1968D0 -:101E700002F0DAF8D3E702F08FF80F4B196802F09E -:101E8000D3F8D4E70D495B18E8E7CA500C4B1B6840 -:101E9000DB68E418201AE4E7F530FF30E1E7C046DC -:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 -:101EB0002464FF1FA009FF1F1808FF1F2DFF3F000C -:101EC0002C64FF1F70B504000D00282916D10300F3 -:101ED000A433C2881B889B1A0B4A9BB293420DD92C -:101EE00006006A3605223100653002F07DF80028D0 -:101EF00004D13100200001F0D7FF70BD290020007F -:101F000002F06AF8F9E7C046FE7F0000F8B5050068 -:101F1000012001F0A9FE134CA36AA26A9342FBD1EF -:101F2000114E336001F070FF104903000860104843 -:101F3000426894460F4A17680022BC4501D24268A5 -:101F4000BA1A0D4802603268AD18A422E562606AD0 -:101F5000520302436262094A1278002A01D00F3B01 -:101F60000B60F8BD00F00040340AFF1FE408FF1FBB -:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 -:101F800070B580241025E405A3682B43A36001F0FD -:101F900023FFA368AB43A36070BD0000F7B5160034 -:101FA00080221C001023D2050191916805000B438B -:101FB000936000225A4BD7301A6001F0D5FE9D2362 -:101FC0002A002F009B00EB58CA3201210092FC37F7 -:101FD000002B01D00021009A386801F0B5FE2900DD -:101FE000009BCB311A784F4BD3351A604B780A7867 -:101FF0001B0213438A7812041A43CB781B0613433F -:10200000494A1BBA13604B790A791B0213438A7938 -:1020100012041A43CB7931001B061343434A1BBAFF -:1020200013606B782A781B021343AA7812041A43B0 -:10203000EB781B0613433E4A1BBA1360019A330226 -:1020400013433C4A13603C4B22001B1B9C46032954 -:102050003DDCB3089A0013005142B21A032A46D15C -:10206000354AE018511A827840781204000202437F -:10207000E05C043302430A600022FF2B4BDDF022B8 -:102080002E4B12011A600F222D4B1A602D4A136835 -:10209000002BFCD00023224A27491360091B321D64 -:1020A0000B191B68043A180A23706070180C1B0E79 -:1020B000A070E3700434002AF2DC802210213B6817 -:1020C000D20501333B6093688B439360F7BD634651 -:1020D000D578981893782D061B042B43157804396E -:1020E0002B43557804322D022B430360AFE7022ABD -:1020F0000AD1114AE05C511AE218527812020243E6 -:102100000A6004339BB2B7E7012AB5D10A4A521AD2 -:10211000E15C1160F5E7084959180A600433ACE73F -:10212000000004403C0004403800044034000440F7 -:10213000300004400C00044000010440040004404E -:102140001000044014000440F7B5150080221C0064 -:102150001023D2050091916807000B439360002380 -:10216000654AD730136001F0FFFD9D233E009B00C0 -:10217000F9583B00CA363200FC33002900D07FE01A -:10218000586801F0E1FD390032785C4BCB311A60C0 -:102190004B780A781B0213438A78AC4612041A4320 -:1021A000CB78281D1B061343554A1BBA13604B7985 -:1021B0000A791B0213438A7912041A43CB791B064E -:1021C0001343504A1BBA13604B7A0A7A1B0213431B -:1021D0008A7A12041A43CB7A21001B0613434A4A17 -:1021E0001BBA1360009A2B021343484A1360220063 -:1021F000474B1B1B0093009BCE785B1801938B7899 -:1022000036061B0433430E78043833434E780431CA -:1022100036023343019E33600328ECDC0321A80817 -:10222000431C9B002940800003292BD13849E51825 -:102230005E18A9786D78E35C09042D0229431943DF -:102240003160030008330021FF2B2DDD314B324973 -:1022500019600F21314B1960012327490B60304B66 -:1022600019680029FCD006211B680B40042B20D0E4 -:1022700080220020D20593680A318B439360FEBD13 -:1022800001217DE7022908D121495D18E11849782B -:10229000E35C090219432960D3E70129D3D11C4922 -:1022A0005918E35C0B60CCE7194818180160043337 -:1022B000CAE7002310490B606346002B0CDC3B008F -:1022C000FC335A68102101325A608022D20593688B -:1022D00001208B439360D2E7009B9B181B68190A6F -:1022E00013705170190C1B0ED37004235B42917054 -:1022F0009C440432E0E7C046000004403C00044037 -:102300003800044034000440300004400C00044015 -:102310000001044004000440080F000010000440C5 -:102320001400044070B5061E19D002225A4B9B7946 -:102330009343012B13D1594B1A78FF2A0FD15A78A6 -:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 -:102350001A79FF2A03D15B79FF2B00D199E0504B0A -:102360000C201A78012A08D000224E4D1A702978C4 -:102370000B00093B042B01D8212070BD4B1F012B02 -:10238000FAD9454CA37B042B00D982E0A279032A19 -:1023900000D97EE09A1ED2B2012A02D860881F2896 -:1023A00077D9002E56D0012E73D1A0880128E3D012 -:1023B000002907D1581E032803D801F0B7FB1217D4 -:1023C00015122E702978481E032811D80025364B87 -:1023D0001D602823237501F057FDA84227D0A58052 -:1023E000CAE702212970EDE70421FBE70321F9E7A1 -:1023F00007390129C0D82D490968C96A8906BBD5A2 -:102400002B4908780028B7D1012A01D9002BB3D174 -:1024100002230B708021274D2633890128782375EC -:1024200001F00AFE80212878890101F0B5FB012323 -:10243000A380214B1B78002B0AD0FA2280211F4B4E -:1024400092001B8809025A431A4B187801F04CFC81 -:10245000002092E701F090FB2B78A680073B012B30 -:1024600003D917482E7001F05FFD114B114C1A78FB -:10247000002A06D080210022207889011A7001F0FC -:10248000DBFD01F0C9FD80212078090201F0D4FDB7 -:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 -:1024A0001A09FF1F1C09FF1F4809FF1F2C64FF1F8B -:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 -:1024C0000010004010B5002901D001F0E5FB10BD5F -:1024D000F7B5604B01919978A1239B004B435E4A6D -:1024E000060014681022E418D6235B00E058362357 -:1024F000FF33E35C00279343222B41D1574B0F3A24 -:102500001A600760012501F02FFB019B1880E8236A -:102510005B00E35C002B01D0B34258DD0023504F39 -:10252000FB70AD33FF33E3581A68002A03D09B8851 -:10253000DB439B071DD03823FF33E35C002B18D00F -:102540009B235B00E35C002B13D1D133FF33E35CAF -:10255000B3420EDAA4235B00E15AE018090A023103 -:1025600001F02AFD23000122FE33013E01351A87C6 -:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 -:1025800003683D00002BBED081880430090A023167 -:1025900001F012FDD6235B00E3581F60B2E7230071 -:1025A000B133BA00FF339858013781880430090AE3 -:1025B000023101F001FDE8235B00E35CBB42EEDC8D -:1025C000E822F61AED1800235200A354A6E70027CC -:1025D000F1E7200001F020FB00281FD0002E1DDDB8 -:1025E0007319882647190193B600200001F06CFB8F -:1025F0005A30800020184068013581880430090A6B -:10260000023101F0D9FC200001F0F6FAA3590133A0 -:10261000A351BD4202D0019B9D42E6D1114BE35C28 -:10262000002BABD095239B00E35C002BA6D00E4B78 -:10263000E15A0029A2D00D4AA35C994202D9013384 -:10264000A3549BE700231A212000A35401F084FA2D -:1026500094E7C046300DFF1F3409FF1F00140340EC -:10266000E010FF1F5A020000720200005E0200002C -:102670000D4970B54A6E0D4CD2038B69D20BA24244 -:1026800006D80B4D0224AA4204D901F02DFC70BDDE -:1026900002246442E21815007E2425402242F4D030 -:1026A000A3432B438B61F0E700F000400A200000B9 -:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 -:1026C000BA7B002A02D101321A7003E0032AFAD041 -:1026D000022AF8D001F0D8FB00220120154B1A7015 -:1026E000F8BD154B154D1C68154B9E7801232B70BA -:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D -:1027000093FBA1239B007343E41883239B00E418ED -:1027100023782B70E4E7032B02D101F0A5FBF0E74F -:102720000020022BDCD101F0C7FAEAE71C09FF1FE9 -:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 -:10274000300DFF1FF0B587B00EAD2F780FAD2D788F -:102750000593AC46634614000E4D0CAA12782E78F1 -:1027600003930D9B009201932200059B029701F0B9 -:10277000C3FB2E70012C01D0042C08D18022064905 -:102780008B889343054A1278D20113438B8007B09C -:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 -:1027A0000B001B3B70B504003020E02B0DD813004C -:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 -:1027C000200019825A8201F01FFA70BD8410FF1F89 -:1027D00010B501F039FB054B00205B68052B04D9CF -:1027E000034A5268D20200D4980810BD001000407D -:1027F000FCE100E070B501F0BFF90D4B1B68FC3344 -:10280000DC691D6AFFF7E4FF6419844204D2094BB6 -:1028100001241B68002B07D004220024064B1A70E9 -:10282000064A93690133936101F0F6FB200070BD05 -:102830002C64FF1F9809FF1F2309FF1FFC0FFF1FB8 -:1028400070B50C4D2B68FC335C6A01F095F9FFF70D -:10285000BFFF2B680025FC339B6AE318834204D238 -:10286000054B1B68AB4200D1051B01F0D5FB2800CE -:1028700070BDC0462C64FF1F9809FF1FD722044B70 -:1028800092009B5810B5002B00D0984710BDC04651 -:102890000000FF1F10B501F0D3F8FFF7EFFF274945 -:1028A000274BCA6D274C1A4084235B001343CB652A -:1028B000254B1B68186A01F0D7F9244B244A1A608B -:1028C000244B254A1A60A022244B52001A60244B44 -:1028D000187801F0E1FA2000224901F0BDF9002347 -:1028E000A3600233A360204B2049236003232048C8 -:1028F000A36001F0B1F910221E4BFF201A60802264 -:1029000052031A60802292031A60802212041A6015 -:1029100001F02AFB012001F047FBFA20400001F002 -:10292000DBFA582001F058F9134801F0EDF90120C5 -:1029300001F04AF9072001F08FFB10BD00F00040C4 -:1029400000FEFEFF141000402C64FF1F0000034037 -:102950000180063DBC00034034080000A400034091 -:102960004A0AFF1F71020000C3090000FFFF3F0079 -:102970002810004000E100E030750000674E336829 -:1029800088331B6883F3088801F02EFA644A65498E -:10299000136800200B401360634B644A1B6893422A -:1029A00000D1A6E001F050FB0221614A13688B437D -:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 -:1029C0008BF90023A3600233A3605C4B01202360DA -:1029D00001F04AF90323A36001F0E6F8040001F0D6 -:1029E00033FA050001F0E0F8554B186001F08CFA5D -:1029F000544B1968621A531EA14200D21300802260 -:102A0000D203934201D39B029B0A3268D16AC90761 -:102A100000D471E04C491C0C09689BB24C435943EB -:102A20002402090A641803264849FC3293680A689C -:102A300047489B1A474A0768126847499B18474A04 -:102A40009A1833409208DB190A600360042B03D9FB -:102A5000013233400A6003600E684149A619300014 -:102A600001F0E2FA3F4F3E493B68C3183B6030003B -:102A7000019301F041F93C4E306808183849306044 -:102A8000884205D9019B01333B6001F035F9316083 -:102A900001F0C2F9354B1B78002B0DD001F0D4F9B1 -:102AA000334B621B196812188A4232D24919091B2A -:102AB000091A304801F0D0F82F4E337A002B0ED08F -:102AC00001F0C2F9621BF1681218914224D9491928 -:102AD000091B091A294801F0BFF800233372284B5B -:102AE00083F3088801F050F8002001F0ADFA01F0FE -:102AF000EBF901F0A9FA5CE7DC0199000234641AF1 -:102B00005900641A09214B438033CB40A408E418D0 -:102B100089E7FA218900CCE71A49DBE72C64FF1F1B -:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C -:102B300010000040490AFF1F14100040C3090000A4 -:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 -:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 -:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 -:102B7000E408FF1F00100040740BFF1F3C100040D2 -:102B800000000020DC050000A022054B92009B58AD -:102B900010B5002B01D0984710BD01F04DF8FBE7B0 -:102BA0000000FF1FA122054B92009B5810B5002B7F -:102BB00001D0984710BD01F03FF8FBE70000FF1F70 -:102BC000A222054B92009B5810B5002B01D09847CC -:102BD00010BD01F031F8FBE70000FF1FA322054BF9 -:102BE00092009B5810B5002B01D0984710BD01F002 -:102BF00023F8FBE70000FF1FA422054B92009B581F -:102C000010B5002B01D0984710BD01F015F8FBE777 -:102C10000000FF1F70B501F017F94F4B186001F06D -:102C200003F80400C30702D401F0C6F870BD002207 -:102C30004A4B1A604A4B18780138042829D800F00A -:102C400075FF0320181C2400200001F095F80128CE -:102C5000ECD0444C2378042B6ED101F02DF90028E0 -:102C6000E4D001F069F8582000F0B6FF0223237089 -:102C7000DCE7200000F0E8FFE9E7200001F06CF855 -:102C8000E5E7200001F0E8F8E1E7200000F0F4FFBC -:102C9000DDE701F0B9F90500012808D1324B1B78B6 -:102CA000053B012B03D82000FFF76EFFD1E72D4B2A -:102CB0001B78022B01D0052B20D1022D28D12B4BC4 -:102CC0009B7BAB431CD12000FFF76CFF264B187891 -:102CD0000128BED16405BCD4244925224B7B034284 -:102CE00005D1233A13405A42534126331A000B7D33 -:102CF0009342AED9322001F02FF9AAE7022D07D175 -:102D0000194B1B78052B11D12000FFF759FFDDE788 -:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 -:102D2000062B03D12000FFF767FF92E7200000F099 -:102D300083FF022D8DD1C9E7032B04D10C4B987C66 -:102D400001F09AF872E7072B00D06FE7094B987BE8 -:102D500001F01AF96AE7C0469C09FF1F9809FF1F96 -:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 -:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 -:102D80001A640A4A5A500A4A04395A50094A083100 -:102D90009A64094A5A50094A5C315A50084ADA661C -:102DA0007047C0460000FF1F4527FF1F4128FF1F37 -:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A -:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 -:102DD000FF270122009300233C001E001D009446A3 -:102DE000019089B262469A40100008401841361896 -:102DF000B6B2FF2F02D1012E00D19FB2009802403F -:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 -:102E10000133102BE6D10320012E07D1012D04D15F -:102E2000019B2401E4191C700138FEBD102EFCD159 -:102E30000238102DF9D00230F7E700008023F7B5F3 -:102E40009C46264B264F01932649274A274D284C5E -:102E5000284B02281AD1604638600868264E304058 -:102E6000802636033043086001990978002909D18A -:102E70001660224A2A60224A2260E02219689143A1 -:102E8000A03A1BE08021C9021160F2E766463E606D -:102E90000F68194E3E408027FF023E430E600199A5 -:102EA000097800290DD1176001280ED1154A2A6032 -:102EB000154A2260E02219689143C03A0A431A6019 -:102EC000F7BD802189021160EEE7E0210F4A02433D -:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 -:102EE000E0000340D800034090000340000003408E -:102EF0005000034040000340FFFFE3FF0280063D17 -:102F0000804508220180063D8066082200800698E0 -:102F100080550822F8B51E4B80261A680020140040 -:102F20003440324232D11A681A4F32431A600122B9 -:102F30003B68063093433B6000F096FE0122164D3D -:102F40002B681E432E603B680A2613433B60802794 -:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F -:102F600009D17E220E4B1C682B68E40B144093435E -:102F700023432B6005E0082000F076FEE9E7002EF1 -:102F8000EFD180222B68600893432B60F8BDC046C8 -:102F9000C4F000405CF0004018F0004068F00040D1 -:102FA00060F0004010B501F00FF801215820034AED -:102FB00000F002FEFFF7AEFF10BDC046600AFF1F23 -:102FC00010B578220021034800F0D6FF00F0B4FFCE -:102FD000002010BD3467FF1F70B5040000F0CCFD69 -:102FE00000230C200B4A010059438D18515C002925 -:102FF0000DD0A14208D1012300246B7000F0F4FD34 -:1030000001F00AF8200070BD01330A2BEBD1122425 -:10301000F6E7C0463467FF1F70B5040000F0ACFD52 -:10302000002319001D000D4A1078002806D0A04288 -:103030000CD1557001310C320A29F5D1002B0AD17F -:1030400000F07AFF00F0E8FF002070BD5078461EC7 -:10305000B0411B18EEE700F0C7FDF3E73467FF1F30 -:10306000F7B504000C20002384460E4D01926746FC -:103070005F43E85D7E19A04212D000280BD10A4BB5 -:103080009C4662461B7808331370019B70707C5518 -:103090007160B360FEBD01330A2BE8D10320F9E76C -:1030A0000720F7E73467FF1F3067FF1F8020F8B560 -:1030B000484BC0051B68C1248360474BFF251A6835 -:1030C000012313434361454BA4001A68444B40213C -:1030D0001A60444B1A68444B1A60444B1A59AA436D -:1030E0001A51C52292009E58AE4331438026995012 -:1030F0009F583F49F6010F403E439E509E588027FF -:103100003602360A3043985080201A5900020A408D -:1031100002431A5104341A59364E3F043240802675 -:103120003A431A511A5936061202120A32431A51F8 -:1031300008341A5980260A4002431A51C3229200C9 -:103140009F58B446AF4337439F509F58294E0F4076 -:1031500007439F509F5837408026360437438026C8 -:103160009F509F5836063F023F0A37439F50C02268 -:103170001F59AF433A431A511A591202120A164301 -:10318000C6221E5192009C58AC4365462C439C506D -:103190009C5800250C4020439850C72080001A58A6 -:1031A000154C1140C02212020A431A50134B1B78CF -:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 -:1031C000A368002B00D0984701350C34EEE712209D -:1031D000F2E7C0465843FF1F5443FF1FB0F00040C2 -:1031E0002C67FF1FB4F000402867FF1F00E100E0DC -:1031F000FF00FFFFFFFF00FF3467FF1F3067FF1F67 -:10320000030010B51F2809D8072200201340072407 -:1032100004490A78A24313430B7010BD0023062013 -:10322000F5E7C0463067FF1F054B06491B780A6863 -:1032300005485B0702401B0B134300200B607047DF -:103240003067FF1F1CF00040FFFFC1FF70B50C2569 -:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 -:10326000002C01D1200070BD2B78002B06D06B689C -:10327000002B00D09847013C0C3DF1E71220F2E70B -:103280003067FF1F2867FF1F1FB5002102220B00B8 -:1032900001910091052000F077FD02230B490A6897 -:1032A0001A42FCD120230393039B5A1E0392002B46 -:1032B000FAD1074A1368002BFCDA0B246C44200077 -:1032C000012100F029FD207804B010BD90C8004015 -:1032D00000C8004013B504000A4B0193019B002B6A -:1032E00001D1112016BDFFF7CFFF23000340044298 -:1032F00005D0052000F0B8FC019B013BEDE718006C -:10330000F0E7C046FFFFFF0707B500F035FC80225D -:103310000821D205936A0191002B01D107399162EE -:1033200002210C4A11600199481E01900029FAD12E -:1033300003311160053101910199481E0190002966 -:10334000FAD11160002B02D18022D205936200F0E5 -:1033500063FE07BD00C00040F0B52D4C89B0237856 -:10336000002B4FD1FEF7CEFA02232A4F03903A6882 -:103370001A42FCD120230693069B5A1E0692002B6C -:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB -:10339000011E02D0112009B0F0BD030003220190EC -:1033A000009005AD9F2000F0EFFC0321280000F005 -:1033B000B3FC02233A681A42FCD120230793079BEF -:1033C0005A1E0792002BFAD13368002BFCDA012039 -:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F -:1033E0006B7811041B020B4329780B4363601300B5 -:1033F000113B0A49052B07D801239340A3600B60BA -:10340000012323700020C6E780231B03F6E7C04694 -:103410004043FF1F90C8004000C800409808FF1FAD -:103420001E4B30B55A6818781D4B85B0D3185942D9 -:103430004B4101210093002300F0AEFC194B1A4AC6 -:1034400002259A6300221A6510325A658022C4212F -:103450009D65164B1648D202DA6789004258154B13 -:1034600080241A4080231B041343435064234120CB -:103470000393E40500F006FA402000F003FA6562C9 -:10348000039D6B1E0393002DFAD103236362FFF7A4 -:103490003BFFA562FFF760FF05B030BD4C43FF1F47 -:1034A00095FFFEF700C80040050001FF04E100E0C1 -:1034B00000E100E0FFFF00FFF0B585B00700FEF778 -:1034C00021FA022305002D4C22681A42FCD1202348 -:1034D0000093009B5A1E0092002BFAD1284E3368AD -:1034E000002BFCDA0120FFF7F5FE002803D01124A1 -:1034F000200005B0F0BD234B2360022322681A424E -:10350000FCD120230193019B5A1E0192002BFAD17A -:103510003368002BFCDA0120FFF7DCFE0028E6D13F -:10352000194B1F60022322681A42FCD12023029308 -:10353000029B5A1E0292002BFAD13368002BFCDA50 -:103540000120FFF7C7FE0028D1D1104B23600223D2 -:1035500022681A42FCD120230393039B5A1E039234 -:10356000002BFAD13368002BFCDA0120FFF7B2FE02 -:10357000041EBCD12800FEF7D9F9B9E790C8004075 -:1035800000C8004001000006A8C8004001800001FA -:1035900010B50020FFF790FF10BD000010B5064BDE -:1035A00018705960FFF73CFF00211320034AFFF712 -:1035B00057FD002010BDC0464C43FF1F2134FF1FA4 -:1035C000F0B5040085B003920291FEF79BF98822C2 -:1035D00063035B0B52051A438023DB059D6A80233E -:1035E000274F0092BA68002601901B039A420CD91B -:1035F000F82326001B041E401C4206D08022214BCB -:1036000052025E6219680A431A60002D0BD100F065 -:10361000B3FA02221C4B1A608023DB055A62013A7E -:103620009A6200F0F9FC0023039A934220D1002D06 -:103630000AD100F0A1FA144B03221D608023DB05A0 -:103640005A629D6200F0E8FC8023BA681B039A422C -:1036500008D9002E06D000220A4B0C495A621A687B -:103660000A401A600198FEF761F9002005B0F0BD2C -:10367000009A0299D2181278CA540133D4E7C0468E -:103680004043FF1F00C8004000C00040FFFFFEFF96 -:10369000F0B587B0029103920400FEF733F9019070 -:1036A00000F06AFA802302250122234EDB053560F3 -:1036B0005D629A6200F0B0FC204F3B682B42FCD167 -:1036C00020230493049B5A1E0492002BFAD11C4D14 -:1036D0002B68002BFCDA0120FFF7FCFD002802D04C -:1036E000112007B0F0BD2000039A029900F084FC7D -:1036F000022304003A681A42FCD120230593059B5B -:103700005A1E0592002BFAD12B68002BFCDA0120FF -:10371000FFF7E0FD051EE3D100F02EFA802303221F -:10372000DB0535605A629D6200F076FC0198FEF779 -:10373000FDF8E0B2D5E7C04600C0004090C80040A8 -:1037400000C80040F0B5802489B00600FEF7DAF822 -:10375000E405A36A02250393029000F00DFA012309 -:10376000304F3D606562A36200F056FC2E4C23682A -:103770002B42FCD120230593059B5A1E0592002B5A -:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD -:10379000002803D01124200009B0F0BD244B236081 -:1037A000022322681A42FCD120230693069B5A1E4C -:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 -:1037C00089FD021EE6D11B4B03211E600300019000 -:1037D0000090202000F0D8FA022322681A42FCD17F -:1037E00020230793079B5A1E0792002BFAD12B68C0 -:1037F000002BFCDA0320FFF76DFD041ECAD100F098 -:10380000BBF980230322DB053C605A629C6200F016 -:1038100003FC039B002B01D1FFF776FD0298FEF716 -:1038200085F8B8E700C0004090C8004000C80040DC -:103830000100000694C8004007B50002019104226F -:10384000000A01A9FFF724FF0EBD000073B50500B3 -:1038500005240B4AA3005B429B1819686B46DE1DCA -:103860003000FFF7B3FA022804D133782B55013C1E -:10387000EFD276BD052CFCD00128FAD10230F8E752 -:10388000140900111F2807D8012380228340D20584 -:1038900091680B43936070473F2808D8012380222A -:1038A00020388340D20551690B435361F3E75F2809 -:1038B000F1D80123802240388340D205116A0B439E -:1038C0001362E8E71F2807D8012280218240C9053A -:1038D0008B6893438B6070473F2808D80122802172 -:1038E00020388240C9054B6993434B61F3E75F2859 -:1038F000F1D80122802140388240C9050B6A9343E8 -:103900000B62E8E71F2810D880230200DB05153A78 -:103910001968012A06D820229143196019680A43C0 -:103920001A60704701228240F6E73F2811D88023B1 -:103930000200DB05353AD968032A06D810229143E4 -:10394000D960D9680A43DA60EBE701222038824067 -:10395000F5E75F28E5D842238022181A413B8340CF -:10396000D205516A99435162516A0B435362D8E7B9 -:1039700010B50400012813D1A022184992050B6844 -:103980005B015B0913430B60154B164A1968114024 -:10399000154A0A431A60402219680A431A6010BD8A -:1039A0000028FCD101000A2000F0FEF921000B20C4 -:1039B00000F0FAF9C0220A4B920019680A4340212C -:1039C0001A601A688A431A60B022044912060B680A -:1039D0005B015B0913430B60E1E7C04614F0004054 -:1039E0001CF000407F00FEFF80FD010072B6074A18 -:1039F0001368013313600422054B1A600023054A43 -:103A000013608022D2055360FEE7C0467808FF1F8E -:103A1000C0F00040C4F0004005490B68002B05D100 -:103A2000044A0A6004490A60044A13607047C046A9 -:103A3000140AFF1F841E0000380AFF1FC4F0004054 -:103A40000023034A1360034A1360034A136070475C -:103A500054F0004040F1004044F10040002310B514 -:103A6000184C8AB0009301932378012B27D0694624 -:103A7000012000F069FA002817D1009B1249029337 -:103A8000019B06AA0393114B02A81B680493104BD9 -:103A90001B68059300F0A0F910220E4906A800F05B -:103AA000A3FA002804D1FF23237000200AB010BD20 -:103AB0000123094A074902A8237000F08DF901206B -:103AC000F4E7C0463064FF1F1029001108290011D7 -:103AD0000C290011202900113464FF1F13B50124A3 -:103AE0006946012000F030FA034B00940193FFF780 -:103AF000B5FF200016BDC046BB0B000010B5FFF798 -:103B00009FFFFFF7EBFF002802D0024B984710BD44 -:103B1000FEE7C046E1A2000002B471464908490030 -:103B2000095649008E4402BC7047C04602B4714633 -:103B300049084900095C49008E4402BC7047C046F0 -:103B400003B47146490840004900095A49008E44AF -:103B500003BC70470000000001B40248844601BC69 -:103B6000604700BF53B9000001B40248844601BC5D -:103B7000604700BFCD0C010001B40248844601BC7F -:103B8000604700BF75A9000001B40248844601BC2B -:103B9000604700BF7997000001B40248844601BC29 -:103BA000604700BF0D52010001B40248844601BCC9 -:103BB000604700BF156B010001B40248844601BC98 -:103BC000604700BF0167010001B40248844601BCA0 -:103BD000604700BFE512010001B40248844601BC01 -:103BE000604700BF7912010001B40248844601BC5D -:103BF000604700BF21A9000001B40248844601BC0F -:103C0000604700BF5976010001B40248844601BCF8 -:103C1000604700BF116E000001B40248844601BC39 -:103C2000604700BF71B0000001B40248844601BC87 -:103C3000604700BFBD0B010001B40248844601BCCF -:103C4000604700BFE917010001B40248844601BC87 -:103C5000604700BF0934010001B40248844601BC3A -:103C6000604700BF2D6C010001B40248844601BCCE -:103C7000604700BF0189000001B40248844601BCCE -:103C8000604700BFF935010001B40248844601BC19 -:103C9000604700BFE94C010001B40248844601BC02 -:103CA000604700BFE9D4000001B40248844601BC6B -:103CB000604700BFE5B1001101B40248844601BC71 -:103CC000604700BF19FA000001B40248844601BCF5 -:103CD000604700BFD9B0000001B40248844601BC6F -:103CE000604700BF8914010001B40248844601BC4A -:103CF000604700BF8B52010001B40248844601BCFA -:103D0000604700BF090E000001B40248844601BCB0 -:103D1000604700BF8D11010001B40248844601BC18 -:103D2000604700BF3D71010001B40248844601BCF8 -:103D3000604700BFE927000001B40248844601BC87 -:103D4000604700BF6DF6000001B40248844601BC24 -:103D5000604700BF2144000001B40248844601BC12 -:103D6000604700BF0534010001B40248844601BC2D -:103D7000604700BF8944000001B40248844601BC8A -:103D8000604700BF0134010001B40248844601BC11 -:103D9000604700BF496D010001B40248844601BC80 -:103DA000604700BFC56D010001B40248844601BCF4 -:103DB000604700BF3D9E001101B40248844601BC2B -:103DC000604700BFDD0A010001B40248844601BC1F -:103DD000604700BFF9ED000001B40248844601BC11 -:103DE000604700BFDD3F000001B40248844601BCCB -:103DF000604700BFC9A9000001B40248844601BC65 -:103E0000604700BF8D82000001B40248844601BCB7 -:103E1000604700BFBD5C010001B40248844601BC9C -:103E2000604700BFD544010001B40248844601BC8C -:103E3000604700BFE9F6000001B40248844601BCB7 -:103E4000604700BFE90B010001B40248844601BC91 -:103E5000604700BFC95C010001B40248844601BC50 -:103E6000604700BFF535010001B40248844601BC3B -:103E7000604700BF75F8000001B40248844601BCE9 -:103E8000604700BF4DF9000001B40248844601BC00 -:103E9000604700BFA9D8000001B40248844601BCB5 -:103EA000604700BFEDA5000001B40248844601BC94 -:103EB000604700BF85C1000001B40248844601BCD0 -:103EC000604700BF01D7000001B40248844601BC2E -:103ED000604700BF8552010001B40248844601BC1E -:103EE000604700BF8512010001B40248844601BC4E -:103EF000604700BFD1AE000001B40248844601BC57 -:103F0000604700BF9D6A000001B40248844601BCBE -:103F1000604700BFC166010001B40248844601BC8D -:103F2000604700BF8937010001B40248844601BCE4 -:103F3000604700BFC1A5000001B40248844601BC2F -:103F4000604700BFADAE000001B40248844601BC2A -:103F5000604700BFE1AC000001B40248844601BCE8 -:103F6000604700BF6137010001B40248844601BCCC -:103F7000604700BFED6B010001B40248844601BCFC -:103F8000604700BFB70E000001B40248844601BC80 -:103F9000604700BFC1F7000001B40248844601BC7D -:103FA000604700BF6D0B010001B40248844601BCAC -:103FB000604700BF6911010001B40248844601BC9A -:103FC000604700BFC115010001B40248844601BC2E -:103FD000604700BFED68010001B40248844601BC9F -:103FE000604700BF51B8000001B40248844601BCDC -:103FF000604700BFCD4C010001B40248844601BCBB -:10400000604700BF9573010001B40248844601BCBB -:10401000604700BFDD0C010001B40248844601BCCA -:10402000604700BF9DA9000001B40248844601BC5E -:10403000604700BF090E000001B40248844601BC7D -:10404000604700BFB352010001B40248844601BC7E -:10405000604700BF016C010001B40248844601BC06 -:08406000604700BFF90D0100EB -:10406800020000006ABA00110100000098B80011AF -:104078000200000066BA001101000000A840FF1FFE -:1040880002000000A0B8001101000000B061FF1F8D -:104098000200000064BA0011030000002461FF1F41 -:1040A80012000000020000006ABA001101000000BE -:1040B800E0B800110200000066BA0011010000001B -:1040C800DDB8001102000000EAB80011030000008A -:1040D8005F61FF1F0200000064BA001103000000C6 -:1040E8007461FF1F0200000066BA001101000000A1 -:1040F800DCB8001102000000E8B80011030000005D -:104108003561FF1F0200000064BA001103000000BF -:104118005661FF1F020000006ABA0011010000008A -:1041280024B900110200000066BA00110100000065 -:10413800F141FF1F0200000036B900110100000024 -:104148001BB900110200000066BA0011010000004E -:10415800F041FF1F0200000034B900110100000007 -:104168007C61FF1F0200000066BA00110100000018 -:10417800EF41FF1F0200000032B9001101000000EA -:104188000BB900110200000066BA0011010000001E -:10419800EE41FF1F0200000030B9001101000000CD -:1041A80006B900110200000066BA00110100000003 -:1041B800ED41FF1F020000002EB9001101000000B0 -:1041C80001B900110200000066BA001101000000E8 -:1041D800EC41FF1F020000002CB900110100000093 -:1041E800FCB80011020202020202000000000000F6 -:1041F80016150000054B0011C94A001178B90011C5 -:1042080090011D0018001800FFFF070102030405B4 -:104218000602010600000000000000000000000087 -:104228000000000000000000000000000000000086 -:1042380003000000020000006ABA0011010000003B -:1042480098B900110200000066BA001101000000D0 -:10425800AC42FF1F02000000A2B9001101000000DB -:10426800AA61FF1F0200000064BA001103000000E9 -:104278001464FF1F0200000066BA0011010000006C -:10428800AC42FF1F02000000A0B9001101000000AD -:10429800AC61FF1F0200000064BA001103000000B7 -:1042A8000C64FF1F12000000000100000000011153 -:1042B800FFFF0000504859360000000000000000D1 -:1042C8000B000500F0000000B400002800280028BA -:1042D8003075A000A000A000A00000080008E001C0 -:1042E800F000100010001000100010001000500026 -:1042F8005000500010001000D0070000000000001F -:104308000F0001000500307507001000010081FF53 -:1043180000000000FF000000257000112D6E001144 -:10432800BD6B0011FFFF0100FF000000419A001162 -:10433800BD970011D5960011000000000000000094 -:1043480000000800040000003B0001085902E001D9 -:1043580088212800FF000000020000006ABA00114E -:104368000100000030BB00110200000066BA001115 -:1043780001000000DD43FF1F0200000062BA0011C7 -:1043880001000000EC67FF1F0200000066BA001180 -:1043980001000000DC43FF1F0200000060BA0011AA -:1043A80001000000DA43FF1F0200000066BA001196 -:1043B80001000000D843FF1F020000005EBA001190 -:1043C80001000000D043FF1F180018001D009001D5 -:1043D8000200000302020000020000006ABA001195 -:1043E8000100000044BB00110200000066BA001181 -:1043F800010000002044FF1F020000005CBA001109 -:1044080000000000000000000200000064BA001173 -:0A441800030000000C68FF1F20FFE6 -:040000051FFF184180 -:00000001FF diff --git a/bthome_phy6222/bin/BOOT_TH05D_v14.hex b/bthome_phy6222/bin/BOOT_TH05D_v14.hex deleted file mode 100644 index 5e8cf15..0000000 --- a/bthome_phy6222/bin/BOOT_TH05D_v14.hex +++ /dev/null @@ -1,3072 +0,0 @@ -:020000041100E9 -:10300000002373B52B4D2C4C28006361022601F080 -:1030100071F94021FE2221742800284B009601F00E -:10302000BBF9002836D1217CFF222800244B0096D2 -:1030300001F0B2F900282DD1224BA2899A4226D163 -:10304000E389214A93420DD1204B6361204B2268D2 -:10305000002A03D1002B01D043CB43C4280001F048 -:1030600087F973BD1B4A934201D00023EFE71A4B47 -:103070001A4A1B68934206D9C02304222800217CE7 -:103080009B0001F0FFF9114B6361154BDFE7002353 -:103090002374EAE7CC233821AC2228009B01217459 -:1030A00001F0F0F90028F2D10E4B63610E4BE38181 -:1030B0000E4BCCE7F441FF1FA061FF1FAC61FF1F67 -:1030C000AE61FF1F59590000830500002141001126 -:1030D00060BD001182150000C461FF1F871300004E -:1030E0006CBD0011D9410011AAAAFFFF54BD001107 -:1030F000F7B5164B0192C318021D002000938823D8 -:103100005B05D3181B685C1C1AD09CB2402C18D8E5 -:103110008D781E0CAC466746CD782D023D43AE42FD -:1031200006D1019800280ED110000C70240A4C70B2 -:1031300003249BB20733A343D218009B9A42DED3E9 -:10314000FEBD4432F9E71000FAE7C046FC0F00006C -:10315000802213B503000324019189B25201073183 -:103160009B18A14304305A1A88235B05C3181B68B7 -:10317000591C03D190429241104016BD99B240298A -:1031800007D80B000733A343C0189042ECD30020AC -:10319000F3E74430F9E7134B134A1B68126810B584 -:1031A000FA24934201D81A00F824104BE4021B6859 -:1031B0009A4210D813000E4A12689A420ED3013375 -:1031C00007D1F823DB029C4203D10A49054808F0E5 -:1031D0003BFD200010BDFC24E402ECE7FE24E402E9 -:1031E000F7E7C04600C0071100D0071100E0071143 -:1031F00000F00711FFFFFF7FF0B59BB015000490B2 -:103200000391402A00D9A0E006AB59801A80FFF74D -:10321000C2FF0400042816D9002206A9FFF768FFA0 -:10322000052810D906AB1B88AB420CD1002D07D066 -:10323000514B2A000499C01808F006FC002802D15E -:1032400001201BB0F0BD06AB1D8020000699FFF7E2 -:103250007FFF041E7BD1069B0793FFF79CFF802313 -:103260005B01C618802307001B039E4201D3F8268A -:10327000F60288235B05F31801931B68013302D023 -:10328000019808F0E9FA3D49019808F0DDFC3B1D82 -:103290000293331D05938822029B52059B181B68DD -:1032A00008935A1C3CD044219AB20091402A04D879 -:1032B0000320D11D814389B2009103991B0C8B42DD -:1032C00024D0402A22D80122300008A9FFF710FF9D -:1032D000021E1BD1380008A9FFF70AFF04000428CA -:1032E00031D9009A059B9B1880225201B218934253 -:1032F00040D288235B05C118009A09A808F004FC95 -:103300001D4B009A09A9F01808F07EFC009A029B58 -:103310009446634402931A4B029AFB189A42BAD31A -:1033200088235B05FC1821680198013908F08CFCA2 -:10333000200008F091FA039A07AB5A8030000799F1 -:10334000FFF706FF0400002C03D1002079E70428D2 -:10335000FBD988235B05E018069908F075FC032368 -:10336000EA1C9A4300D16BE7034B0499E01808F07C -:103370004BFC65E70424ECE704000011FFFFFF7F2E -:10338000F80F0000F7B505001400402A21D80027E7 -:1033900001AE71803780FFF7FEFE042816D93A008F -:1033A0003100FFF7A5FE042810D93688BC420BD0A7 -:1033B000BD4209D0221CB44200D9321C064B92B245 -:1033C000C118280008F0A0FB30B2FEBDC04300B217 -:1033D000FBE703204042F8E70400001137B5042260 -:1033E00004000D0001A81649FFF7CCFF02000428D5 -:1033F0000BD1019BA34208D3AB4204D0104901A8D2 -:103400000195FFF7F9FE01203EBD0E4C2368200018 -:10341000019308F021FA019920000139019108F087 -:1034200013FC80235B01E418074B9C42EED104227D -:10343000034901A80195FFF7DFFE0020E4E7C0463D -:103440005555000000C007110000081130B589B0C3 -:1034500008F03AFA10226946254808F06DF9254B24 -:10346000009A9A420ED1019B029A0F2B33D8002169 -:1034700001240698013B08D2002900D00292029B49 -:10348000013331D10023029325E0551CF2D1020013 -:103490002100EFE710341022200004A908F04CF9B5 -:1034A000029B013301D1069B0293882304995B059B -:1034B000C918059B06981A03120B049105928142C4 -:1034C00003D02B4201D108F01FFB019B013B01936C -:1034D000019B002BDED1029B002B03D004930498A8 -:1034E0004168084709B030BDE025014C2D03EFE7E6 -:1034F00000000111504859368022F8B5964C974B80 -:10350000D200002120001C6008F0BEF92300944A7C -:1035100088331A60934B1A786A23002A00D011333B -:10352000E3620A232365904B37221B780820A363AC -:103530008E4B2118E361102323628D4B3B25636181 -:10354000C823DB00A36123008C331A602823013ACF -:10355000E26320646364CA67043A211DCA672100DC -:10356000BC310D602100C03108602100C4310B6006 -:1035700021000635CC310D602100083DC8310D60B9 -:103580002100D0310A602200D43210602200D832EB -:10359000136022000227E032210017604222DC3152 -:1035A0000A6021001B3DE4310D602100E831086014 -:1035B0002100EC310B6023000521F4331960230056 -:1035C000F0331A602300183290331A6023009433CA -:1035D000186023001E3A98331A60AF23DB00236083 -:1035E000644BFA262363644B644DE360644BF03113 -:1035F000A3642300FF31FC33B600A16021611E608B -:10360000A5627325E5656D3D6565A56596255D4AF1 -:10361000AD00E264666258606766A566002709250A -:10362000A767E566584F594D606720002567E26738 -:103630003A6015279C30676007001A203860200028 -:10364000A0300700212038602000A83007004C4837 -:1036500038602000F830066026006427A436376002 -:1036600026005F3FAC3637602600033FB036376038 -:103670002600C637B436376026000027B8363760D4 -:1036800038269E60424E96205E64424E5A66DE6147 -:10369000414E9A645E62F53EFF3E9E621E269A6728 -:1036A000354A8000DE661F675F67DD651D6618624C -:1036B000DA67BE23394A5B00E250394BD8382350D1 -:1036C00004302250C4225200A350C623E4205B00E1 -:1036D000E1500433334AE1503349344BD16034492B -:1036E000800019503349E938FF3819503249043005 -:1036F000195032493248D16132491163324951631C -:103700001900F4310860CE20304940001160304982 -:10371000195019002F48F83108602F49D1658221CE -:103720002E4A89005A501A002D490832D1671A00D2 -:103730002C49B432116088212B4A89005A501A0052 -:103740002A49883211602A4ADA6408F0F5F8012023 -:1037500007F09AFFF8BDC0460004FF1F4464FF1F36 -:10376000206FFF1F3444FF1F4A0AFF1F3A07000063 -:1037700080C3C9019A020000DC0500006A1800003D -:1037800050C3000088130000F009FF1F204E000006 -:103790006509FF1F68100000C409000040420F00C7 -:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 -:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 -:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 -:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 -:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 -:1037F000851DFF1FF0B502250124604B91B01D709F -:1038000002935F4B5F4E1C705F4F03933368002140 -:103810002800FB7006F00EFE280006F005FD0023D0 -:10382000984205D0FA78552A02D0332A00D098E081 -:103830003360042006F066FF07F0FEFFFFF75CFE32 -:1038400007F04AFF1F2201240021504B10AD1A70CF -:103850004F4B1C704F4B19704F4B19689143163AE0 -:103860000A431A60602219689143403A0A431A6079 -:1038700007F0E2FE07F018FFC120FF21474B800050 -:103880001A588A431A50C522920098588843BF3963 -:10389000014399509858424908408021C901014389 -:1038A000802099509958C0050902090A014399508E -:1038B00080213C48490108F08FF8032322003A494F -:1038C00001940093394808F007F92C22384905A8DB -:1038D00008F01AF905AC61782078023406F0C4FCCF -:1038E000A542F8D1334C344B226803201A40A02360 -:1038F000DB0213432360802322689B04134323606D -:1039000022682E4B1A4080239B03134323602C4ACA -:103910002C4B934200D8012007F026FF08F09CF8BA -:1039200080232268DB0413432360029B187808F08D -:1039300023F9039B1878C0B208F046F808F0F4F8B1 -:103940002149042008F030F806F0A8FE00F0ACF899 -:1039500000F0EEFD00F096FE00F010FA002011B02D -:10396000F0BD00932100184A042007F0DDFF8023FA -:10397000DB059C62FFF76AFD5BE7C0464A0AFF1F52 -:103980003444FF1F34F00040D061FF1F480AFF1F7E -:10399000490AFF1F680AFF1FBCF0004000E100E079 -:1039A000FF00FFFF3844FF1FBC56FF1F3854FF1FA6 -:1039B00078BC001114F00040FF7FF8FFFFFF9FFF6D -:1039C0000080FF1F206FFF1F3B00010870B500251E -:1039D0002549264A26484D6308CA1B051B0DED18CC -:1039E0008242F9D100268022224B92058B63092165 -:1039F000214B224C1E62224B1120DA67214BDA68E0 -:103A00008A43DA609A6820490A409A60266008F082 -:103A100013F9112007F030FF636C1C4A13406364F4 -:103A20001B4C1C4A6C43200C0400642390420AD8AF -:103A3000FA223300D200904205D9174B0A21C01850 -:103A400007F0BAFEC3B2154A11201372D48007F0F2 -:103A500023FF134B1B78002B04D1124B1021187835 -:103A600008F002F870BDC046000005408807054018 -:103A700000080540FF01000000F000400038004051 -:103A800004E100E03CF00040FFDFFFFFFFFDFFFF2F -:103A9000AE060000B70B000030F8FFFFB861FF1F53 -:103AA000F263FF1FF061FF1F002210B5110011200B -:103AB00007F0B2FE10BD0000F8B500230925374F0E -:103AC000374C3B62E3681120AB43E36007F0D4FE60 -:103AD000112008F0B1F8112007F0CEFD4023226834 -:103AE00080261343236080236268DB0213436360F4 -:103AF000A3682C4A3343A360A36828001340A36043 -:103B00008023A2689B0113431022A360236C02212F -:103B100093432364236C0F3A1343236480235B0194 -:103B20003B62226B204B1A402263626B1A40626335 -:103B3000A26B1A40A263E26B1340E363E3681B4A83 -:103B40001340E36006F090FB2800012106F0A0FC82 -:103B50008023174A9B00516C11200B43536407F0DC -:103B600013FEFD21134B144A89005A508023C720AD -:103B7000E26B5B031343E363E36880001D430F4B79 -:103B8000E56019580E4A1140802212020A431A5069 -:103B9000802292051A600B4B5E63F8BD00F0004076 -:103BA0003CF00040FFFFDFFFEFFFEFFFFFFF7FFF75 -:103BB000003800400000FF1FCD39001100E100E097 -:103BC000FF00FFFF0000054030B503A804880B206C -:103BD000002C0ED14968074D087849780902014345 -:103BE0000A20A94205D1012120001980024B1B7A2D -:103BF000137030BD192A0000B861FF1FF7B515001A -:103C000008AA16884A680F4F147852781202224385 -:103C10000A24BA4214D10122DBB2019200962A0092 -:103C200007F08CFC041E0BD1074B1B68002B07D040 -:103C300068782A7800021043424250410130984788 -:103C40002000FEBD022900003C61FF1F30B50125A8 -:103C500003790400BFB02B4211D00A49408806F016 -:103C6000D9FF28420BD0084B01A95B8D4D800B80FA -:103C7000064B00221B7A60880B7104F0BDF83FB040 -:103C800030BDC0463461FF1F6840FF1FB861FF1F91 -:103C900010B50549054806F073FF0421044A05489C -:103CA00006F030FF10BDC0463461FF1FFFFF00006B -:103CB000A4BC00116840FF1F10B5024804F01EFFAD -:103CC00010BDC0464D3C0011062310B58370103363 -:103CD0000371443B43712A3383714433C37100231E -:103CE0000222012103720E4B027041701C88817206 -:103CF0004472197A0273C1729A784273DA788273C5 -:103D00000322C2731A7902745A7942740C228274A3 -:103D10009A79C274DB7903751123C370152010BD25 -:103D2000B861FF1F10B5142007F026FE124B1422B5 -:103D30000021186007F0A8FD002007F00DFE01200B -:103D400007F002FE022007F0D7FD032004F07AF905 -:103D5000042006F08FF9052003F0B8FB062004F0DC -:103D600085F8072001F04EFA082006F0ABFE092086 -:103D700001F036F810BDC0464061FF1F07F03CFE61 -:103D8000012007F031FD07F09FFE0000094B10B540 -:103D90000400984205D0012904D12000064906F00C -:103DA000EFFE10BD0229FCD1013904F065FE0028A8 -:103DB000F3D0F6E7FEFF00006661FF1F70B50D7AD5 -:103DC000100004AA2C00168810221440154220D19D -:103DD000002E20D10A78022A18D14A685178157825 -:103DE0000E4A09022943914205D00D4A914209D059 -:103DF0001C800A2404E014220A491A8007F084FE79 -:103E0000200070BD0C2208491A80F7E71C800124AD -:103E1000F6E70824F4E70B24F2E7C046F3FF0000BE -:103E2000F4FF0000C042FF1F84BD001110B5040064 -:103E30000749084806F0A4FE074804F09FFD00204B -:103E4000E40704D50721054A054806F05BFE10BDCE -:103E50006661FF1FFFFF00008D3D0011E8BC0011EF -:103E6000AC40FF1F00B50C4BBFB01A780B4902A83D -:103E700000F0C2FC6B4680B2D880002809D06A46A8 -:103E8000074B01A91B889380064B0022188803F07A -:103E9000B3FF3FB000BDC0464461FF1F4561FF1F37 -:103EA0000641FF1F1042FF1F00B50C4BBFB01A7830 -:103EB0000B4902A801F0E6FE6B4680B2D8800028CC -:103EC00009D06A46074B01A95B8D9380064B0022FF -:103ED000188803F091FF3FB000BDC0466E61FF1F20 -:103EE0006F61FF1FAC40FF1F1042FF1FF7B50E00B0 -:103EF000377A1C0008AB11003D001A8820231D40B2 -:103F00001F423CD13378022B3BD173681F785B781A -:103F10001B023B431E4FBB4208D01E4FBB4214D076 -:103F20001D4DAB4221D00A252800FEBD002A2AD112 -:103F3000142C2AD82200F06807F0E6FD174B1C70FD -:103F4000012CF1D9FFF7B0FFEEE7002A1BD1202C9E -:103F50001BD82200F06807F0D7FD114B04211C701C -:103F6000104B187807F080FDDEE7E3B201240092E1 -:103F700001940A00310007F0E1FA0500D4E70825B2 -:103F8000D2E70125D0E70B25CEE70D25CCE7C046CB -:103F9000F3FF0000F4FF0000022900006E61FF1F24 -:103FA0004461FF1FF061FF1F332310B5040003704D -:103FB0000A220749013007F0A7FD064B0F201B68B6 -:103FC0001A0AE37222731A0C1B0E6273A37310BDDC -:103FD000B861FF1FE061FF1F30B5012503790400C0 -:103FE000BFB02B4213D00B49408806F013FE284285 -:103FF0000DD06A46084B02A81B889380FFF7D4FFB8 -:104000006B46D8800022608801A903F0F5FE3FB01E -:1040100030BDC0466661FF1F0641FF1F10B5024854 -:1040200004F06CFD10BDC046D93F001170B51600FC -:1040300004AA148805AA15784A68507811780002F5 -:104040002A4A0843801805284BD807F0F5FC0313CB -:104050001E29343F0720042C0BD80522121BAA422C -:1040600000D92A0022491A803000091907F04CFDB6 -:10407000002070BD0720112CFBD81222121BAA426F -:1040800000D92A001B491A80EEE707200E2CF0D831 -:104090000F22121BAA4200D92A0017491A80E3E70F -:1040A0000720032CE5D80422121BAA4200D92A00BB -:1040B00012491A80D8E70720032CDAD80422121BF1 -:1040C000AA4200D92A000E491A80CDE70720032C06 -:1040D000CFD80422121BAA4200D92A0009491A800B -:1040E000C2E700220A201A80C3E7C046DCD5FFFFE2 -:1040F00033BD00118C61FF1F23BD00111EBD0011D7 -:1041000019BD001114BD001110B50D21024A03485C -:1041100006F0F8FC10BDC04608BD00111C41FF1F91 -:10412000F0B50024274E85B03000B47100F0E2F8FD -:10413000254D264BEA89297C9A422FD10423300051 -:1041400003AA00F057F90400300000F011F9012330 -:10415000B371002C34D16B4699892B68C9BA4B4393 -:1041600029891B4A1B145B1853806B46D9896B68DD -:1041700049BA89B24B4369891B0C5B181548191C55 -:104180001BB2834200DD011C0B0400D50021138803 -:10419000918001331380200005B0F0BD022722007A -:1041A00003AB3000009700F0F7F80E230400297CE1 -:1041B0000122300000976B4400F0EEF80443C3E79F -:1041C0001C00E8E7F441FF1FA061FF1F830500000A -:1041D000B861FF1F0F27000073B5234E300000F0B9 -:1041E00089F8224D07236A463000297C00F002F945 -:1041F00004003000002C33D16B461B787F2B2FD866 -:1042000000F0B6F86B46D878F02302041B031A407E -:104210006B469B8816495BBA9BB21A432B68000910 -:1042200053432A891B0C9B184B806B465A789B780A -:1042300012031B011A436B68024353436A891B0C28 -:104240009B180C481A1C1BB2834200DD021C13048D -:1042500000D500220B888A8001330B80200076BDB8 -:1042600000F086F80124F9E7F441FF1FA061FF1F69 -:10427000B861FF1F0F27000070B5114C237C002B85 -:104280000FD0382B0ED10F4D280000F033F8CC237F -:10429000AC222800217C9B0100F0F4F8280000F0FB -:1042A00067F870BD084BE2899A42FAD1054D2800A3 -:1042B00000F020F800222800217C00F0C5F8EDE78E -:1042C000A061FF1FF441FF1F8305000010B5084BDC -:1042D0001A7C002A09D05B69002B06D09847041E7F -:1042E00001D0FEF78DFE200010BD0124F9E7C04685 -:1042F000A061FF1F70B5C17905000C00631E9C41D1 -:104300001A4BE402E41849000460C9B2007906F0CF -:10431000F5F8E979687949000131C9B206F0EEF89B -:10432000E8790930C0B207F0A7F90023E3666133EA -:104330002360AA795B3B002A0ED022689A43023B95 -:10434000134323600A23E3610733236200232363BB -:10435000A3630133E36370BD22689A4302231343CE -:104360002360462363610633A361EFE700500040FA -:1043700070B5002504000368DD66C0790930C0B25D -:1043800007F07AFA2900207906F054F829006079BC -:1043900006F050F870BD0000F8B51E0006AB1D78A1 -:1043A000002304681700E366616007F08DFA0123BB -:1043B0008022E3662B0027615200013B08D207F000 -:1043C000BBFB08200A4A1168002D03D12800F8BD64 -:1043D0002261F2E7236F034203D02369013D33706A -:1043E000013613685B1A032BEED90125EEE7C046B0 -:1043F0006008FF1F70B51C00002305681600EB66FF -:10440000696007F061FA01238022EB662300520005 -:10441000013B08D207F090FB08200A4A1168002CE3 -:1044200003D1200070BD2A61F2E72B6F034203D055 -:104430002B69013C3370013613685B1A032BEED9EC -:104440000124EEE76008FF1F002370B50468150023 -:10445000E366616007F038FA0123E366256107F03F -:104460006BFB8020064A80001168636B034205D114 -:1044700013685B1A032BF8D9012070BD0020FCE7FC -:104480006008FF1F70B51D00002304681600E36676 -:10449000616007F019FA0123E36626610F33626B4E -:1044A0001A42FCD02B0A23611023626B1A42FCD003 -:1044B000EDB2256107F040FB8020074A80001168BB -:1044C000636B034205D113685B1A032BF8D90120F3 -:1044D00070BD0020FCE7C0466008FF1F70B51E00DD -:1044E000002305681400EB66696007F0EDF901230D -:1044F000A619EB660F33B4420ED107F01DFB8020E6 -:104500000A4A800011686B6B03420CD113685B1A76 -:10451000032BF8D9012070BD21782961696B1942FC -:10452000FCD00134E7E70020F5E7C0466008FF1F34 -:1045300010B5084CE368002B08D18022064B5202CC -:104540001B689B186360054B1B68236007F01CFB0E -:10455000A06010BDE061FF1FC8F00040CCF000403B -:1045600070B5184A936A916A9942FBD116498A68D4 -:104570009A421FD39A1A8B60144B0126186893B283 -:10458000D202D20E4343424300204C681B0A1B193F -:1045900012029B180E4C0A684B60551CA3420CD8A3 -:1045A000002801D04B600A600A4A136008680A4B71 -:1045B000186070BD581E821ADDE7084A30009B184B -:1045C0002A00EAE700F00040E061FF1F140AFF1F25 -:1045D00040420F00C8F00040CCF00040C0BDF0FFEA -:1045E00070B51F4C23793F2B01D93F2323711D4BFD -:1045F00022791A701878C0B207F0EEFA18231A4917 -:104600001A4A0B801A4913800B805380A3791949E9 -:1046100080200B800C21938001334B43164D191CD5 -:104620000001834200D9011C2980D1806379002BCD -:1046300011D101336371237A012B01D80223237234 -:104640006279237A0D4853430A21584307F0B4F89E -:104650000B4D286070BDA02BEDD9A023EAE7C04622 -:10466000D461FF1F480AFF1F0E42FF1FE043FF1FD8 -:104670000C42FF1F0A42FF1F0842FF1F7102000089 -:10468000C461FF1FF8B514210020FEF7A7FE114CEE -:10469000011E114D09D10C22104BC1CBC1C4280001 -:1046A00007F0F2F8FFF79CFFF8BD0C2220000C4940 -:1046B000FEF768FE0C2802D0084B43CB43C40C2203 -:1046C00028000849FEF75EFE0C28EBD00C220021E2 -:1046D000E5E7C046D461FF1FA061FF1F78BD001150 -:1046E000FC0C0000F50C0000F0B51D4C8022A54428 -:1046F0000400882069465201400507F08DFA902297 -:1047000012016A441300200032C832C316C816C30F -:104710008023144C144FA6689B033343A3603B6073 -:1047200007F0FAF88823A0685B05C01807F094F832 -:104730000025882329008022A0685B05C018401945 -:104740006944520007F060FA80230135FF355B01B0 -:104750009D42EED1A6603E60044B9D44F0BDC04634 -:10476000FCEFFFFF5043FF1F9808FF1F04100000DD -:10477000F0B5040087B0002825D0684607F024F87B -:104780001B4C022806D106226946200007F05CF97E -:10479000002816D06946002301250F262F00E25C71 -:1047A000013310091030874038002F003240974005 -:1047B0003A0002434A610439062BEFD16846FFF7FD -:1047C00093FF07B0F0BD182269460A4807F024FAA3 -:1047D0006A46A300D358013305D01822FF2168464A -:1047E00007F052F8EAE70134062CF1D1E9E7C046B8 -:1047F0006509FF1F00090011F0B5002504000E0037 -:1048000085B0AA4200D186E04B1C087801934B7812 -:104810008978377909021943F3783F061B040B4363 -:104820001F43039720706570252800D196E033D888 -:10483000112813D807F088F96900280128012801F8 -:104840002801AA00B800B100280128012801280188 -:10485000280128012801280102012201232800D172 -:10486000DBE0DB2800D031E1042A00D8ACE01025E1 -:10487000052A05D0551F2A003800711D07F044F99C -:1048800005223100200007F03FF92A003900601DA1 -:1048900007F03AF905353EE0562859D010D83328AC -:1048A00000D19DE0552839D02628DAD19D4B29002A -:1048B000132218001D0006F0E7FFFEF7A1FB5CE0E5 -:1048C000712800D177E0722800D180E0602800D103 -:1048D0008BE0DC28C5D1022A00D875E07378BFB21E -:1048E0006370B378A370032A05D0033A390092B2FB -:1048F000F01CFEF781FC10223900E01CFEF742FD9F -:10490000C51C002807DA60705CE00C222000864994 -:1049100007F0FAF80C25280005B0F0BD013A834DE8 -:104920000C2A13D8002A0AD02800019907F0ECF8C5 -:10493000FFF756FE0C2228007D49FEF75DFC29009A -:104940000C22601C07F0E0F80D25E4E70C22EBE7F1 -:10495000764D784B2A0043CB43C2E9E7013A714DCB -:104960000C2A11D8002A08D00199280007F0CCF8A9 -:104970000C2228007049FEF73FFC29001322601C1E -:1049800007F0C2F81425C6E70C22EDE705226B49B3 -:10499000601C07F0B9F80625BDE712226849601CC3 -:1049A00007F0B2F81325B6E708226649601C07F045 -:1049B000ABF80925AFE77178F02905D8624B188864 -:1049C00001F0BCFD0225A6E7FF236370FAE75F4B09 -:1049D000012A03D072789A706270F3E79B78F4E74B -:1049E0002000FFF7E1FA050095E7013A574B584DD3 -:1049F000082A0DD8002A0DD00121280059700199EC -:104A000007F082F801F072F808222900601CCEE756 -:104A10000822F1E700225A70F6E7042A04D94D4D26 -:104A20002F6007F0B1F8A860FFF79AFD0422039009 -:104A300003A9601C07F068F805256CE7464D062AB7 -:104A400015D906222800019906F0FEFF00280ED095 -:104A500006220199280007F057F806223F4928004E -:104A6000FEF7CAFB0123394A91780B439370290062 -:104A70000622601C07F048F807254CE7012AA3D05E -:104A80007078FFF775FE9DE7012800D0E9E6931ED8 -:104A9000334F1A2B04D87378002B09D100F014F986 -:104AA000304B39001D78601C6A1E07F02DF832E784 -:104AB000551E2A000199380007F026F82A49AAB2A3 -:104AC0003800FEF799FB00F035F9E9E7DA281DD147 -:104AD000042A00D878E7082A15D9B37972791B021D -:104AE0001343F27912041A43337A1B0613433B60D3 -:104AF0003B68052231002000039307F005F80422EB -:104B0000601D03A953E7FE236370F1E7DE2800D0A0 -:104B10005AE7511E012A01D10025FCE6019800F058 -:104B2000CBFFF9E7A061FF1F84BD0011D461FF1F17 -:104B3000FC0C000078BD0011F50C0000AC61FF1FFB -:104B40008C61FF1F5443FF1F1042FF1FD061FF1FE6 -:104B5000AD42FF1FE061FF1F6509FF1FADAC000004 -:104B6000D163FF1FCF63FF1FAEDE000070477047A9 -:104B7000020010B5094B0A32094C92B2DA815A820E -:104B800098811882207802F03FFB0422054B012116 -:104B900020781A7006F068FF10BDC046DE42FF1F85 -:104BA0001A64FF1F1964FF1F013870B5042809D863 -:104BB00006F042FF030928081200234B022118784F -:104BC00006F052FF70BD204B0821187806F0C4FF94 -:104BD00000221E4B1A72F5E7802200241B4B1A4D4F -:104BE00052001A8108211A682878DC7206F00CFE3F -:104BF0002100287806F0E0FF012000F063FE00F0BD -:104C000075FFDFE7104B0821187806F0A5FF104864 -:104C1000FFF75AF80F4B104A9B79002093800F4AF8 -:104C200013808022094B5200D8721A8100F04AFE8C -:104C300000F05CFF0A4B9B78002BC3D0094A13603D -:104C400006F0DAFFBEE7C046F061FF1FC461FF1F38 -:104C50001942FF1FD461FF1FE043FF1F0A42FF1FDD -:104C6000D061FF1F34F0004010B501290BD102289C -:104C700009D1054B1B78002B05D02622034B044895 -:104C80005A72FFF775FF10BDF263FF1FC461FF1F6B -:104C9000C40900000300F0B50A4D8E18B14202D1DC -:104CA00052008018F0BD0C782F6824093C5D0F2756 -:104CB0001C700C7801313C402F683C5D5C70023305 -:104CC000ECE7C0460442FF1F0E22114B10B51A70CC -:104CD0000D23104C10492370093A043B0F486370B0 -:104CE00006F012FF2D2301220D490E48E371FFF754 -:104CF000D1FF01220C49FFF7CDFF01220B49FFF73D -:104D0000C9FF00220A491000FEF776FA10BDC0461E -:104D1000EE63FF1FCF63FF1F33BD0011D163FF1F81 -:104D20006709FF1FD763FF1F6609FF1F6509FF1F84 -:104D3000AEDE000070B5124C132220001149FEF7C0 -:104D400021FB114D002817DDAB78002B14D0431C3C -:104D50002B7009236B700023001903702878290039 -:104D60000130C0B206F060FF297822000139C9B2D3 -:104D7000002005F0E5FD70BDFFF7A6FFEEE7C04699 -:104D8000D163FF1FAEDE0000CF63FF1F10B5114BD4 -:104D90001A781870002A0ED000280BD10E4B1A7802 -:104DA000062A07D85423D340DB0703D50B4B1878CA -:104DB00002F02AFA10BD0028FCD0074B1B78012B0B -:104DC00002D0033B022BF5D8044B0121187806F0E2 -:104DD0004BFEEFE7F263FF1F1964FF1F1A64FF1F0A -:104DE00070B54A4E4A4A4B493070022005F034FCF7 -:104DF00000F0E4FEFEF704F906F086FD03224649C2 -:104E00004648FFF747FF2D24030004221C70444945 -:104E10000130FFF73FFF30230470424D424C437096 -:104E200083702E3B062220004049EB87FEF7AAFA4A -:104E3000062813D0200006F0C7FC022809D0032161 -:104E4000200006F031FD8D23E3706E3B2371193392 -:104E50006371062220003549FEF7CEF9344B1B68FA -:104E6000FC335C64FFF766FF0020FFF78FFF314CD7 -:104E7000314A0121314B1278207802F087F9304A0B -:104E8000304B12780021207802F080F901222E4B5D -:104E90001A702E4BDB78552B31D12D4B3B325A7289 -:104EA0002C4B2D4AAB81EA812B826A8220213078FB -:104EB00006F05AFE0120404205F08EFD01204042DE -:104EC00005F02AFEFFF720F9FEF7E2FE00F0A4FC51 -:104ED00001204042FEF7AAFF012006F035FCF02039 -:104EE00001F010FB0121307806F0BEFD307802F0B1 -:104EF000E7FA1A4806F068FEFEF7DEFD70BD642290 -:104F0000174B5B7953431A000A32CBE7F061FF1F5E -:104F10006D4B0011694C00115443FF1F8C61FF1F42 -:104F2000AC61FF1FDE42FF1F6509FF1FADAC000033 -:104F30004464FF1F1A64FF1F3842FF1F1942FF1FFE -:104F4000EE63FF1FCF63FF1FC063FF1FD061FF1F12 -:104F5000C461FF1FC4090000CE090000F261FF1FF9 -:104F6000D461FF1FF8B50A0020230D001A40194232 -:104F700057D0574B1B78002B50D0FFF7F1FA554B09 -:104F8000554C564E99686268737A8A1ADB039A42C6 -:104F900002D36160FEF790FD327A217A531EDBB2B4 -:104FA000994205D1FFF768F9002000F0D9FD0FE024 -:104FB0009142F9D300232372FFF788F9012000F012 -:104FC000CFFD474F3800FEF77FFE390006F04CFE5C -:104FD000637A002B1FD0013BDBB26372002B1AD126 -:104FE000404BDB78552B01D106F006FEE37A002B0F -:104FF0000CD000233C4A3A4FE37213883800013347 -:105000001380FEF761FE390006F02EFE64237079EE -:105010005843FFF7ADFD237A013323722020684007 -:10502000F8BD0BB2002B0ADA304B187806F0A4FB5F -:10503000002801D006F0F8FC80200002EFE70224EF -:10504000214206D0244B01201A72FFF79FFE200058 -:10505000E5E70B071ED5FFF783FA1E4B1E491F4CD1 -:1050600098684A68637A821ADB039A4202D34860DE -:10507000FEF722FDFFF72AF9FFF7FEF8012000F006 -:105080006FFD00F0E3FB2368DB0701D5FEF7C6FFE9 -:105090000820C4E71024214206D00D4B1B78002BBA -:1050A000D5D1FEF709FED2E70124214207D01048EE -:1050B00000F06CF806F0C8FA00F034FDC7E70424ED -:1050C000080020402142ABD0FEF7CCFEBFE7C0462F -:1050D000F263FF1FE061FF1FC461FF1FD461FF1F68 -:1050E0001942FF1FD061FF1FB861FF1FF061FF1F52 -:1050F000FC41FF1FF0B51B4B1B4F1B883A88040077 -:105100001A4E1B4D85B09A420DD832889A420AD366 -:10511000184B1A882B889A4205D1174A174B1288C8 -:105120001B889A421BD0052001F042FA3B8802AA54 -:1051300013803388019053802B88114D93800F4B3F -:1051400002A91B88D3800F4B2A78188802F05EFFD3 -:105150000D4B08212878019A1C7006F045FD05B01A -:10516000F0BDC046BE63FF1F0E42FF1F0C42FF1F73 -:105170000A42FF1FBC63FF1FBA63FF1F0842FF1FE5 -:105180001A64FF1F1042FF1FB863FF1F13B50C4BBB -:105190001C78002C11D1002801D00A4B18600A4A53 -:1051A0000A4B11780A4A10780A4A01920A4A009278 -:1051B000002205F0BDFA200016BD1124FBE7C04611 -:1051C0001964FF1FB463FF1F1864FF1F0864FF1FEB -:1051D0001A64FF1FF463FF1FF863FF1F10B5064B2F -:1051E00012201B78052B06D1044B13221988044B7F -:1051F000187801F0B9FB10BD1964FF1F1042FF1FA2 -:105200001A64FF1F10B500240122114B524218707E -:10521000104B1C70104B1A8002F052F904220F4BF5 -:1052200021001A700E480C3206F0FEFA10222100FE -:105230000C4806F0F9FA07220B4B1C600B4B1C7054 -:105240000B4B1C700B4B1A700B4B1C7010BDC046E7 -:105250001A64FF1F1964FF1F1042FF1F1864FF1F0D -:105260000864FF1FF863FF1FF463FF1FCE63FF1F77 -:10527000CD63FF1F1242FF1FCC63FF1FF8B5174C11 -:105280000600257806A814240078052D23D1B41F24 -:10529000134FA5B21824BD421DD88D1FADB2BD421B -:1052A00019D8FA256D00AA4215D21D000D4F0A3DEE -:1052B000ADB2BD420FD80C4C26800C4C21800C495D -:1052C00000240A800B4A1380FFF714FF0A4B0421C5 -:1052D000187806F041FC2000F8BDC0461964FF1F95 -:1052E000790C0000750C00000E42FF1F0C42FF1FDE -:1052F0000A42FF1F0842FF1F1A64FF1FF0B50BB2DE -:105300000D0089B0002B00DB70E1A44E307806F070 -:1053100033FA041E50D00378A22B00D122E1D02B07 -:105320001AD0912B45D143780E2B42D19C4B8288C9 -:105330009A423ED19B4A83681278052A39D10320CC -:1053400018567F2835D0984B1B68002B31D05B68EE -:10535000002B2ED098472CE08078072829D806F01B -:105360006BFB0428183F3F74A8D86378002B0CD13E -:1053700001218C4B19708D4B1A78002A5BD08C4B15 -:10538000307801F003FF002855D00722854B1A70B2 -:1053900051E061780029F8D1E378002B11D0854ADB -:1053A000854B1278307801F0F1FE60706378002B45 -:1053B000EBD1200006F038FB80200002684009B0E5 -:1053C000F0BD784B1B78022BF3D00121307806F02A -:1053D000E3F90028EAD10121307806F045FBE5E742 -:1053E0006378002BD1D16F4F032807D13B78052B71 -:1053F00002D101333B701EE00223FBE76F4B1A889A -:105400006F4B0293002A0BD01B78002B03D0012195 -:10541000307806F0E9FB3B78062B04D1013BE9E745 -:10542000029B1A70F7E7042B41D10121029B3078CF -:10543000197006F019FB5C4B1B68002BB9D01B6878 -:10544000002BB6D0574A107884E76378554F002B6D -:1054500027D10622211D5B4806F056FB62895A4B74 -:105460005A491A80A2895A4B1A80E3890B80052178 -:10547000397058490A80584A1380228A574B1A803B -:10548000574B1B78012B09D11F2001F091F8FA220C -:10549000920042430421307806F0A6FB0022484BDC -:1054A00075E7312B00D070E70022454B1A700323BB -:1054B000A0E706220021434806F0B6F90023454A3A -:1054C00004211380444A30781380444A138006F044 -:1054D00043FB0821307806F03FFBA379083B5A4292 -:1054E0005341304A03331370304B1B78002B06D0E6 -:1054F000334B30781A78002A06D001F085FE01225D -:10550000314B52421A8096E70121197006F0ACFA2D -:10551000F5E70821307806F01FFB6378002B00D0F8 -:1055200047E72C4B2D4F0293E388029A0421138006 -:10553000294B307803932389039A138063893B8036 -:1055400006F02AF9002800D033E7264B1B68002B11 -:1055500000D12EE7039902983A88098800881B68D1 -:10556000984726E74379132B00D022E70389012BC4 -:105570000AD11D4B1B78022B06D10821307806F08A -:10558000EBFAFFF72BFE14E7052001F011F80821D4 -:105590000200307806F028FB0BE7C0461A64FF1FB4 -:1055A000051400001964FF1FB463FF1F3842FF1F7A -:1055B0001942FF1FEE63FF1FCF63FF1FF063FF1F42 -:1055C000F263FF1FC163FF1F1042FF1FC863FF1F6D -:1055D000CA63FF1FBE63FF1FBC63FF1FBA63FF1FC9 -:1055E000C063FF1FB063FF1FB863FF1F8020C001AF -:1055F000014200D0E2E6CB0731D5324B1B78002BBD -:105600001DD0314E05AC3378052B1AD1023B2370E7 -:105610002E4B21001B7823722D4B1B7863722D4B70 -:10562000187801F057FD002809D007202A4B307068 -:105630001B68002B03D01B68002B00D0984701206B -:10564000BCE60E20254B06221B7825492370254BEE -:105650001B78637002ABC01806F056FAD8E7022335 -:1056600008001840194209D0174B1B78052B03D1AD -:105670001D4B188806F030F902209FE604242142D1 -:1056800003D0FFF737FD200098E6082308001840F4 -:10569000194200D193E6154B1C78012C03D0022C43 -:1056A0000DD008208AE6124B124A134913481B8872 -:1056B0001288098800880094FFF7E0FDF1E7FFF702 -:1056C0008DFDEEE7F263FF1F1964FF1F1242FF1FFB -:1056D000CC63FF1F1A64FF1FB463FF1FCE63FF1F5D -:1056E0001342FF1FCD63FF1F1042FF1FB863FF1F50 -:1056F0000842FF1F0A42FF1F0C42FF1F0E42FF1FFE -:1057000010B502A804880B20002C10D14968087835 -:105710004978090201430C48814209D102211980CC -:105720000A4B59881170DB7800205BB2537010BDB2 -:10573000074C0A20A142FAD102211980034B998813 -:1057400011705B79F0E7C0466E2A0000B861FF1F58 -:105750006F2A0000F7B5150008AA16884A680F4F8F -:1057600014785278120222430A24BA4214D1012238 -:10577000DBB2019200962A0005F0E0FE041E0BD178 -:10578000074B1B68002B07D068782A78000210436B -:1057900042425041013098472000FEBD02290000DE -:1057A0002C64FF1F30B5012503790400BFB02B42E4 -:1057B00025D01449408805F02DFA28420CD0124B10 -:1057C00001A95B8D00220B8002234B800F4B5B886D -:1057D0008B80608802F010FB0D49608805F01AFA92 -:1057E000C0070CD50B4B01A91B8800220B8002239C -:1057F0004B80064B9B888B80608802F0FDFA3FB09F -:1058000030BDC0462464FF1F3C42FF1FB861FF1F2C -:105810001C64FF1F9642FF1F10B5074C074920006C -:1058200005F0AEF92000064905F0AAF90721054A5E -:10583000054805F067F910BDFFFF00002464FF1F55 -:105840001C64FF1FA4BD00113C42FF1F10B502489D -:1058500003F054F910BDC046A5570011082110B53A -:105860000E240A4AC307DB170B405179A1430B43AF -:1058700053710223184202D051790B435371042310 -:10588000184202D051790B43537110BDAD42FF1F36 -:105890000A2110B50F240A4AC307DB170B40117801 -:1058A000A1430B431370830703D5062311780B43E1 -:1058B0001370400703D5012311780B43137010BDFB -:1058C000AD42FF1F10B5054B102419780A00A24302 -:1058D000002801D022000A431A7010BDAD42FF1FFC -:1058E000662110B52024134BDA788A431979DA70CF -:1058F000A14324190C431C71542812D96020014380 -:10590000197104210A43DA700222D9780A43DA7045 -:105910002022D9780A43DA704022D9780A43DA7013 -:1059200007E04428EDD83428EED82428F0D81428ED -:10593000F2D810BDAD42FF1FF8B50E23384C05005C -:10594000627926791A4011339E43364B6271267173 -:10595000984204DD6E23E3716C3BA371F8BD324BBA -:10596000984203DA1A23E3711C33F6E700232F4928 -:10597000A371E37183B259182D4889B2814224D9A9 -:10598000681D0A2100B205F017FF2A4B00B29D42A4 -:1059900044DC05006421280005F00EFF0A2100B256 -:1059A00005F07AFE244F09B2E2797B5C1343E37180 -:1059B0000A21280005F000FF0A2100B205F06CFE64 -:1059C0001D4F09B27B5CA2790EE001210A4362718E -:1059D000002D1CDA5B421DB20423A371A379632D51 -:1059E000D8DCFA22092DE3DC1343A3710A21280035 -:1059F00005F052FE0F22114F09B27B5C1A4016438C -:105A00001F2293436279267113436371A6E7FA2339 -:105A10009B009D42E2DB0123E371BBE70500FAE74F -:105A2000AD42FF1F1B4E00001DFCFFFFCB07000017 -:105A3000960F00000A270000EEBD0011DEBD001128 -:105A400070B51B4D04002B7900290DD08022134323 -:105A50002B71632C0BDD76236A7813436B70402324 -:105A6000AA781343AB7070BD7F221340F0E7230088 -:105A7000093306DA58236A7813436B70AA786C23CB -:105A8000EFE70C4E002C0ADA2023644224B26B703C -:105A90000A21200005F000FE09B2735CE2E7092C40 -:105AA000F6DD0A21200005F087FE00B2335CEEE748 -:105AB000AD42FF1FCEBD0011F8B50A4F05003B787F -:105AC0000E00002B0CD0084C2000FEF713FC330016 -:105AD0002A0020003978FEF701FD2000FEF748FC7F -:105AE000F8BDC0463964FF1FB842FF1F70B50A4EAB -:105AF0000A4D08223100280005F0A6FF002809D031 -:105B0000074C31000822280005F0FEFF0921200083 -:105B1000FFF7D2FF70BDC046AD42FF1F3164FF1FCB -:105B20003064FF1F102110B50C4B36201A78987185 -:105B30000A401A70DA7856310A40DA706022197910 -:105B400098701140223ADA71A2325A71DF3A0A4350 -:105B50001A7106225A70FFF7C9FF10BDAD42FF1F30 -:105B600010B5002824D0134C0A210223E05E05F072 -:105B700023FE00B2FFF7E0FE0423E05E642105F09F -:105B80001BFE012100B2FFF75BFF207AFFF7A8FEA2 -:105B90000320FFF763FE0020FFF77AFE064B18781C -:105BA000053843425841C0B2FFF78CFEFFF79EFF15 -:105BB00010BDC046B861FF1F1964FF1F70B50025F6 -:105BC0000A4C2000A571FEF795FB10233E21200012 -:105BD000074AFEF783FCA84200D13E35054B200062 -:105BE0001D70FEF7C5FB0123A37170BDB842FF1FF6 -:105BF000BEBD00113964FF1F0200F0B501270A483D -:105C00000A4E51188B1A002B00DCF0BD08241578C1 -:105C10004308684038404000805B013C58406D08B4 -:105C2000002CF5D10132EDE7FFFF0000FEBD0011B1 -:105C3000F0B500250F269D4200DBF0BD4C5D070945 -:105C400044403440A400A05801357840F3E70000F8 -:105C5000F0B589B06A460D000B000F271100103512 -:105C60001C780133260024093E401670547002321D -:105C7000AB42F5D12023024AFFF7DAFF09B0F0BDAD -:105C800004BE0011F0B54E780B7889B036020C00D6 -:105C9000170001901E43012A61D9954B9E4200D8FE -:105CA00077E001339E421CD1062A17D1CA788B783F -:105CB00012021A430B791B0413434A7912061A4342 -:105CC0008C4B5A6100221A705A808B4A5A608B4A58 -:105CD0009A608B4ADA60002009B0F0BD8822520534 -:105CE000EEE7884B9E423CD182498B78002B00D056 -:105CF000F6E00C2A31D10F22A3789343E278120206 -:105D000013432279120413436279120613434B6042 -:105D1000E279A07912020243207A00041043627AE9 -:105D200012060243CA60E27AA07A1202024376485F -:105D30004A81834208D804236E49142201980B70CB -:105D400005F0E2FE1420C7E71201D21889235B0593 -:105D50009A42F0D801238B70BDE7022AFAD00523BE -:105D6000EAE76A4A01239642E6D1FFF737FA052FA0 -:105D70000CD9E378A2781B021343227912041A4348 -:105D800063791B061343624A0393136005F034FFE3 -:105D9000A1E7584D2B78002B9DD1AB78002B00D17B -:105DA000A0E02B8901339BB20093B34200D091E075 -:105DB000132AD4D9CF7C8B7C3F02122120001F43B1 -:105DC000FFF71AFF874200D08EE0002E3DD1E37826 -:105DD000A2781B0213432279E96812041A436379FB -:105DE0001B06134303930A228B4212D1FF23A37095 -:105DF000E370237163716B89002B09D1E37B227CF3 -:105E00001B0212041343A27B13431B0901336B8152 -:105E100000226B89002B8ED0002A67D16868370179 -:105E20003818000B6B6900030390984205D968612C -:105E300005F012FDEB780133EB7068681022A11CAD -:105E4000381805F0E1FE2E8145E76F89009A7B1E28 -:105E50009BB293423AD1E278A37812021A43237993 -:105E600005A81B04134362796C6812061A43EB6899 -:105E700000920392211D0C22049305F045FE01209F -:105E8000260004A940421036FFF7E2FE013F012F31 -:105E900017D1009A0B232861824200D04CE70422DC -:105EA0001C49200005F0B0FE042203A9686805F033 -:105EB000B3FEE968039AFF23914200D13CE7F73B28 -:105EC0003AE73100FFF7C4FE1036DFE70923B74297 -:105ED000A4D831E7009BB34200D9FCE607232BE7A7 -:105EE000022329E7032327E7062325E70A2323E7DD -:105EF000FFFE0000C042FF1F00000111FFFF000075 -:105F00005048593601FF0000FFFF001102FF00005A -:105F100034F00040CC42FF1F10B5034C0B000122AF -:105F2000210000F06BFA10BDD96000110B8870B52C -:105F300006000D000224162B11D92B00032209495B -:105F400000F05CFA041E0AD1074B2A881B88191C32 -:105F5000934200D9111C300089B200F0EFFA200002 -:105F600070BDC046056100115E64FF1F10B54A7820 -:105F70000400013A0B000220012A07D80A78002AFF -:105F800004D005222000024900F038FA10BDC046B6 -:105F9000336100110A7810B50B0004000220002ABA -:105FA00004D007222000024900F028FA10BDC046A4 -:105FB000DF6100110A7810B50B0004000220002AEE -:105FC00004D009222000024900F018FA10BDC04692 -:105FD0004562001110B5034C0B000B22210000F0AC -:105FE0000DFA10BD7562001110B5034C0B000D22A7 -:105FF000210000F003FA10BDE762001110B5034C58 -:106000000B000F22210000F0F9F910BD41630011CF -:106010000A7810B50B0004000220002A04D01122D7 -:106020002000024900F0EAF910BDC046516300119A -:10603000002310B51322190000F0E0F910BD000094 -:1060400010B5034C0B001722210000F0D7F910BD4A -:10605000A3630011002310B51922190000F0CEF936 -:1060600010BD000010B5034C0B001B22210000F0F6 -:10607000C5F910BDDD630011F7B584890D00060078 -:106080000121002C22D000238268D3561778002BE0 -:106090001EDA0C2C1AD90C3CA4B2131940880093B8 -:1060A000230002F086FE431E984101307B06DB0F81 -:1060B0006B703F23013C1F40A4B22870AF70AC80CE -:1060C000002C07D0B3680133AB6000210800FEBD8F -:1060D0000020EBE7AC60F8E70B7803704B88437067 -:1060E0004B881B0A83700B79C3700420704704200F -:1060F000022B06D10020537811781B02009A0B4323 -:10610000138070470B8803700B881B0A43700220B2 -:1061100070470420009983420AD1537810781B02FB -:1061200003430B80D37890781B02034300204B80FD -:106130007047F8B50D004B7801240021461C037010 -:106140002B788B4201D82000F8BD6B78B01C4F1C17 -:10615000012B10D1890069184B88022233704B88BB -:10616000B9001B0A7370691805F0A6FC04360434E4 -:10617000A4B2F9B2E4E7122359436B185A880431E8 -:1061800032705B8810221B0A7370691805F094FC4A -:1061900012361234ECE770B5049D14001E00052B76 -:1061A00001D8042070BD637812781B0213432B8042 -:1061B000E378A2781B02134302226B802A71211D0F -:1061C000681D063E05F078FCB2B22A81E92AE8D8BB -:1061D0002800A11D0A3005F06FFC0020E2E7002333 -:1061E00010B50A789A4201D8900010BD9A008A181A -:1061F0005488013304705488DBB2240A44709488B4 -:1062000084709288120AC2700430EAE710B5110057 -:10621000029C062B04D004201022142B01D010BDA8 -:10622000022222714B7808781B0203432380CB782B -:1062300088781B02034363800431601D05F03CFC39 -:106240000020ECE710B50C788B7804315C43E4B2A5 -:1062500003702200013005F02FFC601C10BD0420EB -:10626000022B06D10020537811781B02009A0B43B1 -:106270001380704710B50C000A88023105F01CFC31 -:10628000208810BD70B504000D0004981100012B8A -:1062900001D8042070BD1678527812023243028071 -:1062A0000200F13255701470E125002C00D10C353C -:1062B000023B9AB24280AA42EBD80231043005F088 -:1062C000FBFB0020E6E70420009983420AD15378C3 -:1062D00010781B0203430B80D37890781B02034392 -:1062E00000204B80704710B50C000A88023105F081 -:1062F000E3FB208810BD000070B501211E000420C2 -:10630000049C0E400B4218D1CB40DDB28D4214D913 -:106310000A49DBB2098899420FD32300EE331D707E -:106320003300580011184978165C090231430133D3 -:106330002152D9B28D42F4D8002070BDD842FF1F3F -:1063400010B50C000A88023105F0B6FB208810BD9C -:1063500010B50C788B7804315C43E4B203702200F2 -:10636000013005F0A9FB601C10BD10B511000298AA -:10637000032B01D8042010BD14785278043B12027C -:1063800022430280CA788C781202224342809AB259 -:106390008280EB2AEED80431063005F08DFB002018 -:1063A000E9E710B50C000B8803700B881B0A4370DB -:1063B0004B8883704B881B0AC3708A88043006316F -:1063C00005F07AFBA088043080B210BD0420012BB8 -:1063D00003D100201378009A1370704710B50C0099 -:1063E0000B8803700B881B0A43704A880230043103 -:1063F00005F062FB6088023080B210BDF0B589B054 -:1064000003931E4B029242000700D05A019102F002 -:1064100020F81325061E2DD0029B01240370019B3A -:10642000002B04D0001903999847001984B26B46D9 -:106430001B7A5BB2002B0FDA1021380002F01CFB34 -:106440001925002813D130003219E1B202F066FCA0 -:10645000051E0CD10C34A4B2042304AA380005A9EB -:1064600093800696948101F0AFFD051E02D03000A6 -:1064700005F09AFB280009B0F0BDC0465C64FF1F20 -:1064800070B505000C0000280CD00020814209D016 -:1064900010222000044905F00FFB01202B78237304 -:1064A0006B78637370BDC04644BE0011F0B5060042 -:1064B0000D0017001C0085B002291BD000201029F8 -:1064C00007D1022B07D0102B03D115E00020102C90 -:1064D00008D005B0F0BD69463800FFF7D1FF2A00AB -:1064E00069460BE069463000FFF7CAFF22006946A3 -:1064F000380004E0022BE9D12A003900300005F011 -:106500004BFBE6E7031CF02800D9F02303200849E1 -:106510009AB2013A0B80D317034006499B189B108F -:106520000B80D30F04499B185B100B807047C0464B -:10653000DC42FF1FDA42FF1FD842FF1F034B1B88BC -:106540008B4202D3024B4000C1527047DC42FF1F16 -:106550005C64FF1F014B4000185A70475C64FF1FCA -:106560001722014B1A8070475C64FF1F70B505004D -:106570000E2005F009FA041E13D0D0230370002367 -:106580000622837007494570033005F095FA064BE3 -:106590002100DA8A62811B7E2373044B187805F090 -:1065A000B3F870BD7864FF1F6864FF1F2C43FF1FA2 -:1065B000262803D8024B4000C05A70470148FCE728 -:1065C000DE42FF1FFFFF000070B506000C00094D02 -:1065D0001C220021280005F027F9074B1E70074BED -:1065E0001C7005F019FA0123002801D000231220A5 -:1065F0002B7070BD6864FF1F2C43FF1F8964FF1F51 -:1066000070B505000D4C0800E260A1601022002169 -:10661000656005F029F8012803D11021A06802F077 -:1066200058FD10220021280005F01EF8012803D192 -:106630001021606802F04DFD70BDC0466864FF1F08 -:1066400070B5041E05D1002903D006220D4805F0BF -:1066500033FA0D4B1D78012D11D1002C05D10222EA -:106660001A7005F049FA280070BD00221A70074B15 -:106670001B78FF2BF7D02000FFF778FFF3E700250A -:10668000F1E7C0467864FF1F6864FF1F2C43FF1FBB -:10669000030010B5002801D1002010BD00780B4A7E -:1066A000002803D15988D1821B7913761378022BE5 -:1066B000F2D10023984200D103331370044B1B78AE -:1066C000FF2B01D0FFF752FF0120E6E76864FF1FB0 -:1066D0002C43FF1F002911D000280CD04B79012832 -:1066E00003D140225242134303E03F2213400328C8 -:1066F00002D001204B7170474022F4E70800FAE70E -:1067000070B5094D0100287800280BD0074C0622EF -:10671000200005F0D1F921002878FFF7DBFF2000E9 -:1067200004F0FAFF70BDC0468864FF1F6264FF1F5B -:1067300000290AD0012808D13F224B799343C02B6E -:1067400003D0403B5A425341981C704770B5174DD7 -:1067500006002B78FF2B15D00A2005F015F9041E32 -:1067600010D0D0230370C83B8370114B11491B78A4 -:106770004670C3700622043005F09EF92100287887 -:1067800004F0C2FF0C4B1B78012B0DD10B4B1B6887 -:10679000002B03D09B68002B00D09847084B0421A6 -:1067A0001878084A05F030F870BDC0462C43FF1F2A -:1067B0008864FF1F6264FF1F8464FF1FB064FF1FB3 -:1067C000B464FF1F60EA0000014B98687047C04640 -:1067D0006864FF1F014BDB68186870476864FF1F1F -:1067E000074B10B5DA68136801331360054B18784E -:1067F000FF2803D08021C90105F036F910BDC0463D -:106800006864FF1F2C43FF1FF7B50E0002F0C8F8A5 -:10681000051E1CD00E4B06621F78002F00D1077892 -:10682000AB791020019305F0AFF8041E0FD0D023F0 -:106830000380C73B8370019BE91DC37006220430AF -:1068400005F03AF921003800E66004F05DFFF7BD7D -:106850002A43FF1F014B18787047C0468864FF1F0A -:10686000054B002805D1054B1A78054B002A00D1AD -:10687000014B18007047C0467864FF1F8864FF1FF3 -:106880006264FF1F014B58687047C0466864FF1F71 -:10689000024B1868431E9841C0B270478C64FF1FBA -:1068A000421E03000120152A03D9FF3B5A425341DF -:1068B000D8B27047F0B51C0000230E0085B00390DD -:1068C00002920B70029A934201D3002019E0E55C1A -:1068D0005A1CD2B2002DF8D0029851198142F4DC32 -:1068E0000233DFB2A35C18000193FFF7D9FF002841 -:1068F00007D0013D019A0399EBB233708A4202D16D -:10690000E01905B0F0BDDB19DBB2DBE710B50C0018 -:1069100002F09EF803001220002B03D021005888BB -:1069200004F01AFF10BD000070B50E4D84006359CD -:10693000002B15D0186A002801D004F0F5FE2B5961 -:10694000586A002801D004F0EFFE2B59986A0028FD -:1069500001D004F0E9FE285904F0E6FE00232B5193 -:1069600070BDC0469864FF1F1C4B70B504000E003C -:10697000150099420AD11A4B1B68002B01D1122035 -:1069800070BD1B68002BFAD09847F9E7154B994268 -:1069900015D1134B1B68002B0AD01B68002B07D0A6 -:1069A0009847002804D1104B1C70104B1D70E7E76E -:1069B00029002000FFF7AAFF0028E1D1F3E7080033 -:1069C00001F0EEFF0028DAD003780320A342D7D1EC -:1069D0002900300004F0C0FED2E7C046FEFF0000F0 -:1069E0009464FF1FFFFF00009164FF1F9064FF1F6E -:1069F000F7B50400808801F0D3FF0025A84203D03A -:106A00000578A08802F008F81C4E3378002B1FD0C0 -:106A1000AB421DD11A4B28001978FFF777FF0028E9 -:106A200018D000233370A3790820A778A688019393 -:106A300004F0AAFF011E0DD0D0230370CA3B83705F -:106A4000019B477086808371280004F05DFE01E0A1 -:106A5000002DE8D1A0880B4B8200D358002B01D029 -:106A6000FFF762FF1721A088FFF768FDA08801F0FB -:106A700027FDA08801F0FEFDF7BDC0469164FF1F11 -:106A80009064FF1F9864FF1FF0B587B01D000CAB2A -:106A90001B88070001930DAB1B88142002930EABDB -:106AA0001B88160003930FAB1B880091049310AB57 -:106AB0001B88059304F068FF041E1AD0D0230370CE -:106AC000CB3B47708370C670062229000430002D2E -:106AD00011D004F0F1FF019B21006381029B00981B -:106AE000A381039BE381049B2382059BA37404F091 -:106AF0000BFE07B0F0BD04F097FEECE7F7B500938E -:106B000008AB1B8807000C200D001600019304F051 -:106B10003BFF041E13D0280001F042FF00280FD0D5 -:106B20000078D0232370C93BA370009B21002381F0 -:106B3000019B6770A580E680638104F0E5FDF7BDE9 -:106B4000014B1878EDE7C0462C43FF1F13B5040036 -:106B500064890389C2888188C0780094FFF7CEFFDA -:106B600013BD000010B5044C2068002803D004F0C9 -:106B7000DBFD0023236010BD9C64FF1FA122F0B544 -:106B8000818892004A43384B384F1B6804009B1899 -:106B90009D2292009B18827989B01A603B68002B75 -:106BA0005FD01D78324B1B68002B04D05B68002B34 -:106BB00001D000209847260008363100E079FFF721 -:106BC000B7FD237DE0710200E0780493638A290019 -:106BD0000393238A0293E3890193A38800933300EC -:106BE000FFF752FFE378002B0BD1E289A379A1884C -:106BF00002920196E27928000092012201F0DAFE69 -:106C0000E0703B68002B20D0FFF7ACFF194D2878CF -:106C100000281AD0184B1978FFF778FE002814D0F6 -:106C20002B78E67808200793A78804F0ADFE011EB4 -:106C300009D0D0230370CA3B467083708780867169 -:106C4000079804F061FD00232B701721A088FFF73F -:106C500075FCA08801F034FCA08801F00BFD09B0A0 -:106C6000F0BD064B9DE7C0463409FF1F9C64FF1F23 -:106C7000B064FF1F9164FF1F9064FF1F2C43FF1F30 -:106C8000F8B5070008000E0001F08AFE041E18D0B7 -:106C90002620FFF78DFC051E00D12578062004F084 -:106CA00073FE041E0DD00021062204F0BDFDD0238A -:106CB0002370C23B21006770A370A680E8B204F085 -:106CC00023FDF8BDF0B585B001930AAB1B78070032 -:106CD00002930BAB1B7808000D000092039301F0A8 -:106CE0005FFE061E22D0102004F04EFE041E1DD0B2 -:106CF0001022002104F098FD2620FFF759FC0028FF -:106D000000D13078D0232370C13BA370009B2100B9 -:106D10002372019B67706372029BA580A372039B21 -:106D2000C0B2E3720C9BE36004F0EEFC05B0F0BD72 -:106D3000F7B50D00019001F033FE071E20D00E20A4 -:106D400004F022FE041E1BD02620FFF731FC061E95 -:106D500000D13E78D0232380C53B0622A370F91DC5 -:106D6000E01C04F0A9FE019B2A0063810123DD40A1 -:106D70001A401D40210022736573F0B204F0C4FC78 -:106D8000F7BD0000F0B585B0029010000D001700AF -:106D90000A9E039301F004FE041E31D0029B002BD7 -:106DA0002ED1039B02795B0724D5122313430422BF -:106DB000002E08D10B99002905D10C99002902D188 -:106DC0000D9900291AD01A430D9B2271002B00D077 -:106DD000C9E0002E00D1CFE0002D00D0CCE0606AE9 -:106DE000002801D004F0A0FC1C21300004F00CFEAF -:106DF000606205E002239A430E33D7E79343237181 -:106E0000654BBA00D458002C00D1AAE0002E10D057 -:106E1000236A002B03D11C2004F0AEFD20625E4BE0 -:106E2000BA00D358186A002803D01C22310004F09D -:106E300043FE0C9B002B12D0574CBB001D596B6AB4 -:106E4000002B03D1162004F097FD6862BB00E358C5 -:106E5000586A002803D016220C9904F02DFE0D9BD1 -:106E6000002B11D04C4DBC006659B36A002B03D1E6 -:106E7000142004F081FDB0622B59986A002803D0D9 -:106E800014220D9904F018FE380001F089FD051E4A -:106E900067D0414BBA00D358002B62D01A6A342015 -:106EA000002A00D11C389A6A002A01D0143080B21E -:106EB0000B9A002A01D01C3080B25B6A002B01D0F3 -:106EC000163080B204F060FD041E4AD01822002162 -:106ED00004F0AAFC2620FFF76BFB0190002801D1EB -:106EE0002B780193D0232370029B200063700A2328 -:106EF000294EA370039BBD00A371AB59A780196AEB -:106F00001830002905D01C22A06004F0D5FD200017 -:106F100034307359996A002907D0030014221433BE -:106F2000E060029304F0C8FD02980B9B002B08D090 -:106F300003001C221C330B992061029304F0BCFD5A -:106F400002987359596A002903D01622606104F02F -:106F5000B3FD6B462100187904F0D6FB3800FFF72B -:106F6000E3FC05B0F0BD10220D9B0D991B69A01824 -:106F7000236204F0A1FD2CE70B9B002B00D13FE71F -:106F8000012D00D03CE7606A002801D004F0CCFB62 -:106F90001C210B982AE7C0469864FF1F10B5044CCB -:106FA0002068002803D004F0BFFB0023236010BD3D -:106FB0008C64FF1F0B4B07B51A68002A01D1002013 -:106FC0000EBD6946531C012012780731FFF772FC91 -:106FD0000028F4D002780123100018401A42EED0A5 -:106FE000EEE7C046A864FF1FF0B51F4F01203B68C5 -:106FF00087B0002B25D09B78059300F0B3FB0028C9 -:1070000021D00A20FFF7D4FA04000B20FFF7D0FAB2 -:10701000164B05001E78731E9E413B68F6B2191D83 -:10702000D878FFF757FB3B682900DA7A04330392DC -:107030009A7901930292009033002000059A04F09F -:107040002BFD07B0F0BDFFF7B5FF002805D00620E7 -:10705000FFF7AEFA04000720D8E70820FFF7A8FAE8 -:1070600004000920D2E7C0468C64FF1F8864FF1F1C -:1070700070B50A4E040033780D00FF2B0DD00420AC -:1070800004F082FC011E08D0D0230370CE3B457073 -:107090008370C470307804F037FB70BD3C43FF1F31 -:1070A00070B5040006200D0004F06EFC011E0AD02D -:1070B000D0230370CD3B8370054B44701B688580E3 -:1070C000187804F021FB002C01D0FFF767FF70BD9A -:1070D0008C64FF1FF8B5264F06003B680D00112495 -:1070E000002B05D10522234B1B78134202D1122419 -:1070F0002000F8BD204A10241268002AF8D0127827 -:10710000002AF5D0DB0719D52B789A1E012A1AD848 -:107110000C2004F031FC132438600028E8D0002350 -:107120000A22437029000670023004F0C5FCFFF704 -:107130005BFF041E0AD0FFF731FFD9E700F012FB16 -:107140000028E1D1E4E7002BE2D0D0E70B4B1B781D -:10715000032BCDD11D20FFF72BFA094B18800028F7 -:10716000C6D0084B04211878074A04F04DFBBFE74E -:107170008C64FF1F8964FF1FA864FF1F8864FF1FC2 -:107180008664FF1FB464FF1F60EA0000F7B5019337 -:10719000194B14001A78052306000F0012201A421A -:1071A00021D0012920D1154B1D68002D1BD00220B4 -:1071B0001F2C18D8002C02D0019B002B13D0104B91 -:1071C0001F221E706E1C0021300004F02DFB01995F -:1071D0002200300004F070FC310020002C70002FE1 -:1071E00006D004F061FCFEBD064B12201D68DCE7F2 -:1071F00004F01AFDF7E7C0468964FF1FA864FF1F6B -:107200003C43FF1FA464FF1FF8B50F4E12243368E0 -:10721000002B17D01B780F3C834213D100250B4F56 -:107220000221387804F098FC094B042138781D803D -:1072300004F092FC074B28001D8033685C7004F05A -:1072400053FA04002000F8BD8C64FF1FB464FF1FD4 -:10725000A064FF1F8664FF1F70B5012823D11B4C5B -:107260002388002B03D01A4A1578002D07D0194B1C -:107270001B68002B02D01878FFF7C6FF70BD3B2BB0 -:1072800002D93C3B2380F9E7134E0221307804F009 -:1072900063FCFA222388920002215A43307804F0DA -:1072A000A3FC2580EAE70B4B1B68002BE6D00B4BB9 -:1072B0001B785B07E2D5084B0221187804F04CFCE0 -:1072C0000022024B1A80FFF769FED7E7A064FF1F78 -:1072D0008464FF1F8C64FF1FB464FF1F8964FF1F59 -:1072E000F8B51E4D2868002803D004F01DFA0023CD -:1072F0002B601B4E3068002803D004F015FA0023E1 -:107300003360184F05243B7818002040234221D0D9 -:10731000154800F02BFA3B78234213D0202004F0CC -:107320002BFB2860002813D02022002104F07CFAD7 -:10733000202004F021FB041E306005D02022002113 -:1073400004F072FA002004E0286804F0EDF92C60E3 -:107350001320F8BD00F00AFAF4E7C046A864FF1F46 -:10736000A464FF1F8964FF1F3043FF1F10B50A4C40 -:1073700023681A1E0ED0002808D10130587004F07E -:10738000B3F9002805D02368002B02D00021FFF7B5 -:1073900087FE0122100010BD8C64FF1FF7B5274E39 -:1073A000050033680191181E21D05C78244F012C10 -:1073B00030D1FFF7FFFD002825D02000FFF7F8F8B7 -:1073C0000400412814D91F4B022118781E4A04F0EA -:1073D0001BFA1E4B3C3C1C80022233685A703B78DF -:1073E000002B14D128000199FFF75AFE0120FEBDA1 -:1073F000FA2292004243002AEED0124B0221187862 -:1074000004F0F2FBE8E7FFF7D3F80200F3E700230C -:107410003B70EBE73B78002BE8D1032004F0B4FA93 -:10742000011E08D0D0230370CC3B457083703368B5 -:10743000187804F069F9FFF7B1FDD7E78C64FF1FF6 -:107440008464FF1FB464FF1F60EA0000A064FF1F94 -:1074500010B51749838802008B4220D011D81549F6 -:107460008B4217D0144900205B1899B2012907D824 -:10747000926811785A425341D8B2FFF7F9FD0120C2 -:1074800010BD0E4A00209B1807229BB29A42404131 -:10749000C0B2F5E783681878FFF768FFF0E7836804 -:1074A00099785A78090218781143FFF777FFE7E7D0 -:1074B0000A20000006200000F8DFFFFFAFDFFFFF1B -:1074C000014B18707047C0463D43FF1F10B5064C76 -:1074D000207001F041FA207804F07EF9052120782F -:1074E00000F062FD10BDC046B464FF1F0BB273B55F -:1074F0000D00002B00DBC4E0884B187804F03CF949 -:10750000041E0ED00378912B0FD0A22B00D1A1E046 -:10751000834B1878FF2852D0210004F0F5F800289A -:107520004DD180200002684076BD43780F2B76D085 -:1075300013D8052B70D00E2BEAD18088794B984256 -:107540002BD8794B98421BD8784B9842E0D1A3684E -:107550001878591CFFF774F838E03E2BD8D183789F -:10756000032B74D06CD8012B6ED0022BD0D1704B72 -:107570001B68002B23D05B68002B20D098471EE0AF -:107580006C4BC0180C28C3D804F04EF81DC2C215AD -:107590000BC20B0B0B3223C23C00674BC0180728F1 -:1075A000B6D8664B1B68002B09D01B68002B06D091 -:1075B000200098470AE0A3681878FFF7C7F8200072 -:1075C00004F032FAADE7A068FFF762F800289FD018 -:1075D000F5E7A3681B78002BF1D0554B1B68002BF7 -:1075E000EDD01B68002BEAD0210055489847EDE705 -:1075F0004F4B1B68002BE2D01B68002BDFD0210013 -:107600005048F3E7504B1B68002BD8D05B68002B29 -:10761000D5D021004348E9E7FFF7EAF9CFE78088B2 -:107620004A4B984203D04A4B984200D070E7464BF1 -:107630001B68002BC3D05B68002BC0D02100D5E7AE -:10764000153B012BBBD963E7FFF798FAB7E7FFF7C4 -:107650007DFAB4E73F4B1B78042B07D100236A4621 -:1076600013800179408800F0C5FCA8E7364B1B6801 -:10767000002BA4D05B68002BA1D0010036489847AE -:107680009DE7012421420AD0294B1B68002B04D01E -:107690005B68002B01D000209847012043E78B074F -:1076A0000AD5264B1B68002B04D05B68002B01D049 -:1076B00020009847022036E70421280008400D42A8 -:1076C00000D131E7254E3388002B21D0013B9BB2FE -:1076D0003380002B1AD1FFF7DBF800280AD0204BAB -:1076E0001C70164B1B68002B04D05B68002B01D06C -:1076F00020009847FFF7C6F8694601F001FD68468B -:10770000FEF7FEFF1D20FEF753FF308004200AE73E -:10771000024B187804F020FAF8E7C046B464FF1F63 -:107720003D43FF1F0E200000012000000910000053 -:10773000AC64FF1FFEDFFFFFAFDFFFFFB064FF1F82 -:107740000C2000000B2000009464FF1F0D2000009F -:10775000132000008964FF1FFFFF00008664FF1FE5 -:107760008464FF1F10B501F09BF910BD014B186038 -:107770007047C046B064FF1F0B880020162B01D84D -:1077800017230420014A13807047C0465E64FF1F20 -:1077900000207047074A03001188814207D0918872 -:1077A0000020994202D1013080001018704700205B -:1077B000FAE7C046BC64FF1FF0B58F7806000D00E5 -:1077C000C5B01E2F15D1FFF7E5FF051E03D100241C -:1077D000200045B0F0BD00223B003100C07800928F -:1077E00000F0B2FB0400A81C00F0D2FBFF23EB70FA -:1077F000EEE7264B062403931B78FF2BE8D0182FC7 -:10780000E6D87B08224A013BDB0002929A58944654 -:10781000002ADDD0029AD3185B68002BD8D00878F4 -:10782000002802D14B78012B02D10624122FCFD190 -:1078300007AFAB88697800976446AA68A047041E22 -:10784000C6D1AB78029A5B08013BDB00D318390044 -:1078500030005B689847041E0BD1AB78042BB6D080 -:10786000039A310010782200009700F06DFB0400AD -:10787000AEE76A78002AABD1AA7805A93B880871DF -:1078800030000A704B80FEF747FBA0E74043FF1F24 -:1078900054BE00111D4B37B5050098420BD000298E -:1078A0000AD1FFF777FF002805D11948FFF772FFCB -:1078B000002800D0058037BD01291AD1FFF76AFFE3 -:1078C000041EF8D001235B420380A378FF2BF2D083 -:1078D000FE2B07D00023E0781422009329001E33EA -:1078E00000F032FBA01C00F053FB01235B426380DD -:1078F000E1E70229DFD1013901F0BEF80028DAD131 -:107900002800FFF747FF041EDFD1D4E7FEFF000089 -:10791000FFFF0000022210B5074B52421A800748B1 -:1079200001325A809A80DA8000F07EFA044801F031 -:1079300025F8002010BDC046BC64FF1FB9770011B8 -:10794000957800110388F7B50400002B02D10225B9 -:107950002800FEBD42680221137825485268FEF7D0 -:10796000A5FD00282ED0234F01253A88002AEFD00C -:10797000802321885B0201259B1A9942E8DC0C20B8 -:1079800003F0FAFF061E31D03B8822889C46002374 -:107990001800019561469DB2491989B2AA421BD8C7 -:1079A000002801D062443A8000233000082208C039 -:1079B000210004F081F8104A1368002B13D1002530 -:1079C0001660C5E76268022113780C485268FEF71A -:1079D0006DFD0028C7D1BAE760681D0140194181DB -:1079E00001330198D6E71A001B68E6E71325AFE7D5 -:1079F000C2BE00113E43FF1FB864FF1FC0BE00118E -:107A0000014B18707047C0464043FF1F14230A0003 -:107A100010B51A40194204D00122102101F048F893 -:107A200010BD4B06F9D4012088434000F8E710B59B -:107A300014008B0604D50122102101F039F810BD85 -:107A400008230A001A40194202D14BB2002B0FDA68 -:107A5000102101F02DF8002808D02300F2331B7804 -:107A6000002BECD0F1342378012BE8D10020E6E79D -:107A700003208907FAD4E2E7F0B51F00184B85B060 -:107A80001C68019002910392002C27D1200005B0C0 -:107A9000F0BDA5683301ED186B89019A934211D3AB -:107AA000029A93420ED8002F04D10A9B002B10D1CA -:107AB0002C00EBE73B002978039A6868FEF7F6FC98 -:107AC0000028F2D10136B6B2A388B342E1D82468C7 -:107AD000DAE7A3680A9A5B891380E9E70026F3E7EF -:107AE000B864FF1F37B50C000A884988012391420A -:107AF00017D3002A15D0651D23792A0002210A48D0 -:107B0000FEF7D4FC102300280BD02379618820884D -:107B100000242A000094FFF7AFFF0A23A04200D000 -:107B2000230018003EBDC046C2BE001113B50A00B6 -:107B300008884988012388420BD8002809D00024EE -:107B4000137905320094FFF797FF0A23A04200D073 -:107B50002300180016BD13B50A00088849880123C0 -:107B600088420BD8002809D00024137905320094EC -:107B7000FFF782FF0A23A04200D02300180016BDA1 -:107B8000F0B58BB003904A8808880E00012382422A -:107B900055D3002853D00023012704AC23700022C2 -:107BA000718813000092FFF767FF051E3ED0207812 -:107BB000002835D12B78022B18D167706A89830091 -:107BC0000130E31880005A8069680222201803F00F -:107BD00073FF23780133DBB22370042B19D93B00E8 -:107BE0006889013080B2002BD9D01FE00223637076 -:107BF000122358436A89231804305A806968102276 -:107C0000201803F059FF23780133DBB22370002BD7 -:107C1000E5D10C4A6B899B185A425341DBB2DFE72E -:107C20006378012BE4D12B78022BC7D022780A236A -:107C3000002A04D021000398FEF798F900231800C9 -:107C40000BB0F0BD0100FFFF0F4BF0B5040018684A -:107C5000002816D083685D89A54207D88288AE18AF -:107C6000B44203DA12019A18934201D10068EFE797 -:107C70001E005F891036A74204D1002900D00D8074 -:107C80001800F0BD3300EFE7B864FF1F70B50500C2 -:107C90000C0008880021FFF7D7FF03000120002B0C -:107CA00004D022002800197AFFF7C1FE70BDF7B595 -:107CB0000C00002501902300EE331B78AB4201D865 -:107CC00000200AE06B00E65A00213000E718FFF7B9 -:107CD000BBFF002802D126800130FEBD017A019849 -:107CE000FFF794FE002802D03B882380F5E701359A -:107CF000EDB2E0E710B5040008880021FFF7A4FF0B -:107D000003000120002B03D02000197AFFF77EFE2C -:107D100010BD0000054B1B68002B01D1180004E0CA -:107D20009A6852898242F6D198887047B864FF1FDA -:107D3000F0B50E27002687B0039302ABFF183E80F4 -:107D400005001F4B40891400984207D02B78013062 -:107D500000976A6880B2FFF78FFE060002212B7839 -:107D600018486A68FEF7A2FB00280FD06C89200033 -:107D7000FFF7D0FF002802D0013C0419A4B2039BF6 -:107D8000002B00D01C80300007B0F0BD02212B7802 -:107D90000D486A68FEF78AFB0028E7D102212B789C -:107DA0000A486A68FEF782FB002807D0002EDED062 -:107DB0003B88A342DBD17489013CDFE76C89DEE7B5 -:107DC000FFFF0000C2BE0011C0BE0011BEBE001108 -:107DD00010B50C00FFF7DEFC03000220002B0AD0D8 -:107DE000002C00D023609B781720FE2B03D0013895 -:107DF000FF2B00D1002010BD73B50D0001A90400B8 -:107E00001600FFF7E5FF172805D0002E04D1290042 -:107E10002000FEF727F976BD01221021200000F096 -:107E200047FE0028F3D0F6E7014B18607047C046C4 -:107E3000C864FF1F37B56B469D1D01000400022278 -:107E4000280003F061FE2B88B02B0ED12379122B72 -:107E500009D12300FA331B78012B06D10121608858 -:107E600000F0E0F801E01B2BF8D037BD10B5054B52 -:107E70000421187000F098F8FFF74CFDFEF770FB36 -:107E800010BDC046CC64FF1F0020F0B50BB20F0040 -:107E900087B0834234DA274B187803F06DFC051E57 -:107EA0002BD00378A02B25D103AE3100FEF7E4F8E8 -:107EB000041E0BD1B378DB0724D51F4B06341B6897 -:107EC000002B03D03100688898470400A868002878 -:107ED00001D003F069FE002C08D1184A039B13401F -:107EE000174A934206D0B3781B2B03D00121688830 -:107EF00000F098F8280003F097FD802000027840F9 -:107F000007B0F0BD0F4B1B68002B10D03100688804 -:107F10009847041EDAD07378002BD7D1B27801A924 -:107F20000A704B800C716888FDF7F6FFCEE70624D7 -:107F3000F1E7C046CC64FF1FC464FF1F00FFFF00D1 -:107F400000011200C864FF1FF7B50190FC200D006E -:107F500017001E0003F018FD04001320002C12D09F -:107F6000B02320002370089BF4226770658026717F -:107F70000830002B08D0190003F09EFD2100019865 -:107F800003F0C2FB0020FEBD089903F04DFCF5E7AD -:107F900010B5041E06D00078FD2803D803F02CFC91 -:107FA000FF23237010BD00000A1F93B210B5040018 -:107FB0000220032B05D882400020024BD1529B188F -:107FC0009C7010BDEC64FF1F0B8870B5043B04006F -:107FD0000D000220032B0BD80121200000F04CFDE6 -:107FE00003001420002B03D02900200000F0DEFB4A -:107FF00070BD000007B51300034A00920A0001217A -:1080000000F02CFC0EBDC0463182001107B5019274 -:1080100003220092024B0A00122100F049FC0EBD1F -:10802000AF82001107B56B4601AA11800449D880C0 -:1080300008780633012802D1190003F095FC07BD2A -:10804000CD64FF1F0C4B10B518700023FF210B4AA5 -:108050001380138193819380094A53801370517266 -:1080600093819372D174D3821375517703F02CFBF3 -:1080700000F0FCF910BDC046FC64FF1FEC64FF1F5C -:10808000CE64FF1FF0B58DB06B46002003910C222B -:108090009B5E834200DBB0E05D4B187803F06CFB25 -:1080A000051E00D1A4E00378902B00D09DE006AF20 -:1080B00001004688380000F013FA796804000029AE -:1080C00000D19CE03B88052B6ED13B89032B1CD94A -:1080D00005AC200000F0A2F86288172A61D839891F -:1080E000131D994231D17968237804310291D9075F -:1080F00038D5607800F08EF9071E06D00023037192 -:108100002378012B08D0132B23D0A868002800D196 -:1081100078E003F049FD75E06288029909A800F053 -:10812000A6F80290380000F08BF909AA2378387A73 -:108130000192002231000092029A00F012F93800F8 -:1081400000F064F9029B002BDFD0300000F080F9D2 -:10815000DBE70378032BD8D16288029909A800F0E5 -:10816000D6F8DEE7122B13D1029909A800F0B5F872 -:10817000021EEAD127498B88002BC6D0887909A92D -:108180002378019161780091310000F0EAF8BCE7B2 -:10819000002302AA93833000617809AAFFF72AFF1F -:1081A000B3E71D4B0993F6E7042B02D09A1F012A6F -:1081B000ABD8184A043B9B00995A0029A5D0D21885 -:1081C000907831003A0000F0AEF800289DD13B884D -:1081D000042B03D001213000FFF724FF012C04D130 -:1081E000A868002801D003F0DFFC280003F01CFC85 -:1081F0008020039B0002434018000DB0F0BD012811 -:1082000000D182E701213000FFF70CFFEDE7C04607 -:10821000FC64FF1FEC64FF1F010017000B78037064 -:108220004B784370CB788A781B02134343807047A6 -:108230000A88030002700A88120A42700A88012A1A -:1082400006D14A8882704A88120AC2700420704798 -:1082500002208242FBD14A8804309A704A88120A6E -:10826000DA708A881A718A88120A5A71EFE710B593 -:108270000400012082420CD94B780A781B02134378 -:108280002380834206D1CB788A781B021343638014 -:10829000002010BD022BFBD1CB788A781B02134340 -:1082A00063804B790A791B021343A380F0E70B88A4 -:1082B00003700B881B0A43704B8883704B881B0A22 -:1082C000C3708B8803718B881B0A4371CB888371C1 -:1082D000CB881B0AC3710820704703000120082ABD -:1082E00014D14A780878120202431A80CA78887832 -:1082F000120202435A804A790879120202439A8094 -:10830000CA798879120202430020DA80704710B5DA -:1083100004000120022A05D100204B780A781B02B4 -:108320001343238010BDF8B5060010200F00150080 -:1083300003F02AFB04000120002C0ED0A0230C2205 -:10834000290023806780201D002D07D003F0B4FB97 -:108350002100300003F0D8F90020F8BD03F064FAE2 -:10836000F6E7F7B51E00009008AB142017001D7843 -:10837000019103F009FB041E12D0A2230370019B9C -:1083800047704380099B057146710C220830002B11 -:1083900007D0190003F090FB2100009803F0B4F916 -:1083A000F7BD099903F040FAF6E737B5041E0FD080 -:1083B0004388002B0CD00025C1881323007A172294 -:1083C00001950095FFF7CDFFFF236580637225704F -:1083D00037BD000010B50C4904004A88002A09D0B6 -:1083E0008B89002B05D00020CB8A0222834201D04A -:1083F00010BD012213000A20434300204032C8541C -:10840000C81842800472F3E7CE64FF1F0023438044 -:1084100003707047094B00211A0010B55C88002CCE -:1084200006D01C79844203D10A234B43D01810BDD7 -:1084300001310A330329F1D10020F8E7CE64FF1F90 -:1084400010B50400407A03F0D7F9FF23637210BD22 -:108450007047043010B580B203F0C6FA002803D08C -:108460000421494203F048F910BD000070B5002511 -:10847000104CA0682580A581A580A84202D003F0F9 -:1084800093FBA56000250C4C0C4B606D1D802300F8 -:1084900058331D70A84202D003F086FB65650025A5 -:1084A0006068002801D003F07FFB013508340A2DF5 -:1084B000F6D170BD9465FF1F3865FF1F8865FF1FEB -:1084C00070B5041E09D1054D2880A881A880A86830 -:1084D000002802D003F068FBAC6070BD9465FF1FFC -:1084E000F0B54B8885B00193002343600A790500FD -:1084F0000F00022A00D07BE0CA88032A17D98B68B4 -:108500005E7819783602DC78D8790E4399781B7A30 -:1085100024021B020C43034353495BBA0B80331DF7 -:1085200093421ED1042C04D0631F022B0ED90120CC -:1085300015E0019A4D4B1201D35A002B06D0019839 -:10854000FFF7BEFF4A4A1369013313610421B8687B -:108550002E812C80494203F0CFF86860002005B0DE -:10856000F0BD434D042C06D0631F022B0FD9EB68DE -:108570000133EB60DBE7019A3C4B1201D35A002B2D -:1085800005D00198FFF79CFF2B6901332B61374B16 -:1085900030000293019B029A1B0101930023019971 -:1085A0008C468B52130063449C8003939E81FFF79B -:1085B00050FF039B041E986016D00421B8684942FE -:1085C00003F09AF8FA880100043A200003F074FAE4 -:1085D0000199029AFB888A5A043B9B18029A8B5293 -:1085E0002B6801332B60A2E7AB690133AB619EE7D7 -:1085F0001E4B0293019B1E01029BF35A002B2DD0B0 -:1086000002998C19A068002828D0012A26D1FA885E -:108610009B189BB27352A189994217D39B1AC01819 -:10862000B96803F049FA029BA289F35A934200D039 -:108630007DE700222B81A3882B80A3686B60029BBF -:10864000F2520B4A53680133536070E7084A93684B -:10865000013393600198FFF733FF68E7044A5369D9 -:1086600001335361F6E7C046FE64FF1F9465FF1FA8 -:108670000465FF1F70B5051E15D10B4C0B4B188000 -:10868000230058331870606D002802D003F08CFA74 -:108690006565250050356068002801D003F084FA34 -:1086A0000834AC42F7D170BD3865FF1F8865FF1FE5 -:1086B000F0B51700A12285B0920001934243394BD7 -:1086C00006001B680C009B18D933FF331D78FDF79B -:1086D00041FF0430854204DD3000FDF73BFF0430EC -:1086E000C5B2BD4207D33A0000213000019B03F020 -:1086F000CBF905B0F0BD2900380003F00DFA2300D6 -:10870000C6B250331E700393019B29006365380085 -:1087100002F0D2FFCBB20293002B02D0039B0136B2 -:108720001E7000262300503303931B78B34204D8F5 -:10873000606D002831D10020DBE7029A2800002A72 -:1087400004D0013B1000B34200D02800F700E71925 -:10875000387003F081FA786000280ED03A780199D9 -:1087600003F0AAF9019A3B780136D3180E4A019317 -:10877000D369F6B20133D361D4E7039B1870606507 -:10878000A74205D1084A1320D36A0133D362B0E768 -:10879000606803F009FA0834F2E703F005FA0023F1 -:1087A0006365C8E73409FF1F0465FF1FF7B50D00B7 -:1087B00007000421686802F09FFF2B890400037002 -:1087C0002B891B0A43702B8883702B881B0AC3706C -:1087D0002E8902250436F6B2F42E15D81B4B9F4283 -:1087E00014D10C2003F0D0F81135011E0CD09023C9 -:1087F00003708E3B0371043B4380154B8460C6803D -:10880000187802F081FF00252800FEBD5C237B4321 -:10881000104AD3180093583301931B78002B0FD1C3 -:108820000300320038000099FFF742FF019B05006A -:108830001B78002BE8D13800009903F055F9E3E7E5 -:10884000054A0725536A01335362DDE7FEFF000046 -:10885000FC64FF1F3865FF1F0465FF1FF0B587B07C -:10886000009017200F0016000193FFF7F2FD13256B -:10887000041E19D00C98031E02D00199201D9847A0 -:10888000030AE370052302AAA070043090812770C8 -:108890000098667003A993800494FFF787FF051E74 -:1088A00002D0200003F080F9280007B0F0BD0000DE -:1088B000F0B587B01F000CAB1B7803910593012125 -:1088C0000DAB06001C78049200F0D6F814250028A1 -:1088D00021D02000FFF77EFD0135041E1BD0114979 -:1088E000059B0A7803700132D2B2131EC68001D1F3 -:1088F00001231A000B7022713000049B039900972A -:10890000FFF7ACFF051E09D1230021000648074AE6 -:10891000093302F0D1FF280007B0F0BD00236380C7 -:108920002370F8E70065FF1FAB830011307500006E -:10893000F8B505000E00064C064F2368002B02D048 -:108940003100280098470434BC42F6D1F8BDC04637 -:10895000A465FF1FB865FF1F0123064A5B425380D1 -:10896000002313715362044A136053609360D36011 -:1089700013617047B865FF1FA465FF1F0200002345 -:1089800010B506499C000859002801D1625010BD5D -:108990000133052BF6D11320F9E7C046A465FF1F6C -:1089A000034A5388181A43425841404210407047C6 -:1089B000B865FF1FF0B585B002930AAB1F780CAB0A -:1089C0001B88009008000E0001920393FFF7E8FF58 -:1089D00005001120002D1BD10E48FFF7E1FF040018 -:1089E0001520002C14D006220B99A771E01D03F06E -:1089F00063F8019B30002371029B29006371009B87 -:108A000066802370039B6562E381FFF791FF280076 -:108A100005B0F0BDFFFF000010B5FFF7C1FF040077 -:108A20000220002C12D060880121FFF781FF606ACC -:108A3000002801D002F078FE28220021200002F058 -:108A4000F3FE012300205B426380207110BD000013 -:108A500030B5074A074C5588010013780020A5421D -:108A600004D05B1A59424B415842104030BDC046B9 -:108A7000B865FF1FFFFF0000084A10B501230C0076 -:108A8000904208D0FFF78CFF031E04D003792340E7 -:108A90005A1E9341DBB2180010BDC046FEFF000015 -:108AA000024B1879431E9841C0B27047B865FF1F4A -:108AB00070B504000D001600FFF772FF002804D106 -:108AC0000D4B9C4200D0143070BD416A03790520E3 -:108AD000002907D012221A40102A02D10520002EA8 -:108AE000F2D10F20DB06EFD5897E0C20A942894107 -:108AF000494249420840E7E7FEFF0000030010B585 -:108B0000002800D110BD0348034A41889142F9D0A2 -:108B10009847F7E7B865FF1FFFFF0000002330B557 -:108B2000C45CCD5C6C40D4540133102BF8D130BD03 -:108B30000F23002210B5C45C64002243CA54C25CF7 -:108B4000D209013BF7D210BD0200010010B520325E -:108B5000103102F031FF10BDF0B58BB00390102042 -:108B600005931700049102F007FF0090102002F017 -:108B700003FF009B13240190002B05D000280CD18B -:108B80001324009802F0D0FD019B002B02D01800A6 -:108B900002F0CAFD20000BB0F0BD102002F0ECFE88 -:108BA0000600102002F0E8FE13240500002E00D17C -:108BB000AEE0002819D01022002102F035FE32006C -:108BC0002900039802F0F8FE041E0ED133787F2BA3 -:108BD00051D830000099FFF7ABFF009B1B787F2B2B -:108BE00053D801990098FFF7A3FF300002F09CFDD5 -:108BF000002D02D0280002F097FD002CC1D11020DA -:108C000002F0BAFE0600102002F0B6FE0290002E1E -:108C10007CD0002878D03A000F32230001251211B1 -:108C200005D00F333B4015B25A4253411BB26A1E66 -:108C30001201002B33D0049BD2B298180099029AEB -:108C4000FFF76CFF013D10220021300002F0ECFD27 -:108C5000ADB2049F2D017D19AF4242D0002C33D01C -:108C6000300002F061FD029B002B00D189E7180063 -:108C700002F05AFD85E729003000FFF759FF280070 -:108C80002549009AFFF74AFFA7E729000098FFF758 -:108C90004FFF28002049019AFFF740FFA5E70F2169 -:108CA0000F4004998A18D9B28F4208D9D15C06A81E -:108CB00019540133102BF6D1029A0199C0E7791AA1 -:108CC00048424141C901F2E73900300006AAFFF7E6 -:108CD00025FF3200039806A902F06EFE103704004B -:108CE000BAE7002CBCD13000029906AAFFF716FFA4 -:108CF000320006A9039802F05FFE0822040031004A -:108D0000059802F0D9FEABE71324A9E71324AAE7DC -:108D1000002800D06EE733E7C8BE0011F0B58BB075 -:108D20000F0016000225009000283FD0002A3DD0F9 -:108D30000B1DDBB21800029302F01EFE1135041E5B -:108D400034D0FDF747FD05003A000099201D02F0E0 -:108D500083FCEBB20393E3702B0CDBB22F0A00937E -:108D60006370FFB22B0E2370A7700193FDF72CFDEB -:108D70001022010006A802F06FFC2100029A04AB49 -:108D800006A8FFF7E9FE051E0DD1039B08223370EC -:108D9000009B04A9B370019B7770F370301D02F043 -:108DA0005BFCFDF71DFD200002F0BEFC28000BB0AF -:108DB000F0BDF0B58FB00D00149E039004920593A2 -:108DC000002A03D1022420000FB0F0BD002EF9D0FC -:108DD0000398FFF7E5FD1424071EF4D0727833786A -:108DE00012021A43B3781B041343F27812061A4393 -:108DF000036A0192934201D30133E3D1002D03D0E2 -:108E00003B7901249B07DED50822002106A802F049 -:108E10000BFD059B13240433DBB21800029302F010 -:108E2000ABFD051ECFD0059A0499043002F014FC66 -:108E300004223100280002F00FFC3900102210310A -:108E40000AA802F009FC2900029A06AB0AA8FFF75B -:108E500083FE041E0FD1082206A908A802F0FCFB1D -:108E60000822311D08A802F097FE012807D10199B8 -:108E70000398FDF7C9FC280002F056FCA3E7012483 -:108E8000F9E7000070B51C4C05002368181E10D0CF -:108E9000002D14D11A78002A0CD1981C083202F047 -:108EA0000BFE02F021FD0135002808D123681D705A -:108EB000012070BD0A331800082202F0FDFD23686E -:108EC000002BF5D0122002F05FFD061E0DD0C1234D -:108ED00021680370457002311022023002F0ECFD6F -:108EE00023683100587802F00FFC206802F01CFC67 -:108EF00000232360DCE7C046E065FF1FF8B50400EF -:108F00002020FDF755FB0D4EA700BB590500002B97 -:108F10000DD000280BD0D878FF2809D108492A00A5 -:108F20000C55F35907480333611802F0C5FCF8BD2E -:108F3000290002F069FB0028F0D1F8E7FC65FF1F6B -:108F4000E465FF1F55A1001170B5064D84006359FB -:108F5000002B05D0D87802F04FFCFF226359DA705D -:108F600070BDC046FC65FF1F70B506008CB00C00DC -:108F7000150000213022684602F056FC3100102214 -:108F8000684602F069FB1D2021000322684402F0BC -:108F900063FB6846FFF7D8FD2D210400032228005B -:108FA000694402F059FB20000CB070BDF0B5070019 -:108FB000160097B001931CAB1D7830221EAB0091B8 -:108FC0000AA800211C7802F02FFC102239000AA800 -:108FD00002F042FB1022002102A802F025FC072229 -:108FE000310002A802F038FB072202AB9818631E7A -:108FF0009C41019902F030FB02AB9C732B005A1E7E -:10900000934102AAD3730021102206A802F00CFC9F -:1090100006221D9907A802F01FFB1A2002ABC018F8 -:1090200006221F9902F018FB102200990EA802F0E8 -:1090300013FB102202AB0EA908781C78013A60409D -:10904000D2B2087001330131002AF5D10AA8FFF726 -:109050007BFD102212A904000EA802F02DFD1022A3 -:1090600006AB0EA908781D78013A6840D2B20870A4 -:1090700001330131002AF5D10AA8FFF765FD044349 -:1090800010222098E4B212A902F0E6FA200017B0EC -:10909000F0BD70B50E0014008CB0010010226846BF -:1090A0001D0002F0D9FA3100082204A802F0D4FA17 -:1090B0002100082206A802F0CFFA6846FFF744FD17 -:1090C00004001022280008A902F0C6FA20000CB003 -:1090D00070BDF8B506000D0000243719AC4200D36E -:1090E000F8BD02F059FC030A3B70631CDBB2013788 -:1090F0009D4203D90234F054E4B2EEE71C00EDE7E0 -:1091000073B506000C000225002819D0002917D0DD -:10911000032101A8FFF7DDFF6B469A793F231A4030 -:10912000013313436A463000937101A92200FFF70F -:109130001BFF051E04D10322E01C01A902F0BCFCA8 -:10914000280076BD03785807DA08C00FD2008000E7 -:109150009B0710439B0F1843C0B2704707230B4077 -:10916000C908C9000B4303707047000070B50400C4 -:10917000FFF7EAFE134DA4006359002B21D0186AB3 -:10918000002801D002F0D0FA2B59986E002801D0A7 -:1091900002F0CAFA2B59D86E002801D002F0C4FAA6 -:1091A0002B59186F002801D002F0BEFA2B59586FC6 -:1091B000002801D002F0B8FA285902F0B5FA0023CD -:1091C0002B5170BDFC65FF1F0E4B8000C35870B55E -:1091D0000C00002B0FD09D68002D0CD02B78201D8B -:1091E0000B706B784B70A97CFFF7B8FF2B7E237256 -:1091F0006B69E36070BD10220021200002F014FBB7 -:10920000F8E7C046FC65FF1F014B18607047C04679 -:10921000F865FF1F074A03008000825810B5002A36 -:1092200006D0D088984203D1012901D1FFF79EFFD3 -:1092300010BDC046FC65FF1FF0B5264E95B08700F7 -:109240000B93BB590500099112200A92002B31D0D3 -:10925000D888FFF7A5FB04001420002C2AD0280092 -:1092600010A9FFF7B1FFBB591E781D6A002E23D04D -:109270000895FDF7EFFA07000020FDF7F1FA0790D7 -:10928000A379E61D069310AD0CA9089800F0E2FA48 -:109290000EA9280000F0D7FA0B9B0A990493069BAD -:1092A00009980293079B0396019300970EAB0CAAB3 -:1092B000FFF77CFE15B0F0BDFDF7CCFA069030004C -:1092C000FDF7CEFAE31DA779079310AB06000893CC -:1092D000DAE7C046FC65FF1F30B50C4C85002A5903 -:1092E000030085B00120002A0ED018006946FFF760 -:1092F0006BFF2B591A78D888054B002A00D1054BF3 -:109300006A46072100F0D9FB05B030BDFC65FF1FA0 -:10931000479800115598001130B5094C850029591E -:1093200085B010226846253102F0C6FB2A5911216A -:10933000044BD0886A4600F0C0FB05B030BDC04683 -:10934000FC65FF1FF198001130B5094C85002959C3 -:1093500085B010226846353102F0AEFB2A59112142 -:10936000044BD0886A4600F0A8FB05B030BDC0466B -:10937000FC65FF1F2F990011F7B54D4F8600102097 -:10938000F4590D0002F0F8FAF3592062186A13221A -:1093900000286CD0033A29009C6802F08DFBF35939 -:1093A0001A780192002A58D11E6A227D317B944698 -:1093B00051400122019F114201D167461740217D92 -:1093C000914339432175377B4F40BC4660460027A7 -:1093D000800701D44F081740012102208F40227DD1 -:1093E00082433A432275377B5740BC46604600278C -:1093F000400701D497080F400420227DBF0082431C -:109400003A432275627D002794466046727B424053 -:109410000A4201D167460F400121627D8A433A43E7 -:109420006275777B5740BC4660460027800701D4B1 -:1094300057080F400220627D7F0082431743677503 -:10944000767B00227E40760701D4BA080A400426C3 -:10945000617D9200B1430A4362756A78002A08D0A0 -:109460006278002A05D005220533DA770022100041 -:10947000FEBD04222979114205D1A17C114202D1FD -:109480000533033AF1E7019A21782C78002A02D1BA -:109490000A002100140018220429E8D8042CE6D878 -:1094A00005206043034A05331218525CDDE7C046CD -:1094B000FC65FF1FD8BE001110B50A001121024B38 -:1094C00000F0FBFA10BDC0468B9900110B0030B5BF -:1094D00087B001AD2B806B4604001100981D082257 -:1094E00002F0EAFA2A000B212000024B00F0E5FA14 -:1094F00007B030BDB399001110B50A001121024B1D -:1095000000F0DBFA10BDC046079A001113B50B003E -:1095100011006A4613706B4604000622581C02F0C4 -:10952000CBFA6A4608212000014B00F0C6FA13BDB1 -:10953000279A001110B50A001121024B00F0BDFA64 -:1095400010BDC046779A00117FB505000B4BAA00ED -:10955000D4580800002C0FD0666F237FE288217852 -:109560000396266F0296E66E0196A46E0094FDF7B0 -:1095700009FC2800FFF7FAFD7FBDC046FC65FF1F10 -:1095800010B51721FFF7E0FF10BD000070B50A000D -:109590000D00064B0221040000F08FFA0600297826 -:1095A0002000FFF7D1FF300070BDC0465799001171 -:1095B00070B586B000236A461370836804001D7876 -:1095C000681E0A2859D801A902F036FA0606333770 -:1095D0003B3F43474B4F5300180000F042F906232E -:1095E00012284BD000281BD16088FFF7D9F9082337 -:1095F000002813D04279002A47D1264B1A78072336 -:1096000012070BD5244B1A680723002A06D01668C8 -:10961000002E03D0290001AAB04703006A46137048 -:109620006B461B786088002B2AD1FFF767FC06B0D9 -:1096300070BD180000F06CF9D4E7180000F087F94D -:10964000D0E7180000F093F9CCE7180000F0ADF96E -:10965000C8E7180000F0C3F9C4E7180000F0F6F9F5 -:10966000C0E7180000F0F6F9BCE7180000F013FAA4 -:10967000B8E7180000F013FAB4E707236A4613703E -:1096800069466088FFF782FFD1E70523012AC5D12B -:10969000024BB8E78964FF1FF465FF1FF865FF1FE1 -:1096A000F8B52C4F8600F35904000D00002B40D074 -:1096B000DA8882423DD15A78062A33D11A78002AB4 -:1096C0002ED0012099681A6A097D014206D0157BC7 -:1096D000054203D007225A700120F8BD0220014242 -:1096E00004D0157B054201D00922F4E70420014291 -:1096F00004D0127B024201D00B22ECE7164B1B6810 -:10970000002BE9D05B68002BE6D020009847BB59BE -:1097100000215B78122BDFD12000FFF715FFDBE77C -:109720000E4BECE7112A04D1002900D03225290084 -:10973000F2E7002D08D12000FFF732F9002803D00E -:10974000102302791343037121002800FDF798FAD2 -:10975000C2E7C046FC65FF1FF465FF1FF865FF1FE9 -:1097600070B50E4E8500AB590400002B13D01B784A -:10977000002B11D10A4B1B68002B04D05B68002B17 -:1097800001D02000984773595B78122B03D1002138 -:109790002000FFF7D9FE70BD024BECE7FC65FF1F10 -:1097A000F865FF1FF465FF1F094B8000C3581020A8 -:1097B000002B0CD01A6A002A09D09B68002B06D017 -:1097C000127A1B7E101C9A4200D9181CC0B2704736 -:1097D000FC65FF1F70B503000D0014000220002A75 -:1097E00030D000292ED013700B78081D53704B78A1 -:1097F0009370FFF7A7FCE070012002212B7A237100 -:109800006B7B034063716A7B0A40134304226371DC -:109810006E7B1640334363716E7BF608F60033436C -:1098200063712B7B0340A371287B014000200B4315 -:10983000A371297B0A401343A3712A7BD208D2006B -:109840001343A37170BD10B50A0001000120FFF79A -:10985000C1FF10BD10B50A0001000220FFF7BAFFDA -:1098600010BD70B506000C000220002E30D000297B -:109870002ED07378201D0B70B3784B70F178FFF702 -:109880006DFC01223579257271794B100800134067 -:10989000934010400343881010408000C9080343E0 -:1098A000C9000B436373B1794B1008001340934018 -:1098B00010400343881002409200C9081343C900B6 -:1098C0000B4321202373FCF773FE854201D2122043 -:1098D00070BD2220257AFCF76BFE8542F7D82378ED -:1098E0001820042BF4D86378012BF1D80020EFE77F -:1098F000030010B50220002909D0002B07D0032255 -:10990000481C0A7019000D3202F0D6F8002010BD74 -:1099100003000222080010B5002B06D0002904D055 -:109920000E32591C02F0C8F80022100010BD0300CE -:1099300010B50220002909D0002B07D00422481CB2 -:109940000A7019000C3202F0B7F8002010BD10B5F3 -:10995000FFF7DEFF10BD03000220002906D0002B18 -:1099600004D0052200200A701B784B70704703005A -:109970000220002B08D0002906D05B7800200B7055 -:10998000013B082B00D918307047030010B50220A6 -:10999000002909D0002B07D00622481C0A701900A4 -:1099A0000A3202F089F8002010BD10B5FFF7B0FFB1 -:1099B00010BD02000B00022010B500290ED0002AB5 -:1099C0000CD007211970118859701188090A9970F3 -:1099D00011180822D81C02F06FF8002010BD0300F7 -:1099E0000A00022010B5002B0CD000290AD099786B -:1099F0005878090201431180901CD91C082202F0FA -:109A00005BF8002010BD030010B50220002909D02A -:109A1000002B07D00822481C0A701900921802F087 -:109A20004BF8002010BD02000B00022010B50029E9 -:109A30000BD0002A09D00921197011781818597013 -:109A4000511C062202F038F8002010BD10B5FFF7B7 -:109A50005FFF10BD02000B00022010B5002A09D0E4 -:109A6000002907D05178197011180622581C02F0ED -:109A700023F8002010BD030010B50220002909D0F2 -:109A8000002B07D00A22481C0A701900063202F087 -:109A900013F8002010BD10B5FFF73AFF10BD02000B -:109AA0000B00022010B5002A06D0002904D01800AF -:109AB0005178FFF753FB002010BDF0B585B01700BB -:109AC0001E006A4606230500080091819380FEF778 -:109AD000C0FC1324011E02900CD03800B047041EB5 -:109AE00005D1280001A9FEF76FFA041E02D00298E2 -:109AF00002F05AF82800FFF701FA200005B0F0BD87 -:109B0000F0B504008BB0019115000021102202A8CD -:109B100001F08AFE334EA700B85900283CD0C38814 -:109B2000A34239D10378002B36D14278062A18D1C6 -:109B300002000100553235310C3006ABFFF7A9FAAF -:109B4000002829D12000FFF72FFE020006A902A855 -:109B500001F0B2FF200002A901F05EFD01200BB070 -:109B6000F0BD816E002917D00B8A112A28D19D42A1 -:109B70000ED101981231093A02F00EF8012807D1EE -:109B8000BB5920009D6EFFF70FFE29000200DEE7A3 -:109B900032212000FFF7D8FC2000FEF701FF061E4F -:109BA0001BD0416A002918D00B8AAB4215D108227C -:109BB0000198123101F0F0FF01280ED1716A0AE01C -:109BC0009D42E9D108220198123101F0E5FF0128F8 -:109BD000E2D1BB59996E8A7EB9E7200001F0E4FD1D -:109BE000BCE7C046FC65FF1FF0B56B4D87007E5992 -:109BF00085B0337802900393002B00D087E0B368E0 -:109C0000346A01937078062817D101221B7D134214 -:109C100002D0217B114218D10222134202D0217BB3 -:109C2000114251D10422134203D0237B134200D0AE -:109C30008BE0019B5A7DEB5991E007380428F8D856 -:109C400001F0FAFE032E42678300B36E002B03D1AE -:109C50001C2001F091FEB066EB599C6E002C1CD0CC -:109C600010220021200001F0DFFD0298FFF79CFD8B -:109C700001002000FFF72DFA01F08EFE2082200067 -:109C800008211230FFF725FA0298FFF78DFDA07624 -:109C9000EB592100D888FFF70FFC0822EB591CE094 -:109CA000B36E002B05D01A00198AF0881232FFF724 -:109CB0000DFC0222019B197DEB5911423DD0207B06 -:109CC00010423AD0073208E0F488FCF7DBFD0100CF -:109CD0002000FFF711FC0A22EB595A70029B9C00EE -:109CE0002A595378073B042B11D8D088FEF758FE29 -:109CF00000284ED0C3895A08D2182849029B0298DE -:109D0000CB542B5941180433254801F0D5FD05B03B -:109D1000F0BDFCF79FFD03000120834201D100202C -:109D20000393EB59DE88FCF79BFD0399020030009A -:109D3000FFF7ECFB019AEB59117D042211420CD084 -:109D4000217B114209D00B22C7E7F688FCF73CFDC6 -:109D500001003000FFF7EEFB6BE7019A527D012115 -:109D60000A4204D0607B084201D00C22B5E70221F0 -:109D70000A4204D0607B084201D00E22ADE70421E4 -:109D80000A4204D0627B0A4201D01022A5E71222C7 -:109D9000A3E7FA225200B0E7FC65FF1F0066FF1F31 -:109DA0005FA1001110B5064B1A780423100018406B -:109DB0001A4200D00348FFF727FA002010BDC04622 -:109DC0008964FF1F4443FF1F70B50400FFF7D4FAF6 -:109DD000051E43D12000FFF77FFA234EA400A059AF -:109DE0008268937CDB0708D50321036A1B790B404B -:109DF000012B02D1017F0B430377431DD97F8B1EBB -:109E0000022B0DD8022900D00121C088FCF790FF59 -:109E1000042133591A7F59700A431A77280070BDFC -:109E200001290CD102231022437000210C3001F0D3 -:109E3000FBFC305910213530FFF74BF9EEE70529CF -:109E4000ECD10223D118437010220C3001F034FE03 -:109E500004233259117F0B431377EAE708251828AA -:109E6000DCD1053DDAE7C046FC65FF1FF0B58BB0DD -:109E7000059143887E4F9E00F45915000493002CF1 -:109E800015D1012902D000200BB0F0BD101D57786C -:109E90001678FFF757F9EB68320002932B7A049992 -:109EA000019300903B002000FCF70CFFEBE7E388F8 -:109EB000049A934201D00820E6E72378012B00D1D1 -:109EC000D4E0059B581E092800D9CFE001F0B4FD6D -:109ED00005CE0A29CC506C859AB229000498FFF768 -:109EE00073FFD1E7200029001022453001F0E4FD86 -:109EF000B9594B78042B02D1013B4B70C3E70B00DF -:109F00000A00253335320C310498FFF795F904988F -:109F1000FFF702FA0522431E9841BB59C0005A7050 -:109F2000B2E7200029001022553001F0C5FD049B46 -:109F30004F4C9D00295904980A0006AB55320C314C -:109F4000FFF77AF929591022453106A801F024FEBD -:109F5000012808D10498FFF7F7F90590002804D1EB -:109F600006222B595A7005988EE708230593FAE7C5 -:109F700063780C2B7AD1E36E002B03D11C2001F007 -:109F8000FBFCE066BB59D86E00286FD01022290078 -:109F900001F092FDBB590498DC6EFFF705FC0D2221 -:109FA000A076BB595A706EE7E06E00285ED06378E9 -:109FB0000D2B5BD12B8808220382A91C123001F0E3 -:109FC0007BFDBB599A68517D0222114226D0186A46 -:109FD000407B104222D00C32E4E763780E2B45D14F -:109FE000236F002B03D1162001F0C6FC2067BB595C -:109FF000186F002803D01022290001F05DFD0F2208 -:10A00000BB59CFE763780F2B30D1206F0622691C34 -:10A01000103001F051FDBB599A68517D0422114264 -:10A0200003D0196A497B1142D5D100210498FFF76A -:10A030008BFA28E7636F002B0DD0BB59586F0028AF -:10A04000F3D01022290001F037FD0122BB59524202 -:10A050005B6F1A61E9E7142001F08EFCBB59606761 -:10A060005B6F002BE9D126E72978DFE707200BE7B4 -:10A07000FC65FF1F10B5064C207001F0F5FB0621B2 -:10A080002078FDF791FF0348FEF778FC10BDC0462D -:10A090000F66FF1F1592001100200BB270B50D0066 -:10A0A000834216DA264B187801F066FB041E0DD0A9 -:10A0B0000378922B0ED0A02B37D0224B1878FF2894 -:10A0C0003AD0210001F020FB002835D18020000289 -:10A0D000684070BD43780E2B0BD03E2BEDD18378BA -:10A0E000052B12D0082BE8D181798088FFF7D8FAA8 -:10A0F00008E0154B82889A42DFD183681878591C92 -:10A10000FEF7C0FE002817D1D7E7104B1B785B077E -:10A1100012D50F4B1B68002B0ED09B68002B0BD069 -:10A12000C289811D80889847ECE7FFF741FAA06853 -:10A13000002801D001F038FD200001F075FCC5E7D2 -:10A140000F66FF1F3D43FF1F182000008964FF1F9B -:10A15000F865FF1F10B50078FFF712FA10BD10B5B3 -:10A160000078FFF7FDFA10BD0C234343084A10B5F1 -:10A170009B185A68002A03D0012901D1904710BDCD -:10A180009B68002BFBD00029F9D19847F7E7C04620 -:10A190002C66FF1F01238340094A10B5946B1C43B2 -:10A1A0009463506B98435063D46B2000984301290B -:10A1B00001D120001843D063116B0B43136310BD12 -:10A1C00000800040F0B500240127154B85B0DA6B04 -:10A1D000144E03921A6C0192DA64019BE3403B42F5 -:10A1E00017D0039DE5403D400295E5B20299280055 -:10A1F000FFF7BAFF316A736A002908D03900002BD3 -:10A2000001D0029979402800FFF7C4FF01E0002B3C -:10A21000F9D101340C36172CDFD105B0F0BDC046A2 -:10A22000008000401066FF1F064B01215A68C240A3 -:10A230000A4204D01B68C3401800084070471B6DD9 -:10A24000F9E7C046008000400122064B8240002909 -:10A2500003D0D9680A43DA607047D9689143D9605E -:10A26000FAE7C0460038004030B5032444430F4BA2 -:10A27000E25C1B199C785D7801232D1B0135AB40F6 -:10A28000013BA340A140DB430C00122807D808493A -:10A2900092005218116819402143116030BD054ADF -:10A2A00011680B4023431360F8E7C0461FBF00113D -:10A2B00008F0004014F00040C21F70B5D4B206236D -:10A2C000092C0BD80125084C9540002908D0002105 -:10A2D000FFF7CAFF23682B4323600023180070BDDB -:10A2E0002368AB43F8E7C04600380040214BF0B587 -:10A2F0001B185B78022B21D1032444431E4A1F4EB6 -:10A30000A35C12199478012215008540B76B013CBB -:10A31000E4B23D43A240B563194C122815D89B0006 -:10A3200000290CD117495B1899680A439A600123E8 -:10A33000205C154A834011680B431360F0BD11493E -:10A340005B18996891439960F1E70E4B00290DD194 -:10A3500059690A435A61225C1328E8D00123203A44 -:10A3600093400A49086803430B60E7E75969914342 -:10A370005961F0E71066FF1F1FBF00110080004009 -:10A3800064BF001100F00040A0F00040A4F00040C5 -:10A39000F8B500241B4E1C4D1C4B1B5D012B1FD11F -:10A3A000194A9269E2401A420BD00122B2569340F8 -:10A3B0002200143AD2B2022A09D815494A69134335 -:10A3C0004B61013402360C35172CE5D1F8BD002263 -:10A3D000B2560F499200521891680B439360F0E710 -:10A3E000022BEED1E7B23800FFF71EFF01235840E1 -:10A3F000C1B23800FFF77AFF3800FFF715FF687722 -:10A40000DFE7C046F1BE00111066FF1F1166FF1F97 -:10A4100000F00040012202388240054B002903D0A1 -:10A4200059690A435A617047596991435961FAE77A -:10A4300000380040F8B50E0001210F008740114A96 -:10A440000400D368FD43BB43D360831E8B4201D815 -:10A45000FFF7E0FF00212000FFF72EFF0A4A0B4B19 -:10A460005168012E05D139431B1951605E700020DF -:10A47000F8BD2940516002221C1962709A6915408A -:10A480009D61F4E700380040008000401066FF1F27 -:10A49000012210B58240074B002906D019680A43F3 -:10A4A0001A600121FFF7C6FF10BD196891431960BA -:10A4B000F7E7C046008000400C2370B500254343F9 -:10A4C0000A4A29009B181D70094B04001B185D7077 -:10A4D000FFF7B0FF0123A340064928000A681A438A -:10A4E0000A6005490A689A430A6070BD2C66FF1F1E -:10A4F0001066FF1F348000403080004070B50400BB -:10A500000E00FF2813D003250540FFF7D5FF084AAA -:10A51000A3089B009B183F22ED00AA40AE4019689B -:10A5200020009143314319600121FFF78DFE70BD7A -:10A5300018380040F8B50C244443134B0500E418C8 -:10A540006368002B03D1A3681220002B1AD00222CB -:10A5500001270E4B00215B195A7028002770FFF766 -:10A5600069FF63681E1E08D0A3683E00002B04D05C -:10A570002800FFF759FE4640F6B228003100FFF7E9 -:10A5800009FE0020F8BDC0462C66FF1F1066FF1FA5 -:10A59000F7B5C420FF222B4B8000195800249143AB -:10A5A0003F3A0A431A508022274F5202274E1A6020 -:10A5B000274B1D5D002D21D0A31E012B03D80121A7 -:10A5C000E0B2FFF727FF012D18D11F4B9B69E34035 -:10A5D0002B4213D0E3B218000193FFF725FE0100D0 -:10A5E0000198FFF755FFE3B2143B022B1DD8012160 -:10A5F0007156184A8D405369AB4353613B7F002B22 -:10A600000DD0E5B22800FFF795FF2800FFF70CFEFC -:10A610007B7F0100834202D02800FFF7A5FD0134B3 -:10A620000C370236172CC3D1F7BD01210023715618 -:10A63000F3568D40074A9B009B189A68AA439A607C -:10A64000DCE7C04600E100E01066FF1FF1BE00112C -:10A650001166FF1F00F0004070B50E0015000400E9 -:10A66000FFF72AFF0C236343094A20009B189D60D3 -:10A670005E60FFF75FFFF021064B074A8900051E69 -:10A680005A5002D02000FFF717FF280070BDC046C7 -:10A690002C66FF1F0000FF1FC5A1001170B5134DF0 -:10A6A00007202C78002C1FD198222100520028006E -:10A6B00001F0EAF80123C420FF222B700C4B80002C -:10A6C0001C635C630B4B1C605C600B4B1958914323 -:10A6D0003F3A0A431A50802252021A600D20074A5C -:10A6E000074901F099F8200070BDC0461066FF1FB1 -:10A6F00000800040A0F0004000E100E091A50011C2 -:10A7000091A30011030010B50620072B09D8054AB4 -:10A71000137001F099F8D7210020034B034A8900F8 -:10A720005A5010BD6C43FF1F0000FF1FD91AFF1FB6 -:10A7300070B51D0002240C2910D8094ACA40D2075E -:10A740000CD5FBF741FF041E08D1059A0499280097 -:10A75000FBF756FFFCF7C4FDFFF724FB200070BD9C -:10A760001210000030B50D7802232C009C431842D3 -:10A7700001D02B431C0008252300AB43284201D005 -:10A780002B00234320241D00A543204201D01C435D -:10A7900025002A230D70184204D011781E3B0B436C -:10A7A000137030BD0028FCD10C2113788B43F7E7E0 -:10A7B000F8B51D0006AB1B88140007AA0E000B207D -:10A7C0001778002B27D10A78022A49D14A68507895 -:10A7D00011780002244A08438018042840D801F068 -:10A7E0002BF903121D1B2300F06801F045F9021C30 -:10A7F000C0B2B84200D93A1CD2B22000F1682A8017 -:10A8000001F05AF906E00222F3681B882A802370BF -:10A810001B0A63700020F8BD0622EEE701232B809F -:10A82000F3681B782370F5E7F368002B16D0082235 -:10A830002A801A8822701A88120A62705A88A270B6 -:10A840005A88120AE2709A8822719A88120A6271F2 -:10A85000DA88A271DB881B0AE371DBE72B80D9E77A -:10A8600001202B80D7E7C04600D6FFFFF7B51600C2 -:10A870000A781D0008AB1F880C000123022A18D19A -:10A880004A685078117800022B4A08438018032840 -:10A890000FD801F0D1F802254439E06801F0ECF856 -:10A8A000C0B20723B84204D37B190193152B02DDF4 -:10A8B0000D231800FEBDE0682A003100C01901F028 -:10A8C000FBF86B4600209B88E268D0541B4B1B684A -:10A8D000834203D01B68834200D098470023E8E7F7 -:10A8E0000B23002FE5D1022DE2D1737832781B02C1 -:10A8F0001343E2681380114B1B68002BEED01B68DA -:10A90000002BEBD00120E8E70B23002FD1D1062D3F -:10A91000CED12A003100E06801F0CEF8DEE70B234B -:10A92000002FC6D1012DC3D132787533012AC0D88A -:10A93000E3681A70D2E7C04600D6FFFF1C68FF1F0D -:10A9400070B50C001500072837D801F075F804140D -:10A9500036361B36242E182015290BD8184E1622F1 -:10A960000021300000F060FF22002900300001F0DB -:10A97000A3F8002070BD18200229FBD11288114BCA -:10A980001A80F6E718200829F4D10A000E48290099 -:10A9900001F0BAF8EDE718200129EBD10B4B107844 -:10A9A0000B49DA69FFF7DEFEE3E718200129E1D160 -:10A9B000064B10780749DA6BF4E70220DAE7C04665 -:10A9C0000468FF1FEA43FF1FE043FF1F7043FF1FA0 -:10A9D0009843FF1FB843FF1F030010B50020DB079B -:10A9E00004D50721024A034800F08CF810BDC04688 -:10A9F0007CBF00117043FF1F054A03001068002848 -:10AA000003D082889A4201D1806870470068F6E7D7 -:10AA1000146AFF1F0A88030008009A4204D08A883B -:10AA200004309A4200D0002070470000F8B5F222AE -:10AA300000230D4F0D4E7968050042433370994253 -:10AA400000D07B600A4C0021200000F0EDFE0023C6 -:10AA50001A007C60AB4202D100203370F8BD013394 -:10AA60002280DBB2F234F5E70C6BFF1F0A6BFF1F8D -:10AA7000186AFF1F73B56B46019006006846150003 -:10AA80001980FCF75FFF041E11D1002D0FD07689CD -:10AA9000002E11D00C2000F06FFF00280ED0084AC5 -:10AAA0000460136886808560002B02D1106020004E -:10AAB00076BD1A001B68F7E70224F8E71324F6E7CF -:10AAC000146AFF1F012100220A4B10B549420A4CAB -:10AAD000198099809A719A70084B20700120198012 -:10AAE0005A60FFF7A3FF2078FCF78AFF0448FDF7C0 -:10AAF00045FF10BD2468FF1F146BFF1F0C6BFF1F69 -:10AB0000B1AB0011022310B5002802D0FFF7B2FF4D -:10AB10000300180010BD0000030010B50020DB0783 -:10AB200004D50421024A0348FFF7A4FF10BDC04624 -:10AB300090BF0011F043FF1FF0B50E2687B00393BE -:10AB40000CAB1F8802ABF61805000800310002921A -:10AB5000FDF77AF804000120002C0FD03088FFF7B1 -:10AB60004BFF03000E20002B08D05E68002E05D09E -:10AB700021002800039B029A0097B04707B0F0BD60 -:10AB80000A4B10B5984207D10122002352420A8095 -:10AB90008B708A808B7110BDFFF73CFF0028FAD0C4 -:10ABA00001235B42038000238370F4E7FFFF000072 -:10ABB000F8B5050001290AD1134E00243388F22785 -:10ABC000AB4219D028001149FFF7DAFF06E002294D -:10ABD00004D10139FDF750FF0028EDD0F8BD3B004E -:10ABE00063437268D018D35A002B09D03A00002171 -:10ABF00000F01AFE0134E4B2054B1B78A342EED8F4 -:10AC000001235B423380DDE70C6BFF1F2468FF1FCD -:10AC10000A6BFF1F10B5FFF7FDFE03000020834203 -:10AC200000D0987810BD0000F0B589B01C000EABC4 -:10AC300080CB03901E8810AB1B78049202930B7A92 -:10AC40000D00DB0616D42B780593022B24D0049834 -:10AC5000FFF7D2FE002812D003689C46002B0ED0CE -:10AC6000029B2200019329003B0064460398009652 -:10AC7000A04705E00498FFF7BFFE002802D10E2090 -:10AC800009B0F0BD8368002BF9D00A22290003988F -:10AC900098470028D7D0F3E76B6858781A786B4B41 -:10ACA000000210439842D2D8043B984210D2684B1D -:10ACB000984242D015D8674BC0180128C7D80B203E -:10ACC000002EDDD1EB681A7859683A80200028E020 -:10ACD000614BC018032800D979E000F0ADFE846A0A -:10ACE000789E5E4B9842B2D10B20002EC8D1012332 -:10ACF0003B80EB6831001B7823706889013080B29B -:10AD0000FCF7A2FF3A88031E0ED0017802328A189F -:10AD10003A80428962704289120AA27059680278A8 -:10AD2000E01C00F0C9FE06E004323A803100042243 -:10AD3000601C00F079FD0020A2E70B20002E9FD1BF -:10AD4000EB6807A91E8804233B80330A3000267075 -:10AD50006370FCF779FF051E28D004AB9A890E2397 -:10AD600004A95B183E49C668FCF7E2FF00280BD136 -:10AD70002B783C486A680599FBF798FB002803D1BB -:10AD8000012304AA5B42D3813278022A06D171687A -:10AD9000201D00F091FE3B8802333B800E2304AA65 -:10ADA0009B181B88A3701B0AE370C4E704ABDE8109 -:10ADB000F4E70B20002E00D062E7E9680398FFF764 -:10ADC00029FF02233B802070000A6070B3E70B204C -:10ADD000002E00D054E70222EB681B883A802370D3 -:10ADE0001B0A6370A7E7E86800F046FEC2B20300E2 -:10ADF0000720B24200D243E70DD00299DBB27118AE -:10AE0000994202DB921BD3B20293029BE9681A00BB -:10AE10003B8089195AE70023F6E70B20002E00D06B -:10AE20002EE70722EB683A801A7822705A7862700F -:10AE30005A88A2705A88120AE2701A792271DA8846 -:10AE40006271DB881B0AA37175E7C0460429000004 -:10AE50000228000000D8FFFFFFD6FFFF03280000F4 -:10AE6000FFFF0000C0BE0011F0B58DB06B460020A2 -:10AE7000089120229B5E83423DDAA64B187800F0B1 -:10AE80007BFC071E32D00378B02B2CD1007902381E -:10AE900016281FD800F058FE17001E001E001E00C6 -:10AEA00031001E0096001E001D011E0052011E00F2 -:10AEB00073011E00CD011E0050021E001E001E0068 -:10AEC0008E021E00E302944B94491B8878880B8005 -:10AED000FBF72CF83800FCF7ADFF914B1B68002BFB -:10AEE00001D038009847380000F09EFD8020089B74 -:10AEF0000002434018000DB0F0BDEE22002187484B -:10AF000000F092FC0BAA3B7B7989388900923A00C9 -:10AF10000D32FCF7B1FD0400804B1B78002C3FD1B3 -:10AF200046E0804B788805937F4B4100CB5A0BAEAF -:10AF3000073BDBB232880293002301937B4B210055 -:10AF400006930093059BFFF76FFE744D002810D108 -:10AF5000069B3A8A1B889A420BD138000599123019 -:10AF600000F01AFE002804D02B7862899B00EB18B1 -:10AF70005A80162306A81B18328820007989FCF70E -:10AF8000D7FE2B7804009A00AA1851880029C3D054 -:10AF90000133DBB22B70002807D006A9C98A918043 -:10AFA000634A12889A42BCD802E00121494291804A -:10AFB000002B04D059497888FAF7ECFF8AE73E89DC -:10AFC0000A2479E000253E89574B06937B88069A30 -:10AFD0005B009B5A033B9D4202DB002DF0D05BE0FF -:10AFE000162206A812183B7B798900923A0030009D -:10AFF0000D32FCF741FD0590002858D04689017AB2 -:10B000007888FCF703FD041E44D1464B78880793EB -:10B01000069B4100C95A454B0439C9B206AAD28AD7 -:10B0200006930291019400930599079BFFF7FCFD9D -:10B03000041E2FD1069B39491A88931C002D26D156 -:10B040004B807988384B4900CB5A5119033B8B42CE -:10B0500020DD059B31485B8941190B71A91C013525 -:10B06000C9B2EDB2059145191B0A2B71059B2D49FB -:10B070000433181800F020FD2C4B059A1B88D318B8 -:10B08000DDB22C4B9E4205D00136B6B29CE7498812 -:10B090009942D6D0002D0CD0204C2800618800F0B9 -:10B0A0008BFB207021007888FAF784FF12E7059C5B -:10B0B000F0E7002C00D183E77B78142B00D109E75F -:10B0C00016493B794E800B700C717888FAF724FF93 -:10B0D00000E7162406ABE41821003889FCF7B4FD1C -:10B0E000011E00D1B7E1788822880F4C45002C5B07 -:10B0F0000A4D013CE4B2029400240F4B01940095E8 -:10B10000FFF792FD041E00D014E129007888FAF7B9 -:10B1100061FFDFE6146BFF1FDC42FF1F2C68FF1F7F -:10B120002068FF1F2069FF1F5C64FF1F106AFF1F5C -:10B13000DA42FF1FFFFF00002E68FF1F162406AB38 -:10B14000E41821003889FCF77FFD011E00D182E15F -:10B1500078882288AE4C45002C5BAE4D013CE4B2B1 -:10B1600002947C89AC4B01940095FFF75DFD041EB1 -:10B1700000D0DFE029007888FAF736FFAAE600253C -:10B18000A44B1D803B00F6331B78A24A78880792B7 -:10B19000AB4208D99E4B12880693069943005B5A2E -:10B1A000013B9A4203DB0799FAF728FF92E616243F -:10B1B0006B00FB18059306ABE418059B210018896A -:10B1C000FCF742FD011E03D1059B01241E8973E794 -:10B1D0007888924B2288069C099343001B5B904E13 -:10B1E000013BDBB20293002300960193099BFFF71A -:10B1F0001BFD041E02D0059B1E895DE77B88069A15 -:10B200005B009B5A079A108832881218934202DC1E -:10B210001B1A013B33807F4C023032880999001998 -:10B2200000F04AFC2388328801359B182380EDB258 -:10B23000A8E70BAA3B7B7989388900923A000D3246 -:10B24000FCF71AFC00250590059B002B04D10A246D -:10B25000002D00D16EE060E0059B7888197AFCF73C -:10B26000D5FB0100041E63D1694C6C4B78880694B1 -:10B270000993069B4400E45A694B063CE4B20BAECA -:10B28000328807930294019100930599099BFFF777 -:10B29000CBFC041E4CD1079B5E491B881A1D002D58 -:10B2A00030D14A80059B5B4C5A8963191A716B1C1B -:10B2B0009BB2E318120A1A71162306A832881B18CB -:10B2C00079890598FCF734FDFF21AA1C2E1D033552 -:10B2D0000B00059092B2B6B2ADB2002803D006AB17 -:10B2E000DB8AD9B21B0AA218651911712B714C4D5A -:10B2F000301D2A884949201800F0DEFB2B88F618FB -:10B30000B5B2A1E74988914207D17A8806995200DF -:10B31000525AEB18053A9A42C4DC3E4C2800618828 -:10B3200000F0FAFB207021007888FAF771FED1E571 -:10B33000002DF2D13E89BFE6162606ABF618310085 -:10B340003889FCF781FC3D000400FA3500282DD037 -:10B35000037A9B060CD400227B8939897888009275 -:10B360003A000C32FFF7E8FB041E10D03E8915E0CE -:10B370003088FFF741FB00281AD08368002B17D0D4 -:10B380002100122278889847041EE4D0EEE72B783B -:10B39000002B02D17888FAF74BFE00262B78002B81 -:10B3A00000D097E5002C00D194E585E60124DDE787 -:10B3B0000E24DBE7162506ABED1829003889FCF7CB -:10B3C00043FC041E47D0037A9B0611D4154A7B88A0 -:10B3D0001188994203D01448814207D11380134B3E -:10B3E000F2261D780023D9B2A94221D30924A1E76E -:10B3F0002888FFF701FB00282FD08368002B2CD072 -:10B400002100122278889847041EDFD092E7C046B8 -:10B410005C64FF1F2C68FF1F2E68FF1F2069FF1F41 -:10B42000106AFF1F0C6BFF1FFFFF00000A6BFF1F5E -:10B4300031005943546801336018615A0029D2D150 -:10B440003C0008342100F22200F036FB210078880D -:10B45000FAF7F6FD3EE501246CE70E246AE71D4B82 -:10B460001A887B889A4231D07888FAF7F3FD31E563 -:10B47000F223059851684343CD18C95A00291FD0BB -:10B480003B7A012B0BD16C88AB887888AA1D00947D -:10B49000FFF752FB041E02D000233B722E88F222DB -:10B4A0000021280000F0C0F900232B80059B013308 -:10B4B000DBB20593084B05991B78064A8B42D7D817 -:10B4C00001235B421380002CCED0F5E5002634002A -:10B4D0000596EFE70C6BFF1F0A6BFF1F70B50400AA -:10B4E0000E001500FFF796FA031E08D1310005483B -:10B4F000FFF790FA03001120002B02D01C800020DF -:10B500009D7070BDFFFF0000F8B50B4F06003B7843 -:10B510000D001400FF2B0ED00A2000F035FA011E9A -:10B5200009D0B1230380002346800371C5800481C4 -:10B53000387800F0E9F8F8BD3144FF1FF7B50F0087 -:10B5400008A90600088809A90B240988002821D128 -:10B550000234022B1ED1557813782D021D432B0087 -:10B560008B4301937334002B14D1FB683000190016 -:10B570000093FFF74FFB019C85420BD02A0030005F -:10B580000099FFF7ABFF041E04D12A00300079892F -:10B59000FFF7BAFF2000FEBDF0B50E7885B003902E -:10B5A0000AA805880120022E0DD14C6827786478FE -:10B5B00024023C43054FBC4205D10398DBB20196FF -:10B5C0000095FFF7BBFF05B0F0BDC04602290000A3 -:10B5D000034B10B51B68002B00D09847FEE7C04610 -:10B5E000186BFF1F07B501A8FFF7F2FF044A0548D3 -:10B5F0000021121A00F048F9F8F7FCF8FEE7C046FF -:10B600001C6BFF1F3444FF1F01B40248844601BC79 -:10B61000604700BF5147010001B40248844601BCA5 -:10B62000604700BF311B000001B40248844601BCE2 -:10B63000604700BF193BFF1F01B40248844601BCAC -:10B64000604700BF193AFF1F01B40248844601BC9D -:10B65000604700BFC51D000001B40248844601BC1C -:10B66000604700BF4551010001B40248844601BC57 -:10B67000604700BF1D4B010001B40248844601BC75 -:10B68000604700BF8538FF1F01B40248844601BCF3 -:10B69000604700BF456B010001B40248844601BC0D -:10B6A000604700BF350E000001B40248844601BC6B -:10B6B000604700BFC52DFF1F01B40248844601BC8E -:10B6C000604700BF090E000001B40248844601BC77 -:10B6D000604700BF7918000001B40248844601BCED -:10B6E000604700BF792DFF1F01B40248844601BCAA -:10B6F000604700BF691F000001B40248844601BCD6 -:10B70000604700BF5549010001B40248844601BCAE -:10B71000604700BF594F010001B40248844601BC94 -:10B72000604700BFC521000001B40248844601BC47 -:10B73000604700BF014C010001B40248844601BCCF -:10B74000604700BF6571010001B40248844601BC36 -:10B75000604700BF6DBC000001B40248844601BCD4 -:10B76000604700BF8D12000001B40248844601BC4E -:10B77000604700BF0132FF1F01B40248844601BC8C -:10B78000604700BFF54E010001B40248844601BC89 -:10B79000604700BFD92FFF1F01B40248844601BC97 -:10B7A000604700BFC94A010001B40248844601BC99 -:10B7B000604700BF091B000001B40248844601BC79 -:10B7C000604700BF350E000001B40248844601BC4A -:10B7D000604700BF4D38FF1F01B40248844601BCDA -:10B7E000604700BF5D17000001B40248844601BCF9 -:10B7F000604700BFA54F010001B40248844601BC68 -:10B80000604700BF1147010001B40248844601BCF3 -:10B81000604700BF5952010001B40248844601BC90 -:10B82000604700BF6130FF1F01B40248844601BC7D -:10B83000604700BF154D010001B40248844601BCB9 -:10B84000604700BFC9A9000001B40248844601BC9A -:10B85000604700BFD91AFF1F01B40248844601BCEB -:10B86000604700BF4537FF1F01B40248844601BC52 -:10B87000604700BFC926000001B40248844601BCED -:10B88000604700BFC538FF1F01B40248844601BCB1 -:10B89000604700BFB70E000001B40248844601BCF7 -:10B8A000604700BF1930FF1F01B40248844601BC45 -:10B8B000604700BF055E000001B40248844601BC39 -:10B8C000604700BFA946010001B40248844601BC9C -:10B8D000604700BF75A9000001B40248844601BC5E -:10B8E000604700BF2526000001B40248844601BC21 -:10B8F000604700BFD91B000001B40248844601BC68 -:10B90000604700BF2146010001B40248844601BCE3 -:10B91000604700BF5933FF1F01B40248844601BC91 -:10B92000604700BF9135FF1F01B40248844601BC47 -:10B93000604700BFC56D010001B40248844601BCE8 -:10B94000604700BFADAE000001B40248844601BCB0 -:10B95000604700BF3D18000001B40248844601BCA6 -:10B96000604700BFB14E000001B40248844601BCEC -:10B97000604700BFE117000001B40248844601BCE3 -:10B98000604700BF3D4B010001B40248844601BC42 -:10B99000604700BF1D4D010001B40248844601BC50 -:10B9A000604700BF2951010001B40248844601BC30 -:10B9B000604700BF9D35FF1F01B40248844601BCAB -:10B9C000604700BFE548000001B40248844601BC5E -:10B9D000604700BF7139FF1F01B40248844601BCB3 -:10B9E000604700BFB54C010001B40248844601BC69 -:10B9F000604700BFE928000001B40248844601BC4A -:10BA0000604700BFED4A010001B40248844601BC12 -:10BA1000604700BFF94C010001B40248844601BCF4 -:10BA2000604700BF5125000001B40248844601BCB4 -:10BA3000604700BF434D010001B40248844601BC89 -:10BA4000604700BF2D3BFF1F01B40248844601BC84 -:10BA5000604700BFF30E000001B40248844601BCF9 -:10BA6000604700BF2932FF1F01B40248844601BC71 -:10BA7000604700BF0D52010001B40248844601BC7A -:10BA8000604700BFDD52010001B40248844601BC9A -:10BA9000604700BF5118FF1F01B40248844601BC33 -:10BAA000604700BF851F000001B40248844601BC06 -:10BAB000604700BF4D1F000001B40248844601BC2E -:10BAC000604700BFE94C010001B40248844601BC54 -:10BAD000604700BF8552010001B40248844601BCA2 -:10BAE000604700BF4550000001B40248844601BCD5 -:10BAF000604700BF7D18FF1F01B40248844601BCA7 -:10BB0000604700BF291C000001B40248844601BC04 -:10BB1000604700BF810E000001B40248844601BCAA -:10BB2000604700BF090E000001B40248844601BC12 -:10BB3000604700BFC12FFF1F01B40248844601BC0B -:10BB4000604700BF9DA9000001B40248844601BCC3 -:10BB5000604700BF413BFF1F01B40248844601BC5F -:10BB6000604700BFB352010001B40248844601BCE3 -:10BB7000604700BF0124000001B40248844601BCB4 -:10BB8000604700BFEDA5000001B40248844601BC37 -:10BB9000604700BF156B010001B40248844601BC38 -:10BBA000604700BFCD4C010001B40248844601BC8F -:10BBB000604700BFD949010001B40248844601BC76 -:10BBC000604700BF2124000001B40248844601BC44 -:10BBD000604700BF3555000001B40248844601BCEF -:10BBE000604700BFDD66010001B40248844601BC25 -:10BBF000604700BF8B52010001B40248844601BC7B -:10BC0000604700BFED39FF1F01B40248844601BC04 -:10BC1000604700BF9136FF1F01B40248844601BC53 -:10BC2000604700BFC135FF1F01B40248844601BC14 -:10BC3000604700BF5522000001B40248844601BCA1 -:10BC4000604700BF0539FF1F01B40248844601BCAC -:10BC5000604700BF3938FF1F01B40248844601BC69 -:10BC6000604700BF017F000001B40248844601BC68 -:08BC7000604700BF056A0000F7 -:10BC78000003010302020303040205000602070091 -:10BC8800080009020A030B030C000D000E030F0342 -:10BC9800100311031300140015031603C93B001108 -:10BCA800FD3B00110000000002000000BABC0011BA -:10BCB800192A0F180A000000F1590000FD2400009D -:10BCC800414601008580001199A00011ED74001112 -:10BCD800897E0011FD52001169AE0011654F0011F7 -:10BCE800BD3D0011ED3E00110000000016160000D9 -:10BCF8000200000004BD0011F4FFF3FFD2FC0000B5 -:10BD08002D4000110000000000000000547579610A -:10BD18000042312E3400303031380067697468755C -:10BD2800622E636F6D2F70767678005448303544F4 -:10BD3800000000000200000050BD0011292A282A36 -:10BD4800272A262A252A242A0A180000E2040000A5 -:10BD58007102000078EC0000744000001027000019 -:10BD680060F0000006640000204E000000000000A3 -:10BD7800050000001F501D00023CB400000118001F -:10BD880014000000A1020000303132333435363758 -:10BD9800383941424344454600000000015700112C -:10BDA800555700110000000002000000BCBD001142 -:10BDB8006F2A6E2A1A18EAD8BC80F0FC60000000CE -:10BDC8000000000000005F066B2F363D7D077F3FB7 -:10BDD800777C596E7971AF066D4FC6CBEB0EEFCFFE -:10BDE800EEC3A966E9E8FA60D6F46CBCBEE0FEFCD6 -:10BDF800EE3E9A769E8E000001A000000000000032 -:10BE08006410B71DC8206E3BAC30D9269041DC7653 -:10BE1800F4516B6B5861B24D3C7105502083B8EDFD -:10BE280044930FF0E8A3D6D68CB361CBB0C2649B21 -:10BE3800D4D2D38678E20AA01CF2BDBDFB349B5F46 -:10BE4800800000800010000000000000EF6000117A -:10BE58007977001113610011817B0011976100113E -:10BE6800577B00110D6200112D7B00115F620011DC -:10BE7800F57C0011C7620011F57C0011F962001110 -:10BE8800AF7C00110D620011E57A00118562001186 -:10BE98008D7C001100000000000000006B630011A1 -:10BEA8008D7C0011CD63001191770011052A042AB9 -:10BEB800012A002A0229032801280028011800184D -:10BEC80000000000000000000000000000000087E3 -:10BED800010102010201010201020303040103013D -:10BEE800010101010303020103000D000E0010000F -:10BEF800110013001401070108010A010B011C01BC -:10BF08001D02040205020702080219021A021C0295 -:10BF18001D030103020317000201000504000807BE -:10BF2800000B0A001716001D1C010201010504017F -:10BF38000E0D011110011413011716011A1902022E -:10BF480001020B0A020E0D02111002141302171639 -:10BF5800030504030807030B0A030E0D000102037F -:10BF680007090A0B0E0F101112141718191A1B1FA4 -:10BF780020212200B1A700116DA8001100000000C7 -:10BF880002000000C6BE00110000000099B50011B3 -:0CBF98000000000002000000C4BE001108 -:020000041FFFDC -:1000000000000000253D0011C0BC0011BCBC001167 -:100010004061FF1F00000000000000000000000021 -:1000200000000000000000000000000000000000D0 -:1000300000000000000000000000000000000000C0 -:1000400000000000000000000000000000000000B0 -:1000500000000000000000000000000000000000A0 -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:100080000000000000000000000000000000000070 -:100090000000000000000000000000000000000060 -:1000A0000000000000000000000000000000000050 -:1000B0000000000000000000000000000000000040 -:1000C0000000000000000000000000000000000030 -:1000D0000000000000000000000000000000000020 -:1000E0000000000000000000000000000000000010 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000000000000000000000EF -:1001100000000000000000000000000000000000DF -:1001200000000000000000000000000000000000CF -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000000000000000000000000000008F -:10017000000000000000000000000000000000007F -:10018000000000000000000000000000000000006F -:100190004D32FF1FAD30FF1FC1660100000000009F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E000000000000000000000000000000000000F -:1001F00000000000000000000000000000000000FF -:1002000000000000000000000000000000000000EE -:1002100000000000000000000000000000000000DE -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000000000BE -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000000000000ED -:1003100000000000000000000000000000000000DD -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000000000000000AD -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:10037000E5B50011000000000000000000000000D2 -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000591AFF1FBC -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:08183800206FFF1F4118FF1F84 -:10184000024981F3088802F06FFA0000206FFF1F41 -:1018500010B502F089FA072804D0122808D002280F -:1018600008D010BD044A0420136B01331363F8E75A -:101870000220F6E71420F4E70465FF1FF8B507001F -:101880000C0026002500503630785135002804D150 -:101890000300287058342370F8BD2978CA00481E08 -:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 -:1018B00000280DD12B78DA00A218013350602B706C -:1018C0003378044A013B3370136A01331362D8E75B -:1018D0000123DFE70465FF1F5C234343074910B57D -:1018E000C9180B0058331B78012B05D1FFF7C6FF31 -:1018F000034A936A0133936210BDC0463865FF1FE7 -:101900000465FF1F10B502F037FB064A01211300E2 -:1019100010CB4942D967044B136002F0E5F920006F -:1019200010BDC04600E100E01000100010B504003A -:1019300002F022FB024B1C6002F0D6F910BDC0463B -:1019400000E100E0431E5A425341A022F0B5D2010B -:101950005B421340154D164A40019B182A18127E0F -:101960008BB00191002A1BD01A000832D46F0022DC -:10197000E6B206AFE4B294420EDC2818C369002B2D -:1019800008D0019902AA117106AA049202AA16733C -:1019900003A898470BB0F0BD1978B9540132EAE7B3 -:1019A0001A7D1A7806AB01261A70E6E7C467FF1F96 -:1019B00000400040F0B5254B04004001C25C85B0FA -:1019C000002A2BD01A18117E002927D0917E0029D9 -:1019D00024D01179022921D11689D788D168F51B25 -:1019E000ADB22A1C102D00D9102292B2BE4217D1DE -:1019F0001818012303710023C269C38003819A422E -:101A000006D06846032103730171029301A8904731 -:101A10000820002C00D0192001F0FEFA05B0F0BD1E -:101A2000013C65426C41A0256442ED012C40084D0B -:101A30001B186419074D0633013A92B2AA42EDD041 -:101A40001888461C1E80085C2070F5E7C467FF1FDD -:101A500000400040FFFF00000F220E4B10B59868B9 -:101A6000104002380A280BD802F060F80D0A0B0A61 -:101A70000A110A0A0A0A060002210020FFF762FF83 -:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 -:101A9000F6E7C046004000400F220E4B10B5986894 -:101AA000104002380A280BD802F040F80E0A0B0A40 -:101AB0000A120A0A0A0A060002210120FFF742FF61 -:101AC00010BD01210800F9E70120FFF773FFF7E7D8 -:101AD000DB6FF5E70090004013B5334C2378072BFC -:101AE0003DD8324B1A78324B002A39D180221968FE -:101AF00052020A431A60252001F0C4FE20232D4A19 -:101B000011680B43802113606B460422C9050868E5 -:101B10000733104228D080210422C905C86810422A -:101B20002ED080212020C905CA688243CA601422B1 -:101B30001A701A78002A2FD18021C905C86820326E -:101B40000243CA6014221A701A78002A28D11A4B4C -:101B50001A7D22785A601D221A705932DA6013BD3C -:101B60001A6816490A40C5E7086802430A60142249 -:101B70001A701A78002ACED01A78013AD2B2F7E752 -:101B8000C8680243CA6014221A7019784A1ED2B279 -:101B90001A700029F9D1C4E71A78013AD2B2C7E71E -:101BA0001A78013AD2B2CEE76C43FF1F3444FF1FCC -:101BB0003CF000406443FF1F00200040FFFFFEFF99 -:101BC000564B70B51B68012B03D1554A936D0133F9 -:101BD000936502F011F9534B534A1860534B544C20 -:101BE0001A600123534A1360534A13602378002B71 -:101BF00006D006225149524802F0A6F8002323706D -:101C0000504A514B10681B78C1B2002B0ED14F4C7B -:101C1000C0B223785BB2002B4FDB237824785BB211 -:101C200064B21B0424021B191B1813600B1C5029DF -:101C30004ED95023464A47491078DBB2FF2202288A -:101C40004BD10868444C454D267890432A789642FB -:101C500054D9227824782E78023B5D10A31B6B4365 -:101C60005201D31A10335B111843086002F054F983 -:101C7000031F012B45D83A4B1B78002B06D0394B5C -:101C80001B78002B02D0002002F05EF9A122364B17 -:101C900092009978354B4A431B689B188322920027 -:101CA0009B181B78033B012B03D8AF20400001F0A9 -:101CB00093FF01222E4BDA8270BD237824785BB229 -:101CC00064B2FF33FF341B0424021B190138ABE755 -:101CD000CAB2022AAED20223ACE70868254C264DD0 -:101CE000267890432A78964208D9227824782D784D -:101CF000023B5B10641B63435201B2E72378DBB203 -:101D0000B2E70228D5D11D4B1B78013B022B03D92A -:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 -:101D2000FC0FFF1F3C64FF1FFF3F00001410034027 -:101D30004064FF1F0C10034000100340D50BFF1F31 -:101D40007211FF1FB40003408C09FF1F680AFF1FB8 -:101D5000490AFF1F94000340460AFF1F470AFF1F5E -:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 -:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 -:101D80002309FF1F10B502F0B7F80022014B1A809B -:101D900010BDC0463A64FF1F10B502F055F8A121EE -:101DA000054A89009478054A61431268044B521829 -:101DB000528C1A8010BDC046300DFF1F3409FF1F22 -:101DC0003A64FF1F10B50D4B0D4A9978A1239B0073 -:101DD0004B431268D218531DD97F0A4B1B88994276 -:101DE00009D2441C07D0C82805D0D2695B1A5A43CF -:101DF000054B5343C01801F0E7FF10BD300DFF1F26 -:101E00003409FF1F3A64FF1F7102000070B5244DB2 -:101E10002B68002B28D001F017FF2B68D8402B68C7 -:101E20000400002B27D002F0B7F82B68D8401D4BD8 -:101E30001D4A9978A1239B004B431268D118D25CAC -:101E400091239B00002A20D0CA580132CA50174B58 -:101E500017491B680868834214D3D23B181A012A19 -:101E60001AD0144B186070BD01F0EEFE124B1968C9 -:101E700001F082FED3E702F08FF80F4B196801F0F2 -:101E80007BFED4E70D495B18E8E7CA500C4B1B6892 -:101E9000DB68E418201AE4E7F530FF30E1E7C046DC -:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 -:101EB0003C64FF1FA009FF1F1808FF1F2DFF3F00F4 -:101EC0004464FF1F70B504000D00282916D10300DB -:101ED000A433C2881B889B1A0B4A9BB293420DD92C -:101EE00006006A3605223100653001F0F5FF002852 -:101EF00004D13100200002F01FF870BD290020003D -:101F000001F00AFFF9E7C046FE7F0000F8B50500C2 -:101F1000012001F0B1FF134CA36AA26A9342FBD1E6 -:101F2000114E336001F038FE10490300086010487C -:101F3000426894460F4A17680022BC4501D24268A5 -:101F4000BA1A0D4802603268AD18A422E562606AD0 -:101F5000520302436262094A1278002A01D00F3B01 -:101F60000B60F8BD00F00040340AFF1FE408FF1FBB -:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 -:101F800070B580241025E405A3682B43A36001F0FD -:101F90000BFEA368AB43A36070BD0000F7B516004D -:101FA00080221C001023D2050191916805000B438B -:101FB000936000225A4BD7301A6001F055FE9D23E2 -:101FC0002A002F009B00EB58CA3201210092FC37F7 -:101FD000002B01D00021009A386801F0D5FE2900BD -:101FE000009BCB311A784F4BD3351A604B780A7867 -:101FF0001B0213438A7812041A43CB781B0613433F -:10200000494A1BBA13604B790A791B0213438A7938 -:1020100012041A43CB7931001B061343434A1BBAFF -:1020200013606B782A781B021343AA7812041A43B0 -:10203000EB781B0613433E4A1BBA1360019A330226 -:1020400013433C4A13603C4B22001B1B9C46032954 -:102050003DDCB3089A0013005142B21A032A46D15C -:10206000354AE018511A827840781204000202437F -:10207000E05C043302430A600022FF2B4BDDF022B8 -:102080002E4B12011A600F222D4B1A602D4A136835 -:10209000002BFCD00023224A27491360091B321D64 -:1020A0000B191B68043A180A23706070180C1B0E79 -:1020B000A070E3700434002AF2DC802210213B6817 -:1020C000D20501333B6093688B439360F7BD634651 -:1020D000D578981893782D061B042B43157804396E -:1020E0002B43557804322D022B430360AFE7022ABD -:1020F0000AD1114AE05C511AE218527812020243E6 -:102100000A6004339BB2B7E7012AB5D10A4A521AD2 -:10211000E15C1160F5E7084959180A600433ACE73F -:10212000000004403C0004403800044034000440F7 -:10213000300004400C00044000010440040004404E -:102140001000044014000440F7B5150080221C0064 -:102150001023D2050091916807000B439360002380 -:10216000654AD730136001F07FFD9D233E009B0040 -:10217000F9583B00CA363200FC33002900D07FE01A -:10218000586801F001FE390032785C4BCB311A609F -:102190004B780A781B0213438A78AC4612041A4320 -:1021A000CB78281D1B061343554A1BBA13604B7985 -:1021B0000A791B0213438A7912041A43CB791B064E -:1021C0001343504A1BBA13604B7A0A7A1B0213431B -:1021D0008A7A12041A43CB7A21001B0613434A4A17 -:1021E0001BBA1360009A2B021343484A1360220063 -:1021F000474B1B1B0093009BCE785B1801938B7899 -:1022000036061B0433430E78043833434E780431CA -:1022100036023343019E33600328ECDC0321A80817 -:10222000431C9B002940800003292BD13849E51825 -:102230005E18A9786D78E35C09042D0229431943DF -:102240003160030008330021FF2B2DDD314B324973 -:1022500019600F21314B1960012327490B60304B66 -:1022600019680029FCD006211B680B40042B20D0E4 -:1022700080220020D20593680A318B439360FEBD13 -:1022800001217DE7022908D121495D18E11849782B -:10229000E35C090219432960D3E70129D3D11C4922 -:1022A0005918E35C0B60CCE7194818180160043337 -:1022B000CAE7002310490B606346002B0CDC3B008F -:1022C000FC335A68102101325A608022D20593688B -:1022D00001208B439360D2E7009B9B181B68190A6F -:1022E00013705170190C1B0ED37004235B42917054 -:1022F0009C440432E0E7C046000004403C00044037 -:102300003800044034000440300004400C00044015 -:102310000001044004000440080F000010000440C5 -:102320001400044070B5061E19D002225A4B9B7946 -:102330009343012B13D1594B1A78FF2A0FD15A78A6 -:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 -:102350001A79FF2A03D15B79FF2B00D199E0504B0A -:102360000C201A78012A08D000224E4D1A702978C4 -:102370000B00093B042B01D8212070BD4B1F012B02 -:10238000FAD9454CA37B042B00D982E0A279032A19 -:1023900000D97EE09A1ED2B2012A02D860881F2896 -:1023A00077D9002E56D0012E73D1A0880128E3D012 -:1023B000002907D1581E032803D801F0B7FB1217D4 -:1023C00015122E702978481E032811D80025364B87 -:1023D0001D602823237501F0A7FDA84227D0A58002 -:1023E000CAE702212970EDE70421FBE70321F9E7A1 -:1023F00007390129C0D82D490968C96A8906BBD5A2 -:102400002B4908780028B7D1012A01D9002BB3D174 -:1024100002230B708021274D2633890128782375EC -:1024200001F0A2FD80212878890101F0F5FC01234B -:10243000A380214B1B78002B0AD0FA2280211F4B4E -:1024400092001B8809025A431A4B187801F084FD48 -:10245000002092E701F090FD2B78A680073B012B2E -:1024600003D917482E7001F0FFFC114B114C1A785C -:10247000002A06D080210022207889011A7001F0FC -:1024800073FD01F031FC80212078090201F06CFD20 -:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 -:1024A0001A09FF1F1C09FF1F4809FF1F4464FF1F73 -:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 -:1024C0000010004010B5002901D001F0F5FC10BD4E -:1024D000F7B5604B01919978A1239B004B435E4A6D -:1024E000060014681022E418D6235B00E058362357 -:1024F000FF33E35C00279343222B41D1574B0F3A24 -:102500001A600760012501F0FFFC019B1880E82399 -:102510005B00E35C002B01D0B34258DD0023504F39 -:10252000FB70AD33FF33E3581A68002A03D09B8851 -:10253000DB439B071DD03823FF33E35C002B18D00F -:102540009B235B00E35C002B13D1D133FF33E35CAF -:10255000B3420EDAA4235B00E15AE018090A023103 -:1025600001F0C2FC23000122FE33013E01351A872F -:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 -:1025800003683D00002BBED081880430090A023167 -:1025900001F0AAFCD6235B00E3581F60B2E72300DA -:1025A000B133BA00FF339858013781880430090AE3 -:1025B000023101F099FCE8235B00E35CBB42EEDCF6 -:1025C000E822F61AED1800235200A354A6E70027CC -:1025D000F1E7200001F030FB00281FD0002E1DDDA8 -:1025E0007319882647190193B600200001F0FCFA00 -:1025F0005A30800020184068013581880430090A6B -:10260000023101F071FC200001F0A6FBA359013357 -:10261000A351BD4202D0019B9D42E6D1114BE35C28 -:10262000002BABD095239B00E35C002BA6D00E4B78 -:10263000E15A0029A2D00D4AA35C994202D9013384 -:10264000A3549BE700231A212000A35401F0ACFB04 -:1026500094E7C046300DFF1F3409FF1F00140340EC -:10266000E010FF1F5A020000720200005E0200002C -:102670000D4970B54A6E0D4CD2038B69D20BA24244 -:1026800006D80B4D0224AA4204D901F0E5FA70BD28 -:1026900002246442E21815007E2425402242F4D030 -:1026A000A3432B438B61F0E700F000400A200000B9 -:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 -:1026C000BA7B002A02D101321A7003E0032AFAD041 -:1026D000022AF8D001F028FC00220120154B1A70C4 -:1026E000F8BD154B154D1C68154B9E7801232B70BA -:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D -:102700005BFAA1239B007343E41883239B00E41826 -:1027100023782B70E4E7032B02D101F09DFBF0E757 -:102720000020022BDCD101F02FFCEAE71C09FF1F7F -:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 -:10274000300DFF1FF0B587B00EAD2F780FAD2D788F -:102750000593AC46634614000E4D0CAA12782E78F1 -:1027600003930D9B009201932200059B029701F0B9 -:102770004BFC2E70012C01D0042C08D1802206497C -:102780008B889343054A1278D20113438B8007B09C -:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 -:1027A0000B001B3B70B504003020E02B0DD813004C -:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 -:1027C000200019825A8201F057FA70BD8410FF1F51 -:1027D00010B501F011FB054B00205B68052B04D9F7 -:1027E000034A5268D20200D4980810BD001000407D -:1027F000FCE100E070B501F0BFFB0D4B1B68FC3342 -:10280000DC691D6AFFF7E4FF6419844204D2094BB6 -:1028100001241B68002B07D004220024064B1A70E9 -:10282000064A93690133936101F05EFA200070BD9E -:102830004464FF1F9809FF1F2309FF1FFC0FFF1FA0 -:1028400070B50C4D2B68FC335C6A01F095FBFFF70B -:10285000BFFF2B680025FC339B6AE318834204D238 -:10286000054B1B68AB4200D1051B01F03DFA280067 -:1028700070BDC0464464FF1F9809FF1FD722044B58 -:1028800092009B5810B5002B00D0984710BDC04651 -:102890000000FF1F10B501F0D3F8FFF7EFFF274945 -:1028A000274BCA6D274C1A4084235B001343CB652A -:1028B000254B1B68186A01F0DFFA244B244A1A6082 -:1028C000244B254A1A60A022244B52001A60244B44 -:1028D000187801F051FA2000224901F09DFB0023F5 -:1028E000A3600233A360204B2049236003232048C8 -:1028F000A36001F091FB10221E4BFF201A60802282 -:1029000052031A60802292031A60802212041A6015 -:1029100001F01AFB012001F03FFAFA20400001F01B -:1029200063FA582001F058F9134801F045FA0120E4 -:1029300001F072F9072001F04FFA10BD00F00040DD -:1029400000FEFEFF141000404464FF1F000003401F -:102950000180063DBC00034034080000A400034091 -:102960004A0AFF1F71020000C3090000FFFF3F0079 -:102970002810004000E100E030750000674E336829 -:1029800088331B6883F3088801F0E6F8644A6549D8 -:10299000136800200B401360634B644A1B6893422A -:1029A00000D1A6E001F070FA0221614A13688B435E -:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 -:1029C00073FA0023A3600233A3605C4B01202360F1 -:1029D00001F052FA0323A36001F016FA040001F09B -:1029E0000BFA050001F010FA554B186001F0E4FAFB -:1029F000544B1968621A531EA14200D21300802260 -:102A0000D203934201D39B029B0A3268D16AC90761 -:102A100000D471E04C491C0C09689BB24C435943EB -:102A20002402090A641803264849FC3293680A689C -:102A300047489B1A474A0768126847499B18474A04 -:102A40009A1833409208DB190A600360042B03D9FB -:102A5000013233400A6003600E684149A619300014 -:102A600001F08AF83F4F3E493B68C3183B60300095 -:102A7000019301F011F93C4E306808183849306074 -:102A8000884205D9019B01333B6001F005F93160B3 -:102A900001F00AF9354B1B78002B0DD001F0ACF991 -:102AA000334B621B196812188A4232D24919091B2A -:102AB000091A304801F0B0FA2F4E337A002B0ED0AD -:102AC00001F09AF9621BF1681218914224D9491950 -:102AD000091B091A294801F09FFA00233372284B79 -:102AE00083F3088801F090F8002001F0CDF901F09F -:102AF000ABFA01F0C9F95CE7DC0199000234641A11 -:102B00005900641A09214B438033CB40A408E418D0 -:102B100089E7FA218900CCE71A49DBE74464FF1F03 -:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C -:102B300010000040490AFF1F14100040C3090000A4 -:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 -:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 -:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 -:102B7000E408FF1F00100040740BFF1F3C100040D2 -:102B800000000020DC050000A022054B92009B58AD -:102B900010B5002B01D0984710BD01F045F8FBE7B8 -:102BA0000000FF1FA122054B92009B5810B5002B7F -:102BB00001D0984710BD01F037F8FBE70000FF1F78 -:102BC000A222054B92009B5810B5002B01D09847CC -:102BD00010BD01F029F8FBE70000FF1FA322054B01 -:102BE00092009B5810B5002B01D0984710BD01F002 -:102BF0001BF8FBE70000FF1FA422054B92009B5827 -:102C000010B5002B01D0984710BD01F00DF8FBE77F -:102C10000000FF1F70B501F0EFF84F4B186001F096 -:102C2000E3F90400C30702D401F06EF870BD00227E -:102C30004A4B1A604A4B18780138042829D800F00A -:102C400075FF0320181C2400200001F0ADF90128B5 -:102C5000ECD0444C2378042B6ED100F095FF002873 -:102C6000E4D001F0E1F9582000F0B6FF0223237010 -:102C7000DCE7200001F008F8E9E7200001F0ACF9FA -:102C8000E5E7200001F038F8E1E7200000F09CFFC4 -:102C9000DDE701F041F90500012808D1324B1B782E -:102CA000053B012B03D82000FFF76EFFD1E72D4B2A -:102CB0001B78022B01D0052B20D1022D28D12B4BC4 -:102CC0009B7BAB431CD12000FFF76CFF264B187891 -:102CD0000128BED16405BCD4244925224B7B034284 -:102CE00005D1233A13405A42534126331A000B7D33 -:102CF0009342AED9322000F0EFFFAAE7022D07D1B0 -:102D0000194B1B78052B11D12000FFF759FFDDE788 -:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 -:102D2000062B03D12000FFF767FF92E7200000F099 -:102D30007BFF022D8DD1C9E7032B04D10C4B987C6E -:102D400000F0BAFF72E7072B00D06FE7094B987BC2 -:102D500000F0F2FF6AE7C0469C09FF1F9809FF1FB9 -:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 -:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 -:102D80001A640A4A5A500A4A04395A50094A083100 -:102D90009A64094A5A50094A5C315A50084ADA661C -:102DA0007047C0460000FF1F4527FF1F4128FF1F37 -:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A -:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 -:102DD000FF270122009300233C001E001D009446A3 -:102DE000019089B262469A40100008401841361896 -:102DF000B6B2FF2F02D1012E00D19FB2009802403F -:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 -:102E10000133102BE6D10320012E07D1012D04D15F -:102E2000019B2401E4191C700138FEBD102EFCD159 -:102E30000238102DF9D00230F7E700008023F7B5F3 -:102E40009C46264B264F01932649274A274D284C5E -:102E5000284B02281AD1604638600868264E304058 -:102E6000802636033043086001990978002909D18A -:102E70001660224A2A60224A2260E02219689143A1 -:102E8000A03A1BE08021C9021160F2E766463E606D -:102E90000F68194E3E408027FF023E430E600199A5 -:102EA000097800290DD1176001280ED1154A2A6032 -:102EB000154A2260E02219689143C03A0A431A6019 -:102EC000F7BD802189021160EEE7E0210F4A02433D -:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 -:102EE000E0000340D800034090000340000003408E -:102EF0005000034040000340FFFFE3FF0280063D17 -:102F0000804508220180063D8066082200800698E0 -:102F100080550822F8B51E4B80261A680020140040 -:102F20003440324232D11A681A4F32431A600122B9 -:102F30003B68063093433B6000F09EFF0122164D34 -:102F40002B681E432E603B680A2613433B60802794 -:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F -:102F600009D17E220E4B1C682B68E40B144093435E -:102F700023432B6005E0082000F07EFFE9E7002EE8 -:102F8000EFD180222B68600893432B60F8BDC046C8 -:102F9000C4F000405CF0004018F0004068F00040D1 -:102FA00060F0004010B500F027FE01215820034AD0 -:102FB00000F0DAFDFFF7AEFF10BDC046600AFF1F4C -:102FC00010B578220021034800F07EFE01F014F8CD -:102FD000002010BD4C67FF1F70B5040000F0CCFF4F -:102FE00000230C200B4A010059438D18515C002925 -:102FF0000DD0A14208D1012300246B7000F064FFC2 -:1030000000F072FE200070BD01330A2BEBD11224B8 -:10301000F6E7C0464C67FF1F70B5040000F0ACFF38 -:10302000002319001D000D4A1078002806D0A04288 -:103030000CD1557001310C320A29F5D1002B0AD17F -:1030400000F0DAFF00F050FE002070BD5078461E00 -:10305000B0411B18EEE700F037FFF3E74C67FF1FA6 -:10306000F7B504000C20002384460E4D01926746FC -:103070005F43E85D7E19A04212D000280BD10A4BB5 -:103080009C4662461B7808331370019B70707C5518 -:103090007160B360FEBD01330A2BE8D10320F9E76C -:1030A0000720F7E74C67FF1F4867FF1F8020F8B530 -:1030B000484BC0051B68C1248360474BFF251A6835 -:1030C000012313434361454BA4001A68444B40213C -:1030D0001A60444B1A68444B1A60444B1A59AA436D -:1030E0001A51C52292009E58AE4331438026995012 -:1030F0009F583F49F6010F403E439E509E588027FF -:103100003602360A3043985080201A5900020A408D -:1031100002431A5104341A59364E3F043240802675 -:103120003A431A511A5936061202120A32431A51F8 -:1031300008341A5980260A4002431A51C3229200C9 -:103140009F58B446AF4337439F509F58294E0F4076 -:1031500007439F509F5837408026360437438026C8 -:103160009F509F5836063F023F0A37439F50C02268 -:103170001F59AF433A431A511A591202120A164301 -:10318000C6221E5192009C58AC4365462C439C506D -:103190009C5800250C4020439850C72080001A58A6 -:1031A000154C1140C02212020A431A50134B1B78CF -:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 -:1031C000A368002B00D0984701350C34EEE712209D -:1031D000F2E7C0466843FF1F6443FF1FB0F00040A2 -:1031E0004467FF1FB4F000404067FF1F00E100E0AC -:1031F000FF00FFFFFFFF00FF4C67FF1F4867FF1F37 -:10320000030010B51F2809D8072200201340072407 -:1032100004490A78A24313430B7010BD0023062013 -:10322000F5E7C0464867FF1F054B06491B780A684B -:1032300005485B0702401B0B134300200B607047DF -:103240004867FF1F1CF00040FFFFC1FF70B50C2551 -:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 -:10326000002C01D1200070BD2B78002B06D06B689C -:10327000002B00D09847013C0C3DF1E71220F2E70B -:103280004867FF1F4067FF1F1FB5002102220B0088 -:1032900001910091052000F0CFFE02230B490A683E -:1032A0001A42FCD120230393039B5A1E0392002B46 -:1032B000FAD1074A1368002BFCDA0B246C44200077 -:1032C000012100F0B9FD207804B010BD90C8004085 -:1032D00000C8004013B504000A4B0193019B002B6A -:1032E00001D1112016BDFFF7CFFF23000340044298 -:1032F00005D0052000F0C0FD019B013BEDE7180063 -:10330000F0E7C046FFFFFF0707B500F035FE80225B -:103310000821D205936A0191002B01D107399162EE -:1033200002210C4A11600199481E01900029FAD12E -:1033300003311160053101910199481E0190002966 -:10334000FAD11160002B02D18022D205936200F0E5 -:10335000CBFC07BD00C00040F0B52D4C89B02378F0 -:10336000002B4FD1FEF7CEFA02232A4F03903A6882 -:103370001A42FCD120230693069B5A1E0692002B6C -:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB -:10339000011E02D0112009B0F0BD030003220190EC -:1033A000009005AD9F2000F047FE0321280000F0AB -:1033B00043FD02233A681A42FCD120230793079B5E -:1033C0005A1E0792002BFAD13368002BFCDA012039 -:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F -:1033E0006B7811041B020B4329780B4363601300B5 -:1033F000113B0A49052B07D801239340A3600B60BA -:10340000012323700020C6E780231B03F6E7C04694 -:103410005043FF1F90C8004000C800409808FF1F9D -:103420001E4B30B55A6818781D4B85B0D3185942D9 -:103430004B4101210093002300F0C6FD194B1A4AAD -:1034400002259A6300221A6510325A658022C4212F -:103450009D65164B1648D202DA6789004258154B13 -:1034600080241A4080231B041343435064234120CB -:103470000393E40500F006FA402000F003FA6562C9 -:10348000039D6B1E0393002DFAD103236362FFF7A4 -:103490003BFFA562FFF760FF05B030BD5C43FF1F37 -:1034A00095FFFEF700C80040050001FF04E100E0C1 -:1034B00000E100E0FFFF00FFF0B585B00700FEF778 -:1034C00021FA022305002D4C22681A42FCD1202348 -:1034D0000093009B5A1E0092002BFAD1284E3368AD -:1034E000002BFCDA0120FFF7F5FE002803D01124A1 -:1034F000200005B0F0BD234B2360022322681A424E -:10350000FCD120230193019B5A1E0192002BFAD17A -:103510003368002BFCDA0120FFF7DCFE0028E6D13F -:10352000194B1F60022322681A42FCD12023029308 -:10353000029B5A1E0292002BFAD13368002BFCDA50 -:103540000120FFF7C7FE0028D1D1104B23600223D2 -:1035500022681A42FCD120230393039B5A1E039234 -:10356000002BFAD13368002BFCDA0120FFF7B2FE02 -:10357000041EBCD12800FEF7D9F9B9E790C8004075 -:1035800000C8004001000006A8C8004001800001FA -:1035900010B50020FFF790FF10BD000010B5064BDE -:1035A00018705960FFF73CFF00211320034AFFF712 -:1035B00057FD002010BDC0465C43FF1F2134FF1F94 -:1035C000F0B5040085B003920291FEF79BF98822C2 -:1035D00063035B0B52051A438023DB059D6A80233E -:1035E000274F0092BA68002601901B039A420CD91B -:1035F000F82326001B041E401C4206D08022214BCB -:1036000052025E6219680A431A60002D0BD100F065 -:10361000B3FC02221C4B1A608023DB055A62013A7C -:103620009A6200F061FB0023039A934220D1002D9F -:103630000AD100F0A1FC144B03221D608023DB059E -:103640005A629D6200F050FB8023BA681B039A42C5 -:1036500008D9002E06D000220A4B0C495A621A687B -:103660000A401A600198FEF761F9002005B0F0BD2C -:10367000009A0299D2181278CA540133D4E7C0468E -:103680005043FF1F00C8004000C00040FFFFFEFF86 -:10369000F0B587B0029103920400FEF733F9019070 -:1036A00000F06AFC802302250122234EDB053560F1 -:1036B0005D629A6200F018FB204F3B682B42FCD100 -:1036C00020230493049B5A1E0492002BFAD11C4D14 -:1036D0002B68002BFCDA0120FFF7FCFD002802D04C -:1036E000112007B0F0BD2000039A029900F0D4FB2E -:1036F000022304003A681A42FCD120230593059B5B -:103700005A1E0592002BFAD12B68002BFCDA0120FF -:10371000FFF7E0FD051EE3D100F02EFC802303221D -:10372000DB0535605A629D6200F0DEFA0198FEF713 -:10373000FDF8E0B2D5E7C04600C0004090C80040A8 -:1037400000C80040F0B5802489B00600FEF7DAF822 -:10375000E405A36A02250393029000F00DFC012307 -:10376000304F3D606562A36200F0BEFA2E4C2368C4 -:103770002B42FCD120230593059B5A1E0592002B5A -:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD -:10379000002803D01124200009B0F0BD244B236081 -:1037A000022322681A42FCD120230693069B5A1E4C -:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 -:1037C00089FD021EE6D11B4B03211E600300019000 -:1037D0000090202000F030FC022322681A42FCD125 -:1037E00020230793079B5A1E0792002BFAD12B68C0 -:1037F000002BFCDA0320FFF76DFD041ECAD100F098 -:10380000BBFB80230322DB053C605A629C6200F014 -:103810006BFA039B002B01D1FFF776FD0298FEF7B0 -:1038200085F8B8E700C0004090C8004000C80040DC -:103830000100000694C8004007B50002019104226F -:10384000000A01A9FFF724FF0EBD000073B50500B3 -:1038500005240B4AA3005B429B1819686B46DE1DCA -:103860003000FFF7B3FA022804D133782B55013C1E -:10387000EFD276BD052CFCD00128FAD10230F8E752 -:10388000140900111F2807D8012380228340D20584 -:1038900091680B43936070473F2808D8012380222A -:1038A00020388340D20551690B435361F3E75F2809 -:1038B000F1D80123802240388340D205116A0B439E -:1038C0001362E8E71F2807D8012280218240C9053A -:1038D0008B6893438B6070473F2808D80122802172 -:1038E00020388240C9054B6993434B61F3E75F2859 -:1038F000F1D80122802140388240C9050B6A9343E8 -:103900000B62E8E71F2810D880230200DB05153A78 -:103910001968012A06D820229143196019680A43C0 -:103920001A60704701228240F6E73F2811D88023B1 -:103930000200DB05353AD968032A06D810229143E4 -:10394000D960D9680A43DA60EBE701222038824067 -:10395000F5E75F28E5D842238022181A413B8340CF -:10396000D205516A99435162516A0B435362D8E7B9 -:1039700010B50400012813D1A022184992050B6844 -:103980005B015B0913430B60154B164A1968114024 -:10399000154A0A431A60402219680A431A6010BD8A -:1039A0000028FCD101000A2000F056FB21000B206A -:1039B00000F052FBC0220A4B920019680A434021D2 -:1039C0001A601A688A431A60B022044912060B680A -:1039D0005B015B0913430B60E1E7C04614F0004054 -:1039E0001CF000407F00FEFF80FD010072B6074A18 -:1039F0001368013313600422054B1A600023054A43 -:103A000013608022D2055360FEE7C0467808FF1F8E -:103A1000C0F00040C4F0004005490B68002B05D100 -:103A2000044A0A6004490A60044A13607047C046A9 -:103A3000140AFF1F841E0000380AFF1FC4F0004054 -:103A40000023034A1360034A1360034A136070475C -:103A500054F0004040F1004044F10040002310B514 -:103A6000184C8AB0009301932378012B27D0694624 -:103A7000012000F0D9F9002817D1009B12490293C8 -:103A8000019B06AA0393114B02A81B680493104BD9 -:103A90001B68059300F088F810220E4906A800F074 -:103AA0001BFA002804D1FF23237000200AB010BDA8 -:103AB0000123094A074902A8237000F075F8012084 -:103AC000F4E7C0464864FF1F1029001108290011BF -:103AD0000C290011202900114C64FF1F13B501248B -:103AE0006946012000F0A0F9034B00940193FFF711 -:103AF000B5FF200016BDC046BB0B000010B5FFF798 -:103B00009FFFFFF7EBFF002802D0024B984710BD44 -:103B1000FEE7C046E1A2000002B471464908490030 -:103B2000095649008E4402BC7047C04602B4714633 -:103B300049084900095C49008E4402BC7047C046F0 -:103B400003B47146490840004900095A49008E44AF -:103B500003BC70470000000001B40248844601BC69 -:103B6000604700BFC9A9000001B40248844601BCF7 -:103B7000604700BF0167010001B40248844601BCF0 -:103B8000604700BF090E000001B40248844601BC32 -:103B9000604700BF01D7000001B40248844601BC61 -:103BA000604700BFBD5C010001B40248844601BC0F -:103BB000604700BFDD3F000001B40248844601BCFD -:103BC000604700BFE9F6000001B40248844601BC2A -:103BD000604700BFF935010001B40248844601BCCA -:103BE000604700BF7912010001B40248844601BC5D -:103BF000604700BFD9B0000001B40248844601BC50 -:103C0000604700BFED68010001B40248844601BC72 -:103C1000604700BF7997000001B40248844601BCA8 -:103C2000604700BFE512010001B40248844601BCB0 -:103C3000604700BFE917010001B40248844601BC97 -:103C4000604700BF71B0000001B40248844601BC67 -:103C5000604700BFE90B010001B40248844601BC83 -:103C6000604700BFD1AE000001B40248844601BCE9 -:103C7000604700BF8944000001B40248844601BC8B -:103C8000604700BF116E000001B40248844601BCC9 -:103C9000604700BF0934010001B40248844601BCFA -:103CA000604700BF090E000001B40248844601BC11 -:103CB000604700BFD544010001B40248844601BCFE -:103CC000604700BF4DF9000001B40248844601BCC2 -:103CD000604700BFB70E000001B40248844601BC33 -:103CE000604700BF6137010001B40248844601BC4F -:103CF000604700BF9DA9000001B40248844601BC92 -:103D0000604700BFF535010001B40248844601BC9C -:103D1000604700BFDD0A010001B40248844601BCCF -:103D2000604700BF51B8000001B40248844601BC9E -:103D3000604700BFEDB5001101B40248844601BCE4 -:103D4000604700BFC1F7000001B40248844601BCCF -:103D5000604700BFE94C010001B40248844601BC41 -:103D6000604700BF5976010001B40248844601BC97 -:103D7000604700BFE927000001B40248844601BC47 -:103D8000604700BFEDA5000001B40248844601BCB5 -:103D9000604700BF2144000001B40248844601BCD2 -:103DA000604700BF6911010001B40248844601BCAC -:103DB000604700BF53B9000001B40248844601BC0B -:103DC000604700BF8D11010001B40248844601BC68 -:103DD000604700BF8937010001B40248844601BC36 -:103DE000604700BFF90D010001B40248844601BCE0 -:103DF000604700BF8512010001B40248844601BC3F -:103E0000604700BFC95C010001B40248844601BCA0 -:103E1000604700BF156B010001B40248844601BC35 -:103E2000604700BF0D52010001B40248844601BC46 -:103E3000604700BFE1AC000001B40248844601BC09 -:103E4000604700BF3D71010001B40248844601BCD7 -:103E5000604700BFF9ED000001B40248844601BC90 -:103E6000604700BF75F8000001B40248844601BCF9 -:103E7000604700BFC1A5000001B40248844601BCF0 -:103E8000604700BF0189000001B40248844601BCBC -:103E9000604700BF016C010001B40248844601BCC8 -:103EA000604700BF9573010001B40248844601BC1D -:103EB000604700BF8914010001B40248844601BC78 -:103EC000604700BFE9D4000001B40248844601BC49 -:103ED000604700BF21A9000001B40248844601BC2C -:103EE000604700BFCD4C010001B40248844601BCCC -:103EF000604700BFC115010001B40248844601BCFF -:103F0000604700BF8D82000001B40248844601BCB6 -:103F1000604700BFCD0C010001B40248844601BCDB -:103F2000604700BFDD0C010001B40248844601BCBB -:103F3000604700BFA9D8000001B40248844601BC14 -:103F4000604700BF85C1000001B40248844601BC3F -:103F5000604700BFED6B010001B40248844601BC1C -:103F6000604700BF8B52010001B40248844601BC87 -:103F7000604700BFB352010001B40248844601BC4F -:103F8000604700BF75A9000001B40248844601BC27 -:103F9000604700BF19FA000001B40248844601BC22 -:103FA000604700BF6D0B010001B40248844601BCAC -:103FB000604700BF0134010001B40248844601BCDF -:103FC000604700BFC166010001B40248844601BCDD -:103FD000604700BFC56D010001B40248844601BCC2 -:103FE000604700BF0534010001B40248844601BCAB -:103FF000604700BFBD0B010001B40248844601BC0C -:10400000604700BFADAE000001B40248844601BC69 -:10401000604700BF9D6A000001B40248844601BCAD -:10402000604700BF2D6C010001B40248844601BC0A -:10403000604700BF6DF6000001B40248844601BC31 -:10404000604700BF496D010001B40248844601BCCD -:10405000604700BF8552010001B40248844601BC9C -:08406000604700BF69A20011D6 -:1040680002000000C2BE001101000000B0BC001137 -:1040780002000000BEBE001101000000A840FF1FA2 -:1040880002000000B8BC001101000000C061FF1F61 -:1040980002000000BCBE0011030000003461FF1FD5 -:1040A8001200000002000000C2BE00110100000062 -:1040B800F8BC001102000000BEBE001101000000A3 -:1040C800F5BC00110200000002BD00110300000051 -:1040D8006F61FF1F02000000BCBE0011030000005A -:1040E8008461FF1F02000000BEBE00110100000035 -:1040F800F4BC00110200000000BD00110300000024 -:104108004561FF1F02000000BCBE00110300000053 -:104118006661FF1F02000000C2BE0011010000001E -:104128003CBD001102000000BEBE001101000000ED -:10413800F141FF1F020000004EBD00110100000008 -:1041480033BD001102000000BEBE001101000000D6 -:10415800F041FF1F020000004CBD001101000000EB -:104168008C61FF1F02000000BEBE001101000000AC -:10417800EF41FF1F020000004ABD001101000000CE -:1041880023BD001102000000BEBE001101000000A6 -:10419800EE41FF1F0200000048BD001101000000B1 -:1041A8001EBD001102000000BEBE0011010000008B -:1041B800ED41FF1F0200000046BD00110100000094 -:1041C80019BD001102000000BEBE00110100000070 -:1041D800EC41FF1F0200000044BD00110100000077 -:1041E80014BD0011020202020202000000000000D9 -:1041F80014130000A94B00116F4B001190BD001162 -:1042080090011D0018001800FFFF070102030405B4 -:104218000602010600000000000000000000000087 -:104228000000000000000000000000000000000086 -:104238000300000002000000C2BE001101000000DF -:10424800B0BD001102000000BEBE00110100000058 -:10425800AC42FF1F02000000BABD001101000000BF -:10426800BA61FF1F02000000BCBE0011030000007D -:104278002464FF1F02000000BEBE00110100000000 -:10428800AC42FF1F02000000B8BD00110100000091 -:10429800BC61FF1F02000000BCBE0011030000004B -:1042A8001C64FF1F12006C6C00000000000000007E -:1042B80000000000080700000001000000000111D4 -:1042C800FFFF0000504859360000000000000000C1 -:1042D8000B000500F0000000B400002800280028AA -:1042E8003075A000A000A000A00000080008E001B0 -:1042F800F000100010001000100010001000500016 -:104308005000500010001000D0070000000000000E -:104318000F0001000500307507001000010081FF43 -:1043280000000000FF0000005174001159720011D4 -:10433800E96F0011FFFF0100FF0000006D9E0011F2 -:10434800E99B0011019B0011000000000000000023 -:1043580000000800040000003B0001085902E001C9 -:1043680088212800FF00000002000000C2BE0011E2 -:104378000100000088BF001102000000BEBE00114D -:1043880001000000ED43FF1F02000000BABE00114B -:10439800010000000468FF1F02000000BEBE0011FB -:1043A80001000000EC43FF1F02000000B8BE00112E -:1043B80001000000EA43FF1F02000000BEBE00111A -:1043C80001000000E843FF1F02000000B6BE001114 -:1043D80001000000E043FF1F180018001D009001B5 -:1043E800020000030202000002000000C2BE001129 -:1043F800010000009CBF001102000000BEBE0011B9 -:10440800010000003044FF1F02000000B4BE00118C -:10441800000000000000000002000000BCBE001107 -:0A442800030000002468FF1F20FFBE -:040000051FFF184180 -:00000001FF diff --git a/bthome_phy6222/bin/BOOT_TH05_v14.hex b/bthome_phy6222/bin/BOOT_TH05_v14.hex deleted file mode 100644 index efd6978..0000000 --- a/bthome_phy6222/bin/BOOT_TH05_v14.hex +++ /dev/null @@ -1,3066 +0,0 @@ -:020000041100E9 -:10300000002373B52B4D2C4C28006361022601F080 -:103010006FF94021FE2221742800284B009601F010 -:10302000B9F9002836D1217CFF222800244B0096D4 -:1030300001F0B0F900282DD1224BA2899A4226D165 -:10304000E389214A93420DD1204B6361204B2268D2 -:10305000002A03D1002B01D043CB43C4280001F048 -:1030600085F973BD1B4A934201D00023EFE71A4B49 -:103070001A4A1B68934206D9C02304222800217CE7 -:103080009B0001F0FDF9114B6361154BDFE7002355 -:103090002374EAE7CC233821AC2228009B01217459 -:1030A00001F0EEF90028F2D10E4B63610E4BE38183 -:1030B0000E4BCCE7F441FF1F9C61FF1FA861FF1F6F -:1030C000AA61FF1F59590000830500001D4100112E -:1030D00024BD001182150000C061FF1F871300008E -:1030E00030BD0011D5410011AAAAFFFF18BD001183 -:1030F000F7B5164B0192C318021D002000938823D8 -:103100005B05D3181B685C1C1AD09CB2402C18D8E5 -:103110008D781E0CAC466746CD782D023D43AE42FD -:1031200006D1019800280ED110000C70240A4C70B2 -:1031300003249BB20733A343D218009B9A42DED3E9 -:10314000FEBD4432F9E71000FAE7C046FC0F00006C -:10315000802213B503000324019189B25201073183 -:103160009B18A14304305A1A88235B05C3181B68B7 -:10317000591C03D190429241104016BD99B240298A -:1031800007D80B000733A343C0189042ECD30020AC -:10319000F3E74430F9E7134B134A1B68126810B584 -:1031A000FA24934201D81A00F824104BE4021B6859 -:1031B0009A4210D813000E4A12689A420ED3013375 -:1031C00007D1F823DB029C4203D10A49054808F0E5 -:1031D00037FB200010BDFC24E402ECE7FE24E402EF -:1031E000F7E7C04600C0071100D0071100E0071143 -:1031F00000F00711FFFFFF7FF0B59BB015000490B2 -:103200000391402A00D9A0E006AB59801A80FFF74D -:10321000C2FF0400042816D9002206A9FFF768FFA0 -:10322000052810D906AB1B88AB420CD1002D07D066 -:10323000514B2A000499C01808F052FC002802D112 -:1032400001201BB0F0BD06AB1D8020000699FFF7E2 -:103250007FFF041E7BD1069B0793FFF79CFF802313 -:103260005B01C618802307001B039E4201D3F8268A -:10327000F60288235B05F31801931B68013302D023 -:10328000019808F07DFC3D49019808F0D9FA3B1DF2 -:103290000293331D05938822029B52059B181B68DD -:1032A00008935A1C3CD044219AB20091402A04D879 -:1032B0000320D11D814389B2009103991B0C8B42DD -:1032C00024D0402A22D80122300008A9FFF710FF9D -:1032D000021E1BD1380008A9FFF70AFF04000428CA -:1032E00031D9009A059B9B1880225201B218934253 -:1032F00040D288235B05C118009A09A808F0B8F9E4 -:103300001D4B009A09A9F01808F06AFB009A029B6D -:103310009446634402931A4B029AFB189A42BAD31A -:1033200088235B05FC1821680198013908F088FAA8 -:10333000200008F025FC039A07AB5A80300007995B -:10334000FFF706FF0400002C03D1002079E70428D2 -:10335000FBD988235B05E018069908F071FA03236E -:10336000EA1C9A4300D16BE7034B0499E01808F07C -:1033700037FB65E70424ECE704000011FFFFFF7F43 -:10338000F80F0000F7B505001400402A21D80027E7 -:1033900001AE71803780FFF7FEFE042816D93A008F -:1033A0003100FFF7A5FE042810D93688BC420BD0A7 -:1033B000BD4209D0221CB44200D9321C064B92B245 -:1033C000C118280008F054F930B2FEBDC04300B265 -:1033D000FBE703204042F8E70400001137B5042260 -:1033E00004000D0001A81649FFF7CCFF02000428D5 -:1033F0000BD1019BA34208D3AB4204D0104901A8D2 -:103400000195FFF7F9FE01203EBD0E4C2368200018 -:10341000019308F0B5FB019920000139019108F0F2 -:103420000FFA80235B01E418074B9C42EED1042283 -:10343000034901A80195FFF7DFFE0020E4E7C0463D -:103440005555000000C007110000081130B589B0C3 -:1034500008F03EFA10226946254808F0D1FB254BBA -:10346000009A9A420ED1019B029A0F2B33D8002169 -:1034700001240698013B08D2002900D00292029B49 -:10348000013331D10023029325E0551CF2D1020013 -:103490002100EFE710341022200004A908F0B0FB4F -:1034A000029B013301D1069B0293882304995B059B -:1034B000C918059B06981A03120B049105928142C4 -:1034C00003D02B4201D108F0D3F8019B013B0193BB -:1034D000019B002BDED1029B002B03D004930498A8 -:1034E0004168084709B030BDE025014C2D03EFE7E6 -:1034F00000000111504859368022F8B5964C974B80 -:10350000D200002120001C6008F0B2F92300944A88 -:1035100088331A60934B1A786A23002A00D011333B -:10352000E3620A232365904B37221B780820A363AC -:103530008E4B2118E361102323628D4B3B25636181 -:10354000C823DB00A36123008C331A602823013ACF -:10355000E26320646364CA67043A211DCA672100DC -:10356000BC310D602100C03108602100C4310B6006 -:1035700021000635CC310D602100083DC8310D60B9 -:103580002100D0310A602200D43210602200D832EB -:10359000136022000227E032210017604222DC3152 -:1035A0000A6021001B3DE4310D602100E831086014 -:1035B0002100EC310B6023000521F4331960230056 -:1035C000F0331A602300183290331A6023009433CA -:1035D000186023001E3A98331A60AF23DB00236083 -:1035E000644BFA262363644B644DE360644BF03113 -:1035F000A3642300FF31FC33B600A16021611E608B -:10360000A5627325E5656D3D6565A56596255D4AF1 -:10361000AD00E264666258606766A566002709250A -:10362000A767E566584F594D606720002567E26738 -:103630003A6015279C30676007001A203860200028 -:10364000A0300700212038602000A83007004C4837 -:1036500038602000F830066026006427A436376002 -:1036600026005F3FAC3637602600033FB036376038 -:103670002600C637B436376026000027B8363760D4 -:1036800038269E60424E96205E64424E5A66DE6147 -:10369000414E9A645E62F53EFF3E9E621E269A6728 -:1036A000354A8000DE661F675F67DD651D6618624C -:1036B000DA67BE23394A5B00E250394BD8382350D1 -:1036C00004302250C4225200A350C623E4205B00E1 -:1036D000E1500433334AE1503349344BD16034492B -:1036E000800019503349E938FF3819503249043005 -:1036F000195032493248D16132491163324951631C -:103700001900F4310860CE20304940001160304982 -:10371000195019002F48F83108602F49D1658221CE -:103720002E4A89005A501A002D490832D1671A00D2 -:103730002C49B432116088212B4A89005A501A0052 -:103740002A49883211602A4ADA6407F0D9FF012039 -:1037500008F0B6F8F8BDC0460004FF1F4064FF1F24 -:10376000206FFF1F3044FF1F4A0AFF1F3A07000067 -:1037700080C3C9019A020000DC0500006A1800003D -:1037800050C3000088130000F009FF1F204E000006 -:103790006509FF1F68100000C409000040420F00C7 -:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 -:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 -:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 -:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 -:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 -:1037F000851DFF1F0223F0B50124614D614E2B7022 -:10380000614B91B01C70614F039333680021082015 -:10381000FB7006F0DFFD082006F0D6FC002398427E -:1038200005D0FA78552A02D0332A00D09BE03360C5 -:10383000042006F049FF08F0C3F8FFF75DFE07F02B -:103840002FFF1F2201240021514B10AE1A70514B43 -:103850001C70514B1970514B19689143163A0A4329 -:103860001A60602219689143403A0A431A6008F0CE -:1038700067F908F055F8C120FF21494B80001A581C -:103880008A431A50C522920098588843BF39014391 -:1038900099509858434908408021C901014380202C -:1038A00099509958C0050902090A0143995080218D -:1038B0003D48490107F05CFF032322003B49019486 -:1038C00000933B4807F0F4FF2C223A4905A807F083 -:1038D000CFFE05AC61782078023406F095FCA64254 -:1038E000F8D1354C0020012106F0A2FD2268334BAF -:1038F00003201A40A023DB021343236080232268A5 -:103900009B041343236022682D4B1A4080239B03A2 -:10391000134323602B4A2C4B934200D8012008F01C -:103920000FF808F015F880232268DB0413432360A6 -:10393000287807F085FE039B1878C0B208F018F8C5 -:1039400007F036FF2149042008F0B2F806F088FE9F -:1039500000F0A8F800F0EAFD00F092FE00F00CFA8A -:10396000002011B0F0BD00932100184A042007F098 -:10397000F7FF8023DB059C62FFF768FD58E7C04630 -:103980004A0AFF1F34F000403044FF1FCC61FF1F84 -:10399000480AFF1F490AFF1F680AFF1FBCF00040CA -:1039A00000E100E0FF00FFFF3444FF1FB856FF1F97 -:1039B0003454FF1F40BC001114F00040FF7FF8FF9B -:1039C000FFFF9FFF0080FF1F206FFF1F3B000108CC -:1039D00070B500252549264A26484D6308CA1B05AF -:1039E0001B0DED188242F9D100268022224B920550 -:1039F0008B630921214B224C1E62224B1120DA6776 -:103A0000214BDA688A43DA609A6820490A409A6052 -:103A1000266008F07DF8112008F0BAF88022636C67 -:103A200093436364EE24E4006C43194A200C0400C1 -:103A3000642390420AD8FA223300D200904205D97A -:103A4000144B0A21C01807F0CBFDC3B2124A112053 -:103A50001372D48007F0E4FD104B1B78002B04D1C7 -:103A60000F4B1021187808F083F870BD0000054056 -:103A70008805054000060540FF01000000F00040F9 -:103A80000038004004E100E03CF00040FFDFFFFFB1 -:103A9000B70B000030F8FFFFB461FF1FEE63FF1F9C -:103AA000EC61FF1F002210B51100112007F0A0FFEC -:103AB00010BD0000F8B500230926374F374C3B6294 -:103AC000E3681120B343E36008F062F8112008F0C6 -:103AD0001FF8112008F064F8402322688025134362 -:103AE000236080236268DB0213436360A3682C4A6F -:103AF0002B43A360A36802211340A3608023A26824 -:103B00009B0113431022A360236C0720934323647B -:103B1000236C0F3A1343236480235B003B62226BC8 -:103B2000204B1A402263626B1A406263A26B1A40F8 -:103B3000A263E26B1340E363E3681B4A1340E36054 -:103B400006F062FB0121072006F072FC174B1120E2 -:103B50005A6C15435D6407F0BBFFFD21144B154AF9 -:103B600089005A508023C720626B5B031343636351 -:103B7000E36880003343E3600F4B104A195811404B -:103B8000802212020A431A50802292051A600822EB -:103B90000B4B5A63F8BDC04600F000403CF00040BB -:103BA000FFFFDFFFEFFFEFFFFFFF7FFF0038004069 -:103BB0000000FF1FD139001100E100E0FF00FFFF0E -:103BC0000000054030B503A804880B20002C0ED15E -:103BD0004968074D08784978090201430A20A9423B -:103BE00005D1012120001980024B1B7A137030BDD2 -:103BF000192A0000B461FF1FF7B5150008AA16883E -:103C00004A680F4F14785278120222430A24BA42AB -:103C100014D10122DBB2019200962A0007F070FC59 -:103C2000041E0BD1074B1B68002B07D068782A783D -:103C30000002104342425041013098472000FEBD2F -:103C4000022900003861FF1F30B501250379040007 -:103C5000BFB02B4211D00A49408806F0BDFF284270 -:103C60000BD0084B01A95B8D4D800B80064B0022C9 -:103C70001B7A60880B7104F08FF83FB030BDC046EE -:103C80003061FF1F6840FF1FB461FF1F10B5054979 -:103C9000054806F057FF0421044A054806F014FFC2 -:103CA00010BDC0463061FF1FFFFF00006CBC00115B -:103CB0006840FF1F10B5024804F0F0FE10BDC0467A -:103CC000493C0011062310B5837010330371443B47 -:103CD00043712A3383714433C371002302220121CB -:103CE00003720E4B027041701C8881724472197A03 -:103CF0000273C1729A784273DA7882730322C273B4 -:103D00001A7902745A7942740C2282749A79C274B4 -:103D1000DB7903751123C370152010BDB461FF1F3B -:103D200010B5142007F074FD124B14220021186006 -:103D300007F09EFD002007F04BFE012007F078FF02 -:103D4000022007F06DFE032004F04CF9042006F079 -:103D500061F9052003F08AFB062004F057F80720DC -:103D600001F05AFA082006F08FFE092001F034F81D -:103D700010BDC0463C61FF1F07F0F2FE012007F0B6 -:103D800027FD07F0DDFC0000094B10B50400984248 -:103D900005D0012904D12000064906F0D3FE10BD4C -:103DA0000229FCD1013904F037FE0028F3D0F6E7F0 -:103DB000FEFF00006261FF1F70B50D7A100004AABB -:103DC0002C00168810221440154220D1002E20D13C -:103DD0000A78022A18D14A68517815780E4A0902E1 -:103DE0002943914205D00D4A914209D01C800A24F2 -:103DF00004E014220A491A8007F03AFC200070BD42 -:103E00000C2208491A80F7E71C800124F6E70824F1 -:103E1000F4E70B24F2E7C046F3FF0000F4FF0000D4 -:103E2000BC42FF1F48BD001110B5040007490848F7 -:103E300006F088FE074804F071FD0020E40704D571 -:103E40000721054A054806F03FFE10BD6261FF1FCD -:103E5000FFFF0000893D0011B0BC0011AC40FF1F06 -:103E600000B50C4BBFB01A780B4902A800F0C2FC99 -:103E70006B4680B2D880002809D06A46074B01A95A -:103E80001B889380064B0022188803F085FF3FB003 -:103E900000BDC0464061FF1F4161FF1F0641FF1F7B -:103EA0001042FF1F00B50C4BBFB01A780B4902A897 -:103EB00001F0B8FE6B4680B2D880002809D06A466F -:103EC000074B01A95B8D9380064B0022188803F0F5 -:103ED00063FF3FB000BDC0466A61FF1F6B61FF1FFB -:103EE000AC40FF1F1042FF1FF7B50E00377A1C00D1 -:103EF00008AB11003D001A8820231D401F423CD111 -:103F00003378022B3BD173681F785B781B023B43ED -:103F10001E4FBB4208D01E4FBB4214D01D4DAB42BA -:103F200021D00A252800FEBD002A2AD1142C2AD827 -:103F30002200F06807F09CFB174B1C70012CF1D994 -:103F4000FFF7B0FFEEE7002A1BD1202C1BD8220080 -:103F5000F06807F08DFB114B04211C70104B187892 -:103F600007F006FEDEE7E3B20124009201940A00A6 -:103F7000310007F0C5FA0500D4E70825D2E701258E -:103F8000D0E70B25CEE70D25CCE7C046F3FF0000B8 -:103F9000F4FF0000022900006A61FF1F4061FF1F5B -:103FA000EC61FF1F332310B5040003700A22074998 -:103FB000013007F05DFB064B0F201B681A0AE37205 -:103FC00022731A0C1B0E6273A37310BDB461FF1F22 -:103FD000DC61FF1F30B5012503790400BFB02B421F -:103FE00013D00B49408806F0F7FD28420DD06A46F1 -:103FF000084B02A81B889380FFF7D4FF6B46D8803C -:104000000022608801A903F0C7FE3FB030BDC04662 -:104010006261FF1F0641FF1F10B5024804F03EFD1C -:1040200010BDC046D53F001170B5160004AA148813 -:1040300005AA15784A685078117800022A4A084380 -:10404000801805284BD807F023FB03131E29343FA3 -:104050000720032C0BD80422121BAA4200D92A00E5 -:1040600022491A803000091907F002FB002070BDB8 -:104070000720112CFBD81222121BAA4200D92A00B9 -:104080001B491A80EEE707200E2CF0D80F22121BD6 -:10409000AA4200D92A0017491A80E3E70720032C17 -:1040A000E5D80422121BAA4200D92A0012491A801C -:1040B000D8E70720032CDAD80422121BAA4200D921 -:1040C0002A000E491A80CDE70720032CCFD80422FE -:1040D000121BAA4200D92A0009491A80C2E700220D -:1040E0000A201A80C3E7C046DCD5FFFFFBBC0011E5 -:1040F0008861FF1FEBBC0011E6BC0011E1BC0011A0 -:10410000DCBC001110B50D21024A034806F0DCFCAE -:1041100010BDC046D0BC00111C41FF1FF0B50024EB -:10412000274E85B03000B47100F0E2F8254D264BE3 -:10413000EA89297C9A422FD10423300003AA00F097 -:1041400057F90400300000F011F90123B371002C7D -:1041500034D16B4699892B68C9BA4B4329891B4ACC -:104160001B145B1853806B46D9896B6849BA89B2B6 -:104170004B4369891B0C5B181548191C1BB2834201 -:1041800000DD011C0B0400D5002113889180013350 -:104190001380200005B0F0BD0227220003AB3000E1 -:1041A000009700F0F7F80E230400297C012230006C -:1041B00000976B4400F0EEF80443C3E71C00E8E707 -:1041C000F441FF1F9C61FF1F83050000B461FF1FC6 -:1041D0000F27000073B5234E300000F089F8224D00 -:1041E00007236A463000297C00F002F90400300001 -:1041F000002C33D16B461B787F2B2FD800F0B6F8FC -:104200006B46D878F02302041B031A406B469B8848 -:1042100016495BBA9BB21A432B68000953432A899B -:104220001B0C9B184B806B465A789B7812031B0122 -:104230001A436B68024353436A891B0C9B180C4852 -:104240001A1C1BB2834200DD021C130400D500229D -:104250000B888A8001330B80200076BD00F086F841 -:104260000124F9E7F441FF1F9C61FF1FB461FF1FA8 -:104270000F27000070B5114C237C002B0FD0382B7A -:104280000ED10F4D280000F033F8CC23AC222800CB -:10429000217C9B0100F0F4F8280000F067F870BD65 -:1042A000084BE2899A42FAD1054D280000F020F827 -:1042B00000222800217C00F0C5F8EDE79C61FF1F7B -:1042C000F441FF1F8305000010B5084B1A7C002A3B -:1042D00009D05B69002B06D09847041E01D0FEF779 -:1042E0008FFE200010BD0124F9E7C0469C61FF1F2E -:1042F00070B5C17905000C00631E9C411A4BE402A5 -:10430000E41849000460C9B2007906F0C7F8E979F9 -:10431000687949000131C9B206F0C0F8E87909307E -:10432000C0B207F03DFC0023E36661332360AA7945 -:104330005B3B002A0ED022689A43023B1343236062 -:104340000A23E3610733236200232363A36301335A -:10435000E36370BD22689A4302231343236046231C -:1043600063610633A361EFE70050004070B500259C -:1043700004000368DD66C0790930C0B207F008FCAC -:104380002900207906F026F82900607906F022F845 -:1043900070BD0000F8B51E0006AB1D780023046850 -:1043A0001700E366616007F093FA01238022E36659 -:1043B0002B0027615200013B08D207F081F9082049 -:1043C0000A4A1168002D03D12800F8BD2261F2E7E6 -:1043D000236F034203D02369013D33700136136814 -:1043E0005B1A032BEED90125EEE7C0466008FF1FDC -:1043F00070B51C00002305681600EB66696007F0C5 -:1044000067FA01238022EB6623005200013B08D2A9 -:1044100007F056F908200A4A1168002C03D1200041 -:1044200070BD2A61F2E72B6F034203D02B69013C78 -:104430003370013613685B1A032BEED90124EEE7C3 -:104440006008FF1F002370B504681500E366616013 -:1044500007F03EFA0123E366256107F031F9802079 -:10446000064A80001168636B034205D113685B1A2A -:10447000032BF8D9012070BD0020FCE76008FF1F66 -:1044800070B51D00002304681600E366616007F044 -:104490001FFA0123E36626610F33626B1A42FCD0D8 -:1044A0002B0A23611023626B1A42FCD0EDB2256106 -:1044B00007F006F98020074A80001168636B034209 -:1044C00005D113685B1A032BF8D9012070BD0020B9 -:1044D000FCE7C0466008FF1F70B51E00002305689A -:1044E0001400EB66696007F0F3F90123A619EB6687 -:1044F0000F33B4420ED107F0E3F880200A4A80005F -:1045000011686B6B03420CD113685B1A032BF8D94B -:10451000012070BD21782961696B1942FCD00134FA -:10452000E7E70020F5E7C0466008FF1F10B5084C1C -:10453000E368002B08D18022064B52021B689B18AF -:104540006360054B1B68236007F022FAA06010BD72 -:10455000DC61FF1FC8F00040CCF0004070B5184A85 -:10456000936A916A9942FBD116498A689A421FD38D -:104570009A1A8B60144B0126186893B2D202D20E9D -:104580004343424300204C681B0A1B1912029B182C -:104590000E4C0A684B60551CA3420CD8002801D071 -:1045A0004B600A600A4A136008680A4B186070BDC5 -:1045B000581E821ADDE7084A30009B182A00EAE7F5 -:1045C00000F00040DC61FF1F140AFF1F40420F0093 -:1045D000C8F00040CCF00040C0BDF0FF70B51F4CEB -:1045E00023793F2B01D93F2323711D4B22791A7068 -:1045F0001878C0B207F08CF818231A491A4A0B80B1 -:104600001A4913800B805380A379194980200B80AD -:104610000C21938001334B43164D191C000183423A -:1046200000D9011C2980D1806379002B11D101337D -:104630006371237A012B01D8022323726279237AD2 -:104640000D4853430A21584306F0CAFF0B4D28601A -:1046500070BDA02BEDD9A023EAE7C046D061FF1FB3 -:10466000480AFF1F0E42FF1FDC43FF1F0C42FF1FC3 -:104670000A42FF1F0842FF1F71020000C061FF1FB6 -:10468000F8B514210020FEF7A9FE114C011E114DB2 -:1046900009D10C22104BC1CBC1C4280007F0E8F8A7 -:1046A000FFF79CFFF8BD0C2220000C49FEF76AFEC4 -:1046B0000C2802D0084B43CB43C40C2228000849E5 -:1046C000FEF760FE0C28EBD00C220021E5E7C04687 -:1046D000D061FF1F9C61FF1F3CBD0011FC0C00005E -:1046E000F50C0000F0B51D4C8022A5440400882084 -:1046F00069465201400507F013FA902212016A44FC -:104700001300200032C832C316C816C38023144CCD -:10471000144FA6689B033343A3603B6007F0A0F8E7 -:104720008823A0685B05C01807F02AFA00258823B3 -:1047300029008022A0685B05C01840196944520016 -:1047400007F04EF980230135FF355B019D42EED124 -:10475000A6603E60044B9D44F0BDC046FCEFFFFFE9 -:104760004C43FF1F9808FF1F04100000F0B5040021 -:1047700087B0002825D0684607F06AF91B4C02284C -:1047800006D106226946200007F0AAF9002816D0B3 -:104790006946002301250F262F00E25C0133100932 -:1047A0001030874038002F00324097403A000243D3 -:1047B0004A610439062BEFD16846FFF793FF07B033 -:1047C000F0BD182269460A4807F0AAF96A46A30014 -:1047D000D358013305D01822FF21684607F048F866 -:1047E000EAE70134062CF1D1E9E7C0466509FF1F6D -:1047F00000090011F0B5002504000E0085B0AA42A2 -:1048000000D186E04B1C087801934B788978377982 -:1048100009021943F3783F061B040B431F43039718 -:1048200020706570252800D196E033D8112813D860 -:1048300007F02EF869002501250125012501AA00B0 -:10484000B800B1002501250125012501250125011B -:104850002501250105011F01232800D1DEE0DB2809 -:1048600000D02EE1042A00D8ACE01025052A05D09E -:10487000551F2A003800711D06F0FAFE052231008E -:10488000200006F0F5FE2A003900601D06F0F0FE5B -:1048900005353EE0562859D010D8332800D19DE088 -:1048A000552839D02628DAD19C4B2900132218002C -:1048B0001D0006F0DDFFFEF7A3FB5CE0712800D1D0 -:1048C00077E0722800D180E0602800D18BE0DC28FE -:1048D000C5D1022A00D875E07378BFB26370B3788F -:1048E000A370032A05D0033A390092B2F01CFEF7F8 -:1048F00083FC10223900E01CFEF744FDC51C002893 -:1049000007DA60705CE00C222000854906F0B0FEFA -:104910000C25280005B0F0BD013A824D0C2A13D8B1 -:10492000002A0AD02800019906F0A2FEFFF756FEE1 -:104930000C2228007C49FEF75FFC29000C22601C39 -:1049400006F096FE0D25E4E70C22EBE7754D774B5C -:104950002A0043CB43C2E9E7013A704D0C2A11D833 -:10496000002A08D00199280006F082FE0C222800B7 -:104970006F49FEF741FC29001322601C06F078FE07 -:104980001425C6E70C22EDE705226A49601C06F0F3 -:104990006FFE0625BDE712226749601C06F068FE1F -:1049A0001325B6E708226549601C06F061FE09255B -:1049B000AFE77178F02905D8614B188801F08EFDBA -:1049C0000225A6E7FF236370FAE75E4B012A03D0B6 -:1049D00072789A706270F3E79B78F4E72000FFF733 -:1049E000E1FA050095E7013A564B574D062A10D8D3 -:1049F000002A10D0012128005970019906F038FED4 -:104A000001F042F829000622601C06F031FE07255D -:104A10007FE70622EEE700225A70F3E7042A04D962 -:104A20004A4D2F6006F0B4FFA860FFF797FD0422FF -:104A3000039003A9601C06F01BFE052569E7444DA1 -:104A4000062ADFD906222800019907F049F8002834 -:104A5000D8D006220199280006F00AFE06223D4918 -:104A60002800FEF7C9FB0123364A91780B43937067 -:104A7000C8E7012AA6D07078FFF778FEA0E70128E2 -:104A800000D0ECE6931E344F1A2B04D87378002B19 -:104A900009D100F015F9314B39001D78601C6A1EF0 -:104AA00006F0E6FD35E7551E2A000199380006F0AC -:104AB000DFFD2B49AAB23800FEF79EFB00F036F965 -:104AC000E9E7DA281DD1042A00D87BE7082A15D99E -:104AD000B37972791B021343F27912041A43337AC1 -:104AE0001B0613433B603B68052231002000039303 -:104AF00006F0BEFD0422601D03A956E7FE23637085 -:104B0000F1E7DE2800D05DE7511E012A01D1002522 -:104B1000FFE6019800F09EFFF9E7C0469C61FF1F89 -:104B200048BD0011D061FF1FFC0C00003CBD00110E -:104B3000F50C0000A861FF1F8861FF1F5043FF1F95 -:104B40001042FF1FCC61FF1FAD42FF1FDC61FF1F42 -:104B50006509FF1FADAC0000CD63FF1FCB63FF1FD6 -:104B6000AEDE000070477047020010B5094B0A32F4 -:104B7000094C92B2DA815A8298811882207802F028 -:104B800013FB0422054B012120781A7006F0F0FF78 -:104B900010BDC046DA42FF1F1664FF1F1564FF1FD9 -:104BA000013870B5042809D806F072FD03092808F9 -:104BB0001200234B0221187806F0DAFF70BD204B5B -:104BC0000821187806F0FCFF00221E4B1A72F5E748 -:104BD000802200241B4B1A4D52001A8108211A68AA -:104BE0002878DC7206F08CFF2100287806F0E0FFC0 -:104BF000012000F067FE00F047FFDFE7104B0821BF -:104C0000187806F0DDFF1048FFF75CF80F4B104AEC -:104C10009B79002093800F4A13808022094B520019 -:104C2000D8721A8100F04EFE00F02EFF0A4B9B78DE -:104C3000002BC3D0094A136006F022FFBEE7C0462E -:104C4000EC61FF1FC061FF1F1942FF1FD061FF1FF2 -:104C5000DC43FF1F0A42FF1FCC61FF1F34F00040FE -:104C600010B501290BD1082809D1054B1B78002B61 -:104C700005D02622034B04485A72FFF775FF10BD7A -:104C8000EE63FF1FC061FF1FC40900000300F0B501 -:104C90000A4D8E18B14202D152008018F0BD0C7836 -:104CA0002F6824093C5D0F271C700C7801313C40B3 -:104CB0002F683C5D5C700233ECE7C0460442FF1F86 -:104CC0000D22114B10B51A700C23104C1049237093 -:104CD000093A033B0F48637006F0CAFC2D230122FA -:104CE0000D490E48A371FFF7D1FF01220C49FFF7D0 -:104CF000CDFF01220B49FFF7C9FF00220A4910002E -:104D0000FEF77AFA10BDC046EA63FF1FCB63FF1FB0 -:104D1000FBBC0011CD63FF1F6709FF1FD263FF1F9C -:104D20006609FF1F6509FF1FAEDE000070B5124C5B -:104D3000132220001149FEF725FB114D002817DD35 -:104D4000AB78002B14D0431C2B7009236B7000230D -:104D500000190370287829000130C0B206F010FD58 -:104D6000297822000139C9B2002005F0CBFD70BDC1 -:104D7000FFF7A6FFEEE7C046CD63FF1FAEDE0000E3 -:104D8000CB63FF1F10B5114B1A781870002A0ED094 -:104D900000280BD10E4B1A78062A07D85423D3408B -:104DA000DB0703D50B4B187802F0FEF910BD002885 -:104DB000FCD0074B1B78012B02D0033B022BF5D80C -:104DC000044B0121187806F0D3FEEFE7EE63FF1FD6 -:104DD0001564FF1F1664FF1F70B5514E514A5249AA -:104DE0003070082005F01AFC0121022005F020FB9C -:104DF000022005F001FC0121002005F019FB002034 -:104E000005F0FAFB00F0AAFEFEF7FAF806F0E8FE5D -:104E1000032246494648FFF739FF2D2403000422A8 -:104E20001C7044490130FFF731FF30230470424DBC -:104E3000424C437083702E3B062220004049EB8792 -:104E4000FEF7A0FA062813D0200006F001FE022883 -:104E500009D00321200006F0EBFB8D23E3706E3BAD -:104E6000237119336371062220003549FEF7C4F916 -:104E7000344B1B68FC335C64FFF758FF0020FFF7DE -:104E800081FF314C314A0121314B1278207802F0F8 -:104E90004DF9304A304B12780021207802F046F963 -:104EA00001222E4B1A702E4BDB78552B31D12D4B16 -:104EB0003B325A722C4B2D4AAB81EA812B826A829B -:104EC0002021307806F04CFC0120404205F066FDC0 -:104ED0000120404205F002FEFFF714F9FEF7D6FE6E -:104EE00000F0A4FC01204042FEF79EFF012006F0E6 -:104EF000EFFBF02001F0D6FA0121307806F038FE01 -:104F0000307802F0ADFA1A4806F002FDFEF7D2FD45 -:104F100070BD6422174B5B7953431A000A32CBE70A -:104F2000EC61FF1F654B0011614C00115043FF1FE6 -:104F30008861FF1FA861FF1FDA42FF1F6509FF1F7D -:104F4000ADAC00004064FF1F1664FF1F3842FF1F16 -:104F50001942FF1FEA63FF1FCB63FF1FBC63FF1FE4 -:104F6000CC61FF1FC061FF1FC4090000CE09000013 -:104F7000EE61FF1FD061FF1FF8B50A0020230D006E -:104F80001A40194257D0574B1B78002B50D0FFF7CF -:104F9000E5FA554B554C564E99686268737A8A1AF1 -:104FA000DB039A4202D36160FEF784FD327A217AF4 -:104FB000531EDBB2994205D1FFF75CF9002000F0E7 -:104FC00099FD0FE09142F9D300232372FFF77CF99A -:104FD000012000F08FFD474F3800FEF773FE3900C7 -:104FE00006F01EFE637A002B1FD0013BDBB263721A -:104FF000002B1AD1404BDB78552B01D106F040FD38 -:10500000E37A002B0CD000233C4A3A4FE37213881A -:10501000380001331380FEF755FE390006F000FE1C -:10502000642370795843FFF79FFD237A013323727D -:1050300020206840F8BD0BB2002B0ADA304B1878FC -:1050400006F03EFD002801D006F0C2FD80200002DF -:10505000EFE70224214206D0244B01201A72FFF709 -:1050600091FE2000E5E70B071ED5FFF777FA1E4BF0 -:105070001E491F4C98684A68637A821ADB039A4279 -:1050800002D34860FEF716FDFFF71EF9FFF7F2F8AE -:10509000012000F02FFD00F0E3FB2368DB0701D5C2 -:1050A000FEF7BAFF0820C4E71024214206D00D4BBA -:1050B0001B78002BD5D1FEF7FDFDD2E7012421425C -:1050C00007D0104800F06CF806F092FA00F0F8FCF7 -:1050D000C7E70424080020402142ABD0FEF7C0FE01 -:1050E000BFE7C046EE63FF1FDC61FF1FC061FF1F0B -:1050F000D061FF1F1942FF1FCC61FF1FB461FF1F6A -:10510000EC61FF1FFC41FF1FF0B51B4B1B4F1B88C1 -:105110003A8804001A4E1B4D85B09A420DD8328849 -:105120009A420AD3184B1A882B889A4205D1174AFB -:10513000174B12881B889A421BD0052001F008FAF1 -:105140003B8802AA13803388019053802B88114D2D -:1051500093800F4B02A91B88D3800F4B2A781888A5 -:1051600002F024FF0D4B08212878019A1C7006F0EC -:105170002FFA05B0F0BDC046BA63FF1F0E42FF1FF5 -:105180000C42FF1F0A42FF1FB863FF1FB663FF1FD9 -:105190000842FF1F1664FF1F1042FF1FB463FF1F6A -:1051A00013B50C4B1C78002C11D1002801D00A4BF0 -:1051B00018600A4A0A4B11780A4A10780A4A019282 -:1051C0000A4A0092002205F095FA200016BD11242B -:1051D000FBE7C0461564FF1FB063FF1F1464FF1F89 -:1051E0000464FF1F1664FF1FF063FF1FF463FF1FBB -:1051F00010B5064B12201B78052B06D1044B132249 -:105200001988044B187801F07FFB10BD1564FF1F4F -:105210001042FF1F1664FF1F10B500240122114B1E -:1052200052421870104B1C70104B1A8002F018F983 -:1052300004220F4B21001A700E480C3206F0C0FAFF -:10524000102221000C4806F0BBFA07220B4B1C6011 -:105250000B4B1C700B4B1C700B4B1A700B4B1C70C8 -:1052600010BDC0461664FF1F1564FF1F1042FF1FCC -:105270001464FF1F0464FF1FF463FF1FF063FF1F2C -:10528000CA63FF1FC963FF1F1242FF1FC863FF1FCE -:10529000F8B5174C0600257806A814240078052DCB -:1052A00023D1B41F134FA5B21824BD421DD88D1FA2 -:1052B000ADB2BD4219D8FA256D00AA4215D21D0023 -:1052C0000D4F0A3DADB2BD420FD80C4C26800C4CA0 -:1052D00021800C4900240A800B4A1380FFF714FF39 -:1052E0000A4B0421187806F06BFC2000F8BDC0467C -:1052F0001564FF1F790C0000750C00000E42FF1FA3 -:105300000C42FF1F0A42FF1F0842FF1F1664FF1FC7 -:10531000F0B50BB20D0089B0002B00DB70E1A44E9C -:10532000307806F0CDFB041E50D00378A22B00D1BC -:1053300022E1D02B1AD0912B45D143780E2B42D1AC -:105340009C4B82889A423ED19B4A83681278052AF8 -:1053500039D1032018567F2835D0984B1B68002B75 -:1053600031D05B68002B2ED098472CE0807807283E -:1053700029D806F08DF90428183F3F74A8D863781F -:10538000002B0CD101218C4B19708D4B1A78002AFF -:105390005BD08C4B307801F0C9FE002855D0072235 -:1053A000854B1A7051E061780029F8D1E378002B21 -:1053B00011D0854A854B1278307801F0B7FE6070C5 -:1053C0006378002BEBD1200006F002FC8020000265 -:1053D000684009B0F0BD784B1B78022BF3D0012157 -:1053E000307806F02DFB0028EAD10121307806F054 -:1053F000BFFBE5E76378002BD1D16F4F032807D1BE -:105400003B78052B02D101333B701EE00223FBE702 -:105410006F4B1A886F4B0293002A0BD01B78002B1E -:1054200003D00121307806F0D3F83B78062B04D165 -:10543000013BE9E7029B1A70F7E7042B41D10121F8 -:10544000029B3078197006F093FB5C4B1B68002BB5 -:10545000B9D01B68002BB6D0574A107884E7637820 -:10546000554F002B27D10622211D5B4806F000F97D -:1054700062895A4B5A491A80A2895A4B1A80E38989 -:105480000B800521397058490A80584A1380228AB6 -:10549000574B1A80574B1B78012B09D11F2001F065 -:1054A00057F8FA22920042430421307806F090F82F -:1054B0000022484B75E7312B00D070E70022454BA6 -:1054C0001A700323A0E706220021434806F078F96A -:1054D0000023454A04211380444A30781380444A0B -:1054E000138006F06DFB0821307806F069FBA37984 -:1054F000083B5A425341304A03331370304B1B78F8 -:10550000002B06D0334B30781A78002A06D001F0F1 -:105510004BFE0122314B52421A8096E7012119704D -:1055200006F026FBF5E70821307806F049FB6378A2 -:10553000002B00D047E72C4B2D4F0293E388029AB3 -:1055400004211380294B307803932389039A138015 -:1055500063893B8006F074FA002800D033E7264BBD -:105560001B68002B00D12EE7039902983A8809881E -:1055700000881B68984726E74379132B00D022E761 -:105580000389012B0AD11D4B1B78022B06D1082160 -:10559000307806F015FBFFF72BFE14E7052000F02E -:1055A000D7FF08210200307806F012F80BE7C0465A -:1055B0001664FF1F051400001564FF1FB063FF1F72 -:1055C0003842FF1F1942FF1FEA63FF1FCB63FF1F13 -:1055D000EC63FF1FEE63FF1FBD63FF1F1042FF1F41 -:1055E000C463FF1FC663FF1FBA63FF1FB863FF1FBB -:1055F000B663FF1FBC63FF1FAC63FF1FB463FF1FD5 -:105600008020C001014200D0E2E6CB0731D5324B09 -:105610001B78002B1DD0314E05AC3378052B1AD1E9 -:10562000023B23702E4B21001B7823722D4B1B78DD -:1056300063722D4B187801F01DFD002809D007205A -:105640002A4B30701B68002B03D01B68002B00D046 -:1056500098470120BCE60E20254B06221B782549E1 -:105660002370254B1B78637002ABC01806F000F85E -:10567000D8E7022308001840194209D0174B1B78BD -:10568000052B03D11D4B188805F0C2FF02209FE6B1 -:105690000424214203D0FFF737FD200098E60823B9 -:1056A00008001840194200D193E6154B1C78012CD4 -:1056B00003D0022C0DD008208AE6124B124A13495F -:1056C00013481B881288098800880094FFF7E0FDC2 -:1056D000F1E7FFF78DFDEEE7EE63FF1F1564FF1F97 -:1056E0001242FF1FC863FF1F1664FF1FB063FF1F36 -:1056F000CA63FF1F1342FF1FC963FF1F1042FF1F32 -:10570000B463FF1F0842FF1F0A42FF1F0C42FF1F26 -:105710000E42FF1F10B502A804880B20002C10D1E8 -:10572000496808784978090201430C48814209D147 -:10573000022119800A4B59881170DB7800205BB276 -:10574000537010BD074C0A20A142FAD102211980E2 -:10575000034B998811705B79F0E7C0466E2A000010 -:10576000B461FF1F6F2A0000F7B5150008AA16885C -:105770004A680F4F14785278120222430A24BA4220 -:1057800014D10122DBB2019200962A0005F0B8FE86 -:10579000041E0BD1074B1B68002B07D068782A78B2 -:1057A0000002104342425041013098472000FEBDA4 -:1057B000022900002864FF1F30B501250379040089 -:1057C000BFB02B4225D01449408805F005FA284285 -:1057D0000CD0124B01A95B8D00220B8002234B8061 -:1057E0000F4B5B888B80608802F0D6FA0D49608889 -:1057F00005F0F2F9C0070CD50B4B01A91B8800225C -:105800000B8002234B80064B9B888B80608802F0C4 -:10581000C3FA3FB030BDC0462064FF1F3C42FF1FAB -:10582000B461FF1F1864FF1F9642FF1F10B5074C9D -:105830000749200005F086F92000064905F082F9A5 -:105840000721054A054805F03FF910BDFFFF00009C -:105850002064FF1F1864FF1F68BD00113C42FF1F3A -:1058600010B5024803F01AF910BDC046B95700112F -:1058700070B55F25082607498400CA788B784001F7 -:105880002A40B3433440A843234302438B70CA7079 -:1058900070BDC046AD42FF1F010043B204205A0054 -:1058A00002409B000C3003401A43152310B5044CF2 -:1058B000E0789843143B0B4018430243E27010BD5C -:1058C000AD42FF1F10B5054B082419790A00A24309 -:1058D000002801D022000A431A7110BDAD42FF1FFB -:1058E00010B5054B4024D9780A00A243002801D006 -:1058F00022000A43DA7010BDAD42FF1F0821F8B53F -:10590000324D334BAE7804000E40AE70984204DD49 -:1059100067232B70473B6B70F8BD2E4B984203DA20 -:10592000E0232B703A3BF6E700232B706B7083B2B9 -:105930001A0029485F3292B2284F82422CD9002C9B -:1059400003DA5B421CB204232B70053420B20A2117 -:1059500005F046FE04B2FA239B009C4232DB08238A -:105960002A7813432B706421200005F039FE0A21A8 -:1059700000B205F085FE09B22A787B5C13432B70D8 -:105980000A21200005F02CFE0A2100B205F078FE65 -:1059900009B27B5C6A780AE06970002CDBDA5B4252 -:1059A0001CB204232B70F3226B78092CE8DC134320 -:1059B0006B700A21200005F063FE09B27B5C1E4378 -:1059C000AE70A9E7632CCEDCEDE7C046AD42FF1F09 -:1059D0001B4E00001DFCFFFF2A08000092BD0011B5 -:1059E0000823F7B5194FCD003E7904001E403E71E3 -:1059F000EDB2632806DD5F3333433B7120231D4343 -:105A00007D71F7BD0300093305DA20235B42334380 -:105A10003B71A623F3E70E4B019300280BDA042316 -:105A2000444224B23B710A21200005F029FE019B6B -:105A300009B25B5CE3E70928F5DD0A2105F0D0FD3A -:105A4000019B00B21B5C1E433E71ECE7AD42FF1FA1 -:105A500092BD0011F8B50A4F05003B780E00002BEF -:105A60000CD0084C2000FEF743FC33002A00200035 -:105A70003978FEF731FD2000FEF778FCF8BDC0460E -:105A80003364FF1FB442FF1F70B50A4E0A4D062251 -:105A90003100280006F024F8002809D0074C310016 -:105AA0000622280005F0E4FD07212000FFF7D2FFC1 -:105AB00070BDC046AD42FF1F2D64FF1F2C64FF1F49 -:105AC000E622402110B50A4B1A70403A5A703E3215 -:105AD0009A70DA780A40DA70082219791140053A8A -:105AE0000A431A7147225A71FFF7CEFF10BDC04614 -:105AF000AD42FF1F10B500282AD0164C0A21022300 -:105B0000E05E05F06DFD00B2FFF7F8FE0423E05EF5 -:105B1000642105F065FD012100B2FFF761FF237AE2 -:105B20000024132220009A426041C0B2FFF7D8FE41 -:105B30000320FFF79DFE2000FFF7AEFE064B18780E -:105B4000053843425841C0B2FFF7BCFEFFF79CFF47 -:105B500010BDC046B461FF1F1564FF1F70B500255E -:105B60000A4C2000A571FEF7C3FB10233E21200044 -:105B7000074AFEF7B1FCA84200D13E35054B200094 -:105B80001D70FEF7F3FB0123A37170BDB442FF1F2C -:105B900082BD00113364FF1F0200F0B501270A48DF -:105BA0000A4E51188B1A002B00DCF0BD0824157822 -:105BB0004308684038404000805B013C58406D0815 -:105BC000002CF5D10132EDE7FFFF0000A2BD00116E -:105BD000F0B500250F269D4200DBF0BD4C5D0709A6 -:105BE00044403440A400A05801357840F3E7000059 -:105BF000F0B589B06A460D000B000F271100103573 -:105C00001C780133260024093E401670547002327D -:105C1000AB42F5D12023024AFFF7DAFF09B0F0BD0D -:105C2000A8BD0011F0B54E780B7889B036020C0093 -:105C3000170001901E43012A61D9954B9E4200D85E -:105C400077E001339E421CD1062A17D1CA788B789F -:105C500012021A430B791B0413434A7912061A43A2 -:105C60008C4B5A6100221A705A808B4A5A608B4AB8 -:105C70009A608B4ADA60002009B0F0BD8822520594 -:105C8000EEE7884B9E423CD182498B78002B00D0B6 -:105C9000F6E00C2A31D10F22A3789343E278120266 -:105CA00013432279120413436279120613434B60A3 -:105CB000E279A07912020243207A00041043627A4A -:105CC00012060243CA60E27AA07A120202437648C0 -:105CD0004A81834208D804236E49142201980B702C -:105CE00005F0C6FC1420C7E71201D21889235B0512 -:105CF0009A42F0D801238B70BDE7022AFAD005231F -:105D0000EAE76A4A01239642E6D1FFF771FA052FC6 -:105D10000CD9E378A2781B021343227912041A43A8 -:105D200063791B061343624A0393136005F0A8FED0 -:105D3000A1E7584D2B78002B9DD1AB78002B00D1DB -:105D4000A0E02B8901339BB20093B34200D091E0D5 -:105D5000132AD4D9CF7C8B7C3F02122120001F4311 -:105D6000FFF71AFF874200D08EE0002E3DD1E37886 -:105D7000A2781B0213432279E96812041A4363795B -:105D80001B06134303930A228B4212D1FF23A370F5 -:105D9000E370237163716B89002B09D1E37B227C53 -:105DA0001B0212041343A27B13431B0901336B81B3 -:105DB00000226B89002B8ED0002A67D168683701DA -:105DC0003818000B6B6900030390984205D968618D -:105DD00005F0D6FEEB780133EB7068681022A11C49 -:105DE000381805F0FDFD2E8145E76F89009A7B1E6E -:105DF0009BB293423AD1E278A37812021A432379F4 -:105E000005A81B04134362796C6812061A43EB68F9 -:105E100000920392211D0C22049305F029FC01201D -:105E2000260004A940421036FFF7E2FE013F012F91 -:105E300017D1009A0B232861824200D04CE704223C -:105E40001C49200005F0CCFD042203A9686805F078 -:105E500067FEE968039AFF23914200D13CE7F73BD4 -:105E60003AE73100FFF7C4FE1036DFE70923B742F7 -:105E7000A4D831E7009BB34200D9FCE607232BE707 -:105E8000022329E7032327E7062325E70A2323E73D -:105E9000FFFE0000BC42FF1F00000111FFFF0000D9 -:105EA0005048593601FF0000FFFF001102FF0000BB -:105EB00034F00040C842FF1F10B5034C0B00012214 -:105EC000210000F06BFA10BD796000110B8870B5ED -:105ED00006000D000224162B11D92B0003220949BC -:105EE00000F05CFA041E0AD1074B2A881B88191C93 -:105EF000934200D9111C300089B200F0EFFA200063 -:105F000070BDC046A56000115A64FF1F10B54A78E5 -:105F10000400013A0B000220012A07D80A78002A5F -:105F200004D005222000024900F038FA10BDC04616 -:105F3000D36000110A7810B50B0004000220002A7B -:105F400004D007222000024900F028FA10BDC04604 -:105F50007F6100110A7810B50B0004000220002AAE -:105F600004D009222000024900F018FA10BDC046F2 -:105F7000E561001110B5034C0B000B22210000F06D -:105F80000DFA10BD1562001110B5034C0B000D2267 -:105F9000210000F003FA10BD8762001110B5034C18 -:105FA0000B000F22210000F0F9F910BDE162001191 -:105FB0000A7810B50B0004000220002A04D0112238 -:105FC0002000024900F0EAF910BDC046F16200115C -:105FD000002310B51322190000F0E0F910BD0000F5 -:105FE00010B5034C0B001722210000F0D7F910BDAB -:105FF00043630011002310B51922190000F0CEF9F7 -:1060000010BD000010B5034C0B001B22210000F056 -:10601000C5F910BD7D630011F7B584890D00060038 -:106020000121002C22D000238268D3561778002B40 -:106030001EDA0C2C1AD90C3CA4B213194088009318 -:10604000230002F086FE431E984101307B06DB0FE1 -:106050006B703F23013C1F40A4B22870AF70AC802E -:10606000002C07D0B3680133AB6000210800FEBDEF -:106070000020EBE7AC60F8E70B7803704B884370C7 -:106080004B881B0A83700B79C3700420704704206F -:10609000022B06D10020537811781B02009A0B4383 -:1060A000138070470B8803700B881B0A4370022013 -:1060B00070470420009983420AD1537810781B025C -:1060C00003430B80D37890781B02034300204B805E -:1060D0007047F8B50D004B7801240021461C037071 -:1060E0002B788B4201D82000F8BD6B78B01C4F1C78 -:1060F000012B10D1890069184B88022233704B881C -:10610000B9001B0A7370691805F022FD04360434C7 -:10611000A4B2F9B2E4E7122359436B185A88043148 -:1061200032705B8810221B0A7370691805F010FD2D -:1061300012361234ECE770B5049D14001E00052BD6 -:1061400001D8042070BD637812781B0213432B80A2 -:10615000E378A2781B02134302226B802A71211D6F -:10616000681D063E05F0F4FCB2B22A81E92AE8D89F -:106170002800A11D0A3005F0EBFC0020E2E7002317 -:1061800010B50A789A4201D8900010BD9A008A187A -:106190005488013304705488DBB2240A4470948814 -:1061A00084709288120AC2700430EAE710B51100B8 -:1061B000029C062B04D004201022142B01D010BD09 -:1061C000022222714B7808781B0203432380CB788C -:1061D00088781B02034363800431601D05F0B8FC1E -:1061E0000020ECE710B50C788B7804315C43E4B206 -:1061F00003702200013005F0ABFC601C10BD0420D0 -:10620000022B06D10020537811781B02009A0B4311 -:106210001380704710B50C000A88023105F098FC15 -:10622000208810BD70B504000D0004981100012BEA -:1062300001D8042070BD16785278120232430280D1 -:106240000200F13255701470E125002C00D10C359C -:10625000023B9AB24280AA42EBD80231043005F0E8 -:1062600077FC0020E6E70420009983420AD15378A6 -:1062700010781B0203430B80D37890781B020343F2 -:1062800000204B80704710B50C000A88023105F0E1 -:106290005FFC208810BD000070B501211E000420A5 -:1062A000049C0E400B4218D1CB40DDB28D4214D974 -:1062B0000A49DBB2098899420FD32300EE331D70DF -:1062C0003300580011184978165C09023143013334 -:1062D0002152D9B28D42F4D8002070BDD442FF1FA4 -:1062E00010B50C000A88023105F032FC208810BD80 -:1062F00010B50C788B7804315C43E4B20370220053 -:10630000013005F025FC601C10BD10B5110002988D -:10631000032B01D8042010BD14785278043B1202DC -:1063200022430280CA788C781202224342809AB2B9 -:106330008280EB2AEED80431063005F009FC0020FB -:10634000E9E710B50C000B8803700B881B0A43703B -:106350004B8883704B881B0AC3708A8804300631CF -:1063600005F0F6FBA088043080B210BD0420012B9C -:1063700003D100201378009A1370704710B50C00F9 -:106380000B8803700B881B0A43704A880230043163 -:1063900005F0DEFB6088023080B210BDF0B589B038 -:1063A00003931E4B029242000700D05A019102F063 -:1063B00020F81325061E2DD0029B01240370019B9B -:1063C000002B04D0001903999847001984B26B463A -:1063D0001B7A5BB2002B0FDA1021380002F01CFB95 -:1063E0001925002813D130003219E1B202F066FC01 -:1063F000051E0CD10C34A4B2042304AA380005A94C -:1064000093800696948101F0AFFD051E02D0300006 -:1064100005F0B6FA280009B0F0BDC0465864FF1F69 -:1064200070B505000C0000280CD00020814209D076 -:1064300010222000044905F08BFB01202B782373E8 -:106440006B78637370BDC046E8BD0011F0B50600FF -:106450000D0017001C0085B002291BD00020102958 -:1064600007D1022B07D0102B03D115E00020102CF0 -:1064700008D005B0F0BD69463800FFF7D1FF2A000B -:1064800069460BE069463000FFF7CAFF2200694603 -:10649000380004E0022BE9D12A003900300005F071 -:1064A0003FF9E6E7031CF02800D9F0230320084950 -:1064B0009AB2013A0B80D317034006499B189B10F0 -:1064C0000B80D30F04499B185B100B807047C046AC -:1064D000D842FF1FD642FF1FD442FF1F034B1B8829 -:1064E0008B4202D3024B4000C1527047D842FF1F7B -:1064F0005864FF1F014B4000185A70475864FF1F33 -:106500001722014B1A8070475864FF1F70B50500B1 -:106510000E2005F01DF9041E13D0D02303700023B4 -:106520000622837007494570033005F011FB064BC6 -:106530002100DA8A62811B7E2373044B187805F0F0 -:10654000F7F870BD7464FF1F6464FF1F2843FF1FCA -:10655000262803D8024B4000C05A70470148FCE788 -:10656000DA42FF1FFFFF000070B506000C00094D66 -:106570001C220021280005F023F9074B1E70074B51 -:106580001C7005F0B5F90123002801D0002312206A -:106590002B7070BD6464FF1F2843FF1F8564FF1FBD -:1065A00070B505000D4C0800E260A16010220021CA -:1065B000656005F04DF9012803D11021A06802F0B3 -:1065C00058FD10220021280005F042F9012803D1CE -:1065D0001021606802F04DFD70BDC0466464FF1F6D -:1065E00070B5041E05D1002903D006220D4805F020 -:1065F000AFFA0D4B1D78012D11D1002C05D10222CF -:106600001A7004F0FDFF280070BD00221A70074BBD -:106610001B78FF2BF7D02000FFF778FFF3E700256A -:10662000F1E7C0467464FF1F6464FF1F2843FF1F27 -:10663000030010B5002801D1002010BD00780B4ADE -:10664000002803D15988D1821B7913761378022B45 -:10665000F2D10023984200D103331370044B1B780E -:10666000FF2B01D0FFF752FF0120E6E76464FF1F14 -:106670002843FF1F002911D000280CD04B79012896 -:1066800003D140225242134303E03F221340032828 -:1066900002D001204B7170474022F4E70800FAE76E -:1066A00070B5094D0100287800280BD0074C062250 -:1066B000200005F04DFA21002878FFF7DBFF2000CD -:1066C00004F0CEFF70BDC0468464FF1F5E64FF1FF0 -:1066D00000290AD0012808D13F224B799343C02BCF -:1066E00003D0403B5A425341981C704770B5174D38 -:1066F00006002B78FF2B15D00A2005F029F8041E80 -:1067000010D0D0230370C83B8370114B11491B7804 -:106710004670C3700622043005F01AFA210028786A -:1067200005F006F80C4B1B78012B0DD10B4B1B68A9 -:10673000002B03D09B68002B00D09847084B042106 -:106740001878084A05F0DCF970BDC0462843FF1FE1 -:106750008464FF1F5E64FF1F8064FF1FAC64FF1F23 -:10676000B064FF1F60EA0000014B98687047C046A4 -:106770006464FF1F014BDB68186870476464FF1F87 -:10678000074B10B5DA68136801331360054B1878AE -:10679000FF2803D08021C90105F0EAF910BDC046E9 -:1067A0006464FF1F2843FF1FF7B50E0002F0C8F80E -:1067B000051E1CD00E4B06621F78002F00D10778F3 -:1067C000AB791020019304F0C3FF041E0FD0D02337 -:1067D0000380C73B8370019BE91DC3700622043010 -:1067E00005F0B6F921003800E66004F0A1FFF7BD1E -:1067F0002643FF1F014B18787047C0468464FF1F73 -:10680000054B002805D1054B1A78054B002A00D10D -:10681000014B18007047C0467464FF1F8464FF1F5B -:106820005E64FF1F014B58687047C0466464FF1FD9 -:10683000024B1868431E9841C0B270478864FF1F1E -:10684000421E03000120152A03D9FF3B5A4253413F -:10685000D8B27047F0B51C0000230E0085B003903D -:1068600002920B70029A934201D3002019E0E55C7A -:106870005A1CD2B2002DF8D0029851198142F4DC92 -:106880000233DFB2A35C18000193FFF7D9FF0028A1 -:1068900007D0013D019A0399EBB233708A4202D1CD -:1068A000E01905B0F0BDDB19DBB2DBE710B50C0079 -:1068B00002F09EF803001220002B03D0210058881C -:1068C00004F0DEFF10BD000070B50E4D840063596A -:1068D000002B15D0186A002801D005F011F82B59AB -:1068E000586A002801D005F00BF82B59986A002847 -:1068F00001D005F005F8285905F002F800232B51C6 -:1069000070BDC0469464FF1F1C4B70B504000E00A0 -:10691000150099420AD11A4B1B68002B01D1122095 -:1069200070BD1B68002BFAD09847F9E7154B9942C8 -:1069300015D1134B1B68002B0AD01B68002B07D006 -:106940009847002804D1104B1C70104B1D70E7E7CE -:1069500029002000FFF7AAFF0028E1D1F3E7080093 -:1069600001F0EEFF0028DAD003780320A342D7D14C -:106970002900300004F084FFD2E7C046FEFF00008B -:106980009064FF1FFFFF00008D64FF1F8C64FF1FDA -:10699000F7B50400808801F0D3FF0025A84203D09A -:1069A0000578A08802F008F81C4E3378002B1FD021 -:1069B000AB421DD11A4B28001978FFF777FF00284A -:1069C00018D000233370A3790820A778A6880193F4 -:1069D00004F0BEFE011E0DD0D0230370CA3B8370AD -:1069E000019B477086808371280004F0A1FE01E0BE -:1069F000002DE8D1A0880B4B8200D358002B01D08A -:106A0000FFF762FF1721A088FFF768FDA08801F05B -:106A100027FDA08801F0FEFDF7BDC0468D64FF1F75 -:106A20008C64FF1F9464FF1FF0B587B01D000CAB92 -:106A30001B88070001930DAB1B88142002930EAB3B -:106A40001B88160003930FAB1B880091049310ABB7 -:106A50001B88059304F07CFE041E1AD0D02303701B -:106A6000CB3B47708370C670062229000430002D8E -:106A700011D005F06DF8019B21006381029B009805 -:106A8000A381039BE381049B2382059BA37404F0F1 -:106A90004FFE07B0F0BD04F093FEECE7F7B50093AE -:106AA00008AB1B8807000C200D001600019304F0B2 -:106AB0004FFE041E13D0280001F042FF00280FD023 -:106AC0000078D0232370C93BA370009B2100238151 -:106AD000019B6770A580E680638104F029FEF7BD05 -:106AE000014B1878EDE7C0462843FF1F13B504009B -:106AF00064890389C2888188C0780094FFF7CEFF3B -:106B000013BD000010B5044C2068002803D004F029 -:106B1000F7FE0023236010BD9864FF1FA122F0B58B -:106B2000818892004A43384B384F1B6804009B18F9 -:106B30009D2292009B18827989B01A603B68002BD5 -:106B40005FD01D78324B1B68002B04D05B68002B94 -:106B500001D000209847260008363100E079FFF781 -:106B6000B7FD237DE0710200E0780493638A290079 -:106B70000393238A0293E3890193A388009333004C -:106B8000FFF752FFE378002B0BD1E289A379A188AC -:106B900002920196E27928000092012201F0DAFEC9 -:106BA000E0703B68002B20D0FFF7ACFF194D287830 -:106BB00000281AD0184B1978FFF778FE002814D057 -:106BC0002B78E67808200793A78804F0C1FD011E02 -:106BD00009D0D0230370CA3B4670837087808671CA -:106BE000079804F0A5FD00232B701721A088FFF75C -:106BF00075FCA08801F034FCA08801F00BFD09B001 -:106C0000F0BD064B9DE7C0463409FF1F9864FF1F87 -:106C1000AC64FF1F8D64FF1F8C64FF1F2843FF1FA0 -:106C2000F8B5070008000E0001F08AFE041E18D017 -:106C30002620FFF78DFC051E00D12578062004F0E4 -:106C400087FD041E0DD00021062204F0B9FDD023DB -:106C50002370C23B21006770A370A680E8B204F0E5 -:106C600067FDF8BDF0B585B001930AAB1B7807004E -:106C700002930BAB1B7808000D000092039301F008 -:106C80005FFE061E22D0102004F062FD041E1DD0FF -:106C90001022002104F094FD2620FFF759FC002863 -:106CA00000D13078D0232370C13BA370009B21001A -:106CB0002372019B67706372029BA580A372039B82 -:106CC000C0B2E3720C9BE36004F032FD05B0F0BD8E -:106CD000F7B50D00019001F033FE071E20D00E2005 -:106CE00004F036FD041E1BD02620FFF731FC061EE3 -:106CF00000D13E78D0232380C53B0622A370F91D26 -:106D0000E01C04F025FF019B2A0063810123DD4084 -:106D10001A401D40210022736573F0B204F008FD93 -:106D2000F7BD0000F0B585B0029010000D0017000F -:106D30000A9E039301F004FE041E31D0029B002B37 -:106D40002ED1039B02795B0724D51223134304221F -:106D5000002E08D10B99002905D10C99002902D1E8 -:106D60000D9900291AD01A430D9B2271002B00D0D7 -:106D7000C9E0002E00D1CFE0002D00D0CCE0606A49 -:106D8000002801D004F0BCFD1C21300004F0B0FE4E -:106D9000606205E002239A430E33D7E793432371E1 -:106DA000654BBA00D458002C00D1AAE0002E10D0B8 -:106DB000236A002B03D11C2004F02AFD20625E4BC5 -:106DC000BA00D358186A002803D01C22310004F0FE -:106DD000BFFE0C9B002B12D0574CBB001D596B6A99 -:106DE000002B03D1162004F013FD6862BB00E358AA -:106DF000586A002803D016220C9904F0A9FE0D9BB6 -:106E0000002B11D04C4DBC006659B36A002B03D146 -:106E1000142004F0FDFCB0622B59986A002803D0BE -:106E200014220D9904F094FE380001F089FD051E2E -:106E300067D0414BBA00D358002B62D01A6A342075 -:106E4000002A00D11C389A6A002A01D0143080B27E -:106E50000B9A002A01D01C3080B25B6A002B01D053 -:106E6000163080B204F074FC041E4AD018220021AF -:106E700004F0A6FC2620FFF76BFB0190002801D14F -:106E80002B780193D0232370029B200063700A2388 -:106E9000294EA370039BBD00A371AB59A780196A4B -:106EA0001830002905D01C22A06004F051FE2000FB -:106EB00034307359996A002907D00300142214331F -:106EC000E060029304F044FE02980B9B002B08D074 -:106ED00003001C221C330B992061029304F038FE3E -:106EE00002987359596A002903D01622606104F090 -:106EF0002FFE6B462100187904F01AFC3800FFF7CA -:106F0000E3FC05B0F0BD10220D9B0D991B69A01884 -:106F1000236204F01DFE2CE70B9B002B00D13FE702 -:106F2000012D00D03CE7606A002801D004F0E8FCA5 -:106F30001C210B982AE7C0469464FF1F10B5044C2F -:106F40002068002803D004F0DBFC0023236010BD80 -:106F50008864FF1F0B4B07B51A68002A01D1002077 -:106F60000EBD6946531C012012780731FFF772FCF1 -:106F70000028F4D002780123100018401A42EED005 -:106F8000EEE7C046A464FF1FF0B51F4F01203B6829 -:106F900087B0002B25D09B78059300F0B3FB002829 -:106FA00021D00A20FFF7D4FA04000B20FFF7D0FA13 -:106FB000164B05001E78731E9E413B68F6B2191DE4 -:106FC000D878FFF757FB3B682900DA7A043303923D -:106FD0009A7901930292009033002000059A04F000 -:106FE00027FD07B0F0BDFFF7B5FF002805D006204C -:106FF000FFF7AEFA04000720D8E70820FFF7A8FA49 -:1070000004000920D2E7C0468864FF1F8464FF1F84 -:1070100070B50A4E040033780D00FF2B0DD004200C -:1070200004F096FB011E08D0D0230370CE3B4570C0 -:107030008370C470307804F07BFB70BD3843FF1F51 -:1070400070B5040006200D0004F082FB011E0AD07A -:10705000D0230370CD3B8370054B44701B68858043 -:10706000187804F065FB002C01D0FFF767FF70BDB6 -:107070008864FF1FF8B5264F06003B680D001124F9 -:10708000002B05D10522234B1B78134202D1122479 -:107090002000F8BD204A10241268002AF8D0127887 -:1070A000002AF5D0DB0719D52B789A1E012A1AD8A9 -:1070B0000C2004F0ADFB132438600028E8D0002336 -:1070C0000A22437029000670023004F041FDFFF7E8 -:1070D0005BFF041E0AD0FFF731FFD9E700F012FB77 -:1070E0000028E1D1E4E7002BE2D0D0E70B4B1B787E -:1070F000032BCDD11D20FFF72BFA094B1880002858 -:10710000C6D0084B04211878074A04F0F9FCBFE701 -:107110008864FF1F8564FF1FA464FF1F8464FF1F32 -:107120008264FF1FB064FF1F60EA0000F7B501939F -:10713000194B14001A78052306000F0012201A427A -:1071400021D0012920D1154B1D68002D1BD0022014 -:107150001F2C18D8002C02D0019B002B13D0104BF1 -:107160001F221E706E1C0021300004F029FB0199C3 -:107170002200300004F0ECFC310020002C70002FC5 -:1071800006D004F03DFBFEBD064B12201D68DCE777 -:1071900004F0F6FAF7E7C0468564FF1FA464FF1FFA -:1071A0003843FF1FA064FF1FF8B50F4E1224336849 -:1071B000002B17D01B780F3C834213D100250B4FB7 -:1071C0000221387804F0FCFC094B042138781D803A -:1071D00004F0F6FC074B28001D8033685C7004F057 -:1071E000A7FC04002000F8BD8864FF1FB064FF1FE7 -:1071F0009C64FF1F8264FF1F70B5012823D11B4CC4 -:107200002388002B03D01A4A1578002D07D0194B7C -:107210001B68002B02D01878FFF7C6FF70BD3B2B10 -:1072200002D93C3B2380F9E7134E0221307804F069 -:10723000C7FCFA222388920002215A43307804F0D6 -:10724000C7F92580EAE70B4B1B68002BE6D00B4BF8 -:107250001B785B07E2D5084B0221187804F0B0FCDC -:107260000022024B1A80FFF769FED7E79C64FF1FDC -:107270008064FF1F8864FF1FB064FF1F8564FF1FC9 -:10728000F8B51E4D2868002803D004F039FB002310 -:107290002B601B4E3068002803D004F031FB002324 -:1072A0003360184F05243B7818002040234221D03A -:1072B000154800F02BFA3B78234213D0202004F02D -:1072C000A7FA2860002813D02022002104F078FAC1 -:1072D000202004F09DFA041E306005D020220021F9 -:1072E00004F06EFA002004E0286804F009FB2C602A -:1072F0001320F8BD00F00AFAF4E7C046A464FF1FAB -:10730000A064FF1F8564FF1F2C43FF1F10B50A4CAC -:1073100023681A1E0ED0002808D10130587004F0DE -:1073200007FC002805D02368002B02D00021FFF7BE -:1073300087FE0122100010BD8864FF1FF7B5274E9D -:10734000050033680191181E21D05C78244F012C70 -:1073500030D1FFF7FFFD002825D02000FFF7F8F817 -:107360000400412814D91F4B022118781E4A04F04A -:10737000C7FB1E4B3C3C1C80022233685A703B7892 -:10738000002B14D128000199FFF75AFE0120FEBD01 -:10739000FA2292004243002AEED0124B02211878C2 -:1073A00004F016F9E8E7FFF7D3F80200F3E700234B -:1073B0003B70EBE73B78002BE8D1032004F0C8F9E1 -:1073C000011E08D0D0230370CC3B45708370336816 -:1073D000187804F0ADF9FFF7B1FDD7E78864FF1F17 -:1073E0008064FF1FB064FF1F60EA00009C64FF1F01 -:1073F00010B51749838802008B4220D011D8154957 -:107400008B4217D0144900205B1899B2012907D884 -:10741000926811785A425341D8B2FFF7F9FD012022 -:1074200010BD0E4A00209B1807229BB29A42404191 -:10743000C0B2F5E783681878FFF768FFF0E7836864 -:1074400099785A78090218781143FFF777FFE7E730 -:107450000A20000006200000F8DFFFFFAFDFFFFF7B -:10746000014B18707047C0463943FF1F10B5064CDA -:10747000207001F041FA207804F012FB05212078F9 -:1074800000F062FD10BDC046B064FF1F0BB273B5C3 -:107490000D00002B00DBC4E0884B187804F010FBD3 -:1074A000041E0ED00378912B0FD0A22B00D1A1E0A7 -:1074B000834B1878FF2852D0210004F039F90028B6 -:1074C0004DD180200002684076BD43780F2B76D0E6 -:1074D00013D8052B70D00E2BEAD18088794B9842B7 -:1074E0002BD8794B98421BD8784B9842E0D1A368AF -:1074F0001878591CFFF774F838E03E2BD8D1837800 -:10750000032B74D06CD8012B6ED0022BD0D1704BD2 -:107510001B68002B23D05B68002B20D098471EE00F -:107520006C4BC0180C28C3D804F082F91DC2C215D8 -:107530000BC20B0B0B3223C23C00674BC018072851 -:10754000B6D8664B1B68002B09D01B68002B06D0F1 -:10755000200098470AE0A3681878FFF7C7F82000D2 -:1075600004F036FBADE7A068FFF762F800289FD073 -:10757000F5E7A3681B78002BF1D0554B1B68002B57 -:10758000EDD01B68002BEAD0210055489847EDE765 -:107590004F4B1B68002BE2D01B68002BDFD0210073 -:1075A0005048F3E7504B1B68002BD8D05B68002B8A -:1075B000D5D021004348E9E7FFF7EAF9CFE7808813 -:1075C0004A4B984203D04A4B984200D070E7464B52 -:1075D0001B68002BC3D05B68002BC0D02100D5E70F -:1075E000153B012BBBD963E7FFF798FAB7E7FFF725 -:1075F0007DFAB4E73F4B1B78042B07D100236A4682 -:1076000013800179408800F0C5FCA8E7364B1B6861 -:10761000002BA4D05B68002BA1D00100364898470E -:107620009DE7012421420AD0294B1B68002B04D07E -:107630005B68002B01D000209847012043E78B07AF -:107640000AD5264B1B68002B04D05B68002B01D0A9 -:1076500020009847022036E70421280008400D4208 -:1076600000D131E7254E3388002B21D0013B9BB25E -:107670003380002B1AD1FFF7DBF800280AD0204B0B -:107680001C70164B1B68002B04D05B68002B01D0CC -:1076900020009847FFF7C6F8694601F001FD6846EB -:1076A000FEF7FEFF1D20FEF753FF308004200AE79F -:1076B000024B187804F084FAF8E7C046B064FF1F64 -:1076C0003943FF1F0E2000000120000009100000B8 -:1076D000A864FF1FFEDFFFFFAFDFFFFFAC64FF1FEB -:1076E0000C2000000B2000009064FF1F0D20000004 -:1076F000132000008564FF1FFFFF00008264FF1F4E -:107700008064FF1F10B501F09BF910BD014B18609C -:107710007047C046AC64FF1F0B880020162B01D8B1 -:1077200017230420014A13807047C0465A64FF1F84 -:1077300000207047074A03001188814207D09188D2 -:107740000020994202D101308000101870470020BB -:10775000FAE7C046B864FF1FF0B58F7806000D0049 -:10776000C5B01E2F15D1FFF7E5FF051E03D100247C -:10777000200045B0F0BD00223B003100C0780092EF -:1077800000F0B2FB0400A81C00F0D2FBFF23EB705A -:10779000EEE7264B062403931B78FF2BE8D0182F27 -:1077A000E6D87B08224A013BDB0002929A589446B5 -:1077B000002ADDD0029AD3185B68002BD8D0087855 -:1077C000002802D14B78012B02D10624122FCFD1F1 -:1077D00007AFAB88697800976446AA68A047041E83 -:1077E000C6D1AB78029A5B08013BDB00D3183900A5 -:1077F00030005B689847041E0BD1AB78042BB6D0E1 -:10780000039A310010782200009700F06DFB04000D -:10781000AEE76A78002AABD1AA7805A93B8808713F -:1078200030000A704B80FEF747FBA0E73C43FF1F88 -:10783000F8BD00111D4B37B5050098420BD000294B -:107840000AD1FFF777FF002805D11948FFF772FF2B -:10785000002800D0058037BD01291AD1FFF76AFF43 -:10786000041EF8D001235B420380A378FF2BF2D0E3 -:10787000FE2B07D00023E0781422009329001E334A -:1078800000F032FBA01C00F053FB01235B4263803D -:10789000E1E70229DFD1013901F0BEF80028DAD191 -:1078A0002800FFF747FF041EDFD1D4E7FEFF0000EA -:1078B000FFFF0000022210B5074B52421A80074812 -:1078C00001325A809A80DA8000F07EFA044801F092 -:1078D00025F8002010BDC046B864FF1F597700117D -:1078E000357800110388F7B50400002B02D102257A -:1078F0002800FEBD42680221137825485268FEF731 -:10790000A5FD00282ED0234F01253A88002AEFD06C -:10791000802321885B0201259B1A9942E8DC0C2018 -:1079200003F076FF061E31D03B8822889C46002358 -:107930001800019561469DB2491989B2AA421BD827 -:10794000002801D062443A8000233000082208C099 -:10795000210004F0FDF8104A1368002B13D1002514 -:107960001660C5E76268022113780C485268FEF77A -:107970006DFD0028C7D1BAE760681D01401941813B -:1079800001330198D6E71A001B68E6E71325AFE735 -:1079900066BE00113A43FF1FB464FF1F64BE0011AE -:1079A000014B18707047C0463C43FF1F14230A0068 -:1079B00010B51A40194204D00122102101F048F8F4 -:1079C00010BD4B06F9D4012088434000F8E710B5FC -:1079D00014008B0604D50122102101F039F810BDE6 -:1079E00008230A001A40194202D14BB2002B0FDAC9 -:1079F000102101F02DF8002808D02300F2331B7865 -:107A0000002BECD0F1342378012BE8D10020E6E7FD -:107A100003208907FAD4E2E7F0B51F00184B85B0C0 -:107A20001C68019002910392002C27D1200005B020 -:107A3000F0BDA5683301ED186B89019A934211D30B -:107A4000029A93420ED8002F04D10A9B002B10D12A -:107A50002C00EBE73B002978039A6868FEF7F6FCF8 -:107A60000028F2D10136B6B2A388B342E1D8246827 -:107A7000DAE7A3680A9A5B891380E9E70026F3E74F -:107A8000B464FF1F37B50C000A884988012391426E -:107A900017D3002A15D0651D23792A0002210A4830 -:107AA000FEF7D4FC102300280BD0237961882088AE -:107AB00000242A000094FFF7AFFF0A23A04200D061 -:107AC000230018003EBDC04666BE001113B50A0073 -:107AD00008884988012388420BD8002809D000244F -:107AE000137905320094FFF797FF0A23A04200D0D4 -:107AF0002300180016BD13B50A0008884988012321 -:107B000088420BD8002809D000241379053200944C -:107B1000FFF782FF0A23A04200D02300180016BD01 -:107B2000F0B58BB003904A8808880E00012382428A -:107B300055D3002853D00023012704AC2370002222 -:107B4000718813000092FFF767FF051E3ED0207872 -:107B5000002835D12B78022B18D167706A898300F1 -:107B60000130E31880005A8069680222201803F06F -:107B7000EFFF23780133DBB22370042B19D93B00CC -:107B80006889013080B2002BD9D01FE002236370D6 -:107B9000122358436A89231804305A8069681022D6 -:107BA000201803F0D5FF23780133DBB22370002BBC -:107BB000E5D10C4A6B899B185A425341DBB2DFE78F -:107BC0006378012BE4D12B78022BC7D022780A23CB -:107BD000002A04D021000398FEF798F9002318002A -:107BE0000BB0F0BD0100FFFF0F4BF0B504001868AB -:107BF000002816D083685D89A54207D88288AE1810 -:107C0000B44203DA12019A18934201D10068EFE7F7 -:107C10001E005F891036A74204D1002900D00D80D4 -:107C20001800F0BD3300EFE7B464FF1F70B5050026 -:107C30000C0008880021FFF7D7FF03000120002B6C -:107C400004D022002800197AFFF7C1FE70BDF7B5F5 -:107C50000C00002501902300EE331B78AB4201D8C5 -:107C600000200AE06B00E65A00213000E718FFF719 -:107C7000BBFF002802D126800130FEBD017A0198A9 -:107C8000FFF794FE002802D03B882380F5E70135FA -:107C9000EDB2E0E710B5040008880021FFF7A4FF6B -:107CA00003000120002B03D02000197AFFF77EFE8D -:107CB00010BD0000054B1B68002B01D1180004E02B -:107CC0009A6852898242F6D198887047B464FF1F3F -:107CD000F0B50E27002687B0039302ABFF183E8055 -:107CE00005001F4B40891400984207D02B780130C3 -:107CF00000976A6880B2FFF78FFE060002212B789A -:107D000018486A68FEF7A2FB00280FD06C89200093 -:107D1000FFF7D0FF002802D0013C0419A4B2039B56 -:107D2000002B00D01C80300007B0F0BD02212B7862 -:107D30000D486A68FEF78AFB0028E7D102212B78FC -:107D40000A486A68FEF782FB002807D0002EDED0C2 -:107D50003B88A342DBD17489013CDFE76C89DEE715 -:107D6000FFFF000066BE001164BE001162BE00117C -:107D700010B50C00FFF7DEFC03000220002B0AD038 -:107D8000002C00D023609B781720FE2B03D00138F5 -:107D9000FF2B00D1002010BD73B50D0001A9040018 -:107DA0001600FFF7E5FF172805D0002E04D12900A3 -:107DB0002000FEF727F976BD01221021200000F0F7 -:107DC00047FE0028F3D0F6E7014B18607047C04625 -:107DD000C464FF1F37B56B469D1D010004000222DD -:107DE000280003F045FC2B88B02B0ED12379122BF1 -:107DF00009D12300FA331B78012B06D101216088B9 -:107E000000F0E0F801E01B2BF8D037BD10B5054BB2 -:107E10000421187000F098F8FFF74CFDFEF770FB96 -:107E200010BDC046C864FF1F0020F0B50BB20F00A4 -:107E300087B0834234DA274B187803F041FE051EE1 -:107E40002BD00378A02B25D103AE3100FEF7E4F848 -:107E5000041E0BD1B378DB0724D51F4B06341B68F7 -:107E6000002B03D03100688898470400A8680028D8 -:107E700001D003F085FD002C08D1184A039B134064 -:107E8000174A934206D0B3781B2B03D00121688890 -:107E900000F098F8280003F09BFE80200002784054 -:107EA00007B0F0BD0F4B1B68002B10D03100688865 -:107EB0009847041EDAD07378002BD7D1B27801A985 -:107EC0000A704B800C716888FDF7F6FFCEE7062438 -:107ED000F1E7C046C864FF1FC064FF1F00FFFF003A -:107EE00000011200C464FF1FF7B50190FC200D00D3 -:107EF00017001E0003F02CFC04001320002C12D0ED -:107F0000B02320002370089BF422677065802671DF -:107F10000830002B08D0190003F01AFE2100019848 -:107F200003F006FC0020FEBD089903F049FCF5E7CC -:107F300010B5041E06D00078FD2803D803F050FCCD -:107F4000FF23237010BD00000A1F93B210B5040078 -:107F50000220032B05D882400020024BD1529B18EF -:107F60009C7010BDE864FF1F0B8870B5043B0400D3 -:107F70000D000220032B0BD80121200000F04CFD46 -:107F800003001420002B03D02900200000F0DEFBAA -:107F900070BD000007B51300034A00920A000121DA -:107FA00000F02CFC0EBDC046D181001107B5019236 -:107FB00003220092024B0A00122100F049FC0EBD80 -:107FC0004F82001107B56B4601AA11800449D88081 -:107FD00008780633012802D1190003F039FB07BDE8 -:107FE000C964FF1F0C4B10B518700023FF210B4A0A -:107FF0001380138193819380094A538013705172C7 -:1080000093819372D174D3821375517703F040FD3D -:1080100000F0FCF910BDC046F864FF1FE864FF1FC4 -:10802000CA64FF1FF0B58DB06B46002003910C228F -:108030009B5E834200DBB0E05D4B187803F040FDAF -:10804000051E00D1A4E00378902B00D09DE006AF80 -:1080500001004688380000F013FA7968040000290E -:1080600000D19CE03B88052B6ED13B89032B1CD9AA -:1080700005AC200000F0A2F86288172A61D839897F -:10808000131D994231D17968237804310291D907BF -:1080900038D5607800F08EF9071E06D000230371F2 -:1080A0002378012B08D0132B23D0A868002800D1F7 -:1080B00078E003F065FC75E06288029909A800F099 -:1080C000A6F80290380000F08BF909AA2378387AD4 -:1080D0000192002231000092029A00F012F9380059 -:1080E00000F064F9029B002BDFD0300000F080F933 -:1080F000DBE70378032BD8D16288029909A800F046 -:10810000D6F8DEE7122B13D1029909A800F0B5F8D2 -:10811000021EEAD127498B88002BC6D0887909A98D -:108120002378019161780091310000F0EAF8BCE712 -:10813000002302AA93833000617809AAFFF72AFF7F -:10814000B3E71D4B0993F6E7042B02D09A1F012ACF -:10815000ABD8184A043B9B00995A0029A5D0D218E5 -:10816000907831003A0000F0AEF800289DD13B88AD -:10817000042B03D001213000FFF724FF012C04D190 -:10818000A868002801D003F0FBFB280003F020FDC5 -:108190008020039B0002434018000DB0F0BD012871 -:1081A00000D182E701213000FFF70CFFEDE7C04668 -:1081B000F864FF1FE864FF1F010017000B780370CD -:1081C0004B784370CB788A781B0213434380704707 -:1081D0000A88030002700A88120A42700A88012A7B -:1081E00006D14A8882704A88120AC27004207047F9 -:1081F00002208242FBD14A8804309A704A88120ACF -:10820000DA708A881A718A88120A5A71EFE710B5F3 -:108210000400012082420CD94B780A781B021343D8 -:108220002380834206D1CB788A781B021343638074 -:10823000002010BD022BFBD1CB788A781B021343A0 -:1082400063804B790A791B021343A380F0E70B8804 -:1082500003700B881B0A43704B8883704B881B0A82 -:10826000C3708B8803718B881B0A4371CB88837121 -:10827000CB881B0AC3710820704703000120082A1D -:1082800014D14A780878120202431A80CA78887892 -:10829000120202435A804A790879120202439A80F4 -:1082A000CA798879120202430020DA80704710B53B -:1082B00004000120022A05D100204B780A781B0215 -:1082C0001343238010BDF8B5060010200F001500E1 -:1082D00003F03EFA04000120002C0ED0A0230C2253 -:1082E000290023806780201D002D07D003F030FC7B -:1082F0002100300003F01CFA0020F8BD03F060FA02 -:10830000F6E7F7B51E00009008AB142017001D78A3 -:10831000019103F01DFA041E12D0A2230370019BE9 -:1083200047704380099B057146710C220830002B71 -:1083300007D0190003F00CFC2100009803F0F8F9B5 -:10834000F7BD099903F03CFAF6E737B5041E0FD0E4 -:108350004388002B0CD00025C1881323007A1722F4 -:1083600001950095FFF7CDFFFF23658063722570AF -:1083700037BD000010B50C4904004A88002A09D016 -:108380008B89002B05D00020CB8A0222834201D0AA -:1083900010BD012213000A20434300204032C8547C -:1083A000C81842800472F3E7CA64FF1F00234380A9 -:1083B00003707047094B00211A0010B55C88002C2F -:1083C00006D01C79844203D10A234B43D01810BD38 -:1083D00001310A330329F1D10020F8E7CA64FF1FF5 -:1083E00010B50400407A03F0FBF9FF23637210BD5F -:1083F0007047043010B580B203F0FAFB002803D0B8 -:108400000421494203F0CCFA10BD000070B50025EC -:10841000104CA0682580A581A580A84202D003F059 -:10842000AFFAA56000250C4C0C4B606D1D8023003D -:1084300058331D70A84202D003F0A2FA65650025EA -:108440006068002801D003F09BFA013508340A2D3A -:10845000F6D170BD9065FF1F3465FF1F8465FF1F57 -:1084600070B5041E09D1054D2880A881A880A86890 -:10847000002802D003F084FAAC6070BD9065FF1F45 -:10848000F0B54B8885B00193002343600A7905005D -:108490000F00022A00D07BE0CA88032A17D98B6814 -:1084A0005E7819783602DC78D8790E4399781B7A91 -:1084B00024021B020C43034353495BBA0B80331D58 -:1084C00093421ED1042C04D0631F022B0ED901202D -:1084D00015E0019A4D4B1201D35A002B06D001989A -:1084E000FFF7BEFF4A4A1369013313610421B868DC -:1084F0002E812C80494203F053FA6860002005B0B9 -:10850000F0BD434D042C06D0631F022B0FD9EB683E -:108510000133EB60DBE7019A3C4B1201D35A002B8D -:1085200005D00198FFF79CFF2B6901332B61374B76 -:1085300030000293019B029A1B01019300230199D1 -:108540008C468B52130063449C8003939E81FFF7FB -:1085500050FF039B041E986016D00421B86849425E -:1085600003F01EFAFA880100043A200003F0F0FA42 -:108570000199029AFB888A5A043B9B18029A8B52F3 -:108580002B6801332B60A2E7AB690133AB619EE737 -:108590001E4B0293019B1E01029BF35A002B2DD010 -:1085A00002998C19A068002828D0012A26D1FA88BF -:1085B0009B189BB27352A189994217D39B1AC0187A -:1085C000B96803F0C5FA029BA289F35A934200D01E -:1085D0007DE700222B81A3882B80A3686B60029B20 -:1085E000F2520B4A53680133536070E7084A9368AC -:1085F000013393600198FFF733FF68E7044A53693A -:1086000001335361F6E7C046FA64FF1F9065FF1F10 -:108610000065FF1F70B5051E15D10B4C0B4B188064 -:10862000230058331870606D002802D003F0A8F9B9 -:108630006565250050356068002801D003F0A0F979 -:108640000834AC42F7D170BD3465FF1F8465FF1F4D -:10865000F0B51700A12285B0920001934243394B37 -:1086600006001B680C009B18D933FF331D78FDF7FB -:1086700041FF0430854204DD3000FDF73BFF04304C -:10868000C5B2BD4207D33A0000213000019B03F080 -:108690002FF805B0F0BD2900380003F0E1F9230000 -:1086A000C6B250331E700393019B290063653800E6 -:1086B00003F09EF8CBB20293002B02D0039B01364D -:1086C0001E7000262300503303931B78B34204D856 -:1086D000606D002831D10020DBE7029A2800002AD3 -:1086E00004D0013B1000B34200D02800F700E71986 -:1086F000387002F0F5FF786000280ED03A780199C2 -:1087000003F026FA019A3B780136D3180E4A0193FA -:10871000D369F6B20133D361D4E7039B1870606567 -:10872000A74205D1084A1320D36A0133D362B0E7C8 -:10873000606803F025F90834F2E703F021F900231B -:108740006365C8E73409FF1F0065FF1FF7B50D001B -:1087500007000421686803F023F92B8904000370E3 -:108760002B891B0A43702B8883702B881B0AC370CC -:108770002E8902250436F6B2F42E15D81B4B9F42E3 -:1087800014D10C2002F0E4FF1135011E0CD090230F -:1087900003708E3B0371043B4380154B8460C6809D -:1087A000187802F0C5FF00252800FEBD5C237B433E -:1087B000104AD3180093583301931B78002B0FD124 -:1087C0000300320038000099FFF742FF019B0500CB -:1087D0001B78002BE8D13800009903F081F8E3E71B -:1087E000054A0725536A01335362DDE7FEFF0000A7 -:1087F000F864FF1F3465FF1F0065FF1FF0B587B0E9 -:10880000009017200F0016000193FFF7F2FD1325CB -:10881000041E19D00C98031E02D00199201D984700 -:10882000030AE370052302AAA07004309081277028 -:108830000098667003A993800494FFF787FF051ED4 -:1088400002D0200003F09CF8280007B0F0BD000023 -:10885000F0B587B01F000CAB1B7803910593012185 -:108860000DAB06001C78049200F0D6F81425002801 -:1088700021D02000FFF77EFD0135041E1BD01149D9 -:10888000059B0A7803700132D2B2131EC68001D153 -:1088900001231A000B7022713000049B039900978A -:1088A000FFF7ACFF051E09D1230021000648074A47 -:1088B000093303F0A5F8280007B0F0BD002363805A -:1088C0002370F8E7FC64FF1F4B8300113075000034 -:1088D000F8B505000E00064C064F2368002B02D0A9 -:1088E0003100280098470434BC42F6D1F8BDC04698 -:1088F000A065FF1FB465FF1F0123064A5B4253803A -:10890000002313715362044A136053609360D36071 -:1089100013617047B465FF1FA065FF1F02000023AD -:1089200010B506499C000859002801D1625010BDBD -:108930000133052BF6D11320F9E7C046A065FF1FD0 -:10894000034A5388181A4342584140421040704726 -:10895000B465FF1FF0B585B002930AAB1F780CAB6E -:108960001B88009008000E0001920393FFF7E8FFB8 -:1089700005001120002D1BD10E48FFF7E1FF040078 -:108980001520002C14D006220B99A771E01D03F0CE -:10899000DFF8019B30002371029B29006371009B6B -:1089A00066802370039B6562E381FFF791FF2800D7 -:1089B00005B0F0BDFFFF000010B5FFF7C1FF0400D8 -:1089C0000220002C12D060880121FFF781FF606A2D -:1089D000002801D002F094FF28220021200002F09C -:1089E000EFFE012300205B426380207110BD000078 -:1089F00030B5074A074C5588010013780020A5427E -:108A000004D05B1A59424B415842104030BDC04619 -:108A1000B465FF1FFFFF0000084A10B501230C00DA -:108A2000904208D0FFF78CFF031E04D00379234047 -:108A30005A1E9341DBB2180010BDC046FEFF000075 -:108A4000024B1879431E9841C0B27047B465FF1FAE -:108A500070B504000D001600FFF772FF002804D166 -:108A60000D4B9C4200D0143070BD416A0379052043 -:108A7000002907D012221A40102A02D10520002E08 -:108A8000F2D10F20DB06EFD5897E0C20A942894167 -:108A9000494249420840E7E7FEFF0000030010B5E5 -:108AA000002800D110BD0348034A41889142F9D003 -:108AB0009847F7E7B465FF1FFFFF0000002330B5BC -:108AC000C45CCD5C6C40D4540133102BF8D130BD64 -:108AD0000F23002210B5C45C64002243CA54C25C58 -:108AE000D209013BF7D210BD0200010010B52032BF -:108AF000103102F0D5FE10BDF0B58BB00390102000 -:108B000005931700049102F083FE0090102002F0FC -:108B10007FFE009B13240190002B05D000280CD170 -:108B20001324009802F0ECFE019B002B02D01800E9 -:108B300002F0E6FE20000BB0F0BD102002F068FE4F -:108B40000600102002F064FE13240500002E00D160 -:108B5000AEE0002819D01022002102F031FE3200D0 -:108B60002900039802F09CFE041E0ED133787F2B5F -:108B700051D830000099FFF7ABFF009B1B787F2B8B -:108B800053D801990098FFF7A3FF300002F0B8FE18 -:108B9000002D02D0280002F0B3FE002CC1D110201D -:108BA00002F036FE0600102002F032FE0290002E87 -:108BB0007CD0002878D03A000F3223000125121112 -:108BC00005D00F333B4015B25A4253411BB26A1EC7 -:108BD0001201002B33D0049BD2B298180099029A4C -:108BE000FFF76CFF013D10220021300002F0E8FD8C -:108BF000ADB2049F2D017D19AF4242D0002C33D07D -:108C0000300002F07DFE029B002B00D189E71800A6 -:108C100002F076FE85E729003000FFF759FF2800B3 -:108C20002549009AFFF74AFFA7E729000098FFF7B8 -:108C30004FFF28002049019AFFF740FFA5E70F21C9 -:108C40000F4004998A18D9B28F4208D9D15C06A87E -:108C500019540133102BF6D1029A0199C0E7791A01 -:108C600048424141C901F2E73900300006AAFFF746 -:108C700025FF3200039806A902F012FE1037040007 -:108C8000BAE7002CBCD13000029906AAFFF716FF04 -:108C9000320006A9039802F003FE08220400310006 -:108CA000059802F055FFABE71324A9E71324AAE7C0 -:108CB000002800D06EE733E76CBE0011F0B58BB032 -:108CC0000F0016000225009000283FD0002A3DD05A -:108CD0000B1DDBB21800029302F09AFD1135041E41 -:108CE00034D0FDF747FD05003A000099201D02F041 -:108CF0001FFEEBB20393E3702B0CDBB22F0A009341 -:108D00006370FFB22B0E2370A7700193FDF72CFD4B -:108D10001022010006A802F00BFE2100029A04AB0B -:108D200006A8FFF7E9FE051E0DD1039B082233704C -:108D3000009B04A9B370019B7770F370301D02F0A3 -:108D4000F7FDFDF71DFD200002F0DAFD28000BB055 -:108D5000F0BDF0B58FB00D00149E03900492059302 -:108D6000002A03D1022420000FB0F0BD002EF9D05C -:108D70000398FFF7E5FD1424071EF4D072783378CA -:108D800012021A43B3781B041343F27812061A43F3 -:108D9000036A0192934201D30133E3D1002D03D042 -:108DA0003B7901249B07DED50822002106A802F0AA -:108DB00007FD059B13240433DBB21800029302F075 -:108DC00027FD051ECFD0059A0499043002F0B0FDAE -:108DD00004223100280002F0ABFD390010221031CE -:108DE0000AA802F0A5FD2900029A06AB0AA8FFF71F -:108DF00083FE041E0FD1082206A908A802F098FDE0 -:108E00000822311D08A802F08BFC012807D1019926 -:108E10000398FDF7C9FC280002F072FDA3E70124C6 -:108E2000F9E7000070B51C4C05002368181E10D02F -:108E3000002D14D11A78002A0CD1981C083202F0A7 -:108E400087FE02F035FC0135002808D123681D702B -:108E5000012070BD0A331800082202F079FE236851 -:108E6000002BF5D0122002F073FC061E0DD0C1239A -:108E700021680370457002311022023002F068FE52 -:108E800023683100587802F053FC206802F038FD66 -:108E900000232360DCE7C046DC65FF1FF8B5040053 -:108EA0002020FDF755FB0D4EA700BB590500002BF8 -:108EB0000DD000280BD0D878FF2809D108492A0006 -:108EC0000C55F35907480333611802F099FDF8BDBA -:108ED000290002F09DFD0028F0D1F8E7F865FF1F9A -:108EE000E065FF1FF5A0001170B5064D84006359C1 -:108EF000002B05D0D87802F073FCFF226359DA709A -:108F000070BDC046F865FF1F70B506008CB00C0040 -:108F1000150000213022684602F052FC3100102278 -:108F2000684602F005FD1D2021000322684402F07E -:108F3000FFFC6846FFF7D8FD2D210400032228001E -:108F4000694402F0F5FC20000CB070BDF0B50700DC -:108F5000160097B001931CAB1D7830221EAB009118 -:108F60000AA800211C7802F02BFC102239000AA864 -:108F700002F0DEFC1022002102A802F021FC0722F0 -:108F8000310002A802F0D4FC072202AB9818631E3D -:108F90009C41019902F0CCFC02AB9C732B005A1E41 -:108FA000934102AAD3730021102206A802F008FC04 -:108FB00006221D9907A802F0BBFC1A2002ABC018BC -:108FC00006221F9902F0B4FC102200990EA802F0AC -:108FD000AFFC102202AB0EA908781C78013A604061 -:108FE000D2B2087001330131002AF5D10AA8FFF787 -:108FF0007BFD102212A904000EA802F0A9FD102288 -:1090000006AB0EA908781D78013A6840D2B2087004 -:1090100001330131002AF5D10AA8FFF765FD0443A9 -:1090200010222098E4B212A902F082FC200017B0AE -:10903000F0BD70B50E0014008CB00100102268461F -:109040001D0002F075FC3100082204A802F070FC3B -:109050002100082206A802F06BFC6846FFF744FDD9 -:1090600004001022280008A902F062FC20000CB0C5 -:1090700070BDF8B506000D0000243719AC4200D3CE -:10908000F8BD02F095FC030A3B70631CDBB20137AC -:109090009D4203D90234F054E4B2EEE71C00EDE740 -:1090A00073B506000C000225002819D0002917D03E -:1090B000032101A8FFF7DDFF6B469A793F231A4091 -:1090C000013313436A463000937101A92200FFF770 -:1090D0001BFF051E04D10322E01C01A902F038FD8C -:1090E000280076BD03785807DA08C00FD200800048 -:1090F0009B0710439B0F1843C0B2704707230B40D8 -:10910000C908C9000B4303707047000070B5040024 -:10911000FFF7EAFE134DA4006359002B21D0186A13 -:10912000002801D002F0ECFB2B59986E002801D0EA -:1091300002F0E6FB2B59D86E002801D002F0E0FBCC -:109140002B59186F002801D002F0DAFB2B59586F09 -:10915000002801D002F0D4FB285902F0D1FB0023F3 -:109160002B5170BDF865FF1F0E4B8000C35870B5C2 -:109170000C00002B0FD09D68002D0CD02B78201DEB -:109180000B706B784B70A97CFFF7B8FF2B7E2372B6 -:109190006B69E36070BD10220021200002F010FB1B -:1091A000F8E7C046F865FF1F014B18607047C046DE -:1091B000F465FF1F074A03008000825810B5002A9B -:1091C00006D0D088984203D1012901D1FFF79EFF34 -:1091D00010BDC046F865FF1FF0B5264E95B087005C -:1091E0000B93BB590500099112200A92002B31D034 -:1091F000D888FFF7A5FB04001420002C2AD02800F3 -:1092000010A9FFF7B1FFBB591E781D6A002E23D0AD -:109210000895FDF7EFFA07000020FDF7F1FA079037 -:10922000A379E61D069310AD0CA9089800F0E2FAA8 -:109230000EA9280000F0D7FA0B9B0A990493069B0D -:1092400009980293079B0396019300970EAB0CAA13 -:10925000FFF77CFE15B0F0BDFDF7CCFA06903000AC -:10926000FDF7CEFAE31DA779079310AB060008932C -:10927000DAE7C046F865FF1F30B50C4C85002A5967 -:10928000030085B00120002A0ED018006946FFF7C0 -:109290006BFF2B591A78D888054B002A00D1054B53 -:1092A0006A46072100F0D9FB05B030BDF865FF1F05 -:1092B000E7970011F597001130B5094C8500295941 -:1092C00085B010226846253102F042FC2A5911214E -:1092D000044BD0886A4600F0C0FB05B030BDC046E4 -:1092E000F865FF1F9198001130B5094C8500295988 -:1092F00085B010226846353102F02AFC2A59112126 -:10930000044BD0886A4600F0A8FB05B030BDC046CB -:10931000F865FF1FCF980011F7B54D4F860010205C -:10932000F4590D0002F074FAF3592062186A1322FE -:1093300000286CD0033A29009C6802F009FCF3591C -:109340001A780192002A58D11E6A227D317B9446F8 -:1093500051400122019F114201D167461740217DF2 -:10936000914339432175377B4F40BC466046002707 -:10937000800701D44F081740012102208F40227D31 -:1093800082433A432275377B5740BC4660460027EC -:10939000400701D497080F400420227DBF0082437C -:1093A0003A432275627D002794466046727B4240B4 -:1093B0000A4201D167460F400121627D8A433A4348 -:1093C0006275777B5740BC4660460027800701D412 -:1093D00057080F400220627D7F0082431743677564 -:1093E000767B00227E40760701D4BA080A40042624 -:1093F000617D9200B1430A4362756A78002A08D001 -:109400006278002A05D005220533DA7700221000A1 -:10941000FEBD04222979114205D1A17C114202D15D -:109420000533033AF1E7019A21782C78002A02D11A -:109430000A002100140018220429E8D8042CE6D8D8 -:1094400005206043034A05331218525CDDE7C0462D -:10945000F865FF1F7CBE001110B50A001121024BF8 -:1094600000F0FBFA10BDC0462B9900110B0030B57F -:1094700087B001AD2B806B4604001100981D0822B7 -:1094800002F066FB2A000B212000024B00F0E5FAF7 -:1094900007B030BD5399001110B50A001121024BDD -:1094A00000F0DBFA10BDC046A799001113B50B0000 -:1094B00011006A4613706B4604000622581C02F025 -:1094C00047FB6A4608212000014B00F0C6FA13BD95 -:1094D000C799001110B50A001121024B00F0BDFA26 -:1094E00010BDC046179A00117FB505000B4BAA00AE -:1094F000D4580800002C0FD0666F237FE2882178B3 -:109500000396266F0296E66E0196A46E0094FDF710 -:1095100009FC2800FFF7FAFD7FBDC046F865FF1F74 -:1095200010B51721FFF7E0FF10BD000070B50A006D -:109530000D00064B0221040000F08FFA0600297886 -:109540002000FFF7D1FF300070BDC046F798001132 -:1095500070B586B000236A461370836804001D78D6 -:10956000681E0A2859D801A902F092F80606333776 -:109570003B3F43474B4F5300180000F042F906238E -:1095800012284BD000281BD16088FFF7D9F9082397 -:10959000002813D04279002A47D1264B1A78072396 -:1095A00012070BD5244B1A680723002A06D0166829 -:1095B000002E03D0290001AAB04703006A461370A9 -:1095C0006B461B786088002B2AD1FFF767FC06B03A -:1095D00070BD180000F06CF9D4E7180000F087F9AE -:1095E000D0E7180000F093F9CCE7180000F0ADF9CF -:1095F000C8E7180000F0C3F9C4E7180000F0F6F956 -:10960000C0E7180000F0F6F9BCE7180000F013FA04 -:10961000B8E7180000F013FAB4E707236A4613709E -:1096200069466088FFF782FFD1E70523012AC5D18B -:10963000024BB8E78564FF1FF065FF1FF465FF1F4D -:10964000F8B52C4F8600F35904000D00002B40D0D4 -:10965000DA8882423DD15A78062A33D11A78002A14 -:109660002ED0012099681A6A097D014206D0157B27 -:10967000054203D007225A700120F8BD02200142A2 -:1096800004D0157B054201D00922F4E704200142F1 -:1096900004D0127B024201D00B22ECE7164B1B6870 -:1096A000002BE9D05B68002BE6D020009847BB591F -:1096B00000215B78122BDFD12000FFF715FFDBE7DD -:1096C0000E4BECE7112A04D1002900D032252900E5 -:1096D000F2E7002D08D12000FFF732F9002803D06F -:1096E000102302791343037121002800FDF798FA33 -:1096F000C2E7C046F865FF1FF065FF1FF465FF1F56 -:1097000070B50E4E8500AB590400002B13D01B78AA -:10971000002B11D10A4B1B68002B04D05B68002B77 -:1097200001D02000984773595B78122B03D1002198 -:109730002000FFF7D9FE70BD024BECE7F865FF1F74 -:10974000F465FF1FF065FF1F094B8000C358102010 -:10975000002B0CD01A6A002A09D09B68002B06D077 -:10976000127A1B7E101C9A4200D9181CC0B2704796 -:10977000F865FF1F70B503000D0014000220002AD9 -:1097800030D000292ED013700B78081D53704B7801 -:109790009370FFF7A7FCE070012002212B7A237160 -:1097A0006B7B034063716A7B0A401343042263713D -:1097B0006E7B1640334363716E7BF608F6003343CD -:1097C00063712B7B0340A371287B014000200B4376 -:1097D000A371297B0A401343A3712A7BD208D200CC -:1097E0001343A37170BD10B50A0001000120FFF7FB -:1097F000C1FF10BD10B50A0001000220FFF7BAFF3B -:1098000010BD70B506000C000220002E30D00029DB -:109810002ED07378201D0B70B3784B70F178FFF762 -:109820006DFC01223579257271794B1008001340C7 -:10983000934010400343881010408000C908034340 -:10984000C9000B436373B1794B1008001340934078 -:1098500010400343881002409200C9081343C90016 -:109860000B4321202373FCF773FE854201D21220A3 -:1098700070BD2220257AFCF76BFE8542F7D823784D -:109880001820042BF4D86378012BF1D80020EFE7DF -:10989000030010B50220002909D0002B07D00322B5 -:1098A000481C0A7019000D3202F052F9002010BD58 -:1098B00003000222080010B5002B06D0002904D0B6 -:1098C0000E32591C02F044F90022100010BD0300B2 -:1098D00010B50220002909D0002B07D00422481C13 -:1098E0000A7019000C3202F033F9002010BD10B5D7 -:1098F000FFF7DEFF10BD03000220002906D0002B79 -:1099000004D0052200200A701B784B7070470300BA -:109910000220002B08D0002906D05B7800200B70B5 -:10992000013B082B00D918307047030010B5022006 -:10993000002909D0002B07D00622481C0A70190004 -:109940000A3202F005F9002010BD10B5FFF7B0FF94 -:1099500010BD02000B00022010B500290ED0002A15 -:109960000CD007211970118859701188090A997053 -:1099700011180822D81C02F0EBF8002010BD0300DB -:109980000A00022010B5002B0CD000290AD09978CB -:109990005878090201431180901CD91C082202F05A -:1099A000D7F8002010BD030010B50220002909D00F -:1099B000002B07D00822481C0A701900921802F0E8 -:1099C000C7F8002010BD02000B00022010B50029CE -:1099D0000BD0002A09D00921197011781818597074 -:1099E000511C062202F0B4F8002010BD10B5FFF79C -:1099F0005FFF10BD02000B00022010B5002A09D045 -:109A0000002907D05178197011180622581C02F04D -:109A10009FF8002010BD030010B50220002909D0D6 -:109A2000002B07D00A22481C0A701900063202F0E7 -:109A30008FF8002010BD10B5FFF73AFF10BD0200EF -:109A40000B00022010B5002A06D0002904D018000F -:109A50005178FFF753FB002010BDF0B585B017001B -:109A60001E006A4606230500080091819380FEF7D8 -:109A7000C0FC1324011E02900CD03800B047041E15 -:109A800005D1280001A9FEF76FFA041E02D0029842 -:109A900001F076FF2800FFF701FA200005B0F0BDC5 -:109AA000F0B504008BB0019115000021102202A82E -:109AB00001F086FE334EA700B85900283CD0C38879 -:109AC000A34239D10378002B36D14278062A18D127 -:109AD00002000100553235310C3006ABFFF7A9FA10 -:109AE000002829D12000FFF72FFE020006A902A8B6 -:109AF00002F02EF8200002A901F052FE01200BB066 -:109B0000F0BD816E002917D00B8A112A28D19D4201 -:109B10000ED101981231093A01F002FE012807D155 -:109B2000BB5920009D6EFFF70FFE29000200DEE703 -:109B300032212000FFF7D8FC2000FEF701FF061EAF -:109B40001BD0416A002918D00B8AAB4215D10822DC -:109B50000198123101F0E4FD01280ED1716A0AE08A -:109B60009D42E9D108220198123101F0D9FD012866 -:109B7000E2D1BB59996E8A7EB9E7200002F048F81D -:109B8000BCE7C046F865FF1FF0B56B4D87007E59F6 -:109B900085B0337802900393002B00D087E0B36840 -:109BA000346A01937078062817D101221B7D134275 -:109BB00002D0217B114218D10222134202D0217B14 -:109BC000114251D10422134203D0237B134200D00F -:109BD0008BE0019B5A7DEB5991E007380428F8D8B7 -:109BE00001F056FD032E42678300B36E002B03D1B4 -:109BF0001C2001F00DFEB066EB599C6E002C1CD0B1 -:109C000010220021200001F0DBFD0298FFF79CFDEF -:109C100001002000FFF72DFA01F0CAFE208220008B -:109C200008211230FFF725FA0298FFF78DFDA07684 -:109C3000EB592100D888FFF70FFC0822EB591CE0F4 -:109C4000B36E002B05D01A00198AF0881232FFF784 -:109C50000DFC0222019B197DEB5911423DD0207B66 -:109C600010423AD0073208E0F488FCF7DBFD01002F -:109C70002000FFF711FC0A22EB595A70029B9C004E -:109C80002A595378073B042B11D8D088FEF758FE89 -:109C900000284ED0C3895A08D2182849029B02983E -:109CA000CB542B5941180433254801F0A9FE05B0C7 -:109CB000F0BDFCF79FFD03000120834201D100208D -:109CC0000393EB59DE88FCF79BFD039902003000FB -:109CD000FFF7ECFB019AEB59117D042211420CD0E5 -:109CE000217B114209D00B22C7E7F688FCF73CFD27 -:109CF00001003000FFF7EEFB6BE7019A527D012176 -:109D00000A4204D0607B084201D00C22B5E7022150 -:109D10000A4204D0607B084201D00E22ADE7042144 -:109D20000A4204D0627B0A4201D01022A5E7122227 -:109D3000A3E7FA225200B0E7F865FF1FFC65FF1F9A -:109D4000FFA0001110B5064B1A780423100018402C -:109D50001A4200D00348FFF727FA002010BDC04682 -:109D60008564FF1F4043FF1F70B50400FFF7D4FA5E -:109D7000051E43D12000FFF77FFA234EA400A0590F -:109D80008268937CDB0708D50321036A1B790B40AB -:109D9000012B02D1017F0B430377431DD97F8B1E1B -:109DA000022B0DD8022900D00121C088FCF790FFBA -:109DB000042133591A7F59700A431A77280070BD5D -:109DC00001290CD102231022437000210C3001F034 -:109DD000F7FC305910213530FFF74BF9EEE7052934 -:109DE000ECD10223D118437010220C3001F0B0FEE8 -:109DF00004233259117F0B431377EAE7082518280B -:109E0000DCD1053DDAE7C046F865FF1FF0B58BB041 -:109E1000059143887E4F9E00F45915000493002C51 -:109E200015D1012902D000200BB0F0BD101D5778CC -:109E30001678FFF757F9EB68320002932B7A0499F2 -:109E4000019300903B002000FCF70CFFEBE7E38858 -:109E5000049A934201D00820E6E72378012B00D131 -:109E6000D4E0059B581E092800D9CFE001F010FC72 -:109E700005CE0A29CC506C859AB229000498FFF7C8 -:109E800073FFD1E7200029001022453001F060FE69 -:109E9000B9594B78042B02D1013B4B70C3E70B003F -:109EA0000A00253335320C310498FFF795F90498F0 -:109EB000FFF702FA0522431E9841BB59C0005A70B1 -:109EC000B2E7200029001022553001F041FE049B2A -:109ED0004F4C9D00295904980A0006AB55320C31AD -:109EE000FFF77AF929591022453106A801F018FC2C -:109EF000012808D10498FFF7F7F90590002804D14C -:109F000006222B595A7005988EE708230593FAE725 -:109F100063780C2B7AD1E36E002B03D11C2001F067 -:109F200077FCE066BB59D86E00286FD0102229005C -:109F300001F00EFEBB590498DC6EFFF705FC0D2204 -:109F4000A076BB595A706EE7E06E00285ED0637849 -:109F50000D2B5BD12B8808220382A91C123001F043 -:109F6000F7FDBB599A68517D0222114226D0186A2A -:109F7000407B104222D00C32E4E763780E2B45D1AF -:109F8000236F002B03D1162001F042FC2067BB5940 -:109F9000186F002803D01022290001F0D9FD0F22EC -:109FA000BB59CFE763780F2B30D1206F0622691C95 -:109FB000103001F0CDFDBB599A68517D0422114249 -:109FC00003D0196A497B1142D5D100210498FFF7CB -:109FD0008BFA28E7636F002B0DD0BB59586F002810 -:109FE000F3D01022290001F0B3FD0122BB595242E7 -:109FF0005B6F1A61E9E7142001F00AFCBB59606746 -:10A000005B6F002BE9D126E72978DFE707200BE714 -:10A01000F865FF1F10B5064C207001F029FD0621E0 -:10A020002078FDF791FF0348FEF778FC10BDC0468D -:10A030000B66FF1FB591001100200BB270B50D002B -:10A04000834216DA264B187801F03AFD041E0DD033 -:10A050000378922B0ED0A02B37D0224B1878FF28F4 -:10A060003AD0210001F064FB002835D180200002A5 -:10A07000684070BD43780E2B0BD03E2BEDD183781A -:10A08000052B12D0082BE8D181798088FFF7D8FA08 -:10A0900008E0154B82889A42DFD183681878591CF2 -:10A0A000FEF7C0FE002817D1D7E7104B1B785B07DF -:10A0B00012D50F4B1B68002B0ED09B68002B0BD0CA -:10A0C000C289811D80889847ECE7FFF741FAA068B4 -:10A0D000002801D001F054FC200001F079FDC5E713 -:10A0E0000B66FF1F3943FF1F182000008564FF1F08 -:10A0F000F465FF1F10B50078FFF712FA10BD10B518 -:10A100000078FFF7FDFA10BD0C234343084A10B551 -:10A110009B185A68002A03D0012901D1904710BD2D -:10A120009B68002BFBD00029F9D19847F7E7C04680 -:10A130002866FF1F01238340094A10B5946B1C4316 -:10A140009463506B98435063D46B2000984301296B -:10A1500001D120001843D063116B0B43136310BD72 -:10A1600000800040F0B500240127154B85B0DA6B64 -:10A17000144E03921A6C0192DA64019BE3403B4255 -:10A1800017D0039DE5403D400295E5B202992800B5 -:10A19000FFF7BAFF316A736A002908D03900002B33 -:10A1A00001D0029979402800FFF7C4FF01E0002B9D -:10A1B000F9D101340C36172CDFD105B0F0BDC04603 -:10A1C000008000400C66FF1F064B01215A68C24008 -:10A1D0000A4204D01B68C3401800084070471B6D3A -:10A1E000F9E7C046008000400122064B824000296A -:10A1F00003D0D9680A43DA607047D9689143D960BF -:10A20000FAE7C0460038004030B5032444430F4B02 -:10A21000E25C1B199C785D7801232D1B0135AB4056 -:10A22000013BA340A140DB430C00122807D808499A -:10A2300092005218116819402143116030BD054A3F -:10A2400011680B4023431360F8E7C046C3BE0011FA -:10A2500008F0004014F00040C21F70B5D4B20623CD -:10A26000092C0BD80125084C9540002908D0002165 -:10A27000FFF7CAFF23682B4323600023180070BD3B -:10A280002368AB43F8E7C04600380040214BF0B5E7 -:10A290001B185B78022B21D1032444431E4A1F4E16 -:10A2A000A35C12199478012215008540B76B013C1C -:10A2B000E4B23D43A240B563194C122815D89B0067 -:10A2C00000290CD117495B1899680A439A60012349 -:10A2D000205C154A834011680B431360F0BD11499F -:10A2E0005B18996891439960F1E70E4B00290DD1F5 -:10A2F00059690A435A61225C1328E8D00123203AA5 -:10A3000093400A49086803430B60E7E759699143A2 -:10A310005961F0E70C66FF1FC3BE001100800040CA -:10A3200008BF001100F00040A0F00040A4F0004081 -:10A33000F8B500241B4E1C4D1C4B1B5D012B1FD17F -:10A34000194A9269E2401A420BD00122B256934058 -:10A350002200143AD2B2022A09D815494A69134395 -:10A360004B61013402360C35172CE5D1F8BD0022C3 -:10A37000B2560F499200521891680B439360F0E770 -:10A38000022BEED1E7B23800FFF71EFF0123584041 -:10A39000C1B23800FFF77AFF3800FFF715FF687782 -:10A3A000DFE7C04695BE00110C66FF1F0D66FF1F5C -:10A3B00000F00040012202388240054B002903D002 -:10A3C00059690A435A617047596991435961FAE7DB -:10A3D00000380040F8B50E0001210F008740114AF7 -:10A3E0000400D368FD43BB43D360831E8B4201D876 -:10A3F000FFF7E0FF00212000FFF72EFF0A4A0B4B7A -:10A400005168012E05D139431B1951605E7000203F -:10A41000F8BD2940516002221C1962709A691540EA -:10A420009D61F4E700380040008000400C66FF1F8B -:10A43000012210B58240074B002906D019680A4353 -:10A440001A600121FFF7C6FF10BD1968914319601A -:10A45000F7E7C046008000400C2370B50025434359 -:10A460000A4A29009B181D70094B04001B185D70D7 -:10A47000FFF7B0FF0123A340064928000A681A43EA -:10A480000A6005490A689A430A6070BD2866FF1F82 -:10A490000C66FF1F348000403080004070B504001F -:10A4A0000E00FF2813D003250540FFF7D5FF084A0B -:10A4B000A3089B009B183F22ED00AA40AE401968FC -:10A4C00020009143314319600121FFF78DFE70BDDB -:10A4D00018380040F8B50C244443134B0500E41829 -:10A4E0006368002B03D1A3681220002B1AD002222C -:10A4F00001270E4B00215B195A7028002770FFF7C7 -:10A5000069FF63681E1E08D0A3683E00002B04D0BC -:10A510002800FFF759FE4640F6B228003100FFF749 -:10A5200009FE0020F8BDC0462866FF1F0C66FF1F0D -:10A53000F7B5C420FF222B4B80001958002491430B -:10A540003F3A0A431A508022274F5202274E1A6080 -:10A55000274B1D5D002D21D0A31E012B03D8012107 -:10A56000E0B2FFF727FF012D18D11F4B9B69E34095 -:10A570002B4213D0E3B218000193FFF725FE010030 -:10A580000198FFF755FFE3B2143B022B1DD80121C0 -:10A590007156184A8D405369AB4353613B7F002B82 -:10A5A0000DD0E5B22800FFF795FF2800FFF70CFE5D -:10A5B0007B7F0100834202D02800FFF7A5FD013414 -:10A5C0000C370236172CC3D1F7BD01210023715679 -:10A5D000F3568D40074A9B009B189A68AA439A60DD -:10A5E000DCE7C04600E100E00C66FF1F95BE0011ED -:10A5F0000D66FF1F00F0004010B501210400FFF7B9 -:10A60000E9FE0123044A002011194B70A34091690F -:10A610000B43936110BDC0460C66FF1F70B50E0062 -:10A6200015000400FFF718FF0C236343094A2000BC -:10A630009B189D605E60FFF74DFFF021064B074AB7 -:10A640008900051E5A5002D02000FFF705FF2800A0 -:10A6500070BDC0462866FF1F0000FF1F65A10011E6 -:10A6600070B5134D07202C78002C1FD198222100A3 -:10A670005200280001F0FCF80123C420FF222B70B7 -:10A680000C4B80001C635C630B4B1C605C600B4BD1 -:10A69000195891433F3A0A431A50802252021A60D5 -:10A6A0000D20074A074901F0A3F9200070BDC046FC -:10A6B0000C66FF1F00800040A0F0004000E100E0B9 -:10A6C00031A5001131A30011030010B50620072B9E -:10A6D00009D8054A137001F05BF8D7210020034B1D -:10A6E000034A89005A5010BD6843FF1F0000FF1F36 -:10A6F000D91AFF1F70B51D0002240C2910D8094A71 -:10A70000CA40D2070CD5FBF72FFF041E08D1059ACB -:10A7100004992800FBF744FFFCF7B2FDFFF712FB9A -:10A72000200070BD1210000030B50D7802232C00FF -:10A730009C43184201D02B431C0008252300AB4347 -:10A74000284201D02B00234320241D00A543204292 -:10A7500001D01C4325002A230D70184204D0117823 -:10A760001E3B0B43137030BD0028FCD10C21137825 -:10A770008B43F7E7F8B51D0006AB1B88140007AA4A -:10A780000E000B201778002B27D10A78022A49D116 -:10A790004A68507811780002244A08438018042837 -:10A7A00040D800F075FF03121D1B2300F06801F074 -:10A7B00037F8021CC0B2B84200D93A1CD2B220000D -:10A7C000F1682A8001F0C4F906E00222F3681B88D0 -:10A7D0002A8023701B0A63700020F8BD0622EEE772 -:10A7E00001232B80F3681B782370F5E7F368002BB7 -:10A7F00016D008222A801A8822701A88120A6270DB -:10A800005A88A2705A88120AE2709A8822719A882D -:10A81000120A6271DA88A271DB881B0AE371DBE736 -:10A820002B80D9E701202B80D7E7C04600D6FFFF59 -:10A83000F7B516000A781D0008AB1F880C0001232D -:10A84000022A18D14A685078117800022B4A08432E -:10A85000801803280FD800F01BFF02254439E06858 -:10A8600000F0DEFFC0B20723B84204D37B19019386 -:10A87000152B02DD0D231800FEBDE0682A00310013 -:10A88000C01901F065F96B4600209B88E268D0543E -:10A890001B4B1B68834203D01B68834200D0984740 -:10A8A0000023E8E70B23002FE5D1022DE2D17378D6 -:10A8B00032781B021343E2681380114B1B68002B94 -:10A8C000EED01B68002BEBD00120E8E70B23002F14 -:10A8D000D1D1062DCED12A003100E06801F038F93F -:10A8E000DEE70B23002FC6D1012DC3D1327875339B -:10A8F000012AC0D8E3681A70D2E7C04600D6FFFF2D -:10A900001868FF1F70B50C001500072837D800F035 -:10A91000BFFE041436361B36242E182015290BD8FA -:10A92000184E16220021300000F04AFF22002900B4 -:10A93000300001F00DF9002070BD18200229FBD174 -:10A940001288114B1A80F6E718200829F4D10A0062 -:10A950000E48290000F08CFEEDE718200129EBD10C -:10A960000B4B10780B49DA69FFF7DEFEE3E718209E -:10A970000129E1D1064B10780749DA6BF4E7022090 -:10A98000DAE7C0460068FF1FE643FF1FDC43FF1FF6 -:10A990006C43FF1F9443FF1FB443FF1F030010B518 -:10A9A0000020DB0704D50721024A034800F08CF899 -:10A9B00010BDC04620BF00116C43FF1F054A0300B5 -:10A9C0001068002803D082889A4201D180687047BD -:10A9D0000068F6E7106AFF1F0A88030008009A4221 -:10A9E00004D08A8804309A4200D0002070470000CA -:10A9F000F8B5F22200230D4F0D4E79680500424351 -:10AA00003370994200D07B600A4C0021200000F096 -:10AA1000D7FE00231A007C60AB4202D100203370C5 -:10AA2000F8BD01332280DBB2F234F5E7086BFF1F7B -:10AA3000066BFF1F146AFF1F73B56B46019006007B -:10AA4000684615001980FCF74DFF041E11D1002D3A -:10AA50000FD07689002E11D00C2000F0D9FE0028EE -:10AA60000ED0084A0460136886808560002B02D1EE -:10AA70001060200076BD1A001B68F7E70224F8E793 -:10AA80001324F6E7106AFF1F012100220A4B10B5BC -:10AA900049420A4C198099809A719A70084B20702B -:10AAA000012019805A60FFF7A3FF2078FCF778FF98 -:10AAB0000448FDF733FF10BD2068FF1F106BFF1F18 -:10AAC000086BFF1F75AB0011022310B5002802D0E0 -:10AAD000FFF7B2FF0300180010BD0000030010B51F -:10AAE0000020DB0704D50421024A0348FFF7A4FF36 -:10AAF00010BDC04634BF0011EC43FF1FF0B50E2659 -:10AB000087B003930CAB1F8802ABF6180500080052 -:10AB100031000292FDF768F804000120002C0FD0EC -:10AB20003088FFF74BFF03000E20002B08D05E6833 -:10AB3000002E05D021002800039B029A0097B04701 -:10AB400007B0F0BD0A4B10B5984207D1012200238F -:10AB500052420A808B708A808B7110BDFFF73CFFD8 -:10AB60000028FAD001235B42038000238370F4E7BE -:10AB7000FFFF0000F8B5050001290AD1134E00249B -:10AB80003388F227AB4219D028001149FFF7DAFFCA -:10AB900006E0022904D10139FDF73EFF0028EDD07F -:10ABA000F8BD3B0063437268D018D35A002B09D01C -:10ABB0003A00002100F004FE0134E4B2054B1B789A -:10ABC000A342EED801235B423380DDE7086BFF1F11 -:10ABD0002068FF1F066BFF1F10B5FFF7FDFE030087 -:10ABE0000020834200D0987810BD0000F0B589B0F5 -:10ABF0001C000EAB80CB03901E8810AB1B78049218 -:10AC000002930B7A0D00DB0616D42B780593022BEA -:10AC100024D00498FFF7D2FE002812D003689C4687 -:10AC2000002B0ED0029B2200019329003B006446BA -:10AC300003980096A04705E00498FFF7BFFE0028A0 -:10AC400002D10E2009B0F0BD8368002BF9D00A2292 -:10AC50002900039898470028D7D0F3E76B68587805 -:10AC60001A786B4B000210439842D2D8043B9842AA -:10AC700010D2684B984242D015D8674BC0180128B3 -:10AC8000C7D80B20002EDDD1EB681A7859683A80BE -:10AC9000200028E0614BC018032800D979E000F0BB -:10ACA000F7FC846A789E5E4B9842B2D10B20002E4E -:10ACB000C8D101233B80EB6831001B782370688981 -:10ACC000013080B2FCF790FF3A88031E0ED0017865 -:10ACD00002328A183A80428962704289120AA2704E -:10ACE00059680278E01C00F033FF06E004323A8035 -:10ACF00031000422601C00F063FD0020A2E70B205D -:10AD0000002E9FD1EB6807A91E8804233B80330ADD -:10AD1000300026706370FCF767FF051E28D004AB77 -:10AD20009A890E2304A95B183E49C668FCF7D0FF38 -:10AD300000280BD12B783C486A680599FBF786FB05 -:10AD4000002803D1012304AA5B42D3813278022A6E -:10AD500006D17168201D00F0FBFE3B8802333B806A -:10AD60000E2304AA9B181B88A3701B0AE370C4E778 -:10AD700004ABDE81F4E70B20002E00D062E7E96827 -:10AD80000398FFF729FF02233B802070000A6070C0 -:10AD9000B3E70B20002E00D054E70222EB681B889B -:10ADA0003A8023701B0A6370A7E7E86800F038FD5B -:10ADB000C2B203000720B24200D243E70DD002998D -:10ADC000DBB27118994202DB921BD3B20293029B51 -:10ADD000E9681A003B8089195AE70023F6E70B203F -:10ADE000002E00D02EE70722EB683A801A782270F6 -:10ADF0005A7862705A88A2705A88120AE2701A79D8 -:10AE00002271DA886271DB881B0AA37175E7C0467C -:10AE1000042900000228000000D8FFFFFFD6FFFF32 -:10AE200003280000FFFF000064BE0011F0B58DB0E4 -:10AE30006B460020089120229B5E83423DDAA64BA0 -:10AE4000187800F03DFE071E32D00378B02B2CD1CD -:10AE50000079023816281FD800F01AFD17001E00CE -:10AE60001E001E0031001E0096001E001D011E0067 -:10AE700052011E0073011E00CD011E0050021E0073 -:10AE80001E001E008E021E00E302944B94491B8894 -:10AE900078880B80FBF71AF83800FCF79BFF914B82 -:10AEA0001B68002B01D038009847380000F090FE56 -:10AEB0008020089B0002434018000DB0F0BDEE2238 -:10AEC0000021874800F07CFC0BAA3B7B79893889FC -:10AED00000923A000D32FCF79FFD0400804B1B7876 -:10AEE000002C3FD146E0804B788805937F4B410092 -:10AEF000CB5A0BAE073BDBB232880293002301939F -:10AF00007B4B210006930093059BFFF76FFE744D6A -:10AF1000002810D1069B3A8A1B889A420BD1380030 -:10AF20000599123000F0FCFB002804D02B786289D0 -:10AF30009B00EB185A80162306A81B1832882000A5 -:10AF40007989FCF7C5FE2B7804009A00AA1851886D -:10AF50000029C3D00133DBB22B70002807D006A92B -:10AF6000C98A9180634A12889A42BCD802E00121C2 -:10AF700049429180002B04D059497888FAF7DAFFCA -:10AF80008AE73E890A2479E000253E89574B0693DB -:10AF90007B88069A5B009B5A033B9D4202DB002D97 -:10AFA000F0D05BE0162206A812183B7B798900924C -:10AFB0003A0030000D32FCF72FFD0590002858D0E4 -:10AFC0004689017A7888FCF7F1FC041E44D1464B8F -:10AFD00078880793069B4100C95A454B0439C9B28A -:10AFE00006AAD28A06930291019400930599079BC1 -:10AFF000FFF7FCFD041E2FD1069B39491A88931CCC -:10B00000002D26D14B807988384B4900CB5A5119F5 -:10B01000033B8B4220DD059B31485B8941190B7155 -:10B02000A91C0135C9B2EDB2059145191B0A2B7156 -:10B03000059B2D490433181800F08AFD2C4B059A06 -:10B040001B88D318DDB22C4B9E4205D00136B6B218 -:10B050009CE749889942D6D0002D0CD0204C28007E -:10B06000618800F0BDFA207021007888FAF772FF3D -:10B0700012E7059CF0E7002C00D183E77B78142BC6 -:10B0800000D109E716493B794E800B700C71788826 -:10B09000FAF712FF00E7162406ABE41821003889FE -:10B0A000FCF7A2FD011E00D1B7E1788822880F4C81 -:10B0B00045002C5B0A4D013CE4B2029400240F4B86 -:10B0C00001940095FFF792FD041E00D014E12900C1 -:10B0D0007888FAF74FFFDFE6106BFF1FD842FF1F9B -:10B0E0002868FF1F1C68FF1F1C69FF1F5864FF1F93 -:10B0F0000C6AFF1FD642FF1FFFFF00002A68FF1FD8 -:10B10000162406ABE41821003889FCF76DFD011EFA -:10B1100000D182E178882288AE4C45002C5BAE4D90 -:10B12000013CE4B202947C89AC4B01940095FFF79A -:10B130005DFD041E00D0DFE029007888FAF724FFC7 -:10B14000AAE60025A44B1D803B00F6331B78A24ADB -:10B1500078880792AB4208D99E4B128806930699CD -:10B1600043005B5A013B9A4203DB0799FAF716FF4B -:10B1700092E616246B00FB18059306ABE418059BBA -:10B1800021001889FCF730FD011E03D1059B012425 -:10B190001E8973E77888924B2288069C09934300A6 -:10B1A0001B5B904E013BDBB20293002300960193A0 -:10B1B000099BFFF71BFD041E02D0059B1E895DE75E -:10B1C0007B88069A5B009B5A079A1088328812186F -:10B1D000934202DC1B1A013B33807F4C02303288E1 -:10B1E0000999001900F0B4FC2388328801359B18B6 -:10B1F0002380EDB2A8E70BAA3B7B798938890092BE -:10B200003A000D32FCF708FC00250590059B002B49 -:10B2100004D10A24002D00D16EE060E0059B7888FF -:10B22000197AFCF7C3FB0100041E63D1694C6C4B17 -:10B23000788806940993069B4400E45A694B063CBF -:10B24000E4B20BAE32880793029401910093059902 -:10B25000099BFFF7CBFC041E4CD1079B5E491B8862 -:10B260001A1D002D30D14A80059B5B4C5A89631909 -:10B270001A716B1C9BB2E318120A1A71162306A8E6 -:10B2800032881B1879890598FCF722FDFF21AA1C3A -:10B290002E1D03350B00059092B2B6B2ADB2002858 -:10B2A00003D006ABDB8AD9B21B0AA218651911714B -:10B2B0002B714C4D301D2A884949201800F048FC5C -:10B2C0002B88F618B5B2A1E74988914207D17A8850 -:10B2D00006995200525AEB18053A9A42C4DC3E4C89 -:10B2E0002800618800F0BCFB207021007888FAF704 -:10B2F0005FFED1E5002DF2D13E89BFE6162606ABF2 -:10B30000F61831003889FCF76FFC3D000400FA356F -:10B3100000282DD0037A9B060CD400227B89398922 -:10B32000788800923A000C32FFF7E8FB041E10D038 -:10B330003E8915E03088FFF741FB00281AD083686A -:10B34000002B17D02100122278889847041EE4D0E1 -:10B35000EEE72B78002B02D17888FAF739FE002629 -:10B360002B78002B00D097E5002C00D194E585E6E2 -:10B370000124DDE70E24DBE7162506ABED182900D6 -:10B380003889FCF731FC041E47D0037A9B0611D4A0 -:10B39000154A7B881188994203D01448814207D10D -:10B3A0001380134BF2261D780023D9B2A94221D372 -:10B3B0000924A1E72888FFF701FB00282FD0836824 -:10B3C000002B2CD02100122278889847041EDFD051 -:10B3D00092E7C0465864FF1F2868FF1F2A68FF1FB6 -:10B3E0001C69FF1F0C6AFF1F086BFF1FFFFF000097 -:10B3F000066BFF1F31005943546801336018615ACE -:10B400000029D2D13C0008342100F22200F0A0FB38 -:10B4100021007888FAF7E4FD3EE501246CE70E246C -:10B420006AE71D4B1A887B889A4231D07888FAF7F0 -:10B43000E1FD31E5F223059851684343CD18C95A1F -:10B4400000291FD03B7A012B0BD16C88AB88788800 -:10B45000AA1D0094FFF752FB041E02D000233B728A -:10B460002E88F2220021280000F0AAF900232B8068 -:10B47000059B0133DBB20593084B05991B78064AFF -:10B480008B42D7D801235B421380002CCED0F5E548 -:10B49000002634000596EFE7086BFF1F066BFF1FC1 -:10B4A00070B504000E001500FFF796FA031E08D1D0 -:10B4B00031000548FFF790FA03001120002B02D05D -:10B4C0001C8000209D7070BDFFFF0000F8B50B4F81 -:10B4D00006003B780D001400FF2B0ED00A2000F070 -:10B4E00037F9011E09D0B123038000234680037180 -:10B4F000C5800481387800F01BF9F8BD2D44FF1F8A -:10B50000F7B50F0008A90600088809A90B240988C7 -:10B51000002821D10234022B1ED1557813782D0238 -:10B520001D432B008B4301937334002B14D1FB6814 -:10B53000300019000093FFF74FFB019C85420BD0B0 -:10B540002A0030000099FFF7ABFF041E04D12A0047 -:10B5500030007989FFF7BAFF2000FEBDF0B50E7804 -:10B5600085B003900AA805880120022E0DD14C68F1 -:10B570002778647824023C43054FBC4205D10398E8 -:10B58000DBB201960095FFF7BBFF05B0F0BDC046EA -:10B5900002290000034B10B51B68002B00D0984710 -:10B5A000FEE7C046146BFF1F07B501A8FFF7F2FFC7 -:10B5B000044A05480021121A00F05AF9F8F71AF95E -:10B5C000FEE7C046186BFF1F3044FF1F000000005D -:10B5D00001B40248844601BC604700BF8B520100A1 -:10B5E00001B40248844601BC604700BF350E00002C -:10B5F00001B40248844601BC604700BFC51D00007D -:10B6000001B40248844601BC604700BF291C000009 -:10B6100001B40248844601BC604700BF25260000F3 -:10B6200001B40248844601BC604700BF1930FF1FC7 -:10B6300001B40248844601BC604700BF055E0000BB -:10B6400001B40248844601BC604700BFEDA500007C -:10B6500001B40248844601BC604700BFE117000006 -:10B6600001B40248844601BC604700BFC521000008 -:10B6700001B40248844601BC604700BF810E00004F -:10B6800001B40248844601BC604700BF350E00008B -:10B6900001B40248844601BC604700BF2D3BFF1F38 -:10B6A00001B40248844601BC604700BF792DFF1FEA -:10B6B00001B40248844601BC604700BFD91B0000AA -:10B6C00001B40248844601BC604700BF9DA9000048 -:10B6D00001B40248844601BC604700BF6DBC000055 -:10B6E00001B40248844601BC604700BF017F0000EE -:10B6F00001B40248844601BC604700BF5118FF1FD7 -:10B7000001B40248844601BC604700BFADAE0000F2 -:10B7100001B40248844601BC604700BFDD660100F9 -:10B7200001B40248844601BC604700BFCD4C010013 -:10B7300001B40248844601BC604700BF594F010074 -:10B7400001B40248844601BC604700BF8552010035 -:10B7500001B40248844601BC604700BF1D4D010092 -:10B7600001B40248844601BC604700BF01240000C8 -:10B7700001B40248844601BC604700BFB54C0100DB -:10B7800001B40248844601BC604700BF5522000056 -:10B7900001B40248844601BC604700BFD91AFF1FAC -:10B7A00001B40248844601BC604700BF311B000061 -:10B7B00001B40248844601BC604700BFC12FFF1F8F -:10B7C00001B40248844601BC604700BF154D01002A -:10B7D00001B40248844601BC604700BFA54F010088 -:10B7E00001B40248844601BC604700BF1147010014 -:10B7F00001B40248844601BC604700BF090E000046 -:10B8000001B40248844601BC604700BF4D1F0000E0 -:10B8100001B40248844601BC604700BF3D4B0100B3 -:10B8200001B40248844601BC604700BFDD520100FC -:10B8300001B40248844601BC604700BF193BFF1FAA -:10B8400001B40248844601BC604700BF3938FF1F7D -:10B8500001B40248844601BC604700BF1D4B010093 -:10B8600001B40248844601BC604700BF9135FF1F08 -:10B8700001B40248844601BC604700BFB70E000017 -:10B8800001B40248844601BC604700BF8D1200002D -:10B8900001B40248844601BC604700BF413BFF1F22 -:10B8A00001B40248844601BC604700BFE54800007F -:10B8B00001B40248844601BC604700BF4550000007 -:10B8C00001B40248844601BC604700BF456B0100DB -:10B8D00001B40248844601BC604700BF75A900005E -:10B8E00001B40248844601BC604700BF7D18FF1FB9 -:10B8F00001B40248844601BC604700BF51250000E6 -:10B9000001B40248844601BC604700BF014C0100FD -:10B9100001B40248844601BC604700BF35550000B1 -:10B9200001B40248844601BC604700BFC52DFF1F1B -:10B9300001B40248844601BC604700BF4551010084 -:10B9400001B40248844601BC604700BF0132FF1FBA -:10B9500001B40248844601BC604700BF2932FF1F82 -:10B9600001B40248844601BC604700BFC56D0100B8 -:10B9700001B40248844601BC604700BF7139FF1F13 -:10B9800001B40248844601BC604700BFD9490100A8 -:10B9900001B40248844601BC604700BF156B01003A -:10B9A00001B40248844601BC604700BF554901000C -:10B9B00001B40248844601BC604700BF2951010020 -:10B9C00001B40248844601BC604700BFC9A9000019 -:10B9D00001B40248844601BC604700BFB14E00007C -:10B9E00001B40248844601BC604700BF9136FF1F86 -:10B9F00001B40248844601BC604700BF6130FF1FAC -:10BA000001B40248844601BC604700BFA94601005A -:10BA100001B40248844601BC604700BF51470100A1 -:10BA200001B40248844601BC604700BF21460100C2 -:10BA300001B40248844601BC604700BF851F000076 -:10BA400001B40248844601BC604700BFC94A0100F6 -:10BA500001B40248844601BC604700BF4D38FF1F57 -:10BA600001B40248844601BC604700BF090E0000D3 -:10BA700001B40248844601BC604700BFC9260000EB -:10BA800001B40248844601BC604700BFED39FF1F86 -:10BA900001B40248844601BC604700BF7918000029 -:10BAA00001B40248844601BC604700BF5D17000036 -:10BAB00001B40248844601BC604700BF9D35FF1FAA -:10BAC00001B40248844601BC604700BFF54E010046 -:10BAD00001B40248844601BC604700BFD92FFF1F54 -:10BAE00001B40248844601BC604700BFF30E000069 -:10BAF00001B40248844601BC604700BFF94C010014 -:10BB000001B40248844601BC604700BF595201009D -:10BB100001B40248844601BC604700BF0539FF1FDD -:10BB200001B40248844601BC604700BFC135FF1F15 -:10BB300001B40248844601BC604700BF691F000091 -:10BB400001B40248844601BC604700BF193AFF1F98 -:10BB500001B40248844601BC604700BFE94C0100C3 -:10BB600001B40248844601BC604700BFED4A0100B1 -:10BB700001B40248844601BC604700BF0D52010079 -:10BB800001B40248844601BC604700BF4537FF1F2F -:10BB900001B40248844601BC604700BFC538FF1F9E -:10BBA00001B40248844601BC604700BF8538FF1FCE -:10BBB00001B40248844601BC604700BF2124000054 -:10BBC00001B40248844601BC604700BFB352010083 -:10BBD00001B40248844601BC604700BF434D0100E8 -:10BBE00001B40248844601BC604700BF5933FF1FBF -:10BBF00001B40248844601BC604700BFE928000048 -:10BC000001B40248844601BC604700BF6571010071 -:10BC100001B40248844601BC604700BF091B000014 -:10BC200001B40248844601BC604700BF056A0000B9 -:10BC300001B40248844601BC604700BF3D180000C3 -:10BC400000010103020203030403050206020702C6 -:10BC5000080209030A030B030C020D000E030F0375 -:10BC6000100311031303140315001600C53B001144 -:10BC7000F93B0011000000000200000082BC00112E -:10BC8000192A0F180A000000F1590000FD240000D5 -:10BC9000414601002580001139A000118D7400116A -:10BCA000297E0011115300112DAE0011794F0011A2 -:10BCB000B93D0011E93E0011000000001616000019 -:10BCC00002000000CCBC0011F4FFF3FFD2FC000026 -:10BCD0002940001100000000000000005475796147 -:10BCE0000042312E34003030313500676974687598 -:10BCF000622E636F6D2F7076767800544830350071 -:10BD00000200000014BD0011292A282A272A262A09 -:10BD1000252A242A0A180000E2040000710200000B -:10BD200078EC0000744000001027000060F0000074 -:10BD300006640000204E0000000000000500000026 -:10BD40001F501D00023CB40000011500140000004B -:10BD5000A1020000303132333435363738394142B0 -:10BD60004344454600000000155700116957001173 -:10BD7000000000000200000080BD00116F2A6E2A42 -:10BD80001A18EAD8BC80F0FC600000000000000037 -:10BD90000000F303B59747D6F613F7D777E6F0A779 -:10BDA000F474000001A00000000000006410B71D42 -:10BDB000C8206E3BAC30D9269041DC76F4516B6BD9 -:10BDC0005861B24D3C7105502083B8ED44930FF09B -:10BDD000E8A3D6D68CB361CBB0C2649BD4D2D38651 -:10BDE00078E20AA01CF2BDBDFB349B5F800000809E -:10BDF00000100000000000008F6000111977001192 -:10BE0000B3600011217B001137610011F77A001136 -:10BE1000AD610011CD7A0011FF610011957C001118 -:10BE200067620011957C0011996200114F7C00112E -:10BE3000AD610011857A0011256200112D7C001181 -:10BE400000000000000000000B6300112D7C0011B9 -:10BE50006D63001131770011052A042A012A002A96 -:10BE600002290328012800280118001800000000FA -:10BE70000000000000000000000000870101020136 -:10BE80000201010201020303040103010101010196 -:10BE90000303020103000D000E0010001100130047 -:10BEA0001401070108010A010B011C011D02040213 -:10BEB00005020702080219021A021C021D030103EF -:10BEC000020317000201000504000807000B0A0026 -:10BED0001716001D1C010201010504010E0D0111C0 -:10BEE00010011413011716011A19020201020B0A9C -:10BEF000020E0D021110021413021716030504039B -:10BF00000807030B0A030E0D0001020307090A0BC1 -:10BF10000E0F101112141718191A1B1F20212200BE -:10BF200075A7001131A800110000000002000000F8 -:10BF30006ABE0011000000005DB5001100000000A5 -:08BF40000200000068BE0011C0 -:020000041FFFDC -:1000000000000000213D001188BC001184BC0011DB -:100010003C61FF1F00000000000000000000000025 -:1000200000000000000000000000000000000000D0 -:1000300000000000000000000000000000000000C0 -:1000400000000000000000000000000000000000B0 -:1000500000000000000000000000000000000000A0 -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:100080000000000000000000000000000000000070 -:100090000000000000000000000000000000000060 -:1000A0000000000000000000000000000000000050 -:1000B0000000000000000000000000000000000040 -:1000C0000000000000000000000000000000000030 -:1000D0000000000000000000000000000000000020 -:1000E0000000000000000000000000000000000010 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000000000000000000000EF -:1001100000000000000000000000000000000000DF -:1001200000000000000000000000000000000000CF -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000000000000000000000000000008F -:10017000000000000000000000000000000000007F -:10018000000000000000000000000000000000006F -:100190004D32FF1FAD30FF1FC1660100000000009F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E000000000000000000000000000000000000F -:1001F00000000000000000000000000000000000FF -:1002000000000000000000000000000000000000EE -:1002100000000000000000000000000000000000DE -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000000000BE -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000000000000ED -:1003100000000000000000000000000000000000DD -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000000000000000AD -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:10037000A9B500110000000000000000000000000E -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000591AFF1FBC -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:08183800206FFF1F4118FF1F84 -:10184000024981F3088802F057FB0000206FFF1F58 -:1018500010B502F021FB072804D0122808D0022876 -:1018600008D010BD044A0420136B01331363F8E75A -:101870000220F6E71420F4E70065FF1FF8B5070023 -:101880000C0026002500503630785135002804D150 -:101890000300287058342370F8BD2978CA00481E08 -:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 -:1018B00000280DD12B78DA00A218013350602B706C -:1018C0003378044A013B3370136A01331362D8E75B -:1018D0000123DFE70065FF1F5C234343074910B581 -:1018E000C9180B0058331B78012B05D1FFF7C6FF31 -:1018F000034A936A0133936210BDC0463465FF1FEB -:101900000065FF1F10B502F097FA064A0121130087 -:1019100010CB4942D967044B136002F04DFB200005 -:1019200010BDC04600E100E01000100010B504003A -:1019300002F082FA024B1C6002F03EFB10BDC04672 -:1019400000E100E0431E5A425341A022F0B5D2010B -:101950005B421340154D164A40019B182A18127E0F -:101960008BB00191002A1BD01A000832D46F0022DC -:10197000E6B206AFE4B294420EDC2818C369002B2D -:1019800008D0019902AA117106AA049202AA16733C -:1019900003A898470BB0F0BD1978B9540132EAE7B3 -:1019A0001A7D1A7806AB01261A70E6E7C067FF1F9A -:1019B00000400040F0B5254B04004001C25C85B0FA -:1019C000002A2BD01A18117E002927D0917E0029D9 -:1019D00024D01179022921D11689D788D168F51B25 -:1019E000ADB22A1C102D00D9102292B2BE4217D1DE -:1019F0001818012303710023C269C38003819A422E -:101A000006D06846032103730171029301A8904731 -:101A10000820002C00D0192001F0FEFA05B0F0BD1E -:101A2000013C65426C41A0256442ED012C40084D0B -:101A30001B186419074D0633013A92B2AA42EDD041 -:101A40001888461C1E80085C2070F5E7C067FF1FE1 -:101A500000400040FFFF00000F220E4B10B59868B9 -:101A6000104002380A280BD802F060F80D0A0B0A61 -:101A70000A110A0A0A0A060002210020FFF762FF83 -:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 -:101A9000F6E7C046004000400F220E4B10B5986894 -:101AA000104002380A280BD802F040F80E0A0B0A40 -:101AB0000A120A0A0A0A060002210120FFF742FF61 -:101AC00010BD01210800F9E70120FFF773FFF7E7D8 -:101AD000DB6FF5E70090004013B5334C2378072BFC -:101AE0003DD8324B1A78324B002A39D180221968FE -:101AF00052020A431A60252001F0C4FE20232D4A19 -:101B000011680B43802113606B460422C9050868E5 -:101B10000733104228D080210422C905C86810422A -:101B20002ED080212020C905CA688243CA601422B1 -:101B30001A701A78002A2FD18021C905C86820326E -:101B40000243CA6014221A701A78002A28D11A4B4C -:101B50001A7D22785A601D221A705932DA6013BD3C -:101B60001A6816490A40C5E7086802430A60142249 -:101B70001A701A78002ACED01A78013AD2B2F7E752 -:101B8000C8680243CA6014221A7019784A1ED2B279 -:101B90001A700029F9D1C4E71A78013AD2B2C7E71E -:101BA0001A78013AD2B2CEE76843FF1F3044FF1FD4 -:101BB0003CF000406043FF1F00200040FFFFFEFF9D -:101BC000564B70B51B68012B03D1554A936D0133F9 -:101BD000936502F029F9534B534A1860534B544C08 -:101BE0001A600123534A1360534A13602378002B71 -:101BF00006D006225149524802F0DEF80023237035 -:101C0000504A514B10681B78C1B2002B0ED14F4C7B -:101C1000C0B223785BB2002B4FDB237824785BB211 -:101C200064B21B0424021B191B1813600B1C5029DF -:101C30004ED95023464A47491078DBB2FF2202288A -:101C40004BD10868444C454D267890432A789642FB -:101C500054D9227824782E78023B5D10A31B6B4365 -:101C60005201D31A10335B111843086001F074FF5E -:101C7000031F012B45D83A4B1B78002B06D0394B5C -:101C80001B78002B02D0002002F046F8A122364B30 -:101C900092009978354B4A431B689B188322920027 -:101CA0009B181B78033B012B03D8AF20400002F0A8 -:101CB00003F801222E4BDA8270BD237824785BB2C0 -:101CC00064B2FF33FF341B0424021B190138ABE755 -:101CD000CAB2022AAED20223ACE70868254C264DD0 -:101CE000267890432A78964208D9227824782D784D -:101CF000023B5B10641B63435201B2E72378DBB203 -:101D0000B2E70228D5D11D4B1B78013B022B03D92A -:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 -:101D2000FC0FFF1F3864FF1FFF3F0000141003402B -:101D30003C64FF1F0C10034000100340D50BFF1F35 -:101D40007211FF1FB40003408C09FF1F680AFF1FB8 -:101D5000490AFF1F94000340460AFF1F470AFF1F5E -:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 -:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 -:101D80002309FF1F10B502F02FF80022014B1A8023 -:101D900010BDC0463464FF1F10B501F02DFFA12116 -:101DA000054A89009478054A61431268044B521829 -:101DB000528C1A8010BDC046300DFF1F3409FF1F22 -:101DC0003464FF1F10B50D4B0D4A9978A1239B0079 -:101DD0004B431268D218531DD97F0A4B1B88994276 -:101DE00009D2441C07D0C82805D0D2695B1A5A43CF -:101DF000054B5343C01801F0EFFE10BD300DFF1F1F -:101E00003409FF1F3464FF1F7102000070B5244DB8 -:101E10002B68002B28D002F087F82B68D8402B685D -:101E20000400002B27D002F0AFF82B68D8401D4BE0 -:101E30001D4A9978A1239B004B431268D118D25CAC -:101E400091239B00002A20D0CA580132CA50174B58 -:101E500017491B680868834214D3D23B181A012A19 -:101E60001AD0144B186070BD02F05EF8124B19685E -:101E700002F062F8D3E702F087F80F4B196802F01E -:101E80005BF8D4E70D495B18E8E7CA500C4B1B68B8 -:101E9000DB68E418201AE4E7F530FF30E1E7C046DC -:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 -:101EB0003864FF1FA009FF1F1808FF1F2DFF3F00F8 -:101EC0004064FF1F70B504000D00282916D10300DF -:101ED000A433C2881B889B1A0B4A9BB293420DD92C -:101EE00006006A3605223100653001F07DFE0028CB -:101EF00004D13100200002F057F870BD2900200005 -:101F000001F0F2FEF9E7C046FE7F0000F8B50500DB -:101F1000012002F019F8134CA36AA26A9342FBD184 -:101F2000114E336001F028FE10490300086010488C -:101F3000426894460F4A17680022BC4501D24268A5 -:101F4000BA1A0D4802603268AD18A422E562606AD0 -:101F5000520302436262094A1278002A01D00F3B01 -:101F60000B60F8BD00F00040340AFF1FE408FF1FBB -:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 -:101F800070B580241025E405A3682B43A36001F0FD -:101F9000BBFFA368AB43A36070BD0000F7B516009C -:101FA00080221C001023D2050191916805000B438B -:101FB000936000225A4BD7301A6001F0BDFE9D237A -:101FC0002A002F009B00EB58CA3201210092FC37F7 -:101FD000002B01D00021009A386801F035FF29005C -:101FE000009BCB311A784F4BD3351A604B780A7867 -:101FF0001B0213438A7812041A43CB781B0613433F -:10200000494A1BBA13604B790A791B0213438A7938 -:1020100012041A43CB7931001B061343434A1BBAFF -:1020200013606B782A781B021343AA7812041A43B0 -:10203000EB781B0613433E4A1BBA1360019A330226 -:1020400013433C4A13603C4B22001B1B9C46032954 -:102050003DDCB3089A0013005142B21A032A46D15C -:10206000354AE018511A827840781204000202437F -:10207000E05C043302430A600022FF2B4BDDF022B8 -:102080002E4B12011A600F222D4B1A602D4A136835 -:10209000002BFCD00023224A27491360091B321D64 -:1020A0000B191B68043A180A23706070180C1B0E79 -:1020B000A070E3700434002AF2DC802210213B6817 -:1020C000D20501333B6093688B439360F7BD634651 -:1020D000D578981893782D061B042B43157804396E -:1020E0002B43557804322D022B430360AFE7022ABD -:1020F0000AD1114AE05C511AE218527812020243E6 -:102100000A6004339BB2B7E7012AB5D10A4A521AD2 -:10211000E15C1160F5E7084959180A600433ACE73F -:10212000000004403C0004403800044034000440F7 -:10213000300004400C00044000010440040004404E -:102140001000044014000440F7B5150080221C0064 -:102150001023D2050091916807000B439360002380 -:10216000654AD730136001F0E7FD9D233E009B00D8 -:10217000F9583B00CA363200FC33002900D07FE01A -:10218000586801F061FE390032785C4BCB311A603F -:102190004B780A781B0213438A78AC4612041A4320 -:1021A000CB78281D1B061343554A1BBA13604B7985 -:1021B0000A791B0213438A7912041A43CB791B064E -:1021C0001343504A1BBA13604B7A0A7A1B0213431B -:1021D0008A7A12041A43CB7A21001B0613434A4A17 -:1021E0001BBA1360009A2B021343484A1360220063 -:1021F000474B1B1B0093009BCE785B1801938B7899 -:1022000036061B0433430E78043833434E780431CA -:1022100036023343019E33600328ECDC0321A80817 -:10222000431C9B002940800003292BD13849E51825 -:102230005E18A9786D78E35C09042D0229431943DF -:102240003160030008330021FF2B2DDD314B324973 -:1022500019600F21314B1960012327490B60304B66 -:1022600019680029FCD006211B680B40042B20D0E4 -:1022700080220020D20593680A318B439360FEBD13 -:1022800001217DE7022908D121495D18E11849782B -:10229000E35C090219432960D3E70129D3D11C4922 -:1022A0005918E35C0B60CCE7194818180160043337 -:1022B000CAE7002310490B606346002B0CDC3B008F -:1022C000FC335A68102101325A608022D20593688B -:1022D00001208B439360D2E7009B9B181B68190A6F -:1022E00013705170190C1B0ED37004235B42917054 -:1022F0009C440432E0E7C046000004403C00044037 -:102300003800044034000440300004400C00044015 -:102310000001044004000440080F000010000440C5 -:102320001400044070B5061E19D002225A4B9B7946 -:102330009343012B13D1594B1A78FF2A0FD15A78A6 -:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 -:102350001A79FF2A03D15B79FF2B00D199E0504B0A -:102360000C201A78012A08D000224E4D1A702978C4 -:102370000B00093B042B01D8212070BD4B1F012B02 -:10238000FAD9454CA37B042B00D982E0A279032A19 -:1023900000D97EE09A1ED2B2012A02D860881F2896 -:1023A00077D9002E56D0012E73D1A0880128E3D012 -:1023B000002907D1581E032803D801F0B7FB1217D4 -:1023C00015122E702978481E032811D80025364B87 -:1023D0001D602823237501F057FDA84227D0A58052 -:1023E000CAE702212970EDE70421FBE70321F9E7A1 -:1023F00007390129C0D82D490968C96A8906BBD5A2 -:102400002B4908780028B7D1012A01D9002BB3D174 -:1024100002230B708021274D2633890128782375EC -:1024200001F02AFC80212878890101F065FC012354 -:10243000A380214B1B78002B0AD0FA2280211F4B4E -:1024400092001B8809025A431A4B187801F044FD88 -:10245000002092E701F0F0FC2B78A680073B012BCF -:1024600003D917482E7001F087FC114B114C1A78D4 -:10247000002A06D080210022207889011A7001F0FC -:10248000FBFB01F099FD80212078090201F0F4FBAB -:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 -:1024A0001A09FF1F1C09FF1F4809FF1F4064FF1F77 -:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 -:1024C0000010004010B5002901D001F08DFD10BDB5 -:1024D000F7B5604B01919978A1239B004B435E4A6D -:1024E000060014681022E418D6235B00E058362357 -:1024F000FF33E35C00279343222B41D1574B0F3A24 -:102500001A600760012501F067FD019B1880E82330 -:102510005B00E35C002B01D0B34258DD0023504F39 -:10252000FB70AD33FF33E3581A68002A03D09B8851 -:10253000DB439B071DD03823FF33E35C002B18D00F -:102540009B235B00E35C002B13D1D133FF33E35CAF -:10255000B3420EDAA4235B00E15AE018090A023103 -:1025600001F0AAFC23000122FE33013E01351A8747 -:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 -:1025800003683D00002BBED081880430090A023167 -:1025900001F092FCD6235B00E3581F60B2E72300F2 -:1025A000B133BA00FF339858013781880430090AE3 -:1025B000023101F081FCE8235B00E35CBB42EEDC0E -:1025C000E822F61AED1800235200A354A6E70027CC -:1025D000F1E7200001F038FB00281FD0002E1DDDA0 -:1025E0007319882647190193B600200001F01CFDDD -:1025F0005A30800020184068013581880430090A6B -:10260000023101F059FC200001F0C6FAA359013350 -:10261000A351BD4202D0019B9D42E6D1114BE35C28 -:10262000002BABD095239B00E35C002BA6D00E4B78 -:10263000E15A0029A2D00D4AA35C994202D9013384 -:10264000A3549BE700231A212000A35401F0B4FAFD -:1026500094E7C046300DFF1F3409FF1F00140340EC -:10266000E010FF1F5A020000720200005E0200002C -:102670000D4970B54A6E0D4CD2038B69D20BA24244 -:1026800006D80B4D0224AA4204D901F07DFB70BD8F -:1026900002246442E21815007E2425402242F4D030 -:1026A000A3432B438B61F0E700F000400A200000B9 -:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 -:1026C000BA7B002A02D101321A7003E0032AFAD041 -:1026D000022AF8D001F0D8FB00220120154B1A7015 -:1026E000F8BD154B154D1C68154B9E7801232B70BA -:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D -:1027000053FAA1239B007343E41883239B00E4182E -:1027100023782B70E4E7032B02D101F055FBF0E79F -:102720000020022BDCD101F09FFBEAE71C09FF1F10 -:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 -:10274000300DFF1FF0B587B00EAD2F780FAD2D788F -:102750000593AC46634614000E4D0CAA12782E78F1 -:1027600003930D9B009201932200059B029701F0B9 -:102770006BFC2E70012C01D0042C08D1802206495C -:102780008B889343054A1278D20113438B8007B09C -:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 -:1027A0000B001B3B70B504003020E02B0DD813004C -:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 -:1027C000200019825A8201F01FFA70BD8410FF1F89 -:1027D00010B501F029FB054B00205B68052B04D9DF -:1027E000034A5268D20200D4980810BD001000407D -:1027F000FCE100E070B501F01FFB0D4B1B68FC33E2 -:10280000DC691D6AFFF7E4FF6419844204D2094BB6 -:1028100001241B68002B07D004220024064B1A70E9 -:10282000064A93690133936101F0C6FB200070BD35 -:102830004064FF1F9809FF1F2309FF1FFC0FFF1FA4 -:1028400070B50C4D2B68FC335C6A01F0F5FAFFF7AC -:10285000BFFF2B680025FC339B6AE318834204D238 -:10286000054B1B68AB4200D1051B01F0A5FB2800FE -:1028700070BDC0464064FF1F9809FF1FD722044B5C -:1028800092009B5810B5002B00D0984710BDC04651 -:102890000000FF1F10B501F0D3F8FFF7EFFF274945 -:1028A000274BCA6D274C1A4084235B001343CB652A -:1028B000254B1B68186A01F047FB244B244A1A6019 -:1028C000244B254A1A60A022244B52001A60244B44 -:1028D000187801F051FB2000224901F0F5F900239E -:1028E000A3600233A360204B2049236003232048C8 -:1028F000A36001F0E9F910221E4BFF201A6080222C -:1029000052031A60802292031A60802212041A6015 -:1029100001F002FA012001F017FAFA20400001F05C -:10292000A3F9582001F0C8F9134801F07DF90120FE -:1029300001F012FA072001F04FFA10BD00F000403C -:1029400000FEFEFF141000404064FF1F0000034023 -:102950000180063DBC00034034080000A400034091 -:102960004A0AFF1F71020000C3090000FFFF3F0079 -:102970002810004000E100E030750000674E336829 -:1029800088331B6883F3088801F00EFA644A6549AE -:10299000136800200B401360634B644A1B6893422A -:1029A00000D1A6E001F030FB0221614A13688B439D -:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 -:1029C0004BF90023A3600233A3605C4B012023601A -:1029D00001F0BAFA0323A36001F066F9040001F0E4 -:1029E00023FA050001F060F9554B186001F094FAE4 -:1029F000544B1968621A531EA14200D21300802260 -:102A0000D203934201D39B029B0A3268D16AC90761 -:102A100000D471E04C491C0C09689BB24C435943EB -:102A20002402090A641803264849FC3293680A689C -:102A300047489B1A474A0768126847499B18474A04 -:102A40009A1833409208DB190A600360042B03D9FB -:102A5000013233400A6003600E684149A619300014 -:102A600001F06AFA3F4F3E493B68C3183B603000B3 -:102A7000019301F0F1F93C4E306808183849306094 -:102A8000884205D9019B01333B6001F0E5F93160D3 -:102A900001F062FA354B1B78002B0DD001F0C4F920 -:102AA000334B621B196812188A4232D24919091B2A -:102AB000091A304801F008F92F4E337A002B0ED056 -:102AC00001F0B2F9621BF1681218914224D9491938 -:102AD000091B091A294801F0F7F800233372284B23 -:102AE00083F3088801F050F8002001F08DFA01F01E -:102AF0000BF901F089FA5CE7DC0199000234641AF1 -:102B00005900641A09214B438033CB40A408E418D0 -:102B100089E7FA218900CCE71A49DBE74064FF1F07 -:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C -:102B300010000040490AFF1F14100040C3090000A4 -:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 -:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 -:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 -:102B7000E408FF1F00100040740BFF1F3C100040D2 -:102B800000000020DC050000A022054B92009B58AD -:102B900010B5002B01D0984710BD01F015F8FBE7E8 -:102BA0000000FF1FA122054B92009B5810B5002B7F -:102BB00001D0984710BD01F007F8FBE70000FF1FA8 -:102BC000A222054B92009B5810B5002B01D09847CC -:102BD00010BD00F0F9FFFBE70000FF1FA322054B2B -:102BE00092009B5810B5002B01D0984710BD00F003 -:102BF000EBFFFBE70000FF1FA422054B92009B5850 -:102C000010B5002B01D0984710BD00F0DDFFFBE7A9 -:102C10000000FF1F70B501F007F94F4B186001F07D -:102C2000D3F90400C30702D401F0B6F870BD002246 -:102C30004A4B1A604A4B18780138042829D800F00A -:102C400075FF0320181C2400200001F0D5F901288D -:102C5000ECD0444C2378042B6ED101F09DF9002870 -:102C6000E4D000F0D9FF582001F026F802232370A9 -:102C7000DCE7200001F038F9E9E7200001F054F822 -:102C8000E5E7200001F070F8E1E7200001F0D4F959 -:102C9000DDE700F061FF0500012808D1324B1B7809 -:102CA000053B012B03D82000FFF76EFFD1E72D4B2A -:102CB0001B78022B01D0052B20D1022D28D12B4BC4 -:102CC0009B7BAB431CD12000FFF76CFF264B187891 -:102CD0000128BED16405BCD4244925224B7B034284 -:102CE00005D1233A13405A42534126331A000B7D33 -:102CF0009342AED9322001F08FF8AAE7022D07D116 -:102D0000194B1B78052B11D12000FFF759FFDDE788 -:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 -:102D2000062B03D12000FFF767FF92E7200000F099 -:102D30004BFF022D8DD1C9E7032B04D10C4B987C9E -:102D400001F09AF872E7072B00D06FE7094B987BE8 -:102D500000F072FF6AE7C0469C09FF1F9809FF1F39 -:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 -:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 -:102D80001A640A4A5A500A4A04395A50094A083100 -:102D90009A64094A5A50094A5C315A50084ADA661C -:102DA0007047C0460000FF1F4527FF1F4128FF1F37 -:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A -:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 -:102DD000FF270122009300233C001E001D009446A3 -:102DE000019089B262469A40100008401841361896 -:102DF000B6B2FF2F02D1012E00D19FB2009802403F -:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 -:102E10000133102BE6D10320012E07D1012D04D15F -:102E2000019B2401E4191C700138FEBD102EFCD159 -:102E30000238102DF9D00230F7E700008023F7B5F3 -:102E40009C46264B264F01932649274A274D284C5E -:102E5000284B02281AD1604638600868264E304058 -:102E6000802636033043086001990978002909D18A -:102E70001660224A2A60224A2260E02219689143A1 -:102E8000A03A1BE08021C9021160F2E766463E606D -:102E90000F68194E3E408027FF023E430E600199A5 -:102EA000097800290DD1176001280ED1154A2A6032 -:102EB000154A2260E02219689143C03A0A431A6019 -:102EC000F7BD802189021160EEE7E0210F4A02433D -:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 -:102EE000E0000340D800034090000340000003408E -:102EF0005000034040000340FFFFE3FF0280063D17 -:102F0000804508220180063D8066082200800698E0 -:102F100080550822F8B51E4B80261A680020140040 -:102F20003440324232D11A681A4F32431A600122B9 -:102F30003B68063093433B6001F006F80122164DD2 -:102F40002B681E432E603B680A2613433B60802794 -:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F -:102F600009D17E220E4B1C682B68E40B144093435E -:102F700023432B6005E0082000F0E6FFE9E7002E80 -:102F8000EFD180222B68600893432B60F8BDC046C8 -:102F9000C4F000405CF0004018F0004068F00040D1 -:102FA00060F0004010B500F027FF01215820034ACF -:102FB00001F032F8FFF7AEFF10BDC046600AFF1FF8 -:102FC00010B578220021034800F01EFF00F07CFFBE -:102FD000002010BD4867FF1F70B5040000F02CFFF3 -:102FE00000230C200B4A010059438D18515C002925 -:102FF0000DD0A14208D1012300246B7000F0B4FF72 -:1030000000F0DAFF200070BD01330A2BEBD112244F -:10301000F6E7C0464867FF1F70B5040000F00CFFDC -:10302000002319001D000D4A1078002806D0A04288 -:103030000CD1557001310C320A29F5D1002B0AD17F -:1030400000F042FF00F0B8FF002070BD5078461E2F -:10305000B0411B18EEE700F087FFF3E74867FF1F5A -:10306000F7B504000C20002384460E4D01926746FC -:103070005F43E85D7E19A04212D000280BD10A4BB5 -:103080009C4662461B7808331370019B70707C5518 -:103090007160B360FEBD01330A2BE8D10320F9E76C -:1030A0000720F7E74867FF1F4467FF1F8020F8B538 -:1030B000484BC0051B68C1248360474BFF251A6835 -:1030C000012313434361454BA4001A68444B40213C -:1030D0001A60444B1A68444B1A60444B1A59AA436D -:1030E0001A51C52292009E58AE4331438026995012 -:1030F0009F583F49F6010F403E439E509E588027FF -:103100003602360A3043985080201A5900020A408D -:1031100002431A5104341A59364E3F043240802675 -:103120003A431A511A5936061202120A32431A51F8 -:1031300008341A5980260A4002431A51C3229200C9 -:103140009F58B446AF4337439F509F58294E0F4076 -:1031500007439F509F5837408026360437438026C8 -:103160009F509F5836063F023F0A37439F50C02268 -:103170001F59AF433A431A511A591202120A164301 -:10318000C6221E5192009C58AC4365462C439C506D -:103190009C5800250C4020439850C72080001A58A6 -:1031A000154C1140C02212020A431A50134B1B78CF -:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 -:1031C000A368002B00D0984701350C34EEE712209D -:1031D000F2E7C0466443FF1F6043FF1FB0F00040AA -:1031E0004067FF1FB4F000403C67FF1F00E100E0B4 -:1031F000FF00FFFFFFFF00FF4867FF1F4467FF1F3F -:10320000030010B51F2809D8072200201340072407 -:1032100004490A78A24313430B7010BD0023062013 -:10322000F5E7C0464467FF1F054B06491B780A684F -:1032300005485B0702401B0B134300200B607047DF -:103240004467FF1F1CF00040FFFFC1FF70B50C2555 -:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 -:10326000002C01D1200070BD2B78002B06D06B689C -:10327000002B00D09847013C0C3DF1E71220F2E70B -:103280004467FF1F3C67FF1F1FB5002102220B0090 -:1032900001910091052000F007FE02230B490A6806 -:1032A0001A42FCD120230393039B5A1E0392002B46 -:1032B000FAD1074A1368002BFCDA0B246C44200077 -:1032C000012100F0C9FE207804B010BD90C8004074 -:1032D00000C8004013B504000A4B0193019B002B6A -:1032E00001D1112016BDFFF7CFFF23000340044298 -:1032F00005D0052000F028FE019B013BEDE71800FA -:10330000F0E7C046FFFFFF0707B500F095FD8022FC -:103310000821D205936A0191002B01D107399162EE -:1033200002210C4A11600199481E01900029FAD12E -:1033300003311160053101910199481E0190002966 -:10334000FAD11160002B02D18022D205936200F0E5 -:1033500033FE07BD00C00040F0B52D4C89B0237886 -:10336000002B4FD1FEF7CEFA02232A4F03903A6882 -:103370001A42FCD120230693069B5A1E0692002B6C -:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB -:10339000011E02D0112009B0F0BD030003220190EC -:1033A000009005AD9F2000F07FFD0321280000F074 -:1033B00053FE02233A681A42FCD120230793079B4D -:1033C0005A1E0792002BFAD13368002BFCDA012039 -:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F -:1033E0006B7811041B020B4329780B4363601300B5 -:1033F000113B0A49052B07D801239340A3600B60BA -:10340000012323700020C6E780231B03F6E7C04694 -:103410004C43FF1F90C8004000C800409808FF1FA1 -:103420001E4B30B55A6818781D4B85B0D3185942D9 -:103430004B4101210093002300F096FB194B1A4ADF -:1034400002259A6300221A6510325A658022C4212F -:103450009D65164B1648D202DA6789004258154B13 -:1034600080241A4080231B041343435064234120CB -:103470000393E40500F006FA402000F003FA6562C9 -:10348000039D6B1E0393002DFAD103236362FFF7A4 -:103490003BFFA562FFF760FF05B030BD5843FF1F3B -:1034A00095FFFEF700C80040050001FF04E100E0C1 -:1034B00000E100E0FFFF00FFF0B585B00700FEF778 -:1034C00021FA022305002D4C22681A42FCD1202348 -:1034D0000093009B5A1E0092002BFAD1284E3368AD -:1034E000002BFCDA0120FFF7F5FE002803D01124A1 -:1034F000200005B0F0BD234B2360022322681A424E -:10350000FCD120230193019B5A1E0192002BFAD17A -:103510003368002BFCDA0120FFF7DCFE0028E6D13F -:10352000194B1F60022322681A42FCD12023029308 -:10353000029B5A1E0292002BFAD13368002BFCDA50 -:103540000120FFF7C7FE0028D1D1104B23600223D2 -:1035500022681A42FCD120230393039B5A1E039234 -:10356000002BFAD13368002BFCDA0120FFF7B2FE02 -:10357000041EBCD12800FEF7D9F9B9E790C8004075 -:1035800000C8004001000006A8C8004001800001FA -:1035900010B50020FFF790FF10BD000010B5064BDE -:1035A00018705960FFF73CFF00211320034AFFF712 -:1035B00057FD002010BDC0465843FF1F2134FF1F98 -:1035C000F0B5040085B003920291FEF79BF98822C2 -:1035D00063035B0B52051A438023DB059D6A80233E -:1035E000274F0092BA68002601901B039A420CD91B -:1035F000F82326001B041E401C4206D08022214BCB -:1036000052025E6219680A431A60002D0BD100F065 -:1036100013FC02221C4B1A608023DB055A62013A1C -:103620009A6200F0C9FC0023039A934220D1002D36 -:103630000AD100F001FC144B03221D608023DB053E -:103640005A629D6200F0B8FC8023BA681B039A425C -:1036500008D9002E06D000220A4B0C495A621A687B -:103660000A401A600198FEF761F9002005B0F0BD2C -:10367000009A0299D2181278CA540133D4E7C0468E -:103680004C43FF1F00C8004000C00040FFFFFEFF8A -:10369000F0B587B0029103920400FEF733F9019070 -:1036A00000F0CAFB802302250122234EDB05356092 -:1036B0005D629A6200F080FC204F3B682B42FCD197 -:1036C00020230493049B5A1E0492002BFAD11C4D14 -:1036D0002B68002BFCDA0120FFF7FCFD002802D04C -:1036E000112007B0F0BD2000039A029900F0CCFA37 -:1036F000022304003A681A42FCD120230593059B5B -:103700005A1E0592002BFAD12B68002BFCDA0120FF -:10371000FFF7E0FD051EE3D100F08EFB80230322BE -:10372000DB0535605A629D6200F046FC0198FEF7A9 -:10373000FDF8E0B2D5E7C04600C0004090C80040A8 -:1037400000C80040F0B5802489B00600FEF7DAF822 -:10375000E405A36A02250393029000F06DFB0123A8 -:10376000304F3D606562A36200F026FC2E4C23685A -:103770002B42FCD120230593059B5A1E0592002B5A -:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD -:10379000002803D01124200009B0F0BD244B236081 -:1037A000022322681A42FCD120230693069B5A1E4C -:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 -:1037C00089FD021EE6D11B4B03211E600300019000 -:1037D0000090202000F068FB022322681A42FCD1EE -:1037E00020230793079B5A1E0792002BFAD12B68C0 -:1037F000002BFCDA0320FFF76DFD041ECAD100F098 -:103800001BFB80230322DB053C605A629C6200F0B4 -:10381000D3FB039B002B01D1FFF776FD0298FEF747 -:1038200085F8B8E700C0004090C8004000C80040DC -:103830000100000694C8004007B50002019104226F -:10384000000A01A9FFF724FF0EBD000073B50500B3 -:1038500005240B4AA3005B429B1819686B46DE1DCA -:103860003000FFF7B3FA022804D133782B55013C1E -:10387000EFD276BD052CFCD00128FAD10230F8E752 -:10388000140900111F2807D8012380228340D20584 -:1038900091680B43936070473F2808D8012380222A -:1038A00020388340D20551690B435361F3E75F2809 -:1038B000F1D80123802240388340D205116A0B439E -:1038C0001362E8E71F2807D8012280218240C9053A -:1038D0008B6893438B6070473F2808D80122802172 -:1038E00020388240C9054B6993434B61F3E75F2859 -:1038F000F1D80122802140388240C9050B6A9343E8 -:103900000B62E8E71F2810D880230200DB05153A78 -:103910001968012A06D820229143196019680A43C0 -:103920001A60704701228240F6E73F2811D88023B1 -:103930000200DB05353AD968032A06D810229143E4 -:10394000D960D9680A43DA60EBE701222038824067 -:10395000F5E75F28E5D842238022181A413B8340CF -:10396000D205516A99435162516A0B435362D8E7B9 -:1039700010B50400012813D1A022184992050B6844 -:103980005B015B0913430B60154B164A1968114024 -:10399000154A0A431A60402219680A431A6010BD8A -:1039A0000028FCD101000A2000F076F921000B204C -:1039B00000F072F9C0220A4B920019680A434021B4 -:1039C0001A601A688A431A60B022044912060B680A -:1039D0005B015B0913430B60E1E7C04614F0004054 -:1039E0001CF000407F00FEFF80FD010072B6074A18 -:1039F0001368013313600422054B1A600023054A43 -:103A000013608022D2055360FEE7C0467808FF1F8E -:103A1000C0F00040C4F0004005490B68002B05D100 -:103A2000044A0A6004490A60044A13607047C046A9 -:103A3000140AFF1F841E0000380AFF1FC4F0004054 -:103A40000023034A1360034A1360034A136070475C -:103A500054F0004040F1004044F10040002310B514 -:103A6000184C8AB0009301932378012B27D0694624 -:103A7000012000F031F9002817D1009B1249029370 -:103A8000019B06AA0393114B02A81B680493104BD9 -:103A90001B68059300F038FA10220E4906A800F0C2 -:103AA000A3F8002804D1FF23237000200AB010BD22 -:103AB0000123094A074902A8237000F025FA0120D2 -:103AC000F4E7C0464464FF1F1029001108290011C3 -:103AD0000C290011202900114864FF1F13B501248F -:103AE0006946012000F0F8F8034B00940193FFF7BA -:103AF000B5FF200016BDC046BB0B000010B5FFF798 -:103B00009FFFFFF7EBFF002802D0024B984710BD44 -:103B1000FEE7C046E1A2000002B471464908490030 -:103B2000095649008E4402BC7047C04602B4714633 -:103B300049084900095C49008E4402BC7047C046F0 -:103B400003B47146490840004900095A49008E44AF -:103B500003BC70470000000001B40248844601BC69 -:103B6000604700BFDD0C010001B40248844601BC7F -:103B7000604700BFC56D010001B40248844601BC26 -:103B8000604700BFBD5C010001B40248844601BC2F -:103B9000604700BF7997000001B40248844601BC29 -:103BA000604700BF5976010001B40248844601BC59 -:103BB000604700BFE9F6000001B40248844601BC3A -:103BC000604700BF53B9000001B40248844601BCFD -:103BD000604700BFE917010001B40248844601BCF8 -:103BE000604700BF8937010001B40248844601BC28 -:103BF000604700BFCD4C010001B40248844601BCBF -:103C0000604700BFF9ED000001B40248844601BCE2 -:103C1000604700BF116E000001B40248844601BC39 -:103C2000604700BF6DF6000001B40248844601BC45 -:103C3000604700BF8D11010001B40248844601BCF9 -:103C4000604700BFC1F7000001B40248844601BCD0 -:103C5000604700BF71B0000001B40248844601BC57 -:103C6000604700BF8914010001B40248844601BCCA -:103C7000604700BF8512010001B40248844601BCC0 -:103C8000604700BFB352010001B40248844601BC42 -:103C9000604700BF9573010001B40248844601BC2F -:103CA000604700BF09A2001101B40248844601BC6C -:103CB000604700BF156B010001B40248844601BC97 -:103CC000604700BF7912010001B40248844601BC7C -:103CD000604700BF2D6C010001B40248844601BC5E -:103CE000604700BFE1AC000001B40248844601BC5B -:103CF000604700BF51B8000001B40248844601BCCF -:103D0000604700BF0D52010001B40248844601BC67 -:103D1000604700BF8552010001B40248844601BCDF -:103D2000604700BFED6B010001B40248844601BC4E -:103D3000604700BF0534010001B40248844601BC5D -:103D4000604700BF8944000001B40248844601BCBA -:103D5000604700BF6911010001B40248844601BCFC -:103D6000604700BFE512010001B40248844601BC6F -:103D7000604700BFF535010001B40248844601BC2C -:103D8000604700BFC1A5000001B40248844601BCE1 -:103D9000604700BFD1AE000001B40248844601BCB8 -:103DA000604700BFDD0A010001B40248844601BC3F -:103DB000604700BFC9A9000001B40248844601BCA5 -:103DC000604700BFE94C010001B40248844601BCD1 -:103DD000604700BF75F8000001B40248844601BC8A -:103DE000604700BFF90D010001B40248844601BCE0 -:103DF000604700BF8D82000001B40248844601BCC8 -:103E0000604700BFED68010001B40248844601BC70 -:103E1000604700BFB70E000001B40248844601BCF1 -:103E2000604700BF6137010001B40248844601BC0D -:103E3000604700BFC95C010001B40248844601BC70 -:103E4000604700BF75A9000001B40248844601BC68 -:103E5000604700BF2144000001B40248844601BC11 -:103E6000604700BF090E000001B40248844601BC4F -:103E7000604700BF19FA000001B40248844601BC43 -:103E8000604700BF4DF9000001B40248844601BC00 -:103E9000604700BFA9D8000001B40248844601BCB5 -:103EA000604700BFE927000001B40248844601BC16 -:103EB000604700BF496D010001B40248844601BC5F -:103EC000604700BFC115010001B40248844601BC2F -:103ED000604700BFADAE000001B40248844601BC9B -:103EE000604700BF8B52010001B40248844601BC08 -:103EF000604700BF0934010001B40248844601BC98 -:103F0000604700BFB1B5001101B40248844601BC4E -:103F1000604700BFDD3F000001B40248844601BC99 -:103F2000604700BFC166010001B40248844601BC7D -:103F3000604700BFE90B010001B40248844601BCA0 -:103F4000604700BF090E000001B40248844601BC6E -:103F5000604700BF0189000001B40248844601BCEB -:103F6000604700BFD544010001B40248844601BC4B -:103F7000604700BF21A9000001B40248844601BC8B -:103F8000604700BFEDA5000001B40248844601BCB3 -:103F9000604700BF6D0B010001B40248844601BCBC -:103FA000604700BF01D7000001B40248844601BC4D -:103FB000604700BF85C1000001B40248844601BCCF -:103FC000604700BF9DA9000001B40248844601BCBF -:103FD000604700BFBD0B010001B40248844601BC2C -:103FE000604700BFCD0C010001B40248844601BC0B -:103FF000604700BFE9D4000001B40248844601BC18 -:10400000604700BF0134010001B40248844601BC8E -:10401000604700BF016C010001B40248844601BC46 -:10402000604700BF0167010001B40248844601BC3B -:10403000604700BFD9B0000001B40248844601BC0B -:10404000604700BFF935010001B40248844601BC55 -:10405000604700BF9D6A000001B40248844601BC6D -:08406000604700BF3D71010043 -:104068000200000066BE00110100000078BC0011CB -:104078000200000062BE001101000000A840FF1FFE -:104088000200000080BC001101000000BC61FF1F9D -:104098000200000060BE0011030000003061FF1F35 -:1040A800120000000200000066BE001101000000BE -:1040B800C0BC00110200000062BE00110100000037 -:1040C800BDBC001102000000CABC001103000000C2 -:1040D8006B61FF1F0200000060BE001103000000BA -:1040E8008061FF1F0200000062BE00110100000095 -:1040F800BCBC001102000000C8BC00110300000095 -:104108004161FF1F0200000060BE001103000000B3 -:104118006261FF1F0200000066BE0011010000007E -:1041280000BD00110200000062BE00110100000085 -:10413800F141FF1F0200000012BD00110100000044 -:10414800FBBC00110200000062BE0011010000006B -:10415800F041FF1F0200000010BD00110100000027 -:104168008861FF1F0200000062BE0011010000000C -:10417800EF41FF1F020000000EBD0011010000000A -:10418800EBBC00110200000062BE0011010000003B -:10419800EE41FF1F020000000CBD001101000000ED -:1041A800E6BC00110200000062BE00110100000020 -:1041B800ED41FF1F020000000ABD001101000000D0 -:1041C800E1BC00110200000062BE00110100000005 -:1041D800EC41FF1F0200000008BD001101000000B3 -:1041E800DCBC001102020202020200000000000012 -:1041F80016150000A14B0011674B001154BD0011AA -:1042080090011D0018001800FFFF070102030405B4 -:104218000602010600000000000000000000000087 -:104228000000000000000000000000000000000086 -:10423800030000000200000066BE0011010000003B -:1042480074BD00110200000062BE001101000000F0 -:10425800AC42FF1F020000007EBD001101000000FB -:10426800B661FF1F0200000060BE001103000000DD -:104278002064FF1F0200000062BE00110100000060 -:10428800AC42FF1F020000007CBD001101000000CD -:10429800B861FF1F0200000060BE001103000000AB -:1042A8001864FF1F12A6A6A6000000000000000068 -:1042B800161500000001000000000111FFFF0000BA -:1042C8005048593600000000000000000B000500AF -:1042D800F0000000B4000028002800283075A00075 -:1042E800A000A000A00000080008E001F0001000F5 -:1042F8001000100010001000100050005000500076 -:1043080010001000D0070000000000000F0001009E -:104318000500307507001000010081FF0000000053 -:10432800FF000000F1730011F9710011896F00118D -:10433800FFFF0100FF0000000D9E0011899B001186 -:10434800A19A001100000000000000000000080011 -:10435800040000003B0001085902E0018821280000 -:10436800FF0000000200000066BE0011010000000E -:104378002CBF00110200000062BE00110100000005 -:10438800E943FF1F020000005EBE001101000000AB -:104398000068FF1F0200000062BE0011010000005B -:1043A800E843FF1F020000005CBE0011010000008E -:1043B800E643FF1F0200000062BE0011010000007A -:1043C800E443FF1F020000005ABE00110100000074 -:1043D800DC43FF1F180018001D00900102000003B5 -:1043E800020200000200000066BE00110100000089 -:1043F80040BF00110200000062BE00110100000071 -:104408002C44FF1F0200000058BE001100000000ED -:10441800000000000200000060BE00110300000060 -:064428002068FF1F20FFC9 -:040000051FFF184180 -:00000001FF diff --git a/bthome_phy6222/bin/BOOT_THB1_v14.hex b/bthome_phy6222/bin/BOOT_THB1_v14.hex deleted file mode 100644 index da4092c..0000000 --- a/bthome_phy6222/bin/BOOT_THB1_v14.hex +++ /dev/null @@ -1,3063 +0,0 @@ -:020000041100E9 -:10300000002373B52B4D2C4C28006361022601F080 -:103010006BF94021FE2221742800284B009601F014 -:10302000B5F9002836D1217CFF222800244B0096D8 -:1030300001F0ACF900282DD1224BA2899A4226D169 -:10304000E389214A93420DD1204B6361204B2268D2 -:10305000002A03D1002B01D043CB43C4280001F048 -:1030600081F973BD1B4A934201D00023EFE71A4B4D -:103070001A4A1B68934206D9C02304222800217CE7 -:103080009B0001F0F9F9114B6361154BDFE7002359 -:103090002374EAE7CC233821AC2228009B01217459 -:1030A00001F0EAF90028F2D10E4B63610E4BE38187 -:1030B0000E4BCCE7F441FF1F9C61FF1FA861FF1F6F -:1030C000AA61FF1F59590000830500001541001136 -:1030D000F4BC001182150000C061FF1F87130000BF -:1030E00000BD0011CD410011AAAAFFFFE8BC0011EC -:1030F000F7B5164B0192C318021D002000938823D8 -:103100005B05D3181B685C1C1AD09CB2402C18D8E5 -:103110008D781E0CAC466746CD782D023D43AE42FD -:1031200006D1019800280ED110000C70240A4C70B2 -:1031300003249BB20733A343D218009B9A42DED3E9 -:10314000FEBD4432F9E71000FAE7C046FC0F00006C -:10315000802213B503000324019189B25201073183 -:103160009B18A14304305A1A88235B05C3181B68B7 -:10317000591C03D190429241104016BD99B240298A -:1031800007D80B000733A343C0189042ECD30020AC -:10319000F3E74430F9E7134B134A1B68126810B584 -:1031A000FA24934201D81A00F824104BE4021B6859 -:1031B0009A4210D813000E4A12689A420ED3013375 -:1031C00007D1F823DB029C4203D10A49054808F0E5 -:1031D0009FFA200010BDFC24E402ECE7FE24E40288 -:1031E000F7E7C04600C0071100D0071100E0071143 -:1031F00000F00711FFFFFF7FF0B59BB015000490B2 -:103200000391402A00D9A0E006AB59801A80FFF74D -:10321000C2FF0400042816D9002206A9FFF768FFA0 -:10322000052810D906AB1B88AB420CD1002D07D066 -:10323000514B2A000499C01808F022FB002802D143 -:1032400001201BB0F0BD06AB1D8020000699FFF7E2 -:103250007FFF041E7BD1069B0793FFF79CFF802313 -:103260005B01C618802307001B039E4201D3F8268A -:10327000F60288235B05F31801931B68013302D023 -:10328000019808F09DFB3D49019808F041FA3B1D6B -:103290000293331D05938822029B52059B181B68DD -:1032A00008935A1C3CD044219AB20091402A04D879 -:1032B0000320D11D814389B2009103991B0C8B42DD -:1032C00024D0402A22D80122300008A9FFF710FF9D -:1032D000021E1BD1380008A9FFF70AFF04000428CA -:1032E00031D9009A059B9B1880225201B218934253 -:1032F00040D288235B05C118009A09A808F008FC91 -:103300001D4B009A09A9F01808F032FC009A029BA4 -:103310009446634402931A4B029AFB189A42BAD31A -:1033200088235B05FC1821680198013908F0F0F941 -:10333000200008F045FB039A07AB5A80300007993C -:10334000FFF706FF0400002C03D1002079E70428D2 -:10335000FBD988235B05E018069908F0D9F9032307 -:10336000EA1C9A4300D16BE7034B0499E01808F07C -:10337000FFFB65E70424ECE704000011FFFFFF7F7B -:10338000F80F0000F7B505001400402A21D80027E7 -:1033900001AE71803780FFF7FEFE042816D93A008F -:1033A0003100FFF7A5FE042810D93688BC420BD0A7 -:1033B000BD4209D0221CB44200D9321C064B92B245 -:1033C000C118280008F0A4FB30B2FEBDC04300B213 -:1033D000FBE703204042F8E70400001137B5042260 -:1033E00004000D0001A81649FFF7CCFF02000428D5 -:1033F0000BD1019BA34208D3AB4204D0104901A8D2 -:103400000195FFF7F9FE01203EBD0E4C2368200018 -:10341000019308F0D5FA019920000139019108F0D3 -:1034200077F980235B01E418074B9C42EED104221C -:10343000034901A80195FFF7DFFE0020E4E7C0463D -:103440005555000000C007110000081130B589B0C3 -:1034500008F0AEF810226946254808F0F1F9254B2E -:10346000009A9A420ED1019B029A0F2B33D8002169 -:1034700001240698013B08D2002900D00292029B49 -:10348000013331D10023029325E0551CF2D1020013 -:103490002100EFE710341022200004A908F0D0F931 -:1034A000029B013301D1069B0293882304995B059B -:1034B000C918059B06981A03120B049105928142C4 -:1034C00003D02B4201D108F023FB019B013B019368 -:1034D000019B002BDED1029B002B03D004930498A8 -:1034E0004168084709B030BDE025014C2D03EFE7E6 -:1034F00000000111504859368022F8B5964C974B80 -:10350000D200002120001C6008F05AFB2300944ADE -:1035100088331A60934B1A786A23002A00D011333B -:10352000E3620A232365904B37221B780820A363AC -:103530008E4B2118E361102323628D4B3B25636181 -:10354000C823DB00A36123008C331A602823013ACF -:10355000E26320646364CA67043A211DCA672100DC -:10356000BC310D602100C03108602100C4310B6006 -:1035700021000635CC310D602100083DC8310D60B9 -:103580002100D0310A602200D43210602200D832EB -:10359000136022000227E032210017604222DC3152 -:1035A0000A6021001B3DE4310D602100E831086014 -:1035B0002100EC310B6023000521F4331960230056 -:1035C000F0331A602300183290331A6023009433CA -:1035D000186023001E3A98331A60AF23DB00236083 -:1035E000644BFA262363644B644DE360644BF03113 -:1035F000A3642300FF31FC33B600A16021611E608B -:10360000A5627325E5656D3D6565A56596255D4AF1 -:10361000AD00E264666258606766A566002709250A -:10362000A767E566584F594D606720002567E26738 -:103630003A6015279C30676007001A203860200028 -:10364000A0300700212038602000A83007004C4837 -:1036500038602000F830066026006427A436376002 -:1036600026005F3FAC3637602600033FB036376038 -:103670002600C637B436376026000027B8363760D4 -:1036800038269E60424E96205E64424E5A66DE6147 -:10369000414E9A645E62F53EFF3E9E621E269A6728 -:1036A000354A8000DE661F675F67DD651D6618624C -:1036B000DA67BE23394A5B00E250394BD8382350D1 -:1036C00004302250C4225200A350C623E4205B00E1 -:1036D000E1500433334AE1503349344BD16034492B -:1036E000800019503349E938FF3819503249043005 -:1036F000195032493248D16132491163324951631C -:103700001900F4310860CE20304940001160304982 -:10371000195019002F48F83108602F49D1658221CE -:103720002E4A89005A501A002D490832D1671A00D2 -:103730002C49B432116088212B4A89005A501A0052 -:103740002A49883211602A4ADA6408F011F9012006 -:1037500008F0BEF8F8BDC0460004FF1F4064FF1F1C -:10376000206FFF1F3044FF1F4A0AFF1F3A07000067 -:1037700080C3C9019A020000DC0500006A1800003D -:1037800050C3000088130000F009FF1F204E000006 -:103790006509FF1F68100000C409000040420F00C7 -:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 -:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 -:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 -:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 -:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 -:1037F000851DFF1F0223F0B501245F4D5F4E2B7026 -:103800005F4B91B01C705F4F039333680021200021 -:10381000FB7006F0D9FD200006F0D0FC0023984292 -:1038200005D0FA78552A02D0332A00D097E03360C9 -:10383000042006F031FF07F063FFFFF75DFE07F09D -:10384000C7FF1F22012400214F4B10AE1A704F4BAF -:103850001C704F4B19704F4B19689143163A0A432D -:103860001A60602219689143403A0A431A6008F0CE -:103870001FF907F0DDFEC120FF21474B80001A58D9 -:103880008A431A50C522920098588843BF39014391 -:1038900099509858414908408021C901014380202E -:1038A00099509958C0050902090A0143995080218D -:1038B0003B48490107F0DCFF03232200394901940A -:1038C0000093394808F04CF92C22384905A808F033 -:1038D0001FF905AC61782078023406F08FFCA6420F -:1038E000F8D1334C334B226803201A40A023DB026B -:1038F00013432360802322689B04134323602268C0 -:103900002D4B1A4080239B03134323602B4A2C4BDF -:10391000934200D8012008F01BF807F041FE8023F5 -:103920002268DB0413432360287808F0A1F8039B86 -:103930001878C0B207F0CCFE07F072FF21490420CE -:1039400008F056F806F074FE00F0AAF800F0EAFD60 -:1039500000F092FE00F00CFA002011B0F0BD0093D0 -:103960002100184A042007F01BFF8023DB059C621E -:10397000FFF76CFD5CE7C0464A0AFF1F34F00040C9 -:103980003044FF1FCC61FF1F480AFF1F490AFF1F79 -:10399000680AFF1FBCF0004000E100E0FF00FFFFED -:1039A0003444FF1FB856FF1F3454FF1F10BC0011D2 -:1039B00014F00040FF7FF8FFFFFF9FFF0080FF1F14 -:1039C000206FFF1F3B00010870B500252549264ADE -:1039D00026484D6308CA1B051B0DED188242F9D11C -:1039E00000268022224B92058B630921214B224C19 -:1039F0001E62224B1120DA67214BDA688A43DA60B3 -:103A00009A6820490A409A60266007F0C1FF112099 -:103A100008F0F6F8636C1C4A13406364EE24E4007B -:103A20006C431A4A200C0400642390420AD8FA22FC -:103A30003300D200904205D9154B0A21C01807F077 -:103A4000E7FFC3B2134A11201372D48008F0A0F824 -:103A5000114B1B78002B04D1104B1021187807F064 -:103A6000EFFD70BD000005400806054080060540DA -:103A7000FF01000000F000400038004004E100E0D9 -:103A80003CF00040FFDFFFFFFFFEFFFFB70B000031 -:103A900030F8FFFFB461FF1FEE63FF1FEC61FF1FF3 -:103AA000002210B51100112007F08AFE10BD0000A1 -:103AB000F8B500230926364F364C3B62E3681120E7 -:103AC000B343E36008F09CF8112007F061FF112078 -:103AD00007F02EFF40232268102513432360802324 -:103AE0006268DB02134363608023A26802211343F0 -:103AF000A360A368284A08201340A3608023A2681B -:103B00009B0113430122A360236CAB432364236C0A -:103B10001343236480231B013B62226B1F4B1A401B -:103B20002263626B1A406263A26B1A40A263E26B6B -:103B30001340E363E3681A4A1340E36006F05EFB58 -:103B40000121082006F06EFC8023164A5B00516CB0 -:103B500011200B43536407F063FDFD21C720124B76 -:103B6000124A89005A50A36B80002B43A363E36879 -:103B70000F4A3343E3600F4B195811408022120261 -:103B80000A431A50802292051A600B4B5D63F8BD00 -:103B900000F000403CF00040FFFFDFFFEFFFEFFFD1 -:103BA000FFFF7FFF003800400000FF1FC9390011F0 -:103BB000FF00FFFF00E100E00000054030B503A872 -:103BC00004880B20002C0ED14968074D08784978ED -:103BD000090201430A20A94205D1012120001980D0 -:103BE000024B1B7A137030BD192A0000B461FF1F0D -:103BF000F7B5150008AA16884A680F4F147852784E -:103C0000120222430A24BA4214D10122DBB20192E9 -:103C100000962A0007F05CFC041E0BD1074B1B68C2 -:103C2000002B07D068782A780002104342425041A6 -:103C3000013098472000FEBD022900003861FF1FB7 -:103C400030B5012503790400BFB02B4211D00A49D9 -:103C5000408806F0A9FF28420BD0084B01A95B8DD4 -:103C60004D800B80064B00221B7A60880B7104F09C -:103C70008DF83FB030BDC0463061FF1F6840FF1F68 -:103C8000B461FF1F10B50549054806F043FF042144 -:103C9000044A054806F000FF10BDC0463061FF1F12 -:103CA000FFFF00003CBC00116840FF1F10B5024838 -:103CB00004F0EEFE10BDC046413C0011062310B5D5 -:103CC000837010330371443B43712A33837144334F -:103CD000C37100230222012103720E4B0270417056 -:103CE0001C8881724472197A0273C1729A78427385 -:103CF000DA7882730322C2731A7902745A79427491 -:103D00000C2282749A79C274DB7903751123C37013 -:103D1000152010BDB461FF1F10B5142007F0B8FEC8 -:103D2000124B14220021186007F04AFF002007F010 -:103D300057FE012007F00CFD022007F0B1FC032024 -:103D400004F04AF9042006F05FF9052003F088FB2F -:103D5000062004F055F8072001F052FA082006F07A -:103D60007BFE092001F03AF810BDC0463C61FF1F00 -:103D700007F086FC012007F0D3FC07F021FC0000CF -:103D8000094B10B50400984205D0012904D1200048 -:103D9000064906F0BFFE10BD0229FCD1013904F02E -:103DA00035FE0028F3D0F6E7FEFF00006261FF1F3A -:103DB00070B50D7A100004AA2C0016881022144049 -:103DC000154220D1002E20D10A78022A18D14A6843 -:103DD000517815780E4A09022943914205D00D4ABF -:103DE000914209D01C800A2404E014220A491A8056 -:103DF00007F08EFE200070BD0C2208491A80F7E7FC -:103E00001C800124F6E70824F4E70B24F2E7C046FF -:103E1000F3FF0000F4FF0000BC42FF1F18BD0011BB -:103E200010B504000749084806F074FE074804F07E -:103E30006FFD0020E40704D50721054A054806F078 -:103E40002BFE10BD6261FF1FFFFF0000813D0011CE -:103E500080BC0011AC40FF1F00B50C4BBFB01A78FE -:103E60000B4902A800F0C2FC6B4680B2D880002843 -:103E700009D06A46074B01A91B889380064B002294 -:103E8000188803F083FF3FB000BDC0464061FF1FAC -:103E90004161FF1F0641FF1F1042FF1F00B50C4B81 -:103EA000BFB01A780B4902A801F0B6FE6B4680B28B -:103EB000D880002809D06A46074B01A95B8D938002 -:103EC000064B0022188803F061FF3FB000BDC046DA -:103ED0006A61FF1F6B61FF1FAC40FF1F1042FF1F95 -:103EE000F7B50E00377A1C0008AB11003D001A88A8 -:103EF00020231D401F423CD13378022B3BD17368F5 -:103F00001F785B781B023B431E4FBB4208D01E4FFD -:103F1000BB4214D01D4DAB4221D00A252800FEBD66 -:103F2000002A2AD1142C2AD82200F06807F0F0FDCC -:103F3000174B1C70012CF1D9FFF7B0FFEEE7002AF8 -:103F40001BD1202C1BD82200F06807F0E1FD114B9B -:103F500004211C70104B187807F072FBDEE7E3B207 -:103F60000124009201940A00310007F0B1FA050023 -:103F7000D4E70825D2E70125D0E70B25CEE70D25AC -:103F8000CCE7C046F3FF0000F4FF00000229000068 -:103F90006A61FF1F4061FF1FEC61FF1F332310B5F3 -:103FA000040003700A220749013007F0B1FD064BF7 -:103FB0000F201B681A0AE37222731A0C1B0E62731D -:103FC000A37310BDB461FF1FDC61FF1F30B5012575 -:103FD00003790400BFB02B4213D00B49408806F090 -:103FE000E3FD28420DD06A46084B02A81B88938047 -:103FF000FFF7D4FF6B46D8800022608801A903F048 -:10400000C5FE3FB030BDC0466261FF1F0641FF1FC5 -:1040100010B5024804F03CFD10BDC046CD3F001174 -:1040200070B5160004AA148805AA15784A68507855 -:10403000117800022A4A0843801805284BD807F057 -:104040007FFB03131E29343F0720032C0BD80422C7 -:10405000121BAA4200D92A0022491A8030000919ED -:1040600007F056FD002070BD0720112CFBD812224E -:10407000121BAA4200D92A001B491A80EEE707202A -:104080000E2CF0D80F22121BAA4200D92A00174981 -:104090001A80E3E70720032CE5D80422121BAA426A -:1040A00000D92A0012491A80D8E70720032CDAD851 -:1040B0000422121BAA4200D92A000E491A80CDE719 -:1040C0000720032CCFD80422121BAA4200D92A00B1 -:1040D00009491A80C2E700220A201A80C3E7C046B5 -:1040E000DCD5FFFFCBBC00118861FF1FBBBC0011FA -:1040F000B6BC0011B1BC0011ACBC001110B50D2153 -:10410000024A034806F0C8FC10BDC046A0BC00111E -:104110001C41FF1FF0B50024274E85B03000B4715C -:1041200000F0E2F8254D264BEA89297C9A422FD1EE -:104130000423300003AA00F057F90400300000F017 -:1041400011F90123B371002C34D16B4699892B6886 -:10415000C9BA4B4329891B4A1B145B1853806B4611 -:10416000D9896B6849BA89B24B4369891B0C5B18C2 -:104170001548191C1BB2834200DD011C0B0400D53D -:1041800000211388918001331380200005B0F0BD19 -:104190000227220003AB3000009700F0F7F80E234F -:1041A0000400297C0122300000976B4400F0EEF8F7 -:1041B0000443C3E71C00E8E7F441FF1F9C61FF1FB5 -:1041C00083050000B461FF1F0F27000073B5234E65 -:1041D000300000F089F8224D07236A463000297C20 -:1041E00000F002F904003000002C33D16B461B783C -:1041F0007F2B2FD800F0B6F86B46D878F023020456 -:104200001B031A406B469B8816495BBA9BB21A4344 -:104210002B68000953432A891B0C9B184B806B4663 -:104220005A789B7812031B011A436B68024353436D -:104230006A891B0C9B180C481A1C1BB2834200DDB8 -:10424000021C130400D500220B888A8001330B80E6 -:10425000200076BD00F086F80124F9E7F441FF1F45 -:104260009C61FF1FB461FF1F0F27000070B5114C48 -:10427000237C002B0FD0382B0ED10F4D280000F0DF -:1042800033F8CC23AC222800217C9B0100F0F4F809 -:10429000280000F067F870BD084BE2899A42FAD115 -:1042A000054D280000F020F800222800217C00F0B5 -:1042B000C5F8EDE79C61FF1FF441FF1F8305000077 -:1042C00010B5084B1A7C002A09D05B69002B06D078 -:1042D0009847041E01D0FEF793FE200010BD012474 -:1042E000F9E7C0469C61FF1F70B5C17905000C005D -:1042F000631E9C411A4BE402E41849000460C9B2F1 -:10430000007906F0C5F8E979687949000131C9B248 -:1043100006F0BEF8E8790930C0B207F009FB0023C7 -:10432000E36661332360AA795B3B002A0ED02268E2 -:104330009A43023B134323600A23E361073323625A -:1043400000232363A3630133E36370BD22689A43B0 -:10435000022313432360462363610633A361EFE71F -:104360000050004070B5002504000368DD66C07988 -:104370000930C0B207F044FC2900207906F024F887 -:104380002900607906F020F870BD0000F8B51E0025 -:1043900006AB1D78002304681700E366616007F030 -:1043A00007F901238022E3662B0027615200013BBD -:1043B00008D207F0F5FA08200A4A1168002D03D147 -:1043C0002800F8BD2261F2E7236F034203D023697E -:1043D000013D3370013613685B1A032BEED90125BA -:1043E000EEE7C0466008FF1F70B51C00002305689B -:1043F0001600EB66696007F0DBF801238022EB66AC -:1044000023005200013B08D207F0CAFA08200A4AEA -:104410001168002C03D1200070BD2A61F2E72B6FD8 -:10442000034203D02B69013C3370013613685B1AD9 -:10443000032BEED90124EEE76008FF1F002370B5BF -:1044400004681500E366616007F0B2F80123E366D3 -:10445000256107F0A5FA8020064A80001168636B89 -:10446000034205D113685B1A032BF8D9012070BDF4 -:104470000020FCE76008FF1F70B51D0000230468E2 -:104480001600E366616007F093F80123E366266196 -:104490000F33626B1A42FCD02B0A23611023626B2C -:1044A0001A42FCD0EDB2256107F07AFA8020074A63 -:1044B00080001168636B034205D113685B1A032BFC -:1044C000F8D9012070BD0020FCE7C0466008FF1F3E -:1044D00070B51E00002305681400EB66696007F0E4 -:1044E00067F80123A619EB660F33B4420ED107F02B -:1044F00057FA80200A4A800011686B6B03420CD186 -:1045000013685B1A032BF8D9012070BD217829614B -:10451000696B1942FCD00134E7E70020F5E7C0469B -:104520006008FF1F10B5084CE368002B08D18022FB -:10453000064B52021B689B186360054B1B68236087 -:1045400007F01EFAA06010BDDC61FF1FC8F000403C -:10455000CCF0004070B5184A936A916A9942FBD139 -:1045600016498A689A421FD39A1A8B60144B012607 -:10457000186893B2D202D20E4343424300204C68E3 -:104580001B0A1B1912029B180E4C0A684B60551C23 -:10459000A3420CD8002801D04B600A600A4A13607D -:1045A00008680A4B186070BD581E821ADDE7084A79 -:1045B00030009B182A00EAE700F00040DC61FF1F92 -:1045C000140AFF1F40420F00C8F00040CCF000402A -:1045D000C0BDF0FF70B51F4C23793F2B01D93F239D -:1045E00023711D4B22791A701878C0B207F0C0F8F9 -:1045F00018231A491A4A0B801A4913800B805380DA -:10460000A379194980200B800C21938001334B43FF -:10461000164D191C0001834200D9011C2980D1804C -:104620006379002B11D101336371237A012B01D8F7 -:10463000022323726279237A0D4853430A21584397 -:1046400007F0E6F90B4D286070BDA02BEDD9A02333 -:10465000EAE7C046D061FF1F480AFF1F0E42FF1F56 -:10466000DC43FF1F0C42FF1F0A42FF1F0842FF1FCF -:1046700071020000C061FF1FF8B514210020FEF791 -:10468000ADFE114C011E114D09D10C22104BC1CBB6 -:10469000C1C4280007F094FAFFF79CFFF8BD0C2274 -:1046A00020000C49FEF76EFE0C2802D0084B43CBCD -:1046B00043C40C2228000849FEF764FE0C28EBD006 -:1046C0000C220021E5E7C046D061FF1F9C61FF1F5F -:1046D0000CBD0011FC0C0000F50C0000F0B51D4CE9 -:1046E0008022A5440400882069465201400507F055 -:1046F000E7F9902212016A441300200032C832C345 -:1047000016C816C38023144C144FA6689B0333436A -:10471000A3603B6007F0A4F98823A0685B05C0187C -:1047200007F04EF90025882329008022A0685B0548 -:10473000C01840196944520007F01AFA8023013565 -:10474000FF355B019D42EED1A6603E60044B9D4467 -:10475000F0BDC046FCEFFFFF4C43FF1F9808FF1F52 -:1047600004100000F0B5040087B0002825D068468A -:1047700007F01EF91B4C022806D1062269462000CC -:1047800007F07EF8002816D06946002301250F2681 -:104790002F00E25C013310091030874038002F00F1 -:1047A000324097403A0002434A610439062BEFD168 -:1047B0006846FFF793FF07B0F0BD182269460A4824 -:1047C00007F07EF96A46A300D358013305D01822BA -:1047D000FF21684607F0F4F9EAE70134062CF1D12D -:1047E000E9E7C0466509FF1F00090011F0B5002583 -:1047F00004000E0085B0AA4200D186E04B1C087868 -:1048000001934B788978377909021943F3783F0689 -:104810001B040B431F43039720706570252800D1AC -:1048200096E033D8112813D806F0DAFE69002B0180 -:104830002B012B012B01AA00B800B1002B012B0189 -:104840002B012B012B012B012B012B010501250134 -:10485000232800D1DEE0DB2800D034E1042A00D890 -:10486000ACE01025052A05D0551F2A003800711D1F -:1048700007F04EF905223100200007F049F92A001F -:104880003900601D07F044F905353EE0562859D03F -:1048900010D8332800D19DE0552839D02628DAD108 -:1048A0009F4B2900132218001D0007F089F9FEF71D -:1048B000A7FB5CE0712800D177E0722800D180E08E -:1048C000602800D18BE0DC28C5D1022A00D875E031 -:1048D0007378BFB26370B378A370032A05D0033A2C -:1048E000390092B2F01CFEF787FC10223900E01C60 -:1048F000FEF748FDC51C002807DA60705CE00C225A -:104900002000884907F004F90C25280005B0F0BD07 -:10491000013A854D0C2A13D8002A0AD028000199A3 -:1049200007F0F6F8FFF756FE0C2228007F49FEF745 -:1049300063FC29000C22601C07F0EAF80D25E4E76F -:104940000C22EBE7784D7A4B2A0043CB43C2E9E7D0 -:10495000013A734D0C2A11D8002A08D00199280079 -:1049600007F0D6F80C2228007249FEF745FC290012 -:104970001322601C07F0CCF81425C6E70C22EDE7E3 -:1049800005226D49601C07F0C3F80625BDE7122219 -:104990006A49601C07F0BCF81325B6E7082268498D -:1049A000601C07F0B5F80925AFE77178F02905D844 -:1049B000644B188801F08CFD0225A6E7FF23637085 -:1049C000FAE7614B012A03D072789A706270F3E7BC -:1049D0009B78F4E72000FFF7E1FA050095E7013A3C -:1049E000594B5A4D072A10D8002A10D0012128000F -:1049F0005970019907F08CF801F048F82900072256 -:104A0000601C07F085F808257FE70722EEE7002203 -:104A10005A70F3E7042A04D94D4D2F6006F0B0FF19 -:104A2000A860FFF797FD0422039003A9601C07F01C -:104A30006FF8052569E7474D062A15D90622280093 -:104A4000019906F01DFF00280ED0062201992800CA -:104A500007F05EF8062240492800FEF7CDFB01234F -:104A6000394A91780B43937029000622601C07F0A5 -:104A70004FF8072549E7012AA0D07078FFF772FEAA -:104A80009AE7012800D0E6E6931E344F1A2B04D88B -:104A90007378002B09D100F015F9314B39001D78DE -:104AA000601C6A1E07F034F82FE7551E2A00019992 -:104AB000380007F02DF82B49AAB23800FEF79CFB0E -:104AC00000F036F9E9E7DA281DD1042A00D875E7A5 -:104AD000082A15D9B37972791B021343F2791204AB -:104AE0001A43337A1B0613433B603B6805223100AF -:104AF0002000039307F00CF80422601D03A950E77F -:104B0000FE236370F1E7DE2800D057E7511E012A2B -:104B100001D10025F9E6019800F09EFFF9E7C046B3 -:104B20009C61FF1F18BD0011D061FF1FFC0C00002D -:104B30000CBD0011F50C0000A861FF1F8861FF1F6C -:104B40005043FF1F1042FF1FCC61FF1FAD42FF1FEC -:104B5000DC61FF1F6509FF1FADAC0000CD63FF1FC7 -:104B6000CB63FF1FAEDE000070477047020010B538 -:104B7000094B0A32094C92B2DA815A829881188222 -:104B8000207802F00BFB0422054B012120781A70DB -:104B900006F056FD10BDC046DA42FF1F1664FF1F27 -:104BA0001564FF1F013870B5042809D806F0C8FD48 -:104BB000030928081200234B0221187806F040FD53 -:104BC00070BD204B0821187806F07AFD00221E4B9C -:104BD0001A72F5E7802200241B4B1A4D52001A81ED -:104BE00008211A682878DC7206F062FD2100287816 -:104BF00006F036FD012000F04FFE00F047FFDFE732 -:104C0000104B0821187806F05BFD1048FFF756F8A6 -:104C10000F4B104A9B79002093800F4A138080220B -:104C2000094B5200D8721A8100F036FE00F02EFFB8 -:104C30000A4B9B78002BC3D0094A136006F0F8FD9D -:104C4000BEE7C046EC61FF1FC061FF1F1942FF1F96 -:104C5000D061FF1FDC43FF1F0A42FF1FCC61FF1F13 -:104C600034F0004010B501290BD1012809D1054BC2 -:104C70001B78002B05D02622034B04485A72FFF7FD -:104C800075FF10BDEE63FF1FC061FF1FC409000068 -:104C90000300F0B50A4D8E18B14202D152008018BF -:104CA000F0BD0C782F6824093C5D0F271C700C7830 -:104CB00001313C402F683C5D5C700233ECE7C0463C -:104CC0000442FF1F0D22114B10B51A700C23104C1B -:104CD00010492370093A033B0F48637006F018FF30 -:104CE0002D2301220D490E48A371FFF7D1FF0122A8 -:104CF0000C49FFF7CDFF01220B49FFF7C9FF002246 -:104D00000A491000FEF778FA10BDC046EA63FF1F9B -:104D1000CB63FF1FCBBC0011CD63FF1F6709FF1FD3 -:104D2000D263FF1F6609FF1F6509FF1FAEDE00008B -:104D300070B5124C132220001149FEF723FB114DD0 -:104D4000002817DDAB78002B14D0431C2B700923EF -:104D50006B70002300190370287829000130C0B25D -:104D600006F07EFD297822000139C9B2002005F045 -:104D7000B1FD70BDFFF7A6FFEEE7C046CD63FF1F94 -:104D8000AEDE0000CB63FF1F10B5114B1A78187010 -:104D9000002A0ED000280BD10E4B1A78062A07D80D -:104DA0005423D340DB0703D50B4B187802F0F6F9F8 -:104DB00010BD0028FCD0074B1B78012B02D0033B11 -:104DC000022BF5D8044B0121187806F039FCEFE7E7 -:104DD000EE63FF1F1564FF1F1664FF1F70B54A4E78 -:104DE0004A4A4B493070012005F000FC00F0B2FE49 -:104DF000FEF706F906F0A4FE032246494648FFF7EF -:104E000047FF2D24030004221C7044490130FFF7A2 -:104E10003FFF30230470424D424C437083702E3B61 -:104E2000062220004049EB87FEF7ACFA062813D093 -:104E3000200006F0BDFD022809D00321200006F065 -:104E40006FFE8D23E3706E3B23711933637106226D -:104E500020003549FEF7D0F9344B1B68FC335C6405 -:104E6000FFF766FF0020FFF78FFF314C314A012129 -:104E7000314B1278207802F053F9304A304B1278D7 -:104E80000021207802F04CF901222E4B1A702E4B93 -:104E9000DB78552B31D12D4B3B325A722C4B2D4A9E -:104EA000AB81EA812B826A822021307806F0A0FB58 -:104EB0000120404205F05AFD0120404205F0F6FD78 -:104EC000FFF71CF9FEF7DEFE00F0A4FC01204042D3 -:104ED000FEF7A6FF012006F02BFCF02001F0DCFA23 -:104EE0000121307806F0ACFB307802F0B3FA1A48B2 -:104EF00006F0D6FCFEF7DCFD70BD6422174B5B7933 -:104F000053431A000A32CBE7EC61FF1F694B0011D3 -:104F1000654C00115043FF1F8861FF1FA861FF1FF0 -:104F2000DA42FF1F6509FF1FADAC00004064FF1FA0 -:104F30001664FF1F3842FF1F1942FF1FEA63FF1F5D -:104F4000CB63FF1FBC63FF1FCC61FF1FC061FF1F4E -:104F5000C4090000CE090000EE61FF1FD061FF1FF1 -:104F6000F8B50A0020230D001A40194257D0574BBC -:104F70001B78002B50D0FFF7EDFA554B554C564E91 -:104F800099686268737A8A1ADB039A4202D3616075 -:104F9000FEF78EFD327A217A531EDBB2994205D19B -:104FA000FFF764F9002000F0A7FD0FE09142F9D36C -:104FB00000232372FFF784F9012000F09DFD474F85 -:104FC0003800FEF77BFE390006F052FB637A002BB7 -:104FD0001FD0013BDBB26372002B1AD1404BDB7850 -:104FE000552B01D106F024FCE37A002B0CD00023D2 -:104FF0003C4A3A4FE3721388380001331380FEF7BE -:105000005DFE390006F034FB642370795843FFF7E6 -:10501000ADFD237A0133237220206840F8BD0BB226 -:10502000002B0ADA304B187806F062FD002801D018 -:1050300006F0E6FC80200002EFE70224214206D0C1 -:10504000244B01201A72FFF79FFE2000E5E70B07B3 -:105050001ED5FFF77FFA1E4B1E491F4C98684A6801 -:10506000637A821ADB039A4202D34860FEF720FD7E -:10507000FFF726F9FFF7FAF8012000F03DFD00F0F8 -:10508000E3FB2368DB0701D5FEF7C2FF0820C4E776 -:105090001024214206D00D4B1B78002BD5D1FEF7F2 -:1050A00005FED2E70124214207D0104800F06CF839 -:1050B00006F096FB00F006FDC7E704240800204038 -:1050C0002142ABD0FEF7C8FEBFE7C046EE63FF1F2C -:1050D000DC61FF1FC061FF1FD061FF1F1942FF1F6E -:1050E000CC61FF1FB461FF1FEC61FF1FFC41FF1F7C -:1050F000F0B51B4B1B4F1B883A8804001A4E1B4D02 -:1051000085B09A420DD832889A420AD3184B1A8831 -:105110002B889A4205D1174A174B12881B889A424E -:105120001BD0052001F00EFA3B8802AA13803388B9 -:10513000019053802B88114D93800F4B02A91B883F -:10514000D3800F4B2A78188802F02AFF0D4B0821D4 -:105150002878019A1C7006F003FC05B0F0BDC0462B -:10516000BA63FF1F0E42FF1F0C42FF1F0A42FF1FC0 -:10517000B863FF1FB663FF1F0842FF1F1664FF1FBF -:105180001042FF1FB463FF1F13B50C4B1C78002C9B -:1051900011D1002801D00A4B18600A4A0A4B117835 -:1051A0000A4A10780A4A01920A4A0092002205F03F -:1051B00089FA200016BD1124FBE7C0461564FF1FC5 -:1051C000B063FF1F1464FF1F0464FF1F1664FF1FFA -:1051D000F063FF1FF463FF1F10B5064B12201B780E -:1051E000052B06D1044B13221988044B187801F0C3 -:1051F00085FB10BD1564FF1F1042FF1F1664FF1FC3 -:1052000010B500240122114B52421870104B1C7033 -:10521000104B1A8002F01EF904220F4B21001A7065 -:105220000E480C3206F014FC102221000C4806F047 -:105230000FFC07220B4B1C600B4B1C700B4B1C70A4 -:105240000B4B1A700B4B1C7010BDC0461664FF1F31 -:105250001564FF1F1042FF1F1464FF1F0464FF1F2B -:10526000F463FF1FF063FF1FCA63FF1FC963FF1FC3 -:105270001242FF1FC863FF1FF8B5174C06002578C0 -:1052800006A814240078052D23D1B41F134FA5B20E -:105290001824BD421DD88D1FADB2BD4219D8FA25C4 -:1052A0006D00AA4215D21D000D4F0A3DADB2BD42A0 -:1052B0000FD80C4C26800C4C21800C4900240A800D -:1052C0000B4A1380FFF714FF0A4B0421187806F0ED -:1052D000F7F92000F8BDC0461564FF1F790C0000E7 -:1052E000750C00000E42FF1F0C42FF1F0A42FF1FF9 -:1052F0000842FF1F1664FF1FF0B50BB20D0089B006 -:10530000002B00DB70E1A44E307806F0F1FB041EA8 -:1053100050D00378A22B00D122E1D02B1AD0912BB0 -:1053200045D143780E2B42D19C4B82889A423ED184 -:105330009B4A83681278052A39D1032018567F28A2 -:1053400035D0984B1B68002B31D05B68002B2ED0DA -:1053500098472CE08078072829D806F0F1F904282E -:10536000183F3F74A8D86378002B0CD101218C4BD7 -:1053700019708D4B1A78002A5BD08C4B307801F075 -:10538000CFFE002855D00722854B1A7051E0617876 -:105390000029F8D1E378002B11D0854A854B12788B -:1053A000307801F0BDFE60706378002BEBD12000F7 -:1053B00006F026FB80200002684009B0F0BD784B63 -:1053C0001B78022BF3D00121307806F041F9002838 -:1053D000EAD10121307806F033F9E5E76378002B54 -:1053E000D1D16F4F032807D13B78052B02D1013370 -:1053F0003B701EE00223FBE76F4B1A886F4B029352 -:10540000002A0BD01B78002B03D00121307806F046 -:10541000A7FA3B78062B04D1013BE9E7029B1A70FF -:10542000F7E7042B41D10121029B3078197006F077 -:1054300007F95C4B1B68002BB9D01B68002BB6D05A -:10544000574A107884E76378554F002B27D10622FE -:10545000211D5B4806F05CFB62895A4B5A491A8051 -:10546000A2895A4B1A80E3890B800521397058496B -:105470000A80584A1380228A574B1A80574B1B7850 -:10548000012B09D11F2001F05DF8FA22920042435E -:105490000421307806F064FA0022484B75E7312B7E -:1054A00000D070E70022454B1A700323A0E70622C4 -:1054B0000021434806F0CCFA0023454A042113801A -:1054C000444A30781380444A138006F0F9F80821E2 -:1054D000307806F0F5F8A379083B5A425341304A38 -:1054E00003331370304B1B78002B06D0334B3078CE -:1054F0001A78002A06D001F051FE0122314B5242A7 -:105500001A8096E70121197006F09AF8F5E708214C -:10551000307806F0D5F86378002B00D047E72C4BA5 -:105520002D4F0293E388029A04211380294B30788F -:1055300003932389039A138063893B8006F088F8DC -:10554000002800D033E7264B1B68002B00D12EE744 -:10555000039902983A88098800881B68984726E7CB -:105560004379132B00D022E70389012B0AD11D4B6D -:105570001B78022B06D10821307806F0A1F8FFF73E -:105580002BFE14E7052000F0DDFF08210200307833 -:1055900006F0E6F90BE7C0461664FF1F051400008D -:1055A0001564FF1FB063FF1F3842FF1F1942FF1F22 -:1055B000EA63FF1FCB63FF1FEC63FF1FEE63FF1F58 -:1055C000BD63FF1F1042FF1FC463FF1FC663FF1FA1 -:1055D000BA63FF1FB863FF1FB663FF1FBC63FF1FE3 -:1055E000AC63FF1FB463FF1F8020C001014200D0E5 -:1055F000E2E6CB0731D5324B1B78002B1DD0314E64 -:1056000005AC3378052B1AD1023B23702E4B2100B9 -:105610001B7823722D4B1B7863722D4B187801F089 -:1056200023FD002809D007202A4B30701B68002B6F -:1056300003D01B68002B00D098470120BCE60E2049 -:10564000254B06221B7825492370254B1B78637058 -:1056500002ABC01806F05CFAD8E702230800184035 -:10566000194209D0174B1B78052B03D11D4B188805 -:1056700006F046FA02209FE60424214203D0FFF7F9 -:1056800037FD200098E6082308001840194200D191 -:1056900093E6154B1C78012C03D0022C0DD008206A -:1056A0008AE6124B124A134913481B88128809884C -:1056B00000880094FFF7E0FDF1E7FFF78DFDEEE7CE -:1056C000EE63FF1F1564FF1F1242FF1FC863FF1F19 -:1056D0001664FF1FB063FF1FCA63FF1F1342FF1F43 -:1056E000C963FF1F1042FF1FB463FF1F0842FF1F63 -:1056F0000A42FF1F0C42FF1F0E42FF1F10B502A8F7 -:1057000004880B20002C10D14968087849780902D8 -:1057100001430C48814209D1022119800A4B598862 -:105720001170DB7800205BB2537010BD074C0A206B -:10573000A142FAD102211980034B998811705B793B -:10574000F0E7C0466E2A0000B461FF1F6F2A000018 -:10575000F7B5150008AA16884A680F4F14785278D2 -:10576000120222430A24BA4214D10122DBB201926E -:1057700000962A0005F0ACFE041E0BD1074B1B68F7 -:10578000002B07D068782A7800021043424250412B -:10579000013098472000FEBD022900002864FF1F49 -:1057A00030B5012503790400BFB02B4225D0144940 -:1057B000408805F0F9F928420CD0124B01A95B8D05 -:1057C00000220B8002234B800F4B5B888B8060880C -:1057D00002F0DCFA0D49608805F0E6F9C0070CD547 -:1057E0000B4B01A91B8800220B8002234B80064B28 -:1057F0009B888B80608802F0C9FA3FB030BDC046FC -:105800002064FF1F3C42FF1FB461FF1F1864FF1F8D -:105810009642FF1F10B5074C0749200005F07AF9A2 -:105820002000064905F076F90721054A054805F0EC -:1058300033F910BDFFFF00002064FF1F1864FF1F35 -:1058400038BD00113C42FF1F10B5024803F020F99B -:1058500010BDC046A15700110221430888400B40EB -:105860000A31084003430E20024AD17881430B439A -:10587000D3707047AD42FF1F064A1379410705D523 -:1058800080210B4380011371907170477F210B4081 -:10589000F8E7C046AD42FF1F054A5378002803D001 -:1058A00080210B43537070477F210B40FAE7C046BD -:1058B000AD42FF1F0F21114BDA780A40DA705028F1 -:1058C00010D901310A43DA702022D9780A43DA70FC -:1058D0004022D9780A43DA708022D97852420A43AA -:1058E000DA7005E03C28EFD82828F1D81428F3D83E -:1058F0000122D9780A43DA707047C046AD42FF1FD3 -:10590000F8B57F23324D04006E789E43314B9842A8 -:1059100005DD76232B70363B33436B70F8BD2E4B81 -:10592000984203DA58232B701433F5E783B21A0038 -:1059300000215F32294892B2294F297082422DD925 -:10594000A9708C4203DA5B421CB220232B70053411 -:1059500020B20A2106F05CF804B2FA239B009C42B4 -:1059600033DB80232A785B4213432B7064212000B1 -:1059700006F04EF80A2100B205F02AFE09B22A7894 -:105980007B5C13432B700A21200006F041F80A21AA -:1059900000B205F01DFE09B27B5C0AE08022AA700D -:1059A000002CDADA5B421CB220232B705F23092C17 -:1059B000E9DC1E430A2120006E7005F009FE09B2E1 -:1059C000AA787B5C1343AB70A8E7632CCEDCEDE7D1 -:1059D000AD42FF1F1B4E00001DFCFFFF2A08000008 -:1059E00062BD00117F23F7B5194FCD013E79040048 -:1059F0009E433E71EDB2632806DD093B33433B71A4 -:105A000040231D437D71F7BD0300093304DA582399 -:105A100033433B716C23F4E70E4B019300280BDA00 -:105A20000423444224B23B710A21200005F0D0FD3A -:105A3000019B09B25B5CE4E70928F5DD0A2105F06A -:105A4000E7FF019B00B21B5C1E433E71ECE7C046C2 -:105A5000AD42FF1F62BD0011F8B50A4F05003B784B -:105A60000E00002B0CD0084C2000FEF73DFC33004C -:105A70002A0020003978FEF72BFD2000FEF772FC8B -:105A8000F8BDC0463464FF1FB442FF1F70B50A4E14 -:105A90000A4D07223100280005F0F2FE002809D047 -:105AA000074C31000722280006F032F808212000B8 -:105AB000FFF7D2FF70BDC046AD42FF1F2D64FF1F30 -:105AC0002C64FF1F7F2210B50A4B59789143033A8B -:105AD0001A70103A0A435A7078220E219A70DA78B6 -:105AE0008A43DA7006221A7130325A71FFF7CEFFFC -:105AF00010BDC046AD42FF1F10B5002824D0134C86 -:105B00000A210223E05E05F083FF00B2FFF7F8FEF2 -:105B10000423E05E642105F07BFF012100B2FFF762 -:105B200061FF207AFFF7C6FE0320FFF795FE0020F5 -:105B3000FFF7A2FE064B1878053843425841C0B221 -:105B4000FFF7AAFEFFF7A2FF10BDC046B461FF1F1A -:105B50001564FF1F70B50024094D2800AC71FEF7D5 -:105B6000C3FB10233E212800064AFEF7B1FCA042E9 -:105B700000D13E34044B28001C70FEF7F3FB70BDCF -:105B8000B442FF1F52BD00113464FF1F0200F0B584 -:105B900001270A480A4E51188B1A002B00DCF0BD71 -:105BA000082415784308684038404000805B013C79 -:105BB00058406D08002CF5D10132EDE7FFFF0000E1 -:105BC00072BD0011F0B500250F269D4200DBF0BD2F -:105BD0004C5D070944403440A400A058013578408A -:105BE000F3E70000F0B589B06A460D000B000F27FF -:105BF000110010351C780133260024093E40167030 -:105C000054700232AB42F5D12023024AFFF7DAFF8B -:105C100009B0F0BD78BD0011F0B54E780B7889B0B1 -:105C200036020C00170001901E43012A61D9954BE2 -:105C30009E4200D877E001339E421CD1062A17D13C -:105C4000CA788B7812021A430B791B0413434A79E2 -:105C500012061A438C4B5A6100221A705A808B4AE2 -:105C60005A608B4A9A608B4ADA60002009B0F0BD16 -:105C700088225205EEE7884B9E423CD182498B78C0 -:105C8000002B00D0F6E00C2A31D10F22A3789343E9 -:105C9000E278120213432279120413436279120646 -:105CA00013434B60E279A07912020243207A000488 -:105CB0001043627A12060243CA60E27AA07A1202A4 -:105CC000024376484A81834208D804236E4914224D -:105CD00001980B7005F01CFF1420C7E71201D218C1 -:105CE00089235B059A42F0D801238B70BDE7022A15 -:105CF000FAD00523EAE76A4A01239642E6D1FFF784 -:105D00006BFA052F0CD9E378A2781B021343227992 -:105D100012041A4363791B061343624A0393136008 -:105D200005F086FDA1E7584D2B78002B9DD1AB786F -:105D3000002B00D1A0E02B8901339BB20093B3422A -:105D400000D091E0132AD4D9CF7C8B7C3F02122162 -:105D500020001F43FFF71AFF874200D08EE0002E7D -:105D60003DD1E378A2781B0213432279E96812043B -:105D70001A4363791B06134303930A228B4212D101 -:105D8000FF23A370E370237163716B89002B09D12A -:105D9000E37B227C1B0212041343A27B13431B09E7 -:105DA00001336B8100226B89002B8ED0002A67D1D2 -:105DB000686837013818000B6B690003039098423C -:105DC00005D9686105F0FCFDEB780133EB7068687C -:105DD0001022A11C381805F0CBFE2E8145E76F89F3 -:105DE000009A7B1E9BB293423AD1E278A3781202CA -:105DF0001A43237905A81B04134362796C681206C1 -:105E00001A43EB6800920392211D0C22049305F0C3 -:105E10007FFE0120260004A940421036FFF7E2FE73 -:105E2000013F012F17D1009A0B232861824200D035 -:105E30004CE704221C49200005F09AFE042203A925 -:105E4000686805F03DFEE968039AFF23914200D19E -:105E50003CE7F73B3AE73100FFF7C4FE1036DFE7D7 -:105E60000923B742A4D831E7009BB34200D9FCE62E -:105E700007232BE7022329E7032327E7062325E748 -:105E80000A2323E7FFFE0000BC42FF1F00000111B0 -:105E9000FFFF00005048593601FF0000FFFF0011CE -:105EA00002FF000034F00040C842FF1F10B5034C51 -:105EB0000B000122210000F06BFA10BD6D60001193 -:105EC0000B8870B506000D000224162B11D92B008B -:105ED0000322094900F05CFA041E0AD1074B2A8804 -:105EE0001B88191C934200D9111C300089B200F0A4 -:105EF000EFFA200070BDC046996000115A64FF1F80 -:105F000010B54A780400013A0B000220012A07D894 -:105F10000A78002A04D005222000024900F038FA4D -:105F200010BDC046C76000110A7810B50B00040010 -:105F30000220002A04D007222000024900F028FA9B -:105F400010BDC046736100110A7810B50B00040043 -:105F50000220002A04D009222000024900F018FA89 -:105F600010BDC046D961001110B5034C0B000B22C7 -:105F7000210000F00DFA10BD0962001110B5034CAC -:105F80000B000D22210000F003FA10BD7B6200110E -:105F900010B5034C0B000F22210000F0F9F910BDE1 -:105FA000D56200110A7810B50B0004000220002A07 -:105FB00004D011222000024900F0EAF910BDC046C9 -:105FC000E5620011002310B51322190000F0E0F97A -:105FD00010BD000010B5034C0B001722210000F08B -:105FE000D7F910BD37630011002310B5192219002D -:105FF00000F0CEF910BD000010B5034C0B001B22C1 -:10600000210000F0C5F910BD71630011F7B5848956 -:106010000D0006000121002C22D000238268D356F7 -:106020001778002B1EDA0C2C1AD90C3CA4B21319C9 -:1060300040880093230002F086FE431E9841013001 -:106040007B06DB0F6B703F23013C1F40A4B228701E -:10605000AF70AC80002C07D0B3680133AB60002177 -:106060000800FEBD0020EBE7AC60F8E70B7803709A -:106070004B8843704B881B0A83700B79C3700420D4 -:1060800070470420022B06D10020537811781B02A0 -:10609000009A0B43138070470B8803700B881B0A10 -:1060A0004370022070470420009983420AD153783C -:1060B00010781B0203430B80D37890781B020343B4 -:1060C00000204B807047F8B50D004B78012400216B -:1060D000461C03702B788B4201D82000F8BD6B78EA -:1060E000B01C4F1C012B10D1890069184B8802226B -:1060F00033704B88B9001B0A7370691805F068FC8F -:1061000004360434A4B2F9B2E4E7122359436B18FD -:106110005A88043132705B8810221B0A7370691828 -:1061200005F056FC12361234ECE770B5049D1400ED -:106130001E00052B01D8042070BD637812781B0265 -:1061400013432B80E378A2781B02134302226B8057 -:106150002A71211D681D063E05F03AFCB2B22A8163 -:10616000E92AE8D82800A11D0A3005F031FC0020FA -:10617000E2E7002310B50A789A4201D8900010BDDA -:106180009A008A185488013304705488DBB2240AB8 -:106190004470948884709288120AC2700430EAE7CE -:1061A00010B51100029C062B04D004201022142BE1 -:1061B00001D010BD022222714B7808781B020343E4 -:1061C0002380CB7888781B02034363800431601DF1 -:1061D00005F0FEFB0020ECE710B50C788B7804315D -:1061E0005C43E4B203702200013005F0F1FB601C57 -:1061F00010BD0420022B06D10020537811781B0219 -:10620000009A0B431380704710B50C000A880231C6 -:1062100005F0DEFB208810BD70B504000D00049869 -:106220001100012B01D8042070BD1678527812029B -:10623000324302800200F13255701470E125002CC7 -:1062400000D10C35023B9AB24280AA42EBD802310F -:10625000043005F0BDFB0020E6E7042000998342EE -:106260000AD1537810781B0203430B80D3789078BF -:106270001B02034300204B80704710B50C000A88B6 -:10628000023105F0A5FB208810BD000070B501218A -:106290001E000420049C0E400B4218D1CB40DDB2FE -:1062A0008D4214D90A49DBB2098899420FD32300E1 -:1062B000EE331D703300580011184978165C09023E -:1062C000314301332152D9B28D42F4D8002070BD40 -:1062D000D442FF1F10B50C000A88023105F078FB8C -:1062E000208810BD10B50C788B7804315C43E4B283 -:1062F00003702200013005F06BFB601C10BD10B56F -:1063000011000298032B01D8042010BD1478527894 -:10631000043B120222430280CA788C781202224384 -:1063200042809AB28280EB2AEED80431063005F022 -:106330004FFB0020E9E710B50C000B8803700B88B9 -:106340001B0A43704B8883704B881B0AC3708A8872 -:106350000430063105F03CFBA088043080B210BD4B -:106360000420012B03D100201378009A137070478A -:1063700010B50C000B8803700B881B0A43704A8809 -:106380000230043105F024FB6088023080B210BD79 -:10639000F0B589B003931E4B029242000700D05A19 -:1063A000019102F020F81325061E2DD0029B012436 -:1063B0000370019B002B04D0001903999847001922 -:1063C00084B26B461B7A5BB2002B0FDA10213800C7 -:1063D00002F01CFB1925002813D130003219E1B25C -:1063E00002F066FC051E0CD10C34A4B2042304AAEE -:1063F000380005A993800696948101F0AFFD051E33 -:1064000002D0300005F0D4F9280009B0F0BDC04634 -:106410005864FF1F70B505000C0000280CD0002048 -:10642000814209D010222000044905F0D1FA012050 -:106430002B7823736B78637370BDC046B8BD0011B1 -:10644000F0B506000D0017001C0085B002291BD016 -:106450000020102907D1022B07D0102B03D115E003 -:106460000020102C08D005B0F0BD69463800FFF7B9 -:10647000D1FF2A0069460BE069463000FFF7CAFFEA -:1064800022006946380004E0022BE9D12A003900D5 -:10649000300005F025F9E6E7031CF02800D9F023C9 -:1064A000032008499AB2013A0B80D31703400649EA -:1064B0009B189B100B80D30F04499B185B100B801B -:1064C0007047C046D842FF1FD642FF1FD442FF1F6D -:1064D000034B1B888B4202D3024B4000C1527047D2 -:1064E000D842FF1F5864FF1F014B4000185A7047E5 -:1064F0005864FF1F1722014B1A8070475864FF1F12 -:1065000070B505000E2005F003FA041E13D0D02349 -:10651000037000230622837007494570033005F09D -:1065200057FA064B2100DA8A62811B7E2373044BE3 -:10653000187805F04DFB70BD7464FF1F6464FF1F85 -:106540002843FF1F262803D8024B4000C05A70473B -:106550000148FCE7DA42FF1FFFFF000070B50600AC -:106560000C00094D1C220021280005F071FA074B90 -:106570001E70074B1C7005F09BF90123002801D009 -:10658000002312202B7070BD6464FF1F2843FF1F7F -:106590008564FF1F70B505000D4C0800E260A16026 -:1065A00010220021656005F003FB012803D11021B2 -:1065B000A06802F058FD10220021280005F0F8FA2A -:1065C000012803D11021606802F04DFD70BDC04666 -:1065D0006464FF1F70B5041E05D1002903D0062294 -:1065E0000D4805F0F5F90D4B1D78012D11D1002C4A -:1065F00005D102221A7005F02BF9280070BD002287 -:106600001A70074B1B78FF2BF7D02000FFF778FF9D -:10661000F3E70025F1E7C0467464FF1F6464FF1FC1 -:106620002843FF1F030010B5002801D1002010BD32 -:1066300000780B4A002803D15988D1821B79137640 -:106640001378022BF2D10023984200D10333137048 -:10665000044B1B78FF2B01D0FFF752FF0120E6E728 -:106660006464FF1F2843FF1F002911D000280CD0AD -:106670004B79012803D140225242134303E03F22C9 -:106680001340032802D001204B7170474022F4E7E9 -:106690000800FAE770B5094D0100287800280BD0F2 -:1066A000074C0622200005F093F921002878FFF717 -:1066B000DBFF200005F094FA70BDC0468464FF1F24 -:1066C0005E64FF1F00290AD0012808D13F224B79C0 -:1066D0009343C02B03D0403B5A425341981C704710 -:1066E00070B5174D06002B78FF2B15D00A2005F04A -:1066F0000FF9041E10D0D0230370C83B8370114BD8 -:1067000011491B784670C3700622043005F060F909 -:106710002100287805F05CFA0C4B1B78012B0DD179 -:106720000B4B1B68002B03D09B68002B00D09847B5 -:10673000084B04211878084A04F0BAFF70BDC0461F -:106740002843FF1F8464FF1F5E64FF1F8064FF1FD8 -:10675000AC64FF1FB064FF1F60EA0000014B986843 -:106760007047C0466464FF1F014BDB6818687047C0 -:106770006464FF1F074B10B5DA68136801331360B8 -:10678000054B1878FF2803D08021C90104F058FF79 -:1067900010BDC0466464FF1F2843FF1FF7B50E00FD -:1067A00002F0C8F8051E1CD00E4B06621F78002FA1 -:1067B00000D10778AB791020019305F0A9F8041EE9 -:1067C0000FD0D0230380C73B8370019BE91DC370AA -:1067D0000622043005F0FCF821003800E66005F0E0 -:1067E000F7F9F7BD2643FF1F014B18787047C046E5 -:1067F0008464FF1F054B002805D1054B1A78054B13 -:10680000002A00D1014B18007047C0467464FF1F76 -:106810008464FF1F5E64FF1F014B58687047C046C9 -:106820006464FF1F024B1868431E9841C0B2704752 -:106830008864FF1F421E03000120152A03D9FF3B75 -:106840005A425341D8B27047F0B51C0000230E00E5 -:1068500085B0039002920B70029A934201D30020FC -:1068600019E0E55C5A1CD2B2002DF8D002985119FB -:106870008142F4DC0233DFB2A35C18000193FFF71E -:10688000D9FF002807D0013D019A0399EBB233707C -:106890008A4202D1E01905B0F0BDDB19DBB2DBE7BB -:1068A00010B50C0002F09EF803001220002B03D05C -:1068B0002100588805F014F910BD000070B50E4D88 -:1068C00084006359002B15D0186A002801D004F009 -:1068D00057FF2B59586A002801D004F051FF2B595B -:1068E000986A002801D004F04BFF285904F048FFB3 -:1068F00000232B5170BDC0469464FF1F1C4B70B524 -:1069000004000E00150099420AD11A4B1B68002B97 -:1069100001D1122070BD1B68002BFAD09847F9E70F -:10692000154B994215D1134B1B68002B0AD01B68DD -:10693000002B07D09847002804D1104B1C70104B37 -:106940001D70E7E729002000FFF7AAFF0028E1D12A -:10695000F3E7080001F0EEFF0028DAD00378032007 -:10696000A342D7D12900300005F0BAF8D2E7C046DB -:10697000FEFF00009064FF1FFFFF00008D64FF1FFB -:106980008C64FF1FF7B50400808801F0D3FF002559 -:10699000A84203D00578A08802F008F81C4E33788E -:1069A000002B1FD0AB421DD11A4B28001978FFF7DE -:1069B00077FF002818D000233370A3790820A77828 -:1069C000A688019304F0A4FF011E0DD0D02303700C -:1069D000CA3B8370019B477086808371280005F055 -:1069E000F7F801E0002DE8D1A0880B4B8200D358C6 -:1069F000002B01D0FFF762FF1721A088FFF768FD89 -:106A0000A08801F027FDA08801F0FEFDF7BDC0467B -:106A10008D64FF1F8C64FF1F9464FF1FF0B587B067 -:106A20001D000CAB1B88070001930DAB1B881420C5 -:106A300002930EAB1B88160003930FAB1B880091CB -:106A4000049310AB1B88059304F062FF041E1AD058 -:106A5000D0230370CB3B47708370C6700622290099 -:106A60000430002D11D004F0B3FF019B210063819D -:106A7000029B0098A381039BE381049B2382059BD7 -:106A8000A37405F0A5F807B0F0BD04F0E1FFECE752 -:106A9000F7B5009308AB1B8807000C200D0016000B -:106AA000019304F035FF041E13D0280001F042FFCB -:106AB00000280FD00078D0232370C93BA370009B1F -:106AC00021002381019B6770A580E680638105F02A -:106AD0007FF8F7BD014B1878EDE7C0462843FF1F4C -:106AE00013B5040064890389C2888188C078009442 -:106AF000FFF7CEFF13BD000010B5044C206800283E -:106B000003D004F03DFE0023236010BD9864FF1FF6 -:106B1000A122F0B5818892004A43384B384F1B6858 -:106B200004009B189D2292009B18827989B01A60FC -:106B30003B68002B5FD01D78324B1B68002B04D0C4 -:106B40005B68002B01D000209847260008363100F2 -:106B5000E079FFF7B7FD237DE0710200E078049350 -:106B6000638A29000393238A0293E3890193A3880C -:106B700000933300FFF752FFE378002B0BD1E2893B -:106B8000A379A18802920196E2792800009201225D -:106B900001F0DAFEE0703B68002B20D0FFF7ACFF7D -:106BA000194D287800281AD0184B1978FFF778FE6D -:106BB000002814D02B78E67808200793A78804F0E3 -:106BC000A7FE011E09D0D0230370CA3B4670837014 -:106BD00087808671079804F0FBFF00232B70172134 -:106BE000A088FFF775FCA08801F034FCA08801F0B4 -:106BF0000BFD09B0F0BD064B9DE7C0463409FF1FF1 -:106C00009864FF1FAC64FF1F8D64FF1F8C64FF1F1F -:106C10002843FF1FF8B5070008000E0001F08AFEA8 -:106C2000041E18D02620FFF78DFC051E00D1257804 -:106C3000062004F06DFE041E0DD00021062204F093 -:106C400007FFD0232370C23B21006770A370A6808A -:106C5000E8B204F0BDFFF8BDF0B585B001930AAB12 -:106C60001B78070002930BAB1B7808000D00009205 -:106C7000039301F05FFE061E22D0102004F048FEB0 -:106C8000041E1DD01022002104F0E2FE2620FFF792 -:106C900059FC002800D13078D0232370C13BA37069 -:106CA000009B21002372019B67706372029BA58089 -:106CB000A372039BC0B2E3720C9BE36004F088FFF5 -:106CC00005B0F0BDF7B50D00019001F033FE071ED1 -:106CD00020D00E2004F01CFE041E1BD02620FFF73F -:106CE00031FC061E00D13E78D0232380C53B06220E -:106CF000A370F91DE01C04F06BFE019B2A00638168 -:106D00000123DD401A401D40210022736573F0B25B -:106D100004F05EFFF7BD0000F0B585B002901000F2 -:106D20000D0017000A9E039301F004FE041E31D0EB -:106D3000029B002B2ED1039B02795B0724D51223E3 -:106D400013430422002E08D10B99002905D10C9978 -:106D5000002902D10D9900291AD01A430D9B2271E6 -:106D6000002B00D0C9E0002E00D1CFE0002D00D0D4 -:106D7000CCE0606A002801D004F002FD1C21300044 -:106D800004F0E6FE606205E002239A430E33D7E783 -:106D900093432371654BBA00D458002C00D1AAE06C -:106DA000002E10D0236A002B03D11C2004F070FEAB -:106DB00020625E4BBA00D358186A002803D01C2208 -:106DC000310004F005FE0C9B002B12D0574CBB0089 -:106DD0001D596B6A002B03D1162004F059FE68621E -:106DE000BB00E358586A002803D016220C9904F01F -:106DF000EFFD0D9B002B11D04C4DBC006659B36AC2 -:106E0000002B03D1142004F043FEB0622B59986A82 -:106E1000002803D014220D9904F0DAFD380001F0A7 -:106E200089FD051E67D0414BBA00D358002B62D0B4 -:106E30001A6A3420002A00D11C389A6A002A01D02C -:106E4000143080B20B9A002A01D01C3080B25B6AE9 -:106E5000002B01D0163080B204F05AFD041E4AD037 -:106E60001822002104F0F4FD2620FFF76BFB0190AF -:106E7000002801D12B780193D0232370029B20009E -:106E800063700A23294EA370039BBD00A371AB5905 -:106E9000A780196A1830002905D01C22A06004F0D0 -:106EA00097FD200034307359996A002907D00300F8 -:106EB00014221433E060029304F08AFD02980B9BC5 -:106EC000002B08D003001C221C330B992061029375 -:106ED00004F07EFD02987359596A002903D01622E6 -:106EE000606104F075FD6B462100187904F070FEB6 -:106EF0003800FFF7E3FC05B0F0BD10220D9B0D99A3 -:106F00001B69A018236204F063FD2CE70B9B002B88 -:106F100000D13FE7012D00D03CE7606A002801D096 -:106F200004F02EFC1C210B982AE7C0469464FF1F36 -:106F300010B5044C2068002803D004F021FC002385 -:106F4000236010BD8864FF1F0B4B07B51A68002A29 -:106F500001D100200EBD6946531C01201278073173 -:106F6000FFF772FC0028F4D00278012310001840CB -:106F70001A42EED0EEE7C046A464FF1FF0B51F4FE3 -:106F800001203B6887B0002B25D09B78059300F04B -:106F9000B3FB002821D00A20FFF7D4FA04000B200D -:106FA000FFF7D0FA164B05001E78731E9E413B6812 -:106FB000F6B2191DD878FFF757FB3B682900DA7A3B -:106FC000043303929A7901930292009033002000D7 -:106FD000059A04F085FC07B0F0BDFFF7B5FF002867 -:106FE00005D00620FFF7AEFA04000720D8E70820F6 -:106FF000FFF7A8FA04000920D2E7C0468864FF1F03 -:107000008464FF1F70B50A4E040033780D00FF2B17 -:107010000DD0042004F07CFC011E08D0D0230370A6 -:10702000CE3B45708370C470307804F0D1FD70BDE4 -:107030003843FF1F70B5040006200D0004F068FC03 -:10704000011E0AD0D0230370CD3B8370054B4470E2 -:107050001B688580187804F0BBFD002C01D0FFF779 -:1070600067FF70BD8864FF1FF8B5264F06003B68B8 -:107070000D001124002B05D10522234B1B78134250 -:1070800002D112242000F8BD204A10241268002AE0 -:10709000F8D01278002AF5D0DB0719D52B789A1E84 -:1070A000012A1AD80C2004F0F3FC132438600028BD -:1070B000E8D000230A22437029000670023004F051 -:1070C00087FCFFF75BFF041E0AD0FFF731FFD9E70B -:1070D00000F012FB0028E1D1E4E7002BE2D0D0E77A -:1070E0000B4B1B78032BCDD11D20FFF72BFA094B3F -:1070F00018800028C6D0084B04211878074A04F0ED -:10710000D7FABFE78864FF1F8564FF1FA464FF1FD1 -:107110008464FF1F8264FF1FB064FF1F60EA0000E9 -:10712000F7B50193194B14001A78052306000F00D8 -:1071300012201A4221D0012920D1154B1D68002DA3 -:107140001BD002201F2C18D8002C02D0019B002B32 -:1071500013D0104B1F221E706E1C0021300004F053 -:1071600077FC01992200300004F032FC310020004D -:107170002C70002F06D004F0D3FBFEBD064B12206E -:107180001D68DCE704F06CFBF7E7C0468564FF1F71 -:10719000A464FF1F3843FF1FA064FF1FF8B50F4E04 -:1071A00012243368002B17D01B780F3C834213D175 -:1071B00000250B4F0221387804F082FA094B042194 -:1071C00038781D8004F07CFA074B28001D80336856 -:1071D0005C7004F075FB04002000F8BD8864FF1F9C -:1071E000B064FF1F9C64FF1F8264FF1F70B50128FD -:1071F00023D11B4C2388002B03D01A4A1578002D6D -:1072000007D0194B1B68002B02D01878FFF7C6FF78 -:1072100070BD3B2B02D93C3B2380F9E7134E022182 -:10722000307804F04DFAFA222388920002215A4362 -:10723000307804F095FB2580EAE70B4B1B68002BA8 -:10724000E6D00B4B1B785B07E2D5084B0221187880 -:1072500004F036FA0022024B1A80FFF769FED7E7E6 -:107260009C64FF1F8064FF1F8864FF1FB064FF1FC2 -:107270008564FF1FF8B51E4D2868002803D004F070 -:107280007FFA00232B601B4E3068002803D004F0E7 -:1072900077FA00233360184F05243B78180020400C -:1072A000234221D0154800F02BFA3B78234213D01B -:1072B000202004F0EDFB2860002813D020220021BC -:1072C00004F0C6FB202004F0E3FB041E306005D070 -:1072D0002022002104F0BCFB002004E0286804F018 -:1072E0004FFA2C601320F8BD00F00AFAF4E7C0460C -:1072F000A464FF1FA064FF1F8564FF1F2C43FF1FB2 -:1073000010B50A4C23681A1E0ED0002808D101308F -:10731000587004F0D5FA002805D02368002B02D05D -:107320000021FFF787FE0122100010BD8864FF1FB7 -:10733000F7B5274E050033680191181E21D05C78FF -:10734000244F012C30D1FFF7FFFD002825D020006D -:10735000FFF7F8F80400412814D91F4B02211878D0 -:107360001E4A04F0A5F91E4B3C3C1C8002223368E7 -:107370005A703B78002B14D128000199FFF75AFE70 -:107380000120FEBDFA2292004243002AEED0124BA9 -:107390000221187804F0E4FAE8E7FFF7D3F80200D6 -:1073A000F3E700233B70EBE73B78002BE8D10320A9 -:1073B00004F0AEFA011E08D0D0230370CC3B457018 -:1073C00083703368187804F003FCFFF7B1FDD7E74A -:1073D0008864FF1F8064FF1FB064FF1F60EA000025 -:1073E0009C64FF1F10B51749838802008B4220D090 -:1073F00011D815498B4217D0144900205B1899B257 -:10740000012907D8926811785A425341D8B2FFF740 -:10741000F9FD012010BD0E4A00209B1807229BB2E7 -:107420009A424041C0B2F5E783681878FFF768FFD9 -:10743000F0E7836899785A78090218781143FFF7C2 -:1074400077FFE7E70A20000006200000F8DFFFFFD3 -:10745000AFDFFFFF014B18707047C0463943FF1F75 -:1074600010B5064C207001F041FA207804F0D0F9F4 -:107470000521207800F062FD10BDC046B064FF1FFA -:107480000BB273B50D00002B00DBC4E0884B1878FD -:1074900004F02EFB041E0ED00378912B0FD0A22BEC -:1074A00000D1A1E0834B1878FF2852D0210004F0CE -:1074B0008FFB00284DD180200002684076BD4378C4 -:1074C0000F2B76D013D8052B70D00E2BEAD18088E5 -:1074D000794B98422BD8794B98421BD8784B9842DD -:1074E000E0D1A3681878591CFFF774F838E03E2BF8 -:1074F000D8D18378032B74D06CD8012B6ED0022B9B -:10750000D0D1704B1B68002B23D05B68002B20D0A0 -:1075100098471EE06C4BC0180C28C3D804F078F8CC -:107520001DC2C2150BC20B0B0B3223C23C00674BB2 -:10753000C0180728B6D8664B1B68002B09D01B68FB -:10754000002B06D0200098470AE0A3681878FFF7C0 -:10755000C7F8200004F054FAADE7A068FFF762F81E -:1075600000289FD0F5E7A3681B78002BF1D0554B7E -:107570001B68002BEDD01B68002BEAD0210055487A -:107580009847EDE74F4B1B68002BE2D01B68002BA0 -:10759000DFD021005048F3E7504B1B68002BD8D0B8 -:1075A0005B68002BD5D021004348E9E7FFF7EAF9F3 -:1075B000CFE780884A4B984203D04A4B984200D08C -:1075C00070E7464B1B68002BC3D05B68002BC0D014 -:1075D0002100D5E7153B012BBBD963E7FFF798FAEC -:1075E000B7E7FFF77DFAB4E73F4B1B78042B07D1D1 -:1075F00000236A4613800179408800F0C5FCA8E7A3 -:10760000364B1B68002BA4D05B68002BA1D0010077 -:10761000364898479DE7012421420AD0294B1B6830 -:10762000002B04D05B68002B01D00020984701207C -:1076300043E78B070AD5264B1B68002B04D05B68F9 -:10764000002B01D020009847022036E704212800B3 -:1076500008400D4200D131E7254E3388002B21D060 -:10766000013B9BB23380002B1AD1FFF7DBF80028D7 -:107670000AD0204B1C70164B1B68002B04D05B6893 -:10768000002B01D020009847FFF7C6F8694601F0AB -:1076900001FD6846FEF7FEFF1D20FEF753FF308018 -:1076A00004200AE7024B187804F00AF8F8E7C0460D -:1076B000B064FF1F3943FF1F0E20000001200000AF -:1076C00009100000A864FF1FFEDFFFFFAFDFFFFF10 -:1076D000AC64FF1F0C2000000B2000009064FF1F13 -:1076E0000D200000132000008564FF1FFFFF000035 -:1076F0008264FF1F8064FF1F10B501F09BF910BD6D -:10770000014B18607047C046AC64FF1F0B88002017 -:10771000162B01D817230420014A13807047C04656 -:107720005A64FF1F00207047074A030011888142F6 -:1077300007D091880020994202D1013080001018B2 -:1077400070470020FAE7C046B864FF1FF0B58F7895 -:1077500006000D00C5B01E2F15D1FFF7E5FF051E71 -:1077600003D10024200045B0F0BD00223B003100D1 -:10777000C078009200F0B2FB0400A81C00F0D2FB1D -:10778000FF23EB70EEE7264B062403931B78FF2BB9 -:10779000E8D0182FE6D87B08224A013BDB00029292 -:1077A0009A589446002ADDD0029AD3185B68002BC1 -:1077B000D8D00878002802D14B78012B02D10624BA -:1077C000122FCFD107AFAB88697800976446AA68BB -:1077D000A047041EC6D1AB78029A5B08013BDB00D0 -:1077E000D318390030005B689847041E0BD1AB7882 -:1077F000042BB6D0039A310010782200009700F0D5 -:107800006DFB0400AEE76A78002AABD1AA7805A91F -:107810003B88087130000A704B80FEF747FBA0E7F9 -:107820003C43FF1FC8BD00111D4B37B505009842F2 -:107830000BD000290AD1FFF777FF002805D119489E -:10784000FFF772FF002800D0058037BD01291AD14B -:10785000FFF76AFF041EF8D001235B420380A37880 -:10786000FF2BF2D0FE2B07D00023E07814220093E8 -:1078700029001E3300F032FBA01C00F053FB012353 -:107880005B426380E1E70229DFD1013901F0BEF8F4 -:107890000028DAD12800FFF747FF041EDFD1D4E724 -:1078A000FEFF0000FFFF0000022210B5074B52420E -:1078B0001A80074801325A809A80DA8000F07EFAF6 -:1078C000044801F025F8002010BDC046B864FF1F31 -:1078D0004D770011297800110388F7B50400002BBB -:1078E00002D102252800FEBD4268022113782548F6 -:1078F0005268FEF7A5FD00282ED0234F01253A88B7 -:10790000002AEFD0802321885B0201259B1A99422F -:10791000E8DC0C2004F0BCF8061E31D03B8822883D -:107920009C4600231800019561469DB2491989B211 -:10793000AA421BD8002801D062443A8000233000BC -:10794000082208C0210004F043F8104A1368002BF5 -:1079500013D100251660C5E76268022113780C4830 -:107960005268FEF76DFD0028C7D1BAE760681D01B7 -:107970004019418101330198D6E71A001B68E6E7F8 -:107980001325AFE736BE00113A43FF1FB464FF1F53 -:1079900034BE0011014B18707047C0463C43FF1FB6 -:1079A00014230A0010B51A40194204D001221021F4 -:1079B00001F048F810BD4B06F9D40120884340007F -:1079C000F8E710B514008B0604D50122102101F050 -:1079D00039F810BD08230A001A40194202D14BB2EF -:1079E000002B0FDA102101F02DF8002808D0230019 -:1079F000F2331B78002BECD0F1342378012BE8D143 -:107A00000020E6E703208907FAD4E2E7F0B51F007B -:107A1000184B85B01C68019002910392002C27D16D -:107A2000200005B0F0BDA5683301ED186B89019AFF -:107A3000934211D3029A93420ED8002F04D10A9B8D -:107A4000002B10D12C00EBE73B002978039A6868E3 -:107A5000FEF7F6FC0028F2D10136B6B2A388B34295 -:107A6000E1D82468DAE7A3680A9A5B891380E9E71A -:107A70000026F3E7B464FF1F37B50C000A88498875 -:107A80000123914217D3002A15D0651D23792A00BE -:107A900002210A48FEF7D4FC102300280BD02379DA -:107AA0006188208800242A000094FFF7AFFF0A2392 -:107AB000A04200D0230018003EBDC04636BE0011D3 -:107AC00013B50A0008884988012388420BD800288A -:107AD00009D00024137905320094FFF797FF0A2399 -:107AE000A04200D02300180016BD13B50A00088874 -:107AF0004988012388420BD8002809D00024137933 -:107B000005320094FFF782FF0A23A04200D0230031 -:107B1000180016BDF0B58BB003904A8808880E0097 -:107B20000123824255D3002853D00023012704ACFF -:107B300023700022718813000092FFF767FF051E73 -:107B40003ED02078002835D12B78022B18D16770D1 -:107B50006A8983000130E31880005A806968022234 -:107B6000201803F035FF23780133DBB22370042B98 -:107B700019D93B006889013080B2002BD9D01FE0B1 -:107B800002236370122358436A89231804305A80F1 -:107B900069681022201803F01BFF23780133DBB241 -:107BA0002370002BE5D10C4A6B899B185A42534134 -:107BB000DBB2DFE76378012BE4D12B78022BC7D04F -:107BC00022780A23002A04D021000398FEF798F9AE -:107BD000002318000BB0F0BD0100FFFF0F4BF0B504 -:107BE00004001868002816D083685D89A54207D86C -:107BF0008288AE18B44203DA12019A18934201D176 -:107C00000068EFE71E005F891036A74204D1002903 -:107C100000D00D801800F0BD3300EFE7B464FF1F03 -:107C200070B505000C0008880021FFF7D7FF03009E -:107C30000120002B04D022002800197AFFF7C1FE92 -:107C400070BDF7B50C00002501902300EE331B78C2 -:107C5000AB4201D800200AE06B00E65A0021300058 -:107C6000E718FFF7BBFF002802D126800130FEBDD8 -:107C7000017A0198FFF794FE002802D03B88238008 -:107C8000F5E70135EDB2E0E710B504000888002102 -:107C9000FFF7A4FF03000120002B03D02000197A76 -:107CA000FFF77EFE10BD0000054B1B68002B01D1C5 -:107CB000180004E09A6852898242F6D19888704789 -:107CC000B464FF1FF0B50E27002687B0039302AB04 -:107CD000FF183E8005001F4B40891400984207D0D2 -:107CE0002B78013000976A6880B2FFF78FFE06009C -:107CF00002212B7818486A68FEF7A2FB00280FD0F3 -:107D00006C892000FFF7D0FF002802D0013C041945 -:107D1000A4B2039B002B00D01C80300007B0F0BD44 -:107D200002212B780D486A68FEF78AFB0028E7D10C -:107D300002212B780A486A68FEF782FB002807D0E8 -:107D4000002EDED03B88A342DBD17489013CDFE703 -:107D50006C89DEE7FFFF000036BE001134BE001163 -:107D600032BE001110B50C00FFF7DEFC030002204C -:107D7000002B0AD0002C00D023609B781720FE2B0C -:107D800003D00138FF2B00D1002010BD73B50D00CA -:107D900001A904001600FFF7E5FF172805D0002E03 -:107DA00004D129002000FEF727F976BD0122102119 -:107DB000200000F047FE0028F3D0F6E7014B1860E2 -:107DC0007047C046C464FF1F37B56B469D1D010058 -:107DD00004000222280003F09BFE2B88B02B0ED15A -:107DE0002379122B09D12300FA331B78012B06D1FA -:107DF0000121608800F0E0F801E01B2BF8D037BDCE -:107E000010B5054B0421187000F098F8FFF74CFDF1 -:107E1000FEF770FB10BDC046C864FF1F0020F0B520 -:107E20000BB20F0087B0834234DA274B187803F087 -:107E30005FFE051E2BD00378A02B25D103AE3100A9 -:107E4000FEF7E4F8041E0BD1B378DB0724D51F4BF3 -:107E500006341B68002B03D0310068889847040063 -:107E6000A868002801D003F0A3FC002C08D1184A10 -:107E7000039B1340174A934206D0B3781B2B03D0C1 -:107E80000121688800F098F8280003F0B9FD8020EF -:107E90000002784007B0F0BD0F4B1B68002B10D0DC -:107EA000310068889847041EDAD07378002BD7D148 -:107EB000B27801A90A704B800C716888FDF7F6FF53 -:107EC000CEE70624F1E7C046C864FF1FC064FF1F69 -:107ED00000FFFF0000011200C464FF1FF7B501900E -:107EE000FC200D0017001E0003F012FD04001320FB -:107EF000002C12D0B02320002370089BF42267705E -:107F0000658026710830002B08D0190003F060FD51 -:107F10002100019803F05CFE0020FEBD089903F0EB -:107F200097FDF5E710B5041E06D00078FD2803D8AC -:107F300003F016FCFF23237010BD00000A1F93B24C -:107F400010B504000220032B05D882400020024B0C -:107F5000D1529B189C7010BDE864FF1F0B8870B550 -:107F6000043B04000D000220032B0BD8012120004C -:107F700000F04CFD03001420002B03D0290020004A -:107F800000F0DEFB70BD000007B51300034A00924D -:107F90000A00012100F02CFC0EBDC046C581001175 -:107FA00007B5019203220092024B0A00122100F051 -:107FB00049FC0EBD4382001107B56B4601AA118032 -:107FC0000449D88008780633012802D1190003F04B -:107FD00067FD07BDC964FF1F0C4B10B51870002367 -:107FE000FF210B4A1380138193819380094A5380A8 -:107FF0001370517293819372D174D3821375517738 -:1080000003F016FD00F0FCF910BDC046F864FF1F38 -:10801000E864FF1FCA64FF1FF0B58DB06B460020F7 -:1080200003910C229B5E834200DBB0E05D4B18782D -:1080300003F05EFD051E00D1A4E00378902B00D074 -:108040009DE006AF01004688380000F013FA796819 -:108050000400002900D19CE03B88052B6ED13B89B0 -:10806000032B1CD905AC200000F0A2F86288172A67 -:1080700061D83989131D994231D179682378043147 -:108080000291D90738D5607800F08EF9071E06D026 -:10809000002303712378012B08D0132B23D0A86869 -:1080A000002800D178E003F083FB75E06288029934 -:1080B00009A800F0A6F80290380000F08BF909AA90 -:1080C0002378387A0192002231000092029A00F05F -:1080D00012F9380000F064F9029B002BDFD0300069 -:1080E00000F080F9DBE70378032BD8D1628802998E -:1080F00009A800F0D6F8DEE7122B13D1029909A8DF -:1081000000F0B5F8021EEAD127498B88002BC6D0B3 -:10811000887909A92378019161780091310000F0F4 -:10812000EAF8BCE7002302AA93833000617809AA29 -:10813000FFF72AFFB3E71D4B0993F6E7042B02D0A4 -:108140009A1F012AABD8184A043B9B00995A002970 -:10815000A5D0D218907831003A0000F0AEF800288F -:108160009DD13B88042B03D001213000FFF724FF71 -:10817000012C04D1A868002801D003F019FB2800C5 -:1081800003F03EFC8020039B0002434018000DB02A -:10819000F0BD012800D182E701213000FFF70CFF7C -:1081A000EDE7C046F864FF1FE864FF1F01001700F9 -:1081B0000B7803704B784370CB788A781B0213439B -:1081C000438070470A88030002700A88120A4270CE -:1081D0000A88012A06D14A8882704A88120AC27027 -:1081E0000420704702208242FBD14A8804309A70F2 -:1081F0004A88120ADA708A881A718A88120A5A71B1 -:10820000EFE710B50400012082420CD94B780A78C0 -:108210001B0213432380834206D1CB788A781B024A -:1082200013436380002010BD022BFBD1CB788A78EA -:108230001B02134363804B790A791B021343A3800B -:10824000F0E70B8803700B881B0A43704B88837020 -:108250004B881B0AC3708B8803718B881B0A437180 -:10826000CB888371CB881B0AC37108207047030039 -:108270000120082A14D14A780878120202431A8091 -:10828000CA788878120202435A804A790879120221 -:1082900002439A80CA798879120202430020DA8068 -:1082A000704710B504000120022A05D100204B7848 -:1082B0000A781B021343238010BDF8B50600102076 -:1082C0000F00150003F024FB04000120002C0ED049 -:1082D000A0230C22290023806780201D002D07D0B9 -:1082E00003F076FB2100300003F072FC0020F8BDA3 -:1082F00003F0AEFBF6E7F7B51E00009008AB1420C4 -:1083000017001D78019103F003FB041E12D0A22375 -:108310000370019B47704380099B057146710C22D5 -:108320000830002B07D0190003F052FB2100009801 -:1083300003F04EFCF7BD099903F08AFBF6E737B569 -:10834000041E0FD04388002B0CD00025C1881323B6 -:10835000007A172201950095FFF7CDFFFF23658076 -:108360006372257037BD000010B50C4904004A88BF -:10837000002A09D08B89002B05D00020CB8A02224D -:10838000834201D010BD012213000A204343002084 -:108390004032C854C81842800472F3E7CA64FF1F11 -:1083A0000023438003707047094B00211A0010B569 -:1083B0005C88002C06D01C79844203D10A234B43ED -:1083C000D01810BD01310A330329F1D10020F8E79C -:1083D000CA64FF1F10B50400407A03F0C1F9FF23FF -:1083E000637210BD7047043010B580B203F008FA14 -:1083F000002803D00421494203F09AFB10BD00007D -:1084000070B50025104CA0682580A581A580A842E4 -:1084100002D003F0CDF9A56000250C4C0C4B606D2B -:108420001D80230058331D70A84202D003F0C0F90C -:10843000656500256068002801D003F0B9F90135B1 -:1084400008340A2DF6D170BD9065FF1F3465FF1FFB -:108450008465FF1F70B5041E09D1054D2880A881D1 -:10846000A880A868002802D003F0A2F9AC6070BD13 -:108470009065FF1FF0B54B8885B0019300234360E2 -:108480000A7905000F00022A00D07BE0CA88032A7F -:1084900017D98B685E7819783602DC78D8790E4364 -:1084A00099781B7A24021B020C43034353495BBA9D -:1084B0000B80331D93421ED1042C04D0631F022B6A -:1084C0000ED9012015E0019A4D4B1201D35A002B11 -:1084D00006D00198FFF7BEFF4A4A136901331361C2 -:1084E0000421B8682E812C80494203F021FB68608A -:1084F000002005B0F0BD434D042C06D0631F022BB5 -:108500000FD9EB680133EB60DBE7019A3C4B1201BA -:10851000D35A002B05D00198FFF79CFF2B6901333C -:108520002B61374B30000293019B029A1B01019390 -:10853000002301998C468B52130063449C80039363 -:108540009E81FFF750FF039B041E986016D0042104 -:10855000B868494203F0ECFAFA880100043A2000B6 -:1085600003F036FA0199029AFB888A5A043B9B1859 -:10857000029A8B522B6801332B60A2E7AB6901335F -:10858000AB619EE71E4B0293019B1E01029BF35AB7 -:10859000002B2DD002998C19A068002828D0012A20 -:1085A00026D1FA889B189BB27352A189994217D39E -:1085B0009B1AC018B96803F00BFA029BA289F35A00 -:1085C000934200D07DE700222B81A3882B80A368F3 -:1085D0006B60029BF2520B4A53680133536070E7A1 -:1085E000084A9368013393600198FFF733FF68E707 -:1085F000044A536901335361F6E7C046FA64FF1F2A -:108600009065FF1F0065FF1F70B5051E15D10B4C4F -:108610000B4B1880230058331870606D002802D06F -:1086200003F0C6F86565250050356068002801D064 -:1086300003F0BEF80834AC42F7D170BD3465FF1FBB -:108640008465FF1FF0B51700A12285B09200019349 -:108650004243394B06001B680C009B18D933FF338B -:108660001D78FDF741FF0430854204DD3000FDF741 -:108670003BFF0430C5B2BD4207D33A0000213000B1 -:10868000019B03F035F805B0F0BD2900380003F078 -:108690001FFA2300C6B250331E700393019B2900BA -:1086A0006365380003F0F4F8CBB20293002B02D0DC -:1086B000039B01361E7000262300503303931B7862 -:1086C000B34204D8606D002831D10020DBE7029A64 -:1086D0002800002A04D0013B1000B34200D028003B -:1086E000F700E719387002F08BFF786000280ED091 -:1086F0003A78019903F06CF9019A3B780136D31866 -:108700000E4A0193D369F6B20133D361D4E7039BD8 -:1087100018706065A74205D1084A1320D36A013357 -:10872000D362B0E7606803F043F80834F2E703F07F -:108730003FF800236365C8E73409FF1F0065FF1F8A -:10874000F7B50D0007000421686803F0F1F92B89E3 -:10875000040003702B891B0A43702B8883702B88BD -:108760001B0AC3702E8902250436F6B2F42E15D8E2 -:108770001B4B9F4214D10C2003F0CAF81135011E87 -:108780000CD0902303708E3B0371043B4380154B48 -:108790008460C680187803F01BFA00252800FEBD0F -:1087A0005C237B43104AD3180093583301931B7802 -:1087B000002B0FD10300320038000099FFF742FF71 -:1087C000019B05001B78002BE8D13800009902F0CE -:1087D000DFFFE3E7054A0725536A01335362DDE70C -:1087E000FEFF0000F864FF1F3465FF1F0065FF1FD8 -:1087F000F0B587B0009017200F0016000193FFF727 -:10880000F2FD1325041E19D00C98031E02D0019905 -:10881000201D9847030AE370052302AAA0700430C4 -:10882000908127700098667003A993800494FFF7E5 -:1088300087FF051E02D0200002F0BAFF280007B013 -:10884000F0BD0000F0B587B01F000CAB1B780391A2 -:10885000059301210DAB06001C78049200F0D6F8B8 -:108860001425002821D02000FFF77EFD0135041ECD -:108870001BD01149059B0A7803700132D2B2131E36 -:10888000C68001D101231A000B7022713000049BB5 -:1088900003990097FFF7ACFF051E09D123002100C3 -:1088A0000648074A093303F0CBF8280007B0F0BDAB -:1088B000002363802370F8E7FC64FF1F3F830011EF -:1088C00030750000F8B505000E00064C064F236811 -:1088D000002B02D03100280098470434BC42F6D166 -:1088E000F8BDC046A065FF1FB465FF1F0123064AFF -:1088F0005B425380002313715362044A1360536038 -:108900009360D36013617047B465FF1FA065FF1FBC -:108910000200002310B506499C000859002801D127 -:10892000625010BD0133052BF6D11320F9E7C04684 -:10893000A065FF1F034A5388181A4342584140421A -:1089400010407047B465FF1FF0B585B002930AABC5 -:108950001F780CAB1B88009008000E000192039357 -:10896000FFF7E8FF05001120002D1BD10E48FFF78F -:10897000E1FF04001520002C14D006220B99A771EA -:10898000E01D03F025F8019B30002371029B2900B4 -:108990006371009B66802370039B6562E381FFF730 -:1089A00091FF280005B0F0BDFFFF000010B5FFF7F4 -:1089B000C1FF04000220002C12D060880121FFF7C3 -:1089C00081FF606A002801D002F0DAFE282200212F -:1089D000200003F03DF8012300205B4263802071FA -:1089E00010BD000030B5074A074C558801001378C8 -:1089F0000020A54204D05B1A59424B415842104016 -:108A000030BDC046B465FF1FFFFF0000084A10B527 -:108A100001230C00904208D0FFF78CFF031E04D006 -:108A2000037923405A1E9341DBB2180010BDC046A3 -:108A3000FEFF0000024B1879431E9841C0B27047F8 -:108A4000B465FF1F70B504000D001600FFF772FF3C -:108A5000002804D10D4B9C4200D0143070BD416AF7 -:108A600003790520002907D012221A40102A02D1CA -:108A70000520002EF2D10F20DB06EFD5897E0C20D9 -:108A8000A9428941494249420840E7E7FEFF000008 -:108A9000030010B5002800D110BD0348034A4188E7 -:108AA0009142F9D09847F7E7B465FF1FFFFF000038 -:108AB000002330B5C45CCD5C6C40D4540133102B22 -:108AC000F8D130BD0F23002210B5C45C64002243EE -:108AD000CA54C25CD209013BF7D210BD02000100AA -:108AE00010B52032103102F09BFF10BDF0B58BB0F5 -:108AF0000390102005931700049102F0C9FF009025 -:108B0000102002F0C5FF009B13240190002B05D01C -:108B100000280CD11324009802F032FE019B002B98 -:108B200002D0180002F02CFE20000BB0F0BD102087 -:108B300002F0AEFF0600102002F0AAFF1324050089 -:108B4000002E00D1AEE0002819D01022002102F042 -:108B50007FFF32002900039802F062FF041E0ED14D -:108B600033787F2B51D830000099FFF7ABFF009B83 -:108B70001B787F2B53D801990098FFF7A3FF300093 -:108B800002F0FEFD002D02D0280002F0F9FD002CBD -:108B9000C1D1102002F07CFF0600102002F078FF07 -:108BA0000290002E7CD0002878D03A000F322300AB -:108BB0000125121105D00F333B4015B25A425341E3 -:108BC0001BB26A1E1201002B33D0049BD2B298183C -:108BD0000099029AFFF76CFF013D1022002130003E -:108BE00002F036FFADB2049F2D017D19AF4242D095 -:108BF000002C33D0300002F0C3FD029B002B00D1CB -:108C000089E7180002F0BCFD85E729003000FFF776 -:108C100059FF28002549009AFFF74AFFA7E72900D6 -:108C20000098FFF74FFF28002049019AFFF740FF07 -:108C3000A5E70F210F4004998A18D9B28F4208D9AD -:108C4000D15C06A819540133102BF6D1029A019970 -:108C5000C0E7791A48424141C901F2E739003000C2 -:108C600006AAFFF725FF3200039806A902F0D8FEF6 -:108C700010370400BAE7002CBCD13000029906AAD4 -:108C8000FFF716FF320006A9039802F0C9FE08227A -:108C900004003100059802F09BFEABE71324A9E71E -:108CA0001324AAE7002800D06EE733E73CBE00118A -:108CB000F0B58BB00F0016000225009000283FD0C1 -:108CC000002A3DD00B1DDBB21800029302F0E0FE3B -:108CD0001135041E34D0FDF747FD05003A00009918 -:108CE000201D02F05DFFEBB20393E3702B0CDBB2AF -:108CF0002F0A00936370FFB22B0E2370A7700193AD -:108D0000FDF72CFD1022010006A802F049FF21000A -:108D1000029A04AB06A8FFF7E9FE051E0DD1039BDE -:108D200008223370009B04A9B370019B7770F37025 -:108D3000301D02F035FFFDF71DFD200002F020FD83 -:108D400028000BB0F0BDF0B58FB00D00149E03905D -:108D500004920593002A03D1022420000FB0F0BD35 -:108D6000002EF9D00398FFF7E5FD1424071EF4D078 -:108D70007278337812021A43B3781B041343F278E3 -:108D800012061A43036A0192934201D30133E3D1DD -:108D9000002D03D03B7901249B07DED5082200215A -:108DA00006A802F055FE059B13240433DBB218001D -:108DB000029302F06DFE051ECFD0059A049904308F -:108DC00002F0EEFE04223100280002F0E9FE390034 -:108DD000102210310AA802F0E3FE2900029A06AB25 -:108DE0000AA8FFF783FE041E0FD1082206A908A8CF -:108DF00002F0D6FE0822311D08A802F071FC0128FD -:108E000007D101990398FDF7C9FC280002F0B8FCCE -:108E1000A3E70124F9E7000070B51C4C05002368A6 -:108E2000181E10D0002D14D11A78002A0CD1981CCD -:108E3000083202F0CDFD02F02BFC0135002808D1EC -:108E400023681D70012070BD0A331800082202F04B -:108E5000BFFD2368002BF5D0122002F059FD061E3D -:108E60000DD0C123216803704570023110220230F9 -:108E700002F0AEFD23683100587802F0A9FE2068A8 -:108E800002F07EFC00232360DCE7C046DC65FF1FA8 -:108E9000F8B504002020FDF755FB0D4EA700BB5987 -:108EA0000500002B0DD000280BD0D878FF2809D161 -:108EB00008492A000C55F35907480333611802F09A -:108EC000BFFDF8BD290002F05BFE0028F0D1F8E7F5 -:108ED000F865FF1FE065FF1FE9A0001170B5064DA2 -:108EE00084006359002B05D0D87802F039FCFF22AA -:108EF0006359DA7070BDC046F865FF1F70B5060093 -:108F00008CB00C00150000213022684602F0A0FD54 -:108F100031001022684602F043FE1D20210003228A -:108F2000684402F03DFE6846FFF7D8FD2D2104009D -:108F300003222800694402F033FE20000CB070BD0B -:108F4000F0B50700160097B001931CAB1D783022D6 -:108F50001EAB00910AA800211C7802F079FD1022B6 -:108F600039000AA802F01CFE1022002102A802F01B -:108F70006FFD0722310002A802F012FE072202ABA9 -:108F80009818631E9C41019902F00AFE02AB9C7383 -:108F90002B005A1E934102AAD3730021102206A867 -:108FA00002F056FD06221D9907A802F0F9FD1A20CD -:108FB00002ABC01806221F9902F0F2FD10220099A0 -:108FC0000EA802F0EDFD102202AB0EA908781C7865 -:108FD000013A6040D2B2087001330131002AF5D164 -:108FE0000AA8FFF77BFD102212A904000EA802F0C8 -:108FF000EFFC102206AB0EA908781D78013A6840F4 -:10900000D2B2087001330131002AF5D10AA8FFF766 -:1090100065FD044310222098E4B212A902F0C0FDBD -:10902000200017B0F0BD70B50E0014008CB0010028 -:10903000102268461D0002F0B3FD3100082204A88A -:1090400002F0AEFD2100082206A802F0A9FD684644 -:10905000FFF744FD04001022280008A902F0A0FD3B -:1090600020000CB070BDF8B506000D0000243719C3 -:10907000AC4200D3F8BD02F043FC030A3B70631C12 -:10908000DBB201379D4203D90234F054E4B2EEE77B -:109090001C00EDE773B506000C000225002819D06E -:1090A000002917D0032101A8FFF7DDFF6B469A794D -:1090B0003F231A40013313436A463000937101A9DC -:1090C0002200FFF71BFF051E04D10322E01C01A9AB -:1090D00002F07EFC280076BD03785807DA08C00F3E -:1090E000D20080009B0710439B0F1843C0B270470B -:1090F00007230B40C908C9000B43037070470000E9 -:1091000070B50400FFF7EAFE134DA4006359002B6D -:1091100021D0186A002801D002F032FB2B59986E3A -:10912000002801D002F02CFB2B59D86E002801D06A -:1091300002F026FB2B59186F002801D002F020FB0B -:109140002B59586F002801D002F01AFB285902F061 -:1091500017FB00232B5170BDF865FF1F0E4B8000DD -:10916000C35870B50C00002B0FD09D68002D0CD09B -:109170002B78201D0B706B784B70A97CFFF7B8FF24 -:109180002B7E23726B69E36070BD102200212000EA -:1091900002F05EFCF8E7C046F865FF1F014B18605F -:1091A0007047C046F465FF1F074A030080008258DD -:1091B00010B5002A06D0D088984203D1012901D1E8 -:1091C000FFF79EFF10BDC046F865FF1FF0B5264EA5 -:1091D00095B087000B93BB590500099112200A92A4 -:1091E000002B31D0D888FFF7A5FB04001420002CF9 -:1091F0002AD0280010A9FFF7B1FFBB591E781D6ABD -:10920000002E23D00895FDF7EFFA07000020FDF7A8 -:10921000F1FA0790A379E61D069310AD0CA9089802 -:1092200000F0E2FA0EA9280000F0D7FA0B9B0A9989 -:109230000493069B09980293079B0396019300975A -:109240000EAB0CAAFFF77CFE15B0F0BDFDF7CCFA13 -:1092500006903000FDF7CEFAE31DA779079310AB17 -:1092600006000893DAE7C046F865FF1F30B50C4CDE -:1092700085002A59030085B00120002A0ED018006D -:109280006946FFF76BFF2B591A78D888054B002ADF -:1092900000D1054B6A46072100F0D9FB05B030BD6F -:1092A000F865FF1FDB970011E997001130B5094CF5 -:1092B0008500295985B010226846253102F088FBC7 -:1092C0002A591121044BD0886A4600F0C0FB05B032 -:1092D00030BDC046F865FF1F8598001130B5094CB8 -:1092E0008500295985B010226846353102F070FB9F -:1092F0002A591121044BD0886A4600F0A8FB05B01A -:1093000030BDC046F865FF1FC3980011F7B54D4F3B -:1093100086001020F4590D0002F0BAFBF3592062C8 -:10932000186A132200286CD0033A29009C6802F0C6 -:109330004FFBF3591A780192002A58D11E6A227DF8 -:10934000317B944651400122019F114201D1674671 -:109350001740217D914339432175377B4F40BC46EF -:1093600060460027800701D44F08174001210220E2 -:109370008F40227D82433A432275377B5740BC465B -:1093800060460027400701D497080F400420227D43 -:10939000BF0082433A432275627D002794466046AF -:1093A000727B42400A4201D167460F400121627D33 -:1093B0008A433A436275777B5740BC466046002734 -:1093C000800701D457080F400220627D7F0082434E -:1093D00017436775767B00227E40760701D4BA0872 -:1093E0000A400426617D9200B1430A4362756A789F -:1093F000002A08D06278002A05D005220533DA77E2 -:1094000000221000FEBD04222979114205D1A17C61 -:10941000114202D10533033AF1E7019A21782C7801 -:10942000002A02D10A002100140018220429E8D8D9 -:10943000042CE6D805206043034A05331218525C19 -:10944000DDE7C046F865FF1F4CBE001110B50A00ED -:109450001121024B00F0FBFA10BDC0461F9900110C -:109460000B0030B587B001AD2B806B4604001100B6 -:10947000981D082202F0ACFA2A000B212000024BB2 -:1094800000F0E5FA07B030BD4799001110B50A00A9 -:109490001121024B00F0DBFA10BDC0469B99001170 -:1094A00013B50B0011006A4613706B4604000622C8 -:1094B000581C02F08DFA6A4608212000014B00F08A -:1094C000C6FA13BDBB99001110B50A001121024B59 -:1094D00000F0BDFA10BDC0460B9A00117FB5050023 -:1094E0000B4BAA00D4580800002C0FD0666F237FC6 -:1094F000E28821780396266F0296E66E0196A46EA6 -:109500000094FDF709FC2800FFF7FAFD7FBDC04677 -:10951000F865FF1F10B51721FFF7E0FF10BD000031 -:1095200070B50A000D00064B0221040000F08FFA0E -:10953000060029782000FFF7D1FF300070BDC0463B -:10954000EB98001170B586B000236A4613708368EB -:1095500004001D78681E0A2859D801A902F0F0F805 -:10956000060633373B3F43474B4F5300180000F08C -:1095700042F9062312284BD000281BD16088FFF740 -:10958000D9F90823002813D04279002A47D1264B65 -:109590001A78072312070BD5244B1A680723002AD1 -:1095A00006D01668002E03D0290001AAB047030098 -:1095B0006A4613706B461B786088002B2AD1FFF730 -:1095C00067FC06B070BD180000F06CF9D4E7180015 -:1095D00000F087F9D0E7180000F093F9CCE7180005 -:1095E00000F0ADF9C8E7180000F0C3F9C4E71800AF -:1095F00000F0F6F9C0E7180000F0F6F9BCE7180033 -:1096000000F013FAB8E7180000F013FAB4E70723E4 -:109610006A46137069466088FFF782FFD1E7052329 -:10962000012AC5D1024BB8E78564FF1FF065FF1F13 -:10963000F465FF1FF8B52C4F8600F35904000D00A8 -:10964000002B40D0DA8882423DD15A78062A33D1A5 -:109650001A78002A2ED0012099681A6A097D0142E1 -:1096600006D0157B054203D007225A700120F8BDB1 -:109670000220014204D0157B054201D00922F4E703 -:109680000420014204D0127B024201D00B22ECE7FD -:10969000164B1B68002BE9D05B68002BE6D020003E -:1096A0009847BB5900215B78122BDFD12000FFF7D0 -:1096B00015FFDBE70E4BECE7112A04D1002900D09F -:1096C00032252900F2E7002D08D12000FFF732F9FA -:1096D000002803D0102302791343037121002800CE -:1096E000FDF798FAC2E7C046F865FF1FF065FF1F57 -:1096F000F465FF1F70B50E4E8500AB590400002BBA -:1097000013D01B78002B11D10A4B1B68002B04D0FF -:109710005B68002B01D02000984773595B78122BAF -:1097200003D100212000FFF7D9FE70BD024BECE70A -:10973000F865FF1FF465FF1FF065FF1F094B8000F0 -:10974000C3581020002B0CD01A6A002A09D09B683D -:10975000002B06D0127A1B7E101C9A4200D9181CCE -:10976000C0B27047F865FF1F70B503000D0014000C -:109770000220002A30D000292ED013700B78081D4B -:1097800053704B789370FFF7A7FCE0700120022123 -:109790002B7A23716B7B034063716A7B0A4013430E -:1097A000042263716E7B1640334363716E7BF6084F -:1097B000F600334363712B7B0340A371287B014088 -:1097C00000200B43A371297B0A401343A3712A7B1A -:1097D000D208D2001343A37170BD10B50A00010076 -:1097E0000120FFF7C1FF10BD10B50A0001000220E3 -:1097F000FFF7BAFF10BD70B506000C000220002E66 -:1098000030D000292ED07378201D0B70B3784B70A8 -:10981000F178FFF76DFC01223579257271794B10D3 -:10982000080013409340104003438810104080000C -:10983000C9080343C9000B436373B1794B10080097 -:109840001340934010400343881002409200C9081F -:109850001343C9000B4321202373FCF773FE854299 -:1098600001D2122070BD2220257AFCF76BFE8542C2 -:10987000F7D823781820042BF4D86378012BF1D87B -:109880000020EFE7030010B50220002909D0002BCB -:1098900007D00322481C0A7019000D3202F098F814 -:1098A000002010BD03000222080010B5002B06D0D6 -:1098B000002904D00E32591C02F08AF80022100050 -:1098C00010BD030010B50220002909D0002B07D0DD -:1098D0000422481C0A7019000C3202F079F80020AA -:1098E00010BD10B5FFF7DEFF10BD030002200029F8 -:1098F00006D0002B04D0052200200A701B784B7084 -:10990000704703000220002B08D0002906D05B78A6 -:1099100000200B70013B082B00D918307047030062 -:1099200010B50220002909D0002B07D00622481CC0 -:109930000A7019000A3202F04BF8002010BD10B571 -:10994000FFF7B0FF10BD02000B00022010B5002988 -:109950000ED0002A0CD00721197011885970118877 -:10996000090A997011180822D81C02F031F8002059 -:1099700010BD03000A00022010B5002B0CD00029F6 -:109980000AD099785878090201431180901CD91C9B -:10999000082202F01DF8002010BD030010B50220BF -:1099A000002909D0002B07D00822481C0A70190092 -:1099B000921802F00DF8002010BD02000B000220EA -:1099C00010B500290BD0002A09D00921197011788F -:1099D00018185970511C062201F0FAFF002010BD22 -:1099E00010B5FFF75FFF10BD02000B00022010B59D -:1099F000002A09D0002907D05178197011180622C1 -:109A0000581C01F0E5FF002010BD030010B5022036 -:109A1000002909D0002B07D00A22481C0A7019001F -:109A2000063201F0D5FF002010BD10B5FFF73AFF58 -:109A300010BD02000B00022010B5002A06D000293C -:109A400004D018005178FFF753FB002010BDF0B58B -:109A500085B017001E006A460623050008009181A4 -:109A60009380FEF7C0FC1324011E02900CD0380036 -:109A7000B047041E05D1280001A9FEF76FFA041EA5 -:109A800002D0029801F094FE2800FFF701FA2000AE -:109A900005B0F0BDF0B504008BB0019115000021B8 -:109AA000102202A801F0D4FF334EA700B8590028B5 -:109AB0003CD0C388A34239D10378002B36D14278F9 -:109AC000062A18D102000100553235310C3006ABA0 -:109AD000FFF7A9FA002829D12000FFF72FFE020086 -:109AE00006A902A801F074FF200002A901F0C8FF36 -:109AF00001200BB0F0BD816E002917D00B8A112A0E -:109B000028D19D420ED101981231093A01F0E8FDA9 -:109B1000012807D1BB5920009D6EFFF70FFE2900D9 -:109B20000200DEE732212000FFF7D8FC2000FEF71C -:109B300001FF061E1BD0416A002918D00B8AAB42D8 -:109B400015D108220198123101F0CAFD01280ED169 -:109B5000716A0AE09D42E9D108220198123101F0B0 -:109B6000BFFD0128E2D1BB59996E8A7EB9E720007A -:109B700001F0BEFEBCE7C046F865FF1FF0B56B4DB7 -:109B800087007E5985B0337802900393002B00D074 -:109B900087E0B368346A01937078062817D10122F0 -:109BA0001B7D134202D0217B114218D102221342A5 -:109BB00002D0217B114251D10422134203D0237BD6 -:109BC000134200D08BE0019B5A7DEB5991E007389E -:109BD0000428F8D801F0B4FD032E42678300B36E69 -:109BE000002B03D11C2001F053FFB066EB599C6E93 -:109BF000002C1CD010220021200001F029FF029827 -:109C0000FFF79CFD01002000FFF72DFA01F078FE20 -:109C10002082200008211230FFF725FA0298FFF772 -:109C20008DFDA076EB592100D888FFF70FFC0822A4 -:109C3000EB591CE0B36E002B05D01A00198AF0888E -:109C40001232FFF70DFC0222019B197DEB591142E4 -:109C50003DD0207B10423AD0073208E0F488FCF770 -:109C6000DBFD01002000FFF711FC0A22EB595A70BE -:109C7000029B9C002A595378073B042B11D8D088AB -:109C8000FEF758FE00284ED0C3895A08D21828493A -:109C9000029B0298CB542B5941180433254801F0FC -:109CA000CFFE05B0F0BDFCF79FFD0300012083420D -:109CB00001D100200393EB59DE88FCF79BFD03994B -:109CC00002003000FFF7ECFB019AEB59117D0422F2 -:109CD00011420CD0217B114209D00B22C7E7F68834 -:109CE000FCF73CFD01003000FFF7EEFB6BE7019A4B -:109CF000527D01210A4204D0607B084201D00C222F -:109D0000B5E702210A4204D0607B084201D00E224E -:109D1000ADE704210A4204D0627B0A4201D010223E -:109D2000A5E71222A3E7FA225200B0E7F865FF1F69 -:109D3000FC65FF1FF3A0001110B5064B1A78042331 -:109D4000100018401A4200D00348FFF727FA0020FD -:109D500010BDC0468564FF1F4043FF1F70B504005F -:109D6000FFF7D4FA051E43D12000FFF77FFA234EF8 -:109D7000A400A0598268937CDB0708D50321036AFD -:109D80001B790B40012B02D1017F0B430377431D4D -:109D9000D97F8B1E022B0DD8022900D00121C0884B -:109DA000FCF790FF042133591A7F59700A431A7740 -:109DB000280070BD01290CD102231022437000211C -:109DC0000C3001F045FE305910213530FFF74BF9CA -:109DD000EEE70529ECD10223D118437010220C3094 -:109DE00001F0F6FD04233259117F0B431377EAE7A4 -:109DF00008251828DCD1053DDAE7C046F865FF1FC5 -:109E0000F0B58BB0059143887E4F9E00F459150044 -:109E10000493002C15D1012902D000200BB0F0BD15 -:109E2000101D57781678FFF757F9EB683200029348 -:109E30002B7A0499019300903B002000FCF70CFF63 -:109E4000EBE7E388049A934201D00820E6E7237801 -:109E5000012B00D1D4E0059B581E092800D9CFE082 -:109E600001F06EFC05CE0A29CC506C859AB229000F -:109E70000498FFF773FFD1E7200029001022453036 -:109E800001F0A6FDB9594B78042B02D1013B4B7070 -:109E9000C3E70B000A00253335320C310498FFF775 -:109EA00095F90498FFF702FA0522431E9841BB5921 -:109EB000C0005A70B2E7200029001022553001F08E -:109EC00087FD049B4F4C9D00295904980A0006AB5E -:109ED00055320C31FFF77AF929591022453106A87D -:109EE00001F0FEFB012808D10498FFF7F7F905906F -:109EF000002804D106222B595A7005988EE70823B2 -:109F00000593FAE763780C2B7AD1E36E002B03D12B -:109F10001C2001F0BDFDE066BB59D86E00286FD053 -:109F20001022290001F054FDBB590498DC6EFFF7A4 -:109F300005FC0D22A076BB595A706EE7E06E002832 -:109F40005ED063780D2B5BD12B8808220382A91C7D -:109F5000123001F03DFDBB599A68517D0222114239 -:109F600026D0186A407B104222D00C32E4E7637896 -:109F70000E2B45D1236F002B03D1162001F088FD55 -:109F80002067BB59186F002803D01022290001F068 -:109F90001FFD0F22BB59CFE763780F2B30D1206F05 -:109FA0000622691C103001F013FDBB599A68517DDF -:109FB0000422114203D0196A497B1142D5D10021F4 -:109FC0000498FFF78BFA28E7636F002B0DD0BB597D -:109FD000586F0028F3D01022290001F0F9FC01226B -:109FE000BB5952425B6F1A61E9E7142001F050FD42 -:109FF000BB5960675B6F002BE9D126E72978DFE763 -:10A0000007200BE7F865FF1F10B5064C207001F024 -:10A01000EFFB06212078FDF791FF0348FEF778FC5F -:10A0200010BDC0460B66FF1FA991001100200BB2A6 -:10A0300070B50D00834216DA264B187801F058FDF2 -:10A04000041E0DD00378922B0ED0A02B37D0224BBC -:10A050001878FF283AD0210001F0BAFD002835D148 -:10A0600080200002684070BD43780E2B0BD03E2B41 -:10A07000EDD18378052B12D0082BE8D18179808827 -:10A08000FFF7D8FA08E0154B82889A42DFD183683F -:10A090001878591CFEF7C0FE002817D1D7E7104BDF -:10A0A0001B785B0712D50F4B1B68002B0ED09B68EB -:10A0B000002B0BD0C289811D80889847ECE7FFF701 -:10A0C00041FAA068002801D001F072FB200001F0E5 -:10A0D00097FCC5E70B66FF1F3943FF1F18200000E0 -:10A0E0008564FF1FF465FF1F10B50078FFF712FAB3 -:10A0F00010BD10B50078FFF7FDFA10BD0C234343E7 -:10A10000084A10B59B185A68002A03D0012901D1CA -:10A11000904710BD9B68002BFBD00029F9D19847D0 -:10A12000F7E7C0462866FF1F01238340094A10B5A0 -:10A13000946B1C439463506B98435063D46B200022 -:10A140009843012901D120001843D063116B0B43C0 -:10A15000136310BD00800040F0B500240127154BAB -:10A1600085B0DA6B144E03921A6C0192DA64019B8B -:10A17000E3403B4217D0039DE5403D400295E5B2E8 -:10A1800002992800FFF7BAFF316A736A002908D0E4 -:10A190003900002B01D0029979402800FFF7C4FF55 -:10A1A00001E0002BF9D101340C36172CDFD105B0BA -:10A1B000F0BDC046008000400C66FF1F064B012129 -:10A1C0005A68C2400A4204D01B68C34018000840C5 -:10A1D00070471B6DF9E7C046008000400122064B26 -:10A1E0008240002903D0D9680A43DA607047D968F1 -:10A1F0009143D960FAE7C0460038004030B50324E7 -:10A2000044430F4BE25C1B199C785D7801232D1BA6 -:10A210000135AB40013BA340A140DB430C001228B9 -:10A2200007D808499200521811681940214311605B -:10A2300030BD054A11680B4023431360F8E7C04660 -:10A2400093BE001108F0004014F00040C21F70B52A -:10A25000D4B20623092C0BD80125084C95400029BF -:10A2600008D00021FFF7CAFF23682B432360002397 -:10A27000180070BD2368AB43F8E7C04600380040C3 -:10A28000214BF0B51B185B78022B21D103244443EA -:10A290001E4A1F4EA35C12199478012215008540B6 -:10A2A000B76B013CE4B23D43A240B563194C1228A0 -:10A2B00015D89B0000290CD117495B1899680A43EF -:10A2C0009A600123205C154A834011680B43136098 -:10A2D000F0BD11495B18996891439960F1E70E4B05 -:10A2E00000290DD159690A435A61225C1328E8D02C -:10A2F0000123203A93400A49086803430B60E7E7CB -:10A30000596991435961F0E70C66FF1F93BE001134 -:10A3100000800040D8BE001100F00040A0F00040D6 -:10A32000A4F00040F8B500241B4E1C4D1C4B1B5DD7 -:10A33000012B1FD1194A9269E2401A420BD0012227 -:10A34000B25693402200143AD2B2022A09D81549D3 -:10A350004A6913434B61013402360C35172CE5D1A1 -:10A36000F8BD0022B2560F499200521891680B4373 -:10A370009360F0E7022BEED1E7B23800FFF71EFF43 -:10A3800001235840C1B23800FFF77AFF3800FFF7C9 -:10A3900015FF6877DFE7C04665BE00110C66FF1F3A -:10A3A0000D66FF1F00F00040012202388240054B7D -:10A3B000002903D059690A435A617047596991438A -:10A3C0005961FAE700380040F8B50E0001210F008E -:10A3D0008740114A0400D368FD43BB43D360831E0A -:10A3E0008B4201D8FFF7E0FF00212000FFF72EFF8E -:10A3F0000A4A0B4B5168012E05D139431B19516094 -:10A400005E700020F8BD2940516002221C19627064 -:10A410009A6915409D61F4E70038004000800040D3 -:10A420000C66FF1F012210B58240074B002906D0A1 -:10A4300019680A431A600121FFF7C6FF10BD1968A9 -:10A4400091431960F7E7C046008000400C2370B5C7 -:10A45000002543430A4A29009B181D70094B04003C -:10A460001B185D70FFF7B0FF0123A34006492800C9 -:10A470000A681A430A6005490A689A430A6070BD6F -:10A480002866FF1F0C66FF1F3480004030800040AC -:10A4900070B504000E00FF2813D003250540FFF718 -:10A4A000D5FF084AA3089B009B183F22ED00AA4055 -:10A4B000AE40196820009143314319600121FFF734 -:10A4C0008DFE70BD18380040F8B50C244443134B82 -:10A4D0000500E4186368002B03D1A3681220002B49 -:10A4E0001AD0022201270E4B00215B195A70280056 -:10A4F0002770FFF769FF63681E1E08D0A3683E003F -:10A50000002B04D02800FFF759FE4640F6B2280081 -:10A510003100FFF709FE0020F8BDC0462866FF1F86 -:10A520000C66FF1FF7B5C420FF222B4B8000195883 -:10A53000002491433F3A0A431A508022274F520287 -:10A54000274E1A60274B1D5D002D21D0A31E012B25 -:10A5500003D80121E0B2FFF727FF012D18D11F4BCF -:10A560009B69E3402B4213D0E3B218000193FFF73D -:10A5700025FE01000198FFF755FFE3B2143B022BC3 -:10A580001DD801217156184A8D405369AB43536160 -:10A590003B7F002B0DD0E5B22800FFF795FF280088 -:10A5A000FFF70CFE7B7F0100834202D02800FFF7FB -:10A5B000A5FD01340C370236172CC3D1F7BD01219C -:10A5C00000237156F3568D40074A9B009B189A68EA -:10A5D000AA439A60DCE7C04600E100E00C66FF1F7A -:10A5E00065BE00110D66FF1F00F0004070B50E0043 -:10A5F00015000400FFF72AFF0C236343094A2000DB -:10A600009B189D605E60FFF75FFFF021064B074AD5 -:10A610008900051E5A5002D02000FFF717FF2800BE -:10A6200070BDC0462866FF1F0000FF1F59A1001122 -:10A6300070B5134D07202C78002C1FD198222100D3 -:10A640005200280001F0BCFA0123C420FF222B7025 -:10A650000C4B80001C635C630B4B1C605C600B4B01 -:10A66000195891433F3A0A431A50802252021A6005 -:10A670000D20074A074901F0A3F8200070BDC0462D -:10A680000C66FF1F00800040A0F0004000E100E0E9 -:10A6900025A5001125A30011030010B50620072BE6 -:10A6A00009D8054A137001F0A3FAD7210020034B03 -:10A6B000034A89005A5010BD6843FF1F0000FF1F66 -:10A6C000D91AFF1F70B51D0002240C2910D8094AA1 -:10A6D000CA40D2070CD5FBF741FF041E08D1059AEA -:10A6E00004992800FBF756FFFCF7C4FDFFF724FB95 -:10A6F000200070BD1210000030B50D7802232C0030 -:10A700009C43184201D02B431C0008252300AB4377 -:10A71000284201D02B00234320241D00A5432042C2 -:10A7200001D01C4325002A230D70184204D0117853 -:10A730001E3B0B43137030BD0028FCD10C21137855 -:10A740008B43F7E7F8B51D0006AB1B88140007AA7A -:10A750000E000B201778002B27D10A78022A49D146 -:10A760004A68507811780002244A08438018042867 -:10A7700040D800F0E5FF03121D1B2300F06801F034 -:10A78000DFF8021CC0B2B84200D93A1CD2B2200095 -:10A79000F1682A8001F01CF906E00222F3681B88A8 -:10A7A0002A8023701B0A63700020F8BD0622EEE7A2 -:10A7B00001232B80F3681B782370F5E7F368002BE7 -:10A7C00016D008222A801A8822701A88120A62700B -:10A7D0005A88A2705A88120AE2709A8822719A885E -:10A7E000120A6271DA88A271DB881B0AE371DBE767 -:10A7F0002B80D9E701202B80D7E7C04600D6FFFF8A -:10A80000F7B516000A781D0008AB1F880C0001235D -:10A81000022A18D14A685078117800022B4A08435E -:10A82000801803280FD800F08BFF02254439E06818 -:10A8300001F086F8C0B20723B84204D37B19019314 -:10A84000152B02DD0D231800FEBDE0682A00310043 -:10A85000C01901F0BDF86B4600209B88E268D05417 -:10A860001B4B1B68834203D01B68834200D0984770 -:10A870000023E8E70B23002FE5D1022DE2D1737806 -:10A8800032781B021343E2681380114B1B68002BC4 -:10A89000EED01B68002BEBD00120E8E70B23002F44 -:10A8A000D1D1062DCED12A003100E06801F090F818 -:10A8B000DEE70B23002FC6D1012DC3D132787533CB -:10A8C000012AC0D8E3681A70D2E7C04600D6FFFF5D -:10A8D0001868FF1F70B50C001500072837D800F066 -:10A8E0002FFF041436361B36242E182015290BD8BA -:10A8F000184E16220021300001F0AAF8220029008B -:10A90000300001F065F8002070BD18200229FBD14D -:10A910001288114B1A80F6E718200829F4D10A0092 -:10A920000E48290001F0F4F8EDE718200129EBD1D9 -:10A930000B4B10780B49DA69FFF7DEFEE3E71820CE -:10A940000129E1D1064B10780749DA6BF4E70220C0 -:10A95000DAE7C0460068FF1FE643FF1FDC43FF1F26 -:10A960006C43FF1F9443FF1FB443FF1F030010B548 -:10A970000020DB0704D50721024A034800F08CF8C9 -:10A9800010BDC046F0BE00116C43FF1F054A030016 -:10A990001068002803D082889A4201D180687047ED -:10A9A0000068F6E7106AFF1F0A88030008009A4251 -:10A9B00004D08A8804309A4200D0002070470000FA -:10A9C000F8B5F22200230D4F0D4E79680500424381 -:10A9D0003370994200D07B600A4C0021200001F0C6 -:10A9E00037F800231A007C60AB4202D1002033709C -:10A9F000F8BD01332280DBB2F234F5E7086BFF1FAC -:10AA0000066BFF1F146AFF1F73B56B4601900600AB -:10AA1000684615001980FCF75FFF041E11D1002D58 -:10AA20000FD07689002E11D00C2001F031F80028CB -:10AA30000ED0084A0460136886808560002B02D11E -:10AA40001060200076BD1A001B68F7E70224F8E7C3 -:10AA50001324F6E7106AFF1F012100220A4B10B5EC -:10AA600049420A4C198099809A719A70084B20705B -:10AA7000012019805A60FFF7A3FF2078FCF78AFFB6 -:10AA80000448FDF745FF10BD2068FF1F106BFF1F36 -:10AA9000086BFF1F45AB0011022310B5002802D040 -:10AAA000FFF7B2FF0300180010BD0000030010B54F -:10AAB0000020DB0704D50421024A0348FFF7A4FF66 -:10AAC00010BDC04604BF0011EC43FF1FF0B50E26B9 -:10AAD00087B003930CAB1F8802ABF6180500080083 -:10AAE00031000292FDF77AF804000120002C0FD00B -:10AAF0003088FFF74BFF03000E20002B08D05E6864 -:10AB0000002E05D021002800039B029A0097B04731 -:10AB100007B0F0BD0A4B10B5984207D101220023BF -:10AB200052420A808B708A808B7110BDFFF73CFF08 -:10AB30000028FAD001235B42038000238370F4E7EE -:10AB4000FFFF0000F8B5050001290AD1134E0024CB -:10AB50003388F227AB4219D028001149FFF7DAFFFA -:10AB600006E0022904D10139FDF750FF0028EDD09D -:10AB7000F8BD3B0063437268D018D35A002B09D04C -:10AB80003A00002100F064FF0134E4B2054B1B7869 -:10AB9000A342EED801235B423380DDE7086BFF1F41 -:10ABA0002068FF1F066BFF1F10B5FFF7FDFE0300B7 -:10ABB0000020834200D0987810BD0000F0B589B025 -:10ABC0001C000EAB80CB03901E8810AB1B78049248 -:10ABD00002930B7A0D00DB0616D42B780593022B1B -:10ABE00024D00498FFF7D2FE002812D003689C46B8 -:10ABF000002B0ED0029B2200019329003B006446EB -:10AC000003980096A04705E00498FFF7BFFE0028D0 -:10AC100002D10E2009B0F0BD8368002BF9D00A22C2 -:10AC20002900039898470028D7D0F3E76B68587835 -:10AC30001A786B4B000210439842D2D8043B9842DA -:10AC400010D2684B984242D015D8674BC0180128E3 -:10AC5000C7D80B20002EDDD1EB681A7859683A80EE -:10AC6000200028E0614BC018032800D979E000F0EB -:10AC700067FD846A789E5E4B9842B2D10B20002E0D -:10AC8000C8D101233B80EB6831001B7823706889B1 -:10AC9000013080B2FCF7A2FF3A88031E0ED0017883 -:10ACA00002328A183A80428962704289120AA2707E -:10ACB00059680278E01C00F08BFE06E004323A800E -:10ACC00031000422601C00F0C3FE0020A2E70B202C -:10ACD000002E9FD1EB6807A91E8804233B80330A0E -:10ACE000300026706370FCF779FF051E28D004AB96 -:10ACF0009A890E2304A95B183E49C668FCF7E2FF57 -:10AD000000280BD12B783C486A680599FBF798FB23 -:10AD1000002803D1012304AA5B42D3813278022A9E -:10AD200006D17168201D00F053FE3B8802333B8042 -:10AD30000E2304AA9B181B88A3701B0AE370C4E7A8 -:10AD400004ABDE81F4E70B20002E00D062E7E96857 -:10AD50000398FFF729FF02233B802070000A6070F0 -:10AD6000B3E70B20002E00D054E70222EB681B88CB -:10AD70003A8023701B0A6370A7E7E86800F0E0FDE3 -:10AD8000C2B203000720B24200D243E70DD00299BD -:10AD9000DBB27118994202DB921BD3B20293029B81 -:10ADA000E9681A003B8089195AE70023F6E70B206F -:10ADB000002E00D02EE70722EB683A801A78227026 -:10ADC0005A7862705A88A2705A88120AE2701A7908 -:10ADD0002271DA886271DB881B0AA37175E7C046AD -:10ADE000042900000228000000D8FFFFFFD6FFFF63 -:10ADF00003280000FFFF000034BE0011F0B58DB045 -:10AE00006B460020089120229B5E83423DDAA64BD0 -:10AE1000187800F06DFE071E32D00378B02B2CD1CD -:10AE20000079023816281FD800F0DAFB17001E0040 -:10AE30001E001E0031001E0096001E001D011E0097 -:10AE400052011E0073011E00CD011E0050021E00A3 -:10AE50001E001E008E021E00E302944B94491B88C4 -:10AE600078880B80FBF72CF83800FCF7ADFF914B8E -:10AE70001B68002B01D038009847380000F0C0FD57 -:10AE80008020089B0002434018000DB0F0BDEE2268 -:10AE90000021874800F0DCFD0BAA3B7B79893889CB -:10AEA00000923A000D32FCF7B1FD0400804B1B7894 -:10AEB000002C3FD146E0804B788805937F4B4100C2 -:10AEC000CB5A0BAE073BDBB23288029300230193CF -:10AED0007B4B210006930093059BFFF76FFE744D9B -:10AEE000002810D1069B3A8A1B889A420BD1380061 -:10AEF0000599123000F0F4FB002804D02B78628909 -:10AF00009B00EB185A80162306A81B1832882000D5 -:10AF10007989FCF7D7FE2B7804009A00AA1851888B -:10AF20000029C3D00133DBB22B70002807D006A95B -:10AF3000C98A9180634A12889A42BCD802E00121F2 -:10AF400049429180002B04D059497888FAF7ECFFE8 -:10AF50008AE73E890A2479E000253E89574B06930B -:10AF60007B88069A5B009B5A033B9D4202DB002DC7 -:10AF7000F0D05BE0162206A812183B7B798900927C -:10AF80003A0030000D32FCF741FD0590002858D002 -:10AF90004689017A7888FCF703FD041E44D1464BAC -:10AFA00078880793069B4100C95A454B0439C9B2BA -:10AFB00006AAD28A06930291019400930599079BF1 -:10AFC000FFF7FCFD041E2FD1069B39491A88931CFC -:10AFD000002D26D14B807988384B4900CB5A511926 -:10AFE000033B8B4220DD059B31485B8941190B7186 -:10AFF000A91C0135C9B2EDB2059145191B0A2B7187 -:10B00000059B2D490433181800F0E2FC2C4B059ADF -:10B010001B88D318DDB22C4B9E4205D00136B6B248 -:10B020009CE749889942D6D0002D0CD0204C2800AE -:10B03000618800F0EDFC207021007888FAF784FF29 -:10B0400012E7059CF0E7002C00D183E77B78142BF6 -:10B0500000D109E716493B794E800B700C71788856 -:10B06000FAF724FF00E7162406ABE418210038891C -:10B07000FCF7B4FD011E00D1B7E1788822880F4C9F -:10B0800045002C5B0A4D013CE4B2029400240F4BB6 -:10B0900001940095FFF792FD041E00D014E12900F1 -:10B0A0007888FAF761FFDFE6106BFF1FD842FF1FB9 -:10B0B0002868FF1F1C68FF1F1C69FF1F5864FF1FC3 -:10B0C0000C6AFF1FD642FF1FFFFF00002A68FF1F08 -:10B0D000162406ABE41821003889FCF77FFD011E19 -:10B0E00000D182E178882288AE4C45002C5BAE4DC1 -:10B0F000013CE4B202947C89AC4B01940095FFF7CB -:10B100005DFD041E00D0DFE029007888FAF736FFE5 -:10B11000AAE60025A44B1D803B00F6331B78A24A0B -:10B1200078880792AB4208D99E4B128806930699FD -:10B1300043005B5A013B9A4203DB0799FAF728FF69 -:10B1400092E616246B00FB18059306ABE418059BEA -:10B1500021001889FCF742FD011E03D1059B012443 -:10B160001E8973E77888924B2288069C09934300D6 -:10B170001B5B904E013BDBB20293002300960193D0 -:10B18000099BFFF71BFD041E02D0059B1E895DE78E -:10B190007B88069A5B009B5A079A1088328812189F -:10B1A000934202DC1B1A013B33807F4C0230328811 -:10B1B0000999001900F00CFC2388328801359B188E -:10B1C0002380EDB2A8E70BAA3B7B798938890092EE -:10B1D0003A000D32FCF71AFC00250590059B002B68 -:10B1E00004D10A24002D00D16EE060E0059B788830 -:10B1F000197AFCF7D5FB0100041E63D1694C6C4B36 -:10B20000788806940993069B4400E45A694B063CEF -:10B21000E4B20BAE32880793029401910093059932 -:10B22000099BFFF7CBFC041E4CD1079B5E491B8892 -:10B230001A1D002D30D14A80059B5B4C5A89631939 -:10B240001A716B1C9BB2E318120A1A71162306A816 -:10B2500032881B1879890598FCF734FDFF21AA1C58 -:10B260002E1D03350B00059092B2B6B2ADB2002888 -:10B2700003D006ABDB8AD9B21B0AA218651911717B -:10B280002B714C4D301D2A884949201800F0A0FB35 -:10B290002B88F618B5B2A1E74988914207D17A8880 -:10B2A00006995200525AEB18053A9A42C4DC3E4CB9 -:10B2B0002800618800F00CFC207021007888FAF7E3 -:10B2C00071FED1E5002DF2D13E89BFE6162606AB10 -:10B2D000F61831003889FCF781FC3D000400FA358E -:10B2E00000282DD0037A9B060CD400227B89398953 -:10B2F000788800923A000C32FFF7E8FB041E10D069 -:10B300003E8915E03088FFF741FB00281AD083689A -:10B31000002B17D02100122278889847041EE4D011 -:10B32000EEE72B78002B02D17888FAF74BFE002647 -:10B330002B78002B00D097E5002C00D194E585E612 -:10B340000124DDE70E24DBE7162506ABED18290006 -:10B350003889FCF743FC041E47D0037A9B0611D4BE -:10B36000154A7B881188994203D01448814207D13D -:10B370001380134BF2261D780023D9B2A94221D3A2 -:10B380000924A1E72888FFF701FB00282FD0836854 -:10B39000002B2CD02100122278889847041EDFD081 -:10B3A00092E7C0465864FF1F2868FF1F2A68FF1FE6 -:10B3B0001C69FF1F0C6AFF1F086BFF1FFFFF0000C7 -:10B3C000066BFF1F31005943546801336018615AFE -:10B3D0000029D2D13C0008342100F22200F0F8FA12 -:10B3E00021007888FAF7F6FD3EE501246CE70E248B -:10B3F0006AE71D4B1A887B889A4231D07888FAF721 -:10B40000F3FD31E5F223059851684343CD18C95A3D -:10B4100000291FD03B7A012B0BD16C88AB88788830 -:10B42000AA1D0094FFF752FB041E02D000233B72BA -:10B430002E88F2220021280000F00AFB00232B8036 -:10B44000059B0133DBB20593084B05991B78064A2F -:10B450008B42D7D801235B421380002CCED0F5E578 -:10B46000002634000596EFE7086BFF1F066BFF1FF1 -:10B4700070B504000E001500FFF796FA031E08D100 -:10B4800031000548FFF790FA03001120002B02D08D -:10B490001C8000209D7070BDFFFF0000F8B50B4FB1 -:10B4A00006003B780D001400FF2B0ED00A2000F0A0 -:10B4B0002FFA011E09D0B1230380002346800371B7 -:10B4C000C5800481387800F083FBF8BD2D44FF1F50 -:10B4D000F7B50F0008A90600088809A90B240988F8 -:10B4E000002821D10234022B1ED1557813782D0269 -:10B4F0001D432B008B4301937334002B14D1FB6845 -:10B50000300019000093FFF74FFB019C85420BD0E0 -:10B510002A0030000099FFF7ABFF041E04D12A0077 -:10B5200030007989FFF7BAFF2000FEBDF0B50E7834 -:10B5300085B003900AA805880120022E0DD14C6821 -:10B540002778647824023C43054FBC4205D1039818 -:10B55000DBB201960095FFF7BBFF05B0F0BDC0461A -:10B5600002290000034B10B51B68002B00D0984740 -:10B57000FEE7C046146BFF1F07B501A8FFF7F2FFF7 -:10B58000044A05480021121A00F01AFBF8F732F9B4 -:10B59000FEE7C046186BFF1F3044FF1F000000008D -:10B5A00001B40248844601BC604700BF2932FF1F36 -:10B5B00001B40248844601BC604700BF75A9000081 -:10B5C00001B40248844601BC604700BF85520100B7 -:10B5D00001B40248844601BC604700BF350E00003C -:10B5E00001B40248844601BC604700BF413BFF1FD5 -:10B5F00001B40248844601BC604700BF012400003A -:10B6000001B40248844601BC604700BF017F0000CE -:10B6100001B40248844601BC604700BF193BFF1FCC -:10B6200001B40248844601BC604700BFD92FFF1F08 -:10B6300001B40248844601BC604700BFC52DFF1F0E -:10B6400001B40248844601BC604700BF0D520100AE -:10B6500001B40248844601BC604700BFC94A0100EA -:10B6600001B40248844601BC604700BF21240000A9 -:10B6700001B40248844601BC604700BF056A00006F -:10B6800001B40248844601BC604700BFED4A010096 -:10B6900001B40248844601BC604700BFD91B0000CA -:10B6A00001B40248844601BC604700BF2146010046 -:10B6B00001B40248844601BC604700BF59520100F2 -:10B6C00001B40248844601BC604700BFB352010088 -:10B6D00001B40248844601BC604700BF7139FF1FB6 -:10B6E00001B40248844601BC604700BFCD4C010054 -:10B6F00001B40248844601BC604700BF5118FF1FD7 -:10B7000001B40248844601BC604700BFC9A90000DB -:10B7100001B40248844601BC604700BF3938FF1FAE -:10B7200001B40248844601BC604700BFA54F010038 -:10B7300001B40248844601BC604700BF6DBC0000F4 -:10B7400001B40248844601BC604700BF2D3BFF1F87 -:10B7500001B40248844601BC604700BF3D180000A8 -:10B7600001B40248844601BC604700BF1147010094 -:10B7700001B40248844601BC604700BFDD66010099 -:10B7800001B40248844601BC604700BF014C01007F -:10B7900001B40248844601BC604700BF7D18FF1F0A -:10B7A00001B40248844601BC604700BFC56D01007A -:10B7B00001B40248844601BC604700BFD94901007A -:10B7C00001B40248844601BC604700BF6130FF1FDE -:10B7D00001B40248844601BC604700BF792DFF1FB9 -:10B7E00001B40248844601BC604700BFC51D00008B -:10B7F00001B40248844601BC604700BFC92600006E -:10B8000001B40248844601BC604700BFE92800003B -:10B8100001B40248844601BC604700BF5D170000C8 -:10B8200001B40248844601BC604700BFC12FFF1F1E -:10B8300001B40248844601BC604700BFED39FF1FD8 -:10B8400001B40248844601BC604700BF6571010035 -:10B8500001B40248844601BC604700BF291C0000B7 -:10B8600001B40248844601BC604700BF5522000075 -:10B8700001B40248844601BC604700BFB54C0100DA -:10B8800001B40248844601BC604700BFF30E0000CB -:10B8900001B40248844601BC604700BF090E0000A5 -:10B8A00001B40248844601BC604700BF3555000022 -:10B8B00001B40248844601BC604700BF5125000026 -:10B8C00001B40248844601BC604700BF691F000004 -:10B8D00001B40248844601BC604700BF456B0100CB -:10B8E00001B40248844601BC604700BF851F0000C8 -:10B8F00001B40248844601BC604700BF091B000038 -:10B9000001B40248844601BC604700BF29510100D0 -:10B9100001B40248844601BC604700BF1D4D0100D0 -:10B9200001B40248844601BC604700BF4D1F0000BF -:10B9300001B40248844601BC604700BF8538FF1F40 -:10B9400001B40248844601BC604700BFDD520100DB -:10B9500001B40248844601BC604700BF0132FF1FAA -:10B9600001B40248844601BC604700BF8B5201000D -:10B9700001B40248844601BC604700BFADAE000080 -:10B9800001B40248844601BC604700BF156B01004A -:10B9900001B40248844601BC604700BF0539FF1F5F -:10B9A00001B40248844601BC604700BF9DA9000065 -:10B9B00001B40248844601BC604700BF4D38FF1FF8 -:10B9C00001B40248844601BC604700BF4537FF1FF1 -:10B9D00001B40248844601BC604700BFE94C010045 -:10B9E00001B40248844601BC604700BFB14E00006C -:10B9F00001B40248844601BC604700BF9D35FF1F6B -:10BA000001B40248844601BC604700BF434D0100B9 -:10BA100001B40248844601BC604700BF350E0000F7 -:10BA200001B40248844601BC604700BFE5480000FD -:10BA300001B40248844601BC604700BF7918000089 -:10BA400001B40248844601BC604700BFA94601001A -:10BA500001B40248844601BC604700BF154D010097 -:10BA600001B40248844601BC604700BF9135FF1F06 -:10BA700001B40248844601BC604700BFEDA5000048 -:10BA800001B40248844601BC604700BF311B00007E -:10BA900001B40248844601BC604700BF3D4B010031 -:10BAA00001B40248844601BC604700BFE1170000B2 -:10BAB00001B40248844601BC604700BF193AFF1F29 -:10BAC00001B40248844601BC604700BFC135FF1F76 -:10BAD00001B40248844601BC604700BF090E000063 -:10BAE00001B40248844601BC604700BF8D120000CB -:10BAF00001B40248844601BC604700BFF54E010016 -:10BB000001B40248844601BC604700BF25260000FE -:10BB100001B40248844601BC604700BF810E0000AA -:10BB200001B40248844601BC604700BF055E0000C6 -:10BB300001B40248844601BC604700BF554901007A -:10BB400001B40248844601BC604700BF5933FF1F5F -:10BB500001B40248844601BC604700BFF94C0100B3 -:10BB600001B40248844601BC604700BF4550000054 -:10BB700001B40248844601BC604700BF9136FF1FF4 -:10BB800001B40248844601BC604700BF5147010030 -:10BB900001B40248844601BC604700BF1930FF1F52 -:10BBA00001B40248844601BC604700BF4551010012 -:10BBB00001B40248844601BC604700BF1D4B010030 -:10BBC00001B40248844601BC604700BFB70E0000C4 -:10BBD00001B40248844601BC604700BF594F0100D0 -:10BBE00001B40248844601BC604700BFC521000083 -:10BBF00001B40248844601BC604700BFD91AFF1F48 -:10BC000001B40248844601BC604700BFC538FF1F2D -:10BC100000030102020303030403050006020700F8 -:10BC2000080209030A030B030C000D000E030F03A7 -:10BC3000100311031303140315021602BD3B001178 -:10BC4000F13B0011000000000200000052BC001196 -:10BC5000192A0F180A000000F1590000FD24000005 -:10BC600041460100198000112DA0001181740011BE -:10BC70001D7E0011F9520011FDAD0011614F001140 -:10BC8000B13D0011E13E0011000000001616000059 -:10BC9000020000009CBC0011F4FFF3FFD2FC000086 -:10BCA000214000110000000000000000547579617F -:10BCB0000042312E340030303137006769746875C6 -:10BCC000622E636F6D2F7076767800544842310093 -:10BCD00002000000E4BC0011292A282A272A262A6B -:10BCE000252A242A0A180000E2040000710200003C -:10BCF00078EC0000744000001027000060F00000A5 -:10BD000006640000204E0000000000000500000056 -:10BD10001F501D00023CB400000117001400000079 -:10BD2000A1020000303132333435363738394142E0 -:10BD30004344454600000000FD56001151570011D4 -:10BD4000000000000200000050BD00116F2A6E2AA2 -:10BD50001A18EAD8BC80F0FC600000000000000067 -:10BD600000005F066B2F363D7D077F3F777C596E65 -:10BD70007971000001A00000000000006410B71DF0 -:10BD8000C8206E3BAC30D9269041DC76F4516B6B09 -:10BD90005861B24D3C7105502083B8ED44930FF0CB -:10BDA000E8A3D6D68CB361CBB0C2649BD4D2D38681 -:10BDB00078E20AA01CF2BDBDFB349B5F80000080CE -:10BDC0000010000000000000836000110D770011DA -:10BDD000A7600011157B00112B610011EB7A001197 -:10BDE000A1610011C17A0011F3610011897C001179 -:10BDF0005B620011897C00118D620011437C00118F -:10BE0000A1610011797A001119620011217C0011E1 -:10BE10000000000000000000FF620011217C001102 -:10BE20006163001125770011052A042A012A002ADE -:10BE3000022903280128002801180018000000002A -:10BE40000000000000000000000000870101020166 -:10BE500002010102010203030401030101010101C6 -:10BE60000303020103000D000E0010001100130077 -:10BE70001401070108010A010B011C011D02040243 -:10BE800005020702080219021A021C021D0301031F -:10BE9000020317000201000504000807000B0A0056 -:10BEA0001716001D1C010201010504010E0D0111F0 -:10BEB00010011413011716011A19020201020B0ACC -:10BEC000020E0D02111002141302171603050403CB -:10BED0000807030B0A030E0D0001020307090A0BF2 -:10BEE0000E0F101112141718191A1B1F20212200EF -:10BEF00045A7001101A80011000000000200000089 -:10BF00003ABE0011000000002DB500110000000035 -:08BF10000200000038BE001120 -:020000041FFFDC -:1000000000000000193D001158BC001154BC001143 -:100010003C61FF1F00000000000000000000000025 -:1000200000000000000000000000000000000000D0 -:1000300000000000000000000000000000000000C0 -:1000400000000000000000000000000000000000B0 -:1000500000000000000000000000000000000000A0 -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:100080000000000000000000000000000000000070 -:100090000000000000000000000000000000000060 -:1000A0000000000000000000000000000000000050 -:1000B0000000000000000000000000000000000040 -:1000C0000000000000000000000000000000000030 -:1000D0000000000000000000000000000000000020 -:1000E0000000000000000000000000000000000010 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000000000000000000000EF -:1001100000000000000000000000000000000000DF -:1001200000000000000000000000000000000000CF -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000000000000000000000000000008F -:10017000000000000000000000000000000000007F -:10018000000000000000000000000000000000006F -:100190004D32FF1FAD30FF1FC1660100000000009F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E000000000000000000000000000000000000F -:1001F00000000000000000000000000000000000FF -:1002000000000000000000000000000000000000EE -:1002100000000000000000000000000000000000DE -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000000000BE -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000000000000ED -:1003100000000000000000000000000000000000DD -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000000000000000AD -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:1003700079B500110000000000000000000000003E -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000591AFF1FBC -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:08183800206FFF1F4118FF1F84 -:10184000024981F3088802F08FF90000206FFF1F22 -:1018500010B502F039FB072804D0122808D002285E -:1018600008D010BD044A0420136B01331363F8E75A -:101870000220F6E71420F4E70065FF1FF8B5070023 -:101880000C0026002500503630785135002804D150 -:101890000300287058342370F8BD2978CA00481E08 -:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 -:1018B00000280DD12B78DA00A218013350602B706C -:1018C0003378044A013B3370136A01331362D8E75B -:1018D0000123DFE70065FF1F5C234343074910B581 -:1018E000C9180B0058331B78012B05D1FFF7C6FF31 -:1018F000034A936A0133936210BDC0463465FF1FEB -:101900000065FF1F10B502F01FFB064A01211300FE -:1019100010CB4942D967044B136002F0D5F920007F -:1019200010BDC04600E100E01000100010B504003A -:1019300002F00AFB024B1C6002F0C6F910BDC04663 -:1019400000E100E0431E5A425341A022F0B5D2010B -:101950005B421340154D164A40019B182A18127E0F -:101960008BB00191002A1BD01A000832D46F0022DC -:10197000E6B206AFE4B294420EDC2818C369002B2D -:1019800008D0019902AA117106AA049202AA16733C -:1019900003A898470BB0F0BD1978B9540132EAE7B3 -:1019A0001A7D1A7806AB01261A70E6E7C067FF1F9A -:1019B00000400040F0B5254B04004001C25C85B0FA -:1019C000002A2BD01A18117E002927D0917E0029D9 -:1019D00024D01179022921D11689D788D168F51B25 -:1019E000ADB22A1C102D00D9102292B2BE4217D1DE -:1019F0001818012303710023C269C38003819A422E -:101A000006D06846032103730171029301A8904731 -:101A10000820002C00D0192001F0FEFA05B0F0BD1E -:101A2000013C65426C41A0256442ED012C40084D0B -:101A30001B186419074D0633013A92B2AA42EDD041 -:101A40001888461C1E80085C2070F5E7C067FF1FE1 -:101A500000400040FFFF00000F220E4B10B59868B9 -:101A6000104002380A280BD802F060F80D0A0B0A61 -:101A70000A110A0A0A0A060002210020FFF762FF83 -:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 -:101A9000F6E7C046004000400F220E4B10B5986894 -:101AA000104002380A280BD802F040F80E0A0B0A40 -:101AB0000A120A0A0A0A060002210120FFF742FF61 -:101AC00010BD01210800F9E70120FFF773FFF7E7D8 -:101AD000DB6FF5E70090004013B5334C2378072BFC -:101AE0003DD8324B1A78324B002A39D180221968FE -:101AF00052020A431A60252001F0C4FE20232D4A19 -:101B000011680B43802113606B460422C9050868E5 -:101B10000733104228D080210422C905C86810422A -:101B20002ED080212020C905CA688243CA601422B1 -:101B30001A701A78002A2FD18021C905C86820326E -:101B40000243CA6014221A701A78002A28D11A4B4C -:101B50001A7D22785A601D221A705932DA6013BD3C -:101B60001A6816490A40C5E7086802430A60142249 -:101B70001A701A78002ACED01A78013AD2B2F7E752 -:101B8000C8680243CA6014221A7019784A1ED2B279 -:101B90001A700029F9D1C4E71A78013AD2B2C7E71E -:101BA0001A78013AD2B2CEE76843FF1F3044FF1FD4 -:101BB0003CF000406043FF1F00200040FFFFFEFF9D -:101BC000564B70B51B68012B03D1554A936D0133F9 -:101BD000936502F051F8534B534A1860534B544CE1 -:101BE0001A600123534A1360534A13602378002B71 -:101BF00006D006225149524802F04EF800232370C5 -:101C0000504A514B10681B78C1B2002B0ED14F4C7B -:101C1000C0B223785BB2002B4FDB237824785BB211 -:101C200064B21B0424021B191B1813600B1C5029DF -:101C30004ED95023464A47491078DBB2FF2202288A -:101C40004BD10868444C454D267890432A789642FB -:101C500054D9227824782E78023B5D10A31B6B4365 -:101C60005201D31A10335B111843086002F0BCF91B -:101C7000031F012B45D83A4B1B78002B06D0394B5C -:101C80001B78002B02D0002002F09EF8A122364BD8 -:101C900092009978354B4A431B689B188322920027 -:101CA0009B181B78033B012B03D8AF20400002F0A8 -:101CB0005BF901222E4BDA8270BD237824785BB267 -:101CC00064B2FF33FF341B0424021B190138ABE755 -:101CD000CAB2022AAED20223ACE70868254C264DD0 -:101CE000267890432A78964208D9227824782D784D -:101CF000023B5B10641B63435201B2E72378DBB203 -:101D0000B2E70228D5D11D4B1B78013B022B03D92A -:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 -:101D2000FC0FFF1F3864FF1FFF3F0000141003402B -:101D30003C64FF1F0C10034000100340D50BFF1F35 -:101D40007211FF1FB40003408C09FF1F680AFF1FB8 -:101D5000490AFF1F94000340460AFF1F470AFF1F5E -:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 -:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 -:101D80002309FF1F10B502F0C7F80022014B1A808B -:101D900010BDC0463664FF1F10B502F00DF9A12139 -:101DA000054A89009478054A61431268044B521829 -:101DB000528C1A8010BDC046300DFF1F3409FF1F22 -:101DC0003664FF1F10B50D4B0D4A9978A1239B0077 -:101DD0004B431268D218531DD97F0A4B1B88994276 -:101DE00009D2441C07D0C82805D0D2695B1A5A43CF -:101DF000054B5343C01802F0EFF810BD300DFF1F24 -:101E00003409FF1F3664FF1F7102000070B5244DB6 -:101E10002B68002B28D002F047F82B68D8402B689D -:101E20000400002B27D001F0C7FF2B68D8401D4BC2 -:101E30001D4A9978A1239B004B431268D118D25CAC -:101E400091239B00002A20D0CA580132CA50174B58 -:101E500017491B680868834214D3D23B181A012A19 -:101E60001AD0144B186070BD02F01EF8124B19689E -:101E700001F0A2FED3E701F09FFF0F4B196801F0BC -:101E80009BFED4E70D495B18E8E7CA500C4B1B6872 -:101E9000DB68E418201AE4E7F530FF30E1E7C046DC -:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 -:101EB0003864FF1FA009FF1F1808FF1F2DFF3F00F8 -:101EC0004064FF1F70B504000D00282916D10300DF -:101ED000A433C2881B889B1A0B4A9BB293420DD92C -:101EE00006006A3605223100653002F0ADF80028A0 -:101EF00004D13100200001F0CFFF70BD2900200087 -:101F000002F042F8F9E7C046FE7F0000F8B5050090 -:101F1000012001F091FF134CA36AA26A9342FBD106 -:101F2000114E336001F080FF104903000860104833 -:101F3000426894460F4A17680022BC4501D24268A5 -:101F4000BA1A0D4802603268AD18A422E562606AD0 -:101F5000520302436262094A1278002A01D00F3B01 -:101F60000B60F8BD00F00040340AFF1FE408FF1FBB -:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 -:101F800070B580241025E405A3682B43A36001F0FD -:101F90000BFFA368AB43A36070BD0000F7B516004C -:101FA00080221C001023D2050191916805000B438B -:101FB000936000225A4BD7301A6001F055FE9D23E2 -:101FC0002A002F009B00EB58CA3201210092FC37F7 -:101FD000002B01D00021009A386801F08DFF290004 -:101FE000009BCB311A784F4BD3351A604B780A7867 -:101FF0001B0213438A7812041A43CB781B0613433F -:10200000494A1BBA13604B790A791B0213438A7938 -:1020100012041A43CB7931001B061343434A1BBAFF -:1020200013606B782A781B021343AA7812041A43B0 -:10203000EB781B0613433E4A1BBA1360019A330226 -:1020400013433C4A13603C4B22001B1B9C46032954 -:102050003DDCB3089A0013005142B21A032A46D15C -:10206000354AE018511A827840781204000202437F -:10207000E05C043302430A600022FF2B4BDDF022B8 -:102080002E4B12011A600F222D4B1A602D4A136835 -:10209000002BFCD00023224A27491360091B321D64 -:1020A0000B191B68043A180A23706070180C1B0E79 -:1020B000A070E3700434002AF2DC802210213B6817 -:1020C000D20501333B6093688B439360F7BD634651 -:1020D000D578981893782D061B042B43157804396E -:1020E0002B43557804322D022B430360AFE7022ABD -:1020F0000AD1114AE05C511AE218527812020243E6 -:102100000A6004339BB2B7E7012AB5D10A4A521AD2 -:10211000E15C1160F5E7084959180A600433ACE73F -:10212000000004403C0004403800044034000440F7 -:10213000300004400C00044000010440040004404E -:102140001000044014000440F7B5150080221C0064 -:102150001023D2050091916807000B439360002380 -:10216000654AD730136001F07FFD9D233E009B0040 -:10217000F9583B00CA363200FC33002900D07FE01A -:10218000586801F0B9FE390032785C4BCB311A60E7 -:102190004B780A781B0213438A78AC4612041A4320 -:1021A000CB78281D1B061343554A1BBA13604B7985 -:1021B0000A791B0213438A7912041A43CB791B064E -:1021C0001343504A1BBA13604B7A0A7A1B0213431B -:1021D0008A7A12041A43CB7A21001B0613434A4A17 -:1021E0001BBA1360009A2B021343484A1360220063 -:1021F000474B1B1B0093009BCE785B1801938B7899 -:1022000036061B0433430E78043833434E780431CA -:1022100036023343019E33600328ECDC0321A80817 -:10222000431C9B002940800003292BD13849E51825 -:102230005E18A9786D78E35C09042D0229431943DF -:102240003160030008330021FF2B2DDD314B324973 -:1022500019600F21314B1960012327490B60304B66 -:1022600019680029FCD006211B680B40042B20D0E4 -:1022700080220020D20593680A318B439360FEBD13 -:1022800001217DE7022908D121495D18E11849782B -:10229000E35C090219432960D3E70129D3D11C4922 -:1022A0005918E35C0B60CCE7194818180160043337 -:1022B000CAE7002310490B606346002B0CDC3B008F -:1022C000FC335A68102101325A608022D20593688B -:1022D00001208B439360D2E7009B9B181B68190A6F -:1022E00013705170190C1B0ED37004235B42917054 -:1022F0009C440432E0E7C046000004403C00044037 -:102300003800044034000440300004400C00044015 -:102310000001044004000440080F000010000440C5 -:102320001400044070B5061E19D002225A4B9B7946 -:102330009343012B13D1594B1A78FF2A0FD15A78A6 -:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 -:102350001A79FF2A03D15B79FF2B00D199E0504B0A -:102360000C201A78012A08D000224E4D1A702978C4 -:102370000B00093B042B01D8212070BD4B1F012B02 -:10238000FAD9454CA37B042B00D982E0A279032A19 -:1023900000D97EE09A1ED2B2012A02D860881F2896 -:1023A00077D9002E56D0012E73D1A0880128E3D012 -:1023B000002907D1581E032803D801F0B7FB1217D4 -:1023C00015122E702978481E032811D80025364B87 -:1023D0001D602823237501F01FFEA84227D0A58089 -:1023E000CAE702212970EDE70421FBE70321F9E7A1 -:1023F00007390129C0D82D490968C96A8906BBD5A2 -:102400002B4908780028B7D1012A01D9002BB3D174 -:1024100002230B708021274D2633890128782375EC -:1024200001F062FD80212878890101F0FDFD012382 -:10243000A380214B1B78002B0AD0FA2280211F4B4E -:1024400092001B8809025A431A4B187801F0ACFB22 -:10245000002092E701F078FD2B78A680073B012B46 -:1024600003D917482E7001F097FD114B114C1A78C3 -:10247000002A06D080210022207889011A7001F0FC -:1024800033FD01F021FC80212078090201F02CFDB0 -:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 -:1024A0001A09FF1F1C09FF1F4809FF1F4064FF1F77 -:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 -:1024C0000010004010B5002901D001F09DFD10BDA5 -:1024D000F7B5604B01919978A1239B004B435E4A6D -:1024E000060014681022E418D6235B00E058362357 -:1024F000FF33E35C00279343222B41D1574B0F3A24 -:102500001A600760012501F0B7FC019B1880E823E1 -:102510005B00E35C002B01D0B34258DD0023504F39 -:10252000FB70AD33FF33E3581A68002A03D09B8851 -:10253000DB439B071DD03823FF33E35C002B18D00F -:102540009B235B00E35C002B13D1D133FF33E35CAF -:10255000B3420EDAA4235B00E15AE018090A023103 -:1025600001F042FC23000122FE33013E01351A87AF -:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 -:1025800003683D00002BBED081880430090A023167 -:1025900001F02AFCD6235B00E3581F60B2E723005A -:1025A000B133BA00FF339858013781880430090AE3 -:1025B000023101F019FCE8235B00E35CBB42EEDC76 -:1025C000E822F61AED1800235200A354A6E70027CC -:1025D000F1E7200001F0B0FB00281FD0002E1DDD28 -:1025E0007319882647190193B600200001F03CFCBE -:1025F0005A30800020184068013581880430090A6B -:10260000023101F0F1FB200001F0B6FCA3590133C7 -:10261000A351BD4202D0019B9D42E6D1114BE35C28 -:10262000002BABD095239B00E35C002BA6D00E4B78 -:10263000E15A0029A2D00D4AA35C994202D9013384 -:10264000A3549BE700231A212000A35401F084FC2B -:1026500094E7C046300DFF1F3409FF1F00140340EC -:10266000E010FF1F5A020000720200005E0200002C -:102670000D4970B54A6E0D4CD2038B69D20BA24244 -:1026800006D80B4D0224AA4204D901F0C5FA70BD48 -:1026900002246442E21815007E2425402242F4D030 -:1026A000A3432B438B61F0E700F000400A200000B9 -:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 -:1026C000BA7B002A02D101321A7003E0032AFAD041 -:1026D000022AF8D001F0A0FC00220120154B1A704C -:1026E000F8BD154B154D1C68154B9E7801232B70BA -:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D -:102700007BFBA1239B007343E41883239B00E41805 -:1027100023782B70E4E7032B02D101F025FBF0E7CF -:102720000020022BDCD101F0D7FAEAE71C09FF1FD9 -:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 -:10274000300DFF1FF0B587B00EAD2F780FAD2D788F -:102750000593AC46634614000E4D0CAA12782E78F1 -:1027600003930D9B009201932200059B029701F0B9 -:10277000BBFA2E70012C01D0042C08D1802206490E -:102780008B889343054A1278D20113438B8007B09C -:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 -:1027A0000B001B3B70B504003020E02B0DD813004C -:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 -:1027C000200019825A8201F05FFB70BD8410FF1F48 -:1027D00010B501F051FA054B00205B68052B04D9B8 -:1027E000034A5268D20200D4980810BD001000407D -:1027F000FCE100E070B501F0A7FB0D4B1B68FC335A -:10280000DC691D6AFFF7E4FF6419844204D2094BB6 -:1028100001241B68002B07D004220024064B1A70E9 -:10282000064A93690133936101F04EFA200070BDAE -:102830004064FF1F9809FF1F2309FF1FFC0FFF1FA4 -:1028400070B50C4D2B68FC335C6A01F07DFBFFF723 -:10285000BFFF2B680025FC339B6AE318834204D238 -:10286000054B1B68AB4200D1051B01F02DFA280077 -:1028700070BDC0464064FF1F9809FF1FD722044B5C -:1028800092009B5810B5002B00D0984710BDC04651 -:102890000000FF1F10B501F0D3F8FFF7EFFF274945 -:1028A000274BCA6D274C1A4084235B001343CB652A -:1028B000254B1B68186A01F0BFFA244B244A1A60A2 -:1028C000244B254A1A60A022244B52001A60244B44 -:1028D000187801F041FA2000224901F0ADFB0023F5 -:1028E000A3600233A360204B2049236003232048C8 -:1028F000A36001F0A1FB10221E4BFF201A60802272 -:1029000052031A60802292031A60802212041A6015 -:1029100001F05AFA012001F097F9FA20400001F085 -:1029200013FA582001F020FB134801F0ADF9012003 -:1029300001F022F9072001F0F7F910BD00F0004086 -:1029400000FEFEFF141000404064FF1F0000034023 -:102950000180063DBC00034034080000A400034091 -:102960004A0AFF1F71020000C3090000FFFF3F0079 -:102970002810004000E100E030750000674E336829 -:1029800088331B6883F3088801F036FB644A654985 -:10299000136800200B401360634B644A1B6893422A -:1029A00000D1A6E001F0F0F90221614A13688B43DF -:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 -:1029C0000BF90023A3600233A3605C4B012023605A -:1029D00001F032FA0323A36001F0E6FA040001F0EB -:1029E0004BF9050001F0E0FA554B186001F064FA6C -:1029F000544B1968621A531EA14200D21300802260 -:102A0000D203934201D39B029B0A3268D16AC90761 -:102A100000D471E04C491C0C09689BB24C435943EB -:102A20002402090A641803264849FC3293680A689C -:102A300047489B1A474A0768126847499B18474A04 -:102A40009A1833409208DB190A600360042B03D9FB -:102A5000013233400A6003600E684149A619300014 -:102A600001F0AAF83F4F3E493B68C3183B60300075 -:102A7000019301F0B9F83C4E3068081838493060CD -:102A8000884205D9019B01333B6001F0ADF831600C -:102A900001F022FA354B1B78002B0DD001F0ECF839 -:102AA000334B621B196812188A4232D24919091B2A -:102AB000091A304801F0C0FA2F4E337A002B0ED09D -:102AC00001F0DAF8621BF1681218914224D9491911 -:102AD000091B091A294801F0AFFA00233372284B69 -:102AE00083F3088801F028FA002001F04DF901F085 -:102AF000B3F801F049F95CE7DC0199000234641A8B -:102B00005900641A09214B438033CB40A408E418D0 -:102B100089E7FA218900CCE71A49DBE74064FF1F07 -:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C -:102B300010000040490AFF1F14100040C3090000A4 -:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 -:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 -:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 -:102B7000E408FF1F00100040740BFF1F3C100040D2 -:102B800000000020DC050000A022054B92009B58AD -:102B900010B5002B01D0984710BD01F055F9FBE7A7 -:102BA0000000FF1FA122054B92009B5810B5002B7F -:102BB00001D0984710BD01F047F9FBE70000FF1F67 -:102BC000A222054B92009B5810B5002B01D09847CC -:102BD00010BD01F039F9FBE70000FF1FA322054BF0 -:102BE00092009B5810B5002B01D0984710BD01F002 -:102BF0002BF9FBE70000FF1FA422054B92009B5816 -:102C000010B5002B01D0984710BD01F01DF9FBE76E -:102C10000000FF1F70B501F02FF84F4B186000F057 -:102C2000BBFF0400C30702D400F0E6FF70BD002222 -:102C30004A4B1A604A4B18780138042829D800F00A -:102C400075FF0320181C2400200001F0DDF8012886 -:102C5000ECD0444C2378042B6ED101F09DF8002871 -:102C6000E4D001F0D9F8582001F07EF90223237056 -:102C7000DCE7200000F0A8FFE9E7200001F0ECF914 -:102C8000E5E7200000F0C0FFE1E7200000F0CCFF06 -:102C9000DDE701F0A9F90500012808D1324B1B78C6 -:102CA000053B012B03D82000FFF76EFFD1E72D4B2A -:102CB0001B78022B01D0052B20D1022D28D12B4BC4 -:102CC0009B7BAB431CD12000FFF76CFF264B187891 -:102CD0000128BED16405BCD4244925224B7B034284 -:102CE00005D1233A13405A42534126331A000B7D33 -:102CF0009342AED9322001F06FF8AAE7022D07D136 -:102D0000194B1B78052B11D12000FFF759FFDDE788 -:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 -:102D2000062B03D12000FFF767FF92E7200001F098 -:102D30008BF8022D8DD1C9E7032B04D10C4B987C65 -:102D400000F0BAFF72E7072B00D06FE7094B987BC2 -:102D500000F002FF6AE7C0469C09FF1F9809FF1FA9 -:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 -:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 -:102D80001A640A4A5A500A4A04395A50094A083100 -:102D90009A64094A5A50094A5C315A50084ADA661C -:102DA0007047C0460000FF1F4527FF1F4128FF1F37 -:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A -:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 -:102DD000FF270122009300233C001E001D009446A3 -:102DE000019089B262469A40100008401841361896 -:102DF000B6B2FF2F02D1012E00D19FB2009802403F -:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 -:102E10000133102BE6D10320012E07D1012D04D15F -:102E2000019B2401E4191C700138FEBD102EFCD159 -:102E30000238102DF9D00230F7E700008023F7B5F3 -:102E40009C46264B264F01932649274A274D284C5E -:102E5000284B02281AD1604638600868264E304058 -:102E6000802636033043086001990978002909D18A -:102E70001660224A2A60224A2260E02219689143A1 -:102E8000A03A1BE08021C9021160F2E766463E606D -:102E90000F68194E3E408027FF023E430E600199A5 -:102EA000097800290DD1176001280ED1154A2A6032 -:102EB000154A2260E02219689143C03A0A431A6019 -:102EC000F7BD802189021160EEE7E0210F4A02433D -:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 -:102EE000E0000340D800034090000340000003408E -:102EF0005000034040000340FFFFE3FF0280063D17 -:102F0000804508220180063D8066082200800698E0 -:102F100080550822F8B51E4B80261A680020140040 -:102F20003440324232D11A681A4F32431A600122B9 -:102F30003B68063093433B6000F07EFF0122164D54 -:102F40002B681E432E603B680A2613433B60802794 -:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F -:102F600009D17E220E4B1C682B68E40B144093435E -:102F700023432B6005E0082000F05EFFE9E7002E08 -:102F8000EFD180222B68600893432B60F8BDC046C8 -:102F9000C4F000405CF0004018F0004068F00040D1 -:102FA00060F0004010B500F0E7FE01215820034A10 -:102FB00000F07AFEFFF7AEFF10BDC046600AFF1FAB -:102FC00010B578220021034800F09EFE00F0DCFDE1 -:102FD000002010BD4867FF1F70B5040000F0B4FF6B -:102FE00000230C200B4A010059438D18515C002925 -:102FF0000DD0A14208D1012300246B7000F01CFE0B -:1030000000F062FE200070BD01330A2BEBD11224C8 -:10301000F6E7C0464867FF1F70B5040000F094FF54 -:10302000002319001D000D4A1078002806D0A04288 -:103030000CD1557001310C320A29F5D1002B0AD17F -:1030400000F0A2FD00F040FE002070BD5078461E4A -:10305000B0411B18EEE700F0EFFDF3E74867FF1FF4 -:10306000F7B504000C20002384460E4D01926746FC -:103070005F43E85D7E19A04212D000280BD10A4BB5 -:103080009C4662461B7808331370019B70707C5518 -:103090007160B360FEBD01330A2BE8D10320F9E76C -:1030A0000720F7E74867FF1F4467FF1F8020F8B538 -:1030B000484BC0051B68C1248360474BFF251A6835 -:1030C000012313434361454BA4001A68444B40213C -:1030D0001A60444B1A68444B1A60444B1A59AA436D -:1030E0001A51C52292009E58AE4331438026995012 -:1030F0009F583F49F6010F403E439E509E588027FF -:103100003602360A3043985080201A5900020A408D -:1031100002431A5104341A59364E3F043240802675 -:103120003A431A511A5936061202120A32431A51F8 -:1031300008341A5980260A4002431A51C3229200C9 -:103140009F58B446AF4337439F509F58294E0F4076 -:1031500007439F509F5837408026360437438026C8 -:103160009F509F5836063F023F0A37439F50C02268 -:103170001F59AF433A431A511A591202120A164301 -:10318000C6221E5192009C58AC4365462C439C506D -:103190009C5800250C4020439850C72080001A58A6 -:1031A000154C1140C02212020A431A50134B1B78CF -:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 -:1031C000A368002B00D0984701350C34EEE712209D -:1031D000F2E7C0466443FF1F6043FF1FB0F00040AA -:1031E0004067FF1FB4F000403C67FF1F00E100E0B4 -:1031F000FF00FFFFFFFF00FF4867FF1F4467FF1F3F -:10320000030010B51F2809D8072200201340072407 -:1032100004490A78A24313430B7010BD0023062013 -:10322000F5E7C0464467FF1F054B06491B780A684F -:1032300005485B0702401B0B134300200B607047DF -:103240004467FF1F1CF00040FFFFC1FF70B50C2555 -:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 -:10326000002C01D1200070BD2B78002B06D06B689C -:10327000002B00D09847013C0C3DF1E71220F2E70B -:103280004467FF1F3C67FF1F1FB5002102220B0090 -:1032900001910091052000F0DFFD02230B490A682F -:1032A0001A42FCD120230393039B5A1E0392002B46 -:1032B000FAD1074A1368002BFCDA0B246C44200077 -:1032C000012100F019FD207804B010BD90C8004025 -:1032D00000C8004013B504000A4B0193019B002B6A -:1032E00001D1112016BDFFF7CFFF23000340044298 -:1032F00005D0052000F0A0FD019B013BEDE7180083 -:10330000F0E7C046FFFFFF0707B500F01DFE802273 -:103310000821D205936A0191002B01D107399162EE -:1033200002210C4A11600199481E01900029FAD12E -:1033300003311160053101910199481E0190002966 -:10334000FAD11160002B02D18022D205936200F0E5 -:10335000BBFC07BD00C00040F0B52D4C89B0237800 -:10336000002B4FD1FEF7CEFA02232A4F03903A6882 -:103370001A42FCD120230693069B5A1E0692002B6C -:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB -:10339000011E02D0112009B0F0BD030003220190EC -:1033A000009005AD9F2000F057FD0321280000F09C -:1033B000A3FC02233A681A42FCD120230793079BFF -:1033C0005A1E0792002BFAD13368002BFCDA012039 -:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F -:1033E0006B7811041B020B4329780B4363601300B5 -:1033F000113B0A49052B07D801239340A3600B60BA -:10340000012323700020C6E780231B03F6E7C04694 -:103410004C43FF1F90C8004000C800409808FF1FA1 -:103420001E4B30B55A6818781D4B85B0D3185942D9 -:103430004B4101210093002300F066FD194B1A4A0D -:1034400002259A6300221A6510325A658022C4212F -:103450009D65164B1648D202DA6789004258154B13 -:1034600080241A4080231B041343435064234120CB -:103470000393E40500F006FA402000F003FA6562C9 -:10348000039D6B1E0393002DFAD103236362FFF7A4 -:103490003BFFA562FFF760FF05B030BD5843FF1F3B -:1034A00095FFFEF700C80040050001FF04E100E0C1 -:1034B00000E100E0FFFF00FFF0B585B00700FEF778 -:1034C00021FA022305002D4C22681A42FCD1202348 -:1034D0000093009B5A1E0092002BFAD1284E3368AD -:1034E000002BFCDA0120FFF7F5FE002803D01124A1 -:1034F000200005B0F0BD234B2360022322681A424E -:10350000FCD120230193019B5A1E0192002BFAD17A -:103510003368002BFCDA0120FFF7DCFE0028E6D13F -:10352000194B1F60022322681A42FCD12023029308 -:10353000029B5A1E0292002BFAD13368002BFCDA50 -:103540000120FFF7C7FE0028D1D1104B23600223D2 -:1035500022681A42FCD120230393039B5A1E039234 -:10356000002BFAD13368002BFCDA0120FFF7B2FE02 -:10357000041EBCD12800FEF7D9F9B9E790C8004075 -:1035800000C8004001000006A8C8004001800001FA -:1035900010B50020FFF790FF10BD000010B5064BDE -:1035A00018705960FFF73CFF00211320034AFFF712 -:1035B00057FD002010BDC0465843FF1F2134FF1F98 -:1035C000F0B5040085B003920291FEF79BF98822C2 -:1035D00063035B0B52051A438023DB059D6A80233E -:1035E000274F0092BA68002601901B039A420CD91B -:1035F000F82326001B041E401C4206D08022214BCB -:1036000052025E6219680A431A60002D0BD100F065 -:103610009BFC02221C4B1A608023DB055A62013A94 -:103620009A6200F051FB0023039A934220D1002DAF -:103630000AD100F089FC144B03221D608023DB05B6 -:103640005A629D6200F040FB8023BA681B039A42D5 -:1036500008D9002E06D000220A4B0C495A621A687B -:103660000A401A600198FEF761F9002005B0F0BD2C -:10367000009A0299D2181278CA540133D4E7C0468E -:103680004C43FF1F00C8004000C00040FFFFFEFF8A -:10369000F0B587B0029103920400FEF733F9019070 -:1036A00000F052FC802302250122234EDB05356009 -:1036B0005D629A6200F008FB204F3B682B42FCD110 -:1036C00020230493049B5A1E0492002BFAD11C4D14 -:1036D0002B68002BFCDA0120FFF7FCFD002802D04C -:1036E000112007B0F0BD2000039A029900F06CFC95 -:1036F000022304003A681A42FCD120230593059B5B -:103700005A1E0592002BFAD12B68002BFCDA0120FF -:10371000FFF7E0FD051EE3D100F016FC8023032235 -:10372000DB0535605A629D6200F0CEFA0198FEF723 -:10373000FDF8E0B2D5E7C04600C0004090C80040A8 -:1037400000C80040F0B5802489B00600FEF7DAF822 -:10375000E405A36A02250393029000F0F5FB012320 -:10376000304F3D606562A36200F0AEFA2E4C2368D4 -:103770002B42FCD120230593059B5A1E0592002B5A -:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD -:10379000002803D01124200009B0F0BD244B236081 -:1037A000022322681A42FCD120230693069B5A1E4C -:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 -:1037C00089FD021EE6D11B4B03211E600300019000 -:1037D0000090202000F040FB022322681A42FCD116 -:1037E00020230793079B5A1E0792002BFAD12B68C0 -:1037F000002BFCDA0320FFF76DFD041ECAD100F098 -:10380000A3FB80230322DB053C605A629C6200F02C -:103810005BFA039B002B01D1FFF776FD0298FEF7C0 -:1038200085F8B8E700C0004090C8004000C80040DC -:103830000100000694C8004007B50002019104226F -:10384000000A01A9FFF724FF0EBD000073B50500B3 -:1038500005240B4AA3005B429B1819686B46DE1DCA -:103860003000FFF7B3FA022804D133782B55013C1E -:10387000EFD276BD052CFCD00128FAD10230F8E752 -:10388000140900111F2807D8012380228340D20584 -:1038900091680B43936070473F2808D8012380222A -:1038A00020388340D20551690B435361F3E75F2809 -:1038B000F1D80123802240388340D205116A0B439E -:1038C0001362E8E71F2807D8012280218240C9053A -:1038D0008B6893438B6070473F2808D80122802172 -:1038E00020388240C9054B6993434B61F3E75F2859 -:1038F000F1D80122802140388240C9050B6A9343E8 -:103900000B62E8E71F2810D880230200DB05153A78 -:103910001968012A06D820229143196019680A43C0 -:103920001A60704701228240F6E73F2811D88023B1 -:103930000200DB05353AD968032A06D810229143E4 -:10394000D960D9680A43DA60EBE701222038824067 -:10395000F5E75F28E5D842238022181A413B8340CF -:10396000D205516A99435162516A0B435362D8E7B9 -:1039700010B50400012813D1A022184992050B6844 -:103980005B015B0913430B60154B164A1968114024 -:10399000154A0A431A60402219680A431A6010BD8A -:1039A0000028FCD101000A2000F0B6F921000B200C -:1039B00000F0B2F9C0220A4B920019680A43402174 -:1039C0001A601A688A431A60B022044912060B680A -:1039D0005B015B0913430B60E1E7C04614F0004054 -:1039E0001CF000407F00FEFF80FD010072B6074A18 -:1039F0001368013313600422054B1A600023054A43 -:103A000013608022D2055360FEE7C0467808FF1F8E -:103A1000C0F00040C4F0004005490B68002B05D100 -:103A2000044A0A6004490A60044A13607047C046A9 -:103A3000140AFF1F841E0000380AFF1FC4F0004054 -:103A40000023034A1360034A1360034A136070475C -:103A500054F0004040F1004044F10040002310B514 -:103A6000184C8AB0009301932378012B27D0694624 -:103A7000012000F059FA002817D1009B1249029347 -:103A8000019B06AA0393114B02A81B680493104BD9 -:103A90001B68059300F088F910220E4906A800F073 -:103AA000D3FA002804D1FF23237000200AB010BDF0 -:103AB0000123094A074902A8237000F075F9012083 -:103AC000F4E7C0464464FF1F1029001108290011C3 -:103AD0000C290011202900114864FF1F13B501248F -:103AE0006946012000F020FA034B00940193FFF790 -:103AF000B5FF200016BDC046BB0B000010B5FFF798 -:103B00009FFFFFF7EBFF002802D0024B984710BD44 -:103B1000FEE7C046E1A2000002B471464908490030 -:103B2000095649008E4402BC7047C04602B4714633 -:103B300049084900095C49008E4402BC7047C046F0 -:103B400003B47146490840004900095A49008E44AF -:103B500003BC70470000000001B40248844601BC69 -:103B6000604700BFC1F7000001B40248844601BCB1 -:103B7000604700BF81B5001101B40248844601BC12 -:103B8000604700BFE512010001B40248844601BC51 -:103B9000604700BFADAE000001B40248844601BCDE -:103BA000604700BFBD0B010001B40248844601BC60 -:103BB000604700BF8B52010001B40248844601BC3B -:103BC000604700BF090E000001B40248844601BCF2 -:103BD000604700BF0934010001B40248844601BCBB -:103BE000604700BF8914010001B40248844601BC4B -:103BF000604700BF090E000001B40248844601BCC2 -:103C0000604700BFDD0A010001B40248844601BCE0 -:103C1000604700BFF535010001B40248844601BC8D -:103C2000604700BFD1AE000001B40248844601BC29 -:103C3000604700BFF935010001B40248844601BC69 -:103C4000604700BF21A9000001B40248844601BCBE -:103C5000604700BF6911010001B40248844601BCFD -:103C6000604700BF8552010001B40248844601BC90 -:103C7000604700BF8944000001B40248844601BC8B -:103C8000604700BFC95C010001B40248844601BC22 -:103C9000604700BF8D11010001B40248844601BC99 -:103CA000604700BFE94C010001B40248844601BCF2 -:103CB000604700BF0167010001B40248844601BCAF -:103CC000604700BF4DF9000001B40248844601BCC2 -:103CD000604700BF9DA9000001B40248844601BCB2 -:103CE000604700BF19FA000001B40248844601BCD5 -:103CF000604700BF9D6A000001B40248844601BCD1 -:103D0000604700BF3D71010001B40248844601BC18 -:103D1000604700BFB70E000001B40248844601BCF2 -:103D2000604700BFFDA1001101B40248844601BCF8 -:103D3000604700BFF90D010001B40248844601BC90 -:103D4000604700BF71B0000001B40248844601BC66 -:103D5000604700BF8512010001B40248844601BCDF -:103D6000604700BFEDA5000001B40248844601BCD5 -:103D7000604700BF75F8000001B40248844601BCEA -:103D8000604700BFED68010001B40248844601BCF1 -:103D9000604700BF016C010001B40248844601BCC9 -:103DA000604700BF01D7000001B40248844601BC4F -:103DB000604700BFDD3F000001B40248844601BCFB -:103DC000604700BF6D0B010001B40248844601BC8E -:103DD000604700BFED6B010001B40248844601BC9E -:103DE000604700BF6137010001B40248844601BC4E -:103DF000604700BFC115010001B40248844601BC00 -:103E0000604700BFE9F6000001B40248844601BCE7 -:103E1000604700BF0134010001B40248844601BC80 -:103E2000604700BF6DF6000001B40248844601BC43 -:103E3000604700BFBD5C010001B40248844601BC7C -:103E4000604700BF0189000001B40248844601BCFC -:103E5000604700BFE917010001B40248844601BC75 -:103E6000604700BF496D010001B40248844601BCAF -:103E7000604700BFD9B0000001B40248844601BCCD -:103E8000604700BFCD0C010001B40248844601BC6C -:103E9000604700BF116E000001B40248844601BCB7 -:103EA000604700BF85C1000001B40248844601BCE0 -:103EB000604700BFE90B010001B40248844601BC21 -:103EC000604700BFC166010001B40248844601BCDE -:103ED000604700BFE927000001B40248844601BCE6 -:103EE000604700BFD544010001B40248844601BCCC -:103EF000604700BFB352010001B40248844601BCD0 -:103F0000604700BF2144000001B40248844601BC60 -:103F1000604700BFC56D010001B40248844601BC82 -:103F2000604700BF8D82000001B40248844601BC96 -:103F3000604700BFE1AC000001B40248844601BC08 -:103F4000604700BF7997000001B40248844601BC75 -:103F5000604700BF75A9000001B40248844601BC57 -:103F6000604700BF53B9000001B40248844601BC59 -:103F7000604700BF7912010001B40248844601BCC9 -:103F8000604700BF5976010001B40248844601BC75 -:103F9000604700BF51B8000001B40248844601BC2C -:103FA000604700BFC1A5000001B40248844601BCBF -:103FB000604700BF156B010001B40248844601BC94 -:103FC000604700BFF9ED000001B40248844601BC1F -:103FD000604700BF9573010001B40248844601BCEC -:103FE000604700BF8937010001B40248844601BC24 -:103FF000604700BFDD0C010001B40248844601BCEB -:10400000604700BFC9A9000001B40248844601BC52 -:10401000604700BFE9D4000001B40248844601BCF7 -:10402000604700BFA9D8000001B40248844601BC23 -:10403000604700BF0D52010001B40248844601BC34 -:10404000604700BF2D6C010001B40248844601BCEA -:10405000604700BFCD4C010001B40248844601BC5A -:08406000604700BF05340100B8 -:104068000200000036BE00110100000048BC00112B -:104078000200000032BE001101000000A840FF1F2E -:104088000200000050BC001101000000BC61FF1FCD -:104098000200000030BE0011030000003061FF1F65 -:1040A800120000000200000036BE001101000000EE -:1040B80090BC00110200000032BE00110100000097 -:1040C8008DBC0011020000009ABC00110300000022 -:1040D8006B61FF1F0200000030BE001103000000EA -:1040E8008061FF1F0200000032BE001101000000C5 -:1040F8008CBC00110200000098BC001103000000F5 -:104108004161FF1F0200000030BE001103000000E3 -:104118006261FF1F0200000036BE001101000000AE -:10412800D0BC00110200000032BE001101000000E6 -:10413800F141FF1F02000000E2BC00110100000075 -:10414800CBBC00110200000032BE001101000000CB -:10415800F041FF1F02000000E0BC00110100000058 -:104168008861FF1F0200000032BE0011010000003C -:10417800EF41FF1F02000000DEBC0011010000003B -:10418800BBBC00110200000032BE0011010000009B -:10419800EE41FF1F02000000DCBC0011010000001E -:1041A800B6BC00110200000032BE00110100000080 -:1041B800ED41FF1F02000000DABC00110100000001 -:1041C800B1BC00110200000032BE00110100000065 -:1041D800EC41FF1F02000000D8BC001101000000E4 -:1041E800ACBC001102020202020200000000000042 -:1041F8000D0C0000A54B00116B4B001124BD0011E4 -:1042080090011D0018001800FFFF070102030405B4 -:104218000602010600000000000000000000000087 -:104228000000000000000000000000000000000086 -:10423800030000000200000036BE0011010000006B -:1042480044BD00110200000032BE00110100000050 -:10425800AC42FF1F020000004EBD0011010000002B -:10426800B661FF1F0200000030BE0011030000000D -:104278002064FF1F0200000032BE00110100000090 -:10428800AC42FF1F020000004CBD001101000000FD -:10429800B861FF1F0200000030BE001103000000DB -:1042A8001864FF1F126C6C6C00000000005800407E -:1042B800151600000001000000000111FFFF0000BA -:1042C8005048593600000000000000000B000500AF -:1042D800F0000000B4000028002800283075A00075 -:1042E800A000A000A00000080008E001F0001000F5 -:1042F8001000100010001000100050005000500076 -:1043080010001000D0070000000000000F0001009E -:104318000500307507001000010081FF0000000053 -:10432800FF000000E5730011ED7100117D6F0011B1 -:10433800FFFF0100FF000000019E00117D9B00119E -:10434800959A00110000000000000000000008001D -:10435800040000003B0001085902E0018821280000 -:10436800FF0000000200000036BE0011010000003E -:10437800FCBE00110200000032BE00110100000066 -:10438800E943FF1F020000002EBE001101000000DB -:104398000068FF1F0200000032BE0011010000008B -:1043A800E843FF1F020000002CBE001101000000BE -:1043B800E643FF1F0200000032BE001101000000AA -:1043C800E443FF1F020000002ABE001101000000A4 -:1043D800DC43FF1F180018001D00900102000003B5 -:1043E800020200000200000036BE001101000000B9 -:1043F80010BF00110200000032BE001101000000D1 -:104408002C44FF1F0200000028BE0011000000001D -:10441800000000000200000030BE00110300000090 -:064428002068FF1F20FFC9 -:040000051FFF184180 -:00000001FF diff --git a/bthome_phy6222/bin/BOOT_THB2_v14.hex b/bthome_phy6222/bin/BOOT_THB2_v14.hex deleted file mode 100644 index 4d7110d..0000000 --- a/bthome_phy6222/bin/BOOT_THB2_v14.hex +++ /dev/null @@ -1,2999 +0,0 @@ -:020000041100E9 -:10300000002373B52B4D2C4C28006361022601F080 -:1030100067F94021FE2221742800284B009601F018 -:10302000B1F9002836D1217CFF222800244B0096DC -:1030300001F0A8F900282DD1224BA2899A4226D16D -:10304000E389214A93420DD1204B6361204B2268D2 -:10305000002A03D1002B01D043CB43C4280001F048 -:103060007DF973BD1B4A934201D00023EFE71A4B51 -:103070001A4A1B68934206D9C02304222800217CE7 -:103080009B0001F0F5F9114B6361154BDFE700235D -:103090002374EAE7CC233821AC2228009B01217459 -:1030A00001F0E6F90028F2D10E4B63610E4BE3818B -:1030B0000E4BCCE7F441FF1F9061FF1F9C61FF1F87 -:1030C0009E61FF1F59590000830500000D4100114A -:1030D0001CB9001182150000B461FF1F87130000A6 -:1030E00028B90011C5410011AAAAFFFF10B90011AB -:1030F000F7B5164B0192C318021D002000938823D8 -:103100005B05D3181B685C1C1AD09CB2402C18D8E5 -:103110008D781E0CAC466746CD782D023D43AE42FD -:1031200006D1019800280ED110000C70240A4C70B2 -:1031300003249BB20733A343D218009B9A42DED3E9 -:10314000FEBD4432F9E71000FAE7C046FC0F00006C -:10315000802213B503000324019189B25201073183 -:103160009B18A14304305A1A88235B05C3181B68B7 -:10317000591C03D190429241104016BD99B240298A -:1031800007D80B000733A343C0189042ECD30020AC -:10319000F3E74430F9E7134B134A1B68126810B584 -:1031A000FA24934201D81A00F824104BE4021B6859 -:1031B0009A4210D813000E4A12689A420ED3013375 -:1031C00007D1F823DB029C4203D10A49054808F0E5 -:1031D00003FB200010BDFC24E402ECE7FE24E40223 -:1031E000F7E7C04600C0071100D0071100E0071143 -:1031F00000F00711FFFFFF7FF0B59BB015000490B2 -:103200000391402A00D9A0E006AB59801A80FFF74D -:10321000C2FF0400042816D9002206A9FFF768FFA0 -:10322000052810D906AB1B88AB420CD1002D07D066 -:10323000514B2A000499C01808F08EF9002802D1D9 -:1032400001201BB0F0BD06AB1D8020000699FFF7E2 -:103250007FFF041E7BD1069B0793FFF79CFF802313 -:103260005B01C618802307001B039E4201D3F8268A -:10327000F60288235B05F31801931B68013302D023 -:10328000019808F0C1F83D49019808F0A5FA3B1DE6 -:103290000293331D05938822029B52059B181B68DD -:1032A00008935A1C3CD044219AB20091402A04D879 -:1032B0000320D11D814389B2009103991B0C8B42DD -:1032C00024D0402A22D80122300008A9FFF710FF9D -:1032D000021E1BD1380008A9FFF70AFF04000428CA -:1032E00031D9009A059B9B1880225201B218934253 -:1032F00040D288235B05C118009A09A808F054FA47 -:103300001D4B009A09A9F01808F0AEF8009A029B2C -:103310009446634402931A4B029AFB189A42BAD31A -:1033200088235B05FC1821680198013908F054FADC -:10333000200008F069F8039A07AB5A80300007991B -:10334000FFF706FF0400002C03D1002079E70428D2 -:10335000FBD988235B05E018069908F03DFA0323A2 -:10336000EA1C9A4300D16BE7034B0499E01808F07C -:103370007BF865E70424ECE704000011FFFFFF7F02 -:10338000F80F0000F7B505001400402A21D80027E7 -:1033900001AE71803780FFF7FEFE042816D93A008F -:1033A0003100FFF7A5FE042810D93688BC420BD0A7 -:1033B000BD4209D0221CB44200D9321C064B92B245 -:1033C000C118280008F0F0F930B2FEBDC04300B2C9 -:1033D000FBE703204042F8E70400001137B5042260 -:1033E00004000D0001A81649FFF7CCFF02000428D5 -:1033F0000BD1019BA34208D3AB4204D0104901A8D2 -:103400000195FFF7F9FE01203EBD0E4C2368200018 -:10341000019307F0F9FF019920000139019108F0AB -:10342000DBF980235B01E418074B9C42EED10422B8 -:10343000034901A80195FFF7DFFE0020E4E7C0463D -:103440005555000000C007110000081130B589B0C3 -:1034500008F00AF910226946254807F005FF254BB8 -:10346000009A9A420ED1019B029A0F2B33D8002169 -:1034700001240698013B08D2002900D00292029B49 -:10348000013331D10023029325E0551CF2D1020013 -:103490002100EFE710341022200004A907F0E4FE19 -:1034A000029B013301D1069B0293882304995B059B -:1034B000C918059B06981A03120B049105928142C4 -:1034C00003D02B4201D108F06FF9019B013B01931E -:1034D000019B002BDED1029B002B03D004930498A8 -:1034E0004168084709B030BDE025014C2D03EFE7E6 -:1034F00000000111504859368022F8B5964C974B80 -:10350000D200002120001C6007F01EFF2300944A17 -:1035100088331A60934B1A786A23002A00D011333B -:10352000E3620A232365904B37221B780820A363AC -:103530008E4B2118E361102323628D4B3B25636181 -:10354000C823DB00A36123008C331A602823013ACF -:10355000E26320646364CA67043A211DCA672100DC -:10356000BC310D602100C03108602100C4310B6006 -:1035700021000635CC310D602100083DC8310D60B9 -:103580002100D0310A602200D43210602200D832EB -:10359000136022000227E032210017604222DC3152 -:1035A0000A6021001B3DE4310D602100E831086014 -:1035B0002100EC310B6023000521F4331960230056 -:1035C000F0331A602300183290331A6023009433CA -:1035D000186023001E3A98331A60AF23DB00236083 -:1035E000644BFA262363644B644DE360644BF03113 -:1035F000A3642300FF31FC33B600A16021611E608B -:10360000A5627325E5656D3D6565A56596255D4AF1 -:10361000AD00E264666258606766A566002709250A -:10362000A767E566584F594D606720002567E26738 -:103630003A6015279C30676007001A203860200028 -:10364000A0300700212038602000A83007004C4837 -:1036500038602000F830066026006427A436376002 -:1036600026005F3FAC3637602600033FB036376038 -:103670002600C637B436376026000027B8363760D4 -:1036800038269E60424E96205E64424E5A66DE6147 -:10369000414E9A645E62F53EFF3E9E621E269A6728 -:1036A000354A8000DE661F675F67DD651D6618624C -:1036B000DA67BE23394A5B00E250394BD8382350D1 -:1036C00004302250C4225200A350C623E4205B00E1 -:1036D000E1500433334AE1503349344BD16034492B -:1036E000800019503349E938FF3819503249043005 -:1036F000195032493248D16132491163324951631C -:103700001900F4310860CE20304940001160304982 -:10371000195019002F48F83108602F49D1658221CE -:103720002E4A89005A501A002D490832D1671A00D2 -:103730002C49B432116088212B4A89005A501A0052 -:103740002A49883211602A4ADA6407F04DFD0120C7 -:1037500007F09AFFF8BDC0460004FF1F2C64FF1F4E -:10376000106FFF1F2444FF1F4A0AFF1F3A07000083 -:1037700080C3C9019A020000DC0500006A1800003D -:1037800050C3000088130000F009FF1F204E000006 -:103790006509FF1F68100000C409000040420F00C7 -:1037A00010270000FC00FF1FC11BFF1F0000FF1FB0 -:1037B000152CFF1FA52FFF1F3D2EFF1F811FFF1F71 -:1037C0007126FF1F9D1FFF1F4921FF1F0D1FFF1F98 -:1037D0009528FF1F7D29FF1FD918FF1FA127FF1F55 -:1037E000C524FF1FD124FF1F0D1EFF1FC51EFF1F75 -:1037F000851DFF1F0223F0B50124614D614E2B7022 -:10380000614B91B01C70614F039333680021042019 -:10381000BB7006F0E5FB042006F0DCFA00239842BA -:1038200005D0BA78552A02D0332A00D09BE0336005 -:10383000042006F04FFD07F0C7FEFFF75DFE07F01E -:10384000EBFE1F2201240021514B10AE1A70514B88 -:103850001C70514B1970514B19689143163A0A4329 -:103860001A60602219689143403A0A431A6007F0CF -:10387000F3FC07F0C1FEC120FF21494B80001A581C -:103880008A431A50C522920098588843BF39014391 -:1038900099509858434908408021C901014380202C -:1038A00099509958C0050902090A0143995080218D -:1038B0003D48490107F0C0FE032322003B49019423 -:1038C00000933B4807F010FD2C223A4905A807F069 -:1038D0006BFF05AC61782078023406F09BFAA642B3 -:1038E000F8D1354C1120002106F0A8FB2268334B9B -:1038F00003201A40A023DB021343236080232268A5 -:103900009B041343236022682D4B1A4080239B03A2 -:10391000134323602B4A2C4B934200D8012007F01D -:103920000BFD07F071FE80232268DB041343236044 -:10393000287807F0E9FD039B1878C0B207F004FF70 -:1039400007F0B2FC2149042007F036FE06F08EFC99 -:1039500000F0A8F800F0B8FD00F060FE00F004FAF6 -:10396000002011B0F0BD00932100184A042007F098 -:1039700093FE8023DB059C62FFF768FD58E7C04695 -:103980004A0AFF1F34F000402444FF1FC061FF1F9C -:10399000480AFF1F490AFF1F680AFF1FBCF00040CA -:1039A00000E100E0FF00FFFF2844FF1FAC56FF1FAF -:1039B0002854FF1F38B8001114F00040FF7FF8FFB3 -:1039C000FFFF9FFF0080FF1F106FFF1F3B000108DC -:1039D00070B500252549264A26484D6308CA1B05AF -:1039E0001B0DED188242F9D100268022224B920550 -:1039F0008B630921214B224C1E62224B1120DA6776 -:103A0000214BDA688A43DA609A6820490A409A6052 -:103A1000266007F0E1FC112007F05EFD8022636C58 -:103A200093436364EE24E4006C43194A200C0400C1 -:103A3000642390420AD8FA223300D200904205D97A -:103A4000144B0A21C01807F017FDC3B2124A112007 -:103A50001372D48007F050FC104B1B78002B04D15C -:103A60000F4B1021187807F017FD70BD00000540BE -:103A70008805054000060540FF01000000F00040F9 -:103A80000038004004E100E03CF00040FFDFFFFFB1 -:103A9000B70B000030F8FFFFA861FF1FE263FF1FB4 -:103AA000E061FF1F002210B51100112007F0F4FBA8 -:103AB00010BD0000002370B50925334E334C33622E -:103AC000E3681120AB43E36007F006FD112007F027 -:103AD00083FC112007F0F8FB4023226811201343D8 -:103AE000236080236268DB02134363608023A26843 -:103AF0001343A360A368264A1340A3608023A268EF -:103B00009B0113431022A360236C9343236401237E -:103B1000226C1A432264802252003262216B1D4AB9 -:103B200011402163616B11406163A16B1140A1637E -:103B3000E16B0A40E263E26817490A40E260174A13 -:103B400011680B43136007F00FFEFD21144B154A5B -:103B500089005A508023C720626B5B031343636361 -:103B6000E36880001D43104BE56019580F4A11406F -:103B7000802212020A431A50802292051A600822FB -:103B80000B4B5A6370BDC04600F000403CF0004053 -:103B9000FFFFDFFFEFFFEFFFFFFF7FFF0038004079 -:103BA0000000FF1FD139001100E100E0FF00FFFF1E -:103BB0000000054030B503A804880B20002C0ED16E -:103BC0004968074D08784978090201430A20A9424B -:103BD00005D1012120001980024B1B7A137030BDE2 -:103BE000192A0000A861FF1FF7B5150008AA16885A -:103BF0004A680F4F14785278120222430A24BA42BC -:103C000014D10122DBB2019200962A0007F07EFA5D -:103C1000041E0BD1074B1B68002B07D068782A784D -:103C20000002104342425041013098472000FEBD3F -:103C3000022900002C61FF1F30B501250379040023 -:103C4000BFB02B4211D00A49408806F0CBFD284274 -:103C50000BD0084B01A95B8D4D800B80064B0022D9 -:103C60001B7A60880B7103F09DFE3FB030BDC046EB -:103C70002461FF1F6840FF1FA861FF1F10B50549A1 -:103C8000054806F065FD0421044A054806F022FDBA -:103C900010BDC0462461FF1FFFFF000064B8001183 -:103CA0006840FF1F10B5024804F0FEFC10BDC0467E -:103CB000393C0011062310B5837010330371443B67 -:103CC00043712A3383714433C371002302220121DB -:103CD00003720E4B027041701C8881724472197A13 -:103CE0000273C1729A784273DA7882730322C273C4 -:103CF0001A7902745A7942740C2282749A79C274C5 -:103D0000DB7903751123C370152010BDA861FF1F57 -:103D100010B5142007F0B0FC124B142200211860DB -:103D200007F012FB002007F017FB012007F064FAF0 -:103D3000022007F089FC032003F05AFF042005F05D -:103D40006FFF052003F098F9062003F065FE0720B9 -:103D500001F0FCF9082006F09DFC092000F0E6FFC8 -:103D600010BDC0463061FF1F07F026FB012007F0A1 -:103D700013FC07F0E1FC0000094B10B50400984269 -:103D800005D0012904D12000064906F0E1FC10BD50 -:103D90000229FCD1013904F045FC0028F3D0F6E7F4 -:103DA000FEFF00005661FF1F70B50D7A100004AAD7 -:103DB0002C00168810221440154220D1002E20D14C -:103DC0000A78022A18D14A68517815780E4A0902F1 -:103DD0002943914205D00D4A914209D01C800A2402 -:103DE00004E014220A491A8007F0DEFC200070BDAE -:103DF0000C2208491A80F7E71C800124F6E7082402 -:103E0000F4E70B24F2E7C046F3FF0000F4FF0000E4 -:103E1000B042FF1F40B9001110B50400074908481F -:103E200006F096FC074804F07FFB0020E40704D569 -:103E30000721054A054806F04DFC10BD5661FF1FDD -:103E4000FFFF0000793D0011A8B80011AC40FF1F32 -:103E500000B50C4BBFB01A780B4902A800F098FCD3 -:103E60006B4680B2D880002809D06A46074B01A96A -:103E70001B889380064B0022188803F093FD3FB007 -:103E800000BDC0463461FF1F3561FF1F0641FF1FA3 -:103E90001042FF1F00B50C4BBFB01A780B4902A8A7 -:103EA00001F0C6FC6B4680B2D880002809D06A4673 -:103EB000074B01A95B8D9380064B0022188803F005 -:103EC00071FD3FB000BDC0465E61FF1F5F61FF1F17 -:103ED000AC40FF1F1042FF1FF7B50E00377A1C00E1 -:103EE00008AB11003D001A8820231D401F423CD121 -:103EF0003378022B3BD173681F785B781B023B43FE -:103F00001E4FBB4208D01E4FBB4214D01D4DAB42CA -:103F100021D00A252800FEBD002A2AD1142C2AD837 -:103F20002200F06807F040FC174B1C70012CF1D9FF -:103F3000FFF7B0FFEEE7002A1BD1202C1BD8220090 -:103F4000F06807F031FC114B04211C70104B1878FD -:103F500007F0A2FADEE7E3B20124009201940A001E -:103F6000310007F0D3F80500D4E70825D2E7012592 -:103F7000D0E70B25CEE70D25CCE7C046F3FF0000C8 -:103F8000F4FF0000022900005E61FF1F3461FF1F83 -:103F9000E061FF1F332310B5040003700A220749B4 -:103FA000013007F001FC064B0F201B681A0AE37270 -:103FB00022731A0C1B0E6273A37310BDA861FF1F3E -:103FC000D061FF1F30B5012503790400BFB02B423B -:103FD00013D00B49408806F005FC28420DD06A46F4 -:103FE000084B02A81B889380FFF7D4FF6B46D8804C -:103FF0000022608801A903F0D5FC3FB030BDC04667 -:104000005661FF1F0641FF1F10B5024804F04CFB2C -:1040100010BDC046C53F001170B5160004AA148833 -:1040200005AA15784A685078117800022A4A084390 -:10403000801805284BD807F03FFA03131E29343F98 -:104040000720032C0BD80422121BAA4200D92A00F5 -:1040500022491A803000091907F0A6FB002070BD24 -:104060000720112CFBD81222121BAA4200D92A00C9 -:104070001B491A80EEE707200E2CF0D80F22121BE6 -:10408000AA4200D92A0017491A80E3E70720032C27 -:10409000E5D80422121BAA4200D92A0012491A802C -:1040A000D8E70720032CDAD80422121BAA4200D931 -:1040B0002A000E491A80CDE70720032CCFD804220E -:1040C000121BAA4200D92A0009491A80C2E700221D -:1040D0000A201A80C3E7C046DCD5FFFFF3B8001101 -:1040E0007C61FF1FE3B80011DEB80011D9B80011E0 -:1040F000D4B8001110B50D21024A034806F0EAFABF -:1041000010BDC046C8B800111C41FF1FF0B5002407 -:10411000274E85B03000B47100F0E2F8254D264BF3 -:10412000EA89297C9A422FD10423300003AA00F0A7 -:1041300057F90400300000F011F90123B371002C8D -:1041400034D16B4699892B68C9BA4B4329891B4ADC -:104150001B145B1853806B46D9896B6849BA89B2C6 -:104160004B4369891B0C5B181548191C1BB2834211 -:1041700000DD011C0B0400D5002113889180013360 -:104180001380200005B0F0BD0227220003AB3000F1 -:10419000009700F0F7F80E230400297C012230007C -:1041A00000976B4400F0EEF80443C3E71C00E8E717 -:1041B000F441FF1F9061FF1F83050000A861FF1FEE -:1041C0000F27000073B5234E300000F089F8224D10 -:1041D00007236A463000297C00F002F90400300011 -:1041E000002C33D16B461B787F2B2FD800F0B6F80C -:1041F0006B46D878F02302041B031A406B469B8859 -:1042000016495BBA9BB21A432B68000953432A89AB -:104210001B0C9B184B806B465A789B7812031B0132 -:104220001A436B68024353436A891B0C9B180C4862 -:104230001A1C1BB2834200DD021C130400D50022AD -:104240000B888A8001330B80200076BD00F086F851 -:104250000124F9E7F441FF1F9061FF1FA861FF1FD0 -:104260000F27000070B5114C237C002B0FD0382B8A -:104270000ED10F4D280000F033F8CC23AC222800DB -:10428000217C9B0100F0F4F8280000F067F870BD75 -:10429000084BE2899A42FAD1054D280000F020F837 -:1042A00000222800217C00F0C5F8EDE79061FF1F97 -:1042B000F441FF1F8305000010B5084B1A7C002A4B -:1042C00009D05B69002B06D09847041E01D0FEF789 -:1042D00097FE200010BD0124F9E7C0469061FF1F42 -:1042E00070B5C17905000C00631E9C411A4BE402B5 -:1042F000E41849000460C9B2007905F0D5FEE979F7 -:10430000687949000131C9B205F0CEFEE87909307B -:10431000C0B206F0D9FF0023E36661332360AA79B7 -:104320005B3B002A0ED022689A43023B1343236072 -:104330000A23E3610733236200232363A36301336A -:10434000E36370BD22689A4302231343236046232C -:1043500063610633A361EFE70050004070B50025AC -:1043600004000368DD66C0790930C0B207F0B4F814 -:104370002900207905F034FE2900607905F030FE2F -:1043800070BD0000F8B51E0006AB1D780023046860 -:104390001700E366616007F067F901238022E36696 -:1043A0002B0027615200013B08D206F03DFF082098 -:1043B0000A4A1168002D03D12800F8BD2261F2E7F6 -:1043C000236F034203D02369013D33700136136824 -:1043D0005B1A032BEED90125EEE7C0466008FF1FEC -:1043E00070B51C00002305681600EB66696007F0D5 -:1043F0003BF901238022EB6623005200013B08D2E7 -:1044000006F012FF08200A4A1168002C03D1200090 -:1044100070BD2A61F2E72B6F034203D02B69013C88 -:104420003370013613685B1A032BEED90124EEE7D3 -:104430006008FF1F002370B504681500E366616023 -:1044400007F012F90123E366256106F0EDFE8020F6 -:10445000064A80001168636B034205D113685B1A3A -:10446000032BF8D9012070BD0020FCE76008FF1F76 -:1044700070B51D00002304681600E366616007F054 -:10448000F3F80123E36626610F33626B1A42FCD016 -:104490002B0A23611023626B1A42FCD0EDB2256116 -:1044A00006F0C2FE8020074A80001168636B034259 -:1044B00005D113685B1A032BF8D9012070BD0020C9 -:1044C000FCE7C0466008FF1F10B5084CE368002BEE -:1044D00008D18022064B52021B689B186360054B73 -:1044E0001B68236007F080F8A06010BDD061FF1F3B -:1044F000C8F00040CCF0004070B5184A936A916A49 -:104500009942FBD116498A689A421FD39A1A8B6046 -:10451000144B0126186893B2D202D20E4343424391 -:1045200000204C681B0A1B1912029B180E4C0A68CB -:104530004B60551CA3420CD8002801D04B600A6088 -:104540000A4A136008680A4B186070BD581E821A28 -:10455000DDE7084A30009B182A00EAE700F0004037 -:10456000D061FF1F140AFF1F40420F00C8F0004037 -:10457000CCF00040C0BDF0FF70B51F4C23793F2B3D -:1045800001D93F2323711D4B22791A701878C0B2CC -:1045900007F0BAF818231A491A4A0B801A491380EF -:1045A0000B805380A379194980200B800C219380C4 -:1045B00001334B43164D191C0001834200D9011CE5 -:1045C0002980D1806379002B11D101336371237A63 -:1045D000012B01D8022323726279237A0D485343B9 -:1045E0000A21584306F048FF0B4D286070BDA02BF0 -:1045F000EDD9A023EAE7C046C461FF1F480AFF1FA8 -:104600000E42FF1FD043FF1F0C42FF1F0A42FF1F35 -:104610000842FF1F71020000B461FF1FF8B51421AA -:104620000020FEF7DBFE114C011E114D09D10C22BA -:10463000104BC1CBC1C4280006F086FEFFF79CFFDB -:10464000F8BD0C2220000C49FEF79CFE0C2802D07D -:10465000084B43CB43C40C2228000849FEF792FEC6 -:104660000C28EBD00C220021E5E7C046C461FF1FF7 -:104670009061FF1F34B90011FC0C0000F50C000024 -:10468000F0B51D4C8022A5440400882069465201E3 -:10469000400506F0A1FD902212016A44130020009B -:1046A00032C832C316C816C38023144C144FA668F0 -:1046B0009B033343A3603B6006F08EFF8823A06812 -:1046C0005B05C01806F0A0FE002588232900802283 -:1046D000A0685B05C01840196944520006F0C4FE8A -:1046E00080230135FF355B019D42EED1A6603E601F -:1046F000044B9D44F0BDC046FCEFFFFF4043FF1F4D -:104700009808FF1F04100000F0B5040087B00028CF -:1047100025D0684606F0E0FD1B4C022806D1062293 -:104720006946200006F018FF002816D069460023CD -:1047300001250F262F00E25C01331009103087405D -:1047400038002F00324097403A0002434A61043952 -:10475000062BEFD16846FFF793FF07B0F0BD182294 -:1047600069460A4806F038FD6A46A300D35801336B -:1047700005D01822FF21684606F0E6FDEAE701347D -:10478000062CF1D1E9E7C0466509FF1F00090011B9 -:10479000F0B5002504000E0085B0AA4200D183E0E8 -:1047A0004B1C087801934B788978377909021943B3 -:1047B000F3783F061B040B431F430397207065707B -:1047C000252800D193E033D8112813D806F0DCFE59 -:1047D00066000D010D010D010D01A700B500AE0031 -:1047E0000D010D010D010D010D010D010D010D0159 -:1047F000E7000701232800D1C0E0DB2800D016E144 -:10480000042A00D8A9E01025052A05D0551F2A0042 -:104810003800711D06F0C8FF05223100200006F0A7 -:10482000C3FF2A003900601D06F0BEFF05353BE0DE -:10483000562856D010D8332800D19AE0552836D0C3 -:104840002628DAD1894B2900132218001D0006F012 -:104850007BFDFEF7D5FB59E0712800D174E072288A -:1048600000D17DE0DC28C8D1022A00D875E0737839 -:10487000BFB26370B378A370032A05D0033A39003E -:1048800092B2F01CFEF7B8FC10223900E01CFEF7D3 -:1048900079FDC51C002807DA60705CE00C2220005E -:1048A000734906F081FF0C25280005B0F0BD013AE0 -:1048B000704D0C2A13D8002A0AD02800019906F05E -:1048C00073FFFFF759FE0C2228006B49FEF794FC9A -:1048D00029000C22601C06F067FF0D25E4E70C227E -:1048E000EBE7644D654B2A0043CB43C2E9E7013A4D -:1048F0005E4D0C2A11D8002A08D00199280006F034 -:1049000053FF0C2228005E49FEF776FC2900132293 -:10491000601C06F049FF1425C6E70C22EDE70522CE -:104920005849601C06F040FF0625BDE71222564993 -:10493000601C06F039FF1325B6E708225349601CB6 -:1049400006F032FF0925AFE77178F02905D8504B02 -:10495000188801F0C9FB0225A6E7FF236370FAE778 -:104960004C4B012A03D072785A706270F3E75B787F -:10497000F4E72000FFF70EFB050095E7042A04D9B1 -:10498000454D2F6006F030FEA860FFF7B5FD04220C -:10499000039003A9601C06F007FF052584E73F4D3F -:1049A000062A15D906222800019906F0D5FD00280F -:1049B0000ED006220199280006F0F6FE062238499C -:1049C0002800FEF719FC0123324A51780B4353703B -:1049D00029000622601C06F0E7FE072564E7012A8D -:1049E000BBD07078FFF790FEB5E7012800D004E750 -:1049F000931E2C4F1A2B04D87378002B09D100F08A -:104A000009F9294B39001D78601C6A1E06F0CCFE9E -:104A10004AE7551E2A000199380006F0C5FE2349D1 -:104A2000AAB23800FEF7E8FB00F02AF9E9E7DA2835 -:104A300093D1042A91D9082A15D9B37972791B0226 -:104A40001343F27912041A43337A1B0613433B6073 -:104A50003B68052231002000039306F0A5FE0422E6 -:104A6000601D03A96CE7FE236370F1E79061FF1FEF -:104A700040B90011C461FF1FFC0C000034B90011E3 -:104A8000F50C00009C61FF1F7C61FF1F4443FF1F6A -:104A90001042FF1FC061FF1FD061FF1F6509FF1F8C -:104AA000ADAC0000C163FF1FBF63FF1FAEDE00009F -:104AB00070470000020010B5094B0A32094C92B24F -:104AC000DA815A8298811882207802F073F90422E0 -:104AD000054B012120781A7006F0DEFC10BDC0469F -:104AE000CE42FF1F0A64FF1F0964FF1F013870B523 -:104AF000042809D806F0E0FC0309230812001E4B25 -:104B00000221187806F0C8FC70BD1B4B08211878EC -:104B100006F072FE0022194B1A72F5E7802200247B -:104B2000164B154D52001A81082128781A68DC723C -:104B300006F092FC2100287806F0FEFCE4E70E4B1C -:104B40000821187806F058FE0D48FFF7B3F80D4B12 -:104B50000D4A9B7993800D4A13800022074BDA722D -:104B60000132FF321A810A4B5B78002BCCD0094A04 -:104B7000136006F029FEC7E7E061FF1FB461FF1F65 -:104B80001942FF1FC461FF1FD043FF1F0A42FF1FCE -:104B9000C061FF1F34F0004010B5002904D1042883 -:104BA00002D10D3005F04AFA10BD000010B5012900 -:104BB0000ED104280CD10D3005F040FA054B1B78BE -:104BC000002B05D02622044B04485A72FFF772FFCF -:104BD00010BDC046E263FF1FB461FF1FC40900009F -:104BE0000300F0B50A4D8E18B14202D15200801870 -:104BF000F0BD0C782F6824093C5D0F271C700C78E1 -:104C000001313C402F683C5D5C700233ECE7C046EC -:104C10000442FF1F0D22114B10B51A700C23104CCB -:104C200010492370093A033B0F48637006F0BCFD3E -:104C30002D2301220D490E48A371FFF7D1FF012258 -:104C40000C49FFF7CDFF01220B49FFF7C9FF0022F6 -:104C50000A491000FEF7D0FA10BDC046DE63FF1F00 -:104C6000BF63FF1FF3B80011C163FF1F6709FF1F78 -:104C7000C663FF1F6609FF1F6509FF1FAEDE000048 -:104C800070B5124C132220001149FEF77BFB114D29 -:104C9000002817DDAB78002B14D0431C2B700923A0 -:104CA0006B70002300190370287829000130C0B20E -:104CB00006F0FAFB297822000139C9B2002005F07C -:104CC00027FC70BDFFF7A6FFEEE7C046C163FF1FDC -:104CD000AEDE0000BF63FF1F10B5114B1A781870CD -:104CE000002A0ED000280BD10E4B1A78062A07D8BE -:104CF0005423D340DB0703D50B4B187802F05AF846 -:104D000010BD0028FCD0074B1B78012B02D0033BC1 -:104D1000022BF5D8044B0121187806F0BDFBEFE714 -:104D2000E263FF1F0964FF1F0A64FF1F70B54D4E49 -:104D30004D4A4E493070042005F076FA00211120CA -:104D400005F07CF9112005F05DFAFEF759F906F03F -:104D50000BFC032246494748FFF742FF2D2403007E -:104D600004221C7044490130FFF73AFF30230470DD -:104D7000424D434C437083702E3B06222000414934 -:104D8000EB87FEF7FFFA062813D0200006F0A4FAFE -:104D9000022809D00321200006F0C6FC8D23E37011 -:104DA0006E3B237119336371062220003549FEF7EB -:104DB00023FA354B1B68FC335C64FFF761FF00206E -:104DC000FFF78AFF314C324A0121324B12782078AA -:104DD00001F0B2FF304A314B12780021207801F007 -:104DE000ABFF01222E4B1A702E4B9B78552B31D1E5 -:104DF0002D4B3B325A722D4B2D4AAB81EA812B82CF -:104E00006A822021307806F0BFFA0120404205F086 -:104E1000CBFB0120404205F067FCFFF76BF9FEF782 -:104E20002DFF00F09DFC01204042FEF7F5FF012020 -:104E300006F09AFAF02001F03BF90121307806F0F3 -:104E40002BFB307802F012F91A4806F085FCFEF7C9 -:104E500031FE70BD6422184B5B7953431A000A324D -:104E6000CBE7C046E061FF1F994B0011AD4B00112D -:104E70004443FF1F7C61FF1F9C61FF1FCE42FF1F49 -:104E80006509FF1FADAC00002C64FF1F0A64FF1F03 -:104E90003842FF1F1942FF1FDE63FF1FBF63FF1F62 -:104EA000B063FF1FC061FF1FB461FF1FC409000092 -:104EB000CE090000E261FF1FC461FF1FF8B50A00C0 -:104EC00020230D001A40194251D0534B1B78002B60 -:104ED0003CD0FFF711FB514B514C524E9968626820 -:104EE000737A8A1ADB039A4202D36160FEF7E2FD0D -:104EF000327A217A531EDBB299422AD1FFF7B2F9F6 -:104F0000637A002B1FD0013BDBB26372002B1AD1F6 -:104F1000454B9B78552B01D106F056FCE37A002BCC -:104F20000CD00023414A424FE3721388380001330A -:104F30001380FEF7BFFE390006F09EF964237079F6 -:104F40005843FFF7B7FD237A0133237220206840CE -:104F5000F8BD9142D4D300232372FFF7ADF9344F4B -:104F60003800FEF7A7FE390006F086F9C8E70BB255 -:104F7000002B0ADA2F4B187806F06EFB002801D0C0 -:104F800006F0CAFB80200002E1E70224214206D09D -:104F9000234B01201A72FFF79FFE2000D7E70B0773 -:104FA0001BD5FFF7A9FA1D4B1D491E4C98684A688E -:104FB000637A821ADB039A4202D34860FEF77AFDD5 -:104FC000FFF77AF9FFF74EF900F0E4FB2368DB07FF -:104FD00001D5FFF719F80820B9E71024214206D0BF -:104FE0000D4B1B78002BD8D1FEF75CFED5E70124D2 -:104FF000214209D0104800F06DF806F00DFC2100A8 -:10500000112005F01BF8C8E70424080020402142C5 -:105010009ED0FEF71DFFC0E7E263FF1FD061FF1FB8 -:10502000B461FF1FC461FF1FC061FF1FA861FF1FA4 -:105030001942FF1FE061FF1FFC41FF1FF0B51B4B32 -:105040001B4F1B883A8804001A4E1B4D85B09A42AC -:105050000DD832889A420AD3184B1A882B889A4264 -:1050600005D1174A174B12881B889A421BD005207E -:1050700001F074F83B8802AA1380338801905380B2 -:105080002B88114D93800F4B02A91B88D3800F4BA7 -:105090002A78188802F090FD0D4B08212878019A93 -:1050A0001C7006F0B9F805B0F0BDC046AE63FF1F36 -:1050B0000E42FF1F0C42FF1F0A42FF1FAC63FF1F7F -:1050C000AA63FF1F0842FF1F0A64FF1F1042FF1F51 -:1050D000A863FF1F13B50C4B1C78002C11D10028BE -:1050E00001D00A4B18600A4A0A4B11780A4A107814 -:1050F0000A4A01920A4A0092002205F001F92000B2 -:1051000016BD1124FBE7C0460964FF1FA463FF1FFF -:105110000864FF1FF863FF1F0A64FF1FE463FF1F9B -:10512000E863FF1F10B5064B12201B78052B06D134 -:10513000044B13221988044B187801F0EBF910BDC9 -:105140000964FF1F1042FF1F0A64FF1F10B50024EF -:105150000122114B52421870104B1C70104B1A80D8 -:1051600001F084FF04220F4B21001A700E480C320C -:1051700006F062F8102221000C4806F05DF80722C4 -:105180000B4B1C600B4B1C700B4B1C700B4B1A70A9 -:105190000B4B1C7010BDC0460A64FF1F0964FF1F43 -:1051A0001042FF1F0864FF1FF863FF1FE863FF1F23 -:1051B000E463FF1FBE63FF1FBD63FF1F1242FF1F9B -:1051C000BC63FF1FF8B5174C0600257806A8142409 -:1051D0000078052D23D1B41F134FA5B21824BD426A -:1051E0001DD88D1FADB2BD4219D8FA256D00AA4257 -:1051F00015D21D000D4F0A3DADB2BD420FD80C4C6B -:1052000026800C4C21800C4900240A800B4A138014 -:10521000FFF714FF0A4B0421187806F0EDFA20007E -:10522000F8BDC0460964FF1F790C0000750C000032 -:105230000E42FF1F0C42FF1F0A42FF1F0842FF1FC2 -:105240000A64FF1FF0B50BB20D0089B0002B00DB24 -:1052500070E1A44E307806F0FFF9041E50D00378B8 -:10526000A22B00D122E1D02B1AD0912B45D143782B -:105270000E2B42D19C4B82889A423ED19B4A836836 -:105280001278052A39D1032018567F2835D0984B3B -:105290001B68002B31D05B68002B2ED098472CE088 -:1052A0008078072829D806F007F90428183F3F74AA -:1052B000A8D86378002B0CD101218C4B19708D4B31 -:1052C0001A78002A5BD08C4B307801F035FD00282D -:1052D00055D00722854B1A7051E061780029F8D12A -:1052E000E378002B11D0854A854B1278307801F095 -:1052F00023FD60706378002BEBD1200006F00CFAE0 -:1053000080200002684009B0F0BD784B1B78022B6A -:10531000F3D00121307806F067FA0028EAD10121A4 -:10532000307806F0B9F8E5E76378002BD1D16F4FFC -:10533000032807D13B78052B02D101333B701EE0D7 -:105340000223FBE76F4B1A886F4B0293002A0BD0A6 -:105350001B78002B03D00121307805F05DFF3B78EE -:10536000062B04D1013BE9E7029B1A70F7E7042BF7 -:1053700041D10121029B3078197006F08DF85C4B09 -:105380001B68002BB9D01B68002BB6D0574A107889 -:1053900084E76378554F002B27D10622211D5B48F7 -:1053A00006F002FA62895A4B5A491A80A2895A4B6E -:1053B0001A80E3890B800521397058490A80584AC0 -:1053C0001380228A574B1A80574B1B78012B09D127 -:1053D0001F2000F0C3FEFA229200424304213078DD -:1053E00005F01AFF0022484B75E7312B00D070E71B -:1053F0000022454B1A700323A0E7062200214348F0 -:1054000005F01AFF0023454A04211380444A3078EE -:105410001380444A138006F0EFF90821307806F033 -:10542000EBF9A379083B5A425341304A03331370D6 -:10543000304B1B78002B06D0334B30781A78002A7B -:1054400006D001F0B7FC0122314B52421A8096E798 -:105450000121197006F020F8F5E70821307806F0F0 -:10546000CBF96378002B00D047E72C4B2D4F0293EC -:10547000E388029A04211380294B3078039323890F -:10548000039A138063893B8006F0AEF9002800D0B0 -:1054900033E7264B1B68002B00D12EE703990298B7 -:1054A0003A88098800881B68984726E74379132BB8 -:1054B00000D022E70389012B0AD11D4B1B78022B58 -:1054C00006D10821307806F097F9FFF72BFE14E794 -:1054D000052000F043FE08210200307805F09CFE14 -:1054E0000BE7C0460A64FF1F051400000964FF1F94 -:1054F000A463FF1F3842FF1F1942FF1FDE63FF1F17 -:10550000BF63FF1FE063FF1FE263FF1FB163FF1F65 -:105510001042FF1FB863FF1FBA63FF1FAE63FF1F78 -:10552000AC63FF1FAA63FF1FB063FF1FA063FF1FD1 -:10553000A863FF1F8020C001014200D0E2E6CB0734 -:1055400031D5324B1B78002B1DD0314E05AC337852 -:10555000052B1AD1023B23702E4B21001B7823729E -:105560002D4B1B7863722D4B187801F089FB0028B6 -:1055700009D007202A4B30701B68002B03D01B6812 -:10558000002B00D098470120BCE60E20254B0622B8 -:105590001B7825492370254B1B78637002ABC0181C -:1055A00006F002F9D8E7022308001840194209D092 -:1055B000174B1B78052B03D11D4B188805F044FEB3 -:1055C00002209FE60424214203D0FFF737FD20008C -:1055D00098E6082308001840194200D193E6154BBD -:1055E0001C78012C03D0022C0DD008208AE6124B27 -:1055F000124A134913481B881288098800880094AE -:10560000FFF7E0FDF1E7FFF78DFDEEE7E263FF1F37 -:105610000964FF1F1242FF1FBC63FF1F0A64FF1FC4 -:10562000A463FF1FBE63FF1F1342FF1FBD63FF1F65 -:105630001042FF1FA863FF1F0842FF1F0A42FF1FFF -:105640000C42FF1F0E42FF1F10B502A804880B205A -:10565000002C10D1496808784978090201430C48A8 -:10566000814209D1022119800A4B59881170DB78D7 -:1056700000205BB2537010BD074C0A20A142FAD142 -:1056800002211980034B998811705B79F0E7C046BD -:105690006E2A0000A861FF1F6F2A0000F7B51500F1 -:1056A00008AA16884A680F4F1478527812022243CB -:1056B0000A24BA4214D10122DBB2019200962A00D8 -:1056C00005F024FD041E0BD1074B1B68002B07D0EF -:1056D00068782A78000210434242504101309847CE -:1056E0002000FEBD022900001C64FF1F30B501250B -:1056F00003790400BFB02B4225D01449408805F03F -:1057000071F828420CD0124B01A95B8D00220B804E -:1057100002234B800F4B5B888B80608802F042F93C -:105720000D49608805F05EF8C0070CD50B4B01A948 -:105730001B8800220B8002234B80064B9B888B80AA -:10574000608802F02FF93FB030BDC0461464FF1FDF -:105750003C42FF1FA861FF1F0C64FF1F9642FF1F02 -:1057600010B5074C0749200004F0F2FF200006495D -:1057700004F0EEFF0721054A054804F0ABFF10BD19 -:10578000FFFF00001464FF1F0C64FF1F60B90011CD -:105790003C42FF1F10B5024802F086FF10BDC04614 -:1057A000ED5600110200F0B501270A480A4E5118C3 -:1057B0008B1A002B00DCF0BD0824157843086840E4 -:1057C00038404000805B013C58406D08002CF5D10A -:1057D0000132EDE7FFFF00007AB90011F0B50025B6 -:1057E0000F269D4200DBF0BD4C5D0709444034406C -:1057F000A400A05801357840F3E70000F0B589B067 -:105800006A460D000B000F27110010351C7801337C -:10581000260024093E40167054700232AB42F5D186 -:105820002023024AFFF7DAFF09B0F0BD80B900116A -:10583000F0B54E780B7889B036020C001700019055 -:105840001E43012A61D9954B9E4200D877E001336F -:105850009E421CD1062A17D1CA788B7812021A43AD -:105860000B791B0413434A7912061A438C4B5A6175 -:1058700000221A705A808B4A5A608B4A9A608B4A6F -:10588000DA60002009B0F0BD88225205EEE7884BAF -:105890009E423CD182498B78002B00D0F6E00C2A46 -:1058A00031D10F22A3789343E27812021343227975 -:1058B000120413436279120613434B60E279A07914 -:1058C00012020243207A00041043627A1206024355 -:1058D000CA60E27AA07A1202024376484A81834281 -:1058E00008D804236E49142201980B7005F05CFF60 -:1058F0001420C7E71201D21889235B059A42F0D819 -:1059000001238B70BDE7022AFAD00523EAE76A4A31 -:1059100001239642E6D1FFF705FC052F0CD9E37869 -:10592000A2781B021343227912041A4363791B06DF -:105930001343624A0393136005F046FFA1E7584DF5 -:105940002B78002B9DD1AB78002B00D1A0E02B89C8 -:1059500001339BB20093B34200D091E0132AD4D913 -:10596000CF7C8B7C3F02122120001F43FFF71AFFE0 -:10597000874200D08EE0002E3DD1E378A2781B0252 -:1059800013432279E96812041A4363791B0613430F -:1059900003930A228B4212D1FF23A370E370237179 -:1059A00063716B89002B09D1E37B227C1B021204FB -:1059B0001343A27B13431B0901336B8100226B89C4 -:1059C000002B8ED0002A67D1686837013818000B89 -:1059D0006B6900030390984205D9686105F014FDD6 -:1059E000EB780133EB7068681022A11C381805F0C1 -:1059F0003BFD2E8145E76F89009A7B1E9BB2934247 -:105A00003AD1E278A37812021A43237905A81B043D -:105A1000134362796C6812061A43EB680092039292 -:105A2000211D0C22049305F0BFFE0120260004A9CD -:105A300040421036FFF7E2FE013F012F17D1009AD6 -:105A40000B232861824200D04CE704221C4920002D -:105A500005F00AFD042203A9686805F0BDFBE968AA -:105A6000039AFF23914200D13CE7F73B3AE731002C -:105A7000FFF7C4FE1036DFE70923B742A4D831E7A9 -:105A8000009BB34200D9FCE607232BE7022329E75A -:105A9000032327E7062325E70A2323E7FFFE000069 -:105AA000B042FF1F00000111FFFF000050485936AF -:105AB00001FF0000FFFF001102FF000034F0004072 -:105AC000BC42FF1F10B5034C0B000122210000F067 -:105AD0006BFA10BD855C00110B8870B506000D00D7 -:105AE0000224162B11D92B000322094900F05CFA7D -:105AF000041E0AD1074B2A881B88191C934200D91F -:105B0000111C300089B200F0EFFA200070BDC046D1 -:105B1000B15C00114664FF1F10B54A780400013AD9 -:105B20000B000220012A07D80A78002A04D0052297 -:105B30002000024900F038FA10BDC046DF5C0011B9 -:105B40000A7810B50B0004000220002A04D00722B6 -:105B50002000024900F028FA10BDC0468B5D0011FC -:105B60000A7810B50B0004000220002A04D0092294 -:105B70002000024900F018FA10BDC046F15D001186 -:105B800010B5034C0B000B22210000F00DFA10BDE4 -:105B9000215E001110B5034C0B000D22210000F016 -:105BA00003FA10BD935E001110B5034C0B000F22D9 -:105BB000210000F0F9F910BDED5E00110A7810B572 -:105BC0000B0004000220002A04D011222000024908 -:105BD00000F0EAF910BDC046FD5E0011002310B5CB -:105BE0001322190000F0E0F910BD000010B5034CBD -:105BF0000B001722210000F0D7F910BD4F5F0011F4 -:105C0000002310B51922190000F0CEF910BD0000D4 -:105C100010B5034C0B001B22210000F0C5F910BD8C -:105C2000895F0011F7B584890D0006000121002C61 -:105C300022D000238268D3561778002B1EDA0C2C52 -:105C40001AD90C3CA4B2131940880093230002F027 -:105C500086FE431E984101307B06DB0F6B703F23AD -:105C6000013C1F40A4B22870AF70AC80002C07D05C -:105C7000B3680133AB6000210800FEBD0020EBE7F4 -:105C8000AC60F8E70B7803704B8843704B881B0AB5 -:105C900083700B79C370042070470420022B06D157 -:105CA0000020537811781B02009A0B431380704731 -:105CB0000B8803700B881B0A437002207047042076 -:105CC000009983420AD1537810781B0203430B805A -:105CD000D37890781B02034300204B807047F8B5BF -:105CE0000D004B7801240021461C03702B788B4259 -:105CF00001D82000F8BD6B78B01C4F1C012B10D1CF -:105D0000890069184B88022233704B88B9001B0A3E -:105D10007370691805F078FA04360434A4B2F9B245 -:105D2000E4E7122359436B185A88043132705B88B8 -:105D300010221B0A7370691805F066FA12361234C5 -:105D4000ECE770B5049D14001E00052B01D804205B -:105D500070BD637812781B0213432B80E378A2781E -:105D60001B02134302226B802A71211D681D063E0F -:105D700005F04AFAB2B22A81E92AE8D82800A11D22 -:105D80000A3005F041FA0020E2E7002310B50A7856 -:105D90009A4201D8900010BD9A008A1854880133A5 -:105DA00004705488DBB2240A44709488847092880A -:105DB000120AC2700430EAE710B51100029C062BEB -:105DC00004D004201022142B01D010BD0222227115 -:105DD0004B7808781B0203432380CB7888781B021A -:105DE000034363800431601D05F00EFA0020ECE7E8 -:105DF00010B50C788B7804315C43E4B20370220058 -:105E0000013005F001FA601C10BD0420022B06D100 -:105E10000020537811781B02009A0B4313807047BF -:105E200010B50C000A88023105F0EEF9208810BD8B -:105E300070B504000D0004981100012B01D8042056 -:105E400070BD167852781202324302800200F1329D -:105E500055701470E125002C00D10C35023B9AB22C -:105E60004280AA42EBD80231043005F0CDF900207F -:105E7000E6E70420009983420AD1537810781B0288 -:105E800003430B80D37890781B02034300204B80A0 -:105E9000704710B50C000A88023105F0B5F920886A -:105EA00010BD000070B501211E000420049C0E40AE -:105EB0000B4218D1CB40DDB28D4214D90A49DBB276 -:105EC000098899420FD32300EE331D703300580028 -:105ED00011184978165C0902314301332152D9B2B5 -:105EE0008D42F4D8002070BDC842FF1F10B50C00D1 -:105EF0000A88023105F088F9208810BD10B50C78A9 -:105F00008B7804315C43E4B203702200013005F069 -:105F10007BF9601C10BD10B511000298032B01D84D -:105F2000042010BD14785278043B120222430280F0 -:105F3000CA788C781202224342809AB28280EB2A7D -:105F4000EED80431063005F05FF90020E9E710B51E -:105F50000C000B8803700B881B0A43704B888370FE -:105F60004B881B0AC3708A880430063105F04CF94F -:105F7000A088043080B210BD0420012B03D1002082 -:105F80001378009A1370704710B50C000B880370DB -:105F90000B881B0A43704A880230043105F034F93B -:105FA0006088023080B210BDF0B589B003931E4BFB -:105FB000029242000700D05A019102F020F8132506 -:105FC000061E2DD0029B01240370019B002B04D0E0 -:105FD000001903999847001984B26B461B7A5BB28B -:105FE000002B0FDA1021380002F01CFB19250028C5 -:105FF00013D130003219E1B202F066FC051E0CD15B -:106000000C34A4B2042304AA380005A99380069690 -:10601000948101F0AFFD051E02D0300005F094FA26 -:10602000280009B0F0BDC0464464FF1F70B50500EC -:106030000C0000280CD00020814209D01022200042 -:10604000044905F0E1F801202B7823736B78637322 -:1060500070BDC046C0B90011F0B506000D001700B4 -:106060001C0085B002291BD00020102907D1022B6B -:1060700007D0102B03D115E00020102C08D005B05C -:10608000F0BD69463800FFF7D1FF2A0069460BE0F2 -:1060900069463000FFF7CAFF22006946380004E075 -:1060A000022BE9D12A003900300005F00DFAE6E7AD -:1060B000031CF02800D9F023032008499AB2013AC2 -:1060C0000B80D317034006499B189B100B80D30FFE -:1060D00004499B185B100B807047C046CC42FF1FE1 -:1060E000CA42FF1FC842FF1F034B1B888B4202D3CB -:1060F000024B4000C1527047CC42FF1F4464FF1F57 -:10610000014B4000185A70474464FF1F1722014B8F -:106110001A8070474464FF1F70B505000E2005F01B -:10612000E3FA041E13D0D0230370002306228370E9 -:1061300007494570033005F067F8064B2100DA8AFD -:1061400062811B7E2373044B187805F03DF970BD06 -:106150006064FF1F5064FF1F1C43FF1F262803D8E5 -:10616000024B4000C05A70470148FCE7CE42FF1F77 -:10617000FFFF000070B506000C00094D1C22002135 -:10618000280005F059F8074B1E70074B1C7005F0EE -:10619000F3F90123002801D0002312202B7070BDD9 -:1061A0005064FF1F1C43FF1F7164FF1F70B5050083 -:1061B0000D4C0800E260A16010220021656005F02E -:1061C0007BF8012803D11021A06802F058FD1022AD -:1061D0000021280005F070F8012803D11021606823 -:1061E00002F04DFD70BDC0465064FF1F70B5041E27 -:1061F00005D1002903D006220D4805F005F80D4B06 -:106200001D78012D11D1002C05D102221A7005F044 -:106210004BFA280070BD00221A70074B1B78FF2B29 -:10622000F7D02000FFF778FFF3E70025F1E7C0463D -:106230006064FF1F5064FF1F1C43FF1F030010B565 -:10624000002801D1002010BD00780B4A002803D19E -:106250005988D1821B7913761378022BF2D100234F -:10626000984200D103331370044B1B78FF2B01D0ED -:10627000FFF752FF0120E6E75064FF1F1C43FF1F9A -:10628000002911D000280CD04B79012803D14022DD -:106290005242134303E03F221340032802D001205F -:1062A0004B7170474022F4E70800FAE770B5094DDA -:1062B0000100287800280BD0074C0622200004F0AB -:1062C000A3FF21002878FFF7DBFF200005F02CF961 -:1062D00070BDC0467064FF1F4A64FF1F00290AD0CA -:1062E000012808D13F224B799343C02B03D0403B78 -:1062F0005A425341981C704770B5174D06002B78D1 -:10630000FF2B15D00A2005F0EFF9041E10D0D02382 -:106310000370C83B8370114B11491B784670C370E2 -:106320000622043004F070FF2100287805F04CF8B4 -:106330000C4B1B78012B0DD10B4B1B68002B03D092 -:106340009B68002B00D09847084B04211878084A16 -:1063500005F082F870BDC0461C43FF1F7064FF1F2C -:106360004A64FF1F6C64FF1F9864FF1F9C64FF1F3B -:1063700060EA0000014B98687047C0465064FF1FF8 -:10638000014BDB68186870475064FF1F074B10B55E -:10639000DA68136801331360054B1878FF2803D0BF -:1063A0008021C90105F078F810BDC0465064FF1F78 -:1063B0001C43FF1FF7B50E0002F0C8F8051E1CD0E5 -:1063C0000E4B06621F78002F00D10778AB791020A2 -:1063D000019305F089F9041E0FD0D0230380C73B39 -:1063E0008370019BE91DC3700622043004F00CFF8A -:1063F00021003800E66004F0E7FFF7BD1A43FF1FF5 -:10640000014B18787047C0467064FF1F054B002889 -:1064100005D1054B1A78054B002A00D1014B180015 -:106420007047C0466064FF1F7064FF1F4A64FF1F0F -:10643000014B58687047C0465064FF1F024B1868F4 -:10644000431E9841C0B270477464FF1F421E030090 -:106450000120152A03D9FF3B5A425341D8B2704755 -:10646000F0B51C0000230E0085B0039002920B7063 -:10647000029A934201D3002019E0E55C5A1CD2B283 -:10648000002DF8D0029851198142F4DC0233DFB2BA -:10649000A35C18000193FFF7D9FF002807D0013D46 -:1064A000019A0399EBB233708A4202D1E01905B028 -:1064B000F0BDDB19DBB2DBE710B50C0002F09EF893 -:1064C00003001220002B03D02100588804F01CFF89 -:1064D00010BD000070B50E4D84006359002B15D01F -:1064E000186A002801D005F0F7F82B59586A0028DF -:1064F00001D005F0F1F82B59986A002801D005F079 -:10650000EBF8285905F0E8F800232B5170BDC04680 -:106510008064FF1F1C4B70B504000E0015009942EB -:106520000AD11A4B1B68002B01D1122070BD1B68C9 -:10653000002BFAD09847F9E7154B994215D1134B28 -:106540001B68002B0AD01B68002B07D09847002837 -:1065500004D1104B1C70104B1D70E7E72900200080 -:10656000FFF7AAFF0028E1D1F3E7080001F0EEFFF2 -:106570000028DAD003780320A342D7D129003000C5 -:1065800004F0C2FED2E7C046FEFF00007C64FF1F9D -:10659000FFFF00007964FF1F7864FF1FF7B5040058 -:1065A000808801F0D3FF0025A84203D00578A08899 -:1065B00002F008F81C4E3378002B1FD0AB421DD1DF -:1065C0001A4B28001978FFF777FF002818D000230E -:1065D0003370A3790820A778A688019305F084F882 -:1065E000011E0DD0D0230370CA3B8370019B4770FE -:1065F00086808371280004F0E7FE01E0002DE8D1D9 -:10660000A0880B4B8200D358002B01D0FFF762FF0C -:106610001721A088FFF768FDA08801F027FDA0885A -:1066200001F0FEFDF7BDC0467964FF1F7864FF1FCF -:106630008064FF1FF0B587B01D000CAB1B880700FE -:1066400001930DAB1B88142002930EAB1B88160020 -:1066500003930FAB1B880091049310AB1B88059329 -:1066600005F042F8041E1AD0D0230370CB3B4770CC -:106670008370C670062229000430002D11D004F06A -:10668000C3FD019B21006381029B0098A381039BB2 -:10669000E381049B2382059BA37404F095FE07B05D -:1066A000F0BD04F0C9FDECE7F7B5009308AB1B881B -:1066B00007000C200D001600019305F015F8041ECC -:1066C00013D0280001F042FF00280FD00078D0231B -:1066D0002370C93BA370009B21002381019B67703D -:1066E000A580E680638104F06FFEF7BD014B18784A -:1066F000EDE7C0461C43FF1F13B5040064890389FE -:10670000C2888188C0780094FFF7CEFF13BD0000D7 -:1067100010B5044C2068002803D004F0DDFF0023EE -:10672000236010BD8464FF1FA122F0B58188920010 -:106730004A43384B384F1B6804009B189D22920037 -:106740009B18827989B01A603B68002B5FD01D7856 -:10675000324B1B68002B04D05B68002B01D000205B -:106760009847260008363100E079FFF7B7FD237D12 -:10677000E0710200E0780493638A29000393238A7E -:106780000293E3890193A38800933300FFF752FF3C -:10679000E378002B0BD1E289A379A18802920196BC -:1067A000E27928000092012201F0DAFEE0703B68F5 -:1067B000002B20D0FFF7ACFF194D287800281AD005 -:1067C000184B1978FFF778FE002814D02B78E6785C -:1067D00008200793A78804F087FF011E09D0D02363 -:1067E0000370CA3B4670837087808671079804F0F7 -:1067F000EBFD00232B701721A088FFF775FCA08804 -:1068000001F034FCA08801F00BFD09B0F0BD064B8F -:106810009DE7C0463409FF1F8464FF1F9864FF1F73 -:106820007964FF1F7864FF1F1C43FF1FF8B5070042 -:1068300008000E0001F08AFE041E18D02620FFF783 -:106840008DFC051E00D12578062004F04DFF041EA6 -:106850000DD00021062204F0EFFCD0232370C23BB0 -:1068600021006770A370A680E8B204F0ADFDF8BD0A -:10687000F0B585B001930AAB1B78070002930BAB10 -:106880001B7808000D000092039301F05FFE061EC6 -:1068900022D0102004F028FF041E1DD01022002159 -:1068A00004F0CAFC2620FFF759FC002800D13078FC -:1068B000D0232370C13BA370009B21002372019B56 -:1068C00067706372029BA580A372039BC0B2E372E0 -:1068D0000C9BE36004F078FD05B0F0BDF7B50D004A -:1068E000019001F033FE071E20D00E2004F0FCFEC4 -:1068F000041E1BD02620FFF731FC061E00D13E7877 -:10690000D0232380C53B0622A370F91DE01C04F0B0 -:106910007BFC019B2A0063810123DD401A401D405E -:10692000210022736573F0B204F04EFDF7BD000044 -:10693000F0B585B0029010000D0017000A9E039379 -:1069400001F004FE041E31D0029B002B2ED1039BCC -:1069500002795B0724D5122313430422002E08D1A9 -:106960000B99002905D10C99002902D10D99002914 -:106970001AD01A430D9B2271002B00D0C9E0002EC3 -:1069800000D1CFE0002D00D0CCE0606A002801D01B -:1069900004F0A2FE1C21300004F04EFD606205E010 -:1069A00002239A430E33D7E793432371654BBA0012 -:1069B000D458002C00D1AAE0002E10D0236A002B5E -:1069C00003D11C2004F058FE20625E4BBA00D3585D -:1069D000186A002803D01C22310004F015FC0C9B1F -:1069E000002B12D0574CBB001D596B6A002B03D1F2 -:1069F000162004F041FE6862BB00E358586A002884 -:106A000003D016220C9904F0FFFB0D9B002B11D034 -:106A10004C4DBC006659B36A002B03D1142004F01E -:106A20002BFEB0622B59986A002803D014220D99CE -:106A300004F0EAFB380001F089FD051E67D0414BE8 -:106A4000BA00D358002B62D01A6A3420002A00D131 -:106A50001C389A6A002A01D0143080B20B9A002A9E -:106A600001D01C3080B25B6A002B01D0163080B29E -:106A700004F03AFE041E4AD01822002104F0DCFB88 -:106A80002620FFF76BFB0190002801D12B780193A2 -:106A9000D0232370029B200063700A23294EA37029 -:106AA000039BBD00A371AB59A780196A1830002958 -:106AB00005D01C22A06004F0A7FB200034307359DD -:106AC000996A002907D0030014221433E06002936E -:106AD00004F09AFB02980B9B002B08D003001C22A9 -:106AE0001C330B992061029304F08EFB02987359BA -:106AF000596A002903D01622606104F085FB6B46B9 -:106B00002100187904F060FC3800FFF7E3FC05B0C1 -:106B1000F0BD10220D9B0D991B69A018236204F093 -:106B200073FB2CE70B9B002B00D13FE7012D00D01E -:106B30003CE7606A002801D004F0CEFD1C210B98D0 -:106B40002AE7C0468064FF1F10B5044C2068002867 -:106B500003D004F0C1FD0023236010BD7464FF1F47 -:106B60000B4B07B51A68002A01D100200EBD6946FB -:106B7000531C012012780731FFF772FC0028F4D073 -:106B800002780123100018401A42EED0EEE7C0460A -:106B90009064FF1FF0B51F4F01203B6887B0002BAA -:106BA00025D09B78059300F0B3FB002821D00A2064 -:106BB000FFF7D4FA04000B20FFF7D0FA164B0500BC -:106BC0001E78731E9E413B68F6B2191DD878FFF7F8 -:106BD00057FB3B682900DA7A043303929A790193D0 -:106BE0000292009033002000059A04F085FD07B062 -:106BF000F0BDFFF7B5FF002805D00620FFF7AEFA7D -:106C000004000720D8E70820FFF7A8FA04000920AD -:106C1000D2E7C0467464FF1F7064FF1F70B50A4E50 -:106C2000040033780D00FF2B0DD0042004F05CFD30 -:106C3000011E08D0D0230370CE3B45708370C47012 -:106C4000307804F0C1FB70BD2C43FF1F70B5040009 -:106C500006200D0004F048FD011E0AD0D023037069 -:106C6000CD3B8370054B44701B688580187804F019 -:106C7000ABFB002C01D0FFF767FF70BD7464FF1FF2 -:106C8000F8B5264F06003B680D001124002B05D1F6 -:106C90000522234B1B78134202D112242000F8BD99 -:106CA000204A10241268002AF8D01278002AF5D061 -:106CB000DB0719D52B789A1E012A1AD80C2004F06C -:106CC000DBFC132438600028E8D000230A2243703C -:106CD00029000670023004F097FAFFF75BFF041EEC -:106CE0000AD0FFF731FFD9E700F012FB0028E1D10D -:106CF000E4E7002BE2D0D0E70B4B1B78032BCDD180 -:106D00001D20FFF72BFA094B18800028C6D0084B2E -:106D100004211878074A04F09FFBBFE77464FF1F43 -:106D20007164FF1F9064FF1F7064FF1F6E64FF1F7C -:106D30009C64FF1F60EA0000F7B50193194B140033 -:106D40001A78052306000F0012201A4221D00129CB -:106D500020D1154B1D68002D1BD002201F2C18D8E8 -:106D6000002C02D0019B002B13D0104B1F221E7051 -:106D70006E1C0021300004F05FFA019922003000FF -:106D800004F042FA310020002C70002F06D004F0ED -:106D9000CBFAFEBD064B12201D68DCE704F084FB35 -:106DA000F7E7C0467164FF1F9064FF1F2C43FF1F6D -:106DB0008C64FF1FF8B50F4E12243368002B17D0D8 -:106DC0001B780F3C834213D100250B4F02213878EA -:106DD00004F012FD094B042138781D8004F00CFDED -:106DE000074B28001D8033685C7004F0C5FA04006E -:106DF0002000F8BD7464FF1F9C64FF1F8864FF1FA0 -:106E00006E64FF1F70B5012823D11B4C2388002B13 -:106E100003D01A4A1578002D07D0194B1B68002B98 -:106E200002D01878FFF7C6FF70BD3B2B02D93C3B60 -:106E30002380F9E7134E0221307804F0DDFCFA22BA -:106E40002388920002215A43307804F0E5F9258026 -:106E5000EAE70B4B1B68002BE6D00B4B1B785B075C -:106E6000E2D5084B0221187804F0C6FC0022024B40 -:106E70001A80FFF769FED7E78864FF1F6C64FF1F65 -:106E80007464FF1F9C64FF1F7164FF1FF8B51E4DE3 -:106E90002868002803D004F01FFC00232B601B4E41 -:106EA0003068002803D004F017FC00233360184F2B -:106EB00005243B7818002040234221D0154800F0DB -:106EC0002BFA3B78234213D0202004F0D5FB286016 -:106ED000002813D02022002104F0AEF9202004F075 -:106EE000CBFB041E306005D02022002104F0A4F961 -:106EF000002004E0286804F0EFFB2C601320F8BDAC -:106F000000F00AFAF4E7C0469064FF1F8C64FF1F8C -:106F10007164FF1F2043FF1F10B50A4C23681A1E1F -:106F20000ED0002808D10130587004F025FA00284E -:106F300005D02368002B02D00021FFF787FE012235 -:106F4000100010BD7464FF1FF7B5274E05003368AD -:106F50000191181E21D05C78244F012C30D1FFF70D -:106F6000FFFD002825D02000FFF7F8F80400412895 -:106F700014D91F4B022118781E4A04F06DFA1E4BDB -:106F80003C3C1C80022233685A703B78002B14D1A1 -:106F900028000199FFF75AFE0120FEBDFA22920057 -:106FA0004243002AEED0124B0221187804F034F943 -:106FB000E8E7FFF7D3F80200F3E700233B70EBE7C5 -:106FC0003B78002BE8D1032004F08EFB011E08D093 -:106FD000D0230370CC3B457083703368187804F07D -:106FE000F3F9FFF7B1FDD7E77464FF1F6C64FF1F6F -:106FF0009C64FF1F60EA00008864FF1F10B51749FA -:10700000838802008B4220D011D815498B4217D0BB -:10701000144900205B1899B2012907D892681178A9 -:107020005A425341D8B2FFF7F9FD012010BD0E4A74 -:1070300000209B1807229BB29A424041C0B2F5E75C -:1070400083681878FFF768FFF0E7836899785A78C3 -:10705000090218781143FFF777FFE7E70A200000DD -:1070600006200000F8DFFFFFAFDFFFFF014B1870C5 -:107070007047C0462D43FF1F10B5064C207001F02D -:1070800041FA207804F0B0F90521207800F062FD83 -:1070900010BDC0469C64FF1F0BB273B50D00002BE2 -:1070A00000DBC4E0884B187804F0D6FA041E0ED03A -:1070B0000378912B0FD0A22B00D1A1E0834B18783D -:1070C000FF2852D0210004F07FF900284DD1802004 -:1070D0000002684076BD43780F2B76D013D8052B7D -:1070E00070D00E2BEAD18088794B98422BD8794BFF -:1070F00098421BD8784B9842E0D1A3681878591C65 -:10710000FFF774F838E03E2BD8D18378032B74D086 -:107110006CD8012B6ED0022BD0D1704B1B68002B8A -:1071200023D05B68002B20D098471EE06C4BC01822 -:107130000C28C3D804F068FB1DC2C2150BC20B0B90 -:107140000B3223C23C00674BC0180728B6D8664BE9 -:107150001B68002B09D01B68002B06D02000984725 -:107160000AE0A3681878FFF7C7F8200004F0D4FA03 -:10717000ADE7A068FFF762F800289FD0F5E7A368A5 -:107180001B78002BF1D0554B1B68002BEDD01B68F2 -:10719000002BEAD0210055489847EDE74F4B1B687C -:1071A000002BE2D01B68002BDFD021005048F3E712 -:1071B000504B1B68002BD8D05B68002BD5D021002A -:1071C0004348E9E7FFF7EAF9CFE780884A4B98425E -:1071D00003D04A4B984200D070E7464B1B68002B07 -:1071E000C3D05B68002BC0D02100D5E7153B012B35 -:1071F000BBD963E7FFF798FAB7E7FFF77DFAB4E783 -:107200003F4B1B78042B07D100236A46138001797A -:10721000408800F0C5FCA8E7364B1B68002BA4D0C3 -:107220005B68002BA1D00100364898479DE70124F8 -:1072300021420AD0294B1B68002B04D05B68002B2D -:1072400001D000209847012043E78B070AD5264B41 -:107250001B68002B04D05B68002B01D020009847EE -:10726000022036E70421280008400D4200D131E712 -:10727000254E3388002B21D0013B9BB23380002B5D -:107280001AD1FFF7DBF800280AD0204B1C70164BF0 -:107290001B68002B04D05B68002B01D020009847AE -:1072A000FFF7C6F8694601F001FD6846FEF7FEFFEC -:1072B0001D20FEF753FF308004200AE7024B1878A8 -:1072C00004F09AFAF8E7C0469C64FF1F2D43FF1FA5 -:1072D0000E20000001200000091000009464FF1F30 -:1072E000FEDFFFFFAFDFFFFF9864FF1F0C200000F1 -:1072F0000B2000007C64FF1F0D2000001320000005 -:107300007164FF1FFFFF00006E64FF1F6C64FF1FAE -:1073100010B501F09BF910BD014B18607047C046D5 -:107320009864FF1F0B880020162B01D81723042018 -:10733000014A13807047C0464664FF1F0020704713 -:10734000074A03001188814207D0918800209942A2 -:1073500002D101308000101870470020FAE7C046C3 -:10736000A464FF1FF0B58F7806000D00C5B01E2F76 -:1073700015D1FFF7E5FF051E03D10024200045B01D -:10738000F0BD00223B003100C078009200F0B2FB5B -:107390000400A81C00F0D2FBFF23EB70EEE7264BA5 -:1073A000062403931B78FF2BE8D0182FE6D87B0820 -:1073B000224A013BDB0002929A589446002ADDD013 -:1073C000029AD3185B68002BD8D00878002802D125 -:1073D0004B78012B02D10624122FCFD107AFAB88F7 -:1073E000697800976446AA68A047041EC6D1AB78A6 -:1073F000029A5B08013BDB00D318390030005B6860 -:107400009847041E0BD1AB78042BB6D0039A3100F9 -:1074100010782200009700F06DFB0400AEE76A7858 -:10742000002AABD1AA7805A93B88087130000A7000 -:107430004B80FEF747FBA0E73043FF1FD0B9001198 -:107440001D4B37B5050098420BD000290AD1FFF734 -:1074500077FF002805D11948FFF772FF002800D0F8 -:10746000058037BD01291AD1FFF76AFF041EF8D045 -:1074700001235B420380A378FF2BF2D0FE2B07D0C1 -:107480000023E0781422009329001E3300F032FB21 -:10749000A01C00F053FB01235B426380E1E702295B -:1074A000DFD1013901F0BEF80028DAD12800FFF75A -:1074B00047FF041EDFD1D4E7FEFF0000FFFF0000FE -:1074C000022210B5074B52421A80074801325A80F7 -:1074D0009A80DA8000F07EFA044801F025F8002056 -:1074E00010BDC046A464FF1F6573001141740011F4 -:1074F0000388F7B50400002B02D102252800FEBD49 -:1075000042680221137825485268FEF7A5FD00283D -:107510002ED0234F01253A88002AEFD080232188DE -:107520005B0201259B1A9942E8DC0C2004F0A4F8C8 -:10753000061E31D03B8822889C4600231800019506 -:1075400061469DB2491989B2AA421BD8002801D0D0 -:1075500062443A8000233000082208C0210003F072 -:1075600053FE104A1368002B13D100251660C5E79F -:107570006268022113780C485268FEF76DFD0028FE -:10758000C7D1BAE760681D014019418101330198F4 -:10759000D6E71A001B68E6E71325AFE73EBA0011ED -:1075A0002E43FF1FA064FF1F3CBA0011014B18704F -:1075B0007047C0463043FF1F14230A0010B51A401D -:1075C000194204D00122102101F048F810BD4B06E9 -:1075D000F9D4012088434000F8E710B514008B0669 -:1075E00004D50122102101F039F810BD08230A004A -:1075F0001A40194202D14BB2002B0FDA102101F0D0 -:107600002DF8002808D02300F2331B78002BECD093 -:10761000F1342378012BE8D10020E6E70320890725 -:10762000FAD4E2E7F0B51F00184B85B01C68019052 -:1076300002910392002C27D1200005B0F0BDA5686F -:107640003301ED186B89019A934211D3029A934248 -:107650000ED8002F04D10A9B002B10D12C00EBE791 -:107660003B002978039A6868FEF7F6FC0028F2D1FF -:107670000136B6B2A388B342E1D82468DAE7A3683A -:107680000A9A5B891380E9E70026F3E7A064FF1FED -:1076900037B50C000A8849880123914217D3002A84 -:1076A00015D0651D23792A0002210A48FEF7D4FC73 -:1076B000102300280BD023796188208800242A0019 -:1076C0000094FFF7AFFF0A23A04200D02300180068 -:1076D0003EBDC0463EBA001113B50A00088849886D -:1076E000012388420BD8002809D0002413790532E1 -:1076F0000094FFF797FF0A23A04200D02300180050 -:1077000016BD13B50A0008884988012388420BD8A2 -:10771000002809D00024137905320094FFF782FF76 -:107720000A23A04200D02300180016BDF0B58BB08C -:1077300003904A8808880E000123824255D300280E -:1077400053D00023012704AC23700022718813005A -:107750000092FFF767FF051E3ED02078002835D144 -:107760002B78022B18D167706A8983000130E318E7 -:1077700080005A8069680222201803F045FD2378B2 -:107780000133DBB22370042B19D93B006889013027 -:1077900080B2002BD9D01FE002236370122358431C -:1077A0006A89231804305A8069681022201803F06F -:1077B0002BFD23780133DBB22370002BE5D10C4A7B -:1077C0006B899B185A425341DBB2DFE76378012B88 -:1077D000E4D12B78022BC7D022780A23002A04D0C8 -:1077E00021000398FEF798F9002318000BB0F0BDB4 -:1077F0000100FFFF0F4BF0B504001868002816D0F9 -:1078000083685D89A54207D88288AE18B44203DA3E -:1078100012019A18934201D10068EFE71E005F89B8 -:107820001036A74204D1002900D00D801800F0BD09 -:107830003300EFE7A064FF1F70B505000C00088857 -:107840000021FFF7D7FF03000120002B04D0220006 -:107850002800197AFFF7C1FE70BDF7B50C000025AE -:1078600001902300EE331B78AB4201D800200AE0E0 -:107870006B00E65A00213000E718FFF7BBFF002835 -:1078800002D126800130FEBD017A0198FFF794FEF7 -:10789000002802D03B882380F5E70135EDB2E0E710 -:1078A00010B5040008880021FFF7A4FF03000120A1 -:1078B000002B03D02000197AFFF77EFE10BD0000D8 -:1078C000054B1B68002B01D1180004E09A6852890F -:1078D0008242F6D198887047A064FF1FF0B50E274A -:1078E000002687B0039302ABFF183E8005001F4BB4 -:1078F00040891400984207D02B78013000976A68BD -:1079000080B2FFF78FFE060002212B7818486A68C4 -:10791000FEF7A2FB00280FD06C892000FFF7D0FFF4 -:10792000002802D0013C0419A4B2039B002B00D014 -:107930001C80300007B0F0BD02212B780D486A682A -:10794000FEF78AFB0028E7D102212B780A486A68F3 -:10795000FEF782FB002807D0002EDED03B88A34232 -:10796000DBD17489013CDFE76C89DEE7FFFF0000B3 -:107970003EBA00113CBA00113ABA001110B50C0021 -:10798000FFF7DEFC03000220002B0AD0002C00D001 -:1079900023609B781720FE2B03D00138FF2B00D1EA -:1079A000002010BD73B50D0001A904001600FFF7FB -:1079B000E5FF172805D0002E04D129002000FEF78E -:1079C00027F976BD01221021200000F047FE002893 -:1079D000F3D0F6E7014B18607047C046B064FF1F54 -:1079E00037B56B469D1D010004000222280003F0FC -:1079F000DBFE2B88B02B0ED12379122B09D123006B -:107A0000FA331B78012B06D10121608800F0E0F8E1 -:107A100001E01B2BF8D037BD10B5054B04211870C1 -:107A200000F098F8FFF74CFDFEF770FB10BDC04664 -:107A3000B464FF1F0020F0B50BB20F0087B0834283 -:107A400034DA274B187803F007FE051E2BD0037895 -:107A5000A02B25D103AE3100FEF7E4F8041E0BD1B4 -:107A6000B378DB0724D51F4B06341B68002B03D0EB -:107A70003100688898470400A868002801D003F006 -:107A800063FD002C08D1184A039B1340174A934208 -:107A900006D0B3781B2B03D00121688800F098F83A -:107AA000280003F039FE80200002784007B0F0BDC6 -:107AB0000F4B1B68002B10D0310068889847041EBC -:107AC000DAD07378002BD7D1B27801A90A704B8035 -:107AD0000C716888FDF7F6FFCEE70624F1E7C04693 -:107AE000B464FF1FAC64FF1F00FFFF000001120021 -:107AF000B064FF1FF7B50190FC200D0017001E00B9 -:107B000003F0F2FD04001320002C12D0B02320005B -:107B10002370089BF4226770658026710830002B63 -:107B200008D0190003F070FB2100019803F04CFC11 -:107B30000020FEBD089903F07FFBF5E710B5041E99 -:107B400006D00078FD2803D803F06EFEFF232370D3 -:107B500010BD00000A1F93B210B504000220032BD1 -:107B600005D882400020024BD1529B189C7010BD5A -:107B7000D464FF1F0B8870B5043B04000D00022085 -:107B8000032B0BD80121200000F04CFD0300142032 -:107B9000002B03D02900200000F0DEFB70BD0000A8 -:107BA00007B51300034A00920A00012100F02CFCE3 -:107BB0000EBDC046DD7D001107B501920322009283 -:107BC000024B0A00122100F049FC0EBD5B7E001141 -:107BD00007B56B4601AA11800449D880087806339E -:107BE000012802D1190003F02FFC07BDB564FF1F67 -:107BF0000C4B10B518700023FF210B4A1380138122 -:107C000093819380094A53801370517293819372C8 -:107C1000D174D3821375517703F0C6FB00F0FCF9E1 -:107C200010BDC046E464FF1FD464FF1FB664FF1F8D -:107C3000F0B58DB06B46002003910C229B5E834211 -:107C400000DBB0E05D4B187803F006FD051E00D1A7 -:107C5000A4E00378902B00D09DE006AF0100468899 -:107C6000380000F013FA79680400002900D19CE084 -:107C70003B88052B6ED13B89032B1CD905AC20001A -:107C800000F0A2F86288172A61D83989131D994239 -:107C900031D17968237804310291D90738D56078D9 -:107CA00000F08EF9071E06D0002303712378012B04 -:107CB00008D0132B23D0A868002800D178E003F067 -:107CC00043FC75E06288029909A800F0A6F80290CA -:107CD000380000F08BF909AA2378387A0192002243 -:107CE00031000092029A00F012F9380000F064F9B5 -:107CF000029B002BDFD0300000F080F9DBE7037837 -:107D0000032BD8D16288029909A800F0D6F8DEE7E3 -:107D1000122B13D1029909A800F0B5F8021EEAD17E -:107D200027498B88002BC6D0887909A9237801912F -:107D300061780091310000F0EAF8BCE7002302AA64 -:107D400093833000617809AAFFF72AFFB3E71D4B40 -:107D50000993F6E7042B02D09A1F012AABD8184AE0 -:107D6000043B9B00995A0029A5D0D2189078310085 -:107D70003A0000F0AEF800289DD13B88042B03D0D8 -:107D800001213000FFF724FF012C04D1A86800284E -:107D900001D003F0D9FB280003F0BEFC8020039B38 -:107DA0000002434018000DB0F0BD012800D182E769 -:107DB00001213000FFF70CFFEDE7C046E464FF1F30 -:107DC000D464FF1F010017000B7803704B784370D9 -:107DD000CB788A781B021343438070470A880300DC -:107DE00002700A88120A42700A88012A06D14A885B -:107DF00082704A88120AC2700420704702208242B0 -:107E0000FBD14A8804309A704A88120ADA708A884C -:107E10001A718A88120A5A71EFE710B5040001201E -:107E200082420CD94B780A781B0213432380834289 -:107E300006D1CB788A781B0213436380002010BDE3 -:107E4000022BFBD1CB788A781B02134363804B79DA -:107E50000A791B021343A380F0E70B8803700B8899 -:107E60001B0A43704B8883704B881B0AC3708B8836 -:107E700003718B881B0A4371CB888371CB881B0AE3 -:107E8000C3710820704703000120082A14D14A78E2 -:107E90000878120202431A80CA78887812020243D4 -:107EA0005A804A790879120202439A80CA798879FD -:107EB000120202430020DA80704710B5040001204E -:107EC000022A05D100204B780A781B021343238035 -:107ED00010BDF8B5060010200F00150003F004FCDB -:107EE00004000120002C0ED0A0230C2229002380A6 -:107EF0006780201D002D07D003F086F92100300097 -:107F000003F062FA0020F8BD03F096F9F6E7F7B542 -:107F10001E00009008AB142017001D78019103F09B -:107F2000E3FB041E12D0A2230370019B4770438021 -:107F3000099B057146710C220830002B07D01900EF -:107F400003F062F92100009803F03EFAF7BD0999A9 -:107F500003F072F9F6E737B5041E0FD04388002B03 -:107F60000CD00025C1881323007A172201950095B3 -:107F7000FFF7CDFFFF2365806372257037BD0000DA -:107F800010B50C4904004A88002A09D08B89002BBF -:107F900005D00020CB8A0222834201D010BD0122ED -:107FA00013000A20434300204032C854C8184280BE -:107FB0000472F3E7B664FF1F002343800370704729 -:107FC000094B00211A0010B55C88002C06D01C79E2 -:107FD000844203D10A234B43D01810BD01310A3328 -:107FE0000329F1D10020F8E7B664FF1F10B50400A3 -:107FF000407A03F019FCFF23637210BD7047043010 -:1080000010B580B203F008FA002803D004214942D9 -:1080100003F05AFB10BD000070B50025104CA0689D -:108020002580A581A580A84202D003F08DFAA56025 -:1080300000250C4C0C4B606D1D80230058331D70C7 -:10804000A84202D003F080FA656500256068002828 -:1080500001D003F079FA013508340A2DF6D170BD4C -:108060007C65FF1F2065FF1F7065FF1F70B5041E34 -:1080700009D1054D2880A881A880A868002802D0D1 -:1080800003F062FAAC6070BD7C65FF1FF0B54B88F1 -:1080900085B00193002343600A7905000F00022A8E -:1080A00000D07BE0CA88032A17D98B685E781978DC -:1080B0003602DC78D8790E4399781B7A24021B02A9 -:1080C0000C43034353495BBA0B80331D93421ED1CB -:1080D000042C04D0631F022B0ED9012015E0019A55 -:1080E0004D4B1201D35A002B06D00198FFF7BEFF6B -:1080F0004A4A1369013313610421B8682E812C8028 -:10810000494203F0E1FA6860002005B0F0BD434D3C -:10811000042C06D0631F022B0FD9EB680133EB60F0 -:10812000DBE7019A3C4B1201D35A002B05D0019892 -:10813000FFF79CFF2B6901332B61374B3000029313 -:10814000019B029A1B010193002301998C468B52DB -:10815000130063449C8003939E81FFF750FF039BB1 -:10816000041E986016D00421B868494203F0ACFAA6 -:10817000FA880100043A200003F046F80199029AB7 -:10818000FB888A5A043B9B18029A8B522B68013356 -:108190002B60A2E7AB690133AB619EE71E4B0293F4 -:1081A000019B1E01029BF35A002B2DD002998C19C2 -:1081B000A068002828D0012A26D1FA889B189BB2F3 -:1081C0007352A189994217D39B1AC018B96803F05A -:1081D0001BF8029BA289F35A934200D07DE700224C -:1081E0002B81A3882B80A3686B60029BF2520B4A01 -:1081F00053680133536070E7084A93680133936012 -:108200000198FFF733FF68E7044A5369013353616C -:10821000F6E7C046E664FF1F7C65FF1FEC64FF1FA6 -:1082200070B5051E15D10B4C0B4B1880230058332D -:108230001870606D002802D003F086F9656525008E -:1082400050356068002801D003F07EF90834AC4254 -:10825000F7D170BD2065FF1F7065FF1FF0B51700D7 -:10826000A12285B0920001934243394B06001B685E -:108270000C009B18D933FF331D78FDF741FF043004 -:10828000854204DD3000FDF73BFF0430C5B2BD423E -:1082900007D33A0000213000019B03F08DFA05B0AE -:1082A000F0BD2900380003F07FF92300C6B2503337 -:1082B0001E700393019B29006365380003F064FA84 -:1082C000CBB20293002B02D0039B01361E70002616 -:1082D0002300503303931B78B34204D8606D002809 -:1082E00031D10020DBE7029A2800002A04D0013BAC -:1082F0001000B34200D02800F700E719387002F0F0 -:10830000C3FF786000280ED03A78019902F07CFF14 -:10831000019A3B780136D3180E4A0193D369F6B21D -:108320000133D361D4E7039B18706065A74205D180 -:10833000084A1320D36A0133D362B0E7606803F0C0 -:1083400003F90834F2E703F0FFF800236365C8E798 -:108350003409FF1FEC64FF1FF7B50D00070004216F -:10836000686803F0B1F92B89040003702B891B0A9C -:1083700043702B8883702B881B0AC3702E890225BB -:108380000436F6B2F42E15D81B4B9F4214D10C20A4 -:1083900003F0AAF91135011E0CD0902303708E3B17 -:1083A0000371043B4380154B8460C680187803F04A -:1083B0000BF800252800FEBD5C237B43104AD31830 -:1083C0000093583301931B78002B0FD10300320028 -:1083D00038000099FFF742FF019B05001B78002B36 -:1083E000E8D13800009903F007F8E3E7054A0725CC -:1083F000536A01335362DDE7FEFF0000E464FF1FB0 -:108400002065FF1FEC64FF1FF0B587B000901720B8 -:108410000F0016000193FFF7F2FD1325041E19D07B -:108420000C98031E02D00199201D9847030AE3709F -:10843000052302AAA070043090812770009866700E -:1084400003A993800494FFF787FF051E02D0200044 -:1084500003F07AF8280007B0F0BD0000F0B587B04F -:108460001F000CAB1B780391059301210DAB060097 -:108470001C78049200F0D6F81425002821D02000A2 -:10848000FFF77EFD0135041E1BD01149059B0A78BC -:1084900003700132D2B2131EC68001D101231A002B -:1084A0000B7022713000049B03990097FFF7ACFF1B -:1084B000051E09D1230021000648074A093302F0AE -:1084C000B3FF280007B0F0BD002363802370F8E7F6 -:1084D000E864FF1F577F001130750000F8B50500F4 -:1084E0000E00064C064F2368002B02D031002800F6 -:1084F00098470434BC42F6D1F8BDC0468C65FF1FD6 -:10850000A065FF1F0123064A5B42538000231371BD -:108510005362044A136053609360D36013617047E1 -:10852000A065FF1F8C65FF1F0200002310B50649E0 -:108530009C000859002801D1625010BD0133052B61 -:10854000F6D11320F9E7C0468C65FF1F034A538814 -:10855000181A43425841404210407047A065FF1F1F -:10856000F0B585B002930AAB1F780CAB1B88009066 -:1085700008000E0001920393FFF7E8FF05001120A9 -:10858000002D1BD10E48FFF7E1FF04001520002C41 -:1085900014D006220B99A771E01D02F035FE019B55 -:1085A00030002371029B29006371009B6680237059 -:1085B000039B6562E381FFF791FF280005B0F0BDE2 -:1085C000FFFF000010B5FFF7C1FF04000220002CE0 -:1085D00012D060880121FFF781FF606A002801D076 -:1085E00003F07AF828220021200002F025FE012362 -:1085F00000205B426380207110BD000030B5074A47 -:10860000074C5588010013780020A54204D05B1A5E -:1086100059424B415842104030BDC046A065FF1F33 -:10862000FFFF0000084A10B501230C00904208D05B -:10863000FFF78CFF031E04D0037923405A1E934199 -:10864000DBB2180010BDC046FEFF0000024B1879D7 -:10865000431E9841C0B27047A065FF1F70B504006B -:108660000D001600FFF772FF002804D10D4B9C424D -:1086700000D0143070BD416A03790520002907D06D -:1086800012221A40102A02D10520002EF2D10F200A -:10869000DB06EFD5897E0C20A94289414942494237 -:1086A0000840E7E7FEFF0000030010B5002800D1F6 -:1086B00010BD0348034A41889142F9D09847F7E733 -:1086C000A065FF1FFFFF0000002330B5C45CCD5C38 -:1086D0006C40D4540133102BF8D130BD0F2300224D -:1086E00010B5C45C64002243CA54C25CD209013B89 -:1086F000F7D210BD0200010010B52032103102F097 -:10870000F3FE10BDF0B58BB0039010200593170059 -:10871000049102F0B1FF0090102002F0ADFF009B29 -:1087200013240190002B05D000280CD113240098AD -:1087300002F0D2FF019B002B02D0180002F0CCFF08 -:1087400020000BB0F0BD102002F096FF06001020B4 -:1087500002F092FF13240500002E00D1AEE00028A5 -:1087600019D01022002102F067FD32002900039881 -:1087700002F0BAFE041E0ED133787F2B51D83000A0 -:108780000099FFF7ABFF009B1B787F2B53D8019913 -:108790000098FFF7A3FF300002F09EFF002D02D0EB -:1087A000280002F099FF002CC1D1102002F064FFD4 -:1087B0000600102002F060FF0290002E7CD00028FE -:1087C00078D03A000F3223000125121105D00F3363 -:1087D0003B4015B25A4253411BB26A1E1201002B94 -:1087E00033D0049BD2B298180099029AFFF76CFF1D -:1087F000013D10220021300002F01EFDADB2049FA9 -:108800002D017D19AF4242D0002C33D0300002F050 -:1088100063FF029B002B00D189E7180002F05CFF88 -:1088200085E729003000FFF759FF28002549009A05 -:10883000FFF74AFFA7E729000098FFF74FFF28003E -:108840002049019AFFF740FFA5E70F210F40049947 -:108850008A18D9B28F4208D9D15C06A819540133BD -:10886000102BF6D1029A0199C0E7791A484241418A -:10887000C901F2E73900300006AAFFF725FF3200F0 -:10888000039806A902F030FE10370400BAE7002C66 -:10889000BCD13000029906AAFFF716FF320006A9E4 -:1088A000039802F021FE082204003100059802F02E -:1088B000ABFCABE71324A9E71324AAE7002800D0F8 -:1088C0006EE733E744BA0011F0B58BB00F00160025 -:1088D0000225009000283FD0002A3DD00B1DDBB2BE -:1088E0001800029302F0C8FE1135041E34D0FDF7C3 -:1088F00047FD05003A000099201D02F04DFFEBB244 -:108900000393E3702B0CDBB22F0A00936370FFB26A -:108910002B0E2370A7700193FDF72CFD1022010090 -:1089200006A802F039FF2100029A04AB06A8FFF75F -:10893000E9FE051E0DD1039B08223370009B04A99C -:10894000B370019B7770F370301D02F025FFFDF7C7 -:108950001DFD200002F0C0FE28000BB0F0BDF0B5F8 -:108960008FB00D00149E039004920593002A03D14A -:10897000022420000FB0F0BD002EF9D00398FFF7BD -:10898000E5FD1424071EF4D07278337812021A43DE -:10899000B3781B041343F27812061A43036A019258 -:1089A000934201D30133E3D1002D03D03B7901245D -:1089B0009B07DED50822002106A802F03DFC059B9E -:1089C00013240433DBB21800029302F055FE051E97 -:1089D000CFD0059A0499043002F0DEFE0422310063 -:1089E000280002F0D9FE3900102210310AA802F046 -:1089F000D3FE2900029A06AB0AA8FFF783FE041EE5 -:108A00000FD1082206A908A802F0C6FE0822311DCF -:108A100008A802F059FD012807D101990398FDF734 -:108A2000C9FC280002F058FEA3E70124F9E7000082 -:108A300070B51C4C05002368181E10D0002D14D1F1 -:108A40001A78002A0CD1981C083202F0DDFB02F0E3 -:108A5000EBFD0135002808D123681D70012070BD91 -:108A60000A331800082202F0CFFB2368002BF5D050 -:108A7000122002F039FE061E0DD0C12321680370BA -:108A8000457002311022023002F0BEFB2368310033 -:108A9000587802F099FC206802F01EFE0023236043 -:108AA000DCE7C046C865FF1FF8B504002020FDF7CD -:108AB00055FB0D4EA700BB590500002B0DD000281B -:108AC0000BD0D878FF2809D108492A000C55F35952 -:108AD00007480333611802F0A7FCF8BD290002F033 -:108AE0000BFD0028F0D1F8E7E465FF1FCC65FF1F00 -:108AF000019D001170B5064D84006359002B05D00F -:108B0000D87802F091FEFF226359DA7070BDC0463A -:108B1000E465FF1F70B506008CB00C001500002145 -:108B20003022684602F088FB31001022684602F0CD -:108B300033FE1D2021000322684402F02DFE68460A -:108B4000FFF7D8FD2D21040003222800694402F01C -:108B500023FE20000CB070BDF0B50700160097B0E2 -:108B600001931CAB1D7830221EAB00910AA8002196 -:108B70001C7802F061FB102239000AA802F00CFEFA -:108B80001022002102A802F057FB0722310002A8A0 -:108B900002F002FE072202AB9818631E9C41019965 -:108BA00002F0FAFD02AB9C732B005A1E934102AAFD -:108BB000D3730021102206A802F03EFB06221D9965 -:108BC00007A802F0E9FD1A2002ABC01806221F997F -:108BD00002F0E2FD102200990EA802F0DDFD102245 -:108BE00002AB0EA908781C78013A6040D2B2087036 -:108BF00001330131002AF5D10AA8FFF77BFD1022CD -:108C000012A904000EA802F0FFFA102206AB0EA96A -:108C100008781D78013A6840D2B2087001330131FA -:108C2000002AF5D10AA8FFF765FD04431022209819 -:108C3000E4B212A902F0B0FD200017B0F0BD70B58B -:108C40000E0014008CB00100102268461D0002F0D6 -:108C5000A3FD3100082204A802F09EFD2100082295 -:108C600006A802F099FD6846FFF744FD04001022B3 -:108C7000280008A902F090FD20000CB070BDF8B5E6 -:108C800006000D0000243719AC4200D3F8BD02F0F5 -:108C900043FC030A3B70631CDBB201379D4203D9DE -:108CA0000234F054E4B2EEE71C00EDE773B50600C1 -:108CB0000C000225002819D0002917D0032101A893 -:108CC000FFF7DDFF6B469A793F231A4001331343C8 -:108CD0006A463000937101A92200FFF71BFF051EB1 -:108CE00004D10322E01C01A902F08EFA280076BD0F -:108CF00003785807DA08C00FD20080009B071043A2 -:108D00009B0F1843C0B2704707230B40C908C90026 -:108D10000B4303707047000070B50400FFF7EAFED4 -:108D2000134DA4006359002B21D0186A002801D0EC -:108D300002F0D2FC2B59986E002801D002F0CCFC36 -:108D40002B59D86E002801D002F0C6FC2B59186FA1 -:108D5000002801D002F0C0FC2B59586F002801D028 -:108D600002F0BAFC285902F0B7FC00232B5170BD69 -:108D7000E465FF1F0E4B8000C35870B50C00002B3C -:108D80000FD09D68002D0CD02B78201D0B706B78B8 -:108D90004B70A97CFFF7B8FF2B7E23726B69E360F1 -:108DA00070BD10220021200002F046FAF8E7C0460C -:108DB000E465FF1F014B18607047C046E065FF1F68 -:108DC000074A03008000825810B5002A06D0D088D8 -:108DD000984203D1012901D1FFF79EFF10BDC04683 -:108DE000E465FF1FF0B5264E95B087000B93BB5985 -:108DF0000500099112200A92002B31D0D888FFF784 -:108E0000A5FB04001420002C2AD0280010A9FFF78D -:108E1000B1FFBB591E781D6A002E23D00895FDF7BF -:108E2000EFFA07000020FDF7F1FA0790A379E61D9D -:108E3000069310AD0CA9089800F0E2FA0EA92800DC -:108E400000F0D7FA0B9B0A990493069B09980293AA -:108E5000079B0396019300970EAB0CAAFFF77CFECD -:108E600015B0F0BDFDF7CCFA06903000FDF7CEFA54 -:108E7000E31DA779079310AB06000893DAE7C04615 -:108E8000E465FF1F30B50C4C85002A59030085B0FE -:108E90000120002A0ED018006946FFF76BFF2B59FE -:108EA0001A78D888054B002A00D1054B6A4607215D -:108EB00000F0D9FB05B030BDE465FF1FF39300114E -:108EC0000194001130B5094C8500295985B0102254 -:108ED0006846253102F098F92A591121044BD088AF -:108EE0006A4600F0C0FB05B030BDC046E465FF1F18 -:108EF0009D94001130B5094C8500295985B0102288 -:108F00006846353102F080F92A591121044BD08886 -:108F10006A4600F0A8FB05B030BDC046E465FF1FFF -:108F2000DB940011F7B54D4F86001020F4590D0069 -:108F300002F0A2FBF3592062186A132200286CD0B9 -:108F4000033A29009C6802F05FF9F3591A780192FC -:108F5000002A58D11E6A227D317B9446514001225D -:108F6000019F114201D167461740217D914339434A -:108F70002175377B4F40BC4660460027800701D4EF -:108F80004F081740012102208F40227D82433A433F -:108F90002275377B5740BC4660460027400701D406 -:108FA00097080F400420227DBF0082433A43227578 -:108FB000627D002794466046727B42400A4201D19E -:108FC00067460F400121627D8A433A436275777B91 -:108FD0005740BC4660460027800701D457080F4021 -:108FE0000220627D7F00824317436775767B0022F3 -:108FF0007E40760701D4BA080A400426617D9200BB -:10900000B1430A4362756A78002A08D06278002A60 -:1090100005D005220533DA7700221000FEBD0422B8 -:109020002979114205D1A17C114202D10533033ABD -:10903000F1E7019A21782C78002A02D10A00210058 -:10904000140018220429E8D8042CE6D8052060432F -:10905000034A05331218525CDDE7C046E465FF1F82 -:1090600054BA001110B50A001121024B00F0FBFAAE -:1090700010BDC046379500110B0030B587B001AD6B -:109080002B806B4604001100981D082202F0BCF8EA -:109090002A000B212000024B00F0E5FA07B030BD9A -:1090A0005F95001110B50A001121024B00F0DBFAA8 -:1090B00010BDC046B395001113B50B0011006A46F0 -:1090C00013706B4604000622581C02F09DF86A4695 -:1090D00008212000014B00F0C6FA13BDD395001102 -:1090E00010B50A001121024B00F0BDFA10BDC046B8 -:1090F000239600117FB505000B4BAA00D458080039 -:10910000002C0FD0666F237FE28821780396266FAC -:109110000296E66E0196A46E0094FDF709FC280005 -:10912000FFF7FAFD7FBDC046E465FF1F10B51721AC -:10913000FFF7E0FF10BD000070B50A000D00064B00 -:109140000221040000F08FFA060029782000FFF7C2 -:10915000D1FF300070BDC0460395001170B586B0D8 -:1091600000236A461370836804001D78681E0A286D -:1091700059D801A902F0A0F9060633373B3F43470F -:109180004B4F5300180000F042F9062312284BD031 -:1091900000281BD16088FFF7D9F90823002813D0D5 -:1091A0004279002A47D1264B1A78072312070BD59C -:1091B000244B1A680723002A06D01668002E03D015 -:1091C000290001AAB04703006A4613706B461B785A -:1091D0006088002B2AD1FFF767FC06B070BD18002D -:1091E00000F06CF9D4E7180000F087F9D0E7180018 -:1091F00000F093F9CCE7180000F0ADF9C8E71800CB -:1092000000F0C3F9C4E7180000F0F6F9C0E7180051 -:1092100000F0F6F9BCE7180000F013FAB8E7180000 -:1092200000F013FAB4E707236A46137069466088B2 -:10923000FFF782FFD1E70523012AC5D1024BB8E72A -:109240007164FF1FDC65FF1FE065FF1FF8B52C4F41 -:109250008600F35904000D00002B40D0DA888242CA -:109260003DD15A78062A33D11A78002A2ED001200F -:1092700099681A6A097D014206D0157B054203D020 -:1092800007225A700120F8BD0220014204D0157B4C -:10929000054201D00922F4E70420014204D0127BE8 -:1092A000024201D00B22ECE7164B1B68002BE9D0E1 -:1092B0005B68002BE6D020009847BB5900215B7803 -:1092C000122BDFD12000FFF715FFDBE70E4BECE799 -:1092D000112A04D1002900D032252900F2E7002DFF -:1092E00008D12000FFF732F9002803D010230279BB -:1092F0001343037121002800FDF798FAC2E7C04626 -:10930000E465FF1FDC65FF1FE065FF1F70B50E4EB3 -:109310008500AB590400002B13D01B78002B11D112 -:109320000A4B1B68002B04D05B68002B01D0200087 -:10933000984773595B78122B03D100212000FFF767 -:10934000D9FE70BD024BECE7E465FF1FE065FF1F2F -:10935000DC65FF1F094B8000C3581020002B0CD088 -:109360001A6A002A09D09B68002B06D0127A1B7E4D -:10937000101C9A4200D9181CC0B27047E465FF1F48 -:1093800070B503000D0014000220002A30D000291F -:109390002ED013700B78081D53704B789370FFF725 -:1093A000A7FCE070012002212B7A23716B7B034024 -:1093B00063716A7B0A401343042263716E7B16401B -:1093C000334363716E7BF608F600334363712B7B86 -:1093D0000340A371287B014000200B43A371297B2C -:1093E0000A401343A3712A7BD208D2001343A3710E -:1093F00070BD10B50A0001000120FFF7C1FF10BDCC -:1094000010B50A0001000220FFF7BAFF10BD70B5C9 -:1094100006000C000220002E30D000292ED07378D8 -:10942000201D0B70B3784B70F178FFF76DFC0122B3 -:109430003579257271794B10080013409340104024 -:109440000343881010408000C9080343C9000B4340 -:109450006373B1794B1008001340934010400343ED -:10946000881002409200C9081343C9000B43212011 -:109470002373FCF773FE854201D2122070BD2220B7 -:10948000257AFCF76BFE8542F7D823781820042B49 -:10949000F4D86378012BF1D80020EFE7030010B572 -:1094A0000220002909D0002B07D00322481C0A7093 -:1094B00019000D3201F0A8FE002010BD03000222A9 -:1094C000080010B5002B06D0002904D00E32591C1C -:1094D00001F09AFE0022100010BD030010B502201A -:1094E000002909D0002B07D00422481C0A7019005B -:1094F0000C3201F089FE002010BD10B5FFF7DEFF31 -:1095000010BD03000220002906D0002B04D0052244 -:1095100000200A701B784B70704703000220002B5C -:1095200008D0002906D05B7800200B70013B082B87 -:1095300000D918307047030010B50220002909D067 -:10954000002B07D00622481C0A7019000A3201F0CD -:109550005BFE002010BD10B5FFF7B0FF10BD02008C -:109560000B00022010B500290ED0002A0CD00721D4 -:109570001970118859701188090A997011180822F8 -:10958000D81C01F041FE002010BD03000A0002209B -:1095900010B5002B0CD000290AD099785878090210 -:1095A00001431180901CD91C082201F02DFE0020DF -:1095B00010BD030010B50220002909D0002B07D0F0 -:1095C0000822481C0A701900921801F01DFE0020A4 -:1095D00010BD02000B00022010B500290BD0002A9C -:1095E00009D009211970117818185970511C0622D8 -:1095F00001F00AFE002010BD10B5FFF75FFF10BD9F -:1096000002000B00022010B5002A09D0002907D063 -:109610005178197011180622581C01F0F5FD002030 -:1096200010BD030010B50220002909D0002B07D07F -:109630000A22481C0A701900063201F0E5FD0020DC -:1096400010BD10B5FFF73AFF10BD02000B0002205D -:1096500010B5002A06D0002904D018005178FFF771 -:1096600053FB002010BDF0B585B017001E006A4600 -:1096700006230500080091819380FEF7C0FC1324A7 -:10968000011E02900CD03800B047041E05D12800FE -:1096900001A9FEF76FFA041E02D0029801F054FFF0 -:1096A0002800FFF701FA200005B0F0BDF0B5040076 -:1096B0008BB0019115000021102202A801F0BCFD21 -:1096C000334EA700B85900283CD0C388A34239D1F3 -:1096D0000378002B36D14278062A18D10200010007 -:1096E000553235310C3006ABFFF7A9FA002829D1E5 -:1096F0002000FFF72FFE020006A902A801F084FD5A -:10970000200002A902F038F801200BB0F0BD816EF4 -:10971000002917D00B8A112A28D19D420ED1019819 -:109720001231093A01F0D0FE012807D1BB592000BF -:109730009D6EFFF70FFE29000200DEE732212000B8 -:10974000FFF7D8FC2000FEF701FF061E1BD0416A80 -:10975000002918D00B8AAB4215D10822019812318A -:1097600001F0B2FE01280ED1716A0AE09D42E9D1F2 -:1097700008220198123101F0A7FE0128E2D1BB595D -:10978000996E8A7EB9E7200001F07EFEBCE7C046F4 -:10979000E465FF1FF0B56B4D87007E5985B03378C7 -:1097A00002900393002B00D087E0B368346A0193E2 -:1097B0007078062817D101221B7D134202D0217B2D -:1097C000114218D10222134202D0217B114251D101 -:1097D0000422134203D0237B134200D08BE0019B71 -:1097E0005A7DEB5991E007380428F8D801F064FE5F -:1097F000032E42678300B36E002B03D11C2001F0BF -:109800003BFFB066EB599C6E002C1CD0102200214F -:10981000200001F011FD0298FFF79CFD01002000DF -:10982000FFF72DFA01F078FE208220000821123087 -:10983000FFF725FA0298FFF78DFDA076EB5921007E -:10984000D888FFF70FFC0822EB591CE0B36E002B01 -:1098500005D01A00198AF0881232FFF70DFC022297 -:10986000019B197DEB5911423DD0207B10423AD02B -:10987000073208E0F488FCF7DBFD01002000FFF769 -:1098800011FC0A22EB595A70029B9C002A5953780A -:10989000073B042B11D8D088FEF758FE00284ED085 -:1098A000C3895A08D2182849029B0298CB542B59D5 -:1098B00041180433254801F0B7FD05B0F0BDFCF7B1 -:1098C0009FFD03000120834201D100200393EB5947 -:1098D000DE88FCF79BFD039902003000FFF7ECFBEC -:1098E000019AEB59117D042211420CD0217B1142C7 -:1098F00009D00B22C7E7F688FCF73CFD01003000D9 -:10990000FFF7EEFB6BE7019A527D01210A4204D07A -:10991000607B084201D00C22B5E702210A4204D044 -:10992000607B084201D00E22ADE704210A4204D038 -:10993000627B0A4201D01022A5E71222A3E7FA2295 -:109940005200B0E7E465FF1FE865FF1F0B9D0011A3 -:1099500010B5064B1A780423100018401A4200D0A4 -:109960000348FFF727FA002010BDC0467164FF1FAF -:109970003443FF1F70B50400FFF7D4FA051E43D12E -:109980002000FFF77FFA234EA400A0598268937C41 -:10999000DB0708D50321036A1B790B40012B02D199 -:1099A000017F0B430377431DD97F8B1E022B0DD8FC -:1099B000022900D00121C088FCF790FF042133590F -:1099C0001A7F59700A431A77280070BD01290CD1FB -:1099D00002231022437000210C3001F02DFC30597D -:1099E00010213530FFF74BF9EEE70529ECD10223C2 -:1099F000D118437010220C3001F006FC04233259B8 -:109A0000117F0B431377EAE708251828DCD1053DC1 -:109A1000DAE7C046E465FF1FF0B58BB005914388D7 -:109A20007E4F9E00F45915000493002C15D1012996 -:109A300002D000200BB0F0BD101D57781678FFF74C -:109A400057F9EB68320002932B7A04990193009046 -:109A50003B002000FCF70CFFEBE7E388049A9342FD -:109A600001D00820E6E72378012B00D1D4E0059B44 -:109A7000581E092800D9CFE001F01EFD05CE0A29A5 -:109A8000CC506C859AB229000498FFF773FFD1E798 -:109A9000200029001022453001F0B6FBB9594B785F -:109AA000042B02D1013B4B70C3E70B000A002533A6 -:109AB00035320C310498FFF795F90498FFF702FA54 -:109AC0000522431E9841BB59C0005A70B2E72000DE -:109AD00029001022553001F097FB049B4F4C9D004C -:109AE000295904980A0006AB55320C31FFF77AF970 -:109AF00029591022453106A801F0E6FC012808D1B9 -:109B00000498FFF7F7F90590002804D106222B5995 -:109B10005A7005988EE708230593FAE763780C2BB3 -:109B20007AD1E36E002B03D11C2001F0A5FDE06685 -:109B3000BB59D86E00286FD01022290001F064FBB9 -:109B4000BB590498DC6EFFF705FC0D22A076BB59CB -:109B50005A706EE7E06E00285ED063780D2B5BD103 -:109B60002B8808220382A91C123001F04DFBBB593F -:109B70009A68517D0222114226D0186A407B104219 -:109B800022D00C32E4E763780E2B45D1236F002BF3 -:109B900003D1162001F070FD2067BB59186F002813 -:109BA00003D01022290001F02FFB0F22BB59CFE771 -:109BB00063780F2B30D1206F0622691C103001F022 -:109BC00023FBBB599A68517D0422114203D0196AC4 -:109BD000497B1142D5D100210498FFF78BFA28E781 -:109BE000636F002B0DD0BB59586F0028F3D01022A3 -:109BF000290001F009FB0122BB5952425B6F1A6137 -:109C0000E9E7142001F038FDBB5960675B6F002B5A -:109C1000E9D126E72978DFE707200BE7E465FF1F96 -:109C200010B5064C207001F047FD06212078FDF7A5 -:109C300091FF0348FEF778FC10BDC046F765FF1F93 -:109C4000C18D001100200BB270B50D00834216DAF1 -:109C5000264B187801F000FD041E0DD00378922BDE -:109C60000ED0A02B37D0224B1878FF283AD02100F5 -:109C700001F0AAFB002835D180200002684070BDA9 -:109C800043780E2B0BD03E2BEDD18378052B12D0D1 -:109C9000082BE8D181798088FFF7D8FA08E0154BC6 -:109CA00082889A42DFD183681878591CFEF7C0FE7B -:109CB000002817D1D7E7104B1B785B0712D50F4B45 -:109CC0001B68002B0ED09B68002B0BD0C289811D16 -:109CD00080889847ECE7FFF741FAA068002801D098 -:109CE00001F032FC200001F017FDC5E7F765FF1F0A -:109CF0002D43FF1F182000007164FF1FE065FF1F48 -:109D000010B50078FFF712FA10BD10B50078FFF714 -:109D1000FDFA10BD0C234343084A10B59B185A683E -:109D2000002A03D0012901D1904710BD9B68002B68 -:109D3000FBD00029F9D19847F7E7C0461466FF1F0A -:109D400001238340094A10B5946B1C439463506B04 -:109D500098435063D46B20009843012901D120001F -:109D60001843D063116B0B43136310BD0080004098 -:109D7000F0B500240127154B85B0DA6B144E039221 -:109D80001A6C0192DA64019BE3403B4217D0039DB9 -:109D9000E5403D400295E5B202992800FFF7BAFF81 -:109DA000316A736A002908D03900002B01D002996A -:109DB00079402800FFF7C4FF01E0002BF9D10134FE -:109DC0000C36172CDFD105B0F0BDC0460080004036 -:109DD000F865FF1F064B01215A68C2400A4204D0B1 -:109DE0001B68C3401800084070471B6DF9E7C04668 -:109DF000008000400122064B8240002903D0D96830 -:109E00000A43DA607047D9689143D960FAE7C046DF -:109E10000038004030B5032444430F4BE25C1B196B -:109E20009C785D7801232D1B0135AB40013BA3409D -:109E3000A140DB430C00122807D8084992005218B1 -:109E4000116819402143116030BD054A11680B406B -:109E500023431360F8E7C0469BBA001108F00040A6 -:109E600014F00040C21F70B5D4B20623092C0BD8E1 -:109E70000125084C9540002908D00021FFF7CAFFB2 -:109E800023682B4323600023180070BD2368AB4375 -:109E9000F8E7C04600380040214BF0B51B185B784E -:109EA000022B21D1032444431E4A1F4EA35C1219E6 -:109EB0009478012215008540B76B013CE4B23D4324 -:109EC000A240B563194C122815D89B0000290CD16B -:109ED00017495B1899680A439A600123205C154A68 -:109EE000834011680B431360F0BD11495B189968FA -:109EF00091439960F1E70E4B00290DD159690A434E -:109F00005A61225C1328E8D00123203A93400A4981 -:109F1000086803430B60E7E7596991435961F0E72B -:109F2000F865FF1F9BBA001100800040E0BA0011E5 -:109F300000F00040A0F00040A4F00040F8B500247C -:109F40001B4E1C4D1C4B1B5D012B1FD1194A9269E6 -:109F5000E2401A420BD00122B25693402200143A3A -:109F6000D2B2022A09D815494A6913434B61013418 -:109F700002360C35172CE5D1F8BD0022B2560F4938 -:109F80009200521891680B439360F0E7022BEED1D8 -:109F9000E7B23800FFF71EFF01235840C1B2380076 -:109FA000FFF77AFF3800FFF715FF6877DFE7C04655 -:109FB0006DBA0011F865FF1FF965FF1F00F0004042 -:109FC000012202388240054B002903D059690A4317 -:109FD0005A617047596991435961FAE70038004066 -:109FE000F8B50E0001210F008740114A0400D36824 -:109FF000FD43BB43D360831E8B4201D8FFF7E0FFD4 -:10A0000000212000FFF72EFF0A4A0B4B5168012E5A -:10A0100005D139431B1951605E700020F8BD2940FD -:10A02000516002221C1962709A6915409D61F4E723 -:10A030000038004000800040F865FF1F012210B585 -:10A040008240074B002906D019680A431A60012193 -:10A05000FFF7C6FF10BD196891431960F7E7C046C6 -:10A06000008000400C2370B5002543430A4A2900B4 -:10A070009B181D70094B04001B185D70FFF7B0FFA3 -:10A080000123A340064928000A681A430A600549CB -:10A090000A689A430A6070BD1466FF1FF865FF1FC7 -:10A0A000348000403080004070B504000E00FF286E -:10A0B00013D003250540FFF7D5FF084AA3089B00EE -:10A0C0009B183F22ED00AA40AE4019682000914342 -:10A0D000314319600121FFF78DFE70BD1838004033 -:10A0E000F8B50C244443134B0500E4186368002BB7 -:10A0F00003D1A3681220002B1AD0022201270E4B95 -:10A1000000215B195A7028002770FFF769FF636808 -:10A110001E1E08D0A3683E00002B04D02800FFF7C5 -:10A1200059FE4640F6B228003100FFF709FE002034 -:10A13000F8BDC0461466FF1FF865FF1FF7B5C420C1 -:10A14000FF222B4B80001958002491433F3A0A43C9 -:10A150001A508022274F5202274E1A60274B1D5D4E -:10A16000002D21D0A31E012B03D80121E0B2FFF75F -:10A1700027FF012D18D11F4B9B69E3402B4213D0C1 -:10A18000E3B218000193FFF725FE01000198FFF7E5 -:10A1900055FFE3B2143B022B1DD801217156184A1A -:10A1A0008D405369AB4353613B7F002B0DD0E5B22B -:10A1B0002800FFF795FF2800FFF70CFE7B7F0100CA -:10A1C000834202D02800FFF7A5FD01340C37023688 -:10A1D000172CC3D1F7BD012100237156F3568D40D2 -:10A1E000074A9B009B189A68AA439A60DCE7C0461E -:10A1F00000E100E0F865FF1F6DBA0011F965FF1F6F -:10A2000000F0004010B501210400FFF7E9FE012332 -:10A21000044A002011194B70A34091690B439361CC -:10A2200010BDC046F865FF1F70B50E001500040094 -:10A23000FFF718FF0C236343094A20009B189D6019 -:10A240005E60FFF74DFFF021064B074A8900051EAF -:10A250005A5002D02000FFF705FF280070BDC0460D -:10A260001466FF1F0000FF1F719D001170B5134D94 -:10A2700007202C78002C1FD19822210052002800A2 -:10A2800001F062F80123C420FF222B700C4B8000E8 -:10A290001C635C630B4B1C605C600B4B1958914357 -:10A2A0003F3A0A431A50802252021A600D20074A90 -:10A2B000074900F0F1FF200070BDC046F865FF1FA0 -:10A2C00000800040A0F0004000E100E03DA100114E -:10A2D0003D9F0011030010B50620072B09D8054A41 -:10A2E000137001F019F8D7210020034B034A8900AD -:10A2F0005A5010BD5C43FF1F0000FF1FD91AFF1FFB -:10A3000070B51D0002240C2910D8094ACA40D20792 -:10A310000CD5FBF72FFF041E08D1059A04992800DD -:10A32000FBF744FFFCF7B2FDFFF712FB200070BD06 -:10A330001210000030B50D7802232C009C43184207 -:10A3400001D02B431C0008252300AB43284201D039 -:10A350002B00234320241D00A543204201D01C4391 -:10A3600025002A230D70184204D011781E3B0B43A0 -:10A37000137030BD0028FCD10C2113788B43F7E714 -:10A38000F8B51D0006AB1B88140007AA0E000B20B1 -:10A390001778002B27D10A78022A49D14A685078C9 -:10A3A00011780002244A08438018042840D801F09C -:10A3B00083F803121D1B2300F06800F0EDFF021C60 -:10A3C000C0B2B84200D93A1CD2B22000F1682A804B -:10A3D00000F01AFF06E00222F3681B882A8023702F -:10A3E0001B0A63700020F8BD0622EEE701232B80D4 -:10A3F000F3681B782370F5E7F368002B16D008226A -:10A400002A801A8822701A88120A62705A88A270EA -:10A410005A88120AE2709A8822719A88120A627126 -:10A42000DA88A271DB881B0AE371DBE72B80D9E7AE -:10A4300001202B80D7E7C04600D6FFFFF7B51600F6 -:10A440000A781D0008AB1F880C000123022A18D1CE -:10A450004A685078117800022B4A08438018032874 -:10A460000FD801F029F802254439E06800F094FF84 -:10A47000C0B20723B84204D37B190193152B02DD28 -:10A480000D231800FEBDE0682A003100C01900F05D -:10A49000BBFE6B4600209B88E268D0541B4B1B68B8 -:10A4A000834203D01B68834200D098470023E8E72B -:10A4B0000B23002FE5D1022DE2D1737832781B02F5 -:10A4C0001343E2681380114B1B68002BEED01B680E -:10A4D000002BEBD00120E8E70B23002FD1D1062D74 -:10A4E000CED12A003100E06800F08EFEDEE70B23BB -:10A4F000002FC6D1012DC3D132787533012AC0D8BF -:10A50000E3681A70D2E7C04600D6FFFF0468FF1F59 -:10A5100070B50C001500072837D800F0CDFF0414E3 -:10A5200036361B36242E182015290BD8184E162225 -:10A530000021300000F080FE22002900300000F0F1 -:10A5400063FE002070BD18200229FBD11288114B38 -:10A550001A80F6E718200829F4D10A000E482900CD -:10A5600001F022F9EDE718200129EBD10B4B10780F -:10A570000B49DA69FFF7DEFEE3E718200129E1D194 -:10A58000064B10780749DA6BF4E70220DAE7C04699 -:10A59000EC67FF1FDA43FF1FD043FF1F6043FF1F1D -:10A5A0008843FF1FA843FF1F030010B50020DB07EF -:10A5B00004D50721024A034800F08CF810BDC046BC -:10A5C000F8BA00116043FF1F054A03001068002815 -:10A5D00003D082889A4201D1806870470068F6E70C -:10A5E000FC69FF1F0A88030008009A4204D08A8889 -:10A5F00004309A4200D0002070470000F8B5F222E3 -:10A6000000230D4F0D4E7968050042433370994287 -:10A6100000D07B600A4C0021200000F00DFE0023DA -:10A620001A007C60AB4202D100203370F8BD0133C8 -:10A630002280DBB2F234F5E7F46AFF1FF26AFF1FF3 -:10A64000006AFF1F73B56B4601900600684615004F -:10A650001980FCF74DFF041E11D1002D0FD0768913 -:10A66000002E11D00C2001F007F800280ED0084A67 -:10A670000460136886808560002B02D11060200082 -:10A6800076BD1A001B68F7E70224F8E71324F6E703 -:10A69000FC69FF1F012100220A4B10B549420A4CF8 -:10A6A000198099809A719A70084B20700120198046 -:10A6B0005A60FFF7A3FF2078FCF778FF0448FDF706 -:10A6C00033FF10BD0C68FF1FFC6AFF1FF46AFF1FF9 -:10A6D00081A70011022310B5002802D0FFF7B2FFB6 -:10A6E0000300180010BD0000030010B50020DB07B8 -:10A6F00004D50421024A0348FFF7A4FF10BDC04659 -:10A700000CBB0011E043FF1FF0B50E2687B003938A -:10A710000CAB1F8802ABF61805000800310002924E -:10A72000FDF768F804000120002C0FD03088FFF7F7 -:10A730004BFF03000E20002B08D05E68002E05D0D2 -:10A7400021002800039B029A0097B04707B0F0BD94 -:10A750000A4B10B5984207D10122002352420A80C9 -:10A760008B708A808B7110BDFFF73CFF0028FAD0F8 -:10A7700001235B42038000238370F4E7FFFF0000A6 -:10A78000F8B5050001290AD1134E00243388F227B9 -:10A79000AB4219D028001149FFF7DAFF06E0022981 -:10A7A00004D10139FDF73EFF0028EDD0F8BD3B0094 -:10A7B00063437268D018D35A002B09D03A000021A5 -:10A7C00000F03AFD0134E4B2054B1B78A342EED809 -:10A7D00001235B423380DDE7F46AFF1F0C68FF1F33 -:10A7E000F26AFF1F10B5FFF7FDFE03000020834251 -:10A7F00000D0987810BD0000F0B589B01C000EABF9 -:10A8000080CB03901E8810AB1B78049202930B7AC6 -:10A810000D00DB0616D42B780593022B24D0049868 -:10A82000FFF7D2FE002812D003689C46002B0ED002 -:10A83000029B2200019329003B0064460398009686 -:10A84000A04705E00498FFF7BFFE002802D10E20C4 -:10A8500009B0F0BD8368002BF9D00A2229000398C3 -:10A8600098470028D7D0F3E76B6858781A786B4B75 -:10A87000000210439842D2D8043B984210D2684B51 -:10A88000984242D015D8674BC0180128C7D80B2072 -:10A89000002EDDD1EB681A7859683A80200028E054 -:10A8A000614BC018032800D979E000F005FE846AE6 -:10A8B000789E5E4B9842B2D10B20002EC8D1012366 -:10A8C0003B80EB6831001B7823706889013080B2CF -:10A8D000FCF790FF3A88031E0ED0017802328A18E6 -:10A8E0003A80428962704289120AA27059680278DD -:10A8F000E01C00F089FC06E004323A8031000422BA -:10A90000601C00F099FC0020A2E70B20002E9FD1D4 -:10A91000EB6807A91E8804233B80330A30002670A9 -:10A920006370FCF767FF051E28D004AB9A890E23DD -:10A9300004A95B183E49C668FCF7D0FF00280BD17C -:10A940002B783C486A680599FBF786FB002803D101 -:10A95000012304AA5B42D3813278022A06D17168AE -:10A96000201D00F051FC3B8802333B800E2304AADB -:10A970009B181B88A3701B0AE370C4E704ABDE813D -:10A98000F4E70B20002E00D062E7E9680398FFF798 -:10A9900029FF02233B802070000A6070B3E70B2080 -:10A9A000002E00D054E70222EB681B883A80237007 -:10A9B0001B0A6370A7E7E86800F0EEFCC2B2030070 -:10A9C0000720B24200D243E70DD00299DBB27118E2 -:10A9D000994202DB921BD3B20293029BE9681A00F0 -:10A9E0003B8089195AE70023F6E70B20002E00D0A0 -:10A9F0002EE70722EB683A801A7822705A78627044 -:10AA00005A88A2705A88120AE2701A792271DA887A -:10AA10006271DB881B0AA37175E7C0460429000038 -:10AA20000228000000D8FFFFFFD6FFFF0328000028 -:10AA3000FFFF00003CBA0011F0B58DB06B4600205E -:10AA4000089120229B5E83423DDAA64B187800F0E5 -:10AA500003FE071E32D00378B02B2CD100790238C8 -:10AA600016281FD800F090FD17001E001E001E00C3 -:10AA700031001E0096001E001D011E0052011E0026 -:10AA800073011E00CD011E0050021E001E001E009C -:10AA90008E021E00E302944B94491B8878880B8039 -:10AAA000FBF71AF83800FCF79BFF914B1B68002B53 -:10AAB00001D038009847380000F02EFE8020089B17 -:10AAC0000002434018000DB0F0BDEE22002187487F -:10AAD00000F0B2FB0BAA3B7B7989388900923A00DF -:10AAE0000D32FCF79FFD0400804B1B78002C3FD1FA -:10AAF00046E0804B788805937F4B4100CB5A0BAEE4 -:10AB0000073BDBB232880293002301937B4B210089 -:10AB100006930093059BFFF76FFE744D002810D13C -:10AB2000069B3A8A1B889A420BD13800059912304D -:10AB300000F0CAFC002804D02B7862899B00EB1837 -:10AB40005A80162306A81B18328820007989FCF742 -:10AB5000C5FE2B7804009A00AA1851880029C3D09A -:10AB60000133DBB22B70002807D006A9C98A918077 -:10AB7000634A12889A42BCD802E00121494291807E -:10AB8000002B04D059497888FAF7DAFF8AE73E8922 -:10AB90000A2479E000253E89574B06937B88069A64 -:10ABA0005B009B5A033B9D4202DB002DF0D05BE033 -:10ABB000162206A812183B7B798900923A003000D1 -:10ABC0000D32FCF72FFD0590002858D04689017AF8 -:10ABD0007888FCF7F1FC041E44D1464B7888079333 -:10ABE000069B4100C95A454B0439C9B206AAD28A0C -:10ABF00006930291019400930599079BFFF7FCFDD2 -:10AC0000041E2FD1069B39491A88931C002D26D18A -:10AC10004B807988384B4900CB5A5119033B8B4202 -:10AC200020DD059B31485B8941190B71A91C013559 -:10AC3000C9B2EDB2059145191B0A2B71059B2D492F -:10AC40000433181800F0E0FA2C4B059A1B88D3182F -:10AC5000DDB22C4B9E4205D00136B6B29CE7498846 -:10AC60009942D6D0002D0CD0204C2800618800F0ED -:10AC700003FC207021007888FAF772FF12E7059C28 -:10AC8000F0E7002C00D183E77B78142B00D109E793 -:10AC900016493B794E800B700C717888FAF712FFD9 -:10ACA00000E7162406ABE41821003889FCF7A2FD62 -:10ACB000011E00D1B7E1788822880F4C45002C5B3B -:10ACC0000A4D013CE4B2029400240F4B019400951C -:10ACD000FFF792FD041E00D014E129007888FAF7EE -:10ACE0004FFFDFE6FC6AFF1FCC42FF1F1468FF1F07 -:10ACF0000868FF1F0869FF1F4464FF1FF869FF1FF2 -:10AD0000CA42FF1FFFFF00001668FF1F162406AB94 -:10AD1000E41821003889FCF76DFD011E00D182E1A5 -:10AD200078882288AE4C45002C5BAE4D013CE4B2E5 -:10AD300002947C89AC4B01940095FFF75DFD041EE5 -:10AD400000D0DFE029007888FAF724FFAAE6002582 -:10AD5000A44B1D803B00F6331B78A24A78880792EB -:10AD6000AB4208D99E4B12880693069943005B5A62 -:10AD7000013B9A4203DB0799FAF716FF92E6162485 -:10AD80006B00FB18059306ABE418059B210018899E -:10AD9000FCF730FD011E03D1059B01241E8973E7DA -:10ADA0007888924B2288069C099343001B5B904E47 -:10ADB000013BDBB20293002300960193099BFFF74E -:10ADC0001BFD041E02D0059B1E895DE77B88069A49 -:10ADD0005B009B5A079A108832881218934202DC53 -:10ADE0001B1A013B33807F4C0230328809990019CD -:10ADF00000F00AFA2388328801359B182380EDB2CF -:10AE0000A8E70BAA3B7B7989388900923A000D327A -:10AE1000FCF708FC00250590059B002B04D10A24B3 -:10AE2000002D00D16EE060E0059B7888197AFCF770 -:10AE3000C3FB0100041E63D1694C6C4B78880694F7 -:10AE40000993069B4400E45A694B063CE4B20BAEFE -:10AE5000328807930294019100930599099BFFF7AB -:10AE6000CBFC041E4CD1079B5E491B881A1D002D8C -:10AE700030D14A80059B5B4C5A8963191A716B1C4F -:10AE80009BB2E318120A1A71162306A832881B18FF -:10AE900079890598FCF722FDFF21AA1C2E1D033598 -:10AEA0000B00059092B2B6B2ADB2002803D006AB4B -:10AEB000DB8AD9B21B0AA218651911712B714C4D8E -:10AEC000301D2A884949201800F09EF92B88F61871 -:10AED000B5B2A1E74988914207D17A880699520014 -:10AEE000525AEB18053A9A42C4DC3E4C280061885D -:10AEF00000F05AFB207021007888FAF75FFED1E558 -:10AF0000002DF2D13E89BFE6162606ABF6183100B9 -:10AF10003889FCF76FFC3D000400FA3500282DD07D -:10AF2000037A9B060CD400227B89398978880092A9 -:10AF30003A000C32FFF7E8FB041E10D03E8915E002 -:10AF40003088FFF741FB00281AD08368002B17D008 -:10AF50002100122278889847041EE4D0EEE72B786F -:10AF6000002B02D17888FAF739FE00262B78002BC7 -:10AF700000D097E5002C00D194E585E60124DDE7BB -:10AF80000E24DBE7162506ABED1829003889FCF7FF -:10AF900031FC041E47D0037A9B0611D4154A7B88E6 -:10AFA0001188994203D01448814207D11380134B72 -:10AFB000F2261D780023D9B2A94221D30924A1E7A2 -:10AFC0002888FFF701FB00282FD08368002B2CD0A6 -:10AFD0002100122278889847041EDFD092E7C046ED -:10AFE0004464FF1F1468FF1F1668FF1F0869FF1FD6 -:10AFF000F869FF1FF46AFF1FFFFF0000F26AFF1FDE -:10B0000031005943546801336018615A0029D2D184 -:10B010003C0008342100F22200F0F6F82100788884 -:10B02000FAF7E4FD3EE501246CE70E246AE71D4BC8 -:10B030001A887B889A4231D07888FAF7E1FD31E5A9 -:10B04000F223059851684343CD18C95A00291FD0EF -:10B050003B7A012B0BD16C88AB887888AA1D0094B1 -:10B06000FFF752FB041E02D000233B722E88F2220F -:10B070000021280000F0E0F800232B80059B01331D -:10B08000DBB20593084B05991B78064A8B42D7D84B -:10B0900001235B421380002CCED0F5E5002634005E -:10B0A0000596EFE7F46AFF1FF26AFF1F70B5040010 -:10B0B0000E001500FFF796FA031E08D1310005486F -:10B0C000FFF790FA03001120002B02D01C80002013 -:10B0D0009D7070BDFFFF0000F8B50B4F06003B7878 -:10B0E0000D001400FF2B0ED00A2000F0FDFA011E07 -:10B0F00009D0B1230380002346800371C5800481F9 -:10B10000387800F061F9F8BD2144FF1FF7B50F0052 -:10B1100008A90600088809A90B240988002821D15C -:10B120000234022B1ED1557813782D021D432B00BB -:10B130008B4301937334002B14D1FB68300019004A -:10B140000093FFF74FFB019C85420BD02A00300093 -:10B150000099FFF7ABFF041E04D12A003000798963 -:10B16000FFF7BAFF2000FEBDF0B50E7885B0039062 -:10B170000AA805880120022E0DD14C682778647832 -:10B1800024023C43054FBC4205D10398DBB2019633 -:10B190000095FFF7BBFF05B0F0BDC04602290000D7 -:10B1A000034B10B51B68002B00D09847FEE7C04644 -:10B1B000006BFF1F07B501A8FFF7F2FF044A05481F -:10B1C0000021121A00F0C0F8F8F714FBFEE7C046A1 -:10B1D000046BFF1F2444FF1F01B40248844601BCD6 -:10B1E000604700BFC135FF1F01B40248844601BC5F -:10B1F000604700BFADAE000001B40248844601BC08 -:10B20000604700BF3D18000001B40248844601BCFD -:10B21000604700BFE94C010001B40248844601BC0C -:10B22000604700BF8B52010001B40248844601BC54 -:10B23000604700BF9DA9000001B40248844601BCDC -:10B24000604700BF154D010001B40248844601BCAF -:10B25000604700BF2526000001B40248844601BCB7 -:10B26000604700BF193AFF1F01B40248844601BC81 -:10B27000604700BF6571010001B40248844601BC0B -:10B28000604700BF056A000001B40248844601BC63 -:10B29000604700BF017F000001B40248844601BC42 -:10B2A000604700BF6130FF1F01B40248844601BC03 -:10B2B000604700BFC12FFF1F01B40248844601BC94 -:10B2C000604700BF1D4B010001B40248844601BC29 -:10B2D000604700BF8538FF1F01B40248844601BCA7 -:10B2E000604700BF4D38FF1F01B40248844601BCCF -:10B2F000604700BF4550000001B40248844601BCCD -:10B30000604700BF1930FF1F01B40248844601BCEA -:10B31000604700BF8D12000001B40248844601BCA2 -:10B32000604700BFD91AFF1F01B40248844601BC20 -:10B33000604700BF4D1F000001B40248844601BCB5 -:10B34000604700BF0132FF1F01B40248844601BCC0 -:10B35000604700BFB70E000001B40248844601BC3C -:10B36000604700BFB14E000001B40248844601BCF2 -:10B37000604700BF6DBC000001B40248844601BCB8 -:10B38000604700BF691F000001B40248844601BC49 -:10B39000604700BF0124000001B40248844601BC9C -:10B3A000604700BFDD52010001B40248844601BC81 -:10B3B000604700BF7918000001B40248844601BC10 -:10B3C000604700BFED4A010001B40248844601BC59 -:10B3D000604700BF594F010001B40248844601BCD8 -:10B3E000604700BF0539FF1F01B40248844601BC15 -:10B3F000604700BF5D17000001B40248844601BCED -:10B40000604700BF7D18FF1F01B40248844601BC9D -:10B41000604700BF4537FF1F01B40248844601BCA6 -:10B42000604700BFE928000001B40248844601BC1F -:10B43000604700BFA946010001B40248844601BC30 -:10B44000604700BFF94C010001B40248844601BCCA -:10B45000604700BFE117000001B40248844601BC08 -:10B46000604700BF5952010001B40248844601BC44 -:10B47000604700BF9136FF1F01B40248844601BCFB -:10B48000604700BF350E000001B40248844601BC8D -:10B49000604700BF091B000001B40248844601BC9C -:10B4A000604700BF0D52010001B40248844601BC50 -:10B4B000604700BF5522000001B40248844601BC29 -:10B4C000604700BF2D3BFF1F01B40248844601BC0A -:10B4D000604700BFCD4C010001B40248844601BC66 -:10B4E000604700BFC538FF1F01B40248844601BC55 -:10B4F000604700BFE548000001B40248844601BC33 -:10B50000604700BF5147010001B40248844601BCB6 -:10B51000604700BFEDA5000001B40248844601BCAD -:10B52000604700BF2951010001B40248844601BCB4 -:10B53000604700BFC521000001B40248844601BC39 -:10B54000604700BF2124000001B40248844601BCCA -:10B55000604700BFD949010001B40248844601BCDC -:10B56000604700BFF30E000001B40248844601BCEE -:10B57000604700BF5933FF1F01B40248844601BC35 -:10B58000604700BF5125000001B40248844601BC59 -:10B59000604700BF413BFF1F01B40248844601BC25 -:10B5A000604700BFA54F010001B40248844601BCBA -:10B5B000604700BF090E000001B40248844601BC88 -:10B5C000604700BF9D35FF1F01B40248844601BC9F -:10B5D000604700BFC9A9000001B40248844601BC0D -:10B5E000604700BF9135FF1F01B40248844601BC8B -:10B5F000604700BF156B010001B40248844601BCDE -:10B60000604700BFC52DFF1F01B40248844601BC3E -:10B61000604700BF2932FF1F01B40248844601BCC5 -:10B62000604700BF792DFF1F01B40248844601BC6A -:10B63000604700BFD91B000001B40248844601BC2A -:10B64000604700BFB54C010001B40248844601BC0C -:10B65000604700BF2146010001B40248844601BC96 -:10B66000604700BFF54E010001B40248844601BCAA -:10B67000604700BF75A9000001B40248844601BCC0 -:10B68000604700BF3D4B010001B40248844601BC45 -:10B69000604700BF456B010001B40248844601BC0D -:10B6A000604700BFC56D010001B40248844601BC7B -:10B6B000604700BF291C000001B40248844601BC59 -:10B6C000604700BFC926000001B40248844601BC9F -:10B6D000604700BF5549010001B40248844601BCDF -:10B6E000604700BF014C010001B40248844601BC20 -:10B6F000604700BF1D4D010001B40248844601BCF3 -:10B70000604700BF851F000001B40248844601BCA9 -:10B71000604700BFDD66010001B40248844601BCF9 -:10B72000604700BF434D010001B40248844601BC9C -:10B73000604700BF055E000001B40248844601BCBA -:10B74000604700BF8552010001B40248844601BC35 -:10B75000604700BF7139FF1F01B40248844601BC35 -:10B76000604700BF3555000001B40248844601BC63 -:10B77000604700BFD92FFF1F01B40248844601BCB7 -:10B78000604700BF311B000001B40248844601BC81 -:10B79000604700BF090E000001B40248844601BCA6 -:10B7A000604700BF4551010001B40248844601BC16 -:10B7B000604700BF810E000001B40248844601BC0E -:10B7C000604700BF5118FF1F01B40248844601BC06 -:10B7D000604700BFED39FF1F01B40248844601BC39 -:10B7E000604700BF3938FF1F01B40248844601BCDE -:10B7F000604700BFC94A010001B40248844601BC49 -:10B80000604700BFB352010001B40248844601BC46 -:10B81000604700BF193BFF1F01B40248844601BCCA -:10B82000604700BFC51D000001B40248844601BC4A -:08B83000604700BF1147010051 -:10B8380000030103020003030402050206020700D5 -:10B84800080309030A030B030C000D000E030F0382 -:10B85800100311001303140315031603B53B00115D -:10B86800E93B001100000000020000007AB8001156 -:10B87800192A0F180A000000F1590000FD240000E1 -:10B8880041460100317C0011459C0011997000115E -:10B89800357A00114552001139AA0011BD4E001128 -:10B8A800A93D0011D93E0011000000001616000045 -:10B8B80002000000C4B80011F4FFF3FFD2FC00003E -:10B8C8001940001100000000000000005475796163 -:10B8D8000042312E340030303133006769746875A6 -:10B8E800622E636F6D2F707676780054484232006E -:10B8F800020000000CB90011292A282A272A262A22 -:10B90800252A242A0A180000E20400007102000017 -:10B9180078EC0000744000001027000060F0000080 -:10B9280006640000204E0000000000000500000032 -:10B938001F501D00023CB400000113001400000059 -:10B9480081020000303132333435363738394142DC -:10B958004344454600000000495600119D56001119 -:10B96800000000000200000078B900116F2A6E2A5A -:10B978001A18000001A00000000000006410B71DA4 -:10B98800C8206E3BAC30D9269041DC76F4516B6B05 -:10B998005861B24D3C7105502083B8ED44930FF0C7 -:10B9A800E8A3D6D68CB361CBB0C2649BD4D2D3867D -:10B9B80078E20AA01CF2BDBDFB349B5F80000080CA -:10B9C80000100000000000009B5C001125730011AE -:10B9D800BF5C00112D770011435D00110377001142 -:10B9E800B95D0011D97600110B5E0011A178001124 -:10B9F800735E0011A1780011A55E00115B7800113B -:10BA0800B95D001191760011315E0011397800118D -:10BA18000000000000000000175F001139780011D5 -:10BA2800795F00113D730011052A042A012A002AB2 -:10BA38000229032801280028011800180000000026 -:10BA48000000000000000000000000870101020162 -:10BA580002010102010203030401030101010101C2 -:10BA68000303020103000D000E0010001100130073 -:10BA78001401070108010A010B011C011D0204023F -:10BA880005020702080219021A021C021D0301031B -:10BA9800020317000201000504000807000B0A0052 -:10BAA8001716001D1C010201010504010E0D0111EC -:10BAB80010011413011716011A19020201020B0AC8 -:10BAC800020E0D02111002141302171603050403C7 -:10BAD8000807030B0A030E0D0001020307090A0BEE -:10BAE8000E0F101112141718191A1B1F20212200EB -:10BAF80081A300113DA40011000000000200000015 -:10BB080042BA00110000000069B1001100000000F5 -:08BB18000200000040BA001118 -:020000041FFFDC -:1000000000000000113D001180B800117CB8001103 -:100010003061FF1F00000000000000000000000031 -:1000200000000000000000000000000000000000D0 -:1000300000000000000000000000000000000000C0 -:1000400000000000000000000000000000000000B0 -:1000500000000000000000000000000000000000A0 -:100060000000000000000000000000000000000090 -:100070000000000000000000000000000000000080 -:100080000000000000000000000000000000000070 -:100090000000000000000000000000000000000060 -:1000A0000000000000000000000000000000000050 -:1000B0000000000000000000000000000000000040 -:1000C0000000000000000000000000000000000030 -:1000D0000000000000000000000000000000000020 -:1000E0000000000000000000000000000000000010 -:1000F0000000000000000000000000000000000000 -:1001000000000000000000000000000000000000EF -:1001100000000000000000000000000000000000DF -:1001200000000000000000000000000000000000CF -:1001300000000000000000000000000000000000BF -:1001400000000000000000000000000000000000AF -:10015000000000000000000000000000000000009F -:10016000000000000000000000000000000000008F -:10017000000000000000000000000000000000007F -:10018000000000000000000000000000000000006F -:100190004D32FF1FAD30FF1FC1660100000000009F -:1001A000000000000000000000000000000000004F -:1001B000000000000000000000000000000000003F -:1001C000000000000000000000000000000000002F -:1001D000000000000000000000000000000000001F -:1001E000000000000000000000000000000000000F -:1001F00000000000000000000000000000000000FF -:1002000000000000000000000000000000000000EE -:1002100000000000000000000000000000000000DE -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000000000BE -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000000000000ED -:1003100000000000000000000000000000000000DD -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000000000000000AD -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:10037000B5B1001100000000000000000000000006 -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000591AFF1FBC -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:08183800106FFF1F4118FF1F94 -:10184000024981F3088802F02FFA0000106FFF1F91 -:1018500010B502F069FA072804D0122808D002282F -:1018600008D010BD044A0420136B01331363F8E75A -:101870000220F6E71420F4E7EC64FF1FF8B5070038 -:101880000C0026002500503630785135002804D150 -:101890000300287058342370F8BD2978CA00481E08 -:1018A0008141A3183800A25C5B68C9B2FFF7D0FF82 -:1018B00000280DD12B78DA00A218013350602B706C -:1018C0003378044A013B3370136A01331362D8E75B -:1018D0000123DFE7EC64FF1F5C234343074910B596 -:1018E000C9180B0058331B78012B05D1FFF7C6FF31 -:1018F000034A936A0133936210BDC0462065FF1FFF -:10190000EC64FF1F10B502F037F9064A01211300FD -:1019100010CB4942D967044B136002F07DFB2000D5 -:1019200010BDC04600E100E01000100010B504003A -:1019300002F022F9024B1C6002F06EFB10BDC046A3 -:1019400000E100E0431E5A425341A022F0B5D2010B -:101950005B421340154D164A40019B182A18127E0F -:101960008BB00191002A1BD01A000832D46F0022DC -:10197000E6B206AFE4B294420EDC2818C369002B2D -:1019800008D0019902AA117106AA049202AA16733C -:1019900003A898470BB0F0BD1978B9540132EAE7B3 -:1019A0001A7D1A7806AB01261A70E6E7AC67FF1FAE -:1019B00000400040F0B5254B04004001C25C85B0FA -:1019C000002A2BD01A18117E002927D0917E0029D9 -:1019D00024D01179022921D11689D788D168F51B25 -:1019E000ADB22A1C102D00D9102292B2BE4217D1DE -:1019F0001818012303710023C269C38003819A422E -:101A000006D06846032103730171029301A8904731 -:101A10000820002C00D0192001F0FEFA05B0F0BD1E -:101A2000013C65426C41A0256442ED012C40084D0B -:101A30001B186419074D0633013A92B2AA42EDD041 -:101A40001888461C1E80085C2070F5E7AC67FF1FF5 -:101A500000400040FFFF00000F220E4B10B59868B9 -:101A6000104002380A280BD802F060F80D0A0B0A61 -:101A70000A110A0A0A0A060002210020FFF762FF83 -:101A800010BD0121F9E70020FFF794FFF8E7DB6FB5 -:101A9000F6E7C046004000400F220E4B10B5986894 -:101AA000104002380A280BD802F040F80E0A0B0A40 -:101AB0000A120A0A0A0A060002210120FFF742FF61 -:101AC00010BD01210800F9E70120FFF773FFF7E7D8 -:101AD000DB6FF5E70090004013B5334C2378072BFC -:101AE0003DD8324B1A78324B002A39D180221968FE -:101AF00052020A431A60252001F0C4FE20232D4A19 -:101B000011680B43802113606B460422C9050868E5 -:101B10000733104228D080210422C905C86810422A -:101B20002ED080212020C905CA688243CA601422B1 -:101B30001A701A78002A2FD18021C905C86820326E -:101B40000243CA6014221A701A78002A28D11A4B4C -:101B50001A7D22785A601D221A705932DA6013BD3C -:101B60001A6816490A40C5E7086802430A60142249 -:101B70001A701A78002ACED01A78013AD2B2F7E752 -:101B8000C8680243CA6014221A7019784A1ED2B279 -:101B90001A700029F9D1C4E71A78013AD2B2C7E71E -:101BA0001A78013AD2B2CEE75C43FF1F2444FF1FEC -:101BB0003CF000405443FF1F00200040FFFFFEFFA9 -:101BC000564B70B51B68012B03D1554A936D0133F9 -:101BD000936502F039F9534B534A1860534B544CF8 -:101BE0001A600123534A1360534A13602378002B71 -:101BF00006D006225149524802F046F800232370CD -:101C0000504A514B10681B78C1B2002B0ED14F4C7B -:101C1000C0B223785BB2002B4FDB237824785BB211 -:101C200064B21B0424021B191B1813600B1C5029DF -:101C30004ED95023464A47491078DBB2FF2202288A -:101C40004BD10868444C454D267890432A789642FB -:101C500054D9227824782E78023B5D10A31B6B4365 -:101C60005201D31A10335B111843086002F0CCF90B -:101C7000031F012B45D83A4B1B78002B06D0394B5C -:101C80001B78002B02D0002002F06EF9A122364B07 -:101C900092009978354B4A431B689B188322920027 -:101CA0009B181B78033B012B03D8AF20400001F0A9 -:101CB00093FF01222E4BDA8270BD237824785BB229 -:101CC00064B2FF33FF341B0424021B190138ABE755 -:101CD000CAB2022AAED20223ACE70868254C264DD0 -:101CE000267890432A78964208D9227824782D784D -:101CF000023B5B10641B63435201B2E72378DBB203 -:101D0000B2E70228D5D11D4B1B78013B022B03D92A -:101D10001B4B1B78022BCCD16C20C8E79809FF1F06 -:101D2000FC0FFF1F2464FF1FFF3F0000141003403F -:101D30002864FF1F0C10034000100340D50BFF1F49 -:101D40007211FF1FB40003408C09FF1F680AFF1FB8 -:101D5000490AFF1F94000340460AFF1F470AFF1F5E -:101D6000F908FF1F2209FF1F300DFF1F3409FF1F55 -:101D7000BC0BFF1F440AFF1F450AFF1F1C09FF1F62 -:101D80002309FF1F10B502F037F80022014B1A801B -:101D900010BDC0462064FF1F10B502F015F8A12148 -:101DA000054A89009478054A61431268044B521829 -:101DB000528C1A8010BDC046300DFF1F3409FF1F22 -:101DC0002064FF1F10B50D4B0D4A9978A1239B008D -:101DD0004B431268D218531DD97F0A4B1B88994276 -:101DE00009D2441C07D0C82805D0D2695B1A5A43CF -:101DF000054B5343C01802F08FF810BD300DFF1F84 -:101E00003409FF1F2064FF1F7102000070B5244DCC -:101E10002B68002B28D002F00FF82B68D8402B68D5 -:101E20000400002B27D002F0B7F82B68D8401D4BD8 -:101E30001D4A9978A1239B004B431268D118D25CAC -:101E400091239B00002A20D0CA580132CA50174B58 -:101E500017491B680868834214D3D23B181A012A19 -:101E60001AD0144B186070BD01F0E6FF124B1968D0 -:101E700002F0DAF8D3E702F08FF80F4B196802F09E -:101E8000D3F8D4E70D495B18E8E7CA500C4B1B6840 -:101E9000DB68E418201AE4E7F530FF30E1E7C046DC -:101EA0001C08FF1F300DFF1F3409FF1F9C09FF1F77 -:101EB0002464FF1FA009FF1F1808FF1F2DFF3F000C -:101EC0002C64FF1F70B504000D00282916D10300F3 -:101ED000A433C2881B889B1A0B4A9BB293420DD92C -:101EE00006006A3605223100653002F07DF80028D0 -:101EF00004D13100200001F0D7FF70BD290020007F -:101F000002F06AF8F9E7C046FE7F0000F8B5050068 -:101F1000012001F0A9FE134CA36AA26A9342FBD1EF -:101F2000114E336001F070FF104903000860104843 -:101F3000426894460F4A17680022BC4501D24268A5 -:101F4000BA1A0D4802603268AD18A422E562606AD0 -:101F5000520302436262094A1278002A01D00F3B01 -:101F60000B60F8BD00F00040340AFF1FE408FF1FBB -:101F700028100040180AFF1F1C0AFF1F1C09FF1F22 -:101F800070B580241025E405A3682B43A36001F0FD -:101F900023FFA368AB43A36070BD0000F7B5160034 -:101FA00080221C001023D2050191916805000B438B -:101FB000936000225A4BD7301A6001F0D5FE9D2362 -:101FC0002A002F009B00EB58CA3201210092FC37F7 -:101FD000002B01D00021009A386801F0B5FE2900DD -:101FE000009BCB311A784F4BD3351A604B780A7867 -:101FF0001B0213438A7812041A43CB781B0613433F -:10200000494A1BBA13604B790A791B0213438A7938 -:1020100012041A43CB7931001B061343434A1BBAFF -:1020200013606B782A781B021343AA7812041A43B0 -:10203000EB781B0613433E4A1BBA1360019A330226 -:1020400013433C4A13603C4B22001B1B9C46032954 -:102050003DDCB3089A0013005142B21A032A46D15C -:10206000354AE018511A827840781204000202437F -:10207000E05C043302430A600022FF2B4BDDF022B8 -:102080002E4B12011A600F222D4B1A602D4A136835 -:10209000002BFCD00023224A27491360091B321D64 -:1020A0000B191B68043A180A23706070180C1B0E79 -:1020B000A070E3700434002AF2DC802210213B6817 -:1020C000D20501333B6093688B439360F7BD634651 -:1020D000D578981893782D061B042B43157804396E -:1020E0002B43557804322D022B430360AFE7022ABD -:1020F0000AD1114AE05C511AE218527812020243E6 -:102100000A6004339BB2B7E7012AB5D10A4A521AD2 -:10211000E15C1160F5E7084959180A600433ACE73F -:10212000000004403C0004403800044034000440F7 -:10213000300004400C00044000010440040004404E -:102140001000044014000440F7B5150080221C0064 -:102150001023D2050091916807000B439360002380 -:10216000654AD730136001F0FFFD9D233E009B00C0 -:10217000F9583B00CA363200FC33002900D07FE01A -:10218000586801F0E1FD390032785C4BCB311A60C0 -:102190004B780A781B0213438A78AC4612041A4320 -:1021A000CB78281D1B061343554A1BBA13604B7985 -:1021B0000A791B0213438A7912041A43CB791B064E -:1021C0001343504A1BBA13604B7A0A7A1B0213431B -:1021D0008A7A12041A43CB7A21001B0613434A4A17 -:1021E0001BBA1360009A2B021343484A1360220063 -:1021F000474B1B1B0093009BCE785B1801938B7899 -:1022000036061B0433430E78043833434E780431CA -:1022100036023343019E33600328ECDC0321A80817 -:10222000431C9B002940800003292BD13849E51825 -:102230005E18A9786D78E35C09042D0229431943DF -:102240003160030008330021FF2B2DDD314B324973 -:1022500019600F21314B1960012327490B60304B66 -:1022600019680029FCD006211B680B40042B20D0E4 -:1022700080220020D20593680A318B439360FEBD13 -:1022800001217DE7022908D121495D18E11849782B -:10229000E35C090219432960D3E70129D3D11C4922 -:1022A0005918E35C0B60CCE7194818180160043337 -:1022B000CAE7002310490B606346002B0CDC3B008F -:1022C000FC335A68102101325A608022D20593688B -:1022D00001208B439360D2E7009B9B181B68190A6F -:1022E00013705170190C1B0ED37004235B42917054 -:1022F0009C440432E0E7C046000004403C00044037 -:102300003800044034000440300004400C00044015 -:102310000001044004000440080F000010000440C5 -:102320001400044070B5061E19D002225A4B9B7946 -:102330009343012B13D1594B1A78FF2A0FD15A78A6 -:10234000FF2A0CD19A78FF2A09D1DA78FF2A06D120 -:102350001A79FF2A03D15B79FF2B00D199E0504B0A -:102360000C201A78012A08D000224E4D1A702978C4 -:102370000B00093B042B01D8212070BD4B1F012B02 -:10238000FAD9454CA37B042B00D982E0A279032A19 -:1023900000D97EE09A1ED2B2012A02D860881F2896 -:1023A00077D9002E56D0012E73D1A0880128E3D012 -:1023B000002907D1581E032803D801F0B7FB1217D4 -:1023C00015122E702978481E032811D80025364B87 -:1023D0001D602823237501F057FDA84227D0A58052 -:1023E000CAE702212970EDE70421FBE70321F9E7A1 -:1023F00007390129C0D82D490968C96A8906BBD5A2 -:102400002B4908780028B7D1012A01D9002BB3D174 -:1024100002230B708021274D2633890128782375EC -:1024200001F00AFE80212878890101F0B5FB012323 -:10243000A380214B1B78002B0AD0FA2280211F4B4E -:1024400092001B8809025A431A4B187801F04CFC81 -:10245000002092E701F090FB2B78A680073B012B30 -:1024600003D917482E7001F05FFD114B114C1A78FB -:10247000002A06D080210022207889011A7001F0FC -:10248000DBFD01F0C9FD80212078090201F0D4FDB7 -:10249000DEE7122071E7C046A60BFF1F6B09FF1F86 -:1024A0001A09FF1F1C09FF1F4809FF1F2C64FF1F8B -:1024B0002309FF1F1B09FF1F2109FF1F2C09FF1FF5 -:1024C0000010004010B5002901D001F0E5FB10BD5F -:1024D000F7B5604B01919978A1239B004B435E4A6D -:1024E000060014681022E418D6235B00E058362357 -:1024F000FF33E35C00279343222B41D1574B0F3A24 -:102500001A600760012501F02FFB019B1880E8236A -:102510005B00E35C002B01D0B34258DD0023504F39 -:10252000FB70AD33FF33E3581A68002A03D09B8851 -:10253000DB439B071DD03823FF33E35C002B18D00F -:102540009B235B00E35C002B13D1D133FF33E35CAF -:10255000B3420EDAA4235B00E15AE018090A023103 -:1025600001F02AFD23000122FE33013E01351A87C6 -:10257000FA70E8235B00E35C002B2AD0A8B2FEBD12 -:1025800003683D00002BBED081880430090A023167 -:1025900001F012FDD6235B00E3581F60B2E7230071 -:1025A000B133BA00FF339858013781880430090AE3 -:1025B000023101F001FDE8235B00E35CBB42EEDC8D -:1025C000E822F61AED1800235200A354A6E70027CC -:1025D000F1E7200001F020FB00281FD0002E1DDDB8 -:1025E0007319882647190193B600200001F06CFB8F -:1025F0005A30800020184068013581880430090A6B -:10260000023101F0D9FC200001F0F6FAA3590133A0 -:10261000A351BD4202D0019B9D42E6D1114BE35C28 -:10262000002BABD095239B00E35C002BA6D00E4B78 -:10263000E15A0029A2D00D4AA35C994202D9013384 -:10264000A3549BE700231A212000A35401F084FA2D -:1026500094E7C046300DFF1F3409FF1F00140340EC -:10266000E010FF1F5A020000720200005E0200002C -:102670000D4970B54A6E0D4CD2038B69D20BA24244 -:1026800006D80B4D0224AA4204D901F02DFC70BDDE -:1026900002246442E21815007E2425402242F4D030 -:1026A000A3432B438B61F0E700F000400A200000B9 -:1026B000FC1C0000F8B51D4B1D4F1A78002A10D1E4 -:1026C000BA7B002A02D101321A7003E0032AFAD041 -:1026D000022AF8D001F0D8FB00220120154B1A7015 -:1026E000F8BD154B154D1C68154B9E7801232B70BA -:1026F0002878C0B200F0A2FBBB7B002B0BD101F00D -:1027000093FBA1239B007343E41883239B00E418ED -:1027100023782B70E4E7032B02D101F0A5FBF0E74F -:102720000020022BDCD101F0C7FAEAE71C09FF1FE9 -:10273000A60BFF1F2309FF1F3409FF1F490AFF1FB4 -:10274000300DFF1FF0B587B00EAD2F780FAD2D788F -:102750000593AC46634614000E4D0CAA12782E78F1 -:1027600003930D9B009201932200059B029701F0B9 -:10277000C3FB2E70012C01D0042C08D18022064905 -:102780008B889343054A1278D20113438B8007B09C -:10279000F0BDC0461C09FF1F6C11FF1F7809FF1F09 -:1027A0000B001B3B70B504003020E02B0DD813004C -:1027B000E025493BFF3B9BB2ED00AB4205D8034B04 -:1027C000200019825A8201F01FFA70BD8410FF1F89 -:1027D00010B501F039FB054B00205B68052B04D9CF -:1027E000034A5268D20200D4980810BD001000407D -:1027F000FCE100E070B501F0BFF90D4B1B68FC3344 -:10280000DC691D6AFFF7E4FF6419844204D2094BB6 -:1028100001241B68002B07D004220024064B1A70E9 -:10282000064A93690133936101F0F6FB200070BD05 -:102830002C64FF1F9809FF1F2309FF1FFC0FFF1FB8 -:1028400070B50C4D2B68FC335C6A01F095F9FFF70D -:10285000BFFF2B680025FC339B6AE318834204D238 -:10286000054B1B68AB4200D1051B01F0D5FB2800CE -:1028700070BDC0462C64FF1F9809FF1FD722044B70 -:1028800092009B5810B5002B00D0984710BDC04651 -:102890000000FF1F10B501F0D3F8FFF7EFFF274945 -:1028A000274BCA6D274C1A4084235B001343CB652A -:1028B000254B1B68186A01F0D7F9244B244A1A608B -:1028C000244B254A1A60A022244B52001A60244B44 -:1028D000187801F0E1FA2000224901F0BDF9002347 -:1028E000A3600233A360204B2049236003232048C8 -:1028F000A36001F0B1F910221E4BFF201A60802264 -:1029000052031A60802292031A60802212041A6015 -:1029100001F02AFB012001F047FBFA20400001F002 -:10292000DBFA582001F058F9134801F0EDF90120C5 -:1029300001F04AF9072001F08FFB10BD00F00040C4 -:1029400000FEFEFF141000402C64FF1F0000034037 -:102950000180063DBC00034034080000A400034091 -:102960004A0AFF1F71020000C3090000FFFF3F0079 -:102970002810004000E100E030750000674E336829 -:1029800088331B6883F3088801F02EFA644A65498E -:10299000136800200B401360634B644A1B6893422A -:1029A00000D1A6E001F050FB0221614A13688B437D -:1029B0001360FFF76FFF5F4B5F4C1878C0B201F0F8 -:1029C0008BF90023A3600233A3605C4B01202360DA -:1029D00001F04AF90323A36001F0E6F8040001F0D6 -:1029E00033FA050001F0E0F8554B186001F08CFA5D -:1029F000544B1968621A531EA14200D21300802260 -:102A0000D203934201D39B029B0A3268D16AC90761 -:102A100000D471E04C491C0C09689BB24C435943EB -:102A20002402090A641803264849FC3293680A689C -:102A300047489B1A474A0768126847499B18474A04 -:102A40009A1833409208DB190A600360042B03D9FB -:102A5000013233400A6003600E684149A619300014 -:102A600001F0E2FA3F4F3E493B68C3183B6030003B -:102A7000019301F041F93C4E306808183849306044 -:102A8000884205D9019B01333B6001F035F9316083 -:102A900001F0C2F9354B1B78002B0DD001F0D4F9B1 -:102AA000334B621B196812188A4232D24919091B2A -:102AB000091A304801F0D0F82F4E337A002B0ED08F -:102AC00001F0C2F9621BF1681218914224D9491928 -:102AD000091B091A294801F0BFF800233372284B5B -:102AE00083F3088801F050F8002001F0ADFA01F0FE -:102AF000EBF901F0A9FA5CE7DC0199000234641AF1 -:102B00005900641A09214B438033CB40A408E418D0 -:102B100089E7FA218900CCE71A49DBE72C64FF1F1B -:102B20001CF00040FFFFC1FF0C0AFF1FB64121034C -:102B300010000040490AFF1F14100040C3090000A4 -:102B4000100AFF1F340AFF1F380AFF1F200AFF1F49 -:102B5000280AFF1F1C0AFF1F240AFF1FC4090000C8 -:102B6000710200006008FF1F2C0AFF1F1C09FF1FD5 -:102B7000E408FF1F00100040740BFF1F3C100040D2 -:102B800000000020DC050000A022054B92009B58AD -:102B900010B5002B01D0984710BD01F04DF8FBE7B0 -:102BA0000000FF1FA122054B92009B5810B5002B7F -:102BB00001D0984710BD01F03FF8FBE70000FF1F70 -:102BC000A222054B92009B5810B5002B01D09847CC -:102BD00010BD01F031F8FBE70000FF1FA322054BF9 -:102BE00092009B5810B5002B01D0984710BD01F002 -:102BF00023F8FBE70000FF1FA422054B92009B581F -:102C000010B5002B01D0984710BD01F015F8FBE777 -:102C10000000FF1F70B501F017F94F4B186001F06D -:102C200003F80400C30702D401F0C6F870BD002207 -:102C30004A4B1A604A4B18780138042829D800F00A -:102C400075FF0320181C2400200001F095F80128CE -:102C5000ECD0444C2378042B6ED101F02DF90028E0 -:102C6000E4D001F069F8582000F0B6FF0223237089 -:102C7000DCE7200000F0E8FFE9E7200001F06CF855 -:102C8000E5E7200001F0E8F8E1E7200000F0F4FFBC -:102C9000DDE701F0B9F90500012808D1324B1B78B6 -:102CA000053B012B03D82000FFF76EFFD1E72D4B2A -:102CB0001B78022B01D0052B20D1022D28D12B4BC4 -:102CC0009B7BAB431CD12000FFF76CFF264B187891 -:102CD0000128BED16405BCD4244925224B7B034284 -:102CE00005D1233A13405A42534126331A000B7D33 -:102CF0009342AED9322001F02FF9AAE7022D07D175 -:102D0000194B1B78052B11D12000FFF759FFDDE788 -:102D1000012D0BD1012B03D12000FFF75FFF98E7B6 -:102D2000062B03D12000FFF767FF92E7200000F099 -:102D300083FF022D8DD1C9E7032B04D10C4B987C66 -:102D400001F09AF872E7072B00D06FE7094B987BE8 -:102D500001F01AF96AE7C0469C09FF1F9809FF1F96 -:102D60009009FF1F2309FF1F1C09FF1FA60BFF1F50 -:102D7000BC0BFF1FD40BFF1FFA210A4B0A4A490064 -:102D80001A640A4A5A500A4A04395A50094A083100 -:102D90009A64094A5A50094A5C315A50084ADA661C -:102DA0007047C0460000FF1F4527FF1F4128FF1F37 -:102DB000F527FF1F2523FF1FB526FF1FC51DFF1F7A -:102DC000991DFF1F10B500F099FE10BDF7B50B0C53 -:102DD000FF270122009300233C001E001D009446A3 -:102DE000019089B262469A40100008401841361896 -:102DF000B6B2FF2F02D1012E00D19FB2009802403F -:102E00001A41AD18ADB2FF2C02D1012D00D19CB2F8 -:102E10000133102BE6D10320012E07D1012D04D15F -:102E2000019B2401E4191C700138FEBD102EFCD159 -:102E30000238102DF9D00230F7E700008023F7B5F3 -:102E40009C46264B264F01932649274A274D284C5E -:102E5000284B02281AD1604638600868264E304058 -:102E6000802636033043086001990978002909D18A -:102E70001660224A2A60224A2260E02219689143A1 -:102E8000A03A1BE08021C9021160F2E766463E606D -:102E90000F68194E3E408027FF023E430E600199A5 -:102EA000097800290DD1176001280ED1154A2A6032 -:102EB000154A2260E02219689143C03A0A431A6019 -:102EC000F7BD802189021160EEE7E0210F4A02433D -:102ED0002A600F4A22601A688A43F0E74B0AFF1FF4 -:102EE000E0000340D800034090000340000003408E -:102EF0005000034040000340FFFFE3FF0280063D17 -:102F0000804508220180063D8066082200800698E0 -:102F100080550822F8B51E4B80261A680020140040 -:102F20003440324232D11A681A4F32431A600122B9 -:102F30003B68063093433B6000F096FE0122164D3D -:102F40002B681E432E603B680A2613433B60802794 -:102F5000BF00124B1B683B4211D1013EF6B2FF2E5F -:102F600009D17E220E4B1C682B68E40B144093435E -:102F700023432B6005E0082000F076FEE9E7002EF1 -:102F8000EFD180222B68600893432B60F8BDC046C8 -:102F9000C4F000405CF0004018F0004068F00040D1 -:102FA00060F0004010B501F00FF801215820034AED -:102FB00000F002FEFFF7AEFF10BDC046600AFF1F23 -:102FC00010B578220021034800F0D6FF00F0B4FFCE -:102FD000002010BD3467FF1F70B5040000F0CCFD69 -:102FE00000230C200B4A010059438D18515C002925 -:102FF0000DD0A14208D1012300246B7000F0F4FD34 -:1030000001F00AF8200070BD01330A2BEBD1122425 -:10301000F6E7C0463467FF1F70B5040000F0ACFD52 -:10302000002319001D000D4A1078002806D0A04288 -:103030000CD1557001310C320A29F5D1002B0AD17F -:1030400000F07AFF00F0E8FF002070BD5078461EC7 -:10305000B0411B18EEE700F0C7FDF3E73467FF1F30 -:10306000F7B504000C20002384460E4D01926746FC -:103070005F43E85D7E19A04212D000280BD10A4BB5 -:103080009C4662461B7808331370019B70707C5518 -:103090007160B360FEBD01330A2BE8D10320F9E76C -:1030A0000720F7E73467FF1F3067FF1F8020F8B560 -:1030B000484BC0051B68C1248360474BFF251A6835 -:1030C000012313434361454BA4001A68444B40213C -:1030D0001A60444B1A68444B1A60444B1A59AA436D -:1030E0001A51C52292009E58AE4331438026995012 -:1030F0009F583F49F6010F403E439E509E588027FF -:103100003602360A3043985080201A5900020A408D -:1031100002431A5104341A59364E3F043240802675 -:103120003A431A511A5936061202120A32431A51F8 -:1031300008341A5980260A4002431A51C3229200C9 -:103140009F58B446AF4337439F509F58294E0F4076 -:1031500007439F509F5837408026360437438026C8 -:103160009F509F5836063F023F0A37439F50C02268 -:103170001F59AF433A431A511A591202120A164301 -:10318000C6221E5192009C58AC4365462C439C506D -:103190009C5800250C4020439850C72080001A58A6 -:1031A000154C1140C02212020A431A50134B1B78CF -:1031B000DB08AB4201DC0020F8BD2378002B06D0F1 -:1031C000A368002B00D0984701350C34EEE712209D -:1031D000F2E7C0465843FF1F5443FF1FB0F00040C2 -:1031E0002C67FF1FB4F000402867FF1F00E100E0DC -:1031F000FF00FFFFFFFF00FF3467FF1F3067FF1F67 -:10320000030010B51F2809D8072200201340072407 -:1032100004490A78A24313430B7010BD0023062013 -:10322000F5E7C0463067FF1F054B06491B780A6863 -:1032300005485B0702401B0B134300200B607047DF -:103240003067FF1F1CF00040FFFFC1FF70B50C2569 -:10325000FFF7EAFF0A4B1C780A4BE4086543ED18B8 -:10326000002C01D1200070BD2B78002B06D06B689C -:10327000002B00D09847013C0C3DF1E71220F2E70B -:103280003067FF1F2867FF1F1FB5002102220B00B8 -:1032900001910091052000F077FD02230B490A6897 -:1032A0001A42FCD120230393039B5A1E0392002B46 -:1032B000FAD1074A1368002BFCDA0B246C44200077 -:1032C000012100F029FD207804B010BD90C8004015 -:1032D00000C8004013B504000A4B0193019B002B6A -:1032E00001D1112016BDFFF7CFFF23000340044298 -:1032F00005D0052000F0B8FC019B013BEDE718006C -:10330000F0E7C046FFFFFF0707B500F035FC80225D -:103310000821D205936A0191002B01D107399162EE -:1033200002210C4A11600199481E01900029FAD12E -:1033300003311160053101910199481E0190002966 -:10334000FAD11160002B02D18022D205936200F0E5 -:1033500063FE07BD00C00040F0B52D4C89B0237856 -:10336000002B4FD1FEF7CEFA02232A4F03903A6882 -:103370001A42FCD120230693069B5A1E0692002B6C -:10338000FAD1254E3368002BFCDA0120FFF7A2FFAB -:10339000011E02D0112009B0F0BD030003220190EC -:1033A000009005AD9F2000F0EFFC0321280000F005 -:1033B000B3FC02233A681A42FCD120230793079BEF -:1033C0005A1E0792002BFAD13368002BFCDA012039 -:1033D000FFF780FF0028DDD10398FEF7A7FAAA784F -:1033E0006B7811041B020B4329780B4363601300B5 -:1033F000113B0A49052B07D801239340A3600B60BA -:10340000012323700020C6E780231B03F6E7C04694 -:103410004043FF1F90C8004000C800409808FF1FAD -:103420001E4B30B55A6818781D4B85B0D3185942D9 -:103430004B4101210093002300F0AEFC194B1A4AC6 -:1034400002259A6300221A6510325A658022C4212F -:103450009D65164B1648D202DA6789004258154B13 -:1034600080241A4080231B041343435064234120CB -:103470000393E40500F006FA402000F003FA6562C9 -:10348000039D6B1E0393002DFAD103236362FFF7A4 -:103490003BFFA562FFF760FF05B030BD4C43FF1F47 -:1034A00095FFFEF700C80040050001FF04E100E0C1 -:1034B00000E100E0FFFF00FFF0B585B00700FEF778 -:1034C00021FA022305002D4C22681A42FCD1202348 -:1034D0000093009B5A1E0092002BFAD1284E3368AD -:1034E000002BFCDA0120FFF7F5FE002803D01124A1 -:1034F000200005B0F0BD234B2360022322681A424E -:10350000FCD120230193019B5A1E0192002BFAD17A -:103510003368002BFCDA0120FFF7DCFE0028E6D13F -:10352000194B1F60022322681A42FCD12023029308 -:10353000029B5A1E0292002BFAD13368002BFCDA50 -:103540000120FFF7C7FE0028D1D1104B23600223D2 -:1035500022681A42FCD120230393039B5A1E039234 -:10356000002BFAD13368002BFCDA0120FFF7B2FE02 -:10357000041EBCD12800FEF7D9F9B9E790C8004075 -:1035800000C8004001000006A8C8004001800001FA -:1035900010B50020FFF790FF10BD000010B5064BDE -:1035A00018705960FFF73CFF00211320034AFFF712 -:1035B00057FD002010BDC0464C43FF1F2134FF1FA4 -:1035C000F0B5040085B003920291FEF79BF98822C2 -:1035D00063035B0B52051A438023DB059D6A80233E -:1035E000274F0092BA68002601901B039A420CD91B -:1035F000F82326001B041E401C4206D08022214BCB -:1036000052025E6219680A431A60002D0BD100F065 -:10361000B3FA02221C4B1A608023DB055A62013A7E -:103620009A6200F0F9FC0023039A934220D1002D06 -:103630000AD100F0A1FA144B03221D608023DB05A0 -:103640005A629D6200F0E8FC8023BA681B039A422C -:1036500008D9002E06D000220A4B0C495A621A687B -:103660000A401A600198FEF761F9002005B0F0BD2C -:10367000009A0299D2181278CA540133D4E7C0468E -:103680004043FF1F00C8004000C00040FFFFFEFF96 -:10369000F0B587B0029103920400FEF733F9019070 -:1036A00000F06AFA802302250122234EDB053560F3 -:1036B0005D629A6200F0B0FC204F3B682B42FCD167 -:1036C00020230493049B5A1E0492002BFAD11C4D14 -:1036D0002B68002BFCDA0120FFF7FCFD002802D04C -:1036E000112007B0F0BD2000039A029900F084FC7D -:1036F000022304003A681A42FCD120230593059B5B -:103700005A1E0592002BFAD12B68002BFCDA0120FF -:10371000FFF7E0FD051EE3D100F02EFA802303221F -:10372000DB0535605A629D6200F076FC0198FEF779 -:10373000FDF8E0B2D5E7C04600C0004090C80040A8 -:1037400000C80040F0B5802489B00600FEF7DAF822 -:10375000E405A36A02250393029000F00DFA012309 -:10376000304F3D606562A36200F056FC2E4C23682A -:103770002B42FCD120230593059B5A1E0592002B5A -:10378000FAD12A4D2B68002BFCDA0120FFF7A2FDAD -:10379000002803D01124200009B0F0BD244B236081 -:1037A000022322681A42FCD120230693069B5A1E4C -:1037B0000692002BFAD12B68002BFCDA0120FFF7D0 -:1037C00089FD021EE6D11B4B03211E600300019000 -:1037D0000090202000F0D8FA022322681A42FCD17F -:1037E00020230793079B5A1E0792002BFAD12B68C0 -:1037F000002BFCDA0320FFF76DFD041ECAD100F098 -:10380000BBF980230322DB053C605A629C6200F016 -:1038100003FC039B002B01D1FFF776FD0298FEF716 -:1038200085F8B8E700C0004090C8004000C80040DC -:103830000100000694C8004007B50002019104226F -:10384000000A01A9FFF724FF0EBD000073B50500B3 -:1038500005240B4AA3005B429B1819686B46DE1DCA -:103860003000FFF7B3FA022804D133782B55013C1E -:10387000EFD276BD052CFCD00128FAD10230F8E752 -:10388000140900111F2807D8012380228340D20584 -:1038900091680B43936070473F2808D8012380222A -:1038A00020388340D20551690B435361F3E75F2809 -:1038B000F1D80123802240388340D205116A0B439E -:1038C0001362E8E71F2807D8012280218240C9053A -:1038D0008B6893438B6070473F2808D80122802172 -:1038E00020388240C9054B6993434B61F3E75F2859 -:1038F000F1D80122802140388240C9050B6A9343E8 -:103900000B62E8E71F2810D880230200DB05153A78 -:103910001968012A06D820229143196019680A43C0 -:103920001A60704701228240F6E73F2811D88023B1 -:103930000200DB05353AD968032A06D810229143E4 -:10394000D960D9680A43DA60EBE701222038824067 -:10395000F5E75F28E5D842238022181A413B8340CF -:10396000D205516A99435162516A0B435362D8E7B9 -:1039700010B50400012813D1A022184992050B6844 -:103980005B015B0913430B60154B164A1968114024 -:10399000154A0A431A60402219680A431A6010BD8A -:1039A0000028FCD101000A2000F0FEF921000B20C4 -:1039B00000F0FAF9C0220A4B920019680A4340212C -:1039C0001A601A688A431A60B022044912060B680A -:1039D0005B015B0913430B60E1E7C04614F0004054 -:1039E0001CF000407F00FEFF80FD010072B6074A18 -:1039F0001368013313600422054B1A600023054A43 -:103A000013608022D2055360FEE7C0467808FF1F8E -:103A1000C0F00040C4F0004005490B68002B05D100 -:103A2000044A0A6004490A60044A13607047C046A9 -:103A3000140AFF1F841E0000380AFF1FC4F0004054 -:103A40000023034A1360034A1360034A136070475C -:103A500054F0004040F1004044F10040002310B514 -:103A6000184C8AB0009301932378012B27D0694624 -:103A7000012000F069FA002817D1009B1249029337 -:103A8000019B06AA0393114B02A81B680493104BD9 -:103A90001B68059300F0A0F910220E4906A800F05B -:103AA000A3FA002804D1FF23237000200AB010BD20 -:103AB0000123094A074902A8237000F08DF901206B -:103AC000F4E7C0463064FF1F1029001108290011D7 -:103AD0000C290011202900113464FF1F13B50124A3 -:103AE0006946012000F030FA034B00940193FFF780 -:103AF000B5FF200016BDC046BB0B000010B5FFF798 -:103B00009FFFFFF7EBFF002802D0024B984710BD44 -:103B1000FEE7C046E1A2000002B471464908490030 -:103B2000095649008E4402BC7047C04602B4714633 -:103B300049084900095C49008E4402BC7047C046F0 -:103B400003B47146490840004900095A49008E44AF -:103B500003BC70470000000001B40248844601BC69 -:103B6000604700BF53B9000001B40248844601BC5D -:103B7000604700BFCD0C010001B40248844601BC7F -:103B8000604700BF75A9000001B40248844601BC2B -:103B9000604700BF7997000001B40248844601BC29 -:103BA000604700BF0D52010001B40248844601BCC9 -:103BB000604700BF156B010001B40248844601BC98 -:103BC000604700BF0167010001B40248844601BCA0 -:103BD000604700BFE512010001B40248844601BC01 -:103BE000604700BF7912010001B40248844601BC5D -:103BF000604700BF21A9000001B40248844601BC0F -:103C0000604700BF5976010001B40248844601BCF8 -:103C1000604700BF116E000001B40248844601BC39 -:103C2000604700BF71B0000001B40248844601BC87 -:103C3000604700BFBD0B010001B40248844601BCCF -:103C4000604700BFE917010001B40248844601BC87 -:103C5000604700BF0934010001B40248844601BC3A -:103C6000604700BF2D6C010001B40248844601BCCE -:103C7000604700BF0189000001B40248844601BCCE -:103C8000604700BFF935010001B40248844601BC19 -:103C9000604700BFE94C010001B40248844601BC02 -:103CA000604700BFE9D4000001B40248844601BC6B -:103CB000604700BFBDB1001101B40248844601BC99 -:103CC000604700BF19FA000001B40248844601BCF5 -:103CD000604700BFD9B0000001B40248844601BC6F -:103CE000604700BF8914010001B40248844601BC4A -:103CF000604700BF8B52010001B40248844601BCFA -:103D0000604700BF090E000001B40248844601BCB0 -:103D1000604700BF8D11010001B40248844601BC18 -:103D2000604700BF3D71010001B40248844601BCF8 -:103D3000604700BFE927000001B40248844601BC87 -:103D4000604700BF6DF6000001B40248844601BC24 -:103D5000604700BF2144000001B40248844601BC12 -:103D6000604700BF0534010001B40248844601BC2D -:103D7000604700BF8944000001B40248844601BC8A -:103D8000604700BF0134010001B40248844601BC11 -:103D9000604700BF496D010001B40248844601BC80 -:103DA000604700BFC56D010001B40248844601BCF4 -:103DB000604700BF159E001101B40248844601BC53 -:103DC000604700BFDD0A010001B40248844601BC1F -:103DD000604700BFF9ED000001B40248844601BC11 -:103DE000604700BFDD3F000001B40248844601BCCB -:103DF000604700BFC9A9000001B40248844601BC65 -:103E0000604700BF8D82000001B40248844601BCB7 -:103E1000604700BFBD5C010001B40248844601BC9C -:103E2000604700BFD544010001B40248844601BC8C -:103E3000604700BFE9F6000001B40248844601BCB7 -:103E4000604700BFE90B010001B40248844601BC91 -:103E5000604700BFC95C010001B40248844601BC50 -:103E6000604700BFF535010001B40248844601BC3B -:103E7000604700BF75F8000001B40248844601BCE9 -:103E8000604700BF4DF9000001B40248844601BC00 -:103E9000604700BFA9D8000001B40248844601BCB5 -:103EA000604700BFEDA5000001B40248844601BC94 -:103EB000604700BF85C1000001B40248844601BCD0 -:103EC000604700BF01D7000001B40248844601BC2E -:103ED000604700BF8552010001B40248844601BC1E -:103EE000604700BF8512010001B40248844601BC4E -:103EF000604700BFD1AE000001B40248844601BC57 -:103F0000604700BF9D6A000001B40248844601BCBE -:103F1000604700BFC166010001B40248844601BC8D -:103F2000604700BF8937010001B40248844601BCE4 -:103F3000604700BFC1A5000001B40248844601BC2F -:103F4000604700BFADAE000001B40248844601BC2A -:103F5000604700BFE1AC000001B40248844601BCE8 -:103F6000604700BF6137010001B40248844601BCCC -:103F7000604700BFED6B010001B40248844601BCFC -:103F8000604700BFB70E000001B40248844601BC80 -:103F9000604700BFC1F7000001B40248844601BC7D -:103FA000604700BF6D0B010001B40248844601BCAC -:103FB000604700BF6911010001B40248844601BC9A -:103FC000604700BFC115010001B40248844601BC2E -:103FD000604700BFED68010001B40248844601BC9F -:103FE000604700BF51B8000001B40248844601BCDC -:103FF000604700BFCD4C010001B40248844601BCBB -:10400000604700BF9573010001B40248844601BCBB -:10401000604700BFDD0C010001B40248844601BCCA -:10402000604700BF9DA9000001B40248844601BC5E -:10403000604700BF090E000001B40248844601BC7D -:10404000604700BFB352010001B40248844601BC7E -:10405000604700BF016C010001B40248844601BC06 -:08406000604700BFF90D0100EB -:10406800020000003EBA00110100000070B8001103 -:10407800020000003ABA001101000000A840FF1F2A -:104088000200000078B8001101000000B061FF1FB5 -:104098000200000038BA0011030000002461FF1F6D -:1040A80012000000020000003EBA001101000000EA -:1040B800B8B80011020000003ABA0011010000006F -:1040C800B5B8001102000000C2B8001103000000DA -:1040D8005F61FF1F0200000038BA001103000000F2 -:1040E8007461FF1F020000003ABA001101000000CD -:1040F800B4B8001102000000C0B8001103000000AD -:104108003561FF1F0200000038BA001103000000EB -:104118005661FF1F020000003EBA001101000000B6 -:10412800F8B80011020000003ABA001101000000BE -:10413800F141FF1F020000000AB900110100000050 -:10414800F3B80011020000003ABA001101000000A3 -:10415800F041FF1F0200000008B900110100000033 -:104168007C61FF1F020000003ABA00110100000044 -:10417800EF41FF1F0200000006B900110100000016 -:10418800E3B80011020000003ABA00110100000073 -:10419800EE41FF1F0200000004B9001101000000F9 -:1041A800DEB80011020000003ABA00110100000058 -:1041B800ED41FF1F0200000002B9001101000000DC -:1041C800D9B80011020000003ABA0011010000003D -:1041D800EC41FF1F0200000000B9001101000000BF -:1041E800D4B800110202020202020000000000001E -:1041F8000D0C0000ED4A0011B14A00114CB9001134 -:1042080090011D0018001800FFFF070102030405B4 -:104218000602010600000000000000000000000087 -:104228000000000000000000000000000000000086 -:1042380003000000020000003EBA00110100000067 -:104248006CB90011020000003ABA00110100000028 -:10425800AC42FF1F0200000076B900110100000007 -:10426800AA61FF1F0200000038BA00110300000015 -:104278001464FF1F020000003ABA00110100000098 -:10428800AC42FF1F0200000074B9001101000000D9 -:10429800AC61FF1F0200000038BA001103000000E3 -:1042A8000C64FF1F12000000000100000000011153 -:1042B800FFFF0000504859360000000000000000D1 -:1042C8000B000500F0000000B400002800280028BA -:1042D8003075A000A000A000A00000080008E001C0 -:1042E800F000100010001000100010001000500026 -:1042F8005000500010001000D0070000000000001F -:104308000F0001000500307507001000010081FF53 -:1043180000000000FF000000FD6F0011056E001195 -:10432800956B0011FFFF0100FF000000199A0011B2 -:1043380095970011AD9600110000000000000000E4 -:1043480000000800040000003B0001085902E001D9 -:1043580088212800FF000000020000003EBA00117A -:104368000100000004BB0011020000003ABA00116D -:1043780001000000DD43FF1F0200000036BA0011F3 -:1043880001000000EC67FF1F020000003ABA0011AC -:1043980001000000DC43FF1F0200000034BA0011D6 -:1043A80001000000DA43FF1F020000003ABA0011C2 -:1043B80001000000D843FF1F0200000032BA0011BC -:1043C80001000000D043FF1F180018001D009001D5 -:1043D8000200000302020000020000003EBA0011C1 -:1043E8000100000018BB0011020000003ABA0011D9 -:1043F800010000002044FF1F0200000030BA001135 -:1044080000000000000000000200000038BA00119F -:0A441800030000000C68FF1F20FFE6 -:040000051FFF184180 -:00000001FF diff --git a/bthome_phy6222/bin/BTH01_v14.bin b/bthome_phy6222/bin/BTH01_v14.bin deleted file mode 100644 index 19b6cdd..0000000 Binary files a/bthome_phy6222/bin/BTH01_v14.bin and /dev/null differ diff --git a/bthome_phy6222/bin/TH05D_v14.bin b/bthome_phy6222/bin/TH05D_v14.bin deleted file mode 100644 index 50dcdf5..0000000 Binary files a/bthome_phy6222/bin/TH05D_v14.bin and /dev/null differ diff --git a/bthome_phy6222/bin/TH05F_v14.bin b/bthome_phy6222/bin/TH05F_v14.bin deleted file mode 100644 index 5545ce2..0000000 Binary files a/bthome_phy6222/bin/TH05F_v14.bin and /dev/null differ diff --git a/bthome_phy6222/bin/TH05_v14.bin b/bthome_phy6222/bin/TH05_v14.bin deleted file mode 100644 index b7f96ee..0000000 Binary files a/bthome_phy6222/bin/TH05_v14.bin and /dev/null differ diff --git a/bthome_phy6222/bin/THB1_v14.bin b/bthome_phy6222/bin/THB1_v14.bin deleted file mode 100644 index 5626ede..0000000 Binary files a/bthome_phy6222/bin/THB1_v14.bin and /dev/null differ diff --git a/bthome_phy6222/bin/THB2_v14.bin b/bthome_phy6222/bin/THB2_v14.bin deleted file mode 100644 index 943a0b7..0000000 Binary files a/bthome_phy6222/bin/THB2_v14.bin and /dev/null differ diff --git a/bthome_phy6222/mk_windows.cmd b/bthome_phy6222/mk_windows.cmd index 926ac78..8410a3e 100644 --- a/bthome_phy6222/mk_windows.cmd +++ b/bthome_phy6222/mk_windows.cmd @@ -1,5 +1,5 @@ @set PATH=D:\MCU\GNU_Tools_ARM_Embedded\13.2.rel1\bin;%PATH% -@set SWVER=_v14 +@set SWVER=_v15 @del /Q "build\THB2%SWVER%.hex" @del /Q "build\THB2%SWVER%.bin" @mkdir .\bin diff --git a/bthome_phy6222/source/bthome_beacon.c b/bthome_phy6222/source/bthome_beacon.c index 828eb9a..9c94471 100644 --- a/bthome_phy6222/source/bthome_beacon.c +++ b/bthome_phy6222/source/bthome_beacon.c @@ -12,8 +12,98 @@ #include "sensors.h" #include "bthome_beacon.h" +#if (DEV_SERVICES & SERVICE_BINDKEY) + +#include "thb2_main.h" +#include "ccm.h" +#include "flash_eep.h" +#include "ll.h" + +/* Encrypted bthome nonce */ +typedef struct __attribute__((packed)) _bthome_beacon_nonce_t{ + uint8_t mac[6]; + uint16_t uuid16; // = 0xfcd2 + uint8_t info; // = 0x41 + uint32_t cnt32; +} bthome_beacon_nonce_t, * pbthome_beacon_nonce_t; + +bthome_beacon_nonce_t bthome_nonce; +uint8_t bindkey[16]; + +void bthome_beacon_init(void) { + // SwapMacAddress(bthome_nonce.mac, ownPublicAddr); + bthome_nonce.mac[0] = ownPublicAddr[5]; + bthome_nonce.mac[1] = ownPublicAddr[4]; + bthome_nonce.mac[2] = ownPublicAddr[3]; + bthome_nonce.mac[3] = ownPublicAddr[2]; + bthome_nonce.mac[4] = ownPublicAddr[1]; + bthome_nonce.mac[5] = ownPublicAddr[0]; + bthome_nonce.uuid16 = ADV_BTHOME_UUID16; + bthome_nonce.info = BtHomeID_Info_Encrypt; + if (flash_read_cfg(bindkey, EEP_ID_KEY, sizeof(bindkey)) + != sizeof(bindkey)) { + LL_Rand(bindkey, sizeof(bindkey)); + flash_write_cfg(bindkey, EEP_ID_KEY, sizeof(bindkey)); + } +} + +uint8_t adv_encrypt(uint8_t * p, uint8_t data_size) { + uint8_t *pmic = &p[data_size]; + bthome_nonce.cnt32 = measured_data.count; + *pmic++ = (uint8_t)measured_data.count; + *pmic++ = (uint8_t)(measured_data.count>>8); + *pmic++ = (uint8_t)(measured_data.count>>16); + *pmic++ = (uint8_t)(measured_data.count>>24); + ccm_auth_crypt(CCM_ENCRYPT, (const unsigned char *)&bindkey, + (uint8_t*)&bthome_nonce, sizeof(bthome_nonce), + (const unsigned char *)p, data_size, + p, + pmic, 4); + return data_size + 4 + 4; // + mic + count +} +#endif // (DEV_SERVICES & SERVICE_BINDKEY) + +#if (DEV_SERVICES & SERVICE_THS) + +uint8_t adv_set_data(void * pd) { + padv_bthome_data1_t p = (padv_bthome_data1_t)pd; + p->b_id = BtHomeID_battery; + p->battery_level = measured_data.battery; + p->t_id = BtHomeID_temperature; + p->temperature = measured_data.temp; // x0.01 C + p->h_id = BtHomeID_humidity; + p->humidity = measured_data.humi; // x0.01 % + p->v_id = BtHomeID_voltage; + p->battery_mv = measured_data.battery_mv; // x mV + return sizeof(adv_bthome_data1_t); +} + +#else + +uint8_t adv_set_data(void * pd) { + padv_bthome_data2_t p = (padv_bthome_data2_t)pd; + p->b_id = BtHomeID_battery; + p->battery_level = measured_data.battery; + p->v_id = BtHomeID_voltage; + p->battery_mv = measured_data.battery_mv; // x mV + return sizeof(adv_bthome_data2_t); +} + +#endif + +#if (DEV_SERVICES & SERVICE_RDS) +uint8_t adv_set_event(void * ped) { + padv_bthome_event1_t p = (padv_bthome_event1_t)ped; + p->o_id = BtHomeID_opened; + p->opened = measured_data.flg.pin_input; + p->c_id = BtHomeID_count32; + p->counter = adv_wrk.rds_count; + return sizeof(adv_bthome_event1_t); +} +#endif + uint8_t bthome_data_beacon(void * padbuf) { - padv_bthome_ns1_t p = (padv_bthome_ns1_t)padbuf; + padv_bthome_noencrypt_t p = (padv_bthome_noencrypt_t)padbuf; p->flag[0] = 0x02; // size p->flag[1] = GAP_ADTYPE_FLAGS; // type /* Flags: @@ -27,45 +117,34 @@ uint8_t bthome_data_beacon(void * padbuf) { p->flag[2] = GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED | GAP_ADTYPE_FLAGS_GENERAL; // Flags p->head.type = GAP_ADTYPE_SERVICE_DATA; // 16-bit UUID p->head.UUID = ADV_BTHOME_UUID16; - p->info = BtHomeID_Info; - p->p_id = BtHomeID_PacketId; - p->pid = (uint8)measured_data.count; +#if (DEV_SERVICES & SERVICE_BINDKEY) + if (cfg.flg & FLG_ADV_CRYPT) { + padv_bthome_encrypt_t pe = (padv_bthome_encrypt_t)p; + pe->info = BtHomeID_Info_Encrypt; #if (DEV_SERVICES & SERVICE_RDS) - if(adv_wrk.adv_event) { - padv_bthome_evns1_t pe = (padv_bthome_evns1_t)p; - pe->data.o_id = BtHomeID_opened; - pe->data.opened = measured_data.flg.pin_input; - pe->data.c_id = BtHomeID_count32; - pe->data.counter = adv_wrk.rds_count; - pe->head.size = sizeof(adv_bthome_evns1_t) - sizeof(pe->head.size) - sizeof(pe->flag); - return sizeof(adv_bthome_ns1_t); + if(adv_wrk.adv_event) { + p->head.size = adv_encrypt(pe->data, adv_set_event(pe->data)) + sizeof(pe->head) - sizeof(pe->head.size) + sizeof(pe->info); + } else +#endif + { + p->head.size = adv_encrypt(pe->data, adv_set_data(pe->data)) + sizeof(pe->head) - sizeof(pe->head.size) + sizeof(pe->info); + } } else -#endif -#if (DEV_SERVICES & SERVICE_THS) +#endif // (DEV_SERVICES & SERVICE_BINDKEY) { - p->data.b_id = BtHomeID_battery; - p->data.battery_level = measured_data.battery; - p->data.t_id = BtHomeID_temperature; - p->data.temperature = measured_data.temp; // x0.01 C - p->data.h_id = BtHomeID_humidity; - p->data.humidity = measured_data.humi; // x0.01 % - p->data.v_id = BtHomeID_voltage; - p->data.battery_mv = measured_data.battery_mv; // x mV - p->head.size = sizeof(adv_bthome_ns1_t) - sizeof(p->head.size) - sizeof(p->flag); - return sizeof(adv_bthome_ns1_t); + p->info = BtHomeID_Info; + p->p_id = BtHomeID_PacketId; + p->pid = (uint8)measured_data.count; + #if (DEV_SERVICES & SERVICE_RDS) + if(adv_wrk.adv_event) { + p->head.size = adv_set_event(p->data) + sizeof(p->head) - sizeof(p->head.size) + sizeof(p->info) + sizeof(p->p_id) + sizeof(p->pid); + } else + #endif + { + p->head.size = adv_set_data(p->data) + sizeof(p->head) - sizeof(p->head.size) + sizeof(p->info) + sizeof(p->p_id) + sizeof(p->pid); + } + } -#else - { - padv_bthome_ns2_t pe = (padv_bthome_ns2_t)p; - pe->data.b_id = BtHomeID_battery; - pe->data.battery_level = measured_data.battery; - pe->data.v_id = BtHomeID_voltage; - pe->data.battery_mv = measured_data.battery_mv; // x mV - pe->head.size = sizeof(adv_bthome_ns2_t) - sizeof(pe->head.size) - sizeof(pe->flag); - return sizeof(adv_bthome_ns2_t); - } -#endif + return p->head.size + sizeof(p->flag) + 1; } - - diff --git a/bthome_phy6222/source/bthome_beacon.h b/bthome_phy6222/source/bthome_beacon.h index 6b220a8..7709e93 100644 --- a/bthome_phy6222/source/bthome_beacon.h +++ b/bthome_phy6222/source/bthome_beacon.h @@ -15,7 +15,6 @@ #define BtHomeID_Info 0x40 #define BtHomeID_Info_Encrypt 0x41 - // https://github.com/custom-components/ble_monitor/issues/548 typedef enum { BtHomeID_PacketId = 0, //0x00, uint8 @@ -109,7 +108,7 @@ typedef struct __attribute__((packed)) _adv_head_bth_t { uint8 size; // = uint8 type; // = 0x16, 16-bit UUID uint16 UUID; // = 0xFCD2, GATT Service BTHome -} adv_head_bth_t, * padv_head_bth_t; +} adv_head_bth_t, * padv_head_bth_t; // size: 4 typedef struct __attribute__((packed)) _adv_bthome_data1_t { uint8 b_id; // = BtHomeID_battery @@ -120,55 +119,108 @@ typedef struct __attribute__((packed)) _adv_bthome_data1_t { uint16 humidity; // x 0.01 % uint8 v_id; // = BtHomeID_voltage uint16 battery_mv; // x 0.001 V -} adv_bthome_data1_t, * padv_bthome_data1_t; +} adv_bthome_data1_t, * padv_bthome_data1_t; // size: 11 typedef struct __attribute__((packed)) _adv_bthome_data2_t { uint8 b_id; // = BtHomeID_battery uint8 battery_level; // 0..100 % uint8 v_id; // = BtHomeID_voltage uint16 battery_mv; // x 0.001 V -} adv_bthome_data2_t, * padv_bthome_data2_t; +} adv_bthome_data2_t, * padv_bthome_data2_t; // size: 5 typedef struct __attribute__((packed)) _adv_bthome_event1_t { uint8_t o_id; // = BtHomeID_opened ? uint8_t opened; uint8_t c_id; // = BtHomeID_count32 uint32_t counter; -} adv_bthome_event1_t, * padv_bthome_event1_t; - - -#define ADV_BUFFER_SIZE (31-3) +} adv_bthome_event1_t, * padv_bthome_event1_t; // size: 7 // BTHOME data1, no security typedef struct __attribute__((packed)) _adv_bthome_ns1_t { - uint8 flag[3]; // Advertise type flags - adv_head_bth_t head; + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] uint8 info; // = 0x40 BtHomeID_Info uint8 p_id; // = BtHomeID_PacketId uint8 pid; // PacketId (measurement count) adv_bthome_data1_t data; -} adv_bthome_ns1_t, * padv_bthome_ns1_t; +} adv_bthome_ns1_t, * padv_bthome_ns1_t; // size: 21 // BTHOME data2, no security typedef struct __attribute__((packed)) _adv_bthome_ns2_t { - uint8 flag[3]; // Advertise type flags - adv_head_bth_t head; + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] uint8 info; // = 0x40 BtHomeID_Info uint8 p_id; // = BtHomeID_PacketId uint8 pid; // PacketId (measurement count) adv_bthome_data2_t data; -} adv_bthome_ns2_t, * padv_bthome_ns2_t; +} adv_bthome_ns2_t, * padv_bthome_ns2_t; // size: 15 // BTHOME event1, no security typedef struct __attribute__((packed)) _adv_bthome_evns1_t { - uint8 flag[3]; // Advertise type flags - adv_head_bth_t head; + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] uint8 info; // = 0x40 BtHomeID_Info uint8 p_id; // = BtHomeID_PacketId uint8 pid; // PacketId (measurement count) adv_bthome_event1_t data; -} adv_bthome_evns1_t, * padv_bthome_evns1_t; +} adv_bthome_evns1_t, * padv_bthome_evns1_t; // size: 17 +#if (DEV_SERVICES & SERVICE_BINDKEY) + +// BTHOME data1, security +typedef struct __attribute__((packed)) _adv_bthome_d1_t { + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] + uint8_t info; // = 0x41 BtHomeID_Info_Encrypt + adv_bthome_data1_t data; + uint32_t count_id; + uint8_t mic[4]; +} adv_bthome_1_t, * padv_bthome_1_t; // size: 27 + +// BTHOME data2, security +typedef struct __attribute__((packed)) _adv_bthome_d2_t { + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] + uint8_t info; // = 0x41 BtHomeID_Info_Encrypt + adv_bthome_data2_t data; + uint32_t count_id; + uint8_t mic[4]; +} adv_bthome_2_t, * padv_bthome_2_t; // size: 21 + +// BTHOME event1, security +typedef struct __attribute__((packed)) _adv_bthome_ev1_t { + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] + uint8_t info; // = 0x41 BtHomeID_Info_Encrypt + adv_bthome_event1_t data; + uint32_t count_id; + uint8_t mic[4]; +} adv_bthome_ev1_t, * padv_bthome_ev1_t; // size: 23 + + +// BTHOME adv security +typedef struct __attribute__((packed)) _adv_bthome_encrypt_t { + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; + uint8_t info; + uint8_t data[30-4]; +} adv_bthome_encrypt_t, * padv_bthome_encrypt_t; + +extern uint8_t bindkey[16]; + +void bthome_beacon_init(void); + +#endif // (DEV_SERVICES & SERVICE_BINDKEY) + +// BTHOME adv no security +typedef struct __attribute__((packed)) _adv_bthome_noencrypt_t { + uint8 flag[3]; // Advertise type flags + adv_head_bth_t head; // [4] + uint8 info; // = 0x40 BtHomeID_Info + uint8 p_id; // = BtHomeID_PacketId + uint8 pid; // PacketId (measurement count) + uint8_t data[30-4-2]; +} adv_bthome_noencrypt_t, * padv_bthome_noencrypt_t; uint8_t bthome_data_beacon(void * padbuf); diff --git a/bthome_phy6222/source/ccm.c b/bthome_phy6222/source/ccm.c new file mode 100644 index 0000000..a3682cc --- /dev/null +++ b/bthome_phy6222/source/ccm.c @@ -0,0 +1,133 @@ +/* + * ccm.c + */ + +#include +#include +#if (DEV_SERVICES & SERVICE_BINDKEY) +#include "ccm.h" + +extern void LL_ENC_AES128_Encrypt1( unsigned char * key, + unsigned char * plaintext, + unsigned char * ciphertext ); +/* + * Macros for common operations. + * Results in smaller compiled code than static inline functions. + */ + +/* + * Update the CBC-MAC state in y using a block in b + * (Always using b as the source helps the compiler optimise a bit better.) + */ +#define UPDATE_CBC_MAC \ + for (i = 0; i < 16; i++) \ + y[i] ^= b[i]; \ + LL_ENC_AES128_Encrypt1((unsigned char *)key, y, y); + +/* + * Encrypt or decrypt a partial block with CTR + * Warning: using b for temporary storage! src and dst must not be b! + * This avoids allocating one more 16 bytes buffer while allowing src == dst. + */ +#define CTR_CRYPT(dst, src, len) \ + LL_ENC_AES128_Encrypt1((unsigned char *)key, ctr, b); \ + for (i = 0; i < len; i++) \ + dst[i] = src[i] ^ b[i]; + +/* + * Authenticated encryption or decryption + */ +int ccm_auth_crypt( int mode, const unsigned char *key, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t length, + unsigned char *output, + unsigned char *tag, size_t tag_len ) +{ + unsigned char i; + unsigned char q; + size_t len_left; + unsigned char b[16]; + unsigned char y[16]; + unsigned char ctr[16]; + const unsigned char *src; + unsigned char *dst; + + q = 16 - 1 - (unsigned char) iv_len; + b[0] = ((tag_len - 2) / 2) << 3; + b[0] |= q - 1; + memcpy(b + 1, iv, iv_len); + for (i = 0, len_left = length; i < q; i++, len_left >>= 8) + b[15 - i] = (unsigned char) (len_left & 0xFF); + if (len_left > 0) + return (-1); + memset(y, 0, 16); + UPDATE_CBC_MAC; + ctr[0] = q - 1; + memcpy( ctr + 1, iv, iv_len ); + memset( ctr + 1 + iv_len, 0, q ); + ctr[15] = 1; + len_left = length; + src = input; + dst = output; + while (len_left > 0) { + size_t use_len = len_left > 16 ? 16 : len_left; + if (mode == CCM_ENCRYPT) { + memset(b, 0, 16); + memcpy(b, src, use_len); + UPDATE_CBC_MAC; + } + CTR_CRYPT( dst, src, use_len ); + if (mode == CCM_DECRYPT) { + memset(b, 0, 16); + memcpy(b, dst, use_len); + UPDATE_CBC_MAC; + } + dst += use_len; + src += use_len; + len_left -= use_len; + for (i = 0; i < q; i++) + if (++ctr[15 - i] != 0) + break; + } + for (i = 0; i < q; i++) + ctr[15 - i] = 0; + CTR_CRYPT( y, y, 16 ); + memcpy(tag, y, tag_len); + return (0); +} + +/* + * Authenticated decryption + */ +int aes_ccm_decrypt( const unsigned char *key, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t length, + unsigned char *output, + const unsigned char *tag, size_t tag_len ) +{ + int ret; + unsigned char check_tag[16]; + unsigned char i; + int diff; + if( ( ret = ccm_auth_crypt( CCM_DECRYPT, key, + iv, iv_len, + input, length, + output, + check_tag, tag_len ) ) != 0 ) + { + return(ret); + } + + for( diff = 0, i = 0; i < tag_len; i++ ) + diff |= tag[i] ^ check_tag[i]; + + if( diff != 0 ) + { + volatile unsigned char *p = output; while(length-- ) *p++ = 0; + return(-1); + } + + return(0); +} + +#endif // (DEV_SERVICES & SERVICE_BINDKEY) diff --git a/bthome_phy6222/source/ccm.h b/bthome_phy6222/source/ccm.h new file mode 100644 index 0000000..a7de5cf --- /dev/null +++ b/bthome_phy6222/source/ccm.h @@ -0,0 +1,47 @@ +/** + * \file ccm.h + * + */ +#ifndef _CCM_H_ +#define _CCM_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#define CCM_ENCRYPT 0 +#define CCM_DECRYPT 1 +/* + * Authenticated encryption or decryption + */ +int ccm_auth_crypt( int mode, const unsigned char *key, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t length, + unsigned char *output, + unsigned char *tag, size_t tag_len ); +/** + * \brief CCM buffer authenticated decryption + * + * \param key key must be 16 bytes + * \param length length of the input data + * \param iv initialization vector + * \param iv_len length of IV + * \param input buffer holding the input data + * \param output buffer for holding the output data + * \param tag buffer holding the tag + * \param tag_len length of the tag + * + * \return 0 if successful and authenticated, + * MBEDTLS_ERR_CCM_AUTH_FAILED if tag does not match + */ +int aes_ccm_decrypt( const unsigned char *key, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t length, + unsigned char *output, + const unsigned char *tag, size_t tag_len ); + +#ifdef __cplusplus +} +#endif + +#endif /* _CCM_H_ */ diff --git a/bthome_phy6222/source/cmd_parser.c b/bthome_phy6222/source/cmd_parser.c index 56fc9d6..ebbc2a4 100644 --- a/bthome_phy6222/source/cmd_parser.c +++ b/bthome_phy6222/source/cmd_parser.c @@ -24,11 +24,13 @@ #include "sensors.h" #include "cmd_parser.h" #include "devinfoservice.h" +#include "gapgattserver.h" #include "ble_ota.h" #include "thb2_peripheral.h" #include "lcd.h" #include "logger.h" #include "trigger.h" +#include "bthome_beacon.h" /*********************************************************************/ extern gapPeriConnectParams_t periConnParameters; @@ -181,6 +183,23 @@ int cmd_parser(uint8_t * obuf, uint8_t * ibuf, uint32_t len) { clear_memo(); olen = 2; } +#endif +#if (DEV_SERVICES & SERVICE_BINDKEY) + } else if (cmd == CMD_ID_BKEY) { // Get/set beacon bindkey + if (len == sizeof(bindkey) + 1) { + if(memcmp(bindkey, &ibuf[1], sizeof(bindkey))) { + memcpy(bindkey, &ibuf[1], sizeof(bindkey)); + flash_write_cfg(&bindkey, EEP_ID_KEY, sizeof(bindkey)); + bthome_beacon_init(); + } + } + if (flash_read_cfg(&bindkey, EEP_ID_KEY, sizeof(bindkey)) == sizeof(bindkey)) { + memcpy(&obuf[1], bindkey, sizeof(bindkey)); + olen = sizeof(bindkey) + 1; + } else { // No bindkey in EEP! + obuf[1] = 0xff; + olen = 2; + } #endif } else if (cmd == CMD_ID_SERIAL) { memcpy(&obuf[1], devInfoSerialNumber, sizeof(devInfoSerialNumber)-1); @@ -258,7 +277,7 @@ int cmd_parser(uint8_t * obuf, uint8_t * ibuf, uint32_t len) { olen = 2; #endif } else if (cmd == CMD_ID_DNAME) { - if (len > 1 && len < B_MAX_ADV_LEN - 2) { + if (len > 1 && len <= GAP_DEVICE_NAME_LEN) { if(ibuf[1] == 0) set_def_name(); else { diff --git a/bthome_phy6222/source/config.h b/bthome_phy6222/source/config.h index 7c7aefa..9fb76b7 100644 --- a/bthome_phy6222/source/config.h +++ b/bthome_phy6222/source/config.h @@ -13,10 +13,10 @@ // #include "bus_dev.h" #ifndef APP_VERSION -#define APP_VERSION 0x14 // BCD +#define APP_VERSION 0x15 // BCD #endif -/* +/* rf_phy_ana_cfg #define BOARD_LYWSD03MMC_B14 0 // number used for BLE firmware #define BOARD_MHO_C401 1 #define BOARD_CGG1 2 @@ -34,7 +34,7 @@ #define BOARD_TNK 16 // Water tank controller (not yet published at the moment) #define BOARD_TS0201_TZ3000 17 #define BOARD_TS0202_TZ3000 18 -#define BOARD__TH03Z 22 // ZigBee TH03Z +#define BOARD_TH03Z 22 // ZigBee TH03Z */ #define DEVICE_THB2 19 #define DEVICE_BTH01 20 @@ -45,7 +45,7 @@ //#define DEVICE_THB3 26 #ifndef DEVICE -#define DEVICE DEVICE_THB2 +#define DEVICE DEVICE_BTH01 #endif // supported services by the device (bits) @@ -93,6 +93,7 @@ | SERVICE_HISTORY \ | SERVICE_TH_TRG \ | SERVICE_RDS \ + | SERVICE_BINDKEY \ ) #endif @@ -128,6 +129,7 @@ | SERVICE_HISTORY \ | SERVICE_TH_TRG \ | SERVICE_RDS \ + | SERVICE_BINDKEY \ ) #endif @@ -166,6 +168,7 @@ | SERVICE_HISTORY \ | SERVICE_TH_TRG \ | SERVICE_RDS \ + | SERVICE_BINDKEY \ ) #endif @@ -213,6 +216,7 @@ | SERVICE_HISTORY \ | SERVICE_TH_TRG \ | SERVICE_RDS \ + | SERVICE_BINDKEY \ ) #endif @@ -254,6 +258,7 @@ | SERVICE_HISTORY \ | SERVICE_TH_TRG \ | SERVICE_RDS \ + | SERVICE_BINDKEY \ ) #endif @@ -299,6 +304,7 @@ | SERVICE_HISTORY \ | SERVICE_TH_TRG \ | SERVICE_RDS \ + | SERVICE_BINDKEY \ ) #endif @@ -368,7 +374,7 @@ extern const cfg_t def_cfg; #define FLG_SHOW_SMILEY 0x00000004 // включить показ смайлика #define FLG_SHOW_TRG 0x00000008 // смайлик поаказывает TRG #define FLG_DISPLAY_OFF 0x00000010 // отключить дисплей -//#define FLG_ADV_CRYPT 0x00000100 // Зашифрованная BLE реклама (bindkey) +#define FLG_ADV_CRYPT 0x00000020 // Зашифрованная BLE реклама (bindkey) typedef struct _adv_work_t { uint32_t measure_interval_ms; @@ -376,7 +382,7 @@ typedef struct _adv_work_t { #if (DEV_SERVICES & SERVICE_RDS) uint32_t rds_count; #endif - uint8_t adv_count; + uint8_t adv_meas_count; uint8_t adv_reload_count; uint8_t adv_batt_count; uint8_t adv_event; diff --git a/bthome_phy6222/source/flash_eep.c b/bthome_phy6222/source/flash_eep.c index 4bccc97..38064b7 100644 --- a/bthome_phy6222/source/flash_eep.c +++ b/bthome_phy6222/source/flash_eep.c @@ -417,10 +417,10 @@ signed short flash_read_cfg(void *ptr, unsigned short id, unsigned short maxsize #if CONFIG_DEBUG_LOG > 3 DBG_FEEP_INFO("obj not found\n"); #endif - rets = -faddr-1; + rets = -faddr - 1; } } - else rets = -faddr-1; + else rets = -faddr - 1; _flash_mutex_unlock(); } return rets; diff --git a/bthome_phy6222/source/flash_eep.h b/bthome_phy6222/source/flash_eep.h index 56b91c9..3ec7364 100644 --- a/bthome_phy6222/source/flash_eep.h +++ b/bthome_phy6222/source/flash_eep.h @@ -21,7 +21,7 @@ extern "C" { //#define EEP_ID_CMF (0x0FCC) // EEP ID comfort data #define EEP_ID_DVN (0xDEAE) // EEP ID device name #define EEP_ID_TIM (0x0ADA) // EEP ID time adjust -//#define EEP_ID_KEY (0xBC0D) // EEP ID bkey +#define EEP_ID_KEY (0xBC0D) // EEP ID bindkey #define EEP_ID_VER (0x5555) // EEP ID blk: unsigned int = minimum supported version //----------------------------------------------------------------------------- #ifndef FLASH_BASE_ADDR diff --git a/bthome_phy6222/source/thb2_main.c b/bthome_phy6222/source/thb2_main.c index db4bbc7..935ab40 100644 --- a/bthome_phy6222/source/thb2_main.c +++ b/bthome_phy6222/source/thb2_main.c @@ -119,20 +119,21 @@ void set_def_name(void) gapRole_ScanRspDataLen = sizeof(DEF_MODEL_NUMBER_STR) + 8; *p++ = sizeof(DEF_MODEL_NUMBER_STR) + 7; *p++ = GAP_ADTYPE_LOCAL_NAME_COMPLETE; - memcpy(p, devInfoModelNumber, sizeof(DEF_MODEL_NUMBER_STR)-1); + memcpy(p, devInfoModelNumber, sizeof(DEF_MODEL_NUMBER_STR) - 1); p += sizeof(DEF_MODEL_NUMBER_STR) - 1; *p++ = '-'; p = str_bin2hex(p, pmac+2, 1); p = str_bin2hex(p, pmac+1, 1); - str_bin2hex(p, pmac, 1); + p = str_bin2hex(p, pmac, 1); + *p++ = 0; flash_write_cfg(NULL, EEP_ID_DVN, 0); } void set_dev_name(void) { uint8_t * p = gapRole_ScanRspData; - int len = flash_read_cfg(&p[2], EEP_ID_DVN, 19); - if(len > 0 && p[2] != 0) { + int len = flash_read_cfg(&p[2], EEP_ID_DVN, GAP_DEVICE_NAME_LEN - 1); + if(len > 0 && len < GAP_DEVICE_NAME_LEN && p[2] != 0) { p[0] = (uint8_t)len + 1; p[1] = GAP_ADTYPE_LOCAL_NAME_COMPLETE; p[len + 2] = 0; @@ -158,6 +159,9 @@ static void set_mac(void) pGlobal_config[MAC_ADDRESS_LOC] = (uint32_t)ownPublicAddr; // device name set_dev_name(); +#if (DEV_SERVICES & SERVICE_BINDKEY) + bthome_beacon_init(); +#endif } static void set_serial_number(void) @@ -241,14 +245,14 @@ static void adv_measure(void) { #endif } #if (DEV_SERVICES & SERVICE_THS) - if(adv_wrk.adv_count == (uint8_t)(cfg.measure_interval - 1)) { + if(adv_wrk.adv_meas_count == (uint8_t)(cfg.measure_interval - 1)) { start_measure(); #if (DEV_SERVICES & SERVICE_SCREEN) chow_lcd(0); #endif } else { - if(adv_wrk.adv_count >= cfg.measure_interval) { - adv_wrk.adv_count = 0; + if(adv_wrk.adv_meas_count >= cfg.measure_interval) { + adv_wrk.adv_meas_count = 0; read_sensor(); #if (DEV_SERVICES & SERVICE_SCREEN) chow_lcd(1); @@ -283,7 +287,7 @@ static void adv_measure(void) { set_new_adv_interval(cfg.advertising_interval * 100); } } - adv_wrk.adv_count++; + adv_wrk.adv_meas_count++; } } @@ -576,7 +580,7 @@ uint16_t BLEPeripheral_ProcessEvent( uint8_t task_id, uint16_t events ) VOID task_id; // OSAL required parameter that isn't used in this function if ( events & ADV_BROADCAST_EVT) { adv_measure(); - LOG("advN%u\n", adv_wrk.adv_count); + LOG("advN%u\n", adv_wrk.adv_meas_count); // return unprocessed events return (events ^ ADV_BROADCAST_EVT); } @@ -598,7 +602,7 @@ uint16_t BLEPeripheral_ProcessEvent( uint8_t task_id, uint16_t events ) // enable adv (from gaprole start) if ( events & SBP_RESET_ADV_EVT ) { LOG("SBP_RESET_ADV_EVT\n"); - adv_wrk.adv_count = 0; + adv_wrk.adv_meas_count = 0; // set_new_adv_interval(DEF_ADV_INERVAL); // actual time = advInt * 625us gatrole_advert_enable(TRUE); return ( events ^ SBP_RESET_ADV_EVT ); @@ -657,7 +661,7 @@ uint16_t BLEPeripheral_ProcessEvent( uint8_t task_id, uint16_t events ) #ifdef GPIO_LED hal_gpio_write(GPIO_LED, LED_OFF); #endif - //adv_wrk.adv_count = 0; + //adv_wrk.adv_meas_count = 0; #if (DEV_SERVICES & SERVICE_SCREEN) lcd_show_version(); #endif @@ -780,13 +784,13 @@ static void peripheralStateReadRssiCB( int8_t rssi ) { LOG("Gaprole_adversting\n"); osal_stop_timerEx(simpleBLEPeripheral_TaskID, TIMER_BATT_EVT); - adv_wrk.adv_count = 0; + adv_wrk.adv_meas_count = 0; } break; case GAPROLE_CONNECTED: adv_wrk.adv_event = 0; - adv_wrk.adv_count = 0; + adv_wrk.adv_meas_count = 0; adv_wrk.adv_reload_count = 1; #if (DEV_SERVICES & SERVICE_THS) osal_start_reload_timer(simpleBLEPeripheral_TaskID, TIMER_BATT_EVT, adv_wrk.measure_interval_ms); // 10000 ms @@ -815,7 +819,7 @@ static void peripheralStateReadRssiCB( int8_t rssi ) gapRole_SlaveLatency = cfg.connect_latency; #endif adv_wrk.adv_event = 0; - adv_wrk.adv_count = 0; + adv_wrk.adv_meas_count = 0; adv_wrk.adv_reload_count = 1; #if (DEV_SERVICES & SERVICE_SCREEN) show_ble_symbol(0); diff --git a/bthome_phy6222/web/PHY62x2BTHome.html b/bthome_phy6222/web/PHY62x2BTHome.html index d2b218f..0e1e5da 100644 --- a/bthome_phy6222/web/PHY62x2BTHome.html +++ b/bthome_phy6222/web/PHY62x2BTHome.html @@ -1,6 +1,6 @@ -PHY62x2 BTHome v1.4 +PHY62x2 BTHome v1.5 @@ -485,6 +485,7 @@ var devCfg = {}; var devSens = {}; var devTrig = {}; var devTime = {}; +var devKeys = {}; var devName = ""; var isConnected = false; @@ -549,12 +550,8 @@ function connect() { deviceOptions.acceptAllDevices = false; deviceOptions.filters = namePrefix.split(",") .map((x) => ({ namePrefix: x })); - } else { - deviceOptions.acceptAllDevices = false; - deviceOptions.filters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz_#@!*0123456789';,.<>{}[]" - .split("") - .map((x) => ({ namePrefix: x })); } + console.log(deviceOptions); if (bluetoothDevice != null) bluetoothDevice.gatt.disconnect(); chartData.length = 0; resetVariables(); @@ -746,12 +743,17 @@ function auxControls(state) if ( devSrv.services & SERVICE_SCREEN ) { $('tblChkCfg').style.display = "block"; $('tblComfort').style.display = "block"; - - } else { $('tblChkCfg').style.display = "none"; $('tblComfort').style.display = "none"; } + if ( devSrv.services & SERVICE_BINDKEY ) { + $('labBindKey').style.display = "block"; + $('divBindKey').style.display = "block"; + } else { + $('labBindKey').style.display = "none"; + $('divBindKey').style.display = "none"; + } if ( devSrv.services & SERVICE_TH_TRG ) $('tblTrigger').style.display = "block"; else @@ -1252,6 +1254,7 @@ function showConfig() { $('chkCfgSmiley').checked = (devCfg.flg & 4) != 0; $('chkCfgTrg').checked = (devCfg.flg & 8) != 0; $('chkCfgLcdOff').checked = (devCfg.flg & 16) != 0; + $('chkCfgBindKey').checked = (devCfg.flg & 32) != 0; let txPwr = 31; el = $('selTxPwr'); for(let n = 0; n < el.options.length; n++) if(el.options[n].value >= devCfg.tx_power) txPwr = el.options[n].value; @@ -1458,19 +1461,15 @@ function parseBlkCustom(value) { s = 'LCD data # '+bytesToHex(value.buffer.slice(1)); addLog(s); } else if(blkId == 0x18 && len >= 1) { // Get/set beacon bkey in EEP - if(len >= 16) { - devkeys.cbindkey = value.buffer.slice(1); - let s = bytesToHex(devkeys.cbindkey,16); + if(len > 16) { + devKeys.cbindkey = value.buffer.slice(1,17); + let s = bytesToHex(devKeys.cbindkey,16); addLog("Bindkey # "+ s); - //if($("cbind_key")) - // $("cbind_key").value = s; + $("inpBindKey").value = s; } else { - if(len == 1 && value.getUint8(1) == 0xff) - addLog("Bindkey не запсан!"); - else - addAlog("Ошибка чтения Bindkey!"); - //if($("cbind_key")) - // $("cbind_key").value = '?'; + addLog("Ошибка чтения Bindkey!"); + console.log('blk: ' + dump8(value, value.byteLength)); + $("inpBindKey").value = 'Не поддерживается!'; } } else if(blkId == 0x23 && len >= 4) { devTime.cur = value.getUint32(1,true); @@ -1576,56 +1575,58 @@ function getMemo(num) { //addLog("getSensCfg..."); isMemoActive = true; memoCount = 0; - cmdCharacteristic.writeValue(new Uint8Array([0x35, num&0xff, (num>>8)&0xff])).catch(error => { console.log(error); addLog("getMemo() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x35, num&0xff, (num>>8)&0xff])).catch(error => { addLog("getMemo() Error: " + error); }); } } function getDevCfg() { if(cmdCharacteristic != null) { //addLog("getDevCfg..."); - cmdCharacteristic.writeValue(new Uint8Array([0x55])).catch(error => { console.log(error); addLog("getDevCfg() error!") }); + cmdCharacteristic.writeValue(new Uint8Array([0x55])).catch(error => { addLog("getDevCfg() Error: " + error) }); } } function getSensCfg() { if(cmdCharacteristic != null) { //addLog("getSensCfg..."); - cmdCharacteristic.writeValue(new Uint8Array([0x25])).catch(error => { console.log(error); addLog("getSensCfg() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x25])).catch(error => { addLog("getSensCfg() Error: " + error); }); } } function getDevTime() { if(cmdCharacteristic != null) { // addLog("Получить время от устройства..."); - cmdCharacteristic.writeValue(new Uint8Array([0x23])).then(_ => { console.log('Send GetDevTime ok'); }); + cmdCharacteristic.writeValue(new Uint8Array([0x23])).then(_ => { console.log('Send GetDevTime ok'); }) + .catch(error => { addLog("getDevTime() Error: " + error); }); } } function getDevMAC() { if(cmdCharacteristic != null) { - cmdCharacteristic.writeValue(new Uint8Array([0x10])).catch(error => { console.log(error); addLog("getMAC() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x10])).catch(error => { addLog("getMAC() Error: " + error); }); } } function getTrgCfg() { if(cmdCharacteristic != null) { - cmdCharacteristic.writeValue(new Uint8Array([0x44])).catch(error => { console.log(error); addLog("getTrgCfg() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x44])).catch(error => { addLog("getTrgCfg() Error: " + error); }); } } function getDevName() { if(cmdCharacteristic != null) { - cmdCharacteristic.writeValue(new Uint8Array([0x01])).catch(error => { console.log(error); addLog("getDevName() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x01])).catch(error => { addLog("getDevName() Error: " + error); }); } } function chkDevCfg() { if(devCfg.flg == null) return; - devCfg.flg &= 0xffffffe0; + devCfg.flg &= 0xffffffc0; devCfg.flg |= ($('chkCfgNotify').checked) ? 1 : 0; devCfg.flg |= ($('chkCfgClock').checked) ? 2 : 0; devCfg.flg |= ($('chkCfgSmiley').checked) ? 4 : 0; devCfg.flg |= ($('chkCfgTrg').checked) ? 8 : 0; devCfg.flg |= ($('chkCfgLcdOff').checked) ? 16 : 0; + devCfg.flg |= ($('chkCfgBindKey').checked) ? 32 : 0; devCfg.tx_power = $('selTxPwr').value & 0x3f; // 0..0x1f -> -20..+5 dBm ? нелинейное 0x1f = +0 дБм let connect_latency = parseInt($('inpLat').value); // = (connect_latency + 1)*30 ms if (connect_latency < 0) { @@ -1675,7 +1676,7 @@ function setDevCfg() { devCfg.averaging_measurements, devCfg.reserved2 ]); - cmdCharacteristic.writeValue(blk).catch(error => { console.log(error); addLog("setDevCfg() error!");}); + cmdCharacteristic.writeValue(blk).catch(error => { addLog("setDevCfg() Error: " + error);}); } } @@ -1694,7 +1695,7 @@ function setSensCfg() { devSens.temp_z & 0xff, (devSens.temp_z >> 8) & 0xff, devSens.humi_z & 0xff, (devSens.humi_z >> 8) & 0xff ]); - cmdCharacteristic.writeValue(blk).catch(error => { console.log(error); addLog("setSensCfg() error!"); }); + cmdCharacteristic.writeValue(blk).catch(error => { addLog("setSensCfg() Error: " + error); }); } } @@ -1710,7 +1711,7 @@ function setDevTime() { addLog("Установка времени на устройстве (" + dump(blk, blk.length) + ")..."); cmdCharacteristic.writeValue(blk).then(_ => { console.log('Время на устройстве синхронизировано'); - }); + }).catch(error => { addLog("setDevTime() Error: " + error); }); } function setDevMAC() { @@ -1788,7 +1789,7 @@ function setTrgCfg() { blk[idx+7] = (devTrig.humi_hysteresis >> 8) & 0xff; blk[idx+8] = devTrig.flg & 0xff; } - cmdCharacteristic.writeValue(blk).catch(error => { console.log(error); addLog("setTrgCfg() error!"); }); + cmdCharacteristic.writeValue(blk).catch(error => { addLog("setTrgCfg() Error: " + error); }); } } } @@ -1802,30 +1803,59 @@ function setDevName(flg) { if(flg) { let eltxt = $("inpDevName").value; let len = eltxt.length; - if(len > 1 && len < 20) { + if(len > 0 && len < 20) { + let nm = new Uint8Array((new TextEncoder()).encode(eltxt)); + len = nm.length; + if(len > 0 && len < 20) { + addLog("Имя устройства должно быть от 1 до 19 символов, включая кодирование UTF-8!"); + } let blk = new Uint8Array(1 + len); blk[0] = 0x01; - blk.set((new TextEncoder()).encode(eltxt), 1); + blk.set(nm, 1); console.log(blk); - cmdCharacteristic.writeValue(blk).catch(error => { console.log(error); addLog("setDevName() error!"); }); + cmdCharacteristic.writeValue(blk).catch(error => { addLog("setDevName() Error: " + error); }); } else addLog("Имя устройства должно быть от 1 до 19 символов!"); } else - cmdCharacteristic.writeValue(new Uint8Array([0x01, 0])).catch(error => { console.log(error); addLog("setDevName() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x01, 0])).catch(error => { addLog("setDevName() Error: "+ error); }); } } function resetDevCfg() { if(cmdCharacteristic != null) { addLog("Restore connection default settings..."); - cmdCharacteristic.writeValue(new Uint8Array([0x56])).catch(error => { console.log(error); addLog("resetDevCfg() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x56])).catch(error => { addLog("resetDevCfg() Error: " + error); }); } } function resetSensCfg() { if(cmdCharacteristic != null) { addLog("Restore sensor default settings..."); - cmdCharacteristic.writeValue(new Uint8Array([0x26])).catch(error => { console.log(error); addLog("resetSensCfg() error!"); }); + cmdCharacteristic.writeValue(new Uint8Array([0x26])).catch(error => { addLog("resetSensCfg() Error: " + error); }); + } +} +function getGetBindKey() { + if(cmdCharacteristic != null) { + //addLog("Get bindkey..."); + cmdCharacteristic.writeValue(new Uint8Array([0x18])).catch(error => { addLog("getGetBindKey() Error: " + error); }); + } +} +function setBindKey() { + if(cmdCharacteristic != null) { + let bk = $("inpBindKey").value; + if(bk.length == 32) { + let bkey = hexToBytes(bk); + if(bkey.length == 16) { + let blk = new Uint8Array(17); + blk.set(bkey,1); + blk[0] = 0x18; + //console.log("Send bindkey..."); + addLog("Сохранить новый BindKey: " + bytesToHex(blk.slice(1))); + cmdCharacteristic.writeValue(blk).catch(error => { addLog("setBindKey() Error: " + error); }); + return; + } + } + addLog("BindKey должен соднержать 16 байт в HEX виде (32 символа)!") } } @@ -2161,7 +2191,7 @@ window.onload = function() { - +
@@ -2319,6 +2349,17 @@ window.onload = function() {
+
+
+ + + + + + + +
BindKey:
+

diff --git a/fw.json b/fw.json index b39c502..952272a 100644 --- a/fw.json +++ b/fw.json @@ -1,16 +1,17 @@ {"custom":[ -"bin/THB2_v14.bin", -"bin/BTH01_v14.bin", -"bin/TH05_v14.bin", +"bin/THB2_v15.bin", +"bin/BTH01_v15.bin", +"bin/TH05_v15.bin", "?", -"bin/THB1_v14.bin", -"bin/TH05D_v14.bin", -"bin/TH05F_v14.bin"], +"bin/THB1_v15.bin", +"bin/TH05D_v15.bin", +"bin/TH05F_v15.bin"], "updateboot":[ -"update_boot/BOOT_THB2_v14.bin", -"update_boot/BOOT_BTH01_v14.bin", -"update_boot/BOOT_TH05_v14.bin", +"update_boot/BOOT_THB2_v15.bin", +"update_boot/BOOT_BTH01_v15.bin", +"update_boot/BOOT_TH05_v15.bin", "?", -"update_boot/BOOT_TH05D_v14.bin", -"update_boot/BOOT_TH05F_v14.bin", -"update_boot/BOOT_THB1_v14.bin"]} +"update_boot/BOOT_TH05D_v15.bin", +"update_boot/BOOT_TH05F_v15.bin", +"update_boot/BOOT_THB1_v15.bin"] +} diff --git a/update_boot/BOOT_BTH01_v15.bin b/update_boot/BOOT_BTH01_v15.bin new file mode 100644 index 0000000..43dc81e Binary files /dev/null and b/update_boot/BOOT_BTH01_v15.bin differ diff --git a/update_boot/BOOT_TH05D_v15.bin b/update_boot/BOOT_TH05D_v15.bin new file mode 100644 index 0000000..264b1da Binary files /dev/null and b/update_boot/BOOT_TH05D_v15.bin differ diff --git a/update_boot/BOOT_TH05F_v15.bin b/update_boot/BOOT_TH05F_v15.bin new file mode 100644 index 0000000..c4d2c9c Binary files /dev/null and b/update_boot/BOOT_TH05F_v15.bin differ diff --git a/update_boot/BOOT_TH05_v15.bin b/update_boot/BOOT_TH05_v15.bin new file mode 100644 index 0000000..04b0245 Binary files /dev/null and b/update_boot/BOOT_TH05_v15.bin differ diff --git a/update_boot/BOOT_THB1_v15.bin b/update_boot/BOOT_THB1_v15.bin new file mode 100644 index 0000000..192024a Binary files /dev/null and b/update_boot/BOOT_THB1_v15.bin differ diff --git a/update_boot/BOOT_THB2_v15.bin b/update_boot/BOOT_THB2_v15.bin new file mode 100644 index 0000000..54d7dee Binary files /dev/null and b/update_boot/BOOT_THB2_v15.bin differ